diff --git a/.editorconfig b/.editorconfig old mode 100755 new mode 100644 index 914223976..007463b4d --- a/.editorconfig +++ b/.editorconfig @@ -1,4 +1,3 @@ -# editorconfig.org root = true [*] diff --git a/.eslintignore b/.eslintignore index a943fd09d..1534e453f 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,12 +1,5 @@ -# Common -node_modules dist +.output .nuxt -coverage - -# Docus - -# Ignore sw.js as it's a generated file -sw.js -# Ignore every `plugin.js` as it's using <% %> syntaxes, that are not supported by ESLint -plugin.js +*.css +*.md diff --git a/.eslintrc.js b/.eslintrc.js index 60d96d4d8..f0e658967 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -2,65 +2,37 @@ module.exports = { root: true, env: { browser: true, - node: true + node: true, + }, + extends: ['@nuxtjs/eslint-config-typescript', '@antfu', 'plugin:prettier-vue/recommended', 'prettier'], + settings: { + 'import/ignore': ['vue'], }, - plugins: ['prettier'], - extends: [ - '@nuxtjs', - 'prettier', - 'plugin:prettier/recommended', - 'plugin:nuxt/recommended', - '@nuxtjs/eslint-config-typescript' - ], rules: { - // Vue rules - 'vue/component-name-in-template-casing': [ + semi: 'error', + 'antfu/if-newline': 0, + 'vue/static-class-names-order': 'off', + 'vue/multi-word-component-names': 'off', + 'vue/require-component-is': 'off', + 'vue/no-multiple-template-root': 'off', + 'vue/no-v-text-v-html-on-component': 'off', + '@typescript-eslint/no-unused-vars': ['off'], + '@typescript-eslint/semi': ['error'], + '@typescript-eslint/comma-dangle': ['error'], + 'comma-dangle': 'error', + 'no-unused-vars': 0, + 'prettier-vue/prettier': [ 'error', - 'PascalCase', { - registeredComponentsOnly: true - } + // Override all options of `prettier` here + // @see https://prettier.io/docs/en/options.html + // plugins: ['prettier-plugin-tailwindcss'], + printWidth: 180, + semi: false, + singleQuote: true, + tabWidth: 2, + trailingComma: 'all', + }, ], - 'vue/singleline-html-element-content-newline': [0], - 'vue/multiline-html-element-content-newline': [0], - 'vue/html-self-closing': [0], - 'vue/no-v-html': [0], - 'vue/max-attributes-per-line': [0], - 'vue/html-closing-bracket-newline': [0], - 'vue/html-indent': [0], - // Prettier rules - 'max-len': [0, 120], - code: [0, 120], - 'print-width': [0, 120], - 'no-console': [1], - 'space-before-function-paren': [0], - 'arrow-parens': [0], - curly: [0], - 'keyword-spacing': [0], - // TODO: Remove all configs below - // - // This is done in order to avoid src/admin/app - // Errors on multiple roots, as this is a Vue 3 project - // And Vue 3 allows multiple roots. - // - // Note: - // If you still have the error displayed, it means Vetur is trying - // To lint your file with Vue 2 configuration, to avoid that - // Add: - // 'vetur.validation.template': false, - // 'vetur.validation.script': false, - // 'vetur.validation.style': false, - // To your `settings.json`, from VSCode. - // - 'vue/no-multiple-template-root': 0 }, - // controlled by Volar - overrides: [ - { - files: ['*.vue'], - rules: { - '@typescript-eslint/no-unused-vars': 'off' - } - } - ] } diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md deleted file mode 100644 index f33726e81..000000000 --- a/.github/ISSUE_TEMPLATE/bug-report.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -name: Bug report -about: Report a bug report to help us improve the module. -title: '' -labels: bug -assignees: '' - ---- - - - -### Version -nuxt: -docus: - -### Reproduction Link - - -### Steps to reproduce - - -### What is Expected? - - -### What is actually happening? diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 1224ebc2b..000000000 --- a/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,5 +0,0 @@ -blank_issues_enabled: false -contact_links: - - name: Nuxt Community Discord - url: https://discord.nuxtjs.org/ - about: Consider asking questions about the module here. diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md deleted file mode 100644 index aff74a5df..000000000 --- a/.github/ISSUE_TEMPLATE/feature-request.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: Feature request -about: Suggest an idea or enhancement for the module. -title: '' -labels: enhancement -assignees: '' - ---- - -### Is your feature request related to a problem? Please describe. - - -### Describe the solution you'd like - - -### Describe alternatives you've considered - - -### Additional context - diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md deleted file mode 100644 index 3c01a3130..000000000 --- a/.github/ISSUE_TEMPLATE/question.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -name: Question -about: Ask a question about the module. -title: '' -labels: question -assignees: '' - ---- - - diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 4f6140332..000000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,22 +0,0 @@ - - -## Types of changes - -- [ ] Bug fix (a non-breaking change which fixes an issue) -- [ ] New feature (a non-breaking change which adds functionality) -- [ ] Breaking change (fix or feature that would cause existing functionality to change) - - -## Description - - - - - -## Checklist: - - - -- [ ] My change requires a change to the documentation. -- [ ] I have updated the documentation accordingly. -- [ ] I have added tests to cover my changes (if not applicable, please state why) diff --git a/.github/scripts/bump-edge.ts b/.github/scripts/bump-edge.ts new file mode 100644 index 000000000..39d3a3954 --- /dev/null +++ b/.github/scripts/bump-edge.ts @@ -0,0 +1,56 @@ +import { promises as fsp } from 'fs' +import { resolve } from 'path' +import { execSync } from 'child_process' + +const packages = { + '@docus/base': 'npm:@docus/base-edge@', + '@docus/docs-theme': 'npm:@docus/docs-theme-edge@', +} + +async function loadPackage(dir: string) { + const pkgPath = resolve(dir, 'package.json') + + const data = JSON.parse(await fsp.readFile(pkgPath, 'utf-8').catch(() => '{}')) + + const save = () => fsp.writeFile(pkgPath, `${JSON.stringify(data, null, 2)}\n`) + + return { + dir, + data, + save, + } +} + +function replaceWithEdge(pkg: any, commit: string, version: string) { + ;[pkg.data.dependencies || {}, pkg.data.devDependencies || {}, pkg.data.peerDependencies || {}].forEach((deps) => { + Object.entries(deps).forEach(([key, value]: any) => { + if (value.includes(commit)) return + + if (packages[key]) pkg.data.dependencies[key] = packages[key] + version + }) + }) +} + +async function main() { + const path = process.argv[2] + + const pkg = await loadPackage(path) + + const commit = execSync('git rev-parse --short HEAD').toString('utf-8').trim() + + const version = `${pkg.data.version}-${commit}` + + if (!pkg.data.name.includes('-edge')) pkg.data.name = `${pkg.data.name}-edge` + + if (!pkg.data.version.includes(commit)) pkg.data.version = version + + replaceWithEdge(pkg, commit, version) + + pkg.save() +} + +main().catch((err) => { + // eslint-disable-next-line no-console + console.error(err) + process.exit(1) +}) diff --git a/.github/scripts/cleanup.sh b/.github/scripts/cleanup.sh new file mode 100755 index 000000000..7e8a136df --- /dev/null +++ b/.github/scripts/cleanup.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +# Root +rm -rf node_modules +rm -rf pnpm-lock.yaml + +# Base +rm -rf packages/base/.nuxt +rm -rf packages/base/.output +rm -rf packages/base/.turbo +rm -rf packages/base/node_modules + +# Docs Theme +rm -rf packages/docs-theme/.nuxt +rm -rf packages/docs-theme/.output +rm -rf packages/docs-theme/.turbo +rm -rf packages/docs-theme/node_modules + +# GitHub +rm -rf packages/github/playground/.nuxt +rm -rf packages/github/playground/.output +rm -rf packages/github/test/fixtures/basic/.nuxt +rm -rf packages/github/test/fixtures/basic/.output +rm -rf packages/github/dist +rm -rf packages/github/.turbo +rm -rf packages/github/node_modules + + +# Docs +rm -rf docs/.nuxt +rm -rf docs/.output +rm -rf docs/.turbo +rm -rf docs/node_modules diff --git a/.github/scripts/release-edge.sh b/.github/scripts/release-edge.sh new file mode 100755 index 000000000..47a5684ac --- /dev/null +++ b/.github/scripts/release-edge.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +# Bump versions to edge +npx jiti ../../.github/scripts/bump-edge $PWD + +# Update token +if [[ ! -z ${NODE_AUTH_TOKEN} ]] ; then + echo "//registry.npmjs.org/:_authToken=${NODE_AUTH_TOKEN}" >> ~/.npmrc + echo "registry=https://registry.npmjs.org/" >> ~/.npmrc + echo "always-auth=true" >> ~/.npmrc + npm whoami +fi + +# # Release package +echo "Publishing $PWD" +npm publish -q --access public diff --git a/.github/scripts/release.sh b/.github/scripts/release.sh new file mode 100755 index 000000000..93454817f --- /dev/null +++ b/.github/scripts/release.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +# Update token +if [[ ! -z ${NODE_AUTH_TOKEN} ]] ; then + echo "//registry.npmjs.org/:_authToken=${NODE_AUTH_TOKEN}" >> ~/.npmrc + echo "registry=https://registry.npmjs.org/" >> ~/.npmrc + echo "always-auth=true" >> ~/.npmrc + npm whoami +fi + +# Release package +echo "Publishing $PWD" +# npm publish -q --access public +echo "Published!" diff --git a/.github/workflows/ci-dev.yml b/.github/workflows/ci-dev.yml new file mode 100644 index 000000000..f25deac03 --- /dev/null +++ b/.github/workflows/ci-dev.yml @@ -0,0 +1,51 @@ +name: ci-dev + +on: + push: + branches: + - dev + pull_request: + types: [opened, synchronize] + branches: + - dev + +jobs: + build: + runs-on: ${{ matrix.os }} + + strategy: + matrix: + os: [ubuntu-latest] # macos-latest, windows-latest + node: [16] + + steps: + - name: Checkout + uses: actions/checkout@master + with: + persist-credentials: false + fetch-depth: 2 + + - uses: pnpm/action-setup@v2.0.1 + with: + version: 6.32.2 + + - name: Setup Node.js environment + uses: actions/setup-node@v2 + with: + node-version: 16 + cache: 'pnpm' + + - name: Install dependencies + run: pnpm install + + - name: Build + run: pnpm build + +# - name: Test +# run: pnpm test + + - name: Release Edge version + if: github.event_name == 'push' + run: pnpm run release:edge + env: + NODE_AUTH_TOKEN: ${{secrets.NODE_AUTH_TOKEN}} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5f012eee5..384d94bc9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,56 +1,58 @@ -name: ci +name: ci-main on: push: branches: - main - - dev pull_request: + types: [opened, synchronize] branches: - main - - dev + jobs: - ci: + build: runs-on: ${{ matrix.os }} + strategy: matrix: - os: [ubuntu-latest] # macos-latest, windows-latest - TODO: Fix sharp on Windows + os: [ubuntu-latest] # macos-latest, windows-latest node: [16] steps: - - uses: actions/setup-node@v2 + - name: Checkout + uses: actions/checkout@master with: - node-version: ${{ matrix.node }} + persist-credentials: false + fetch-depth: 2 - # Checkout repositoroy - - name: checkout - uses: actions/checkout@master + - uses: pnpm/action-setup@v2.0.1 + with: + version: 6.32.2 - # Cache node_modules - - name: cache node_modules - uses: actions/cache@v2 + - name: Setup Node.js environment + uses: actions/setup-node@v2 with: - path: node_modules - key: ${{ matrix.os }}-node-v${{ matrix.node }}-deps-${{ hashFiles(format('{0}{1}', github.workspace, '/yarn.lock')) }} + node-version: 16 + cache: 'pnpm' - # Instal deps - name: Install dependencies - if: steps.cache.outputs.cache-hit != 'true' - run: yarn + run: pnpm install - # Run linting - - name: Lint - run: yarn lint + - name: Build + run: pnpm build - # Run tests - - name: Run tests - run: yarn test +# - name: Test +# run: pnpm test - # Build Docus package - - name: Build - run: yarn build + - name: Check if the version has been bumped + id: check + uses: EndBug/version-check@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} - # Code coverage - # - name: Coverage - # uses: codecov/codecov-action@v1 +# - name: Release Main version +# if: github.event_name == 'push' && steps.check.outputs.changed == 'true' +# run: pnpm release +# env: +# NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }} diff --git a/.gitignore b/.gitignore old mode 100755 new mode 100644 index 6594240e9..8a53ceebb --- a/.gitignore +++ b/.gitignore @@ -1,15 +1,20 @@ node_modules -*.iml -.idea -*.log* -.nuxt* -.vscode -.DS_Store -coverage -dist -sw.* +*.log +.nuxt +nuxt.d.ts +.output .env +package-lock.json +framework dist +.DS_Store + +# Yarn +.yarn/cache +.yarn/*state* + +# Turbo +.turbo -# TODO: Remove that -!1.logos.md +# Local History +.history diff --git a/.npmrc b/.npmrc new file mode 100644 index 000000000..bf2e7648b --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +shamefully-hoist=true diff --git a/.nvmrc b/.nvmrc deleted file mode 100644 index da2d3988d..000000000 --- a/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -14 \ No newline at end of file diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 2e1fa2d52..000000000 --- a/.prettierignore +++ /dev/null @@ -1 +0,0 @@ -*.md \ No newline at end of file diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index a01141e96..000000000 --- a/.prettierrc +++ /dev/null @@ -1,7 +0,0 @@ -{ - "printWidth": 120, - "semi": false, - "singleQuote": true, - "trailingComma": "none", - "arrowParens": "avoid" -} diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 3a7fa3719..000000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,212 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. - -### [0.1.5](https://github.com/nuxtlabs/docus/compare/v0.1.4...v0.1.5) (2021-03-15) - - -### Bug Fixes - -* try another way ([4664a2d](https://github.com/nuxtlabs/docus/commit/4664a2d7a0f8bc5cdc78ea21c55a1b59e28ead9d)) - -### [0.1.4](https://github.com/nuxtlabs/docus/compare/v0.1.3...v0.1.4) (2021-03-15) - - -### Bug Fixes - -* use correct icon name ([0f95256](https://github.com/nuxtlabs/docus/commit/0f952560465d954dfd6b8ffa358441f2e587d6cc)) -* use nuxt resolver for tailwind config require ([f135ab1](https://github.com/nuxtlabs/docus/commit/f135ab136999bf13b25fe07d916ceb3fb22d03ee)) - -### [0.1.3](https://github.com/nuxtlabs/docus/compare/v0.1.2...v0.1.3) (2021-03-15) - -### [0.1.2](https://github.com/nuxtlabs/docus/compare/v0.1.1...v0.1.2) (2021-03-15) - - -### Bug Fixes - -* releases not working ([ef85c3a](https://github.com/nuxtlabs/docus/commit/ef85c3a6ad9b9e03187fa2e5e4ec69099a5f21bd)) -* remove duplicate credits ([afb65fd](https://github.com/nuxtlabs/docus/commit/afb65fddd6a9aa12f83c4547e27fd8442a2320d2)) -* styling ([5547ce4](https://github.com/nuxtlabs/docus/commit/5547ce442b9262d8bc25d4110cdd6616eb90a28b)) - -### [0.1.1](https://github.com/nuxtlabs/docus/compare/v0.1.0...v0.1.1) (2021-03-15) - - -### Features - -* add jit by default ([a0fb24e](https://github.com/nuxtlabs/docus/commit/a0fb24ee55f5d507653d9ec831f21f7129dda478)) - -## [0.1.0](https://github.com/nuxtlabs/docus/compare/v0.0.10...v0.1.0) (2021-03-15) - - -### ⚠ BREAKING CHANGES - -* add 'D' prefix to all components (#148) - -### Features - -* add 'D' prefix to all components ([#148](https://github.com/nuxtlabs/docus/issues/148)) ([b6b02b8](https://github.com/nuxtlabs/docus/commit/b6b02b8a6b4064fd048a2429863e7910c1c6ef83)) -* MadeWithDocus ([#173](https://github.com/nuxtlabs/docus/issues/173)) ([6de302a](https://github.com/nuxtlabs/docus/commit/6de302a3a577f4ff71b4a10478809cd9894fba7a)) -* redesign prev/next ([#155](https://github.com/nuxtlabs/docus/issues/155)) ([f0ab164](https://github.com/nuxtlabs/docus/commit/f0ab164ed3357e03912c50627a271ebf2e1bbd00)) -* vite fixes ([#160](https://github.com/nuxtlabs/docus/issues/160)) ([31d3ef0](https://github.com/nuxtlabs/docus/commit/31d3ef0990f18651feda6ba2ac43eb8e4372564c)) -* vite support ([#122](https://github.com/nuxtlabs/docus/issues/122)) ([ba9fe62](https://github.com/nuxtlabs/docus/commit/ba9fe62ad3380e0927e8e3ae426b0802b360c8a9)) - - -### Bug Fixes - -* add category to prev/next; improve styling ([#164](https://github.com/nuxtlabs/docus/issues/164)) ([1ef2595](https://github.com/nuxtlabs/docus/commit/1ef2595ad607077f56e314a4b03768581c23fe75)) -* add credits setting to docs ([#177](https://github.com/nuxtlabs/docus/issues/177)) ([2eb20b7](https://github.com/nuxtlabs/docus/commit/2eb20b7841c6142b6a697f0b3e0c071697da0073)) -* add more space to docs typography ([#158](https://github.com/nuxtlabs/docus/issues/158)) ([5bcc28e](https://github.com/nuxtlabs/docus/commit/5bcc28e89ca3ab030a61f20f49c8286f4b4c2b15)) -* article padding for readme ([#176](https://github.com/nuxtlabs/docus/issues/176)) ([4f1f5ef](https://github.com/nuxtlabs/docus/commit/4f1f5ef3fa8dda3cfd95b8a0b2b53d7633bb2d85)) -* badge rendering ([#145](https://github.com/nuxtlabs/docus/issues/145)) ([a751b03](https://github.com/nuxtlabs/docus/commit/a751b03cb88e2bca11b1cef6fddfe4f554177244)) -* button ring in dark mode ([#143](https://github.com/nuxtlabs/docus/issues/143)) ([1ece51e](https://github.com/nuxtlabs/docus/commit/1ece51e05bf571fd785d360650d3c7849eb3d2c8)) -* color contrast for toc and header icons ([#161](https://github.com/nuxtlabs/docus/issues/161)) ([929be34](https://github.com/nuxtlabs/docus/commit/929be346151c6894e97b15a4bc45eff1ad23ce81)) -* do not show hidden pages in next/prev links ([#153](https://github.com/nuxtlabs/docus/issues/153)) ([cad8714](https://github.com/nuxtlabs/docus/commit/cad8714bb0c70a2c5c960c36ee875bdd4cb270a5)) -* enable Nuxt I18n lazy ([#165](https://github.com/nuxtlabs/docus/issues/165)) ([2696b5a](https://github.com/nuxtlabs/docus/commit/2696b5aa3c6b52345efa16537cd7b08b19d2798f)) -* github typo when fallback for string ([461697c](https://github.com/nuxtlabs/docus/commit/461697cbd2179024370403b3c80237ec3cd6582d)) -* landing page body scroll lock ([#144](https://github.com/nuxtlabs/docus/issues/144)) ([fed57fc](https://github.com/nuxtlabs/docus/commit/fed57fcf6389c7e14372467afe394579cda3ccfc)) -* missing header bg color in light mode ([#142](https://github.com/nuxtlabs/docus/issues/142)) ([605d9dd](https://github.com/nuxtlabs/docus/commit/605d9dd587b8d0bda0bb670460f03f18a26df911)) -* readme header ([#150](https://github.com/nuxtlabs/docus/issues/150)) ([c7cb511](https://github.com/nuxtlabs/docus/commit/c7cb5115ec176f5e763d9252149a8bbc5d7381df)) -* rename components again ([#151](https://github.com/nuxtlabs/docus/issues/151)) ([58dccfe](https://github.com/nuxtlabs/docus/commit/58dccfe62a86998a33341f66e20be24c777710e5)) -* sticky aside ([#147](https://github.com/nuxtlabs/docus/issues/147)) ([ce1a1da](https://github.com/nuxtlabs/docus/commit/ce1a1da46e4717ca144377d0db18a3a8f7a34cf6)) -* update header icons optical sizes ([#156](https://github.com/nuxtlabs/docus/issues/156)) ([118ecbc](https://github.com/nuxtlabs/docus/commit/118ecbc5e6eb8e1e4f33f6246bd5ca2c43c39b41)) - -### [0.0.10](https://github.com/nuxtlabs/docus/compare/v0.0.8...v0.0.10) (2021-03-10) - - -### Features - -* Props component ([#84](https://github.com/nuxtlabs/docus/issues/84)) ([83657a6](https://github.com/nuxtlabs/docus/commit/83657a667fd778d75af53e0a163c844a547ed026)) -* `` component ([#108](https://github.com/nuxtlabs/docus/issues/108)) ([e9c896a](https://github.com/nuxtlabs/docus/commit/e9c896a527315d075665c05965ddea4efbc97db0)) -* color settings ([#92](https://github.com/nuxtlabs/docus/issues/92)) ([57af79d](https://github.com/nuxtlabs/docus/commit/57af79dd5a56e3fc134c75366e384c5cb7134b8d)) -* detect title and description of document ([#98](https://github.com/nuxtlabs/docus/issues/98)) ([d0ff5c9](https://github.com/nuxtlabs/docus/commit/d0ff5c986e0061f5a0a906be0ba9ef8904122f77)) -* draft ([#91](https://github.com/nuxtlabs/docus/issues/91)) ([2d3d5be](https://github.com/nuxtlabs/docus/commit/2d3d5be26a17677c0f9d5d2215eefe5d090a998a)) -* redesign ([#123](https://github.com/nuxtlabs/docus/issues/123)) ([23fa6d2](https://github.com/nuxtlabs/docus/commit/23fa6d2238b0343298b66254d8efcb0e092307d9)), closes [#117](https://github.com/nuxtlabs/docus/issues/117) [#110](https://github.com/nuxtlabs/docus/issues/110) -* **slots:** support customizable slots ([#85](https://github.com/nuxtlabs/docus/issues/85)) ([fb46de3](https://github.com/nuxtlabs/docus/commit/fb46de3812985301749e13cd671ca90f6fc1645e)) -* optional default language directory ([#68](https://github.com/nuxtlabs/docus/issues/68)) ([7bcd794](https://github.com/nuxtlabs/docus/commit/7bcd79441bbc3fb77256330cf7c1e925d068d52a)) -* theme refactoring ([#73](https://github.com/nuxtlabs/docus/issues/73)) ([60e86b2](https://github.com/nuxtlabs/docus/commit/60e86b2b373ba03cb4eead7cf718263948ca5762)) -* twitter card ([#80](https://github.com/nuxtlabs/docus/issues/80)) ([060361b](https://github.com/nuxtlabs/docus/commit/060361b134ed5981ab2c714f3ef6a322854df1af)) -* **theme:** inject content dir option in config for "Edit on GitHub" link ([6d2ddfd](https://github.com/nuxtlabs/docus/commit/6d2ddfd1650f15e991b8acf9f8376747275ea817)) - - -### Bug Fixes - -* **types:** switch to named type export ([#130](https://github.com/nuxtlabs/docus/issues/130)) ([9837649](https://github.com/nuxtlabs/docus/commit/983764989e10b8e3537007d71dfd5e7c51bc1825)) -* add spacing for table ([5280262](https://github.com/nuxtlabs/docus/commit/5280262e0fc2c4c2d5acc5166fc34c07a384b9c1)) -* backward support position ([2f81f49](https://github.com/nuxtlabs/docus/commit/2f81f490db826640fec173ba982fe091109325ac)) -* default share metatags ([#115](https://github.com/nuxtlabs/docus/issues/115)) ([4fa28e4](https://github.com/nuxtlabs/docus/commit/4fa28e48c1811f19374d5e635cf31cca4e01bb49)) -* detect active and exact active link ([#64](https://github.com/nuxtlabs/docus/issues/64)) ([44ba5f8](https://github.com/nuxtlabs/docus/commit/44ba5f8a42c3b07503ad61d5a3a12bc8ee324ee0)) -* don't generate position to non-markdown files ([c4980c2](https://github.com/nuxtlabs/docus/commit/c4980c29ab0361328e6079e1f5d03070e727da3d)) -* fallback to default description ([#125](https://github.com/nuxtlabs/docus/issues/125)) ([bc48f34](https://github.com/nuxtlabs/docus/commit/bc48f34e75547cc821ca1b441e0524da8807524f)) -* move theme style into Docus plugin ([#101](https://github.com/nuxtlabs/docus/issues/101)) ([615da9c](https://github.com/nuxtlabs/docus/commit/615da9c05188e0b62fef7e0ee0eda830e9db87aa)) -* put back aside in static mode ([ad8bfce](https://github.com/nuxtlabs/docus/commit/ad8bfce800a034337856aa0474e075bb12e299e3)) -* **anchor-scroll:** scroll inside `nextTick` ([#99](https://github.com/nuxtlabs/docus/issues/99)) ([c516288](https://github.com/nuxtlabs/docus/commit/c516288a048a417c87e2e2b8445ef490d895afd0)) -* **theme:** overflow on prev/next links ([fcc5260](https://github.com/nuxtlabs/docus/commit/fcc52605c1eb56e34c21b715804e07605e1797bb)) -* **theme:** padding on sidebar in lg screen ([7200194](https://github.com/nuxtlabs/docus/commit/7200194cb1d9bf781705d71403c69c09c548158f)) -* **theme:** version badge on nav display ([bb46c29](https://github.com/nuxtlabs/docus/commit/bb46c2942f666e572abdd5488b439c706daa2ea0)) -* **TOC:** scroll to currect position when `location.hash` locating a header ([#69](https://github.com/nuxtlabs/docus/issues/69)) ([e37c4f3](https://github.com/nuxtlabs/docus/commit/e37c4f323ffecca8c1e340d2e1948971908b69cb)) - -### [0.0.9](https://github.com/nuxtlabs/docus/compare/v0.0.8...v0.0.9) (2021-02-25) - - -### Features - -* color settings ([#92](https://github.com/nuxtlabs/docus/issues/92)) ([57af79d](https://github.com/nuxtlabs/docus/commit/57af79dd5a56e3fc134c75366e384c5cb7134b8d)) -* detect title and description of document ([#98](https://github.com/nuxtlabs/docus/issues/98)) ([d0ff5c9](https://github.com/nuxtlabs/docus/commit/d0ff5c986e0061f5a0a906be0ba9ef8904122f77)) -* draft ([#91](https://github.com/nuxtlabs/docus/issues/91)) ([2d3d5be](https://github.com/nuxtlabs/docus/commit/2d3d5be26a17677c0f9d5d2215eefe5d090a998a)) -* **slots:** support customizable slots ([#85](https://github.com/nuxtlabs/docus/issues/85)) ([fb46de3](https://github.com/nuxtlabs/docus/commit/fb46de3812985301749e13cd671ca90f6fc1645e)) -* optional default language directory ([#68](https://github.com/nuxtlabs/docus/issues/68)) ([7bcd794](https://github.com/nuxtlabs/docus/commit/7bcd79441bbc3fb77256330cf7c1e925d068d52a)) -* theme refactoring ([#73](https://github.com/nuxtlabs/docus/issues/73)) ([60e86b2](https://github.com/nuxtlabs/docus/commit/60e86b2b373ba03cb4eead7cf718263948ca5762)) -* twitter card ([#80](https://github.com/nuxtlabs/docus/issues/80)) ([060361b](https://github.com/nuxtlabs/docus/commit/060361b134ed5981ab2c714f3ef6a322854df1af)) -* **theme:** inject content dir option in config for "Edit on GitHub" link ([6d2ddfd](https://github.com/nuxtlabs/docus/commit/6d2ddfd1650f15e991b8acf9f8376747275ea817)) - - -### Bug Fixes - -* move theme style into Docus plugin ([#101](https://github.com/nuxtlabs/docus/issues/101)) ([615da9c](https://github.com/nuxtlabs/docus/commit/615da9c05188e0b62fef7e0ee0eda830e9db87aa)) -* **anchor-scroll:** scroll inside `nextTick` ([#99](https://github.com/nuxtlabs/docus/issues/99)) ([c516288](https://github.com/nuxtlabs/docus/commit/c516288a048a417c87e2e2b8445ef490d895afd0)) -* add spacing for table ([5280262](https://github.com/nuxtlabs/docus/commit/5280262e0fc2c4c2d5acc5166fc34c07a384b9c1)) -* **theme:** overflow on prev/next links ([fcc5260](https://github.com/nuxtlabs/docus/commit/fcc52605c1eb56e34c21b715804e07605e1797bb)) -* **theme:** padding on sidebar in lg screen ([7200194](https://github.com/nuxtlabs/docus/commit/7200194cb1d9bf781705d71403c69c09c548158f)) -* **theme:** version badge on nav display ([bb46c29](https://github.com/nuxtlabs/docus/commit/bb46c2942f666e572abdd5488b439c706daa2ea0)) -* **TOC:** scroll to currect position when `location.hash` locating a header ([#69](https://github.com/nuxtlabs/docus/issues/69)) ([e37c4f3](https://github.com/nuxtlabs/docus/commit/e37c4f323ffecca8c1e340d2e1948971908b69cb)) -* backward support position ([2f81f49](https://github.com/nuxtlabs/docus/commit/2f81f490db826640fec173ba982fe091109325ac)) -* detect active and exact active link ([#64](https://github.com/nuxtlabs/docus/issues/64)) ([44ba5f8](https://github.com/nuxtlabs/docus/commit/44ba5f8a42c3b07503ad61d5a3a12bc8ee324ee0)) -* don't generate position to non-markdown files ([c4980c2](https://github.com/nuxtlabs/docus/commit/c4980c29ab0361328e6079e1f5d03070e727da3d)) - -### [0.0.8](https://github.com/nuxtlabs/docus/compare/v0.0.7...v0.0.8) (2021-02-15) - - -### Features - -* order convention ([#49](https://github.com/nuxtlabs/docus/issues/49)) ([8326bc2](https://github.com/nuxtlabs/docus/commit/8326bc260c18c86dbec5ee098955b777563e3cb4)) - - -### Bug Fixes - -* Nuxt 2.15 support ([#56](https://github.com/nuxtlabs/docus/issues/56)) ([1a0c4d4](https://github.com/nuxtlabs/docus/commit/1a0c4d4cf7a2060f47e0a07597dec0d58f4eebd0)) -* **CodeGroup:** improve ssr ([#46](https://github.com/nuxtlabs/docus/issues/46)) ([42e2fd6](https://github.com/nuxtlabs/docus/commit/42e2fd62b51bd3fa42a630abf4995abe6c6edb71)) -* **prism:** highlight `key` token ([#62](https://github.com/nuxtlabs/docus/issues/62)) ([a17b210](https://github.com/nuxtlabs/docus/commit/a17b210bfa6ea58d3c5e8faf97533ab51f966888)) -* **remark-prose:** fix node detection ([#44](https://github.com/nuxtlabs/docus/issues/44)) ([217bd8d](https://github.com/nuxtlabs/docus/commit/217bd8d7c65e44ff044326296417af39747c966b)) -* **remark-prose:** handle html starting with spaces ([#48](https://github.com/nuxtlabs/docus/issues/48)) ([405cb53](https://github.com/nuxtlabs/docus/commit/405cb53ffdcdf1317376c3746b5cf854723d63ce)) -* create external link component ([#42](https://github.com/nuxtlabs/docus/issues/42)) ([dd51ddb](https://github.com/nuxtlabs/docus/commit/dd51ddb55802eb66bc8ce34f8db319d14df20994)) - -### [0.0.7](https://github.com/nuxtlabs/docus/compare/v0.0.6...v0.0.7) (2021-02-10) - -### [0.0.6](https://github.com/nuxt/docus/compare/v0.0.5...v0.0.6) (2021-02-10) - - -### Features - -* colorize diff language ([#32](https://github.com/nuxt/docus/issues/32)) ([25f8512](https://github.com/nuxt/docus/commit/25f851263d88c497c2a090be92c8ffb4bed20513)) -* remark plugin to wrap content in prose ([#35](https://github.com/nuxt/docus/issues/35)) ([1dbade0](https://github.com/nuxt/docus/commit/1dbade0fdcb54c9173823497a0a38fd461c05138)) -* resolve plugins and componets from project src dir ([#36](https://github.com/nuxt/docus/issues/36)) ([def4fae](https://github.com/nuxt/docus/commit/def4fae647bfb52619ea1a61a1e412bf2f223e29)) -* **theme:** refactor github options ([9e56555](https://github.com/nuxt/docus/commit/9e56555b210248bf41f966ad539056c64620ed40)) -* **theme-docs:** Added nl-BE.js localization file to docs theme ([1c3d91e](https://github.com/nuxt/docus/commit/1c3d91ebd7480fc450b0d225d5a56000849ff212)), closes [#739](https://github.com/nuxt/docus/issues/739) -* **theme-docs:** display updatedAt date in bottom of page ([534e6b4](https://github.com/nuxt/docus/commit/534e6b4cdc3f28ed4764f9fc4ee02ced29965193)), closes [#687](https://github.com/nuxt/docus/issues/687) - - -### Bug Fixes - -* **theme:** revert ja-JP renaming ([f26dd1e](https://github.com/nuxt/docus/commit/f26dd1ee8a61143b0d890093edf876c1d6d48f0a)) -* layout shifting ([#39](https://github.com/nuxt/docus/issues/39)) ([a9f3c02](https://github.com/nuxt/docus/commit/a9f3c02372956d23b05fcb1504755c85fe6ea153)) -* **AppAside:** selected links should handle other locales ([e8c5ac3](https://github.com/nuxt/docus/commit/e8c5ac38a2f68aa735c964ccecb3f459af612180)) -* **theme:** put back article tag (useful for docsearch) ([cda54bf](https://github.com/nuxt/docus/commit/cda54bffdcbbbb511f72fd1051085d31f9ce3d3c)) -* **theme:** select active menu with trailing slash ([65bb7a7](https://github.com/nuxt/docus/commit/65bb7a7aa64299af506f0e9567522ff09d1e0407)) -* **theme-docs:** correct releases link ([b4e0c69](https://github.com/nuxt/docus/commit/b4e0c695dd4c3568525ef547e485fe4123e6bd4d)), closes [#690](https://github.com/nuxt/docus/issues/690) -* **theme-docs:** remove redundant header ([f6d1ecb](https://github.com/nuxt/docus/commit/f6d1ecb2789b37755c2a5572897ba42016298bcd)), closes [#722](https://github.com/nuxt/docus/issues/722) - -### [0.0.5](https://github.com/nuxt/docus/compare/v0.0.4...v0.0.5) (2021-01-26) - - -### Features - -* remove subtitle and use description ([e63cf28](https://github.com/nuxt/docus/commit/e63cf28301e257eed9ae6f5e84f0f4337390e0fc)) - -### [0.0.4](https://github.com/nuxt/docus/compare/v0.0.3...v0.0.4) (2021-01-19) - - -### Bug Fixes - -* add dark mode for release title ([c6a7be5](https://github.com/nuxt/docus/commit/c6a7be5f0ada72532047c5807d4fc3eac6400560)) - -### [0.0.3](https://github.com/nuxt/docus/compare/v0.0.2...v0.0.3) (2021-01-19) - - -### Bug Fixes - -* move tailwind to dependencies ([3e5f5cb](https://github.com/nuxt/docus/commit/3e5f5cbc6031cdc20c7a0b562cb9c3ac05d0e259)) - -### 0.0.2 (2021-01-18) - - -### Features - -* migrate to tailwindcss v2 ([#2](https://github.com/nuxt/docus/issues/2)) ([f4f3e93](https://github.com/nuxt/docus/commit/f4f3e93424b3fee20f7a8df7e3a5d5170d1e568e)) - - -### Bug Fixes - -* **purgecss:** use rootDir for content ([1f11306](https://github.com/nuxt/docus/commit/1f1130691cc52842d5b33c1154de316004b11c03)) -* purgecss ([28f03e6](https://github.com/nuxt/docus/commit/28f03e69994dc9e25371cca50dd308a86f606bfb)) -* remove netlifytoml ([589ee6a](https://github.com/nuxt/docus/commit/589ee6a276bf61cf6254f7da0057361edc821cfb)) -* setup apiHost ([f8d2f5a](https://github.com/nuxt/docus/commit/f8d2f5a85864a2212c1b7af1af0e2489df2a6bfd)) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index 61ec1a5ee..000000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,76 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as -contributors and maintainers pledge to making participation in our project and -our community a harassment-free experience for everyone, regardless of age, body -size, disability, ethnicity, sex characteristics, gender identity and expression, -level of experience, education, socio-economic status, nationality, personal -appearance, race, religion, or sexual identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment -include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or - advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic - address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable -behavior and are expected to take appropriate and fair corrective action in -response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or -reject comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct, or to ban temporarily or -permanently any contributor for other behaviors that they deem inappropriate, -threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. Examples of -representing a project or community include using an official project e-mail -address, posting via an official social media account, or acting as an appointed -representative at an online or offline event. Representation of a project may be -further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at oss@nuxtjs.com. All -complaints will be reviewed and investigated and will result in a response that -is deemed necessary and appropriate to the circumstances. The project team is -obligated to maintain confidentiality with regard to the reporter of an incident. -Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good -faith may face temporary or permanent repercussions as determined by other -members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, -available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html - -[homepage]: https://www.contributor-covenant.org - -For answers to common questions about this code of conduct, see -https://www.contributor-covenant.org/faq diff --git a/LICENSE b/LICENSE deleted file mode 100644 index f288702d2..000000000 --- a/LICENSE +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/README.md b/README.md old mode 100755 new mode 100644 index b1db33cd9..e80aa335b --- a/README.md +++ b/README.md @@ -1,26 +1,11 @@ -[![preview](https://user-images.githubusercontent.com/904724/105075054-872fac80-5a89-11eb-8aab-46dd254ad986.png)](https://docus.dev) -# Docus +

+ +

-[![npm version][npm-version-src]][npm-version-href] -[![npm downloads][npm-downloads-src]][npm-downloads-href] -[![license][license-src]][license-href] +

+ Downloads + Version + License +

-Write your documentation with [Nuxt](https://nuxtjs.org) and [Windi CSS](https://windicss.org) - -## Quick Start - -1. Go to the [docus-starter](https://github.com/nuxt/docus-starter) GitHub template. -2. Click on the green button "Use this template" -3. Start writing your documentation ✨ - -Read more on [docus.dev](https://docus.dev). - - -[npm-version-src]: https://img.shields.io/npm/v/docus/latest.svg -[npm-version-href]: https://npmjs.com/package/docus - -[npm-downloads-src]: https://img.shields.io/npm/dt/docus.svg -[npm-downloads-href]: https://npmjs.com/package/docus - -[license-src]: https://img.shields.io/npm/l/docus.svg -[license-href]: https://npmjs.com/package/docus +Docus is the fastest way to create document-driven websites. diff --git a/docs/components/AppFooter.vue b/docs/components/AppFooter.vue deleted file mode 100644 index 18b94cfd8..000000000 --- a/docs/components/AppFooter.vue +++ /dev/null @@ -1,48 +0,0 @@ - diff --git a/docs/components/AsideBottom.vue b/docs/components/AsideBottom.vue deleted file mode 100644 index 468089f06..000000000 --- a/docs/components/AsideBottom.vue +++ /dev/null @@ -1,74 +0,0 @@ - - - diff --git a/docs/components/FooterBody.vue b/docs/components/FooterBody.vue deleted file mode 100644 index 18f117302..000000000 --- a/docs/components/FooterBody.vue +++ /dev/null @@ -1,51 +0,0 @@ - diff --git a/docs/components/HeaderNavigation.vue b/docs/components/HeaderNavigation.vue deleted file mode 100644 index 861026b93..000000000 --- a/docs/components/HeaderNavigation.vue +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/docs/components/Showcases.vue b/docs/components/Showcases.vue deleted file mode 100644 index f2e4e1b50..000000000 --- a/docs/components/Showcases.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - - - diff --git a/docs/components/content/Ellipsis.vue b/docs/components/content/Ellipsis.vue new file mode 100644 index 000000000..b040dac01 --- /dev/null +++ b/docs/components/content/Ellipsis.vue @@ -0,0 +1,27 @@ + + + + + + diff --git a/docs/components/icons/IconMarkdown.vue b/docs/components/content/IconMarkdown.vue similarity index 66% rename from docs/components/icons/IconMarkdown.vue rename to docs/components/content/IconMarkdown.vue index 2c80aa587..d16be4b3e 100644 --- a/docs/components/icons/IconMarkdown.vue +++ b/docs/components/content/IconMarkdown.vue @@ -1,13 +1,7 @@ diff --git a/docs/components/content/examples/Contributor.vue b/docs/components/content/examples/Contributor.vue new file mode 100644 index 000000000..84365c251 --- /dev/null +++ b/docs/components/content/examples/Contributor.vue @@ -0,0 +1,15 @@ + + + diff --git a/docs/components/content/examples/ContributorsExample.vue b/docs/components/content/examples/ContributorsExample.vue new file mode 100644 index 000000000..3b3d5870c --- /dev/null +++ b/docs/components/content/examples/ContributorsExample.vue @@ -0,0 +1,7 @@ + diff --git a/docs/components/content/examples/FileContributorsExample.vue b/docs/components/content/examples/FileContributorsExample.vue new file mode 100644 index 000000000..6f9b679e9 --- /dev/null +++ b/docs/components/content/examples/FileContributorsExample.vue @@ -0,0 +1,13 @@ + + + diff --git a/docs/components/content/examples/LastReleaseExample.vue b/docs/components/content/examples/LastReleaseExample.vue new file mode 100644 index 000000000..c106ade33 --- /dev/null +++ b/docs/components/content/examples/LastReleaseExample.vue @@ -0,0 +1,8 @@ + diff --git a/docs/components/content/examples/ReleasesExample.vue b/docs/components/content/examples/ReleasesExample.vue new file mode 100644 index 000000000..75297ae51 --- /dev/null +++ b/docs/components/content/examples/ReleasesExample.vue @@ -0,0 +1,8 @@ + diff --git a/docs/components/content/examples/Repository.vue b/docs/components/content/examples/Repository.vue new file mode 100644 index 000000000..c7c7e32e1 --- /dev/null +++ b/docs/components/content/examples/Repository.vue @@ -0,0 +1,50 @@ + + + diff --git a/docs/components/content/examples/RepositoryExample.vue b/docs/components/content/examples/RepositoryExample.vue new file mode 100644 index 000000000..5d6c74ccc --- /dev/null +++ b/docs/components/content/examples/RepositoryExample.vue @@ -0,0 +1,5 @@ + diff --git a/docs/components/icons/IconGit.vue b/docs/components/icons/IconGit.vue deleted file mode 100644 index f18bb89e8..000000000 --- a/docs/components/icons/IconGit.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/docs/components/icons/IconLighthouse.vue b/docs/components/icons/IconLighthouse.vue deleted file mode 100644 index e7cc117ea..000000000 --- a/docs/components/icons/IconLighthouse.vue +++ /dev/null @@ -1,83 +0,0 @@ - diff --git a/docs/components/icons/IconPuzzle.vue b/docs/components/icons/IconPuzzle.vue deleted file mode 100644 index 609db9c7d..000000000 --- a/docs/components/icons/IconPuzzle.vue +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/docs/components/icons/IconSSG.vue b/docs/components/icons/IconSSG.vue deleted file mode 100644 index 5ace7bca7..000000000 --- a/docs/components/icons/IconSSG.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/docs/components/icons/IconVueTelescope.vue b/docs/components/icons/IconVueTelescope.vue deleted file mode 100644 index fa03e646d..000000000 --- a/docs/components/icons/IconVueTelescope.vue +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/docs/components/icons/IconZap.vue b/docs/components/icons/IconZap.vue deleted file mode 100644 index 8b4799658..000000000 --- a/docs/components/icons/IconZap.vue +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/docs/content/0.index.md b/docs/content/0.index.md new file mode 100644 index 000000000..8197dece4 --- /dev/null +++ b/docs/content/0.index.md @@ -0,0 +1,86 @@ +--- +title: Home +navigation: false +layout: fluid +--- + +::block-hero +--- +cta: + - Get started + - /get-started +secondary: + - Open on GitHub → + - https://github.com/nuxtlabs/docus +snippet: npx degit nuxtlabs/docus-starter +--- + +#top +::badge + :last-release{to="/changelog"} +:: + +#title +The best place to start your documentation. + +#description +Write pages in markdown, use [Vue](https://vuejs.org) components and enjoy the power of [Nuxt](https://nuxtjs.org) with a blazing fast developer experience. +:: + +::card-grid +#title +What's included + +#root +:ellipsis + +#default + ::card + --- + icon: logos:nuxt-icon + description: Harness the full power of Nuxt and the Nuxt ecosystem. + iconClass: 'text-hex-00DC82' + title: Nuxt Architecture. + --- + :: + + ::card + --- + icon: logos:vue + title: Vue Components. + description: Use built-in components (or your own!) inside your content. + --- + :: + + ::card + --- + icon: IconMarkdown + title: Write Markdown. + description: Enjoy the ease and simplicity of Markdown and discover MDC syntax. + --- + :: + + ::card + --- + icon: logos:tailwindcss-icon + title: TailwindCSS. + description: Tailwind is built in for great developer experience and rapid customization. + --- + :: + + ::card + --- + icon: noto:rocket + title: Hybrid Rendering. + description: Your content and its server can be deployed in any node environment. + --- + :: + + ::card + --- + icon: noto:puzzle-piece + title: Extensible. + description: Customize the whole design, or add components using slots - you can make Docus your own. + --- + :: +:: diff --git a/docs/content/1.get-started.md b/docs/content/1.get-started.md new file mode 100644 index 000000000..c4c97af88 --- /dev/null +++ b/docs/content/1.get-started.md @@ -0,0 +1,68 @@ +--- +title: Get Started +description: From your Markdown files to a deployed website in few minutes. +icon: heroicons-outline:lightning-bolt +layout: page +--- + +::article-hero +:: + +## Play online + +You can start playing with Docus in your browser using our online sandboxes: + +:button-link[Play on StackBlitz]{icon="IconStackBlitz" href="https://stackblitz.com/github/nuxt/starter/tree/content" blank .mr-2} +:button-link[Play on CodeSandbox]{icon="IconCodeSandBox" href="https://codesandbox.io/s/github/nuxt/starter/tree/content" blank} + +## New Project + +1. You can start a fresh Docus project with: + +```bash [npx] +npx nuxi init docus-app -t nuxtlabs/docus-starter +``` + +2. Install the dependencies in the `docus-app` folder: + +::code-group + ```bash [yarn] + yarn install + ``` + + ```bash [npm] + npm install + ``` + + ```bash [pnpm] + pnpm install --shamefully-hoist + ``` +:: + +3. Now you'll be able to use `yarn dev` to start your Nuxt content app in development mode: + +::code-group + +```bash [yarn] +yarn dev +``` + +```bash [npm] +npm run dev +``` + +```bash [pnpm] +pnpm run dev +``` + +:: + +::alert{type="info"} +That project will be shipped with the [Docs Theme](/packages/docs/features). +
+If you want to change the theme, you can check out the [Guide section](/guide/theming/usage) about it. +:: + +::alert{type="success"} +✨ Well done! A browser window should automatically open for +:: diff --git a/docs/content/1.get-started/0.index.md b/docs/content/1.get-started/0.index.md deleted file mode 100644 index ca3985984..000000000 --- a/docs/content/1.get-started/0.index.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -navigation: - collapse: true ---- diff --git a/docs/content/1.get-started/1.installation.md b/docs/content/1.get-started/1.installation.md deleted file mode 100644 index 88a70e70d..000000000 --- a/docs/content/1.get-started/1.installation.md +++ /dev/null @@ -1,89 +0,0 @@ -# Installation - -Setting up a beautiful website with Docus is one command away. 🤙 - ---- - -Docus is an opinionated [Nuxt](https://nuxtjs.org) application that allows you to generate **content-based websites** with ease. - -## System Requirements - -- Node.js [14](https://nodejs.org/en/) or above. -- MacOS, Windows or Linux. - -## Quick start - -### Clone locally - -You can download the starter locally using [degit](https://github.com/Rich-Harris/degit). - -This allows you to add documentation to your existing repository. - -```bash -npx degit nuxtlabs/docus-starter#main docs -``` - -This command will create a new folder named `docs/` and download the Docus starter inside. - -### GitHub Template - -Start your documentation in a new GitHub repository by using our [GitHub template](https://github.com/nuxtlabs/docus-starter): - -::button-link{size="medium" blank href="/nuxtlabs/docus-starter/generate"} -Create a repo with the Docus starter -:: - -### Vercel Template - -Vercel lets you set up the starter on your favorite Git provider (GitHub, GitLab or Bitbucket) - and deploy for free. - -::button-link{blank href="https://vercel.com/new/git/external?repository-url=https%3A%2F%2Fgithub.com%2Fnuxtlabs%2Fdocus-starter"} -Create and deploy using Vercel -:: - -## Directory Structure - -The directory structure of a minimal **Docus** project is the following: - -```bash -| content/ ----| index.md -| static/ ----| icon.png ----| preview.png -| nuxt.config.{ts|js} -| docus.config.{ts|js} -| package.json -``` - -- Configure Docus with [docus.config.js](/get-started/configuration). -- Write your documentation within [content/](/writing/my-first-page). -- Use our [included components](/theme/components) or yours. -- Manage your images and assets in [static/](/features/assets). - -## Start docus - -Start docus in development mode: - -```bash -yarn dev -``` - -The development server will listen on [http://localhost:4000](http://localhost:4000) - -Checkout the [Deployment](/features/deployment) section when you are ready to publish your documentation. - -## Demo - -::video-player{loop playsinline controls} ---- -sources: -- src: https://res.cloudinary.com/nuxt/video/upload/q_auto/v1612886404/docus/docus-vercel_wwaryz.webm - type: video/webm -- src: https://res.cloudinary.com/nuxt/video/upload/q_auto/v1612886404/docus/docus-vercel_wwaryz.mp4 - type: video/mp4 -- src: https//res.cloudinary.com/nuxt/video/upload/q_auto/v1612886404/docus/docus-vercel_wwaryz.ogv - type: video/ogg -poster: https://res.cloudinary.com/nuxt/video/upload/v1612886404/docus/docus-vercel_wwaryz.jpg ---- -:: diff --git a/docs/content/1.get-started/2.configuration.md b/docs/content/1.get-started/2.configuration.md deleted file mode 100644 index ec03ea90e..000000000 --- a/docs/content/1.get-started/2.configuration.md +++ /dev/null @@ -1,91 +0,0 @@ -# Configuration - -Tailor Docus for your own identity easily. 🌈 - ---- - -## Website - -You need to create a `docus.config.js` file to configure the website. - -::code-group - -```javascript [Default config] -export default { - title: "Docus", - url: "https://docus.dev", - description: 'Write in markdown, use Vue components, style with Windi CSS and enjoy the power of Nuxt.', - template: 'docs', - contentDir: 'content' -} -``` - -```javascript [Full config] -export default { - title: "Docus", - url: "https://docus.dev", - description: 'Write in markdown, use Vue components, style with Windi CSS and enjoy the power of Nuxt.', - template: 'docs', - contentDir: 'content', - layout: { - header: true, - footer: true, - aside: false, - asideClass: '', - fluid: false - }, - github: { - repo: 'nuxtlabs/docus', - branch: 'main', - dir: 'docs', - releases: true, - url: 'https://github.com', - apiUrl: 'https://api.github.com/repos' - }, - algolia: { - indexName: 'your_index_name', - apiKey: 'your_api_key' - }, - theme: { - header: { - title: false, - logo: { - dark: '/img/logo-dark.svg', - light: '/img/logo-light.svg' - } - }, - colors: { - primary: '#00DC82' - } - } -} -``` - -:: - -### Properties - -| Key | Type | Description | -|---------|------|-------------| -| `title` | `String` | Website title. | -| `description` | `String` | Brief summary about your website, added for SEO and OpenGraph. | -| `url` | `String` | Target URL of your website. | -| `contentDir` | `String` | The path of your website content directory. | -| `theme` | `Object` | Your theme configuration, see [here](/theme/settings) for default theme. | -| **Layout** | | | -| `layout.header` | `Boolean` | If set to `false`, it will hide the AppHeader. | -| `layout.footer` | `Boolean` | If set to `false`, it will hide the AppFooter. | -| `layout.fluid` | `Boolean` | If set to `true`, the page container will be fluid. | -| `layout.aside` | `Boolean` | If set to `false`, it will hide the AppAside. | -| `layout.banner` | `Boolean` | If set to `true`, it will show the AppBanner. | -| `layout.asideClass` | `String` | Class attribute that will be applied to AsideNavigation. | -| :icon-git-hub{class="inline w-4 -mt-0.5"} **GitHub** | | | -| `github.repo` | `String` | Your project repository. | -| `github.branch` | `String` | The branch to link. | -| `github.dir` | `String` | The directory in which Docus lives in that repository. | -| `github.releases` | `Boolean\|String` | If set to true, Docus will fetch Github releases. If set to a string, Docus will use it as the target repository to fetch releases. | -| `github.url` | `String` | The root URL of GitHub. (set by default) | -| `github.apiUrl` | `String` | The API URL of GitHub. (set by default) | -| :icon-algolia{class="inline w-4 -mt-0.5"} **DocSearch** | -| `algolia.indexName` | `String` | The name of your [DocSearch](https://docsearch.algolia.com) index. | -| `algolia.apiKey` | `String` | Your [DocSearch](https://docsearch.algolia.com) API key. | diff --git a/docs/content/2.guide/1.concepts/1.what-is-docus.md b/docs/content/2.guide/1.concepts/1.what-is-docus.md new file mode 100644 index 000000000..97103b7a5 --- /dev/null +++ b/docs/content/2.guide/1.concepts/1.what-is-docus.md @@ -0,0 +1,60 @@ +--- +title: "What is Docus ?" +description: "Docus is a website generator based on Nuxt 3 and Nuxt Content." +--- + +It comes with all of these two technologies features: + +::list + +- Edge and Static rendering +- First-class developer experience +- Wide ecosystem of modules +- A Markdown syntax made for Vue components (**MDC**) +- Navigation generation +- Code highlighting +- Blazing fast hot module replacement in development +:: + +Docus combines these two and creates a seamless integration of your content files into your website pages. + +## Another documentation generator ? + +Docus is much more than a documentation generator, it's a document-driven framework. + +The current website you are reading consists in two packages: + +- [@docus/base]() +- [@docus/docs-theme]() + +@docus/base provides the binding between your content files and your website pages. + +It also comes with a lot of features you're about to discover, like [useDocus composable](), or [theming](). + +@docus/docs-theme provides all the UI related features. + +You could obviously replace @docus/docs-theme by any other theme, official ones, or community ones! + +::alert{type="info"} +Browse our [packages section](/packages/docs/features) to discover all the available themes. +:: + +## Document-driven framework + +Docus provides a direct binding between `content/**/*.md` and your website pages. + +This pattern enables a lot of possibilities from your Markdown documents, giving a lot of power to content-creators. + +It also makes theme creation as bliss, as developer always have access to front-matter and document body from the current page via `useDocus()` composable. + +You could use front-matter to create heavily customizable website layouts that content-creators can switch between and customize in a straightforward way. + +## Some history + +Docus is inherited from `@nuxt/content-theme-docs`, which used to be the documentation theme to be used with `@nuxt/content`. + +The `@docus/docs-theme` package is now the official alternative to `@nuxt/content-theme-docs` using Nuxt 3. + +As here we are pursuing bigger projects at [NuxtLabs](https://nuxtlabs.com), we needed a solid foundation like `@docus/base` to build our official themes and packages. + +You can see Docus as a extendable Nuxt 3 project that comes with batteries included to build themes and document-driven websites. diff --git a/docs/content/2.guide/1.concepts/2.content-creation.md b/docs/content/2.guide/1.concepts/2.content-creation.md new file mode 100644 index 000000000..89f653676 --- /dev/null +++ b/docs/content/2.guide/1.concepts/2.content-creation.md @@ -0,0 +1,70 @@ +--- +title: "Content creation" +description: "Docus offers an exceptional authoring experience that gives superpowers to your team." +--- + +Content creators can focus on creating pages structure and content. + +Developers can focus on creating components and layouts to interact with from the content. + +## Filesystem-Based Routing + +Based on [Nuxt Pages](https://v3.nuxtjs.org/guide/directory-structure/pages), Docus uses a filesystem-based routing system. + +Nuxt natively makes a binding between your `pages/**/*.vue` files and your website routes. + +Docus uses this to make a similar binding between your `content/**/*.md` files and your website pages. + +Here is some examples of how this works: + +| File | Internal path | +| ----------------- | :-------- | +| `content/index.md` | `/` | +| `content/about.md` | `/about` | +| `content/blog/index.md` | `/blog` | +| `content/blog/hello.md` | `/blog/hello` | +| `content/1.guide/2.installation` | `/guide/installation` | + +::alert{type="info"} +Check out [this page](https://content.nuxtjs.org/guide/writing/content-directory) from Nuxt Content documentation to learn more about the `content/` directory. +:: + +## Who does what? + +By skipping the concept of page components, we put a lot of power in the hands of the content creators. + +- [MDC syntax](https://content.nuxtjs.org/guide/writing/mdc) offers the smoothest way to write content and interact with components. + +It allows content teams to quickly iterate on page structure and contents. + +- [`` component](https://content.nuxtjs.org/api/components/markdown) gives developers the possibility to create Markdown-compatible slots into components. + +It allows developers to focus on making the best themes for the content-creators to play with. + +## Globally accessible page + +By enforcing this content<->page binding, Docus can expose a global variable that refers to the current `.md` file the user is browsing. + +```ts +const { page } = useDocus() +``` + +This allows a lot of things, like being able to change the layout of your page from any content file. + +```md [content/index.md] +--- +layout: page +--- +``` + +You could also imagine configuring the layouts from there. + +```md [content/index.md] +--- +layout: docs +aside: true +toc: false +--- +``` + +The possibilities are endless from this pattern, it's all up to theme creators to decide how they want to use it. diff --git a/docs/content/2.guide/1.concepts/3.customization.md b/docs/content/2.guide/1.concepts/3.customization.md new file mode 100644 index 000000000..040c94842 --- /dev/null +++ b/docs/content/2.guide/1.concepts/3.customization.md @@ -0,0 +1,45 @@ +--- +title: "Customization" +description: "Docus comes with utilities that takes advantage of Nuxt 3 extending features to provide an amazing developer experience for theme authors." +--- + +`@docus/base` enforce a specific way to build a website with Nuxt which allows theme authors to focus on providing components and layouts. + +It also allows the Docus team to continually improve the Docus ecosystem without needing theme authors to update anything. + +## Theming + +Themes are regular Nuxt 3 projects that extends `@docus/base` and has a `theme` key in `nuxt.config`. + +These themes can extend your project by adding `modules`, `pages`, `components`, `plugins` and anything else that a native Nuxt 3 project supports. + +In the [Theming](/guide/theming/usage) section, you'll discover how to use themes with Docus. + +::alert{type="info"} +Browse our [themes section](/packages/docs/features) to discover all the available themes. +:: + +## Overwriting + +If you want to overwrite **any** component provided by a theme to make it yours, the method is really easy! + +As you project files will always have priority over the theme ones, you only have to keep the naming. + +Let's say you want to update the `fluid.vue` layout from `@docus/docs-theme`. + +You simply have to create a `layouts/fluid.vue` file at your project-level. + +This layout will take priority over the one provided by the theme, and let you override it. + +Most themes are shipped as NPM packages that has the exact same structure as any other Nuxt project. + +That means you can easily: + +- Dig into `node_modules/@docus/docs-theme/layouts` or `/components` +- Make a copy of `fluid.vue` in `layouts/` +- Apply your changes +- Keep your pages using `layout: fluid`, and profit of the new additions you've made! + +This pattern is really convenient for both the theme author and the person in charge of the project using it! + +It applies to any component, composables, layouts, pages, middleware, and any extendable Nuxt 3 feature. diff --git a/docs/content/2.guide/1.concepts/_dir.yml b/docs/content/2.guide/1.concepts/_dir.yml new file mode 100644 index 000000000..aeb0e613d --- /dev/null +++ b/docs/content/2.guide/1.concepts/_dir.yml @@ -0,0 +1 @@ +icon: heroicons-outline:light-bulb diff --git a/docs/content/2.guide/2.theming/1.usage.md b/docs/content/2.guide/2.theming/1.usage.md new file mode 100644 index 000000000..1894d9f8d --- /dev/null +++ b/docs/content/2.guide/2.theming/1.usage.md @@ -0,0 +1,23 @@ +--- +title: "Using a theme" +description: "Docus is made to be used with themes and aims at making it both easy to use and customize." +--- + +::alert{type="info"} +Browse our [themes section](/packages/docs-theme/features) to discover all the available themes. +:: + +In general, you'll create your Docus project with the starter, that ships with `@docus/docs-theme`. + +If you want to change your theme you can change the `extends` key of your `nuxt.config`. + +```diff +export default defineNuxtConfig({ +- extends: ['./node_modules/@docus/docs-theme'], ++ extends: ['./my/theme/path'], +}) +``` + +::alert{type="info"} +Browse [Configuration](/guide/theming/configuration) to discover how to configure your theme. +:: diff --git a/docs/content/2.guide/2.theming/2.configuration.md b/docs/content/2.guide/2.theming/2.configuration.md new file mode 100644 index 000000000..9442a261d --- /dev/null +++ b/docs/content/2.guide/2.theming/2.configuration.md @@ -0,0 +1,48 @@ +--- +title: "Configuration" +description: "Configuring a theme is extremly easy with Docus." +--- + +Any theme exposes its available configuration keys by defining them in `theme` key from `nuxt.config`. + +Once the Nuxt project boots, the theme configuration typings will be generated automatically and available globally. + +## `_theme.yml` + +The `_theme.yml` file is the preferred way to configure the theme you are using in your project. + +It should follow the same structure as the `theme` key in nuxt.config except it is a `.yml` file. + +This file benefit of **HMR** as any other `content/` files, you can change these configurations without needing to reboot. + +It has to be placed at root of `content/` directory. + +```yaml [_theme.yml] +title: "The Next Big Thing" +description: "Let's conquer the world!" +``` + +## `theme` key in `nuxt.config` + +By using this key, you can define values that will be used as defaults for your project. + +Usually, this key is used by theme authors to define their default values, but some keys has to be defined there. + +These keys will usually be listed in your theme configuration page. + +```typescript +export default defineNuxtConfig({ + theme: { + title: "My Docus Theme", + description: "What a wonderful way to build a documentation!" + } +}) +``` + +## Merging + +If you are using both `theme` key in `nuxt.config` and `_theme.yml` file, you have to understand how these gets merged. + +As `theme` key is supposed to be used for _defaults_, it will be merged with `_theme.yml` file. + +`_theme.yml` will always have priority over any `theme` key in all the `nuxt.config` you're extending from. diff --git a/docs/content/2.guide/2.theming/3.creation.md b/docs/content/2.guide/2.theming/3.creation.md new file mode 100644 index 000000000..ec2f73f14 --- /dev/null +++ b/docs/content/2.guide/2.theming/3.creation.md @@ -0,0 +1,36 @@ +--- +title: "Creating a theme" +description: "Discover how to create a theme for Docus in few minutes." +--- + +If you want to create a theme, the easiest way is to start from our template: + +```bash +npx nuxi init docus-theme -t nuxtlabs/docus-theme-starter +``` + +## How does theming works ? + +Docus takes advantage of the new `extends` feature from Nuxt 3 to create a straightforward approach to theming. + +Extends feature is capable of merging two or more Nuxt projects, as long as they expose a `nuxt.config` file. + +With Docus, themes should extends from [@docus/base](/packages/base/features) to keep the same structure in terms of API, anything else can be customized to your own needs. + +## Things to know + +Themes has the exact same structure as a regular [Nuxt](https://v3.nuxtjs.org) project. + +::alert{type="info"} +Learn more about Nuxt 3 directory structure [here](https://v3.nuxtjs.org/guide/directory-structure). +:: + +You can create components or layouts, import plugins, use middlewares, or do anything you would normally do with a Nuxt project. + +You can think of your theme as the "shell" of the Docus project that will be using it. + +## Publishing + +If you want to publish your theme, it is as simple as running `npm publish`{lang="bash"} from the root of your Nuxt project directory. + +Do not forget to remove `"private": true`{lang="json"} from your package.json beforehand. diff --git a/docs/content/2.guide/2.theming/_dir.yml b/docs/content/2.guide/2.theming/_dir.yml new file mode 100644 index 000000000..3b6b54808 --- /dev/null +++ b/docs/content/2.guide/2.theming/_dir.yml @@ -0,0 +1,2 @@ +title: Theming +icon: heroicons-outline:adjustments diff --git a/docs/content/2.guide/3.authoring/1.my-first-page.md b/docs/content/2.guide/3.authoring/1.my-first-page.md new file mode 100644 index 000000000..88493fce9 --- /dev/null +++ b/docs/content/2.guide/3.authoring/1.my-first-page.md @@ -0,0 +1,82 @@ +--- +title: "My first page" +description: "The fastest path to writing your content." +--- + +Let's walk through the creation of a simple introduction page. + +## Create the file + +With Docus, a page is a Markdown file inside content directory. + +``` +content/ +├─ index.md +``` + +::alert{type="info"} +You can learn more about the content directory on [this page](https://content.nuxtjs.org/guide/writing/content-directory). +:: + +## Configure the page + +Specifying [Front-matter](/writing/front-matter) data lets you configure your page data. + +Here we want to create a page that uses the `fluid` layout and is not displayed in navigation. + +```markdown [index.md] +--- +layout: fluid +navigation: false +--- +``` + +::alert{type="info"} +You can learn more about front-matter on [this page](/writing/front-matter). +:: + +## Use your components + +Using our custom syntax, you can easily add and configure components into your pages. + +```markdown [index.md] +::block-hero +--- +cta: + - Get started + - /getting-started + +secondary: + - Open on GitHub → + - https://github.com/nuxtlabs/docus + +snippet: npx nuxi init docus-app -t nuxtlabs/docus-starter +--- + +#title +The next big thing + +#description +The favorite package of your favorite package. +:: +``` + +::alert{type="info"} +You can learn more about the MDC Syntax on [this page](https://content.nuxtjs.org/guide/writing/mdc). +:: + +## Add Markdown content + +Using our custom Prose system, you can use Markdown and customize its rendering with ease. + +```markdown [index.md] +::container{padded} +Don't forget to follow us on [**Twitter**](https://twitter.com/nuxtlabs). + +[Go back](/guide/authoring/my-first-page). +:: +``` + +::button-link{size="large" .w-full .justify-center .items-center to="/guide/authoring/example-page"} +Checkout the result :icon{name="heroicons-outline:arrow-right" class="ml-2"} +:: diff --git a/docs/content/2.guide/3.authoring/_dir.yml b/docs/content/2.guide/3.authoring/_dir.yml new file mode 100644 index 000000000..e2a5c5e3d --- /dev/null +++ b/docs/content/2.guide/3.authoring/_dir.yml @@ -0,0 +1,2 @@ +title: Authoring +icon: heroicons-outline:pencil-alt diff --git a/docs/content/2.writing/example-page.md b/docs/content/2.guide/3.authoring/example-page.md similarity index 61% rename from docs/content/2.writing/example-page.md rename to docs/content/2.guide/3.authoring/example-page.md index faa6ad4cd..8b2f8eb2c 100644 --- a/docs/content/2.writing/example-page.md +++ b/docs/content/2.guide/3.authoring/example-page.md @@ -1,20 +1,19 @@ --- navigation: false -layout: - asideClass: 'block lg:hidden' - aside: true - footer: false +layout: fluid --- ::block-hero --- cta: - Get started - - /get-started/installation + - /getting-started + secondary: - Open on GitHub → - https://github.com/nuxtlabs/docus -snippet: npx degit nuxtlabs/docus-starter#main docs + +snippet: npx nuxi init docus-app -t nuxtlabs/docus-starter --- #title @@ -24,6 +23,10 @@ The next big thing The favorite package of your favorite package. :: +::container{padded} + Don't forget to follow us on [Twitter](https://twitter.com/nuxtlabs). -[Go back](/writing/my-first-page). +[Go back](/guide/authoring/my-first-page). + +:: diff --git a/docs/content/2.writing/0.index.md b/docs/content/2.writing/0.index.md deleted file mode 100644 index ca3985984..000000000 --- a/docs/content/2.writing/0.index.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -navigation: - collapse: true ---- diff --git a/docs/content/2.writing/1.my-first-page.md b/docs/content/2.writing/1.my-first-page.md deleted file mode 100644 index 100461fdd..000000000 --- a/docs/content/2.writing/1.my-first-page.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -navigation: - title: My first page ---- - -# Writing my first page - -The fastest path to writing your content. 🏎 - ---- - -Let's walk through the creation of a simple introduction page. - -## Create the file - -With Docus, a page is a Markdown file inside content directory. - -``` [Directory structure] -content/ - 1.index.md -``` - -## Write Front-matter - -Specifying [Front-matter](/writing/front-matter) data lets you configure your page data. - -```markdown [index.md] ---- -navigation: false // We want to hide this page from navigation -layout: // Hide aside on large screens, preserve it for mobile - asideClass: 'block lg:hidden' - aside: true - footer: false ---- -``` - -## Use your components - -Using our custom syntax, you can easily add and configure components into your pages. - -```markdown [index.md] -... Front-matter 👆 - -::block-hero ---- -cta: - - Get started - - /get-started/installation -secondary: - - Open on GitHub → - - https://github.com/nuxtlabs/docus -snippet: npx degit nuxtlabs/docus-starter#main docs ---- - -#title -The next big thing - -#description -The favorite package of your favorite package. -:: -``` - -## Add Markdown content - -Using our custom Prose system, you can use Markdown and customize its rendering with ease. - -```markdown [index.md] -... Block Hero component 👆 - -Don't forget to follow us on [**Twitter**](https://twitter.com/nuxtlabs). - -[Go back](/writing/my-first-page). -``` - -## Checkout your work! - -Visit the [example page](/writing/example-page). diff --git a/docs/content/2.writing/2.syntax.md b/docs/content/2.writing/2.syntax.md deleted file mode 100644 index 827115b8f..000000000 --- a/docs/content/2.writing/2.syntax.md +++ /dev/null @@ -1,369 +0,0 @@ -# Syntax - -Docus syntax makes you love your components even more. 🤝 - ---- - -Docus writing experience is based on a specific syntax built upon Vue components. - -It enables you to write **inline** and **block** components straight from your Markdown files. - -It allows you to write Markdown documents interacting deeply with any component from your `components` directory. - -Docus default theme also comes with a lot of [pre-defined components](/theme/components). - -## Component Blocks - -Component blocks is the first usage of this new syntax. - -There is a few things to know about it: - -- To create a component block you have to use **`::`** blocks. - -::code-group - - ```md [Code] - ::alert - The alert component. - :: - ``` - - ::code-block{label="Preview" preview} - ::alert - The alert component. - :: - :: -:: - -- The component name has to be in **snake-case**. - -```markdown -::code-block -:: -``` - -- This syntax supports **Props**. - -::code-group - ```md [Code] - // Inline method - ::alert{type="warning"} - The **alert** component. - :: - - - // YAML Method - ::card - --- - icon: IconNuxt - description: Harness the full power of Nuxt and the Nuxt ecosystem. - iconClass: 'text-hex-00DC82' - title: Nuxt Architecture. - --- - :: - ``` - - ```vue [Components] - -
- -
- - -
- - - - - {{ title }} - - -
- ``` - - ::code-block{label="Preview" preview} - ::alert{type="warning"} - The **alert** component. - :: - - ::card - --- - icon: IconNuxt - description: Harness the full power of Nuxt and the Nuxt ecosystem. - iconClass: 'text-hex-00DC82' - title: Nuxt Architecture. - --- - :: - :: -:: - -- This syntax supports **Markdown rendering**. - -::code-group - - ```md [Code] - ::alert - The **alert** component. - :: - ``` - - ```vue [Component] -
- -
- ``` - - ::code-block{label="Preview" preview} - ::alert - The **alert** component. - :: - :: -:: - -- This syntax supports **Nesting Components**. - -::code-group - - ```md [Code] - ::alert - The alert component. - - :::alert{type="warning"} - A nested alert. - - :::alert - A super-nested alert. - ::: - ::: - :: - ``` - - ```vue [Component] -
- -
- ``` - - ::code-block{label="Preview" preview} - ::alert - The alert component. - - :::alert{type="warning"} - A nested alert. - - :::alert - A super-nested alert. - ::: - ::: - :: -:: - -- This syntax supports **Default Slot** and **Named Slots**. - -::code-group - - ```md [Code] - ::card - --- - icon: IconNuxt - title: A complex card. - --- - - Default slot - - #description - ::alert - Description slot - :: - :: - ``` - - ```vue [Component] -
- - - - - {{ title }} - - -
- ``` - - ::code-block{label="Preview" preview} - ::card - --- - icon: IconNuxt - title: A complex card. - --- - - Default slot - - #description - ::alert - Description slot - :: - :: - :: -:: - -- You can **indent** the content of these blocks. - -::code-group - - ```md [Code] - ::card - --- - icon: IconNuxt - title: A complex card. - --- - - Default slot - - #description - ::alert - Description slot - :: - :: - ``` - - ::code-block{label="Preview" preview} - ::card - --- - icon: IconNuxt - title: A complex card. - --- - - Default slot - - #description - ::alert - Description slot - :: - :: - :: -:: - -- You can add more `::::` when nesting components as a visual reminder. - -::code-group - - ```md [Code] - ::card - --- - icon: IconNuxt - title: A complex card. - --- - - Default slot - - #description - :::alert - Description slot - ::: - :: - ``` - - ::code-block{label="Preview" preview} - ::card - --- - icon: IconNuxt - title: A complex card. - --- - - Default slot - - #description - :::alert - Description slot - ::: - :: - :: -:: - -## Inline Components - -Inline components are used to put components in the middle of any Markdown block. - -- They only need one **`:`** in front of the component name. - -```markdown -:icon-nuxt -``` - -- This syntax supports **Props**. - -::code-group - - ```md [Code] - Hello Nuxt Icon :icon-nuxt{class="inline w-6"} 👋 - ``` - - ::code-block{label="Preview" preview} - Hello Nuxt Icon :icon-nuxt{class="inline w-6"} 👋 - :: -:: - -- This syntax supports **Default Slot**. - -::code-group - - ```md [Code] - :button-link[A button link]{bold} - - :button-link{bold}[A button link] - ``` - - ::code-block{label="Preview" preview} - :button-link[A button link]{bold} - :: -:: - - -## Span Text - -To create inline spans in your text you can use `[TEXT]` syntax. - -::code-group - - ```md [Code] - Hello [World]! - ``` - - ::code-block{label="Preview" preview} - Hello [World]! - :: -:: - -## Attributes - -Attributes are useful for highlighting and modifying part of paragraph. The syntax is nearly similar to inline components and markdown links syntax. - -::code-group - - ```md [Code] - Hello [World]{.text-primary-500}! - ``` - - ::code-block{label="Preview" preview} - Hello [World]{.text-primary-500}! - :: -:: - -Other that spans the attribute syntax will work on images, links, `code`, **bold** and _italic_ texts. - - -::code-group - - ```md [Code] - Attributes works on ![](/icon.png){.inline.w-5.h-5.bg-primary-500} image, - [link](#attributes){.bg-primary-400}, `code`{.text-red-500}, - _italic_{.bg-primary-500} and **bold**{.bg-primary-500} texts. - ``` - - ::code-block{label="Preview" preview} - Attributes works on ![](/icon.png){.inline.w-5.h-5.bg-primary-500} image, - [link](#attributes){.bg-primary-400}, `code`{.text-red-500}, - _italic_{.bg-primary-500} and **bold**{.bg-primary-500} texts. - :: -:: diff --git a/docs/content/2.writing/3.front-matter.md b/docs/content/2.writing/3.front-matter.md deleted file mode 100644 index 6eeb079b8..000000000 --- a/docs/content/2.writing/3.front-matter.md +++ /dev/null @@ -1,91 +0,0 @@ -# Front-matter - -Easily configure the rendering of your Markdown pages. 📝 - ---- - -Front-matter is used to transmit data to your components and templates, from any page or directory. - -## Native parameters - -Docus core and default theme includes a lot of native parameters that you can already use to configure your pages. - -| Key | Type | Description | -|---------|--------| -----| -| `title` | `String` | Title of the page (will also be injected in metas) | -| `description` | `String` | Description of the page, will be added below the title and injected into the metas | -| `version` | `Float` | Alert users that the page is new with a badge. Once the page is seen, the version is stored in localStorage and the badge won't be shown again until the version is incremented | -| `badge` | `String` | Adds a badge next to the page title | -| `position` | `Number` | Position of the page within the category. By default we use the filename prefix `POSITION.`, example: `1.first-page.md` | -| `draft` | `Boolean` | Mark the page as draft (and only display it in development mode). By default we use the filename suffix `.draft`, example: `3.my-draft-page.draft.md` | -| `head` | `Object` | Add the HTML Head tags for the current page. The structure of head property is same as [Nuxt head method](https://nuxtjs.org/docs/2.x/components-glossary/pages-head/) but in YAML syntax. To know the list of options you can give to head, take a look at [vue-meta documentation](https://vue-meta.nuxtjs.org/api/#metainfo-properties) | -| **Navigation** | | | -| `navigation` | `false \| Object` | If set to `false`, the page will not display in Docus navigation menus and Next/Prev links | -| `navigation.title` | `String` | If set, overrides the title that will be displayed in navigation menus | -| `navigation.nested`| `Boolean`| If set to `false`, the nested pages will not display in Docus navigation menus | -| `navigation.exclusive` | `Boolean` | If set to `true`, other pages will not show in the left menu when user visiting the page or its nested pages. | -| `navigation.collapse` | `Boolean` | If set to `true` in an `index.md`, the category will be collapsed by default in aside navigation. | -| `navigation.redirect` | `String` | If set in an `index.md`, the page will redirect to the specified path when loaded, can be useful for empty categories pages. | -| **Table of Contents** | | | -| `toc` | `false \| Object` | If set to `false`, it will disable the table of contents generation. | -| `toc.title` | `String` | If set, overrides the title of table of contents section. | -| `toc.depth` | `Number` | Determine the depth of generated TOC. Default value is `2`, which mean only detect `h2` and `h3` tags. | -| **Layout** | | | -| `layout.header` | `Boolean` | If set to `false`, it will hide the AppHeader. | -| `layout.footer` | `Boolean` | If set to `false`, it will hide the AppFooter. | -| `layout.fluid` | `Boolean` | If set to `true`, the page container will be fluid. | -| `layout.aside` | `Boolean` | If set to `false`, it will hide the AppAside. | -| `layout.asideClass` | `String` | Class attribute that will be applied to AsideNavigation. | - -## Shortcuts - -The **title** and **description** are automatically filled in from the Markdown content: - -```md -# Title of the page - -Description of the page -``` - -You can overwrite them using the Front-matter: - -```md ---- -title: Overwritten title -description: Overwritten description ---- - -# Title of the page - -Description of the page -``` - -## Inheritance - -`navigation` and `layout` keys are inherited to direct directory and childrens. - -You can set defaults for a whole directory tree by editing its `index.md` Front-matter. - -``` [Directory structure] -content/ - 1.examples/ - index.md - 1.first-example.md - 2.second-example.md - 3.third-example.md -``` - -```markdown [index.md] ---- -layout: - aside: false - footer: false -navigation: - title: Example - exclusive: true ---- -``` - -In that example, all childrens of `1.examples/` will have `aside` and `footer` set to false by default. - -This way, you can create complex website structures effortlessly. diff --git a/docs/content/2.writing/4.prose.md b/docs/content/2.writing/4.prose.md deleted file mode 100644 index 8674f14e1..000000000 --- a/docs/content/2.writing/4.prose.md +++ /dev/null @@ -1,341 +0,0 @@ -# Prose - -Customizing your Markdown rendering has never been easier. 🧙‍♂️ - ---- - -Docus Markdown rendering preserves the HTML structure of your file. - -We are using a per-tag component system that allows you to customize your Markdown rendering per HTML tag. - -## Components - -Here is a list of all the Prose components currently implemented. - -### `ProseA` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/prose/ProseA.vue) - -::code-group - - ```markdown [Code] - [Link](/writing/prose) - ```` - - ::code-block{label="Preview"} - [Link](/writing/prose) - :: - -:: - -### `ProseBlockquote` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/prose/ProseBlockquote.vue) - -::code-group - - ```markdown [Code] - > Block quote - ```` - - ::code-block{label="Preview"} - > Block quote - :: - -:: - -### `ProseCode` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/prose/ProseCode.vue) - -::code-group - - ```markdown [Code] - ```javascript - export default () => { - console.log('Code block') - } - ``` - ``` - - ::code-block{label="Preview"} - - ```javascript - export default () => { - console.log('Code block') - } - ``` - - :: - -:: - -### `ProseCodeInline` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/prose/ProseCodeInline.vue) - -`code inline`. - -::code-group - - ```markdown [Code] - `code inline`. - ``` - - ::code-block{label="Preview"} - `code inline`. - :: - -:: - -### `ProseH1` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/prose/ProseH1.vue) - -::code-group - - ```markdown [Code] - # H1 Heading - ``` - - ::code-block{label="Preview"} - # H1 Heading - :: - -:: - -### `ProseH2` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/prose/ProseH2.vue) - -::code-group - - ```markdown [Code] - ## H2 Heading - ``` - - ::code-block{label="Preview"} - ## H2 Heading - :: - -:: - -### `ProseH3` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/prose/ProseH3.vue) - -::code-group - - ```markdown [Code] - ### H3 Heading - ``` - - ::code-block{label="Preview"} - ### H3 Heading - :: - -:: - -### `ProseHr` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/prose/ProseHr.vue) - -::code-group - - ```markdown [Code] - Divider under. - - --- - - Divider above. - ``` - - ::code-block{label="Preview"} - Divider under. - - --- - - Divider above. - :: - -:: - -### `ProseImg` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/prose/ProseImg.vue) - -::code-group - - ```markdown [Code] - ![A Cool Image](/preview.png) - ``` - - ::code-block{label="Preview"} - ![A Cool Image](/preview.png) - :: - -:: - -### `ProseUl` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/prose/ProseUl.vue) - -::code-group - - ```markdown [Code] - - Just - - An - - Unordered - - List - ``` - - ::code-block{label="Preview"} - - Just - - An - - Unordered - - List - :: - -:: - -### `ProseLi` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/prose/ProseLi.vue) - -::code-group - - ```markdown [Code] - - List element - ``` - - ::code-block{label="Preview"} - - List element - :: - -:: - -### `ProseOl` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/prose/ProseOl.vue) - -::code-group - - ```markdown [Code] - 1. Foo - 2. Bar - 3. Baz - ``` - - ::code-block{label="Preview"} - 1. Foo - 2. Bar - 3. Baz - :: - -:: - -### `ProseParagraph` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/prose/ProseParagraph.vue) - -::code-group - - ```markdown [Code] - Just a paragraph. - ``` - - ::code-block{label="Preview"} - Just a paragraph. - :: -:: - -### `ProseStrong` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/prose/ProseStrong.vue) - -::code-group - - ```markdown [Code] - **Just a strong paragraph.** - ``` - - ::code-block{label="Preview"} - **Just a strong paragraph.** - :: -:: - -### `ProseEm` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/prose/ProseEm.vue) - -::code-group - - ```markdown [Code] - _Just an italic paragraph._ - ``` - - ::code-block{label="Preview"} - _Just an italic paragraph._ - :: -:: - -### `ProseTable` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/prose/ProseTable.vue) - -::code-group - - ```markdown [Code] - | Key | Type | Description | - |---------|--------| -----| - | 1 | Wonderful | Table | - | 2 | Wonderful | Data | - | 3 | Wonderful | Website | - ``` - - ::code-block{label="Preview"} - | Key | Type | Description | - |---------|--------| -----| - | 1 | Wonderful | Table | - | 2 | Wonderful | Data | - | 3 | Wonderful | Website | - :: - -### `ProseTbody` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/prose/ProseTbody.vue) - -Included in **ProseTable** example. - -### `ProseTd` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/prose/ProseTd.vue) - -Included in **ProseTable** example. - -### `ProseTh` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/prose/ProseTh.vue) - -Included in **ProseTable** example. - -### `ProseThead` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/prose/ProseThead.vue) - -Included in **ProseTable** example. - -### `ProseTr` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/prose/ProseTr.vue) - -Included in **ProseTable** example. - -## Customizing - -If you want to customize a Prose component, here are the recommended steps: - -- Checkout the original component sources. -- Use the exact same props. -- Name it the same from your `components/` directory or subdirectories. -- Make it yours. 🚀 diff --git a/docs/content/3.features/0.index.md b/docs/content/3.features/0.index.md deleted file mode 100644 index ca3985984..000000000 --- a/docs/content/3.features/0.index.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -navigation: - collapse: true ---- diff --git a/docs/content/3.features/1.routing.md b/docs/content/3.features/1.routing.md deleted file mode 100644 index e2c8d31e6..000000000 --- a/docs/content/3.features/1.routing.md +++ /dev/null @@ -1,80 +0,0 @@ -# Filesystem routing - -A good looking website from any directory. 🔮 - ---- - -Each markdown page in the `contentDir` directory will become a page and will be listed in the left navigation. - -You can also put your markdown files in nested directories to generate nested routes. - -**Example** - -::code-group - -``` [Directory structure] -content/ - examples/ - basic-usage.md - setup.md -``` - -``` [Generated routes] -/examples/basic-usage -/setup -``` - -:: - -## Ordering - -You can easily build the navigation order from any directory using number prefixes. - -``` -content/ - 1.examples/ - index.md - 1.vercel.md - 2.netlify.md - 3.heroku.md - 2.frameworks/ - 1.vue.md - 2.nuxt.md -``` - -## Ignoring - -If you are working on a draft that you do not want to be list in the navigation or accessible via as a separate page, just prefix it with `"."`. - -It will ignore this file and it will not be accessible unless you're in **development** or **admin** mode. - -You can still use the content from these files using [`InjectContent`](/theme/components#inject-content) component. - -``` -content/ - 1.examples/ - .hidden.md // Ignored file - .2.frameworks/ // Ignored directory - hidden.md -``` - -> You can take a look at our [docs content folder](https://github.com/nuxt/content/tree/dev/docs/content/en) to see an example - - -## Non-Page Contents - -If you have some files that you don't want to have them as a separated pages but you want search among them, just prefix it with `"_"`. - -The only way to access these files is to use `$docus.search` API or `:InjectContetn` component. - -``` -content/ - 1.examples/ - _hidden.md // Filtered file - _2.frameworks/ // Filters directory - hidden.md -``` - -::alert -**Note**: The beginning `_` will remove from document path, and you don't need to use `_` in search queries. -:: diff --git a/docs/content/3.features/2.localization.md b/docs/content/3.features/2.localization.md deleted file mode 100644 index 9de3050d9..000000000 --- a/docs/content/3.features/2.localization.md +++ /dev/null @@ -1,55 +0,0 @@ -# Localization - -Enable i18n just by creating a directory. 🗺 - ---- - -The first level of directories in the `content/` folder are the locales used with [nuxt-i18n](https://github.com/nuxt-community/i18n-module) as defined in your `nuxt.config.js`. - -If no `en` directory is specified, all the files inside `content/` will be considered as **English**: - -```bash -content/ - 1.index.md - 2.about.md - setting.json -``` - -You can override the locales in your `nuxt.config.js`: - -```ts [nuxt.config.js] -import { withDocus } from 'docus' - -export default withDocus({ - i18n: { - locales: () => [{ - code: 'en', - iso: 'en-US', - file: 'en-US.js', - name: 'English' - }, { - code: 'fr', - iso: 'fr-FR', - file: 'fr-FR.js', - name: 'Français' - }] - } -}) -``` - -Then you'll need to use this directory structure: - -```bash -content/ - en/ - 1.index.md - 2.about.md - fr/ - 1.index.md - 2.about.md - setting.json -``` - -::alert{type="info"} -As explained in the [Nuxt config](/get-started/configuration#nuxt) section, we use `defu.arrayFn` to merge your config. You can override the `i18n.locales` array by using a function, or you can pass an array to concat with the default one (which only includes the `en` locale). -:: diff --git a/docs/content/3.features/3.assets.md b/docs/content/3.features/3.assets.md deleted file mode 100644 index 6e0ce06e3..000000000 --- a/docs/content/3.features/3.assets.md +++ /dev/null @@ -1,103 +0,0 @@ -# Assets - -Easily import and optimize your assets with pre-defined modules. 🙈 - ---- - -## Favicon and PWA Icon - -You can add a `static/icon.png` image to enable [nuxt-pwa](https://pwa.nuxtjs.org) and generate a favicon automatically. - -::alert -`icon.png` should be a square of at least 512x512px. -:: - -## Social preview - -You can add a `static/preview.png` image to have a social preview image in your metas. - -::alert -`preview.png` should be at least 640×320px (1280×640px for the best results). -:: - -## Images with dark mode - -In order to display an image for a specific color mode, you can use two classes: - -- `dark-img` -- `light-img` - -::code-group - ::code-block{label="Preview" active preview} - ![Logo light](/logo-light.svg){.light-img .m-0 width="219" height="40"} - ![Logo dark](/logo-dark.svg){.dark-img .m-0 width="219" height="40"} -

Switch between light and dark mode: 

- :: - - ```md [Code] - ![Logo light](/logo-light.svg){.light-img .m-0 width="219" height="40"} - ![Logo dark](/logo-dark.svg){.dark-img .m-0 width="219" height="40"} - ``` -:: - -## High performance images - -Docus uses [@nuxt/image](https://images.nuxtjs.org) to resize and optimize images to improve page performance. - -In order to allow `@nuxt/image` to optimize _remote_ images you will need to add the remote host into the domains list in your `nuxt.config.js`. - -::code-group - - ```js [nuxt.config] - export default { - image: { - domains: ['https://image.nuxtjs.org'] - } - } - ``` - - ```md [Code] - :nuxt-picture{src="https://image.nuxtjs.org/social.png" width="1280" height="640"} - ``` - - ::code-block{label="Preview" preview} - :nuxt-picture{src="https://image.nuxtjs.org/social.png" width="1280" height="640"} - :: -:: - -## Video player components - -Docus includes a **Video Player** component. - -::code-group - - ```markdown [Markdown] - ::video-player{loop playsinline controls} - --- - sources: - - src: https://res.cloudinary.com/nuxt/video/upload/q_auto/v1612886404/docus/docus-vercel_wwaryz.webm - type: video/webm - - src: https://res.cloudinary.com/nuxt/video/upload/q_auto/v1612886404/docus/docus-vercel_wwaryz.mp4 - type: video/mp4 - - src: https//res.cloudinary.com/nuxt/video/upload/q_auto/v1612886404/docus/docus-vercel_wwaryz.ogv - type: video/ogg - poster: https://res.cloudinary.com/nuxt/video/upload/v1612886404/docus/docus-vercel_wwaryz.jpg - --- - :: - ``` - - ::code-block{label="Preview"} - ::video-player{loop playsinline controls} - --- - sources: - - src: https://res.cloudinary.com/nuxt/video/upload/q_auto/v1612886404/docus/docus-vercel_wwaryz.webm - type: video/webm - - src: https://res.cloudinary.com/nuxt/video/upload/q_auto/v1612886404/docus/docus-vercel_wwaryz.mp4 - type: video/mp4 - - src: https//res.cloudinary.com/nuxt/video/upload/q_auto/v1612886404/docus/docus-vercel_wwaryz.ogv - type: video/ogg - poster: https://res.cloudinary.com/nuxt/video/upload/v1612886404/docus/docus-vercel_wwaryz.jpg - --- - :: - :: -:: diff --git a/docs/content/3.features/4.social-image.md b/docs/content/3.features/4.social-image.md deleted file mode 100644 index 5530c48ff..000000000 --- a/docs/content/3.features/4.social-image.md +++ /dev/null @@ -1,11 +0,0 @@ -# Social Images - -Docus automatically generates a social preview image for every document. 🤳 - ---- - -It uses the `social-image-preview` page to generate the images. - -If you want to customize social images for your documentation, create `social-image-preview.vue` inside `pages` directory and design your image. - -Here is the [current social image preview](/social-image-preview). diff --git a/docs/content/3.features/5.deployment.md b/docs/content/3.features/5.deployment.md deleted file mode 100644 index 4de7e68e0..000000000 --- a/docs/content/3.features/5.deployment.md +++ /dev/null @@ -1,226 +0,0 @@ -# Deployment - -Deploy your documentation with Docus to any static hosting. 🚀 - ---- - -To generate the documentation for production, run the following command: - -::code-group - - ```bash [Yarn] - yarn build - ``` - - ```bash [NPM] - npm run build - ``` - -:: - -This command will run `nuxt generate` with [fast static deployments](https://nuxtjs.org/blog/nuxt-static-improvements#faster-static-deployments). - -A `dist/` directory will be generated, ready to be deployed on any static hosting or CDN. - -## Cloudflare - -[Cloudflare Pages](https://pages.cloudflare.com) is a JAMstack platform for collaborating on and deploying websites. - -With an effortless Git integration, it will deploy your Docus site within minutes. - -Visit the Cloudflare Pages section in your account dashboard and import your project. - -Deploy with Cloudflare Pages - -After selecting your git repository, choose `Nuxt` for **"Framework preset"**. - -Cloudflare will automatically select the correct settings for your Docus project. - -Once your project has been imported, all subsequent pushes to the main branch will trigger a deployment. - -## DigitalOcean - -[DigitalOcean Apps](https://www.digitalocean.com/products/app-platform/) provides an easy way to deploy static websites. - -Start by clicking on the below link. - -Deploy with DigitalOcean Apps - -Once you logged in, you should connect your project repository with DigitalOcean. - -Connect your project and select your main branch, DigitalOcean will build and deploy this branch. - -In the next step, you should: - -- Change project type to `Static Site` -- Edit build command and set `yarn nuxt generate` -- Change output directory to `dist` - -Finally, choose a name for your website and wait for the deployment to complete. - -## GitHub - -The best way to deploy Docus on GitHub Pages is using [GitHub Actions](https://github.com/features/actions). - -GitHub Actions will build, generate and publish your documentation on GitHub Pages. - -If you have a workflow you need to append a new step to your existing workflow. - -```yaml -- name: Deploy - uses: JamesIves/github-pages-deploy-action@4.1.0 - with: - branch: gh-pages - folder: ./dist -``` - -**Note**: You must insert this step after `generate`. - -This step uses the [Deploy to GitHub Pages Action](https://github.com/marketplace/actions/deploy-to-github-pages) to push the generated files from the `dist` folder to your default GitHub Pages branch `gh-pages`. - -If you don't have a workflow you will need to create a new one. - -Create a new file called `gh-pages.yml` in `.github/workflows` directory and paste the following content into the file. - -```yaml [.github/workflows/gh-pages.yml] -name: gh-pages -on: [push, pull_request] -jobs: - deploy: - runs-on: ${{ matrix.os }} - - strategy: - matrix: - os: [ubuntu-latest] - node: [14] - - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Setup node env - uses: actions/setup-node@v2.1.2 - with: - node-version: ${{ matrix.node }} - cache: npm - - - name: Install dependencies - run: yarn - - - name: Generate - run: yarn run nuxt generate - - - name: Deploy - uses: JamesIves/github-pages-deploy-action@4.1.0 - with: - branch: gh-pages - folder: ./dist -``` - -Save the file and push it to the repository. - -Check out the Actions tab in your GitHub repository and you'll see the running job. - -Once the job has finished, your site should be live. - -## GitLab - -To deploy Docus to GitLab Pages you can use [`GitLab CI`](https://about.gitlab.com/stages-devops-lifecycle/continuous-integration/). - -GitLab uses specific [artifacts](https://docs.gitlab.com/ee/ci/pipelines/job_artifacts.html) to detect the public content of your projects and deploy it as static pages. - -Create `.gitlab-ci.yml` in the root directory of your project and paste the following content into the file. - -If you already have a `gitlab-ci.yml`, edit the file and add `pages` section into it. - -```yaml [.gitlab-ci.yml] -image: node:14 - -pages: - script: - - yarn - - yarn run nuxt generate - - mv dist public - # specify `public` directory for artifacts. - artifacts: - paths: - - public -``` - -Save the file and push it to the repository. - -Check out running pipeline in `CI / CD` > `Pipelines` section. - -When it succeeds, go to `Settings` > `Pages` to view the URL where your site is now available. - -## Netlify - -[Netlify](https://www.netlify.com) has Git-based Deployment that will continuously deploy every time you push to main (or whatever branch you choose). - -Just click on the below button and import your project into Netlify. - -Netlify will detect that you are using Docus and will enable the correct settings for your deployment. - -Deploy with Netlify - -After your project has been imported, all subsequent pushes to main branch will generates a deployment. - -## Surge - -[Surge](https://surge.sh) is a static web publishing platform. - -It provides powerful CLI utils to deploy static websites. - -1. Install `surge` package globally: - - ::code-group - - ```bash [Yarn] - yarn global add surge - ``` - - ```bash [NPM] - npm install --global surge - ``` - - :: - -2. Generating Docus project will create `dist` deployable directory. - - ::code-group - - ```bash [Yarn] - yarn build - ``` - - ```bash [NPM] - npm run build - ``` - - :: - -3. Use `surge` CLI to publish the `dist` directory - - ```bash - surge dist/ - ``` - -Surge automatically uploads static contents. - -When it succeeds, you can view the URL where your site is now available. - -You may also want to [use a custom domain](https://surge.sh/help/adding-a-custom-domain) for your documentation. - -## Vercel - -Deploying Docus on [Vercel](https://vercel.com) is really easy. - -Vercel will detect that you are using Docus (aka Nuxt) and will enable the correct settings for your deployment. - -Just click on the below button to start. - -Deploy with Vercel - -After your project has been imported, all subsequent pushes to branches will generate [Preview Deployments](https://vercel.com/docs/platform/deployments#preview). - -All changes made to the [Production Branch](https://vercel.com/docs/git#production-branch) (commonly "main") will result in a [Production Deployment](https://vercel.com/docs/platform/deployments#production). diff --git a/docs/content/3.features/6.extend.md b/docs/content/3.features/6.extend.md deleted file mode 100644 index 0252e0015..000000000 --- a/docs/content/3.features/6.extend.md +++ /dev/null @@ -1,78 +0,0 @@ -# Extend - -Extend Docus with the power of Nuxt modules. 🚀 - ---- - -Docus is based on Nuxt, so you can benefit from the existing ecosystem of [Nuxt Modules](https://modules.nuxtjs.org/). - -## Analytics - -There are multiple [analytics modules](https://modules.nuxtjs.org/?orderBy=desc#Analytics) that you can use with your documentation. - -Just choose the one that you prefer. - -### Plausible - -If you want to use Plausible, you can do so with the `vue-plausible` plugin. - -1. Register on [Plausible](https://plausible.io) and add your website info. - -2. Install the Plausible plugin in your project. - -::code-group - - ```bash [Yarn] - yarn install vue-plausible - ``` - - ```bash [NPM] - npm install vue-plausible - ``` - -:: - -3. Register the plugin - -```js [nuxt.config.js] -export default { - buildModules: [ - 'vue-plausible' - ] -} -``` - -::alert ---- -type: success ---- -That's it! Deploy your project and enjoy Plausible. -:: - -### Custom Integration - -If you didn't find the integration you were looking for or if you don't want to use an existing module, you can always can set things up manually. - -Let's say you want to integrate Plausible Analytics manually. - -After you complete registration, Plausible gives you an install snippet, a script tag that looks like this: - -```html - -``` - -All you need to do is add this script inside the `` of your website. - -This can be done using [the head property](https://nuxtjs.org/docs/2.x/configuration-glossary/configuration-head/). - -So just edit `nuxt.config.js` and add the script: - -```js [nuxt.config.js] -export default { - head: { - script: [ - { async: true, defer: true, "data-domain": "YOUR_DOMAIN", src: "https://plausible.io/js/plausible.js" } - ] - } -} -``` diff --git a/docs/content/3.features/7.migration.md b/docs/content/3.features/7.migration.md deleted file mode 100644 index cab9fb5a9..000000000 --- a/docs/content/3.features/7.migration.md +++ /dev/null @@ -1,156 +0,0 @@ ---- -navigation: - title: Migration ---- - -# Migrate from @nuxt/content-theme-docs - -Migrate from @nuxt/content-theme-docs to Docus. 🔋 - ---- - -By migrating to Docus, you will have a fresh new design for your documentation :sparkles: - -
-
-

Before

- - - -
-
-

After

- - - -
-
- -## Steps - -### `package.json` - -In order to move from `@nuxt/content-theme-docs` to `docus` you need to install the new package: - -::code-group - - ```bash [Yarn] - yarn remove @nuxt/content-theme-docs @nuxt/content && yarn add docus - ``` - - ```bash [NPM] - npm uninstall @nuxt/content-theme-docs @nuxt/content && npm install docus - ``` - -:: - -### `nuxt.config.js` - -Then, instead of importing `@nuxt/content-theme-docs`, you need to import `docus` in your `nuxt.config.js`: - -::code-group - - ```ts [New nuxt.config.js] - import { withDocus } from 'docus' - - export default withDocus({ - rootDir: __dirname, - // Additional nuxt configuration - }) - ``` - - ```ts [Old nuxt.config.js] - import theme from '@nuxt/content-theme-docs' - - export default theme({ - // [additional nuxt configuration] - }) - ``` - -:: - -If you specified a primary color, you need to move `docs.primaryColor` to `docus.config.js` in `theme.colors.primary`: - -::code-group - - ```typescript [New: docus.config.js] - export default { - theme: { - colors: { - primary: "#E24F55" - } - } - } - ``` - - ```ts [Old: nuxt.config.js] - import theme from '@nuxt/content-theme-docs' - - export default theme({ - docs: { - primaryColor: '#E24F55' - } - }) - ``` - -:: - -### `docus.config.js` - -If you specified `githubApi`, `defaultBranch` or `defaultDir` in `content/settings.json`, you need to change those keys following the [Configuration](/get-started/configuration) documentation. - -These keys are now under `github` key into `docus.config.js`. - -The `github` key can now be a `String` to act as `github.repo` or an object with `repo`, `branch`, `dir`, `url` and `apiUrl` keys: - -::code-group - - ```typescript [New docus.config.js] - export default { - github: { - repo: 'nuxtlabs/docus', - branch: 'main', - dir: 'docs' - } - } - ``` - - ```json [Old] - { - "github": "nuxtlabs/docus", - "defaultBranch": "main", - "defaultDir": "docs" - } - ``` - -:: - -### `windi.config.js` - -Docus is now using [Windi CSS](https://windicss.org), if you had a `tailwind.config.js`, rename it to `windi.config.js`. - -You might also need to follow the migration guide from [WindiCSS](https://windicss.org/guide/migration.html#migrate-from-tailwind-css). - -### Update your configurations - -Visit [Configuration](/get-started/configuration) page to update your configuration files with Docus features. - -::alert ---- -type: success ---- - -**🎉 Congrats, you can now redeploy your application to take advantage of Docus and its new features!** -:: diff --git a/docs/content/3.packages/0.index.md b/docs/content/3.packages/0.index.md new file mode 100644 index 000000000..9c3578d14 --- /dev/null +++ b/docs/content/3.packages/0.index.md @@ -0,0 +1,5 @@ +--- +navigation: false +--- + +# Themes diff --git a/docs/content/3.packages/1.docs/1.features.md b/docs/content/3.packages/1.docs/1.features.md new file mode 100644 index 000000000..be0519fbf --- /dev/null +++ b/docs/content/3.packages/1.docs/1.features.md @@ -0,0 +1,20 @@ +--- +title: Features +description: "The docs-theme package ships with all the UI you need to create full-featured documentation websites." +--- + +::list +- [**20+ components**](packages/docs/components) ready to build your documentation +- `docs`, `page` and `fluid` configurable layouts +- [TailwindCSS](https://tailwindcss.nuxtjs.org) integration +- Automatically generated navigation +- Table of Contents support +- [Color mode](https://color-mode.nuxtjs.org) support +- Advanced [`@docus/github`](/packages/github/features) integration +:: + +::source-link +--- +source: "/packages/docs-theme" +--- +:: diff --git a/docs/content/3.packages/1.docs/2.configuration.md b/docs/content/3.packages/1.docs/2.configuration.md new file mode 100644 index 000000000..058725707 --- /dev/null +++ b/docs/content/3.packages/1.docs/2.configuration.md @@ -0,0 +1,126 @@ +--- +title: "Configuration" +description: "How to configure the docs-theme package." +toc: false +--- + +::code-group + +```yaml [Minimal _theme.yml] +# Website config +title: "Docus" +description: "My Docus Project" +url: "http://localhost:3000" +layout: "docs" +``` + +```yaml [Complete _theme.yml] +# Website config +title: "Docus" +description: "My Docus Project" +url: "http://localhost:3000" +layout: "docs" + +# Socials icons links +socials: + twitter: "@docus_" + github: "nuxtlabs/docus" + +# Social image cover +cover: + src: "/cover-image.jpeg" + alt: "A cover image for this project." + +# Header management +header: + logo: true + title: false + +# Aside management +aside: + level: 1 + filter: + - / + - /any-path + +# Footer management +footer: + # Credits to be displayed in the footer + credits: + icon: "IconNuxtLabs" + text: "Made by NuxtLabs" + href: "https://nuxtlabs.com" + # You can add as many icons you want here + icons: + - label: "NuxtJS" + href: "https://nuxtjs.org" + component: "IconNuxt" + class: "w-6 h-6" + - label: "Vue Telescope" + href: "https://vuetelescope.com" + component: "IconVueTelescope" + class: "w-6 h-6" + + +# GitHub theme integration +github: + # Whether or not to show releases + releases: true + # Whether or not to show the EditOnGithub component + edit: true + # Root to be used for EditOnGithub component + root: content/ + +# Debug utilities +debug: + # Will log page data on each page change + page: false + # Will log navigation data on each navigation change + navigation: false + # Will log theme data on each theme change + theme: false +``` + +:: + +| **Key** | **Type** | **Default** | **Description** | +| --------------------------- | ---------- | ---------------- | -------------------------------------------------------- | +| `title` | `string` | Docus | Website title | +| `description` | `string` | My Docus Project | Website description | +| `url` | `string` | | Website URL | +| `layout` | `string` | docs | Layout to use | +|   | | | | +| `socials` | `object` | | Social links | +| `socials.github` | `string` | | The repository to use on GitHub links | +| `socials.twitter` | `string` | | The account to use on Twitter links | +|   | | | | +| `cover` | `object` | | OpenGraph cover image | +| `cover.src` | `string` | | The source of the cover image | +| `cover.alt` | `string` | | The alt text to use for the cover image | +|   | | | | +| `header` | `object` | | Header configuration | +| `header.logo` | `boolean` | | Whether or not to use `Logo.vue` as the header logo | +| `header.title` | `string` | | If set to a string, will be used in the header | +| | | | | +| `aside` | `object` | | Aside configuration | +| `aside.level` | `string` | 0 | Aside base level of nesting | +| `aside.filter` | `string[]` | | An array of path to filter out from the navigation | +|   | | | | +| `footer` | `object` | | Footer configuration | +| `footer.credits` | `object` | | An object defining the bottom left credits | +| `footer.credits.icon` | `object` | | The icon to use for the credits | +| `footer.credits.text` | `object` | | The text to use for the credits | +| `footer.icons` | `array` | | An array of icons to display in the footer | +| `footer.icons[0].label` | `array` | | A label to use for the icon | +| `footer.icons[0].href` | `array` | | A link to use for the icon | +| `footer.icons[0].component` | `array` | | The component to use for the icon | +| `footer.icons[0].class` | `array` | | Some classes to add on the icon | +|   | | | | +| `debug` | `object` | | Footer configuration | +| `debug.page` | `object` | | Toggle the page logging | +| `debug.navigation` | `object` | | Toggle the navigation logging | +| `debug.theme` | `object` | | Toggle theme logging | +|   | | | | +| `github` | `object` | `false` | GitHub integration configuration | +| `github.edit` | `boolean` | | Toggle "Edit on Github" component on documentation pages | +| `github.root` | `string` | | The root path to use for "Edit on Github" component | diff --git a/docs/content/3.packages/1.docs/3.components.md b/docs/content/3.packages/1.docs/3.components.md new file mode 100644 index 000000000..8ec84c423 --- /dev/null +++ b/docs/content/3.packages/1.docs/3.components.md @@ -0,0 +1,783 @@ +--- +title: "Components" +description: "Discover every component from the docs-theme package." +--- + +## `` + +::code-group + + ::code-block{label="Preview"} + ::logo + :: + :: + + ```md [Code] + ::logo + :: + ``` + +:: + +::source-link +--- +source: "packages/docs-theme/components/content/Logo.vue" +--- +:: + +--- + +## `` + +::code-group + + ::code-block{label="Preview" preview} + ::alert{type="info" style="margin-top: 0;"} + Check out an **info** alert with `code` and a [link](/). + :: + + ::alert{type="success"} + Check out a **success** alert with `code` and a [link](/). + :: + + ::alert{type="warning"} + Check out a **warning** alert with `code` and a [link](/). + :: + + ::alert{type="danger" style="margin-bottom: 0;"} + Check out a **danger** alert with `code` and a [link](/). + :: + :: + + ```md [Code] + ::alert{type="info" style="margin-top: 0;"} + Check out an **info** alert with `code` and a [link](/). + :: + + ::alert{type="success"} + Check out a **success** alert with `code` and a [link](/). + :: + + ::alert{type="warning"} + Check out a **warning** alert with `code` and a [link](/). + :: + + ::alert{type="danger" style="margin-bottom: 0;"} + Check out a **danger** alert with `code` and a [link](/). + :: + ``` + +:: + +::props{of="Alert"} +:: + +::source-link +--- +source: "packages/docs-theme/components/content/Alert.vue" +--- +:: + +--- + +## `` + +`` support same types as ``. + +::code-group + + ::code-block{label="Preview"} + ::callout + #summary + This is a callout! Click me to open. + + #content + This is the content of the callout. + :: + + ::callout{type="warning"} + #summary + This is a callout! Click me to open. + + #content + This is the content of the callout. + :: + :: + + ```md [Code] + ::callout + #summary + This is a callout! Click me to open. + + #content + This is the content of the callout. + :: + + ::callout{type="warning"} + #summary + This is a callout! Click me to open. + + #content + This is the content of the callout. + :: + ``` + +:: + +::props{of="Callout"} +:: + +::source-link +--- +source: "packages/docs-theme/components/content/Callout.vue" +--- +:: + +--- + +## `` + +`` support same types as ``. + +::code-group + + ::code-block{label="Preview" preview} + ::div{class="flex items-center gap-4"} + ::badge + v1.2 + :: + + ::badge{type="warning"} + Deprecated + :: + + ::badge{type="danger"} + Not found! + :: + :: + :: + + ```md [Code] + ::div{class="flex items-center gap-4"} + ::badge + v1.2 + :: + + ::badge{type="warning"} + Deprecated + :: + + ::badge{type="danger"} + Not found! + :: + :: + ``` + +:: + +::props{of="Badge"} +:: + +::source-link +--- +source: "packages/docs-theme/components/content/Badge.vue" +--- +:: + +--- + +## `` + +Uses the current page to display an article heading. + +To be used with `page` layout. + +::code-group + + ::code-block{label="Preview"} + ::article-hero + :: + :: + + ```md [Code] + ::article-hero + :: + ``` + +:: + +::props{of="ArticleHero"} +:: + +::source-link +--- +source: "packages/docs-theme/components/content/ArticleHero.vue" +--- +:: + +--- + +## `` + +::code-group + + ::code-block{label="Preview"} + ::block-hero + --- + cta: + - Get started + - /get-started + secondary: + - Open on GitHub → + - https://github.com/nuxtlabs/docus + snippet: npx nuxi init docus-app -t nuxtlabs/docus-starter + --- + #title + Document-driven framework + + #description + Docus reconciles content creators and developers by offering to both the best tools to create and scale content-based websites. + :: + :: + + ```md [Code] + ::block-hero + --- + cta: + - Get started + - /get-started + secondary: + - Open on GitHub → + - https://github.com/nuxtlabs/docus + snippet: npx nuxi init docus-app -t nuxtlabs/docus-starter + --- + #title + Document-driven framework + + #description + Docus reconciles content creators and developers by offering to both the best tools to create and scale content-based websites. + :: + ``` + +:: + +::props{of="BlockHero"} +:: + +::source-link +--- +source: "packages/docs-theme/components/content/BlockHero.vue" +--- +:: + +--- + +## `` + +::code-group + + ::code-block{label="Preview"} + ::card + --- + icon: logos:nuxt-icon + --- + #title + Nuxt Architecture. + #description + Based on **Nuxt 3** and **Nuxt Content**. +
+ Use Nuxt to build a static site, or a serverless app. + :: + :: + + ```md [Code] + ::card + --- + icon: logos:nuxt-icon + --- + #title + Nuxt Architecture. + #description + Based on **Nuxt 3** and **Nuxt Content**. +
+ Use Nuxt to build a static site, or a serverless app. + :: + ``` + +:: + +::props{of="Card"} +:: + +::source-link +--- +source: "packages/docs-theme/components/content/Card.vue" +--- +:: + +--- + +## `` + +::code-group + + ::code-block{label="Preview"} + ::card-grid + #title + What's included + + #root + :ellipsis + + #default + ::card + --- + description: Harness the full power of Nuxt and the Nuxt ecosystem. + title: Nuxt Architecture. + --- + :: + + ::card + --- + title: Vue Components. + description: Use built-in components (or your own!) inside your content. + --- + :: + + ::card + --- + title: Write Markdown. + description: Enjoy the ease and simplicity of Markdown and discover MDC syntax. + --- + :: + :: + :: + + ```md [Code] + ::card-grid + #title + What's included + + #root + :ellipsis + + #default + ::card + --- + description: Harness the full power of Nuxt and the Nuxt ecosystem. + title: Nuxt Architecture. + --- + :: + + ::card + --- + title: Vue Components. + description: Use built-in components (or your own!) inside your content. + --- + :: + + ::card + --- + title: Write Markdown. + description: Enjoy the ease and simplicity of Markdown and discover MDC syntax. + --- + :: + :: + ``` + +:: + +::props{of="CardGrid"} +:: + +::source-link +--- +source: "packages/docs-theme/components/content/CardGrid.vue" +--- +:: + +--- + +## `` + +This component uses `slots` to create a tab panel of your code examples or preview. + +::code-group + + ::code-block{label="Preview" preview} + ::code-group + ```bash [Yarn] + yarn add docus + ``` + + ```bash [NPM] + npm install docus + ``` + :: + :: + + ```md [Code] + ::code-group + ```bash [Yarn] + yarn add docus + ``` + + ```bash [NPM] + npm install docus + ``` + :: + ``` + +:: + +::source-link +--- +source: "packages/docs-theme/components/content/CodeGroup.vue" +--- +:: + +--- + +## `` + +To be used inside a `` component to display a preview of some rendered code. + +::code-group + +::code-block{label="Preview" preview} + ::badge + Hello World! + :: +:: + +```md [Code] +/* Added as a child of `` */ + +::code-block{label="Preview" preview} + ::badge + Hello World! + :: +:: +``` + +:: + +::props{of="CodeBlock"} +:: + +::source-link +--- +source: "packages/docs-theme/components/content/CodeBlock.vue" +--- +:: + +--- + +## `` + +::code-group + + ::code-block{label="Preview" preview} + ::list{type="primary"} + - **Important** + - Always + :: + + ::list{type="success"} + - Amazing + - Congrats + :: + + ::list{type="info"} + - Do you know? + - You can also do this + :: + + ::list{type="warning"} + - Be careful + - Use with precautions + :: + + ::list{type="danger"} + - Drinking too much + - Driving drunk + :: + + :: + + ```md [Code] + ::list{type="primary"} + - **Important** + - Always + :: + + ::list{type="success"} + - Amazing + - Congrats + :: + + ::list{type="info"} + - Do you know? + - You can also do this + :: + + ::list{type="warning"} + - Be careful + - Use with precautions + :: + + ::list{type="danger"} + - Drinking too much + - Driving drunk + :: + ``` + +:: + +::props{of="List"} +:: + +::source-link +--- +source: "packages/docs-theme/components/content/List.vue" +--- +:: + +--- + +## `` + +Icon component gives you access to all **100,000+** icons from [icones.js.org](https://icones.js.org). + +::code-group + + ::code-block{label="Preview" preview} + ::icon{name="logos:nuxt-icon" .mb-4} + :: + ::icon{name="logos:vue" .mb-4} + :: + ::icon{name="logos:tailwindcss"} + :: + :: + + ```md [Code] + ::icon{name="logos:nuxt-icon" .mb-4} + :: + ::icon{name="logos:vue" .mb-4} + :: + ::icon{name="logos:tailwindcss"} + :: + ``` + +:: + +::props{of="Icon"} +:: + +::source-link +--- +source: "packages/docs-theme/components/content/Icon.vue" +--- +:: + +--- + +## `` + +::code-group + + ::code-block{label="Preview" preview} + ::icon{name="logos:nuxt-icon" .mb-4} + :: + ::icon{name="logos:vue" .mb-4} + :: + ::icon{name="logos:tailwindcss"} + :: + :: + + ```md [Code] + ::icon{name="logos:nuxt-icon" .mb-4} + :: + ::icon{name="logos:vue" .mb-4} + :: + ::icon{name="logos:tailwindcss"} + :: + ``` + +:: + +::props{of="Props"} +:: + +::source-link +--- +source: "packages/docs-theme/components/content/Props.vue" +--- +:: + +--- + +## `` + +::code-group + + ::code-block{label="Preview" preview} + ::div{class="w-full max-h-[300px] overflow-y-auto"} + ::releases + :: + :: + :: + + ```md [Code] + ::div{class="w-full max-h-[300px] overflow-y-auto"} + ::releases + :: + :: + ``` + +:: + +::source-link +--- +source: "packages/docs-theme/components/github/Releases.vue" +--- +:: + +--- + +## `` + +::code-group + ::code-block{label="Preview" preview} + ::theme-select + :: + :: + + ```md [Code] + ::theme-select + :: + ``` +:: + +::source-link +--- +source: "packages/docs-theme/components/content/ThemeSelect.vue" +--- +:: + +--- + +## `` + +Icons are displayed conditionally from the `socials` key in `_theme.yml`. + +::code-group + ::code-block{label="Preview" preview} + ::div{class="flex items-center gap-4"} + ::social-icons + :: + :: + :: + + ```md [Code] + ::div{class="flex items-center gap-4"} + ::social-icons + :: + :: + ``` +:: + +::source-link +--- +source: "packages/docs-theme/components/app/SocialIcons.vue" +--- +:: + +--- + +## `` + +::code-group + + ::code-block{label="Preview" preview} + ::terminal{content="nuxi build"} + :: + :: + + ```md [Code] + ::terminal{content="nuxi build"} + :: + ``` + +:: + +::props{of="Terminal"} +:: + +::source-link +--- +source: "packages/docs-theme/components/content/Terminal.vue" +--- +:: + +--- + +## `` + +::code-group + + ::code-block{label="Preview" preview} + ::div{class="flex items-center justify-center w-full"} + ::video-player{src="https://www.youtube.com/watch?v=o9e12WbKrd8"} + :: + :: + :: + + ```md [Code] + ::div{class="flex items-center justify-center w-full"} + ::video-player{src="https://www.youtube.com/watch?v=o9e12WbKrd8"} + :: + :: + ``` + +:: + +::props{of="VideoPlayer"} +:: + +::source-link +--- +source: "packages/docs-theme/components/content/VideoPlayer.vue" +--- +:: + +--- + +## `` + +Embed CodeSandbox/StackBlitz easily in your documentation with great performances. + +Using the [IntersectionObserver](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API) to load when visible in the viewport. + +::code-group + + ::code-block{label="Preview" preview} + ::sandbox{src="https://codesandbox.io/embed/nuxt-content-l164h?hidenavigation=1&theme=dark"} + :: + :: + + ```md [Code] + ::sandbox{src="https://codesandbox.io/embed/nuxt-content-l164h?hidenavigation=1&theme=dark"} + :: + ``` + +:: + +::props{of="Sandbox"} +:: + +::source-link +--- +source: "packages/docs-theme/components/content/Sandbox.vue" +--- +:: diff --git a/docs/content/3.packages/1.docs/4.composables.md b/docs/content/3.packages/1.docs/4.composables.md new file mode 100644 index 000000000..43802c83f --- /dev/null +++ b/docs/content/3.packages/1.docs/4.composables.md @@ -0,0 +1,92 @@ +--- +title: "Composables" +description: "Discover every composables from docs-theme package." +--- + +## `useCurrentNavigation()` + +`useCurrentNavigation()`{lang="ts"} gives access to current navigation calculated from @nuxt/content navigation object and features in theme and pages front-matter. + +```ts +const { + // Navigation object + tree, + // Aside config calculated from front-matter and _theme config + asideConfig +} = useCurrentNavigation() +``` + +::source-link +--- +source: "/packages/docs-theme/composables/useCurrentNavigation.ts" +--- +:: + +## `useMenu()` + +`useMenu()` gives access to `$menu` plugin controlling mobile navigation globally. + +```ts +const { + // Is menu visible + visible, + // Close menu function + close, + // Open menu function + open, + // Toggle menu function + toggle +} = useMenu() +``` + +::source-link +--- +source: "/packages/docs-theme/composables/useMenu.ts" +--- +:: + +## `useRepository()` + +`useRepository()` gives access to repository informations given by [GitHub package](/packages/github/features). + +That can be useful to build UI from live repository informations. + +```ts +const { + // Repository informations + repository, + // Last release + last +} = useMenu() +``` + +::source-link +--- +source: "/packages/docs-theme/composables/useRepository.ts" +--- +:: + +## `useScrollspy()` + +`useScrolspy()` is used in `docs` layout to make the ToC display the currently visible headings. + +```ts +const { + // Headings on the page + visibleHeadings, + // Active headings (for the current page) + activeHeadings, + // Update headings (an array of DOM nodes) + updateHeadings +} = useScrollspy() +``` + +::source-link +--- +source: "/packages/docs-theme/composables/useScrollspy.ts" +--- +:: + +::alert +Don't forget to take a loot age `useDocus()`{lang="ts"} composable on [base package](/packages/base/composables) page. +:: diff --git a/docs/content/3.packages/1.docs/_dir.yml b/docs/content/3.packages/1.docs/_dir.yml new file mode 100644 index 000000000..85fcf08a2 --- /dev/null +++ b/docs/content/3.packages/1.docs/_dir.yml @@ -0,0 +1,2 @@ +title: '@docus/docs-theme' +icon: 'heroicons-outline:template' diff --git a/docs/content/3.packages/3.github/1.features.md b/docs/content/3.packages/3.github/1.features.md new file mode 100644 index 000000000..6f9fd1366 --- /dev/null +++ b/docs/content/3.packages/3.github/1.features.md @@ -0,0 +1,20 @@ +--- +title: "Features" +description: "The GitHub package allows you to deeply integrate your website with the GitHub repository it is linked to." +--- + +::list +- Repository informations +- Releases +- Repository contributors +- File contributors fetching +- GithubLink component +- [@remark/gfm](https://github.com/remarkjs/remark-gfm) plugin for @nuxt/content +- Parse releases notes with @nuxt/content +:: + +::source-link +--- +source: "/packages/github" +--- +:: diff --git a/docs/content/3.packages/3.github/2.configuration.md b/docs/content/3.packages/3.github/2.configuration.md new file mode 100644 index 000000000..cb244e022 --- /dev/null +++ b/docs/content/3.packages/3.github/2.configuration.md @@ -0,0 +1,89 @@ +--- +title: "Configuration" +description: "How to configure the GitHub package." +toc: false +--- + +::code-group + +```ts [Minimal config] +export default defineNuxtConfig({ + github: { + owner: 'nuxtlabs', + repo: 'docus', + branch: 'dev' + }, +}) +``` + +```ts [Complete config] +export default defineNuxtConfig({ + github: { + // Repository options + owner: 'nuxtlabs', + repo: 'docus', + branch: 'dev', + token: process.env.GITHUB_TOKEN, + api: 'https://api.github.com', + + // Remark plugin (@nuxt/content integration) + remarkPlugin: true, + + contributors: { + // Scoped repository options (optional) + owner: 'nuxtlabs', + repo: 'docus', + branch: 'dev', + token: process.env.GITHUB_TOKEN, + api: 'https://api.github.com', + // Contributors options + max: 100, + }, + + releases: { + // Scoped repository options (optional) + owner: 'nuxtlabs', + repo: 'docus', + branch: 'dev', + token: process.env.GITHUB_TOKEN, + api: 'https://api.github.com', + // Releases options + parse: true, + }, + }, +}) +``` + +:: + +::alert +Even if the `GITHUB_TOKEN` environment variable is not set, the GitHub package will still work. +:br :br +We still recommend to specify a `GITHUB_TOKEN`, especially if you are using a `private` repository. +:: + +| **Key** | **Type** | **Default** | **Description** | +| ---------------------------- | --------- | ---------------------- | --------------------------------------------------------- | +| `github.owner` | `string` | | GitHub repository owner | +| `github.repo` | `string` | | GitHub repository name | +| `github.branch` | `string` | main | GitHub repository branch | +| `github.token` | `string` | | GitHub repository token | +| `github.api` | `string` | https://api.github.com | GitHub API URL | +|   | | | | +| `github.remarkPlugin` | `boolean` | `false` | Whether or not to use the `@nuxt/content` plugin | +|   | | | | +| `github.contributors` | `object` | | GitHub contributors module configuration | +| `github.contributors.max` | `number` | `100` | GitHub contributors max number of contributors to display | +| `github.contributors.owner` | `string` | | GitHub contributors repository owner (optional) | +| `github.contributors.repo` | `string` | | GitHub contributors repository name (optional) | +| `github.contributors.branch` | `string` | main | GitHub contributors repository branch (optional) | +| `github.contributors.token` | `string` | | GitHub contributors repository token (optional) | +| `github.contributors.api` | `string` | https://api.github.com | GitHub contributors API URL (optional) | +|   | | | | +| `github.releases` | `object` | | GitHub releases module configuration | +| `github.releases.parse` | `boolean` | `true` | Whether or not to parse the release notes | +| `github.releases.owner` | `string` | | GitHub releases repository owner (optional) | +| `github.releases.repo` | `string` | | GitHub releases repository name (optional) | +| `github.releases.branch` | `string` | main | GitHub releases repository branch (optional) | +| `github.releases.token` | `string` | | GitHub releases repository token (optional) | +| `github.releases.api` | `string` | https://api.github.com | GitHub releases API URL (optional) | diff --git a/docs/content/3.packages/3.github/3.components.md b/docs/content/3.packages/3.github/3.components.md new file mode 100644 index 000000000..739abbabe --- /dev/null +++ b/docs/content/3.packages/3.github/3.components.md @@ -0,0 +1,217 @@ +--- +title: "Components" +description: "Discover every component from the GitHub package." +--- + +## `` + +This component is useful if you want to display a link to the GitHub repository. + +Can be used for both browsing and editing links. + +::code-group + + ::code-block{label="Preview"} + ::source-link + --- + source: "packages/github/src/runtime/components/GithubLink.ts" + --- + :: + :: + + ```vue [Code] + + ``` + +:: + +::props{of="GithubLink"} +:: + +::source-link +--- +source: "packages/github/src/runtime/components/GithubLink.ts" +--- +:: + +--- + +## `` + +This component is useful if you want to a repository contributors. + +::code-group + + ::code-block{label="Preview"} + ::contributors-example + :: + :: + + ```vue [Code] + + ``` + +:: + +::props{of="GithubContributors"} +:: + +::source-link +--- +source: "packages/github/src/runtime/components/GithubContributors.ts" +--- +:: + +--- + +## `` + +This component is useful if you want to a file contributors. + +::code-group + + ::code-block{label="Preview"} + ::file-contributors-example + :: + :: + + ```vue [Code] + + + + ``` + +:: + +::props{of="GithubFileContributors"} +:: + +::source-link +--- +source: "packages/github/src/runtime/components/GithubFileContributors.ts" +--- +:: + +--- + +## `` + +This component is useful if you want to display last release of the repository. + +::code-group + + ::code-block{label="Preview"} + ::div{class="max-h-[300px] pb-8"} + ::last-release-example + :: + :: + :: + + ```vue [Code] + + ``` + +:: + +::props{of="GithubContributors"} +:: + +::source-link +--- +source: "packages/github/src/runtime/components/GithubLastRelease.ts" +--- +:: + +--- + +## `` + +This component is useful if you want to display all the releases of the repository. + +::code-group + + ::code-block{label="Preview"} + ::div{class="max-h-[300px] pb-8"} + ::releases-example + :: + :: + :: + + ```vue [Code] + + ``` + +:: + +::props{of="GithubReleases"} +:: + +::source-link +--- +source: "packages/github/src/runtime/components/GithubReleases.ts" +--- +:: + +--- + +## `` + +This component is useful if you want to display all the informations of the repository. + +::code-group + + ::code-block{label="Preview"} + ::div{class="max-h-[300px] pb-8"} + ::repository-example + :: + :: + :: + + ```vue [Code] + + ``` + +:: + +::props{of="GithubRepository"} +:: + +::source-link +--- +source: "packages/github/src/runtime/components/GithubRepository.ts" +--- +:: diff --git a/docs/content/3.packages/3.github/4.composables.md b/docs/content/3.packages/3.github/4.composables.md new file mode 100644 index 000000000..dcfbbf0d1 --- /dev/null +++ b/docs/content/3.packages/3.github/4.composables.md @@ -0,0 +1,29 @@ +--- +title: "Composables" +description: "Discover every composables from GitHub package." +--- + +## `useGithub()` + +`useGithub()`{lang="ts"} gives programmatic access to fetching functions used in components. + +```ts +const { + // Fetch repository informations + fetchRepository, + // Fetch repository releases + fetchReleases, + // Fetch repository last release + fetchLastRelease, + // Fetch repository contributors + fetchContributors, + // Fetch a file contributors + fetchFileContributors, +} = useDocus() +``` + +::source-link +--- +source: "/packages/github/src/runtime/composables/useGithub.ts" +--- +:: diff --git a/docs/content/3.packages/3.github/_dir.yml b/docs/content/3.packages/3.github/_dir.yml new file mode 100644 index 000000000..661443671 --- /dev/null +++ b/docs/content/3.packages/3.github/_dir.yml @@ -0,0 +1,2 @@ +title: '@docus/github' +icon: 'mdi:github' diff --git a/docs/content/3.packages/99.base/1.features.md b/docs/content/3.packages/99.base/1.features.md new file mode 100644 index 000000000..d92be6629 --- /dev/null +++ b/docs/content/3.packages/99.base/1.features.md @@ -0,0 +1,25 @@ +--- +title: "Features" +description: "The base package ships with all the default features provided by Docus." +--- + +::list +- `theme` key and `_theme.yml` support +- `content/` <-> `pages/` binding +- `useDocus()`{lang="ts"} composable +- Pre-configured modules +- Loading bar +- Debug utilities +:: + +::alert{type="warning"} +It is **not** supposed to be used directly by your project, but by themes authors. +:br +Still, if you want a clean start without any UI-related features but all the Docus features, you can use it. +:: + +::source-link +--- +source: "/packages/base" +--- +:: diff --git a/docs/content/3.packages/99.base/2.configuration.md b/docs/content/3.packages/99.base/2.configuration.md new file mode 100644 index 000000000..1c35a3983 --- /dev/null +++ b/docs/content/3.packages/99.base/2.configuration.md @@ -0,0 +1,20 @@ +--- +title: "Configuration" +description: "How to configure the base package." +toc: false +--- + +```yaml [_theme.yml] +# Website config +title: "Docus" +url: "" +description: "My Docus Project" +layout: "docs" +``` + +| **Key** | **Type** | **Default** | **Description** | +| ------------- | -------- | --------------------- | ------------------- | +| `title` | `string` | Docus | Website title | +| `url` | `string` | http://localhost:3000 | Website URL | +| `description` | `string` | My Docus Project | Website description | +| `layout` | `string` | docs | Layout to use | diff --git a/docs/content/3.packages/99.base/3.composables.md b/docs/content/3.packages/99.base/3.composables.md new file mode 100644 index 000000000..6f3fbffbe --- /dev/null +++ b/docs/content/3.packages/99.base/3.composables.md @@ -0,0 +1,62 @@ +--- +title: "Composables" +description: "Discover every composables from base package." +--- + +## `useDocus()` + +`useDocus()`{lang="ts"} is the main entry-point of Docus. + +It gives direct access to every globally-available data loaded from the current content file. + +```ts +const { + // Theme configuration (_theme.yml) + theme, + // Website navigation + navigation, + // Page surround ([prev, next]) + surround, + // Current page + page, + // Table of contents + toc, + // Current page file type + type, + // Current layout + layout, + // Next page + next, + // Previous page + prev +} = useDocus() +``` + +::source-link +--- +source: "/packages/base/composables/useDocus.ts" +--- +:: + +## useDocusHelpers() + +`useDocusHelpers()`{lang="ts"} exposes few helpers to make interaction with `navigation` object smoother. + +```ts +const { + // Find the closest link from a given navigation node + findBottomLink, + // Gives a navigation object starting from a `route.path` string + navFromPath, + // Gives a navigation link starting from a `route.path` string + fileFromPath, + // Gives a navigation node specific key from a `route.path` string + navKeyFromPath, +} = useDocusHelpers() +``` + +::source-link +--- +source: "/packages/docs-theme/composables/useDocusHelpers.ts" +--- +:: diff --git a/docs/content/3.packages/99.base/_dir.yml b/docs/content/3.packages/99.base/_dir.yml new file mode 100644 index 000000000..ed360d502 --- /dev/null +++ b/docs/content/3.packages/99.base/_dir.yml @@ -0,0 +1,2 @@ +title: '@docus/base' +icon: heroicons-outline:terminal diff --git a/docs/content/4.theme/.example.md b/docs/content/4.theme/.example.md deleted file mode 100644 index 344f21cb3..000000000 --- a/docs/content/4.theme/.example.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -navigation: false ---- - -```js -// This is some sample shared code. -export default {} -``` diff --git a/docs/content/4.theme/0.index.md b/docs/content/4.theme/0.index.md deleted file mode 100644 index ca3985984..000000000 --- a/docs/content/4.theme/0.index.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -navigation: - collapse: true ---- diff --git a/docs/content/4.theme/1.settings.md b/docs/content/4.theme/1.settings.md deleted file mode 100644 index b37009b6c..000000000 --- a/docs/content/4.theme/1.settings.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -navigation: - title: Settings ---- - -# Theme settings - -The default theme is entirely customizable, from a simple configuration file! ✨ - ---- - -The default configuration sets defaults for every needed feature of your theme. - -::code-group - -```javascript [Minimal configuration] -export default { - ...yourDocusConfig, - theme: { - colors: { - primary: '#3073F1' - } - } -} -``` - -```javascript [Complete configuration] -export default { - ...yourDocusConfig, - theme: { - header: { - logo: { - dark: '/img/header/dark/logo.svg', - light: '/img/header/light/logo.svg' - }, - title: true - }, - colors: { - primary: '#3073F1', - prism: { - foreground: 'inherit', - background: '#fbfbfb dark:#1e1e1e', - class: '#9807af dark:#E879F9', - builtin: '#9807af dark:#E879F9', - function: '#9807af dark:#E879F9', - keyword: '#096d7c dark:#22D3EE', - string: '#679c0d dark:#BEF264', - number: '#679c0d dark:#BEF264', - selector: '#679c0d dark:#BEF264', - boolean: '#679c0d dark:#BEF264', - property: '#078ce5 dark:#E0F2FE', - punctuation: '#078ce5 dark:#E0F2FE', - comment: '#758575 dark:#a0ada0', - literal: '#429988 dark:#2f8a89', - variable: 'inherit', - constant: '#9807af dark:#E879F9', - deleted: '#a14f55 #a14f55', - namespace: '#9807af dark:#E879F9', - decorator: '#9807af dark:#E879F9', - regex: '#679c0d dark:#BEF264', - 'json-property': '#078ce5 dark:#22D3EE', - 'line-number': '#888888', - 'line-number-gutter': '#eeeeee', - 'line-highlight-background': '#444444', - 'selection-background': '#444444' - } - }, - shortcuts: { - // Primary - 'text-primary': 'text-primary-500 dark:text-primary-400', - 'border-primary': 'border-primary-500 dark:border-primary-400', - 'bg-primary': 'bg-primary-500 dark:bg-primary-400', - // Icons - 'text-icon': 'text-gray-500 dark:text-gray-500 hover:text-gray-700 dark:hover:text-gray-400', - 'd-icon': 'text-icon focus:outline-none', - // Images utils - 'light-img': 'dark:hidden', - 'dark-img': 'light:hidden', - // Container - 'max-w-container': 'max-w-7xl', - 'px-container': 'px-4 sm:px-6', - 'd-container': 'max-w-container mx-auto', - 'd-container-content': 'd-container px-container', - // Header - 'blur-header': 'blur-12', - 'bg-header': 'bg-white bg-opacity-80 dark:bg-gray-900 dark:bg-opacity-80', - 'border-header': 'border-b border-gray-200 dark:border-gray-800 border-opacity-50', - 'd-header': 'sticky w-full top-0 z-50 bg-header border-header blur-header h-header' - } - } -} -``` - -## Native parameters - -The default theme supports a list of native parameters. - -| Key | Type | Description | -|---------|--------| -----| -| **Header** | | | -| `header.logo` | `false \| Object` | If set to `false`, website will not display a logo. | -| `header.logo.dark` | `String` | Set to path for dark mode logo. | -| `header.logo.light` | `String` | Set path for light mode logo. | -| `header.title` | `Boolean` | If set to `false`, website will not display a title. | -| **Colors** | | | -| `colors.primary` | `String` | Define the primary color for the website. | -| `colors.prism` | `Object` | Define Prism code highlighting colors. Check **Complete configuration** for a complete list. | -| **Shortcuts** | | | -| `shortcuts` | `Object` | A shortcut to define [**WindiCSS shortcuts**](https://windicss.org/features/shortcuts.html). | diff --git a/docs/content/4.theme/2.components.md b/docs/content/4.theme/2.components.md deleted file mode 100644 index 437c19a4f..000000000 --- a/docs/content/4.theme/2.components.md +++ /dev/null @@ -1,242 +0,0 @@ -# Components - -Good looking components, ready to use in your website. 💄 - ---- - -Docus default theme comes with a lot of pre-defined components. - -## `alert` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/Alert.vue) - -::code-group - ::code-block{label="Preview" preview} - ::alert{type="info" style="margin-top: 0;"} - Check out an **info** alert with `code` and a [link](/). - :: - - ::alert{type="success"} - Check out a **success** alert with `code` and a [link](/). - :: - - :alert{type="warning"}[Check out a **warning** alert with `code` and a [link](/).] - - :alert[Check out a **danger** alert with `code` and a [link](/).]{type="danger" style="margin-bottom: 0;"} - :: - - ```md [Code] - - ::alert{type="info" style="margin-top: 0;"} - Check out an **info** alert with `code` and a [link](/). - :: - - ::alert{type="success"} - Check out a **success** alert with `code` and a [link](/). - :: - - - :alert{type="warning"}[Check out a **warning** alert with `code` and a [link](/).] - - :alert[Check out a **danger** alert with `code` and a [link](/).]{type="danger" style="margin-bottom: 0;"} - ``` -:: - -:props{of="components/atoms/Alert"} - -## `list` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/List.vue) - -::code-group - ::code-block{label="Preview" active preview} - ::list{type="primary"} - - **Important** - - Always - :: - - ::list{type="success"} - - Amazing - - Congrats - :: - - ::list{type="info"} - - Do you know? - - You can also do this - :: - - ::list{type="warning"} - - Be careful - - Use with precautions - :: - - ::list{type="danger"} - - Drinking too much - - Driving drunk - :: - - :: - - ```md [Code] - ::list{type="primary"} - - **Important** - - Always - :: - - ::list{type="success"} - - Amazing - - Congrats - :: - - ::list{type="info"} - - Do you know? - - You can also do this - :: - - ::list{type="warning"} - - Be careful - - Use with precautions - :: - - ::list{type="danger"} - - Drinking too much - - Driving drunk - :: - ``` -:: - -:props{of="components/atoms/List"} - -## `badge` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/Badge.vue) - -::code-group - ::code-block{label="Preview" active preview} - :badge[v1.2+] - :: - - ```md [Code] - :badge[v1.2+] - ``` -:: - -## `code-group` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/CodeGroup.vue) - -This component uses `slots`. See [`code-block`](#code-block) below. - -## `code-block` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/CodeBlock.vue) - -**Example** - -````html -ℹ️ Backslashes are for demonstration - -::code-group - -::code-block{label="Yarn" active} -```bash -yarn add docus -\``` -:: - -```bash [NPM] -npm install docus -\``` - -:: -```` - -**Result** - -::code-group - ```bash [Yarn] - yarn add docus - ``` - - ```bash [NPM] - npm install docus - ``` -:: - -:props{of="components/atoms/CodeBlock"} - -## `inject-content` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/InjectContent.vue) - -Cross-reference other files within your documentation (such as example code you want to include on multiple pages or across all languages). - -::code-group - ::code-block{label="Preview" active preview} - :inject-content{query="theme/_example"} - :: - - ```md [Code] - :inject-content{query="theme/_example"} - ``` -:: - -:props{of="components/atoms/InjectContent"} - -## `sandbox` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/Sandbox.vue) - -Embed CodeSandbox/StackBlitz easily in your documentation with great performances, using the [IntersectionObserver](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API) to load when visible in the viewport. - -::code-group - ::code-block{label="Preview" active preview} - :sandbox{src="https://codesandbox.io/embed/nuxt-content-l164h?hidenavigation=1&theme=dark"} - :: - - ```md [Code] - :sandbox{src="https://codesandbox.io/embed/nuxt-content-l164h?hidenavigation=1&theme=dark"} - ``` -:: - -:props{of="components/atoms/Sandbox"} - -## `tweet` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/twitter/components/Tweet.vue) - -Embed tweets easily in your documentation - with great performance. Tweets will be embedded statically without using any runtime JS. - -::code-group - ::code-block{label="Preview" active preview} - - :tweet{id="1314628331841761289"} - - :: - - ```md [Code] - :tweet{id="1314628331841761289"} - ``` -:: - - - -## `props` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/atoms/Props.vue) - -List accepted properties of a component. - -::code-group - ::code-block{label="Preview" active preview} - - :props{of="components/atoms/CodeBlock"} - - :: - - ```md [Code] - :props{of="components/atoms/CodeBlock"} - ``` -:: - -:props{of="components/atoms/Props"} diff --git a/docs/content/4.theme/5.layout.md b/docs/content/4.theme/5.layout.md deleted file mode 100644 index 7b5095ba6..000000000 --- a/docs/content/4.theme/5.layout.md +++ /dev/null @@ -1,85 +0,0 @@ -# Layout - -Customize your website with slots or overwrite the layout components. 🧩 - ---- - -With the power of the [Nuxt Components](https://github.com/nuxt/components#overwriting-components), every part of the template is fully customizable. - -Overwriting a component is simple as creating a new component. - -If you want to overwrite `AppLayout`, simply create a `AppLayout.vue` in your `components` directory. - -You can then easily re-implement a custom layout, or any other component from our default theme. - -## Parts - -Docus template is designed to be simple and flexible. - -The template consists of **five** main components that create the structure of the template: - -- `` -- `` -- `` -- `` -- `` - -Please take a look at the [components](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/organisms/app) directory to jump right into the code. - -### `` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/organisms/app/AppLayout.vue) - -This component declares the main structure of the page. ``, `` and `` are wrapped together inside this component. - -### `` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/organisms/app/AppHeader.vue) - -The fixed component including logo, search box and utility actions. - -### `` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/organisms/app/AppAside.vue) - -The main menu of your documentation. - -It shows a list of all available contents of the site. - -### `` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/organisms/app/AppPage.vue) - -A wrapper component that contains everything about the page, including page content, table of contents and so on. - -### `` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/organisms/page/PageToc.vue) - -Display table of contents of the document. This component does not show on [fullscreen document](/writing/front-matter). - -This component shows inside the page on the right side of document content. - -### `` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/organisms/page/PagePrevNext.vue) - -Display links to the next and previous pages. - -This component shows inside the `` and under the ``. - -### `` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/organisms/page/EditOnGithub.vue) - -Display information about the document, including the last modified date and a link to edit the document. - -This component shows inside the page and under the document content. - -### `` - -[:icon-git-hub{class="inline -mt-1 w-6"} Source](https://github.com/nuxtlabs/docus/tree/main/src/defaultTheme/components/organisms/page/AlgoliaSearchBox.vue) - -The search box component that integrates with [Algolia Doc search](https://docsearch.algolia.com/). - -This component shows inside the ``. diff --git a/docs/content/4.theme/6.slots.md b/docs/content/4.theme/6.slots.md deleted file mode 100644 index 3e61dad65..000000000 --- a/docs/content/4.theme/6.slots.md +++ /dev/null @@ -1,27 +0,0 @@ -# Slots - -Docus supports customizable slots in the template. 🧱 - ---- - -Just create a component inside your `components` directory with the same name as the slot. - -For example to overwrite the `` slot, create `components/AsideTop.vue`: - -```vue [components/AsideTop.vue] - -``` - -Here is the complete list of available slots: - -- `` -- `` -- `` -- `` -- `` -- `` -- `` diff --git a/docs/content/5.templates/0.index.md b/docs/content/5.templates/0.index.md deleted file mode 100644 index 8d2299c8c..000000000 --- a/docs/content/5.templates/0.index.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -navigation: - collapse: true - redirect: /writing/my-first-page ---- diff --git a/docs/content/5.templates/1.pre-launch.md b/docs/content/5.templates/1.pre-launch.md deleted file mode 100644 index 4d437ff98..000000000 --- a/docs/content/5.templates/1.pre-launch.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -template: page -title: Pre-launch template -layout: - footer: false - aside: true - asideClass: 'bloc lg:hidden' - fluid: true ---- - - -::pre-launch-hero ---- -title: Awesome startup -description: Pretty long awesome startup description -cta: - description: Request an invite - placeholder: Your email - label: Get Invite ---- -:: diff --git a/docs/content/5.templates/2.pricing.md b/docs/content/5.templates/2.pricing.md deleted file mode 100644 index 3ea48b30a..000000000 --- a/docs/content/5.templates/2.pricing.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -template: marketing -footer: false ---- - -::pricing-block ---- -plans: - monthly: - base: true - title: Month - label: Monthly - annual: - title: Year - label: Yearly - preSelected: true - divider: 12 - -tiers: - free: - price: - monthly: 0 - annual: 0 - title: Free - description: Our Free plan description - features: - - Feature One - - Feature Two - starter: - preSelected: true - price: - monthly: 10 - annual: 100 - title: Starter - description: Our Starter plan pretty long multiline description - features: - - All Free Tier features - - Feature Three - - Feature Four - pro: - price: - monthly: 100 - annual: 1000 - title: Pro - description: Our Pro plan description - features: - - All Starter Tier features - - Feature Five - - Feature Six - -meta: - currency: $ - featuresTitle: 'Included features:' - buttonText: Choose plan - preSelectedBadge: Popular - checkoutText: 'Total:' - checkoutButtonText: Checkout ---- -:: - \ No newline at end of file diff --git a/docs/content/5.templates/blog/build-dev-to-clone-with-nuxt-new-fetch.md b/docs/content/5.templates/blog/build-dev-to-clone-with-nuxt-new-fetch.md deleted file mode 100644 index 9812fc61d..000000000 --- a/docs/content/5.templates/blog/build-dev-to-clone-with-nuxt-new-fetch.md +++ /dev/null @@ -1,596 +0,0 @@ ---- -title: 'Build a dev.to clone with Nuxt new fetch' -description: Let’s build a blazing fast articles and tutorials app using Nuxt and the DEV API, with lazy loading, placeholders, caching and trendy neumorphic design UI. -imgUrl: https://source.unsplash.com/user/remithorel/1280x720 -date: 2020-04-08 -authors: - - name: Sergey Bedritsky - avatarUrl: https://pbs.twimg.com/profile_images/1244291720566669315/pGg6Xn-M_400x400.jpg - link: https://twitter.com/sergeybedritsky - - name: Sebastien Chopin - avatarUrl: https://pbs.twimg.com/profile_images/1042510623962275840/1Iw_Mvud_400x400.jpg - link: https://twitter.com/Atinux -tags: - - Nuxt - - Fetch - - Asynchronous Data Fetching - - API ---- - -_Let’s build a blazing fast articles and tutorials app using Nuxt and the DEV API, with lazy loading, placeholders, caching and trendy neumorphic design UI._ - - - -

- View demo / - Source -

- -This article is intended to demonstrate use cases and awesomeness of new Nuxt `fetch` functionality [introduced in release v2.12](https://nuxtjs.org/docs/2.x/components-glossary/pages-fetch#nuxt-gt-2-12), and show you how to apply its power in your own projects. For in-depth technical analysis and details of the new `fetch` you can check [Krutie Patel’s article](https://nuxtjs.org/blog/understanding-how-fetch-works-in-nuxt-2-12). - -Here’s the high-level outline of how we will build our dev.to clone using `fetch` hook. We will: - -- use `$fetchState` for showing nice placeholders while data is fetching on the client side -- use `keep-alive` and `activated` hook to efficiently cache API requests on pages that have already been visited -- reuse the `fetch` hook with `this.$fetch()` -- set `fetchOnServer` value to control when we need to render our data on the server side or not -- find a way to handle errors from `fetch` hook. - -## Table of Contents - -- [Table of Contents](#table-of-contents) -- [DEV API](#dev-api) -- [Setting up the Project](#setting-up-the-project) - - [CSS Styles](#css-styles) - - [UI Design](#ui-design) - - [SVG icons](#svg-icons) - - [Dependencies](#dependencies) -- [Developing the Application](#developing-the-application) - - [URL structure](#url-structure) - - [Caching requests with `keep-alive` and `activated` hook](#caching-requests-with-keep-alive-and-activated-hook) - - [Using `fetch` in page components](#using-fetch-in-page-components) - - [Reuse `fetch` with `this.$fetch()`](#reuse-fetch-with-thisfetch) - - [Applying placeholders with `$fetchState`](#applying-placeholders-with-fetchstate) - - [Using `fetch` in any other component 🔥](#using-fetch-in-any-other-component-) - - [Error handling](#error-handling) -- [Conclusion](#conclusion) - -## DEV API - -In September 2019 DEV [opened](https://twitter.com/bendhalpern/status/1176663688742395904) their public API that we can now use to access articles, users and other resources data. _Please note that it’s still Beta, so it could change in future or some things might not work as expected._ - -For creating our DEV clone we are interested in such API endpoints: - -- [getArticles](https://docs.dev.to/api/#operation/getArticles): to access a list of articles, filtered by the `tag`, `state`, `top`, `username` and paginated with `page` parameters -- [getArticleById](https://docs.dev.to/api/#operation/getArticleById): to access an article content -- [getUser](https://docs.dev.to/api/#operation/getUser): to access user data -- [getCommentsByArticleId](https://docs.dev.to/api/#operation/getCommentsByArticleId): to fetch comments related to the article - -To keep it simple, for communication with the DEV API we will use native JavaScript [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) . - -## Setting up the Project - -If you are an experienced developer you can skip this part and [get straight to the point](#developing-the-application). - -Make sure you have Node and npm installed. We will use `create-nuxt-app` to [initialize](https://nuxtjs.org/docs/2.x/get-started/installation#using-code-create-nuxt-app-code-) the project, so just type the following command in terminal: - -``` -npx create-nuxt-app nuxt-dev-to-clone -# leave the default answers for each question -``` - -Now `cd nuxt-dev-to-clone/` and run `npm run dev`. Congrats, your Nuxt app is running on [http://localhost:3000](http://localhost:3000/)! - -Let’s install necessary packages and discuss how we will build our app next. - -### CSS Styles - -For styling we will use the most common CSS pre-processor Sass/SCSS and leverage Vue.js [Scoped CSS](https://vue-loader.vuejs.org/guide/scoped-css.html) feature, to keep our components styles encapsulated. To [use Sass/SCSS with Nuxt](https://nuxtjs.org/docs/2.x/features/configuration#pre-processors) run: - - - - -```bash -yarn add sass sass-loader@10 -D -``` - - - - -```bash -npm install sass sass-loader@10 --save-dev -``` - - - - -We also will use [@nuxtjs/style-resources](https://github.com/nuxt-community/style-resources-module) module that will help us to use our design tokens defined in SCSS variables in any Vue file without the necessity of using `@import` statements in each file. - - - - -```bash -yarn add @nuxtjs/style-resources -``` - - - - -```bash -npm install @nuxtjs/style-resources -``` - - - - -Now tell Nuxt to use it by adding this code to `nuxt.config.js` - -```js{}[nuxt.config.js] -buildModules: ['@nuxtjs/style-resources'] -``` - -Read more about this module [here](https://github.com/nuxt-community/style-resources-module#scss-example), regarding `buildModules`, you can learn more on it in the [modules vs buildModules](https://nuxtjs.org/docs/2.x/configuration-glossary/configuration-modules#-code-buildmodules-code-) section of the documentation. - -Let’s define our design tokens as SCSS variables, put them in `~/assets/styles/tokens.scss` and tell `@nuxtjs/style-resources` to load them by adding to `nuxt.config.js` - -```js{}[nuxt.config.js] -styleResources: { - scss: ['~/assets/styles/tokens.scss'] -} -``` - -Our design tokens are now available through SCSS variables in every Vue component. - -### UI Design - -It will be kinda boring just to copy the existing DEV design and layout, so why don’t we experiment a little bit. You have probably already heard of the new UI trend — neumorphism. If you missed it somehow, read more about it [here](https://uxdesign.cc/neumorphism-in-user-interfaces-b47cef3bf3a6). - -We can find a lot of [Dribbble shots](https://dribbble.com/tags/neumorphism) (from where this trend came from), but still only a few examples of real-world web apps built with neumorphism style interface, so we just can’t miss the chance to recreate it with CSS and Vue.js. It’s simple, clean and fresh. - -I am not going to describe the styling aspect of this application in detail, but if you are interested, you can check this awesome article from [CSS Tricks](https://css-tricks.com/neumorphism-and-css/) about neumorphism and CSS. - -### SVG icons - -For SVG icons lets use [@nuxt/svg](https://github.com/nuxt-community/svg-module). This module allows us to import `.svg` files as inline SVG, while keeping SVG sources in single place and not polluting Vue template markup with loads of SVG code. - - - - -```bash -yarn add @nuxtjs/svg -D -``` - - - - -```bash -npm install @nuxtjs/svg -D -``` - - - - -```js{}[nuxt.config.js] -buildModules: ['@nuxtjs/svg', '@nuxtjs/style-resources'] -``` - -### Dependencies - -To keep the frontend app fast and simple we will use only two dependencies, both from Vue.js core members: - -- [vue-observe-visibility](https://github.com/Akryum/vue-observe-visibility) by [Guillaume Chau](https://twitter.com/Akryum), for effective detecting elements in viewport with IntersectionObserver and trigger lazy loading. Only 1.6kB gzipped -- [vue-content-placeholders](https://github.com/michalsnik/vue-content-placeholders) by [Michał Sajnóg](https://twitter.com/michalsnik), for showing nicely animated placeholders for UI elements while content is fetching. Only 650B gzipped. - -Let’s add them as Nuxt [plugins](https://nuxtjs.org/docs/2.x/configuration-glossary/configuration-plugins), by creating two files. - -```js{}[vue-observe-visibility.client.js] -import Vue from 'vue' -import VueObserveVisibility from 'vue-observe-visibility' - -Vue.use(VueObserveVisibility) -``` - -```js{}[vue-placeholders.js] -import Vue from 'vue' -import VueContentPlaceholders from 'vue-content-placeholders' - -Vue.use(VueContentPlaceholders) -``` - -And add them to `` - -```js{}[nuxt.config.js] -plugins: [ - '~/plugins/vue-placeholders.js', - '~/plugins/vue-observe-visibility.client.js' -] -``` - -## Developing the Application - -Now we finally can start developing our DEV clone powered by Nuxt and [new fetch](https://nuxtjs.org/docs/2.x/components-glossary/pages-fetch). - -### URL structure - -Let’s imitate the DEV URL structure for our simple app. Our [pages](https://nuxtjs.org/docs/2.x/concepts/views#pages) folder should look like this: - -``` -├── index.vue -├── t -│ └── _tag.vue -├── top.vue -└── _username - ├── _article.vue - └── index.vue -``` - -We will have 2 [static pages](https://nuxtjs.org/docs/2.x/get-started/routing#automatic-routes): - -- `index.vue`: latest articles about Nuxt.js will be listed -- `top.vue`: most popular articles for last year period. - -For the rest of the app URL’s we will use convenient Nuxt file based [dynamic routes](https://nuxtjs.org/docs/2.x/directory-structure/pages#dynamic-pages) feature to scaffold necessary pages by creating such file structure: - -- `_username/index.vue` - user profile page with list of his published articles -- `_username/_article.vue` - this is where article, author profile and comments will be rendered -- `t/_tag.vue` - list of best articles by any tag that exist on DEV - -That’s all. Pretty simple, right? - -### Caching requests with `keep-alive` and `activated` hook - -One of the coolest practical features of the new `fetch` is its ability to work with `keep-alive` directive to save `fetch` calls on pages you have already visited. Let’s apply this feature in `layouts/default.vue` layout like this. - -```html{}[layouts/default.vue] - -``` - -With this directive `fetch` will trigger only on the first page visit, after that Nuxt will save rendered components in memory, and on every subsequent visit it will be just reused from the cache. Could it be simpler than that? - -Moreover, Nuxt gives us fine grained control over `keep-alive` with the `keep-alive-props` property where you can set the number of components which you want to cache, and `activated` hook, where you can control TTL (time to live) of the cache. We will use the latest one in our app in the next sections. - -### Using `fetch` in page components - -Let’s dive into the `fetch` feature itself. - -Currently as you can see from the [final result](https://dev-clone.nuxtjs.app/) we have 3 page components that basically reuse the same code — it’s the `index.vue`, `top.vue` and `t/_tag.vue` page components. They simply render a list of article preview cards. - -```html{}[index.vue] - - - -``` - -Pay attention to this code block: - -```js{}[index.vue] -async fetch() { - const articles = await fetch(`https://dev.to/api/articles?tag=nuxt&state=rising&page=${this.currentPage}`).then((res) => res.json()) - - this.articles = this.articles.concat(articles) -} -``` - -Here we are making a request to the DEV `/articles` endpoint, with query parameters that API understands. Don’t confuse the `fetch` hook with the JavaScript [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) interface which simply helps us to send a request to the DEV API, and then parse the response with `res.json()`. - -Also notice that the new `fetch` hook doesn’t serve just to dispatch Vuex store action or committing mutation to set state, now it has access to `this` context, and is able to mutate component’s data directly. This is a very important new feature, and you can [read more](https://nuxtjs.org/blog/understanding-how-fetch-works-in-nuxt-2-12) about it in the previous article about `fetch`. - -Now let’s markup the `` component which receives `article` prop and renders its data nicely. - -```html{}[ArticleCardBlock.vue] - - - -``` - -### Reuse `fetch` with `this.$fetch()` - -It already should display a list of articles fetched from DEV - but it feels like we are not making full use of this API. Let’s add lazy loading to the articles list, and use the pagination parameter provided by this API. So when we scroll to the bottom of the page a new chunk of articles will be fetched and rendered. - -To efficiently detect when to fetch the next page it’s better to use [Intersection Observer API](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API). For that we will use a previously installed Vue plugin called `vue-observe-visibility` which is basically a wrapper around this API and it will detect when an element is becoming visible or hidden on the page. This plugin provides us a possibility to use `v-observe-visibility` directive on any element, so let’s add it to last `` component: - -```html{}[index.vue] - -``` - -As you can guess from the code above, when the last `` appears in viewport `lazyLoadArticles` will be fired. Let’s look at it: - -```js -lazyLoadArticles(isVisible) { - if (isVisible) { - if (this.currentPage < 5) { - this.currentPage++ - this.$fetch() - } - } -} -``` - -And here we see the power of the new `fetch` hook. We can just reuse `$fetch` as a method and fetch the next page when lazy loading is triggered. - -### Applying placeholders with `$fetchState` - -If you already applied code from the previous section and tried client-side navigation between `index.vue`, `top.vue` and `t/_tag.vue` page components you probably noticed that it shows an empty page for the moment, while it’s waiting for the API request to complete. This is intended behavior, and it’s different from the old `fetch` and `asyncData` hooks that triggered before page navigation. - -Thanks to `$fetchState.pending` wisely provided by the `fetch` hook we can use this flag to display a placeholder when fetch is being called on client-side. `vue-content-placeholders` plugin will be used as a placeholder. - -```html{}[index.vue] - -``` - -We imitate how `` looks with [vue-content-placeholders components](https://github.com/michalsnik/vue-content-placeholders#available-components-and-properties), and as you could see in source code it will be used in almost every component that uses the `fetch` hook, so let’s not pay attention on those parts of code anymore (they are basically the same in each component). - -### Using `fetch` in any other component 🔥 - -This is probably the most interesting feature of the new `fetch` hook. **We can now use the `fetch` hook in any Vue component without worrying about breaking SSR!** This means far less headache about how to structure your async API calls and components. - -To explore this great functionality let’s move to `_username/_article.vue` page component. - -```html{}[_username/_article.vue] - - - -``` - -Here we see no data fetching at all, only a template layout consisting of 3 components: ``, ``, ``. And each of those components has its own `fetch` hook. With old `fetch` or current `asyncData` earlier we would have to make all three requests to three different DEV endpoints and then pass them to each component as a prop. But now those components are completely encapsulated. - -In `` we use `fetch` just like we’d use it in a page component. - -```js -async fetch() { - const article = await fetch( - `https://dev.to/api/articles/${this.$route.params.article}` - ).then((res) => res.json()) - - if (article.id && article.user.username === this.$route.params.username) { - this.article = article - this.$store.commit('SET_CURRENT_ARTICLE', this.article) - } else { - // set status code on server - if (process.server) { - this.$nuxt.context.res.statusCode = 404 - } - // throwing an error will set $fetchState.error - throw new Error('Article not found') - } -} -``` - -Now, remember in the section about caching I mentioned that there’s an `activated` hook that can be used for managing TTL of `fetch`? This is example of such usage: - -```js -activated() { - if (this.$fetchState.timestamp <= Date.now() - 60000) { - this.$fetch() - } -} -``` - -With this code in place we will call fetch again if last fetch was more than 60 sec ago. All other requests within this period will be cached. - -There’s also interesting usage of another `fetch` feature called `fetchOnServer` in the `` component. We don’t really want to render this content on the server side, because comments are user generated and could be irrelevant or spammy. We don’t need any SEO for this content block. Now, with the help of mentioned `fetchOnServer` we have such control: - -```js -async fetch() { - this.comments = await fetch( - `https://dev.to/api/comments?a_id=${this.$route.params.article}` - ).then((res) => res.json()) -}, -fetchOnServer: false -``` - -### Error handling - -Last thing that should be mentioned is error handling. You probably already saw that we used error handling above, but let’s pay more attention to this important topic. - -As you know, `fetch` is handled at the **component level**, when doing server-side rendering, the parent (virtual) dom tree is already rendered when rendering the component, so we cannot change it by calling `$nuxt.error(...)`, instead we have to **handle the error at the component level**. - -`$fetchState.error` is set if an error is thrown in the `fetch` hook, so we can use it in our template to display an error message: - -```html - -``` - -Then, in our `fetch` hook, we will throw the error if we don't find the article corresponding for the defined author: - -```js -async fetch() { - const article = await fetch( - `https://dev.to/api/articles/${this.$route.params.article}` - ).then((res) => res.json()) - - if (article.id && article.user.username === this.$route.params.username) { - this.article = article - } else { - // set status code on server - if (process.server) { - this.$nuxt.context.res.statusCode = 404 - } - throw new Error('Article not found') - } -} -``` - -Note here that we wrap `this.$nuxt.context.res.statusCode = 404` around `process.server`, this is used to set the HTTP status code on the server-side for correct SEO. - -## Conclusion - -In this article we explored Nuxt.js new `fetch` and built an app with the basic DEV content features and structure using only this `fetch` hook. I hope you've got some inspiration to build your own version of DEV.TO. Don’t forget to check out the [source code](https://github.com/bdrtsky/nuxt-dev-to-clone) for a more complete example and functionality. - -**What to do next:** - -- Read [Krutie Patel article](https://nuxtjs.org/blog/understanding-how-fetch-works-in-nuxt-2-12) with in-depth analysis of how new `fetch` hook works -- Check [nuxt-hackernews](https://github.com/nuxt/hackernews) for similar usage of [Hacker News API](https://github.com/HackerNews/API) -- [Subscribe](#subscribe-to-newsletter) to the newsletter to not miss the upcoming articles and resources, I plan to write an article about how to create your personal blog using Nuxt, with DEV as the CMS. diff --git a/docs/content/5.templates/blog/creating-a-nuxt-module.md b/docs/content/5.templates/blog/creating-a-nuxt-module.md deleted file mode 100644 index 55cbe02a9..000000000 --- a/docs/content/5.templates/blog/creating-a-nuxt-module.md +++ /dev/null @@ -1,427 +0,0 @@ ---- -title: Creating a Nuxt Module -description: Modules are functions that are called sequentially when booting Nuxt. The framework waits for each module to finish before continuing. In this way, modules can customize almost any aspect of your project. Let's create a module that uses ngrok to get a Public URL that you can share while working in Development. -imgUrl: https://source.unsplash.com/user/jasebloor/1280x720 -date: 2020-11-27 -authors: - - name: "Debbie O'Brien" - avatarUrl: https://pbs.twimg.com/profile_images/1252900852156772352/JLIVJ-TC_400x400.jpg - link: https://twitter.com/debs_obrien -tags: - - Nuxt - - Modules - - ngrok ---- - -Modules are functions that are called sequentially when booting Nuxt. The framework waits for each module to finish before continuing. In this way, modules can customize almost any aspect of your project. Nuxt modules can be incorporated into npm packages. This makes them easy to reuse across projects and to share with the community. - -Have you ever been working on something and ran into a bug or just needed to get approval from someone. There are a few options to achieve this such as deploying your application or creating a [CodeSandbox](https://codesandbox.io). But another option is to share your localhost so that as you make changes live in dev mode, it can be seen by anyone who has the link, no matter where they are. We can use [ngrok](https://www.npmjs.com/package/ngrok) to achieve this. - -Let's create a module that uses [ngrok](https://www.npmjs.com/package/ngrok) so that you get a public URL which can be seen in the Nuxt CLI when you run the dev command. - - - -This module has already been created and deployed and you can use it without creating it yourself by installing the [@nuxtjs/ngrok module](https://ngrok.nuxtjs.org). You can also jump straight into the code by checking out our [CodeSandbox Demo](https://nuxtjs.org/examples/modules-internal). However if you are interested in seeing how it was created or want to create your own module then continue reading. - -- [How does it work?](#how-does-it-work) -- [Let's get started](#lets-get-started) -- [Creating our module](#creating-our-module) -- [Investigating nuxt.options](#investigating-nuxtoptions) -- [Start the ngrok tunnel when the Nuxt server is listening](#start-the-ngrok-tunnel-when-the-nuxt-server-is-listening) -- [Adding an authtoken](#adding-an-authtoken) -- [ngrok in action](#ngrok-in-action) -- [Add our URL to the Nuxt CLI](#add-our-url-to-the-nuxt-cli) -- [Closing our ngrok](#closing-our-ngrok) -- [Full code example](#full-code-example) -- [Conclusion](#conclusion) -- [Further exploration](#further-exploration) - -## How does it work? - -ngrok will create a http-https-tcp tunnel. Check out the [ngrok npm package](https://www.npmjs.com/package/ngrok) for more details. We need to be able to connect to an ngrok port when the Nuxt server is listening. Once we get a public URL we want to print it to the Nuxt CLI so we can easily click it to open and share it. - -![nuxt cli](https://nuxtjs.org/blog/creating-nuxt-module/nuxt-cli.png) - -## Let's get started - -To use a custom module within our app we need to create a modules folder if you haven't already got one. Inside it let's create a folder called ngrok and add an index.js file into it. You can use your editor to create these folders and files or use the commands below. - -```bash -mkdir modules modules/ngrok -touch modules/ngrok/index.js -``` - -In order to use our module we will need to register it by adding it in the [buildModules](https://nuxtjs.org/docs/2.x/directory-structure/modules/#buildmodules) section of our `nuxt.config.js` file. BuildModules are only imported during development and build time which is perfect for our module as we only need it to work in dev mode. - -```js{}[nuxt.config.js] -export default { - buildModules: ['~/modules/ngrok'] -} -``` - -As we will use the [ngrok npm package](https://www.npmjs.com/package/ngrok) we will need to install as a dev dependency. - - - - -```bash -yarn add --dev ngrok -``` - - - - -```bash -npm install --dev ngrok -``` - - - - -## Creating our module - -Now that we have installed and registered everything we can now go ahead and create our module. The first thing we need to do is to import ngrok from our `node_modules` folder into our `index.js` file of our ngrok module. - -```js{}[modules/ngrok/index.js] -import ngrok from 'ngrok' -``` - -We can then create a function using export default which allows us to use this function in another file. - -```js{}[modules/ngrok/index.js] -import ngrok from 'ngrok' - -export default function () {} -``` - -Inside this function we can start by destructuring nuxt and making it equal to `this`, which means we won't have to write `this.nuxt`each time we refer to nuxt. - -```js{}[modules/ngrok/index.js] -import ngrok from 'ngrok' - -export default function () { - const { nuxt } = this - - // My nuxt module code goes here -} -``` - -## Investigating nuxt.options - -We only want to run ngrok in dev mode and not in production so how would we do that? - -First let's log to our console `nuxt.options` so we can see all the nuxt options that are available to us. This is the `nuxt.config.js` mixed with the default values. - -```js{}[modules/ngrok/index.js] -import ngrok from 'ngrok' - -export default function () { - const { nuxt } = this - - console.log(nuxt.options) - - // My nuxt module code goes here -} -``` - -There are a lot of values in here. What we want is a way to see when we are in dev mode and you will see from the console that in our `nuxt.options` we have `dev` set to `true`. That means we can add an if statement to check if dev is false and return if we are not in dev mode. - -```js{}[modules/ngrok/index.js] -import ngrok from 'ngrok' - -export default function () { - const { nuxt } = this - - // Don't start ngrok in production - if (nuxt.options.dev === false) { - return - } - - // More coming below :) -} -``` - -## Start the ngrok tunnel when the Nuxt server is listening - -We want to start the ngrok tunnel when the nuxt sever is listening. To do that we need a way to hook into Nuxt and listen for a port so we can connect. That's where Nuxt hooks come in. [Nuxt hooks](https://nuxtjs.org/docs/2.x/internals-glossary/internals-nuxt) are listeners to Nuxt events. We will use the `nuxt.hook()` passing in the value of `listen` followed by an async function. In this function we need to pass in the server, followed by the port. - -```js{}[modules/ngrok/index.js] -import ngrok from 'ngrok' - -export default function () { - // [...] - - // https://nuxtjs.org/docs/2.x/internals-glossary/internals-nuxt#hooks - nuxt.hook('listen', async function (server, { port }) { - - }) -} -``` - -We then await the ngrok connection passing in the value of port and assigning it to our url, which is defined outside the function. We can now run a `console.log` inside our function to see the result of our url. - -```js{}[modules/ngrok/index.js] -import ngrok from 'ngrok' - -export default function () { - // [...] - - let url - - // https://nuxtjs.org/docs/2.x/internals-glossary/internals-nuxt#hooks - nuxt.hook('listen', async function (server, { port }) { - - url = await ngrok.connect(port) - - // We have our public url here - console.log(url) - }) -} -``` - -Now if you run the dev command and open up your console you will see your url from ngrok. Opening that URL will show you your website in dev mode. - -## Adding an authtoken - -Although this should work we might run into some issues regarding max connections and other limitations and therefore it is best to setup up an [authtoken](https://ngrok.com/) which can be done for free from the ngrok website. - -Once we have our token we can set up our `.env` file and add our token. - -```bash{}[.env] -NGROK_TOKEN=my-authtoken-from-ngrok -``` - - - -Don't forget to make sure your `.env`file has been added to your `.gitignore`. - - - -We can now set a const of `options` equal to the options from the ngrok property of our `nuxt.config.js` or equal to an empty object in case we don't define any options. We also add a const of `authtoken` equal to the `NGROK_TOKEN` from our `.env` file or `options.authtoken` which is the same as `nuxt.options.ngrok.authtoken`, in case this value was defined directly in our `ngrok` property in the our `nuxt.config.js`. - -We can then await the ngrok authtoken passing in the token value. - -```js{}[modules/ngrok/index.js] -import ngrok from 'ngrok' - -export default function () { - // [...] - - // Read ngrok property defined in nuxt.config.js - const options = nuxt.options.ngrok || {} - const authtoken = process.env.NGROK_TOKEN || options.authtoken - - // [...] -} -``` - -We can then await the ngrok authtoken passing in the value of `token`which we have defined above. - -```js{}[modules/ngrok/index.js] -import ngrok from 'ngrok' - -export default function () { - // [...] - - // Read ngrok property defined in nuxt.config.js - const options = nuxt.options.ngrok || {} - const token = process.env.NGROK_TOKEN || options.authtoken - - // https://nuxtjs.org/docs/2.x/internals-glossary/internals-nuxt#hooks - nuxt.hook('listen', async function (server, { port }) { - - if(options.authtoken){ - await ngrok.authtoken(options.authtoken) - } - - url = await ngrok.connect(port) - - // We have our public url here - console.log(url) - }) -} -``` - -## ngrok in action - -But is it really working? If I change anything in development will they see it on that URL? Let's take a look. If we go to our index page and add some text. For example "URL from ngrok:" you will now see that change in your [localhost](http://localhost) and also in the url from ngrok that you printed to console. How cool. - -```html{}[pages/index.vue] -

URL from ngrok:

-``` - -Let's add our url from ngrok to our vue template. We can get access to our ngrok url by using the publicRuntimeConfig which is then accessible using `$config` from the context. We do this by assigning our url to the to the `nuxt.options.publicRuntimeConfig.ngrok`. We can now remove our `console.log`as this is no longer needed. - -```js{}[modules/ngrok/index.js] -import ngrok from 'ngrok' - -export default function () { - // [...] - - // https://nuxtjs.org/docs/2.x/internals-glossary/internals-nuxt#hooks - nuxt.hook('listen', async function (server, { port }) { - - if(options.authtoken){ - await ngrok.authtoken(options.authtoken) - } - - url = await ngrok.connect(port) - - // Add the public url to the public runtimeConfig - nuxt.options.publicRuntimeConfig.ngrok = { url } - - }) -} -``` - -We can now access this in our Vue template using `$config`and if we wrap it in a link tag then it will be clickable. - -```html{}[modules/ngrok/index.js] - -``` - -Let's run the dev server and now you should see your URL from ngrok printed out on the page. How cool. - -## Add our URL to the Nuxt CLI - -In general we probably won't want to print the URL onto the page. It would be much better if we could add it to the Nuxt CLI so we can see it every time we run the dev command and be able to click and open it from there. We can then share that link with whoever we want without having to expose it in our .vue file or in our console. - -We can access the CLI through the `nuxt.options`. You can see this by logging the `nuxt.options`to the console and searching for cli. If you do you will see that we have a [`badgeMessages`](https://nuxtjs.org/docs/2.x/configuration-glossary/configuration-cli#badgemessages) property. This is the green box that shows us the messages of Environment, Rendering and Target as well as what port the app is listening on. - -We can use the `push()` method to push our URL to the Nuxt CLI. - -```js{}[modules/ngrok/index.js] -// [...] -nuxt.hook('listen', async function (server, { port }) { - // [...] - - // Add the public url to the Nuxt box in the CLI - nuxt.options.cli.badgeMessages.push(url) - - }) -}) -``` - -Now when we run the dev command our url appears in the green box. We can of course improve this further by adding some text before the URL so our users know what it is. - -```js{}[modules/ngrok/index.js] -// [...] -nuxt.hook('listen', async function (server, { port }) { - // [...] - - // Add the public url to the Nuxt box in the CLI - nuxt.options.cli.badgeMessages.push(`Public URL: ${url}`) - - }) -}) -``` - -We can also change the color of this link and underline it by using a package called [chalk](https://www.npmjs.com/package/chalk) which allows us to style our terminal. - -```js{}[modules/ngrok/index.js] -import ngrok from 'ngrok' -import chalk from 'chalk' - -// [...] -``` - -We can then use `chalk.underline.yellow` or any other color from the chalk package. - -```js{}[modules/ngrok/index.js] -import ngrok from 'ngrok' -import chalk from 'chalk' -// [...] - - nuxt.hook('listen', async function (server, { port }) { - // [...] - - // Change the color using chalk - nuxt.options.cli.badgeMessages.push( - `Public URL: ${chalk.underline.yellow(url)}` - ) - }) -} -``` - -You will now see when running the dev command that we have our Public URL with the link underlined and in a yellow color. This can then be clicked and opened and of course shared with anyone, anywhere in the world so they can watch your changes in dev mode live. - -![nuxt cli](https://nuxtjs.org/blog/creating-nuxt-module/nuxt-cli.png) - -## Closing our ngrok - -We should always close our ngrok connection when we close Nuxt. To do this we can hook into Nuxt and look for when it will close and run a function to disconnect ngrok. - -```js{}[modules/ngrok/index.js] -// [...] -export default function () { - // [...] - - nuxt.hook('close', function () { - url && ngrok.disconnect() - }) -} -``` - -## Full code example - -```js{}[modules/ngrok/index.js] -import ngrok from 'ngrok' -import chalk from 'chalk' - -export default function () { - const { nuxt } = this - - // Don't start ngrok in production - if (nuxt.options.dev === false) { - return - } - - // Read ngrok property defined in nuxt.config.js - const options = nuxt.options.ngrok || {} - const authtoken = process.env.NGROK_TOKEN - - // https://nuxtjs.org/docs/2.x/internals-glossary/internals-nuxt#hooks - nuxt.hook('listen', async function (server, { port }) { - - if(options.authtoken){ - await ngrok.authtoken(options.authtoken) - } - - - url = await ngrok.connect(port) - - // Add the public url to the public runtimeConfig - nuxt.options.publicRuntimeConfig.ngrok = { url } - - // Add the public url to the Nuxt box in the CLI - nuxt.options.cli.badgeMessages.push( - `Public URL: ${chalk.underline.yellow(url)}` - ) - - }) - - nuxt.hook('close', function () { - url && ngrok.disconnect() - }) -} -``` - -## Conclusion - -We have just created our local module which we can use in our project. This sometimes is enough but sometimes we want to share our module across projects or even better, with the Nuxt Community. To do this we need to create our module using a module template and publish it to npm. - -As of today we are working on improving this template to make it more user friendly. All modules are created using typescript and should contain tests, docs and an example. - -## Further exploration - -Check our our [CodeSandbox example](https://nuxtjs.org/examples/modules-internal) for this module. - -Check out our published [ngrok module](https://ngrok.nuxtjs.org/). - -Check out our list of [Nuxt modules](https://modules.nuxtjs.org/). diff --git a/docs/content/5.templates/blog/creating-blog-with-nuxt-content.md b/docs/content/5.templates/blog/creating-blog-with-nuxt-content.md deleted file mode 100644 index 97d1c05f4..000000000 --- a/docs/content/5.templates/blog/creating-blog-with-nuxt-content.md +++ /dev/null @@ -1,946 +0,0 @@ ---- -title: 'Create a Blog with Nuxt Content' -description: 'The Content module is a git files based headless CMS that provides powerful features when it comes to write blogs, documentation sites or just adding content to any regular website. In this post we will go through most of the benefits of this module and discover how we can create a blog with it.' -imgUrl: https://source.unsplash.com/user/agk42/1280x720 -date: 2020-07-02 -authors: - - name: "Debbie O'Brien" - avatarUrl: https://pbs.twimg.com/profile_images/1252900852156772352/JLIVJ-TC_400x400.jpg - link: https://twitter.com/debs_obrien -tags: - - Nuxt - - Content - - Markdown ---- - -The [content module](https://content.nuxtjs.org) is a git files based headless CMS that provides powerful features when it comes to write blogs, documentation sites or just adding content to any regular website. In this post we will go through most of the benefits of this module and discover how we can create a blog with it. - - - -

- View demo / - Source code -

- -- [Getting started](#getting-started) - - [Installation](#installation) - - [Let's create our markdown page](#lets-create-our-markdown-page) - - [Displaying your content](#displaying-your-content) - - [Default Injected variables](#default-injected-variables) - - [Custom Injected variables](#custom-injected-variables) - - [Styling our markdown content](#styling-our-markdown-content) - - [Adding an icon to our headings anchor](#adding-an-icon-to-our-headings-anchor) - - [Add a table of contents](#add-a-table-of-contents) - - [Use HTML in your markdown files](#use-html-in-your-markdown-files) - - [Adding a Vue component](#adding-a-vue-component) - - [Adding an Author component with props](#adding-an-author-component-with-props) - - [Adding a code block to your post](#adding-a-code-block-to-your-post) - - [Creating a previous and next component](#creating-a-previous-and-next-component) - - [Working with the API](#working-with-the-api) - - [List all the blog posts](#list-all-the-blog-posts) - - [Using the where query to create an Author page](#using-the-where-query-to-create-an-author-page) - - [Add a search field](#add-a-search-field) -- [Live editing our content](#live-editing-our-content) -- [Generating our content](#generating-our-content) -- [Conclusion](#conclusion) -- [Further Reading](#further-reading) - -## Getting started - -### Installation - -To get started with content module we will first need to install the module using npm or yarn. - - - - -```bash -yarn add @nuxt/content -``` - - - - -```bash -npm install @nuxt/content -``` - - - - -Then we can add it to our modules property inside our nuxt.config file. - -```js{}[nuxt.config.js] -export default { - modules: ['@nuxt/content'] -} -``` - - - -If you have created a new project with `create-nuxt-app` you can choose to add the content module and therefore it will be installed for you. - - - -### Let's create our markdown page - -The content module works by reading the files in our `content/` directory. - -```bash -mkdir content -``` - - - -If you have created your project with `create-nuxt-app`, the `content/` directory will be already created. - - - -Let's create an `articles/` directory where we can add the articles for our blog. - -```bash -mkdir content/articles -``` - -The content module can parse markdown, csv, yaml, json, json5 or xml. Let's create our first article with a markdown file: - -```bash -touch content/articles/my-first-blog-post.md -``` - -We can now add a title and text for our blog post: - -```markdown -# My first blog post - -Welcome to my first blog post using content module -``` - - - -In markdown we create a `

` title by using `#`. Make sure you leave a space between it and your blog title. For more info on writing in markdown see the [basic syntax guide](https://www.markdownguide.org/basic-syntax). - - - -### Displaying your content - -To display our content in our page, we can use a [dynamic page](https://nuxtjs.org/docs/2.x/directory-structure/pages#dynamic-pages) by prefixing the page with an underscore(`_`). By creating a page component named `_slug.vue` inside our blog folder, we are able to use the `params.slug` variable provided by vue router to get the name of each article. - -```bash -touch pages/blog/_slug.vue -``` - -Then we can use `asyncData` in our page component to fetch our article content before the page has been rendered. We can have access to our content through the context by using the variable `$content`. As we want to fetch a dynamic page we also need to know which article to fetch with `params.slug` which is available to us through [the context](https://nuxtjs.org/docs/2.x/internals-glossary/context). - -```html{}[pages/blog/_slug.vue] - -``` - -Inside our `asyncData` function we create a variable named `article` and fetch our content using the `await` followed by `$content`. We need to pass into `$content` what we want to fetch, which in our case is the article folder followed by the slug, which we get from our URL params. We then chain the fetch method to the end and return the article which will contain the result of our fetch. - -```html{}[pages/blog/_slug.vue] - -``` - -To display our content we are using the `` component by passing in the variable we returned into the `document` prop. In this example we have wrapped it in a HTML article tag as it is better semantic HTML but you can use a div or another HTML tag if you prefer. - -```html{}[pages/blog/_slug.vue] - -``` - -We can now run our dev server and go to the route [http://localhost:3000/blog/my-first-blog-post](http://localhost:3000/blog/my-first-blog-post) and we should see our content from our markdown file. - -![content from markdown](https://nuxtjs.org/blog/creating-blog-with-nuxt-content/get-started-with-nuxt-content.png) - -### Default Injected variables - -The nuxt content module gives us access to injected variables that we can access and show in our template. Let's take a look at the default variables that are injected into our document: - -- **body**: body text -- **dir**: directory -- **extension**: file extension (.md in this example) -- **path**: the file path -- **slug**: the file slug -- **toc**: an array containing our table of contents -- **createdAt**: the file creation date -- **updatedAt**: the date of the last file update - -We can access all these variables by using the `article` variable that we created earlier. `article` is an object that contains all these extra injected variables that we have access to. Let's inspect them by printing it out using a `
` tag.
-
-```html{}[pages/blog/_slug.vue]
-
 {{ article }} 
-``` - -Now on our page we can see we have an object with a variable property which is an empty array and a body variable which has our h1 and p tag as well as some other info that we will look at later. If we scroll down you will see we have all the other variables that we have access to. - -```bash -"dir": "/articles", -"path": "/articles/my-first-blog-post", -"extension": ".md", -"slug": "my-first-blog-post", -"createdAt": "2020-06-22T10:58:51.640Z", -"updatedAt": "2020-06-22T10:59:27.863Z" -``` - -This means we can access these variables by using our article variable followed by the what we want to use. For example `article.updatedAt` will give us the date the post was last updated. - -```html{}[pages/blog/_slug.vue] -

Post last updated: {{ article.updatedAt }}

-``` - -As you can see the date is not that human friendly. We can format this by creating a method that takes in a date and returns a new date with the options of year, month and day formatted to how we want. - -```js{}[pages/blog/_slug.vue] -methods: { - formatDate(date) { - const options = { year: 'numeric', month: 'long', day: 'numeric' } - return new Date(date).toLocaleDateString('en', options) - } - } -``` - -And then in our template we can use the formatDate method passing in the date we get from our content which will return a nicely formatted date for us. - -```html{}[pages/blog/_slug.vue] -

Article last updated: {{ formatDate(article.updatedAt) }}

-``` - -### Custom Injected variables - -We can also add custom injected variables by adding a block of YAML front matter to our markdown file. It must be at the top the file and must be a valid YAML format set between three triple dashed lines. This is useful for adding SEO variables such as title, description and image of your article. - -```yaml{}[content/articles/my-first-blog-post.md] ---- -title: My first Blog Post -description: Learning how to use @nuxt/content to create a blog -img: first-blog-post.jpg -alt: my first blog post ---- - -``` - -We now have a title, description, img and alt variable that we can access to by using our `article` object variable. - -```html{}[pages/blog/_slug.vue] - -``` - - - -In order to render images included in the YAML of the article we either need to place them in the static folder or use the syntax: `` :src="require(`~/assets/images/${article.img}`)" ``. - -Images included in the article content should always be placed **in the static folder** as @nuxt/content is independent of Webpack. The static folder doesn't go through webpack whereas the assets folder does. - - - -### Styling our markdown content - -If we inspect this page we can see that everything written inside our markdown is wrapped inside a div with a class of nuxt-content. That means we can easily add styles to all our elements coming from our markdown file by wrapping them in the nuxt-content class. - -```html{}[pages/blog/_slug.vue] - -``` - -All other tags that come from our YAML front matter can be styled as normal either using [TailwindCSS](https://tailwindcss.com/) or adding css in the style tag. - -To use scoped styles with the nuxt-content class you need to use a deep selector: `/deep/`, `::v-deep` or `>>>` - -Our markdown tags are converted into the correct tags which means we now have two `

` tags. We should now remove the one from our markdown file. - -### Adding an icon to our headings anchor - -Notice that inside the `

` tag there is an `` tag with a `href` that includes an anchor to link to itself and a `span` tag inside it with `icon` and `icon-link` classes. This is useful for linking to that section of the page. The links in the headings are empty and therefore hidden so let's add a style to them. Using the icon classes we can add an svg as a background image for our icon. You will have to first add the svg to your assets folder. In this example I have added it to an svg folder and I have taken the icon from [Steve Schoger's Hero Icons.](https://github.com/sschoger/heroicons-ui) - -```css{}[pages/blog/_slug.vue] -.icon.icon-link { - background-image: url('~assets/svg/icon-hashtag.svg'); - display: inline-block; - width: 20px; - height: 20px; - background-size: 20px 20px; -} -``` - -### Add a table of contents - -The generated `toc` variable allows us to add a table of contents to our blog post. Let's add some headings to our blog post. - -```markdown -## This is a heading - -This is some more info - -## This is another heading - -This is some more info -``` - -Now we can see these new headings inside the `toc` array with an id, a depth and the text. The depth value refer to the heading tag value, so `

` value is 2, `

` value is 3, etc. - -```markdown{}[content/articles/my-first-blog-post.md] -## This is a heading - -This is some more info - -### This is a sub heading - -This is some more info - -### This is another sub heading - -This is some more info - -## This is another heading - -This is some more info -``` - -As we have access to the `toc` id and text we can loop over these and print each one out and use the `` component to link to the id of the section we want to link to. - -```html{}[pages/blog/_slug.vue] - -``` - -Now the ToC links are working and clicking on one will bring us to the correct part of the document. The content module automatically adds an id and a link to each heading. If we inspect one of the headings from our markdown file in our dev tools we will see our `

` tag has an id. This is the same id that is found in the `toc` which is basically how the `toc` can link to the correct heading. - -We can improve this further by using dynamic classes to style the heading classes based on the depth of the heading which we can add to our nuxt-link tag. If the link has a depth of 2 add a padding on the y axis and if the the depth is 3 add a margin left and a padding bottom. Here we are using [TailwindCSS](https://tailwindcss.com/) classes but feel free to use custom class names and styles. - -```html{}[pages/blog/_slug.vue] -:class="{ 'py-2': link.depth === 2, 'ml-2 pb-2': link.depth === 3 }" -``` - -### Use HTML in your markdown files - -Sometimes we might want to add HTML to our markdown files. Let's add a div with some classes so it has a background color of blue with white text, some padding and a margin bottom. - -```html{}[content/articles/my-first-blog-post.md] -
- This is HTML inside markdown that has a class of note -
-``` - -### Adding a Vue component - -We can also add Vue components inside our markdown files. This means if we are re-using components such as an info or alert box, we can create one with the styles we need and pass in the text as a slot. - -We can now add components to our application by setting the property `components` to `true` in our `nuxt.config file`. (since v2.13) - -```js{}[nuxt.config.js] -export default { - components: true -} -``` - -Auto importing components will not work for `` unless we globally register them by adding a global folder inside the components folder. - -```bash -mkdir components/global -``` - -We can then create our InfoBox component inside this folder. - -```html{}[components/global/InfoBox.vue] - -``` - -Then in our markdown these components will be available without having to import them. - -```markdown{}[content/articles/my-first-blog-post.md] - - - -``` - - - -The global components will be available throughout our whole application so be careful when adding components to this folder. This works different to adding components in the components folder which are only added if they are being used. - - - -### Adding an Author component with props - -An other advantage of the YAML properties is that we can make them available to our component through props. For example, we can have an about the author component and if we have guest bloggers the author will change. In our markdown file we can add a new object to our frontmatter which contains the author's name and bio and image. - -```yaml{}[content/articles/my-first-blog-post.md] ---- -author: - name: Benjamin - bio: All about Benjamin - image: https://images.unsplash.com/..... ---- - -``` - -We can now create the author component. - -```bash -touch components/global/Author.vue -``` - -Here we create a div the author image, a title of Author and a dynamic name and bio of the author. - -```html{}[components/global/Author.vue] - -``` - - - -Styles have been removed from these examples, feel free to add the styles yourself or copy the styles from the [demo code](https://github.com/nuxt-academy/demo-blog-nuxt-content). - - - -Then in our script tag we can add our props of author which is an object and set required to true. - -```html{}[components/global/Author.vue] - -``` - -To use the component we will need to add it to our markdown and pass in our props. - -```markdown{}[content/articles/my-first-blog-post.md] - -``` - - - -You cannot use self closing tags in markdown, for instance, `` won't work. - - - -Putting the component here means we will have to repeat it for every article. In this case it would be better to add it directly to the slug page. We will need to change the author prop to `article.author`. - -```html{}[pages/blog/_slug.vue] - -``` - -We can now move this component out of the global folder and into the components folder directly and it will be auto imported into our slug page as we are using it in the template. - -### Adding a code block to your post - -With the content module we can style our code blocks with the automatic inclusion of [Prism](https://prismjs.com/). That means we can write our code block using the correct markdown syntax and our code block will display with styling depending on the language. - -```js -export default { - nuxt: 'is the best' -} -``` - -```html -

code styling is easy

-``` - -We can also add the file name of the code block by adding it inside square brackets after the code block's language. - -```js[my-first-blog-post.md] -export default { - nuxt: 'is the best' -} -``` - -The file name will be converted to a span with a filename class which we can then style how we like. For this example I am using tailwind classes but you can use ordinary CSS if you prefer. - -```css{}[assets/css/tailwind.css] -.nuxt-content-highlight { - @apply relative; -} -.nuxt-content-highlight .filename { - @apply absolute right-0 text-gray-600 font-light z-10 mr-2 mt-1 text-sm; -} -``` - -Different theme can be used, for example [prism-themes](https://github.com/PrismJS/prism-themes), we can install it and then add our preferred theme to the content options of your `nuxt.config file`. - -```bash -npm install prism-themes -// or -yarn add prism-themes -``` - -Then in our `nuxt.config` file, in the content options, we can add a markdown object with prism and add the theme that we want to use. - -```js{}[nuxt.config.js] -content: { - markdown: { - prism: { - theme: 'prism-themes/themes/prism-material-oceanic.css' - } - } -} -``` - -### Creating a previous and next component - -We now have a pretty complete blog post but wouldn't it be great if users could easily go from one post to another. First let's duplicate our post so we have 3 posts. Then, let's create a new component for our previous and next posts. - -```bash -touch components/PrevNext.vue -``` - -In this component we use a `v-if` inside our `NuxtLink` component to see if there is a previous blog post and if there is we add a link to it. We can print out the title of our article using the `prev` and `next` variables as these contain all the information from the article. This means we could create a card with an image and description to show the next and previous article but for this example we will just display the title. If there isn't a previous post we just print an empty span which is useful for styling purposes. We then do the exact same with our next link. - -```html{}[components/PrevNext.vue] - -``` - -In our component we pass the props `prev` and `next` to makes them available to us on our blog post page. - -```html{}[components/PrevNext.vue] - -``` - -We can now get our previous and next articles by adding them to our `asyncData`. We create an array of const with the name `prev` and `next` and we await the content from the articles folder. This time we only need the title and the slug so we can chain `only()` to our await and pass in title and slug. - -We can use the `sortBy()` method to sort our data by the createdAt date in ascending order. We then use the `surround()` method and pass in the slug from params so that it can get the correct slug for the previous and next posts. - -We then return prev and next just like we did with article. - -```js{}[pages/blog/_slug.vue] -async asyncData({ $content, params }) { - const article = await $content('articles', params.slug).fetch() - - const [prev, next] = await $content('articles') - .only(['title', 'slug']) - .sortBy('createdAt', 'asc') - .surround(params.slug) - .fetch() - - return { - article, - prev, - next - } - }, -``` - -We can now add our `` component to our slug page passing in the props of prev and next. - -```html{}[pages/blog/_slug.vue] - -``` - - - -As we have set `components: true` in our nuxt.config file we do not need to import this component in order to be able to use it. - - - -### Working with the API - -When querying data the Content module gives us access to the API so that we can query it directly to see what is being returned. We have access to the API in dev mode with the following url: [http://localhost:3000/\_content/](http://localhost:3000/_content/). In our example this will be empty as our articles are in a folder called articles therefore we need to use this url [http://localhost:3000/\_content/articles](http://localhost:3000/_content/articles) to see our list of articles. - - - -We can see individual articles by adding the name of the slug [http://localhost:3000/\_content/articles/my-first-blog-post](http://localhost:3000/_content/articles/my-first-blog-post) - - - - - -You can use a chrome extension such as [JSON Viewer Pro](https://chrome.google.com/webstore/detail/json-viewer-pro/eifflpmocdbdmepbjaopkkhbfmdgijcc) so you can better see your results. - - - -We can now query our results directly in the url and see our results as a JSON which we can then use to create our blog index page that will have a list of all the blog posts. We can see using our API what we have available to us and for the blog index page we only want to return the title, description, img, slug and author. Let's take a look at what that would be like. - -[http://localhost:3000/\_content/articles?only=title&only=description&only=img&only=slug&only=author](http://localhost:3000/_content/articles?only=title&only=description&only=img&only=slug&only=author) - - - -### List all the blog posts - -We can now create our blog index page to list out our blog posts. As we already have an index page created we just need to delete all the demo code inside this page. - - - -In the [demo code](https://github.com/nuxt-academy/demo-blog-nuxt-content) I used the main index page instead of creating an index file inside the blog folder because for this example I have no other pages but normally you might have a home page, contact page and then the blog page etc. - - - -Passing in `$content` and `params` to the context in our `asyncData` function we then use a const of articles to await our returned content by passing into `$content` the arguments of articles, as that is the folder where our articles are and our slug from params. We can then use `only()` to get our title, description, img, slug and author as we tested from our API this will give us exactly what we need. We can use `sortBy()` to sort by the createdAt date and then we chain our `fetch()` to the end and return our articles. - -```html{}[pages/index.vue] - -``` - -Our articles are now available to us just like any data property so we can use it in our template using a `v-for` to loop over all the articles and print out the article title and author name, the description, the date it was updated and the image using the `` component to link to the slug of the article. - -```html{}[pages/index.vue] - -``` - -### Using the where query to create an Author page - -With the content module we can also filter our results using the where query. We could have an author page that shows the author details and all posts by that author. - -```bash -touch pages/blog/author/_author.vue -``` - -Just like before we use asyncData to fetch our data but this time we add in a where() method. We want to get the posts where the author is the same as the author name that comes from params. - -For example: - -[http://localhost:3000/\_content/articles?author.name=Maria](http://localhost:3000/_content/articles?author.name=Maria) - -Because we have used an object for our author we need to add nestedProperties as an option to our content property in our nuxt.config file and pass in what we want to query (only for dot notation queries). - -```js{}[nuxt.config.js] -export default { - content: { - nestedProperties: ['author.name'] - } -} -``` - -As we can see we get all our data back only for the author Maria. If we were to use maria without a capital letter we wouldn't get anything back. We can therefore use `$regex` so that it remains with a capital letter. - -We then fetch all the details we want to show on this page. In the last example we used the `only()` method to return what we wanted but as we require quite a lot of content we can instead use the `without()` method and pass in what we don't want to return which is the body of the post. - -```html{}[pages/blog/author/_author.vue] - -``` - - - -You can use an array and pass in more than just 'body' to the `without()` method: - - - -```js -without(['body', 'title']) -``` - -We can then use our data to print out a nice author page showing the author name and bio as well as each post. - -```html{}[pages/blog/author/_author.vue] - -``` - - - -Please note all styles have been removed from this example. You can either style the page yourself or copy the styles from the [demo code](https://github.com/nuxt-academy/demo-blog-nuxt-content). - - - -To format our date we can add the method we created earlier: - -```js{}[pages/blog/author/_author.vue] -methods: { - formatDate(date) { - const options = { year: 'numeric', month: 'long', day: 'numeric' } - return new Date(date).toLocaleDateString('en', options) - } - } -``` - -And of course we should link from our blog post to our new author page. - -```html{}[components/Author.vue] - - -
-

Author

-

{{ author.name }}

-

{{ author.bio }}

-
-
-``` - -### Add a search field - -The Nuxt content module gives us the possibility of searching through our articles by using the `search()` method. - -Let's first create a search component. - -```bash -touch components/AppSearchInput.vue -``` - -We then add a data property which will return the searchQuery which starts off as an empty string and the articles array which is also empty. We then use the watch method from Vue to watch our searchQuery function passing in the argument of searchQuery. If there is no searchQuery then the articles array is empty and we just call return. If not we get our articles and await our `$content` passing in articles. We can now use the `limit()` method to limit the number of returned results and then we use the `search()` method passing in our searchQuery as an argument and then we chain the `fetch()` method to the end. - -```html{}[components/AppSearchInput.vue] - -``` - -Next we need to add to our template an input and using `v-model` we connect it to our SearchQuery data property. Then if there are articles we use a `v-for` to list out the articles using the `` component to link to them. - -```html{}[components/AppSearchInput.vue] - -``` - -We can now use our `` component by adding it anywhere on our page. - -```html{}[pages/_slug.vue] - -``` - - - -See the [demo code](https://github.com/nuxt-academy/demo-blog-nuxt-content) for improved styling of this page as well as the header component that was added which includes the search component and is therefore displayed on the author and index page. - - - -## Live editing our content - -Our blog is looking really great and if we need to modify any of the content on the page we can do so directly in the browser thanks to the live edit feature. All you have to do is double click on your page while in dev mode and and the live edit will open. Here you can modify any of your text and also the front matter. You can even add a component that is in the global components folder and just by clicking away you will see your changes live in the browser and you will see in your editor and console that the file has been modified and saved. - - - -## Generating our content - -If we now want to deploy our amazing new blog we can run the `nuxt generate` command which will build our app adding all our webpack assets and creating .js bundles for us and then export our html, css, js and images as static assets. You will also notice that we didn't have to add a routes property or do anything to get our new page as the **crawler** will crawl all links for us and generate our dynamic routes for us. - -We can then use the `nuxt start` command which will serve our production ready static site so we can see it in our browser before deploying. - -With nuxt generate if only our content changes it means the `nuxt generate` command will only export the static pages and will not go through webpack to rebuild the site meaning our content will be updated in seconds. - -## Conclusion - -Working with content is great fun and there is so much more you can do and build. Don't forget to showcase your work to use on our discord channel named **showcase** so we can see the cool things you have created and perhaps even feature them in our NuxtLetter. Not signed up yet? Well now is a great time to [sign up](https://nuxtjs.org/#subscribe-to-newsletter) as we keep releasing more new content and features for Nuxt.js. Enjoy :) - -## Further Reading - -For more info on how to improve your blog check out these articles by by [Gareth Redfern](https://twitter.com/garethredfern): - -- [Adding a Sitemap Using Nuxt Content](https://redfern.dev/articles/adding-a-sitemap-using-nuxt-content/) -- [Adding Social Media & SEO Meta Data Using Nuxt Content](https://redfern.dev/articles/adding-social-media-seo-meta-data-using-nuxt-content) -- [Adding Pagination With Nuxt Content](https://redfern.dev/articles/adding-pagination-nuxt-content-blog) diff --git a/docs/content/5.templates/blog/index.md b/docs/content/5.templates/blog/index.md deleted file mode 100644 index 007939d60..000000000 --- a/docs/content/5.templates/blog/index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -template: blog -navigation: - nested: false ---- - -# Blog diff --git a/docs/content/99.changelog.md b/docs/content/99.changelog.md new file mode 100644 index 000000000..d9fce454f --- /dev/null +++ b/docs/content/99.changelog.md @@ -0,0 +1,10 @@ +--- +layout: docs +aside: false +toc: false +icon: heroicons-outline:newspaper +title: Changelog +description: Discover the latest Docus updates. +--- + +:releases diff --git a/docs/content/_theme.yml b/docs/content/_theme.yml new file mode 100644 index 000000000..0f23b05aa --- /dev/null +++ b/docs/content/_theme.yml @@ -0,0 +1,27 @@ +title: Docus +debug: false +github: + root: docs/content + releases: true + edit: true +cover: + src: "https://user-images.githubusercontent.com/904724/105075054-872fac80-5a89-11eb-8aab-46dd254ad986.png" + alt: "A screenshot of a website built with Docus with the Docus logo on top of it." +header: + logo: true +aside: + level: 1 +footer: + credits: + icon: "IconNuxtLabs" + text: "Made by NuxtLabs" + href: "https://nuxtlabs.com" + icons: + - label: "NuxtJS" + href: "https://nuxtjs.org" + component: "IconNuxt" + class: "w-6 h-6" + - label: "Vue Telescope" + href: "https://vuetelescope.com" + component: "IconVueTelescope" + class: "w-6 h-6" diff --git a/docs/content/index.md b/docs/content/index.md deleted file mode 100644 index 1973925b2..000000000 --- a/docs/content/index.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -title: The Jamstack Website Generator. -description: >- - Write pages in markdown, use Vue components, add style with Windi CSS and - enjoy the power of Nuxt with a blazing fast developer experience. -template: page -layout.fluid: true -navigation: false -layout.asideClass: 'block lg:hidden' -layout.aside: true ---- - -::block-hero ---- -cta: - - Get started - - /get-started/installation -secondary: - - Open on GitHub → - - https://github.com/nuxtlabs/docus -snippet: npx docus-init my-website ---- -#title -The Jamstack Website Generator. - -#description -Write pages in markdown, use [Vue](https://vuejs.org) components, add style with [Windi CSS](https://windicss.org/) and enjoy the power of [Nuxt](https://nuxtjs.org) with a blazing fast developer experience. -:: - -::card-grid{title="What's included?"} - ::card - --- - icon: IconNuxt - description: Harness the full power of Nuxt and the Nuxt ecosystem. - iconClass: 'text-hex-00DC82' - title: Nuxt Architecture. - --- - :: - - ::card - --- - icon: IconVue - title: Vue Components. - description: Use built-in components (or your own!) inside your content. - --- - :: - - ::card - --- - icon: IconMarkdown - title: Write Markdown. - description: Enjoy the ease and simplicity of Markdown as you write your documentation. - --- - :: - - ::card - --- - icon: IconWindi - title: Windi CSS. - description: Windi CSS is built in for great developer experience and rapid customization. - --- - :: - - ::card - --- - icon: IconSSG - title: Static Generation. - description: Generate your documentation as a static website and host it anywhere. - --- - :: - - ::card - --- - icon: IconLighthouse - title: Lighthouse Optimised. - description: Start with a blazing fast site with a perfect Lighthouse score. - --- - :: - - ::card - --- - icon: IconZap - title: Smart Generation. - description: Automatically skip a full build if you've only changed Markdown files. - --- - :: - - ::card - --- - icon: IconPuzzle - title: Extensible. - description: Customize the whole design, or add components using slots - you can make Docus your own. - --- - :: - - ::card - --- - icon: IconGitHub - title: Open Source. - description: Docus is released under the MIT license and made with love by the NuxtLabs team. - --- - :: -:: diff --git a/docs/content/releases.md b/docs/content/releases.md deleted file mode 100644 index 0224b1497..000000000 --- a/docs/content/releases.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -navigation: false -template: releases ---- - -# Releases diff --git a/docs/docus.config.ts b/docs/docus.config.ts deleted file mode 100644 index b39103fd7..000000000 --- a/docs/docus.config.ts +++ /dev/null @@ -1,20 +0,0 @@ -export default { - title: 'Docus', - description: 'Write in markdown, use Vue components, add style with Windi CSS and enjoy the power of Nuxt.', - url: 'https://docus.dev', - twitter: 'nuxtlabs', - template: 'docs', - credits: true, - github: { - repo: 'nuxtlabs/docus', - branch: 'main', - dir: 'docs', - releases: true - }, - theme: { - header: { - title: false, - logo: true - } - } -} diff --git a/docs/nuxt.config.ts b/docs/nuxt.config.ts index 00f54a5c8..ce22e8384 100644 --- a/docs/nuxt.config.ts +++ b/docs/nuxt.config.ts @@ -1,73 +1,14 @@ -import { resolve } from 'path' -import { withDocus } from '../src' +import { defineNuxtConfig } from 'nuxt' -export default withDocus({ - /** - * Has to specify rootDir as we use nuxt-extend - */ - rootDir: __dirname, - /** - * Modules - */ - buildModules: ['vue-plausible', '@nuxt/typescript-build'], - /** - * Modules config - */ - plausible: { - // https://github.com/moritzsternemann/vue-plausible#configuration - domain: 'docus.dev' - }, - /** - * Add image domains for nuxt-image - */ - hooks: { - generate: { - async done() { - try { - if (!process.env.VERCEL) return +const theme = process.env.NODE_ENV === 'development' ? '../packages/docs-theme' : './node_modules/@docus/docs-theme' - const { copy } = await import('fs-extra').then(r => r.default || r) - const src = resolve(__dirname, '.vercel_build_output') - const dest = resolve(__dirname, '../.vercel_build_output') - await copy(src, dest) - } catch { - // eslint-disable-next-line no-console - console.log('Issue copying `.vercel_build_output` to project root.') - } - } - } +export default defineNuxtConfig({ + extends: [theme], + github: { + owner: 'nuxtlabs', + repo: 'docus', + branch: 'dev', }, - image: { - screens: { - avatarSm: 24, - avatarLg: 48, - logo: 32, - migration: 536, - blogImage: 864 - }, - domains: [ - 'strapi.nuxtjs.org', - 'tailwindcss.nuxtjs.org', - 'storybook.nuxtjs.org', - 'firebase.nuxtjs.org', - 'pwa.nuxtjs.org', - 'image.nuxtjs.org', - 'http.nuxtjs.org', - 'cloudinary.nuxtjs.org', - 'i18n.nuxtjs.org', - 'snipcart.nuxtjs.org', - 'prismic.nuxtjs.org', - 'google-analytics.nuxtjs.org', - 'color-mode.nuxtjs.org', - 'mdx.nuxtjs.org', - 'sanity.nuxtjs.org', - 'speedcurve.nuxtjs.org', - 'pbs.twimg.com', - 'source.unsplash.com', - 'images.unsplash.com', - 'unsplash.com', - 'user-images.githubusercontent.com', - 'abs.twimg.com' - ] - } + theme: {}, + modules: ['@docus/github'], }) diff --git a/docs/package.json b/docs/package.json new file mode 100644 index 000000000..aeea726a5 --- /dev/null +++ b/docs/package.json @@ -0,0 +1,18 @@ +{ + "name": "docs", + "private": true, + "scripts": { + "build": "nuxi build", + "generate": "nuxi generate", + "dev": "nuxi dev", + "lint": "eslint --ext .ts,.js,.vue,.css . --fix", + "preview": "nuxi preview", + "build:vercel": "cd .. && pnpm run build:docs", + "install:vercel": "cd .. && pnpm install --no-frozen-lockfile" + }, + "devDependencies": { + "nuxt": "^3.0.0-rc.3", + "@docus/docs-theme": "latest", + "@docus/github": "latest" + } +} diff --git a/docs/public/.gitignore b/docs/public/.gitignore new file mode 100644 index 000000000..045a94f8a --- /dev/null +++ b/docs/public/.gitignore @@ -0,0 +1 @@ +sw.js diff --git a/docs/public/android-chrome-192x192.png b/docs/public/android-chrome-192x192.png new file mode 100644 index 000000000..f4fed5975 Binary files /dev/null and b/docs/public/android-chrome-192x192.png differ diff --git a/docs/public/android-chrome-512x512.png b/docs/public/android-chrome-512x512.png new file mode 100644 index 000000000..420e477a8 Binary files /dev/null and b/docs/public/android-chrome-512x512.png differ diff --git a/docs/public/apple-touch-icon.png b/docs/public/apple-touch-icon.png new file mode 100644 index 000000000..04f76a28b Binary files /dev/null and b/docs/public/apple-touch-icon.png differ diff --git a/docs/public/favicon-16x16.png b/docs/public/favicon-16x16.png new file mode 100644 index 000000000..fc988f6c0 Binary files /dev/null and b/docs/public/favicon-16x16.png differ diff --git a/docs/public/favicon-32x32.png b/docs/public/favicon-32x32.png new file mode 100644 index 000000000..972f04c24 Binary files /dev/null and b/docs/public/favicon-32x32.png differ diff --git a/docs/public/favicon.ico b/docs/public/favicon.ico new file mode 100644 index 000000000..dfe416355 Binary files /dev/null and b/docs/public/favicon.ico differ diff --git a/docs/public/icon.png b/docs/public/icon.png new file mode 100644 index 000000000..420e477a8 Binary files /dev/null and b/docs/public/icon.png differ diff --git a/docs/public/logo-dark.svg b/docs/public/logo-dark.svg new file mode 100644 index 000000000..7d2502b4b --- /dev/null +++ b/docs/public/logo-dark.svg @@ -0,0 +1,15 @@ + + + + + + + + diff --git a/docs/public/logo-light.svg b/docs/public/logo-light.svg new file mode 100644 index 000000000..d26a1f1a4 --- /dev/null +++ b/docs/public/logo-light.svg @@ -0,0 +1,15 @@ + + + + + + + + diff --git a/docs/static/preview.png b/docs/public/preview.png similarity index 100% rename from docs/static/preview.png rename to docs/public/preview.png diff --git a/docs/public/site.webmanifest b/docs/public/site.webmanifest new file mode 100644 index 000000000..fa99de77d --- /dev/null +++ b/docs/public/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "", + "short_name": "", + "icons": [ + { + "src": "/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/docs/static/icon.png b/docs/static/icon.png deleted file mode 100644 index 8539cff27..000000000 Binary files a/docs/static/icon.png and /dev/null differ diff --git a/docs/tailwind.config.js b/docs/tailwind.config.js new file mode 100644 index 000000000..829c0180e --- /dev/null +++ b/docs/tailwind.config.js @@ -0,0 +1,2 @@ +// Dummy tailwind.config.js to enable IntelliSense +module.exports = {} diff --git a/docs/tsconfig.json b/docs/tsconfig.json index 3c43903cf..4b34df157 100644 --- a/docs/tsconfig.json +++ b/docs/tsconfig.json @@ -1,3 +1,3 @@ { - "extends": "../tsconfig.json" + "extends": "./.nuxt/tsconfig.json" } diff --git a/netlify.toml b/netlify.toml new file mode 100644 index 000000000..c770bf77d --- /dev/null +++ b/netlify.toml @@ -0,0 +1,7 @@ +[build] + publish = "dist" + command = "yarn && yarn build" + +[build.environment] + NODE_VERSION = "16" + NPM_FLAGS = "--version" # prevent Netlify npm install diff --git a/package.json b/package.json old mode 100755 new mode 100644 index 3c95b9f0b..d1a1609f2 --- a/package.json +++ b/package.json @@ -1,156 +1,58 @@ { - "name": "docus", - "version": "0.9.0", - "repository": "nuxtlabs/docus", - "license": "GPL-3.0", - "exports": { - ".": { - "require": "./dist/index.js", - "import": "./dist/index.mjs" - }, - "./dist/app/*": "./dist/app/*", - "./dist/admin/*": "./dist/admin/*", - "./dist/defaultTheme/*": "./dist/defaultTheme/*", - "./dist/settings/*": "./dist/settings/*", - "./dist/core/*": "./dist/core/*", - "./dist/github/*": "./dist/github/*", - "./dist/i18n/*": "./dist/i18n/*", - "./dist/social-image/*": "./dist/social-image/*", - "./dist/twitter/*": "./dist/twitter/*", - "./package.json": "./package.json" - }, - "main": "./dist/index.js", - "module": "./dist/index.mjs", - "types": "./dist/index.d.ts", + "private": true, + "main": "./nuxt.config.ts", "files": [ - "tsconfig.json", - "dist", - "LICENSE", - "README.md" + "README.md", + "packages" + ], + "workspaces": [ + "docs", + "packages/*" ], "scripts": { - "build": "rm -rf dist && siroc build", - "dev": "ADMIN_DEV=true nuxt dev docs", - "dev:nuxtjs": "nuxt dev nuxtjs.org", - "dev:admin": "vite --config src/admin/app/vite.config.ts", - "build:admin": "vite build --config src/admin/app/vite.config.ts", - "generate": "nuxt generate --force-build docs", - "generate:nuxtjs": "nuxt generate --force-build nuxtjs.org", - "start": "nuxt start docs", - "start:nuxtjs": "nuxt start nuxtjs.org", - "play": "ADMIN_DEV=true nuxt dev playground", - "lint": "eslint --ext .ts,.js,.vue .", - "prepare": "yarn link && yarn link docus && vue-demi-switch 3 vue3", - "release": "yarn test && standard-version && git push --follow-tags && npm publish", - "test": "yarn lint && echo 'TODO tests'", - "clean:nuxt": "rm -rf .nuxt docs/.nuxt playground/.nuxt nuxtjs.org/.nuxt", - "clean:node_modules": "rm -rf node_modules docs/node_modules playground/node_modules nuxtjs.org/node_modules", - "clean:dist": "rm -rf dist docs/dist playground/dist nuxtjs.org/dist", - "clean": "yarn clean:nuxt & yarn clean:node_modules & yarn clean:dist" - }, - "resolutions": { - "@nuxt/components": "npm:@pi0/components", - "vue-server-renderer": "2.6.14", - "vue-template-compiler": "2.6.14" + "build": "turbo run build", + "build:docs": "nuxi build docs", + "clean": "./.github/scripts/cleanup.sh", + "dev": "pnpm dev:docs", + "dev:base": "nuxi dev packages/base", + "dev:docs": "nuxi dev docs", + "dev:theme": "nuxi dev packages/theme", + "dev:github": "nuxi dev packages/github/playground", + "lint": "turbo run lint", + "release": "turbo run release", + "release:edge": "turbo run release:edge", + "update:packages": "ncu --deep -i", + "postinstall": "turbo run prepare" }, "dependencies": { - "@docsearch/css": "^1.0.0-alpha.28", - "@docsearch/js": "^1.0.0-alpha.28", - "@lokidb/loki": "^2.1.0", - "@nuxt/image": "0.5.0", - "@nuxt/postcss8": "^1.1.3", - "@nuxtjs/color-mode": "^2.0.10", - "@nuxtjs/composition-api": "0.24.6", - "@nuxtjs/proxy": "^2.1.0", - "@nuxtjs/pwa": "^3.3.5", - "@types/graceful-fs": "^4.1.5", - "@vitejs/plugin-vue": "^1.2.4", - "@vue/composition-api": "^1.0.0-rc.13", - "@vueuse/integrations": "^5.1.3", - "@windicss/plugin-scrollbar": "^1.2.3", - "@windicss/plugin-utils": "^1.2.4", - "clear-module": "^4.1.1", - "clipboard": "^2.0.8", - "color": "^3.1.3", - "defu": "^5.0.0", - "detab": "^3.0.0", - "directory-tree": "^2.2.9", - "fast-glob": "^3.2.6", - "flat": "^5.0.2", - "graceful-fs": "^4.2.6", - "gray-matter": "^4.0.3", - "h3": "^0.2.11", - "hasha": "^5.2.2", - "hookable": "^4.4.1", - "jiti": "^1.10.1", - "lottie-web": "^5.7.11", - "mande": "^1.0.0", - "marked": "^2.1.3", - "mkdirp": "^1.0.4", - "nuxt-edge": "2.16.0-27095053.356de80e", - "nuxt-extend": "^0.1.0", - "nuxt-i18n": "^6.27.2", - "nuxt-vite": "^0.1.1", - "nuxt-windicss": "^1.1.3", - "ohmyfetch": "^0.1.8", - "plausible-tracker": "^0.3.1", - "prism-theme-vars": "^0.2.2", - "prismjs": "^1.24.1", - "puppeteer-core": "^10.1.0", - "rehype-parse": "^7.0.1", - "rehype-raw": "^5.1.0", - "rehype-sort-attribute-values": "^3.0.2", - "rehype-sort-attributes": "^3.0.2", - "remark-autolink-headings": "^6.0.1", - "remark-directive": "^1.0.1", - "remark-emoji": "^2.2.0", - "remark-external-links": "^8.0.0", - "remark-footnotes": "^3.0.0", - "remark-gfm": "^1.0.0", - "remark-github": "^10.1.0", - "remark-parse": "^9.0.0", - "remark-rehype": "^8.1.0", - "remark-slug": "^6.0.0", - "remark-squeeze-paragraphs": "^4.0.0", - "scule": "^0.2.1", - "theme-colors": "^0.0.5", - "ufo": "^0.7.7", - "unified": "^9.2.1", - "unstorage": "^0.1.6", - "upath": "^2.0.1", - "vue": "^2.6.14", - "vue-demi": "^0.10.0", - "vue-docgen-api": "^4.40.0", - "vue-plausible": "^1.1.4", - "vue3": "npm:vue@next", - "vue3-router": "npm:vue-router@next", - "windicss-analysis": "^0.3.4" + "@nuxt/kit": "^3.0.0-rc.3" }, "devDependencies": { - "@iconify/json": "^1.1.372", - "@nuxt/types": "^2.15.7", - "@nuxt/typescript-build": "^2.1.0", - "@nuxtjs/eslint-config": "^6.0.1", - "@nuxtjs/eslint-config-typescript": "^6.0.1", - "@types/fs-extra": "^9.0.12", - "@types/graceful-fs": "^4.1.5", - "@types/node-fetch": "^2.5.11", - "@vueuse/core": "^5.1.3", - "babel-eslint": "^10.1.0", - "eslint": "^7.30.0", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-nuxt": "^2.0.0", - "eslint-plugin-prettier": "^3.4.0", - "monaco-editor": "^0.25.2", - "prettier": "^2.3.2", - "siroc": "^0.9.3", - "splitpanes": "^3.0.4", - "standard-version": "^9.3.0", - "vite": "^2.4.1", - "vite-plugin-components": "^0.12.2", - "vite-plugin-icons": "^0.6.4" + "@types/tailwindcss": "^3.0.10", + "eslint": "^8.17.0", + "@antfu/eslint-config": "^0.25.1", + "@nuxtjs/eslint-config-typescript": "^10.0.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-prettier-vue": "^3.1.0", + "prettier": "^2.6.2", + "prettier-plugin-tailwindcss": "^0.1.11", + "jiti": "^1.13.0", + "npm-check-updates": "^13.1.2", + "nuxt": "^3.0.0-rc.3", + "parse-entities": "^4.0.0", + "turbo": "^1.2.16", + "typescript": "^4.7.3" }, - "peerDependencies": { - "vuex": "^3.6.2" + "pnpm": { + "peerDependencyRules": { + "ignoreMissing": [ + "vue", + "webpack" + ], + "allowedVersions": { + "vue": "^3.2.33" + } + } } } diff --git a/packages/base/components/Debug.vue b/packages/base/components/Debug.vue new file mode 100644 index 000000000..87f5b976d --- /dev/null +++ b/packages/base/components/Debug.vue @@ -0,0 +1,58 @@ + + + diff --git a/packages/base/components/NuxtLoadingBar.vue b/packages/base/components/NuxtLoadingBar.vue new file mode 100644 index 000000000..64ee9f190 --- /dev/null +++ b/packages/base/components/NuxtLoadingBar.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/packages/base/composables/useDocus.ts b/packages/base/composables/useDocus.ts new file mode 100644 index 000000000..546065b12 --- /dev/null +++ b/packages/base/composables/useDocus.ts @@ -0,0 +1,67 @@ +import { themeMerger } from '../utils/theme' +import { computed, unref, useDocusState, useRuntimeConfig } from '#imports' + +export const useDocus = () => { + const { docus: docusRuntimeConfig } = useRuntimeConfig() + + const { theme: _theme, navigation, page, surround } = useDocusState() + + const defaultThemeConfig = computed(() => { + return docusRuntimeConfig?.defaultThemeConfig || {} + }) + + /** + * Theme computed. + */ + const theme = computed(() => { + // Grab _theme.yml value + const themeValue = unref(_theme.value) || {} + + // Disable debug in production + if (process.env.NODE_ENV === 'production') { + if (themeValue) themeValue.debug = false + } + + // Return merged config + const themeConfig = themeMerger(themeValue, defaultThemeConfig.value) + + return themeConfig + }) + + /** + * Table of contents from parsed page. + */ + const toc = computed(() => page?.value?.body?.toc || []) + + /** + * Content type from parsed page. + */ + const type = computed(() => page.value?.meta?.type) + + /** + * Layout type from parsed page. + */ + const layout = computed(() => page.value?.meta?.layout) + + /** + * Next page from `surround`. + */ + const next = computed(() => surround.value?.[1] || null) + + /** + * Previous page from `surround`. + */ + const prev = computed(() => surround.value?.[0] || null) + + return { + theme, + navigation, + surround, + page, + toc, + type, + layout, + next, + prev, + } +} diff --git a/packages/base/composables/useDocusHelpers.ts b/packages/base/composables/useDocusHelpers.ts new file mode 100644 index 000000000..d0e56ac7a --- /dev/null +++ b/packages/base/composables/useDocusHelpers.ts @@ -0,0 +1,70 @@ +import type { NavItem } from '@nuxt/content/dist/runtime/types' + +/** + * Find first child link from a navigation node. + */ +const findBottomLink = (link: NavItem) => { + if (!link.children) return link._path + + for (const child of link?.children || []) { + const result = findBottomLink(child) + if (result) return result + } +} + +/** + * Find current navigation directory from a path. + */ +const navFromPath = (path: string, tree: NavItem[]) => { + for (const file of tree) { + if (file._path === path && !file._id) return file.children + + if (file.children) { + const result = navFromPath(path, file.children) + if (result) return result + } + } +} + +/** + * Find a navigation node from a path. + */ +const fileFromPath = (path: string, tree: NavItem[]) => { + for (const file of tree) { + if (file._path === path) return file + + if (file.children) { + const result = fileFromPath(path, file.children) + if (result) return result + } + } +} + +/** + * Find a nav field node from a path. + */ +const navKeyFromPath = (path: string, key: string, tree: NavItem[]) => { + let value + const goDeep = (path: string, tree: NavItem[]) => { + for (const file of tree) { + if (path.startsWith(file._path) && file[key]) { + value = file[key] + } + if (file._path === path) return + if (file.children) { + goDeep(path, file.children) + } + } + } + goDeep(path, tree) + return value +} + +export const useDocusHelpers = () => { + return { + findBottomLink, + navFromPath, + fileFromPath, + navKeyFromPath, + } +} diff --git a/packages/base/composables/useDocusState.ts b/packages/base/composables/useDocusState.ts new file mode 100644 index 000000000..e3c3163b7 --- /dev/null +++ b/packages/base/composables/useDocusState.ts @@ -0,0 +1,32 @@ +import type { NavItem, ParsedContent } from '@nuxt/content/dist/runtime/types' +import { useState } from '#imports' + +export const useDocusState = () => { + /** + * Navigation tree from root of app. + */ + const navigation = useState('docus-navigation', () => null) + + /** + * Current page complete data. + */ + const page = useState('docus-page', () => null) + + /** + * Previous and next page data. + * Format: [prev, next] + */ + const surround = useState('docus-page-surround', () => null) + + /** + * Theme configuration. + */ + const theme = useState('docus-theme', () => null) + + return { + navigation, + page, + surround, + theme, + } +} diff --git a/packages/base/content/_theme.yml b/packages/base/content/_theme.yml new file mode 100644 index 000000000..ad5b96449 --- /dev/null +++ b/packages/base/content/_theme.yml @@ -0,0 +1 @@ +title: Docus diff --git a/packages/base/content/index.md b/packages/base/content/index.md new file mode 100644 index 000000000..a84e03798 --- /dev/null +++ b/packages/base/content/index.md @@ -0,0 +1,6 @@ +--- +title: Home +navigation: false +--- + +# Hello World! diff --git a/packages/base/middleware/navigation.ts b/packages/base/middleware/navigation.ts new file mode 100644 index 000000000..4da748073 --- /dev/null +++ b/packages/base/middleware/navigation.ts @@ -0,0 +1,6 @@ +import { queryNavigation } from '../utils/queries' +import { defineNuxtRouteMiddleware } from '#imports' + +export default defineNuxtRouteMiddleware(async () => { + await queryNavigation() +}) diff --git a/packages/base/middleware/page.ts b/packages/base/middleware/page.ts new file mode 100644 index 000000000..b8ea959d7 --- /dev/null +++ b/packages/base/middleware/page.ts @@ -0,0 +1,17 @@ +import { queryPage } from '../utils/queries' +import { defineNuxtRouteMiddleware, useNuxtApp } from '#imports' + +export default defineNuxtRouteMiddleware(async (to, from) => { + if (to.path === '/favicon.icon') return + + if (process.client && to.path !== from.path) { + // @ts-expect-error - Untyped hook + useNuxtApp().callHook('docus:page:start') + } + + if (to === 'favicon.icon') return + + const data = await queryPage(to) + + if (typeof data === 'string') return data +}) diff --git a/packages/base/middleware/theme.global.ts b/packages/base/middleware/theme.global.ts new file mode 100644 index 000000000..502dc7b0a --- /dev/null +++ b/packages/base/middleware/theme.global.ts @@ -0,0 +1,6 @@ +import { queryTheme } from '../utils/queries' +import { defineNuxtRouteMiddleware } from '#imports' + +export default defineNuxtRouteMiddleware(async () => { + await queryTheme() +}) diff --git a/packages/base/module.ts b/packages/base/module.ts new file mode 100644 index 000000000..db05057f4 --- /dev/null +++ b/packages/base/module.ts @@ -0,0 +1,65 @@ +import { resolve } from 'pathe' +import { addTemplate, defineNuxtModule, logger } from '@nuxt/kit' +import type { Nuxt } from '@nuxt/schema' +import { greenBright } from 'chalk' +import { generateTypes, resolveSchema } from 'untyped' +import { name, version } from './package.json' +import type { NuxtLayer } from './utils/theme' +import { resolveTheme } from './utils/theme' + +const pkgName = greenBright(name) +const motd = () => logger.success(`Using ${pkgName} v${version}`) + +/** + * Setup theme layer. + */ +const setupTheme = (nuxt: Nuxt) => { + nuxt.hook('modules:done', () => { + const layers = nuxt.options._layers + + const theme = resolveTheme(layers as NuxtLayer[]) + + addTemplate({ + filename: 'types/theme.d.ts', + getContents: () => `${generateTypes(resolveSchema(theme), { addDefaults: true, allowExtraKeys: true, interfaceName: 'DocusThemeConfig' })}\n +declare module '@nuxt/schema' { + interface NuxtConfig { + theme: Partial + } +}`, + }) + + nuxt.options.runtimeConfig.public.docus.defaultThemeConfig = theme + }) + + nuxt.hook('prepare:types', (opts) => { + opts.references.push({ path: resolve(nuxt.options.buildDir, 'types/theme.d.ts') }) + }) +} + +export default defineNuxtModule({ + meta: { + name: 'docus', + version: '3.0.0', + compatibility: { + nuxt: '^3.0.0-rc.3', + bridge: false, + }, + configKey: 'docus', + }, + defaults: {}, + setup(_, nuxt) { + // Make also VT detects it + nuxt.options.runtimeConfig.public.docus = nuxt.options.runtimeConfig.public.docus || {} + + setupTheme(nuxt) + + nuxt.hook('modules:done', async () => { + motd() + + // Transpile @nuxt/content + // Related: https://github.com/nuxt/framework/pull/4070 + nuxt.options.build.transpile = [...(nuxt.options.build.transpile || []), '@nuxt/content', '@nuxt/content-edge'] + }) + }, +}) diff --git a/packages/base/nuxt.config.ts b/packages/base/nuxt.config.ts new file mode 100644 index 000000000..3918c10f0 --- /dev/null +++ b/packages/base/nuxt.config.ts @@ -0,0 +1,71 @@ +import { fileURLToPath } from 'url' +import { defineNuxtConfig } from 'nuxt' +import { resolve } from 'pathe' + +const themeDir = fileURLToPath(new URL('./', import.meta.url)) +const resolveThemeDir = (path: string) => resolve(themeDir, path) + +const plugins = [] + +const components = [ + { + prefix: '', + path: resolveThemeDir('components'), + global: true, + }, +] + +// Only register the plugin in development as it's not needed in production +if (process.env.NODE_ENV === 'development') { + // Dev plugin + plugins.push({ + src: resolveThemeDir('utils/plugin.ts'), + }) +} + +export default defineNuxtConfig({ + /** + * The base configuration. + * + * Holds most basic theme configurations that can be shared across any theme. + */ + theme: { + title: 'Docus', + url: 'https://docus.dev', + description: 'Write pages in markdown, use Vue components and enjoy the power of Nuxt with a blazing fast developer experience.', + debug: false, + }, + + plugins, + + app: { + head: { + title: 'Docus', + link: [ + { + rel: 'stylesheet', + href: 'https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap', + }, + { rel: 'preconnect', href: 'https://fonts.gstatic.com' }, + ], + meta: [ + { hid: 'og:site_name', property: 'og:site_name', content: 'Docus' }, + { hid: 'og:type', property: 'og:type', content: 'website' }, + ], + }, + }, + + components, + + content: { + highlight: { + theme: 'one-dark-pro', + preload: ['json', 'js', 'ts', 'html', 'css', 'vue', 'diff', 'shell', 'markdown', 'yaml', 'bash'], + }, + navigation: { + fields: ['layout'], + }, + }, + + modules: ['@nuxt/content', '@nuxthq/admin', 'nuxt-component-meta', '@vueuse/nuxt', resolveThemeDir('module')], +}) diff --git a/packages/base/package.json b/packages/base/package.json new file mode 100644 index 000000000..a05d0c904 --- /dev/null +++ b/packages/base/package.json @@ -0,0 +1,38 @@ +{ + "name": "@docus/base", + "version": "3.0.0", + "exports": { + ".": "./nuxt.config.ts", + "./*": "./*/*.*" + }, + "main": "./nuxt.config.ts", + "files": [ + "nuxt.config.ts", + "module.ts", + "assets", + "components", + "composables", + "middleware", + "pages", + "plugins", + "utils" + ], + "scripts": { + "build": "nuxi build", + "generate": "nuxi generate", + "dev": "nuxi dev", + "lint": "eslint --ext .ts,.js,.vue,.css . --fix", + "preview": "nuxi preview", + "release": "../../.github/scripts/release.sh", + "release:edge": "../../.github/scripts/release-edge.sh" + }, + "dependencies": { + "@nuxt/content": "npm:@nuxt/content-edge@latest", + "@nuxthq/admin": "npm:@nuxthq/admin-edge@latest", + "@vueuse/core": "^8.6.0", + "@vueuse/nuxt": "^8.6.0", + "defu": "^6.0.0", + "nuxt": "^3.0.0-rc.3", + "pkg-types": "^0.3.2" + } +} diff --git a/packages/base/plugins/loading-bar.client.ts b/packages/base/plugins/loading-bar.client.ts new file mode 100644 index 000000000..2eb235d97 --- /dev/null +++ b/packages/base/plugins/loading-bar.client.ts @@ -0,0 +1,14 @@ +import { createApp } from 'vue' +import { defineNuxtPlugin } from '#app' +import { NuxtLoadingBar } from '#components' + +export default defineNuxtPlugin((nuxtApp) => { + nuxtApp.hooks.hookOnce('app:mounted', () => { + const wrapper = document.createElement('div') + wrapper.id = 'docus-loading-bar' + document.body.appendChild(wrapper) + createApp(NuxtLoadingBar, { + nuxtApp, + }).mount(wrapper) + }) +}) diff --git a/packages/base/utils/plugin.ts b/packages/base/utils/plugin.ts new file mode 100644 index 000000000..f22d99464 --- /dev/null +++ b/packages/base/utils/plugin.ts @@ -0,0 +1,18 @@ +import { queryNavigation, queryPage, queryTheme } from './queries' +import { defineNuxtPlugin, useRoute } from '#imports' + +/** + * Plugin enabled only in development + * Ensure hot reload works with content sources + */ +export default defineNuxtPlugin((nuxt) => { + nuxt.hook('app:data:refresh', async () => { + if (process.client) { + const route = useRoute() + + await queryNavigation(true) + await queryTheme(true) + await queryPage(route, true) + } + }) +}) diff --git a/packages/base/utils/queries.ts b/packages/base/utils/queries.ts new file mode 100644 index 000000000..af0702f04 --- /dev/null +++ b/packages/base/utils/queries.ts @@ -0,0 +1,108 @@ +import { withoutTrailingSlash } from 'ufo' +import type { NavItem, ParsedContent } from '@nuxt/content/dist/runtime/types' +import type { RouteLocationNormalized, RouteLocationNormalizedLoaded } from 'vue-router' +import { fetchContentNavigation, navigateTo, queryContent, useDocus, useDocusHelpers, useDocusState } from '#imports' +import layouts from '#build/layouts' + +const findLayout = (page: ParsedContent, theme: any, navigation: NavItem[]) => { + if (page.layout) return page.layout + + const { navKeyFromPath } = useDocusHelpers() + + const layoutFromNav = navKeyFromPath(page._path, 'layout', navigation) + + if (layoutFromNav) return layoutFromNav + + return theme.layout +} + +export const queryPage = async (route: RouteLocationNormalized | RouteLocationNormalizedLoaded, force = false) => { + const path = withoutTrailingSlash(route.path) + + const { page, surround, navigation } = useDocusState() + + // We can use `theme` from useDocus here as we know this middleware + // will always run after `theme` middleware, but this is not a recommended pattern. + // Queries should avoid depending on each others. + const { theme } = useDocus() + + // Page is already fetched, apply it + if (!force && page.value && page.value._path === path) { + route.meta.layout = findLayout(page.value, theme.value, navigation.value) + return + } + + // Fetch page + return await Promise.all([ + queryContent().where({ _path: path }).findOne() as Promise, + queryContent() + .where({ _partial: { $not: true }, navigation: { $not: false } }) + .findSurround(path) as Promise, + ]) + .then(async ([_page, _surround]) => { + try { + const layoutName = findLayout(_page, theme.value, navigation.value) + + // Prefetch layout component + const layout = layouts[layoutName] + if (layout?.__asyncLoader && !layout.__asyncResolved) { + await layout.__asyncLoader() + } + + // Update values + route.meta.layout = layoutName + if (_page) page.value = _page + else page.value = undefined + + if (_surround && _surround.length) surround.value = _surround + else surround.value = undefined + } catch (e) { + console.log(e) + } + }) + .catch((e) => { + console.warn(`Could not find page for path ${path}`) + page.value = undefined + surround.value = undefined + return navigateTo('/404') + }) +} + +export const queryNavigation = async (force = false) => { + const { navigation } = useDocusState() + + if (!force && navigation.value) return + + await fetchContentNavigation( + queryContent().where({ + navigation: { + $not: false, + }, + }), + ).then((_navigation) => { + navigation.value = _navigation + }) +} + +export const queryTheme = async (force = false) => { + const { theme } = useDocusState() + + if (!force && theme.value) return + + // Fetch _theme.yml at `content/` root. + await queryContent() + .where({ + _id: 'content:_theme.yml', + }) + .without('_') + .findOne() + .catch((e) => null) + .then((_theme) => { + if (!_theme) { + console.warn('Could not find theme configuration, create a content/_theme.yml file') + return + } + + theme.value = _theme + }) +} diff --git a/packages/base/utils/theme.ts b/packages/base/utils/theme.ts new file mode 100644 index 000000000..4fc5e9b12 --- /dev/null +++ b/packages/base/utils/theme.ts @@ -0,0 +1,29 @@ +import { createDefu } from 'defu' + +export interface NuxtLayer { + config: any + configFile: string + cwd: string +} + +export const themeMerger = createDefu((obj, key, value) => { + if (obj[key] && Array.isArray(obj[key])) { + obj[key] = value + return true + } +}) + +/** + * Resolve `theme` config layers from `extends` layers and merge them via `Object.assign()`. + */ +export const resolveTheme = (layers: NuxtLayer[]) => { + let defaults = {} + + for (const layer of layers) { + if (layer.config.theme) { + defaults = themeMerger(defaults, layer.config.theme) + } + } + + return defaults +} diff --git a/packages/docs-theme/.eslintignore b/packages/docs-theme/.eslintignore new file mode 100644 index 000000000..96f805b6e --- /dev/null +++ b/packages/docs-theme/.eslintignore @@ -0,0 +1 @@ +main.css diff --git a/packages/docs-theme/app/router.options.ts b/packages/docs-theme/app/router.options.ts new file mode 100644 index 000000000..30c971dd9 --- /dev/null +++ b/packages/docs-theme/app/router.options.ts @@ -0,0 +1,32 @@ +import type { RouterConfig } from '@nuxt/schema' + +// https://router.vuejs.org/api/#routeroptions +export default { + scrollBehavior: (to, _, savedPosition) => { + // Scroll to heading on click + if (to.hash) { + const el = document.querySelector(to.hash) + // vue-router does not incorporate scroll-margin-top on its own. + if (el) { + const top = parseFloat(getComputedStyle(el).scrollMarginTop) + return { + el: to.hash, + behavior: 'smooth', + top, + } + } + + return { + el: to.hash, + behavior: 'smooth', + } + } + + // Scroll to top of window + if (savedPosition) { + return savedPosition + } else { + return { top: 0 } + } + }, +} diff --git a/packages/docs-theme/assets/css/main.css b/packages/docs-theme/assets/css/main.css new file mode 100644 index 000000000..397f1940e --- /dev/null +++ b/packages/docs-theme/assets/css/main.css @@ -0,0 +1,223 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer components { + /* Images */ + + .light-img { + @apply block dark:hidden; + } + + .dark-img { + @apply hidden dark:block; + } +} + +@layer utilities { + .u-bg-white { @apply bg-white dark:bg-black; } + .u-bg-gray-50 { @apply bg-gray-50 dark:bg-gray-900; } + .u-bg-gray-100 { @apply bg-gray-100 dark:bg-gray-800; } + .u-bg-gray-200 { @apply bg-gray-200 dark:bg-gray-700; } + .u-bg-gray-300 { @apply bg-gray-300 dark:bg-gray-600; } + .u-bg-gray-400 { @apply bg-gray-400 dark:bg-gray-500; } + .u-bg-gray-500 { @apply bg-gray-500 dark:bg-gray-400; } + .u-bg-gray-600 { @apply bg-gray-600 dark:bg-gray-300; } + .u-bg-gray-700 { @apply bg-gray-700 dark:bg-gray-200; } + .u-bg-gray-800 { @apply bg-gray-800 dark:bg-gray-100; } + .u-bg-gray-900 { @apply bg-gray-900 dark:bg-gray-50; } + .u-bg-black { @apply bg-black dark:bg-white; } + .u-text-white { @apply text-white dark:text-black; } + .u-text-gray-50 { @apply text-gray-50 dark:text-gray-900; } + .u-text-gray-100 { @apply text-gray-100 dark:text-gray-800; } + .u-text-gray-200 { @apply text-gray-200 dark:text-gray-700; } + .u-text-gray-300 { @apply text-gray-300 dark:text-gray-600; } + .u-text-gray-400 { @apply text-gray-400 dark:text-gray-500; } + .u-text-gray-500 { @apply text-gray-500 dark:text-gray-400; } + .u-text-gray-600 { @apply text-gray-600 dark:text-gray-300; } + .u-text-gray-700 { @apply text-gray-700 dark:text-gray-200; } + .u-text-gray-800 { @apply text-gray-800 dark:text-gray-100; } + .u-text-gray-900 { @apply text-gray-900 dark:text-gray-50; } + .u-text-black { @apply text-black dark:text-white; } + .u-border-white { @apply border-white dark:border-black; } + .u-border-gray-100 { @apply border-gray-100 dark:border-gray-900; } + .u-border-gray-200 { @apply border-gray-200 dark:border-gray-800; } + .u-border-gray-300 { @apply border-gray-300 dark:border-gray-700; } + .u-border-gray-400 { @apply border-gray-400 dark:border-gray-600; } + .u-border-gray-500 { @apply border-gray-500 dark:border-gray-500; } + .u-border-gray-600 { @apply border-gray-600 dark:border-gray-400; } + .u-border-gray-700 { @apply border-gray-700 dark:border-gray-300; } + .u-border-gray-800 { @apply border-gray-800 dark:border-gray-200; } + .u-border-gray-900 { @apply border-gray-900 dark:border-gray-100; } + .u-border-black { @apply border-black dark:border-white; } + .u-divide-white { @apply divide-white dark:divide-black; } + .u-divide-gray-100 { @apply divide-gray-100 dark:divide-gray-900; } + .u-divide-gray-200 { @apply divide-gray-200 dark:divide-gray-800; } + .u-divide-gray-300 { @apply divide-gray-300 dark:divide-gray-700; } + .u-divide-gray-400 { @apply divide-gray-400 dark:divide-gray-600; } + .u-divide-gray-500 { @apply divide-gray-500 dark:divide-gray-500; } + .u-divide-gray-600 { @apply divide-gray-600 dark:divide-gray-400; } + .u-divide-gray-700 { @apply divide-gray-700 dark:divide-gray-300; } + .u-divide-gray-800 { @apply divide-gray-800 dark:divide-gray-200; } + .u-divide-gray-900 { @apply divide-gray-900 dark:divide-gray-100; } + .u-divide-black { @apply divide-black dark:divide-white; } + .u-ring-white { @apply ring-white dark:ring-black; } + .u-ring-gray-100 { @apply ring-gray-100 dark:ring-gray-900; } + .u-ring-gray-200 { @apply ring-gray-200 dark:ring-gray-800; } + .u-ring-gray-300 { @apply ring-gray-300 dark:ring-gray-700; } + .u-ring-gray-400 { @apply ring-gray-400 dark:ring-gray-600; } + .u-ring-gray-500 { @apply ring-gray-500 dark:ring-gray-500; } + .u-ring-gray-600 { @apply ring-gray-600 dark:ring-gray-400; } + .u-ring-gray-700 { @apply ring-gray-700 dark:ring-gray-300; } + .u-ring-gray-800 { @apply ring-gray-800 dark:ring-gray-200; } + .u-ring-gray-900 { @apply ring-gray-900 dark:ring-gray-100; } + .u-ring-black { @apply ring-black dark:ring-white; } +} + +/* Variables */ +:root { + --header-height: 4rem; + --footer-height: 108px; + --page-height: calc(100vh - calc(var(--header-height) + var(--footer-height) + 50px)); +} + +@screen sm { + :root { + --header-height: 4rem; + --footer-height: 4rem; + --page-height: calc(100vh - calc(var(--header-height) + var(--footer-height))); + } +} + +.dark:root { + color-scheme: dark; +} + +html.dark { + @apply bg-black; +} + +body { + @apply antialiased font-sans text-gray-700 dark:text-gray-200 bg-white dark:bg-black; +} + +.docus-content { + & > :first-child { + margin-top: 0; + } +} + +.alert, +.badge, +.callout, +.card { + + + /* + Color Schemes + TODO: Improve the usage of these styles across components. + */ + &.base { + @apply border border-gray-200 bg-gray-50 dark:border-gray-900 dark:bg-gray-800 dark:bg-opacity-25 dark:text-gray-50; + + code { + @apply text-current bg-gray-100 border-gray-200 shadow-none dark:border-gray-800 dark:bg-gray-900 dark:bg-opacity-50; + } + a:hover { + code { + @apply border-gray-400 dark:border-gray-700; + } + } + } + + &.primary { + @apply border border-primary-100 bg-primary-50 text-primary-600 dark:border-primary-900 dark:bg-primary-800 dark:bg-opacity-25 dark:text-primary-200; + + code { + @apply text-current shadow-none border-primary-200 bg-primary-100 dark:border-primary-800 dark:bg-primary-900 dark:bg-opacity-50; + } + a:hover { + code { + @apply border-primary-400 dark:border-primary-700; + } + } + } + + &.success { + @apply text-green-600 border border-green-100 bg-green-50 dark:border-green-900 dark:bg-green-800 dark:bg-opacity-25 dark:text-green-200; + + code { + @apply text-current bg-green-100 border-green-200 shadow-none dark:border-green-800 dark:bg-green-900 dark:bg-opacity-50; + } + a:hover { + code { + @apply border-green-400 dark:border-green-700; + } + } + + } + + &.info { + @apply text-blue-600 border border-blue-100 bg-blue-50 dark:border-blue-900 dark:bg-blue-800 dark:bg-opacity-25 dark:text-blue-200; + + code { + @apply text-current bg-blue-100 border-blue-200 shadow-none dark:border-blue-800 dark:bg-blue-900 dark:bg-opacity-50; + } + a:hover { + code { + @apply border-blue-400 dark:border-blue-700; + } + } + } + + &.warning { + @apply text-yellow-600 border border-yellow-100 bg-yellow-50 dark:border-yellow-900 dark:bg-yellow-800 dark:bg-opacity-25 dark:text-yellow-100; + + code { + @apply text-current bg-yellow-100 border-yellow-200 shadow-none dark:border-yellow-800 dark:bg-yellow-900 dark:bg-opacity-50; + } + a:hover { + code { + @apply border-yellow-400 dark:border-yellow-700; + } + } + + } + + &.danger { + @apply text-red-600 border border-red-100 bg-red-50 dark:border-red-900 dark:bg-red-800 dark:bg-opacity-25 dark:text-red-100; + + code { + @apply text-current bg-red-100 border-red-200 shadow-none dark:border-red-800 dark:bg-red-900 dark:bg-opacity-50; + } + a:hover { + code { + @apply border-red-400 dark:border-red-700; + } + } + } + + &.blurry { + @apply !backdrop-blur-lg !bg-opacity-20; + } + + a { + @apply !text-current !border-none !font-semibold !underline; + } + + strong { + @apply !font-bold !text-current; + } + + li::before { + @apply !text-current !bg-current; + } + + .prose-code { + @apply my-4; + + code { + @apply !bg-transparent; + } + } +} diff --git a/packages/docs-theme/components/app/Container.vue b/packages/docs-theme/components/app/Container.vue new file mode 100644 index 000000000..31bfbc6da --- /dev/null +++ b/packages/docs-theme/components/app/Container.vue @@ -0,0 +1,15 @@ + + + diff --git a/packages/docs-theme/components/app/ErrorPage.vue b/packages/docs-theme/components/app/ErrorPage.vue new file mode 100644 index 000000000..46dd08811 --- /dev/null +++ b/packages/docs-theme/components/app/ErrorPage.vue @@ -0,0 +1,44 @@ + + + diff --git a/packages/docs-theme/components/app/Footer.vue b/packages/docs-theme/components/app/Footer.vue new file mode 100644 index 000000000..c491c2538 --- /dev/null +++ b/packages/docs-theme/components/app/Footer.vue @@ -0,0 +1,35 @@ + + + diff --git a/packages/docs-theme/components/app/LastRelease.vue b/packages/docs-theme/components/app/LastRelease.vue new file mode 100644 index 000000000..5bd7589f3 --- /dev/null +++ b/packages/docs-theme/components/app/LastRelease.vue @@ -0,0 +1,18 @@ + + + diff --git a/packages/docs-theme/components/app/MobileNav.vue b/packages/docs-theme/components/app/MobileNav.vue new file mode 100644 index 000000000..27699d858 --- /dev/null +++ b/packages/docs-theme/components/app/MobileNav.vue @@ -0,0 +1,97 @@ + + + + + diff --git a/packages/docs-theme/components/app/Navbar.vue b/packages/docs-theme/components/app/Navbar.vue new file mode 100644 index 000000000..840fe4f43 --- /dev/null +++ b/packages/docs-theme/components/app/Navbar.vue @@ -0,0 +1,36 @@ + + + diff --git a/packages/docs-theme/components/app/NavbarCenter.vue b/packages/docs-theme/components/app/NavbarCenter.vue new file mode 100644 index 000000000..a3326aa78 --- /dev/null +++ b/packages/docs-theme/components/app/NavbarCenter.vue @@ -0,0 +1,34 @@ + + + diff --git a/packages/docs-theme/components/app/NavbarLogo.vue b/packages/docs-theme/components/app/NavbarLogo.vue new file mode 100644 index 000000000..7f90605da --- /dev/null +++ b/packages/docs-theme/components/app/NavbarLogo.vue @@ -0,0 +1,33 @@ + + + diff --git a/packages/docs-theme/components/app/SocialIcons.vue b/packages/docs-theme/components/app/SocialIcons.vue new file mode 100644 index 000000000..178127d98 --- /dev/null +++ b/packages/docs-theme/components/app/SocialIcons.vue @@ -0,0 +1,41 @@ + + + diff --git a/packages/docs-theme/components/content/Alert.vue b/packages/docs-theme/components/content/Alert.vue new file mode 100644 index 000000000..8594ac882 --- /dev/null +++ b/packages/docs-theme/components/content/Alert.vue @@ -0,0 +1,24 @@ + + + diff --git a/packages/docs-theme/components/content/ArticleHero.vue b/packages/docs-theme/components/content/ArticleHero.vue new file mode 100644 index 000000000..fe9af4f27 --- /dev/null +++ b/packages/docs-theme/components/content/ArticleHero.vue @@ -0,0 +1,42 @@ + + + diff --git a/packages/docs-theme/components/content/Badge.vue b/packages/docs-theme/components/content/Badge.vue new file mode 100644 index 000000000..de416e015 --- /dev/null +++ b/packages/docs-theme/components/content/Badge.vue @@ -0,0 +1,20 @@ + + + diff --git a/packages/docs-theme/components/content/BlockHero.vue b/packages/docs-theme/components/content/BlockHero.vue new file mode 100644 index 000000000..e7984be8d --- /dev/null +++ b/packages/docs-theme/components/content/BlockHero.vue @@ -0,0 +1,60 @@ + + + diff --git a/packages/docs-theme/components/content/ButtonLink.vue b/packages/docs-theme/components/content/ButtonLink.vue new file mode 100644 index 000000000..15c993436 --- /dev/null +++ b/packages/docs-theme/components/content/ButtonLink.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/packages/docs-theme/components/content/Callout.vue b/packages/docs-theme/components/content/Callout.vue new file mode 100644 index 000000000..4f6a2f3d4 --- /dev/null +++ b/packages/docs-theme/components/content/Callout.vue @@ -0,0 +1,48 @@ + + + diff --git a/packages/docs-theme/components/content/Card.vue b/packages/docs-theme/components/content/Card.vue new file mode 100644 index 000000000..f2e8f6665 --- /dev/null +++ b/packages/docs-theme/components/content/Card.vue @@ -0,0 +1,56 @@ + + + diff --git a/packages/docs-theme/components/content/CardGrid.vue b/packages/docs-theme/components/content/CardGrid.vue new file mode 100644 index 000000000..19d2d70e9 --- /dev/null +++ b/packages/docs-theme/components/content/CardGrid.vue @@ -0,0 +1,23 @@ + + + diff --git a/packages/docs-theme/components/content/CodeBlock.vue b/packages/docs-theme/components/content/CodeBlock.vue new file mode 100644 index 000000000..e4130fa02 --- /dev/null +++ b/packages/docs-theme/components/content/CodeBlock.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/packages/docs-theme/components/content/CodeGroup.vue b/packages/docs-theme/components/content/CodeGroup.vue new file mode 100644 index 000000000..2ee0844a8 --- /dev/null +++ b/packages/docs-theme/components/content/CodeGroup.vue @@ -0,0 +1,136 @@ + + + + + diff --git a/packages/docs-theme/components/content/CopyButton.vue b/packages/docs-theme/components/content/CopyButton.vue new file mode 100644 index 000000000..feddec926 --- /dev/null +++ b/packages/docs-theme/components/content/CopyButton.vue @@ -0,0 +1,36 @@ + + + diff --git a/packages/docs-theme/components/content/Icon.vue b/packages/docs-theme/components/content/Icon.vue new file mode 100644 index 000000000..9d8cd009a --- /dev/null +++ b/packages/docs-theme/components/content/Icon.vue @@ -0,0 +1,34 @@ + + + diff --git a/packages/docs-theme/components/content/List.vue b/packages/docs-theme/components/content/List.vue new file mode 100644 index 000000000..a343d2982 --- /dev/null +++ b/packages/docs-theme/components/content/List.vue @@ -0,0 +1,78 @@ + + + diff --git a/docs/components/Logo.vue b/packages/docs-theme/components/content/Logo.vue similarity index 97% rename from docs/components/Logo.vue rename to packages/docs-theme/components/content/Logo.vue index 8503b023b..33b3b2eff 100644 --- a/docs/components/Logo.vue +++ b/packages/docs-theme/components/content/Logo.vue @@ -1,5 +1,5 @@ - + + diff --git a/packages/docs-theme/components/content/Sandbox.vue b/packages/docs-theme/components/content/Sandbox.vue new file mode 100644 index 000000000..9efeb8716 --- /dev/null +++ b/packages/docs-theme/components/content/Sandbox.vue @@ -0,0 +1,97 @@ + + + diff --git a/src/admin/app/plugins/api.ts b/src/admin/app/plugins/api.ts deleted file mode 100644 index 8aa1448f8..000000000 --- a/src/admin/app/plugins/api.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { mande } from 'mande' -import { Plugin } from 'vue3' - -const apiUrl = process.env.NODE_ENV === 'development' ? 'http://localhost:4000/admin/api' : '/admin/api' - -const apiInstance = mande(apiUrl) - -export const plugin = { - install(app) { - app.config.globalProperties.$api = apiInstance - } -} - -export const useApi = () => { - return apiInstance -} diff --git a/src/admin/app/plugins/router.ts b/src/admin/app/plugins/router.ts deleted file mode 100644 index 1fbf01c0c..000000000 --- a/src/admin/app/plugins/router.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { createRouter, createWebHistory } from 'vue3-router' - -// Pages -import Index from '../pages/index.vue' -import Static from '../pages/static.vue' -import Components from '../pages/components.vue' -import Config from '../pages/config.vue' -import WindiCSS from '../pages/windicss.vue' - -// Router plugin -export const router = createRouter({ - history: createWebHistory('/admin/'), - routes: [ - { - path: '', - name: 'index', - component: Index as any - }, - { - path: '/static', - name: 'static', - component: Static as any - }, - { - path: '/components', - name: 'components', - component: Components as any - }, - { - path: '/config', - name: 'config', - component: Config as any - }, - { - path: '/windicss', - name: 'windicss', - component: WindiCSS as any - } - ] -}) diff --git a/src/admin/app/public/favicon.ico b/src/admin/app/public/favicon.ico deleted file mode 100644 index a99a983e6..000000000 Binary files a/src/admin/app/public/favicon.ico and /dev/null differ diff --git a/src/admin/app/public/transparent.png b/src/admin/app/public/transparent.png deleted file mode 100644 index 6f2c8b9b1..000000000 Binary files a/src/admin/app/public/transparent.png and /dev/null differ diff --git a/src/admin/app/utils.ts b/src/admin/app/utils.ts deleted file mode 100644 index f8c40bc81..000000000 --- a/src/admin/app/utils.ts +++ /dev/null @@ -1,3 +0,0 @@ -const IMG_EXTENSIONS = ['.jpg', '.jpeg', '.png', '.gif', '.svg'] - -export const isImage = (file: any) => file && IMG_EXTENSIONS.includes(file.extension) diff --git a/src/admin/app/vite.config.ts b/src/admin/app/vite.config.ts deleted file mode 100644 index ab1382012..000000000 --- a/src/admin/app/vite.config.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { resolve } from 'path' -import { defineConfig } from 'vite' -import vue from '@vitejs/plugin-vue' -import WindiCSS from 'vite-plugin-windicss' -import ViteIcons, { ViteIconsResolver } from 'vite-plugin-icons' -import ViteComponents from 'vite-plugin-components' -import { dependencies, devDependencies } from '../../../package.json' - -const r = path => resolve(__dirname, path) -const root = __dirname - -export default defineConfig({ - root, - base: '/admin/', - server: { - port: 4001 - }, - plugins: [ - vue(), - WindiCSS({ - root, - scan: { - include: [r('**/*')] - } - }), - ViteComponents({ - dirs: [], - customComponentResolvers: [ - ViteIconsResolver({ - componentPrefix: '' - }) - ] - }), - ViteIcons() - ], - resolve: { - alias: { - vue: 'vue3' - }, - dedupe: ['vue-demi', 'vue'] - }, - optimizeDeps: { - include: ['splitpanes', 'vue3', 'vue'], - exclude: Object.keys({ ...dependencies, ...devDependencies }).concat(['fs', 'path', 'vue-demi']) - }, - build: { - rollupOptions: { - output: { - manualChunks: { - jsonWorker: ['monaco-editor/esm/vs/language/json/json.worker'], - cssWorker: ['monaco-editor/esm/vs/language/css/css.worker'], - htmlWorker: ['monaco-editor/esm/vs/language/html/html.worker'], - tsWorker: ['monaco-editor/esm/vs/language/typescript/ts.worker'], - editorWorker: ['monaco-editor/esm/vs/editor/editor.worker'] - } - } - } - } -}) diff --git a/src/admin/app/windi.config.ts b/src/admin/app/windi.config.ts deleted file mode 100644 index 1d5e48670..000000000 --- a/src/admin/app/windi.config.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { defineConfig } from 'windicss/helpers' -import colors from 'windicss/colors' -import settings from '../../defaultTheme/settings' - -export default defineConfig({ - extract: { - exclude: ['node_modules/**/*', '../../../node_modules/**/*'] - }, - theme: { - extend: { - colors: { - transparent: 'transparent', - current: 'currentColor', - black: '#000', - white: '#fff', - blue: colors.lightBlue, - green: colors.emerald, - red: colors.red, - rose: colors.rose, - yellow: colors.amber, - gray: colors.gray - } - } - }, - shortcuts: { - ...settings.shortcuts - } -}) diff --git a/src/admin/index.ts b/src/admin/index.ts deleted file mode 100644 index 5aa28c467..000000000 --- a/src/admin/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { resolve } from 'path' -import { Module } from '@nuxt/types' - -export default function () { - this.addModule(resolve(__dirname, 'modules/admin.ts')) - this.addModule(resolve(__dirname, 'modules/components.ts')) -} diff --git a/src/admin/modules/admin.ts b/src/admin/modules/admin.ts deleted file mode 100644 index a9947a624..000000000 --- a/src/admin/modules/admin.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { join } from 'path' -import chalk from 'chalk' -import { NuxtOptionsServer } from '@nuxt/types/config/server' -import serveStatic from 'serve-static' -import { Module } from '@nuxt/types' -import { createServer as createViteServer } from 'vite' -import api from '../api' -import windicss from './windicss' - -export default function () { - const { nuxt, addServerMiddleware, options } = this - - process.options = nuxt.options - process.previewUrl = 'http://localhost:4000' - - // Add runtime plugin - if (options.dev) this.options.plugins.push(require.resolve(join(__dirname, '../runtime/plugin'))) - - nuxt.hook('listen', (_: any, { host, port }: NuxtOptionsServer) => { - process.previewUrl = `http://${host}:${port}` - - nuxt.options.cli.badgeMessages.push( - '', - chalk.bold('📝 Admin: ') + chalk.underline.yellow(`${process.previewUrl}/admin/`) - ) - }) - - const windiMiddleware = windicss(nuxt) - - if (process.env.ADMIN_DEV) { - // use Vite as middleware - const server = createViteServer({ - root: join(__dirname, '../app'), - server: { - middlewareMode: 'html' - }, - plugins: [ - { - name: 'docus:admin-api', - configureServer(server) { - server.middlewares.use('/api', api) - server.middlewares.use('/__windicss', windiMiddleware) - } - } - ] - }) - - nuxt.hook('render:setupMiddleware', async () => { - nuxt.server.app.use('/admin/', (await server).middlewares) - }) - } else { - // use built dist - addServerMiddleware({ - path: '/admin/', - handle: serveStatic(join(__dirname, '../app/dist')) - }) - addServerMiddleware({ - path: '/admin/api', - handler: api - }) - addServerMiddleware({ - path: '/admin/__windicss', - handler: windiMiddleware - }) - } -} diff --git a/src/admin/modules/components.ts b/src/admin/modules/components.ts deleted file mode 100644 index afd9e2054..000000000 --- a/src/admin/modules/components.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { resolve } from 'path' -import { Module } from '@nuxt/types' -import fg from 'fast-glob' - -// serve components preview under `/__components` -export default async function () { - const { nuxt } = this - - const dir = resolve(nuxt.options.srcDir, 'components') - const components = await fg('**/*.vue', { cwd: dir }) - - nuxt.options.layouts.none = resolve(__dirname, '../runtime/layouts/none.vue') - nuxt.hook('build:extendRoutes', (routes: any[]) => { - routes.unshift({ - name: 'components-preview', - path: '/__components', - component: resolve(__dirname, '../runtime/preview.vue'), - children: components.map(i => ({ - path: i, - component: resolve(dir, i) - })) - }) - }) -} diff --git a/src/admin/modules/windicss.ts b/src/admin/modules/windicss.ts deleted file mode 100644 index 565acbc24..000000000 --- a/src/admin/modules/windicss.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { resolve, dirname, join } from 'path' -import fs from 'fs' -import { ApiMiddleware } from 'windicss-analysis' -import sirv from 'sirv' -import Connect from 'connect' - -export default function (nuxt: any): Connect.NextHandleFunction { - const analysisRoot = dirname(resolve(require.resolve('windicss-analysis/package.json'))) - - let utils: any - nuxt.hook('windicss:utils', _utils => { - utils = _utils - }) - - const api = ApiMiddleware( - { - root: nuxt.options.srcDir - }, - { - // reuse the utils instance from `nuxt-windicss` - get utils() { - return utils - } - } - ) - const serve = sirv(join(analysisRoot, 'dist/app'), { - dev: true, - single: true - }) - - return (req, res, next) => { - if (req.url === '/') { - const index = fs.readFileSync(join(analysisRoot, 'dist/app/index.html'), 'utf-8') - res.end(index.replace(/="\//g, '="/admin/__windicss/')) - } else if (req.url.startsWith('/api/')) { - req.url = req.url.slice(4) - api(req, res, next) - } else { - serve(req, res, next) - } - } -} diff --git a/src/admin/runtime/DocusUI.vue b/src/admin/runtime/DocusUI.vue deleted file mode 100644 index 41cf87b5f..000000000 --- a/src/admin/runtime/DocusUI.vue +++ /dev/null @@ -1,138 +0,0 @@ - - - diff --git a/src/admin/runtime/layouts/none.vue b/src/admin/runtime/layouts/none.vue deleted file mode 100644 index 5d3ae9c40..000000000 --- a/src/admin/runtime/layouts/none.vue +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/src/admin/runtime/plugin.ts b/src/admin/runtime/plugin.ts deleted file mode 100644 index 598800d0b..000000000 --- a/src/admin/runtime/plugin.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { Context, Plugin } from '@nuxt/types' -import { createCookies } from '@vueuse/integrations' -import defu from 'defu' -import Vue from 'vue' -import { reactive, watch } from '@nuxtjs/composition-api' -import { DocusRuntimeInstance } from '../../index.d' -import DocusUI from './DocusUI.vue' - -const COOKIE_NAME = 'docus.ui' - -export default async function ({ ssrContext, $docus }: Context & { $docus: DocusRuntimeInstance }) { - const useUniversalCookies = createCookies(ssrContext?.req) - const cookies = useUniversalCookies() - const ui = cookies.get(COOKIE_NAME) || {} - - // UI data (universal storage) - $docus.ui = reactive( - defu(ui, { - slots: false, - draft: false - }) - ) - - if (process.client) { - // Watch drafts, refresh data once updated - watch($docus.ui, () => cookies.set(COOKIE_NAME, $docus.ui), { - deep: true - }) - - // Watch draft and fetch nav - watch( - () => $docus.ui.draft, - () => $docus?.fetchNavigation?.() - ) - - // Mount DocusUI widget on client-side - const el = document.createElement('div') - - document.body.appendChild(el) - - const instanceData: any = { - ...DocusUI, - $docus - } - - new Vue(instanceData).$mount(el) - } - - // Re-fetch categories - if (process.server) await $docus?.fetchNavigation?.() -} diff --git a/src/admin/runtime/preview.vue b/src/admin/runtime/preview.vue deleted file mode 100644 index 5a7a841ab..000000000 --- a/src/admin/runtime/preview.vue +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/src/admin/type.ts b/src/admin/type.ts deleted file mode 100644 index af421b743..000000000 --- a/src/admin/type.ts +++ /dev/null @@ -1,11 +0,0 @@ -export interface FileData { - raw: string -} - -export interface File extends FileData { - path: string - name: string - extension: string - children?: File[] - isOpen?: boolean -} diff --git a/src/app/layouts/default.vue b/src/app/layouts/default.vue deleted file mode 100644 index 302bc1664..000000000 --- a/src/app/layouts/default.vue +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/src/app/loading.html b/src/app/loading.html deleted file mode 100644 index ac126d865..000000000 --- a/src/app/loading.html +++ /dev/null @@ -1,115 +0,0 @@ -
- -
-
-
-
- - diff --git a/src/app/module.ts b/src/app/module.ts deleted file mode 100644 index 663b6ac67..000000000 --- a/src/app/module.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { resolve } from 'path' -import { Module } from '@nuxt/types' - -const r = (...args: any[]) => resolve(__dirname, ...args) - -export default function docusAppModule() { - const { nuxt } = this - - nuxt.options.layouts.default = r('layouts/default.vue') - - // Extend `/` route - nuxt.hook('build:extendRoutes', (routes: any[]) => { - const hasRoute = (name: string) => routes.some(route => route.name === name) - - if (!hasRoute('all')) - routes.push({ - path: '/*', - name: 'all', - component: r('pages/_.vue') - }) - }) -} diff --git a/src/app/nuxt.config.ts b/src/app/nuxt.config.ts deleted file mode 100644 index d6deeef82..000000000 --- a/src/app/nuxt.config.ts +++ /dev/null @@ -1,110 +0,0 @@ -import { resolve } from 'path' -import { nuxtConfig } from 'nuxt-extend' - -const r = (path: any) => resolve(__dirname, path) - -export default nuxtConfig({ - /** - * Name for nuxt-extend - */ - name: 'docus', - /** - * RootDir - */ - rootDir: __dirname, - - /** - * Default app config - */ - head: { - meta: [{ charset: 'utf-8' }, { name: 'viewport', content: 'width=device-width, initial-scale=1' }] - }, - - /** - * Docus config - */ - components: true, - loading: { - color: 'var(--primary-500)' - }, - meta: { - /** - * Default theme color. - * Overriden by Docus primary color. - */ - theme_color: '#06B6D4' - }, - theme: {}, - /** - * Disable suffix from color-mode - */ - colorMode: { - classSuffix: '' - }, - - /** - * Modules & plugins - */ - buildModules: [ - // Dependencies - 'nuxt-vite', - '@nuxtjs/pwa', - '@nuxt/image', - '@nuxtjs/composition-api/module', - '@nuxt/postcss8', - // Local modules - r('./module'), - r('../settings'), - r('../social-image'), - r('../twitter'), - r('../github') - ], - modules: [ - // Local modules - r('../i18n'), - r('../core/module') - ], - - // Loading indicator - loadingIndicator: r('./loading.html'), - - /** - * Build configs - */ - target: 'static', - server: { - port: process.env.PORT || 4000 - }, - vite: { - experimentWarning: false, - optimizeDeps: { - exclude: ['ohmyfetch', 'vue-demi', 'scule', '@vueuse/integrations', 'lokidb'], - include: [ - 'defu', - 'theme-colors', - 'cookie', - 'js-cookie', - 'property-information', - 'clipboard', - 'qrcode', - 'axios', - 'nprogress' - ] - } - }, - build: { - transpile: ['docus'] - }, - typescript: { - // TODO: Re-enable typeCheck - // Waiting for better support from nuxt-vite / nuxt 3 - typeCheck: false - }, - generate: { - fallback: '404.html', - routes: ['/'] - }, - image: { - domains: ['https://i3.ytimg.com'] - } -}) diff --git a/src/app/pages/_.vue b/src/app/pages/_.vue deleted file mode 100644 index dd14e4773..000000000 --- a/src/app/pages/_.vue +++ /dev/null @@ -1,153 +0,0 @@ - diff --git a/src/app/static/.gitkeep b/src/app/static/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/core/database.ts b/src/core/database.ts deleted file mode 100644 index 341ee37e5..000000000 --- a/src/core/database.ts +++ /dev/null @@ -1,115 +0,0 @@ -import Loki from '@lokidb/loki' -import { QueryBuilder } from './runtime/api/QueryBuilder' - -let _db -let _items -export const useDB = () => { - if (!_db) { - _db = new Loki('docus.db') - _items = _db.addCollection('items', {}) - } - return { - db: _db, - items: _items, - query: createQuery, - find, - insert(document) { - const existed = _items.findOne({ key: document.key }) - - if (existed) { - _items.update({ $loki: existed.$loki, meta: existed.meta, ...document }) - return document - } - - return _items.insert(document) - } - } -} - -export function destroyDB() { - _db = null - _items = null -} - -function createQuery(path: string, { deep = false, text = false } = {}) { - const query = { - $or: [{ path }, { path: deep ? { $regex: new RegExp(`^${path}`) } : path }] - } - const postprocess = [data => (!deep && data[0]?.path === path ? data[0] : data)] - - // @ts-ignore - return new QueryBuilder({ query: _items.chain().find(query, !deep), path, postprocess, text }, {}) -} - -function find(url, params) { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - const { sortBy, skip, limit, only, without, where, search, surround, deep, text, ...other } = params - params.where = Object.assign({}, params.where, other) - - // Build query from query / body - let query = createQuery(url, { deep: params.deep, text: params.text }) - - if (params.sortBy) { - if (typeof params.sortBy === 'object') { - if (Array.isArray(params.sortBy)) { - for (const sort of params.sortBy) { - if (typeof sort === 'string') { - const [key, value] = sort.split(':') - query = query.sortBy(key, value) - } else { - for (const [key, value] of Object.entries(sort)) { - query = query.sortBy(key, value as string) - } - } - } - } else { - for (const [key, value] of Object.entries(params.sortBy)) { - query = query.sortBy(key, value as string) - } - } - } else { - const [key, value] = params.sortBy.split(':') - query = query.sortBy(key, value) - } - } - if (params.skip) { - query = query.skip(params.skip) - } - if (params.limit) { - query = query.limit(params.limit) - } - if (params.only) { - query = query.only(params.only) - } - if (params.without) { - query = query.without(params.without) - } - if (params.where) { - const where = {} - - for (const [key, value] of Object.entries(params.where)) { - const [field, operator] = key.split('_') - - if (operator) { - where[field] = { - [`$${operator}`]: value - } - } else { - where[field] = value - } - } - query = query.where(where) - } - if (params.search) { - if (typeof params.search === 'object') { - query = query.search(params.search.query, params.search.value) - } else { - query = query.search(params.search) - } - } - if (params.surround) { - query = query.surround(params.surround.slugOrPath, params.surround.options) - } - - return query.fetch() -} diff --git a/src/core/hooks.ts b/src/core/hooks.ts deleted file mode 100644 index e176bf006..000000000 --- a/src/core/hooks.ts +++ /dev/null @@ -1,13 +0,0 @@ -import Hookable from 'hookable' - -let _hookable: Hookable -export function useHooks() { - if (!_hookable) { - _hookable = new Hookable() - } - return _hookable -} - -export function destroyHooks() { - _hookable = null -} diff --git a/src/core/index.ts b/src/core/index.ts deleted file mode 100644 index d2f13782f..000000000 --- a/src/core/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export { useStorage } from './storage' -export { useParser } from './parser' -export { useHooks } from './hooks' -export { useDocus } from './runtime' -export { logger } from './utils' diff --git a/src/core/module.ts b/src/core/module.ts deleted file mode 100644 index 8a9310377..000000000 --- a/src/core/module.ts +++ /dev/null @@ -1,230 +0,0 @@ -import { resolve, join } from 'path' -import gracefulFs from 'graceful-fs' -import { pascalCase } from 'scule' -import { Module } from '@nuxt/types' -import hash from 'hasha' -import mkdirp from 'mkdirp' -import { DocusDocument, ParserOptions } from '../types' -import { generatePosition, generateSlug, generateTo, isDraft, isHidden } from './utils/document' -import { destroyStorage, initStorage, useNuxtIgnoreList } from './storage' -import { destroyDB, useDB } from './database' -import { createServerMiddleware } from './server' -import { initParser } from './parser' -import { destroyHooks } from './hooks' -import { updateNavigation } from './utils/navigation' -import { useHooks, logger } from './' - -const fs = gracefulFs.promises - -function isUrl(string) { - try { - // quick test if the string is an URL - // eslint-disable-next-line no-new - new URL(string) - } catch (_) { - return false - } - return true -} - -export default async function docusModule() { - // Wait for nuxt options to be normalized - const { nuxt, addServerMiddleware, addPlugin, addModule, $docus } = this - const { options } = nuxt - const isSSG = options.dev === false && (options.target === 'static' || options._generate || options.mode === 'spa') - - // Inject Docus Admin module in development - if (!isSSG) addModule(resolve(__dirname, '../admin')) - - const pluginOptions = { - apiBase: '_docus', - watch: options.dev, - isSSG, - dbPath: '' - } - - // Setup docus cache - options.alias['~docus-cache'] = join(options.srcDir, 'node_modules/.cache/docus') - - /** - * Inject static dir into process that will be used by `link` handler - * to detect static files - */ - process.env.NUXT_STATIC_DIR = join(options.rootDir, options.dir.static) - - // Inject Docus theme as ~docus - options.alias['~docus'] = resolve(__dirname, 'runtime') - - // extend parser options - const parserOptions: Partial = { markdown: {} } - await nuxt.callHook('docus:parserOptions', parserOptions) - initParser(parserOptions) - - const coreHooks = useHooks() - - // Configure content after each hook - // Locales or empty array - let locales = options.i18n?.locales || [] - // If locales is function, resolve it - locales = typeof locales === 'function' ? locales() : locales - // Map locales or default to 'en' - locales = locales.map(({ code }: { code: string }) => code).join('|') || 'en' - // Get default locale or default to 'en' - const defaultLocale = options.i18n?.defaultLocale || 'en' - const regexp = new RegExp(`^/(${locales})`, 'gi') - - coreHooks.hook('docus:storage:beforeInsert', (document: DocusDocument) => { - if (document.extension !== '.md') { - return - } - - const { dir, slug } = document - const _dir = dir.replace(regexp, '') - const _language = dir.replace(_dir, '').replace(/\//, '') || defaultLocale - const _to = `${_dir}/${slug}`.replace(/\/+/, '/') - const position = generatePosition(_to, document) - - /** - * Disable document navigation if it is marked as `page = false` - * This will prevent showing non-pages in navigation menus - */ - if (document.page === false) { - document.navigation = false - } - - if (isHidden(_to)) { - // Do not show document on navigation menus - document.navigation = false - // Do not render document as standalone page - document.page = false - } - - document.slug = generateSlug(slug) - document.position = position - document.to = generateTo(_to) - document.path = document.to - document.language = _language - document.draft = document.draft || isDraft(slug) - - /** - * Generate title from page slug - */ - if (!document.title) { - document.title = document.to.split('/').pop().split(/[\s-]/g).map(pascalCase).join(' ') - } - }) - - // Initiate storage - const { storage, lazyIndex } = initStorage({ - drivers: [ - { - base: resolve(options.srcDir, $docus.settings.contentDir), - // mount point of driver - mountPoint: 'pages', - // List of Nuxt ignore rules - ignore: await useNuxtIgnoreList(nuxt) - }, - { - base: resolve(options.srcDir, 'data'), - mountPoint: 'data' - } - ] - }) - - addServerMiddleware(createServerMiddleware({ storage, base: pluginOptions.apiBase })) - - if (options.dev) { - nuxt.hook('listen', server => server.on('upgrade', (...args) => coreHooks.callHook('upgrade', ...args))) - - storage.watch((event, key) => { - updateNavigation(nuxt) - logger.info(`File ${event}: ${key}`) - }) - } - - nuxt.hook('build:before', () => { - ;(async () => { - await lazyIndex() - await updateNavigation(nuxt) - })() - }) - - nuxt.hook('generate:before', async () => { - await lazyIndex() - await updateNavigation(nuxt) - }) - - if (isSSG) { - let publicPath = this.options.build.publicPath // can be an url - let routerBasePath = this.options.router.base - - /* istanbul ignore if */ - if (publicPath[publicPath.length - 1] !== '/') { - publicPath += '/' - } - if (routerBasePath[routerBasePath.length - 1] === '/') { - routerBasePath = routerBasePath.slice(0, -1) - } - pluginOptions.dbPath = isUrl(publicPath) - ? `${publicPath}${pluginOptions.apiBase}` - : `${routerBasePath}${publicPath}${pluginOptions.apiBase}` - nuxt.hook('generate:distRemoved', async () => { - const { items, db } = useDB() - // Create a hash to fetch the database - const dbHash = hash(JSON.stringify(items._data)).substr(0, 8) - if (this.options.publicRuntimeConfig) { - ;(this.options.publicRuntimeConfig as any).docusDbHash = dbHash - } else { - this.nuxt.hook('vue-renderer:ssr:context', renderContext => { - renderContext.nuxt.docusDbHash = dbHash - }) - } - - const dir = resolve(this.options.buildDir, 'dist', 'client', pluginOptions.apiBase) - - await mkdirp(dir) - await fs.writeFile(join(dir, `db-${dbHash}.json`), db.serialize(), 'utf-8') - }) - } - - // Add global components plugin - addPlugin({ - src: resolve(__dirname, 'runtime', 'components', 'plugin.js'), - filename: 'docus_components.js' - }) - - // Add Docus runtime plugin - addPlugin({ - src: resolve(__dirname, 'plugin.js'), - filename: 'docus.js', - options: pluginOptions - }) - - nuxt.hook('vue-renderer:context', (ssrContext: any) => { - const { query } = useDB() - ssrContext.docus = ssrContext.docus || {} - ssrContext.docus.createQuery = query - }) - - // If pages/ does not exists, disable Nuxt pages parser (to avoid warning) and watch pages/ creation for full restart - nuxt.hook('build:before', async () => { - // To support older version of Nuxt - const pagesDirPath = resolve(options.srcDir, options.dir.pages) - const pagesDirExists = await fs.stat(pagesDirPath).catch(() => false) - if (!pagesDirExists) { - options.build.createRoutes = () => [] - options.watch.push(pagesDirPath) - } - }) - - nuxt.callHook('docus:storage:ready') - - // Watch Docus while DOCUS_DEV is set - if (process.env.DOCUS_DEV) options.watch.push(resolve(__dirname, '../')) - - nuxt.hook('close', () => { - destroyHooks() - destroyDB() - destroyStorage() - }) -} diff --git a/src/core/parser/index.ts b/src/core/parser/index.ts deleted file mode 100644 index 178c5084a..000000000 --- a/src/core/parser/index.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { extname } from 'path' -import { ParserOptions } from '../../types' -import { logger } from '../utils' -import { useJSONParser } from './json' -import { useMarkdownParser } from './markdown' - -export * from './json' -export * from './markdown' - -let parsers -export function initParser(options: Partial = {}) { - parsers = { - '.md': useMarkdownParser(options.markdown), - '.json': useJSONParser() - } -} - -export function useParser() { - return { - /** - * The list of all extensions that have specific parser in Docus - * @returns list of valid extensions - */ - extensions() { - return Object.keys(parsers) - }, - - parse: async (file, content) => { - const extension = extname(file) - const path = '/' + file.replace(new RegExp(`${extension}$`), '') - const paths = path.split(/[/:]/) - const dir = paths.slice(0, paths.length - 1).join('/') || '/' - const slug = paths[paths.length - 1] - const parser = parsers[extension] - if (!parser) { - logger.error(`Parser not found for file ${file}`) - return { - path: paths.join('/'), - dir, - slug, - extension - } - } - - const result = await parser.parse(content) - return { - path: paths.join('/'), - dir, - slug, - extension, - ...result - } - } - } -} diff --git a/src/core/parser/json/index.ts b/src/core/parser/json/index.ts deleted file mode 100644 index ad3f267d2..000000000 --- a/src/core/parser/json/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -import destr from 'destr' - -export function useJSONParser() { - return { - parse: (content: string) => destr(content) - } -} diff --git a/src/core/parser/markdown/compiler.ts b/src/core/parser/markdown/compiler.ts deleted file mode 100644 index 28b196d38..000000000 --- a/src/core/parser/markdown/compiler.ts +++ /dev/null @@ -1,119 +0,0 @@ -import { Node } from 'unist' -import { DocusRootNode, DocusMarkdownNode } from '../../../types' - -/** - * Parses nodes for JSON structure. Attempts to drop - * unwanted properties. - */ -function parseAsJSON(node: Node, parent: DocusMarkdownNode[]) { - /** - * Element node creates an isolated children array to - * allow nested elements - */ - if (node.type === 'element') { - const childs = [] - - if (node.tagName === 'prose-li') { - // unwrap unwanted paragraphs around `
  • ` children - let hasPreviousParagraph = false - node.children = (node.children as Node[]).flatMap(child => { - if (child.tagName === 'prose-paragraph') { - if (hasPreviousParagraph) { - // Insert line break before new paragraph - ;(child.children as Node[]).unshift({ - type: 'element', - tagName: 'br', - properties: {} - }) - } - - hasPreviousParagraph = true - return child.children - } - return child - }) - } - - /** - * rename directive slots tags name - */ - if (node.tagName === 'directive-slot') { - node.tagName = 'template' - node.content = { ...node } - } - - /** - * Replace a tag with nuxt-link if relative - */ - if (node.tagName === 'a') { - const properties = node.properties as any - if ((properties.href || '').startsWith('/')) { - node.tagName = 'nuxt-link' - properties.to = properties.href - delete properties.href - } - } - - const filtered: DocusMarkdownNode = { - type: 'element', - tag: node.tagName as string, - props: node.properties, - children: childs - } - - // Unwrap contents of the template, saving the root level inside content. - if (node.tagName === 'template') { - const children = (node.content as Node).children as Node[] - const templateContent = [] - children.forEach(templateNode => parseAsJSON(templateNode, templateContent)) - filtered.content = templateContent - } - - parent.push(filtered) - - if (node.children) { - ;(node.children as Node[]).forEach(child => parseAsJSON(child, childs)) - } - - return - } - - /** - * Text node pushes to the parent - */ - if (node.type === 'text') { - parent.push({ - type: 'text', - value: node.value as string - }) - return - } - - /** - * Root level nodes push to the original parent - * children and doesn't create a new node - */ - if (node.type === 'root') { - ;(node.children as Node[]).forEach(child => parseAsJSON(child, parent)) - } -} - -/** - * JSON compiler - */ -export default function () { - this.Compiler = function (root): DocusRootNode { - /** - * We do not use `map` operation, since each node can be expanded to multiple top level - * nodes. Instead, we need a array to fill in as many elements inside a single - * iteration - */ - const result = [] - parseAsJSON(root, result) - - return { - type: 'root', - children: result - } - } -} diff --git a/src/core/parser/markdown/content.ts b/src/core/parser/markdown/content.ts deleted file mode 100644 index 1b4739714..000000000 --- a/src/core/parser/markdown/content.ts +++ /dev/null @@ -1,50 +0,0 @@ -import unified from 'unified' -import parse from 'remark-parse' -import remark2rehype from 'remark-rehype' - -import { DocusRootNode } from '../../../types' -import handlers from './handler' -import compiler from './compiler' -import { flattenNodeText } from './utils' - -const usePlugins = (plugins, stream) => - plugins.reduce((stream, plugin) => stream.use(plugin.instance, plugin.options), stream) - -/** - * Generate text excerpt summary - * @param {string} excerptContent - JSON AST generated from excerpt markdown. - * @returns {string} concatinated excerpt - */ -export function generateDescription(excerptContent) { - return flattenNodeText(excerptContent) -} - -/** - * Generate json body - * @param {string} content - JSON AST generated from markdown. - * @param {object} data - document data - * @returns {object} JSON AST body - */ -export async function generateBody(content, options): Promise { - const { highlighter, data } = options - const rehypeOptions: any = { - handlers: await handlers(highlighter), - allowDangerousHtml: true - } - - return new Promise((resolve, reject) => { - let stream = unified().use(parse) - - stream = usePlugins(options.remarkPlugins, stream) - stream = stream.use(remark2rehype, rehypeOptions) - stream = usePlugins(options.rehypePlugins, stream) - - stream.use(compiler).process({ data, contents: content }, (error, file) => { - /* istanbul ignore if */ - if (error) { - return reject(error) - } - resolve(file.result as DocusRootNode) - }) - }) -} diff --git a/src/core/parser/markdown/directive/index.ts b/src/core/parser/markdown/directive/index.ts deleted file mode 100644 index a26ec5d1e..000000000 --- a/src/core/parser/markdown/directive/index.ts +++ /dev/null @@ -1,21 +0,0 @@ -// https://github.com/remarkjs/remark-directive/blob/main/index.js -import syntax from './micromark-directive' -import fromMarkdown from './remark-directive/from-markdown' -import toMarkdown from './remark-directive/to-markdown' - -export default function directive() { - const data = this.data() - - add('micromarkExtensions', syntax()) - add('fromMarkdownExtensions', fromMarkdown) - add('toMarkdownExtensions', toMarkdown) - - function add(field, value) { - /* istanbul ignore if - other extensions. */ - if (!data[field]) { - data[field] = [] - } - - data[field].push(value) - } -} diff --git a/src/core/parser/markdown/directive/micromark-directive/constants.ts b/src/core/parser/markdown/directive/micromark-directive/constants.ts deleted file mode 100644 index 0398d6e2d..000000000 --- a/src/core/parser/markdown/directive/micromark-directive/constants.ts +++ /dev/null @@ -1,58 +0,0 @@ -export const ContainerSequenceSize = 2 - -export const SectionSequenceSize = 3 - -export const Codes = { - /** - * '#' - */ - hash: 35, - /** - * '`' - */ - backTick: 96, - /** - * '\' - */ - backSlash: 92, - /** - * ':' - */ - colon: 58, - /** - * '-' - */ - dash: 45, - /** - * '.' - */ - dot: 46, - /** - * ' ' - */ - space: 32, - /** - * '[' - */ - openingSquareBracket: 91, - /** - * ']' - */ - closingSquareBracket: 93, - /** - * '{' - */ - openingCurlyBracket: 123, - /** - * '(' - */ - openingParentheses: 40, - /** - * ')' - */ - closingParentheses: 41, - /** - * '_' - */ - underscore: 95 -} diff --git a/src/core/parser/markdown/directive/micromark-directive/factory-attributes.ts b/src/core/parser/markdown/directive/micromark-directive/factory-attributes.ts deleted file mode 100644 index 082ab1d7d..000000000 --- a/src/core/parser/markdown/directive/micromark-directive/factory-attributes.ts +++ /dev/null @@ -1,283 +0,0 @@ -import { Effects, Okay, NotOkay } from 'micromark/dist/shared-types' -import asciiAlpha from 'micromark/dist/character/ascii-alpha' -import asciiAlphanumeric from 'micromark/dist/character/ascii-alphanumeric' -import markdownLineEnding from 'micromark/dist/character/markdown-line-ending' -import markdownLineEndingOrSpace from 'micromark/dist/character/markdown-line-ending-or-space' -import markdownSpace from 'micromark/dist/character/markdown-space' -import createWhitespace from 'micromark/dist/tokenize/factory-whitespace' -import createSpace from 'micromark/dist/tokenize/factory-space' - -export default function createAttributes( - effects: Effects, - ok: Okay, - nok: NotOkay, - attributesType: string, - attributesMarkerType: string, - attributeType: string, - attributeIdType: string, - attributeClassType: string, - attributeNameType: string, - attributeInitializerType: string, - attributeValueLiteralType: string, - attributeValueType: string, - attributeValueMarker: string, - attributeValueData: string, - disallowEol?: boolean -) { - let type - let marker - - return start - - function start(code: number) { - // Always a `{` - effects.enter(attributesType) - effects.enter(attributesMarkerType) - effects.consume(code) - effects.exit(attributesMarkerType) - return between - } - - function between(code: number) { - if (code === 35 /* `#` */) { - type = attributeIdType - return shortcutStart(code) - } - - if (code === 46 /* `.` */) { - type = attributeClassType - return shortcutStart(code) - } - - if (code === 58 /* `:` */ || code === 95 /* `_` */ || asciiAlpha(code)) { - effects.enter(attributeType) - effects.enter(attributeNameType) - effects.consume(code) - return name - } - - if (disallowEol && markdownSpace(code)) { - return createSpace(effects, between, 'whitespace')(code) - } - - if (!disallowEol && markdownLineEndingOrSpace(code)) { - return createWhitespace(effects, between)(code) - } - - return end(code) - } - - function shortcutStart(code: number) { - effects.enter(attributeType) - effects.enter(type) - effects.enter(type + 'Marker') - effects.consume(code) - effects.exit(type + 'Marker') - return shortcutStartAfter - } - - function shortcutStartAfter(code: number) { - if ( - code === null /* EOF */ || - code === 34 /* `"` */ || - code === 35 /* `#` */ || - code === 39 /* `'` */ || - code === 46 /* `.` */ || - code === 60 /* `<` */ || - code === 61 /* `=` */ || - code === 62 /* `>` */ || - code === 96 /* `` ` `` */ || - code === 125 /* `}` */ || - markdownLineEndingOrSpace(code) - ) { - return nok(code) - } - - effects.enter(type + 'Value') - effects.consume(code) - return shortcut - } - - function shortcut(code: number) { - if ( - code === null /* EOF */ || - code === 34 /* `"` */ || - code === 39 /* `'` */ || - code === 60 /* `<` */ || - code === 61 /* `=` */ || - code === 62 /* `>` */ || - code === 96 /* `` ` `` */ - ) { - return nok(code) - } - - if (code === 35 /* `#` */ || code === 46 /* `.` */ || code === 125 /* `}` */ || markdownLineEndingOrSpace(code)) { - effects.exit(type + 'Value') - effects.exit(type) - effects.exit(attributeType) - return between(code) - } - - effects.consume(code) - return shortcut - } - - function name(code: number) { - if ( - code === 45 /* `-` */ || - code === 46 /* `.` */ || - code === 58 /* `:` */ || - code === 95 /* `_` */ || - asciiAlphanumeric(code) - ) { - effects.consume(code) - return name - } - - effects.exit(attributeNameType) - - if (disallowEol && markdownSpace(code)) { - return createSpace(effects, nameAfter, 'whitespace')(code) - } - - if (!disallowEol && markdownLineEndingOrSpace(code)) { - return createWhitespace(effects, nameAfter)(code) - } - - return nameAfter(code) - } - - function nameAfter(code: number) { - if (code === 61 /* `=` */) { - effects.enter(attributeInitializerType) - effects.consume(code) - effects.exit(attributeInitializerType) - return valueBefore - } - - // Attribute w/o value. - effects.exit(attributeType) - return between(code) - } - - function valueBefore(code: number) { - if ( - code === null /* EOF */ || - code === 60 /* `<` */ || - code === 61 /* `=` */ || - code === 62 /* `>` */ || - code === 96 /* `` ` `` */ || - code === 125 /* `}` */ || - (disallowEol && markdownLineEnding(code)) - ) { - return nok(code) - } - - if (code === 34 /* `"` */ || code === 39 /* `'` */) { - effects.enter(attributeValueLiteralType) - effects.enter(attributeValueMarker) - effects.consume(code) - effects.exit(attributeValueMarker) - marker = code - return valueQuotedStart - } - - if (disallowEol && markdownSpace(code)) { - return createSpace(effects, valueBefore, 'whitespace')(code) - } - - if (!disallowEol && markdownLineEndingOrSpace(code)) { - return createWhitespace(effects, valueBefore)(code) - } - - effects.enter(attributeValueType) - effects.enter(attributeValueData) - effects.consume(code) - marker = undefined - return valueUnquoted - } - - function valueUnquoted(code: number) { - if ( - code === null /* EOF */ || - code === 34 /* `"` */ || - code === 39 /* `'` */ || - code === 60 /* `<` */ || - code === 61 /* `=` */ || - code === 62 /* `>` */ || - code === 96 /* `` ` `` */ - ) { - return nok(code) - } - - if (code === 125 /* `}` */ || markdownLineEndingOrSpace(code)) { - effects.exit(attributeValueData) - effects.exit(attributeValueType) - effects.exit(attributeType) - return between(code) - } - - effects.consume(code) - return valueUnquoted - } - - function valueQuotedStart(code: number) { - if (code === marker) { - effects.enter(attributeValueMarker) - effects.consume(code) - effects.exit(attributeValueMarker) - effects.exit(attributeValueLiteralType) - effects.exit(attributeType) - return valueQuotedAfter - } - - effects.enter(attributeValueType) - return valueQuotedBetween(code) - } - - function valueQuotedBetween(code: number) { - if (code === marker) { - effects.exit(attributeValueType) - return valueQuotedStart(code) - } - - if (code === null /* EOF */) { - return nok(code) - } - - // Note: blank lines can’t exist in content. - if (markdownLineEnding(code)) { - return disallowEol ? nok(code) : createWhitespace(effects, valueQuotedBetween)(code) - } - - effects.enter(attributeValueData) - effects.consume(code) - return valueQuoted - } - - function valueQuoted(code: number) { - if (code === marker || code === null /* EOF */ || markdownLineEnding(code)) { - effects.exit(attributeValueData) - return valueQuotedBetween(code) - } - - effects.consume(code) - return valueQuoted - } - - function valueQuotedAfter(code: number) { - return code === 125 /* `}` */ || markdownLineEndingOrSpace(code) ? between(code) : end(code) - } - - function end(code: number) { - if (code === 125 /* `}` */) { - effects.enter(attributesMarkerType) - effects.consume(code) - effects.exit(attributesMarkerType) - effects.exit(attributesType) - return ok - } - - return nok(code) - } -} diff --git a/src/core/parser/markdown/directive/micromark-directive/factory-label.ts b/src/core/parser/markdown/directive/micromark-directive/factory-label.ts deleted file mode 100644 index 6cbd8e950..000000000 --- a/src/core/parser/markdown/directive/micromark-directive/factory-label.ts +++ /dev/null @@ -1,118 +0,0 @@ -import { Effects, Okay, NotOkay } from 'micromark/dist/shared-types' -import markdownLineEnding from 'micromark/dist/character/markdown-line-ending' - -// This is a fork of: -// -// to allow empty labels, balanced brackets (such as for nested directives), -// text instead of strings, and optionally disallows EOLs. - -// eslint-disable-next-line max-params -export default function createLabel( - effects: Effects, - ok: Okay, - nok: NotOkay, - type: string, - markerType: string, - stringType: string, - disallowEol?: boolean -) { - let size = 0 - let balance = 0 - - return start - - function start(code: number) { - /* istanbul ignore if - always `[` */ - if (code !== 91 /* `[` */) throw new Error('expected `[`') - effects.enter(type) - effects.enter(markerType) - effects.consume(code) - effects.exit(markerType) - return afterStart - } - - function afterStart(code: number) { - if (code === 93 /* `]` */) { - effects.enter(markerType) - effects.consume(code) - effects.exit(markerType) - effects.exit(type) - return ok - } - - effects.enter(stringType) - return atBreak(code) - } - - function atBreak(code: number) { - if ( - code === null /* EOF */ || - /* */ - size > 999 - ) { - return nok(code) - } - - if (code === 93 /* `]` */ && !balance--) { - return atClosingBrace(code) - } - - if (markdownLineEnding(code)) { - if (disallowEol) { - return nok(code) - } - - effects.enter('lineEnding') - effects.consume(code) - effects.exit('lineEnding') - return atBreak - } - - // @ts-ignore - effects.enter('chunkText', { contentType: 'text' }) - return label(code) - } - - function label(code: number) { - if ( - code === null /* EOF */ || - markdownLineEnding(code) || - /* */ - size > 999 - ) { - effects.exit('chunkText') - return atBreak(code) - } - - if (code === 91 /* `[` */ && ++balance > 3) { - return nok(code) - } - - if (code === 93 /* `]` */ && !balance--) { - effects.exit('chunkText') - return atClosingBrace(code) - } - - effects.consume(code) - return code === 92 /* `\` */ ? labelEscape : label - } - - function atClosingBrace(code: number) { - effects.exit(stringType) - effects.enter(markerType) - effects.consume(code) - effects.exit(markerType) - effects.exit(type) - return ok - } - - function labelEscape(code: number) { - if (code === 91 /* `[` */ || code === 92 /* `\` */ || code === 93 /* `]` */) { - effects.consume(code) - size++ - return label - } - - return label(code) - } -} diff --git a/src/core/parser/markdown/directive/micromark-directive/factory-name.ts b/src/core/parser/markdown/directive/micromark-directive/factory-name.ts deleted file mode 100644 index 14b0e31d3..000000000 --- a/src/core/parser/markdown/directive/micromark-directive/factory-name.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Effects, Okay, NotOkay } from 'micromark/dist/shared-types' -import asciiAlpha from 'micromark/dist/character/ascii-alpha' -import asciiAlphanumeric from 'micromark/dist/character/ascii-alphanumeric' - -export default function createName(effects: Effects, ok: Okay, nok: NotOkay, nameType: string) { - const self = this - - return start - - function start(code: number) { - if (asciiAlpha(code)) { - effects.enter(nameType) - effects.consume(code) - return name - } - - return nok(code) - } - - function name(code: number) { - if (code === 45 /* `-` */ || code === 95 /* `_` */ || asciiAlphanumeric(code)) { - effects.consume(code) - return name - } - - effects.exit(nameType) - // To do next major: disallow `-` at end of name too, for consistency. - return self.previous === 95 /* `_` */ ? nok(code) : ok(code) - } -} diff --git a/src/core/parser/markdown/directive/micromark-directive/html.ts b/src/core/parser/markdown/directive/micromark-directive/html.ts deleted file mode 100644 index c6e5a7579..000000000 --- a/src/core/parser/markdown/directive/micromark-directive/html.ts +++ /dev/null @@ -1,179 +0,0 @@ -import decode from 'parse-entities/decode-entity' - -const own = {}.hasOwnProperty - -export default function createDirectiveHtmlExtension(options) { - const extensions = options || {} - - return { - enter: { - directiveContainer: enterContainer, - directiveContainerAttributes: enterAttributes, - directiveContainerContent: enterContainerContent, - directiveContainerLabel: enterLabel, - - directiveLeaf: enterLeaf, - directiveLeafAttributes: enterAttributes, - directiveLeafLabel: enterLabel, - - directiveText: enterText, - directiveTextAttributes: enterAttributes, - directiveTextLabel: enterLabel - }, - exit: { - directiveContainer: exit, - directiveContainerAttributeClassValue: exitAttributeClassValue, - directiveContainerAttributeIdValue: exitAttributeIdValue, - directiveContainerAttributeName: exitAttributeName, - directiveContainerAttributeValue: exitAttributeValue, - directiveContainerAttributes: exitAttributes, - directiveContainerContent: exitContainerContent, - directiveContainerFence: exitContainerFence, - directiveContainerLabel: exitLabel, - directiveContainerName: exitName, - - directiveLeaf: exit, - directiveLeafAttributeClassValue: exitAttributeClassValue, - directiveLeafAttributeIdValue: exitAttributeIdValue, - directiveLeafAttributeName: exitAttributeName, - directiveLeafAttributeValue: exitAttributeValue, - directiveLeafAttributes: exitAttributes, - directiveLeafLabel: exitLabel, - directiveLeafName: exitName, - - directiveText: exit, - directiveTextAttributeClassValue: exitAttributeClassValue, - directiveTextAttributeIdValue: exitAttributeIdValue, - directiveTextAttributeName: exitAttributeName, - directiveTextAttributeValue: exitAttributeValue, - directiveTextAttributes: exitAttributes, - directiveTextLabel: exitLabel, - directiveTextName: exitName - } - } - - function enterContainer() { - return enter.call(this, 'containerDirective') - } - - function enterLeaf() { - return enter.call(this, 'leafDirective') - } - - function enterText() { - return enter.call(this, 'textDirective') - } - - function enter(type) { - let stack = this.getData('directiveStack') - if (!stack) this.setData('directiveStack', (stack = [])) - stack.push({ type }) - } - - function exitName(token) { - const stack = this.getData('directiveStack') - stack[stack.length - 1].name = this.sliceSerialize(token) - } - - function enterLabel() { - this.buffer() - } - - function exitLabel() { - const data = this.resume() - const stack = this.getData('directiveStack') - stack[stack.length - 1].label = data - } - - function enterAttributes() { - this.buffer() - this.setData('directiveAttributes', []) - } - - function exitAttributeIdValue(token) { - this.getData('directiveAttributes').push(['id', decodeLight(this.sliceSerialize(token))]) - } - - function exitAttributeClassValue(token) { - this.getData('directiveAttributes').push(['class', decodeLight(this.sliceSerialize(token))]) - } - - function exitAttributeName(token) { - // Attribute names in CommonMark are significantly limited, so character - // references can’t exist. - this.getData('directiveAttributes').push([this.sliceSerialize(token), '']) - } - - function exitAttributeValue(token) { - const attributes = this.getData('directiveAttributes') - attributes[attributes.length - 1][1] = decodeLight(this.sliceSerialize(token)) - } - - function exitAttributes() { - const stack = this.getData('directiveStack') - const attributes = this.getData('directiveAttributes') - const cleaned: any = {} - let index = -1 - let attribute - - while (++index < attributes.length) { - attribute = attributes[index] - - if (attribute[0] === 'class' && cleaned.class) { - cleaned.class += ' ' + attribute[1] - } else { - cleaned[attribute[0]] = attribute[1] - } - } - - this.resume() - this.setData('directiveAttributes') - stack[stack.length - 1].attributes = cleaned - } - - function enterContainerContent() { - this.buffer() - } - - function exitContainerContent() { - const data = this.resume() - const stack = this.getData('directiveStack') - stack[stack.length - 1].content = data - } - - function exitContainerFence() { - const stack = this.getData('directiveStack') - const directive = stack[stack.length - 1] - if (!directive.fenceCount) directive.fenceCount = 0 - directive.fenceCount++ - if (directive.fenceCount === 1) this.setData('slurpOneLineEnding', true) - } - - function exit() { - const directive = this.getData('directiveStack').pop() - let found - let result - - if (own.call(extensions, directive.name)) { - result = extensions[directive.name].call(this, directive) - found = result !== false - } - - if (!found && own.call(extensions, '*')) { - result = extensions['*'].call(this, directive) - found = result !== false - } - - if (!found && directive.type !== 'textDirective') { - this.setData('slurpOneLineEnding', true) - } - } -} - -function decodeLight(value) { - return value.replace(/&(#(\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi, decodeIfPossible) -} - -function decodeIfPossible($0, $1) { - return decode($1) || $0 -} diff --git a/src/core/parser/markdown/directive/micromark-directive/index.ts b/src/core/parser/markdown/directive/micromark-directive/index.ts deleted file mode 100644 index 3cef13660..000000000 --- a/src/core/parser/markdown/directive/micromark-directive/index.ts +++ /dev/null @@ -1,26 +0,0 @@ -// https://github.com/micromark/micromark-extension-directive/blob/main/lib/syntax.js - -import directiveSpan from './tokenize-directive-span' -import directiveAttribute from './tokenize-directive-attribute' -import directiveInline from './tokenize-directive-inline' -import directiveContainer from './tokenize-directive-container' -import directiveContainerIndented from './tokenize-directive-container-indented' -import { Codes } from './constants' - -export default function directive() { - return { - text: { - [Codes.colon]: directiveInline, - [Codes.openingSquareBracket]: [directiveSpan], - [Codes.openingCurlyBracket]: directiveAttribute - }, - flow: { - [Codes.colon]: [directiveContainer, directiveInline] - }, - flowInitial: { - '-2': directiveContainerIndented, - '-1': directiveContainerIndented, - [Codes.space]: directiveContainerIndented - } - } -} diff --git a/src/core/parser/markdown/directive/micromark-directive/tokenize-directive-attribute.ts b/src/core/parser/markdown/directive/micromark-directive/tokenize-directive-attribute.ts deleted file mode 100644 index cd415f3f3..000000000 --- a/src/core/parser/markdown/directive/micromark-directive/tokenize-directive-attribute.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { Effects, Okay, NotOkay } from 'micromark/dist/shared-types' -import markdownLineEnding from 'micromark/dist/character/markdown-line-ending' -import { Codes } from './constants' -import createAttributes from './factory-attributes' - -const attributes: any = { tokenize: tokenizeAttributes, partial: true } - -const validEvents = [ - /** - * Span Directive - */ - 'directiveTextSpan', - /** - * Bold & Italic - */ - 'attentionSequence', - /** - * Inline Code - */ - 'codeText', - /** - * Link - */ - 'link', - /** - * Image - */ - 'image' -] - -function tokenize(effects: Effects, ok: Okay, nok: NotOkay) { - const self = this - - return start - - function start(code: number) { - if (code !== Codes.openingCurlyBracket) throw new Error('expected `{`') - - /** - * Make sure sytax is used after valid tags - */ - const event = self.events[self.events.length - 1] - if (markdownLineEnding(self.previous) || !validEvents.includes(event[1].type)) { - return nok - } - - return effects.attempt(attributes, ok, ok)(code) - } -} - -function tokenizeAttributes(effects: Effects, ok: Okay, nok: NotOkay) { - // Always a `{` - return createAttributes( - effects, - ok, - nok, - 'directiveTextAttributes', - 'directiveTextAttributesMarker', - 'directiveTextAttribute', - 'directiveTextAttributeId', - 'directiveTextAttributeClass', - 'directiveTextAttributeName', - 'directiveTextAttributeInitializerMarker', - 'directiveTextAttributeValueLiteral', - 'directiveTextAttributeValue', - 'directiveTextAttributeValueMarker', - 'directiveTextAttributeValueData' - ) -} - -export default { - tokenize -} diff --git a/src/core/parser/markdown/directive/micromark-directive/tokenize-directive-container-indented.ts b/src/core/parser/markdown/directive/micromark-directive/tokenize-directive-container-indented.ts deleted file mode 100644 index 972fd4ee8..000000000 --- a/src/core/parser/markdown/directive/micromark-directive/tokenize-directive-container-indented.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Effects, Okay, NotOkay } from 'micromark/dist/shared-types' -import createSpace from 'micromark/dist/tokenize/factory-space' -import codeFenced from 'micromark/dist/tokenize/code-fenced.js' -import prefixSize from 'micromark/dist/util/prefix-size' -import directiveContainer from './tokenize-directive-container' -import { Codes } from './constants' - -function tokenize(effects: Effects, ok: Okay, nok: NotOkay) { - const self = this - return createSpace(effects, lineStart, 'linePrefix') - - function lineStart(code) { - // skip if line prefix is smaller than markdown code indent - if (prefixSize(self.events, 'linePrefix') < 4) { - return nok(code) - } - switch (code) { - case Codes.backTick: - return codeFenced.tokenize.call(self, effects, ok, nok)(code) - case Codes.colon: - return directiveContainer.tokenize.call(self, effects, ok, nok)(code) - default: - return nok(code) - } - } -} - -export default { - tokenize -} diff --git a/src/core/parser/markdown/directive/micromark-directive/tokenize-directive-container.ts b/src/core/parser/markdown/directive/micromark-directive/tokenize-directive-container.ts deleted file mode 100644 index 9f9bcde9c..000000000 --- a/src/core/parser/markdown/directive/micromark-directive/tokenize-directive-container.ts +++ /dev/null @@ -1,439 +0,0 @@ -import { Effects, Okay, NotOkay } from 'micromark/dist/shared-types' -import markdownSpace from 'micromark/dist/character/markdown-space' -import asciiAlpha from 'micromark/dist/character/ascii-alpha' -import markdownLineEnding from 'micromark/dist/character/markdown-line-ending' -import createSpace from 'micromark/dist/tokenize/factory-space' -import sizeChunks from 'micromark/dist/util/size-chunks' -import createAttributes from './factory-attributes' -import createLabel from './factory-label' -import createName from './factory-name' -import { Codes, ContainerSequenceSize, SectionSequenceSize } from './constants' - -const label: any = { tokenize: tokenizeLabel, partial: true } -const attributes: any = { tokenize: tokenizeAttributes, partial: true } - -// section sparator -const sectionSeparatorCode = Codes.hash -const sectionSeparatorLength = 1 - -/** - * Calculate line indention size, line indention could be consists of multiple `linePrefix` events - * @param events parser tokens - * @returns line indention size - */ -function linePrefixSize(events) { - let size = 0 - let index = events.length - 1 - let tail = events[index] - while (index >= 0 && tail && tail[1].type === 'linePrefix' && tail[0] === 'exit') { - size += sizeChunks(tail[2].sliceStream(tail[1])) - index -= 1 - tail = events[index] - } - - return size -} - -enum MarkDownDataSectionState { - NotSeen = 0, - Open = 1, - Closed = 2 -} - -function tokenize(effects: Effects, ok: Okay, nok: NotOkay) { - const self = this - const initialPrefix = linePrefixSize(this.events) - let sizeOpen = 0 - let previous - const containerSequenceSize = [] - - /** - * data tokenizer - */ - const data = tokenizeData.call(this, effects, lineStart) - - return start - - function start(code: number) { - /* istanbul ignore if - handled by mm */ - if (code !== Codes.colon) throw new Error('expected `:`') - effects.enter('directiveContainer') - effects.enter('directiveContainerFence') - effects.enter('directiveContainerSequence') - return sequenceOpen(code) - } - - function tokenizeSectionClosing(effects: Effects, ok: Okay, nok: NotOkay) { - let size = 0 - let sectionIndentSize = 0 - - return closingPrefixAfter - - function closingPrefixAfter(code: number) { - sectionIndentSize = linePrefixSize(self.events) - effects.exit('directiveContainerSection') - effects.enter('directiveContainerSectionSequence') - return closingSectionSequence(code) - } - - function closingSectionSequence(code: number) { - if (code === sectionSeparatorCode) { - effects.consume(code) - size++ - return closingSectionSequence - } - - if (size !== sectionSeparatorLength) return nok(code) - if (sectionIndentSize !== initialPrefix) return nok(code) - - // non ascii chars are invalid - if (!asciiAlpha(code)) return nok(code) - - effects.exit('directiveContainerSectionSequence') - return createSpace(effects, ok, 'whitespace')(code) - } - } - - function sectionOpen(code: number) { - effects.enter('directiveContainerSection') - - if (markdownLineEnding(code)) { - return createSpace(effects, lineStart, 'whitespace')(code) - } - - effects.enter('directiveContainerSectionTitle') - return sectionTitle - } - - function sectionTitle(code: number) { - if (markdownLineEnding(code)) { - effects.exit('directiveContainerSectionTitle') - return createSpace(effects, lineStart, 'linePrefix', 4)(code) - } - effects.consume(code) - return sectionTitle - } - - function sequenceOpen(code: number) { - if (code === Codes.colon) { - effects.consume(code) - sizeOpen++ - return sequenceOpen - } - - if (sizeOpen < ContainerSequenceSize) { - return nok(code) - } - - effects.exit('directiveContainerSequence') - return createName.call(self, effects, afterName, nok, 'directiveContainerName')(code) - } - - function afterName(code: number) { - return code === Codes.openingSquareBracket ? effects.attempt(label, afterLabel, afterLabel)(code) : afterLabel(code) - } - - function afterLabel(code: number) { - return code === Codes.openingCurlyBracket - ? effects.attempt(attributes, afterAttributes, afterAttributes)(code) - : afterAttributes(code) - } - - function afterAttributes(code: number) { - return createSpace(effects, openAfter, 'whitespace')(code) - } - - function openAfter(code: number) { - effects.exit('directiveContainerFence') - - if (code === null) { - effects.exit('directiveContainer') - return ok(code) - } - - if (markdownLineEnding(code)) { - effects.enter('lineEnding') - effects.consume(code) - effects.exit('lineEnding') - return self.interrupt ? ok : contentStart - } - - return nok(code) - } - - function contentStart(code: number) { - if (code === null) { - effects.exit('directiveContainer') - return ok(code) - } - - effects.enter('directiveContainerContent') - - if (!containerSequenceSize.length && !data.isClosed() && (code === Codes.dash || markdownSpace(code))) { - function _chunkStart(code) { - data.close() - effects.enter('directiveContainerSection') - - return lineStart(code) - } - return effects.attempt(data.tokenize, data.sectionOpen, _chunkStart) - } else { - data.close() - } - - effects.enter('directiveContainerSection') - return lineStart(code) - } - - function lineStartAfterPrefix(code: number) { - if (code === null) { - return after(code) - } - - // detect slots - if (!containerSequenceSize.length && (code === sectionSeparatorCode || code === Codes.space)) { - return effects.attempt({ tokenize: tokenizeSectionClosing, partial: true } as any, sectionOpen, chunkStart) - } - // detect slots - if (!containerSequenceSize.length && !data.isClosed() && (code === Codes.dash || code === Codes.space)) { - return effects.attempt(data.tokenize, data.sectionOpen, chunkStart) - } - - const attempt = effects.attempt({ tokenize: tokenizeClosingFence, partial: true } as any, after, chunkStart) - - /** - * disbale spliting inner sections - */ - if (code === Codes.colon) { - return effects.check({ tokenize: detectContainer, partial: true } as any, chunkStart, attempt)(code) - } - - return attempt - } - - function lineStart(code: number) { - if (code === null) { - return after(code) - } - - return initialPrefix - ? createSpace(effects, lineStartAfterPrefix, 'linePrefix', initialPrefix + 1) - : lineStartAfterPrefix - } - - function chunkStart(code: number) { - if (code === null) { - return after(code) - } - - // @ts-ignore - const token = effects.enter('chunkDocument', { - contentType: 'document', - previous - }) - if (previous) previous.next = token - previous = token - return contentContinue(code) - } - - function contentContinue(code: number) { - if (code === null) { - effects.exit('chunkDocument') - return after(code) - } - - if (markdownLineEnding(code)) { - effects.consume(code) - effects.exit('chunkDocument') - return lineStart - } - - effects.consume(code) - return contentContinue - } - - function after(code: number) { - effects.exit('directiveContainerSection') - effects.exit('directiveContainerContent') - effects.exit('directiveContainer') - return ok(code) - } - - function tokenizeClosingFence(effects: Effects, ok: Okay, nok: NotOkay) { - let size = 0 - - return createSpace(effects, closingPrefixAfter, 'linePrefix', 4) - - function closingPrefixAfter(code: number) { - effects.enter('directiveContainerFence') - effects.enter('directiveContainerSequence') - return closingSequence(code) - } - - function closingSequence(code: number) { - if (code === Codes.colon) { - effects.consume(code) - size++ - return closingSequence - } - - if (containerSequenceSize.length) { - if (size === containerSequenceSize[containerSequenceSize.length - 1]) { - containerSequenceSize.pop() - } - return nok(code) - } - - // it is important to match sequence - if (size !== sizeOpen) return nok(code) - effects.exit('directiveContainerSequence') - return createSpace(effects, closingSequenceEnd, 'whitespace')(code) - } - - function closingSequenceEnd(code: number) { - if (code === null || markdownLineEnding(code)) { - effects.exit('directiveContainerFence') - return ok(code) - } - - return nok(code) - } - } - function detectContainer(effects: Effects, ok: Okay, nok: NotOkay) { - let size = 0 - - return openingSequence - - function openingSequence(code: number) { - if (code === Codes.colon) { - effects.consume(code) - size++ - return openingSequence - } - - if (size < ContainerSequenceSize) return nok(code) - - return openingSequenceEnd - } - - function openingSequenceEnd(code: number) { - if (code === null || markdownLineEnding(code)) { - return nok(code) - } - - // memorize cotainer sequence - containerSequenceSize.push(size) - - return ok(code) - } - } -} - -function tokenizeData(effects, ok) { - const initialPrefix = linePrefixSize(this.events) - let sectionState: MarkDownDataSectionState = MarkDownDataSectionState.NotSeen - const data = { - state: () => sectionState, - close: () => { - sectionState = MarkDownDataSectionState.Closed - }, - isClosed: () => sectionState === MarkDownDataSectionState.Closed, - tokenize: { tokenize: tokenizeDataSection, partial: true } as any, - sectionOpen - } - return data - function tokenizeDataSection(effects: Effects, ok: Okay, nok: NotOkay) { - const self = this - let size = 0 - let sectionIndentSize = 0 - - return closingPrefixAfter - - function closingPrefixAfter(code: number) { - if (data.isClosed()) { - return nok(code) - } - if (markdownSpace(code)) { - effects.consume(code) - sectionIndentSize += 1 - return closingPrefixAfter - } - if (sectionIndentSize === 0) { - sectionIndentSize = linePrefixSize(self.events) - } - if (sectionState === MarkDownDataSectionState.Open) { - effects.exit('directiveContainerDataSection') - } - - effects.enter('directiveContainerSectionSequence') - return closingSectionSequence(code) - } - - function closingSectionSequence(code: number) { - if (code === Codes.dash || markdownSpace(code)) { - effects.consume(code) - size++ - return closingSectionSequence - } - - if (size < SectionSequenceSize) return nok(code) - - if (sectionIndentSize !== initialPrefix) return nok(code) - if (!markdownLineEnding(code)) return nok(code) - - effects.exit('directiveContainerSectionSequence') - return createSpace(effects, ok, 'whitespace')(code) - } - } - - function sectionOpen(code: number) { - if (sectionState === MarkDownDataSectionState.NotSeen) { - effects.enter('directiveContainerDataSection') - sectionState = MarkDownDataSectionState.Open - } else { - sectionState = MarkDownDataSectionState.Closed - effects.enter('directiveContainerSection') - } - - return createSpace(effects, ok, 'whitespace')(code) - } -} - -function tokenizeLabel(effects: Effects, ok: Okay, nok: NotOkay) { - // Always a `[` - return createLabel( - effects, - ok, - nok, - 'directiveContainerLabel', - 'directiveContainerLabelMarker', - 'directiveContainerLabelString', - true - ) -} - -function tokenizeAttributes(effects: Effects, ok: Okay, nok: NotOkay) { - // Always a `{` - return createAttributes( - effects, - ok, - nok, - 'directiveContainerAttributes', - 'directiveContainerAttributesMarker', - 'directiveContainerAttribute', - 'directiveContainerAttributeId', - 'directiveContainerAttributeClass', - 'directiveContainerAttributeName', - 'directiveContainerAttributeInitializerMarker', - 'directiveContainerAttributeValueLiteral', - 'directiveContainerAttributeValue', - 'directiveContainerAttributeValueMarker', - 'directiveContainerAttributeValueData', - true - ) -} - -export default { - tokenize, - concrete: true -} diff --git a/src/core/parser/markdown/directive/micromark-directive/tokenize-directive-inline.ts b/src/core/parser/markdown/directive/micromark-directive/tokenize-directive-inline.ts deleted file mode 100644 index 553a92efe..000000000 --- a/src/core/parser/markdown/directive/micromark-directive/tokenize-directive-inline.ts +++ /dev/null @@ -1,117 +0,0 @@ -import markdownLineEndingOrSpace from 'micromark/dist/character/markdown-line-ending-or-space' -import { Effects, Okay, NotOkay } from 'micromark/dist/shared-types' -import { Codes } from './constants' -import createAttributes from './factory-attributes' -import createLabel from './factory-label' -import createName from './factory-name' - -const label: any = { tokenize: tokenizeLabel, partial: true } -const attributes: any = { tokenize: tokenizeAttributes, partial: true } - -function previous(code: number) { - // If there is a previous code, there will always be a tail. - return code !== 58 /* `:` */ || this.events[this.events.length - 1][1].type === 'characterEscape' -} - -function tokenize(effects: Effects, ok: Okay, nok: NotOkay) { - const self = this - - return start - - function start(code: number) { - /* istanbul ignore if - handled by mm */ - if (code !== 58 /* `:` */) throw new Error('expected `:`') - - if ( - self.previous !== null && - !markdownLineEndingOrSpace(self.previous) && - ![Codes.openingSquareBracket].includes(self.previous) - ) { - return nok - } - - /* istanbul ignore if - handled by mm */ - if (!previous.call(self, self.previous)) { - throw new Error('expected correct previous') - } - - effects.enter('directiveText') - effects.enter('directiveTextMarker') - effects.consume(code) - effects.exit('directiveTextMarker') - return createName.call(self, effects, afterName, nok, 'directiveTextName') - } - - function afterName(code: number) { - if (code === 58 /* `:` */) { - return nok(code) - } - - // Check for label - if (code === Codes.openingSquareBracket) { - return effects.attempt(label, afterLabel, afterLabel)(code) - } - - // Check for attributes - if (code === Codes.openingCurlyBracket) { - return effects.attempt(attributes, afterAttributes, afterAttributes)(code) - } - - return exit(code) - } - - function afterAttributes(code: number) { - // Check for label after attributes - if (code === Codes.openingSquareBracket) { - return effects.attempt(label, afterLabel, afterLabel)(code) - } - - return exit(code) - } - - function afterLabel(code: number) { - // Check for attributes after label - if (code === Codes.openingCurlyBracket) { - return effects.attempt(attributes, exit, exit)(code) - } - return exit(code) - } - - function exit(code: number) { - if (!markdownLineEndingOrSpace(code) && code !== null && ![Codes.closingSquareBracket].includes(code)) { - return nok - } - effects.exit('directiveText') - return ok(code) - } -} - -function tokenizeLabel(effects: Effects, ok: Okay, nok: NotOkay) { - // Always a `[` - return createLabel(effects, ok, nok, 'directiveTextLabel', 'directiveTextLabelMarker', 'directiveTextLabelString') -} - -function tokenizeAttributes(effects: Effects, ok: Okay, nok: NotOkay) { - // Always a `{` - return createAttributes( - effects, - ok, - nok, - 'directiveTextAttributes', - 'directiveTextAttributesMarker', - 'directiveTextAttribute', - 'directiveTextAttributeId', - 'directiveTextAttributeClass', - 'directiveTextAttributeName', - 'directiveTextAttributeInitializerMarker', - 'directiveTextAttributeValueLiteral', - 'directiveTextAttributeValue', - 'directiveTextAttributeValueMarker', - 'directiveTextAttributeValueData' - ) -} - -export default { - tokenize, - previous -} diff --git a/src/core/parser/markdown/directive/micromark-directive/tokenize-directive-span.ts b/src/core/parser/markdown/directive/micromark-directive/tokenize-directive-span.ts deleted file mode 100644 index 609f11b4b..000000000 --- a/src/core/parser/markdown/directive/micromark-directive/tokenize-directive-span.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { Effects, Okay, NotOkay } from 'micromark/dist/shared-types' -import { Codes } from './constants' -import createLabel from './factory-label' - -const label: any = { tokenize: tokenizeLabel, partial: true } - -function tokenize(effects: Effects, ok: Okay, nok: NotOkay) { - return start - - function start(code: number) { - if (code !== Codes.openingSquareBracket) { - throw new Error('expected `[`') - } - - effects.enter('directiveTextSpan') - return effects.attempt(label, exit, nok)(code) - } - - function exit(code: number) { - // prevent conflict with link syntax - if (code === Codes.openingParentheses) { - return nok(code) - } - effects.exit('directiveTextSpan') - return ok(code) - } -} - -/** - * Labels starts with `[` and ends with `]` - */ -function tokenizeLabel(effects: Effects, ok: Okay, nok: NotOkay) { - return createLabel(effects, ok, nok, 'directiveTextLabel', 'directiveTextLabelMarker', 'directiveTextLabelString') -} - -export default { - tokenize -} diff --git a/src/core/parser/markdown/directive/props.ts b/src/core/parser/markdown/directive/props.ts deleted file mode 100644 index ed85d39b7..000000000 --- a/src/core/parser/markdown/directive/props.ts +++ /dev/null @@ -1,44 +0,0 @@ -import path from 'path' -import fs from 'fs' -import { parse } from 'vue-docgen-api' -import { setNodeData } from '../utils' - -const directories = [ - path.resolve('./docs/components'), // components directory of project docs - path.resolve('./components'), // components directory of project docs - path.resolve(__dirname, '../../../../defaultTheme') // components directory of Docus -] - -function fileName(file) { - if (!file.match(/\.vue$/)) { - return file + '.vue' - } - return file -} - -function resolvePath(file: string) { - file = fileName(file) - if (fs.existsSync(path.resolve(file))) { - return path.resolve(file) - } - for (const dir of directories) { - if (fs.existsSync(path.join(dir, file))) { - return path.join(dir, file) - } - } - return null -} - -export default async function propsHandler(node: any, pageData: any) { - const componentFile = resolvePath(node.attributes.of) - if (!componentFile) { - // eslint-disable-next-line no-console - console.error('Component not find. ' + node.attributes.of) - return { - node: { type: 'html', value: '' } - } - } - - const data = await parse(componentFile) - setNodeData(node, 'data', data, pageData) -} diff --git a/src/core/parser/markdown/directive/remark-directive/from-markdown.ts b/src/core/parser/markdown/directive/remark-directive/from-markdown.ts deleted file mode 100644 index 900ea2c42..000000000 --- a/src/core/parser/markdown/directive/remark-directive/from-markdown.ts +++ /dev/null @@ -1,228 +0,0 @@ -import { Token } from 'micromark/dist/shared-types' -import decode from 'parse-entities/decode-entity' - -const canContainEols = ['textDirective'] -const enter = { - directiveContainer: enterContainer, - directiveContainerSection: enterContainerSection, - directiveContainerDataSection: enterContainerDataSection, - directiveContainerAttributes: enterAttributes, - directiveContainerLabel: enterContainerLabel, - - directiveLeaf: enterLeaf, - directiveLeafAttributes: enterAttributes, - - directiveText: enterText, - directiveTextSpan: enterTextSpan, - directiveTextAttributes: enterAttributes -} -const exit = { - directiveContainerSectionTitle: exitContainerSectionTitle, - listUnordered: conditionalExit, - listOrdered: conditionalExit, - listItem: conditionalExit, - directiveContainerSection: exitContainerSection, - directiveContainerDataSection: exitContainerDataSection, - directiveContainer: exitContainer, - directiveContainerAttributeClassValue: exitAttributeClassValue, - directiveContainerAttributeIdValue: exitAttributeIdValue, - directiveContainerAttributeName: exitAttributeName, - directiveContainerAttributeValue: exitAttributeValue, - directiveContainerAttributes: exitAttributes, - directiveContainerLabel: exitContainerLabel, - directiveContainerName: exitName, - - directiveContainerAttributeInitializerMarker() { - // If an attribute name follows by `=` it should be treat as string - const attributes = this.getData('directiveAttributes') - attributes[attributes.length - 1][1] = '' - }, - - directiveLeaf: exitToken, - directiveLeafAttributeClassValue: exitAttributeClassValue, - directiveLeafAttributeIdValue: exitAttributeIdValue, - directiveLeafAttributeName: exitAttributeName, - directiveLeafAttributeValue: exitAttributeValue, - directiveLeafAttributes: exitAttributes, - directiveLeafName: exitName, - - directiveText: exitToken, - directiveTextSpan: exitToken, - directiveTextAttributeClassValue: exitAttributeClassValue, - directiveTextAttributeIdValue: exitAttributeIdValue, - directiveTextAttributeName: exitAttributeName, - directiveTextAttributeValue: exitAttributeValue, - directiveTextAttributes: exitAttributes, - directiveTextName: exitName -} - -function enterContainer(token: Token) { - enterToken.call(this, 'containerDirective', token) -} - -function exitContainer(token: Token) { - const container = this.stack[this.stack.length - 1] - if (container.children.length > 1) { - const dataSection = container.children.find(child => child.rawData) - container.rawData = dataSection?.rawData - } - - container.children = container.children.flatMap(child => { - if (child.rawData) { - return [] - } - if (child.name === 'default' || !child.name) { - return child.children - } - child.data = { - hName: 'directive-slot', - hProperties: { - ...child.attributes, - [`v-slot:${child.name}`]: '' - } - } - return child - }) - - this.exit(token) -} - -function enterContainerSection(token: Token) { - enterToken.call(this, 'directiveContainerSection', token) -} - -function enterContainerDataSection(token: Token) { - enterToken.call(this, 'directiveContainerDataSection', token) -} - -function exitContainerSection(token: Token) { - this.exit(token) -} - -function exitContainerDataSection(token: Token) { - let section = this.stack[this.stack.length - 1] - /** - * Ensure lists and list-items are closed before closing section - * This issue occurs because `---` separtors ar conflict with markdown lists - */ - while (section.type === 'listItem' || section.type === 'list') { - this.exit(this.tokenStack[this.tokenStack.length - 1]) - section = this.stack[this.stack.length - 1] - } - - if (section.type === 'directiveContainerDataSection') { - section.rawData = this.sliceSerialize(token) - this.exit(token) - } -} - -function exitContainerSectionTitle(token: Token) { - this.stack[this.stack.length - 1].name = this.sliceSerialize(token) -} - -function enterLeaf(token: Token) { - enterToken.call(this, 'leafDirective', token) -} - -function enterTextSpan(token: Token) { - this.enter({ type: 'textDirective', name: 'span', attributes: {}, children: [] }, token) -} - -function enterText(token: Token) { - enterToken.call(this, 'textDirective', token) -} - -function enterToken(type, token) { - this.enter({ type, name: '', attributes: {}, children: [] }, token) -} - -function exitName(token: Token) { - this.stack[this.stack.length - 1].name = this.sliceSerialize(token) -} - -function enterContainerLabel(token: Token) { - this.enter({ type: 'paragraph', data: { directiveLabel: true }, children: [] }, token) -} - -function exitContainerLabel(token: Token) { - this.exit(token) -} - -function enterAttributes() { - this.setData('directiveAttributes', []) - this.buffer() // Capture EOLs -} - -function exitAttributeIdValue(token: Token) { - this.getData('directiveAttributes').push(['id', decodeLight(this.sliceSerialize(token))]) -} - -function exitAttributeClassValue(token: Token) { - this.getData('directiveAttributes').push(['class', decodeLight(this.sliceSerialize(token))]) -} - -function exitAttributeValue(token: Token) { - const attributes = this.getData('directiveAttributes') - attributes[attributes.length - 1][1] = decodeLight(this.sliceSerialize(token)) -} - -function exitAttributeName(token: Token) { - // Attribute names in CommonMark are significantly limited, so character - // references can’t exist. - - // Use `true` as attrubute default value to solve issue of attributes without value (example `:block{attr1 attr2}`) - this.getData('directiveAttributes').push([this.sliceSerialize(token), true]) -} - -function exitAttributes() { - const attributes = this.getData('directiveAttributes') - const cleaned: any = {} - let index = -1 - let attribute - - while (++index < attributes.length) { - attribute = attributes[index] - - if (attribute[0] === 'class' && cleaned.class) { - cleaned.class += ' ' + attribute[1] - } else { - cleaned[attribute[0]] = attribute[1] - } - } - - this.setData('directiveAttributes') - this.resume() // Drop EOLs - - let stackTop = this.stack[this.stack.length - 1] - if (stackTop.type === 'paragraph') { - // select last inline component - stackTop = stackTop.children[stackTop.children.length - 1] - } - - stackTop.attributes = cleaned -} - -function exitToken(token: Token) { - this.exit(token) -} - -function conditionalExit(token: Token) { - const section: Token = this.tokenStack[this.tokenStack.length - 1] - if (section.type === token.type) { - this.exit(token) - } -} - -function decodeLight(value: string) { - return value.replace(/&(#(\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi, decodeIfPossible) -} - -function decodeIfPossible($0: string, $1: string) { - return decode($1) || $0 -} - -export default { - canContainEols, - enter, - exit -} diff --git a/src/core/parser/markdown/directive/remark-directive/to-markdown.ts b/src/core/parser/markdown/directive/remark-directive/to-markdown.ts deleted file mode 100644 index cace7e903..000000000 --- a/src/core/parser/markdown/directive/remark-directive/to-markdown.ts +++ /dev/null @@ -1,171 +0,0 @@ -import repeatString from 'repeat-string' -import encode from 'stringify-entities/light' -import visit from 'unist-util-visit-parents' -import flow from 'mdast-util-to-markdown/lib/util/container-flow' -import phrasing from 'mdast-util-to-markdown/lib/util/container-phrasing' -import checkQuote from 'mdast-util-to-markdown/lib/util/check-quote' - -const own = {}.hasOwnProperty - -const shortcut = /^[^\t\n\r "#'.<=>`}]+$/ - -// TODO: convert container sections to markdown -const unsafe = [ - { - character: '\r', - inConstruct: ['leafDirectiveLabel', 'containerDirectiveLabel'] - }, - { - character: '\n', - inConstruct: ['leafDirectiveLabel', 'containerDirectiveLabel'] - }, - { - before: '[^:]', - character: ':', - after: '[A-Za-z]', - inConstruct: ['phrasing'] - }, - { atBreak: true, character: ':', after: ':' } -] - -const handlers = { - containerDirective: handleDirective, - leafDirective: handleDirective, - textDirective: handleDirective -} - -handleDirective.peek = peekDirective - -function handleDirective(node, _, context) { - const prefix = fence(node) - const exit = context.enter(node.type) - let value = prefix + (node.name || '') + label(node, context) + attributes(node, context) - let subvalue - - if (node.type === 'containerDirective') { - subvalue = content(node, context) - if (subvalue) value += '\n' + subvalue - value += '\n' + prefix - } - - exit() - return value -} - -function peekDirective() { - return ':' -} - -function label(node, context) { - let label = node - - if (node.type === 'containerDirective') { - if (!inlineDirectiveLabel(node)) return '' - label = node.children[0] - } - - const exit = context.enter('label') - const subexit = context.enter(node.type + 'Label') - const value = phrasing(label, context, { before: '[', after: ']' }) - subexit() - exit() - return value ? '[' + value + ']' : '' -} - -function attributes(node, context) { - const quote = checkQuote(context) - const subset = node.type === 'textDirective' ? [quote] : [quote, '\n', '\r'] - const attrs = node.attributes || {} - const values = [] - let id - let classesFull - let classes - let value - let key - let index - - for (key in attrs) { - if (own.call(attrs, key) && attrs[key] != null) { - value = String(attrs[key]) - - if (key === 'id') { - id = shortcut.test(value) ? '#' + value : quoted('id', value) - } else if (key === 'class') { - value = value.split(/[\t\n\r ]+/g) - classesFull = [] - classes = [] - index = -1 - - while (++index < value.length) { - ;(shortcut.test(value[index]) ? classes : classesFull).push(value[index]) - } - - classesFull = classesFull.length ? quoted('class', classesFull.join(' ')) : '' - classes = classes.length ? '.' + classes.join('.') : '' - } else { - values.push(quoted(key, value)) - } - } - } - - if (classesFull) { - values.unshift(classesFull) - } - - if (classes) { - values.unshift(classes) - } - - if (id) { - values.unshift(id) - } - - return values.length ? '{' + values.join(' ') + '}' : '' - - function quoted(key, value) { - return key + (value ? '=' + quote + encode(value, { subset }) + quote : '') - } -} - -function content(node, context) { - const content = inlineDirectiveLabel(node) ? Object.assign({}, node, { children: node.children.slice(1) }) : node - - return flow(content, context) -} - -function inlineDirectiveLabel(node) { - return node.children && node.children[0] && node.children[0].data && node.children[0].data.directiveLabel -} - -function fence(node) { - let size = 0 - - if (node.type === 'containerDirective') { - visit(node, 'containerDirective', onvisit) - size += 3 - } else if (node.type === 'leafDirective') { - size = 2 - } else { - size = 1 - } - - return repeatString(':', size) - - function onvisit(_node, parents) { - let index = parents.length - let nesting = 0 - - while (index--) { - if (parents[index].type === 'containerDirective') { - nesting++ - } - } - - if (nesting > size) size = nesting - } -} - -export default { - handlers, - unsafe -} diff --git a/src/core/parser/markdown/directive/remark-plugin.ts b/src/core/parser/markdown/directive/remark-plugin.ts deleted file mode 100644 index 27e0ef242..000000000 --- a/src/core/parser/markdown/directive/remark-plugin.ts +++ /dev/null @@ -1,66 +0,0 @@ -import visit from 'unist-util-visit' -import { TAGS_MAP } from '../../../runtime' -import { useMarkdownParser } from '..' - -const toFrontMatter = (yamlString: string) => `---\n${yamlString}\n---` - -/** - * Convert a HTML tag to its equivalent prose component - */ -const tagName = (name: string) => (TAGS_MAP[name] ? TAGS_MAP[name][1 /* prose tag */] : name) - -export default function htmlDirectives({ directives }) { - const parser = useMarkdownParser() - - function getNodeData(node) { - if (!node.rawData) { - return {} - } - - const yaml = node.rawData - const { data } = parser.parseFrontMatter(toFrontMatter(yaml)) - - return data - } - - function bindData(data, pageData) { - const enteries = Object.entries(data).map(([key, value]) => { - if (key.startsWith(':')) { - return [key, value] - } - if (typeof value === 'string') { - return [pageData[value] ? `:${key}` : key, value] - } - return [`:${key}`, JSON.stringify(value)] - }) - return Object.fromEntries(enteries) - } - - return async (tree, { data: pageData }) => { - const jobs = [] - visit(tree, ['textDirective', 'leafDirective', 'containerDirective'], visitor) - - function visitor(node) { - const directive = directives[node.name] - const data = node.data || (node.data = {}) - - // parse data slots and retrive data - const nodeData = getNodeData(node) - - data.hName = tagName(node.name) - data.hProperties = bindData( - { - ...node.attributes, - ...nodeData - }, - pageData - ) - if (directive) { - jobs.push(directive(node, pageData)) - } - } - - await Promise.all(jobs) - return tree - } -} diff --git a/src/core/parser/markdown/fontmatter.ts b/src/core/parser/markdown/fontmatter.ts deleted file mode 100644 index f97d0916d..000000000 --- a/src/core/parser/markdown/fontmatter.ts +++ /dev/null @@ -1,31 +0,0 @@ -import matter from 'gray-matter' -import { unflatten, flatten } from 'flat' - -export function stringify(data: any, content: string = '') { - // flatten frontmatter data - // convert `parent: { child: ... }` into flat keys `parent.child` - data = flatten(data, { - // preserve arrays and their contents as is and do not waltk through arrays - // flatten array will be like `parent.0.child` and `parent.1.child` with is not readable - safe: true - }) - - return matter.stringify(content, data) -} - -export function parse(file) { - const { data, content, ...rest } = matter(file, { excerpt: true, excerpt_separator: '' }) - - // unflatten frontmatter data - // convert `parent.child` keys into `parent: { child: ... }` - const unflattenData = unflatten(data || {}, { - // preserve arrays and their contents as is and do not waltk through arrays - safe: true - }) - - return { - content, - data: unflattenData, - ...rest - } -} diff --git a/src/core/parser/markdown/handler/blockquote.ts b/src/core/parser/markdown/handler/blockquote.ts deleted file mode 100644 index d088d068f..000000000 --- a/src/core/parser/markdown/handler/blockquote.ts +++ /dev/null @@ -1,6 +0,0 @@ -import wrap from 'mdast-util-to-hast/lib/wrap' -import all from 'mdast-util-to-hast/lib/all' - -export default function blockquote(h, node) { - return h(node, 'prose-blockquote', wrap(all(h, node), true)) -} diff --git a/src/core/parser/markdown/handler/code.ts b/src/core/parser/markdown/handler/code.ts deleted file mode 100644 index 33da37741..000000000 --- a/src/core/parser/markdown/handler/code.ts +++ /dev/null @@ -1,80 +0,0 @@ -import Prism from 'prismjs' -import { detab } from 'detab' -import u from 'unist-builder' -import escapeHtml from 'escape-html' -import prismComponents from 'prismjs/components/index' -import { parseThematicBlock } from './utils' - -prismComponents() - -const DIFF_HIGHLIGHT_SYNTAX = /^(diff)-([\w-]+)/i - -const prismHighlighter = (rawCode, language, { lineHighlights, fileName }, { h, node }) => { - let lang = language || '' - let grammer - - const diffLanguage = lang.match(DIFF_HIGHLIGHT_SYNTAX) - if (diffLanguage) { - lang = diffLanguage[2] - grammer = Prism.languages.diff - } - - lang = lang === 'vue' ? 'html' : lang - - if (!grammer) { - grammer = Prism.languages[lang] - } - - const highlightLanguage = diffLanguage ? `diff-${lang}` : lang - - let code = grammer ? Prism.highlight(rawCode, grammer, highlightLanguage) : rawCode - - if (!lang || !grammer) { - lang = 'text' - code = escapeHtml(code) - } - - const props: any = { - className: [`language-${lang}`, 'line-numbers'] - } - - if (lineHighlights) { - props.dataLine = lineHighlights - } - - const childs = [] - - /** - * If filename, then set span as a first child - */ - if (fileName) { - childs.push(h(node, 'span', { className: ['filename'] }, [u('text', fileName)])) - } - - /** - * Set pre as a child - */ - childs.push(h(node, 'pre', props, [h(node, 'code', [u('raw', code)])])) - - return h(node.position, 'prose-code', {}, childs) -} - -const toAst = (h, node) => highlighted => { - if (typeof highlighted === 'string') { - return h(node, 'prose-code', {}, [u('raw', highlighted)]) - } - return highlighted -} - -export default highlighter => (h, node) => { - const lang = node.lang + ' ' + (node.meta || '') - const { language, lineHighlights, fileName } = parseThematicBlock(lang) - const code = node.value ? detab(node.value + '\n') : '' - - if (!highlighter) { - return prismHighlighter(code, language, { lineHighlights, fileName }, { h, node }) - } - - const highlightedCode = highlighter(code, language, { lineHighlights, fileName }, { h, node, u }) - return toAst(h, node)(highlightedCode) -} diff --git a/src/core/parser/markdown/handler/emphasis.ts b/src/core/parser/markdown/handler/emphasis.ts deleted file mode 100644 index ae0889788..000000000 --- a/src/core/parser/markdown/handler/emphasis.ts +++ /dev/null @@ -1,5 +0,0 @@ -import all from 'mdast-util-to-hast/lib/all' - -export default function emphasis(h, node) { - return h(node, 'prose-em', node.attributes, all(h, node)) -} diff --git a/src/core/parser/markdown/handler/heading.ts b/src/core/parser/markdown/handler/heading.ts deleted file mode 100644 index d2cbc83cb..000000000 --- a/src/core/parser/markdown/handler/heading.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Node } from 'unist' -import { H } from 'mdast-util-to-hast' -import all from 'mdast-util-to-hast/lib/all' - -export default function heading(h: H, node: Node) { - return h(node, 'prose-h' + node.depth, all(h, node)) -} diff --git a/src/core/parser/markdown/handler/html.ts b/src/core/parser/markdown/handler/html.ts deleted file mode 100644 index cc5124c0a..000000000 --- a/src/core/parser/markdown/handler/html.ts +++ /dev/null @@ -1,13 +0,0 @@ -import handlers from 'mdast-util-to-hast/lib/handlers' -import { kebabCase } from 'scule' -import { getTagName } from './utils' - -export default function html(h, node) { - const tagName = getTagName(node.value) - - if (tagName) { - node.value = node.value.replace(tagName, kebabCase(tagName)) - } - - return handlers.html(h, node) -} diff --git a/src/core/parser/markdown/handler/image.ts b/src/core/parser/markdown/handler/image.ts deleted file mode 100644 index fe607cdf5..000000000 --- a/src/core/parser/markdown/handler/image.ts +++ /dev/null @@ -1,19 +0,0 @@ -import normalize from 'mdurl/encode.js' - -/** - * @type {Handler} - * @param {Image} node - */ -export default function image(h, node) { - const props: any = { - ...node.attributes, - src: normalize(node.url), - alt: node.alt - } - - if (node.title !== null && node.title !== undefined) { - props.title = node.title - } - - return h(node, 'prose-img', props) -} diff --git a/src/core/parser/markdown/handler/index.ts b/src/core/parser/markdown/handler/index.ts deleted file mode 100644 index cca2ef643..000000000 --- a/src/core/parser/markdown/handler/index.ts +++ /dev/null @@ -1,38 +0,0 @@ -import emphasis from './emphasis' -import code from './code' -import html from './html' -import heading from './heading' -import link from './link' -import list from './list' -import listItem from './listItem' -import table from './table' -import paragraph from './paragraph' -import image from './image' -import blockquote from './blockquote' -import strong from './strong' -import inlineCode from './inlineCode' -import thematicBreak from './thematicBreak' - -export default async function handlers(highlighter) { - // create highlighter if its a factory funtions - if (typeof highlighter === 'function' && highlighter.length === 0) { - highlighter = await highlighter() - } - - return { - emphasis, - code: code(highlighter), - paragraph, - html, - link, - list, - listItem, - heading, - table, - image, - blockquote, - strong, - inlineCode, - thematicBreak - } -} diff --git a/src/core/parser/markdown/handler/inlineCode.ts b/src/core/parser/markdown/handler/inlineCode.ts deleted file mode 100644 index 584a5b9ab..000000000 --- a/src/core/parser/markdown/handler/inlineCode.ts +++ /dev/null @@ -1,5 +0,0 @@ -import u from 'unist-builder' - -export default function inlineCode(h, node) { - return h(node, 'prose-code-inline', node.attributes, [u('text', node.value.replace(/\r?\n|\r/g, ' '))]) -} diff --git a/src/core/parser/markdown/handler/link.ts b/src/core/parser/markdown/handler/link.ts deleted file mode 100644 index b91aa34c6..000000000 --- a/src/core/parser/markdown/handler/link.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { join } from 'path' -import fs from 'fs' -import normalize from 'mdurl/encode' -import { Node } from 'unist' -import { H } from 'mdast-util-to-hast' -import all from 'mdast-util-to-hast/lib/all' - -export default function link(h: H, node: Node) { - const props: any = { - ...((node.attributes || {}) as object), - href: normalize(node.url) - } - - if (props.href.startsWith('/') && !props.href.startsWith('//') && props.href.match(/\.[a-z0-9A-Z]{2,4}$/)) { - if (fs.existsSync(join(process.env.NUXT_STATIC_DIR, props.href))) { - props.static = true - } - } - - if (node.title !== null && node.title !== undefined) { - props.title = node.title - } - - return h(node, 'prose-a', props, all(h, node)) -} diff --git a/src/core/parser/markdown/handler/list.ts b/src/core/parser/markdown/handler/list.ts deleted file mode 100644 index 80cfa1c03..000000000 --- a/src/core/parser/markdown/handler/list.ts +++ /dev/null @@ -1,15 +0,0 @@ -import wrap from 'mdast-util-to-hast/lib/wrap' -import { Node } from 'unist' -import { H } from 'mdast-util-to-hast' -import all from 'mdast-util-to-hast/lib/all' - -export default function list(h: H, node: Node) { - const props: any = {} - const name = `prose-${node.ordered ? 'ol' : 'ul'}` - - if (typeof node.start === 'number' && node.start !== 1) { - props.start = node.start - } - - return h(node, name, props, wrap(all(h, node), true)) -} diff --git a/src/core/parser/markdown/handler/listItem.ts b/src/core/parser/markdown/handler/listItem.ts deleted file mode 100644 index b663c71d0..000000000 --- a/src/core/parser/markdown/handler/listItem.ts +++ /dev/null @@ -1,71 +0,0 @@ -import u from 'unist-builder' -import { Node } from 'unist' -import { H } from 'mdast-util-to-hast' -import all from 'mdast-util-to-hast/lib/all' - -export default function listItem(h: H, node: Node, parent: Node) { - const result = all(h, node) - const loose = parent ? listLoose(parent) : listItemLoose(node) - const props: any = {} - let wrapped = [] - let index - let child - - if (typeof node.checked === 'boolean') { - result.unshift( - h(null, 'input', { - type: 'checkbox', - checked: node.checked, - disabled: true - }) - ) - - // According to github-markdown-css, this class hides bullet. - // See: . - props.className = ['task-list-item'] - } - - const length = result.length - index = -1 - - while (++index < length) { - child = result[index] - - // Add eols before nodes, except if this is a loose, first paragraph. - if (loose || index !== 0 || child.tagName !== 'p') { - wrapped.push(u('text', '\n')) - } - - if (child.tagName === 'p' && !loose) { - wrapped = wrapped.concat(child.children) - } else { - wrapped.push(child) - } - } - - // Add a final eol. - if (length && (loose || child.tagName !== 'p')) { - wrapped.push(u('text', '\n')) - } - - return h(node, 'prose-li', props, wrapped) -} - -function listLoose(node: Node) { - let loose = node.spread - const children = node.children as Node[] - const length = children.length - let index = -1 - - while (!loose && ++index < length) { - loose = listItemLoose(children[index]) - } - - return loose -} - -function listItemLoose(node: Node) { - const spread = node.spread - const children = (node.children || []) as Node[] - return spread === undefined || spread === null ? children.length > 1 : spread -} diff --git a/src/core/parser/markdown/handler/paragraph.ts b/src/core/parser/markdown/handler/paragraph.ts deleted file mode 100644 index 764fe6b71..000000000 --- a/src/core/parser/markdown/handler/paragraph.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Node } from 'unist' -import { H } from 'mdast-util-to-hast' -import all from 'mdast-util-to-hast/lib/all' -import htmlTags from 'html-tags' -import { kebabCase } from 'scule' -import { getTagName } from './utils' - -export default function paragraph(h: H, node: Node) { - if (node.children && node.children[0] && node.children[0].type === 'html') { - const tagName = kebabCase(getTagName(node.children[0].value)) - // Unwrap if component - if (!htmlTags.includes(tagName)) { - return all(h, node) - } - } - return h(node, 'prose-paragraph', all(h, node)) -} diff --git a/src/core/parser/markdown/handler/strong.ts b/src/core/parser/markdown/handler/strong.ts deleted file mode 100644 index 22760c4b2..000000000 --- a/src/core/parser/markdown/handler/strong.ts +++ /dev/null @@ -1,5 +0,0 @@ -import all from 'mdast-util-to-hast/lib/all' - -export default function strong(h, node) { - return h(node, 'prose-strong', node.attributes, all(h, node)) -} diff --git a/src/core/parser/markdown/handler/table.ts b/src/core/parser/markdown/handler/table.ts deleted file mode 100644 index 6c86fd426..000000000 --- a/src/core/parser/markdown/handler/table.ts +++ /dev/null @@ -1,38 +0,0 @@ -import position from 'unist-util-position' -import wrap from 'mdast-util-to-hast/lib/wrap' -import all from 'mdast-util-to-hast/lib/all' - -export default function table(h, node) { - const rows = node.children - const align = node.align || [] - - const result = rows.map((row, index) => { - const childres = row.children - const name = index === 0 ? 'prose-th' : 'prose-td' - let pos = node.align ? align.length : childres.length - const out = [] - - while (pos--) { - const cell = childres[pos] - out[pos] = h(cell, name, { align: align[pos] }, cell ? all(h, cell) : []) - } - - return h(row, 'prose-tr', wrap(out, true)) - }) - - const body = - result[1] && - h( - { - start: position.start(result[1]), - end: position.end(result[result.length - 1]) - }, - 'prose-tbody', - wrap(result.slice(1), true) - ) - return h( - node, - 'prose-table', - wrap([h(result[0].position, 'prose-thead', wrap([result[0]], true))].concat(body || []), true) - ) -} diff --git a/src/core/parser/markdown/handler/thematicBreak.ts b/src/core/parser/markdown/handler/thematicBreak.ts deleted file mode 100644 index b01716892..000000000 --- a/src/core/parser/markdown/handler/thematicBreak.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default function thematicBreak(h, node) { - return h(node, 'prose-hr') -} diff --git a/src/core/parser/markdown/handler/utils.ts b/src/core/parser/markdown/handler/utils.ts deleted file mode 100644 index dc08a2e26..000000000 --- a/src/core/parser/markdown/handler/utils.ts +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Parses the value defined next to 3 back ticks - * in a codeblock and set line-highlights or - * filename from it - * - * @param {String} lang - */ -export function parseThematicBlock(lang: string) { - /** - * Language property on node is missing - */ - if (!lang) { - return { - language: null, - lineHighlights: null, - fileName: null - } - } - - const language = lang.replace(/[{|[](.+)/, '').match(/^[^ \t]+(?=[ \t]|$)/) - const lineHighlightTokens = lang.replace(/[[](.+)/, '').split('{') - const filenameTokens = lang.match(/\[(.+)\]/) - - return { - language: language ? language[0] : null, - lineHighlights: lineHighlightTokens[1] ? lineHighlightTokens[1].replace(/}.*/, '') : null, - fileName: Array.isArray(filenameTokens) ? filenameTokens[1] : null - } -} - -const TAG_NAME_REGEXP = /^<\/?([A-Za-z0-9-_]+) ?[^>]*>/ -export function getTagName(value: string) { - const result = String(value).match(TAG_NAME_REGEXP) - - return result && result[1] -} diff --git a/src/core/parser/markdown/index.ts b/src/core/parser/markdown/index.ts deleted file mode 100644 index 8b9be76ab..000000000 --- a/src/core/parser/markdown/index.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { resolve } from 'path' -import defu from 'defu' -import { MarkdownParserOptions, Toc } from '../../../types' -import { processOptions } from './utils' -import { generateToc } from './toc' -import { generateBody } from './content' -import propsDirective from './directive/props' -import { parse as parseFrontMatter } from './fontmatter' -import { processHeading } from './meta' - -const DEFAULTS: MarkdownParserOptions = { - toc: { - depth: 2, - searchDepth: 2 - }, - directives: { - props: propsDirective - }, - remarkPlugins: [ - resolve(__dirname, './directive'), - 'remark-emoji', - 'remark-squeeze-paragraphs', - 'remark-slug', - ['remark-autolink-headings', { behavior: 'wrap' }], - 'remark-external-links', - 'remark-footnotes', - 'remark-gfm' - ], - rehypePlugins: ['rehype-sort-attribute-values', 'rehype-sort-attributes', 'rehype-raw'] -} - -async function parse(file, options) { - const { content, data, ...rest } = await parseFrontMatter(file) - - // Compile markdown from file content to JSON - const body = await generateBody(content, { ...options, data }) - - /** - * generate toc if it is not disabled in front-matter - */ - let toc: Toc - if (data.toc !== false) { - const tocOption = defu(data.toc || {}, options.toc) - toc = generateToc(body, tocOption) - } - - let excerpt - if (rest.excerpt) { - excerpt = await generateBody(rest.excerpt, { ...options, data }) - } - - /** - * Process content headeings - */ - const heading = processHeading(body) - - return { - ...data, - title: data.title || heading.title, - description: data.description || heading.description, - toc, - body, - text: file, - excerpt, - empty: content.trim().length === 0 - } -} - -let options: MarkdownParserOptions = DEFAULTS -export function useMarkdownParser(parserOptions?: Partial) { - if (parserOptions) { - options = defu(parserOptions, DEFAULTS) - - options.remarkPlugins.unshift([resolve(__dirname, './directive/remark-plugin'), { directives: options.directives }]) - processOptions(options) - } - - return { - parseFrontMatter: (content: string) => parseFrontMatter(content), - parse: (content: string) => parse(content, options) - } -} diff --git a/src/core/parser/markdown/meta.ts b/src/core/parser/markdown/meta.ts deleted file mode 100644 index 039bd6437..000000000 --- a/src/core/parser/markdown/meta.ts +++ /dev/null @@ -1,74 +0,0 @@ -import defu from 'defu' -import { expandTags, flatUnwrap, nodeTextContent } from '../../runtime/utils' -import { DocusRootNode } from '../../../types' - -export function processHeading(body: DocusRootNode) { - let title = '' - let description = '' - const children = body.children - // top level `text` can be ignored - .filter(node => node.type !== 'text') - - if (children.length && expandTags(['h1']).includes(children[0].tag)) { - /** - * Remove node - */ - const node = children.shift() - - /** - * Remove anchor link from H1 tag - */ - node.children = flatUnwrap(node.children, ['a']) - - /** - * Generate title - */ - title = nodeTextContent(node) - - /** - * Inject class - */ - node.props = defu(node.props, { - class: 'd-heading-title' - }) - } - - if (children.length && expandTags(['p']).includes(children[0].tag)) { - /** - * Remove node - */ - const node = children.shift() - - /** - * Generate description - */ - description = nodeTextContent(node) - - /** - * Inject class - */ - node.props = defu(node.props, { - class: 'd-heading-description' - }) - } - - if (children.length && expandTags(['hr']).includes(children[0].tag)) { - /** - * Remove node - */ - const node = children.shift() - - /** - * Inject class - */ - node.props = defu(node.props, { - class: 'd-heading-hr' - }) - } - - return { - title, - description, - body - } -} diff --git a/src/core/parser/markdown/toc.ts b/src/core/parser/markdown/toc.ts deleted file mode 100644 index 65ba8f071..000000000 --- a/src/core/parser/markdown/toc.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { DocusRootNode, DocusMarkdownNode, Toc, TocLink } from '../../../types' -import { expandTags } from '../../runtime/utils' -import { logger } from '../../utils' -import { flattenNode, flattenNodeText } from './utils' - -const TOC_TAGS = ['h2', 'h3', 'h4', 'h5', 'h6'] - -const TOC_TAGS_DEPTH = expandTags(['h2', 'h3', 'h4']).reduce((tags, tag) => { - tags[tag] = Number(tag.charAt(tag.length - 1)) - return tags -}, {}) - -const getHeaderDepth = (node: DocusMarkdownNode): number => TOC_TAGS_DEPTH[node.tag] - -const getTocTags = (depth: number): string[] => { - if (depth < 1 || depth > 5) { - logger.warn(`toc.depth is set to ${depth}. It should be a muber between 1 and 5. `) - depth = 1 - } - - return TOC_TAGS.slice(0, depth) -} - -function nestHeaders(headers: TocLink[]): TocLink[] { - if (headers.length <= 1) { - return headers - } - const toc: TocLink[] = [] - let parent: TocLink - headers.forEach(header => { - if (!parent || header.depth <= parent.depth) { - header.children = [] - parent = header - toc.push(header) - } else { - parent.children.push(header) - } - }) - toc.forEach(header => { - if (header.children.length) { - header.children = nestHeaders(header.children) - } else { - delete header.children - } - }) - return toc -} - -export function generateFlatToc(body: DocusRootNode, options: Toc): Toc { - const { searchDepth, depth, title = '' } = options - const tags = expandTags(getTocTags(depth)) - - const headers = flattenNode(body, searchDepth).filter(node => tags.includes(node.tag)) - - const links: TocLink[] = headers.map(node => ({ - id: node.props.id, - depth: getHeaderDepth(node), - text: flattenNodeText(node) - })) - return { - title, - searchDepth, - depth, - links - } -} - -export function generateToc(body: DocusRootNode, options: Toc): Toc { - const toc = generateFlatToc(body, options) - toc.links = nestHeaders(toc.links) - return toc -} diff --git a/src/core/parser/markdown/utils.ts b/src/core/parser/markdown/utils.ts deleted file mode 100644 index bfe4b137a..000000000 --- a/src/core/parser/markdown/utils.ts +++ /dev/null @@ -1,65 +0,0 @@ -import hasha from 'hasha' -import { camelCase } from 'scule' -import { tryRequire, logger } from '../../utils' - -const processPlugins = (type, markdown) => { - const plugins = [] - - for (const plugin of markdown[`${type}Plugins`]) { - let name - let options - let instance - - if (typeof plugin === 'string') { - name = plugin - options = markdown[camelCase(name)] - } else if (Array.isArray(plugin)) { - ;[name, options] = plugin - } else if (typeof plugin === 'object') { - instance = plugin.instance - name = plugin.name - options = plugin.options - } - - try { - instance = instance || tryRequire(name) - - plugins.push({ instance, name, options }) - } catch (e) { - logger.error(e.toString()) - } - } - - return plugins -} - -export const processOptions = options => { - options.remarkPlugins = processPlugins('remark', options) - options.rehypePlugins = processPlugins('rehype', options) -} - -export function flattenNodeText(node) { - if (node.type === 'text') { - return node.value - } else { - return node.children.reduce((text, child) => { - return text.concat(flattenNodeText(child)) - }, '') - } -} - -export function flattenNode(node, maxDepth = 2, _depth = 0) { - if (!Array.isArray(node.children) || _depth === maxDepth) { - return [node] - } - return [node, ...node.children.reduce((acc, child) => acc.concat(flattenNode(child, maxDepth, _depth + 1)), [])] -} - -export function setNodeData(node, name, value, pageData) { - if (!name.startsWith(':')) { - name = ':' + name - } - const dataKey = `docus_d_${hasha(JSON.stringify(value)).substr(0, 8)}` - pageData[dataKey] = value - node.data.hProperties[name] = dataKey -} diff --git a/src/core/plugin.js b/src/core/plugin.js deleted file mode 100644 index ceb454a8f..000000000 --- a/src/core/plugin.js +++ /dev/null @@ -1,50 +0,0 @@ -import { joinURL, withLeadingSlash } from 'ufo' -import settings from '~docus-cache/docus-settings.json' -import { createDocus, <%= options.isSSG ? "QueryBuilder" : "RemoteQueryBuilder" %> } from '~docus' -/* <% if (options.watch) { %> */ import { useWebSocket } from '~docus/api/websocket' /* <% } %> */ - - -/* <% if (options.isSSG) { %> */ -import Loki from '@lokidb/loki' -let db, items -function createQuery(path, { deep = false, text = false } = {}) { - const query = { - $or: [{ path }, { path: deep ? { $regex: new RegExp(`^${path}`) } : path }] - } - const postprocess = [data => (!deep && data[0]?.path === path ? data[0] : data)] - - return new QueryBuilder({ query: items.chain().find(query, !deep), path, postprocess, text }, {}) -} -/* <% } else { %> */ -function createQuery(path, options) { - path = withLeadingSlash(path) - return new RemoteQueryBuilder(joinURL('/', '<%= options.apiBase %>', path), options) -} -/* <% } %> */ - - -export default async function (ctx, inject) { - /* <% if (options.isSSG) { %> */ - if (process.client && !db) { - const { docusDbHash } = ctx.$config ? ctx.$config : ctx.nuxtState - const database = await fetch(`<%= options.dbPath %>/db-${docusDbHash}.json`).then(res => res.json()) - db = new Loki('content.db') - db.loadJSONObject(database) - items = db.getCollection('items') - } - /* <% } %> */ - - const $docus = await createDocus( - ctx, - settings, - process.server ? ctx.ssrContext.docus.createQuery : createQuery - ) - - inject('docus', $docus) - - /* <% if (options.watch) { %> */ - if (process.client) { - useWebSocket({ base: '<%= options.apiBase %>' }).connect() - } - /* <% } %> */ -} diff --git a/src/core/runtime/api/QueryBuilder.ts b/src/core/runtime/api/QueryBuilder.ts deleted file mode 100644 index 9e4b5de68..000000000 --- a/src/core/runtime/api/QueryBuilder.ts +++ /dev/null @@ -1,262 +0,0 @@ -const pick = keys => obj => - Object.keys(obj) - .filter(key => keys.includes(key)) - .reduce((newObj, key) => Object.assign(newObj, { [key]: obj[key] }), {}) - -const omit = keys => obj => - Object.keys(obj) - .filter(key => !keys.includes(key)) - .reduce((newObj, key) => Object.assign(newObj, { [key]: obj[key] }), {}) - -const apply = fn => data => Array.isArray(data) ? data.map(item => fn(item)) : fn(data) - -export class QueryBuilder { - private query: any - private path: string - private init: any - private postprocess: Array<(data: any) => any> - private options: any - private onlyKeys: string[] - private withoutKeys: string[] - private sortKeys = [] - - constructor({ query, path, init, text, postprocess = [] }, options) { - this.query = query - this.path = path - this.init = init - this.postprocess = postprocess - this.options = options || {} - this.onlyKeys = null - this.withoutKeys = null - this.sortKeys = [] - - if (!text) { - // Remove text field from response - this.postprocess.unshift(apply(omit(['text']))) - } - } - - /** - * Select a subset of fields - * @param {Array} keys - Array of fields to be picked. - * @returns {QueryBuilder} Returns current instance to be chained - */ - only(keys) { - // Assign keys to this.onlyKeys to be processed in fetch - this.onlyKeys = Array.isArray(keys) ? keys : [keys] - // Return current instance - return this - } - - /** - * Remove a subset of fields - * @param {Array} keys - Array of fields to be picked. - * @returns {QueryBuilder} Returns current instance to be chained - */ - without(keys) { - // Assign keys to this.withoutKeys to be processed in fetch - this.withoutKeys = Array.isArray(keys) ? keys : [keys] - // Return current instance - return this - } - - /** - * Sort results - * @param {string} field - Field key to sort on. - * @param {string} direction - Direction of sort (asc / desc). - * @returns {QueryBuilder} Returns current instance to be chained - */ - sortBy(field, direction) { - this.sortKeys.push([field, direction === 'desc']) - return this - } - - /** - * Filter results - * @param {object} query - Where query. - * @returns {QueryBuilder} Returns current instance to be chained - */ - where(query) { - this.query = this.query.find(query) - return this - } - - /** - * Search results - * @param {(Object|string)} query - Search query object or field or search value. - * @param {string} value - Value of search (means query equals to field). - * @returns {QueryBuilder} Returns current instance to be chained - */ - search(query, value = undefined) { - // Passing an empty or falsey value as query will avoid triggering a search to allow optional chaining - if (!query) { - return this - } - - let $fts - - if (typeof query === 'object') { - $fts = query - } else if (value) { - $fts = { - query: { - type: 'match', - field: query, - value, - prefix_length: 1, - fuzziness: 1, - extended: true, - minimum_should_match: 1 - } - } - } else { - $fts = { - query: { - type: 'bool', - should: this.options.fullTextSearchFields.map(field => ({ - type: 'match', - field, - value: query, - prefix_length: 1, - operator: 'and', - minimum_should_match: 1, - fuzziness: 1, - extended: true - })) - } - } - } - - this.query = this.query.find({ $fts }).sortByScoring() - - return this - } - - /** - * Surround results - * @param {string} slugOrPath - Slug or path of the file to surround. - * @param {Object} options - Options to surround (before / after). - * @returns {QueryBuilder} Returns current instance to be chained - */ - surround(slugOrPath, { before = 1, after = 1 } = {}) { - const _key = slugOrPath.indexOf('/') === 0 ? 'path' : 'slug' - - // Add slug or path to onlyKeys if only method has been called before - if (this.onlyKeys) { - this.onlyKeys.push(_key) - } - // Remove slug or path from withoutKeys if without method has been called before - if (this.withoutKeys) { - this.withoutKeys = this.withoutKeys.filter(key => key !== _key) - } - - const fn = data => { - const index = data.findIndex(item => item[_key] === slugOrPath) - const slice = new Array(before + after).fill(null, 0) - if (index === -1) { - return slice - } - - const prevSlice = data.slice(index - before, index) - const nextSlice = data.slice(index + 1, index + 1 + after) - - let prevIndex = 0 - for (let i = before - 1; i >= 0; i--) { - slice[i] = prevSlice[prevIndex] || null - prevIndex++ - } - - let nextIndex = 0 - for (let i = before; i <= after; i++) { - slice[i] = nextSlice[nextIndex] || null - nextIndex++ - } - - return slice - } - - this.postprocess.push(fn) - return this - } - - /** - * Limit number of results - * @param {number} n - Limit number. - * @returns {QueryBuilder} Returns current instance to be chained - */ - limit(n) { - if (typeof n === 'string') { - n = parseInt(n) - } - - /** - * Use post processes instead of `query.limit` - * `query.limit` does not respect items sorted order if there is not filtering codition - */ - this.postprocess.push(docs => docs.slice(0, n)) - return this - } - - /** - * Skip number of results - * @param {number} n - Skip number. - * @returns {QueryBuilder} Returns current instance to be chained - */ - skip(n) { - if (typeof n === 'string') { - n = parseInt(n) - } - - this.query = this.query.offset(n) - return this - } - - /** - * Collect data and apply process filters - * @returns {(Object|Array)} Returns processed data - */ - // eslint-disable-next-line require-await - async fetch() { - if (this.sortKeys && this.sortKeys.length) { - this.query = this.query.compoundsort(this.sortKeys) - } - - // Collect data without meta fields - let data = this.query.data({ removeMeta: true }) - // Handle only keys - if (this.onlyKeys) { - // Add `path` and `extension` to onlyKeys if watch to ensure live edit - if (this.options.watch) { - this.onlyKeys.push('path', 'extension') - } - - // Map data and returns object picked by keys - const fn = apply(pick(this.onlyKeys)) - - // Apply pick during postprocess - this.postprocess.unshift(fn) - } - // Handle without keys - if (this.withoutKeys) { - // Remove `path` and `extension` from withoutKeys if watch to ensure live edit - if (this.options.watch) { - this.withoutKeys = this.withoutKeys.filter(key => !['path', 'extension'].includes(key)) - } - // Map data and returns object picked by keys - const fn = apply(omit(this.withoutKeys)) - - // Apply pick during postprocess - this.postprocess.unshift(fn) - } - // Apply postprocess fns to data - for (const fn of this.postprocess) { - data = fn(data) - } - - if (!data) { - throw new Error(`${this.path} not found`) - } - - return JSON.parse(JSON.stringify(data)) - } -} diff --git a/src/core/runtime/api/RemoteQueryBuilder.ts b/src/core/runtime/api/RemoteQueryBuilder.ts deleted file mode 100644 index 3d1d5323b..000000000 --- a/src/core/runtime/api/RemoteQueryBuilder.ts +++ /dev/null @@ -1,133 +0,0 @@ -import { $fetch } from 'ohmyfetch' - -interface SurroundOptions { - before: boolean - after: boolean -} - -interface QueryBuilderParams { - deep: boolean - text: boolean - only?: string[] - without?: string[] - sortBy?: any[] - where?: any - search?: { - query: any - value: string - } - surround?: { - slugOrPath: string - options: SurroundOptions - } - limit?: number - skip?: number -} - -export class RemoteQueryBuilder { - private url: string - private params: QueryBuilderParams - constructor(url: string, { deep = false, text = false } = {}) { - this.url = url - this.params = { - deep, - text - } - } - - /** - * Select a subset of fields - * @param {Array} keys - Array of fields to be picked. - * @returns {QueryBuilder} Returns current instance to be chained - */ - only(keys: string[]) { - this.params.only = keys - return this - } - - /** - * Remove a subset of fields - * @param {Array} keys - Array of fields to be picked. - * @returns {QueryBuilder} Returns current instance to be chained - */ - without(keys: string[]) { - this.params.without = keys - return this - } - - /** - * Sort results - * @param {string} field - Field key to sort on. - * @param {string} direction - Direction of sort (asc / desc). - * @returns {QueryBuilder} Returns current instance to be chained - */ - sortBy(field: string, direction: 'asc' | 'desc' = 'asc') { - this.params.sortBy = this.params.sortBy || [] - this.params.sortBy.push({ [field]: direction }) - return this - } - - /** - * Filter results - * @param {Object} query - Where query. - * @returns {QueryBuilder} Returns current instance to be chained - */ - where(query) { - this.params.where = query - return this - } - - /** - * Search results - * @param {(Object|string)} query - Search query object or field or search value. - * @param {string} value - Value of search (means query equals to field). - * @returns {QueryBuilder} Returns current instance to be chained - */ - search(query: any, value: string) { - this.params.search = { query, value } - return this - } - - /** - * Surround results - * @param {string} slugOrPath - Slug or path of the file to surround. - * @param {Object} options - Options to surround (before / after). - * @returns {QueryBuilder} Returns current instance to be chained - */ - surround(slugOrPath: string, options: SurroundOptions) { - this.params.surround = { slugOrPath, options } - return this - } - - /** - * Limit number of results - * @param {number} n - Limit number. - * @returns {QueryBuilder} Returns current instance to be chained - */ - limit(n: number) { - this.params.limit = n - return this - } - - /** - * Skip number of results - * @param {number} n - Skip number. - * @returns {QueryBuilder} Returns current instance to be chained - */ - skip(n: number) { - this.params.skip = n - return this - } - - /** - * Call server middleware with generated params - * @returns {(Object|Array)} Returns processed data - */ - fetch(): Promise { - return $fetch(this.url, { - method: 'POST', - body: JSON.stringify(this.params), - headers: { 'Content-Type': 'application/json' } - }) - } -} diff --git a/src/core/runtime/api/websocket.ts b/src/core/runtime/api/websocket.ts deleted file mode 100644 index ff89e13fe..000000000 --- a/src/core/runtime/api/websocket.ts +++ /dev/null @@ -1,80 +0,0 @@ -const logger = { - // eslint-disable-next-line no-console - log: (...args) => console.log('[Docus]', ...args), - // eslint-disable-next-line no-console - warn: (...args) => console.warn('[Docus]', ...args) -} -let $nuxt -let ws = null - -export function useWebSocket({ base }) { - if (!window.WebSocket) { - logger.warn('Could not activate hot reload, your browser does not support WebSocket.') - return - } - - // @ts-ignore - window.onNuxtReady(_nuxt => { - $nuxt = _nuxt - }) - - const onMessage = async message => { - try { - const data = JSON.parse(message.data) - if (!data) { - return - } - $nuxt.$emit('content:update', data) - // Nuxt3: await $nuxt.callHook('content:update') - if ($nuxt.$store && $nuxt.$store._actions.nuxtServerInit) { - await $nuxt.$store.dispatch('nuxtServerInit', $nuxt.$options.context) - } - // Refresh the current page - $nuxt.refresh() - } catch (err) {} - } - - const onOpen = () => logger.log('WS connected') - - const onError = e => { - switch (e.code) { - case 'ECONNREFUSED': - connect(true) - break - default: - logger.warn('WS Error:', e) - break - } - } - - const onClose = e => { - // https://tools.ietf.org/html/rfc6455#section-11.7 - if (e.code === 1000 || e.code === 1005) { - // Normal close - logger.log('WS closed!') - } else { - // Unkown error - connect(true) - } - } - - const connect = (retry = false) => { - if (retry) { - logger.log('WS reconnecting...') - setTimeout(connect, 1000) - return - } - const protocol = location.protocol === 'https:' ? 'wss' : 'ws' - const wsURL = `${protocol}://${location.hostname}:${location.port}/${base}/ws` - logger.log(`WS connect to ${wsURL}`) - ws = new WebSocket(wsURL) - ws.onopen = onOpen - ws.onmessage = onMessage - ws.onerror = onError - ws.onclose = onClose - } - - return { - connect - } -} diff --git a/src/core/runtime/components/DocusContent.ts b/src/core/runtime/components/DocusContent.ts deleted file mode 100644 index 051c03e8c..000000000 --- a/src/core/runtime/components/DocusContent.ts +++ /dev/null @@ -1,198 +0,0 @@ -import info from 'property-information' - -const rootKeys = ['class-name', 'class', 'className', 'style'] - -const rxOn = /^@|^v-on:/ -const rxBind = /^:|^v-bind:/ -const rxModel = /^v-model/ -const nativeInputs = ['select', 'textarea', 'input'] - -const lazyComponents = new Set() - -function evalInContext(code, context) { - // eslint-disable-next-line no-new-func - return new Function('with(this) { return (' + code + ') }').call(context) -} - -function propsToData(node, doc) { - const { tag, props } = node - return Object.keys(props).reduce( - function (data, key) { - const k = key.replace(/.*:/, '') - let obj = rootKeys.includes(k) ? data : data.attrs - const value = props[key] - const { attribute } = info.find(info.html, key) - const native = nativeInputs.includes(tag) - - if (rxModel.test(key) && value in doc && !native) { - const mods = key - .replace(rxModel, '') - .split('.') - .filter(d => d) - .reduce((d, k) => { - d[k] = true - return d - }, {}) - - // As of yet we don't resolve custom v-model field/event names from components - const field = 'value' - const event = mods.lazy ? 'change' : 'input' - const processor = mods.number ? d => +d : mods.trim ? d => d.trim() : d => d - - obj[field] = evalInContext(value, doc) - data.on = data.on || {} - data.on[event] = e => (doc[value] = processor(e)) - } else if (key === 'v-bind') { - const val = value in doc ? doc[value] : evalInContext(value, doc) - obj = Object.assign(obj, val) - } else if (rxOn.test(key)) { - key = key.replace(rxOn, '') - data.on = data.on || {} - data.on[key] = evalInContext(value, doc) - } else if (rxBind.test(key)) { - key = key.replace(rxBind, '') - obj[key] = value in doc ? doc[value] : evalInContext(value, doc) - } else if (Array.isArray(value)) { - obj[attribute] = value.join(' ') - } else { - obj[attribute] = value - } - return data - }, - { attrs: {} } - ) -} - -/** - * Create the scoped slots from `node` template children. Templates for default - * slots are processed as regular children in `processNode`. - */ -function slotsToData(node, h, doc) { - const data = {} - const children = node.children || [] - - children.forEach(child => { - // Regular children and default templates are processed inside `processNode`. - if (!isTemplate(child) || isDefaultTemplate(child)) { - return - } - - // Non-default templates are converted into slots. - data.scopedSlots = data.scopedSlots || {} - const template = child - const name = getSlotName(template) - const vDomTree = template.content.map(tmplNode => processNode(tmplNode, h, doc)) - data.scopedSlots[name] = function () { - return vDomTree - } - }) - - return data -} - -function processNode(node, h, doc) { - /** - * Return raw value as it is - */ - if (node.type === 'text') { - return node.value - } - - const slotData = slotsToData(node || {}, h, doc) - const propData = propsToData(node || {}, doc) - const data = Object.assign({}, slotData, propData) - - /** - * Process child nodes, flat-mapping templates pointing to default slots. - */ - const children = [] - for (const child of node.children) { - // Template nodes pointing to non-default slots are processed inside `slotsToData`. - if (isTemplate(child) && !isDefaultTemplate(child)) { - continue - } - - const processQueue = isDefaultTemplate(child) ? child.content : [child] - children.push(...processQueue.map(node => processNode(node, h, doc))) - } - - // Disable in the meantime - // if (process.server && typeof Vue.component(pascalCase(node.tag)) === 'function') { - // lazyComponents.add(pascalCase(node.tag)) - // } - return h(node.tag, data, children) -} - -const DEFAULT_SLOT = 'default' - -function isDefaultTemplate(node) { - return isTemplate(node) && getSlotName(node) === DEFAULT_SLOT -} - -function isTemplate(node) { - return node.tag === 'template' -} - -function getSlotName(node) { - let name = '' - for (const propName of Object.keys(node.props)) { - if (!propName.startsWith('#') && !propName.startsWith('v-slot:')) { - continue - } - name = propName.split(/[:#]/, 2)[1] - break - } - return name || DEFAULT_SLOT -} - -export default { - name: 'DocusContent', - functional: true, - props: { - document: { - type: [Object, String], - required: true - } - }, - render(h, { data, props, parent, _v }) { - const { document } = props - - // Render simple string - if (typeof document === 'string') { - return _v(document) - } - - const { body } = document || {} - if (!body || !body.children || !Array.isArray(body.children)) { - return - } - - let classes = [] - if (Array.isArray(data.class)) { - classes = data.class - } else if (typeof data.class === 'object') { - const keys = Object.keys(data.class) - classes = keys.filter(key => data.class[key]) - } else { - classes = [data.class] - } - data.class = classes - data.props = Object.assign({ ...body.props }, data.props) - const children = body.children.map(child => processNode(child, h, document)) - - if (process.server) { - parent.$root.context.beforeSerialize(nuxtState => { - if (nuxtState.fetch._lazyComponents) { - lazyComponents.forEach(name => nuxtState.fetch._lazyComponents.add(name)) - } else { - nuxtState.fetch._lazyComponents = lazyComponents - } - }) - } - - // detect root tag - const tag = body.tag || 'div' - - return h(tag, data, children) - } -} diff --git a/src/core/runtime/components/Markdown.ts b/src/core/runtime/components/Markdown.ts deleted file mode 100644 index c413ef007..000000000 --- a/src/core/runtime/components/Markdown.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { flatUnwrap, unwrap, isTag } from '~docus/utils' - -export default { - name: 'Markdown', - functional: true, - props: { - use: { - type: [String, Object, Function, Array], - default: 'default' - }, - unwrap: { - type: String, - default: '' - } - }, - render: (_h, ctx) => { - const slot = ctx.props.use || 'default' - let node = typeof slot === 'string' ? ctx.parent.$scopedSlots[slot] || ctx.parent.$slots[slot] : slot - - // Execute factory funciton - if (typeof node === 'function') { - node = node() - } - - if (typeof node === 'string') { - return [node] - } - - // unwrap tags - if (node && ctx.props.unwrap) { - const tags = ctx.props.unwrap.split(/[,\s]/) - - const first = Array.isArray(node) && node[0] - const requireSplitor = - ctx.scopedSlots.between && - first && - !first.text && - !['span', 'strong', 'em', 'a', 'code'].some(tag => isTag(first, tag)) - - if (requireSplitor) { - node = node.flatMap((n, i) => (i === 0 ? unwrap(n, tags) : [ctx.scopedSlots.between(), unwrap(n, tags)])) - } else { - node = flatUnwrap(node, tags) - } - } - - return node - } -} diff --git a/src/core/runtime/components/plugin.js b/src/core/runtime/components/plugin.js deleted file mode 100644 index 048a1132d..000000000 --- a/src/core/runtime/components/plugin.js +++ /dev/null @@ -1,7 +0,0 @@ -import Vue from 'vue' - -import Markdown from '~docus/components/Markdown' -import DocusContent from '~docus/components/DocusContent' - -Vue.component('Markdown', Markdown) -Vue.component('DocusContent', DocusContent) diff --git a/src/core/runtime/composables/addons.ts b/src/core/runtime/composables/addons.ts deleted file mode 100644 index 836e8160b..000000000 --- a/src/core/runtime/composables/addons.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { DocusAddonContext } from '../../../types' - -type DocusAddons = { - [key: string]: any -} - -export const useDocusAddons = (context: DocusAddonContext, addons: DocusAddons) => { - /** - * Addons context to be spread into Docus injection - */ - const addonsContext = {} - - /** - * Setup all addons - */ - const setupAddons = async () => - await Promise.all( - Object.entries(addons).map(async ([key, addon]) => { - const addonKeys = addon(context) - - Object.entries(addonKeys).forEach(([key, value]) => { - if (key === 'init') return - - const contextKeys = [Object.keys(addonsContext), ...Object.keys(context.state)] - - // eslint-disable-next-line no-console - if (contextKeys.includes(key)) console.warn(`You duplicated the key ${key} in Docus context.`) - - addonsContext[key] = value - }) - - if ((addonKeys as any)?.init) { - try { - await addonKeys?.init?.() - } catch (e) { - // eslint-disable-next-line no-console - console.log(`Could not init ${key} addon!`) - } - } - }) - ) - - return { - addonsContext, - setupAddons - } -} diff --git a/src/core/runtime/composables/api.ts b/src/core/runtime/composables/api.ts deleted file mode 100644 index e3b9475a2..000000000 --- a/src/core/runtime/composables/api.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { joinURL } from 'ufo' -import { NavItem } from '../../../types' - -export const useDocusApi = createQuery => { - function data(path: string) { - return createQuery(joinURL('/data', path), {}).fetch() - } - - function search(path: string | any, options?) { - if (typeof path !== 'string') { - options = path - path = '' - } - - return createQuery(joinURL('/pages', path), options) - } - - function page(path: string) { - return this.search(path).fetch() - } - - function findLink(links: NavItem[], to: string) { - return links.find(link => link.to === to) - } - - return { - data, - search, - page, - findLink - } -} diff --git a/src/core/runtime/composables/github.ts b/src/core/runtime/composables/github.ts deleted file mode 100644 index 0e2cffba2..000000000 --- a/src/core/runtime/composables/github.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { computed } from '@nuxtjs/composition-api' -import { joinURL, withoutTrailingSlash } from 'ufo' -import { DocusAddonContext } from '../../../types' - -export const useDocusGithub = ({ state }: DocusAddonContext) => { - const previewUrl = computed(() => withoutTrailingSlash(state.settings.url) + '/preview.png') - - const repoUrl = computed(() => joinURL(state.settings.github.url, state.settings.github.repo)) - - return { - previewUrl, - repoUrl - } -} diff --git a/src/core/runtime/composables/helpers.ts b/src/core/runtime/composables/helpers.ts deleted file mode 100644 index 7ad6592ba..000000000 --- a/src/core/runtime/composables/helpers.ts +++ /dev/null @@ -1,46 +0,0 @@ -import Vue from 'vue' -import { DocusAddonContext } from '../../../types' - -export const docusInit = ({ context, state }: DocusAddonContext) => { - if (process.server) { - context.beforeNuxtRender(({ nuxtState }) => (nuxtState.docus = state)) - } -} - -export const clientAsyncData = (_app, $nuxt: any) => { - if (process.client) { - const loadedComponents = new Set() - const loadComponents = function (components?: Set) { - if (!components) return - return Array.from(components).map(async function (name) { - const component: any = Vue.component(name) - if (!loadedComponents.has(name) && typeof component === 'function' && !component.options) { - loadedComponents.add(name) - try { - // @ts-ignore - await Vue.component(name)() - } catch (e) {} - } - }) - } - window.onNuxtReady((nuxt: any) => { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - $nuxt = nuxt - - // Workaround for Vue 2 since does not exists - const originalFetchPayload = $nuxt.fetchPayload - if (originalFetchPayload) { - $nuxt.fetchPayload = async function (...args) { - const payload = await originalFetchPayload(...args) - - // await loadComponents(payload.fetch?._lazyComponents) - await loadComponents(new Set(payload.data[0]?.page?.template)) - - return payload - } - } - // Fetch NuxtContent component - loadComponents(new Set('NuxtContent')) - }) - } -} diff --git a/src/core/runtime/composables/navigation.ts b/src/core/runtime/composables/navigation.ts deleted file mode 100644 index 5a2126c93..000000000 --- a/src/core/runtime/composables/navigation.ts +++ /dev/null @@ -1,164 +0,0 @@ -import { withTrailingSlash } from 'ufo' -import { ref, computed } from '@nuxtjs/composition-api' -import { DocusAddonContext, DocusNavigationGetParameters, NavItem } from '../../../types' -import { useDocusTemplates } from './templates' - -/** - * Handling all the navigation querying logic. - */ -export const useDocusNavigation = ({ context, state, api }: DocusAddonContext) => { - // Nuxt context - const { app } = context - - // Init navigation object if not preset - if (!state.navigation) state.navigation = {} - - // Map locales to nav - app.i18n.locales.forEach((locale: any) => (state.navigation[locale.code] = [])) - - // Compute `currentNav` on every route change - const fetchCounter = ref(0) - - /** - * Get navigation from Docus data - */ - async function fetchNavigation() { - const { body } = await api.data('/docus/navigation/' + app.i18n.locale) - - state.navigation[app.i18n.locale] = body - - fetchCounter.value += 1 - } - - /** - * Query navigation from and to a certain point using parameters. - * @param depth The depth at which you want to go into children. - * @param locale The locale used for that query. (defaults to the current user locale) - * @param from A vue-router "to" valid path to start with: "/directory" will make my query start at from this directory. - */ - function get({ depth, locale, from, all }: DocusNavigationGetParameters = {}) { - const nav = state.navigation[locale || app.i18n.locale] || [] - - let items = nav - let match: NavItem - - // The deepest exclusive navigation that can be found based on `from` - let exclusiveContent: NavItem - // Parent of exclusive Content - let parent: NavItem - - // `from` parameter handling - if (from) { - let lastMatch: NavItem - - const paths = from.split('/') - - items = paths.reduce((links: NavItem[], path: string, index: number) => { - // Empty path, skip iteration - if (!path) return links - - // Remember last matched content - // This content will use as navigation parent if it has an exclusive decendant - if (match && match.page) { - lastMatch = match - } - - // Find matched content - match = links.find(item => item.to.split('/')[index] === path) - if (match) { - // Update parent and exclusiveContent if the matched content marked as exclusive navigation - if (match && match.exclusive) { - parent = lastMatch || parent - exclusiveContent = match - } - - return match.children - } - - return links - }, items) - - if (exclusiveContent) { - // Use exclusive links - items = exclusiveContent.children - } else { - items = nav - } - } - - return { - // matched page info - title: exclusiveContent && exclusiveContent.title, - to: exclusiveContent && exclusiveContent.to, - // matched parent - parent, - // filter children - links: all ? items : filterLinks(items, depth, 1) - } - } - - /** - * Filter a list of nodes. - */ - function filterLinks(nodes: NavItem[], maxDepth: number, currentDepth: number) { - return nodes.filter(node => { - // Navigation as false means that we want that link to be hidden from navigation. - if (node.hidden) return false - - // We don't want to show drafts. - if (node.draft === true) return false - - // Check if we aren't to deep - if (currentDepth && maxDepth > currentDepth) return false - - // Check if marked as nested, if so children will be empty - if (node.nested === false) node.children = [] - - // Loop on current node children if exists - node.children = - node.children && node.children.length > 0 ? filterLinks(node.children, maxDepth, currentDepth + 1) : [] - - return node - }) - } - - /** - * Check if a "to" path is the currently active path. - */ - function isLinkActive(to: string) { - return withTrailingSlash(state.currentPath) === withTrailingSlash(context.$contentLocalePath(to)) - } - - /** - * Return the current navigation from the current user path. - */ - const currentNav = computed(() => { - // eslint-disable-next-line no-unused-expressions - fetchCounter.value - - // Calculate the navigation based on current path - return get({ - from: state.currentPath - }) - }) - - // Update content on update. - if (process.client) { - window.onNuxtReady($nuxt => { - $nuxt.$on('content:update', () => { - fetchNavigation() - }) - }) - } - - const { getPageTemplate } = useDocusTemplates({ api, state }, currentNav) - - return { - getPageTemplate, - fetchNavigation, - currentNav, - isLinkActive, - init: fetchNavigation, - get - } -} diff --git a/src/core/runtime/composables/releases.ts b/src/core/runtime/composables/releases.ts deleted file mode 100644 index d1e9a8ef8..000000000 --- a/src/core/runtime/composables/releases.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { DocusAddonContext } from '../../../types' - -export const useDocusReleases = ({ api, state }: DocusAddonContext) => { - async function fetchReleases() { - return (await api.data('github-releases'))?.releases || [] - } - - async function fetchLastRelease() { - if (process.dev === false && state.lastRelease) return - - const [lastRelease] = await fetchReleases() - - if (lastRelease) state.lastRelease = lastRelease.name - } - - return { - fetchReleases, - fetchLastRelease, - init: fetchLastRelease - } -} diff --git a/src/core/runtime/composables/style.ts b/src/core/runtime/composables/style.ts deleted file mode 100644 index ff8decf8c..000000000 --- a/src/core/runtime/composables/style.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { computed } from '@nuxtjs/composition-api' -import { getColors } from 'theme-colors' -import { DocusAddonContext, Colors } from '../../../types' - -/** - * Parse color definition from Docus Config. - */ -function useColors(colors: Colors) { - try { - return Object.entries(colors).map(([key, color]) => [key, typeof color === 'string' ? getColors(color) : color]) - } catch (e) { - // eslint-disable-next-line no-console - console.warn('Could not parse custom colors:', e.message) - return [] - } -} - -/** - * Create a css variable store. - */ -function useCssVariableStore(scopes = ['dark']) { - scopes = ['default', ...scopes] - - const _store = scopes.reduce((obj, scope) => ({ [scope]: {}, ...obj }), {} as any) - - const getScope = (scope: string) => _store[scope] || null - - const putSingle = (key: string) => (value: string) => { - const _arr = value.split(':') - const _value = _arr.pop() - const _scope = getScope(_arr.pop() || 'default') - if (_scope) { - _scope[key] = _value - } - } - - const put = (key: string, value: string) => { - value.split(' ').map(putSingle(key)) - } - - const generateVar = ([key, value]: [string, any]) => `--${key}: ${value}` - - const generateScope = (scope: string) => { - const vars = Object.entries(getScope(scope)).map(generateVar).join(';') - return scope === 'default' ? `html:root {${vars}}` : `html.${scope} {${vars}}` - } - - const generate = () => scopes.map(generateScope).join(' ') - - return { put, generate } -} - -/** - * Generate a css string from variables definition. - */ -function useCSSVariables(colors: Colors) { - const { put, generate } = useCssVariableStore(['dark']) - - const colorsList = useColors(colors) - - colorsList.forEach(([color, map]) => - Object.entries(map).forEach(([variant, value]) => put(`${color}-${variant}`, value as string)) - ) - - return generate() -} - -export const useDocusStyle = ({ context, state }: DocusAddonContext) => { - const app = context.app - - const styles = computed(() => useCSSVariables(state.theme.colors)) - - function updateHead() { - const head = typeof app.head === 'function' ? app.head() : app.head - - // Init head if absent - if (!Array.isArray(head.style)) { - head.style = [] - } - - // Init meta is absent - if (!Array.isArray(head.meta)) { - head.meta = [] - } - - // Push CSS variables - head.style.push({ - hid: 'docus-theme', - cssText: styles.value, - type: 'text/css' - }) - - // Set 'apple-mobile-web-app-title' from Docus title - head.meta = head.meta.filter(s => s.hid !== 'apple-mobile-web-app-title') - head.meta.push({ - hid: 'apple-mobile-web-app-title', - name: 'apple-mobile-web-app-title', - content: state.settings.title - }) - - head.meta = head.meta.filter(s => s.hid !== 'theme-color') - } - - return { - styles, - updateHead, - init: updateHead - } -} diff --git a/src/core/runtime/composables/templates.ts b/src/core/runtime/composables/templates.ts deleted file mode 100644 index 53c9c2842..000000000 --- a/src/core/runtime/composables/templates.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { pascalCase } from 'scule' -import Vue from 'vue' -import { ComputedRef } from '@nuxtjs/composition-api' -import { DocusAddonContext, DocusCurrentNav, DocusDocument } from '../../../types' - -export const useDocusTemplates = ( - { api, state }: Partial, - currentNav: ComputedRef -) => { - function getPageTemplate(page: DocusDocument) { - let template = - /** - * Use template defined in page data - */ - typeof page.template === 'string' ? page.template : page.template?.self - - /** - * Look for template in parent pages - */ - if (!template) { - // Fetch from nav (root to link) and fallback to settings.template - const slugs: string[] = page.to.split('/').filter(Boolean).slice(0, -1) // no need to get latest slug since it is current page - - let { links } = currentNav?.value || {} - - slugs.forEach((_slug: string, index: number) => { - // generate full path of parent - const to = '/' + slugs.slice(0, index + 1).join('/') - const link = api.findLink(links, to) - - if (link?.template) { - template = link.template || template - } - - if (!link?.children) return - - links = link.children - }) - } - - /** - * Use global template if template is not defined in page data or in parent pages - */ - if (!template) { - template = state.settings.template - } - - template = pascalCase(template) - - if (!Vue.component(template)) { - // eslint-disable-next-line no-console - console.error(`Template ${template} does not exists, fallback to Page template.`) - - template = 'Page' - } - - return template - } - - return { - getPageTemplate - } -} diff --git a/src/core/runtime/docus.ts b/src/core/runtime/docus.ts deleted file mode 100644 index a52b785e8..000000000 --- a/src/core/runtime/docus.ts +++ /dev/null @@ -1,93 +0,0 @@ -import { reactive, toRefs } from '@nuxtjs/composition-api' -import { DocusSettings, PermissiveContext, DocusState, DocusAddonContext, DocusRuntimeInstance } from '../../types' -import { useDocusApi } from './composables/api' -import { useDocusNavigation } from './composables/navigation' -import { clientAsyncData, docusInit } from './composables/helpers' -import { useDocusGithub } from './composables/github' -import { useDocusReleases } from './composables/releases' -import { useDocusStyle } from './composables/style' -import { useDocusAddons } from './composables/addons' - -let docusInstance: DocusRuntimeInstance - -/** - * Create the $docus runtime injection instance. - */ -export const createDocus = async ( - context: PermissiveContext, - settings: DocusSettings, - createQuery: any -): Promise> => { - // Nuxt instance proxy - let $nuxt: any - - const { ssrContext, nuxtState = {}, route } = context - - // Prevent hydration mismatch: inject templateOptions from ssr payload before page load - const templateOptions = nuxtState.data?.[0].templateOptions || {} - - // State - const state = reactive({ - currentPath: `/${route.params.pathMatch}`, - currentPage: null, - settings: null, - theme: null, - layout: { - ...settings.layout, - ...templateOptions - } - }) as DocusState - - // Split theme & user settings - const { theme, ...userSettings } = settings - state.settings = userSettings - state.theme = theme - - // Create API helpers - const api = useDocusApi(createQuery) - - // Create Docus Addons context - const docusAddonContext: DocusAddonContext = { - ssrContext, - $nuxt, - context, - state, - settings, - createQuery, - api - } - - // Docus default addons - const docusAddons = { - useDocusStyle, - useDocusNavigation, - useDocusReleases, - useDocusGithub - } - - // Addons manager - const { setupAddons, addonsContext } = useDocusAddons(docusAddonContext, docusAddons) - - // Setup addons - await setupAddons() - - // Init Docus for every context - docusInit(docusAddonContext) - - // Workaround for async data - clientAsyncData(context.app, $nuxt) - - docusInstance = { - ...toRefs(state), - ...api, - ...addonsContext - } - - return docusInstance -} - -export const useDocus = () => { - if (!docusInstance) throw new Error('Docus not yet initialized! useDocus has to be used in a living Vue instance.') - - return docusInstance -} diff --git a/src/core/runtime/index.ts b/src/core/runtime/index.ts deleted file mode 100644 index 659f62b7c..000000000 --- a/src/core/runtime/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './docus' -export * from './api/RemoteQueryBuilder' -export * from './api/QueryBuilder' -export * from './utils' diff --git a/src/core/runtime/utils.ts b/src/core/runtime/utils.ts deleted file mode 100644 index 2bab5d206..000000000 --- a/src/core/runtime/utils.ts +++ /dev/null @@ -1,110 +0,0 @@ -/** - * The map between html tags and equivalent tags in Docus - * - * !important: The second item in the tags list should be the prose component - */ -export const TAGS_MAP = { - h1: ['h1', 'prose-h1'], - h2: ['h2', 'prose-h2'], - h3: ['h3', 'prose-h3'], - h4: ['h4', 'prose-h4'], - h5: ['h5', 'prose-h5'], - h6: ['h6', 'prose-h6'], - hr: ['hr', 'prose-hr'], - p: ['p', 'prose-paragraph'], - ul: ['ul', 'prose-ul'], - ol: ['ol', 'prose-ol'], - blockquote: ['blockquote', 'prose-blockquote'], - img: ['img', 'prose-img'], - a: ['a', 'prose-a'], - code: ['code', 'prose-code-inline'] -} - -export const expandTags = (_tags: string[]) => _tags.flatMap(t => TAGS_MAP[t]) - -/** - * List of text nodes - */ -export const TEXT_TAGS = expandTags(['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'li']) - -/** - * Check virtual node's tag - * @param vnode Virtuel node from Vue virtual DOM - * @param tag tag name - * @returns `true` it the virtual node match the tag - */ -export function isTag(vnode: any, tag: string): boolean { - return vnode?.tag === tag || vnode?.componentOptions?.tag === tag || vnode?.asyncMeta?.tag === tag -} - -/** - * Find children of a virtual node - * @param vnode Virtuel node from Vue virtual DOM - * @returns Children of given node - */ -export function nodeChildren(vnode) { - return vnode.children || vnode?.componentOptions?.children || vnode?.asyncMeta?.children -} - -/** - * Calculate text content of a virtual node - * @param vnode Virtuel node from Vue virtual DOM - * @returns text content of given node - */ -export function nodeTextContent(vnode: any) { - // Return empty string is vnode is falsy - if (!vnode) return '' - - if (Array.isArray(vnode)) { - return vnode.map(nodeTextContent).join('') - } - - // Check for text node - if (vnode.text) { - return vnode.text - } - - // Walk through node children - const children = nodeChildren(vnode) - if (Array.isArray(children)) { - return children.map(nodeTextContent).join('') - } - - // Return empty string for non-text nodes without any children - return '' -} - -/** - * Unwrap tags within a virtual node - * @param vnode Virtuel node from Vue virtual DOM - * @param tags list of tags to unwrap - * @returns - */ -export function unwrap(vnode: any, tags = ['p']) { - if (Array.isArray(vnode)) { - return vnode.flatMap(node => unwrap(node, tags)) - } - tags = expandTags(tags) - let result = vnode - - // unwrapp children - if (tags.some(tag => isTag(vnode, tag))) { - result = nodeChildren(vnode) || vnode - if (TEXT_TAGS.some(tag => isTag(vnode, tag))) { - result = [result] - } - } - - return result -} - -export function flatUnwrap(vnodes: any[] | any, tags = ['p']) { - return ( - (Array.isArray(vnodes) ? vnodes : [vnodes]) - .flatMap(vnode => unwrap(vnode, tags)) - // second step unwrap for inner tags like li - .flatMap(vnode => unwrap(vnode, tags)) - // trim new lines - .filter(vnode => !vnode.text || !!vnode.text.trim()) - ) -} diff --git a/src/core/server.ts b/src/core/server.ts deleted file mode 100644 index 9a38872d4..000000000 --- a/src/core/server.ts +++ /dev/null @@ -1,67 +0,0 @@ -import WS from 'ws' -import { createApp, useBody } from 'h3' -import { createStorageServer } from 'unstorage/server' -import { useDB } from './database' -import { useHooks } from './' - -export const createServerMiddleware = ({ base, storage }) => { - const unstorageHandle = createStorageServer(storage).handle - const app = createApp() - const ws = useWebSocket({ base }) - - app.useAsync(async (req, res) => { - if (req.url === '/ws') { - return ws.serve(req) - } - - if (req.method === 'POST') { - const { find } = useDB() - const url = req.url! - const body = await useBody(req) - const result = await find(url, body || {}) - - return JSON.stringify(result) - } - - return unstorageHandle(req, res) - }) - - return { - path: `/${base}`, - handler: app - } -} - -function useWebSocket({ base }) { - const wss = new WS.Server({ noServer: true }) - const { hook } = useHooks() - - hook('docus:storage:updated', ({ event, key }) => { - broadcast({ event, key }) - }) - - hook('upgrade', (req, socket, head) => { - if (req.url === `/${base}/ws`) { - serve(req, socket, head) - } - }) - - const serve = (req, socket = req.socket, head = '') => - wss.handleUpgrade(req, socket, head, client => wss.emit('connection', client, req)) - - const broadcast = data => { - data = JSON.stringify(data) - - for (const client of wss.clients) { - try { - client.send(data) - } catch (err) { - /* Ignore error (if client not ready to receive event) */ - } - } - } - return { - serve, - broadcast - } -} diff --git a/src/core/storage/driver.ts b/src/core/storage/driver.ts deleted file mode 100644 index 0e6ce0379..000000000 --- a/src/core/storage/driver.ts +++ /dev/null @@ -1,245 +0,0 @@ -import { join } from 'path' -import { promises as fsPromises } from 'fs' -import defu from 'defu' -import { defineDriver, Driver } from 'unstorage' -import fsDriver from 'unstorage/drivers/fs' -import { DocusDocument, DriverOptions } from '../../types' -import { useDB } from '../database' -import { useHooks } from '../hooks' -import { useParser } from '../parser' -import { logger } from '../utils' - -export interface DocusDriver extends Driver { - init(): Promise -} - -/** - * Determine whether it is the index file or not - * - * @param path relative to full path of the file - * @returns - */ -const isIndex = path => path.endsWith('index.md') - -/** - * Removes the index file name and returns directory path - * - * @param path relative to full path of the file - * @returns - */ -const removeIndex = path => path.replace(/\/index.md$/, '') - -/** - * Sort keys and put index files at first - * - * @param keys array of files - * @returns - */ -function sortItemKeys(keys: string[]) { - return [...keys].sort((a, b) => { - const isA = isIndex(a) - const isB = isIndex(b) - if (isA && isB) return a.length - b.length - if (isB) return 1 - if (isA) return -1 - return 0 - }) -} - -export const docusDriver = defineDriver((options: DriverOptions) => { - // force ignore node_modules and .git and files with `.` prefix - if (options.ignore) { - options.ignore.push('**/node_modules/**', '**/.git/**', join(options.base, '**/.**')) - } - - const { insert, items } = useDB() - const { callHook } = useHooks() - const fs = fsDriver(options) - - const parser = useParser() - - // validate key based on its extension - const isValidKey = (key: string) => parser.extensions().some(ext => key.endsWith(ext)) - - /** - * parse specific document and insert parsed data into database - * - * @param key document file key - * @param content documnet conent - * @returns parsed object - */ - const parseAndInsert = async (key, content) => { - const document = await parser.parse(key, content) - - if (document.extension === '.md') { - const stats = await fsPromises.stat(join(options.base, document.path + document.extension)) - document.createdAt = stats.birthtime - document.updatedAt = stats.mtime - } - - // Keep track of original path of the source file in file system - document.source = key - - // Unify key format - document.key = key - - // Enrich document layout based on parents data - const parents = (await getItemParents(key)).reverse() - document.layout = defu(document.layout, ...parents.map(p => p.layout)) - - /** - * Find nearest exclusive parent - * This document will inherit features from his parents - * Also parent will be used to group up children in bottom navigation (prev/next page) - */ - if (document.navigation !== false) { - const exclusiveParent = parents.find(p => p.navigation && p.navigation.exclusive) - if (exclusiveParent) { - document.navigation = document.navigation || {} - // Store nearest parent path - document.navigation.parent = exclusiveParent.path - } - } - - // call beforeInsert Hook - await callHook('docus:storage:beforeInsert', document) - - // use prefix in document path - document.path = `/${options.mountPoint}` + document.path - - return insert(document) - } - - /** - * retrive parent content of `key` - * @param key content key - * @returns list of parent contents - */ - function getItemParents(key: string): Promise { - const parts = removeIndex(key).split('/') - const tasks = parts.reduce((parents, _part, index) => { - const path = parts.slice(0, parts.length - 1 - index).join('/') - const parentKey = path + '/index.md' - if (path && hasItem(parentKey)) { - parents.unshift(getItem(parentKey)) - } - return parents - }, []) - - return Promise.all(tasks) - } - - // find item children and re-index - async function revalidateChildren(key: string): Promise { - const prefix = removeIndex(key) - const docs = items._data.filter(doc => doc.key.startsWith(prefix) && doc.key !== key) - - const tasks = docs.map(doc => parseAndInsert(doc.key, doc.text)) - - await Promise.all(tasks) - } - - // retrive contents list - const getKeys = async () => { - let keys = await fs.getKeys() - - // filter valid keys - keys = keys.filter(isValidKey) - - return keys - } - - const hasItem = key => fs.hasItem(key) - - const dispose = () => fs.dispose() - - const clear = () => fs.clear() - - // Retrive and item from database - const getItem = async key => { - let item = await items.findOne({ key }) - - if (!item) { - const content = await fs.getItem(key) - item = await parseAndInsert(key, content) - } - - return item - } - - // Insert/Update an item - const setItem = async (key, value) => { - if (await fs.hasItem(key)) { - await fs.setItem(key, value) - } - - await parseAndInsert(key, value) - } - - // remove single item from directory and database - const removeItem = async key => { - await items.removeWhere(doc => doc.key === key) - return fs.removeItem(key) - } - - // Read contents and initialize database - const init = async () => { - const start = Date.now() - const end = () => Date.now() - start - // ensure directory exists - if (!fs.hasItem('')) { - return - } - - // fetch content keys - let keys = await getKeys() - - // sort keys to parse index files before others - keys = sortItemKeys(keys) - const total = keys.length - - while (keys.length) { - await Promise.all(keys.splice(0, 8).map(key => fs.getItem(key).then(content => parseAndInsert(key, content)))) - } - logger.info(`${total} files processed in ${end()}ms`) - } - - // Watch files and revalidate data - const watch = callback => { - return fs.watch(async (event, key) => { - // ignore invalid extensions - if (!isValidKey(key)) return - - if (event === 'update') { - const content = await fs.getItem(key) - - await parseAndInsert(key, content) - } - - // remove item from database - if (event === 'remove') { - await removeItem(key) - } - - // Revalidate childrent of content because parent has changed - // NOTE: We need to improve this condition, only revalidate children when parental front-matter data changes - if (isIndex(key)) { - await revalidateChildren(key) - } - callHook('docus:storage:updated', { event, key }) - callback(event, key) - }) - } - - return { - hasItem, - getItem, - setItem, - removeItem, - getKeys, - clear, - dispose, - init, - watch - } -}) diff --git a/src/core/storage/ignore.ts b/src/core/storage/ignore.ts deleted file mode 100644 index 5b621fb14..000000000 --- a/src/core/storage/ignore.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { resolve } from 'path' -import { promises as fsPromises } from 'fs' - -export async function useNuxtIgnoreList(nuxt: any): Promise { - const ignore = nuxt.options.ignore || [] - const ignoreFile = resolve(nuxt.options.rootDir, '.nuxtignore') - const ignoreContent = await fsPromises.readFile(ignoreFile, { encoding: 'utf-8' }).catch(() => '') - if (ignoreContent) { - ignore.push(...ignoreContent.split('\n').filter(Boolean)) - } - return ignore -} diff --git a/src/core/storage/index.ts b/src/core/storage/index.ts deleted file mode 100644 index 6fbcd3dbd..000000000 --- a/src/core/storage/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './driver' -export * from './ignore' -export * from './storage' diff --git a/src/core/storage/storage.ts b/src/core/storage/storage.ts deleted file mode 100644 index 7e7c72655..000000000 --- a/src/core/storage/storage.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { createStorage, Storage } from 'unstorage' -import { StorageOptions } from '../../types' -import { logger } from '..' -import { docusDriver, DocusDriver } from './driver' - -let _storage: Storage -let drivers: DocusDriver[] -export function initStorage(options: StorageOptions) { - drivers = [] - _storage = createStorage() - - if (!options?.drivers) { - logger.warn('No driver specified for storage') - } else { - drivers = options.drivers.map(options => { - // Initialize driver - const driver = docusDriver(options) as DocusDriver - - _storage.mount(options.mountPoint, driver) - - return driver - }) - } - - return { - storage: _storage, - drivers, - lazyIndex: () => Promise.all(drivers.map(d => d.init())) - } -} - -export async function destroyStorage() { - await _storage.dispose() - _storage = null - drivers = null -} - -export function useStorage() { - return { - storage: _storage, - drivers - } -} diff --git a/src/core/utils/document.ts b/src/core/utils/document.ts deleted file mode 100644 index 601c8c367..000000000 --- a/src/core/utils/document.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { withoutTrailingSlash } from 'ufo' -import { DocusDocument } from '../../types' - -export function generatePosition(path: string, document: DocusDocument): string { - const position = path - .split('/') - .filter(Boolean) - .map(part => { - const match = part.match(/^(\d+)\./) - if (match) { - return padLeft(match[1], 4) - } - return document.position ? padLeft(document.position, 4) : '9999' // Parts without a position are going down to the bottom - }) - .join('') - return padRight(position, 12) -} - -/** - * Clean up special keywords from path part - */ -export function generateSlug(name: string): string { - return ( - name - /** - * Remove hidden keyword - */ - .replace(/^_/, '') - /** - * Remove numbering - */ - .replace(/(\d+\.)?(.*)/, '$2') - /** - * remove index keyword - */ - .replace(/^index/, '') - /** - * remove draft keyword - */ - .replace(/\.draft/, '') - ) -} - -export function generateTo(path: string): string { - return withoutTrailingSlash(path.split('/').map(generateSlug).join('/')) -} - -export function isDraft(path: string): boolean { - return !!path.match(/(\.draft)$/) -} - -/** - * Files or directories that starts with underscore `_` will mark as hidden - * @param path content path - * @returns true if the is part in the path that starts with `_` - */ -export function isHidden(path: string): boolean { - return path.split('/').some(part => part.match(/^_.*/)) -} - -function padLeft(value: string, length: number): string { - return ('0'.repeat(length) + value).substr(String(value).length) -} - -function padRight(value: string, length: number): string { - return (value + '0'.repeat(length)).substr(0, length) -} diff --git a/src/core/utils/index.ts b/src/core/utils/index.ts deleted file mode 100644 index 5a6177e6c..000000000 --- a/src/core/utils/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './log' -export * from './path' diff --git a/src/core/utils/log.ts b/src/core/utils/log.ts deleted file mode 100644 index 28be5d0b5..000000000 --- a/src/core/utils/log.ts +++ /dev/null @@ -1,3 +0,0 @@ -import consola from 'consola' - -export const logger = consola.withScope('@docus') diff --git a/src/core/utils/navigation.ts b/src/core/utils/navigation.ts deleted file mode 100644 index d3dacb00e..000000000 --- a/src/core/utils/navigation.ts +++ /dev/null @@ -1,175 +0,0 @@ -import { pascalCase } from 'scule' -import { withoutTrailingSlash } from 'ufo' -import { useDB } from '../database' -import { useStorage } from '../storage' -import { NavItem } from '../../types/core' - -/** - * Find a link from a vue-router to path - */ -const findLink = (links: NavItem[], to: string) => links.find(link => link.to === to) - -/** - * Transform a page slug into natural language title - */ -const slugToTitle = title => title && title.replace(/-/g, ' ').split(' ').map(pascalCase).join(' ') - -/** - * Get navigation link for a page - */ -const getPageLink = (page: any): NavItem => { - const slug = (page.slug || page.to).split('/').pop() - - const to = withoutTrailingSlash(page.to || `/${slug}`) - - const template = - typeof page.template === 'string' ? { self: page.template, nested: `${page.template}-post` } : page.template - - const item: NavItem = { - slug, - to, - page: !!page.dir, - children: [], - title: page.title || slugToTitle(to.split('/').pop()) || '', - ...page.navigation - } - - if (page.draft) { - item.draft = true - } - - if (page.icon) { - item.icon = page.icon - } - - if (template) { - item.template = template.nested - } - - // set `hidden = true` if navigation is disabled for the page - if (page.navigation === false) { - item.hidden = true - } - - return item -} - -/** - * Fetch and update navigation with latest changes - */ -export async function updateNavigation(nuxt) { - const defaultLocale = nuxt.options.i18n?.defaultLocale || 'en' - const { query } = useDB() - const { storage } = useStorage() - // Get fields - const fields = ['title', 'language', 'dir', 'navigation', 'slug', 'version', 'to', 'icon', 'description', 'template'] - const where: any = { - // Fetch all - // nav: { $ne: false } - } - if (nuxt.options.dev) { - fields.push('draft') - } else { - where.draft = false - } - - // Query pages - const pages = await query('/pages', { deep: true }).where(where).only(fields).sortBy('position', 'asc').fetch() - - const languages: { [key: string]: any[] } = pages.reduce((map, page) => { - const language = page.language || defaultLocale - map[language] = map[language] || [] - map[language].push(page) - return map - }, {}) - - const navigationArray = Object.entries(languages).map(([language, pages]) => { - const body = createNav(pages) - - return [language, body] - }) - - const navigation = Object.fromEntries(navigationArray) - - await nuxt.callHook('docus:navigation', navigation) - - const tasks = Object.entries(navigation).map(async ([language, body]) => { - await storage.setItem(`data:docus:navigation:${language}.json`, { - body - }) - }) - - await Promise.all(tasks) -} - -/** - * Create NavItem array to be consumed from runtime plugin. - */ -function createNav(pages: any[]) { - const links: NavItem[] = [] - - // Add each page to navigation - pages.forEach((_page: any) => { - if (_page.slug.startsWith('_')) { - return - } - - const $page = getPageLink(_page) - - // To: '/docs/guide/hello.md' -> dirs: ['docs', 'guide'] - let dirs = $page.to.split('/').filter(_ => _) - - // Remove the file part (except if index.md) - if (_page.slug !== '') dirs = dirs.slice(0, -1) - - if (!dirs.length) { - return links.push($page) - } - - let currentLinks = links - let lastLink: NavItem - - dirs.forEach((dir: string, index: number) => { - const to = '/' + dirs.slice(0, index + 1).join('/') - - // If children has been disabled (nav.children = false) - if (!currentLinks) return - - let link: NavItem = findLink(currentLinks, to) - - if (!link) { - link = getPageLink({ - slug: dir, - to, - shadow: true - }) - - currentLinks.push(link) - } - currentLinks = link.children - lastLink = link - }) - - if (!currentLinks) return - - // If index page, merge also with parent for metadata - if (!_page.slug) { - if (dirs.length === 1) { - $page.exclusive = $page.exclusive || false - } - - mergeLinks(lastLink, $page) - } else { - // Push page - currentLinks.push($page) - } - }) - - return links -} - -function mergeLinks(to: NavItem, from: NavItem) { - Object.assign(to, from, { - children: [...to.children, ...from.children] - }) -} diff --git a/src/core/utils/path.ts b/src/core/utils/path.ts deleted file mode 100644 index fb593b8e7..000000000 --- a/src/core/utils/path.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { resolve } from 'path' -import jiti from 'jiti' -import gracefulFs from 'graceful-fs' -import { logger } from './log' - -const fs = gracefulFs.promises - -export const r = (...args: string[]) => resolve(__dirname, '../..', ...args) - -const _require = jiti(__filename) - -export function tryRequire(name: string) { - try { - const _plugin = _require(require.resolve(name)) - - return _plugin.default || _plugin - } catch (e) { - logger.error(e.toString()) - return null - } -} - -export function readFile(path: string) { - return fs.readFile(path, { encoding: 'utf8' }) -} - -export async function exists(path: string) { - const pathExists = await fs.stat(path).catch(() => false) - - return !!pathExists -} diff --git a/src/defaultTheme/components/atoms/Alert.vue b/src/defaultTheme/components/atoms/Alert.vue deleted file mode 100644 index 2bab4afca..000000000 --- a/src/defaultTheme/components/atoms/Alert.vue +++ /dev/null @@ -1,113 +0,0 @@ - - - - - diff --git a/src/defaultTheme/components/atoms/Badge.vue b/src/defaultTheme/components/atoms/Badge.vue deleted file mode 100644 index d942ea4dc..000000000 --- a/src/defaultTheme/components/atoms/Badge.vue +++ /dev/null @@ -1,19 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/ButtonLink.vue b/src/defaultTheme/components/atoms/ButtonLink.vue deleted file mode 100644 index 699a2797b..000000000 --- a/src/defaultTheme/components/atoms/ButtonLink.vue +++ /dev/null @@ -1,46 +0,0 @@ - - - - - diff --git a/src/defaultTheme/components/atoms/Card.vue b/src/defaultTheme/components/atoms/Card.vue deleted file mode 100644 index 35045ac7a..000000000 --- a/src/defaultTheme/components/atoms/Card.vue +++ /dev/null @@ -1,53 +0,0 @@ - - - diff --git a/src/defaultTheme/components/atoms/CodeBlock.vue b/src/defaultTheme/components/atoms/CodeBlock.vue deleted file mode 100644 index 5fb7042de..000000000 --- a/src/defaultTheme/components/atoms/CodeBlock.vue +++ /dev/null @@ -1,50 +0,0 @@ - - - - - diff --git a/src/defaultTheme/components/atoms/CodeGroup.vue b/src/defaultTheme/components/atoms/CodeGroup.vue deleted file mode 100644 index e9b236b7f..000000000 --- a/src/defaultTheme/components/atoms/CodeGroup.vue +++ /dev/null @@ -1,120 +0,0 @@ - - - - - diff --git a/src/defaultTheme/components/atoms/ColorSwitcher.vue b/src/defaultTheme/components/atoms/ColorSwitcher.vue deleted file mode 100644 index 8c16bfc04..000000000 --- a/src/defaultTheme/components/atoms/ColorSwitcher.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - diff --git a/src/defaultTheme/components/atoms/CopyButton.vue b/src/defaultTheme/components/atoms/CopyButton.vue deleted file mode 100644 index c94c50439..000000000 --- a/src/defaultTheme/components/atoms/CopyButton.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - diff --git a/src/defaultTheme/components/atoms/Dropdown.vue b/src/defaultTheme/components/atoms/Dropdown.vue deleted file mode 100644 index 90cd73c53..000000000 --- a/src/defaultTheme/components/atoms/Dropdown.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - diff --git a/src/defaultTheme/components/atoms/HeaderLogo.vue b/src/defaultTheme/components/atoms/HeaderLogo.vue deleted file mode 100644 index f3db87bb8..000000000 --- a/src/defaultTheme/components/atoms/HeaderLogo.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - diff --git a/src/defaultTheme/components/atoms/InfoLabel.vue b/src/defaultTheme/components/atoms/InfoLabel.vue deleted file mode 100644 index 87f6ce364..000000000 --- a/src/defaultTheme/components/atoms/InfoLabel.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - diff --git a/src/defaultTheme/components/atoms/InjectComponent.vue b/src/defaultTheme/components/atoms/InjectComponent.vue deleted file mode 100644 index 500684a10..000000000 --- a/src/defaultTheme/components/atoms/InjectComponent.vue +++ /dev/null @@ -1,25 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/InjectContent.vue b/src/defaultTheme/components/atoms/InjectContent.vue deleted file mode 100644 index 46c04fd29..000000000 --- a/src/defaultTheme/components/atoms/InjectContent.vue +++ /dev/null @@ -1,24 +0,0 @@ - - - diff --git a/src/defaultTheme/components/atoms/LangSwitcher.vue b/src/defaultTheme/components/atoms/LangSwitcher.vue deleted file mode 100644 index 5996427a1..000000000 --- a/src/defaultTheme/components/atoms/LangSwitcher.vue +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/Link.vue b/src/defaultTheme/components/atoms/Link.vue deleted file mode 100644 index cdbb17bd4..000000000 --- a/src/defaultTheme/components/atoms/Link.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - diff --git a/src/defaultTheme/components/atoms/List.vue b/src/defaultTheme/components/atoms/List.vue deleted file mode 100644 index a1bb66e9b..000000000 --- a/src/defaultTheme/components/atoms/List.vue +++ /dev/null @@ -1,109 +0,0 @@ - - - - - diff --git a/src/defaultTheme/components/atoms/Logo.vue b/src/defaultTheme/components/atoms/Logo.vue deleted file mode 100644 index 1450aefb8..000000000 --- a/src/defaultTheme/components/atoms/Logo.vue +++ /dev/null @@ -1,36 +0,0 @@ - - - diff --git a/src/defaultTheme/components/atoms/Sandbox.vue b/src/defaultTheme/components/atoms/Sandbox.vue deleted file mode 100644 index ebba8fc1a..000000000 --- a/src/defaultTheme/components/atoms/Sandbox.vue +++ /dev/null @@ -1,132 +0,0 @@ - - - - - diff --git a/src/defaultTheme/components/atoms/icons/BuiltWithNuxtDark.vue b/src/defaultTheme/components/atoms/icons/BuiltWithNuxtDark.vue deleted file mode 100644 index efeae5496..000000000 --- a/src/defaultTheme/components/atoms/icons/BuiltWithNuxtDark.vue +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/BuiltWithNuxtLight.vue b/src/defaultTheme/components/atoms/icons/BuiltWithNuxtLight.vue deleted file mode 100644 index 9a08c6cb2..000000000 --- a/src/defaultTheme/components/atoms/icons/BuiltWithNuxtLight.vue +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconAlgolia.vue b/src/defaultTheme/components/atoms/icons/IconAlgolia.vue deleted file mode 100644 index 5b2f6f515..000000000 --- a/src/defaultTheme/components/atoms/icons/IconAlgolia.vue +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconArrowLeft.vue b/src/defaultTheme/components/atoms/icons/IconArrowLeft.vue deleted file mode 100644 index 4fc0dd9f3..000000000 --- a/src/defaultTheme/components/atoms/icons/IconArrowLeft.vue +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconArrowRight.vue b/src/defaultTheme/components/atoms/icons/IconArrowRight.vue deleted file mode 100644 index 75d4c5254..000000000 --- a/src/defaultTheme/components/atoms/icons/IconArrowRight.vue +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconBadgeCheck.vue b/src/defaultTheme/components/atoms/icons/IconBadgeCheck.vue deleted file mode 100644 index df93fa2f9..000000000 --- a/src/defaultTheme/components/atoms/icons/IconBadgeCheck.vue +++ /dev/null @@ -1,14 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconCheck.vue b/src/defaultTheme/components/atoms/icons/IconCheck.vue deleted file mode 100644 index 5268b5cfa..000000000 --- a/src/defaultTheme/components/atoms/icons/IconCheck.vue +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconCheckCircle.vue b/src/defaultTheme/components/atoms/icons/IconCheckCircle.vue deleted file mode 100644 index 76233ee9e..000000000 --- a/src/defaultTheme/components/atoms/icons/IconCheckCircle.vue +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconChevronRight.vue b/src/defaultTheme/components/atoms/icons/IconChevronRight.vue deleted file mode 100644 index 6a259b679..000000000 --- a/src/defaultTheme/components/atoms/icons/IconChevronRight.vue +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconClipboardCheck.vue b/src/defaultTheme/components/atoms/icons/IconClipboardCheck.vue deleted file mode 100644 index 61a8b0f85..000000000 --- a/src/defaultTheme/components/atoms/icons/IconClipboardCheck.vue +++ /dev/null @@ -1,14 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconClipboardCopy.vue b/src/defaultTheme/components/atoms/icons/IconClipboardCopy.vue deleted file mode 100644 index 979b0192c..000000000 --- a/src/defaultTheme/components/atoms/icons/IconClipboardCopy.vue +++ /dev/null @@ -1,14 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconCodeSandbox.vue b/src/defaultTheme/components/atoms/icons/IconCodeSandbox.vue deleted file mode 100644 index 4ce1cf11b..000000000 --- a/src/defaultTheme/components/atoms/icons/IconCodeSandbox.vue +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconCopy.vue b/src/defaultTheme/components/atoms/icons/IconCopy.vue deleted file mode 100644 index faf6efea9..000000000 --- a/src/defaultTheme/components/atoms/icons/IconCopy.vue +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconEdit.vue b/src/defaultTheme/components/atoms/icons/IconEdit.vue deleted file mode 100644 index e8fdc5afb..000000000 --- a/src/defaultTheme/components/atoms/icons/IconEdit.vue +++ /dev/null @@ -1,18 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconExclamationCircle.vue b/src/defaultTheme/components/atoms/icons/IconExclamationCircle.vue deleted file mode 100644 index 250331e1f..000000000 --- a/src/defaultTheme/components/atoms/icons/IconExclamationCircle.vue +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconExternalLink.vue b/src/defaultTheme/components/atoms/icons/IconExternalLink.vue deleted file mode 100644 index 9d73ca3fa..000000000 --- a/src/defaultTheme/components/atoms/icons/IconExternalLink.vue +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconGitHub.vue b/src/defaultTheme/components/atoms/icons/IconGitHub.vue deleted file mode 100644 index 949cd52dc..000000000 --- a/src/defaultTheme/components/atoms/icons/IconGitHub.vue +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconHeart.vue b/src/defaultTheme/components/atoms/icons/IconHeart.vue deleted file mode 100644 index 849f002ed..000000000 --- a/src/defaultTheme/components/atoms/icons/IconHeart.vue +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconInformationCircle.vue b/src/defaultTheme/components/atoms/icons/IconInformationCircle.vue deleted file mode 100644 index 152f9af69..000000000 --- a/src/defaultTheme/components/atoms/icons/IconInformationCircle.vue +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconMenu.vue b/src/defaultTheme/components/atoms/icons/IconMenu.vue deleted file mode 100644 index ee22fa96d..000000000 --- a/src/defaultTheme/components/atoms/icons/IconMenu.vue +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconMenuAlt.vue b/src/defaultTheme/components/atoms/icons/IconMenuAlt.vue deleted file mode 100644 index e6dd494e8..000000000 --- a/src/defaultTheme/components/atoms/icons/IconMenuAlt.vue +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconMoon.vue b/src/defaultTheme/components/atoms/icons/IconMoon.vue deleted file mode 100644 index 6c93a3dec..000000000 --- a/src/defaultTheme/components/atoms/icons/IconMoon.vue +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconNuxt.vue b/src/defaultTheme/components/atoms/icons/IconNuxt.vue deleted file mode 100644 index 2521afe15..000000000 --- a/src/defaultTheme/components/atoms/icons/IconNuxt.vue +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconNuxtLabs.vue b/src/defaultTheme/components/atoms/icons/IconNuxtLabs.vue deleted file mode 100644 index 4724e69db..000000000 --- a/src/defaultTheme/components/atoms/icons/IconNuxtLabs.vue +++ /dev/null @@ -1,21 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconSearch.vue b/src/defaultTheme/components/atoms/icons/IconSearch.vue deleted file mode 100644 index e7fc50057..000000000 --- a/src/defaultTheme/components/atoms/icons/IconSearch.vue +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconSun.vue b/src/defaultTheme/components/atoms/icons/IconSun.vue deleted file mode 100644 index 6583ef039..000000000 --- a/src/defaultTheme/components/atoms/icons/IconSun.vue +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconTranslate.vue b/src/defaultTheme/components/atoms/icons/IconTranslate.vue deleted file mode 100644 index 9a7e63fa3..000000000 --- a/src/defaultTheme/components/atoms/icons/IconTranslate.vue +++ /dev/null @@ -1,14 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconTwitter.vue b/src/defaultTheme/components/atoms/icons/IconTwitter.vue deleted file mode 100644 index 847ea426a..000000000 --- a/src/defaultTheme/components/atoms/icons/IconTwitter.vue +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconVite.vue b/src/defaultTheme/components/atoms/icons/IconVite.vue deleted file mode 100644 index 3d3d48443..000000000 --- a/src/defaultTheme/components/atoms/icons/IconVite.vue +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconVue.vue b/src/defaultTheme/components/atoms/icons/IconVue.vue deleted file mode 100644 index bd13c4ea6..000000000 --- a/src/defaultTheme/components/atoms/icons/IconVue.vue +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconWindi.vue b/src/defaultTheme/components/atoms/icons/IconWindi.vue deleted file mode 100644 index 114bc8cb1..000000000 --- a/src/defaultTheme/components/atoms/icons/IconWindi.vue +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconX.vue b/src/defaultTheme/components/atoms/icons/IconX.vue deleted file mode 100644 index cbf73f278..000000000 --- a/src/defaultTheme/components/atoms/icons/IconX.vue +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/icons/IconXCircle.vue b/src/defaultTheme/components/atoms/icons/IconXCircle.vue deleted file mode 100644 index a38dd8d8a..000000000 --- a/src/defaultTheme/components/atoms/icons/IconXCircle.vue +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/src/defaultTheme/components/atoms/prose/ProseA.vue b/src/defaultTheme/components/atoms/prose/ProseA.vue deleted file mode 100644 index b09fdee45..000000000 --- a/src/defaultTheme/components/atoms/prose/ProseA.vue +++ /dev/null @@ -1,69 +0,0 @@ - - - - - diff --git a/src/defaultTheme/components/atoms/prose/ProseCode.vue b/src/defaultTheme/components/atoms/prose/ProseCode.vue deleted file mode 100644 index 9b698a562..000000000 --- a/src/defaultTheme/components/atoms/prose/ProseCode.vue +++ /dev/null @@ -1,34 +0,0 @@ - - - diff --git a/src/defaultTheme/components/atoms/prose/ProseCodeInline.vue b/src/defaultTheme/components/atoms/prose/ProseCodeInline.vue deleted file mode 100644 index 3b5393272..000000000 --- a/src/defaultTheme/components/atoms/prose/ProseCodeInline.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - diff --git a/src/defaultTheme/components/atoms/prose/ProseH1.vue b/src/defaultTheme/components/atoms/prose/ProseH1.vue deleted file mode 100644 index afaa126ea..000000000 --- a/src/defaultTheme/components/atoms/prose/ProseH1.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - diff --git a/src/defaultTheme/components/atoms/prose/ProseH2.vue b/src/defaultTheme/components/atoms/prose/ProseH2.vue deleted file mode 100644 index 51ac8bdbb..000000000 --- a/src/defaultTheme/components/atoms/prose/ProseH2.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - diff --git a/src/defaultTheme/components/atoms/prose/ProseH3.vue b/src/defaultTheme/components/atoms/prose/ProseH3.vue deleted file mode 100644 index d95372dad..000000000 --- a/src/defaultTheme/components/atoms/prose/ProseH3.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - diff --git a/src/defaultTheme/components/atoms/prose/ProseH4.vue b/src/defaultTheme/components/atoms/prose/ProseH4.vue deleted file mode 100644 index 12d2b41fd..000000000 --- a/src/defaultTheme/components/atoms/prose/ProseH4.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - diff --git a/src/defaultTheme/components/atoms/prose/ProseImg.vue b/src/defaultTheme/components/atoms/prose/ProseImg.vue deleted file mode 100644 index 5fb50e68d..000000000 --- a/src/defaultTheme/components/atoms/prose/ProseImg.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - - - diff --git a/src/defaultTheme/components/atoms/prose/ProseLi.vue b/src/defaultTheme/components/atoms/prose/ProseLi.vue deleted file mode 100644 index a98ead3af..000000000 --- a/src/defaultTheme/components/atoms/prose/ProseLi.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - diff --git a/src/defaultTheme/components/molecules/AlgoliaSearchBox.vue b/src/defaultTheme/components/molecules/AlgoliaSearchBox.vue deleted file mode 100644 index cdcf0ec8e..000000000 --- a/src/defaultTheme/components/molecules/AlgoliaSearchBox.vue +++ /dev/null @@ -1,215 +0,0 @@ - - - - - diff --git a/src/defaultTheme/components/molecules/AsideNavigation.vue b/src/defaultTheme/components/molecules/AsideNavigation.vue deleted file mode 100644 index 995da6bb3..000000000 --- a/src/defaultTheme/components/molecules/AsideNavigation.vue +++ /dev/null @@ -1,135 +0,0 @@ - - - diff --git a/src/defaultTheme/components/molecules/AsideNavigationItem.vue b/src/defaultTheme/components/molecules/AsideNavigationItem.vue deleted file mode 100644 index 98c73f8d8..000000000 --- a/src/defaultTheme/components/molecules/AsideNavigationItem.vue +++ /dev/null @@ -1,100 +0,0 @@ - - - diff --git a/src/defaultTheme/components/molecules/CardGrid.vue b/src/defaultTheme/components/molecules/CardGrid.vue deleted file mode 100644 index baacf9f86..000000000 --- a/src/defaultTheme/components/molecules/CardGrid.vue +++ /dev/null @@ -1,36 +0,0 @@ - - - diff --git a/src/defaultTheme/components/molecules/NavigationButton.vue b/src/defaultTheme/components/molecules/NavigationButton.vue deleted file mode 100644 index 7b2a7f081..000000000 --- a/src/defaultTheme/components/molecules/NavigationButton.vue +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/src/defaultTheme/components/molecules/PoweredByDocus.vue b/src/defaultTheme/components/molecules/PoweredByDocus.vue deleted file mode 100644 index 419b52b66..000000000 --- a/src/defaultTheme/components/molecules/PoweredByDocus.vue +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/src/defaultTheme/components/molecules/SocialIcons.vue b/src/defaultTheme/components/molecules/SocialIcons.vue deleted file mode 100644 index 41bb47a68..000000000 --- a/src/defaultTheme/components/molecules/SocialIcons.vue +++ /dev/null @@ -1,54 +0,0 @@ - - - diff --git a/src/defaultTheme/components/molecules/TabsHeader.vue b/src/defaultTheme/components/molecules/TabsHeader.vue deleted file mode 100644 index d7f3a7c1f..000000000 --- a/src/defaultTheme/components/molecules/TabsHeader.vue +++ /dev/null @@ -1,76 +0,0 @@ - - - - - diff --git a/src/defaultTheme/components/organisms/BlockFeatures.vue b/src/defaultTheme/components/organisms/BlockFeatures.vue deleted file mode 100644 index 55783a5ae..000000000 --- a/src/defaultTheme/components/organisms/BlockFeatures.vue +++ /dev/null @@ -1,84 +0,0 @@ - - - diff --git a/src/defaultTheme/components/organisms/BlockHero.vue b/src/defaultTheme/components/organisms/BlockHero.vue deleted file mode 100644 index 29f1129bc..000000000 --- a/src/defaultTheme/components/organisms/BlockHero.vue +++ /dev/null @@ -1,93 +0,0 @@ - - - diff --git a/src/defaultTheme/components/organisms/PageContent.vue b/src/defaultTheme/components/organisms/PageContent.vue deleted file mode 100644 index 1cdfde2e9..000000000 --- a/src/defaultTheme/components/organisms/PageContent.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - diff --git a/src/defaultTheme/components/organisms/PreLaunchHero.vue b/src/defaultTheme/components/organisms/PreLaunchHero.vue deleted file mode 100644 index 229dda858..000000000 --- a/src/defaultTheme/components/organisms/PreLaunchHero.vue +++ /dev/null @@ -1,139 +0,0 @@ - - - diff --git a/src/defaultTheme/components/organisms/PricingBlock.vue b/src/defaultTheme/components/organisms/PricingBlock.vue deleted file mode 100644 index 0552dd4da..000000000 --- a/src/defaultTheme/components/organisms/PricingBlock.vue +++ /dev/null @@ -1,112 +0,0 @@ - - - diff --git a/src/defaultTheme/components/organisms/PricingGrid.vue b/src/defaultTheme/components/organisms/PricingGrid.vue deleted file mode 100644 index b0c7a8b67..000000000 --- a/src/defaultTheme/components/organisms/PricingGrid.vue +++ /dev/null @@ -1,131 +0,0 @@ - - - diff --git a/src/defaultTheme/components/organisms/Terminal.vue b/src/defaultTheme/components/organisms/Terminal.vue deleted file mode 100644 index c00619e20..000000000 --- a/src/defaultTheme/components/organisms/Terminal.vue +++ /dev/null @@ -1,64 +0,0 @@ - - - diff --git a/src/defaultTheme/components/organisms/app/AppAside.vue b/src/defaultTheme/components/organisms/app/AppAside.vue deleted file mode 100644 index 2d81e14f8..000000000 --- a/src/defaultTheme/components/organisms/app/AppAside.vue +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/src/defaultTheme/components/organisms/app/AppBanner.vue b/src/defaultTheme/components/organisms/app/AppBanner.vue deleted file mode 100644 index fb051623c..000000000 --- a/src/defaultTheme/components/organisms/app/AppBanner.vue +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/src/defaultTheme/components/organisms/app/AppFooter.vue b/src/defaultTheme/components/organisms/app/AppFooter.vue deleted file mode 100644 index c90a5a365..000000000 --- a/src/defaultTheme/components/organisms/app/AppFooter.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/src/defaultTheme/components/organisms/app/AppHeader.vue b/src/defaultTheme/components/organisms/app/AppHeader.vue deleted file mode 100644 index 9817c7769..000000000 --- a/src/defaultTheme/components/organisms/app/AppHeader.vue +++ /dev/null @@ -1,73 +0,0 @@ - - - diff --git a/src/defaultTheme/components/organisms/app/AppLayout.vue b/src/defaultTheme/components/organisms/app/AppLayout.vue deleted file mode 100644 index adcdeb0f4..000000000 --- a/src/defaultTheme/components/organisms/app/AppLayout.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - diff --git a/src/defaultTheme/components/organisms/app/AppPage.vue b/src/defaultTheme/components/organisms/app/AppPage.vue deleted file mode 100644 index cfdb68564..000000000 --- a/src/defaultTheme/components/organisms/app/AppPage.vue +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/src/defaultTheme/components/organisms/app/AppTemplate.vue b/src/defaultTheme/components/organisms/app/AppTemplate.vue deleted file mode 100644 index b5d5642db..000000000 --- a/src/defaultTheme/components/organisms/app/AppTemplate.vue +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/src/defaultTheme/components/organisms/blog/BlogpostCard.vue b/src/defaultTheme/components/organisms/blog/BlogpostCard.vue deleted file mode 100644 index 1a1fcef41..000000000 --- a/src/defaultTheme/components/organisms/blog/BlogpostCard.vue +++ /dev/null @@ -1,71 +0,0 @@ - - - diff --git a/src/defaultTheme/components/organisms/blog/BlogpostList.vue b/src/defaultTheme/components/organisms/blog/BlogpostList.vue deleted file mode 100644 index 48ff8359b..000000000 --- a/src/defaultTheme/components/organisms/blog/BlogpostList.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - diff --git a/src/defaultTheme/components/organisms/blog/BlogpostToc.vue b/src/defaultTheme/components/organisms/blog/BlogpostToc.vue deleted file mode 100644 index 76e227a4d..000000000 --- a/src/defaultTheme/components/organisms/blog/BlogpostToc.vue +++ /dev/null @@ -1,92 +0,0 @@ - - - diff --git a/src/defaultTheme/components/organisms/dev-slots/AsideBottom.vue b/src/defaultTheme/components/organisms/dev-slots/AsideBottom.vue deleted file mode 100644 index 4d728e19a..000000000 --- a/src/defaultTheme/components/organisms/dev-slots/AsideBottom.vue +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/src/defaultTheme/components/organisms/dev-slots/AsideTop.vue b/src/defaultTheme/components/organisms/dev-slots/AsideTop.vue deleted file mode 100644 index ced616907..000000000 --- a/src/defaultTheme/components/organisms/dev-slots/AsideTop.vue +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/src/defaultTheme/components/organisms/dev-slots/FooterBody.vue b/src/defaultTheme/components/organisms/dev-slots/FooterBody.vue deleted file mode 100644 index 6a5280b9b..000000000 --- a/src/defaultTheme/components/organisms/dev-slots/FooterBody.vue +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/src/defaultTheme/components/organisms/dev-slots/HeaderNavigation.vue b/src/defaultTheme/components/organisms/dev-slots/HeaderNavigation.vue deleted file mode 100644 index adec2d081..000000000 --- a/src/defaultTheme/components/organisms/dev-slots/HeaderNavigation.vue +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/src/defaultTheme/components/organisms/dev-slots/PageTocBottom.vue b/src/defaultTheme/components/organisms/dev-slots/PageTocBottom.vue deleted file mode 100644 index 33639ebf3..000000000 --- a/src/defaultTheme/components/organisms/dev-slots/PageTocBottom.vue +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/src/defaultTheme/components/organisms/dev-slots/PageTocTop.vue b/src/defaultTheme/components/organisms/dev-slots/PageTocTop.vue deleted file mode 100644 index 1f34a57c1..000000000 --- a/src/defaultTheme/components/organisms/dev-slots/PageTocTop.vue +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/src/defaultTheme/components/organisms/dev-slots/SlotBase.vue b/src/defaultTheme/components/organisms/dev-slots/SlotBase.vue deleted file mode 100644 index e1bff1d50..000000000 --- a/src/defaultTheme/components/organisms/dev-slots/SlotBase.vue +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/src/defaultTheme/components/organisms/page/EditOnGithub.vue b/src/defaultTheme/components/organisms/page/EditOnGithub.vue deleted file mode 100644 index 79811b7a3..000000000 --- a/src/defaultTheme/components/organisms/page/EditOnGithub.vue +++ /dev/null @@ -1,51 +0,0 @@ - - - diff --git a/src/defaultTheme/components/organisms/page/PageMobileToc.vue b/src/defaultTheme/components/organisms/page/PageMobileToc.vue deleted file mode 100644 index 83e7b0a7e..000000000 --- a/src/defaultTheme/components/organisms/page/PageMobileToc.vue +++ /dev/null @@ -1,84 +0,0 @@ - - - diff --git a/src/defaultTheme/components/organisms/page/PagePrevNext.vue b/src/defaultTheme/components/organisms/page/PagePrevNext.vue deleted file mode 100644 index d0d0ace84..000000000 --- a/src/defaultTheme/components/organisms/page/PagePrevNext.vue +++ /dev/null @@ -1,95 +0,0 @@ - - - diff --git a/src/defaultTheme/components/organisms/page/PageToc.vue b/src/defaultTheme/components/organisms/page/PageToc.vue deleted file mode 100644 index 654e5095c..000000000 --- a/src/defaultTheme/components/organisms/page/PageToc.vue +++ /dev/null @@ -1,76 +0,0 @@ - - - diff --git a/src/defaultTheme/components/organisms/page/PageTocList.vue b/src/defaultTheme/components/organisms/page/PageTocList.vue deleted file mode 100644 index 407ef6032..000000000 --- a/src/defaultTheme/components/organisms/page/PageTocList.vue +++ /dev/null @@ -1,73 +0,0 @@ - - - diff --git a/src/defaultTheme/components/organisms/slots/AsideBottom.vue b/src/defaultTheme/components/organisms/slots/AsideBottom.vue deleted file mode 100644 index e72e9f5bc..000000000 --- a/src/defaultTheme/components/organisms/slots/AsideBottom.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/src/defaultTheme/components/organisms/slots/AsideTop.vue b/src/defaultTheme/components/organisms/slots/AsideTop.vue deleted file mode 100644 index e72e9f5bc..000000000 --- a/src/defaultTheme/components/organisms/slots/AsideTop.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/src/defaultTheme/components/organisms/slots/FooterBody.vue b/src/defaultTheme/components/organisms/slots/FooterBody.vue deleted file mode 100644 index e72e9f5bc..000000000 --- a/src/defaultTheme/components/organisms/slots/FooterBody.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/src/defaultTheme/components/organisms/slots/HeaderNavigation.vue b/src/defaultTheme/components/organisms/slots/HeaderNavigation.vue deleted file mode 100644 index e72e9f5bc..000000000 --- a/src/defaultTheme/components/organisms/slots/HeaderNavigation.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/src/defaultTheme/components/organisms/slots/PageTocBottom.vue b/src/defaultTheme/components/organisms/slots/PageTocBottom.vue deleted file mode 100644 index e72e9f5bc..000000000 --- a/src/defaultTheme/components/organisms/slots/PageTocBottom.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/src/defaultTheme/components/organisms/slots/PageTocTop.vue b/src/defaultTheme/components/organisms/slots/PageTocTop.vue deleted file mode 100644 index e72e9f5bc..000000000 --- a/src/defaultTheme/components/organisms/slots/PageTocTop.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/src/defaultTheme/components/templates/Blog.vue b/src/defaultTheme/components/templates/Blog.vue deleted file mode 100644 index ae666ae3d..000000000 --- a/src/defaultTheme/components/templates/Blog.vue +++ /dev/null @@ -1,43 +0,0 @@ - - - diff --git a/src/defaultTheme/components/templates/BlogPost.vue b/src/defaultTheme/components/templates/BlogPost.vue deleted file mode 100644 index a4728a904..000000000 --- a/src/defaultTheme/components/templates/BlogPost.vue +++ /dev/null @@ -1,137 +0,0 @@ - - - diff --git a/src/defaultTheme/components/templates/Docs.vue b/src/defaultTheme/components/templates/Docs.vue deleted file mode 100644 index 291c60a34..000000000 --- a/src/defaultTheme/components/templates/Docs.vue +++ /dev/null @@ -1,106 +0,0 @@ - - - diff --git a/src/defaultTheme/components/templates/Error.vue b/src/defaultTheme/components/templates/Error.vue deleted file mode 100644 index e10091902..000000000 --- a/src/defaultTheme/components/templates/Error.vue +++ /dev/null @@ -1,28 +0,0 @@ - - - diff --git a/src/defaultTheme/components/templates/Marketing.vue b/src/defaultTheme/components/templates/Marketing.vue deleted file mode 100644 index 54cb76112..000000000 --- a/src/defaultTheme/components/templates/Marketing.vue +++ /dev/null @@ -1,18 +0,0 @@ - - - diff --git a/src/defaultTheme/components/templates/Page.vue b/src/defaultTheme/components/templates/Page.vue deleted file mode 100644 index 35de2a8d4..000000000 --- a/src/defaultTheme/components/templates/Page.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - diff --git a/src/defaultTheme/components/templates/Releases.vue b/src/defaultTheme/components/templates/Releases.vue deleted file mode 100644 index 80c9806c6..000000000 --- a/src/defaultTheme/components/templates/Releases.vue +++ /dev/null @@ -1,108 +0,0 @@ - - - diff --git a/src/defaultTheme/composables/index.ts b/src/defaultTheme/composables/index.ts deleted file mode 100644 index b748a800a..000000000 --- a/src/defaultTheme/composables/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './scrollspy' diff --git a/src/defaultTheme/css/main.css b/src/defaultTheme/css/main.css deleted file mode 100644 index ff0fc45c2..000000000 --- a/src/defaultTheme/css/main.css +++ /dev/null @@ -1,37 +0,0 @@ -:root { - --header-height: theme('spacing.14'); - --docs-scroll-margin-block: calc(var(--header-height) + 4rem); - --blogpost-scroll-margin-block: calc(var(--header-height)); -} - -@screen md { - :root { - --header-height: theme('spacing.18'); - --blogpost-scroll-margin-block: calc(var(--header-height) - 0.5rem); - } -} - -@screen xl { - :root { - --docs-scroll-margin-block: calc(var(--header-height) + 1rem); - } -} - -.fade-enter-active, -.fade-leave-active { - transition: opacity 200ms linear; -} -.fade-enter, -.fade-leave-to { - opacity: 0; -} - -.slide-from-left-to-left-enter-active, -.slide-from-left-to-left-leave-active { - transition: transform 200ms ease-out, opacity 200ms linear; -} -.slide-from-left-to-left-enter, -.slide-from-left-to-left-leave-to { - opacity: 0; - transform: translate3d(-50px, 0, 0); -} diff --git a/src/defaultTheme/css/prism.css b/src/defaultTheme/css/prism.css deleted file mode 100644 index bd3645b8b..000000000 --- a/src/defaultTheme/css/prism.css +++ /dev/null @@ -1 +0,0 @@ -@import 'prism-theme-vars/base.css'; diff --git a/src/defaultTheme/index.d.ts b/src/defaultTheme/index.d.ts deleted file mode 100644 index 123b2f411..000000000 --- a/src/defaultTheme/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import defaultThemeSettings from './settings' - -export type DefaultThemeSettings = typeof defaultThemeSettings diff --git a/src/defaultTheme/index.ts b/src/defaultTheme/index.ts deleted file mode 100644 index 0c1bd717b..000000000 --- a/src/defaultTheme/index.ts +++ /dev/null @@ -1,119 +0,0 @@ -import { resolve } from 'path' -import { nuxtConfig } from 'nuxt-extend' -import type { NuxtConfig } from '@nuxt/types' -import themeSetupModule, { beforeBuildHook } from './module' - -const r = (...args: string[]) => resolve(__dirname, ...args) - -const themeConfig: NuxtConfig = nuxtConfig({ - rootDir: __dirname, - themeName: 'defaultTheme', - themeDir: __dirname, - head: { - link: [ - { - rel: 'stylesheet', - href: 'https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap' - }, - { rel: 'preconnect', href: 'https://fonts.gstatic.com' } - ], - bodyAttrs: { - class: ['d-body-bg d-body-text-color text-root min-w-base antialiased tracking-semitight d-scrollbar'] - } - }, - colorMode: { - classSuffix: '' - }, - css: [r('./css/main.css'), r('./css/prism.css')], - components: [ - /** - * Atoms - */ - { - path: r('./components/atoms'), - prefix: '', - isAsync: false, - level: 2 - }, - { - path: r('./components/atoms/icons'), - prefix: '', - isAsync: false, - level: 2 - }, - { - path: r('./components/atoms/prose'), - prefix: '', - isAsync: false, - level: 2 - }, - /** - * Molecules - */ - { - path: r('./components/molecules'), - prefix: '', - isAsync: false, - level: 2 - }, - /** - * Organisms - */ - { - path: r('./components/organisms'), - prefix: '', - isAsync: false, - level: 2 - }, - { - path: r('./components/organisms/app'), - prefix: '', - isAsync: false, - level: 2 - }, - { - path: r('./components/organisms/blog'), - prefix: '', - isAsync: false, - level: 2 - }, - { - path: r('./components/organisms/dev-slots'), - prefix: '', - isAsync: false, - level: 2 - }, - { - path: r('./components/organisms/page'), - prefix: '', - isAsync: false, - level: 2 - }, - { - path: r('./components/organisms/slots'), - prefix: '', - isAsync: false, - level: 2 - }, - /** - * Templates - */ - { - path: r('./components/templates'), - prefix: '', - isAsync: false, - level: 2 - } - ], - plugins: [r('./plugins/menu')], - modules: [themeSetupModule, 'nuxt-windicss', '@nuxtjs/color-mode'], - hooks: { - build: { - before: beforeBuildHook - } - } -}) - -export default themeConfig - -export * from './index.d' diff --git a/src/defaultTheme/layouts/error.vue b/src/defaultTheme/layouts/error.vue deleted file mode 100644 index 2655e9aff..000000000 --- a/src/defaultTheme/layouts/error.vue +++ /dev/null @@ -1,24 +0,0 @@ - - - diff --git a/src/defaultTheme/module.ts b/src/defaultTheme/module.ts deleted file mode 100644 index a5fc04d98..000000000 --- a/src/defaultTheme/module.ts +++ /dev/null @@ -1,160 +0,0 @@ -import { resolve, join, dirname } from 'path' -import _glob from 'glob' -import type { IOptions as GlobOptions } from 'glob' -import { Config as WindiConfig } from 'windicss/types/interfaces' -import { existsSync } from 'fs-extra' -import defu from 'defu' -import { Module, NuxtOptions } from '@nuxt/types' -import gracefulFs from 'graceful-fs' -import clearModule from 'clear-module' -import jiti from 'jiti' -import { DefaultExtractor } from '@windicss/plugin-utils' -import defaultWindiConfig from './windi.config' - -const r = (...args: string[]) => resolve(__dirname, ...args) - -const glob = (pattern: string, options: GlobOptions = {}) => - new Promise((resolve, reject) => - _glob(pattern, options, (err, matches) => { - if (err) return reject(err) - resolve(matches) - }) - ) - -const _require = jiti(__filename) - -export const beforeBuildHook = async ({ options }) => { - // Add default error page if not defined - const errorPagePath = resolve(options.srcDir, options.dir.layouts, 'error.vue') - const errorPageExists = await gracefulFs.promises.stat(errorPagePath).catch(() => false) - if (!errorPageExists) options.ErrorPage = options.ErrorPage || r('layouts/error.vue') -} - -const loadWindiConfig = (options: NuxtOptions): WindiConfig | undefined => { - // Get Windi config path - let windiPath = resolve(options.srcDir) - if (existsSync(windiPath + '/windi.config.js')) windiPath += '/windi.config.js' - else if (existsSync(windiPath + '/windi.config.ts')) windiPath += '/windi.config.ts' - else if (existsSync(windiPath + '/tailwind.config.js')) windiPath += '/tailwind.config.js' - else if (existsSync(windiPath + '/tailwind.config.ts')) windiPath += '/tailwind.config.ts' - - // Delete Node cache for Windi config - clearModule(windiPath) - - // Get Windi config - let localWindiConfig - try { - localWindiConfig = _require(windiPath) - localWindiConfig = localWindiConfig?.default || localWindiConfig - } catch (_) {} - - return localWindiConfig -} - -// WindiCSS setup -export default function themeSetupModule() { - const { nuxt, $docus } = this - const { options, hook } = nuxt - const { settings } = $docus - - // Windi glob used for includes - const windiGlob = '/**/*.{html,vue,md,mdx,pug,jsx,tsx,svelte,css,ts,js}' - // Get Windi config at user project level - const localWindiConfig = loadWindiConfig(options) - - hook('windicss:options', async (windiOptions: WindiConfig) => { - // Merge user and theme Windi configs - windiOptions.config = defu.arrayFn(windiOptions.config || {}, localWindiConfig || {}, defaultWindiConfig) - const docusDist = join(dirname(require.resolve('docus/package.json')), 'dist') - - // Resolve admin runtime path - const adminPath = join(__dirname, '../admin') - - // Resolve content dir path - const contentDir = resolve(options.srcDir, settings.contentDir) - - // Glob grabbing all Docus files - const transformFiles = await glob('**/*.{vue,css,md}', { - cwd: docusDist, - nodir: true, - absolute: true - }) - - const cssFiles = transformFiles.filter((f: string) => f.endsWith('.css')) - const vueFiles = transformFiles.filter((f: string) => f.endsWith('.vue')) - const mdFiles = transformFiles.filter((f: string) => f.endsWith('.md')) - - // Make sure file @apply's get transformed - windiOptions.scanOptions.extraTransformTargets = { - css: [ - ...cssFiles, - ...vueFiles.flatMap(i => [ - `${i}?vue&type=style&index=0&scoped=true&lang.postcss`, - `${i}?vue&type=style&index=0&lang.postcss` - ]) - ], - detect: [...vueFiles, ...mdFiles] - } - - // extract custom markdown syntax, #503 - windiOptions.scanOptions.extractors.push({ - extensions: ['md'], - extractor(code, id) { - const data = DefaultExtractor(code, id) - - const classes = new Set(data.classes) - classes.forEach(i => { - if (i.startsWith('.')) classes.add(i.slice(1)) - }) - - return { - ...data, - classes: Array.from(classes) - } - } - }) - - // Push every included path into scan options - windiOptions.scanOptions.include.push( - join(contentDir, windiGlob), - join(adminPath, windiGlob), - join(__dirname, windiGlob), - join(docusDist, windiGlob), - join(options.themeDir, windiGlob) - ) - - // Merge shortcuts - windiOptions.config.shortcuts = { - ...(windiOptions.config.shortcuts || {}), - ...(settings?.theme?.shortcuts || {}) - } - - return windiOptions - }) - - hook('components:dirs', async (dirs: any) => { - // Get the user root `components` folder - // TODO: This should be done via nuxt-extend - const componentsDirPath = resolve(nuxt.options.rootDir, 'components') - const componentsDirStat = await gracefulFs.promises.stat(componentsDirPath).catch(() => null) - - if (componentsDirStat && componentsDirStat.isDirectory()) { - // Register the root `components` directory - dirs.push({ - path: componentsDirPath, - isAsync: false - }) - - // Check for sub directories - const subDirs = await glob(componentsDirPath + '/**/') - - // Register each subdirectories - subDirs.forEach((path: string) => dirs.push({ path, isAsync: false })) - } else { - // Watch existence of root `components` directory - options.watch.push(componentsDirPath) - } - }) - - options.watch.push(r('./settings.ts')) -} diff --git a/src/defaultTheme/plugins/menu.ts b/src/defaultTheme/plugins/menu.ts deleted file mode 100644 index b903f05c2..000000000 --- a/src/defaultTheme/plugins/menu.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { defineNuxtPlugin, Ref, ref, watch } from '@nuxtjs/composition-api' - -export default defineNuxtPlugin((ctx, inject) => { - // Menu visible reference - const visible = ref(false) - - // Current tab visible referece - const currentTab = ref() - - // Open the menu - const open = () => (visible.value = true) - - // Close the menu - const close = () => (visible.value = false) - - // Toggle the menu (useful for one-off buttons) - const toggle = () => (visible.value = !visible.value) - - // Toggle a tab from its id - const toggleTab = (tab: string) => - currentTab.value === tab ? (currentTab.value = undefined) : (currentTab.value = tab) - - // Watch route change, close on change - ctx.app.router?.afterEach(() => { - setTimeout(close, 50) - }) - - // Watch visible and remove overflow so the scrollbar disappears when menu is opened - if (process.client) { - watch( - visible, - isVisible => { - if (isVisible) { - const scrollBarGap = window.innerWidth - document.documentElement.clientWidth - document.body.style.overflow = 'hidden' - document.body.style.paddingRight = `${scrollBarGap}px` - } else { - setTimeout(() => { - document.body.style.overflow = null - document.body.style.paddingRight = null - }, 16) - } - }, - { - immediate: true - } - ) - } - - // Inject menu - inject('menu', { - visible, - close, - open, - toggle, - currentTab, - toggleTab - }) -}) - -declare module 'vue/types/vue' { - interface Vue { - $menu: { - visible: Ref - currentTab: Ref - close: () => void - open: () => void - toggle: () => void - toggleTab: (tab: string) => void - } - } -} diff --git a/src/defaultTheme/settings.ts b/src/defaultTheme/settings.ts deleted file mode 100644 index f0910d750..000000000 --- a/src/defaultTheme/settings.ts +++ /dev/null @@ -1,102 +0,0 @@ -const defaultThemeSettings = { - header: { - logo: false, - title: true - }, - colors: { - primary: '#3073F1', - prism: { - foreground: 'inherit', - background: '#fbfbfb dark:#1e1e1e', - class: '#9807af dark:#E879F9', - builtin: '#9807af dark:#E879F9', - function: '#9807af dark:#E879F9', - keyword: '#096d7c dark:#22D3EE', - string: '#679c0d dark:#BEF264', - number: '#679c0d dark:#BEF264', - selector: '#679c0d dark:#BEF264', - boolean: '#679c0d dark:#BEF264', - property: '#078ce5 dark:#E0F2FE', - punctuation: '#078ce5 dark:#E0F2FE', - comment: '#758575 dark:#a0ada0', - literal: '#429988 dark:#2f8a89', - variable: 'inherit', - constant: '#9807af dark:#E879F9', - deleted: '#a14f55 #a14f55', - namespace: '#9807af dark:#E879F9', - decorator: '#9807af dark:#E879F9', - regex: '#679c0d dark:#BEF264', - 'json-property': '#078ce5 dark:#22D3EE', - 'line-number': '#888888', - 'line-number-gutter': '#eeeeee', - 'line-highlight-background': '#444444', - 'selection-background': '#444444' - } - }, - shortcuts: { - 'd-body-bg': 'bg-white dark:bg-gray-900', - 'd-body-text-color': 'text-gray-900 dark:text-gray-50', - 'd-secondary-bg': 'bg-gray-500 dark:bg-gray-400', - 'd-secondary-text': 'text-gray-500 dark:text-gray-400', - 'd-secondary-text-hover': 'text-primary-500 dark:text-primary-400', - 'd-tertiary-text': 'text-gray-400 dark:text-gray-500', - 'd-border-tertiary': 'border-gray-400 dark:border-gray-500', - 'd-primary-text-hover': 'text-gray-600 dark:text-gray-400', - 'd-secondary-text-active': 'text-gray-900 dark:text-gray-300', - 'd-prose-code-inline-bg': 'bg-gray-100 dark:bg-gray-800', - 'd-prose-code-bg': 'bg-gray-100 dark:bg-gray-800', - 'd-prose-thead-border': 'border-b border-gray-200 dark:border-gray-700', - 'd-prose-tr-border': 'border-b border-gray-100 dark:border-gray-800', - 'd-prose-blockquote-border': 'border-l-2 border-gray-200 dark:border-gray-700', - 'd-prose-blockquote-text': 'd-secondary-text', - 'd-prose-a-text': 'text-primary-500', - 'd-prose-a-border': 'border-b border-transparent', - 'd-prose-a-border-hover': 'border-b border-primary-500', - 'd-prose-a-headline-border': 'border-b border-dashed border-gray-900 dark:border-gray-100', - // Primary - 'd-text-primary': 'text-primary-500 dark:text-primary-400', - 'd-border-primary': 'border-primary-500 dark:border-primary-400', - 'd-bg-primary': 'bg-primary-500 dark:bg-primary-400', - 'd-page-mobile-toc-bg': 'bg-white bg-opacity-80 dark:bg-gray-900 dark:bg-opacity-80', - 'd-aside-header-bg': 'bg-gray-50 dark:bg-gray-800', - 'd-active-aside-navigation-item-bg': 'bg-primary-50 dark:bg-primary-900', - 'd-active-aside-navigation-item-text': 'text-primary-500 dark:text-primary-400 ', - 'd-code-group-header-bg': 'bg-gray-200 dark:bg-gray-700', - 'd-code-group-tab': 'bg-gray-300 dark:bg-gray-600', - 'd-prose-code-filename-bg': 'bg-gray-200 dark:bg-gray-700', - 'd-prose-code-filename-text': 'text-gray-600 dark:text-gray-400', - 'd-prose-code-inline-in-heading-border-hover': 'border-gray-500 dark:border-gray-200', - 'd-prose-hr-border': 'border-t border-gray-100 dark:border-gray-800', - 'd-prose-ul-li-bullet': 'd-secondary-bg', - // Icons - 'd-text-icon': 'd-secondary-text hover:d-secondary-text-hover', - 'd-icon': 'd-text-icon focus:outline-none', - // Images utils - 'light-img': 'dark:hidden', - 'dark-img': 'light:hidden', - // Container - 'd-max-w-container': 'max-w-7xl', - 'd-px-container': 'px-4 sm:px-6', - 'd-container': 'd-max-w-container mx-auto', - 'd-container-content': 'd-container d-px-container', - // Header - 'd-blur-header': 'blur-12', - 'd-bg-header': 'bg-white bg-opacity-80 dark:bg-gray-900 dark:bg-opacity-80', - 'd-border': 'light:border-gray-200 light:border-opacity-50 dark:border-gray-800', - 'd-border-hover': 'border-primary-200 dark:border-gray-700', - 'd-border-header': 'border-b border-gray-200 dark:border-gray-800 border-opacity-50', - 'd-header': 'sticky w-full top-0 z-50 d-bg-header d-border-header d-blur-header h-header', - 'd-header-title': 'text-2xl font-bold tracking-tighter text-gray-900 dark:text-gray-100', - 'd-header-title-logo': 'd-header-title ml-4', - 'd-header-logo': 'flex items-center flex-none lg:w-60', - 'd-logo-color': 'text-black dark:text-white', - 'd-logo': 'w-auto h-6 md:h-8 d-logo-color', - // Heading - 'd-heading-title': '!mb-0 !mt-0 flex-1 !text-4xl font-semibold tracking-tight', - 'd-heading-description': '!mt-2 !mb-0 text-lg font-medium d-secondary-text', - 'd-heading-hr': '!mt-4 !mb-0 d-border', - 'd-scrollbar': 'scrollbar-thin scrollbar-thumb-gray-200 dark:scrollbar-thumb-gray-800 scrollbar-thumb-rounded' - } -} - -export default defaultThemeSettings diff --git a/src/defaultTheme/utils/dom.ts b/src/defaultTheme/utils/dom.ts deleted file mode 100644 index 121218ae4..000000000 --- a/src/defaultTheme/utils/dom.ts +++ /dev/null @@ -1,22 +0,0 @@ -export function convertPropToPixels(prop: string): number { - const tempDiv = document.createElement('div') - tempDiv.style.position = 'absolute' - tempDiv.style.opacity = '0' - tempDiv.style.height = getComputedStyle(document.documentElement).getPropertyValue(prop) - document.body.appendChild(tempDiv) - const pixels = parseInt(getComputedStyle(tempDiv).height) - document.body.removeChild(tempDiv) - return pixels -} - -export function scrollToHeading(id: string, scrollMarginCssVar: string) { - // use replaceState to prevent page jusmp when adding hash - history.replaceState({}, '', '#' + id) - - // do not remove setTimeout (does not work in Safari) - setTimeout(() => { - const escapedId = id.replace(/\./g, '\\.') - const offset = (document.querySelector(`#${escapedId}`) as any).offsetTop - convertPropToPixels(scrollMarginCssVar) - window.scrollTo(0, offset) - }) -} diff --git a/src/defaultTheme/utils/index.ts b/src/defaultTheme/utils/index.ts deleted file mode 100644 index 436c9b729..000000000 --- a/src/defaultTheme/utils/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './dom' diff --git a/src/defaultTheme/windi.config.ts b/src/defaultTheme/windi.config.ts deleted file mode 100644 index fa414fa36..000000000 --- a/src/defaultTheme/windi.config.ts +++ /dev/null @@ -1,107 +0,0 @@ -/* - ** Windi CSS Configuration File - ** - ** Docs: https://next.windicss.org/guide/configuration.html - */ -import colors from 'windicss/colors' -import defaultTheme from 'windicss/defaultTheme' -import aspectRatio from 'windicss/plugin/aspect-ratio' -import filters from 'windicss/plugin/filters' -import scrollbar from '@windicss/plugin-scrollbar' -import { defineConfig } from 'windicss/helpers' - -export default defineConfig({ - darkMode: 'class', - plugins: [filters, aspectRatio, scrollbar], - // Include Docus node_module when used this way - extract: { - include: ['node_modules/docus/dist/**/*.{html,vue,md,mdx,pug,jsx,tsx,svelte,css,ts,js}'] - }, - theme: { - colors: { - transparent: 'transparent', - current: 'currentColor', - black: '#000', - white: '#fff', - blue: colors.lightBlue, - green: colors.emerald, - red: colors.red, - rose: colors.rose, - yellow: colors.amber, - gray: colors.gray - }, - backdropFilter: { - blur: { - sm: 'blur(8px)', - DEFAULT: 'blur(12px)' - } - }, - extend: { - fontSize: { - inherit: 'inherit', - root: '16px', // Safari fix to disable font size scaling - lg: ['1.125rem', '1.5rem'] // NOT WORKING - }, - fontFamily: { - sans: 'Inter, ' + defaultTheme.fontFamily.sans - }, - letterSpacing: { - semitight: '-0.0125em' - }, - screens: { - xs: '414px' - }, - colors: { - primary: { - 50: 'var(--primary-50)', - 100: 'var(--primary-100)', - 200: 'var(--primary-200)', - 300: 'var(--primary-300)', - 400: 'var(--primary-400)', - 500: 'var(--primary-500)', - 600: 'var(--primary-600)', - 700: 'var(--primary-700)', - 800: 'var(--primary-800)', - 900: 'var(--primary-900)' - } - }, - spacing: { - base: '320px', - header: 'var(--header-height)', - 18: '4.5rem', - 46: '11.5rem', - '580px': '580px', - '640px': '640px' - }, - height: theme => ({ - '(full-18)': `calc(100% - ${theme('spacing.18')})`, - '(full-header)': `calc(100% - ${theme('spacing.header')})`, - '(screen-18)': `calc(100vh - ${theme('spacing.18')})`, - '(screen-header)': `calc(100vh - ${theme('spacing.header')})`, - '(screen-36)': `calc(100vh - ${theme('spacing.36')})`, - '(screen-46)': `calc(100vh - ${theme('spacing.46')})` - }), - maxHeight: theme => ({ - '(screen-18)': `calc(100vh - ${theme('spacing.18')})`, - '(screen-header)': `calc(100vh - ${theme('spacing.header')})` - }), - minHeight: () => ({ - 'fill-available': '-webkit-fill-available' - }), - maxWidth: { - base: '320px', - '8xl': '90rem', - '1/2': '50%' - }, - minWidth: { - '1/2': '50%' - }, - inset: { - 18: '4.5rem' - } - } - }, - variants: { - scrollbar: ['dark', 'rounded'] - } -}) diff --git a/src/github/github.ts b/src/github/github.ts deleted file mode 100644 index a9c062cb1..000000000 --- a/src/github/github.ts +++ /dev/null @@ -1,96 +0,0 @@ -import { $fetch, FetchOptions } from 'ohmyfetch/node' -import { GithubRelease, GithubReleaseOptions } from '../types/github' -import { useMarkdownParser } from '../core/parser' -import { normalizeReleaseName } from './utils' - -interface GithubRawRelease { - draft: boolean - name: string - // eslint-disable-next-line camelcase - tag_name: string - body: string - // eslint-disable-next-line camelcase - published_at: number -} - -let cachedReleases: GithubRelease[] = [] - -export function get(): GithubRelease[] { - return cachedReleases -} - -export async function fetch(settings: GithubReleaseOptions) { - let releases: GithubRelease[] = [] - - const parser = useMarkdownParser() - const getMajorVersion = (r: GithubRelease): number => (r.name ? Number(r.name.substring(1, 2)) : 0) - - if (settings.releases && settings.repo) { - const { apiUrl, repo, releases: releasesRepo } = settings - const girhubReleases = await fetchGitHubReleases({ - apiUrl, - repo: typeof releasesRepo === 'string' ? releasesRepo : repo, - token: process.env.GITHUB_TOKEN || '' - }) - releases = await Promise.all( - girhubReleases.map(async r => { - return { - ...r, - body: (await parser.parse(r.body)).body - } - }) - ) - } - - releases.sort((a, b) => { - const aMajorVersion = getMajorVersion(a) - const bMajorVersion = getMajorVersion(b) - if (aMajorVersion !== bMajorVersion) { - return bMajorVersion - aMajorVersion - } - return a.date - b.date - }) - - cachedReleases = releases - return releases -} - -export async function fetchGitHubReleases({ apiUrl, repo, token }: GithubReleaseOptions) { - const options: FetchOptions = {} - if (token) { - options.headers = { Authorization: `token ${token}` } - } - const url = `${apiUrl}/${repo}/releases` - const rawReleases: GithubRawRelease[] = await $fetch(url, options).catch(err => { - // eslint-disable-next-line no-console - console.warn(`Cannot fetch GitHub releases on ${url} [${err.response.status}]`) - - // eslint-disable-next-line no-console - console.info('Make sure to provide GITHUB_TOKEN environment in `.env`') - - if (err.response.status !== 403) { - // eslint-disable-next-line no-console - console.info('To disable fetching releases, set `github.releases` to `false` in `docus.config.js`') - } - - return [] - }) - - const releases = rawReleases - .filter((r: any) => !r.draft) - .map(release => { - return { - name: normalizeReleaseName(release.name || release.tag_name), - date: release.published_at, - body: release.body - } - }) - - return releases -} - -export default { - get, - fetch, - fetchGitHubReleases -} diff --git a/src/github/index.ts b/src/github/index.ts deleted file mode 100644 index d7155ea3b..000000000 --- a/src/github/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -// eslint-disable-next-line import/named -export { default } from './module' diff --git a/src/github/module.ts b/src/github/module.ts deleted file mode 100644 index aebdcd109..000000000 --- a/src/github/module.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Module } from '@nuxt/types' -import defu from 'defu' -import { ParserOptions } from '../types' -import { useStorage } from '../core/storage' -import { fetch } from './github' -import githubDefaults from './settings' - -export default function docusGithubModule() { - const { nuxt } = this - const { hook } = nuxt - const settings = this.$docus.settings - - settings.github = defu(settings.github, githubDefaults) - const repository = typeof settings.github.releases === 'string' ? settings.github.releases : settings.github.repo - - hook('docus:parserOptions', (options: Partial) => { - if (!options.markdown.remarkPlugins) { - options.markdown.remarkPlugins = [] - } - - options.markdown.remarkPlugins.push([ - 'remark-github', - { - repository - } - ]) - }) - - hook('docus:storage:ready', () => { - // Fetch releases - fetch(settings.github).then(releases => { - const { storage } = useStorage() - - storage.setItem('data:github-releases.json', { - releases - }) - }) - }) -} diff --git a/src/github/settings.ts b/src/github/settings.ts deleted file mode 100644 index d884921a6..000000000 --- a/src/github/settings.ts +++ /dev/null @@ -1,10 +0,0 @@ -const githubDefaults = { - repo: null, - branch: null, - dir: null, - releases: false, - url: 'https://github.com', - apiUrl: 'https://api.github.com/repos' -} - -export default githubDefaults diff --git a/src/github/utils.ts b/src/github/utils.ts deleted file mode 100644 index d8159e3cd..000000000 --- a/src/github/utils.ts +++ /dev/null @@ -1,10 +0,0 @@ -export function normalizeReleaseName(name: string) { - // remove "Release " prefix from release name - name = name.replace('Release ', '') - - // make sure release name starts with an alphabetical character - if (!name.match(/^[a-zA-Z]/)) { - name = `v${name}` - } - return name -} diff --git a/src/i18n/index.ts b/src/i18n/index.ts deleted file mode 100644 index 6a76ebfa8..000000000 --- a/src/i18n/index.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { resolve, join, relative } from 'path' -import fs from 'fs' -import defu from 'defu' -import { Module } from '@nuxt/types' -import languages from './languages' - -const r = (...args: string[]) => resolve(__dirname, ...args) - -const config = { - langDir: '', - baseUrl: ({ $docus }: any) => ($docus && $docus.settings && $docus.settings.url) || '', - locales: [], - defaultLocale: 'en', - parsePages: false, - lazy: true, - seo: false, - vueI18n: { - fallbackLocale: 'en', - dateTimeFormats: { - en: { - long: { - year: 'numeric', - month: 'short', - day: 'numeric', - weekday: 'short' - } - }, - fr: { - long: { - year: 'numeric', - month: 'long', - day: 'numeric', - weekday: 'short' - } - } - } - } -} - -export default function docusI18n() { - const { requireModule, addPlugin, nuxt, $docus } = this - const { options } = nuxt - - // Update i18n langDir to relative from `~` (https://github.com/nuxt-community/i18n-module/blob/4bfa890ff15b43bc8c2d06ef9225451da711dde6/src/templates/utils.js#L31) - config.langDir = join(relative(options.srcDir, r('languages')), '/') - - // Inject Docus theme as ~docus - options.alias['~docus-i18n'] = r('languages') - - if (!options.i18n?.locales?.length) { - const contentDir = resolve(options.srcDir, $docus.settings.contentDir) - const languageCodes = languages.map(({ code }) => code) - const activeLanguages = fs.readdirSync(contentDir).filter(name => languageCodes.includes(name)) - activeLanguages.unshift(config.defaultLocale) - - const localeCodes = [...new Set(activeLanguages)] - config.locales = languages.filter(language => localeCodes.includes(language.code)) - } - - options.i18n = defu(options.i18n, config) - - nuxt.hook('build:before', () => { - addPlugin({ - src: r('./runtime/plugin.js'), - filename: 'docus-i18n.js' - }) - - requireModule('nuxt-i18n') - - /** - * Temporary fix - * This should be done by nuxt-i18n - */ - this.extendRoutes(routes => { - // move start route to the end - const index = routes.findIndex(route => route.path === '/*') - const [all] = routes.splice(index, 1) - routes.push(all) - }) - }) -} diff --git a/src/i18n/languages/de-DE.js b/src/i18n/languages/de-DE.js deleted file mode 100644 index 04df03437..000000000 --- a/src/i18n/languages/de-DE.js +++ /dev/null @@ -1,11 +0,0 @@ -export default { - search: { - placeholder: 'Dokumentation durchsuchen (Drücke "/")' - }, - toc: { - title: 'Auf dieser Seite' - }, - article: { - github: 'Bearbeite diese Seite auf GitHub' - } -} diff --git a/src/i18n/languages/en-US.js b/src/i18n/languages/en-US.js deleted file mode 100644 index 9cc2b5a8f..000000000 --- a/src/i18n/languages/en-US.js +++ /dev/null @@ -1,13 +0,0 @@ -export default { - documentation: 'Documentation', - search: { - placeholder: 'Search the docs (Press "/" to focus)' - }, - toc: { - title: 'Table of Contents' - }, - article: { - github: 'Edit this page on GitHub', - updatedAt: 'Updated at' - } -} diff --git a/src/i18n/languages/es-ES.js b/src/i18n/languages/es-ES.js deleted file mode 100644 index 65faeb3b6..000000000 --- a/src/i18n/languages/es-ES.js +++ /dev/null @@ -1,11 +0,0 @@ -export default { - search: { - placeholder: 'Buscar en documentos (Pulsa "/" para afinar)' - }, - toc: { - title: 'En esta página' - }, - article: { - github: 'Editar esta página en GitHub' - } -} diff --git a/src/i18n/languages/fr-FR.js b/src/i18n/languages/fr-FR.js deleted file mode 100644 index a09aa73ed..000000000 --- a/src/i18n/languages/fr-FR.js +++ /dev/null @@ -1,12 +0,0 @@ -export default { - search: { - placeholder: 'Rechercher la documentation (appuyez sur "/")' - }, - toc: { - title: 'Sur cette page' - }, - article: { - github: 'Editer cette page sur GitHub', - updatedAt: 'Mise à jour le' - } -} diff --git a/src/i18n/languages/index.js b/src/i18n/languages/index.js deleted file mode 100644 index 97e02b838..000000000 --- a/src/i18n/languages/index.js +++ /dev/null @@ -1,74 +0,0 @@ -export default [ - { - code: 'en', - iso: 'en-US', - file: 'en-US.js', - name: 'English' - }, - { - code: 'de', - iso: 'de-DE', - file: 'de-DE.js', - name: 'German' - }, - { - code: 'es', - iso: 'es-ES', - file: 'es-ES.js', - name: 'Spanish' - }, - { - code: 'fr', - iso: 'fr-FR', - file: 'fr-FR.js', - name: 'French' - }, - { - code: 'ja', - iso: 'ja-JP', - file: 'ja-JP.js', - name: 'Japanese' - }, - { - code: 'ko', - iso: 'ko-KR', - file: 'ko-KR.js', - name: 'Korean' - }, - { - code: 'ne', - iso: 'ne-NP', - file: 'ne-NP.js', - name: 'Nepali' - }, - { - code: 'nl', - iso: 'nl-BE', - file: 'nl-BE.js', - name: 'Dutch' - }, - { - code: 'pl', - iso: 'pl-PL', - file: 'pl-PL.js', - name: 'Polish' - }, - { - code: 'ru', - iso: 'ru-RU', - file: 'ru-RU.js', - name: 'Russian' - }, - { - code: 'tr', - iso: 'tr-TR', - file: 'tr-TR.js', - name: 'Turkish' - }, - { - code: 'zh', - iso: 'zh-CN', - file: 'zh-CN.js', - name: 'Chinese' - } -] diff --git a/src/i18n/languages/ja-JP.js b/src/i18n/languages/ja-JP.js deleted file mode 100644 index bccd5b9ed..000000000 --- a/src/i18n/languages/ja-JP.js +++ /dev/null @@ -1,12 +0,0 @@ -export default { - search: { - placeholder: 'ドキュメントを検索する ("/"を押すとここにフォーカスします)' - }, - toc: { - title: '現在のページ' - }, - article: { - github: 'このページをGitHubで編集する', - updatedAt: '更新日' - } -} diff --git a/src/i18n/languages/ko-KR.js b/src/i18n/languages/ko-KR.js deleted file mode 100644 index e11fbcf2c..000000000 --- a/src/i18n/languages/ko-KR.js +++ /dev/null @@ -1,11 +0,0 @@ -export default { - search: { - placeholder: '전체 문서에서 검색하기("/" 누르고 입력)' - }, - toc: { - title: '페이지 정보' - }, - article: { - github: 'GitHub에서 현재 페이지 수정하기' - } -} diff --git a/src/i18n/languages/ne-NP.js b/src/i18n/languages/ne-NP.js deleted file mode 100644 index 833817032..000000000 --- a/src/i18n/languages/ne-NP.js +++ /dev/null @@ -1,11 +0,0 @@ -export default { - search: { - placeholder: 'अभिलेख खोज्नुहोस (ध्यान केन्द्रित गर्न "/" थिच्नुहोस)' - }, - toc: { - title: 'यस पृष्ठमा' - }, - article: { - github: 'यस पृष्ठलाई GitHub मा सम्पादन गर्नुहोस' - } -} diff --git a/src/i18n/languages/nl-BE.js b/src/i18n/languages/nl-BE.js deleted file mode 100644 index 9193a2aa0..000000000 --- a/src/i18n/languages/nl-BE.js +++ /dev/null @@ -1,12 +0,0 @@ -export default { - search: { - placeholder: 'Doorzoek de documentatie (Druk op "/")' - }, - toc: { - title: 'Op deze pagina' - }, - article: { - github: 'Bewerk deze pagina op GitHub', - updatedAt: 'Geüpdatet op' - } -} diff --git a/src/i18n/languages/pl-PL.js b/src/i18n/languages/pl-PL.js deleted file mode 100644 index add56e7b6..000000000 --- a/src/i18n/languages/pl-PL.js +++ /dev/null @@ -1,11 +0,0 @@ -export default { - search: { - placeholder: 'Szukaj w dokumentacji (Naciśnij "/" aby rozpocząć)' - }, - toc: { - title: 'Na tej stronie' - }, - article: { - github: 'Edytuj stronę na GitHub' - } -} diff --git a/src/i18n/languages/ru-RU.js b/src/i18n/languages/ru-RU.js deleted file mode 100644 index 61e491b65..000000000 --- a/src/i18n/languages/ru-RU.js +++ /dev/null @@ -1,11 +0,0 @@ -export default { - search: { - placeholder: 'Поиск документации (Нажмите "/", чтобы сфокусироваться)' - }, - toc: { - title: 'На этой странице' - }, - article: { - github: 'Редактировать эту страницу на GitHub' - } -} diff --git a/src/i18n/languages/tr-TR.js b/src/i18n/languages/tr-TR.js deleted file mode 100644 index c37b6afe3..000000000 --- a/src/i18n/languages/tr-TR.js +++ /dev/null @@ -1,11 +0,0 @@ -export default { - search: { - placeholder: 'Belgelerde arayın (Odaklanmak için tıklayınız)' - }, - toc: { - title: 'Bu sayfada' - }, - article: { - github: 'Bu sayfayı GitHub üzerinde düzenleyin' - } -} diff --git a/src/i18n/languages/zh-CN.js b/src/i18n/languages/zh-CN.js deleted file mode 100644 index a2e1ffd5e..000000000 --- a/src/i18n/languages/zh-CN.js +++ /dev/null @@ -1,11 +0,0 @@ -export default { - search: { - placeholder: '搜索文档(按 “/” 聚焦)' - }, - toc: { - title: '此页面' - }, - article: { - github: '在 GitHub 上编辑此页面' - } -} diff --git a/src/i18n/runtime/plugin.js b/src/i18n/runtime/plugin.js deleted file mode 100644 index 2f19397b0..000000000 --- a/src/i18n/runtime/plugin.js +++ /dev/null @@ -1,41 +0,0 @@ -export default function ({ app }, inject) { - if (process.client) { - app.i18n.onLanguageSwitched = () => { - window.$nuxt.$docus.fetchNavigation() - } - } - - // Generate local path for static contents. - // This helper does not respect `router.trailingSlash` - // and add/remove trailingSlash baded on original path - inject('contentLocalePath', path => { - const { localeCodes, defaultLocale } = app.i18n - - /** - * If `path` includes a locale do not change the locale - */ - let localePath = localeCodes.some(code => path.startsWith(`/${code}`)) ? path : app.localePath(path) - - /** - * Remove default locale from path - */ - if (localePath.startsWith(`/${defaultLocale}`)) { - localePath = localePath.replace(`/${defaultLocale}`, '') - } - - /** - * Preserve trailing slash in generated path - */ - if (path.endsWith('/') && !localePath.endsWith('/')) { - localePath += '/' - } - - /** - * Remove trailing slash from generated path - */ - if (!path.endsWith('/') && localePath.endsWith('/')) { - localePath = localePath.replace(/\/*$/, '') - } - return localePath - }) -} diff --git a/src/index.d.ts b/src/index.d.ts deleted file mode 100644 index 981b6486b..000000000 --- a/src/index.d.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { NuxtConfig } from '@nuxt/types' -import { DocusRuntimeInstance } from './types' - -export * from './types' - -// TODO: Remove this once plugins are externalized -export * from './types/github' -export * from './types/social-image' - -export declare const withDocus: (_config: NuxtConfig) => NuxtConfig - -declare module '@nuxt/types' { - interface Context { - $docus: DocusRuntimeInstance - } -} - -declare module '@nuxt/types/app' { - interface Context { - $docus: DocusRuntimeInstance - } -} diff --git a/src/index.ts b/src/index.ts deleted file mode 100644 index 1447b0b33..000000000 --- a/src/index.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { resolve } from 'path' -import { nuxtConfig } from 'nuxt-extend' -import type { NuxtConfig } from '@nuxt/types' -import defu from 'defu' -import jiti from 'jiti' - -const _require = jiti(__filename) -export function withDocus(theme: string | NuxtConfig, userConfig?: NuxtConfig): NuxtConfig { - if (typeof theme !== 'string') { - userConfig = theme - theme = resolve(__dirname, './defaultTheme') - } else { - try { - _require(theme) - } catch (err) { - // eslint-disable-next-line no-console - console.error(`Could not load Docus theme \`${theme}\``) - process.exit(1) - } - } - const _config = _require('./app/nuxt.config') - - // Resolve Nuxt config from _require - const _nuxtConfig = (_config.default || _config) as NuxtConfig - - // Theme specified, try to extend from its index - _nuxtConfig.extends = theme - - return nuxtConfig(defu.arrayFn(userConfig, _nuxtConfig)) -} diff --git a/src/settings/defaults.ts b/src/settings/defaults.ts deleted file mode 100644 index bad44fb05..000000000 --- a/src/settings/defaults.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { DocusSettings } from '../types' - -export const docusDefaults: DocusSettings = { - title: 'Docus', - contentDir: 'content', - url: '', - description: '', - template: 'docs', - credits: true, - layout: { - header: true, - footer: true, - aside: false, - asideClass: '', - fluid: false, - banner: false - } -} diff --git a/src/settings/index.ts b/src/settings/index.ts deleted file mode 100644 index 6a3dd0d85..000000000 --- a/src/settings/index.ts +++ /dev/null @@ -1,87 +0,0 @@ -import { join, resolve } from 'path' -import { mkdirp, remove, existsSync, writeJSONSync } from 'fs-extra' -import clearModule from 'clear-module' -import chalk from 'chalk' -import { Module } from '@nuxt/types' -import defu from 'defu' -import jiti from 'jiti' -import { docusDefaults } from './defaults' - -const _require = jiti(__filename) - -export default function settingsModule() { - const { options, hook } = this.nuxt - - // Initialize server-side $docus - if (!this.$docus) this.$docus = {} - - // Get cache dir for Docus inside project rootDir - const cacheDir = join(options.rootDir, 'node_modules/.cache/docus') - - // Get Docus config path - let settingsPath = resolve(options.srcDir, 'docus.config') - if (existsSync(settingsPath + '.js')) settingsPath += '.js' - else if (existsSync(settingsPath + '.ts')) settingsPath += '.ts' - - // Get theme settings path - if (!options.themeDir) { - // eslint-disable-next-line no-console - console.warn('`themeDir` is not specified in current theme, fallback to default theme') - options.themeDir = resolve(__dirname, '..', 'defaultTheme') - } - - let themeDefaultsPath = resolve(options.themeDir, 'settings') - if (existsSync(themeDefaultsPath + '.js')) themeDefaultsPath += '.js' - else if (existsSync(themeDefaultsPath + '.ts')) themeDefaultsPath += '.ts' - - // Delete Node cache for settings files - clearModule(themeDefaultsPath) - clearModule(settingsPath) - // Get user settings - let userSettings - try { - userSettings = _require(settingsPath) - userSettings = userSettings?.default || userSettings - } catch (err) { - // eslint-disable-next-line no-console - console.info('Using default Docus config, please create a `docus.config.js` to overwrite it.') - } - // Get theme defaults - let themeDefaults - try { - themeDefaults = _require(themeDefaultsPath) - themeDefaults = themeDefaults?.default || themeDefaults - } catch (err) { - // eslint-disable-next-line no-console - console.warn(`Could not fetch theme settings in ${themeDefaultsPath}`) - } - // Merge default settings and default theme settings - const settings = defu(userSettings, docusDefaults) - settings.theme = defu(userSettings?.theme, themeDefaults) - - // Inject settings into $docus for other modules - this.$docus.settings = settings - - // Default title and description for pages - options.meta.name = settings.title - options.meta.description = settings.description - - hook('modules:done', async () => { - const jsonPath = join(cacheDir, 'docus-settings.json') - - // Replace the directory - if (existsSync(cacheDir)) await remove(cacheDir) - await mkdirp(cacheDir) - - // Write settings - writeJSONSync(jsonPath, this.$docus.settings) - }) - - // Inject theme name into Nuxt build badge - hook('listen', () => { - options.cli.badgeMessages.push('', chalk.bold('💄 Theme: ') + chalk.underline.yellow(options.themeName)) - }) - - // Watch settings - options.watch.push(settingsPath) -} diff --git a/src/shims.d.ts b/src/shims.d.ts deleted file mode 100644 index 95077e6b7..000000000 --- a/src/shims.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -declare namespace NodeJS { - interface Process { - dev: boolean - options: any - previewUrl: string - } -} - -interface Window { - onNuxtReady: any -} diff --git a/src/social-image/chromium/index.ts b/src/social-image/chromium/index.ts deleted file mode 100644 index 0f383e872..000000000 --- a/src/social-image/chromium/index.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { connect, launch, Page, Browser, ConnectOptions } from 'puppeteer-core' -import { useProxy } from './proxy' -let _browser: Browser -let _page: Page - -async function getPage(options: ConnectOptions): Promise { - if (!_page) { - // ensure browser is available - const remoteBrowser = options.browserWSEndpoint - if (!_browser) { - _browser = remoteBrowser ? await connect(options) : await launch(options) - } - - // initialize the page - _page = await _browser.newPage() - - if (remoteBrowser) { - await useProxy(_page) - } - } - return _page -} - -export async function takeScreenshot( - options: ConnectOptions, - url: string, - type: 'jpeg' | 'png' | undefined = 'jpeg' -): Promise { - const page = await getPage(options) - await page.goto(url) - const file = await page.screenshot({ type }) - return file -} - -export async function cleanup(): Promise { - if (_page) { - await _page.close() - } - if (_browser) { - _browser.close() - } -} diff --git a/src/social-image/chromium/proxy.ts b/src/social-image/chromium/proxy.ts deleted file mode 100644 index 49d6e76ac..000000000 --- a/src/social-image/chromium/proxy.ts +++ /dev/null @@ -1,44 +0,0 @@ -import fetch from 'node-fetch' -import { HTTPRequest, Page } from 'puppeteer-core' - -interface Cache { - status: number - contentType: string | null - headers: any - body: Buffer -} -const cache: { [url: string]: Cache } = {} - -async function _fetch(request: HTTPRequest) { - const url = request.url() - let result = cache[url] - if (!result) { - const response = await fetch(url, { - method: request.method(), - body: request.postData(), - headers: request.headers() - }) - result = { - status: response.status, - contentType: response.headers.get('content-type'), - headers: response.headers, - body: await response.buffer() - } - if (request.method() === 'GET') { - cache[url] = result - } - } - return result -} - -export async function useProxy(page: Page) { - await page.setRequestInterception(true) - page.on('request', async request => { - try { - const response = await _fetch(request) - await request.respond(response) - } catch (e) { - request.abort() - } - }) -} diff --git a/src/social-image/generate.ts b/src/social-image/generate.ts deleted file mode 100644 index 39505eb1a..000000000 --- a/src/social-image/generate.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { join } from 'path' -import fs from 'fs' -import { ScreenshotCandidate, ScreenshotCandidates, SocialImageModuleOptions } from '../types/social-image' -import { takeScreenshot, cleanup } from './chromium' - -interface InternalModuleOptions { - _outDir: string - internalUrl: string -} - -export function setupStaticGeneration(nuxt: any, options: SocialImageModuleOptions & InternalModuleOptions) { - const { hook } = nuxt - const images: ScreenshotCandidates = {} - - hook('vue-renderer:context', (ssrContext: any) => { - ssrContext.addSocialImage = (shot: ScreenshotCandidate) => { - images[shot.imageName] = shot - } - }) - - hook('generate:done', async () => { - // create out directory - fs.mkdirSync(options._outDir) - - await Object.values(images).reduce(async (prev, shot) => { - await prev - const url = `${options.internalUrl}/social-image-preview?path=${shot.route}&title=${shot.title}&description=${shot.description}` - // take shot - const file = await takeScreenshot(options.chrome, url) - // write file - const path = join(options._outDir, shot.imageName) - if (file) { - await new Promise(resolve => fs.writeFile(path, file, resolve)) - } - }, Promise.resolve()) - - await cleanup() - }) - - hook('generate:page', (page: { route: string; exclude: boolean }) => { - const { route } = page - - // exclude social preview page from generation - if (route === '/social-image-preview') { - page.exclude = true - } - }) -} diff --git a/src/social-image/index.ts b/src/social-image/index.ts deleted file mode 100644 index eef39f200..000000000 --- a/src/social-image/index.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { join, resolve } from 'path' -import defu from 'defu' -import { Module } from '@nuxt/types' -import { SocialImageModuleOptions } from '../types/social-image' -import { setupStaticGeneration } from './generate' - -const r = (...args: string[]) => resolve(__dirname, ...args) -interface InternalModuleOptions { - _outDir: string - internalUrl: string -} - -export default >function socialImageModule(moduleOptions) { - const { nuxt, addPlugin } = this - const { options: nuxtOptions, hook } = nuxt - const settings = this.$docus.settings - - if (settings.socialImage === false) return - - // Executable path defaults to MacOS - // Supports Linux & Win32 too - let executablePath = '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' - if (process.platform === 'linux') executablePath = '/usr/bin/google-chrome' - if (process.platform === 'win32') executablePath = 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe' - - const defaults: SocialImageModuleOptions & InternalModuleOptions = { - baseUrl: this?.$docus?.settings?.url || undefined, - outDir: '_preview', - _outDir: '', - internalUrl: '', - chrome: { - browserWSEndpoint: 'wss://chrome.browserless.io', - defaultViewport: { width: 1280, height: 640 }, - args: [], - headless: true, - executablePath - } - } - - const options = defu(moduleOptions, nuxt.options.socialImage, defaults) - options._outDir = join(nuxtOptions.generate.dir, options.outDir) - - hook('listen', (_: any, listener: any) => { - options.internalUrl = `http://localhost:${listener.port}` - }) - - hook('build:extendRoutes', (routes: any[]) => { - const hasRoute = (name: string) => routes.some(route => route.name === name) - if (!hasRoute('social-image-preview')) { - routes.unshift({ - path: '/social-image-preview', - name: 'social-image-preview', - component: r('runtime/pages/social-image-preview.vue') - }) - } - }) - - setupStaticGeneration(nuxt, options) - - addPlugin({ - src: r('runtime/plugin.js'), - fileName: join('social-image.js'), - options - }) -} diff --git a/src/social-image/runtime/pages/social-image-preview.vue b/src/social-image/runtime/pages/social-image-preview.vue deleted file mode 100644 index 894efc667..000000000 --- a/src/social-image/runtime/pages/social-image-preview.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - diff --git a/src/social-image/runtime/plugin.js b/src/social-image/runtime/plugin.js deleted file mode 100644 index 2d5e9b855..000000000 --- a/src/social-image/runtime/plugin.js +++ /dev/null @@ -1,64 +0,0 @@ -const url = '<%= options.baseUrl %>/<%= options.outDir %>/' - -const findMeta = (meta, key) => meta.find(item => item.hid === key || item.name === key || item.property === key) - -const generateName = route => (route.replace(/^\//, '').replace(/[/]/g, '-') || 'home-page') + '.jpeg' - -export default function ({ route, app, ssrContext }) { - if (!route.matched[0]) { - return - } - const { options } = route.matched[0].components.default - const imageName = generateName(route.path) - - app.head.meta = Array.isArray(app.head.meta) ? app.head.meta : [] - if (findMeta(app.head.meta, 'og:image')) { - app.head.meta.push({ - hid: 'og:image', - property: 'og:image', - content: url + imageName - }) - } - if (findMeta(app.head.meta, 'twitter:image')) { - app.head.meta.push({ - hid: 'twitter:image', - name: 'twitter:image', - content: url + imageName - }) - } - - if (ssrContext && ssrContext.addSocialImage) { - options.__pageHead = options.__pageHead || options.head - options.head = createCustomHead({ - options, - addSocialImage: ssrContext.addSocialImage, - imageName, - route: route.path - }) - } -} - -const createCustomHead = ({ options, addSocialImage, imageName, route }) => - function socialImageCustomHead() { - let head - switch (typeof options.__pageHead) { - case 'function': - head = options.__pageHead.call(this) - break - case 'object': - head = { ...options.__pageHead } - break - default: - head = {} - } - if (head.title) { - const metaDescription = findMeta(head.meta || [], 'description') - addSocialImage({ - title: head.title, - description: metaDescription ? metaDescription.content : '', - imageName, - route - }) - } - return head - } diff --git a/src/twitter/components/Tweet.vue b/src/twitter/components/Tweet.vue deleted file mode 100644 index d5bf98971..000000000 --- a/src/twitter/components/Tweet.vue +++ /dev/null @@ -1,191 +0,0 @@ - - - - - diff --git a/src/twitter/index.ts b/src/twitter/index.ts deleted file mode 100644 index 473c19aca..000000000 --- a/src/twitter/index.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { resolve } from 'path' -import { Config as WindiConfig } from 'windicss/types/interfaces' -import { Module } from '@nuxt/types' -import { ParserOptions } from '../types' -import tweetDirective from './lib/directive' - -const r = (...args) => resolve(__dirname, ...args) - -export default function docusTwitterModule() { - const { nuxt } = this - const { hook } = nuxt - - hook('docus:parserOptions', (options: Partial) => { - if (!options.markdown.directives) { - options.markdown.directives = {} - } - options.markdown.directives.tweet = tweetDirective - }) - - hook('components:dirs', dirs => { - dirs.push({ - path: r('components'), - isAsync: false, - level: 2 - }) - }) - - hook('windicss:options', (windiOptions: WindiConfig) => { - windiOptions.scanOptions.include.push(r('components') + '/*.vue') - }) -} diff --git a/src/twitter/lib/directive.ts b/src/twitter/lib/directive.ts deleted file mode 100644 index f20429453..000000000 --- a/src/twitter/lib/directive.ts +++ /dev/null @@ -1,203 +0,0 @@ -import defu from 'defu' -import { $fetch } from 'ohmyfetch/node' -import { setNodeData } from '../../core/parser/markdown/utils' -import parseHtml from './html-parser' - -const SYNDICATION_URL = 'https://syndication.twitter.com' - -export async function fetchTweetHtml(id: string) { - try { - const result = await $fetch(`${SYNDICATION_URL}/tweets.json?ids=${id}`) - return result[id] || {} - } catch (e) { - // eslint-disable-next-line no-console - console.error('Cannot fetch tweet data,' + e) - return {} - } -} - -const get = (obj, key, defu = '') => key.split('.').reduce((o, k) => (o && o[k]) || defu, obj) -const matchScribe = scribe => node => node && node.props && node.props.dataScribe === scribe -const matchClass = cls => node => node && node.props && node.props.className && node.props.className.includes(cls) -function findNode(root, predicate) { - if (!root) { - return - } - const nodes = [...root.nodes] - let theNode - while (nodes.length && !theNode) { - const node = nodes.shift() - if (predicate(node)) { - theNode = node - break - } - nodes.push(...(node.nodes || [])) - } - return theNode -} - -async function fetchTweetAst(id: string, layout = 'tweet', processQuote = true) { - const html = await fetchTweetHtml(id) - if (!html) { - return {} - } - const ast = await parseHtml(html) - return await processTweetAst(ast, layout, processQuote) -} - -async function processTweetAst(ast, layout, processQuote = true) { - const blockquote = findNode(ast, node => node.tag === 'blockquote') - const root = findNode(blockquote, matchScribe('component:tweet')) - const theTweetHeader = findNode(blockquote, matchClass('Tweet-header')) - const theTweet = root.nodes.find(matchClass('e-entry-title')) - const theTweetInfo = root.nodes.find(matchClass('TweetInfo')) - const theTweetCards = root.nodes.filter(matchClass('Tweet-card')) - - const medias = theTweetCards - .filter(card => card.nodes.find(node => matchClass('MediaCard')(node))) - .map(node => findNode(node, matchClass('MediaCard-mediaAsset'))) - - let quotes = [] - if (processQuote) { - const quoteTweets = theTweetCards - .filter(card => card.nodes.find(node => matchClass('QuoteTweet')(node))) - .map(node => findNode(node, matchClass('QuoteTweet-link'))) - .map(node => node.props.dataTweetId) - .map(id => fetchTweetAst(id, 'quote', false)) - - quotes = await Promise.all(quoteTweets) - } - - // tweet data - const id = blockquote.props.dataTweetId - const avatar = get(findNode(theTweetHeader, matchScribe('element:avatar')), 'props.dataSrc-1x') - const name = get(findNode(theTweetHeader, matchScribe('element:name')), 'props.title') - const username = get(findNode(theTweetHeader, matchScribe('element:screen_name')), 'props.title').replace('@', '') - const heartCount = get(findNode(theTweetInfo, matchScribe('element:heart_count')), 'nodes.0', '0') - const dateTime = get(findNode(theTweetInfo, matchScribe('element:full_timestamp')), 'props.dataDatetime', undefined) - const createdAt = new Date(dateTime).getTime() - - return { - id, - quotes, - data: { - layout, - id, - avatar, - name, - 'heart-count': heartCount, - username, - ':created-at': createdAt - }, - children: [ - { - type: 'html', - value: `
    ` - }, - ...mapAST(theTweet.nodes), - ...medias.flatMap(media => mapAST([media])), - { type: 'html', value: '
    ' } - ] - } -} - -function mapAST(ast) { - if (!ast) { - return [{ type: 'html', value: '' }] - } - return ast.flatMap(node => { - if (typeof node === 'string') { - return { type: 'text', value: node } - } - if (node.tag === 'a') { - // do not render anchor link of media grid - if (matchClass('ImageGrid-image')(node)) { - return mapAST(node.nodes) - } - if (matchClass('NaturalImage')(node)) { - return [ - { type: 'html', value: '
    ' }, - ...mapAST(node.nodes), - { type: 'html', value: '
    ' } - ] - } - return [ - { type: 'html', value: `` }, - { type: 'link', target: '_blank', url: node.props.href, children: mapAST(node.nodes) }, - { type: 'html', value: '' } - ] - } - if (node.tag === 'br') { - return { type: 'html', value: '
    ' } - } - if (node.tag === 'img') { - if (matchClass('Emoji--forText')(node)) { - return { - type: 'html', - value: `` - } - } - const { props } = node - return { - type: 'html', - value: `` - } - } - if (node.tag === 'div') { - return [ - { type: 'html', value: `
    ` }, - ...mapAST(node.nodes), - { type: 'html', value: '
    ' } - ] - } - - if (node.tag === 'span') { - if (node.props.className.includes('u-hiddenVisually')) { - return { type: 'html', value: '' } - } - return mapAST(node.nodes) - } - - if (node.tag === 'p') { - return { type: 'paragraph', children: mapAST(node.nodes) } - } - - return { type: 'text', value: '?' } - }) -} - -const tweetCache = {} - -export default async (node, pageData) => { - const id = node.attributes.id - if (!tweetCache[id]) { - try { - tweetCache[id] = await fetchTweetAst(id) - } catch (e) { - // eslint-disable-next-line no-console - console.error(`Cannot fetch tweet ${id}. ${e.message}`) - return { node: { type: 'html', value: `` } } - } - } - const { quotes, data, children } = tweetCache[id] - if (quotes.length) { - children.push( - ...quotes.map(q => { - const qNode = defu(node, {}) - - qNode.children = q.children - Object.entries(q.data).forEach(([key, value]) => { - setNodeData(qNode, key, value, pageData) - }) - return qNode - }) - ) - } - - node.children = children - Object.entries(data).forEach(([key, value]) => { - setNodeData(node, key, value, pageData) - }) -} diff --git a/src/twitter/lib/html-parser.ts b/src/twitter/lib/html-parser.ts deleted file mode 100644 index 8312063e7..000000000 --- a/src/twitter/lib/html-parser.ts +++ /dev/null @@ -1,61 +0,0 @@ -import unified from 'unified' -import parse from 'rehype-parse' - -function rehypeMinify() { - function minifyAst(ast) { - if (Array.isArray(ast)) { - return ast.reduce((nodes, node) => { - const n = minifyAst(node) - // Empty new lines aren't required - const isNoise = n === '\n' && nodes[nodes.length - 1] && nodes[nodes.length - 1].tag !== 'span' - - if (!isNoise) { - nodes.push(n) - } - - return nodes - }, []) - } - // Handle the root ast - if (!ast.tagName && ast.children) { - return minifyAst(ast.children) - } - if (ast.type === 'text') { - return ast.value - } - if (ast.type === 'element') { - const node: any = { tag: ast.tagName } - const children = ast.children && ast.children.length ? minifyAst(ast.children) : [] - - if (ast.properties && Object.keys(ast.properties).length) { - node.props = ast.properties - } - if (ast.data) { - node.data = ast.data - } - if (children.length) { - node.nodes = children - } - - return node - } - - throw new Error(`Unable to handle the following AST: ${JSON.stringify(ast, null, 2)}`) - } - this.Compiler = tree => minifyAst(tree) -} - -let _processor -export default async function parseHtml(file) { - if (!_processor) { - _processor = unified().use(parse).use(rehypeMinify).freeze()() - } - try { - const { result } = await _processor.process(file) - return result.pop() - } catch (error) { - // eslint-disable-next-line no-console - console.error(`HTML to AST error: ${error}`) - throw error - } -} diff --git a/src/types/core.ts b/src/types/core.ts deleted file mode 100644 index 965d904a6..000000000 --- a/src/types/core.ts +++ /dev/null @@ -1,234 +0,0 @@ -import { Context } from '@nuxt/types' -import { Ref } from '@nuxtjs/composition-api' -import { MetaInfo } from 'vue-meta' -import { useDocusApi } from '../core/runtime/composables/api' -import { DefaultThemeSettings } from '../defaultTheme/index.d' -import { DocusRootNode } from './markdown' - -export interface TocLink { - id: string - text: string - depth: number - children?: TocLink[] -} - -export interface Toc { - title: string - depth: number - searchDepth: number - links: TocLink[] -} - -// Navigation -export interface NavItemNavigationConfig { - /** - * Navigation title - */ - title: string - /** - * If set to `false`, the nested pages will not display in Docus navigation menus - */ - nested: boolean - /** - * If set to `true`, other pages will not show in the left menu when user visiting the page or its nested pages. - */ - exclusive: boolean - /** - * If set to `true` in an `index.md`, the category will be collapsed by default in aside navigation. - */ - collapse: boolean - /** - * If set in an `index.md`, the page will redirect to the specified path when loaded, can be useful for empty categories pages. - */ - redirect: string -} - -export interface NavItem extends NavItemNavigationConfig { - /** - * Page slug - */ - slug: string - /** - * full path of page - */ - to: string - /** - * Shows if the page is draft or not - */ - draft?: boolean - /** - * Provide template name that should use to render the page - */ - template?: string - /** - * Shows if this nav belogs to a real page or not - */ - page: boolean - /** - * Small Icon that shows before page title - */ - icon?: string - /** - * If set to `false`, the page will not show in navigation menus - */ - hidden: boolean - /** - * Child pages - */ - children: NavItem[] -} - -export type PermissiveContext = Context & { [key: string]: any } - -export type DocusNavigation = { - [language: string]: NavItem[] -} - -export type DocusCurrentNav = { - title?: string - to?: string - navigation?: NavItemNavigationConfig | false - parent?: NavItem - links: NavItem[] -} - -export interface DocusDocument { - // FrontMatter - title: string - description: string - badge: string - version: number - fullscreen: boolean - head: MetaInfo - position: string - draft: boolean - // Navigation - navigation: NavItemNavigationConfig | false - // url of nearest exclusive parent - // parent uses to filter pages to find currect previous and next page - parent: string - // Template - template: { - self: string - nested: string - [key: string]: any - } - // Layout - layout: { - header: boolean - footer: boolean - aside: boolean - asideClass: string - fluid: boolean - [key: string]: any - } - - // Generated - /** - * If set to `false` the document will not render as a standalone page an can only accessible with `InjectContent` of `$docus` search API - */ - page: boolean - /** - * It will set to `false` if the file does not containts any markdown content - */ - empty: boolean - /** - * The unique key of document (file path) - */ - key: string - /** - * Path of document in the storage. - */ - path: string - /** - * Generated url of document. This url will be used to create anchor links of document. - */ - to: string - /** - * File extension - */ - extension: string - slug: string - toc: false | Toc - language: string - body: DocusRootNode - dir: string - createdAt: Date - updatedAt: Date -} - -export interface DocusSettings { - title: string - contentDir: string - description: string - credits: boolean - url: string - template: string - theme?: T - [key: string]: any -} - -export type DocusState = { - // Core - currentPath: string - currentPage: DocusDocument | null - settings: DocusSettings | null - navigation: DocusNavigation - theme: any - layout: any - // Addons - ui?: any - lastRelease?: any -} - -export interface DocusAddonContext { - ssrContext: Context['ssrContext'] - context: PermissiveContext - state: DocusState - settings: DocusSettings - createQuery: any - api: ReturnType - $nuxt?: any -} - -export type DocusRuntimeInstance = { - settings: Ref> - navigation: Ref - theme: Ref - [key: string]: any -} & ReturnType - -export interface DocusNavigationGetParameters { - depth?: number - locale?: string - from?: string - all?: boolean -} - -export interface Colors { - [key: string]: string | Colors -} - -// Storage -export interface DriverOptions { - ignore?: string[] - mountPoint: string - base: string -} -export interface StorageOptions { - drivers: DriverOptions[] -} - -export interface MarkdownParserOptions { - toc: { - depth: number - searchDepth: number - } - directives: any - remarkPlugins: (string | [string, any])[] - rehypePlugins: (string | [string, any])[] -} - -export interface ParserOptions { - markdown: Partial -} diff --git a/src/types/github.ts b/src/types/github.ts deleted file mode 100644 index c91166310..000000000 --- a/src/types/github.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { DocusRootNode } from './markdown' - -export interface GithubRelease { - name: string - date: number - body: DocusRootNode -} - -export interface GithubReleaseOptions { - apiUrl: string - repo: string - token: string - releases?: boolean -} diff --git a/src/types/index.ts b/src/types/index.ts deleted file mode 100644 index 38f01e91d..000000000 --- a/src/types/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './markdown' -export * from './core' diff --git a/src/types/markdown.ts b/src/types/markdown.ts deleted file mode 100644 index f052d6794..000000000 --- a/src/types/markdown.ts +++ /dev/null @@ -1,20 +0,0 @@ -export interface DocusMarkdownNode { - type: string - tag?: string - value?: string - props?: { - [key: string]: any - } - content?: any - children?: DocusMarkdownNode[] -} - -export interface DocusMarkdownHtmlNode extends DocusMarkdownNode { - type: 'html' - value: string -} - -export interface DocusRootNode { - type: 'root' - children: DocusMarkdownNode[] -} diff --git a/src/types/social-image.ts b/src/types/social-image.ts deleted file mode 100644 index e3126d016..000000000 --- a/src/types/social-image.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { BrowserLaunchArgumentOptions, ConnectOptions, LaunchOptions } from 'puppeteer-core' - -export interface ScreenshotCandidate { - route: string - title: string - description: string - imageName: string -} - -export interface ScreenshotCandidates { - [key: string]: ScreenshotCandidate -} - -export interface SocialImageModuleOptions { - baseUrl?: string - outDir: string - chrome: (LaunchOptions & BrowserLaunchArgumentOptions) | ConnectOptions -} diff --git a/src/types/vue-shim.d.ts b/src/types/vue-shim.d.ts deleted file mode 100644 index d9f24faa4..000000000 --- a/src/types/vue-shim.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -declare module '*.vue' { - import Vue from 'vue' - export default Vue -} diff --git a/tsconfig.json b/tsconfig.json index 73becb832..c0fe35555 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,23 +1,10 @@ { "compilerOptions": { - "baseUrl": ".", - "rootDir": ".", - "outDir": "./dist", - "strict": false, - "sourceMap": true, - "target": "ESNext", - "allowJs": true, - "module": "CommonJS", + "module": "es2022", "moduleResolution": "Node", - "lib": ["ESNext", "DOM"], - "esModuleInterop": true, - "noUnusedLocals": true, - "resolveJsonModule": true, - "allowSyntheticDefaultImports": true, - "types": ["@types/node", "@nuxt/types", "nuxt-i18n", "nuxt-windicss"], - "paths": { - "src/*": ["./src/*"] - } + "resolveJsonModule": true }, - "include": ["src/**/*", "src/index.ts"] + "include": [ + "packages/**/*" + ] } diff --git a/turbo.json b/turbo.json new file mode 100644 index 000000000..1b396dfdc --- /dev/null +++ b/turbo.json @@ -0,0 +1,31 @@ +{ + "$schema": "https://turborepo.org/schema.json", + "baseBranch": "origin/dev", + "pipeline": { + "build": { + "dependsOn": ["^build"], + "outputs": [".output/**", ".nuxt/**"] + }, + "test": { + "dependsOn": ["^build"], + "outputs": [] + }, + "lint": { + "outputs": [] + }, + "release": { + "dependsOn": ["^build"], + "cache": false + }, + "release:edge": { + "dependsOn": [], + "cache": false + }, + "dev": { + "cache": false + }, + "prepare": { + "cache": false + } + } +} diff --git a/vercel.json b/vercel.json new file mode 100644 index 000000000..7ae9a3de5 --- /dev/null +++ b/vercel.json @@ -0,0 +1,5 @@ +{ + "github": { + "silent": true + } +} diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 847e63b00..000000000 --- a/yarn.lock +++ /dev/null @@ -1,14274 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@algolia/cache-browser-local-storage@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.9.1.tgz#784e91580dcca00a8280b0905197f5abbbdf4b48" - integrity sha512-bAUU9vKCy45uTTlzJw0LYu1IjoZsmzL6lgjaVFaW1crhX/4P+JD5ReQv3n/wpiXSFaHq1WEO3WyH2g3ymzeipQ== - dependencies: - "@algolia/cache-common" "4.9.1" - -"@algolia/cache-common@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.9.1.tgz#2d5f37ba7aab7db76627c4a4fce51a7fd137fa65" - integrity sha512-tcvw4mOfFy44V4ZxDEy9wNGr6vFROZKRpXKTEBgdw/WBn6mX51H1ar4RWtceDEcDU4H5fIv5tsY3ip2hU+fTPg== - -"@algolia/cache-in-memory@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.9.1.tgz#3fd1d67aec804b6cc8439015b8b9c712a45c7ae0" - integrity sha512-IEJrHonvdymW2CnRfJtsTVWyfAH05xPEFkGXGCw00+6JNCj8Dln3TeaRLiaaY1srlyGedkemekQm1/Xb46CGOQ== - dependencies: - "@algolia/cache-common" "4.9.1" - -"@algolia/client-account@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.9.1.tgz#f2c1b3e49de2ee1fca44b8b5e64e1ce0dbdff0db" - integrity sha512-Shpjeuwb7i2LR5QuWREb6UbEQLGB+Pl/J5+wPgILJDP/uWp7jpl0ase9mYNQGKj7TjztpSpQCPZ3dSHPnzZPfw== - dependencies: - "@algolia/client-common" "4.9.1" - "@algolia/client-search" "4.9.1" - "@algolia/transporter" "4.9.1" - -"@algolia/client-analytics@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.9.1.tgz#56972496526910c53c5ce7844f4571efba63eb5f" - integrity sha512-/g6OkOSIA+A0t/tjvbL6iG/zV4El4LPFgv/tcAYHTH27BmlNtnEXw+iFpGjeUlQoPily9WVB3QNLMJkaNwL3HA== - dependencies: - "@algolia/client-common" "4.9.1" - "@algolia/client-search" "4.9.1" - "@algolia/requester-common" "4.9.1" - "@algolia/transporter" "4.9.1" - -"@algolia/client-common@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.9.1.tgz#ae313b65d3249efcb4fafd2e92ed1fa2fd075482" - integrity sha512-UziRTZ8km3qwoVPIyEre8TV6V+MX7UtbfVqPmSafZ0xu41UUZ+sL56YoKjOXkbKuybeIC9prXMGy/ID5bXkTqg== - dependencies: - "@algolia/requester-common" "4.9.1" - "@algolia/transporter" "4.9.1" - -"@algolia/client-recommendation@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/client-recommendation/-/client-recommendation-4.9.1.tgz#217af2a38d37ab12cf23a419cc9a576af9d15b13" - integrity sha512-Drtvvm1PNIOpYf4HFlkPFstFQ3IsN+TRmxur2F7y6Faplb5ybISa8ithu1tmlTdyTf3A78hQUQjgJet6qD2XZw== - dependencies: - "@algolia/client-common" "4.9.1" - "@algolia/requester-common" "4.9.1" - "@algolia/transporter" "4.9.1" - -"@algolia/client-search@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.9.1.tgz#a2fbc47a1b343dade9a8b06310231d51ff675b1b" - integrity sha512-r9Cw2r8kJr45iYncFDht6EshARghU265wuY8Q8oHrpFHjAziEYdsUOdNmQKbsSH5J3gLjDPx1EI5DzVd6ivn3w== - dependencies: - "@algolia/client-common" "4.9.1" - "@algolia/requester-common" "4.9.1" - "@algolia/transporter" "4.9.1" - -"@algolia/logger-common@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.9.1.tgz#3323834095f2916338d2535d2df91c4723ac19f2" - integrity sha512-9mPrbFlFyPT7or/7PXTiJjyOewWB9QRkZKVXkt5zHAUiUzGxmmdpJIGpPv3YQnDur8lXrXaRI0MHXUuIDMY1ng== - -"@algolia/logger-console@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.9.1.tgz#c324ef26843dbed06b44586309331dbb949744ad" - integrity sha512-74VUwjtFjFpjZpi3QoHIPv0kcr3vWUSHX/Vs8PJW3lPsD4CgyhFenQbG9v+ZnyH0JrJwiYTtzfmrVh7IMWZGrQ== - dependencies: - "@algolia/logger-common" "4.9.1" - -"@algolia/requester-browser-xhr@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.9.1.tgz#0812f3c7c4105a4646c0fba8429b172b2d0e01c5" - integrity sha512-zc46tk5o0ikOAz3uYiRAMxC2iVKAMFKT7nNZnLB5IzT0uqAh7pz/+D/UvIxP4bKmsllpBSnPcpfQF+OI4Ag/BA== - dependencies: - "@algolia/requester-common" "4.9.1" - -"@algolia/requester-common@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.9.1.tgz#50fcf4c7c1ed7ae13159167ac1da2844d036a630" - integrity sha512-9hPgXnlCSbqJqF69M5x5WN3h51Dc+mk/iWNeJSVxExHGvCDfBBZd0v6S15i8q2a9cD1I2RnhMpbnX5BmGtabVA== - -"@algolia/requester-node-http@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.9.1.tgz#70054a0aa5643072404fcb68042eec97c7abd1c8" - integrity sha512-vYNVbSCuyrCSCjHBQJk+tLZtWCjvvDf5tSbRJjyJYMqpnXuIuP7gZm24iHil4NPYBhbBj5NU2ZDAhc/gTn75Ag== - dependencies: - "@algolia/requester-common" "4.9.1" - -"@algolia/transporter@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.9.1.tgz#63ef3d9ae3b6556fa1ff1e6265bbab482bd084b7" - integrity sha512-AbjFfGzX+cAuj7Qyc536OxIQzjFOA5FU2ANGStx8LBH+AKXScwfkx67C05riuaRR5adSCLMSEbVvUscH0nF+6A== - dependencies: - "@algolia/cache-common" "4.9.1" - "@algolia/logger-common" "4.9.1" - "@algolia/requester-common" "4.9.1" - -"@antfu/utils@^0.2.3", "@antfu/utils@^0.2.4": - version "0.2.4" - resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-0.2.4.tgz#c7d33fc6faa0d3a6fcc2555673f5e9b19c0fbc15" - integrity sha512-2bZNkVfL9IZESmvE26UKi8SzyvSoaIsGXDcnbHFMtmGMqUiB1fXpAJ1ijGf+tSqKRQ5yagck2U1Qk0p+705/kw== - dependencies: - "@types/throttle-debounce" "^2.1.0" - -"@babel/code-frame@7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" - integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== - dependencies: - "@babel/highlight" "^7.10.4" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.8.3": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" - integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== - dependencies: - "@babel/highlight" "^7.12.13" - -"@babel/code-frame@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" - integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== - dependencies: - "@babel/highlight" "^7.14.5" - -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.13.15": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.0.tgz#a901128bce2ad02565df95e6ecbf195cf9465919" - integrity sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q== - -"@babel/compat-data@^7.14.4": - version "7.14.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.4.tgz#45720fe0cecf3fd42019e1d12cc3d27fadc98d58" - integrity sha512-i2wXrWQNkH6JplJQGn3Rd2I4Pij8GdHkXwHMxm+zV5YG/Jci+bCNrWZEWC4o+umiDkRrRs4dVzH3X4GP7vyjQQ== - -"@babel/core@^7.11.6", "@babel/core@^7.12.16": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.0.tgz#47299ff3ec8d111b493f1a9d04bf88c04e728d88" - integrity sha512-8YqpRig5NmIHlMLw09zMlPTvUVMILjqCOtVgu+TVNWEBvy9b5I3RRyhqnrV4hjgEK7n8P9OqvkWJAFmEL6Wwfw== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.14.0" - "@babel/helper-compilation-targets" "^7.13.16" - "@babel/helper-module-transforms" "^7.14.0" - "@babel/helpers" "^7.14.0" - "@babel/parser" "^7.14.0" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.14.0" - "@babel/types" "^7.14.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - source-map "^0.5.0" - -"@babel/core@^7.14.3": - version "7.14.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.3.tgz#5395e30405f0776067fbd9cf0884f15bfb770a38" - integrity sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.14.3" - "@babel/helper-compilation-targets" "^7.13.16" - "@babel/helper-module-transforms" "^7.14.2" - "@babel/helpers" "^7.14.0" - "@babel/parser" "^7.14.3" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.14.2" - "@babel/types" "^7.14.2" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - source-map "^0.5.0" - -"@babel/eslint-parser@^7.12.16": - version "7.13.14" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.13.14.tgz#f80fd23bdd839537221914cb5d17720a5ea6ba3a" - integrity sha512-I0HweR36D73Ibn/FfrRDMKlMqJHFwidIUgYdMpH+aXYuQC+waq59YaJ6t9e9N36axJ82v1jR041wwqDrDXEwRA== - dependencies: - eslint-scope "^5.1.0" - eslint-visitor-keys "^1.3.0" - semver "^6.3.0" - -"@babel/generator@^7.14.0": - version "7.14.1" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.1.tgz#1f99331babd65700183628da186f36f63d615c93" - integrity sha512-TMGhsXMXCP/O1WtQmZjpEYDhCYC9vFhayWZPJSZCGkPJgUqX0rF0wwtrYvnzVxIjcF80tkUertXVk5cwqi5cAQ== - dependencies: - "@babel/types" "^7.14.1" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/generator@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.2.tgz#d5773e8b557d421fd6ce0d5efa5fd7fc22567c30" - integrity sha512-OnADYbKrffDVai5qcpkMxQ7caomHOoEwjkouqnN2QhydAjowFAZcsdecFIRUBdb+ZcruwYE4ythYmF1UBZU5xQ== - dependencies: - "@babel/types" "^7.14.2" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/generator@^7.14.3": - version "7.14.3" - resolved "https://registry.yarnpkg.com/@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/generator@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.5.tgz#848d7b9f031caca9d0cd0af01b063f226f52d785" - integrity sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA== - dependencies: - "@babel/types" "^7.14.5" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab" - integrity sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz#6bc20361c88b0a74d05137a65cac8d3cbf6f61fc" - integrity sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.12.13" - "@babel/types" "^7.12.13" - -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.16": - version "7.13.16" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz#6e91dccf15e3f43e5556dffe32d860109887563c" - integrity sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA== - dependencies: - "@babel/compat-data" "^7.13.15" - "@babel/helper-validator-option" "^7.12.17" - browserslist "^4.14.5" - semver "^6.3.0" - -"@babel/helper-compilation-targets@^7.14.4": - version "7.14.4" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.4.tgz#33ebd0ffc34248051ee2089350a929ab02f2a516" - integrity sha512-JgdzOYZ/qGaKTVkn5qEDV/SXAh8KcyUVkCoSWGN8T3bwrgd6m+/dJa2kVGi6RJYJgEYPBdZ84BZp9dUjNWkBaA== - dependencies: - "@babel/compat-data" "^7.14.4" - "@babel/helper-validator-option" "^7.12.17" - browserslist "^4.16.6" - semver "^6.3.0" - -"@babel/helper-create-class-features-plugin@^7.13.0", "@babel/helper-create-class-features-plugin@^7.14.0": - version "7.14.1" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.1.tgz#1fe11b376f3c41650ad9fedc665b0068722ea76c" - integrity sha512-r8rsUahG4ywm0QpGcCrLaUSOuNAISR3IZCg4Fx05Ozq31aCUrQsTLH6KPxy0N5ULoQ4Sn9qjNdGNtbPWAC6hYg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-member-expression-to-functions" "^7.13.12" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/helper-replace-supers" "^7.13.12" - "@babel/helper-split-export-declaration" "^7.12.13" - -"@babel/helper-create-class-features-plugin@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.2.tgz#4e455b0329af29c2d3ad254b5dd5aed34595385d" - integrity sha512-6YctwVsmlkchxfGUogvVrrhzyD3grFJyluj5JgDlQrwfMLJSt5tdAzFZfPf4H2Xoi5YLcQ6BxfJlaOBHuctyIw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-function-name" "^7.14.2" - "@babel/helper-member-expression-to-functions" "^7.13.12" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/helper-replace-supers" "^7.13.12" - "@babel/helper-split-export-declaration" "^7.12.13" - -"@babel/helper-create-class-features-plugin@^7.14.3": - version "7.14.4" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.4.tgz#abf888d836a441abee783c75229279748705dc42" - integrity sha512-idr3pthFlDCpV+p/rMgGLGYIVtazeatrSOQk8YzO2pAepIjQhCN3myeihVg58ax2bbbGK9PUE1reFi7axOYIOw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-function-name" "^7.14.2" - "@babel/helper-member-expression-to-functions" "^7.13.12" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/helper-replace-supers" "^7.14.4" - "@babel/helper-split-export-declaration" "^7.12.13" - -"@babel/helper-create-regexp-features-plugin@^7.12.13": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz#a2ac87e9e319269ac655b8d4415e94d38d663cb7" - integrity sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - regexpu-core "^4.7.1" - -"@babel/helper-define-polyfill-provider@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz#a640051772045fedaaecc6f0c6c69f02bdd34bf1" - integrity sha512-JT8tHuFjKBo8NnaUbblz7mIu1nnvUDiHVjXXkulZULyidvo/7P6TY7+YqpV37IfF+KUFxmlK04elKtGKXaiVgw== - dependencies: - "@babel/helper-compilation-targets" "^7.13.0" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/traverse" "^7.13.0" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" - -"@babel/helper-explode-assignable-expression@^7.12.13": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz#17b5c59ff473d9f956f40ef570cf3a76ca12657f" - integrity sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA== - dependencies: - "@babel/types" "^7.13.0" - -"@babel/helper-function-name@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a" - integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== - dependencies: - "@babel/helper-get-function-arity" "^7.12.13" - "@babel/template" "^7.12.13" - "@babel/types" "^7.12.13" - -"@babel/helper-function-name@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@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-function-name@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4" - integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ== - dependencies: - "@babel/helper-get-function-arity" "^7.14.5" - "@babel/template" "^7.14.5" - "@babel/types" "^7.14.5" - -"@babel/helper-get-function-arity@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@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-get-function-arity@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" - integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg== - dependencies: - "@babel/types" "^7.14.5" - -"@babel/helper-hoist-variables@^7.13.0": - version "7.13.16" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz#1b1651249e94b51f8f0d33439843e33e39775b30" - integrity sha512-1eMtTrXtrwscjcAeO4BVK+vvkxaLJSPFz1w1KLawz6HLNi9bPFGBNwwDyVfiu1Tv/vRRFYfoGaKhmAQPGPn5Wg== - dependencies: - "@babel/traverse" "^7.13.15" - "@babel/types" "^7.13.16" - -"@babel/helper-hoist-variables@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d" - integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ== - dependencies: - "@babel/types" "^7.14.5" - -"@babel/helper-member-expression-to-functions@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72" - integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw== - dependencies: - "@babel/types" "^7.13.12" - -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977" - integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA== - dependencies: - "@babel/types" "^7.13.12" - -"@babel/helper-module-transforms@^7.13.0", "@babel/helper-module-transforms@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.0.tgz#8fcf78be220156f22633ee204ea81f73f826a8ad" - integrity sha512-L40t9bxIuGOfpIGA3HNkJhU9qYrf4y5A5LUSw7rGMSn+pcG8dfJ0g6Zval6YJGd2nEjI7oP00fRdnhLKndx6bw== - dependencies: - "@babel/helper-module-imports" "^7.13.12" - "@babel/helper-replace-supers" "^7.13.12" - "@babel/helper-simple-access" "^7.13.12" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/helper-validator-identifier" "^7.14.0" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.14.0" - "@babel/types" "^7.14.0" - -"@babel/helper-module-transforms@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz#ac1cc30ee47b945e3e0c4db12fa0c5389509dfe5" - integrity sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA== - dependencies: - "@babel/helper-module-imports" "^7.13.12" - "@babel/helper-replace-supers" "^7.13.12" - "@babel/helper-simple-access" "^7.13.12" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/helper-validator-identifier" "^7.14.0" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.14.2" - "@babel/types" "^7.14.2" - -"@babel/helper-optimise-call-expression@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea" - integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af" - integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== - -"@babel/helper-remap-async-to-generator@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz#376a760d9f7b4b2077a9dd05aa9c3927cadb2209" - integrity sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-wrap-function" "^7.13.0" - "@babel/types" "^7.13.0" - -"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz#6442f4c1ad912502481a564a7386de0c77ff3804" - integrity sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.13.12" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.12" - -"@babel/helper-replace-supers@^7.14.4": - version "7.14.4" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.4.tgz#b2ab16875deecfff3ddfcd539bc315f72998d836" - integrity sha512-zZ7uHCWlxfEAAOVDYQpEf/uyi1dmeC7fX4nCf2iz9drnCwi1zvwXL3HwWWNXUQEJ1k23yVn3VbddiI9iJEXaTQ== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.13.12" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/traverse" "^7.14.2" - "@babel/types" "^7.14.4" - -"@babel/helper-simple-access@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6" - integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA== - dependencies: - "@babel/types" "^7.13.12" - -"@babel/helper-skip-transparent-expression-wrappers@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" - integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== - dependencies: - "@babel/types" "^7.12.1" - -"@babel/helper-split-export-declaration@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@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-split-export-declaration@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a" - integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA== - dependencies: - "@babel/types" "^7.14.5" - -"@babel/helper-validator-identifier@^7.12.11", "@babel/helper-validator-identifier@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" - integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== - -"@babel/helper-validator-identifier@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" - integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== - -"@babel/helper-validator-option@^7.12.17": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" - integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== - -"@babel/helper-wrap-function@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz#bdb5c66fda8526ec235ab894ad53a1235c79fcc4" - integrity sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA== - dependencies: - "@babel/helper-function-name" "^7.12.13" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" - -"@babel/helpers@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@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.10.4", "@babel/highlight@^7.12.13": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@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/highlight@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" - integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== - dependencies: - "@babel/helper-validator-identifier" "^7.14.5" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.12.0", "@babel/parser@^7.12.13", "@babel/parser@^7.13.10", "@babel/parser@^7.13.12", "@babel/parser@^7.13.9", "@babel/parser@^7.14.0", "@babel/parser@^7.6.0", "@babel/parser@^7.7.0", "@babel/parser@^7.9.6": - version "7.14.1" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.1.tgz#1bd644b5db3f5797c4479d89ec1817fe02b84c47" - integrity sha512-muUGEKu8E/ftMTPlNp+mc6zL3E9zKWmF5sDHZ5MSsoTP9Wyz64AhEf9kD08xYJ7w6Hdcu8H550ircnPyWSIF0Q== - -"@babel/parser@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.2.tgz#0c1680aa44ad4605b16cbdcc5c341a61bde9c746" - integrity sha512-IoVDIHpsgE/fu7eXBeRWt8zLbDrSvD7H1gpomOkPpBoEN8KCruCqSDdqo8dddwQQrui30KSvQBaMUOJiuFu6QQ== - -"@babel/parser@^7.14.3": - version "7.14.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.3.tgz#9b530eecb071fd0c93519df25c5ff9f14759f298" - integrity sha512-7MpZDIfI7sUC5zWo2+foJ50CSI5lcqDehZ0lVgIhSi4bFEk94fLAKlF3Q0nzSQQ+ca0lm+O6G9ztKVBeu8PMRQ== - -"@babel/parser@^7.14.5", "@babel/parser@^7.14.7": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.7.tgz#6099720c8839ca865a2637e6c85852ead0bdb595" - integrity sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA== - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz#a3484d84d0b549f3fc916b99ee4783f26fabad2a" - integrity sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" - "@babel/plugin-proposal-optional-chaining" "^7.13.12" - -"@babel/plugin-proposal-async-generator-functions@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.2.tgz#3a2085abbf5d5f962d480dbc81347385ed62eb1e" - integrity sha512-b1AM4F6fwck4N8ItZ/AtC4FP/cqZqmKRQ4FaTDutwSYyjuhtvsGEMLK4N/ztV/ImP40BjIDyMgBQAeAMsQYVFQ== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-remap-async-to-generator" "^7.13.0" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-proposal-class-properties@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz#146376000b94efd001e57a40a88a525afaab9f37" - integrity sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-proposal-class-static-block@^7.14.3": - version "7.14.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.3.tgz#5a527e2cae4a4753119c3a3e7f64ecae8ccf1360" - integrity sha512-HEjzp5q+lWSjAgJtSluFDrGGosmwTgKwCXdDQZvhKsRlwv3YdkUEqxNrrjesJd+B9E9zvr1PVPVBvhYZ9msjvQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.14.3" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-class-static-block" "^7.12.13" - -"@babel/plugin-proposal-decorators@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.14.2.tgz#e68c3c5e4a6a08834456568256fc3e71b93590cf" - integrity sha512-LauAqDd/VjQDtae58QgBcEOE42NNP+jB2OE+XeC3KBI/E+BhhRjtr5viCIrj1hmu1YvrguLipIPRJZmS5yUcFw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.14.2" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-decorators" "^7.12.13" - -"@babel/plugin-proposal-dynamic-import@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.2.tgz#01ebabd7c381cff231fa43e302939a9de5be9d9f" - integrity sha512-oxVQZIWFh91vuNEMKltqNsKLFWkOIyJc95k2Gv9lWVyDfPUQGSSlbDEgWuJUU1afGE9WwlzpucMZ3yDRHIItkA== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-namespace-from@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.2.tgz#62542f94aa9ce8f6dba79eec698af22112253791" - integrity sha512-sRxW3z3Zp3pFfLAgVEvzTFutTXax837oOatUIvSG9o5gRj9mKwm3br1Se5f4QalTQs9x4AzlA/HrCWbQIHASUQ== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.2.tgz#830b4e2426a782e8b2878fbfe2cba85b70cbf98c" - integrity sha512-w2DtsfXBBJddJacXMBhElGEYqCZQqN99Se1qeYn8DVLB33owlrlLftIbMzn5nz1OITfDVknXF433tBrLEAOEjA== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.2.tgz#222348c080a1678e0e74ea63fe76f275882d1fd7" - integrity sha512-1JAZtUrqYyGsS7IDmFeaem+/LJqujfLZ2weLR9ugB0ufUPjzf8cguyVT1g5im7f7RXxuLq1xUxEzvm68uYRtGg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.2.tgz#425b11dc62fc26939a2ab42cbba680bdf5734546" - integrity sha512-ebR0zU9OvI2N4qiAC38KIAK75KItpIPTpAtd2r4OZmMFeKbKJpUFLYP2EuDut82+BmYi8sz42B+TfTptJ9iG5Q== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-numeric-separator@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.2.tgz#82b4cc06571143faf50626104b335dd71baa4f9e" - integrity sha512-DcTQY9syxu9BpU3Uo94fjCB3LN9/hgPS8oUL7KrSW3bA2ePrKZZPJcc5y0hoJAM9dft3pGfErtEUvxXQcfLxUg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.14.4": - version "7.14.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.4.tgz#0e2b4de419915dc0b409378e829412e2031777c4" - integrity sha512-AYosOWBlyyXEagrPRfLJ1enStufsr7D1+ddpj8OLi9k7B6+NdZ0t/9V7Fh+wJ4g2Jol8z2JkgczYqtWrZd4vbA== - dependencies: - "@babel/compat-data" "^7.14.4" - "@babel/helper-compilation-targets" "^7.14.4" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.14.2" - -"@babel/plugin-proposal-optional-catch-binding@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.2.tgz#150d4e58e525b16a9a1431bd5326c4eed870d717" - integrity sha512-XtkJsmJtBaUbOxZsNk0Fvrv8eiqgneug0A6aqLFZ4TSkar2L5dSXWcnUKHgmjJt49pyB/6ZHvkr3dPgl9MOWRQ== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz#ba9feb601d422e0adea6760c2bd6bbb7bfec4866" - integrity sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.2.tgz#df8171a8b9c43ebf4c1dabe6311b432d83e1b34e" - integrity sha512-qQByMRPwMZJainfig10BoaDldx/+VDtNcrA7qdNaEOAj6VXud+gfrkA8j4CRAU5HjnWREXqIpSpH30qZX1xivA== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-private-methods@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz#04bd4c6d40f6e6bbfa2f57e2d8094bad900ef787" - integrity sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-proposal-private-property-in-object@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz#b1a1f2030586b9d3489cc26179d2eb5883277636" - integrity sha512-59ANdmEwwRUkLjB7CRtwJxxwtjESw+X2IePItA+RGQh+oy5RmpCh/EvVVvh5XQc3yxsm5gtv0+i9oBZhaDNVTg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-create-class-features-plugin" "^7.14.0" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-private-property-in-object" "^7.14.0" - -"@babel/plugin-proposal-unicode-property-regex@^7.12.13", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba" - integrity sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-class-static-block@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.12.13.tgz#8e3d674b0613e67975ceac2776c97b60cafc5c9c" - integrity sha512-ZmKQ0ZXR0nYpHZIIuj9zE7oIqCx2hw9TKi+lIo73NNrMPAZGHfS92/VRV0ZmPj6H2ffBgyFHXvJ5NYsNeEaP2A== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-decorators@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.13.tgz#fac829bf3c7ef4a1bc916257b403e58c6bdaf648" - integrity sha512-Rw6aIXGuqDLr6/LoBBYE57nKOzQpz/aDkKlMqEwH+Vp0MXbG6H/TfRjaY343LKxzAKAMXIHsQ8JzaZKuDZ9MwA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.2.0": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz#044fb81ebad6698fe62c478875575bcbb9b70f15" - integrity sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-private-property-in-object@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.0.tgz#762a4babec61176fec6c88480dec40372b140c0b" - integrity sha512-bda3xF8wGl5/5btF794utNOL0Jw+9jE5C1sLZcoK7c4uonE/y3iQiyG+KbkF3WBV/paX58VCpjhxLPkdj5Fe4w== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-syntax-top-level-await@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178" - integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-typescript@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz#9dff111ca64154cef0f4dc52cf843d9f12ce4474" - integrity sha512-cHP3u1JiUiG2LFDKbXnwVad81GvfyIOmCD6HIEId6ojrY0Drfy2q1jw7BwN7dE84+kTnBjLkXoL3IEy/3JPu2w== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-arrow-functions@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz#10a59bebad52d637a027afa692e8d5ceff5e3dae" - integrity sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-async-to-generator@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz#8e112bf6771b82bf1e974e5e26806c5c99aa516f" - integrity sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg== - dependencies: - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-remap-async-to-generator" "^7.13.0" - -"@babel/plugin-transform-block-scoped-functions@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz#a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4" - integrity sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-block-scoping@^7.14.4": - version "7.14.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.4.tgz#caf140b0b2e2462c509553d140e6d0abefb61ed8" - integrity sha512-5KdpkGxsZlTk+fPleDtGKsA+pon28+ptYmMO8GBSa5fHERCJWAzj50uAfCKBqq42HO+Zot6JF1x37CRprwmN4g== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-classes@^7.14.4": - version "7.14.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.4.tgz#a83c15503fc71a0f99e876fdce7dadbc6575ec3a" - integrity sha512-p73t31SIj6y94RDVX57rafVjttNr8MvKEgs5YFatNB/xC68zM3pyosuOEcQmYsYlyQaGY9R7rAULVRcat5FKJQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-function-name" "^7.14.2" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-replace-supers" "^7.14.4" - "@babel/helper-split-export-declaration" "^7.12.13" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz#845c6e8b9bb55376b1fa0b92ef0bdc8ea06644ed" - integrity sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-destructuring@^7.14.4": - version "7.14.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.4.tgz#acbec502e9951f30f4441eaca1d2f29efade59ed" - integrity sha512-JyywKreTCGTUsL1OKu1A3ms/R1sTP0WxbpXlALeGzF53eB3bxtNkYdMj9SDgK7g6ImPy76J5oYYKoTtQImlhQA== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-dotall-regex@^7.12.13", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz#3f1601cc29905bfcb67f53910f197aeafebb25ad" - integrity sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-duplicate-keys@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz#6f06b87a8b803fd928e54b81c258f0a0033904de" - integrity sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-exponentiation-operator@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz#4d52390b9a273e651e4aba6aee49ef40e80cd0a1" - integrity sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-for-of@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz#c799f881a8091ac26b54867a845c3e97d2696062" - integrity sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-function-name@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz#bb024452f9aaed861d374c8e7a24252ce3a50051" - integrity sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ== - dependencies: - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-literals@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz#2ca45bafe4a820197cf315794a4d26560fe4bdb9" - integrity sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-member-expression-literals@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz#5ffa66cd59b9e191314c9f1f803b938e8c081e40" - integrity sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-modules-amd@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.2.tgz#6622806fe1a7c07a1388444222ef9535f2ca17b0" - integrity sha512-hPC6XBswt8P3G2D1tSV2HzdKvkqOpmbyoy+g73JG0qlF/qx2y3KaMmXb1fLrpmWGLZYA0ojCvaHdzFWjlmV+Pw== - dependencies: - "@babel/helper-module-transforms" "^7.14.2" - "@babel/helper-plugin-utils" "^7.13.0" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-commonjs@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz#52bc199cb581e0992edba0f0f80356467587f161" - integrity sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ== - dependencies: - "@babel/helper-module-transforms" "^7.14.0" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-simple-access" "^7.13.12" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-systemjs@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz#6d066ee2bff3c7b3d60bf28dec169ad993831ae3" - integrity sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A== - dependencies: - "@babel/helper-hoist-variables" "^7.13.0" - "@babel/helper-module-transforms" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-validator-identifier" "^7.12.11" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-umd@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz#2f8179d1bbc9263665ce4a65f305526b2ea8ac34" - integrity sha512-nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw== - dependencies: - "@babel/helper-module-transforms" "^7.14.0" - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz#2213725a5f5bbbe364b50c3ba5998c9599c5c9d9" - integrity sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - -"@babel/plugin-transform-new-target@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz#e22d8c3af24b150dd528cbd6e685e799bf1c351c" - integrity sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-object-super@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz#b4416a2d63b8f7be314f3d349bd55a9c1b5171f7" - integrity sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/helper-replace-supers" "^7.12.13" - -"@babel/plugin-transform-parameters@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.2.tgz#e4290f72e0e9e831000d066427c4667098decc31" - integrity sha512-NxoVmA3APNCC1JdMXkdYXuQS+EMdqy0vIwyDHeKHiJKRxmp1qGSdb0JLEIoPRhkx6H/8Qi3RJ3uqOCYw8giy9A== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-property-literals@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz#4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81" - integrity sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-regenerator@^7.13.15": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz#e5eb28945bf8b6563e7f818945f966a8d2997f39" - integrity sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ== - dependencies: - regenerator-transform "^0.14.2" - -"@babel/plugin-transform-reserved-words@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695" - integrity sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-runtime@^7.14.3": - version "7.14.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.14.3.tgz#1fd885a2d0de1d3c223795a4e9be72c2db4515cf" - integrity sha512-t960xbi8wpTFE623ef7sd+UpEC5T6EEguQlTBJDEO05+XwnIWVfuqLw/vdLWY6IdFmtZE+65CZAfByT39zRpkg== - dependencies: - "@babel/helper-module-imports" "^7.13.12" - "@babel/helper-plugin-utils" "^7.13.0" - babel-plugin-polyfill-corejs2 "^0.2.0" - babel-plugin-polyfill-corejs3 "^0.2.0" - babel-plugin-polyfill-regenerator "^0.2.0" - semver "^6.3.0" - -"@babel/plugin-transform-shorthand-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz#db755732b70c539d504c6390d9ce90fe64aff7ad" - integrity sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-spread@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz#84887710e273c1815ace7ae459f6f42a5d31d5fd" - integrity sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" - -"@babel/plugin-transform-sticky-regex@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz#760ffd936face73f860ae646fb86ee82f3d06d1f" - integrity sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-template-literals@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz#a36049127977ad94438dee7443598d1cefdf409d" - integrity sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-typeof-symbol@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz#785dd67a1f2ea579d9c2be722de8c84cb85f5a7f" - integrity sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-typescript@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.13.0.tgz#4a498e1f3600342d2a9e61f60131018f55774853" - integrity sha512-elQEwluzaU8R8dbVuW2Q2Y8Nznf7hnjM7+DSCd14Lo5fF63C9qNLbwZYbmZrtV9/ySpSUpkRpQXvJb6xyu4hCQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-typescript" "^7.12.13" - -"@babel/plugin-transform-unicode-escapes@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz#840ced3b816d3b5127dd1d12dcedc5dead1a5e74" - integrity sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-unicode-regex@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz#b52521685804e155b1202e83fc188d34bb70f5ac" - integrity sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/preset-env@^7.14.4": - version "7.14.4" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.4.tgz#73fc3228c59727e5e974319156f304f0d6685a2d" - integrity sha512-GwMMsuAnDtULyOtuxHhzzuSRxFeP0aR/LNzrHRzP8y6AgDNgqnrfCCBm/1cRdTU75tRs28Eh76poHLcg9VF0LA== - dependencies: - "@babel/compat-data" "^7.14.4" - "@babel/helper-compilation-targets" "^7.14.4" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-validator-option" "^7.12.17" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.13.12" - "@babel/plugin-proposal-async-generator-functions" "^7.14.2" - "@babel/plugin-proposal-class-properties" "^7.13.0" - "@babel/plugin-proposal-class-static-block" "^7.14.3" - "@babel/plugin-proposal-dynamic-import" "^7.14.2" - "@babel/plugin-proposal-export-namespace-from" "^7.14.2" - "@babel/plugin-proposal-json-strings" "^7.14.2" - "@babel/plugin-proposal-logical-assignment-operators" "^7.14.2" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.2" - "@babel/plugin-proposal-numeric-separator" "^7.14.2" - "@babel/plugin-proposal-object-rest-spread" "^7.14.4" - "@babel/plugin-proposal-optional-catch-binding" "^7.14.2" - "@babel/plugin-proposal-optional-chaining" "^7.14.2" - "@babel/plugin-proposal-private-methods" "^7.13.0" - "@babel/plugin-proposal-private-property-in-object" "^7.14.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.12.13" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.12.13" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.0" - "@babel/plugin-syntax-top-level-await" "^7.12.13" - "@babel/plugin-transform-arrow-functions" "^7.13.0" - "@babel/plugin-transform-async-to-generator" "^7.13.0" - "@babel/plugin-transform-block-scoped-functions" "^7.12.13" - "@babel/plugin-transform-block-scoping" "^7.14.4" - "@babel/plugin-transform-classes" "^7.14.4" - "@babel/plugin-transform-computed-properties" "^7.13.0" - "@babel/plugin-transform-destructuring" "^7.14.4" - "@babel/plugin-transform-dotall-regex" "^7.12.13" - "@babel/plugin-transform-duplicate-keys" "^7.12.13" - "@babel/plugin-transform-exponentiation-operator" "^7.12.13" - "@babel/plugin-transform-for-of" "^7.13.0" - "@babel/plugin-transform-function-name" "^7.12.13" - "@babel/plugin-transform-literals" "^7.12.13" - "@babel/plugin-transform-member-expression-literals" "^7.12.13" - "@babel/plugin-transform-modules-amd" "^7.14.2" - "@babel/plugin-transform-modules-commonjs" "^7.14.0" - "@babel/plugin-transform-modules-systemjs" "^7.13.8" - "@babel/plugin-transform-modules-umd" "^7.14.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.13" - "@babel/plugin-transform-new-target" "^7.12.13" - "@babel/plugin-transform-object-super" "^7.12.13" - "@babel/plugin-transform-parameters" "^7.14.2" - "@babel/plugin-transform-property-literals" "^7.12.13" - "@babel/plugin-transform-regenerator" "^7.13.15" - "@babel/plugin-transform-reserved-words" "^7.12.13" - "@babel/plugin-transform-shorthand-properties" "^7.12.13" - "@babel/plugin-transform-spread" "^7.13.0" - "@babel/plugin-transform-sticky-regex" "^7.12.13" - "@babel/plugin-transform-template-literals" "^7.13.0" - "@babel/plugin-transform-typeof-symbol" "^7.12.13" - "@babel/plugin-transform-unicode-escapes" "^7.12.13" - "@babel/plugin-transform-unicode-regex" "^7.12.13" - "@babel/preset-modules" "^0.1.4" - "@babel/types" "^7.14.4" - babel-plugin-polyfill-corejs2 "^0.2.0" - babel-plugin-polyfill-corejs3 "^0.2.0" - babel-plugin-polyfill-regenerator "^0.2.0" - core-js-compat "^3.9.0" - semver "^6.3.0" - -"@babel/preset-modules@^0.1.4": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" - integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/runtime@^7.14.0", "@babel/runtime@^7.8.4": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz#46794bc20b612c5f75e62dd071e24dfd95f1cbe6" - integrity sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@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/template@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" - integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g== - dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/parser" "^7.14.5" - "@babel/types" "^7.14.5" - -"@babel/traverse@^7.13.0", "@babel/traverse@^7.13.15", "@babel/traverse@^7.14.0", "@babel/traverse@^7.7.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.0.tgz#cea0dc8ae7e2b1dec65f512f39f3483e8cc95aef" - integrity sha512-dZ/a371EE5XNhTHomvtuLTUyx6UEoJmYX+DT5zBCQN3McHemsuIaKKYqsc/fs26BEkHs/lBZy0J571LP5z9kQA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.14.0" - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/parser" "^7.14.0" - "@babel/types" "^7.14.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@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/traverse@^7.14.7": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.7.tgz#64007c9774cfdc3abd23b0780bc18a3ce3631753" - integrity sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ== - dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.14.5" - "@babel/helper-function-name" "^7.14.5" - "@babel/helper-hoist-variables" "^7.14.5" - "@babel/helper-split-export-declaration" "^7.14.5" - "@babel/parser" "^7.14.7" - "@babel/types" "^7.14.5" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.12.0", "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.16", "@babel/types@^7.14.0", "@babel/types@^7.14.1", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@^7.6.1", "@babel/types@^7.7.0", "@babel/types@^7.9.6": - version "7.14.1" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.1.tgz#095bd12f1c08ab63eff6e8f7745fa7c9cc15a9db" - integrity sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA== - dependencies: - "@babel/helper-validator-identifier" "^7.14.0" - to-fast-properties "^2.0.0" - -"@babel/types@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.2.tgz#4208ae003107ef8a057ea8333e56eb64d2f6a2c3" - integrity sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw== - dependencies: - "@babel/helper-validator-identifier" "^7.14.0" - to-fast-properties "^2.0.0" - -"@babel/types@^7.14.4": - version "7.14.4" - resolved "https://registry.yarnpkg.com/@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" - -"@babel/types@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.5.tgz#3bb997ba829a2104cedb20689c4a5b8121d383ff" - integrity sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg== - dependencies: - "@babel/helper-validator-identifier" "^7.14.5" - to-fast-properties "^2.0.0" - -"@csstools/convert-colors@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" - integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== - -"@docsearch/css@^1.0.0-alpha.28": - version "1.0.0-alpha.28" - resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-1.0.0-alpha.28.tgz#c8a2cd8c1bb3a6855c51892e9dbdab5d42fe6e23" - integrity sha512-1AhRzVdAkrWwhaxTX6/R7SnFHz8yLz1W8I/AldlTrfbNvZs9INk1FZiEFTJdgHaP68nhgQNWSGlQiDiI3y2RYg== - -"@docsearch/js@^1.0.0-alpha.28": - version "1.0.0-alpha.28" - resolved "https://registry.yarnpkg.com/@docsearch/js/-/js-1.0.0-alpha.28.tgz#f0fde7b8a6b1e1d8a7ae1e7655c43d959b457b2b" - integrity sha512-2g7aPhBy7FoEyeZW2G3LYHWVa8CFvqyozEz8PXt3hyywdFcmEIqmoCRwn8kboVftrOKCjtPcuLCewsaBoB3uiw== - dependencies: - "@docsearch/react" "^1.0.0-alpha.28" - preact "^10.0.0" - -"@docsearch/react@^1.0.0-alpha.28": - version "1.0.0-alpha.28" - resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-1.0.0-alpha.28.tgz#4f039ed79f8b3332b19a57677b219aebc5010e9d" - integrity sha512-XjJOnCBXn+UZmtuDmgzlVIHnnvh6yHVwG4aFq8AXN6xJEIX3f180FvGaowFWAxgdtHplJxFGux0Xx4piHqBzIw== - dependencies: - "@docsearch/css" "^1.0.0-alpha.28" - "@francoischalifour/autocomplete-core" "^1.0.0-alpha.28" - "@francoischalifour/autocomplete-preset-algolia" "^1.0.0-alpha.28" - algoliasearch "^4.0.0" - -"@eslint/eslintrc@^0.4.2": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.2.tgz#f63d0ef06f5c0c57d76c4ab5f63d3835c51b0179" - integrity sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg== - dependencies: - ajv "^6.12.4" - debug "^4.1.1" - espree "^7.3.0" - globals "^13.9.0" - ignore "^4.0.6" - import-fresh "^3.2.1" - js-yaml "^3.13.1" - minimatch "^3.0.4" - strip-json-comments "^3.1.1" - -"@francoischalifour/autocomplete-core@^1.0.0-alpha.28": - version "1.0.0-alpha.28" - resolved "https://registry.yarnpkg.com/@francoischalifour/autocomplete-core/-/autocomplete-core-1.0.0-alpha.28.tgz#6b9d8491288e77f831e9b345d461623b0d3f5005" - integrity sha512-rL9x+72btViw+9icfBKUJjZj87FgjFrD2esuTUqtj4RAX3s4AuVZiN8XEsfjQBSc6qJk31cxlvqZHC/BIyYXgg== - -"@francoischalifour/autocomplete-preset-algolia@^1.0.0-alpha.28": - version "1.0.0-alpha.28" - resolved "https://registry.yarnpkg.com/@francoischalifour/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.0.0-alpha.28.tgz#a5ad7996f42e43e4acbb4e0010d663746d0e9997" - integrity sha512-bprfNmYt1opFUFEtD2XfY/kEsm13bzHQgU80uMjhuK0DJ914IjolT1GytpkdM6tJ4MBvyiJPP+bTtWO+BZ7c7w== - -"@humanwhocodes/config-array@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" - integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== - dependencies: - "@humanwhocodes/object-schema" "^1.2.0" - debug "^4.1.1" - minimatch "^3.0.4" - -"@humanwhocodes/object-schema@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" - integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== - -"@iconify/json-tools@^1.0.10": - version "1.0.10" - resolved "https://registry.yarnpkg.com/@iconify/json-tools/-/json-tools-1.0.10.tgz#d9a7050dbbe8bb29d684d4b3f9446ed2d0bea3cc" - integrity sha512-LFelJDOLZ6JHlmlAkgrvmcu4hpNPB91KYcr4f60D/exzU1eNOb4/KCVHIydGHIQFaOacIOD+Xy+B7P1z812cZg== - -"@iconify/json@^1.1.372": - version "1.1.372" - resolved "https://registry.yarnpkg.com/@iconify/json/-/json-1.1.372.tgz#48b30123c0315a29b4bc71bc4d0e15f5a3fa33fc" - integrity sha512-+Dr9qJyGGkoI3CPK8MV9wcmoXBcQR9k98X2b+7FPrZ6KzRzF0w3dKjTla61kaH5KOYIl2+CNAz+cm3Ns7f2FbQ== - -"@intlify/shared@^9.0.0": - version "9.1.6" - resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.1.6.tgz#d03c9301898d6ddffe2a54c03e7664174fbcdfd9" - integrity sha512-6MtsKulyfZxdD7OuxjaODjj8QWoHCnLFAk4wkWiHqBCa6UCTC0qXjtEeZ1MxpQihvFmmJZauBUu25EvtngW5qQ== - -"@intlify/vue-i18n-extensions@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@intlify/vue-i18n-extensions/-/vue-i18n-extensions-1.0.2.tgz#ab7f8507f7d423c368e44fa21d6dece700261fca" - integrity sha512-rnfA0ScyBXyp9xsSD4EAMGeOh1yv/AE7fhqdAdSOr5X8N39azz257umfRtzNT9sHXAKSSzpCVhIbMAkp5c/gjQ== - dependencies: - "@babel/parser" "^7.9.6" - -"@intlify/vue-i18n-loader@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@intlify/vue-i18n-loader/-/vue-i18n-loader-1.1.0.tgz#eecc6460823676f533784b3641665c5a609eccf0" - integrity sha512-9LXiztMtYKTE8t/hRwwGUp+ofrwU0sxLQLzFEOZ38zvn0DonUIQmZUj1cfz5p1Lu8BllxKbCrn6HnsRJ+LYA6g== - dependencies: - "@intlify/shared" "^9.0.0" - js-yaml "^3.13.1" - json5 "^2.1.1" - -"@lokidb/loki@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@lokidb/loki/-/loki-2.1.0.tgz#f707e184016ce57d6dd12013938c33f9c540960e" - integrity sha512-u2VH/4h4kZww23bak5I/oRai8VqIZCSuqiLbuSHpYXHB9Na5E9KNazh59prgUyvMzfooY7XKiHejbKVxFoAEOQ== - -"@nodelib/fs.scandir@2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" - integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== - dependencies: - "@nodelib/fs.stat" "2.0.4" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655" - integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063" - integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== - dependencies: - "@nodelib/fs.scandir" "2.1.4" - fastq "^1.6.0" - -"@npmcli/move-file@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" - integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== - dependencies: - mkdirp "^1.0.4" - rimraf "^3.0.2" - -"@nuxt/babel-preset-app-edge@2.16.0-27095053.356de80e": - version "2.16.0-27095053.356de80e" - resolved "https://registry.yarnpkg.com/@nuxt/babel-preset-app-edge/-/babel-preset-app-edge-2.16.0-27095053.356de80e.tgz#58e84fc1252948006bf4f6243ea9e116b87ce5c4" - integrity sha512-dsajh4Ieik/suMOsdsbnyS4FTEaaVW496KPWN2vq5oeqeD511cHaZ7V10MXwkuXtZrCbAELxjcciXKK3dKf2xg== - dependencies: - "@babel/compat-data" "^7.14.4" - "@babel/core" "^7.14.3" - "@babel/helper-compilation-targets" "^7.14.4" - "@babel/helper-module-imports" "^7.13.12" - "@babel/plugin-proposal-class-properties" "^7.13.0" - "@babel/plugin-proposal-decorators" "^7.14.2" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.2" - "@babel/plugin-proposal-optional-chaining" "^7.14.2" - "@babel/plugin-proposal-private-methods" "^7.13.0" - "@babel/plugin-transform-runtime" "^7.14.3" - "@babel/preset-env" "^7.14.4" - "@babel/runtime" "^7.14.0" - "@vue/babel-preset-jsx" "^1.2.4" - core-js "^2.6.5" - core-js-compat "^3.14.0" - regenerator-runtime "^0.13.7" - -"@nuxt/builder-edge@2.16.0-27095053.356de80e": - version "2.16.0-27095053.356de80e" - resolved "https://registry.yarnpkg.com/@nuxt/builder-edge/-/builder-edge-2.16.0-27095053.356de80e.tgz#407cd787f6a548fb3ac326e34ff8bca8ee0a0146" - integrity sha512-6Ky2+gij5KLwE45CXNKT8ry/IuyB5/Vc5LJMNl3SxjIQgmnFshbu0nr13QZ8BVwDBC2xhWwREv8YOIvY2PgBSQ== - dependencies: - "@nuxt/devalue" "^1.2.5" - "@nuxt/utils-edge" "2.16.0-27095053.356de80e" - "@nuxt/vue-app-edge" "2.16.0-27095053.356de80e" - "@nuxt/webpack-edge" "2.16.0-27095053.356de80e" - chalk "^4.1.1" - chokidar "^3.5.1" - consola "^2.15.3" - fs-extra "^10.0.0" - glob "^7.1.7" - hash-sum "^2.0.0" - ignore "^5.1.8" - lodash "^4.17.21" - pify "^5.0.0" - serialize-javascript "^6.0.0" - upath "^2.0.1" - -"@nuxt/cli-edge@2.16.0-27095053.356de80e": - version "2.16.0-27095053.356de80e" - resolved "https://registry.yarnpkg.com/@nuxt/cli-edge/-/cli-edge-2.16.0-27095053.356de80e.tgz#873edf4fe0d47a8da10059a08f3d1f66be001e87" - integrity sha512-lQyZy//FfuvS9dpqbzuCCrMCftp6s6WieQDrFs7F7lMf55rweDqk24VeEZOlwAwuxUHPwF5j52z4VJ4JkMcwyQ== - dependencies: - "@nuxt/config-edge" "2.16.0-27095053.356de80e" - "@nuxt/utils-edge" "2.16.0-27095053.356de80e" - boxen "^5.0.1" - chalk "^4.1.1" - compression "^1.7.4" - connect "^3.7.0" - consola "^2.15.3" - crc "^3.8.0" - defu "^5.0.0" - destr "^1.1.0" - execa "^5.1.1" - exit "^0.1.2" - fs-extra "^10.0.0" - globby "^11.0.3" - hable "^3.0.0" - lodash "^4.17.21" - minimist "^1.2.5" - opener "1.5.2" - pretty-bytes "^5.6.0" - semver "^7.3.5" - serve-static "^1.14.1" - std-env "^2.3.0" - upath "^2.0.1" - wrap-ansi "^7.0.0" - -"@nuxt/components@^2.1.8", "@nuxt/components@npm:@pi0/components": - version "2.1.8" - resolved "https://registry.yarnpkg.com/@pi0/components/-/components-2.1.8.tgz#9d95e781b9ab797e5befb1c7bb4b3571985dc4d1" - integrity sha512-ibyKBG9OcUnxJVBgkgnoJHcstQ/imCuHJMYzvZbRh+8sg2q6TpMx0paFfNcc5f+gLIvbatGM5LFg9+AZgUuZUA== - dependencies: - chalk "^4.1.1" - chokidar "^3.5.2" - glob "^7.1.7" - globby "^11.0.4" - scule "^0.2.1" - semver "^7.3.5" - upath "^2.0.1" - vue-template-compiler "^2.6.14" - -"@nuxt/config-edge@2.16.0-27095053.356de80e": - version "2.16.0-27095053.356de80e" - resolved "https://registry.yarnpkg.com/@nuxt/config-edge/-/config-edge-2.16.0-27095053.356de80e.tgz#cb72447be1e9b63b3596f2967094eb35bc439d4f" - integrity sha512-f6k1dp1QFq9prM9dhgTwglEDCOeltzBc7isf0FfB+qVKWUUNz6qmdpfHZ0mHj+VjatMqzsPgIzjX2ziekySDCQ== - dependencies: - "@nuxt/utils-edge" "2.16.0-27095053.356de80e" - consola "^2.15.3" - defu "^5.0.0" - destr "^1.1.0" - dotenv "^10.0.0" - lodash "^4.17.21" - rc9 "^1.2.0" - std-env "^2.3.0" - ufo "^0.7.5" - -"@nuxt/core-edge@2.16.0-27095053.356de80e": - version "2.16.0-27095053.356de80e" - resolved "https://registry.yarnpkg.com/@nuxt/core-edge/-/core-edge-2.16.0-27095053.356de80e.tgz#79e541c3111e5948599b33816fc53e7bf707724b" - integrity sha512-AzjD9b50yXeXnK7+ZT5YKmej8Q0q8nSYs7gfteEGB/RPZPC5/d5Z9Ohhviv2oWkuT1X2hUBSuYcDmnYFskMuKA== - dependencies: - "@nuxt/config-edge" "2.16.0-27095053.356de80e" - "@nuxt/server-edge" "2.16.0-27095053.356de80e" - "@nuxt/utils-edge" "2.16.0-27095053.356de80e" - consola "^2.15.3" - fs-extra "^10.0.0" - hable "^3.0.0" - hash-sum "^2.0.0" - lodash "^4.17.21" - -"@nuxt/devalue@^1.2.5": - version "1.2.5" - resolved "https://registry.yarnpkg.com/@nuxt/devalue/-/devalue-1.2.5.tgz#8d95e3e74b3332d3eb713342c5c4d18096047d66" - integrity sha512-Tg86C7tqzvZtZli2BQVqgzZN136mZDTgauvJXagglKkP2xt5Kw3NUIiJyjX0Ww/IZy2xVmD0LN+CEPpij4dB2g== - dependencies: - consola "^2.9.0" - -"@nuxt/friendly-errors-webpack-plugin@^2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@nuxt/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-2.5.1.tgz#3ab815c31eb43859a239848a85481157aaf7b07e" - integrity sha512-mKN0Mbb1PjJYBzrswsyWvSEZw5Jxi0fQZPMA0ssrTmkz9lvtxtXq4luhX31OpULUvbc0jLaBu/SL0ExlxIbTlw== - dependencies: - chalk "^2.3.2" - consola "^2.6.0" - error-stack-parser "^2.0.0" - string-width "^2.0.0" - -"@nuxt/generator-edge@2.16.0-27095053.356de80e": - version "2.16.0-27095053.356de80e" - resolved "https://registry.yarnpkg.com/@nuxt/generator-edge/-/generator-edge-2.16.0-27095053.356de80e.tgz#06b10c725b1a60808ef377dc73fb20d43f3cba77" - integrity sha512-mX4wuGbfFfKtkCXt6eCHIkC6IKq9S03tgd8VpO+yZKSXPEho0YbrezhoHyP9padxxdYubUvgJ+iYLzyK9kgxyA== - dependencies: - "@nuxt/utils-edge" "2.16.0-27095053.356de80e" - chalk "^4.1.1" - consola "^2.15.3" - defu "^5.0.0" - devalue "^2.0.1" - fs-extra "^10.0.0" - html-minifier "^4.0.0" - node-html-parser "^4.0.0" - ufo "^0.7.5" - -"@nuxt/http@^0.6.4": - version "0.6.4" - resolved "https://registry.yarnpkg.com/@nuxt/http/-/http-0.6.4.tgz#ca03989b4d2308da468aebea6a2ce393db67eb3f" - integrity sha512-7tVuqjac611WArO9oLrzJqx9SRdTNrMZqBBKHaFbmWsnaIZyxb8tJcYPcjUZe8m9zWGvPiGAyi1JnToAaw7dKA== - dependencies: - "@nuxtjs/proxy" "^2.1.0" - abort-controller "^3.0.0" - consola "^2.15.0" - defu "^3.2.2" - destr "^1.0.1" - ky "^0.25.1" - node-fetch "^2.6.1" - web-streams-polyfill "^3.0.1" - -"@nuxt/image@0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@nuxt/image/-/image-0.5.0.tgz#c297edc6d71d04d3ed7c377ad4ae052c3a442b8b" - integrity sha512-vajBLMj3cW9U+MkXAR3f2hDl/Imj/jdnrL2mlw6phcuApWG2R4hwntAWyr96JzBMhoSK9tv2dJTGx4k9VKK9vA== - dependencies: - consola "^2.15.3" - defu "^5.0.0" - fs-extra "^10.0.0" - hasha "^5.2.2" - image-meta "^0.0.1" - ipx "^0.6.4" - is-https "^4.0.0" - lru-cache "^6.0.0" - node-fetch "^2.6.1" - p-limit "^3.1.0" - rc9 "^1.2.0" - requrl "^3.0.2" - semver "^7.3.5" - ufo "^0.7.7" - upath "^2.0.1" - -"@nuxt/loading-screen@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@nuxt/loading-screen/-/loading-screen-2.0.4.tgz#756abd861f77c57001be4d21d47534723afb4f3a" - integrity sha512-xpEDAoRu75tLUYCkUJCIvJkWJSuwr8pqomvQ+fkXpSrkxZ/9OzlBFjAbVdOAWTMj4aV/LVQso4vcEdircKeFIQ== - dependencies: - connect "^3.7.0" - defu "^5.0.0" - get-port-please "^2.2.0" - node-res "^5.0.1" - serve-static "^1.14.1" - -"@nuxt/opencollective@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@nuxt/opencollective/-/opencollective-0.3.2.tgz#83cb70cdb2bac5fad6f8c93529e7b11187d49c02" - integrity sha512-XG7rUdXG9fcafu9KTDIYjJSkRO38EwjlKYIb5TQ/0WDbiTUTtUtgncMscKOYzfsY86kGs05pAuMOR+3Fi0aN3A== - dependencies: - chalk "^4.1.0" - consola "^2.15.0" - node-fetch "^2.6.1" - -"@nuxt/postcss8@^1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@nuxt/postcss8/-/postcss8-1.1.3.tgz#a7f8f6f2a664430bbdd3b175498eb693e0b1b351" - integrity sha512-CdHtErhvQwueNZPBOmlAAKrNCK7aIpZDYhtS7TzXlSgPHHox1g3cSlf+Ke9oB/8t4mNNjdB+prclme2ibuCOEA== - dependencies: - autoprefixer "^10.2.5" - css-loader "^5.0.0" - defu "^3.2.2" - postcss "^8.1.10" - postcss-import "^13.0.0" - postcss-loader "^4.1.0" - postcss-url "^10.1.1" - semver "^7.3.4" - -"@nuxt/server-edge@2.16.0-27095053.356de80e": - version "2.16.0-27095053.356de80e" - resolved "https://registry.yarnpkg.com/@nuxt/server-edge/-/server-edge-2.16.0-27095053.356de80e.tgz#2a6d893b804dec74c3fe1734b3a7bfb6970bb46f" - integrity sha512-/Old0c76qBJUtGDXHVdF8s+NNwIF09T2ZglwKH8M4CdAXUdEiSPmNASkK/iTOYv4HYORl0fCnFIvscl8beTgcA== - dependencies: - "@nuxt/utils-edge" "2.16.0-27095053.356de80e" - "@nuxt/vue-renderer-edge" "2.16.0-27095053.356de80e" - "@nuxtjs/youch" "^4.2.3" - compression "^1.7.4" - connect "^3.7.0" - consola "^2.15.3" - etag "^1.8.1" - fresh "^0.5.2" - fs-extra "^10.0.0" - ip "^1.1.5" - launch-editor-middleware "^2.2.1" - on-headers "^1.0.2" - pify "^5.0.0" - serve-placeholder "^1.2.3" - serve-static "^1.14.1" - server-destroy "^1.0.1" - ufo "^0.7.5" - -"@nuxt/telemetry@^1.3.6": - version "1.3.6" - resolved "https://registry.yarnpkg.com/@nuxt/telemetry/-/telemetry-1.3.6.tgz#a27a27b2f56a2ad4ef2c1bef82e12f0bc0dc40ac" - integrity sha512-sZpLf/rU3cvN8/alR1HpJIl3mHPA1GOg41GKdOOrtw7Gi/lCEVk4hK+lpXgYInZ2n6i1JyknpKhM9YzX2RU33w== - dependencies: - arg "^5.0.0" - chalk "^4.1.1" - ci-info "^3.1.1" - consola "^2.15.3" - create-require "^1.1.1" - defu "^5.0.0" - destr "^1.1.0" - dotenv "^9.0.2" - fs-extra "^8.1.0" - git-url-parse "^11.4.4" - inquirer "^7.3.3" - is-docker "^2.2.1" - jiti "^1.9.2" - nanoid "^3.1.23" - node-fetch "^2.6.1" - parse-git-config "^3.0.0" - rc9 "^1.2.0" - std-env "^2.3.0" - -"@nuxt/types@^2.15.7": - version "2.15.7" - resolved "https://registry.yarnpkg.com/@nuxt/types/-/types-2.15.7.tgz#b5275e183ba8c046d3a97e57198c4103109b889e" - integrity sha512-jqExebL4Dh5Rn88xVP1/o/a4gxpF7Z1O/kbVjEzEbbvt2E8J0lLc3wsaRYpbqt+S3S9YfvD8FKR85TzkqYtgqw== - dependencies: - "@types/autoprefixer" "9.7.2" - "@types/babel__core" "7.1.14" - "@types/compression" "1.7.0" - "@types/connect" "3.4.34" - "@types/etag" "1.8.0" - "@types/file-loader" "5.0.0" - "@types/html-minifier" "4.0.0" - "@types/less" "3.0.2" - "@types/node" "12.20.12" - "@types/optimize-css-assets-webpack-plugin" "5.0.3" - "@types/pug" "2.0.4" - "@types/sass-loader" "8.0.1" - "@types/serve-static" "1.13.9" - "@types/terser-webpack-plugin" "4.2.1" - "@types/webpack" "4.41.28" - "@types/webpack-bundle-analyzer" "3.9.3" - "@types/webpack-dev-middleware" "4.1.2" - "@types/webpack-hot-middleware" "2.25.4" - sass-loader "10.1.1" - -"@nuxt/typescript-build@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@nuxt/typescript-build/-/typescript-build-2.1.0.tgz#191fe60e942ce84a01468ba6e255744e01c7c538" - integrity sha512-7TLMpfzgOckf3cBkzoPFns6Xl8FzY6MoFfm/5HUE47QeTWAdOG9ZFxMrVhHWieZHYUuV+k6byRtaRv4S/3R8zA== - dependencies: - consola "^2.15.3" - fork-ts-checker-webpack-plugin "^6.1.1" - ts-loader "^8.0.17" - typescript "~4.2" - -"@nuxt/utils-edge@2.16.0-27095053.356de80e": - version "2.16.0-27095053.356de80e" - resolved "https://registry.yarnpkg.com/@nuxt/utils-edge/-/utils-edge-2.16.0-27095053.356de80e.tgz#b5476ff369f4e6c345b305ce816c6a777cdbfd8d" - integrity sha512-XjYDJfblbWDsdIkLEsCwfaLFw6TX2qQWRXjEYNw2FUz2aycFIGGq5DH6PfHKMKhJQA8MNYBC92imW0vUIYNHxQ== - dependencies: - consola "^2.15.3" - create-require "^1.1.1" - fs-extra "^10.0.0" - hash-sum "^2.0.0" - jiti "^1.10.1" - lodash "^4.17.21" - proper-lockfile "^4.1.2" - semver "^7.3.5" - serialize-javascript "^6.0.0" - signal-exit "^3.0.3" - ua-parser-js "^0.7.28" - ufo "^0.7.5" - -"@nuxt/vue-app-edge@2.16.0-27095053.356de80e": - version "2.16.0-27095053.356de80e" - resolved "https://registry.yarnpkg.com/@nuxt/vue-app-edge/-/vue-app-edge-2.16.0-27095053.356de80e.tgz#37be83a8cfbc228dbb20698fd38478a6b7e5570d" - integrity sha512-c2jL6qDeP2ipg01vp6TD0nnsD9/0H+hDInX9h+QtFy8aqC0o1TF7qXQNASwlY74a93G3/d/qRTynxvAjF7cdXg== - dependencies: - node-fetch "^2.6.1" - ufo "^0.7.5" - unfetch "^4.2.0" - vue "^2.6.13" - vue-client-only "^2.1.0" - vue-meta "^2.4.0" - vue-no-ssr "^1.1.1" - vue-router "^3.5.1" - vue-template-compiler "^2.6.13" - vuex "^3.6.2" - -"@nuxt/vue-renderer-edge@2.16.0-27095053.356de80e": - version "2.16.0-27095053.356de80e" - resolved "https://registry.yarnpkg.com/@nuxt/vue-renderer-edge/-/vue-renderer-edge-2.16.0-27095053.356de80e.tgz#80b017e8bb52a714d390dc67280ca9440661b57e" - integrity sha512-Cy8rVYmcnbuPRYcL+4wUVdFAIpNbfDG5C409zYRAa61DXb/A1HbUT5UHWxdPXnikaYpk09VcIxh2KUhrayj9qQ== - dependencies: - "@nuxt/devalue" "^1.2.5" - "@nuxt/utils-edge" "2.16.0-27095053.356de80e" - consola "^2.15.3" - defu "^5.0.0" - fs-extra "^10.0.0" - lodash "^4.17.21" - lru-cache "^5.1.1" - ufo "^0.7.5" - vue "^2.6.13" - vue-meta "^2.4.0" - vue-server-renderer "^2.6.13" - -"@nuxt/webpack-edge@2.16.0-27095053.356de80e": - version "2.16.0-27095053.356de80e" - resolved "https://registry.yarnpkg.com/@nuxt/webpack-edge/-/webpack-edge-2.16.0-27095053.356de80e.tgz#ac43eae8afa74d7dbefe73515f5ade1eea5cba42" - integrity sha512-k9zv/AsZqJQ449DrdnIbU6C32IF45Vg1Wk3KeaNNI/OGb5UCmlWT4c07U9kuFcrCRxIlH01PhoAi29+GGIcL4w== - dependencies: - "@babel/core" "^7.14.3" - "@nuxt/babel-preset-app-edge" "2.16.0-27095053.356de80e" - "@nuxt/friendly-errors-webpack-plugin" "^2.5.1" - "@nuxt/utils-edge" "2.16.0-27095053.356de80e" - babel-loader "^8.2.2" - cache-loader "^4.1.0" - caniuse-lite "^1.0.30001235" - consola "^2.15.3" - css-loader "^4.3.0" - cssnano "^4.1.11" - eventsource-polyfill "^0.9.6" - extract-css-chunks-webpack-plugin "^4.9.0" - file-loader "^6.2.0" - glob "^7.1.7" - hard-source-webpack-plugin "^0.13.1" - hash-sum "^2.0.0" - html-webpack-plugin "^4.5.1" - lodash "^4.17.21" - memory-fs "^0.5.0" - optimize-css-assets-webpack-plugin "^5.0.6" - pify "^5.0.0" - pnp-webpack-plugin "^1.6.4" - postcss "^7.0.32" - postcss-import "^12.0.1" - postcss-import-resolver "^2.0.0" - postcss-loader "^3.0.0" - postcss-preset-env "^6.7.0" - postcss-url "^8.0.0" - semver "^7.3.5" - std-env "^2.3.0" - style-resources-loader "^1.4.1" - terser-webpack-plugin "^4.2.3" - thread-loader "^3.0.4" - time-fix-plugin "^2.0.7" - ufo "^0.7.5" - url-loader "^4.1.1" - vue-loader "^15.9.7" - vue-style-loader "^4.1.3" - vue-template-compiler "^2.6.13" - watchpack "^2.2.0" - webpack "^4.46.0" - webpack-bundle-analyzer "^4.4.2" - webpack-dev-middleware "^5.0.0" - webpack-hot-middleware "^2.25.0" - webpack-node-externals "^3.0.0" - webpackbar "^4.0.0" - -"@nuxtjs/color-mode@^2.0.10": - version "2.0.10" - resolved "https://registry.yarnpkg.com/@nuxtjs/color-mode/-/color-mode-2.0.10.tgz#0496d6d72be7ada3a106768fc4fa17bafea63bb3" - integrity sha512-eG2BHQaN7RApzbkaQ/IRzbrMRl1U5JvGK0gNYYek56P4eMkUqKnJqRLv9M56tsENtoZEa+4hg8Hd5iB+lZWFwg== - dependencies: - defu "^5.0.0" - lodash.template "^4.5.0" - -"@nuxtjs/composition-api@0.24.6": - version "0.24.6" - resolved "https://registry.yarnpkg.com/@nuxtjs/composition-api/-/composition-api-0.24.6.tgz#fecad53bfb791429021b904e8656e0e340a74edf" - integrity sha512-O0rW5VTOsCpb1TzmvOOse4ixszKrD4zcEQYz9eYp1RoOsztZvV/95aHSHcN9DUcNXcchXzWT1SfexSr6uBpQFQ== - dependencies: - "@vue/composition-api" "1.0.0-rc.13" - defu "^5.0.0" - estree-walker "^2.0.2" - fs-extra "^9.1.0" - magic-string "^0.25.7" - ufo "^0.7.7" - upath "^2.0.1" - -"@nuxtjs/eslint-config-typescript@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@nuxtjs/eslint-config-typescript/-/eslint-config-typescript-6.0.1.tgz#11e91a5e25aca6855ec7525080da694c4b3cd4d4" - integrity sha512-ZK/C2ZtXrc2FlQwssc3gqc3K9RAtGF+OLGXRDtDxyrlhgPwAC4bc9McBGqUokdbE+pup0OA38PylPOhbWHZkrg== - dependencies: - "@nuxtjs/eslint-config" "6.0.1" - "@typescript-eslint/eslint-plugin" "^4.25.0" - "@typescript-eslint/parser" "^4.25.0" - -"@nuxtjs/eslint-config@6.0.1", "@nuxtjs/eslint-config@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@nuxtjs/eslint-config/-/eslint-config-6.0.1.tgz#305450a71e362c26f99b3a7130be960015a96c9b" - integrity sha512-NISrmMx4J2usVDVLG7WFwTdfQaznHf/b2aKTb1o0TCxxXdY30UHLqEH+3MqpjY+0+UPM06YswFmOBjOg5y2BXQ== - dependencies: - eslint-config-standard "^16.0.3" - eslint-plugin-import "^2.23.3" - eslint-plugin-jest "^24.3.6" - eslint-plugin-node "^11.1.0" - eslint-plugin-promise "^5.1.0" - eslint-plugin-standard "^4.1.0" - eslint-plugin-unicorn "^28.0.2" - eslint-plugin-vue "^7.9.0" - -"@nuxtjs/proxy@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@nuxtjs/proxy/-/proxy-2.1.0.tgz#fa7715a11d237fa1273503c4e9e137dd1bf5575b" - integrity sha512-/qtoeqXgZ4Mg6LRg/gDUZQrFpOlOdHrol/vQYMnKu3aN3bP90UfOUB3QSDghUUK7OISAJ0xp8Ld78aHyCTcKCQ== - dependencies: - http-proxy-middleware "^1.0.6" - -"@nuxtjs/pwa@^3.3.5": - version "3.3.5" - resolved "https://registry.yarnpkg.com/@nuxtjs/pwa/-/pwa-3.3.5.tgz#db7c905536ebe8a464a347b6ae3215810642c044" - integrity sha512-8tTmW8DBspWxlJwTimOHTkwfkwPpL9wIcGmy75Gcmin+c9YtX2Ehxmhgt/TLFOC9XsLAqojqynw3/Agr/9OE1w== - dependencies: - clone-deep "^4.0.1" - defu "^3.2.2" - execa "^5.0.0" - fs-extra "^9.1.0" - hasha "^5.2.2" - jimp-compact "^0.16.1" - lodash.template "^4.5.0" - serve-static "^1.14.1" - workbox-cdn "^5.1.4" - -"@nuxtjs/youch@^4.2.3": - version "4.2.3" - resolved "https://registry.yarnpkg.com/@nuxtjs/youch/-/youch-4.2.3.tgz#36f8b22df5a0efaa81373109851e1d857aca6bed" - integrity sha512-XiTWdadTwtmL/IGkNqbVe+dOlT+IMvcBu7TvKI7plWhVQeBCQ9iKhk3jgvVWFyiwL2yHJDlEwOM5v9oVES5Xmw== - dependencies: - cookie "^0.3.1" - mustache "^2.3.0" - stack-trace "0.0.10" - -"@polka/url@^1.0.0-next.15": - version "1.0.0-next.15" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.15.tgz#6a9d143f7f4f49db2d782f9e1c8839a29b43ae23" - integrity sha512-15spi3V28QdevleWBNXE4pIls3nFZmBbUGrW9IVPwiQczuSb9n76TCB4bsk8TSel+I1OkHEdPhu5QKMfY6rQHA== - -"@polka/url@^1.0.0-next.9": - version "1.0.0-next.12" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.12.tgz#431ec342a7195622f86688bbda82e3166ce8cb28" - integrity sha512-6RglhutqrGFMO1MNUXp95RBuYIuc8wTnMAV5MUhLmjTOy78ncwOw7RgeQ/HeymkKXRhZd0s2DNrM1rL7unk3MQ== - -"@rollup/plugin-alias@^3.1.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-3.1.2.tgz#c585b05be4a7782d269c69d13def56f44e417772" - integrity sha512-wzDnQ6v7CcoRzS0qVwFPrFdYA4Qlr+ookA217Y2Z3DPZE1R8jrFNM3jvGgOf6o6DMjbnQIn5lCIJgHPe1Bt3uw== - dependencies: - slash "^3.0.0" - -"@rollup/plugin-commonjs@^19.0.0": - version "19.0.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-19.0.0.tgz#8c3e71f9a66908e60d70cc1be205834ef3e45f71" - integrity sha512-adTpD6ATGbehdaQoZQ6ipDFhdjqsTgpOAhFiPwl+dzre4pPshsecptDPyEFb61JMJ1+mGljktaC4jI8ARMSNyw== - dependencies: - "@rollup/pluginutils" "^3.1.0" - commondir "^1.0.1" - estree-walker "^2.0.1" - glob "^7.1.6" - is-reference "^1.2.1" - magic-string "^0.25.7" - resolve "^1.17.0" - -"@rollup/plugin-json@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3" - integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw== - dependencies: - "@rollup/pluginutils" "^3.0.8" - -"@rollup/plugin-node-resolve@^13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.0.tgz#352f07e430ff377809ec8ec8a6fd636547162dc4" - integrity sha512-41X411HJ3oikIDivT5OKe9EZ6ud6DXudtfNrGbC4nniaxx2esiWjkLOzgnZsWq1IM8YIeL2rzRGLZLBjlhnZtQ== - dependencies: - "@rollup/pluginutils" "^3.1.0" - "@types/resolve" "1.17.1" - builtin-modules "^3.1.0" - deepmerge "^4.2.2" - is-module "^1.0.0" - resolve "^1.19.0" - -"@rollup/plugin-replace@^2.4.2": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz#a2d539314fbc77c244858faa523012825068510a" - integrity sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg== - dependencies: - "@rollup/pluginutils" "^3.1.0" - magic-string "^0.25.7" - -"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" - integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== - dependencies: - "@types/estree" "0.0.39" - estree-walker "^1.0.1" - picomatch "^2.2.2" - -"@rollup/pluginutils@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.1.0.tgz#0dcc61c780e39257554feb7f77207dceca13c838" - integrity sha512-TrBhfJkFxA+ER+ew2U2/fHbebhLT/l/2pRk0hfj9KusXUuRXd2v0R58AfaZK9VXDQ4TogOSEmICVrQAA3zFnHQ== - dependencies: - estree-walker "^2.0.1" - picomatch "^2.2.2" - -"@types/anymatch@*": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" - integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== - -"@types/autoprefixer@9.7.2": - version "9.7.2" - resolved "https://registry.yarnpkg.com/@types/autoprefixer/-/autoprefixer-9.7.2.tgz#64b3251c9675feef5a631b7dd34cfea50a8fdbcc" - integrity sha512-QX7U7YW3zX3ex6MECtWO9folTGsXeP4b8bSjTq3I1ODM+H+sFHwGKuof+T+qBcDClGlCGtDb3SVfiTVfmcxw4g== - dependencies: - "@types/browserslist" "*" - postcss "7.x.x" - -"@types/babel__core@7.1.14": - version "7.1.14" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz#faaeefc4185ec71c389f4501ee5ec84b170cc402" - integrity sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8" - integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz#0c888dd70b3ee9eebb6e4f200e809da0076262be" - integrity sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*": - version "7.11.1" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.1.tgz#654f6c4f67568e24c23b367e947098c6206fa639" - integrity sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw== - dependencies: - "@babel/types" "^7.3.0" - -"@types/body-parser@*": - version "1.19.0" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f" - integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ== - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/browserslist@*": - version "4.15.0" - resolved "https://registry.yarnpkg.com/@types/browserslist/-/browserslist-4.15.0.tgz#ba0265b33003a2581df1fc5f483321a30205f2d2" - integrity sha512-h9LyKErRGZqMsHh9bd+FE8yCIal4S0DxKTOeui56VgVXqa66TKiuaIUxCAI7c1O0LjaUzOTcsMyOpO9GetozRA== - dependencies: - browserslist "*" - -"@types/clean-css@*": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@types/clean-css/-/clean-css-4.2.4.tgz#4fe4705c384e6ec9ee8454bc3d49089f38dc038a" - integrity sha512-x8xEbfTtcv5uyQDrBXKg9Beo5QhTPqO4vM0uq4iU27/nhyRRWNEMKHjxvAb0WDvp2Mnt4Sw0jKmIi5yQF/k2Ag== - dependencies: - "@types/node" "*" - source-map "^0.6.0" - -"@types/compression@1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@types/compression/-/compression-1.7.0.tgz#8dc2a56604873cf0dd4e746d9ae4d31ae77b2390" - integrity sha512-3LzWUM+3k3XdWOUk/RO+uSjv7YWOatYq2QADJntK1pjkk4DfVP0KrIEPDnXRJxAAGKe0VpIPRmlINLDuCedZWw== - dependencies: - "@types/express" "*" - -"@types/connect@*", "@types/connect@3.4.34": - version "3.4.34" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.34.tgz#170a40223a6d666006d93ca128af2beb1d9b1901" - integrity sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ== - dependencies: - "@types/node" "*" - -"@types/cookie@^0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.3.3.tgz#85bc74ba782fb7aa3a514d11767832b0e3bc6803" - integrity sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow== - -"@types/estree@*": - version "0.0.47" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.47.tgz#d7a51db20f0650efec24cd04994f523d93172ed4" - integrity sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg== - -"@types/estree@0.0.39": - version "0.0.39" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" - integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== - -"@types/etag@1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@types/etag/-/etag-1.8.0.tgz#37f0b1f3ea46da7ae319bbedb607e375b4c99f7e" - integrity sha512-EdSN0x+Y0/lBv7YAb8IU4Jgm6DWM+Bqtz7o5qozl96fzaqdqbdfHS5qjdpFeIv7xQ8jSLyjMMNShgYtMajEHyQ== - dependencies: - "@types/node" "*" - -"@types/express-serve-static-core@^4.17.18": - version "4.17.19" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.19.tgz#00acfc1632e729acac4f1530e9e16f6dd1508a1d" - integrity sha512-DJOSHzX7pCiSElWaGR8kCprwibCB/3yW6vcT8VG3P0SJjnv19gnWG/AZMfM60Xj/YJIp/YCaDHyvzsFVeniARA== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - -"@types/express@*": - version "4.17.11" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.11.tgz#debe3caa6f8e5fcda96b47bd54e2f40c4ee59545" - integrity sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.18" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/file-loader@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@types/file-loader/-/file-loader-5.0.0.tgz#c7d06c14a8fc0224661e9a29c4035ba47db826df" - integrity sha512-evodFzM0PLOXmMZy8DhPN+toP6QgJiIteF6e8iD9T0xGBUllQA/DAb1nZwCIoNh7vuLvqCGPUdsLf3GSbcHd4g== - dependencies: - "@types/webpack" "^4" - -"@types/fs-extra@^9.0.12": - version "9.0.12" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.12.tgz#9b8f27973df8a7a3920e8461517ebf8a7d4fdfaf" - integrity sha512-I+bsBr67CurCGnSenZZ7v94gd3tc3+Aj2taxMT4yu4ABLuOgOjeFxX3dokG24ztSRg5tnT00sL8BszO7gSMoIw== - dependencies: - "@types/node" "*" - -"@types/glob@^7.1.1": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" - integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - -"@types/graceful-fs@^4.1.5": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== - dependencies: - "@types/node" "*" - -"@types/hast@^2.0.0": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@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.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50" - integrity sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA== - -"@types/html-minifier@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/html-minifier/-/html-minifier-4.0.0.tgz#2065cb9944f2d1b241146707c6935aa7b947d279" - integrity sha512-eFnGhrKmjWBlnSGNtunetE3UU2Tc/LUl92htFslSSTmpp9EKHQVcYQadCyYfnzUEFB5G/3wLWo/USQS/mEPKrA== - dependencies: - "@types/clean-css" "*" - "@types/relateurl" "*" - "@types/uglify-js" "*" - -"@types/http-proxy@^1.17.5": - version "1.17.5" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.5.tgz#c203c5e6e9dc6820d27a40eb1e511c70a220423d" - integrity sha512-GNkDE7bTv6Sf8JbV2GksknKOsk7OznNYHSdrtvPJXO0qJ9odZig6IZKUi5RFGi6d1bf6dgIAe4uXi3DBc7069Q== - dependencies: - "@types/node" "*" - -"@types/json-schema@^7.0.3", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6", "@types/json-schema@^7.0.7": - version "7.0.7" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" - integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= - -"@types/less@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/less/-/less-3.0.2.tgz#2761d477678c8374cb9897666871662eb1d1115e" - integrity sha512-62vfe65cMSzYaWmpmhqCMMNl0khen89w57mByPi1OseGfcV/LV03fO8YVrNj7rFQsRWNJo650WWyh6m7p8vZmA== - -"@types/mdast@^3.0.0": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb" - integrity sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw== - dependencies: - "@types/unist" "*" - -"@types/mime@^1": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" - integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== - -"@types/minimatch@*": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz#f0ec25dbf2f0e4b18647313ac031134ca5b24b21" - integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA== - -"@types/minimist@^1.2.0": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.1.tgz#283f669ff76d7b8260df8ab7a4262cc83d988256" - integrity sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg== - -"@types/node-fetch@^2.5.11": - version "2.5.11" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.11.tgz#ce22a2e65fc8999f4dbdb7ddbbcf187d755169e4" - integrity sha512-2upCKaqVZETDRb8A2VTaRymqFBEgH8u6yr96b/u3+1uQEPDRo3mJLEiPk7vdXBHRtjwkjqzFYMJXrt0Z9QsYjQ== - dependencies: - "@types/node" "*" - form-data "^3.0.0" - -"@types/node-sass@*": - version "4.11.1" - resolved "https://registry.yarnpkg.com/@types/node-sass/-/node-sass-4.11.1.tgz#bda27c5181cbf7c090c3058e119633dfb2b6504c" - integrity sha512-wPOmOEEtbwQiPTIgzUuRSQZ3H5YHinsxRGeZzPSDefAm4ylXWnZG9C0adses8ymyplKK0gwv3JkDNO8GGxnWfg== - dependencies: - "@types/node" "*" - -"@types/node@*": - version "15.0.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-15.0.2.tgz#51e9c0920d1b45936ea04341aa3e2e58d339fb67" - integrity sha512-p68+a+KoxpoB47015IeYZYRrdqMUcpbK8re/zpFB8Ld46LHC1lPEbp3EXgkEhAYEcPvjJF6ZO+869SQ0aH1dcA== - -"@types/node@12.20.12": - version "12.20.12" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.12.tgz#fd9c1c2cfab536a2383ed1ef70f94adea743a226" - integrity sha512-KQZ1al2hKOONAs2MFv+yTQP1LkDWMrRJ9YCVRalXltOfXsBmH5IownLxQaiq0lnAHwAViLnh2aTYqrPcRGEbgg== - -"@types/normalize-package-data@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" - integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== - -"@types/optimize-css-assets-webpack-plugin@5.0.3": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@types/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz#9bf5bdbb57b379f59a37a6775336f42cd6701852" - integrity sha512-PJgbI4KplJfyxKWVrBbEL+rePEBqeozJRMT0mBL3ynhvngASBV/XJ+BneLuJN74RjjMzO0gA5ns80mgubQdZAA== - dependencies: - "@types/webpack" "^4" - -"@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== - -"@types/parse5@^5.0.0": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109" - integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw== - -"@types/pug@2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/pug/-/pug-2.0.4.tgz#8772fcd0418e3cd2cc171555d73007415051f4b2" - integrity sha1-h3L80EGOPNLMFxVV1zAHQVBR9LI= - -"@types/q@^1.5.1": - version "1.5.4" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" - integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== - -"@types/qs@*": - version "6.9.6" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.6.tgz#df9c3c8b31a247ec315e6996566be3171df4b3b1" - integrity sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA== - -"@types/range-parser@*": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" - integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== - -"@types/relateurl@*": - version "0.2.28" - resolved "https://registry.yarnpkg.com/@types/relateurl/-/relateurl-0.2.28.tgz#6bda7db8653fa62643f5ee69e9f69c11a392e3a6" - integrity sha1-a9p9uGU/piZD9e5p6facEaOS46Y= - -"@types/resolve@1.17.1": - version "1.17.1" - resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" - integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== - dependencies: - "@types/node" "*" - -"@types/sass-loader@8.0.1": - version "8.0.1" - resolved "https://registry.yarnpkg.com/@types/sass-loader/-/sass-loader-8.0.1.tgz#628eb80c30cb34ce622056f9b9a1606a8147dcd0" - integrity sha512-kum0/5Im5K2WdDTRsLtrXXvX2VJc3rgq9favK+vIdWLn35miWUIYuPkiQlLCHks9//sZ3GWYs4uYzCdmoKKLcQ== - dependencies: - "@types/node-sass" "*" - "@types/sass" "*" - "@types/webpack" "^4" - -"@types/sass@*": - version "1.16.0" - resolved "https://registry.yarnpkg.com/@types/sass/-/sass-1.16.0.tgz#b41ac1c17fa68ffb57d43e2360486ef526b3d57d" - integrity sha512-2XZovu4NwcqmtZtsBR5XYLw18T8cBCnU2USFHTnYLLHz9fkhnoEMoDsqShJIOFsFhn5aJHjweiUUdTrDGujegA== - dependencies: - "@types/node" "*" - -"@types/serve-static@*", "@types/serve-static@1.13.9": - version "1.13.9" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.9.tgz#aacf28a85a05ee29a11fb7c3ead935ac56f33e4e" - integrity sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA== - dependencies: - "@types/mime" "^1" - "@types/node" "*" - -"@types/source-list-map@*": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" - integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== - -"@types/tapable@^1", "@types/tapable@^1.0.5": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.7.tgz#545158342f949e8fd3bfd813224971ecddc3fac4" - integrity sha512-0VBprVqfgFD7Ehb2vd8Lh9TG3jP98gvr8rgehQqzztZNI7o8zS8Ad4jyZneKELphpuE212D8J70LnSNQSyO6bQ== - -"@types/terser-webpack-plugin@4.2.1": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@types/terser-webpack-plugin/-/terser-webpack-plugin-4.2.1.tgz#cbeccec2b011ad12a9ddcd60b4089c9e138a313a" - integrity sha512-x688KsgQKJF8PPfv4qSvHQztdZNHLlWJdolN9/ptAGimHVy3rY+vHdfglQDFh1Z39h7eMWOd6fQ7ke3PKQcdyA== - dependencies: - "@types/webpack" "^4" - terser "^4.6.13" - -"@types/throttle-debounce@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@types/throttle-debounce/-/throttle-debounce-2.1.0.tgz#1c3df624bfc4b62f992d3012b84c56d41eab3776" - integrity sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ== - -"@types/uglify-js@*": - version "3.13.0" - resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.0.tgz#1cad8df1fb0b143c5aba08de5712ea9d1ff71124" - integrity sha512-EGkrJD5Uy+Pg0NUR8uA4bJ5WMfljyad0G+784vLCNUkD+QwOJXUbBYExXfVGf7YtyzdQp3L/XMYcliB987kL5Q== - 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.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" - integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== - -"@types/webpack-bundle-analyzer@3.9.3": - version "3.9.3" - resolved "https://registry.yarnpkg.com/@types/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.3.tgz#3a12025eb5d86069c30b47a157e62c0aca6e39a1" - integrity sha512-l/vaDMWGcXiMB3CbczpyICivLTB07/JNtn1xebsRXE9tPaUDEHgX3x7YP6jfznG5TOu7I4w0Qx1tZz61znmPmg== - dependencies: - "@types/webpack" "^4" - -"@types/webpack-dev-middleware@4.1.2": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@types/webpack-dev-middleware/-/webpack-dev-middleware-4.1.2.tgz#c683adc6a44d0b66e98f1932ab33d1c32d558142" - integrity sha512-SxXzPCqeZ03fJ2dg3iD7cSXvqZymmS5/2GD9fANRcyWN7HYK1H3ty6q7IInXZKvPrdUqij831G3RLIeKK6aGdw== - dependencies: - "@types/connect" "*" - "@types/webpack" "^4" - -"@types/webpack-hot-middleware@2.25.4": - version "2.25.4" - resolved "https://registry.yarnpkg.com/@types/webpack-hot-middleware/-/webpack-hot-middleware-2.25.4.tgz#e439e9a3694158badf23b094bc1ad6051767ca05" - integrity sha512-6tQb9EBKIANZYUVLQYWiWfDFVe7FhXSj4bB2EF5QB7VtYWL3HDR+y/zqjZPAnCorv0spLqVMRqjRK8AmhfocMw== - dependencies: - "@types/connect" "*" - "@types/webpack" "^4" - -"@types/webpack-sources@*": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@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.28", "@types/webpack@^4", "@types/webpack@^4.41.8": - version "4.41.28" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.28.tgz#0069a2159b7ad4d83d0b5801942c17d54133897b" - integrity sha512-Nn84RAiJjKRfPFFCVR8LC4ueTtTdfWAMZ03THIzZWRJB+rX24BD3LqPSFnbMscWauEsT4segAsylPDIaZyZyLQ== - dependencies: - "@types/anymatch" "*" - "@types/node" "*" - "@types/tapable" "^1" - "@types/uglify-js" "*" - "@types/webpack-sources" "*" - source-map "^0.6.0" - -"@types/yauzl@^2.9.1": - version "2.9.1" - resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.1.tgz#d10f69f9f522eef3cf98e30afb684a1e1ec923af" - integrity sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA== - dependencies: - "@types/node" "*" - -"@typescript-eslint/eslint-plugin@^4.25.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.26.0.tgz#12bbd6ebd5e7fabd32e48e1e60efa1f3554a3242" - integrity sha512-yA7IWp+5Qqf+TLbd8b35ySFOFzUfL7i+4If50EqvjT6w35X8Lv0eBHb6rATeWmucks37w+zV+tWnOXI9JlG6Eg== - dependencies: - "@typescript-eslint/experimental-utils" "4.26.0" - "@typescript-eslint/scope-manager" "4.26.0" - debug "^4.3.1" - functional-red-black-tree "^1.0.1" - lodash "^4.17.21" - regexpp "^3.1.0" - semver "^7.3.5" - tsutils "^3.21.0" - -"@typescript-eslint/experimental-utils@4.26.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.26.0.tgz#ba7848b3f088659cdf71bce22454795fc55be99a" - integrity sha512-TH2FO2rdDm7AWfAVRB5RSlbUhWxGVuxPNzGT7W65zVfl8H/WeXTk1e69IrcEVsBslrQSTDKQSaJD89hwKrhdkw== - dependencies: - "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.26.0" - "@typescript-eslint/types" "4.26.0" - "@typescript-eslint/typescript-estree" "4.26.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - -"@typescript-eslint/experimental-utils@^4.0.1": - version "4.23.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.23.0.tgz#f2059434cd6e5672bfeab2fb03b7c0a20622266f" - integrity sha512-WAFNiTDnQfrF3Z2fQ05nmCgPsO5o790vOhmWKXbbYQTO9erE1/YsFot5/LnOUizLzU2eeuz6+U/81KV5/hFTGA== - dependencies: - "@types/json-schema" "^7.0.3" - "@typescript-eslint/scope-manager" "4.23.0" - "@typescript-eslint/types" "4.23.0" - "@typescript-eslint/typescript-estree" "4.23.0" - eslint-scope "^5.0.0" - eslint-utils "^2.0.0" - -"@typescript-eslint/parser@^4.25.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.26.0.tgz#31b6b732c9454f757b020dab9b6754112aa5eeaf" - integrity sha512-b4jekVJG9FfmjUfmM4VoOItQhPlnt6MPOBUL0AQbiTmm+SSpSdhHYlwayOm4IW9KLI/4/cRKtQCmDl1oE2OlPg== - dependencies: - "@typescript-eslint/scope-manager" "4.26.0" - "@typescript-eslint/types" "4.26.0" - "@typescript-eslint/typescript-estree" "4.26.0" - debug "^4.3.1" - -"@typescript-eslint/scope-manager@4.23.0": - version "4.23.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.23.0.tgz#8792ef7eacac122e2ec8fa2d30a59b8d9a1f1ce4" - integrity sha512-ZZ21PCFxPhI3n0wuqEJK9omkw51wi2bmeKJvlRZPH5YFkcawKOuRMQMnI8mH6Vo0/DoHSeZJnHiIx84LmVQY+w== - dependencies: - "@typescript-eslint/types" "4.23.0" - "@typescript-eslint/visitor-keys" "4.23.0" - -"@typescript-eslint/scope-manager@4.26.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.26.0.tgz#60d1a71df162404e954b9d1c6343ff3bee496194" - integrity sha512-G6xB6mMo4xVxwMt5lEsNTz3x4qGDt0NSGmTBNBPJxNsrTXJSm21c6raeYroS2OwQsOyIXqKZv266L/Gln1BWqg== - dependencies: - "@typescript-eslint/types" "4.26.0" - "@typescript-eslint/visitor-keys" "4.26.0" - -"@typescript-eslint/types@4.23.0": - version "4.23.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.23.0.tgz#da1654c8a5332f4d1645b2d9a1c64193cae3aa3b" - integrity sha512-oqkNWyG2SLS7uTWLZf6Sr7Dm02gA5yxiz1RP87tvsmDsguVATdpVguHr4HoGOcFOpCvx9vtCSCyQUGfzq28YCw== - -"@typescript-eslint/types@4.26.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.26.0.tgz#7c6732c0414f0a69595f4f846ebe12616243d546" - integrity sha512-rADNgXl1kS/EKnDr3G+m7fB9yeJNnR9kF7xMiXL6mSIWpr3Wg5MhxyfEXy/IlYthsqwBqHOr22boFbf/u6O88A== - -"@typescript-eslint/typescript-estree@4.23.0": - version "4.23.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.23.0.tgz#0753b292097523852428a6f5a1aa8ccc1aae6cd9" - integrity sha512-5Sty6zPEVZF5fbvrZczfmLCOcby3sfrSPu30qKoY1U3mca5/jvU5cwsPb/CO6Q3ByRjixTMIVsDkqwIxCf/dMw== - dependencies: - "@typescript-eslint/types" "4.23.0" - "@typescript-eslint/visitor-keys" "4.23.0" - debug "^4.1.1" - globby "^11.0.1" - is-glob "^4.0.1" - semver "^7.3.2" - tsutils "^3.17.1" - -"@typescript-eslint/typescript-estree@4.26.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.26.0.tgz#aea17a40e62dc31c63d5b1bbe9a75783f2ce7109" - integrity sha512-GHUgahPcm9GfBuy3TzdsizCcPjKOAauG9xkz9TR8kOdssz2Iz9jRCSQm6+aVFa23d5NcSpo1GdHGSQKe0tlcbg== - dependencies: - "@typescript-eslint/types" "4.26.0" - "@typescript-eslint/visitor-keys" "4.26.0" - debug "^4.3.1" - globby "^11.0.3" - is-glob "^4.0.1" - semver "^7.3.5" - tsutils "^3.21.0" - -"@typescript-eslint/visitor-keys@4.23.0": - version "4.23.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.23.0.tgz#7215cc977bd3b4ef22467b9023594e32f9e4e455" - integrity sha512-5PNe5cmX9pSifit0H+nPoQBXdbNzi5tOEec+3riK+ku4e3er37pKxMKDH5Ct5Y4fhWxcD4spnlYjxi9vXbSpwg== - dependencies: - "@typescript-eslint/types" "4.23.0" - eslint-visitor-keys "^2.0.0" - -"@typescript-eslint/visitor-keys@4.26.0": - version "4.26.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.26.0.tgz#26d2583169222815be4dcd1da4fe5459bc3bcc23" - integrity sha512-cw4j8lH38V1ycGBbF+aFiLUls9Z0Bw8QschP3mkth50BbWzgFS33ISIgBzUMuQ2IdahoEv/rXstr8Zhlz4B1Zg== - dependencies: - "@typescript-eslint/types" "4.26.0" - eslint-visitor-keys "^2.0.0" - -"@vitejs/plugin-vue@^1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-1.2.4.tgz#a7aa6e6a31c556a8b781de730316deeecf7f56f2" - integrity sha512-D/3H9plevPQGgQGwmV6eecvOnooLTecPR63HPffVVWPEhbfvmtYLWgznzs456NBb2DItiRTCIa1yWxvGqC+I8A== - -"@vue/babel-helper-vue-jsx-merge-props@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz#31624a7a505fb14da1d58023725a4c5f270e6a81" - integrity sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA== - -"@vue/babel-plugin-transform-vue-jsx@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.2.1.tgz#646046c652c2f0242727f34519d917b064041ed7" - integrity sha512-HJuqwACYehQwh1fNT8f4kyzqlNMpBuUK4rSiSES5D4QsYncv5fxFsLyrxFPG2ksO7t5WP+Vgix6tt6yKClwPzA== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1" - html-tags "^2.0.0" - lodash.kebabcase "^4.1.1" - svg-tags "^1.0.0" - -"@vue/babel-preset-jsx@^1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@vue/babel-preset-jsx/-/babel-preset-jsx-1.2.4.tgz#92fea79db6f13b01e80d3a0099e2924bdcbe4e87" - integrity sha512-oRVnmN2a77bYDJzeGSt92AuHXbkIxbf/XXSE3klINnh9AXBmVS1DGa1f0d+dDYpLfsAKElMnqKTQfKn7obcL4w== - dependencies: - "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1" - "@vue/babel-plugin-transform-vue-jsx" "^1.2.1" - "@vue/babel-sugar-composition-api-inject-h" "^1.2.1" - "@vue/babel-sugar-composition-api-render-instance" "^1.2.4" - "@vue/babel-sugar-functional-vue" "^1.2.2" - "@vue/babel-sugar-inject-h" "^1.2.2" - "@vue/babel-sugar-v-model" "^1.2.3" - "@vue/babel-sugar-v-on" "^1.2.3" - -"@vue/babel-sugar-composition-api-inject-h@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.2.1.tgz#05d6e0c432710e37582b2be9a6049b689b6f03eb" - integrity sha512-4B3L5Z2G+7s+9Bwbf+zPIifkFNcKth7fQwekVbnOA3cr3Pq71q71goWr97sk4/yyzH8phfe5ODVzEjX7HU7ItQ== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@vue/babel-sugar-composition-api-render-instance@^1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.2.4.tgz#e4cbc6997c344fac271785ad7a29325c51d68d19" - integrity sha512-joha4PZznQMsxQYXtR3MnTgCASC9u3zt9KfBxIeuI5g2gscpTsSKRDzWQt4aqNIpx6cv8On7/m6zmmovlNsG7Q== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@vue/babel-sugar-functional-vue@^1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.2.2.tgz#267a9ac8d787c96edbf03ce3f392c49da9bd2658" - integrity sha512-JvbgGn1bjCLByIAU1VOoepHQ1vFsroSA/QkzdiSs657V79q6OwEWLCQtQnEXD/rLTA8rRit4rMOhFpbjRFm82w== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@vue/babel-sugar-inject-h@^1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.2.2.tgz#d738d3c893367ec8491dcbb669b000919293e3aa" - integrity sha512-y8vTo00oRkzQTgufeotjCLPAvlhnpSkcHFEp60+LJUwygGcd5Chrpn5480AQp/thrxVm8m2ifAk0LyFel9oCnw== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@vue/babel-sugar-v-model@^1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.2.3.tgz#fa1f29ba51ebf0aa1a6c35fa66d539bc459a18f2" - integrity sha512-A2jxx87mySr/ulAsSSyYE8un6SIH0NWHiLaCWpodPCVOlQVODCaSpiR4+IMsmBr73haG+oeCuSvMOM+ttWUqRQ== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1" - "@vue/babel-plugin-transform-vue-jsx" "^1.2.1" - camelcase "^5.0.0" - html-tags "^2.0.0" - svg-tags "^1.0.0" - -"@vue/babel-sugar-v-on@^1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.2.3.tgz#342367178586a69f392f04bfba32021d02913ada" - integrity sha512-kt12VJdz/37D3N3eglBywV8GStKNUhNrsxChXIV+o0MwVXORYuhDTHJRKPgLJRb/EY3vM2aRFQdxJBp9CLikjw== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-plugin-transform-vue-jsx" "^1.2.1" - camelcase "^5.0.0" - -"@vue/compiler-core@3.0.11": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.0.11.tgz#5ef579e46d7b336b8735228758d1c2c505aae69a" - integrity sha512-6sFj6TBac1y2cWCvYCA8YzHJEbsVkX7zdRs/3yK/n1ilvRqcn983XvpBbnN3v4mZ1UiQycTvOiajJmOgN9EVgw== - dependencies: - "@babel/parser" "^7.12.0" - "@babel/types" "^7.12.0" - "@vue/shared" "3.0.11" - estree-walker "^2.0.1" - source-map "^0.6.1" - -"@vue/compiler-dom@3.0.11", "@vue/compiler-dom@^3.0.7": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.0.11.tgz#b15fc1c909371fd671746020ba55b5dab4a730ee" - integrity sha512-+3xB50uGeY5Fv9eMKVJs2WSRULfgwaTJsy23OIltKgMrynnIj8hTYY2UL97HCoz78aDw1VDXdrBQ4qepWjnQcw== - dependencies: - "@vue/compiler-core" "3.0.11" - "@vue/shared" "3.0.11" - -"@vue/compiler-sfc@^3.0.7": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.0.11.tgz#cd8ca2154b88967b521f5ad3b10f5f8b6b665679" - integrity sha512-7fNiZuCecRleiyVGUWNa6pn8fB2fnuJU+3AGjbjl7r1P5wBivfl02H4pG+2aJP5gh2u+0wXov1W38tfWOphsXw== - dependencies: - "@babel/parser" "^7.13.9" - "@babel/types" "^7.13.0" - "@vue/compiler-core" "3.0.11" - "@vue/compiler-dom" "3.0.11" - "@vue/compiler-ssr" "3.0.11" - "@vue/shared" "3.0.11" - consolidate "^0.16.0" - estree-walker "^2.0.1" - hash-sum "^2.0.0" - lru-cache "^5.1.1" - magic-string "^0.25.7" - merge-source-map "^1.1.0" - postcss "^8.1.10" - postcss-modules "^4.0.0" - postcss-selector-parser "^6.0.4" - source-map "^0.6.1" - -"@vue/compiler-ssr@3.0.11": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.0.11.tgz#ac5a05fd1257412fa66079c823d8203b6a889a13" - integrity sha512-66yUGI8SGOpNvOcrQybRIhl2M03PJ+OrDPm78i7tvVln86MHTKhM3ERbALK26F7tXl0RkjX4sZpucCpiKs3MnA== - dependencies: - "@vue/compiler-dom" "3.0.11" - "@vue/shared" "3.0.11" - -"@vue/component-compiler-utils@^3.1.0", "@vue/component-compiler-utils@^3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.2.0.tgz#8f85182ceed28e9b3c75313de669f83166d11e5d" - integrity sha512-lejBLa7xAMsfiZfNp7Kv51zOzifnb29FwdnMLa96z26kXErPFioSf9BMcePVIQ6/Gc6/mC0UrPpxAWIHyae0vw== - dependencies: - consolidate "^0.15.1" - hash-sum "^1.0.2" - lru-cache "^4.1.2" - merge-source-map "^1.1.0" - postcss "^7.0.14" - postcss-selector-parser "^6.0.2" - source-map "~0.6.1" - vue-template-es2015-compiler "^1.9.0" - optionalDependencies: - prettier "^1.18.2" - -"@vue/composition-api@1.0.0-rc.13", "@vue/composition-api@^1.0.0-rc.13": - version "1.0.0-rc.13" - resolved "https://registry.yarnpkg.com/@vue/composition-api/-/composition-api-1.0.0-rc.13.tgz#6cb768d0575b3c031ba15e05b09ecbd9780d941c" - integrity sha512-jUobqfMYC4gJJIMI3SfANiDMa7cNlfIQQTZFCVagKefnfzCDMtfHGuq0D/K2+yAyHYP2gHLyLHb9E6dQmPN2pQ== - dependencies: - tslib "^2.3.0" - -"@vue/reactivity@3.0.11": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.0.11.tgz#07b588349fd05626b17f3500cbef7d4bdb4dbd0b" - integrity sha512-SKM3YKxtXHBPMf7yufXeBhCZ4XZDKP9/iXeQSC8bBO3ivBuzAi4aZi0bNoeE2IF2iGfP/AHEt1OU4ARj4ao/Xw== - dependencies: - "@vue/shared" "3.0.11" - -"@vue/runtime-core@3.0.11": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.0.11.tgz#c52dfc6acf3215493623552c1c2919080c562e44" - integrity sha512-87XPNwHfz9JkmOlayBeCCfMh9PT2NBnv795DSbi//C/RaAnc/bGZgECjmkD7oXJ526BZbgk9QZBPdFT8KMxkAg== - dependencies: - "@vue/reactivity" "3.0.11" - "@vue/shared" "3.0.11" - -"@vue/runtime-dom@3.0.11": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.0.11.tgz#7a552df21907942721feb6961c418e222a699337" - integrity sha512-jm3FVQESY3y2hKZ2wlkcmFDDyqaPyU3p1IdAX92zTNeCH7I8zZ37PtlE1b9NlCtzV53WjB4TZAYh9yDCMIEumA== - dependencies: - "@vue/runtime-core" "3.0.11" - "@vue/shared" "3.0.11" - csstype "^2.6.8" - -"@vue/shared@3.0.11": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.0.11.tgz#20d22dd0da7d358bb21c17f9bde8628152642c77" - integrity sha512-b+zB8A2so8eCE0JsxjL24J7vdGl8rzPQ09hZNhystm+KqSbKcAej1A+Hbva1rCMmTTqA+hFnUSDc5kouEo0JzA== - -"@vueuse/core@^5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-5.1.3.tgz#a9edda9202513423a27fbac896dd7bc918d1ac6c" - integrity sha512-5CmF/epSo9L1Obz3A37UJOpDdno0BDw46zyXq0DHgvzEwL6gPb9GgJZcy4Hm5YSjQYIeQPo35uO8qsZyIjEZog== - dependencies: - "@vueuse/shared" "5.1.3" - vue-demi "*" - -"@vueuse/integrations@^5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@vueuse/integrations/-/integrations-5.1.3.tgz#bf11c56d978bad5a7723c696b5ea72ae7d84e63d" - integrity sha512-eN6L+qV/DfXP3myoKVd2+zNx02GgEdAfLLR5CKJ8eFKgTzUh7Ueha/M0QNPSZfUTkehVMn6iLS3NfTkRgp/JHg== - dependencies: - "@vueuse/shared" "5.1.3" - vue-demi "*" - optionalDependencies: - axios "^0.21.1" - focus-trap "^6.6.0" - jwt-decode "^3.1.2" - nprogress "^0.2.0" - qrcode "^1.4.4" - universal-cookie "^4.0.4" - -"@vueuse/shared@5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-5.1.3.tgz#11faa3a1a2b4d3dc41eac7a825900a8894efe95e" - integrity sha512-p8n/69QMtSsLN5rri9c3sN5QJJXWA7cm9chgo3DowTBRYLBni1I9kGY2nz299Tur6XEFuf+63E5TvMTJVJeHHw== - dependencies: - vue-demi "*" - -"@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== - dependencies: - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - -"@webassemblyjs/floating-point-hex-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" - integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== - -"@webassemblyjs/helper-api-error@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" - integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== - -"@webassemblyjs/helper-buffer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== - -"@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== - dependencies: - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== - -"@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - -"@webassemblyjs/helper-wasm-bytecode@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" - integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== - -"@webassemblyjs/helper-wasm-section@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - -"@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" - integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== - -"@webassemblyjs/wasm-edit@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/helper-wasm-section" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-opt" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/wasm-gen@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wasm-opt@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - -"@webassemblyjs/wasm-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/floating-point-hex-parser" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-code-frame" "1.9.0" - "@webassemblyjs/helper-fsm" "1.9.0" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/wast-printer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - "@xtuc/long" "4.2.2" - -"@windicss/config@1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@windicss/config/-/config-1.2.4.tgz#24b36d30c1698fff14a9bacaebc93afaf2fe9019" - integrity sha512-81oah5NF7m/ltHrP2VpKu12qejP03erelNckH9ho86vuItsSd/tNehW3oJqOThZYsbuROCzIU55QDfe7MBd+Iw== - dependencies: - debug "^4.3.2" - jiti "^1.10.1" - windicss "^3.1.4" - -"@windicss/plugin-scrollbar@^1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@windicss/plugin-scrollbar/-/plugin-scrollbar-1.2.3.tgz#4796e999e98a4bca6c269fa1faffd2e9b5452cac" - integrity sha512-+cqv1pEmaNPITeBJ/lO6tc8IjBzRhQ+V9G8r249MMXivYoxUO4DtModBrRGHVvBgsYZgPXDsIv2jqtxc4NqYEg== - -"@windicss/plugin-utils@1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@windicss/plugin-utils/-/plugin-utils-1.2.0.tgz#f9c657f981d7696dfa6b8e8069b311161a2ac9b4" - integrity sha512-6OAsyz2yI0VKNHACT35FjWWzMZlMEF7Z0pIiNUd9+R9jc73+qJcK1DRCZ3YxnjuGk0G76b542uXQEJgv2jL3vA== - dependencies: - "@antfu/utils" "^0.2.3" - debug "^4.3.2" - fast-glob "^3.2.5" - jiti "^1.10.1" - magic-string "^0.25.7" - micromatch "^4.0.4" - windicss "^3.1.3" - -"@windicss/plugin-utils@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@windicss/plugin-utils/-/plugin-utils-1.1.1.tgz#7f70952adc8d33f607706e434a153e2cdff52b64" - integrity sha512-niKEDyUpOfCGemFHopI9fxdWPpJQIZ/jmaU4spQXsGc1oEts164P8LUJPQmXc8C6vjKwkrH7KA+lxYNG5LmlDA== - dependencies: - "@antfu/utils" "^0.2.3" - debug "^4.3.2" - fast-glob "^3.2.5" - jiti "^1.10.1" - magic-string "^0.25.7" - micromatch "^4.0.4" - windicss "^3.1.3" - -"@windicss/plugin-utils@^1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@windicss/plugin-utils/-/plugin-utils-1.2.4.tgz#b319355d6e9b4e529c965b5a55af6d57679e417f" - integrity sha512-0G0zPx+gLfnP2isVMrsY+C0BDXASgFwtiT7g+YL+0LCTxjPxGOMnu5lCaAoYq+1LAskliPagqnu5mgKUYMyf2Q== - dependencies: - "@antfu/utils" "^0.2.4" - "@windicss/config" "1.2.4" - debug "^4.3.2" - fast-glob "^3.2.6" - magic-string "^0.25.7" - micromatch "^4.0.4" - windicss "^3.1.4" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@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.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -JSONStream@^1.0.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - -abort-controller@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== - dependencies: - event-target-shim "^5.0.0" - -accepts@~1.3.5: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -acorn-jsx@^5.2.0, acorn-jsx@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" - integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== - -acorn-walk@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.1.0.tgz#d3c6a9faf00987a5e2b9bdb506c2aa76cd707f83" - integrity sha512-mjmzmv12YIG/G8JQdQuz2MUDShEJ6teYpT5bmWA4q7iwoGen8xtt3twF3OvzIUl+Q06aWIjvnwQUKvQ6TtMRjg== - -acorn@^6.4.1: - version "6.4.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== - -acorn@^7.1.1, acorn@^7.4.0: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.0.4: - version "8.2.4" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.2.4.tgz#caba24b08185c3b56e3168e97d15ed17f4d31fd0" - integrity sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg== - -add-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" - integrity sha1-anmQQ3ynNtXhKI25K9MmbV9csqo= - -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^8.0.1: - version "8.3.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.3.0.tgz#25ee7348e32cdc4a1dbb38256bf6bdc451dd577c" - integrity sha512-RYE7B5An83d7eWnDR8kbdaIFqmKCNsP16ay1hDbJEU+sa0e3H9SebskCt0Uufem6cfAVu7Col6ubcn/W+Sm8/Q== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -algoliasearch@^4.0.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.9.1.tgz#1fa8ece3f9808e465226176b88b953801c2274e0" - integrity sha512-EeJUYXzBEhZSsL6tXc3hseLBCtlNLa1MZ4mlMK6EeX38yRjY5vgnFcNNml6uUhlOjvheKxgkKRpPWkxgL8Cqkg== - dependencies: - "@algolia/cache-browser-local-storage" "4.9.1" - "@algolia/cache-common" "4.9.1" - "@algolia/cache-in-memory" "4.9.1" - "@algolia/client-account" "4.9.1" - "@algolia/client-analytics" "4.9.1" - "@algolia/client-common" "4.9.1" - "@algolia/client-recommendation" "4.9.1" - "@algolia/client-search" "4.9.1" - "@algolia/logger-common" "4.9.1" - "@algolia/logger-console" "4.9.1" - "@algolia/requester-browser-xhr" "4.9.1" - "@algolia/requester-common" "4.9.1" - "@algolia/requester-node-http" "4.9.1" - "@algolia/transporter" "4.9.1" - -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= - -ansi-align@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" - integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== - dependencies: - string-width "^3.0.0" - -ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-escapes@^4.2.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-html@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@^3.1.1, anymatch@~3.1.1, anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -aproba@^1.0.3, aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -arch@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" - integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== - -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/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" - -arg@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.0.tgz#a20e2bb5710e82950a516b3f933fee5ed478be90" - integrity sha512-4P8Zm2H+BRS+c/xX1LrHw0qKpEhdlZjLCgWy+d78T9vqa2Z2SiD2wMrYuWIAFy5IZUD7nnNXroRttz+0RzlrzQ== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= - -array-ify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" - integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= - -array-includes@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" - integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - get-intrinsic "^1.1.1" - is-string "^1.0.5" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -array.prototype.flat@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" - integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= - -asap@~2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= - -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -assert-never@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/assert-never/-/assert-never-1.2.1.tgz#11f0e363bf146205fb08193b5c7b90f4d1cf44fe" - integrity sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw== - -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -ast-types@0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.14.2.tgz#600b882df8583e3cd4f2df5fa20fa83759d4bdfd" - integrity sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA== - dependencies: - tslib "^2.0.1" - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -autoprefixer@^10.2.5: - version "10.2.5" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.2.5.tgz#096a0337dbc96c0873526d7fef5de4428d05382d" - integrity sha512-7H4AJZXvSsn62SqZyJCP+1AWwOuoYpUfK6ot9vm0e87XD6mT8lDywc9D9OTJPMULyGcvmIxzTAMeG2Cc+YX+fA== - dependencies: - browserslist "^4.16.3" - caniuse-lite "^1.0.30001196" - colorette "^1.2.2" - fraction.js "^4.0.13" - normalize-range "^0.1.2" - postcss-value-parser "^4.1.0" - -autoprefixer@^9.6.1: - version "9.8.6" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" - integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== - dependencies: - browserslist "^4.12.0" - caniuse-lite "^1.0.30001109" - colorette "^1.2.1" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^7.0.32" - postcss-value-parser "^4.1.0" - -axios@^0.21.1: - version "0.21.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" - integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== - dependencies: - follow-redirects "^1.10.0" - -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/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@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" - integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - eslint-visitor-keys "^1.0.0" - resolve "^1.12.0" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - integrity sha1-zORReto1b0IgvK6KAsKzRvmlZmQ= - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - integrity sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340= - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - integrity sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - integrity sha1-8luCz33BBDPFX3BZLVdGQArCLKo= - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - integrity sha1-00dbjAPtmCQqJbSDUasYOZ01gKk= - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - integrity sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - integrity sha1-HssnaJydJVE+rbyZFKc/VAi+enY= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - integrity sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - integrity sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI= - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - integrity sha1-XsWBgnrXI/7N04HxySg5BnbkVRs= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - integrity sha1-v22/5Dk40XNpohPKiov3S2qQqxo= - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-loader@^8.2.2: - version "8.2.2" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" - integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g== - dependencies: - find-cache-dir "^3.3.1" - loader-utils "^1.4.0" - make-dir "^3.1.0" - schema-utils "^2.6.5" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - integrity sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -babel-plugin-polyfill-corejs2@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz#686775bf9a5aa757e10520903675e3889caeedc4" - integrity sha512-9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg== - dependencies: - "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.2.0" - semver "^6.1.1" - -babel-plugin-polyfill-corejs3@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz#f4b4bb7b19329827df36ff56f6e6d367026cb7a2" - integrity sha512-zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.0" - core-js-compat "^3.9.1" - -babel-plugin-polyfill-regenerator@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz#853f5f5716f4691d98c84f8069c7636ea8da7ab8" - integrity sha512-J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.0" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - integrity sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU= - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - integrity sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4= - -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - integrity sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM= - -babel-plugin-transform-async-to-generator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - integrity sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E= - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - integrity sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - integrity sha1-u8UbSflk1wy42OC5ToICRs46YUE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.23.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - integrity sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8= - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - integrity sha1-WkxYpQyclGHlZLSyo7+ryXolhNs= - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - integrity sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM= - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - integrity sha1-mXux8auWf2gtKwh2/jWNYOdlxW0= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - integrity sha1-c+s9MQypaePvnskcU3QabxV2Qj4= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - integrity sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - integrity sha1-g0yJhTvDaxrw86TF26qU/Y6sqos= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - integrity sha1-T1SgLWzWbPkVKAAZox0xklN3yi4= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - integrity sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ= - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - integrity sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM= - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - integrity sha1-rJl+YoXNGO1hdq22B9YCNErThGg= - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - integrity sha1-JM72muIcuDp/hgPa0CH1cusnj40= - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - integrity sha1-V6w1GrScrxSpfNE7CfZv3wpiXys= - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-shorthand-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - integrity sha1-JPh11nIch2YbvZmkYi5R8U3jiqA= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - integrity sha1-1taKmfia7cRTbIGlQujdnxdG+NE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - integrity sha1-AMHNsaynERLN8M9hJsLta0V8zbw= - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - integrity sha1-qEs0UPfp+PH2g51taH2oS7EjbY0= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - integrity sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - integrity sha1-04sS9C6nMj9yk4fxinxa4frrNek= - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-exponentiation-operator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" - integrity sha1-KrDJx/MJj6SJB3cruBP+QejeOg4= - dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-regenerator@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - integrity sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8= - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-preset-env@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" - integrity sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg== - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^3.2.6" - invariant "^2.2.2" - semver "^5.3.0" - -babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babel-walk@3.0.0-canary-5: - version "3.0.0-canary-5" - resolved "https://registry.yarnpkg.com/babel-walk/-/babel-walk-3.0.0-canary-5.tgz#f66ecd7298357aee44955f235a6ef54219104b11" - integrity sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw== - dependencies: - "@babel/types" "^7.9.6" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - -bail@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" - integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base64-js@^1.0.2, base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/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" - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/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.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -bluebird@^3.1.1, bluebird@^3.5.5, bluebird@^3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.0.0, bn.js@^5.1.1: - version "5.2.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" - integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== - -boolbase@^1.0.0, boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - -boxen@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.0.1.tgz#657528bdd3f59a772b8279b831f27ec2c744664b" - integrity sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA== - dependencies: - ansi-align "^3.0.0" - camelcase "^6.2.0" - chalk "^4.1.0" - cli-boxes "^2.2.1" - string-width "^4.2.0" - type-fest "^0.20.2" - widest-line "^3.1.0" - wrap-ansi "^7.0.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^3.0.1, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -brorand@^1.0.1, brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@*, browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.3, browserslist@^4.16.6, browserslist@^4.6.4: - version "4.16.6" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" - integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== - dependencies: - caniuse-lite "^1.0.30001219" - colorette "^1.2.2" - electron-to-chromium "^1.3.723" - escalade "^3.1.1" - node-releases "^1.1.71" - -browserslist@^3.2.6: - version "3.2.8" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" - integrity sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ== - dependencies: - caniuse-lite "^1.0.30000844" - electron-to-chromium "^1.3.47" - -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= - -buffer-from@^1.0.0, buffer-from@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer-json@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/buffer-json/-/buffer-json-2.0.0.tgz#f73e13b1e42f196fe2fd67d001c7d7107edd7c23" - integrity sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -buffer@^5.1.0, buffer@^5.2.1, buffer@^5.4.3, buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -builtin-modules@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" - integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - -cac@^6.7.3: - version "6.7.3" - resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.3.tgz#10410b8611677990cc2e3c8b576d471c1d71b768" - integrity sha512-ECVqVZh74qgSuZG9YOt2OJPI3wGcf+EwwuF/XIOYqZBD0KZYLtgPWqFPxmDPQ6joxI1nOlvVgRV6VT53Ooyocg== - -cacache@^12.0.2: - version "12.0.4" - resolved "https://registry.yarnpkg.com/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.6" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.6.tgz#65a8c580fda15b59150fb76bf3f3a8e45d583099" - integrity sha512-g1WYDMct/jzW+JdWEyjaX2zoBkZ6ZT9VpOyp2I/VMtDsNLffNat3kqPFfi1eDRSK9/SuKGyORDHcQMcPF8sQ/w== - 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.1" - tar "^6.0.2" - unique-filename "^1.1.1" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/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" - -cache-loader@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-4.1.0.tgz#9948cae353aec0a1fcb1eafda2300816ec85387e" - integrity sha512-ftOayxve0PwKzBF/GLsZNC9fJBXl8lkZE3TOsjkboHfVHVkL39iUEs1FO07A33mizmci5Dudt38UZrrYXDtbhw== - dependencies: - buffer-json "^2.0.0" - find-cache-dir "^3.0.0" - loader-utils "^1.2.3" - mkdirp "^0.5.1" - neo-async "^2.6.1" - schema-utils "^2.0.0" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - -callsites@^3.0.0, callsites@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camel-case@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" - integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== - dependencies: - pascal-case "^3.1.2" - tslib "^2.0.3" - -camelcase-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/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@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.0.0, camelcase@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" - integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== - -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/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-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001196, caniuse-lite@^1.0.30001219: - version "1.0.30001228" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001228.tgz#bfdc5942cd3326fa51ee0b42fbef4da9d492a7fa" - integrity sha512-QQmLOGJ3DEgokHbMSA8cj2a+geXqmnpyOFT0lhQV6P3/YOJvGDEwoedcwxEQ30gJIwIIunHIicunJ2rzK5gB2A== - -caniuse-lite@^1.0.30001235: - version "1.0.30001239" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001239.tgz#66e8669985bb2cb84ccb10f68c25ce6dd3e4d2b8" - integrity sha512-cyBkXJDMeI4wthy8xJ2FvDU6+0dtcZSJW3voUF8+e9f1bBeuvyZfc3PNbkOETyhbR+dGCPzn9E7MA3iwzusOhQ== - -ccount@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.0, chalk@^2.3.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" - integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -character-entities-html4@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.4.tgz#0e64b0a3753ddbf1fdc044c5fd01d0199a02e125" - integrity sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g== - -character-entities-legacy@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" - integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== - -character-parser@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/character-parser/-/character-parser-2.2.0.tgz#c7ce28f36d4bcd9744e5ffc2c5fcde1c73261fc0" - integrity sha1-x84o821LzZdE5f/CxfzeHHMmH8A= - dependencies: - is-regex "^1.0.3" - -character-reference-invalid@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" - integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -cheerio-select@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-1.5.0.tgz#faf3daeb31b17c5e1a9dabcee288aaf8aafa5823" - integrity sha512-qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg== - dependencies: - css-select "^4.1.3" - css-what "^5.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" - domutils "^2.7.0" - -cheerio@^1.0.0-rc.3: - version "1.0.0-rc.10" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.10.tgz#2ba3dcdfcc26e7956fc1f440e61d51c643379f3e" - integrity sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw== - dependencies: - cheerio-select "^1.5.0" - dom-serializer "^1.3.2" - domhandler "^4.2.0" - htmlparser2 "^6.1.0" - parse5 "^6.0.1" - parse5-htmlparser2-tree-adapter "^6.0.1" - tslib "^2.2.0" - -chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chokidar@^3.4.1, chokidar@^3.4.2, chokidar@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" - integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.5.0" - optionalDependencies: - fsevents "~2.3.1" - -chokidar@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - -chrome-trace-event@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -ci-info@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.1.1.tgz#9a32fcefdf7bcdb6f0a7e1c0f8098ec57897b80a" - integrity sha512-kdRWLBIJwdsYJWYJFtAFFYxybguqeF91qpZaggjG5Nf8QKdizFG2hjqvaTXbxFIcYbSaD74KpAXv6BSm17DHEQ== - -ci-info@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" - integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/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" - -clean-css@^4.2.1, clean-css@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/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-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clean-regexp/-/clean-regexp-1.0.0.tgz#8df7c7aae51fd36874e8f8d05b9180bc11a3fed7" - integrity sha1-jffHquUf02h06PjQW5GAvBGj/tc= - dependencies: - escape-string-regexp "^1.0.5" - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -clear-module@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/clear-module/-/clear-module-4.1.1.tgz#bf8ba3b62eb70ee1e0adec90589741425cf32db8" - integrity sha512-ng0E7LeODcT3QkazOckzZqbca+JByQy/Q2Z6qO24YsTp+pLxCfohGz2gJYJqZS0CWTX3LEUiHOqe5KlYeUbEMw== - dependencies: - parent-module "^2.0.0" - resolve-from "^5.0.0" - -cli-boxes@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" - integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-width@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" - integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== - -clipboard@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.8.tgz#ffc6c103dd2967a83005f3f61976aa4655a4cdba" - integrity sha512-Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ== - dependencies: - good-listener "^1.2.2" - select "^1.1.2" - tiny-emitter "^2.0.0" - -clipboardy@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-2.3.0.tgz#3c2903650c68e46a91b388985bc2774287dba290" - integrity sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ== - dependencies: - arch "^2.1.1" - execa "^1.0.0" - is-wsl "^2.1.1" - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/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" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/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" - -cluster-key-slot@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d" - integrity sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw== - -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/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" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/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.9.0, color-convert@^1.9.1: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@^1.0.0, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.5.4: - version "1.5.5" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz#65474a8f0e7439625f3d27a6a19d89fc45223014" - integrity sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.0.0, color@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/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, colorette@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" - integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -comma-separated-tokens@^1.0.0: - version "1.0.8" - resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" - integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== - -commander@^2.19.0, commander@^2.20.0, commander@^2.20.3: - version "2.20.3" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== - -commander@^6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" - integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -compare-func@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^1.5.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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" - -connect@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" - integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== - dependencies: - debug "2.6.9" - finalhandler "1.1.2" - parseurl "~1.3.3" - utils-merge "1.0.1" - -consola@^2.10.0, consola@^2.15.0, consola@^2.15.3, consola@^2.6.0, consola@^2.9.0: - version "2.15.3" - resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550" - integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= - -consolidate@^0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7" - integrity sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw== - dependencies: - bluebird "^3.1.1" - -consolidate@^0.16.0: - version "0.16.0" - resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.16.0.tgz#a11864768930f2f19431660a65906668f5fbdc16" - integrity sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ== - dependencies: - bluebird "^3.7.2" - -constantinople@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/constantinople/-/constantinople-4.0.1.tgz#0def113fa0e4dc8de83331a5cf79c8b325213151" - integrity sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw== - dependencies: - "@babel/parser" "^7.6.0" - "@babel/types" "^7.6.1" - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - -conventional-changelog-angular@^5.0.12: - version "5.0.12" - resolved "https://registry.yarnpkg.com/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-atom@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz#a759ec61c22d1c1196925fca88fe3ae89fd7d8de" - integrity sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw== - dependencies: - q "^1.5.1" - -conventional-changelog-codemirror@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz#398e9530f08ce34ec4640af98eeaf3022eb1f7dc" - integrity sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw== - dependencies: - q "^1.5.1" - -conventional-changelog-config-spec@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-config-spec/-/conventional-changelog-config-spec-2.1.0.tgz#874a635287ef8b581fd8558532bf655d4fb59f2d" - integrity sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ== - -conventional-changelog-conventionalcommits@4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.5.0.tgz#a02e0b06d11d342fdc0f00c91d78265ed0bc0a62" - integrity sha512-buge9xDvjjOxJlyxUnar/+6i/aVEVGA7EEh4OafBCXPlLUQPGbRUBhBUveWRxzvR8TEjhKEP4BdepnpG2FSZXw== - dependencies: - compare-func "^2.0.0" - lodash "^4.17.15" - q "^1.5.1" - -conventional-changelog-conventionalcommits@^4.5.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.0.tgz#7fc17211dbca160acf24687bd2fdd5fd767750eb" - integrity sha512-sj9tj3z5cnHaSJCYObA9nISf7eq/YjscLPoq6nmew4SiOjxqL2KRpK20fjnjVbpNDjJ2HR3MoVcWKXwbVvzS0A== - dependencies: - compare-func "^2.0.0" - lodash "^4.17.15" - q "^1.5.1" - -conventional-changelog-core@^4.2.1: - version "4.2.2" - resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-4.2.2.tgz#f0897df6d53b5d63dec36b9442bd45354f8b3ce5" - integrity sha512-7pDpRUiobQDNkwHyJG7k9f6maPo9tfPzkSWbRq97GGiZqisElhnvUZSvyQH20ogfOjntB5aadvv6NNcKL1sReg== - dependencies: - add-stream "^1.0.0" - conventional-changelog-writer "^4.0.18" - conventional-commits-parser "^3.2.0" - dateformat "^3.0.0" - get-pkg-repo "^1.0.0" - git-raw-commits "^2.0.8" - git-remote-origin-url "^2.0.0" - git-semver-tags "^4.1.1" - lodash "^4.17.15" - normalize-package-data "^3.0.0" - q "^1.5.1" - read-pkg "^3.0.0" - read-pkg-up "^3.0.0" - shelljs "^0.8.3" - through2 "^4.0.0" - -conventional-changelog-ember@^2.0.9: - version "2.0.9" - resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz#619b37ec708be9e74a220f4dcf79212ae1c92962" - integrity sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A== - dependencies: - q "^1.5.1" - -conventional-changelog-eslint@^3.0.9: - version "3.0.9" - resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz#689bd0a470e02f7baafe21a495880deea18b7cdb" - integrity sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA== - dependencies: - q "^1.5.1" - -conventional-changelog-express@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz#420c9d92a347b72a91544750bffa9387665a6ee8" - integrity sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ== - dependencies: - q "^1.5.1" - -conventional-changelog-jquery@^3.0.11: - version "3.0.11" - resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz#d142207400f51c9e5bb588596598e24bba8994bf" - integrity sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw== - dependencies: - q "^1.5.1" - -conventional-changelog-jshint@^2.0.9: - version "2.0.9" - resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz#f2d7f23e6acd4927a238555d92c09b50fe3852ff" - integrity sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA== - dependencies: - compare-func "^2.0.0" - q "^1.5.1" - -conventional-changelog-preset-loader@^2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/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.18: - version "4.1.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.1.0.tgz#1ca7880b75aa28695ad33312a1f2366f4b12659f" - integrity sha512-WwKcUp7WyXYGQmkLsX4QmU42AZ1lqlvRW9mqoyiQzdD+rJWbTepdWoKJuwXTS+yq79XKnQNa93/roViPQrAQgw== - 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-changelog@3.1.24: - version "3.1.24" - resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-3.1.24.tgz#ebd180b0fd1b2e1f0095c4b04fd088698348a464" - integrity sha512-ed6k8PO00UVvhExYohroVPXcOJ/K1N0/drJHx/faTH37OIZthlecuLIRX/T6uOp682CAoVoFpu+sSEaeuH6Asg== - dependencies: - conventional-changelog-angular "^5.0.12" - conventional-changelog-atom "^2.0.8" - conventional-changelog-codemirror "^2.0.8" - conventional-changelog-conventionalcommits "^4.5.0" - conventional-changelog-core "^4.2.1" - conventional-changelog-ember "^2.0.9" - conventional-changelog-eslint "^3.0.9" - conventional-changelog-express "^2.0.6" - conventional-changelog-jquery "^3.0.11" - conventional-changelog-jshint "^2.0.9" - conventional-changelog-preset-loader "^2.3.4" - -conventional-commits-filter@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/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.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.2.1.tgz#ba44f0b3b6588da2ee9fd8da508ebff50d116ce2" - integrity sha512-OG9kQtmMZBJD/32NEw5IhN5+HnBqVjy03eC+I71I0oQRFA5rOgA4OtPOYG7mz1GkCfCNxn3gKIX8EiHJYuf1cA== - dependencies: - JSONStream "^1.0.4" - is-text-path "^1.0.1" - lodash "^4.17.15" - meow "^8.0.0" - split2 "^3.0.0" - through2 "^4.0.0" - trim-off-newlines "^1.0.0" - -conventional-recommended-bump@6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz#cfa623285d1de554012f2ffde70d9c8a22231f55" - integrity sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw== - dependencies: - concat-stream "^2.0.0" - conventional-changelog-preset-loader "^2.3.4" - conventional-commits-filter "^2.0.7" - conventional-commits-parser "^3.2.0" - git-raw-commits "^2.0.8" - git-semver-tags "^4.1.1" - meow "^8.0.0" - q "^1.5.1" - -convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -cookie@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= - -cookie@^0.4.0, cookie@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" - integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -core-js-compat@^3.14.0: - version "3.15.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.15.1.tgz#1afe233716d37ee021956ef097594071b2b585a7" - integrity sha512-xGhzYMX6y7oEGQGAJmP2TmtBLvR4nZmRGEcFa3ubHOq5YEp51gGN9AovVa0AoujGZIq+Wm6dISiYyGNfdflYww== - dependencies: - browserslist "^4.16.6" - semver "7.0.0" - -core-js-compat@^3.9.0, core-js-compat@^3.9.1: - version "3.12.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.12.1.tgz#2c302c4708505fa7072b0adb5156d26f7801a18b" - integrity sha512-i6h5qODpw6EsHAoIdQhKoZdWn+dGBF3dSS8m5tif36RlWvW3A6+yu2S16QHUo3CrkzrnEskMAt9f8FxmY9fhWQ== - dependencies: - browserslist "^4.16.6" - semver "7.0.0" - -core-js@^2.4.0, core-js@^2.6.5: - version "2.6.12" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== - -core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/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" - -cosmiconfig@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" - integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.1.0" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.7.2" - -cosmiconfig@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" - integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.10.0" - -crc@^3.8.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6" - integrity sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ== - dependencies: - buffer "^5.1.0" - -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -create-require@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -css-blank-pseudo@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" - integrity sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w== - dependencies: - postcss "^7.0.5" - -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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-has-pseudo@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee" - integrity sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^5.0.0-rc.4" - -css-loader@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-4.3.0.tgz#c888af64b2a5b2e85462c72c0f4a85c7e2e0821e" - integrity sha512-rdezjCjScIrsL8BSYszgT4s476IcNKt6yX69t0pHjJVnPUTDpn4WfIpDQTN3wCJvUvfsz/mFjuGOekf3PY3NUg== - dependencies: - camelcase "^6.0.0" - cssesc "^3.0.0" - icss-utils "^4.1.1" - loader-utils "^2.0.0" - postcss "^7.0.32" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^3.0.3" - postcss-modules-scope "^2.2.0" - postcss-modules-values "^3.0.0" - postcss-value-parser "^4.1.0" - schema-utils "^2.7.1" - semver "^7.3.2" - -css-loader@^5.0.0: - version "5.2.4" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.4.tgz#e985dcbce339812cb6104ef3670f08f9893a1536" - integrity sha512-OFYGyINCKkdQsTrSYxzGSFnGS4gNjcXkKkQgWxK138jgnPt+lepxdjSZNc8sHAl5vP3DhsJUxufWIjOwI8PMMw== - dependencies: - camelcase "^6.2.0" - icss-utils "^5.1.0" - loader-utils "^2.0.0" - postcss "^8.2.10" - postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.0" - postcss-modules-scope "^3.0.0" - postcss-modules-values "^4.0.0" - postcss-value-parser "^4.1.0" - schema-utils "^3.0.0" - semver "^7.3.5" - -css-prefers-color-scheme@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz#6f830a2714199d4f0d0d0bb8a27916ed65cff1f4" - integrity sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg== - dependencies: - postcss "^7.0.5" - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^2.0.0, css-select@^2.0.2: - version "2.1.0" - resolved "https://registry.yarnpkg.com/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-select@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" - integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== - dependencies: - boolbase "^1.0.0" - css-what "^5.0.0" - domhandler "^4.2.0" - domutils "^2.6.0" - nth-check "^2.0.0" - -css-tree@1.0.0-alpha.37: - version "1.0.0-alpha.37" - resolved "https://registry.yarnpkg.com/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.3" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" - integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== - dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" - -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" - integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== - -css-what@^5.0.0, css-what@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.0.1.tgz#3efa820131f4669a8ac2408f9c32e7c7de9f4cad" - integrity sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg== - -cssdb@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0" - integrity sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ== - -cssesc@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" - integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssfilter@0.0.10: - version "0.0.10" - resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" - integrity sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4= - -cssnano-preset-default@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" - integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== - 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.3" - postcss-unique-selectors "^4.0.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== - -cssnano@^4.1.10, cssnano@^4.1.11: - version "4.1.11" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" - integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== - dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.8" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -csso@^4.0.2: - version "4.2.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== - dependencies: - css-tree "^1.1.2" - -csstype@^2.6.8: - version "2.6.17" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.17.tgz#4cf30eb87e1d1a005d8b6510f95292413f6a1c0e" - integrity sha512-u1wmTI1jJGzCJzWndZo8mk4wnPTZd1eOIYTYvuEyOQGfmDl3TrabCCfKnOC86FZwW/9djqTl933UF/cS425i9A== - -cuint@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" - integrity sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs= - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= - dependencies: - array-find-index "^1.0.1" - -cyclist@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= - -dargs@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" - integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== - -dateformat@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" - integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== - -de-indent@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" - integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= - -debounce@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" - integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@4, debug@4.3.1, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== - dependencies: - ms "2.1.2" - -decamelize-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -declass@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/declass/-/declass-0.0.1.tgz#2c3cbda5e4ac66bc445b8bd61aa5449bf6ed39d1" - integrity sha512-V1tO9kGH+GLfkeiYCF016HSBcTP5mI+eMusSFgxZv0BzKvUQgI/Xn6FdoFuMwQHEqxKXhaW02s8oZqXPclKPUg== - dependencies: - cheerio "^1.0.0-rc.3" - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -decompress-response@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" - integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== - dependencies: - mimic-response "^2.0.0" - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -deep-is@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -define-lazy-prop@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" - integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== - -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -defu@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/defu/-/defu-2.0.4.tgz#09659a6e87a8fd7178be13bd43e9357ebf6d1c46" - integrity sha512-G9pEH1UUMxShy6syWk01VQSRVs3CDWtlxtZu7A+NyqjxaCA4gSlWAKDBx6QiUEKezqS8+DUlXLI14Fp05Hmpwg== - -defu@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/defu/-/defu-3.2.2.tgz#be20f4cc49b9805d54ee6b610658d53894942e97" - integrity sha512-8UWj5lNv7HD+kB0e9w77Z7TdQlbUYDVWqITLHNqFIn6khrNHv5WQo38Dcm1f6HeNyZf0U7UbPf6WeZDSdCzGDQ== - -defu@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/defu/-/defu-4.0.1.tgz#9d7d7a48f9295f08285d153dcff174c89b9bcb22" - integrity sha512-lC+G0KvvWRbisQa50+iFelm3/eMmwo4IlBmfASOVlw9MZpHHyQeVsZxc5j23+TQy5ydgEoTVSrWl7ptou1kzJQ== - -defu@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/defu/-/defu-5.0.0.tgz#5768f0d402a555bfc4c267246b20f82ce8b5a10b" - integrity sha512-VHg73EDeRXlu7oYWRmmrNp/nl7QkdXUxkQQKig0Zk8daNmm84AbGoC8Be6/VVLJEKxn12hR0UBmz8O+xQiAPKQ== - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -delegate@^3.1.2: - version "3.2.0" - resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" - integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= - -denque@^1.1.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/denque/-/denque-1.5.0.tgz#773de0686ff2d8ec2ff92914316a47b73b1c73de" - integrity sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ== - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destr@^1.0.0, destr@^1.0.1, destr@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/destr/-/destr-1.1.0.tgz#2da6add6ba71e04fd0abfb1e642d4f6763235095" - integrity sha512-Ev/sqS5AzzDwlpor/5wFCDu0dYMQu/0x2D6XfAsQ0E7uQmamIgYJ6Dppo2T2EOFVkeVYWjc+PCLKaqZZ57qmLg== - -destroy@^1.0.4, destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - -detab@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/detab/-/detab-3.0.0.tgz#6f55dd99a3a71f240f5687982afa2cf2c6777b50" - integrity sha512-8czHjLdGPRgMLtV1Wb+LcuxcEDdA0wz3uKFVxgtAIAvRob96BHT1ietft23B3+GsOtbA73QkPLkBjwoZ+Hf41A== - dependencies: - repeat-string "^1.6.0" - -detect-indent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" - integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= - -detect-indent@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd" - integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== - -detect-libc@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - -detect-newline@3.1.0, detect-newline@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -devalue@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/devalue/-/devalue-2.0.1.tgz#5d368f9adc0928e47b77eea53ca60d2f346f9762" - integrity sha512-I2TiqT5iWBEyB8GRfTDP0hiLZ0YeDJZ+upDxjBfOC2lebO5LezQMv7QvIUTzdb64jQyAKLf1AHADtGN+jw6v8Q== - -devtools-protocol@0.0.883894: - version "0.0.883894" - resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.883894.tgz#d403f2c75cd6d71c916aee8dde9258da988a4da9" - integrity sha512-33idhm54QJzf3Q7QofMgCvIVSd2o9H3kQPWaKT/fhoZh+digc+WSiMhbkeG3iN79WY4Hwr9G05NpbhEVrsOYAg== - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dijkstrajs@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.1.tgz#d3cd81221e3ea40742cfcde556d4e99e98ddc71b" - integrity sha1-082BIh4+pAdCz83lVtTpnpjdxxs= - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -directory-tree@^2.2.9: - version "2.2.9" - resolved "https://registry.yarnpkg.com/directory-tree/-/directory-tree-2.2.9.tgz#702c193f8b19f1076b585bcf8a2db3b49b11a11c" - integrity sha512-BOHxPNvP+XWijPkzoSBvr164IiNxRzvyAiWelbJsU/wG5OYXByer0+Aqo74G1qU+nRKC4yU/czmkmunkWdPPvQ== - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -doctypes@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/doctypes/-/doctypes-1.1.0.tgz#ea80b106a87538774e8a3a4a5afe293de489e0a9" - integrity sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk= - -dom-converter@^0.2: - version "0.2.0" - resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" - integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== - dependencies: - utila "~0.4" - -dom-serializer@0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -dom-serializer@^1.0.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.1.tgz#d845a1565d7c041a95e5dab62184ab41e3a519be" - integrity sha512-Pv2ZluG5ife96udGgEDovOOOA5UELkltfJpnIExPrAk1LTvecolUGn6lIaoLh86d83GiB86CjzciMd9BuRB71Q== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.0.0" - entities "^2.0.0" - -dom-serializer@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" - integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.0" - entities "^2.0.0" - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -domelementtype@1, domelementtype@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1, domelementtype@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" - integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== - -domhandler@^2.3.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" - integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== - dependencies: - domelementtype "1" - -domhandler@^4.0.0, domhandler@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.0.tgz#f9768a5f034be60a89a27c2e4d0f74eba0d8b059" - integrity sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA== - dependencies: - domelementtype "^2.2.0" - -domutils@^1.5.1, domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -domutils@^2.5.2, domutils@^2.6.0, domutils@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.7.0.tgz#8ebaf0c41ebafcf55b0b72ec31c56323712c5442" - integrity sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg== - dependencies: - dom-serializer "^1.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" - -dot-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" - integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -dot-prop@^5.1.0, dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" - -dotenv@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" - integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== - -dotenv@^9.0.2: - version "9.0.2" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-9.0.2.tgz#dacc20160935a37dea6364aa1bef819fb9b6ab05" - integrity sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg== - -dotgitignore@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/dotgitignore/-/dotgitignore-2.1.0.tgz#a4b15a4e4ef3cf383598aaf1dfa4a04bcc089b7b" - integrity sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA== - dependencies: - find-up "^3.0.0" - minimatch "^3.0.4" - -duplexer@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.723: - version "1.3.727" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.727.tgz#857e310ca00f0b75da4e1db6ff0e073cc4a91ddf" - integrity sha512-Mfz4FIB4FSvEwBpDfdipRIrwd6uo8gUDoRDF4QEYb4h4tSuI3ov594OrjU6on042UlFHouIJpClDODGkPcBSbg== - -elliptic@^6.5.3: - version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -"emoji-regex@>=6.0.0 <=6.1.1": - version "6.1.1" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.1.1.tgz#c6cd0ec1b0642e2a3c67a1137efc5e796da4f88e" - integrity sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4= - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -emoticon@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/emoticon/-/emoticon-3.2.0.tgz#c008ca7d7620fac742fe1bf4af8ff8fed154ae7f" - integrity sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -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.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.1, enhanced-resolve@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" - integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" - -enquirer@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== - -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -errno@^0.1.3, errno@~0.1.7: - version "0.1.8" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" - integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== - dependencies: - prr "~1.0.1" - -error-ex@^1.2.0, error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.2, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: - version "1.18.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" - integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.2" - is-callable "^1.2.3" - is-negative-zero "^2.0.1" - is-regex "^1.1.2" - is-string "^1.0.5" - object-inspect "^1.9.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.0" - -es-abstract@^1.18.2: - version "1.18.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz#25c4c3380a27aa203c44b2b685bba94da31b63e0" - integrity sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.2" - is-callable "^1.2.3" - is-negative-zero "^2.0.1" - is-regex "^1.1.3" - is-string "^1.0.6" - object-inspect "^1.10.3" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -esbuild@^0.11.20: - version "0.11.23" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.11.23.tgz#c42534f632e165120671d64db67883634333b4b8" - integrity sha512-iaiZZ9vUF5wJV8ob1tl+5aJTrwDczlvGP0JoMmnpC2B0ppiMCu8n8gmy5ZTGl5bcG081XBVn+U+jP+mPFm5T5Q== - -esbuild@^0.11.6: - version "0.11.20" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.11.20.tgz#7cefa1aee8b372c184e42457885f7ce5d3e62a1e" - integrity sha512-QOZrVpN/Yz74xfat0H6euSgn3RnwLevY1mJTEXneukz1ln9qB+ieaerRMzSeETpz/UJWsBMzRVR/andBht5WKw== - -esbuild@^0.12.5: - version "0.12.5" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.5.tgz#36076a6bc1966ba2741981d30512e95e8aaff495" - integrity sha512-vcuP53pA5XiwUU4FnlXM+2PnVjTfHGthM7uP1gtp+9yfheGvFFbq/KyuESThmtoHPUrfZH5JpxGVJIFDVD1Egw== - -esbuild@^0.12.8: - version "0.12.9" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.9.tgz#bed4e7087c286cd81d975631f77d47feb1660070" - integrity sha512-MWRhAbMOJ9RJygCrt778rz/qNYgA4ZVj6aXnNPxFjs7PmIpb0fuB9Gmg5uWrr6n++XKwwm/RmSz6RR5JL2Ocsw== - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eslint-config-prettier@^8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz#f7471b20b6fe8a9a9254cc684454202886a2dd7a" - integrity sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew== - -eslint-config-standard@^16.0.3: - version "16.0.3" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-16.0.3.tgz#6c8761e544e96c531ff92642eeb87842b8488516" - integrity sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg== - -eslint-import-resolver-node@^0.3.4: - version "0.3.4" - resolved "https://registry.yarnpkg.com/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-module-utils@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz#b51be1e473dd0de1c5ea638e22429c2490ea8233" - integrity sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A== - dependencies: - debug "^3.2.7" - pkg-dir "^2.0.0" - -eslint-plugin-es@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893" - integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== - dependencies: - eslint-utils "^2.0.0" - regexpp "^3.0.0" - -eslint-plugin-import@^2.23.3: - version "2.23.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz#8dceb1ed6b73e46e50ec9a5bb2411b645e7d3d97" - integrity sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ== - dependencies: - array-includes "^3.1.3" - array.prototype.flat "^1.2.4" - debug "^2.6.9" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.4" - eslint-module-utils "^2.6.1" - find-up "^2.0.0" - has "^1.0.3" - is-core-module "^2.4.0" - minimatch "^3.0.4" - object.values "^1.1.3" - pkg-up "^2.0.0" - read-pkg-up "^3.0.0" - resolve "^1.20.0" - tsconfig-paths "^3.9.0" - -eslint-plugin-jest@^24.3.6: - version "24.3.6" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.3.6.tgz#5f0ca019183c3188c5ad3af8e80b41de6c8e9173" - integrity sha512-WOVH4TIaBLIeCX576rLcOgjNXqP+jNlCiEmRgFTfQtJ52DpwnIQKAVGlGPAN7CZ33bW6eNfHD6s8ZbEUTQubJg== - dependencies: - "@typescript-eslint/experimental-utils" "^4.0.1" - -eslint-plugin-node@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" - integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== - dependencies: - eslint-plugin-es "^3.0.0" - eslint-utils "^2.0.0" - ignore "^5.1.1" - minimatch "^3.0.4" - resolve "^1.10.1" - semver "^6.1.0" - -eslint-plugin-nuxt@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-nuxt/-/eslint-plugin-nuxt-2.0.0.tgz#62dce8b2f6aa205a93a328d22ce04c39f7ee79d7" - integrity sha512-0VaG4SlKeGwMKSmOug/gNjliKoDNM/XfgiPhJ4v6FnjYrM3zSwTQVMH6vPjI8Gs722NjgwOZTucvmYbHzYEp5A== - dependencies: - eslint-plugin-vue "^7.1.0" - semver "^7.3.2" - vue-eslint-parser "^7.1.1" - -eslint-plugin-prettier@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.0.tgz#cdbad3bf1dbd2b177e9825737fe63b476a08f0c7" - integrity sha512-UDK6rJT6INSfcOo545jiaOwB701uAIt2/dR7WnFQoGCVl1/EMqdANBmwUaqqQ45aXprsTGzSa39LI1PyuRBxxw== - dependencies: - prettier-linter-helpers "^1.0.0" - -eslint-plugin-promise@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-5.1.0.tgz#fb2188fb734e4557993733b41aa1a688f46c6f24" - integrity sha512-NGmI6BH5L12pl7ScQHbg7tvtk4wPxxj8yPHH47NvSmMtFneC077PSeY3huFj06ZWZvtbfxSPt3RuOQD5XcR4ng== - -eslint-plugin-standard@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz#0c3bf3a67e853f8bbbc580fb4945fbf16f41b7c5" - integrity sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ== - -eslint-plugin-unicorn@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-28.0.2.tgz#ab9884ebae04590ecd9c1c294330d889a74b7c37" - integrity sha512-k4AoFP7n8/oq6lBXkdc9Flid6vw2B8j7aXFCxgzJCyKvmaKrCUFb1TFPhG9eSJQFZowqmymMPRtl8oo9NKLUbw== - dependencies: - ci-info "^2.0.0" - clean-regexp "^1.0.0" - eslint-template-visitor "^2.2.2" - eslint-utils "^2.1.0" - eslint-visitor-keys "^2.0.0" - import-modules "^2.1.0" - lodash "^4.17.20" - pluralize "^8.0.0" - read-pkg-up "^7.0.1" - regexp-tree "^0.1.22" - reserved-words "^0.1.2" - safe-regex "^2.1.1" - semver "^7.3.4" - -eslint-plugin-vue@^7.1.0: - version "7.9.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-7.9.0.tgz#f8e83a2a908f4c43fc8304f5401d4ff671f3d560" - integrity sha512-2Q0qQp5+5h+pZvJKCbG1/jCRUYrdgAz5BYKGyTlp2NU8mx09u3Hp7PsH6d5qef6ojuPoCXMnrbbDxeoplihrSw== - dependencies: - eslint-utils "^2.1.0" - natural-compare "^1.4.0" - semver "^7.3.2" - vue-eslint-parser "^7.6.0" - -eslint-plugin-vue@^7.9.0: - version "7.10.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-7.10.0.tgz#251749aa99e089e085275f011042c6e74189f89a" - integrity sha512-xdr6e4t/L2moRAeEQ9HKgge/hFq+w9v5Dj+BA54nTAzSFdUyKLiSOdZaRQjCHMY0Pk2WaQBFH9QiWG60xiC+6A== - dependencies: - eslint-utils "^2.1.0" - natural-compare "^1.4.0" - semver "^7.3.2" - vue-eslint-parser "^7.6.0" - -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-scope@^5.0.0, eslint-scope@^5.1.0, eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/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-template-visitor@^2.2.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/eslint-template-visitor/-/eslint-template-visitor-2.3.2.tgz#b52f96ff311e773a345d79053ccc78275bbc463d" - integrity sha512-3ydhqFpuV7x1M9EK52BPNj6V0Kwu0KKkcIAfpUhwHbR8ocRln/oUHgfxQupY8O1h4Qv/POHDumb/BwwNfxbtnA== - dependencies: - "@babel/core" "^7.12.16" - "@babel/eslint-parser" "^7.12.16" - eslint-visitor-keys "^2.0.0" - esquery "^1.3.1" - multimap "^1.1.0" - -eslint-utils@^2.0.0, eslint-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.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.yarnpkg.com/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.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint@^7.30.0: - version "7.30.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.30.0.tgz#6d34ab51aaa56112fd97166226c9a97f505474f8" - integrity sha512-VLqz80i3as3NdloY44BQSJpFw534L9Oh+6zJOUaViV4JPd+DaHwutqP7tcpkW3YiXbK6s05RZl7yl7cQn+lijg== - dependencies: - "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.2" - "@humanwhocodes/config-array" "^0.5.0" - 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" - escape-string-regexp "^4.0.0" - eslint-scope "^5.1.1" - eslint-utils "^2.1.0" - eslint-visitor-keys "^2.0.0" - espree "^7.3.1" - esquery "^1.4.0" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^5.1.2" - globals "^13.6.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.merge "^4.6.2" - minimatch "^3.0.4" - natural-compare "^1.4.0" - optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.1.0" - semver "^7.2.1" - strip-ansi "^6.0.0" - strip-json-comments "^3.1.0" - table "^6.0.9" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - -espree@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" - integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== - dependencies: - acorn "^7.1.1" - acorn-jsx "^5.2.0" - eslint-visitor-keys "^1.1.0" - -espree@^7.3.0, espree@^7.3.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" - integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== - dependencies: - acorn "^7.4.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^1.3.0" - -esprima@^4.0.0, esprima@~4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.3.1, esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.1.0, esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== - -estree-walker@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" - integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== - -estree-walker@^2.0.1, estree-walker@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" - integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@^1.8.1, etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -event-target-shim@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== - -eventemitter3@^4.0.0: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -events@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - -eventsource-polyfill@^0.9.6: - version "0.9.6" - resolved "https://registry.yarnpkg.com/eventsource-polyfill/-/eventsource-polyfill-0.9.6.tgz#10e0d187f111b167f28fdab918843ce7d818f13c" - integrity sha1-EODRh/ERsWfyj9q5GIQ859gY8Tw= - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376" - integrity sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -execa@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/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" - -expand-template@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" - integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/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-css-chunks-webpack-plugin@^4.9.0: - version "4.9.0" - resolved "https://registry.yarnpkg.com/extract-css-chunks-webpack-plugin/-/extract-css-chunks-webpack-plugin-4.9.0.tgz#da5e6b1d8b39a398c817ffc98550f4ccb6d795e1" - integrity sha512-HNuNPCXRMqJDQ1OHAUehoY+0JVCnw9Y/H22FQzYVwo8Ulgew98AGDu0grnY5c7xwiXHjQa6yJ/1dxLCI/xqTyQ== - dependencies: - loader-utils "^2.0.0" - normalize-url "1.9.1" - schema-utils "^1.0.0" - webpack-sources "^1.1.0" - -extract-zip@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/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" - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-diff@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== - -fast-glob@^3.0.3, fast-glob@^3.1.1, fast-glob@^3.2.5: - version "3.2.5" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" - integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.0" - merge2 "^1.3.0" - micromatch "^4.0.2" - picomatch "^2.2.1" - -fast-glob@^3.2.6: - version "3.2.6" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.6.tgz#434dd9529845176ea049acc9343e8282765c6e1a" - integrity sha512-GnLuqj/pvQ7pX8/L4J84nijv6sAnlwvSDpMkJi9i7nPmPxGtRPkBSStfvDW5l6nMdX9VWe+pkKWFTgD+vF2QSQ== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fastq@^1.6.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz#bb9fb955a07130a918eb63c1f5161cc32a5d0858" - integrity sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g== - dependencies: - reusify "^1.0.4" - -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= - dependencies: - pend "~1.2.0" - -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - -figures@^3.0.0, figures@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -file-loader@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" - integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -filter-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" - integrity sha1-mzERErxsYSehbgFsbF1/GeCAXFs= - -finalhandler@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-cache-dir@^3.0.0, find-cache-dir@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flat@^5.0.0, flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -flatted@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" - integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== - -flatten@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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" - -focus-trap@^6.6.0: - version "6.6.0" - resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-6.6.0.tgz#7fb37679926ec1bd762d0748b056c68a64a9e8cf" - integrity sha512-2hWVR3XbBejn5v8wDW9DFzLWXcxMNaSJ/CtE3E+FJjjBCLwIYbZJwjUi2RDBfQPM58gHEt5hck0jrJgHR9/s+A== - dependencies: - tabbable "^5.2.0" - -follow-redirects@^1.0.0, follow-redirects@^1.10.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43" - integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg== - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -fork-ts-checker-webpack-plugin@^6.1.1: - version "6.2.7" - resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.2.7.tgz#2787fb8e36e0e7d3030f189f9ef84d02f7a07386" - integrity sha512-uGl/x5aiWbBtKT3QtXYuuK/gY1BfN0/RNM/BZvu2o2QdPE7FemyNIxVAgUUbPTm4l90MwWStfVVb7Bu5nyHglg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@types/json-schema" "^7.0.5" - chalk "^4.1.0" - chokidar "^3.4.2" - cosmiconfig "^6.0.0" - deepmerge "^4.2.2" - fs-extra "^9.0.0" - glob "^7.1.6" - memfs "^3.1.2" - minimatch "^3.0.4" - schema-utils "2.7.0" - semver "^7.3.2" - tapable "^1.0.0" - -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -fraction.js@^4.0.13: - version "4.1.0" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.1.0.tgz#229ec1cedc8c3c7e5d2d20688ba64f0a43af5830" - integrity sha512-o9lSKpK0TDqDwTL24Hxqi6I99s942l6TYkfl6WvGWgLOIFz/YonSGKfiSeMadoiNvTfqnfOa9mjb5SGVbBK9/w== - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2, fresh@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-access@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" - integrity sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o= - dependencies: - null-check "^1.0.0" - -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - -fs-extra@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" - integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^9.0.0, fs-extra@^9.0.1, fs-extra@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-memo@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fs-memo/-/fs-memo-1.2.0.tgz#a2ec3be606b902077adbb37ec529c5ec5fb2e037" - integrity sha512-YEexkCpL4j03jn5SxaMHqcO6IuWuqm8JFUYhyCep7Ao89JIYmB8xoKhK7zXXJ9cCaNXpyNH5L3QtAmoxjoHW2w== - -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs-monkey@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" - integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== - -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -fsevents@~2.3.1, fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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" - -generic-names@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-2.0.1.tgz#f8a378ead2ccaa7a34f0317b05554832ae41b872" - integrity sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ== - dependencies: - loader-utils "^1.1.0" - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.1, get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - 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.yarnpkg.com/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-please@^2.1.0, get-port-please@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/get-port-please/-/get-port-please-2.2.0.tgz#3fabbbe2f9d8e6b7c47e1cddd71fc4c593f1deac" - integrity sha512-1c7Np/cpA7XCB6IrPAdaBaJjlGHTqg4P82h/ZqyBL6dCdwRzZBOFGZO7FL2KaZ2uNvD6v8QilA7LZwMpmIggDQ== - dependencies: - fs-memo "^1.2.0" - -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" - integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= - -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -git-config-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/git-config-path/-/git-config-path-2.0.0.tgz#62633d61af63af4405a5024efd325762f58a181b" - integrity sha512-qc8h1KIQbJpp+241id3GuAtkdyJ+IK+LIVtkiFTRKRrmddDzs3SI9CvP1QYmWBFvm1I/PWRwj//of8bgAc0ltA== - -git-hooks-list@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/git-hooks-list/-/git-hooks-list-1.0.3.tgz#be5baaf78203ce342f2f844a9d2b03dba1b45156" - integrity sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ== - -git-raw-commits@^2.0.8: - version "2.0.10" - resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.10.tgz#e2255ed9563b1c9c3ea6bd05806410290297bbc1" - integrity sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ== - dependencies: - dargs "^7.0.0" - lodash "^4.17.15" - meow "^8.0.0" - split2 "^3.0.0" - through2 "^4.0.0" - -git-remote-origin-url@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/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@^4.0.0, git-semver-tags@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-4.1.1.tgz#63191bcd809b0ec3e151ba4751c16c444e5b5780" - integrity sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA== - dependencies: - meow "^8.0.0" - semver "^6.0.0" - -git-up@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.2.tgz#10c3d731051b366dc19d3df454bfca3f77913a7c" - integrity sha512-kbuvus1dWQB2sSW4cbfTeGpCMd8ge9jx9RKnhXhuJ7tnvT+NIrTVfYZxjtflZddQYcmdOTlkAcjmx7bor+15AQ== - dependencies: - is-ssh "^1.3.0" - parse-url "^5.0.0" - -git-url-parse@^11.4.4: - version "11.4.4" - resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-11.4.4.tgz#5d747debc2469c17bc385719f7d0427802d83d77" - integrity sha512-Y4o9o7vQngQDIU9IjyCmRJBin5iYjI5u9ZITnddRZpD7dcCFQj2sL2XuMNbLRE4b4B/4ENPsp2Q8P44fjAZ0Pw== - dependencies: - git-up "^4.0.0" - -gitconfiglocal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" - integrity sha1-QdBF84UaXqiPA/JMocYXgRRGS5s= - dependencies: - ini "^1.3.2" - -github-from-package@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" - integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= - -github-slugger@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.3.0.tgz#9bd0a95c5efdfc46005e82a906ef8e2a059124c9" - integrity sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q== - dependencies: - emoji-regex ">=6.0.0 <=6.1.1" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/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.1.0, glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-to-regexp@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" - integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== - -glob@^7.0.0, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== - 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" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^13.6.0: - version "13.8.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.8.0.tgz#3e20f504810ce87a8d72e55aecf8435b50f4c1b3" - integrity sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q== - dependencies: - type-fest "^0.20.2" - -globals@^13.9.0: - version "13.9.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.9.0.tgz#4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb" - integrity sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA== - dependencies: - type-fest "^0.20.2" - -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== - -globby@10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.0.tgz#abfcd0630037ae174a88590132c2f6804e291072" - integrity sha512-3LifW9M4joGZasyYPz2A1U74zbC/45fvpXUvO/9KbSa+VV0aGZarWkfdgKyR9sExNP0t0x0ss/UMJpNpcaTspw== - dependencies: - "@types/glob" "^7.1.1" - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.0.3" - glob "^7.1.3" - ignore "^5.1.1" - merge2 "^1.2.3" - slash "^3.0.0" - -globby@^11.0.1, globby@^11.0.3: - version "11.0.3" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz#9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb" - integrity sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" - slash "^3.0.0" - -globby@^11.0.4: - version "11.0.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" - integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" - slash "^3.0.0" - -good-listener@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" - integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= - dependencies: - delegate "^3.1.2" - -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6: - version "4.2.6" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" - integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== - -gray-matter@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" - integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== - dependencies: - js-yaml "^3.13.1" - kind-of "^6.0.2" - section-matter "^1.0.0" - strip-bom-string "^1.0.0" - -gzip-size@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" - integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== - dependencies: - duplexer "^0.1.2" - -h3@^0.2.11: - version "0.2.11" - resolved "https://registry.yarnpkg.com/h3/-/h3-0.2.11.tgz#31c6be3b8788cd7de2e37c52970b951d3973d7a8" - integrity sha512-ZsaiHlgUGwfGV+IjZJ1DkdS6A851s4z+JTj/Xgfo2RBoaCRRrrTJlbUbS00PwDvrMNuOsD8fLHOxDlI1W2KfyQ== - -h3@^0.2.5: - version "0.2.10" - resolved "https://registry.yarnpkg.com/h3/-/h3-0.2.10.tgz#8f0b908f7f1821179569be08b94b358e8ee76894" - integrity sha512-UJGMIGJUw69ukOUKKfWM2/FxTxrMfORrRTQ4MhlGGVoo753aWKxDKII2G0eO6xoNBepFpb3XTytWY14cWfKLxQ== - -hable@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/hable/-/hable-3.0.0.tgz#6de089b2df946635cf8134b9e4859f1b62de255f" - integrity sha512-7+G0/2/COR8pwteYFqHIVYfQpuEiO2HXwJrhCBJVgrNrl9O5eaUoJVDGXUJX+0RpGncNVTuestexjk1afj01wQ== - -handlebars@^4.7.6: - version "4.7.7" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" - integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== - 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" - -hard-rejection@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" - integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== - -hard-source-webpack-plugin@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/hard-source-webpack-plugin/-/hard-source-webpack-plugin-0.13.1.tgz#a99071e25b232f1438a5bc3c99f10a3869e4428e" - integrity sha512-r9zf5Wq7IqJHdVAQsZ4OP+dcUSvoHqDMxJlIzaE2J0TZWn3UjMMrHqwDHR8Jr/pzPfG7XxSe36E7Y8QGNdtuAw== - dependencies: - chalk "^2.4.1" - find-cache-dir "^2.0.0" - graceful-fs "^4.1.11" - lodash "^4.15.0" - mkdirp "^0.5.1" - node-object-hash "^1.2.0" - parse-json "^4.0.0" - pkg-dir "^3.0.0" - rimraf "^2.6.2" - semver "^5.6.0" - tapable "^1.0.0-beta.5" - webpack-sources "^1.0.1" - write-json-file "^2.3.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.1, has-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash-sum@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" - integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ= - -hash-sum@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" - integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hasha@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1" - integrity sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ== - dependencies: - is-stream "^2.0.0" - type-fest "^0.8.0" - -hast-to-hyperscript@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz#d57c23f4da16ae3c63b3b6ca4616683313499c3a" - integrity sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ== - -hast-util-raw@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-6.1.0.tgz#e16a3c2642f65cc7c480c165400a40d604ab75d0" - integrity sha512-5FoZLDHBpka20OlZZ4I/+RBw5piVQ8iI1doEvffQhx5CbCyTtP8UCq8Tw6NmTAMtXgsQxmhW7Ly8OdFre5/YMQ== - 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" - unist-util-visit "^2.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.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz#1ec44650b631d72952066cea9b1445df699f8479" - integrity sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ== - dependencies: - hast-to-hyperscript "^9.0.0" - property-information "^5.0.0" - web-namespaces "^1.0.0" - xtend "^4.0.0" - zwitch "^1.0.0" - -hastscript@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/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, he@^1.1.0, he@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hookable@^4.4.1: - version "4.4.1" - resolved "https://registry.yarnpkg.com/hookable/-/hookable-4.4.1.tgz#3d7154ac7e1f6f147e50fef583832f2645b9f04f" - integrity sha512-KWjZM8C7IVT2qne5HTXjM6R6VnRfjfRlf/oCnHd+yFxoHO1DzOl6B9LzV/VqGQK/IrFewq+EG+ePVrE9Tpc3fg== - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -hosted-git-info@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961" - integrity sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg== - dependencies: - lru-cache "^6.0.0" - -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= - -html-entities@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" - integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== - -html-minifier-terser@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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-tags@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-2.0.0.tgz#10b30a386085f43cede353cc8fa7cb0deeea668b" - integrity sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos= - -html-void-elements@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/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.2" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz#76fc83fa1a0f12dd5f7da0404a54e2699666bc12" - integrity sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A== - 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.10.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" - integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== - dependencies: - domelementtype "^1.3.1" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^3.1.1" - -htmlparser2@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" - integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.0.0" - domutils "^2.5.2" - entities "^2.0.0" - -http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/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-proxy-middleware@^1.0.6: - version "1.3.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz#43700d6d9eecb7419bf086a128d0f7205d9eb665" - integrity sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg== - dependencies: - "@types/http-proxy" "^1.17.5" - http-proxy "^1.18.1" - is-glob "^4.0.1" - is-plain-obj "^3.0.0" - micromatch "^4.0.2" - -http-proxy@^1.18.1: - version "1.18.1" - resolved "https://registry.yarnpkg.com/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-shutdown@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/http-shutdown/-/http-shutdown-1.2.2.tgz#41bc78fc767637c4c95179bc492f312c0ae64c5f" - integrity sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw== - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - -https-proxy-agent@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== - dependencies: - agent-base "6" - debug "4" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -icss-replace-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" - integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= - -icss-utils@^4.0.0, icss-utils@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" - integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== - dependencies: - postcss "^7.0.14" - -icss-utils@^5.0.0, icss-utils@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" - integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== - -ieee754@^1.1.13, ieee754@^1.1.4: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= - -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -ignore@^5.1.1, ignore@^5.1.4, ignore@^5.1.8: - version "5.1.8" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" - integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== - -image-meta@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/image-meta/-/image-meta-0.0.1.tgz#0f6f708e6d68ea796a977dcae3223019ee2b3eca" - integrity sha512-FhTB6WW/zfswIFQwjItrisL/Pt/aKbMCAkVdDtdfsaWwo6QwhpM7XMdwtDw8qs5y2IZsHcQ7TPG/JznJYVphSg== - -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.1.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha1-M1238qev/VOqpHHUuAId7ja387E= - dependencies: - resolve-from "^3.0.0" - -import-modules@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-modules/-/import-modules-2.1.0.tgz#abe7df297cb6c1f19b57246eb8b8bd9664b6d8c2" - integrity sha512-8HEWcnkbGpovH9yInoisxaSoIg9Brbul+Ju3Kqe2UsYDUBJD/iQjSgEj0zPcTDPKfPp2fs5xlv1i+JSye/m1/A== - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indent-string@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" - integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= - dependencies: - repeating "^2.0.0" - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -ini@^1.3.2, ini@^1.3.5, ini@~1.3.0: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -inline-style-parser@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" - integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== - -inquirer@^7.3.3: - version "7.3.3" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" - integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.19" - mute-stream "0.0.8" - run-async "^2.4.0" - rxjs "^6.6.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - -interpret@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -ioredis@^4.26.0: - version "4.27.5" - resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-4.27.5.tgz#b62192bb6198f8a5a02947902117150aef39b7f1" - integrity sha512-JJ3HzOzU6kgUk3gKhpx8kxEYn9ruI5TkpOtGvbw/hLyWxfC19T9uCZTgmw4Mci4al4aOCCMfAjYzJ7aqQkLbJg== - dependencies: - cluster-key-slot "^1.1.0" - debug "^4.3.1" - denque "^1.1.0" - lodash.defaults "^4.2.0" - lodash.flatten "^4.4.0" - p-map "^2.1.0" - redis-commands "1.7.0" - redis-errors "^1.2.0" - redis-parser "^3.0.0" - standard-as-callback "^2.1.0" - -ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= - -ipx@^0.6.4: - version "0.6.7" - resolved "https://registry.yarnpkg.com/ipx/-/ipx-0.6.7.tgz#4db5418b368b4bc7925aacd134e68100e0e53ae1" - integrity sha512-Y9xxAXfGqmupTTNH3l1V2mKWWfgVY+PJ9wN57h8NDcLZZxHAk3qYIRxbDKs+POn/dinpU3vQZjBBRe8Q7xnW1g== - dependencies: - consola "^2.15.3" - defu "^5.0.0" - destr "^1.1.0" - etag "^1.8.1" - fs-extra "^10.0.0" - image-meta "^0.0.1" - is-valid-path "^0.1.1" - listhen "^0.2.4" - node-fetch "^2.6.1" - sharp "^0.28.3" - ufo "^0.7.5" - xss "^1.0.9" - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= - -is-absolute-url@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-alphabetical@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-bigint@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" - integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA== - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz#3c0878f035cb821228d350d2e1e36719716a3de8" - integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng== - dependencies: - call-bind "^1.0.2" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" - integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== - -is-callable@^1.1.4, is-callable@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" - integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== - -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/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.2.0, is-core-module@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" - integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== - dependencies: - has "^1.0.3" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.4" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz#550cfcc03afada05eea3dd30981c7b09551f73e5" - integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A== - -is-decimal@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" - integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - -is-docker@^2.0.0, is-docker@^2.1.1, is-docker@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-expression@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-expression/-/is-expression-4.0.0.tgz#c33155962abf21d0afd2552514d67d2ec16fd2ab" - integrity sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A== - dependencies: - acorn "^7.1.1" - object-assign "^4.1.1" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= - dependencies: - is-extglob "^1.0.0" - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" - integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== - -is-https@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-https/-/is-https-4.0.0.tgz#9ee725a334fb517b988278d2674efc96e4f348ed" - integrity sha512-FeMLiqf8E5g6SdiVJsPcNZX8k4h2fBs1wp5Bb6uaNxn58ufK1axBqQZdmAQsqh0t9BuwFObybrdVJh6MKyPlyg== - -is-invalid-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-invalid-path/-/is-invalid-path-0.1.0.tgz#307a855b3cf1a938b44ea70d2c61106053714f34" - integrity sha1-MHqFWzzxqTi0TqcNLGEQYFNxTzQ= - dependencies: - is-glob "^2.0.0" - -is-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" - integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= - -is-negative-zero@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" - integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== - -is-number-object@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb" - integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw== - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-plain-obj@2.1.0, is-plain-obj@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - -is-plain-obj@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" - integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-promise@^2.0.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" - integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== - -is-reference@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" - integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== - dependencies: - "@types/estree" "*" - -is-regex@^1.0.3, is-regex@^1.1.2, is-regex@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f" - integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ== - dependencies: - call-bind "^1.0.2" - has-symbols "^1.0.2" - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/is-ssh/-/is-ssh-1.3.2.tgz#a4b82ab63d73976fd8263cceee27f99a88bdae2b" - integrity sha512-elEw0/0c2UscLrNG+OAorbP539E3rhliKPg+hDMWN9VwrDXfYK+4PBEykDPfxlYYtQvl84TascnQyobfQLHEhQ== - dependencies: - protocols "^1.1.0" - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== - -is-string@^1.0.5, is-string@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" - integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-text-path@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" - integrity sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4= - dependencies: - text-extensions "^1.0.0" - -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= - -is-valid-path@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-valid-path/-/is-valid-path-0.1.1.tgz#110f9ff74c37f663e1ec7915eb451f2db93ac9df" - integrity sha1-EQ+f90w39mPh7HkV60UfLbk6yd8= - dependencies: - is-invalid-path "^0.1.0" - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -is-wsl@^2.1.1, is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isarray@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -jest-worker@^26.5.0: - version "26.6.2" - resolved "https://registry.yarnpkg.com/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" - -jimp-compact@^0.16.1: - version "0.16.1" - resolved "https://registry.yarnpkg.com/jimp-compact/-/jimp-compact-0.16.1.tgz#9582aea06548a2c1e04dd148d7c3ab92075aefa3" - integrity sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww== - -jiti@^1.10.1: - version "1.10.1" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.10.1.tgz#bc2a175b9435274dc8659d3d9a121a91c6b3a1af" - integrity sha512-qux9juDtAC8HlZxAk/fku73ak4TWNLigRFTNzFShE/kw4bXVFsVu538vLXAxvNyPszXgpX4YxkXfwTYEi+zf5A== - -jiti@^1.9.1, jiti@^1.9.2: - version "1.9.2" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.9.2.tgz#2ee44830883dbb1b2e222adc053c3052d0bf3b61" - integrity sha512-wymUBR/YGGVNVRAxX52yvFoZdUAYKEGjk0sYrz6gXLCvMblnRvJAmDUnMvQiH4tUHDBtbKHnZ4GT3R+m3Hc39A== - -joycon@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.0.1.tgz#9074c9b08ccf37a6726ff74a18485f85efcaddaf" - integrity sha512-SJcJNBg32dGgxhPtM0wQqxqV0ax9k/9TaUskGDSJkSFSQOEWWvQ3zzWdGQRIUry2j1zA5+ReH13t0Mf3StuVZA== - -js-cookie@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" - integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ== - -js-stringify@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/js-stringify/-/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db" - integrity sha1-Fzb939lyTyijaCrcYjCufk6Weds= - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - -json-stringify-safe@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -json5@^2.1.1, json5@^2.1.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" - -jsonc-parser@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" - integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonparse@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= - -jstransformer@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/jstransformer/-/jstransformer-1.0.0.tgz#ed8bf0921e2f3f1ed4d5c1a44f68709ed24722c3" - integrity sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM= - dependencies: - is-promise "^2.0.0" - promise "^7.0.1" - -jwt-decode@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-3.1.2.tgz#3fb319f3675a2df0c2895c8f5e9fa4b67b04ed59" - integrity sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A== - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" - integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== - -ky@^0.25.1: - version "0.25.1" - resolved "https://registry.yarnpkg.com/ky/-/ky-0.25.1.tgz#0df0bd872a9cc57e31acd5dbc1443547c881bfbc" - integrity sha512-PjpCEWlIU7VpiMVrTwssahkYXX1by6NCT0fhTUX34F3DTinARlgMpriuroolugFPcMgpPWrOW4mTb984Qm1RXA== - -last-call-webpack-plugin@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" - integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== - dependencies: - lodash "^4.17.5" - webpack-sources "^1.1.0" - -launch-editor-middleware@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/launch-editor-middleware/-/launch-editor-middleware-2.2.1.tgz#e14b07e6c7154b0a4b86a0fd345784e45804c157" - integrity sha512-s0UO2/gEGiCgei3/2UN3SMuUj1phjQN8lcpnvgLSz26fAzNWPQ6Nf/kF5IFClnfU2ehp6LrmKdMU/beveO+2jg== - dependencies: - launch-editor "^2.2.1" - -launch-editor@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.2.1.tgz#871b5a3ee39d6680fcc26d37930b6eeda89db0ca" - integrity sha512-On+V7K2uZK6wK7x691ycSUbLD/FyKKelArkbaAMSSJU8JmqmhwN2+mnJDNINuJWSrh2L0kDk+ZQtbC/gOWUwLw== - dependencies: - chalk "^2.3.0" - shell-quote "^1.6.1" - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= - -listhen@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/listhen/-/listhen-0.1.4.tgz#8080485e2c4c3aeff4eaf8fb5a6b172bc90e2ed6" - integrity sha512-fbjgPM1vrU1+Eh1TYHjo7b1nnph/x8DVqPlCBkJWY/xRIBx9+kpf4cJGSE7tR3ORWhb4/beGDBF/i3BQHnZL1A== - dependencies: - chalk "^4.1.0" - clipboardy "^2.3.0" - defu "^3.2.2" - get-port-please "^2.1.0" - http-shutdown "^1.2.2" - ohmyfetch "^0.1.8" - open "^7.3.0" - selfsigned "^1.10.8" - ufo "^0.6.6" - -listhen@^0.2.4: - version "0.2.4" - resolved "https://registry.yarnpkg.com/listhen/-/listhen-0.2.4.tgz#197372635538555d55b9da86a4829b6a0b8c726b" - integrity sha512-B+mMHE/MEd2QfRZBVsHxhQFD6rhC9oYP1Rm5uTqSxtkH5bfcmyaAWwOIvDnPwvTIYVXvKvyJFBftl29jWf3k4g== - dependencies: - clipboardy "^2.3.0" - colorette "^1.2.2" - get-port-please "^2.1.0" - http-shutdown "^1.2.2" - open "^8.0.5" - selfsigned "^1.10.8" - -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/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@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-runner@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" - integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== - -loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -loader-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/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" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= - -lodash.clonedeep@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= - -lodash.defaults@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= - -lodash.flatten@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= - -lodash.ismatch@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" - integrity sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc= - -lodash.kebabcase@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" - integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY= - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.template@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" - integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== - dependencies: - lodash._reinterpolate "^3.0.0" - -lodash.toarray@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" - integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE= - -lodash.truncate@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= - -lodash@^4.15.0, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -longest-streak@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" - integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg== - -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lottie-web@^5.7.11: - version "5.7.11" - resolved "https://registry.yarnpkg.com/lottie-web/-/lottie-web-5.7.11.tgz#4ba74e8a629f76d3c0a0062ddc37d2b96e13765c" - integrity sha512-Jvz3PQqwrDj1rXGqfeQtipH/WNtM/Y4l8t8NIQXe1xUI0nVooH2bTYJGef0UkdBcWUx1s3miKsRhyP196g9tvQ== - -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" - integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= - -lower-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" - integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== - dependencies: - tslib "^2.0.3" - -lru-cache@^4.1.2, lru-cache@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -magic-string@^0.25.7: - version "0.25.7" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" - integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== - dependencies: - sourcemap-codec "^1.4.4" - -make-dir@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== - dependencies: - pify "^3.0.0" - -make-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/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, make-dir@^3.1.0, make-dir@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -mande@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/mande/-/mande-1.0.0.tgz#80f1faae62ebe9bebdd37093794d25de39ceafab" - integrity sha512-SKNhkHOvXXFOGCgOvqD9EUKDiNZFXvfACfED+Omw7dXTq/NmHJ83QhHte3wOIiQ7bwLh7F/uotJ2djqcN0JgpA== - -map-age-cleaner@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== - dependencies: - p-defer "^1.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-obj@^1.0.0, map-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= - -map-obj@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.2.1.tgz#e4ea399dbc979ae735c83c863dd31bdf364277b7" - integrity sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ== - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -markdown-table@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-2.0.0.tgz#194a90ced26d31fe753d8b9434430214c011865b" - integrity sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A== - dependencies: - repeat-string "^1.0.0" - -marked@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/marked/-/marked-2.1.3.tgz#bd017cef6431724fd4b27e0657f5ceb14bff3753" - integrity sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA== - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -mdast-squeeze-paragraphs@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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-directive@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdast-util-directive/-/mdast-util-directive-1.0.1.tgz#bc2aea94eee5b89f2d11bf4546d40453e0b34cc6" - integrity sha512-VuO1za7BMtWMg8KA8eZrTBorEnCOOW5CXfIuNzUXe7YPie/wLgmNk/jxLMY8m+mzuqnO5eN0JuvlgFtO9EJpbQ== - dependencies: - mdast-util-to-markdown "^0.6.0" - parse-entities "^2.0.0" - repeat-string "^1.0.0" - stringify-entities "^3.1.0" - unist-util-visit-parents "^3.0.0" - -mdast-util-find-and-replace@^1.0.0, mdast-util-find-and-replace@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-1.1.1.tgz#b7db1e873f96f66588c321f1363069abf607d1b5" - integrity sha512-9cKl33Y21lyckGzpSmEQnIDjEfeeWelN5s1kUW1LwdB0Fkuq2u+4GdqcGEygYxJE8GVqCl0741bYXHgamfWAZA== - dependencies: - escape-string-regexp "^4.0.0" - unist-util-is "^4.0.0" - unist-util-visit-parents "^3.0.0" - -mdast-util-footnote@^0.1.0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/mdast-util-footnote/-/mdast-util-footnote-0.1.7.tgz#4b226caeab4613a3362c144c94af0fdd6f7e0ef0" - integrity sha512-QxNdO8qSxqbO2e3m09KwDKfWiLgqyCurdWTQ198NpbZ2hxntdc+VKS4fDJCmNWbAroUdYnSthu+XbZ8ovh8C3w== - dependencies: - mdast-util-to-markdown "^0.6.0" - micromark "~2.11.0" - -mdast-util-from-markdown@^0.8.0: - version "0.8.5" - resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz#d1ef2ca42bc377ecb0463a987910dae89bd9a28c" - integrity sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ== - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-to-string "^2.0.0" - micromark "~2.11.0" - parse-entities "^2.0.0" - unist-util-stringify-position "^2.0.0" - -mdast-util-gfm-autolink-literal@^0.1.0: - version "0.1.3" - resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-0.1.3.tgz#9c4ff399c5ddd2ece40bd3b13e5447d84e385fb7" - integrity sha512-GjmLjWrXg1wqMIO9+ZsRik/s7PLwTaeCHVB7vRxUwLntZc8mzmTsLVr6HW1yLokcnhfURsn5zmSVdi3/xWWu1A== - dependencies: - ccount "^1.0.0" - mdast-util-find-and-replace "^1.1.0" - micromark "^2.11.3" - -mdast-util-gfm-strikethrough@^0.2.0: - version "0.2.3" - resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.3.tgz#45eea337b7fff0755a291844fbea79996c322890" - integrity sha512-5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA== - dependencies: - mdast-util-to-markdown "^0.6.0" - -mdast-util-gfm-table@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.6.tgz#af05aeadc8e5ee004eeddfb324b2ad8c029b6ecf" - integrity sha512-j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ== - dependencies: - markdown-table "^2.0.0" - mdast-util-to-markdown "~0.6.0" - -mdast-util-gfm-task-list-item@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.6.tgz#70c885e6b9f543ddd7e6b41f9703ee55b084af10" - integrity sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A== - dependencies: - mdast-util-to-markdown "~0.6.0" - -mdast-util-gfm@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-0.1.2.tgz#8ecddafe57d266540f6881f5c57ff19725bd351c" - integrity sha512-NNkhDx/qYcuOWB7xHUGWZYVXvjPFFd6afg6/e2g+SV4r9q5XUcCbV4Wfa3DLYIiD+xAEZc6K4MGaE/m0KDcPwQ== - dependencies: - mdast-util-gfm-autolink-literal "^0.1.0" - mdast-util-gfm-strikethrough "^0.2.0" - mdast-util-gfm-table "^0.1.0" - mdast-util-gfm-task-list-item "^0.1.0" - mdast-util-to-markdown "^0.6.1" - -mdast-util-to-hast@^10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-10.2.0.tgz#61875526a017d8857b71abc9333942700b2d3604" - integrity sha512-JoPBfJ3gBnHZ18icCwHR50orC9kNH81tiR1gs01D8Q5YpV6adHNO9nKNuFBCJQ941/32PT1a63UF/DitmS3amQ== - 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" - -mdast-util-to-markdown@^0.6.0, mdast-util-to-markdown@^0.6.1, mdast-util-to-markdown@~0.6.0: - version "0.6.5" - resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz#b33f67ca820d69e6cc527a93d4039249b504bebe" - integrity sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ== - dependencies: - "@types/unist" "^2.0.0" - longest-streak "^2.0.0" - mdast-util-to-string "^2.0.0" - parse-entities "^2.0.0" - repeat-string "^1.0.0" - zwitch "^1.0.0" - -mdast-util-to-string@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz#27055500103f51637bd07d01da01eb1967a43527" - integrity sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A== - -mdast-util-to-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" - integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== - -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= - -mem@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/mem/-/mem-8.1.1.tgz#cf118b357c65ab7b7e0817bdf00c8062297c0122" - integrity sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA== - dependencies: - map-age-cleaner "^0.1.3" - mimic-fn "^3.1.0" - -memfs@^3.1.2, memfs@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.2.2.tgz#5de461389d596e3f23d48bb7c2afb6161f4df40e" - integrity sha512-RE0CwmIM3CEvpcdK3rZ19BC4E6hv9kADkMN5rPduRak58cNArWLi/9jFLsa4rhsjfVxMP3v0jO7FHXq7SvFY5Q== - dependencies: - fs-monkey "1.0.3" - -memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -meow@^3.3.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/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@^8.0.0: - version "8.1.2" - resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" - integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== - 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-source-map@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" - integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== - dependencies: - source-map "^0.6.1" - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.2.3, merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromark-extension-directive@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/micromark-extension-directive/-/micromark-extension-directive-1.4.0.tgz#d7e5373bf73462d09cc9de20dc64f8a582e31feb" - integrity sha512-8uJN4N2hfhxc0I2Mdya+HZ35D0fyBnHn66aVnHawLj0Nd22Poqgqw3N0vTdYOsNwwrshfMLlPDKtLfEeq4lxgw== - dependencies: - micromark "~2.11.0" - parse-entities "^2.0.0" - -micromark-extension-footnote@^0.3.0: - version "0.3.2" - resolved "https://registry.yarnpkg.com/micromark-extension-footnote/-/micromark-extension-footnote-0.3.2.tgz#129b74ef4920ce96719b2c06102ee7abb2b88a20" - integrity sha512-gr/BeIxbIWQoUm02cIfK7mdMZ/fbroRpLsck4kvFtjbzP4yi+OPVbnukTc/zy0i7spC2xYE/dbX1Sur8BEDJsQ== - dependencies: - micromark "~2.11.0" - -micromark-extension-gfm-autolink-literal@~0.5.0: - version "0.5.7" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.7.tgz#53866c1f0c7ef940ae7ca1f72c6faef8fed9f204" - integrity sha512-ePiDGH0/lhcngCe8FtH4ARFoxKTUelMp4L7Gg2pujYD5CSMb9PbblnyL+AAMud/SNMyusbS2XDSiPIRcQoNFAw== - dependencies: - micromark "~2.11.3" - -micromark-extension-gfm-strikethrough@~0.6.5: - version "0.6.5" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.5.tgz#96cb83356ff87bf31670eefb7ad7bba73e6514d1" - integrity sha512-PpOKlgokpQRwUesRwWEp+fHjGGkZEejj83k9gU5iXCbDG+XBA92BqnRKYJdfqfkrRcZRgGuPuXb7DaK/DmxOhw== - dependencies: - micromark "~2.11.0" - -micromark-extension-gfm-table@~0.4.0: - version "0.4.3" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.3.tgz#4d49f1ce0ca84996c853880b9446698947f1802b" - integrity sha512-hVGvESPq0fk6ALWtomcwmgLvH8ZSVpcPjzi0AjPclB9FsVRgMtGZkUcpE0zgjOCFAznKepF4z3hX8z6e3HODdA== - dependencies: - micromark "~2.11.0" - -micromark-extension-gfm-tagfilter@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz#d9f26a65adee984c9ccdd7e182220493562841ad" - integrity sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q== - -micromark-extension-gfm-task-list-item@~0.3.0: - version "0.3.3" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz#d90c755f2533ed55a718129cee11257f136283b8" - integrity sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ== - dependencies: - micromark "~2.11.0" - -micromark-extension-gfm@^0.3.0: - version "0.3.3" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-0.3.3.tgz#36d1a4c089ca8bdfd978c9bd2bf1a0cb24e2acfe" - integrity sha512-oVN4zv5/tAIA+l3GbMi7lWeYpJ14oQyJ3uEim20ktYFAcfX1x3LNlFGGlmrZHt7u9YlKExmyJdDGaTt6cMSR/A== - dependencies: - micromark "~2.11.0" - micromark-extension-gfm-autolink-literal "~0.5.0" - micromark-extension-gfm-strikethrough "~0.6.5" - micromark-extension-gfm-table "~0.4.0" - micromark-extension-gfm-tagfilter "~0.3.0" - micromark-extension-gfm-task-list-item "~0.3.0" - -micromark@^2.11.3, micromark@~2.11.0, micromark@~2.11.3: - version "2.11.4" - resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.11.4.tgz#d13436138eea826383e822449c9a5c50ee44665a" - integrity sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA== - dependencies: - debug "^4.0.0" - parse-entities "^2.0.0" - -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/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" - -micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== - dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.47.0, "mime-db@>= 1.43.0 < 2": - version "1.47.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" - integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== - -mime-db@1.48.0: - version "1.48.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.48.0.tgz#e35b31045dd7eada3aaad537ed88a33afbef2d1d" - integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ== - -mime-types@^2.1.12, mime-types@^2.1.19, mime-types@^2.1.27, mime-types@~2.1.24: - version "2.1.30" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" - integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== - dependencies: - mime-db "1.47.0" - -mime-types@^2.1.31: - version "2.1.31" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.31.tgz#a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b" - integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg== - dependencies: - mime-db "1.48.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.3.1, mime@~2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" - integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-fn@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" - integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== - -mimic-response@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" - integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== - -min-indent@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -minimatch@^3.0.4, minimatch@~3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist-options@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" - integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - kind-of "^6.0.3" - -minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" - integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== - dependencies: - minipass "^3.0.0" - -minipass@^3.0.0, minipass@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" - integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== - dependencies: - yallist "^4.0.0" - -minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" - integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== - -mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -mkdirp@^1.0.3, mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mkdist@^0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/mkdist/-/mkdist-0.1.7.tgz#c14c3bd18542c22844ff95cd9fdc7f98de986152" - integrity sha512-XdrFYUd9N2sGuOgU8cX1A7YNFAb1O1DEtfW2/FdS7wf3CHPpOxThUM9sdnmVfZOGePGZ5FWKjMwo2HrDzt2b6w== - dependencies: - defu "^3.2.2" - esbuild "^0.11.6" - fs-extra "^9.1.0" - globby "^11.0.3" - jiti "^1.9.1" - mri "^1.1.6" - upath "^2.0.1" - vue-template-compiler "^2.6.12" - -modify-values@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" - integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== - -monaco-editor@^0.25.2: - version "0.25.2" - resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.25.2.tgz#119e2b15bbd968a1a99c03cac9c329316d7c37e9" - integrity sha512-5iylzSJevCnzJn9UVsW8yOZ3yHjmAs4TfvH3zsbftKiFKmHG0xirGN6DK9Kk04VSWxYCZZAIafYJoNJJMAU1KA== - -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/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" - -mri@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.6.tgz#49952e1044db21dbf90f6cd92bc9c9a777d415a6" - integrity sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -multimap@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/multimap/-/multimap-1.1.0.tgz#5263febc085a1791c33b59bb3afc6a76a2a10ca8" - integrity sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw== - -mustache@^2.3.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/mustache/-/mustache-2.3.2.tgz#a6d4d9c3f91d13359ab889a812954f9230a3d0c5" - integrity sha512-KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ== - -mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - -nan@^2.12.1: - version "2.14.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" - integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== - -nanoid@^3.1.23: - version "3.1.23" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81" - integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/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" - -napi-build-utils@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" - integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - -neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1, neo-async@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -no-case@^2.2.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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-abi@^2.21.0: - version "2.26.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.26.0.tgz#355d5d4bc603e856f74197adbf3f5117a396ba40" - integrity sha512-ag/Vos/mXXpWLLAYWsAoQdgS+gW7IwvgMLOgqopm/DbzAjazLltzgzpVMsFlgmo9TzG5hGXeaBZx2AI731RIsQ== - dependencies: - semver "^5.4.1" - -node-addon-api@^3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" - integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== - -node-emoji@^1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da" - integrity sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw== - dependencies: - lodash.toarray "^4.4.0" - -node-fetch@2.6.1, node-fetch@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" - integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== - -node-forge@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" - integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== - -node-html-parser@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-4.0.0.tgz#95e4fec010c48425821d5659eaf39e27b0781b6d" - integrity sha512-vuOcp3u4GrfYOcqe+FpUffQKnfVBq781MbtFEcTR6fJYnYRE2qUPdDaDk7TGdq6H9r2B3TbyU6K9Rah6/C7qvg== - dependencies: - css-select "^4.1.3" - he "1.2.0" - -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - -node-object-hash@^1.2.0: - version "1.4.2" - resolved "https://registry.yarnpkg.com/node-object-hash/-/node-object-hash-1.4.2.tgz#385833d85b229902b75826224f6077be969a9e94" - integrity sha512-UdS4swXs85fCGWWf6t6DMGgpN/vnlKeSGEQ7hJcrs7PBFoxoKLmibc3QRb7fwiYsjdL7PX8iI/TMSlZ90dgHhQ== - -node-releases@^1.1.71: - version "1.1.71" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" - integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== - -node-res@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/node-res/-/node-res-5.0.1.tgz#ffaa462e206509d66d0ba28a4daf1f032daa6460" - integrity sha512-YOleO9c7MAqoHC+Ccu2vzvV1fL6Ku49gShq3PIMKWHRgrMSih3XcwL05NbLBi6oU2J471gTBfdpVVxwT6Pfhxg== - dependencies: - destroy "^1.0.4" - etag "^1.8.1" - mime-types "^2.1.19" - on-finished "^2.3.0" - vary "^1.1.2" - -noop-logger@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" - integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI= - -normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/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.2" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.2.tgz#cae5c410ae2434f9a6c1baa65d5bc3b9366c8699" - integrity sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg== - dependencies: - hosted-git-info "^4.0.1" - resolve "^1.20.0" - semver "^7.3.4" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= - -normalize-url@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -npmlog@^4.0.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/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" - -nprogress@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" - integrity sha1-y480xTIT2JVyP8urkH6UIq28r7E= - -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -nth-check@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125" - integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q== - dependencies: - boolbase "^1.0.0" - -null-check@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" - integrity sha1-l33/1xdgErnsMNKjnbXPcqBDnt0= - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - -nuxt-edge@2.16.0-27095053.356de80e: - version "2.16.0-27095053.356de80e" - resolved "https://registry.yarnpkg.com/nuxt-edge/-/nuxt-edge-2.16.0-27095053.356de80e.tgz#7ef105f2efebda7a79a7cb36604557421a228005" - integrity sha512-HdFD3pCrESHJE58bThQul2ysF9lnMUuqLJfR5es0jPtjQHLGzmfkOhIUmZKjrKTRkNmGNTgrCIHKdT70IYU7BA== - dependencies: - "@nuxt/babel-preset-app-edge" "2.16.0-27095053.356de80e" - "@nuxt/builder-edge" "2.16.0-27095053.356de80e" - "@nuxt/cli-edge" "2.16.0-27095053.356de80e" - "@nuxt/components" "^2.1.8" - "@nuxt/config-edge" "2.16.0-27095053.356de80e" - "@nuxt/core-edge" "2.16.0-27095053.356de80e" - "@nuxt/generator-edge" "2.16.0-27095053.356de80e" - "@nuxt/loading-screen" "^2.0.4" - "@nuxt/opencollective" "^0.3.2" - "@nuxt/server-edge" "2.16.0-27095053.356de80e" - "@nuxt/telemetry" "^1.3.6" - "@nuxt/utils-edge" "2.16.0-27095053.356de80e" - "@nuxt/vue-app-edge" "2.16.0-27095053.356de80e" - "@nuxt/vue-renderer-edge" "2.16.0-27095053.356de80e" - "@nuxt/webpack-edge" "2.16.0-27095053.356de80e" - -nuxt-extend@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/nuxt-extend/-/nuxt-extend-0.1.0.tgz#1a8fcd35b6b3b92ed67dd157e914fb064c4a30ca" - integrity sha512-MD8IcrT7p3l434/Mbr2zIsagvOpcIWhv4B/4N3xhAyQcaZZEBW+14wTX9L+Mj0+1e5gfbhWSW8mi8cA/bZ6WhA== - dependencies: - defu "^4.0.1" - hookable "^4.4.1" - jiti "^1.9.1" - -nuxt-i18n@^6.27.2: - version "6.27.2" - resolved "https://registry.yarnpkg.com/nuxt-i18n/-/nuxt-i18n-6.27.2.tgz#278d7fafa180c473471ca7ae9bdf105eb8bab796" - integrity sha512-9L2Wfokm2iLWJi5coh9xzGvy9ipX2Fb/5hyIY0pnim87MpL6M5bxIkuEo34NkU0IvxeMkfEqYjxQh0E9Do8S9A== - dependencies: - "@babel/parser" "^7.14.7" - "@babel/traverse" "^7.14.7" - "@intlify/vue-i18n-extensions" "^1.0.2" - "@intlify/vue-i18n-loader" "^1.1.0" - cookie "^0.4.1" - devalue "^2.0.1" - is-https "^4.0.0" - js-cookie "^2.2.1" - klona "^2.0.4" - lodash.merge "^4.6.2" - ufo "^0.7.5" - vue-i18n "^8.24.5" - -nuxt-vite@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/nuxt-vite/-/nuxt-vite-0.1.1.tgz#a9d193efd4792e00ee96063c89a25ca6ab010238" - integrity sha512-yY+z9OTygV6dOh0CV+vhX4qd5h0zdXLrcEJgyHOY7uCxPSwql7Ty6fBANwajaoyGs+FQ9crhDayj6PgonC5UuQ== - dependencies: - "@nuxt/http" "^0.6.4" - chokidar "^3.5.1" - consola "^2.15.3" - debounce "^1.2.1" - fs-extra "^10.0.0" - postcss-import "^14.0.2" - postcss-import-resolver "^2.0.0" - postcss-preset-env "^6.7.0" - postcss-url "^10.1.3" - semver "^7.3.5" - ufo "^0.7.5" - upath "^2.0.1" - vite "^2.3.4" - vite-plugin-vue2 "^1.5.1" - -nuxt-windicss@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/nuxt-windicss/-/nuxt-windicss-1.1.3.tgz#9efd6260b008631e9685ca5bb9609cdd4528756e" - integrity sha512-9LKng04V4eZm4dv+Ur0YCax7IIlJRJT0BuOhyS01fORTM3hkH5edsUZJtP+EU2Da+AncPW8FDeL/OIJ+DsCyfw== - dependencies: - clear-module "^4.1.1" - defu "^4.0.1" - read-cache "^1.0.0" - rimraf "^3.0.2" - semver "^7.3.5" - upath "^2.0.1" - vite-plugin-windicss "1.2.0" - windicss-webpack-plugin "1.2.4" - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/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-inspect@^1.10.3, object-inspect@^1.9.0: - version "1.10.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369" - integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw== - -object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/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.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7" - integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -object.values@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" - integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - has "^1.0.3" - -object.values@^1.1.3: - version "1.1.4" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30" - integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.18.2" - -ohmyfetch@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/ohmyfetch/-/ohmyfetch-0.1.8.tgz#b8e46f709fb07ab5e5d642d0b461a0e22b904851" - integrity sha512-QG1pbloSyd/hqvZeyVspQ9T5KC55IyK+jN2WHTRnSA7lr9CWJxoVWVi6tLNbTJVwcF1miG/c06VCCMnxPh8xxw== - dependencies: - node-fetch "^2.6.1" - -on-finished@^2.3.0, on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -on-headers@^1.0.2, on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^5.1.0, onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -open@^7.3.0: - version "7.4.2" - resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" - integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== - dependencies: - is-docker "^2.0.0" - is-wsl "^2.1.1" - -open@^8.0.5: - version "8.2.0" - resolved "https://registry.yarnpkg.com/open/-/open-8.2.0.tgz#d6a4788b00009a9d60df471ecb89842a15fdcfc1" - integrity sha512-O8uInONB4asyY3qUcEytpgwxQG3O0fJ/hlssoUHsBboOIRVZzT6Wq+Rwj5nffbeUhOdMjpXeISpDDzHCMRDuOQ== - dependencies: - define-lazy-prop "^2.0.0" - is-docker "^2.1.1" - is-wsl "^2.2.0" - -opener@1.5.2, opener@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" - integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== - -optimize-css-assets-webpack-plugin@^5.0.6: - version "5.0.6" - resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.6.tgz#abad0c6c11a632201794f75ddba3ce13e32ae80e" - integrity sha512-JAYw7WrIAIuHWoKeSBB3lJ6ZG9PSDK3JJduv/FMpIY060wvbA8Lqn/TCtxNGICNlg0X5AGshLzIhpYrkltdq+A== - dependencies: - cssnano "^4.1.10" - last-call-webpack-plugin "^3.0.0" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/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" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parallel-transform@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parent-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-2.0.0.tgz#fa71f88ff1a50c27e15d8ff74e0e3a9523bf8708" - integrity sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg== - dependencies: - callsites "^3.1.0" - -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-entities@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/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-git-config@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/parse-git-config/-/parse-git-config-3.0.0.tgz#4a2de08c7b74a2555efa5ae94d40cd44302a6132" - integrity sha512-wXoQGL1D+2COYWCD35/xbiKma1Z15xvZL8cI25wvxzled58V51SJM04Urt/uznS900iQor7QO04SgdfT/XlbuA== - dependencies: - git-config-path "^2.0.0" - ini "^1.3.5" - -parse-github-repo-url@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz#9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50" - integrity sha1-nn2LslKmy2ukJZUGC3v23z28H1A= - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - 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.3" - resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.3.tgz#82d81ec3e071dcc4ab49aa9f2c9c0b8966bb22bf" - integrity sha512-9Cepbp2asKnWTJ9x2kpw6Fe8y9JDbqwahGCTvklzd/cEq5C5JC59x2Xb0Kx+x0QZ8bvNquGO8/BWP0cwBHzSAA== - dependencies: - is-ssh "^1.3.0" - protocols "^1.4.0" - qs "^6.9.4" - query-string "^6.13.8" - -parse-url@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-5.0.2.tgz#856a3be1fcdf78dc93fc8b3791f169072d898b59" - integrity sha512-Czj+GIit4cdWtxo3ISZCvLiUjErSo0iI3wJ+q9Oi3QuMYTI6OZu+7cewMWZ+C1YAnKhYTk6/TLuhIgCypLthPA== - dependencies: - is-ssh "^1.3.0" - normalize-url "^3.3.0" - parse-path "^4.0.0" - protocols "^1.4.0" - -parse5-htmlparser2-tree-adapter@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" - integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== - dependencies: - parse5 "^6.0.1" - -parse5@^6.0.0, parse5@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascal-case@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/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@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pbkdf2@^3.0.3: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" - integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d" - integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg== - -pify@^2.0.0, pify@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" - integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= - -pkg-dir@4.2.0, pkg-dir@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/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@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" - integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= - dependencies: - find-up "^2.1.0" - -plausible-tracker@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/plausible-tracker/-/plausible-tracker-0.3.1.tgz#dd4e1f59cafc7bf1b00e30890567287b3f204efd" - integrity sha512-oXnVyfTF2gzkfK3iOZCRZEnf8sH4gBASaJhY+clwWW1orIybfQpfbgg4U5Bwj5dW/4iNstM4tx4jMCVUfMCUbg== - -pluralize@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" - integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== - -pngjs@^3.3.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" - integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== - -pnp-webpack-plugin@^1.6.4: - version "1.6.4" - resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" - integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== - dependencies: - ts-pnp "^1.1.6" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -postcss-attribute-case-insensitive@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz#d93e46b504589e94ac7277b0463226c68041a880" - integrity sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^6.0.2" - -postcss-calc@^7.0.1: - version "7.0.5" - resolved "https://registry.yarnpkg.com/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-color-functional-notation@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz#5efd37a88fbabeb00a2966d1e53d98ced93f74e0" - integrity sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-color-gray@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz#532a31eb909f8da898ceffe296fdc1f864be8547" - integrity sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.5" - postcss-values-parser "^2.0.0" - -postcss-color-hex-alpha@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz#a8d9ca4c39d497c9661e374b9c51899ef0f87388" - integrity sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw== - dependencies: - postcss "^7.0.14" - postcss-values-parser "^2.0.1" - -postcss-color-mod-function@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d" - integrity sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-color-rebeccapurple@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" - integrity sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/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@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/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-custom-media@^7.0.8: - version "7.0.8" - resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz#fffd13ffeffad73621be5f387076a28b00294e0c" - integrity sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg== - dependencies: - postcss "^7.0.14" - -postcss-custom-properties@^8.0.11: - version "8.0.11" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz#2d61772d6e92f22f5e0d52602df8fae46fa30d97" - integrity sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA== - dependencies: - postcss "^7.0.17" - postcss-values-parser "^2.0.1" - -postcss-custom-selectors@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz#64858c6eb2ecff2fb41d0b28c9dd7b3db4de7fba" - integrity sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-dir-pseudo-class@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz#6e3a4177d0edb3abcc85fdb6fbb1c26dabaeaba2" - integrity sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" - -postcss-double-position-gradients@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz#fc927d52fddc896cb3a2812ebc5df147e110522e" - integrity sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA== - dependencies: - postcss "^7.0.5" - postcss-values-parser "^2.0.0" - -postcss-env-function@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7" - integrity sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-focus-visible@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e" - integrity sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g== - dependencies: - postcss "^7.0.2" - -postcss-focus-within@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680" - integrity sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w== - dependencies: - postcss "^7.0.2" - -postcss-font-variant@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz#42d4c0ab30894f60f98b17561eb5c0321f502641" - integrity sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA== - dependencies: - postcss "^7.0.2" - -postcss-gap-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715" - integrity sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg== - dependencies: - postcss "^7.0.2" - -postcss-image-set-function@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288" - integrity sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-import-resolver@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-import-resolver/-/postcss-import-resolver-2.0.0.tgz#95c61ac5489047bd93ff42a9cd405cfe9041e2c0" - integrity sha512-y001XYgGvVwgxyxw9J1a5kqM/vtmIQGzx34g0A0Oy44MFcy/ZboZw1hu/iN3VYFjSTRzbvd7zZJJz0Kh0AGkTw== - dependencies: - enhanced-resolve "^4.1.1" - -postcss-import@^12.0.1: - version "12.0.1" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-12.0.1.tgz#cf8c7ab0b5ccab5649024536e565f841928b7153" - integrity sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw== - dependencies: - postcss "^7.0.1" - postcss-value-parser "^3.2.3" - read-cache "^1.0.0" - resolve "^1.1.7" - -postcss-import@^13.0.0: - version "13.0.0" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-13.0.0.tgz#d6960cd9e3de5464743b04dd8cd9d870662f8b8c" - integrity sha512-LPUbm3ytpYopwQQjqgUH4S3EM/Gb9QsaSPP/5vnoi+oKVy3/mIk2sc0Paqw7RL57GpScm9MdIMUypw2znWiBpg== - dependencies: - postcss-value-parser "^4.0.0" - read-cache "^1.0.0" - resolve "^1.1.7" - -postcss-import@^14.0.2: - version "14.0.2" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-14.0.2.tgz#60eff77e6be92e7b67fe469ec797d9424cae1aa1" - integrity sha512-BJ2pVK4KhUyMcqjuKs9RijV5tatNzNa73e/32aBVE/ejYPe37iH+6vAu9WvqUkB5OAYgLHzbSvzHnorybJCm9g== - dependencies: - postcss-value-parser "^4.0.0" - read-cache "^1.0.0" - resolve "^1.1.7" - -postcss-initial@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.4.tgz#9d32069a10531fe2ecafa0b6ac750ee0bc7efc53" - integrity sha512-3RLn6DIpMsK1l5UUy9jxQvoDeUN4gP939tDcKUHD/kM8SGSKbFAnvkpFpj3Bhtz3HGk1jWY5ZNWX6mPta5M9fg== - dependencies: - postcss "^7.0.2" - -postcss-lab-function@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e" - integrity sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-load-config@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/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@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" - integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== - dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" - -postcss-loader@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-4.3.0.tgz#2c4de9657cd4f07af5ab42bd60a673004da1b8cc" - integrity sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q== - dependencies: - cosmiconfig "^7.0.0" - klona "^2.0.4" - loader-utils "^2.0.0" - schema-utils "^3.0.0" - semver "^7.3.4" - -postcss-logical@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-3.0.0.tgz#2495d0f8b82e9f262725f75f9401b34e7b45d5b5" - integrity sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA== - dependencies: - postcss "^7.0.2" - -postcss-media-minmax@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5" - integrity sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw== - dependencies: - postcss "^7.0.2" - -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/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@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/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-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/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@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/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@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/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@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/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@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== - dependencies: - postcss "^7.0.5" - -postcss-modules-extract-imports@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" - integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== - -postcss-modules-local-by-default@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" - integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== - dependencies: - icss-utils "^4.1.1" - postcss "^7.0.32" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -postcss-modules-local-by-default@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" - integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== - dependencies: - icss-utils "^5.0.0" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" - integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - -postcss-modules-scope@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" - integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== - dependencies: - postcss-selector-parser "^6.0.4" - -postcss-modules-values@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" - integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== - dependencies: - icss-utils "^4.0.0" - postcss "^7.0.6" - -postcss-modules-values@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" - integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== - dependencies: - icss-utils "^5.0.0" - -postcss-modules@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-4.0.0.tgz#2bc7f276ab88f3f1b0fadf6cbd7772d43b5f3b9b" - integrity sha512-ghS/ovDzDqARm4Zj6L2ntadjyQMoyJmi0JkLlYtH2QFLrvNlxH5OAVRPWPeKilB0pY7SbuhO173KOWkPAxRJcw== - dependencies: - generic-names "^2.0.1" - icss-replace-symbols "^1.1.0" - lodash.camelcase "^4.3.0" - postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.0" - postcss-modules-scope "^3.0.0" - postcss-modules-values "^4.0.0" - string-hash "^1.1.1" - -postcss-nesting@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.1.tgz#b50ad7b7f0173e5b5e3880c3501344703e04c052" - integrity sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg== - dependencies: - postcss "^7.0.2" - -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/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-overflow-shorthand@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz#31ecf350e9c6f6ddc250a78f0c3e111f32dd4c30" - integrity sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g== - dependencies: - postcss "^7.0.2" - -postcss-page-break@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf" - integrity sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ== - dependencies: - postcss "^7.0.2" - -postcss-place@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-4.0.1.tgz#e9f39d33d2dc584e46ee1db45adb77ca9d1dcc62" - integrity sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-preset-env@^6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz#c34ddacf8f902383b35ad1e030f178f4cdf118a5" - integrity sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg== - dependencies: - autoprefixer "^9.6.1" - browserslist "^4.6.4" - caniuse-lite "^1.0.30000981" - css-blank-pseudo "^0.1.4" - css-has-pseudo "^0.10.0" - css-prefers-color-scheme "^3.1.1" - cssdb "^4.4.0" - postcss "^7.0.17" - postcss-attribute-case-insensitive "^4.0.1" - postcss-color-functional-notation "^2.0.1" - postcss-color-gray "^5.0.0" - postcss-color-hex-alpha "^5.0.3" - postcss-color-mod-function "^3.0.3" - postcss-color-rebeccapurple "^4.0.1" - postcss-custom-media "^7.0.8" - postcss-custom-properties "^8.0.11" - postcss-custom-selectors "^5.1.2" - postcss-dir-pseudo-class "^5.0.0" - postcss-double-position-gradients "^1.0.0" - postcss-env-function "^2.0.2" - postcss-focus-visible "^4.0.0" - postcss-focus-within "^3.0.0" - postcss-font-variant "^4.0.0" - postcss-gap-properties "^2.0.0" - postcss-image-set-function "^3.0.1" - postcss-initial "^3.0.0" - postcss-lab-function "^2.0.1" - postcss-logical "^3.0.0" - postcss-media-minmax "^4.0.0" - postcss-nesting "^7.0.0" - postcss-overflow-shorthand "^2.0.0" - postcss-page-break "^2.0.0" - postcss-place "^4.0.1" - postcss-pseudo-class-any-link "^6.0.0" - postcss-replace-overflow-wrap "^3.0.0" - postcss-selector-matches "^4.0.0" - postcss-selector-not "^4.0.0" - -postcss-pseudo-class-any-link@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1" - integrity sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/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@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/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-replace-overflow-wrap@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c" - integrity sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw== - dependencies: - postcss "^7.0.2" - -postcss-selector-matches@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" - integrity sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww== - dependencies: - balanced-match "^1.0.0" - postcss "^7.0.2" - -postcss-selector-not@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz#263016eef1cf219e0ade9a913780fc1f48204cbf" - integrity sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ== - dependencies: - balanced-match "^1.0.0" - postcss "^7.0.2" - -postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/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@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" - integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== - dependencies: - cssesc "^2.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: - version "6.0.6" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" - integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-svgo@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" - integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" - -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/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-url@^10.1.1, postcss-url@^10.1.3: - version "10.1.3" - resolved "https://registry.yarnpkg.com/postcss-url/-/postcss-url-10.1.3.tgz#54120cc910309e2475ec05c2cfa8f8a2deafdf1e" - integrity sha512-FUzyxfI5l2tKmXdYc6VTu3TWZsInayEKPbiyW+P6vmmIrrb4I6CGX0BFoewgYHLK+oIL5FECEK02REYRpBvUCw== - dependencies: - make-dir "~3.1.0" - mime "~2.5.2" - minimatch "~3.0.4" - xxhashjs "~0.2.2" - -postcss-url@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/postcss-url/-/postcss-url-8.0.0.tgz#7b10059bd12929cdbb1971c60f61a0e5af86b4ca" - integrity sha512-E2cbOQ5aii2zNHh8F6fk1cxls7QVFZjLPSrqvmiza8OuXLzIpErij8BDS5Y3STPfJgpIMNCPEr8JlKQWEoozUw== - dependencies: - mime "^2.3.1" - minimatch "^3.0.4" - mkdirp "^0.5.0" - postcss "^7.0.2" - xxhashjs "^0.2.1" - -postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" - integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== - -postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" - integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== - dependencies: - flatten "^1.0.2" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss@7.x.x, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.35" - resolved "https://registry.yarnpkg.com/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" - -postcss@^8.1.10, postcss@^8.2.10: - version "8.2.15" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.15.tgz#9e66ccf07292817d226fc315cbbf9bc148fbca65" - integrity sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q== - dependencies: - colorette "^1.2.2" - nanoid "^3.1.23" - source-map "^0.6.1" - -postcss@^8.3.5: - version "8.3.5" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.5.tgz#982216b113412bc20a86289e91eb994952a5b709" - integrity sha512-NxTuJocUhYGsMiMFHDUkmjSKT3EdH4/WbGF6GCi1NDGk+vbcUTun4fpbOqaPtD8IIsztA2ilZm2DhYCuyN58gA== - dependencies: - colorette "^1.2.2" - nanoid "^3.1.23" - source-map-js "^0.6.2" - -preact@^10.0.0: - version "10.5.13" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.5.13.tgz#85f6c9197ecd736ce8e3bec044d08fd1330fa019" - integrity sha512-q/vlKIGNwzTLu+jCcvywgGrt+H/1P/oIRSD6mV4ln3hmlC+Aa34C7yfPI4+5bzW8pONyVXYS7SvXosy2dKKtWQ== - -prebuild-install@^6.1.2: - version "6.1.2" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.2.tgz#6ce5fc5978feba5d3cbffedca0682b136a0b5bff" - integrity sha512-PzYWIKZeP+967WuKYXlTOhYBgGOvTRSfaKI89XnfJ0ansRAH7hDU45X+K+FZeI1Wb/7p/NnuctPH3g0IqKUuSQ== - dependencies: - detect-libc "^1.0.3" - expand-template "^2.0.3" - github-from-package "0.0.0" - minimist "^1.2.3" - mkdirp-classic "^0.5.3" - napi-build-utils "^1.0.1" - node-abi "^2.21.0" - noop-logger "^0.1.1" - npmlog "^4.0.1" - pump "^3.0.0" - rc "^1.2.7" - simple-get "^3.0.3" - tar-fs "^2.0.0" - tunnel-agent "^0.6.0" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prepend-http@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= - -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - -prettier@^1.18.2: - version "1.19.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" - integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== - -prettier@^2.0.5: - version "2.3.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.0.tgz#b6a5bf1284026ae640f17f7ff5658a7567fc0d18" - integrity sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w== - -prettier@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d" - integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ== - -pretty-bytes@^5.6.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" - integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== - -pretty-error@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" - integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== - dependencies: - lodash "^4.17.20" - renderkid "^2.0.4" - -pretty-time@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" - integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== - -prism-theme-vars@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/prism-theme-vars/-/prism-theme-vars-0.2.2.tgz#a4c8dd0bfdb76c9b50a6ad8cd99a9ebe7a921a64" - integrity sha512-EL9ifuU/F8tEldoCa2sspiiLWysCL54xDbf2gN/ubwdtbuJROqOGopG5kSwunapwaioT+jLUQ/Ky+7jnv62xJA== - -prismjs@^1.24.1: - version "1.24.1" - resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.24.1.tgz#c4d7895c4d6500289482fa8936d9cdd192684036" - integrity sha512-mNPsedLuk90RVJioIky8ANZEwYm5w9LcvCXrxHlwf4fNVSn8jEipMybMkWUyyF0JhnC+C4VcOVSBuHRKs1L5Ow== - -private@^0.1.6: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - -progress@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.1.tgz#c9242169342b1c29d275889c95734621b1952e31" - integrity sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg== - -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - -promise@^7.0.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" - integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== - dependencies: - asap "~2.0.3" - -proper-lockfile@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f" - integrity sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA== - dependencies: - graceful-fs "^4.2.4" - retry "^0.12.0" - signal-exit "^3.0.2" - -property-information@^5.0.0, property-information@^5.3.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.6.0.tgz#61675545fb23002f245c6540ec46077d4da3ed69" - integrity sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA== - dependencies: - xtend "^4.0.0" - -protocols@^1.1.0, protocols@^1.4.0: - version "1.4.8" - resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8" - integrity sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg== - -proxy-from-env@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pug-attrs@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pug-attrs/-/pug-attrs-3.0.0.tgz#b10451e0348165e31fad1cc23ebddd9dc7347c41" - integrity sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA== - dependencies: - constantinople "^4.0.1" - js-stringify "^1.0.2" - pug-runtime "^3.0.0" - -pug-code-gen@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/pug-code-gen/-/pug-code-gen-3.0.2.tgz#ad190f4943133bf186b60b80de483100e132e2ce" - integrity sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg== - dependencies: - constantinople "^4.0.1" - doctypes "^1.1.0" - js-stringify "^1.0.2" - pug-attrs "^3.0.0" - pug-error "^2.0.0" - pug-runtime "^3.0.0" - void-elements "^3.1.0" - with "^7.0.0" - -pug-error@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pug-error/-/pug-error-2.0.0.tgz#5c62173cb09c34de2a2ce04f17b8adfec74d8ca5" - integrity sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ== - -pug-filters@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/pug-filters/-/pug-filters-4.0.0.tgz#d3e49af5ba8472e9b7a66d980e707ce9d2cc9b5e" - integrity sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A== - dependencies: - constantinople "^4.0.1" - jstransformer "1.0.0" - pug-error "^2.0.0" - pug-walk "^2.0.0" - resolve "^1.15.1" - -pug-lexer@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/pug-lexer/-/pug-lexer-5.0.1.tgz#ae44628c5bef9b190b665683b288ca9024b8b0d5" - integrity sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w== - dependencies: - character-parser "^2.2.0" - is-expression "^4.0.0" - pug-error "^2.0.0" - -pug-linker@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/pug-linker/-/pug-linker-4.0.0.tgz#12cbc0594fc5a3e06b9fc59e6f93c146962a7708" - integrity sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw== - dependencies: - pug-error "^2.0.0" - pug-walk "^2.0.0" - -pug-load@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pug-load/-/pug-load-3.0.0.tgz#9fd9cda52202b08adb11d25681fb9f34bd41b662" - integrity sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ== - dependencies: - object-assign "^4.1.1" - pug-walk "^2.0.0" - -pug-parser@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/pug-parser/-/pug-parser-6.0.0.tgz#a8fdc035863a95b2c1dc5ebf4ecf80b4e76a1260" - integrity sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw== - dependencies: - pug-error "^2.0.0" - token-stream "1.0.0" - -pug-runtime@^3.0.0, pug-runtime@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/pug-runtime/-/pug-runtime-3.0.1.tgz#f636976204723f35a8c5f6fad6acda2a191b83d7" - integrity sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg== - -pug-strip-comments@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz#f94b07fd6b495523330f490a7f554b4ff876303e" - integrity sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ== - dependencies: - pug-error "^2.0.0" - -pug-walk@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pug-walk/-/pug-walk-2.0.0.tgz#417aabc29232bb4499b5b5069a2b2d2a24d5f5fe" - integrity sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ== - -pug@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/pug/-/pug-3.0.2.tgz#f35c7107343454e43bc27ae0ff76c731b78ea535" - integrity sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw== - dependencies: - pug-code-gen "^3.0.2" - pug-filters "^4.0.0" - pug-lexer "^5.0.1" - pug-linker "^4.0.0" - pug-load "^3.0.0" - pug-parser "^6.0.0" - pug-runtime "^3.0.1" - pug-strip-comments "^2.0.0" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -puppeteer-core@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-10.1.0.tgz#ffd9fd780ad237b9ac23cc95cbb919be5e4523a5" - integrity sha512-x2yDSJI/PRiWhDqAt1jd4rhTotxwjwKzHLIIqD2MlJ+TmzGJfBY9snAGIVXJwkWfKJg+Ef5xupdK0EbHDqBpFw== - dependencies: - debug "4.3.1" - devtools-protocol "0.0.883894" - extract-zip "2.0.1" - https-proxy-agent "5.0.0" - node-fetch "2.6.1" - pkg-dir "4.2.0" - progress "2.0.1" - proxy-from-env "1.1.0" - rimraf "3.0.2" - tar-fs "2.0.0" - unbzip2-stream "1.3.3" - ws "7.4.6" - -q@^1.1.2, q@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - -qrcode@^1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.4.4.tgz#f0c43568a7e7510a55efc3b88d9602f71963ea83" - integrity sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q== - dependencies: - buffer "^5.4.3" - buffer-alloc "^1.2.0" - buffer-from "^1.1.1" - dijkstrajs "^1.0.1" - isarray "^2.0.1" - pngjs "^3.3.0" - yargs "^13.2.4" - -qs@^6.9.4: - version "6.10.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a" - integrity sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg== - dependencies: - side-channel "^1.0.4" - -query-string@^4.1.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/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" - -query-string@^6.13.8: - version "6.14.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" - integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw== - dependencies: - decode-uri-component "^0.2.0" - filter-obj "^1.1.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -querystring@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" - integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -quick-lru@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" - integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -rc9@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/rc9/-/rc9-1.2.0.tgz#ef098181fdde714efc4c426383d6e46c14b1254a" - integrity sha512-/jknmhG0USFAx5uoKkAKhtG40sONds9RWhFHrP1UzJ3OvVfqFWOypSUpmsQD0fFwAV7YtzHhsn3QNasfAoxgcQ== - dependencies: - defu "^2.0.4" - destr "^1.0.0" - flat "^5.0.0" - -rc@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -read-cache@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" - integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q= - dependencies: - pify "^2.3.0" - -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/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@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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" - -"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.3, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -readdirp@~3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" - integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== - dependencies: - picomatch "^2.2.1" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -recast@0.20.4: - version "0.20.4" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.20.4.tgz#db55983eac70c46b3fff96c8e467d65ffb4a7abc" - integrity sha512-6qLIBGGRcwjrTZGIiBpJVC/NeuXpogXNyRQpqU1zWPUigCphvApoCs9KIwDYh1eDuJ6dAFlQoi/QUyE5KQ6RBQ== - dependencies: - ast-types "0.14.2" - esprima "~4.0.0" - source-map "~0.6.1" - tslib "^2.0.1" - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= - dependencies: - resolve "^1.1.6" - -redent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" - integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= - dependencies: - indent-string "^2.1.0" - strip-indent "^1.0.1" - -redent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" - integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== - dependencies: - indent-string "^4.0.0" - strip-indent "^3.0.0" - -redis-commands@1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.7.0.tgz#15a6fea2d58281e27b1cd1acfb4b293e278c3a89" - integrity sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ== - -redis-errors@^1.0.0, redis-errors@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" - integrity sha1-62LSrbFeTq9GEMBK/hUpOEJQq60= - -redis-parser@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" - integrity sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ= - dependencies: - redis-errors "^1.0.0" - -regenerate-unicode-properties@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" - integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== - dependencies: - regenerate "^1.4.0" - -regenerate@^1.2.1, regenerate@^1.4.0: - version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - -regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7: - version "0.13.7" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" - integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== - -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" - integrity sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q== - dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" - private "^0.1.6" - -regenerator-transform@^0.14.2: - version "0.14.5" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" - integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== - dependencies: - "@babel/runtime" "^7.8.4" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/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-tree@^0.1.22, regexp-tree@~0.1.1: - version "0.1.23" - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.23.tgz#8a8ce1cc5e971acef62213a7ecdb1f6e18a1f1b2" - integrity sha512-+7HWfb4Bvu8Rs2eQTUIpX9I/PlQkYOuTNbRpKLJlQpSgwSkzFYh+pUj0gtvglnOZLKB6YgnIgRuJ2/IlpL48qw== - -regexpp@^3.0.0, regexpp@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" - integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== - -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - integrity sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA= - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regexpu-core@^4.7.1: - version "4.7.1" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" - integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.2.0" - regjsgen "^0.5.1" - regjsparser "^0.6.4" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.2.0" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= - -regjsgen@^0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" - integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== - -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= - dependencies: - jsesc "~0.5.0" - -regjsparser@^0.6.4: - version "0.6.9" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.9.tgz#b489eef7c9a2ce43727627011429cf833a7183e6" - integrity sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ== - dependencies: - jsesc "~0.5.0" - -rehype-parse@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/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" - -rehype-raw@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/rehype-raw/-/rehype-raw-5.1.0.tgz#66d5e8d7188ada2d31bc137bc19a1000cf2c6b7e" - integrity sha512-MDvHAb/5mUnif2R+0IPCYJU8WjHa9UzGtM/F4AVy5GixPlDZ1z3HacYy4xojDU+uBa+0X/3PIfyQI26/2ljJNA== - dependencies: - hast-util-raw "^6.1.0" - -rehype-sort-attribute-values@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rehype-sort-attribute-values/-/rehype-sort-attribute-values-3.0.2.tgz#7f4b41c2dc46a67c26d42bc9fd872ab76fece194" - integrity sha512-6QGua2vM3DytGRJcL11UTYLP5w5ItRgaQI2PhS3zLhvgKFkO/sb+JgcYsLCnkli9MCTkSvuEYArkiA1txtAtPA== - dependencies: - hast-util-is-element "^1.0.0" - unist-util-visit "^2.0.0" - x-is-array "^0.1.0" - -rehype-sort-attributes@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rehype-sort-attributes/-/rehype-sort-attributes-3.0.2.tgz#18c7e86b34de4b0222d0d54412e860333bd74b7e" - integrity sha512-roPtOHX6BfLXge161TnxOh+jr8JhZwUDVdqYI/qobYpfAkXgBfnftpWlwcShdsExa+nbUd5zU7z9A0nHBi35+A== - dependencies: - unist-util-visit "^2.0.0" - -relateurl@^0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= - -remark-autolink-headings@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/remark-autolink-headings/-/remark-autolink-headings-6.0.1.tgz#074470b8ec7714a0f06fa151e293152bf9723df9" - integrity sha512-LTV5G5NMjypHEr14tMNJ36yrP+xwT7mejJelZOPXKiF5WvRH9o36zXnr2QGqfms2yVASNpDaC9NBOwKlJJKuQw== - dependencies: - extend "^3.0.0" - unist-util-visit "^2.0.0" - -remark-directive@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/remark-directive/-/remark-directive-1.0.1.tgz#13356db9c893d16ad15406e4b77a389525c4bdf9" - integrity sha512-x6rZs0qa0zu9gW7Avd+rRxHJL2K9TGk+c51NaLfQgCNI7SxwBycRJ3w5mMkjkIjO6O9/qdx0ntu48byCSgF96Q== - dependencies: - mdast-util-directive "^1.0.0" - micromark-extension-directive "^1.0.0" - -remark-emoji@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/remark-emoji/-/remark-emoji-2.2.0.tgz#1c702090a1525da5b80e15a8f963ef2c8236cac7" - integrity sha512-P3cj9s5ggsUvWw5fS2uzCHJMGuXYRb0NnZqYlNecewXt8QBU9n5vW3DUUKOhepS8F9CwdMx9B8a3i7pqFWAI5w== - dependencies: - emoticon "^3.2.0" - node-emoji "^1.10.0" - unist-util-visit "^2.0.3" - -remark-external-links@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/remark-external-links/-/remark-external-links-8.0.0.tgz#308de69482958b5d1cd3692bc9b725ce0240f345" - integrity sha512-5vPSX0kHoSsqtdftSHhIYofVINC8qmp0nctkeU9YoJwV3YfiBRiI6cbFRJ0oI/1F9xS+bopXG0m2KS8VFscuKA== - dependencies: - extend "^3.0.0" - is-absolute-url "^3.0.0" - mdast-util-definitions "^4.0.0" - space-separated-tokens "^1.0.0" - unist-util-visit "^2.0.0" - -remark-footnotes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/remark-footnotes/-/remark-footnotes-3.0.0.tgz#5756b56f8464fa7ed80dbba0c966136305d8cb8d" - integrity sha512-ZssAvH9FjGYlJ/PBVKdSmfyPc3Cz4rTWgZLI4iE/SX8Nt5l3o3oEjv3wwG5VD7xOjktzdwp5coac+kJV9l4jgg== - dependencies: - mdast-util-footnote "^0.1.0" - micromark-extension-footnote "^0.3.0" - -remark-gfm@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-1.0.0.tgz#9213643001be3f277da6256464d56fd28c3b3c0d" - integrity sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA== - dependencies: - mdast-util-gfm "^0.1.0" - micromark-extension-gfm "^0.3.0" - -remark-github@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/remark-github/-/remark-github-10.1.0.tgz#1c2777c1d4082b56d7890af656a0a525e49cacfc" - integrity sha512-q0BTFb41N6/uXQVkxRwLRTFRfLFPYP+8li26Js5XC0GKritCSaxrftd+t+8sfN+1i9BtmJPUKoS7CZwtccj0Fg== - dependencies: - mdast-util-find-and-replace "^1.0.0" - mdast-util-to-string "^1.0.0" - unist-util-visit "^2.0.0" - -remark-parse@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-9.0.0.tgz#4d20a299665880e4f4af5d90b7c7b8a935853640" - integrity sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw== - dependencies: - mdast-util-from-markdown "^0.8.0" - -remark-rehype@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-8.1.0.tgz#610509a043484c1e697437fa5eb3fd992617c945" - integrity sha512-EbCu9kHgAxKmW1yEYjx3QafMyGY3q8noUbNUI5xyKbaFP89wbhDrKxyIQNukNYthzjNHZu6J7hwFg7hRm1svYA== - dependencies: - mdast-util-to-hast "^10.2.0" - -remark-slug@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/remark-slug/-/remark-slug-6.0.0.tgz#2b54a14a7b50407a5e462ac2f376022cce263e2c" - integrity sha512-ln67v5BrGKHpETnm6z6adlJPhESFJwfuZZ3jrmi+lKTzeZxh2tzFzUfDD4Pm2hRGOarHLuGToO86MNMZ/hA67Q== - dependencies: - github-slugger "^1.0.0" - mdast-util-to-string "^1.0.0" - unist-util-visit "^2.0.0" - -remark-squeeze-paragraphs@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -renderkid@^2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.5.tgz#483b1ac59c6601ab30a7a596a5965cabccfdd0a5" - integrity sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ== - dependencies: - css-select "^2.0.2" - dom-converter "^0.2" - htmlparser2 "^3.10.1" - lodash "^4.17.20" - strip-ansi "^3.0.0" - -repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== - -repeat-string@^1.0.0, repeat-string@^1.6.0, repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= - dependencies: - is-finite "^1.0.0" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -requrl@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/requrl/-/requrl-3.0.2.tgz#d376104193b02a2d874dde68454c2db2dfeb0fac" - integrity sha512-f3gjR6d8MhOpn46PP+DSJywbmxi95fxQm3coXBFwognjFLla9X6tr8BdNyaIKNOEkaRbRcm0/zYAqN19N1oyhg== - -reserved-words@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/reserved-words/-/reserved-words-0.1.2.tgz#00a0940f98cd501aeaaac316411d9adc52b31ab1" - integrity sha1-AKCUD5jNUBrqqsMWQR2a3FKzGrE= - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.15.1, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.2.0, resolve@^1.20.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= - -rimraf@3.0.2, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -rollup-plugin-dts@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rollup-plugin-dts/-/rollup-plugin-dts-3.0.2.tgz#2b628d88f864d271d6eaec2e4c2a60ae4e944c5c" - integrity sha512-hswlsdWu/x7k5pXzaLP6OvKRKcx8Bzprksz9i9mUe72zvt8LvqAb/AZpzs6FkLgmyRaN8B6rUQOVtzA3yEt9Yw== - dependencies: - magic-string "^0.25.7" - optionalDependencies: - "@babel/code-frame" "^7.12.13" - -rollup-plugin-esbuild@4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/rollup-plugin-esbuild/-/rollup-plugin-esbuild-4.2.3.tgz#3d719e58e7a5f84515fe52a58d35bc97a9e7e12c" - integrity sha512-GWyDUPv79Iw4uQdizD7ch7yA+wiB9W4Ye01RmO/kuF3yjybluJT5rbmLAnyv3kWmOF8suOjf+TvvBCXEj6qSAw== - dependencies: - "@rollup/pluginutils" "^4.1.0" - joycon "^3.0.1" - jsonc-parser "^3.0.0" - -rollup@^2.35.1, rollup@^2.38.5: - version "2.47.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.47.0.tgz#9d958aeb2c0f6a383cacc0401dff02b6e252664d" - integrity sha512-rqBjgq9hQfW0vRmz+0S062ORRNJXvwRpzxhFXORvar/maZqY6za3rgQ/p1Glg+j1hnc1GtYyQCPiAei95uTElg== - optionalDependencies: - fsevents "~2.3.1" - -rollup@^2.47.0: - version "2.51.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.51.1.tgz#87bcd4095fe79b14c9bec0edc7ffa44e4827f793" - integrity sha512-8xfDbAtBleXotb6qKEHWuo/jkn94a9dVqGc7Rwl3sqspCVlnCfbRek7ldhCARSi7h32H0xR4QThm1t9zHN+3uw== - optionalDependencies: - fsevents "~2.3.1" - -run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= - dependencies: - aproba "^1.1.1" - -rxjs@^6.6.0: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== - 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.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -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.yarnpkg.com/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.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -safe-regex@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-2.1.1.tgz#f7128f00d056e2fe5c11e81a1324dd974aadced2" - integrity sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A== - dependencies: - regexp-tree "~0.1.1" - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sass-loader@10.1.1: - version "10.1.1" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.1.1.tgz#4ddd5a3d7638e7949065dd6e9c7c04037f7e663d" - integrity sha512-W6gVDXAd5hR/WHsPicvZdjAWHBcEJ44UahgxcIE196fW2ong0ZHMPO1kZuI5q0VlvMQZh32gpv69PLWQm70qrw== - dependencies: - klona "^2.0.4" - loader-utils "^2.0.0" - neo-async "^2.6.2" - schema-utils "^3.0.0" - semver "^7.3.2" - -sax@~1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -schema-utils@2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" - integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== - dependencies: - "@types/json-schema" "^7.0.4" - ajv "^6.12.2" - ajv-keywords "^3.4.1" - -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/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.0.0, schema-utils@^2.6.5, schema-utils@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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" - -scule@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/scule/-/scule-0.2.1.tgz#0c1dc847b18e07219ae9a3832f2f83224e2079dc" - integrity sha512-M9gnWtn3J0W+UhJOHmBxBTwv8mZCan5i1Himp60t6vvZcor0wr+IM0URKmIglsWJ7bRujNAVVN77fp+uZaWoKg== - -section-matter@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" - integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== - dependencies: - extend-shallow "^2.0.1" - kind-of "^6.0.0" - -select@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" - integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= - -selfsigned@^1.10.8: - version "1.10.11" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.11.tgz#24929cd906fe0f44b6d01fb23999a739537acbe9" - integrity sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA== - dependencies: - node-forge "^0.10.0" - -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.1.1, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" - -send@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/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@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-3.1.0.tgz#8bf3a9170712664ef2561b44b691eafe399214ea" - integrity sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg== - dependencies: - randombytes "^2.1.0" - -serialize-javascript@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" - integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== - dependencies: - randombytes "^2.1.0" - -serialize-javascript@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" - integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== - dependencies: - randombytes "^2.1.0" - -serialize-javascript@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== - dependencies: - randombytes "^2.1.0" - -serve-placeholder@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/serve-placeholder/-/serve-placeholder-1.2.3.tgz#d2e778c6fedfe6e6ca48aff0b4627bbe2c4aa2ca" - integrity sha512-DC7t66WeIrlVzVMzickfHIn1zHu7eMsVNiH0nkD/wCrijFQdvgyfH2zc5lkFf79EApUgRhZntkpKjfgLkn2i/Q== - dependencies: - defu "^3.2.2" - -serve-static@^1.14.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/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" - -server-destroy@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/server-destroy/-/server-destroy-1.0.1.tgz#f13bf928e42b9c3e79383e61cc3998b5d14e6cdd" - integrity sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0= - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - -sharp@^0.28.3: - version "0.28.3" - resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.28.3.tgz#ecd74cefd020bee4891bb137c9850ee2ce277a8b" - integrity sha512-21GEP45Rmr7q2qcmdnjDkNP04Ooh5v0laGS5FDpojOO84D1DJwUijLiSq8XNNM6e8aGXYtoYRh3sVNdm8NodMA== - dependencies: - color "^3.1.3" - detect-libc "^1.0.3" - node-addon-api "^3.2.0" - prebuild-install "^6.1.2" - semver "^7.3.5" - simple-get "^3.1.0" - tar-fs "^2.1.1" - tunnel-agent "^0.6.0" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shell-quote@^1.6.1: - version "1.7.2" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" - integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== - -shelljs@^0.8.3: - version "0.8.4" - resolved "https://registry.yarnpkg.com/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.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -simple-concat@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" - integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== - -simple-get@^3.0.3, simple-get@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" - integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA== - dependencies: - decompress-response "^4.2.0" - once "^1.3.1" - simple-concat "^1.0.0" - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= - dependencies: - is-arrayish "^0.3.1" - -siroc@^0.9.3: - version "0.9.3" - resolved "https://registry.yarnpkg.com/siroc/-/siroc-0.9.3.tgz#d9651764656aa54253a68e715bf1193adf58cfe4" - integrity sha512-18Kbn8udQWvWZbVjDZ4WcIzGaRZ/KgK9P8tMaSg0jQOQRZW2FWvnvy99BXrd++4J0SbqOY5giXLh5DuRQJh5TQ== - dependencies: - "@rollup/plugin-alias" "^3.1.2" - "@rollup/plugin-commonjs" "^19.0.0" - "@rollup/plugin-json" "^4.1.0" - "@rollup/plugin-node-resolve" "^13.0.0" - "@rollup/plugin-replace" "^2.4.2" - cac "^6.7.3" - chalk "^4.1.1" - consola "^2.15.3" - defu "^4.0.1" - esbuild "^0.11.20" - execa "^5.0.0" - fs-extra "^9.1.0" - glob "^7.1.7" - jiti "^1.9.2" - mkdist "^0.1.7" - rollup "^2.47.0" - rollup-plugin-dts "^3.0.1" - rollup-plugin-esbuild "4.2.3" - sort-package-json "^1.50.0" - typescript "^4.2.4" - upath "^2.0.1" - v8-compile-cache "^2.3.0" - -sirv@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.12.tgz#d816c882b35489b3c63290e2f455ae3eccd5f652" - integrity sha512-+jQoCxndz7L2tqQL4ZyzfDhky0W/4ZJip3XoOuxyQWnAwMxindLl3Xv1qT4x1YX/re0leShvTm8Uk0kQspGhBg== - dependencies: - "@polka/url" "^1.0.0-next.15" - mime "^2.3.1" - totalist "^1.0.0" - -sirv@^1.0.7: - version "1.0.11" - resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.11.tgz#81c19a29202048507d6ec0d8ba8910fda52eb5a4" - integrity sha512-SR36i3/LSWja7AJNRBz4fF/Xjpn7lQFI30tZ434dIy+bitLYSP+ZEenHg36i23V2SGEz+kqjksg0uOGZ5LPiqg== - dependencies: - "@polka/url" "^1.0.0-next.9" - mime "^2.3.1" - totalist "^1.0.0" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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" - -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" - integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= - dependencies: - is-plain-obj "^1.0.0" - -sort-object-keys@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/sort-object-keys/-/sort-object-keys-1.1.3.tgz#bff833fe85cab147b34742e45863453c1e190b45" - integrity sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg== - -sort-package-json@^1.50.0: - version "1.50.0" - resolved "https://registry.yarnpkg.com/sort-package-json/-/sort-package-json-1.50.0.tgz#19fc109fe23bd157bd03c8e572fa3251a52467d8" - integrity sha512-qZpqhMU9XTntebgAgc4hv/D6Fzhh7kFnwvV6a7+q8y8J5JoaDqPYQnvXPf7BBqG95tdE8X6JVNo7/jDzcbdfUg== - dependencies: - detect-indent "^6.0.0" - detect-newline "3.1.0" - git-hooks-list "1.0.3" - globby "10.0.0" - is-plain-obj "2.1.0" - sort-object-keys "^1.1.3" - -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -source-map-js@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" - integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@0.5.6: - version "0.5.6" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" - integrity sha1-dc449SvwczxafwwRjYEzSiu19BI= - -source-map@^0.5.0, source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - -sourcemap-codec@^1.4.4: - version "1.4.8" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - -space-separated-tokens@^1.0.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/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.7" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" - integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== - -split-on-first@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" - integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/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@^3.0.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" - integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== - dependencies: - readable-stream "^3.0.0" - -split@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" - integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== - dependencies: - through "2" - -splitpanes@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/splitpanes/-/splitpanes-3.0.4.tgz#586dce41609da45d257d925e324a926f05aa77c8" - integrity sha512-KRaPtMDpu++OfvAzNQYE5U7WT5NoMA6l9B0buC4PhYoDILVLY8zN7Sp9cHXAgLhH59jI3lKzVoNqyf4OGRv7QQ== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -ssri@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" - integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== - dependencies: - figgy-pudding "^3.5.1" - -ssri@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" - integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== - dependencies: - minipass "^3.1.1" - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -stack-trace@0.0.10: - version "0.0.10" - resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" - integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= - -stackframe@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303" - integrity sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA== - -standard-as-callback@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45" - integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== - -standard-version@^9.3.0: - version "9.3.0" - resolved "https://registry.yarnpkg.com/standard-version/-/standard-version-9.3.0.tgz#2e6ff439aa49b2ea8952262f30ae6b70c02467d3" - integrity sha512-cYxxKXhYfI3S9+CA84HmrJa9B88H56V5FQ302iFF2TNwJukJCNoU8FgWt+11YtwKFXRkQQFpepC2QOF7aDq2Ow== - dependencies: - chalk "^2.4.2" - conventional-changelog "3.1.24" - conventional-changelog-config-spec "2.1.0" - conventional-changelog-conventionalcommits "4.5.0" - conventional-recommended-bump "6.1.0" - detect-indent "^6.0.0" - detect-newline "^3.1.0" - dotgitignore "^2.1.0" - figures "^3.1.0" - find-up "^5.0.0" - fs-access "^1.0.1" - git-semver-tags "^4.0.0" - semver "^7.1.1" - stringify-package "^1.0.1" - yargs "^16.0.0" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/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.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -std-env@^2.2.1, std-env@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/std-env/-/std-env-2.3.0.tgz#66d4a4a4d5224242ed8e43f5d65cfa9095216eee" - integrity sha512-4qT5B45+Kjef2Z6pE0BkskzsH0GO7GrND0wGlTM1ioUe3v0dGYx9ZJH0Aro/YyA8fqQ5EyIKDRjZojJYMFTflw== - dependencies: - ci-info "^3.0.0" - -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= - -strict-uri-encode@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" - integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= - -string-hash@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" - integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2", string-width@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" - integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string_decoder@^1.0.0, string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -stringify-entities@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-3.1.0.tgz#b8d3feac256d9ffcc9fa1fefdcf3ca70576ee903" - integrity sha512-3FP+jGMmMV/ffZs86MoghGqAoqXAdxLrJP4GUdrDN1aIScYih5tuIO3eF4To5AJZ79KDZ8Fpdy7QJnK8SsL1Vg== - dependencies: - character-entities-html4 "^1.0.0" - character-entities-legacy "^1.0.0" - xtend "^4.0.0" - -stringify-package@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.1.tgz#e5aa3643e7f74d0f28628b72f3dad5cecfc3ba85" - integrity sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg== - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-bom-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" - integrity sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI= - -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" - integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= - dependencies: - get-stdin "^4.0.1" - -strip-indent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -style-resources-loader@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/style-resources-loader/-/style-resources-loader-1.4.1.tgz#87f520e6c8120a71e756726c1c53a78c544ca7db" - integrity sha512-UaAoQXq20relw6B633z4QZDxDyW7gevTt1e0y3MZtzdZfnvB90UL658czAgNc609Y7Kn5ErdthK9bSVhnykBUA== - dependencies: - glob "^7.1.6" - loader-utils "^2.0.0" - schema-utils "^3.0.0" - -style-to-object@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -svg-tags@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" - integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= - -svgo@^1.0.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/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" - -tabbable@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-5.2.0.tgz#4fba60991d8bb89d06e5d9455c92b453acf88fb2" - integrity sha512-0uyt8wbP0P3T4rrsfYg/5Rg3cIJ8Shl1RJ54QMqYxm1TLdWqJD1u6+RQjr2Lor3wmfT7JRHkirIwy99ydBsyPg== - -table@^6.0.9: - version "6.7.1" - resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" - integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== - dependencies: - ajv "^8.0.1" - lodash.clonedeep "^4.5.0" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.0" - strip-ansi "^6.0.0" - -tapable@^1.0.0, tapable@^1.0.0-beta.5, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - -tar-fs@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.0.tgz#677700fc0c8b337a78bee3623fdc235f21d7afad" - integrity sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA== - dependencies: - chownr "^1.1.1" - mkdirp "^0.5.1" - pump "^3.0.0" - tar-stream "^2.0.0" - -tar-fs@^2.0.0, tar-fs@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/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.0.0, tar-stream@^2.1.4: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" - integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== - 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@^6.0.2: - version "6.1.0" - resolved "https://registry.yarnpkg.com/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" - -terser-webpack-plugin@^1.4.3: - version "1.4.5" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" - integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^4.0.0" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser-webpack-plugin@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz#28daef4a83bd17c1db0297070adc07fc8cfc6a9a" - integrity sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ== - dependencies: - cacache "^15.0.5" - find-cache-dir "^3.3.1" - jest-worker "^26.5.0" - p-limit "^3.0.2" - schema-utils "^3.0.0" - serialize-javascript "^5.0.1" - source-map "^0.6.1" - terser "^5.3.4" - webpack-sources "^1.4.3" - -terser@^4.1.2, terser@^4.6.13, terser@^4.6.3: - version "4.8.0" - resolved "https://registry.yarnpkg.com/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.3.4: - version "5.7.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.0.tgz#a761eeec206bc87b605ab13029876ead938ae693" - integrity sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g== - 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.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" - integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -theme-colors@^0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/theme-colors/-/theme-colors-0.0.5.tgz#88f91ccf78b5bc17fa53ee59f38b166395fedce6" - integrity sha512-EAxGOASXbsrhcaFxEWsCRZb29sHhII/cs8a+Cn3a3AI/FT9uCqNM8rMQBf10jtgqIdl8kxg2rQXz5I2JLHuplA== - -thread-loader@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/thread-loader/-/thread-loader-3.0.4.tgz#c392e4c0241fbc80430eb680e4886819b504a31b" - integrity sha512-ByaL2TPb+m6yArpqQUZvP+5S1mZtXsEP7nWKKlAUTm7fCml8kB5s1uI3+eHRP2bk5mVYfRSBI7FFf+tWEyLZwA== - dependencies: - json-parse-better-errors "^1.0.2" - loader-runner "^4.1.0" - loader-utils "^2.0.0" - neo-async "^2.6.2" - schema-utils "^3.0.0" - -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through2@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/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.6, through@^2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -time-fix-plugin@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/time-fix-plugin/-/time-fix-plugin-2.0.7.tgz#4ba70ae2e40cedf34dabe505eda7b71b1b244f50" - integrity sha512-uVFet1LQToeUX0rTcSiYVYVoGuBpc8gP/2jnlUzuHMHe+gux6XLsNzxLUweabMwiUj5ejhoIMsUI55nVSEa/Vw== - -timers-browserify@^2.0.4: - version "2.0.12" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== - dependencies: - setimmediate "^1.0.4" - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= - -tiny-emitter@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" - integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - -token-stream@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-1.0.0.tgz#cc200eab2613f4166d27ff9afc7ca56d49df6eb4" - integrity sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ= - -totalist@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" - integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== - -trim-newlines@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" - integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= - -trim-newlines@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" - integrity sha1-n5up2e+odkw4dpi8v+sshI8RrbM= - -trough@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" - integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== - -ts-loader@^8.0.17: - version "8.2.0" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-8.2.0.tgz#6a3aeaa378aecda543e2ed2c332d3123841d52e0" - integrity sha512-ebXBFrNyMSmbWgjnb3WBloUBK+VSx1xckaXsMXxlZRDqce/OPdYBVN5efB0W3V0defq0Gcy4YuzvPGqRgjj85A== - dependencies: - chalk "^4.1.0" - enhanced-resolve "^4.0.0" - loader-utils "^2.0.0" - micromatch "^4.0.0" - semver "^7.3.4" - -ts-map@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/ts-map/-/ts-map-1.0.3.tgz#1c4d218dec813d2103b7e04e4bcf348e1471c1ff" - integrity sha512-vDWbsl26LIcPGmDpoVzjEP6+hvHZkBkLW7JpvwbCv/5IYPJlsbzCVXY3wsCeAxAUeTclNOUZxnLdGh3VBD/J6w== - -ts-pnp@^1.1.6: - version "1.2.0" - resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" - integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== - -tsconfig-paths@^3.9.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/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.8.1, tslib@^1.9.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.0.1, tslib@^2.0.3: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c" - integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w== - -tslib@^2.2.0, tslib@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e" - integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== - -tsutils@^3.17.1, tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-fest@^0.18.0: - version "0.18.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" - integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^0.8.0, type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -typescript@^4.2.4, typescript@~4.2: - version "4.2.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.4.tgz#8610b59747de028fda898a8aef0e103f156d0961" - integrity sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg== - -ua-parser-js@^0.7.28: - version "0.7.28" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" - integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g== - -ufo@^0.6.10, ufo@^0.6.6: - version "0.6.11" - resolved "https://registry.yarnpkg.com/ufo/-/ufo-0.6.11.tgz#69311ed4abc8ab671c83754b79ce0d396fea1075" - integrity sha512-Yu7TJThwlr23peOkX/+hm6LfkyBs+eDWV880468PTrjKBKjjsNWFFwIuOqDfmXngRo9TZ4+twFYueRH0OLl0Gw== - -ufo@^0.7.5: - version "0.7.5" - resolved "https://registry.yarnpkg.com/ufo/-/ufo-0.7.5.tgz#5d5b2174747c0072edd30501994c8ac4ad2e77ea" - integrity sha512-FGG+EgguC1oz5dTE1JptPWCyj6Z9mYpwvZY8PTu9Vh/Aoy+Mj9cpeQ3gg4kyEMDbMrH+lTYiw7bomG58B8X7Kg== - -ufo@^0.7.7: - version "0.7.7" - resolved "https://registry.yarnpkg.com/ufo/-/ufo-0.7.7.tgz#0062f9e5e790819b0fb23ca24d7c63a4011c036a" - integrity sha512-N25aY3HBkJBnahm+2l4JRBBrX5I+JPakF/tDHYDTjd3wUR7iFLdyiPhj8mBwBz21v728BKwM9L9tgBfCntgdlw== - -uglify-js@^3.1.4, uglify-js@^3.5.1: - version "3.13.6" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.6.tgz#6815ac7fdd155d03c83e2362bb717e5b39b74013" - integrity sha512-rRprLwl8RVaS+Qvx3Wh5hPfPBn9++G6xkGlUupya0s5aDmNjI7z3lnRLB3u7sN4OmbB0pWgzhM9BEJyiWAwtAA== - -unbox-primitive@^1.0.0, unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== - dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" - which-boxed-primitive "^1.0.2" - -unbzip2-stream@1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz#d156d205e670d8d8c393e1c02ebd506422873f6a" - integrity sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg== - dependencies: - buffer "^5.2.1" - through "^2.3.8" - -unfetch@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.2.0.tgz#7e21b0ef7d363d8d9af0fb929a5555f6ef97a3be" - integrity sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA== - -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== - -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" - integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== - -unicode-property-aliases-ecmascript@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" - integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== - -unified@^9.2.1: - version "9.2.1" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - -unist-builder@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436" - integrity sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw== - -unist-util-generated@^1.0.0: - version "1.1.6" - resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.6.tgz#5ab51f689e2992a472beb1b35f2ce7ff2f324d4b" - integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg== - -unist-util-is@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47" - integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== - -unist-util-remove@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/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@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/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@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/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.0, unist-util-visit@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/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" - -universal-cookie@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/universal-cookie/-/universal-cookie-4.0.4.tgz#06e8b3625bf9af049569ef97109b4bb226ad798d" - integrity sha512-lbRVHoOMtItjWbM7TwDLdl8wug7izB0tq3/YVKhT/ahB4VDvWMyvnADfnJI8y6fSvsjh51Ix7lTGC6Tn4rMPhw== - dependencies: - "@types/cookie" "^0.3.3" - cookie "^0.4.0" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -unstorage@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/unstorage/-/unstorage-0.1.6.tgz#29b6ade8071eb312115544657ee36b9de058d58d" - integrity sha512-AqPaH5sVw9KJWCTuiclCVss62IHR8qjJJHUKXNAGhVbc018UF7C4leTF0ICuM1L5pga91aRYUdK+wF9pFzxBDQ== - dependencies: - anymatch "^3.1.1" - chokidar "^3.5.1" - h3 "^0.2.5" - ioredis "^4.26.0" - listhen "^0.1.4" - mri "^1.1.6" - ohmyfetch "^0.1.8" - ufo "^0.6.10" - ws "^7.4.4" - -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - -upath@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b" - integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== - -upper-case@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" - integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url-loader@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" - integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== - dependencies: - loader-utils "^2.0.0" - mime-types "^2.1.27" - schema-utils "^3.0.0" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util.promisify@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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" - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -utila@~0.4: - version "0.4.0" - resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -v8-compile-cache@^2.0.3, v8-compile-cache@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/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" - -vary@^1.1.2, vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - -vfile-location@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c" - integrity sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA== - -vfile-message@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/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@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/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" - -vite-plugin-components@^0.12.2: - version "0.12.2" - resolved "https://registry.yarnpkg.com/vite-plugin-components/-/vite-plugin-components-0.12.2.tgz#3afc97772cfad0bd61aa709924bf06e12abe9cf1" - integrity sha512-ecGCqEQMEwPw556WfdbRwbDsdGtBWkjSkuOXw5sKbgaZzVSlybOfrXhGjiYEatR13KCUxTHzioU2eOLu1tpWVQ== - dependencies: - debug "^4.3.2" - fast-glob "^3.2.6" - magic-string "^0.25.7" - minimatch "^3.0.4" - -vite-plugin-icons@^0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/vite-plugin-icons/-/vite-plugin-icons-0.6.4.tgz#1e9e9a5b310f6b596e6c564a8367735e9a65de02" - integrity sha512-NLIUZNpeJV4fH314fn+iI5wxvKOgx2yDzVz6jqaKUyNIi41cv+Ud8J+dueCHVZSxepCIQmMYeCayaPEuhhetbg== - dependencies: - "@iconify/json-tools" "^1.0.10" - vue-template-es2015-compiler "^1.9.1" - -vite-plugin-vue2@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/vite-plugin-vue2/-/vite-plugin-vue2-1.5.1.tgz#3b1bd0b1ccccfe2a4be272b3b35cd46527a6d9ff" - integrity sha512-z7TUaSL3f2XvQWU1YmpxBDyPWwIRwH/6O4RTqsZKTzPfRWpCT2r9Ap84C4+YS1MmbPlrYjgWplCIdJd7I0Vr+A== - dependencies: - "@babel/core" "^7.11.6" - "@babel/parser" "^7.13.10" - "@babel/plugin-transform-typescript" "^7.13.0" - "@rollup/pluginutils" "^4.1.0" - "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1" - "@vue/babel-preset-jsx" "^1.2.4" - "@vue/component-compiler-utils" "^3.2.0" - babel-preset-env "^1.7.0" - consolidate "^0.16.0" - debug "^4.3.1" - fs-extra "^9.0.1" - hash-sum "^2.0.0" - magic-string "^0.25.7" - prettier "^2.0.5" - querystring "^0.2.0" - rollup "^2.35.1" - slash "^3.0.0" - vue-template-compiler "^2.6.11" - vue-template-es2015-compiler "^1.9.1" - -vite-plugin-windicss@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/vite-plugin-windicss/-/vite-plugin-windicss-1.2.0.tgz#6b21e76f3aae1cd2f71c548c4bfe8d87b4328ad0" - integrity sha512-3teAmQHCDDDcy7On5fOj1sYTRVo8zAwJJd4SOapeGI7EuEzO2fHy6oDS6sPXVUnstbfoPbvrng1xvc3VAqI+sg== - dependencies: - "@windicss/plugin-utils" "1.2.0" - chalk "^4.1.1" - debug "^4.3.2" - windicss "^3.1.3" - -vite@^2.3.4: - version "2.3.6" - resolved "https://registry.yarnpkg.com/vite/-/vite-2.3.6.tgz#1f7cfde88a51a802d69000c7bac85d481c2e871c" - integrity sha512-fsEpNKDHgh3Sn66JH06ZnUBnIgUVUtw6ucDhlOj1CEqxIkymU25yv1/kWDPlIjyYHnalr0cN6V+zzUJ+fmWHYw== - dependencies: - esbuild "^0.12.5" - postcss "^8.2.10" - resolve "^1.19.0" - rollup "^2.38.5" - optionalDependencies: - fsevents "~2.3.1" - -vite@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/vite/-/vite-2.4.1.tgz#2e48b8dbfc69e4edbf7f4d1c0798d621585cb8da" - integrity sha512-4BpKRis9uxIqPfIEcJ18LTBsamqnDFxTx45CXwagHjNltHa6PFEvf8Pe6OpgIHb0OyWT30OXOSSQvdOaX4OBiQ== - dependencies: - esbuild "^0.12.8" - postcss "^8.3.5" - resolve "^1.20.0" - rollup "^2.38.5" - optionalDependencies: - fsevents "~2.3.2" - -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -void-elements@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" - integrity sha1-YU9/v42AHwu18GYfWy9XhXUOTwk= - -vue-client-only@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/vue-client-only/-/vue-client-only-2.1.0.tgz#1a67a47b8ecacfa86d75830173fffee3bf8a4ee3" - integrity sha512-vKl1skEKn8EK9f8P2ZzhRnuaRHLHrlt1sbRmazlvsx6EiC3A8oWF8YCBrMJzoN+W3OnElwIGbVjsx6/xelY1AA== - -vue-demi@*: - version "0.9.0" - resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.9.0.tgz#b30da61450079d60a132d7aaf9e86d1949e8445e" - integrity sha512-f8vVUpC726YXv99fF/3zHaw5CUYbP5H/DVWBN+pncXM8P2Uz88kkffwj9yD7MukuVzPICDHNrgS3VC2ursaP7g== - -vue-demi@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.10.0.tgz#e21cad49e4aee210093de658684f0ba49ae404f1" - integrity sha512-SlVtIkcCVwbSVAiWTk3ixcDF6bRjgPP5nKGjSx4HXmieEUDi2oVQJUQxoFmEOV21js7TKvclzEUhInDEkg0NDQ== - -vue-docgen-api@^4.40.0: - version "4.40.0" - resolved "https://registry.yarnpkg.com/vue-docgen-api/-/vue-docgen-api-4.40.0.tgz#18a6b25359a2340c051df612ad73f0c7714cb0d1" - integrity sha512-wQKnLILHJpJjaWGfQ4gvlg9yvI5I+qgB0YppPZUmz6PEpqaFZDoBejDfCjmpM9Hzf8OB9N0zyRmgvT4UxP3Ifg== - dependencies: - "@babel/parser" "^7.13.12" - "@babel/types" "^7.13.12" - "@vue/compiler-dom" "^3.0.7" - "@vue/compiler-sfc" "^3.0.7" - ast-types "0.14.2" - hash-sum "^1.0.2" - lru-cache "^4.1.5" - pug "^3.0.2" - recast "0.20.4" - ts-map "^1.0.3" - vue-inbrowser-compiler-utils "^4.40.0" - -vue-eslint-parser@^7.1.1, vue-eslint-parser@^7.6.0: - version "7.6.0" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.6.0.tgz#01ea1a2932f581ff244336565d712801f8f72561" - integrity sha512-QXxqH8ZevBrtiZMZK0LpwaMfevQi9UL7lY6Kcp+ogWHC88AuwUPwwCIzkOUc1LR4XsYAt/F9yHXAB/QoD17QXA== - dependencies: - debug "^4.1.1" - eslint-scope "^5.0.0" - eslint-visitor-keys "^1.1.0" - espree "^6.2.1" - esquery "^1.4.0" - lodash "^4.17.15" - -vue-hot-reload-api@^2.3.0: - version "2.3.4" - resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2" - integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog== - -vue-i18n@^8.24.5: - version "8.24.5" - resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-8.24.5.tgz#7127a666d5be2199be69be39e439a419a90ff931" - integrity sha512-p8W5xOmniuZ8fj76VXe0vBL3bRWVU87jHuC/v8VwmhKVH2iMQsKnheB1U+umxDBqC/5g9K+NwzokepcLxnBAVQ== - -vue-inbrowser-compiler-utils@^4.40.0: - version "4.40.0" - resolved "https://registry.yarnpkg.com/vue-inbrowser-compiler-utils/-/vue-inbrowser-compiler-utils-4.40.0.tgz#9ba62e66d63461b47877655f45a4e86975e5b2e5" - integrity sha512-uJVt2fGpfs3g1x4zQWzbv7eFmI7PnoYTagZdWEOQIbqbKXJEJW3S22NIvImfW5DYVwjpGFPUpakK1R0TE3IE3A== - dependencies: - camelcase "^5.3.1" - -vue-loader@^15.9.7: - version "15.9.7" - resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.7.tgz#15b05775c3e0c38407679393c2ce6df673b01044" - integrity sha512-qzlsbLV1HKEMf19IqCJqdNvFJRCI58WNbS6XbPqK13MrLz65es75w392MSQ5TsARAfIjUw+ATm3vlCXUJSOH9Q== - dependencies: - "@vue/component-compiler-utils" "^3.1.0" - hash-sum "^1.0.2" - loader-utils "^1.1.0" - vue-hot-reload-api "^2.3.0" - vue-style-loader "^4.1.0" - -vue-meta@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/vue-meta/-/vue-meta-2.4.0.tgz#a419fb4b4135ce965dab32ec641d1989c2ee4845" - integrity sha512-XEeZUmlVeODclAjCNpWDnjgw+t3WA6gdzs6ENoIAgwO1J1d5p1tezDhtteLUFwcaQaTtayRrsx7GL6oXp/m2Jw== - dependencies: - deepmerge "^4.2.2" - -vue-no-ssr@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/vue-no-ssr/-/vue-no-ssr-1.1.1.tgz#875f3be6fb0ae41568a837f3ac1a80eaa137b998" - integrity sha512-ZMjqRpWabMPqPc7gIrG0Nw6vRf1+itwf0Itft7LbMXs2g3Zs/NFmevjZGN1x7K3Q95GmIjWbQZTVerxiBxI+0g== - -vue-plausible@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/vue-plausible/-/vue-plausible-1.1.4.tgz#c6fc059f081a7b7d7820ad9dcb504d1cf6a3a892" - integrity sha512-Br7pAxCrnr4t8X6ByOFeMPiyoJAD1dpUyOyh3pEyy0P7Gkt4A7ps2wvDioNmKw6wuWijaMMwU9TCuDmJm9RdTg== - dependencies: - plausible-tracker "^0.3.1" - -vue-router@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.5.1.tgz#edf3cf4907952d1e0583e079237220c5ff6eb6c9" - integrity sha512-RRQNLT8Mzr8z7eL4p7BtKvRaTSGdCbTy2+Mm5HTJvLGYSSeG9gDzNasJPP/yOYKLy+/cLG/ftrqq5fvkFwBJEw== - -vue-server-renderer@2.6.14, vue-server-renderer@^2.6.13: - version "2.6.14" - resolved "https://registry.yarnpkg.com/vue-server-renderer/-/vue-server-renderer-2.6.14.tgz#c8bffff152df6b47b858818ef8d524d2fc351654" - integrity sha512-HifYRa/LW7cKywg9gd4ZtvtRuBlstQBao5ZCWlg40fyB4OPoGfEXAzxb0emSLv4pBDOHYx0UjpqvxpiQFEuoLA== - dependencies: - chalk "^1.1.3" - hash-sum "^1.0.2" - he "^1.1.0" - lodash.template "^4.5.0" - lodash.uniq "^4.5.0" - resolve "^1.2.0" - serialize-javascript "^3.1.0" - source-map "0.5.6" - -vue-style-loader@^4.1.0, vue-style-loader@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.3.tgz#6d55863a51fa757ab24e89d9371465072aa7bc35" - integrity sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg== - dependencies: - hash-sum "^1.0.2" - loader-utils "^1.0.2" - -vue-template-compiler@2.6.14, vue-template-compiler@^2.6.11, vue-template-compiler@^2.6.12, vue-template-compiler@^2.6.13, vue-template-compiler@^2.6.14: - version "2.6.14" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz#a2f0e7d985670d42c9c9ee0d044fed7690f4f763" - integrity sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g== - dependencies: - de-indent "^1.0.2" - he "^1.1.0" - -vue-template-es2015-compiler@^1.9.0, vue-template-es2015-compiler@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" - integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== - -"vue3-router@npm:vue-router@next": - version "4.0.6" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.0.6.tgz#91750db507d26642f225b0ec6064568e5fe448d6" - integrity sha512-Y04llmK2PyaESj+N33VxLjGCUDuv9t4q2OpItEGU7POZiuQZaugV6cJpE6Qm1sVFtxufodLKN2y2dQl9nk0Reg== - -"vue3@npm:vue@next": - version "3.0.11" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.0.11.tgz#c82f9594cbf4dcc869241d4c8dd3e08d9a8f4b5f" - integrity sha512-3/eUi4InQz8MPzruHYSTQPxtM3LdZ1/S/BvaU021zBnZi0laRUyH6pfuE4wtUeLvI8wmUNwj5wrZFvbHUXL9dw== - dependencies: - "@vue/compiler-dom" "3.0.11" - "@vue/runtime-dom" "3.0.11" - "@vue/shared" "3.0.11" - -vue@^2.6.13: - version "2.6.13" - resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.13.tgz#94b2c1b31fddf1dfcc34f28ec848ba8f01ea4c5b" - integrity sha512-O+pAdJkce1ooYS1XyoQtpBQr9An+Oys3w39rkqxukVO3ZD1ilYJkWBGoRuadiQEm2LLJnCL2utV4TMSf52ubjw== - -vue@^2.6.14: - version "2.6.14" - resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.14.tgz#e51aa5250250d569a3fbad3a8a5a687d6036e235" - integrity sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ== - -vuex@^3.6.2: - version "3.6.2" - resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.6.2.tgz#236bc086a870c3ae79946f107f16de59d5895e71" - integrity sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw== - -watchpack-chokidar2@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" - integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== - dependencies: - chokidar "^2.1.8" - -watchpack@^1.7.4: - version "1.7.5" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" - integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== - dependencies: - graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.1" - -watchpack@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.2.0.tgz#47d78f5415fe550ecd740f99fe2882323a58b1ce" - integrity sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA== - dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" - -web-namespaces@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec" - integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== - -web-streams-polyfill@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.0.3.tgz#f49e487eedeca47a207c1aee41ee5578f884b42f" - integrity sha512-d2H/t0eqRNM4w2WvmTdoeIvzAUSpK7JmATB8Nr2lb7nQ9BTIJVjbQ/TRFVEh2gUH1HwclPdoPtfMoFfetXaZnA== - -webpack-bundle-analyzer@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.2.tgz#39898cf6200178240910d629705f0f3493f7d666" - integrity sha512-PIagMYhlEzFfhMYOzs5gFT55DkUdkyrJi/SxJp8EF3YMWhS+T9vvs2EoTetpk5qb6VsCq02eXTlRDOydRhDFAQ== - dependencies: - acorn "^8.0.4" - acorn-walk "^8.0.0" - chalk "^4.1.0" - commander "^6.2.0" - gzip-size "^6.0.0" - lodash "^4.17.20" - opener "^1.5.2" - sirv "^1.0.7" - ws "^7.3.1" - -webpack-dev-middleware@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.0.0.tgz#0abe825275720e0a339978aea5f0b03b140c1584" - integrity sha512-9zng2Z60pm6A98YoRcA0wSxw1EYn7B7y5owX/Tckyt9KGyULTkLtiavjaXlWqOMkM0YtqGgL3PvMOFgyFLq8vw== - dependencies: - colorette "^1.2.2" - mem "^8.1.1" - memfs "^3.2.2" - mime-types "^2.1.31" - range-parser "^1.2.1" - schema-utils "^3.0.0" - -webpack-hot-middleware@^2.25.0: - version "2.25.0" - resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.25.0.tgz#4528a0a63ec37f8f8ef565cf9e534d57d09fe706" - integrity sha512-xs5dPOrGPCzuRXNi8F6rwhawWvQQkeli5Ro48PRuQh8pYPCPmNnltP9itiUPT4xI8oW+y0m59lyyeQk54s5VgA== - dependencies: - ansi-html "0.0.7" - html-entities "^1.2.0" - querystring "^0.2.0" - strip-ansi "^3.0.0" - -webpack-node-externals@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz#1a3407c158d547a9feb4229a9e3385b7b60c9917" - integrity sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ== - -webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/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-virtual-modules@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.4.3.tgz#cd597c6d51d5a5ecb473eea1983a58fa8a17ded9" - integrity sha512-5NUqC2JquIL2pBAAo/VfBP6KuGkHIZQXW/lNKupLPfhViwh8wNsu0BObtl09yuKZszeEUfbXz8xhrHvSG16Nqw== - -webpack@^4.46.0: - version "4.46.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" - integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.5.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.7.4" - webpack-sources "^1.4.1" - -webpackbar@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/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" - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - -widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== - dependencies: - string-width "^4.0.0" - -windicss-analysis@^0.3.4: - version "0.3.4" - resolved "https://registry.yarnpkg.com/windicss-analysis/-/windicss-analysis-0.3.4.tgz#52d0d4d542f42b57d69ae0d38e3fefc1ecc0ea6a" - integrity sha512-3GbzXNQ53UuyMAnrdSw6qaB6+mR8sZziRqPo/ZUamD9L8aQu+paw2NFuJ4CF/FLfPZo+kjUZika7e/XGHCf9kQ== - dependencies: - "@windicss/plugin-utils" "^1.1.1" - cac "^6.7.3" - connect "^3.7.0" - declass "^0.0.1" - fast-glob "^3.2.6" - fs-extra "^10.0.0" - sirv "^1.0.12" - -windicss-webpack-plugin@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/windicss-webpack-plugin/-/windicss-webpack-plugin-1.2.4.tgz#c799370c307af48f1b7dd38b32fdce551a250f3d" - integrity sha512-pARSqzaQUTVuG2Rj2zRuILTZ/KYiOvDNyHuG2/8H5/110QnmVItMqGbfRfuJp7nZVDSivKzOkfeYxgOYCZVSpg== - dependencies: - "@windicss/plugin-utils" "1.2.0" - debug "^4.3.1" - loader-utils "^2.0.0" - magic-string "^0.25.7" - upath "^2.0.1" - webpack-virtual-modules "^0.4.3" - windicss "3.1.4" - -windicss@3.1.4, windicss@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/windicss/-/windicss-3.1.4.tgz#557eaf8e3c08064a309ccb5d887c82c4bce25069" - integrity sha512-3RBcANxdOy/n4dLVT8+0X409sGI+piO06ARbQ8RncxGuYgdw5Ip3hrhGIYajH67lV+tHc7xNVGxj73amOC9N0g== - -windicss@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/windicss/-/windicss-3.1.3.tgz#a4b80af48bdd5d4be13520f700b497af455df700" - integrity sha512-l7fpoba2LY9AYRy4UgcuOpbPsed8UsbpEQYUVWRR1wdAwiKxK6bGIMfpiKJtjPAPdh0GOGUqr6KJar0EDZSxzg== - -with@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/with/-/with-7.0.2.tgz#ccee3ad542d25538a7a7a80aad212b9828495bac" - integrity sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w== - dependencies: - "@babel/parser" "^7.9.6" - "@babel/types" "^7.9.6" - assert-never "^1.2.1" - babel-walk "3.0.0-canary-5" - -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= - -workbox-cdn@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/workbox-cdn/-/workbox-cdn-5.1.4.tgz#dbd8acee70b1978be70106207590bbb76af935cf" - integrity sha512-04gM3mi8QGutokkSaA9xunVfjURnLbo9TTWyi8+pSDCEW5cD8u5GbJiliLK1vB9CShk/9OY1UDfW+XcmD+d6KQ== - -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrap-ansi@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@^2.0.0: - version "2.4.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" - integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - -write-json-file@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/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" - -ws@7.4.6, ws@^7.4.4: - version "7.4.6" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" - integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== - -ws@^7.3.1: - version "7.4.5" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.5.tgz#a484dd851e9beb6fdb420027e3885e8ce48986c1" - integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g== - -x-is-array@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/x-is-array/-/x-is-array-0.1.0.tgz#de520171d47b3f416f5587d629b89d26b12dc29d" - integrity sha1-3lIBcdR7P0FvVYfWKbidJrEtwp0= - -xss@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.9.tgz#3ffd565571ff60d2e40db7f3b80b4677bec770d2" - integrity sha512-2t7FahYnGJys6DpHLhajusId7R0Pm2yTmuL0GV9+mV0ZlaLSnb2toBmppATfg5sWIhZQGlsTLoecSzya+l4EAQ== - dependencies: - commander "^2.20.3" - cssfilter "0.0.10" - -xtend@^4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -xxhashjs@^0.2.1, xxhashjs@~0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/xxhashjs/-/xxhashjs-0.2.2.tgz#8a6251567621a1c46a5ae204da0249c7f8caa9d8" - integrity sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw== - dependencies: - cuint "^0.2.2" - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@^1.10.0, yaml@^1.7.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/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@^20.2.2, yargs-parser@^20.2.3: - version "20.2.7" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" - integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== - -yargs@^13.2.4: - version "13.3.2" - resolved "https://registry.yarnpkg.com/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@^16.0.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yauzl@^2.10.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" - integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==