diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 640c3cd..aef4aca 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -1,26 +1,32 @@ -name: Deploy GitHub Pages +name: Deploy QierPlayer Docs to GitHub Pages on: push: branches: - master + workflow_dispatch: jobs: - build-and-deploy: - runs-on: macos-latest + # 构建工作 + build: + runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: persist-credentials: false - + fetch-depth: 0 # 如果未启用 lastUpdated,则不需要 + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 18 + cache: yarn # 或 pnpm / npm - name: Build working-directory: ./website run: yarn && yarn build - - name: Deploy uses: JamesIves/github-pages-deploy-action@4.1.4 with: token: ${{ secrets.GITHUB_TOKEN }} branch: gh-pages - folder: website/dist + folder: website/docs/.vitepress/dist diff --git a/.prettierignore b/.prettierignore index a456538..bdb89be 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,3 +1,4 @@ /**/node_modules /**/build /**/dist +/**/website diff --git a/.vscode/settings.json b/.vscode/settings.json index 1d6f5d1..c8665ed 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -14,8 +14,8 @@ "editor.formatOnSave": true, "editor.codeActionsOnSave": { - "source.fixAll.eslint": true, - "source.fixAll.stylelint": true + "source.fixAll.eslint": "explicit", + "source.fixAll.stylelint": "explicit" }, "[javascript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" diff --git a/README-zh-Cn.md b/README-zh-Cn.md index 0418b56..bfacae5 100644 --- a/README-zh-Cn.md +++ b/README-zh-Cn.md @@ -49,12 +49,6 @@ npm install --save qier-player yarn add qier-player ``` -当然你也可以使用 CDN 服务: - -```html - -``` - ### 使用 ```js @@ -65,14 +59,3 @@ const player = new Player({ }); player.mount('#app'); ``` - -## 生态 - -| Name | version | gzip size | -| --- | --- | --- | -| [qier-player-for-react]() | [![npm](https://img.shields.io/npm/v/@qier-player/react?logo=npm&style=flat-square)](https://www.npmjs.com/package/@qier-player/react) | [![gzip size](https://img.shields.io/bundlephobia/minzip/@qier-player/react?label=gzip%20size&style=flat-square)](https://unpkg.com/@qier-player/react@2.0.1/dist/umd/index.min.js) | - -## Future features - -- `@qier-player/vue` for Vue developer. -- `@qier-player/danmaku` plungin. diff --git a/README.md b/README.md index e554bcb..b8bc7ac 100644 --- a/README.md +++ b/README.md @@ -49,12 +49,6 @@ npm install --save qier-player yarn add qier-player ``` -Of course you can also use CDN service: - -```html - -``` - ### Use ```js @@ -65,14 +59,3 @@ const player = new Player({ }); player.mount('#app'); ``` - -## Ecosystem - -| Name | version | gzip size | -| --- | --- | --- | -| [qier-player-for-react]() | [![npm](https://img.shields.io/npm/v/@qier-player/react?logo=npm&style=flat-square)](https://www.npmjs.com/package/@qier-player/react) | [![gzip size](https://img.shields.io/bundlephobia/minzip/@qier-player/react?label=gzip%20size&style=flat-square)](https://unpkg.com/@qier-player/react@2.0.1/dist/umd/index.min.js) | - -## Future features - -- `@qier-player/vue` for Vue developer. -- `@qier-player/danmaku` plungin. diff --git a/fixtures/qier-player-danmaku/index.js b/fixtures/qier-player-danmaku/index.js index 22c74b6..3487527 100644 --- a/fixtures/qier-player-danmaku/index.js +++ b/fixtures/qier-player-danmaku/index.js @@ -145,7 +145,8 @@ window.onload = function () { const genDanmu = (time, danmu) => { if (!danmu) return; setTimeout(() => { - danmaku.add(danmu, 'fixed-top'); + // danmaku.add(danmu, 'fixed-top'); + danmaku.add(danmu, 'rolling'); }, time); }; diff --git a/packages/qier-player-danmaku/package.json b/packages/qier-player-danmaku/package.json index 0bb7cfc..b0592a4 100644 --- a/packages/qier-player-danmaku/package.json +++ b/packages/qier-player-danmaku/package.json @@ -4,7 +4,7 @@ "description": "Powerful danmaku, support many features.", "main": "dist/es/index.js", "module": "dist/es/index.js", - "types": "dist/es/index.d.ts", + "typings": "dist/es/index.d.ts", "author": "vortesnail <1091331061@qq.com>", "files": [ "dist" diff --git a/packages/qier-player-danmaku/src/index.ts b/packages/qier-player-danmaku/src/index.ts index 2d16e9d..44ef34b 100644 --- a/packages/qier-player-danmaku/src/index.ts +++ b/packages/qier-player-danmaku/src/index.ts @@ -1,3 +1,4 @@ import './style/index.scss'; export { Danmaku as default } from './main/danmaku'; +export * from './main/danmaku'; diff --git a/packages/qier-player-danmaku/src/main/types.ts b/packages/qier-player-danmaku/src/main/types.ts index 36a980f..5b260b5 100644 --- a/packages/qier-player-danmaku/src/main/types.ts +++ b/packages/qier-player-danmaku/src/main/types.ts @@ -8,7 +8,7 @@ export interface DanmakuOptions { duration: number; zoom: number; - eventProxyElement?: HTMLHtmlElement; // 弹幕交互的事件代理 dom 元素 + eventProxyElement?: HTMLElement; // 弹幕交互的事件代理 dom 元素 } export type DanmakuOptionsInit = Partial; diff --git a/packages/qier-player/package.json b/packages/qier-player/package.json index 782ed4c..8640d45 100644 --- a/packages/qier-player/package.json +++ b/packages/qier-player/package.json @@ -4,7 +4,7 @@ "description": "Easy to use and powerful html5 player.", "main": "dist/es/index.js", "module": "dist/es/index.js", - "types": "dist/es/index.d.ts", + "typings": "dist/es/index.d.ts", "author": "vortesnail <1091331061@qq.com>", "files": [ "dist" diff --git a/packages/qier-player/src/main/modules/controller/eles/settings.ts b/packages/qier-player/src/main/modules/controller/eles/settings.ts index e9eeda8..ac410a5 100644 --- a/packages/qier-player/src/main/modules/controller/eles/settings.ts +++ b/packages/qier-player/src/main/modules/controller/eles/settings.ts @@ -56,6 +56,7 @@ class Settings extends DomNode implements IControllerEle { this.items = player.settingItems; this.el.appendChild(Icon.settings()); + // 占位填充弹框和 icon 之间的空白,防止光标移开 icon 弹框就消失 this.stuffing = this.el.appendChild(createEle('div.controller_settings_stuffing')); this.popover = new Popover(this.el, { willChange: 'width, height' }); diff --git a/website/.editorconfig b/website/.editorconfig deleted file mode 100755 index 7e3649a..0000000 --- a/website/.editorconfig +++ /dev/null @@ -1,16 +0,0 @@ -# http://editorconfig.org -root = true - -[*] -indent_style = space -indent_size = 2 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -[*.md] -trim_trailing_whitespace = false - -[Makefile] -indent_style = tab diff --git a/website/.gitignore b/website/.gitignore index e7d7f7d..4770cd2 100644 --- a/website/.gitignore +++ b/website/.gitignore @@ -1,10 +1,7 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - # dependencies /node_modules /npm-debug.log* /yarn-error.log -/package-lock.json # production /dist @@ -12,11 +9,6 @@ # misc .DS_Store -# umi -.umi -.umi-production -.env.local - -# ide -/.vscode -/.idea +# custom ignore +docs/.vitepress/cache +docs/.vitepress/dist diff --git a/website/.prettierignore b/website/.prettierignore deleted file mode 100644 index 7d43fcc..0000000 --- a/website/.prettierignore +++ /dev/null @@ -1,6 +0,0 @@ -**/*.svg -**/*.ejs -**/*.html -package.json -.umi -.umi-production diff --git a/website/.prettierrc b/website/.prettierrc deleted file mode 100644 index 764fbde..0000000 --- a/website/.prettierrc +++ /dev/null @@ -1,11 +0,0 @@ -{ - "singleQuote": true, - "trailingComma": "all", - "printWidth": 120, - "overrides": [ - { - "files": ".prettierrc", - "options": { "parser": "json" } - } - ] -} diff --git a/website/.umirc.ts b/website/.umirc.ts deleted file mode 100644 index 6ac42a9..0000000 --- a/website/.umirc.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { defineConfig } from 'dumi'; -import path from 'path'; - -const prefix = '/qier-player'; - -export default defineConfig({ - title: 'Qier Player', - mode: 'site', - logo: prefix + '/img/logo.svg', - favicon: prefix + '/img/favicon.ico', - base: prefix, - publicPath: prefix + '/', - metas: [ - { - name: 'keywords', - content: 'qier-player, player, h5 player, react, vue', - }, - { - name: 'description', - content: - 'A simple and easy-to-use h5 video player with highly customizable UI and rich features.', - }, - ], - theme: { - '@c-primary': '#0073a1', - '@c-primary-dark': '#0095c7', - }, - styles: [ - `.__dumi-default-dark-auto { display: none !important }`, - `code { - background: #f6f7f9; - color: #454d64 !important; - border: 1px solid #d9d9d9; - border-radius: 4px; - padding-top: 1px !important; - padding-bottom: 1px !important; - }`, - `[data-prefers-color=dark] .markdown *:not(pre) code { - border-color: #434343; - color: #ff7875 !important; - }`, - ], - navs: { - 'en-US': [ - null, - { - title: 'GitHub', - path: 'https://github.com/vortesnail/qier-player', - }, - ], - 'zh-CN': [ - null, - { - title: 'GitHub', - path: 'https://github.com/vortesnail/qier-player', - }, - ], - }, - alias: { - '@Comp': path.resolve(__dirname, './components'), - }, - scripts: [ - { - src: 'https://unpkg.com/react@17.0.2/umd/react.production.min.js', - changeOrigin: true, - }, - { - src: 'https://unpkg.com/react-dom@17.0.2/umd/react-dom.production.min.js', - changeOrigin: true, - }, - ], - externals: { - react: 'window.React', - 'react-dom': 'window.ReactDOM', - }, -}); diff --git a/website/README.md b/website/README.md deleted file mode 100644 index 7562bb7..0000000 --- a/website/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# dumi app - -## Getting Started - -Install dependencies, - -```bash -$ npm i -``` - -Start the dev server, - -```bash -$ npm start -``` - -Build site app, - -```bash -$ npm run build -``` diff --git a/website/components/home/Code.tsx b/website/components/home/Code.tsx deleted file mode 100644 index f575f30..0000000 --- a/website/components/home/Code.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import React from 'react'; -import Highlight, { defaultProps } from 'prism-react-renderer'; - -const CodeBlock = ({ code, language }: any) => ( - - {({ className, style, tokens, getLineProps, getTokenProps }) => ( -
-        {tokens.map((line, i) => (
-          
- {line.map((token, key) => ( - - ))} -
- ))} -
- )} -
-); - -export default CodeBlock; diff --git a/website/components/home/feature.ts b/website/components/home/feature.ts deleted file mode 100644 index df3dcc5..0000000 --- a/website/components/home/feature.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Trans } from './trans'; - -export const featureItems = (locale: 'en-US' | 'zh-CN') => [ - { - id: 0, - url: '/img/customizable.svg', - title: Trans[locale].customizable.title, - des: Trans[locale].customizable.des, - }, - { - id: 1, - url: '/img/responsive.svg', - title: Trans[locale].responsive.title, - des: Trans[locale].responsive.des, - }, - { - id: 2, - url: '/img/features.svg', - title: Trans[locale].features.title, - des: Trans[locale].features.des, - }, -]; diff --git a/website/components/home/index.tsx b/website/components/home/index.tsx deleted file mode 100644 index 9ac9380..0000000 --- a/website/components/home/index.tsx +++ /dev/null @@ -1,133 +0,0 @@ -import React, { useContext, useRef, useEffect } from 'react'; -import Player from 'qier-player'; -import './style.scss'; -import { usePrefersColor, context } from 'dumi/theme'; -import { Trans } from './trans'; -import { featureItems } from './feature'; -import Code from './Code'; - -export const prefix = 'qier-player'; - -const installCode = `npm i qier-player --save -#or -yarn add qier-player`; - -const useCode = `import Player from 'qier-player;' - -const player = new Player({ - src: "https://vortesnail.github.io/qier-player-demo/static/media/video480p.d116ba09.mp4", -}); - -player.mount(document.body);`; - -const Home: any = () => { - document.title = 'Qier Player | A features rich web video player'; - const { locale } = useContext(context); - const [color] = usePrefersColor(); - // const locale = 'en-US'; - // const color = 'light'; - const localStr = locale === 'en-US' ? 'en-US' : 'zh-CN'; - const ref = useRef(null); - - useEffect(() => { - if (ref && ref.current) { - const player = new Player({ - src: 'https://vortesnail.github.io/qier-player-demo/static/media/video480p.d116ba09.mp4', - thumbnail: { - col: 2, - row: 2, - startSecond: 0, - gapSecond: 1, - images: [ - 'thumbnails/T1.jpg', - 'thumbnails/T2.jpg', - 'thumbnails/T3.jpg', - 'thumbnails/T4.jpg', - 'thumbnails/T5.jpg', - ], - }, - }); - player.mount(ref.current); - } - }, []); - - return ( -
-
-
-

{Trans[localStr].title}

-

{Trans[localStr].des}

- -
- -
-
-
-
-
-
-
- {featureItems(locale as any).map((item) => ( -
-
- -
-

{item.title}

-

{item.des}

-
- ))} -
-
-
-
-
-
-

{Trans[localStr].quickStart}

-

{Trans[localStr].install}

- -

{Trans[localStr].use}

- -
-
-

Copyright © 2021 vortesnail ❤️

-
-
- ); -}; - -export default Home; diff --git a/website/components/home/style.scss b/website/components/home/style.scss deleted file mode 100644 index 8663495..0000000 --- a/website/components/home/style.scss +++ /dev/null @@ -1,372 +0,0 @@ -.home-page { - font-size: 14px; - - .banner { - max-width: calc(100% - 80px); - // height: 320px; - margin-right: auto; - margin-left: auto; - - a { - text-decoration: none; - list-style: none; - background-color: transparent; - outline: none; - cursor: pointer; - } - - .content { - position: relative; - margin-top: 5%; - margin-left: 5%; - padding-bottom: 5%; - - .title { - &.dark { - color: rgba(255, 255, 255, 0.85); - } - margin: 0; - color: #333; - font-weight: 800; - font-size: 3.2em; - } - - .description { - width: 40%; - color: #6a7b8c; - font-size: 1.14em; - } - - .buttons { - display: flex; - align-items: center; - margin-top: 5%; - - .btn { - min-width: 120px; - height: 40px; - padding-right: 15px; - padding-left: 15px; - color: #fff; - font-size: 1.14em; - line-height: 40px; - text-align: center; - border: none; - border-radius: 1px; - outline: none; - cursor: pointer; - opacity: 0.8; - transition: all 0.3s; - - a { - transition: all 0.3s; - - &[class='light'] { - color: #fff; - } - - &[class='dark'] { - color: #333; - } - } - } - - .quick-start { - background: linear-gradient(60deg, #0abbed, #0095c7); - box-shadow: 0 8px 10px rgba(10, 187, 237, 0.2); - - &:hover { - opacity: 1; - } - } - - .github { - margin-left: 16px; - - &.light { - background: #5ce7ff; - - & > a { - &[class='light'] { - color: #333; - } - - &[class='dark'] { - color: #fff; - } - } - } - - &.dark { - background: #003754; - - & > a { - &[class='light'] { - color: #333; - } - - &[class='dark'] { - color: #fff; - } - - & > svg { - fill: #fff; - } - } - } - - &:hover { - opacity: 1; - } - - & > a { - display: inline-flex; - align-items: center; - justify-content: space-between; - height: 100%; - - & > svg { - height: 80%; - margin-right: 12px; - transition: all 0.3s; - } - - & > span { - } - } - } - } - - .logo-auto { - position: absolute; - top: -60px; - right: 0; - z-index: -1; - width: 330px; - height: 34%; - - img { - width: 100%; - } - } - } - } - - .features { - position: relative; - box-sizing: border-box; - height: auto; - padding: 32px 40px 0; - - .bg { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 90%; - background: #0abbed; - } - - .white-bg { - position: absolute; - top: 32px; - right: 40px; - left: 40px; - width: calc(100% - 80px); - height: 100%; - background: #fff; - box-shadow: -5px 5px 15px rgb(0, 0, 0, 0.1); - } - - .inner-wrapper { - position: relative; - display: flex; - flex-wrap: wrap; - align-items: flex-start; - box-sizing: border-box; - width: 100%; - padding-top: 50px; - background: #fff; - - .item-wrapper { - display: flex; - flex: 1; - flex-direction: column; - align-items: center; - padding: 0 20px; - - .url { - width: 56px; - } - - .title { - color: #333; - font-size: 2em; - } - - .des { - color: #6a7b8c; - } - } - } - - &.dark { - .bg { - background: #003754; - } - - .white-bg { - background: #0073a1; - } - - .inner-wrapper { - background: #0073a1; - - .item-wrapper { - .title { - color: rgba(255, 255, 255, 0.85); - } - - .des { - color: #afcce7; - } - } - } - } - } - - .player-wrapper { - display: flex; - justify-content: center; - box-sizing: border-box; - width: 100%; - margin-top: 40px; - padding: 40px; - - .container { - max-width: 720px; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07), 0 2px 4px rgba(0, 0, 0, 0.07), - 0 4px 8px rgba(0, 0, 0, 0.07), 0 8px 16px rgba(0, 0, 0, 0.07), - 0 16px 32px rgba(0, 0, 0, 0.07), 0 32px 64px rgba(0, 0, 0, 0.07); - } - } - - .quick-start-wrapper { - margin-bottom: 40px; - padding: 0 40px; - - .title { - font-weight: 600; - font-size: 2em; - } - - .step-des { - font-size: 1.1em; - } - - &.light { - .prism-code { - background: rgba(0, 84, 122, 1) !important; - border-radius: 1px; - - .token-line { - text-shadow: none !important; - } - - .token { - &.function { - color: #32d5fa !important; - } - - &.plain { - color: #32d5fa !important; - } - - &.comment { - color: #858a8b !important; - } - - &.keyword { - color: #13c2c2 !important; - } - - &.string { - color: #13c2c2 !important; - } - - &.operator { - background: transparent !important; - } - } - } - } - - &.dark { - .prism-code { - background: rgba(0, 84, 122, 0.1) !important; - border-radius: 1px; - - .token { - &.function { - color: #0abbed !important; - } - - &.plain { - color: #0abbed !important; - } - - &.comment { - color: #525b5f !important; - } - - &.keyword { - color: #52c41a !important; - } - - &.string { - color: #52c41a !important; - } - - &.operator { - background: transparent !important; - } - } - } - } - } - - .footer { - padding: 40px; - color: rgba(255, 255, 255, 0.85); - background: #18191a; - - .copy-right { - margin: 0; - text-align: center; - } - } -} - -@media screen and (max-width: 520px) { - .home-page { - .banner { - .content { - .title { - font-weight: 800; - font-size: 2em; - } - - .description { - width: 100%; - font-size: 1.14em; - } - - .logo-auto { - img { - display: none; - } - } - } - } - } -} diff --git a/website/components/home/trans.ts b/website/components/home/trans.ts deleted file mode 100644 index 82bab93..0000000 --- a/website/components/home/trans.ts +++ /dev/null @@ -1,44 +0,0 @@ -export const Trans = { - 'en-US': { - title: 'Qier Player - Web Player', - des: 'A simple and easy-to-use h5 video player with highly customizable UI and rich features. Support all mobile devices and responsive in the future.', - start: 'Quick Start →', - github: 'Github', - customizable: { - title: 'Customizable', - des: 'Highly customizable ui, basically every place can be customized and replaced.', - }, - responsive: { - title: 'Responsive', - des: 'Changes in the width of the screen or parent element will present different ui layouts.', - }, - features: { - title: 'More Features', - des: 'Rich functions, basic play, pause, full screen, shortcut keys, and custom function modules', - }, - quickStart: 'Quick Start', - install: 'Step 1: Install npm package or use CDN', - use: 'Step 2: Use it', - }, - 'zh-CN': { - title: 'Qier Player - 现代 Web 播放器', - des: '简单易用的 h5 播放器,UI 高度定制化,功能丰富,在未来支持所有移动设备及响应式。', - start: '快速开始 →', - github: 'Github', - customizable: { - title: '可定制化', - des: '高度可定制的 ui,基本上每个地方都可以定制和替换。', - }, - responsive: { - title: '响应式', - des: '屏幕或父元素的宽度变化会呈现不同的 ui 布局。', - }, - features: { - title: '功能丰富', - des: '功能丰富,基本的播放、暂停,全屏,快捷键,还可以自定义功能模块。', - }, - quickStart: '快速开始', - install: 'Step 1: 安装 npm 包或使用 CDN 服务', - use: 'Step 2: 使用', - }, -}; diff --git a/website/docs/.vitepress/config/en.ts b/website/docs/.vitepress/config/en.ts new file mode 100644 index 0000000..0f162d8 --- /dev/null +++ b/website/docs/.vitepress/config/en.ts @@ -0,0 +1,65 @@ +import { defineConfig, type DefaultTheme } from 'vitepress' + +export const en = defineConfig({ + lang: 'en-US', + description: 'A simple and easy-to-use h5 player with highly customized UI and rich functions', + + themeConfig: { + nav: [ + { + text: 'Guide', + link: '/guide/getting-started', + activeMatch: '/guide/' + }, + { + text: 'API', + link: '/api/parameters', + activeMatch: '/api/' + }, + ], + sidebar: { + '/guide/': { base: '/guide/', items: sidebarGuide() }, + '/api/': { base: '/api/', items: sidebarAPI() }, + }, + editLink: { + pattern: 'https://github.com/vortesnail/qier-player/edit/master/website/docs/:path', + text: 'Edit this page on GitHub' + }, + footer: { + message: 'Released under the MIT License.', + copyright: 'Copyright © 2019-present Vortesnail' + } + } +}) + +function sidebarGuide(): DefaultTheme.SidebarItem[] { + return [ + { text: 'What is QierPlayer', link: 'what-is-qier-player' }, + { text: 'Installation', link: 'installation' }, + { text: 'Getting Started', link: 'getting-started' }, + { text: 'Shortcuts', link: 'shortcut' }, + { text: 'Context Menu', link: 'menu' }, + { text: 'Controller', link: 'controller' }, + { text: 'Setting Menu', link: 'setting-menu' }, + { text: 'Video Thumbnail', link: 'thumbnail' }, + { + text: 'Examples', + collapsed: false, + items: [ + { text: 'Video Thumbnail', link: 'examples/video-screenshot' }, + { text: 'Quantity Switch', link: 'examples/quality-switch' }, + { text: 'Mirroring', link: 'examples/mirroring' }, + // { text: 'Custom Theme', link: 'examples/custom-theme' }, + ] + }, + ] +} + +function sidebarAPI(): DefaultTheme.SidebarItem[] { + return [ + { text: 'Parameters', link: 'parameters' }, + { text: 'Properties', link: 'properties' }, + { text: 'Methods', link: 'functions' }, + { text: 'Events', link: 'events' }, + ] +} diff --git a/website/docs/.vitepress/config/index.ts b/website/docs/.vitepress/config/index.ts new file mode 100644 index 0000000..eb825d9 --- /dev/null +++ b/website/docs/.vitepress/config/index.ts @@ -0,0 +1,18 @@ +import { defineConfig } from 'vitepress'; +import { shared } from './shared'; +import { en } from './en'; +import { zh } from './zh'; + +export default defineConfig({ + ...shared, + base: '/qier-player/', + locales: { + root: { label: 'English', ...en }, + zh: { label: '简体中文', ...zh }, + }, + vite: { + ssr: { + noExternal: ['qier-player', '@qier-player/danmaku'], + }, + } +}); diff --git a/website/docs/.vitepress/config/shared.ts b/website/docs/.vitepress/config/shared.ts new file mode 100644 index 0000000..a848761 --- /dev/null +++ b/website/docs/.vitepress/config/shared.ts @@ -0,0 +1,27 @@ +import { defineConfig } from 'vitepress'; +import { search as zhSearch } from './zh'; + +export const shared = defineConfig({ + title: 'QierPlayer', + + rewrites: { + 'en/:rest*': ':rest*', + }, + + lastUpdated: true, + cleanUrls: true, + metaChunk: true, + + themeConfig: { + logo: { src: '/logo.svg', width: 24, height: 24 }, + socialLinks: [{ icon: 'github', link: 'https://github.com/vortesnail/qier-player' }], + search: { + provider: 'local', + options: { + locales: { + ...zhSearch, + }, + }, + }, + }, +}); diff --git a/website/docs/.vitepress/config/zh.ts b/website/docs/.vitepress/config/zh.ts new file mode 100644 index 0000000..2e129a1 --- /dev/null +++ b/website/docs/.vitepress/config/zh.ts @@ -0,0 +1,129 @@ +import { defineConfig, type DefaultTheme } from 'vitepress' + +export const zh = defineConfig({ + lang: 'zh-CN', + description: '简单易用的 h5 播放器,UI 高度定制化、功能丰富', + + themeConfig: { + nav: [ + { + text: '指南', + link: '/zh/guide/getting-started', + activeMatch: '/zh/guide/' + }, + { + text: 'API', + link: '/zh/api/parameters', + activeMatch: '/zh/api/' + }, + ], + sidebar: { + '/zh/guide/': { base: '/zh/guide/', items: sidebarGuide() }, + '/zh/api/': { base: '/zh/api/', items: sidebarAPI() }, + }, + editLink: { + pattern: 'https://github.com/vortesnail/qier-player/edit/master/website/docs/:path', + text: '在 GitHub 上编辑此页面' + }, + footer: { + message: '基于 MIT 许可发布', + copyright: '版权所有 © 2019-2024 Vortesnail' + }, + docFooter: { + prev: '上一页', + next: '下一页' + }, + outline: { + label: '页面导航' + }, + lastUpdated: { + text: '最后更新于', + formatOptions: { + dateStyle: 'short', + timeStyle: 'medium' + } + }, + langMenuLabel: '多语言', + returnToTopLabel: '回到顶部', + sidebarMenuLabel: '菜单', + darkModeSwitchLabel: '主题', + lightModeSwitchTitle: '切换到浅色模式', + darkModeSwitchTitle: '切换到深色模式' + } +}) + +function sidebarGuide(): DefaultTheme.SidebarItem[] { + return [ + { text: 'QierPlayer 是什么?', link: 'what-is-qier-player' }, + { text: '安装', link: 'installation' }, + { text: '快速开始', link: 'getting-started' }, + { text: '快捷键', link: 'shortcut' }, + { text: '右键菜单', link: 'menu' }, + { text: '控制器', link: 'controller' }, + { text: '设置菜单', link: 'setting-menu' }, + { text: '视频缩略图', link: 'thumbnail' }, + { + text: '例子', + collapsed: false, + items: [ + { text: '视频截图', link: 'examples/video-screenshot' }, + { text: '画质切换', link: 'examples/quality-switch' }, + { text: '镜像画面', link: 'examples/mirroring' }, + // { text: '自定义主题', link: 'examples/custom-theme' }, + ] + }, + ] +} + +function sidebarAPI(): DefaultTheme.SidebarItem[] { + return [ + { text: '参数', link: 'parameters' }, + { text: '属性', link: 'properties' }, + { text: '方法', link: 'functions' }, + { text: '事件', link: 'events' }, + ] +} + +export const search: DefaultTheme.AlgoliaSearchOptions['locales'] = { + zh: { + placeholder: '搜索文档', + translations: { + button: { + buttonText: '搜索文档', + buttonAriaLabel: '搜索文档' + }, + modal: { + searchBox: { + resetButtonTitle: '清除查询条件', + resetButtonAriaLabel: '清除查询条件', + cancelButtonText: '取消', + cancelButtonAriaLabel: '取消' + }, + startScreen: { + recentSearchesTitle: '搜索历史', + noRecentSearchesText: '没有搜索历史', + saveRecentSearchButtonTitle: '保存至搜索历史', + removeRecentSearchButtonTitle: '从搜索历史中移除', + favoriteSearchesTitle: '收藏', + removeFavoriteSearchButtonTitle: '从收藏中移除' + }, + errorScreen: { + titleText: '无法获取结果', + helpText: '你可能需要检查你的网络连接' + }, + footer: { + selectText: '选择', + navigateText: '切换', + closeText: '关闭', + searchByText: '搜索提供者' + }, + noResultsScreen: { + noResultsText: '无法找到相关结果', + suggestedQueryText: '你可以尝试查询', + reportMissingResultsText: '你认为该查询应该有结果?', + reportMissingResultsLinkText: '点击反馈' + } + } + } + } +} diff --git a/website/docs/.vitepress/theme/components/Demo.vue b/website/docs/.vitepress/theme/components/Demo.vue new file mode 100644 index 0000000..6515bbc --- /dev/null +++ b/website/docs/.vitepress/theme/components/Demo.vue @@ -0,0 +1,427 @@ + + + + + diff --git a/website/docs/.vitepress/theme/components/DemoTempNotForSSR.vue b/website/docs/.vitepress/theme/components/DemoTempNotForSSR.vue new file mode 100644 index 0000000..f5048b8 --- /dev/null +++ b/website/docs/.vitepress/theme/components/DemoTempNotForSSR.vue @@ -0,0 +1,410 @@ + + + + + diff --git a/website/docs/.vitepress/theme/components/Team.vue b/website/docs/.vitepress/theme/components/Team.vue new file mode 100644 index 0000000..db0e57f --- /dev/null +++ b/website/docs/.vitepress/theme/components/Team.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/website/docs/.vitepress/theme/components/danmus.ts b/website/docs/.vitepress/theme/components/danmus.ts new file mode 100644 index 0000000..6733757 --- /dev/null +++ b/website/docs/.vitepress/theme/components/danmus.ts @@ -0,0 +1,214 @@ +import type { RawDanmu, CommanderMapKey } from '@qier-player/danmaku/dist/es/main/types'; + +export const danmusData: (RawDanmu & { position: CommanderMapKey, timestatamp: number, checked?: boolean })[] = [ + { + text: '死亡搁浅!', + color: '#f00', + position: 'fixed-top', + timestatamp: 0.4, + }, + { + text: '死亡搁浅!!', + color: '#f00', + position: 'fixed-top', + timestatamp: 0.4, + }, + { + text: '死亡搁浅!!!', + color: '#f00', + position: 'fixed-top', + timestatamp: 0.4, + }, + { + text: '小岛秀夫yyds', + color: '#fff', + position: 'rolling', + timestatamp: 1.2, + }, + { + text: '这部作品什么时候出下一部啊,好期待', + color: '#fff', + position: 'rolling', + timestatamp: 1.2, + }, + { + text: '生存之旅', + color: '#00f', + position: 'fixed-top', + timestatamp: 1.2, + }, + { + text: '我爱死亡搁浅!', + color: '#f0f', + position: 'rolling', + timestatamp: 1.3, + }, + { + text: '布里吉特的故事真挺感人的', + color: '#ff0', + position: 'fixed-bottom', + timestatamp: 1.3, + }, + { + text: '希望能再见到山姆啊啊啊', + color: '#fff', + position: 'rolling', + timestatamp: 1.3, + }, + { + text: '死亡搁浅的画面太美了,感觉像看电影', + color: '#0f0', + position: 'fixed-top', + timestatamp: 1.4, + }, + { + text: '你们觉得二代会怎样?', + color: '#f90', + position: 'rolling', + timestatamp: 1.5, + }, + { + text: '这游戏的音乐绝绝子', + color: '#fff', + position: 'fixed-bottom', + timestatamp: 1.5, + }, + { + text: '期待更多的剧情展开', + color: '#0ff', + position: 'fixed-top', + timestatamp: 3, + }, + { + text: '死神与连接的故事!', + color: '#f00', + position: 'rolling', + timestatamp: 3.4, + }, + { + text: '克劳斯好帅啊', + color: '#fff', + position: 'fixed-bottom', + timestatamp: 3.5, + }, + { + text: '每次冒险都令人心跳加速', + color: '#f00', + position: 'fixed-top', + timestatamp: 4.5, + }, + { + text: '死亡搁浅的玩法真挺独特', + color: '#ff0', + position: 'rolling', + timestatamp: 4.5, + }, + { + text: '山姆的背影让我心疼', + color: '#0f0', + position: 'fixed-bottom', + timestatamp: 5, + }, + { + text: '这游戏的设定太棒了', + color: '#00f', + position: 'rolling', + timestatamp: 5.2, + }, + { + text: '真希望能有续集', + color: '#f0f', + position: 'fixed-top', + timestatamp: 6.2, + }, + { + text: '连结的意义真深刻', + color: '#0ff', + position: 'rolling', + timestatamp: 7.2, + }, + { + text: '画面美得不可思议', + color: '#fff', + position: 'fixed-bottom', + timestatamp: 9.2, + }, + { + text: '孤独感和希望并存!', + color: '#f90', + position: 'fixed-top', + timestatamp: 10.2, + }, + { + text: '为山姆加油!', + color: '#fff', + position: 'rolling', + timestatamp: 11.2, + }, + { + text: '死亡搁浅的世界好迷人!', + color: '#00f', + position: 'fixed-bottom', + timestatamp: 12.2, + }, + { + text: '这段生存挑战挺有意思的。', + color: '#00f', + position: 'fixed-top', + timestatamp: 13, + }, + { + text: '故事情节吸引人。', + color: '#f0f', + position: 'rolling', + timestatamp: 14, + }, + { + text: '在探索未知的旅程', + color: '#ff0', + position: 'fixed-bottom', + timestatamp: 16, + }, + { + text: '感觉到一种连接和孤独。', + color: '#fff', + position: 'rolling', + timestatamp: 16, + }, + { + text: '山姆的经历很特别。', + color: '#0f0', + position: 'fixed-top', + timestatamp: 12, + }, + { + text: '主题确实很深刻。', + color: '#f90', + position: 'rolling', + timestatamp: 14, + }, + { + text: '音乐的选择很好。', + color: '#fff', + position: 'fixed-bottom', + timestatamp: 11.2, + }, + { + text: '沉浸感很强。', + color: '#0ff', + position: 'fixed-top', + timestatamp: 13.2, + }, + { + text: '对未来的故事很期待。', + color: '#f00', + position: 'rolling', + timestatamp: 14.2, + }, + { + text: '这种体验很独特。', + color: '#fff', + position: 'fixed-bottom', + timestatamp: 4.2, + }, +] diff --git a/website/docs/.vitepress/theme/index.ts b/website/docs/.vitepress/theme/index.ts new file mode 100644 index 0000000..124e4ab --- /dev/null +++ b/website/docs/.vitepress/theme/index.ts @@ -0,0 +1,9 @@ +import { type Theme } from 'vitepress' +import DefaultTheme from 'vitepress/theme' +import './styles/vars.css' + +const theme: Theme = { + ...DefaultTheme, +} + +export default theme diff --git a/website/docs/.vitepress/theme/styles/vars.css b/website/docs/.vitepress/theme/styles/vars.css new file mode 100644 index 0000000..ca40112 --- /dev/null +++ b/website/docs/.vitepress/theme/styles/vars.css @@ -0,0 +1,83 @@ +/** + * Colors + * -------------------------------------------------------------------------- */ + +:root { + /* blue */ + --c-blue-1: #0781a4; + --c-blue-2: #0894bc; + --c-blue-3: #09a8d5; + --c-blue-4: #0abbed; + --c-blue-5: #1bc5f5; + --c-blue-6: #34ccf6; + --c-blue-7: #4cd2f7; + /* dark */ + --c-white-dark: #f8f8f8; + --c-black-darker: #0d121b; + --c-black: #111827; + --c-black-light: #161f32; + --c-black-lighter: #262a44; + /* main theme */ + --theme-color: var(--c-blue-4); +} + +html.dark:root { + --vp-home-hero-name-color: transparent; + --vp-home-hero-name-background: linear-gradient( + 120deg, + var(--c-blue-7) 50%, + var(--c-blue-4) + ); + --vp-home-hero-image-background-image: linear-gradient(-45deg, var(--c-blue-3) 50%, var(--c-blue-4) 50%); +} + +/** + * Component: Button + * -------------------------------------------------------------------------- */ + +:root { + --vp-button-brand-border: var(--c-blue-3); + --vp-button-brand-text: var(--c-white-dark); + --vp-button-brand-bg: var(--c-blue-4); + --vp-button-brand-hover-border: var(--c-blue-3); + --vp-button-brand-hover-text: var(--c-white-dark); + --vp-button-brand-hover-bg: var(--c-blue-6); + --vp-button-brand-active-border: var(--c-blue-3); + --vp-button-brand-active-text: var(--c-black-darker); + --vp-button-brand-active-bg: var(--c-blue-3); +} + +/** + * Component: Home + * -------------------------------------------------------------------------- */ + +:root { + --vp-home-hero-name-color: transparent; + --vp-home-hero-name-background: linear-gradient( + 120deg, + var(--c-blue-7) 50%, + var(--c-blue-4) + ); + --vp-home-hero-image-background-image: linear-gradient(-45deg, var(--c-blue-7) 50%, var(--c-blue-7) 50%); + --vp-home-hero-image-filter: blur(124px); +} + +@media (min-width: 640px) { + :root { + --vp-home-hero-image-filter: blur(136px); + } +} + +@media (min-width: 960px) { + :root { + --vp-home-hero-image-filter: blur(148px); + } +} + +/** + * Component: Brand + * -------------------------------------------------------------------------- */ + +:root { + --vp-c-brand-1: var(--c-blue-1); +} diff --git a/website/docs/api/events.md b/website/docs/api/events.md deleted file mode 100644 index 37c120c..0000000 --- a/website/docs/api/events.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Events -order: 4 ---- - -# Events diff --git a/website/docs/api/events.zh-CN.md b/website/docs/api/events.zh-CN.md deleted file mode 100644 index 8e1a73f..0000000 --- a/website/docs/api/events.zh-CN.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: 事件 -order: 4 ---- - -# 事件 diff --git a/website/docs/api/functions.md b/website/docs/api/functions.md deleted file mode 100644 index a450f5a..0000000 --- a/website/docs/api/functions.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Functions -order: 3 ---- - -# Functions diff --git a/website/docs/api/functions.zh-CN.md b/website/docs/api/functions.zh-CN.md deleted file mode 100644 index 7da65f1..0000000 --- a/website/docs/api/functions.zh-CN.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: 方法 -order: 3 ---- - -# 方法 diff --git a/website/docs/api/index.md b/website/docs/api/index.md deleted file mode 100644 index 391dc76..0000000 --- a/website/docs/api/index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Options -order: 1 -nav: - title: API - order: 2 ---- - -# Options diff --git a/website/docs/api/index.zh-CN.md b/website/docs/api/index.zh-CN.md deleted file mode 100644 index 73da017..0000000 --- a/website/docs/api/index.zh-CN.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: 参数 -order: 1 -nav: - title: API - order: 2 ---- - -# 参数 diff --git a/website/docs/api/property.md b/website/docs/api/property.md deleted file mode 100644 index 644c820..0000000 --- a/website/docs/api/property.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Properties -order: 2 ---- - -# Properties diff --git a/website/docs/api/property.zh-CN.md b/website/docs/api/property.zh-CN.md deleted file mode 100644 index bbc5f30..0000000 --- a/website/docs/api/property.zh-CN.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: 属性 -order: 2 ---- - -# 属性 diff --git a/website/docs/doc/controller.md b/website/docs/doc/controller.md deleted file mode 100644 index 1ae1613..0000000 --- a/website/docs/doc/controller.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: Controller -order: 6 ---- - -# Controller - -At the bottom of the player, there are a series of control items for users to perform operations such as play (pause), volume adjustment, full screen, etc., and also include a playback progress bar. - -## Configs - -You can configure the position of each item of the controller, whether to render it, etc. through the `controller` parameter. It is an object that contains `progress` and `eles` two configurable items, the former is **progress bar**, the latter Yes **General Controls**, you can add new control items by yourself. - -The default settings are as follows: - -```js -new Player({ - controller: { - progress: ['progress'], - eles: ['play', 'time', 'spacer', 'volume', 'settings', 'web-fullscreen', 'fullscreen'], - }, -}); -``` - -The array in the above code is filled with the `id` of each built-in control, and their position in the array determines their position on the view. - -What's special is that the `id` is the `spacer` control, which can divide the control into two parts. For example, to put the volume buttons to the left, just put the `volume` string to the left of the `spacer`. - -```js -eles: ['play', 'time', 'volume', 'spacer', 'settings', 'web-fullscreen', 'fullscreen'], -``` - -## Built-in controls - -| Control id | Description | -| -------------- | ---------------------------------------------------------------- | -| progress | Video progress bar | -| play | play/pause | -| time | Video time display | -| spacer | Used to divide the control item layout into left and right parts | -| volume | volume adjustment | -| settings | settings | -| web-fullscreen | Web fullscreen | -| fullscreen | full screen | - -## Custom control - -控制项是可以自定义的,: - -```typescript -interface IControllerEle { - el: HTMLElement; // DOM element of the control - id?: any; // the unique id of the control - tip?: string; // the tip string for the control - tooltip?: Tooltip; // Prompt component object - mounted?: boolean; // Whether the control has been mounted - init?: (player: Player, tooltip: Tooltip) => void; // Called when the control is initialized - dispose?: () => void; // destroy - [key: string]: any; -} -``` - -The `tip` parameter is a string that will be displayed when the mouse is over the corresponding control. - -```js -const control = { - id: 'control', - tip: 'control', - init(player) { - const textDom = document.createElement('span'); - textDom.innerText = 'control'; - this.el.appendChild(textDom); - }, -}; -``` - -## Update control item - -Provides the built-in method `updateControllerEles()` to dynamically update control bar items. - -```js -const player = new Player({ ... }) - -player.updateControllerEles(['play', 'spacer', 'settings'], 'eles') -``` - -The first parameter is the new control item array, and the second parameter is the configuration item to be updated, here is `eles`, which is the configuration of the control bar at the bottom. - -## Register and get control items - -The `player` instance provides two methods to register and get menu item objects. - -### register - -#### `registerControllerEle(ele: IControllerEle, id?: string)` - -Use this method to register controls, and then use the `id` string to access, generally only used in custom plugins. - -### Obtain - -#### `getControllerEle(id: string)` - -Use this method to get the control with the specified `id`. - -```js -const control = { ... } -const player = new Player({ ... }); -// register -player.registerControllerEle(control, 'control'); -// Obtain -const controlTmp = player.getControllerEle('control'); - -if (controlTmp) { - console.log(controlTmp) -} -``` - -The above is to register our own defined control items, and we can also get built-in control items, such as the playback class instance. - -```js -console.log(player.getControllerEle('play')); -``` - -⚠️ Among them, the `spacer` control item is special, and its instance cannot be obtained through `getControlItem('spacer')`. - -## More examples - -- [Quality Switch](/doc/examples/quality-switch) diff --git a/website/docs/doc/examples/quality-switch.md b/website/docs/doc/examples/quality-switch.md deleted file mode 100644 index 43f0d9b..0000000 --- a/website/docs/doc/examples/quality-switch.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Quality Switch -order: 2 -group: - title: Examples - order: 100 ---- - -# Quality Switch - -Quality Switch - -TODO diff --git a/website/docs/doc/examples/quality-switch.zh-CN.md b/website/docs/doc/examples/quality-switch.zh-CN.md deleted file mode 100644 index 84b0335..0000000 --- a/website/docs/doc/examples/quality-switch.zh-CN.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: 画质切换 -order: 2 -group: - title: 例子 - order: 100 ---- - -# 画质切换 - -实现画质切换自定义控制项 - -TODO diff --git a/website/docs/doc/examples/video-screenshot.md b/website/docs/doc/examples/video-screenshot.md deleted file mode 100644 index 602dc43..0000000 --- a/website/docs/doc/examples/video-screenshot.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Video Screenshot -order: 1 -group: - title: Examples - order: 100 ---- - -# Video Screenshot - -这里使用右键菜单的形式实现视频截图功能。 - -TODO diff --git a/website/docs/doc/examples/video-screenshot.zh-CN.md b/website/docs/doc/examples/video-screenshot.zh-CN.md deleted file mode 100644 index 1b0089e..0000000 --- a/website/docs/doc/examples/video-screenshot.zh-CN.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: 视频截图 -order: 1 -group: - title: 例子 - order: 100 ---- - -# 视频截图 - -这里使用右键菜单的形式实现视频截图功能。 - -TODO diff --git a/website/docs/doc/index.md b/website/docs/doc/index.md deleted file mode 100644 index 3a3f290..0000000 --- a/website/docs/doc/index.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: Introduction -order: 1 -nav: - title: Docs - order: 1 ---- - -# What's qier-player? - -`qier-player` is a modern web player that supports highly customized UI, responsive layout and rich features. This project is written by Typescript and has good type hints; more features will be gradually developed in the future, such as barrage as a plug-in, compatible with mobile terminals, etc. If you are interested in understanding the future development plan, you can click [Future plan](/doc#future-plan) to view. - - - - - The origin of the name of qier-player is a very beautiful girl in this world with "qi" in the name, which is called "qier". - - -# Features - -- 📦 Use out of the box, eliminating the need for most ui avatar writing, functional women. -- 🛡 Use TypeScript to develop and provide a complete type definition file. -- 📃 The theme is easy to customize, replacing the original icons and themes is very simple. -- 🦁 Responsive layout, the layout can be controlled to the most suitable by the parent element or the screen size. -- 🔖 Support internationalization, simple api call to register your language. - -# Future plan - -At present, the project still has many functions that need to be done. The following are currently in mind: - -- **Design plug-in access mechanism**: Support user-defined plug-in access. -- **Barrage Library**: Use the above plug-in access mechanism to seamlessly access barrage plug-ins. -- **Mobile Adaptation**: This is a careful job. -- **Vue**: like React support, `qier-player-for-vue` will be supported. diff --git a/website/docs/doc/index.zh-CN.md b/website/docs/doc/index.zh-CN.md deleted file mode 100644 index c4ce020..0000000 --- a/website/docs/doc/index.zh-CN.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: 介绍 -order: 1 -nav: - title: 文档 - order: 1 ---- - -# qier-player 是什么? - -`qier-player` 是一个支持 UI 高度定制化、响应式布局且功能丰富的现代 web 播放器。本项目由 Typescript 编写,具备良好的类型提示;在未来会逐步开发更多特性,比如弹幕作为插件接入,兼容移动端等,如果你对未来的开发计划有兴趣了解,可以点击[未来计划](/zh-CN/doc#未来计划)进行查看。 - - - - - qier-player 的名字由来是一个在这个世界上很美好的女孩的名字中带有“琪”字,亲昵的称呼“琪儿”。 - - -# 特性 - -- 📦 开箱即用,免去大部分 ui 的样式编写,功能齐全。 -- 🛡 使用 TypeScript 开发,提供完整的类型定义文件。 -- 📃 主题轻松自定义,替换原有的图标、主题色非常简单。 -- 🦁 响应式布局,由父元素或屏幕大小能自适应调节布局至最合适。 -- 🔖 支持国际化,简单的 api 调用即可注册你的语言。 - -# 未来计划 - -目前该项目还有许多需要做的功能,目前想到的有以下: - -- **设计插件接入机制**:支持用户自定义插件接入。 -- **弹幕库**:利用以上的插件接入机制,将弹幕插件无缝接入。 -- **移动端适配**:这是一个细心活儿。 -- **Vue**: 和现在已支持的 React 版本一样,未来会放出 `qier-player-for-vue`。 diff --git a/website/docs/doc/install.md b/website/docs/doc/install.md deleted file mode 100644 index 53a5337..0000000 --- a/website/docs/doc/install.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -title: Install -order: 2 ---- - -# Install - -## Package install - -Use npm: - -```bash -npm i qier-player --save -``` - -Or you prefer yarn: - -```bash -yarn add qier-player -``` - -The following introduces the concentration in the code: - -```js -import the player from'qier-player'; - -const player = new player ({ - src: 'your video address', -}); - -player.mount('#root'); -``` - -## CDN Service - -It is also possible to download the umd package through `script`, you only need to introduce the classification in the appropriate position in the html file. - -```html - -``` - -In the usage mode, if you import through the CDN module, the modules you cannot export through ES will be different. The following is a simulation comparison. - -- ES module - -```js -import Player, { Icon, I18n } from 'qier-player'; -``` - -- Global object - -```js -const { Player, Icon, I18n } = window.QierPlayer; -``` - -When using CDN, we need to remove the locally installed `qier-player` package from the final package file by using a build tool (such as Webpack). We can maintain it in Webpack. - -```js -external:{ - 'qier-player':'QierPlayer', -}, -``` - -## Suggest - -During development, our first version will build applications based on React or Vue. In order to subcontract `qier-player`, we can destroy it. - -1. Install the package to the local through yarn or npm, and you will get a good code prompt during development. - -```bash -yarn add qier-player -# or -npm i qier-player --save -``` - -2. Indicate the CDN link. - -```html - -``` - -3. Eaves the bag - -```js -external:{ - 'qier-player':'QierPlayer', -}, -``` diff --git a/website/docs/doc/menu.md b/website/docs/doc/menu.md deleted file mode 100644 index 716b05c..0000000 --- a/website/docs/doc/menu.md +++ /dev/null @@ -1,114 +0,0 @@ ---- -title: Menu -order: 5 ---- - -# Menu - -When clicking the right mouse button on the player, a menu will appear to provide some convenient operations (or information display). - -## Configs - -The menu can be configured according to `menus` and `showDefaultMenu`, the default configuration is as follows: - -```js -new Player({ - menus: ['loop'], - showDefaultMenu: true, -}); -``` - -- `menus` has only 1 menu item by default, which is **loop play**. When you manually set it to an empty array, the context menu will not appear. -- `showDefaultMenu` is used to determine whether to display the **native right-click menu**. When the value is `true`, the browser's native right-click menu will be displayed on the second click, instead of the player's right-click menu configured by ourselves. menu. When the value is `false`, the browser context menu will never be displayed. - -## Custom menu items - -The right-click menu supports custom menu items. The types of each menu item are as follows: - -```typescript -interface IMenuItem { - id?: string; // The unique id of the menu item - html?: string; // Menu item text - hidden?: boolean; // Is visible - disabled?: boolean; // Is disabled - checked?: boolean; // Is checked - init?: (player: Player, item: IMenuItem) => void; // Will be called once during initialization - show?: (player: Player, item: IMenuItem) => void; // Called every time the right-click menu is displayed - click?: (player: Player, item: IMenuItem) => void; // Called each time the item is clicked -} -``` - - - The html attribute will directly insert the html string through innerHTML to generate the DOM. It will not undergo security processing. You need to ensure the security of the string yourself. - - -You can try to add a **Picture in Picture** function to get an initial experience developing your own menu items. - -```js -const pip = { - html: 'pip', - init() { - // Initialization is to determine whether the browser does not support picture-in-picture, and hide the menu item if it does not support it. - this.hidden = !document.pictureInPictureEnabled; - }, - show(player, item) { - item.checked = document.pictureInPictureElement === player.video; - }, - click(player, menuItem) { - if (player.video.readyState < 3) return; // The video has not loaded successfully - if (document.pictureInPictureElement !== player.video) { - player.video.requestPictureInPicture(); - } else { - document.exitPictureInPicture(); - menuItem.checked = false; - } - this.show(player, menuItem); - }, -}; - -new Player({ - menus: ['loop', pip], -}); -``` - -In the above logic, we first define a menu item object, and then add it directly to the array during configuration, and you can adjust the order at will. At this time, you can right-click on the player to call out the menu, and you can see the "Picture in Picture" option. - - - If the currently exposed menu item interface cannot be satisfied in your development, please file an issue。 - - -## Register and get menu items - -The `player` instance provides two methods to register and get menu item objects. - -### Register - -#### `registerMenuItem(item: IMenuItem, id?: string)` - -Use this method to register menu items, and then use the `id` string to access, generally only used in custom plugins. - -### Get menu item - -#### `getMenuItem(id: string)` - -Use this method to get the menu item with the specified `id`. - -```js -const pip = { ... } -const player = new Player({ ... }); -// Register -player.registerMenuItem(pip, 'pip'); -// Get menu item -const pip = player.getMenuItem('pip'); -// Update -if (pip) { - pip.disabled = true; - pip.html = 'Picture in Picture (disabled)'; -} -``` - -You can change the configuration of the menu item at any time, and the configuration item will be updated the next time the right-click menu is displayed. - -## More examples - -- [Video screenshot](/doc/examples/video-screenshot) diff --git a/website/docs/doc/quick-start.md b/website/docs/doc/quick-start.md deleted file mode 100644 index 58be1e5..0000000 --- a/website/docs/doc/quick-start.md +++ /dev/null @@ -1,142 +0,0 @@ ---- -title: Getting Started -order: 3 ---- - -# Getting Started - -## Install - -Through the [installation chapter](/doc/install), everyone should know various installation methods. Now suppose we introduce it based on ES Module. - -```bash -yarn add qier-player -# or -npm i qier-player --save -``` - -## Getting Started - -```js -import Player from 'qier-player'; - -const player = new Player({ - src: 'https://vortesnail.github.io/qier-player-demo/static/media/video480p.d116ba09.mp4', -}); - -// player.mount('#root'); -player.mount(document.body); -``` - -First we import `Player`, create an instance, then pass in the video address, call the `mount` method to mount it under the `body` element. - -The `mount` method can mount the DOM element actually produced by the player to the specified DOM element. It receives a parameter, which can be a string (selector) or an actual DOM element. When it is a string, the internal implementation finds the actual DOM element through the `document.querySelector` method. - -## Get related DOM elements - -After the `mount` method is executed, the internal members can be accessed through the instance, the following may be frequently accessed: - -- **Mounted elements**:Accessible via `container`. -- **Player root element**:Accessible via `el`. -- **video**:Accessible via `video`. - -```js -import Player from 'qier-player'; - -const player = new Player({ - src: 'https://vortesnail.github.io/qier-player-demo/static/media/video480p.d116ba09.mp4', -}); - -player.mount(document.body); - -console.log(player.container); // document.body -console.log(player.el); -console.log(player.video); -``` - -## Instance properties and methods - -After we create a new instance of `player`, there are many member attributes for us to read. - -For example, the following code can realize automatic playback, and automatically pause after `10` seconds. - -```js -player.muted = true; -player.play(); - -setTimeout(() => { - player.pause(); -}, 10000); -``` - -If we print the `player` instance on the console, you will find many member attributes after expansion. For details, please click on the [attributes](/api/property) and [functions](/api/functions) to view. - -## Event monitoring - -`player` has methods related to the following 5 events. - -| Methods | description | -| --------------------------------- | --------------------------------------------------- | -| emit(evt: string, ...args: any[]) | Dispatch event | -| on(evt: string, fn?: Function) | Events listener | -| once(evt: string, fn?: Function) | Events listener, callback function only excute once | -| off(evt: string, fn?: Function) | Unregister event listener | -| removeAllListeners(evt?: string) | Unregister all events | - -You can use these methods to listen for built-in events. - -```js -import Player, { EVENT } form 'qier-player'; - -const player = new Player(); - -player.on(EVENT.PLAY, () => { - console.log('Start playing'); -}); -``` - -`EVENT.PLAY` is essentially a string, using the big hump naming method as `Play`. - -You can also customize the monitoring event. - -```js -import Player, { EVENT } form 'qier-player'; - -const player = new Player(); - -player.emit('CustomEvent'); -player.on('CustomEvent', () => { - console.log('Custom event has been triggered'); -}); -``` - -For more built-in events, please see [events](/api/events). - -## Destroy - -`player` and all components implement the `Dispose` interface, that is, have the `dispose` method, calling this method will destroy the object and its DOM elements. - -```js -player.mount(document.body); -// Destroy the player and its DOM elements after 5 seconds -setTimeout(() => player.dispose(), 5000); -``` - -## Multi-level - -The player is composed of 6 levels with different functions, and each level has its own `z-index`. - -| Level | z-indx | Description | -| ---------- | ------ | -------------------------------------------------------------------- | -| video | - | The video element has no z-index set | -| poster | 10 | Video poster | -| loading | 20 | The loading indicator element that appears when the video is loading | -| controller | 30 | Video bottom control bar | -| menu | 40 | Right-click the pop-up menu of the video element | -| toast | 50 | Toast | - -Except for the `video` element, all other functional components adopt **absolute position**. After the plugin function is provided later, the developer can decide to set the `z-index` to an appropriate value to avoid unnecessary occlusion. - -## Issues & New Features - -If you encounter a BUG, ​​want a new feature, or have a problem with use, welcome to initiate [issue](https://github.com/vortesnail/qier-player/issues/new/choose)。 diff --git a/website/docs/doc/setting-menu.md b/website/docs/doc/setting-menu.md deleted file mode 100644 index 1b54e4b..0000000 --- a/website/docs/doc/setting-menu.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Setting Menu -order: 7 ---- - -# Setting Menu diff --git a/website/docs/doc/shortcut.md b/website/docs/doc/shortcut.md deleted file mode 100644 index 7a3f354..0000000 --- a/website/docs/doc/shortcut.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: Shortcuts -order: 4 ---- - -# Shortcuts - -Qier Player has built-in commonly used shortcut keys, but they can only take effect when the page access is focused on the player. - -The shortcut can be configured through the `shortcutOptions` parameter. - -```typescript -interface IShortcut { - disabled?: boolean; - seekStep?: number; - volumeStep?: number; - showToast?: boolean; - toastDelay?: number; -} -``` - -For example, the function of disabling shortcut keys can be configured like this. - -```js -import Player from 'qier-player'; - -const player = new Player({ - src: 'Your video address', - shortcutOptions: { - disabled: true, - }, -}); -``` - -There are 6 built-in shortcut keys by default. - -| Shortcut | Description | -| -------- | ---------------- | -| Left | Rewind | -| Right | Forward | -| Up | Increase volume | -| Down | lower the volume | -| Esc | Exit Fullscreen | -| Spacebar | Play or pause | - -The volume and progress increment can be controlled by the `seekStep` and `volumeStep` parameters, their default values ​​are `5` and `0.1`. - -```js -import Player from 'qier-player'; - -const player = new Player({ - src: 'Your video address', - shortcutOptions: { - seekStep: 10, - volumeStep: 0.2, - }, -}); -``` - -`showToast` determines whether to display the prompt box when fast forward/rewind or volume increase and decrease, and `toastDelay` determines the existence time of the prompt box. The default is `500` milliseconds. diff --git a/website/docs/en/api/events.md b/website/docs/en/api/events.md new file mode 100644 index 0000000..c7de686 --- /dev/null +++ b/website/docs/en/api/events.md @@ -0,0 +1,56 @@ +# Events {#events} + +The player will emit various events, which you can listen to using the `player.on` and `player.once` methods. You can also trigger custom or predefined events using `player.emit`, with event names in CamelCase format. + +You can import the `EVENT` object from `qier-player` to access these event names. + +```ts +import Player, { EVENT } from 'qier-player' + +const player = new Player(...) +console.log(EVENT.CONTROLLER_SHOW) +console.log('ControlShow') // Equivalent string + +const noop = () => {} + +player.on(EVENT.CONTROLLER_SHOW, noop) +player.once(EVENT.CONTROLLER_SHOW, noop) +player.off(EVENT.CONTROLLER_SHOW, noop) +player.emit(EVENT.CONTROLLER_SHOW) +``` + +## Event List + +| Event Name | Description | Enum Value | +| ---------------- | ------------------------------------- | --------------------------- | +| Play | Play video | EVENT.PLAY | +| Pause | Pause video | EVENT.PAUSE | +| Ended | Video has ended | EVENT.ENDED | +| TimeUpdate | Current time updated | EVENT.TIME_UPDATE | +| Progress | Downloaded video range updated | EVENT.PROGRESS | +| DurationChange | Total video duration changed | EVENT.DURATION_CHANGE | +| VolumeChange | Volume level changed | EVENT.VOLUME_CHANGE | +| Waiting | Video is in waiting state | EVENT.WAITING | +| Stalled | Video is loading | EVENT.STALLED | +| CanPlay | Video can be played | EVENT.CANPLAY | +| LoadedMetadata | Video source data loaded | EVENT.LOADED_METADATA | +| RateChange | Playback rate changed | EVENT.RATE_CHANGE | +| Error | An error occurred | EVENT.ERROR | +| Seeked | Video has been seeked | EVENT.SEEKED | +| ControlShow | Controller displayed | EVENT.CONTROLLER_SHOW | +| ControlHide | Controller hidden | EVENT.CONTROLLER_HIDE | +| UpdateSize | Player size updated | EVENT.UPDATE_SIZE | +| WebEnterFullscreen | Entered web fullscreen | EVENT.WEB_ENTER_FULLSCREEN | +| WebExitFullscreen | Exited web fullscreen | EVENT.WEB_EXIT_FULLSCREEN | +| EnterFullscreen | Entered fullscreen | EVENT.ENTER_FULLSCREEN | +| ExitFullscreen | Exited fullscreen | EVENT.EXIT_FULLSCREEN | +| EnterPip | Entered Picture-in-Picture mode | EVENT.ENTER_PIP | +| ExitPip | Exited Picture-in-Picture mode | EVENT.EXIT_PIP | +| Mounted | Player has been mounted | EVENT.MOUNTED | +| AfterInit | Initialization complete | EVENT.AFTER_INIT | +| BeforeDispose | Before player is destroyed | EVENT.BEFORE_DISPOSE | +| AfterDispose | After player is destroyed | EVENT.AFTER_DISPOSE | +| PopoverShowChange | Popover display state changed | EVENT.POPOVER_SHOW_CHANGE | +| ControllerElesUpdate | Controller elements updated | EVENT.CONTROLLER_ELES_UPDATE | +| LoadingShow | Loading indicator displayed | EVENT.LOADING_SHOW | +| LoadingHide | Loading indicator hidden | EVENT.LOADING_HIDE | diff --git a/website/docs/en/api/functions.md b/website/docs/en/api/functions.md new file mode 100644 index 0000000..5ab9eb3 --- /dev/null +++ b/website/docs/en/api/functions.md @@ -0,0 +1,52 @@ +# Methods {#functions} + +The created instance has many callable methods, which you can inspect by logging it in the console: + +```js +const player = new Player({...}) +console.log(player) +``` + +## `mount(container?: IPlayerOptions['container']): void` + +Mounts the player to a specified container. If the `container` parameter was not provided during initialization, it is required when calling this function. + +## `play(): Promise | void` + +Starts playing the video, invoking the native event of the `video` element. + +## `pause(): void` + +Pauses video playback, invoking the native event of the `video` element. + +## `seek(seconds: number): void` + +Seeks to a specified time in the video, equivalent to setting `player.currentTime`. + +## `incVolume(v = this.options.shortcutOptions.volumeStep): void` + +Increases the volume by the value set in `volumeStep`. + +## `decVolume(v = this.options.shortcutOptions.volumeStep): void` + +Decreases the volume by the value set in `volumeStep`. + +## `forward(v = this.options.shortcutOptions.seekStep): void` + +Fast-forwards the video by the amount specified in `seekStep`. + +## `rewind(v = this.options.shortcutOptions.seekStep): void` + +Rewinds the video by the amount specified in `seekStep`. + +## `toggle(): void` + +Toggles between play and pause. + +## `toggleVolume(): void` + +Toggles the mute state. + +## `dispose(): void` + +Destroys the player. diff --git a/website/docs/en/api/parameters.md b/website/docs/en/api/parameters.md new file mode 100644 index 0000000..e17026e --- /dev/null +++ b/website/docs/en/api/parameters.md @@ -0,0 +1,186 @@ +# Parameters {#parameters} + +Parameters passed to the player constructor can be provided during player initialization: + +```js +import Player from 'qier-player' + +const player = new Player({ + src: '/test-video_1080p.mp4', +}) + +console.log('player parameters', player.options) + +player.mount(document.body) +``` + +## Parameter Descriptions + +| Parameter Name | Description | Type | +| -------------- | ----------- | ---- | +| container | The container element where the player is mounted, the same as the parameter passed to the `mount` method. If no parameter is provided to `mount`, this will be used. When this parameter is a string, it will automatically find the corresponding element. | `string \| HTMLElement` | +| video | The `video` tag element provided by the user. | `HTMLVideoElement` | +| src | The video URL, passed to the `src` attribute of the `video` tag element. | `string` | +| themeColor | The theme color that will affect the visual theme of the entire player. | `string` | +| videoProps | Properties for the `video` tag element. | `Record` | +| posterOptions | Configuration related to the poster, see [IPosterOptions](#parameters-IPosterOptions) for details. | `IPosterOptions` | +| loadingOptions | Configuration related to the loading indicator, see [ILoadingOptions](#parameters-ILoadingOptions) for details. | `ILoadingOptions` | +| controller | Configuration related to the controller, see [IController](#parameters-IController) for details. | `IController` | +| progressOptions | Configuration related to the progress bar, see [IProgressOptions](#parameters-IProgressOptions) for details. | `IProgressOptions` | +| thumbnail | Configuration related to thumbnails, see [IThumbnail](#parameters-IThumbnail) for details. | `IThumbnail` | +| settings | Configuration related to the settings menu, see [ISettingItem](#parameters-ISettingItem) for details. | `(ISettingItem \| string)[]` | +| menus | Configuration related to the right-click menu, see [IMenuItem](#parameters-IMenuItem) for details. | `(IMenuItem \| string)[]` | +| showDefaultMenu | Determines whether to show the **native right-click menu**. When set to `true`, the browser's native right-click menu will be shown on the second click instead of the custom player right-click menu. When set to `false`, the browser's right-click menu will never be displayed. | `boolean` | +| shortcutOptions | Configuration related to keyboard shortcuts, see [IShortcut](#parameters-IShortcut) for details. | `IShortcut` | + +## IPosterOptions {#parameters-IPosterOptions} + +| Parameter Name | Description | Type | +| -------------- | ----------- | ---- | +| disabled | Whether to disable the poster. | `boolean` | +| url | The URL of the poster image. | `string` | +| autoFill | Whether the poster image automatically fills the entire video container. | `boolean` | +| bgColor | The background color for the poster image. This is necessary if your image has transparency. | `string` | + +## ILoadingOptions {#parameters-ILoadingOptions} + +| Parameter Name | Description | Type | +| -------------- | ----------- | ---- | +| disabled | Whether to disable the loading indicator. | `boolean` | +| spinner | Custom indicator. | `HTMLElement` | +| type | Built-in indicator animations, two animations to choose from. | `wave \| circle` | + +## IController {#parameters-IController} + +| Parameter Name | Description | Type | +| -------------- | ----------- | ---- | +| progress | Progress bar configuration. | `(IControllerEle | string)[]` | +| eles | Control bar configuration. | `(IControllerEle | string)[]` | + +```ts +interface IControllerEle { + el: HTMLElement; + id?: any; + tip?: string; + tooltip?: Tooltip; + mounted?: boolean; + init?: (player: Player, tooltip: Tooltip) => void; + dispose?: () => void; + [key: string]: any; +} +``` + +## IProgressOptions {#parameters-IProgressOptions} + +| Parameter Name | Description | Type | +|----------------|-------------|------| +| dot | Element to represent the end of the progress bar; can be a custom element | `HTMLElement` | +| playedBg | Color of the already played portion of the progress bar | `string` | +| buffBg | Color of the buffered portion of the progress bar | `string` | +| indicator | Whether to show an indicator on the progress bar | `boolean` | + +## IThumbnail {#parameters-IThumbnail} + +| Parameter Name | Description | Type | +|----------------|-------------|------| +| startSecond | Start time for the thumbnail | `number` | +| gapSecond | Interval time for thumbnail generation | `number` | +| row | Number of rows in the sprite sheet | `number` | +| col | Number of columns in the sprite sheet | `number` | +| width | Width of the thumbnail | `number` | +| height | Height of the thumbnail | `number` | +| images | Array of sprite sheet links | `string[]` | + +## ISettingItem {#parameters-ISettingItem} + +```ts +interface ISettingItem { + id?: any; + html?: string; + type?: 'switch' | 'select'; + checked?: boolean; + options?: ISettingItemOption[]; + value?: T; + init?: (player: Player, item: ISettingItem) => void; + change?: (value: T, player: Player, item: ISettingItem) => void; + _switch?: Switch; + _selectedEl?: HTMLElement; + _optionEls?: HTMLElement[]; + _optionEl?: HTMLElement; + [key: string]: any; +} +``` + +```ts +interface ISettingItemOption { + html?: string; + selectedText?: string; + value?: T; +} +``` + +For detailed usage, refer to [Custom Setting Menu Items](../guide/setting-menu#setting-menu-custom-menu-item). + +## IMenuItem {#parameters-IMenuItem} + +```ts +interface IMenuItem { + id?: string; + html?: string; + hidden?: boolean; + disabled?: boolean; + checked?: boolean; + init?: (player: Player, item: IMenuItem) => void; + show?: (player: Player, item: IMenuItem) => void; + click?: (player: Player, item: IMenuItem) => void; +} +``` + +For detailed usage, refer to [Context Menu](../guide/menu). + +## IShortcut {#parameters-IShortcut} + +| Parameter Name | Description | Type | +|----------------|-------------|------| +| disabled | Whether the shortcut is disabled | `boolean` | +| seekStep | Step length for fast forward or rewind when using shortcuts, e.g., `5` seconds | `number` | +| volumeStep | Step size for increasing or decreasing volume with shortcuts, e.g., `0.1` | `number` | +| showToast | Whether to display a toast notification indicating the current action | `boolean` | +| toastDelay | Duration for which the toast notification is displayed | `number` | + +## Default Values + +```ts +const defaultOptions = { + posterOptions: { + disabled: true, + autoFill: true, + }, + loadingOptions: { + disabled: false, + type: 'circle', + }, + controller: { + progress: ['progress'], + eles: ['play', 'time', 'spacer', 'volume', 'settings', 'web-fullscreen', 'fullscreen'], + }, + settings: ['mirroring', 'speed'], + menus: ['loop'], + showDefaultMenu: true, + videoProps: { + crossorigin: 'anonymous', + preload: 'auto', + playsinline: 'true', + }, + progressOptions: { + indicator: true, + }, + shortcutOptions: { + disabled: false, + seekStep: 5, + volumeStep: 0.1, + showToast: true, + toastDelay: 500, + }, +} +``` diff --git a/website/docs/en/api/properties.md b/website/docs/en/api/properties.md new file mode 100644 index 0000000..5827e77 --- /dev/null +++ b/website/docs/en/api/properties.md @@ -0,0 +1,215 @@ +# Properties {#properties} + +The created instance has many properties that can be read and written. You can log them in the console to inspect: + +```js +const player = new Player({...}) +console.log(player) +``` + +## `container: HTMLElement` + +The container element for the player (provided as the `container` parameter or passed in `mount()`). + +## `el: HTMLDivElement` + +The outermost element of the player, which has the class name `qier-player`. + +## `video: HTMLVideoElement` + +The `video` tag element for the player. + +## `options: IPlayerOptions` + +An object that combines all the configuration options passed to the player with the default options. + +## `rect: Rect` + +Properties related to the player’s dimensions. + +- `rect.width`: The width of the player (read-only). +- `rect.height`: The height of the player (read-only). +- `rect.x`: The horizontal coordinate of the player (read-only). +- `rect.y`: The vertical coordinate of the player (read-only). +- `rect.update`: Method to update the player's dimensions. + +It's best to avoid calling `player.rect.update()` directly; instead, trigger the `UpdateSize` event using `player.emit('UpdateSize')`. + +## `poster: Poster` + +The player’s poster image. + +- `poster.el`: The outermost element for the poster. +- `poster.isActive`: Whether the poster is displayed (read-only). +- `poster.show`: Method to show the poster. +- `poster.hide`: Method to hide the poster. + +## `loading: Loading` + +The loading indicator for the player. + +- `loading.el`: The outermost element for the loading indicator. +- `loading.isActive`: Whether the loading indicator is displayed (read-only). +- `loading.show`: Method to show the loading indicator. +- `loading.hide`: Method to hide the loading indicator. + +## `webFullscreen: WebFullscreen` + +Web fullscreen functionality for the player. + +- `webFullscreen.isActive`: Whether the player is in web fullscreen mode (read-only). +- `webFullscreen.enter`: Method to enter web fullscreen mode. +- `webFullscreen.exit`: Method to exit web fullscreen mode. +- `webFullscreen.toggle`: Method to toggle web fullscreen mode. + +## `fullscreen: Fullscreen` + +Fullscreen functionality for the player. + +- `fullscreen.isActive`: Whether the player is in fullscreen mode (read-only). +- `fullscreen.enter`: Method to enter fullscreen mode. +- `fullscreen.exit`: Method to exit fullscreen mode. +- `fullscreen.toggle`: Method to toggle fullscreen mode. +- `fullscreen.enableDblclick`: Enable double-click to enter fullscreen mode. +- `fullscreen.disableDblclick`: Disable double-click to enter fullscreen mode. + +## `menu: Menu` + +The right-click context menu for the player. + +- `menu.el`: The outermost element for the right-click menu. +- `menu.isActive`: Whether the right-click menu is open (read-only). +- `menu.show`: Method to show the right-click menu. +- `menu.hide`: Method to hide the right-click menu. + +## `toast: Toast` + +The toast notification for the player. + +- `toast.show`: Method to display a toast notification. +- `toast.close`: Method to close a toast notification. + +Usage: + +```ts +show(html: string | HTMLElement, position?: Position, timeout = 3000) +close(toastItem?: ToastItem) +``` + +Type signatures: + +```ts +type Position = 'center' | 'left_top' | 'right_top' | 'left_bottom' | 'right_bottom' + +interface ToastItem { + el: HTMLElement + dispose: () => void +} +``` + +## `shortcut: Shortcut` + +Keyboard shortcut functionality for the player. + +- `shortcut.register`: Register a custom shortcut handler. +- `shortcut.unregister`: Unregister a custom shortcut handler. +- `shortcut.enable`: Enable shortcuts. +- `shortcut.disable`: Disable shortcuts. + +Usage: + +```ts +register(code: number, handler: ShortcutHandler) +unregister(code: number) +``` + +Type signatures: + +```ts +type ShortcutHandler = (player: Player) => void; +``` + +## `controller: Controller` + +The player controller. + +- `controller.show`: Method to display the player controller. +- `controller.hide`: Method to hide the player controller. + +## `settingItems: ISettingItem[]` + +The settings menu items for the player; see [ISettingItem](./parameters#parameters-ISettingItem) for details. + +## `currentTime: number` + +The current playback position, which can be both retrieved and set. + +For example, to jump to the 8-second mark: + +```ts +player.currentTime = 8 +``` + +## `loaded: boolean` + +Indicates whether the video has loaded successfully (read-only). + +## `duration: number` + +The total duration of the current video (read-only). + +## `buffered: TimeRanges` + +The ranges of the video that have been loaded (read-only). See [MDN buffered](https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/buffered) for more information. + +## `paused: boolean` + +Indicates whether the video is currently paused (read-only). + +## `ended: boolean` + +Indicates whether the video has finished playing (read-only). + +## `playing: boolean` + +Indicates whether the video is currently playing (read-only). + +## `volume: number` + +The volume level of the video, which can be both retrieved and set. The range is from `0 to 1`. + +For example, to set the volume to 90%: + +```ts +player.volume = 0.9 +``` + +## `muted: boolean` + +Indicates whether the video is muted, which can be both retrieved and set. + +For example, to mute the video: + +```ts +player.muted = true +``` + +## `loop: boolean` + +Indicates whether the video should loop, which can be both retrieved and set. + +For example, to set the video to replay after it ends: + +```ts +player.loop = true +``` + +## `playbackRate: number` + +The playback speed of the video, which can be both retrieved and set. + +For example, to set the playback speed to 2x: + +```ts +player.playbackRate = 2 +``` diff --git a/website/docs/en/guide/controller.md b/website/docs/en/guide/controller.md new file mode 100644 index 0000000..8f99af5 --- /dev/null +++ b/website/docs/en/guide/controller.md @@ -0,0 +1,127 @@ +# Controller {#controller} + +At the bottom of the player, there is a set of controls for users to play (pause), adjust volume, toggle fullscreen, and more, including a playback progress bar. + +## Configuration {#controller-settings} + +You can configure the position and visibility of each control using the `controller` parameter. It’s an object containing two configurable items: `progress` for the **progress bar** and `eles` for **standard controls**, where you can customize and add new controls. + +The default settings are as follows: + +```js +new Player({ + controller: { + progress: ['progress'], + eles: ['play', 'time', 'spacer', 'volume', 'settings', 'web-fullscreen', 'fullscreen'], + }, +}) +``` + +::: danger Important! +The arrays in the code above contain the `id` of each built-in control, and their position in the array determines their order in the view. +::: + +Notably, the control with the `id` of `spacer` can split controls into two sections. For example, to move the volume button to the left, simply place the `volume` string before `spacer`. + +```js +eles: ['play', 'time', 'volume', 'spacer', 'settings', 'web-fullscreen', 'fullscreen'], +``` + +## Built-in Controls {#controller-default-settings} + +| Control ID | Description | +| --------------- | ------------------------------- | +| progress | Video progress bar | +| play | Play/Pause | +| time | Video time display | +| spacer | Divides control layout into two parts | +| volume | Volume adjustment | +| settings | Settings | +| web-fullscreen | Web fullscreen | +| fullscreen | Fullscreen | + +## Custom Controls {#controller-custom-controller-item} + +Controls can be customized: + +```ts +interface IControllerEle { + el: HTMLElement // DOM element of the control + id?: any // Unique ID for the control + tip?: string // Tooltip string for the control + tooltip?: Tooltip // Tooltip component object + mounted?: boolean // Whether the control is mounted + init?: (player: Player, tooltip: Tooltip) => void // Called during initialization + dispose?: () => void // Cleanup + [key: string]: any +} +``` + +The `tip` parameter is a string that displays as a tooltip when hovering over the corresponding control. + +```js +const control = { + id: 'control', + tip: 'Control Item', + init(player) { + const textDom = document.createElement('span'); + textDom.innerText = 'Ctrl'; + this.el.appendChild(textDom); + }, +} +``` + +## Update Controls {#controller-update-controller-item} + +The built-in method `updateControllerEles()` allows for dynamic updates to the control items. + +```js +const player = new Player({ ... }) + +player.updateControllerEles(['play', 'spacer', 'settings'], 'eles') +``` + +The first parameter is the new array of control items, and the second parameter is the configuration to update, here being `eles`, which refers to the bottom control bar. + +## Registering and Retrieving Controls {#controller-register-get-controller-item} + +The `player` instance provides two methods to register and retrieve control item objects. + +### Register {#controller-register-controller-item} + +#### `registerControllerEle(ele: IControllerEle, id?: string)` + +Use this method to register a control item, then access it using the `id` string, typically done in custom plugins. + +### Retrieve {#controller-get-controller-item} + +#### `getControllerEle(id: string)` + +Use this method to retrieve the control item with the specified `id`. + +```js +const control = { ... } +const player = new Player({ ... }) +// Register +player.registerControllerEle(control, 'control') +// Retrieve +const controlTmp = player.getControllerEle('control'); + +if (controlTmp) { + console.log(controlTmp); +} +``` + +This allows you to register your custom control item and also retrieve built-in controls, such as the play instance. + +```js +console.log(player.getControllerEle('play')); +``` + +::: warning Warning +The `spacer` control item is special; you cannot retrieve its instance with `getControlItem('spacer')`. +::: + +## More Examples {#controller-more-examples} + +- [Quality Switch](./examples/quality-switch) diff --git a/website/docs/en/guide/examples/custom-theme.md b/website/docs/en/guide/examples/custom-theme.md new file mode 100644 index 0000000..e69de29 diff --git a/website/docs/doc/examples/mirroring.md b/website/docs/en/guide/examples/mirroring.md similarity index 71% rename from website/docs/doc/examples/mirroring.md rename to website/docs/en/guide/examples/mirroring.md index 919dae7..cec474d 100644 --- a/website/docs/doc/examples/mirroring.md +++ b/website/docs/en/guide/examples/mirroring.md @@ -1,14 +1,6 @@ ---- -title: Video Mirroring -order: 3 -group: - title: Examples - order: 100 ---- +# Mirroring {#mirroring} -# Video Mirroring - -Added settings menu item to control whether or not to mirror the screen. +Add a setting menu item to control the mirror image feature: ```js const classMirroring = 'video_mirroring'; @@ -16,7 +8,7 @@ const classMirroring = 'video_mirroring'; const MirroringSettingItem = () => ({ id: 'mirroring', type: 'switch', - html: 'Mirroring', + html: 'Mirror Image', checked: false, init(player) { player.video.classList.remove('qier-player_video_mirroring'); @@ -32,7 +24,7 @@ const player = new Player({ player.mount(document.body); ``` -Simple css style. +Style code: ```css .qier-player_video_mirroring { diff --git a/website/docs/en/guide/examples/quality-switch.md b/website/docs/en/guide/examples/quality-switch.md new file mode 100644 index 0000000..c064df6 --- /dev/null +++ b/website/docs/en/guide/examples/quality-switch.md @@ -0,0 +1,166 @@ +# Quantity Switching {#screen-shot} + +When your video is in the `.m3u8` streaming format, you can use hls.js to switch the quality directly on the client side. However, for the `.mp4` container format, you need to prepare multiple video sources of different qualities for users to switch between. + +::: tip Tip +Typically, after a user uploads a high-definition video to the website's server, tools like FFmpeg can be used to re-encode and generate videos of different qualities and bitrates. +::: + +For example, here are three different quality versions of a video that I have prepared: + +``` +test-video_1080p.mp4 +test-video_720p.mp4 +test-video_480p.mp4 +``` + +Then, you can implement this by creating a custom controller item: + +```js +import Player from 'qier-player' + +const quantity = { + el: document.createElement('div'), + init(player) { + const quantities = [ + { + id: '1080p', + label: '1080p HD', + checked: true, + dom: null + }, + { + id: '720p', + label: '720p Clear', + checked: false, + dom: null + }, + { + id: '480p', + label: '480p Smooth', + checked: false, + dom: null + }, + ] + + this.btn = document.createElement('div') + this.btn.textContent = quantities[0].label + this.el.appendChild(this.btn) + // Filling to prevent loss of popover when cursor leaves the control item + this.stuffing = document.createElement('div') + this.stuffing.classList.add('qier-player_controller_quantity_stuffing') + this.el.appendChild(this.stuffing) + + this.popover = new Popover(this.el) + this.el.addEventListener('mouseenter', () => { + this.stuffing.style.display = 'block' + this.popover.show() + // This code notifies other popovers to hide immediately + player.emit(EVENT.POPOVER_SHOW_CHANGE); + }) + this.el.addEventListener('mouseleave', () => { + this.stuffing.style.display = 'none' + this.popover.hide() + }) + this.el.classList.add('qier-player_controller_quantity') + + const quantityWrapper = document.createElement('div') + + quantities.forEach((item) => { + const quantityItem = document.createElement('div') + quantityItem.classList.add('qier-player_controller_quantity_item') + quantityItem.setAttribute('data-id', item.id) + quantityItem.innerText = item.label + item.dom = quantityItem + quantityWrapper.appendChild(quantityItem) + + quantityItem.addEventListener('click', (e) => { + e.stopPropagation() + if (e.target) { + const targetDom = e.target as HTMLElement + const id = targetDom.getAttribute('data-id') + const checkedItem = quantities.find(item => item.id === id) + if (!checkedItem.checked) { + quantities.forEach(item => { + item.checked = false + item.dom.classList.remove('qier-player_controller_quantity_item--active') + }) + checkedItem.checked = true + item.dom.classList.add('qier-player_controller_quantity_item--active') + this.btn.textContent = item.label + // Note: Changing the src of the video tag this way is not ideal and has bugs. This will be fixed later with an update method. + player.video.src = `/test-video_${item.id}.mp4` + } + } + }) + }) + + this.popover.panelEl.appendChild(quantityWrapper); + } +} + +const player = new Player({ + controller: { + progress: ['progress'], + eles: ['play', 'time', 'spacer', quantity, 'volume', 'settings', 'web-fullscreen', 'fullscreen'], + }, +}) + +player.mount(document.body) +``` + +Style code: + +```css +.qier-player_controller_quantity { + position: relative; + height: 100%; + padding: 6px; + color: rgba(255, 255, 255, 0.8); + cursor: pointer; + font-size: 14px; +} + +.qier-player_controller_quantity_item { + display: flex; + align-items: center; + justify-content: center; + padding: 5px 8px; + width: 128px; + position: relative; +} + +.qier-player_controller_quantity_item:hover { + color: var(--theme-color); + background: rgba(255, 255, 255, 0.2); +} + +.qier-player_controller_quantity_item--active { + color: var(--theme-color); +} + +.qier-player_controller_quantity_item--active::before { + margin-right: 16px; + margin-bottom: 4px; + margin-left: 10px; + opacity: 1; + content: ''; + display: inline-block; + width: 5px; + height: 12px; + border-right: 1px solid var(--theme-color); + border-bottom: 1px solid var(--theme-color); + transform: rotate(45deg); + position: absolute; + left: 4px; +} + +.qier-player_controller_quantity_stuffing { + position: absolute; + bottom: 100%; + left: 0; + display: none; + width: 100%; + padding: 20px 0; +} +``` diff --git a/website/docs/en/guide/examples/video-screenshot.md b/website/docs/en/guide/examples/video-screenshot.md new file mode 100644 index 0000000..7de16e0 --- /dev/null +++ b/website/docs/en/guide/examples/video-screenshot.md @@ -0,0 +1,37 @@ +# Video Screenshot {#screen-shot} + +Video screenshots are one of the commonly used features. Here’s how to capture the current frame for a screenshot using the right-click menu: + +```js +import Player from 'qier-player' + +const screenshot = { + html: 'Screenshot', + click(player) { + const canvas = document.createElement('canvas') + canvas.width = player.video.videoWidth + canvas.height = player.video.videoHeight + canvas.getContext('2d').drawImage(player.video, 0, 0, canvas.width, canvas.height) + + canvas.toBlob((blob) => { + let dataURL = URL.createObjectURL(blob) + const link = document.createElement('a') + link.href = dataURL + link.download = `qier-player.${player.currentTime}.jpg` + link.style.display = 'none' + document.body.appendChild(link) + link.click() + document.body.removeChild(link) + URL.revokeObjectURL(dataURL) + }) + } +} + +const player = new Player({ + menus: ['loop', screenshot], +}) + +player.mount(document.body) +``` + +Of course, you can also use server-side tools (like `ffmpeg`) to take screenshots and generate accessible `URLs` for users to download. diff --git a/website/docs/en/guide/getting-started.md b/website/docs/en/guide/getting-started.md new file mode 100644 index 0000000..d5adbd5 --- /dev/null +++ b/website/docs/en/guide/getting-started.md @@ -0,0 +1,148 @@ +# Getting Started {#getting-started} + +## Installation {#installation} + +After reading the [installation section](./installation), you should know various installation methods. Now, let's assume we are using ES module import. + +::: code-group + +```sh [npm] +$ npm install qier-player +``` + +```sh [pnpm] +$ pnpm install qier-player +``` + +```sh [yarn] +$ yarn add qier-player +``` + +::: + +## Getting Started {#started} + +```js +import Player from 'qier-player' + +const player = new Player({ + src: 'https://vortesnail.github.io/qier-player-demo/static/media/video480p.d116ba09.mp4', +}) + +player.mount(document.body) +``` + +First, we import `Player`, create an instance, then pass in the video URL, and call the `mount` method to attach it to the `body` element. + +The `mount` method attaches the actual DOM elements generated by the player to the specified DOM element. It accepts a parameter, which can be a string (selector) or an actual DOM element. When it is a string, the internal implementation finds the actual DOM element using `document.querySelector`. + +## Accessing Related DOM Elements {#get-doms} + +After calling the `mount` method, you can access internal members through the instance. The following are commonly accessed: + +- **Mounted element**: Accessible via `container`. +- **Player root element**: Accessible via `el`. +- **video**: Accessible via `video`. + +```js +import Player from 'qier-player' + +const player = new Player({ + src: 'https://vortesnail.github.io/qier-player-demo/static/media/video480p.d116ba09.mp4', +}) + +player.mount(document.body) + +console.log(player.container) // document.body +console.log(player.el) +console.log(player.video) +``` + +## Instance Properties and Methods {#instance-properties-functions} + +After creating the instance `player`, there are many member properties that we can read. + +For example, the following code achieves autoplay and then pauses after `10` seconds. + +```js +player.muted = true // Mute +player.play() // Play + +setTimeout(() => { + player.pause() // Pause +}, 10000) +``` + +If we print the `player` instance in the console, you will find many member properties when expanded. For more details, please click on [Properties](../api/properties) and [Methods](../api/functions). + +## Event Listening {#instance-bus} + +The `player` has 5 methods related to events. + +| Method | Description | +| --------------------------------- | ---------------------------------- | +| emit(evt: string, ...args: any[]) | Dispatch event | +| on(evt: string, fn?: Function) | Listen for event | +| once(evt: string, fn?: Function) | Listen for event, callback function is called only once | +| off(evt: string, fn?: Function) | Unregister event listener | +| removeAllListeners(evt?: string) | Unregister all event listeners | + +You can use these methods to listen to built-in events. + +```js +import Player, { EVENT } form 'qier-player' + +const player = new Player() + +player.on(EVENT.PLAY, () => { + console.log('Playback started') +}) +``` + +`EVENT.PLAY` is essentially a string, using camel case naming as `Play`. + +You can also define custom event listeners. + +```js +import Player, { EVENT } form 'qier-player' + +const player = new Player() + +// Dispatch event +player.emit('CustomEvent') +// Listen for event and execute callback function +player.on('CustomEvent', () => { + console.log('Custom event triggered') +}) +``` + +For more built-in events, please see [Events](/zh/api/events). + +## Destruction {#instance-destroy} + +The `player` and all components implement the `Dispose` interface, meaning they have a `dispose` method. Calling this method will destroy the object and its DOM elements. + +```js +player.mount(document.body) +// Destroy player and its DOM elements after 5 seconds +setTimeout(() => player.dispose(), 5000) +``` + +## Multilevel {#muti-level} + +This player consists of 6 different functional levels, each with its own `z-index`. + +| Level | z-index | Description | +| ----------------- | ------ | -------------------------------- | +| Video Element | - | Video element has no z-index | +| Poster Image | 10 | Video poster | +| Loading Indicator | 20 | Loading indicator element displayed when video is loading | +| Control Bar | 30 | Bottom control bar for the video | +| Context Menu | 40 | Menu that pops up for the video element on right-click | +| Toast Notification | 50 | Notification box | + +Except for the `video` element, all other functional components use **absolute positioning**. After providing plugin functionality in the future, developers can decide on appropriate `z-index` values to avoid unnecessary blocking. + +## Questions & New Features {#questions} + +If you encounter bugs, want new features, or have usage-related questions, feel free to open an [issue](https://github.com/vortesnail/qier-player/issues/new/choose). diff --git a/website/docs/en/guide/installation.md b/website/docs/en/guide/installation.md new file mode 100644 index 0000000..32c6f2f --- /dev/null +++ b/website/docs/en/guide/installation.md @@ -0,0 +1,95 @@ +# Installation {#installation} + +In general, for local development, having good type hints is essential, and installing the ESM package is the better choice. + +## Package Installation {#esm-installation} + +ESM package installation: + +::: code-group + +```sh [npm] +$ npm install qier-player +``` + +```sh [pnpm] +$ pnpm install qier-player +``` + +```sh [yarn] +$ yarn add qier-player +``` + +::: + +Next, simply import it in your code: + +```js +import Player from 'qier-player' + +const player = new Player({ + src: 'your video URL', +}) + +player.mount('#root') +``` + +## CDN Service {#cdn-link} + +You can also download the UMD package via a `script` tag by including it in the appropriate place in your HTML file. + +```html + +``` + +When using the CDN method, if you do not import via ES Module, the way you access the exported module will differ. Here’s a comparison of the two. + +- ES Module Import + +```js +import Player, { Icon, I18n } from 'qier-player' +``` + +- Global Object Import + +```js +const { Player, Icon, I18n } = window.QierPlayer +``` + +Generally, when using a CDN, you’ll need to exclude the locally installed `qier-player` package from the final bundle if you’re using a build tool like Webpack. You can do this in Webpack as follows. + +```js +externals: { + 'qier-player': 'QierPlayer', +}, +``` + +::: warning +The above is a free CDN link, which may sometimes be inaccessible. It’s recommended to download the UMD file locally and upload it to your own server or use your own CDN service. +::: + +## Recommendations {#suggestion} + +During development, we usually build applications based on React or Vue. To bundle `qier-player`, we can follow these steps. + +1. Install the package locally using yarn or npm for better code hints. + +```bash +yarn add qier-player +# or +npm i qier-player --save +``` + +2. Include the online (CDN) link. + +```html + +``` + +3. Exclude the package + +```js +externals: { + 'qier-player': 'QierPlayer', +}, +``` diff --git a/website/docs/en/guide/menu.md b/website/docs/en/guide/menu.md new file mode 100644 index 0000000..c40e5c5 --- /dev/null +++ b/website/docs/en/guide/menu.md @@ -0,0 +1,109 @@ +# Right-Click Menu {#menu} + +When you right-click on the player, a menu appears that provides convenient actions (or information display). + +## Configuration {#menu-property} + +You can configure the menu using `menus` and `showDefaultMenu`, with the default configuration as follows: + +```js +new Player({ + menus: ['loop'], + showDefaultMenu: true, +}) +``` + +- `menus` has a default single menu item, which is **Loop Playback**. If you manually set it to an empty array, the right-click menu will not appear. +- `showDefaultMenu` determines whether to display the **native right-click menu**. When set to `true`, the browser's native right-click menu will show on the second click instead of our configured player menu. When set to `false`, the browser's right-click menu will never be displayed. + +## Custom Menu Items {#custom-menu-item} + +The right-click menu supports custom menu items. Each menu item type is as follows: + +```typescript +interface IMenuItem { + id?: string // Unique ID for the menu item + html?: string // Text for the menu item + hidden?: boolean // Whether the item is visible + disabled?: boolean // Whether the item is disabled + checked?: boolean // Whether the item is checked + init?: (player: Player, item: IMenuItem) => void // Called once during initialization + show?: (player: Player, item: IMenuItem) => void // Called every time the right-click menu is displayed + click?: (player: Player, item: IMenuItem) => void // Called every time the item is clicked +} +``` + +::: warning +The `html` property directly inserts an HTML string to generate DOM via innerHTML, without security processing. Ensure the string's safety yourself. +::: + +You can try adding a **Picture-in-Picture** feature to get started on developing your own menu items. + +```js +const pip = { + html: 'Picture-in-Picture', + init() { + // During initialization, check if the browser does not support Picture-in-Picture, and hide the menu item if unsupported + this.hidden = !document.pictureInPictureEnabled + }, + show(player, item) { + item.checked = document.pictureInPictureElement === player.video + }, + click(player, menuItem) { + if (player.video.readyState < 3) return // Video has not loaded successfully yet + if (document.pictureInPictureElement !== player.video) { + player.video.requestPictureInPicture() + } else { + document.exitPictureInPicture() + menuItem.checked = false + } + this.show(player, menuItem) + }, +} + +new Player({ + menus: ['loop', pip], +}) +``` + +In the above logic, we first define a menu item object and then add it directly to the configuration array. You can adjust the order freely. When you right-click on the player, you will see the `Picture-in-Picture` option. + +::: warning Need More Features? +If the currently exposed menu item interface does not meet your development needs, feel free to open an issue. +::: + +## Registering and Accessing Menu Items {#register-get-menu-item} + +The `player` instance provides two methods to register and access menu item objects. + +### Registering {#register-menu-item} + +#### `registerMenuItem(item: IMenuItem, id?: string)` + +Use this method to register a menu item, and then access it using the `id` string. This is typically used only in custom plugins. + +### Accessing {#get-menu-item} + +#### `getMenuItem(id: string)` + +Use this method to get the menu item with the specified `id`. + +```js +const pip = { ... } +const player = new Player({ ... }) +// Register +player.registerMenuItem(pip, 'pip') +// Access +const pipTmp = player.getMenuItem('pip') +// Modify +if (pipTmp) { + pipTmp.disabled = true + pipTmp.html = 'Picture-in-Picture (Disabled)' +} +``` + +You can change the menu item's configuration at any time; it will update the next time the right-click menu is displayed. + +## More Examples {#menu-more-example} + +- [Video Screenshot](./examples/video-screenshot) diff --git a/website/docs/en/guide/setting-menu.md b/website/docs/en/guide/setting-menu.md new file mode 100644 index 0000000..9e9fda4 --- /dev/null +++ b/website/docs/en/guide/setting-menu.md @@ -0,0 +1,96 @@ +# Settings Menu {#setting-menu} + +The settings menu is part of the [controller](./controller) under `settings`. + +Once you configure this item in the controller, you can customize and add settings menu items. The default configuration for the player is: + +```js +new Player({ + settings: ['mirroring', 'speed'], +}) +``` + +This means **Mirroring** and **Playback Speed** are included. If you prefer not to have them, you can remove them by adjusting the configuration array. + +If you want to customize the settings, pay attention to the interface definition for setting items. + +## Custom Settings Menu Items {#setting-menu-custom-menu-item} + +```ts +interface ISettingItemOption { + html?: string // Display text for the option + selectedText?: string // Text displayed when selected; if not provided, uses html + value?: T // The value of this item +} + +interface ISettingItem { + id?: any // Unique ID for the setting item + html?: string // Display text for the setting item + type?: 'switch' | 'select' // Type + checked?: boolean // Whether it is selected + options?: ISettingItemOption[] // Options configuration + value?: T // Currently selected value, corresponding to value in options + init?: (player: Player, item: ISettingItem) => void // Initialization call + change?: (value: T, player: Player, item: ISettingItem) => void // Called when the option changes + [key: string]: any +} +``` + +`html` refers to the text displayed for the setting menu item; for example, the `html` for `speed` is “Playback Speed.” + +Currently, there are two types of setting menu items: `switch` and `select`, each with different configuration requirements. + +## Switch + +The `switch` configuration uses `checked`. When the user clicks to change the value, the `change` function is called, with the first parameter being the new `checked` value. Notably, you don't need to manually toggle `checked` in the `change` function; it’s updated internally before `change` is called. + +## Select + +The `select` configuration utilizes `options`. Here’s a simple example of the built-in playback speed source code: + +```js +const speedSettingItem = () => ({ + id: 'speed', + type: 'select', + html: 'Playback Speed', + value: 1, + options: [ + { value: 0.25, html: '0.25' }, + { value: 0.5, html: '0.5' }, + { value: 1, html: 'Normal' }, + { value: 1.5, html: '1.5' }, + { value: 2, html: '2' }, + ], + init(player) { + player.playbackRate = 1 + }, + change(value, player) { + player.playbackRate = value + this.value = value + }, +}) +``` + +Isn’t it simple? 😊 + +## Registering and Accessing Settings Menu Items {#setting-menu-register-setting} + +The `player` instance provides two methods to register and retrieve menu item objects. + +### registerSettingItem(item: ISettingItem, id?: string) + +Register a settings menu item. + +### getSettingItem(id: string) + +Retrieve a settings menu item. + +```js +const player = new Player({ ... }) +const speed = player.getSettingItem('speed') +console.log(speed) +``` + +## More Examples {#setting-menu-more-example} + +- [Mirroring the Screen](./examples/mirroring) diff --git a/website/docs/en/guide/shortcut.md b/website/docs/en/guide/shortcut.md new file mode 100644 index 0000000..469d8cc --- /dev/null +++ b/website/docs/en/guide/shortcut.md @@ -0,0 +1,55 @@ +# Shortcut Keys {#shortcut} + +QierPlayer comes with common shortcut keys built-in, but they only take effect when the focus is on the player during page access. + +You can configure the shortcut key functionality through the `shortcutOptions` parameter. + +```ts +interface IShortcut { + disabled?: boolean + seekStep?: number + volumeStep?: number + showToast?: boolean + toastDelay?: number +} +``` + +For example, to disable shortcut keys functionality, you can configure it like this: + +```js +import Player from 'qier-player' + +const player = new Player({ + src: 'Your video URL', + shortcutOptions: { + disabled: true, + }, +}) +``` + +There are 6 default built-in shortcut keys: + +| Shortcut Key | Description | +| ------------ | --------------- | +| Left | Rewind | +| Right | Fast forward | +| Up | Increase volume | +| Down | Decrease volume | +| Esc | Exit fullscreen | +| Spacebar | Play or pause | + +The increment size for volume and progress can be controlled using the `seekStep` and `volumeStep` parameters, with default values of `5` and `0.1` respectively. + +```js +import Player from 'qier-player' + +const player = new Player({ + src: 'Your video URL', + shortcutOptions: { + seekStep: 10, + volumeStep: 0.2, + }, +}) +``` + +`showToast` determines whether to display a tooltip when fast forwarding/rewinding or adjusting the volume, and `toastDelay` determines the duration of the tooltip's presence, defaulting to `500` milliseconds. diff --git a/website/docs/en/guide/thumbnail.md b/website/docs/en/guide/thumbnail.md new file mode 100644 index 0000000..7ac5c98 --- /dev/null +++ b/website/docs/en/guide/thumbnail.md @@ -0,0 +1,110 @@ +# Video Thumbnail {#thumbnail} + +Most mainstream video platforms now support a feature that displays a thumbnail of the video content when the cursor hovers over a specific position on the video progress bar. This helps users quickly locate the desired content. QierPlayer also supports this configuration. + +Thumbnails in QierPlayer are configured using the `thumbnail` parameter, structured as follows: + +```ts +interface IThumbnail { + startSecond?: number + gapSecond?: number + row?: number + col?: number + width?: number + height?: number + images?: string[] +} +``` + +The default values are as follows: + +```ts +const defaultOpts: Required = { + startSecond: 0, + gapSecond: 5, + col: 5, + row: 5, + width: 160, + height: 90, + images: [], +} +``` + +Next, we will explain how to understand the above configuration and apply it in practice. + +## Principle {#principle} + +In frontend image performance optimization, we often use **sprites** to combine multiple images, reducing the number of HTTP requests. The thumbnails for our videos effectively extract many frames from the video and combine them into sprite images. + +The position of the displayed image is calculated based on the cursor's position in time (using CSS background positioning), and the above configuration provides information about the positions and dimensions of the individual frame images. + +Let's take a look at the image below: + + + +We can see that this sprite is composed of `5 x 4` small thumbnails; a video may have multiple sprite images. + +| Parameter | Description | +| ----------- | ----------------- | +| startSecond | The starting time for thumbnail creation; for example, if the thumbnail starts at `0` seconds, this will be `0`. | +| gapSecond | The time span for each small thumbnail; if one is captured every `1` second, this will be `1`. | +| col | The number of columns in the sprite. | +| row | The number of rows in the sprite. | +| width | The width of each small thumbnail. | +| height | The height of each small thumbnail. | +| images | An array of URLs for the sprite images. | + +## Creating Thumbnails {#make-thumbnails} + +Generally, after a user uploads a video to the server, the thumbnail generation is handled server-side. For Java, you can use [FFmpeg](https://www.ffmpeg.org/) or [JavaCV](https://github.com/bytedeco/javacv); for Node, you can use [Fluent ffmpeg](https://github.com/fluent-ffmpeg/node-fluent-ffmpeg). + +To make things easier, we will introduce how to use FFmpeg via the command line to create video thumbnails. + +::: tip Powerful Audio and Video Processing Tool +FFmpeg is an open-source, cross-platform audio and video processing tool that can be used for recording, converting, editing, and more. It supports nearly all common audio and video formats and can perform a variety of operations, including encoding, decoding, packaging, unpackaging, cutting, merging, compressing, transcoding, and extracting audio. + +In short, FFmpeg is a rich-featured, powerful, and flexible tool for audio and video processing, and many players use it as their core. +::: + +First, go to the [FFmpeg official website](https://www.ffmpeg.org/download.html) to download and install it, making sure to select the right version for your system (for example, if you are using macOS, select macOS). Once downloaded, you will have a command-line tool (you can also quickly install it via `brew install ffmpeg`). Open the tool. + +Then, execute the following command in the terminal: + +```sh +ffmpeg -i ./test-video.mp4 -vf 'fps=1/1:round=zero:start_time=0,scale=160x90,tile=5x4' t%d.jpg +``` + +This command generates a `5 x 4` sprite image with small thumbnails sized at `160 x 90`. The sprite file is named `t1.jpg`. + +::: warning Note +The demo video is only `17` seconds long. If a sprite is generated every `1` second, and the sprite specification is `5` columns and `4` rows, only one `t1.jpg` will be created. If the video is long enough, multiple sprites will be generated: `t1.jpg`, `t2.jpg`, `t3.jpg`, `t4.jpg...` +::: + +Explanation of the command parameters: + +- `-i` specifies the video file. +- `-vf` is followed by the filter; multiple filters are separated by `,`, and multiple parameters for a filter are separated by `:`. +- `fps=1/1` means to output `1` image every `1` second, `round=zero` rounds the timestamp to `0`. `start_time=0` starts capturing from `0` seconds. +- `scale=160x90` sets the output image resolution, and `tile=5x4` arranges the small images in a `5 x 4` grid. +- `t%d.jpg` specifies the file name, with `%d` indicating a numeric increment. + +After generating the images, you can configure them as follows: + +```js +new Player({ + // ...other configurations + thumbnail: { + col: 5, + row: 4, + startSecond: 0, + gapSecond: 1, + images: [ + '/thumbnails/t1.jpg', // Adjust the directory based on your placement + ], + }, +}) +``` + +::: warning Caution +If you pass an empty array to `thumbnail.images`, the small thumbnail frames will not display, so once you do pass it, please ensure the images are accessible. +::: diff --git a/website/docs/en/guide/what-is-qier-player.md b/website/docs/en/guide/what-is-qier-player.md new file mode 100644 index 0000000..cb5c585 --- /dev/null +++ b/website/docs/en/guide/what-is-qier-player.md @@ -0,0 +1,38 @@ +# What is QierPlayer? {#what-is-qier-player} + +`QierPlayer` is a simple and easy-to-use h5 player, supporting highly customizable UI and rich features of a modern web player. This project is written in Typescript, providing good type hints; more features will be gradually developed in the future, such as integrating bullet screen as a plugin and mobile compatibility. + +
+ +Just want to give it a try? Jump to [Getting Started](./getting-started). + +
+ + + + + + + +
+ +The name of qier-player comes from a beautiful girl's name in this world with the character "qi", affectionately called "qier". + +
+ +## Features {#features} + +- 📦 Out-of-the-box, eliminating the need for most UI style writing, fully functional. +- 🚄 Developed danmaku library, quickly integrate with the player. +- 🛡 Developed using TypeScript, providing complete type definition files. +- 📃 Easily customize themes, replacing original icons and theme colors is very simple. +- 🔖 Supports internationalization, simply call the API to register your language. + +## Future Plans {#future-plans} + +There are still many features that need to be implemented in this project. Some ideas for the future include: + +- **Design Plugin Integration Mechanism**: Support user-defined plugin integration. +- **Mobile Adaptation**: This requires attention to detail. diff --git a/website/docs/en/index.md b/website/docs/en/index.md new file mode 100644 index 0000000..eb5774c --- /dev/null +++ b/website/docs/en/index.md @@ -0,0 +1,51 @@ +--- +layout: home +title: QierPlayer +titleTemplate: The Modern web player + +hero: + name: 'QierPlayer' + text: 'The modern web player' + tagline: A simple and easy-to-use h5 player with highly customized UI and rich functions + actions: + - theme: brand + text: Get Started + link: /guide/getting-started + - theme: alt + text: View on GitHub + link: https://github.com/vortesnail/qier-player + image: + src: /logo.svg + alt: QierPlayer + +features: + - icon: + title: Customizable + details: Highly customizable UI, basically every place can be customized and replaced. + - icon: + title: Multifunction + details: By default, it supports full screen, web page full screen, playback speed, loop playback, mirror screen, context menu, video thumbnails, shortcut keys, internationalization, etc. + - icon: + title: Scalability + details: Customizable functions are provided, and plug-in mechanisms are provided to implement them. Functions including the control bar and right-click menu can be added in accordance with specifications. + - icon: + title: Danmaku + details: Provides an independent danmaku library that works perfectly with the player. + - icon: + title: Vanilla JS + details: Use TypeScript for vanilla JavaScript library development, regardless of what UI framework is used. + - icon: + title: Stream media + details: Supports access to any streaming media, such as hls and flv, etc. +--- + + + + + + + + diff --git a/website/docs/index.md b/website/docs/index.md deleted file mode 100644 index 9d2dead..0000000 --- a/website/docs/index.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -gapless: true ---- - - diff --git a/website/docs/index.zh-CN.md b/website/docs/index.zh-CN.md deleted file mode 100644 index 9d2dead..0000000 --- a/website/docs/index.zh-CN.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -gapless: true ---- - - diff --git a/website/public/img/favicon.ico b/website/docs/public/favicon.ico similarity index 100% rename from website/public/img/favicon.ico rename to website/docs/public/favicon.ico diff --git a/website/public/img/logo.png b/website/docs/public/logo.png similarity index 100% rename from website/public/img/logo.png rename to website/docs/public/logo.png diff --git a/website/docs/public/logo.svg b/website/docs/public/logo.svg new file mode 100644 index 0000000..5dfaf24 --- /dev/null +++ b/website/docs/public/logo.svg @@ -0,0 +1 @@ + diff --git a/website/docs/public/test-video.mp4 b/website/docs/public/test-video.mp4 new file mode 100644 index 0000000..465e5ae Binary files /dev/null and b/website/docs/public/test-video.mp4 differ diff --git a/website/docs/public/test-video_1080p.mp4 b/website/docs/public/test-video_1080p.mp4 new file mode 100644 index 0000000..133e231 Binary files /dev/null and b/website/docs/public/test-video_1080p.mp4 differ diff --git a/website/docs/public/test-video_480p.mp4 b/website/docs/public/test-video_480p.mp4 new file mode 100644 index 0000000..6a752cd Binary files /dev/null and b/website/docs/public/test-video_480p.mp4 differ diff --git a/website/docs/public/test-video_720p.mp4 b/website/docs/public/test-video_720p.mp4 new file mode 100644 index 0000000..5add625 Binary files /dev/null and b/website/docs/public/test-video_720p.mp4 differ diff --git a/website/docs/public/thumbnails/t1.jpg b/website/docs/public/thumbnails/t1.jpg new file mode 100644 index 0000000..7dd1fe8 Binary files /dev/null and b/website/docs/public/thumbnails/t1.jpg differ diff --git a/website/docs/zh/api/events.md b/website/docs/zh/api/events.md new file mode 100644 index 0000000..6d77c4a --- /dev/null +++ b/website/docs/zh/api/events.md @@ -0,0 +1,56 @@ +# 事件 {#events} + +播放器内部会抛出许多事件,你可以通过 `player.on`、`player.once` 方法进行监听,你也可以通过 `player.emit` 触发自定义或者已经定义的事件,事件名为大驼峰形式的字符串。 + +可以引入 `qier-player` 导出的 `EVENT` 对象来访问这些事件名。 + +```ts +import Player, { EVENT } from 'qier-player' + +const player = new Player(...) +console.log(EVENT.CONTROLLER_SHOW) +console.log('ControlShow') // 与上面一样的字符串 + +const noop = () => {} + +player.on(EVENT.CONTROLLER_SHOW, noop) +player.once(EVENT.CONTROLLER_SHOW, noop) +player.off(EVENT.CONTROLLER_SHOW, noop) +player.emit(EVENT.CONTROLLER_SHOW) +``` + +## 事件列表 + +| 事件名称 | 描述 | 枚举值 | +| -------------- | ------------------------------ | ----------------------- | +| Play | 播放视频 | EVENT.PLAY | +| Pause | 暂停播放视频 | EVENT.PAUSE | +| Ended | 视频结束 | EVENT.ENDED | +| TimeUpdate | 视频当前时间变更 | EVENT.TIME_UPDATE | +| Progess | 已下载视频范围变更 | EVENT.PROGRESS | +| DurationChange | 视频总时长变更 | EVENT.DURATION_CHANGE | +| VolumeChange | 音量大小变更 | EVENT.VOLUME_CHANGE | +| Waiting | 视频等待状态 | EVENT.WAITING | +| Stalled | 视频加载状态 | EVENT.STALLED | +| Canplay | 视频可播放状态 | EVENT.CANPLAY | +| LoadedMetadata | 视频源数据加载状态 | EVENT.LOADED_METADATA | +| RateChange | 视频播放速率变更 | EVENT.RATE_CHANGE | +| Error | 发生错误 | EVENT.ERROR | +| Seeked | 视频跳转 | EVENT.SEEKED | +| ControlShow | 控制器展示 | EVENT.CONTROLLER_SHOW | +| ControlHide | 控制器隐藏 | EVENT.CONTROLLER_HIDE | +| UpdateSize | 播放器尺寸变更 | EVENT.UPDATE_SIZE | +| WebEnterFullscreen | 进入网页全屏 | EVENT.WEB_ENTER_FULLSCREEN | +| WebExitFullscreen | 退出网页全屏 | EVENT.WEB_EXIT_FULLSCREEN | +| EnterFullscreen | 进入全屏 | EVENT.ENTER_FULLSCREEN | +| ExitFullscreen | 退出全屏 | EVENT.EXIT_FULLSCREEN | +| EnterPip | 进入画中画模式 | EVENT.ENTER_PIP | +| ExitPip | 退出画中画模式 | EVENT.EXIT_PIP | +| Mounted | 播放器已挂载 | EVENT.MOUNTED | +| AfterInit | 初始化完成 | EVENT.AFTER_INIT | +| BeforeDispose | 播放器销毁之前 | EVENT.BEFORE_DISPOSE | +| AfterDispose | 播放器销毁之后 | EVENT.AFTER_DISPOSE | +| PopoverShowChange | 弹框展示状态变更 | EVENT.POPOVER_SHOW_CHANGE | +| ControllerElesUpdate | 控制栏元素变更 | EVENT.CONTROLLER_ELES_UPDATE | +| LoadingShow | 加载指示器展示 | EVENT.LOADING_SHOW | +| LoadingHide | 加载指示器隐藏 | EVENT.LOADING_HIDE | diff --git a/website/docs/zh/api/functions.md b/website/docs/zh/api/functions.md new file mode 100644 index 0000000..7b661ac --- /dev/null +++ b/website/docs/zh/api/functions.md @@ -0,0 +1,52 @@ +# 方法 {#functions} + +创建的实例有许多方法可供掉用,你可以在控制台打印后查看: + +```js +const player = new Player({...}) +console.log(player) +``` + +## `mount(container?: IPlayerOptions['container']): void` + +播放器挂载的容器,如果初始化时没有传入 `container` 参数,那么调用该函数时的参数为必传。 + +## `play(): Promise | void` + +播放播放视频,调用的是 `video` 元素的原生事件。 + +## `pause(): void` + +暂停播放视频,调用的是 `video` 元素的原生事件。 + +## `seek(seconds: number): void` + +跳转到播放的指定时间,和设置 `player.currentTime` 相同作用。 + +## `incVolume(v = this.options.shortcutOptions.volumeStep): void` + +增加音量,步长为 `volumeStep` 设置的值。 + +## `decVolume(v = this.options.shortcutOptions.volumeStep): void` + +降低音量,步长为 `volumeStep` 设置的值。 + +## `forward(v = this.options.shortcutOptions.seekStep): void` + +快进,步长为 `seekStep` 设置的值。 + +## `rewind(v = this.options.shortcutOptions.seekStep): void` + +快退,步长为 `seekStep` 设置的值。 + +## `toggle(): void` + +播放或暂停视频。 + +## `toggleVolume(): void` + +切换静音状态。 + +## `dispose(): void` + +销毁播放器。 diff --git a/website/docs/zh/api/parameters.md b/website/docs/zh/api/parameters.md new file mode 100644 index 0000000..0ec3c84 --- /dev/null +++ b/website/docs/zh/api/parameters.md @@ -0,0 +1,186 @@ +# 参数 {#parameters} + +传入播放器构造函数的参数,在初始化播放器时可传入: + +```js +import Player from 'qier-player' + +const player = new Player({ + src: '/test-video_1080p.mp4', +}) + +console.log('player parameters', player.options) + +player.mount(document.body) +``` + +## 参数解释 + +| 参数名 | 描述 | 类型 | +| -------- | ---------- | ---------- | +| container | 播放器挂载的容器元素,同 `mount` 方法传入的参数,如果 `mount` 没有传入参数时,将使用该参数,当该参数为字符串时,将会自动查找对应元素 | `string \| HTMLElement` | +| video | 自行传入的 `video` 标签元素 | `HTMLVideoElement` | +| src | 视频地址,传入给 `video` 标签元素的 `src` 属性 | `string` | +| themeColor | 主题色,会影响整个播放器的视觉主题色 | `string` | +| videoProps | `video` 标签元素的属性 | `Record | +| posterOptions | 海报相关配置,详见 [IPosterOptions](#parameters-IPosterOptions) | `IPosterOptions` | +| loadingOptions | 加载指示器相关配置,详见 [ILoadingOptions](#parameters-ILoadingOptions) | `ILoadingOptions` | +| controller | 控制器相关配置,详见 [IController](#parameters-IController) | `IController` | +| progressOptions | 进度条相关配置,详见 [IProgressOptions](#parameters-IProgressOptions) | `IProgressOptions` | +| thumbnail | 缩略图相关配置,详见 [IThumbnail](#parameters-IThumbnail) | `IThumbnail` | +| settings | 设置菜单相关配置,详见 [ISettingItem](#parameters-ISettingItem) | `(ISettingItem \| string)[]` | +| menus | 右键菜单相关配置,详见 [IMenuItem](#parameters-IMenuItem) | `(IMenuItem \| string)[]` | +| showDefaultMenu | 用于决定是否显示**原生右键菜单**,值为 `true` 时,将在第二次单击时显示浏览器的原生右键菜单,而不是我们自己配置的播放器右键菜单。值为 `false` 时,将始终不显示浏览器右键菜单。 | `boolean` | +| shortcutOptions | 快捷键相关配置,详见 [IShortcut](#parameters-IShortcut) | `IShortcut` | + +## IPosterOptions {#parameters-IPosterOptions} + +| 参数名 | 描述 | 类型 | +| -------- | ---------- | ---------- | +| disabled | 是否禁用海报 | `boolean` | +| url | 海报图片的链接地址 | `string` | +| autoFill | 海报图片是否自动填满视频整个容器 | `boolean` | +| bgColor | 海报图片背景颜色,如果你的图片是有透明信息的,这个配置有必要填 | `string` | + +## ILoadingOptions {#parameters-ILoadingOptions} + +| 参数名 | 描述 | 类型 | +| -------- | ---------- | ---------- | +| disabled | 是否禁用加载指示器 | `boolean` | +| spinner | 自定义指示器 | `HTMLElement` | +| type | 内置的指示器动画,两个动画可选择 | `wave \| circle` | + +## IController {#parameters-IController} + +| 参数名 | 描述 | 类型 | +| -------- | ---------- | ---------- | +| progress | 进度条配置 | `(IControllerEle | string)[]` | +| eles | 控制栏配置 | `(IControllerEle | string)[]` | + +```ts +interface IControllerEle { + el: HTMLElement; + id?: any; + tip?: string; + tooltip?: Tooltip; + mounted?: boolean; + init?: (player: Player, tooltip: Tooltip) => void; + dispose?: () => void; + [key: string]: any; +} +``` + +## IProgressOptions {#parameters-IProgressOptions} + +| 参数名 | 描述 | 类型 | +| -------- | ---------- | ---------- | +| dot | 当前进度条末端的点,可自己写一个元素替换 | `HTMLElement` | +| playedBg | 已经播放过的进度条颜色 | `string` | +| buffBg | 缓存的进度条的颜色 | `string` | +| indicator | 是否展示光标在进度条上的指示器 | `boolean` | + +## IThumbnail {#parameters-IThumbnail} + +| 参数名 | 描述 | 类型 | +| -------- | ---------- | ---------- | +| startSecond | 缩略图开始时间 | `number` | +| gapSecond | 缩略图生成的间隔时间 | `number` | +| row | 雪碧图图行数 | `number` | +| col | 雪碧图图列数 | `number` | +| width | 缩略图宽度 | `number` | +| height | 缩略图高度 | `number` | +| images | 雪碧图链接数组 | `string[]` | + +## ISettingItem {#parameters-ISettingItem} + +```ts +interface ISettingItem { + id?: any; + html?: string; + type?: 'switch' | 'select'; + checked?: boolean; + options?: ISettingItemOption[]; + value?: T; + init?: (player: Player, item: ISettingItem) => void; + change?: (value: T, player: Player, item: ISettingItem) => void; + _switch?: Switch; + _selectedEl?: HTMLElement; + _optionEls?: HTMLElement[]; + _optionEl?: HTMLElement; + [key: string]: any; +} +``` + +```ts +interface ISettingItemOption { + html?: string; + selectedText?: string; + value?: T; +} +``` + +详细用法可参考[自定义设置菜单项](../guide/setting-menu#setting-menu-custom-menu-item) + +## IMenuItem {#parameters-IMenuItem} + +```ts +interface IMenuItem { + id?: string; + html?: string; + hidden?: boolean; + disabled?: boolean; + checked?: boolean; + init?: (player: Player, item: IMenuItem) => void; + show?: (player: Player, item: IMenuItem) => void; + click?: (player: Player, item: IMenuItem) => void; +} +``` + +详细用法可参考[右键菜单](../guide/menu) + +## IShortcut {#parameters-IShortcut} + +| 参数名 | 描述 | 类型 | +| -------- | ---------- | ---------- | +| disabled | 是否禁用快捷键 | `boolean` | +| seekStep | 使用快捷键时,单次快进、快退的步长,比如 `5` 秒 | `number` | +| volumeStep | 使用快捷键时,单次增加、减少的音量,比如 `0.1` | `number` | +| showToast | 使用快捷键时,是否展示弹框标识当前操作 | `boolean` | +| toastDelay | 使用快捷键时,弹框的存在时长 | `number` | + +## 默认值 + +```ts +const defaultOptions = { + posterOptions: { + disabled: true, + autoFill: true, + }, + loadingOptions: { + disabled: false, + type: 'circle', + }, + controller: { + progress: ['progress'], + eles: ['play', 'time', 'spacer', 'volume', 'settings', 'web-fullscreen', 'fullscreen'], + }, + settings: ['mirroring', 'speed'], + menus: ['loop'], + showDefaultMenu: true, + videoProps: { + crossorigin: 'anonymous', + preload: 'auto', + playsinline: 'true', + }, + progressOptions: { + indicator: true, + }, + shortcutOptions: { + disabled: false, + seekStep: 5, + volumeStep: 0.1, + showToast: true, + toastDelay: 500, + }, +} +``` diff --git a/website/docs/zh/api/properties.md b/website/docs/zh/api/properties.md new file mode 100644 index 0000000..86bcbf8 --- /dev/null +++ b/website/docs/zh/api/properties.md @@ -0,0 +1,215 @@ +# 属性 {#properties} + +创建的实例有许多属性可供读写,你可以在控制台打印后查看: + +```js +const player = new Player({...}) +console.log(player) +``` + +## `container: HTMLElement` + +播放器容器标签元素(`container` 参数或 `mount()` 传入的参数)。 + +## `el: HTMLDivElement` + +播放器本身最外层标签元素,即类名为 `qier-player` 的元素。 + +## `video: HTMLVideoElement` + +播放器 `video` 标签元素。 + +## `options: IPlayerOptions` + +传入的播放器所有配置项和默认的配置项,合并成一个对象。 + +## `rect: Rect` + +播放器尺寸相关。 + +- `rect.width` 播放器宽度,只可读。 +- `rect.height` 播放器高度,只可读。 +- `rect.x` 播放器横坐标,只可读。 +- `rect.y` 播放器纵坐标,只可读。 +- `rect.update` 更新播放器尺寸。 + +尽量不要调用 `player.rect.update()` 方法,而是触发 `UpdateSize` 事件, `player.emit('UpdateSize')`。 + +## `poster: Poster` + +播放器海报。 + +- `poster.el` 海报最外层标签元素。 +- `poster.isActive` 是否显示播放器海报,只可读。 +- `poster.show` 显示播放器海报方法。 +- `poster.hide` 隐藏播放器海报方法。 + +## `loading: Loading` + +播放器的加载指示器。 + +- `loading.el` 播放器加载指示器最外层标签元素。 +- `loading.isActive` 是否展示播放器加载指示器,只可读。 +- `loading.show` 显示播放器加载指示器方法。 +- `loading.hide` 隐藏播放器加载指示器方法。 + +## `webFullscreen: WebFullscreen` + +播放器网页全屏。 + +- `webFullscreen.isActive` 播放器是否处于网页全屏状态,只可读。 +- `webFullscreen.enter` 播放器进入网页全屏状态的方法。 +- `webFullscreen.exit` 播放器退出网页全屏状态的方法。 +- `webFullscreen.toggle` 进入或退出播放器网页全屏状态的方法。 + +## `fullscreen: Fullscreen` + +播放器全屏。 + +- `fullscreen.isActive` 播放器是否处于全屏状态,只可读。 +- `fullscreen.enter` 播放器进入全屏状态的方法。 +- `fullscreen.exit` 播放器退出全屏状态的方法。 +- `fullscreen.toggle` 进入或退出播放器全屏状态的方法。 +- `fullscreen.enableDblclick` 启用双击进入播放器全屏。 +- `fullscreen.disableDblclick` 禁用双击进入播放器全屏。 + +## `menu: Menu` + +播放器右键菜单。 + +- `menu.el` 右键菜单最外层标签元素。 +- `menu.isActive` 右键菜单是否打开,只可读。 +- `menu.show` 显示右键菜单方法。 +- `menu.hide` 隐藏右键菜单方法。 + +## `toast: Toast` + +播放器提示弹框。 + +- `toast.show` 显示一个提示弹框。 +- `toast.close` 关闭一个提示弹框。 + +使用方式: + +```ts +show(html: string | HTMLElement, position?: Position, timeout = 3000) +close(toastItem?: ToastItem) +``` + +类型签名: + +```ts +type Position = 'center' | 'left_top' | 'right_top' | 'left_bottom' | 'right_bottom' + +interface ToastItem { + el: HTMLElement + dispose: () => void +} +``` + +## `shortcut: Shortcut` + +播放器快捷键。 + +- `shortcut.register` 注册自定义快捷键处理器。 +- `shortcut.unregister` 注销自定义快捷键处理器。 +- `shortcut.enable` 启用快捷键。 +- `shortcut.disable` 禁用快捷键。 + +使用方式: + +```ts +register(code: number, handler: ShortcutHandler) +unregister(code: number) +``` + +类型签名: + +```ts +type ShortcutHandler = (player: Player) => void; +``` + +## `controller: Controller` + +播放器控制器。 + +- `controller.show` 显示播放器控制器。 +- `controller.hide` 隐藏播放器控制器。 + +## `settingItems: ISettingItem[]` + +播放器的设置菜单项,详情见 [ISettingItem](./parameters#parameters-ISettingItem) + +## `currentTime: number` + +设置当前播放的时间位置,该属性可以同时被获取和设置新的值。 + +比如跳转到第 `8` 秒: + +```ts +player.currentTime = 8 +``` + +## `loaded: boolean` + +指示视频是否加载成功,只可读。 + +## `duration: number` + +获取当前视频总时长,只可读。 + +## `buffered: TimeRanges` + +视频已加载的范围,只可读,可查看 [MDN buffered](https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/buffered)。 + +## `paused: boolean` + +视频当前是否暂停,只可读。 + +## `ended: boolean` + +视频当前是否播放结束,只可读。 + +## `playing: boolean` + +视频当前是否正在播放,只可读。 + +## `volume: number` + +视频音量大小,该属性可以同时被获取和设置新的值,范围是 `0~1`。 + +比如音量设置音量 `90%`: + +```ts +player.volume = 0.9 +``` + +## `muted: boolean` + +视频是否静音,该属性可以同时被获取和设置新的值。 + +比如将视频设置为静音: + +```ts +player.muted = true +``` + +## `loop: boolean` + +视频是否循环播放,该属性可以同时被获取和设置新的值。 + +比如将视频设置播放结束后重新播放: + +```ts +player.loop = true +``` + +## `playbackRate: number` + +视频播放速率,该属性可以同时被获取和设置新的值。 + +比如将视频播放速率调为 `2` 倍播放: + +```ts +player.playbackRate = 2 +``` diff --git a/website/docs/doc/controller.zh-CN.md b/website/docs/zh/guide/controller.md similarity index 67% rename from website/docs/doc/controller.zh-CN.md rename to website/docs/zh/guide/controller.md index cb6d825..5c8f869 100644 --- a/website/docs/doc/controller.zh-CN.md +++ b/website/docs/zh/guide/controller.md @@ -1,13 +1,8 @@ ---- -title: 控制器 -order: 6 ---- - -# 控制器 +# 控制器 {#controller} 在播放器的底部有供用户进行播放(暂停)、音量调节、全屏等操作的一系列控制项,也包括了播放进度条。 -## 配置 +## 配置 {#controller-settings} 可以通过 `controller` 参数来配置控制器每项的位置,渲染与否等,它是一个对象,包含 `progress` 和 `eles` 两个可配置项,前者是**进度条**,后者是**常规控制项**,可自定义添加新的控制项。 @@ -19,10 +14,12 @@ new Player({ progress: ['progress'], eles: ['play', 'time', 'spacer', 'volume', 'settings', 'web-fullscreen', 'fullscreen'], }, -}); +}) ``` +::: danger 重要! 上面代码中的数组内都是每一项内置控制项的 `id`,它们在数组中的位置决定了视图上它们的位置。 +::: 比较特别的是 `id` 为 `spacer` 控制项,它可以将控制项分成两部分。比如想把音量按钮放到左侧,只需将 `volume` 字符串放到 `spacer` 左侧即可。 @@ -30,7 +27,7 @@ new Player({ eles: ['play', 'time', 'volume', 'spacer', 'settings', 'web-fullscreen', 'fullscreen'], ``` -## 内置控制项 +## 内置控制项 {#controller-default-settings} | 控制项 id | 描述 | | -------------- | ------------------------------ | @@ -43,20 +40,20 @@ eles: ['play', 'time', 'volume', 'spacer', 'settings', 'web-fullscreen', 'fulls | web-fullscreen | 网页全屏 | | fullscreen | 全屏 | -## 自定义控制项 +## 自定义控制项 {#controller-custom-controller-item} 控制项是可以自定义的,: -```typescript +```ts interface IControllerEle { - el: HTMLElement; // 控制项的 DOM 元素 - id?: any; // 控制项的唯一 id - tip?: string; // 控制项的提示字符串 - tooltip?: Tooltip; // 提示组件对象 - mounted?: boolean; // 控制项是否已经挂载 - init?: (player: Player, tooltip: Tooltip) => void; // 控制项在初始化时会调用 - dispose?: () => void; // 销毁 - [key: string]: any; + el: HTMLElement // 控制项的 DOM 元素 + id?: any // 控制项的唯一 id + tip?: string // 控制项的提示字符串 + tooltip?: Tooltip // 提示组件对象 + mounted?: boolean // 控制项是否已经挂载 + init?: (player: Player, tooltip: Tooltip) => void // 控制项在初始化时会调用 + dispose?: () => void // 销毁 + [key: string]: any } ``` @@ -67,14 +64,14 @@ const control = { id: 'control', tip: '控制项', init(player) { - const textDom = document.createElement('span'); - textDom.innerText = '控'; - this.el.appendChild(textDom); + const textDom = document.createElement('span') + textDom.innerText = '控' + this.el.appendChild(textDom) }, -}; +} ``` -## 更新控制项 +## 更新控制项 {#controller-update-controller-item} 提供了内置的方法 `updateControllerEles()` 来动态更新控制条项。 @@ -86,17 +83,17 @@ player.updateControllerEles(['play', 'spacer', 'settings'], 'eles') 第一个参数是新的控制项数组,第二个参数要更新的配置项,这里为 `eles`,也就是最下面的控制栏配置。 -## 注册和获取控制项 +## 注册和获取控制项 {#controller-register-get-controller-item} `player` 实例提供了两个方法来注册和获取菜单项对象。 -### 注册 +### 注册 {#controller-register-controller-item} #### `registerControllerEle(ele: IControllerEle, id?: string)` 使用该方法注册控制项,然后使用 `id` 字符串访问,一般只会在自定义插件中会使用。 -### 获取 +### 获取 {#controller-get-controller-item} #### `getControllerEle(id: string)` @@ -104,11 +101,11 @@ player.updateControllerEles(['play', 'spacer', 'settings'], 'eles') ```js const control = { ... } -const player = new Player({ ... }); +const player = new Player({ ... }) // 注册 -player.registerControllerEle(control, 'control'); +player.registerControllerEle(control, 'control') // 获取 -const controlTmp = player.getControllerEle('control'); +const controlTmp = player.getControllerEle('control') if (controlTmp) { console.log(controlTmp) @@ -118,11 +115,13 @@ if (controlTmp) { 上面即注册我们自己定义的控制项,也可以获取内置的控制项,比如播放的类实例。 ```js -console.log(player.getControllerEle('play')); +console.log(player.getControllerEle('play')) ``` -⚠️ 其中 `spacer` 控制项比较特殊,通过 `getControlItem('spacer')` 并不能获取到它的实例。 +::: warning 警告 +其中 `spacer` 控制项比较特殊,通过 `getControlItem('spacer')` 并不能获取到它的实例。 +::: -## 更多例子 +## 更多例子 {#controller-more-examples} -- [画质切换](/zh-CN/doc/examples/quality-switch) +- [画质切换](./examples/quality-switch) diff --git a/website/docs/zh/guide/examples/custom-theme.md b/website/docs/zh/guide/examples/custom-theme.md new file mode 100644 index 0000000..e69de29 diff --git a/website/docs/doc/examples/mirroring.zh-CN.md b/website/docs/zh/guide/examples/mirroring.md similarity index 76% rename from website/docs/doc/examples/mirroring.zh-CN.md rename to website/docs/zh/guide/examples/mirroring.md index 0f6b185..5758c66 100644 --- a/website/docs/doc/examples/mirroring.zh-CN.md +++ b/website/docs/zh/guide/examples/mirroring.md @@ -1,14 +1,6 @@ ---- -title: 镜像画面 -order: 3 -group: - title: 例子 - order: 100 ---- +# 镜像画面 {#mirroring} -# 镜像画面 - -添加设置菜单项来控制是否将画面镜像的功能。 +添加设置菜单项来控制是否将画面镜像的功能: ```js const classMirroring = 'video_mirroring'; @@ -32,7 +24,7 @@ const player = new Player({ player.mount(document.body); ``` -简单样式。 +样式代码: ```css .qier-player_video_mirroring { diff --git a/website/docs/zh/guide/examples/quality-switch.md b/website/docs/zh/guide/examples/quality-switch.md new file mode 100644 index 0000000..be36eb8 --- /dev/null +++ b/website/docs/zh/guide/examples/quality-switch.md @@ -0,0 +1,166 @@ +# 画质切换 {#screen-shot} + +当你的视频是 `.m3u8` 这种流媒体格式,可以使用 hls.js 直接在客户端进行清晰度的切换,而对于 `.mp4` 这种容器格式,我们就要准备多个清晰度的视频源,以供用户切换。 + +::: tip 提示 +一般用户上传一个高清的视频到视频网站的服务端后,可以使用比如 FFmpeg 这种工具来重新编解码生成不同清晰度、码率的视频。 +::: + +比如我现在准备的视频有以下三种清晰度的视频: + +``` +test-video_1080p.mp4 +test-video_720p.mp4 +test-video_480p.mp4 +``` + +然后通过自定义一个控制器项来实现: + +```js +import Player from 'qier-player' + +const quantity = { + el: document.createElement('div'), + init(player) { + const quantities = [ + { + id: '1080p', + label: '1080p 高清', + checked: true, + dom: null + }, + { + id: '720p', + label: '720p 清晰', + checked: false, + dom: null + }, + { + id: '480p', + label: '480p 流畅', + checked: false, + dom: null + }, + ] + + this.btn = document.createElement('div') + this.btn.textContent = quantities[0].label + this.el.appendChild(this.btn) + // 填充以防光标离开控制项弹框就丢失 + this.stuffing = document.createElement('div') + this.stuffing.classList.add('qier-player_controller_quantity_stuffing') + this.el.appendChild(this.stuffing) + + this.popover = new Popover(this.el) + this.el.addEventListener('mouseenter', () => { + this.stuffing.style.display = 'block' + this.popover.show() + // 这段代码是通知其他弹框应该立即消失 + player.emit(EVENT.POPOVER_SHOW_CHANGE); + }) + this.el.addEventListener('mouseleave', () => { + this.stuffing.style.display = 'none' + this.popover.hide() + }) + this.el.classList.add('qier-player_controller_quantity') + + const quantityWrapper = document.createElement('div') + + quantities.forEach((item) => { + const quantityItem = document.createElement('div') + quantityItem.classList.add('qier-player_controller_quantity_item') + quantityItem.setAttribute('data-id', item.id) + quantityItem.innerText = item.label + item.dom = quantityItem + quantityWrapper.appendChild(quantityItem) + + quantityItem.addEventListener('click', (e) => { + e.stopPropagation() + if (e.target) { + const targetDom = e.target as HTMLElement + const id = targetDom.getAttribute('data-id') + const checkedItem = quantities.find(item => item.id === id) + if (!checkedItem.checked) { + quantities.forEach(item => { + item.checked = false + item.dom.classList.remove('qier-player_controller_quantity_item--active') + }) + checkedItem.checked = true + item.dom.classList.add('qier-player_controller_quantity_item--active') + this.btn.textContent = item.label + // 提示:这里使用 video 标签更改 src 的方式不友好,还有 bug,后续会修复,提供一个更新的方法 + player.video.src = `/test-video_${item.id}.mp4` + } + } + }) + }) + + this.popover.panelEl.appendChild(quantityWrapper); + } +} + +const player = new Player({ + controller: { + progress: ['progress'], + eles: ['play', 'time', 'spacer', quantity, 'volume', 'settings', 'web-fullscreen', 'fullscreen'], + }, +}) + +player.mount(document.body) +``` + +样式代码: + +```css +.qier-player_controller_quantity) { + position: relative; + height: 100%; + padding: 6px; + color: rgba(255, 255, 255, 0.8); + cursor: pointer; + font-size: 14px; +} + +.qier-player_controller_quantity_item { + display: flex; + align-items: center; + justify-content: center; + padding: 5px 8px; + width: 128px; + position: relative; +} + +.qier-player_controller_quantity_item:hover { + color: var(--theme-color); + background: rgba(255, 255, 255, 0.2); +} + +.qier-player_controller_quantity_item--active { + color: var(--theme-color); +} + +.qier-player_controller_quantity_item--active::before { + margin-right: 16px; + margin-bottom: 4px; + margin-left: 10px; + opacity: 1; + content: ''; + display: inline-block; + width: 5px; + height: 12px; + border-right: 1px solid var(--theme-color); + border-bottom: 1px solid var(--theme-color); + transform: rotate(45deg); + position: absolute; + left: 4px; +} + +.qier-player_controller_quantity_stuffing { + position: absolute; + bottom: 100%; + left: 0; + display: none; + width: 100%; + padding: 20px 0; +} +``` diff --git a/website/docs/zh/guide/examples/video-screenshot.md b/website/docs/zh/guide/examples/video-screenshot.md new file mode 100644 index 0000000..fb46db6 --- /dev/null +++ b/website/docs/zh/guide/examples/video-screenshot.md @@ -0,0 +1,37 @@ +# 视频截图 {#screen-shot} + +视频截图是常用的功能之一,接下来演示通过右键菜单采集当前帧进行截图功能: + +```js +import Player from 'qier-player' + +const screenshot = { + html: '截图', + click(player) { + const canvas = document.createElement('canvas') + canvas.width = player.video.videoWidth + canvas.height = player.video.videoHeight + canvas.getContext('2d').drawImage(player.video, 0, 0, canvas.width, canvas.height) + + canvas.toBlob((blob) => { + let dataURL = URL.createObjectURL(blob) + const link = document.createElement('a') + link.href = dataURL + link.download = `qier-player.${player.currentTime}.jpg` + link.style.display = 'none' + document.body.appendChild(link) + link.click() + document.body.removeChild(link) + URL.revokeObjectURL(dataURL) + }) + } +} + +const player = new Player({ + menus: ['loop', screenshot], +}) + +player.mount(document.body) +``` + +当然你也可以通过服务端的相关工具(比如 `ffmpeg`)来进行截图,生成可访问的 `url` 来返回给用户进行下载。 diff --git a/website/docs/doc/quick-start.zh-CN.md b/website/docs/zh/guide/getting-started.md similarity index 71% rename from website/docs/doc/quick-start.zh-CN.md rename to website/docs/zh/guide/getting-started.md index 4caf774..5b639fd 100644 --- a/website/docs/doc/quick-start.zh-CN.md +++ b/website/docs/zh/guide/getting-started.md @@ -1,38 +1,42 @@ ---- -title: 快速开始 -order: 3 ---- +# 快速开始 {#getting-started} -# 快速开始 +## 安装 {#installation} -## 安装 +通过[安装章节](./installation),大家应该知道各种安装方式,现在假如我们是基于 ES Module 引入。 -通过[安装章节](/zh-CN/doc/install),大家应该知道各种安装方式,现在假如我们是基于 ES Module 引入。 +::: code-group -```bash -yarn add qier-player -# or -npm i qier-player --save +```sh [npm] +$ npm install qier-player ``` -## 开始使用 +```sh [pnpm] +$ pnpm install qier-player +``` + +```sh [yarn] +$ yarn add qier-player +``` + +::: + +## 开始使用 {#started} ```js -import Player from 'qier-player'; +import Player from 'qier-player' const player = new Player({ src: 'https://vortesnail.github.io/qier-player-demo/static/media/video480p.d116ba09.mp4', -}); +}) -// player.mount('#root'); -player.mount(document.body); +player.mount(document.body) ``` 首先我们导入 `Player`,创建实例,接着传入视频地址,调用 `mount` 方法将它挂载到 `body` 元素下。 `mount` 方法可以将播放器实际产生的 DOM 元素挂载到指定 DOM 元素下,它接收一个参数,可以是一个字符串(选择器)或一个实际的 DOM 元素。当是字符串时,内部实现通过 `document.querySelector` 方法寻找到实际的 DOM 元素。 -## 获取相关 DOM 元素 +## 获取相关 DOM 元素 {#get-doms} 在执行 `mount` 方法后,可以通过实例访问内部的成员,以下是可能被经常访问的: @@ -41,37 +45,37 @@ player.mount(document.body); - **video**:通过 `video` 可访问。 ```js -import Player from 'qier-player'; +import Player from 'qier-player' const player = new Player({ src: 'https://vortesnail.github.io/qier-player-demo/static/media/video480p.d116ba09.mp4', -}); +}) -player.mount(document.body); +player.mount(document.body) -console.log(player.container); // document.body -console.log(player.el); -console.log(player.video); +console.log(player.container) // document.body +console.log(player.el) +console.log(player.video) ``` -## 实例属性和方法 +## 实例属性和方法 {#instance-properties-functions} 在我们新建实例 `player` 之后,有许多成员属性是可以供我们读取的。 比如以下代码可实现自动播放,`10` 秒后自动暂停。 ```js -player.muted = true; // 静音 -player.play(); // 播放 +player.muted = true // 静音 +player.play() // 播放 setTimeout(() => { - player.pause(); // 暂停 -}, 10000); + player.pause() // 暂停 +}, 10000) ``` -如果我们在控制台打印 `player` 实例,展开后你会发现有许多的成员属性,详情请点击[属性](/zh-CN/api/property)和[方法](/zh-CN/api/functions)查看。 +如果我们在控制台打印 `player` 实例,展开后你会发现有许多的成员属性,详情请点击[属性](../api/properties)和[方法](../api/functions)查看。 -## 事件监听 +## 事件监听 {#instance-bus} `player` 有下面 5 个事件相关的方法。 @@ -86,13 +90,13 @@ setTimeout(() => { 你可以使用这些方法监听内置事件。 ```js -import Player, { EVENT } form 'qier-player'; +import Player, { EVENT } form 'qier-player' -const player = new Player(); +const player = new Player() player.on(EVENT.PLAY, () => { - console.log('开始播放'); -}); + console.log('开始播放') +}) ``` `EVENT.PLAY` 本质上就是一个字符串,采用大驼峰命名法为 `Play`。 @@ -100,31 +104,31 @@ player.on(EVENT.PLAY, () => { 你也可以自定义监听事件。 ```js -import Player, { EVENT } form 'qier-player'; +import Player, { EVENT } form 'qier-player' -const player = new Player(); +const player = new Player() // 派发事件 -player.emit('CustomEvent'); +player.emit('CustomEvent') // 监听事件并执行回调函数 player.on('CustomEvent', () => { - console.log('自定义事件已触发'); -}); + console.log('自定义事件已触发') +}) ``` -更多内置事件请查看[事件](/zh-CN/api/events)。 +更多内置事件请查看[事件](/zh/api/events)。 -## 销毁 +## 销毁 {#instance-destroy} `player` 及所有组件都实现了 `Dispose` 接口,也就是拥有 `dispose` 方法,调用该方法将会销毁该对象及其 DOM 元素。 ```js -player.mount(document.body); +player.mount(document.body) // 5 秒后销毁 player 及其 DOM 元素 -setTimeout(() => player.dispose(), 5000); +setTimeout(() => player.dispose(), 5000) ``` -## 多层级 +## 多层级 {#muti-level} 该播放器有 6 个不同功能的层级组成,每个层级有自己的 `z-index`。 @@ -139,6 +143,6 @@ setTimeout(() => player.dispose(), 5000); 除了 `video` 元素,其它的功能组件都是采用**绝对定位**,在后续提供插件功能之后,开发者可以自己决定将 `z-index` 设置合适的数值,以避免不必要的遮挡。 -## 问题 & 新功能 +## 问题 & 新功能 {#questions} 如果你遇到 BUG、想要新功能或者有使用上的问题,欢迎发起 [issue](https://github.com/vortesnail/qier-player/issues/new/choose)。 diff --git a/website/docs/doc/install.zh-CN.md b/website/docs/zh/guide/installation.md similarity index 62% rename from website/docs/doc/install.zh-CN.md rename to website/docs/zh/guide/installation.md index e2ff346..8932b5c 100644 --- a/website/docs/doc/install.zh-CN.md +++ b/website/docs/zh/guide/installation.md @@ -1,37 +1,40 @@ ---- -title: 安装 -order: 2 ---- +# 安装 {#installation} -# 安装 +一般来说,本地开发时我们需要良好的类型提示,安装 esm 包进行开发是更佳的选择。 -## 包安装 +## 包安装 {#esm-installation} -npm 下载安装: +ESM 包安装: -```bash -npm i qier-player --save +::: code-group + +```sh [npm] +$ npm install qier-player ``` -或者你更喜欢 yarn: +```sh [pnpm] +$ pnpm install qier-player +``` -```bash -yarn add qier-player +```sh [yarn] +$ yarn add qier-player ``` +::: + 接下来在代码中引入即可: ```js -import Player from 'qier-player'; +import Player from 'qier-player' const player = new Player({ src: '你的视频地址', -}); +}) -player.mount('#root'); +player.mount('#root') ``` -## CDN 服务 +## CDN 服务 {#cdn-link} 通过 `script` 下载 umd 包也是可以的,只需要在 html 文件中的合适位置引入即可。 @@ -44,13 +47,13 @@ player.mount('#root'); - ES Module 引入 ```js -import Player, { Icon, I18n } from 'qier-player'; +import Player, { Icon, I18n } from 'qier-player' ``` - 全局对象引入 ```js -const { Player, Icon, I18n } = window.QierPlayer; +const { Player, Icon, I18n } = window.QierPlayer ``` 一般来说,使用 CDN 时,利用构建工具(比如 Webpack)我们需要将本地安装的 `qier-player` 包剔除于最终的打包文件中。在 Webpack 中我们可以这样做。 @@ -61,7 +64,11 @@ externals: { }, ``` -## 建议 +::: warning +上面的是免费的 CDN 链接,有时候访问不通,建议将 umd 文件下载到本地后上传至自己的服务器或者使用自己的 CDN 服务。 +::: + +## 建议 {#suggestion} 开发时我们一版会基于 React 或者 Vue 来构建应用,为了将 `qier-player` 分包,我们可以这样做。 @@ -73,7 +80,7 @@ yarn add qier-player npm i qier-player --save ``` -2. 引入 CDN 链接。 +2. 引入在线(CDN)链接。 ```html diff --git a/website/docs/doc/menu.zh-CN.md b/website/docs/zh/guide/menu.md similarity index 54% rename from website/docs/doc/menu.zh-CN.md rename to website/docs/zh/guide/menu.md index 32d0a3f..d170e22 100644 --- a/website/docs/doc/menu.zh-CN.md +++ b/website/docs/zh/guide/menu.md @@ -1,13 +1,8 @@ ---- -title: 右键菜单 -order: 5 ---- - -# 右键菜单 +# 右键菜单 {#menu} 在播放器上点击鼠标右键时,会出现一个菜单,用于提供一些便捷的操作(或信息展示)。 -## 配置 +## 配置 {#menu-property} 可根据 `menus` 和 `showDefaultMenu` 来对菜单进行配置,默认配置如下: @@ -15,32 +10,32 @@ order: 5 new Player({ menus: ['loop'], showDefaultMenu: true, -}); +}) ``` - `menus` 默认只有 1 个菜单项,即**循环播放**。当你手动将其设置为空数组时,右键菜单将不会出现。 - `showDefaultMenu` 是用于决定是否显示**原生右键菜单**,值为 `true` 时,将在第二次单击时显示浏览器的原生右键菜单,而不是我们自己配置的播放器右键菜单。值为 `false` 时,将始终不显示浏览器右键菜单。 -## 自定义菜单项 +## 自定义菜单项 {#custom-menu-item} 右键菜单支持自定义菜单项,每一个菜单项的类型如下: ```typescript interface IMenuItem { - id?: string; // 菜单项的唯一 id - html?: string; // 菜单项文字 - hidden?: boolean; // 是否可见 - disabled?: boolean; // 是否禁用 - checked?: boolean; // 是否为选中状态 - init?: (player: Player, item: IMenuItem) => void; // 初始化时会调用一次 - show?: (player: Player, item: IMenuItem) => void; // 每次右键菜单展示时会调用 - click?: (player: Player, item: IMenuItem) => void; // 每次单击该项时会调用 + id?: string // 菜单项的唯一 id + html?: string // 菜单项文字 + hidden?: boolean // 是否可见 + disabled?: boolean // 是否禁用 + checked?: boolean // 是否为选中状态 + init?: (player: Player, item: IMenuItem) => void // 初始化时会调用一次 + show?: (player: Player, item: IMenuItem) => void // 每次右键菜单展示时会调用 + click?: (player: Player, item: IMenuItem) => void // 每次单击该项时会调用 } ``` - - html 属性,会直接通过 innerHTML 插入 html 字符串生成 DOM,不会经过安全处理,需要自己保障字符串安全。 - +::: warning +html 属性,会直接通过 innerHTML 插入 html 字符串生成 DOM,不会经过安全处理,需要自己保障字符串安全。 +::: 你可以尝试添加一个**画中画**功能来初步体验开发自己的菜单项。 @@ -49,45 +44,45 @@ const pip = { html: '画中画', init() { // 初始化是判断浏览器是否不支持画中画,不支持则隐藏该菜单项 - this.hidden = !document.pictureInPictureEnabled; + this.hidden = !document.pictureInPictureEnabled }, show(player, item) { - item.checked = document.pictureInPictureElement === player.video; + item.checked = document.pictureInPictureElement === player.video }, click(player, menuItem) { - if (player.video.readyState < 3) return; // 视频还没加载成功 + if (player.video.readyState < 3) return // 视频还没加载成功 if (document.pictureInPictureElement !== player.video) { - player.video.requestPictureInPicture(); + player.video.requestPictureInPicture() } else { - document.exitPictureInPicture(); - menuItem.checked = false; + document.exitPictureInPicture() + menuItem.checked = false } - this.show(player, menuItem); + this.show(player, menuItem) }, -}; +} new Player({ menus: ['loop', pip], -}); +}) ``` -上面的逻辑中,我们先定义了一个菜单项对象,然后在配置时直接将其加入到数组中即可,你可以随意调整顺序。这时候你在播放器上右键鼠标唤出菜单,即可看到“画中画”选项。 +上面的逻辑中,我们先定义了一个菜单项对象,然后在配置时直接将其加入到数组中即可,你可以随意调整顺序。这时候你在播放器上右键鼠标唤出菜单,即可看到`画中画`选项。 - - 如果当前暴露出来的菜单项接口在你的开发中无法得到满足,欢迎提 issue。 - +::: warning 无法满足需求? +如果当前暴露出来的菜单项接口在你的开发中无法得到满足,欢迎提 issue。 +::: -## 注册和获取菜单项 +## 注册和获取菜单项 {#register-get-menu-item} `player` 实例提供了两个方法来注册和获取菜单项对象。 -### 注册 +### 注册 {#register-menu-item} #### `registerMenuItem(item: IMenuItem, id?: string)` 使用该方法注册菜单项,然后使用 `id` 字符串访问,一般只会在自定义插件中会使用。 -### 获取 +### 获取 {#get-menu-item} #### `getMenuItem(id: string)` @@ -95,20 +90,20 @@ new Player({ ```js const pip = { ... } -const player = new Player({ ... }); +const player = new Player({ ... }) // 注册 -player.registerMenuItem(pip, 'pip'); +player.registerMenuItem(pip, 'pip') // 获取 -const pipTmp = player.getMenuItem('pip'); +const pipTmp = player.getMenuItem('pip') // 修改 if (pipTmp) { - pipTmp.disabled = true; - pipTmp.html = '画中画(已被禁用)'; + pipTmp.disabled = true + pipTmp.html = '画中画(已被禁用)' } ``` 任何时机去改变菜单项的配置都可以,在下一次右键菜单显示时,配置项会得到更新。 -## 更多例子 +## 更多例子 {#menu-more-example} -- [视频截图](/zh-CN/doc/examples/video-screenshot) +- [视频截图](./examples/video-screenshot) diff --git a/website/docs/doc/setting-menu.zh-CN.md b/website/docs/zh/guide/setting-menu.md similarity index 66% rename from website/docs/doc/setting-menu.zh-CN.md rename to website/docs/zh/guide/setting-menu.md index 025da87..4501409 100644 --- a/website/docs/doc/setting-menu.zh-CN.md +++ b/website/docs/zh/guide/setting-menu.md @@ -1,43 +1,38 @@ ---- -title: 设置菜单 -order: 7 ---- +# 设置菜单 {#setting-menu} -# 设置菜单 - -设置菜单是[控制器](/zh-CN/doc/controller)其中的一项 `settings`。 +设置菜单是[控制器](./controller)其中的一项 `settings`。 当你在控制器中配置了这一项,你就能自定义添加设置菜单项。目前播放器的默认配置为: ```js new Player({ settings: ['mirroring', 'speed'], -}); +}) ``` 即**镜像**和**播放速度**,如果你不喜欢,你也可以通过配置数组中的某一项而去掉它们。 如果你想自定义设置项,这里的设置项接口定义需要你注意。 -## 自定义设置菜单项 +## 自定义设置菜单项 {#setting-menu-custom-menu-item} -```typescript +```ts interface ISettingItemOption { - html?: string; // 选项的显示文本 - selectedText?: string; // 被选中时显示的文本,不填写会使用 html - value?: T; // 表示该项的值 + html?: string // 选项的显示文本 + selectedText?: string // 被选中时显示的文本,不填写会使用 html + value?: T // 表示该项的值 } interface ISettingItem { - id?: any; // 设置项唯一 id - html?: string; // 设置项的显示文本 - type?: 'switch' | 'select'; // 类型 - checked?: boolean; // 是否被选中 - options?: ISettingItemOption[]; // 选项配置 - value?: T; // 当前选中的值,与 options 中的 value 对应 - init?: (player: Player, item: ISettingItem) => void; // 初始化调用 - change?: (value: T, player: Player, item: ISettingItem) => void; // 选项变化时调用 - [key: string]: any; + id?: any // 设置项唯一 id + html?: string // 设置项的显示文本 + type?: 'switch' | 'select' // 类型 + checked?: boolean // 是否被选中 + options?: ISettingItemOption[] // 选项配置 + value?: T // 当前选中的值,与 options 中的 value 对应 + init?: (player: Player, item: ISettingItem) => void // 初始化调用 + change?: (value: T, player: Player, item: ISettingItem) => void // 选项变化时调用 + [key: string]: any } ``` @@ -67,18 +62,18 @@ const speedSettingItem = () => ({ { value: 2, html: '2' }, ], init(player) { - player.playbackRate = 1; + player.playbackRate = 1 }, change(value, player) { - player.playbackRate = value; - this.value = value; + player.playbackRate = value + this.value = value }, -}); +}) ``` 是不是很简单呢?😊 -## 注册和获取设置菜单项 +## 注册和获取设置菜单项 {#setting-menu-register-setting} `player` 实例提供了两个方法来注册和获取菜单项对象。 @@ -96,6 +91,6 @@ const speed = player.getSettingItem('speed') console.log(speed) ``` -## 更多例子 +## 更多例子 {#setting-menu-more-example} -- [镜像画面](/zh-CN/doc/examples/mirroring) +- [镜像画面](./examples/mirroring) diff --git a/website/docs/doc/shortcut.zh-CN.md b/website/docs/zh/guide/shortcut.md similarity index 65% rename from website/docs/doc/shortcut.zh-CN.md rename to website/docs/zh/guide/shortcut.md index 47fa15f..39903d1 100644 --- a/website/docs/doc/shortcut.zh-CN.md +++ b/website/docs/zh/guide/shortcut.md @@ -1,38 +1,33 @@ ---- -title: 快捷键 -order: 4 ---- +# 快捷键 {#shortcut} -# 快捷键 - -Qier Player 内置了常用的快捷键,不过它们只有页面访问的在焦点在播放器时才能生效。 +QierPlayer 内置了常用的快捷键,不过它们只有页面访问的在焦点在播放器时才能生效。 可以通过 `shortcutOptions` 参数来配置快捷键功能。 -```typescript +```ts interface IShortcut { - disabled?: boolean; - seekStep?: number; - volumeStep?: number; - showToast?: boolean; - toastDelay?: number; + disabled?: boolean + seekStep?: number + volumeStep?: number + showToast?: boolean + toastDelay?: number } ``` -比如禁用快捷键功能可以这样配置。 +比如禁用快捷键功能可以这样配置: ```js -import Player from 'qier-player'; +import Player from 'qier-player' const player = new Player({ src: '你的视频地址', shortcutOptions: { disabled: true, }, -}); +}) ``` -默认内置有 6 个快捷键。 +默认内置有 6 个快捷键: | 快捷键 | 描述 | | -------- | ---------- | @@ -46,7 +41,7 @@ const player = new Player({ 音量和进度递增的大小可以通过 `seekStep` 和 `volumeStep` 参数控制,它们的默认值是 `5` 和 `0.1`。 ```js -import Player from 'qier-player'; +import Player from 'qier-player' const player = new Player({ src: '你的视频地址', @@ -54,7 +49,7 @@ const player = new Player({ seekStep: 10, volumeStep: 0.2, }, -}); +}) ``` `showToast` 决定是否显示快进/快退或音量加减时的提示框,`toastDelay` 决定提示框的存在时间,默认 `500` 毫秒。 diff --git a/website/docs/zh/guide/thumbnail.md b/website/docs/zh/guide/thumbnail.md new file mode 100644 index 0000000..b6b0007 --- /dev/null +++ b/website/docs/zh/guide/thumbnail.md @@ -0,0 +1,111 @@ +# 视频缩略图 {#thumbnail} + +现在主流的视频网站都支持一个功能,即光标移动到视频进度条某个位置时,会显示该处的视频内容缩略图,这有益于用户快速定位想要看到的内容时间点,QierPlayer 同样支持这个配置。 + +QierPlayer 的缩略图使用 `thumbnail` 参数配置,结构如下: + +```ts +interface IThumbnail { + startSecond?: number + gapSecond?: number + row?: number + col?: number + width?: number + height?: number + images?: string[] +} +``` + +默认值如下: + +```ts +const defaultOpts: Required = { + startSecond: 0, + gapSecond: 5, + col: 5, + row: 5, + width: 160, + height: 90, + images: [], +} +``` + +接下来会教你如何理解上述的配置,并进行实战。 + +## 原理 {#principle} + +在前端关于图片性能优化中,我们通常会使用**雪碧图**来对多个图片进行合并优化,以减少 http 请求连接量,而我们视频的缩略图相当于是提取了视频中的很多帧,将这些帧合并成一个一个的雪碧图。 + +再根据光标所在的时间计算出要展示当前雪碧图中的哪个位置的图(CSS 的背景定位),而上述的配置就是一些位置及单帧图片大小的信息。 + +我们看下图: + + + +我们可以看到这个雪碧图由 `5 x 4` 的小缩略图组成,一个视频可能有多张雪碧图。 + +| 参数 | 描述 | +| -------- | ---------- | +| startSecond | 缩略图制作的开始时间,比如缩略图是视频的第 `0` 秒开始制作的那么,这里就是 `0` | +| gapSecond | 一张小缩略图时间跨度,如果小缩略图是每 `1` 秒截一张,那么这里就填 `1` | +| col | 雪碧图的列数 | +| row | 雪碧图的行数 | +| width | 小缩略图的宽 | +| height | 小缩略图的高 | +| images | 雪碧图的链接地址数组 | + +## 制作缩略图 {#make-thumbnails} + +一般来说,用户上传视频至服务端之后,缩略图的制作是服务端进行的,比如 Java 你可以使用 [FFmpeg](https://www.ffmpeg.org/) 或 [JavaCV](https://github.com/bytedeco/javacv),如果是 Node 你可以使用 [Fluent ffmpeg](https://github.com/fluent-ffmpeg/node-fluent-ffmpeg)。 + +为了方便,在此介绍使用 FFmpeg 的命令行来制作视频缩略图。 + +::: tip 强大的音视频处理工具 +FFmpeg 是一个开源的跨平台音视频处理工具,可以用来对音频和视频进行录制、转换、编辑等多种操作。它支持几乎所有常见的音频和视频格式,可以进行音频、视频的编解码、封装、解封装等操作,还可以进行视频剪辑、合并、压缩、转码、提取音频等高级操作。 + +总之 FFmpeg 是一个功能丰富、强大而灵活的音视频处理工具,许多播放器都将其作为内核。 +::: + +首先去 [FFmpeg 官网](https://www.ffmpeg.org/download.html)下载安装,记得选对系统,比如我的是 macOS 就要选 macOS,下载完成后是一个命令行工具(你也可以用过 `brew install ffmepg` 快速安装),我们打开它即可。 + +然后在终端执行以下命令: + +```sh +ffmpeg -i ./test-video.mp4 -vf 'fps=1/1:round=zero:start_time=0,scale=160x90,tile=5x4' t%d.jpg +``` + +通过上面这个命令生成了一张 `5 x 4` 的雪碧图,小缩略图的尺寸是 `160 x 90`。雪碧图的文件名是 `t1.jpg`。 + +::: warning 疑问 +演示的视频只有 `17` 秒,如果 `1` 秒生成 `1` 张雪碧图,而雪碧图的规格为 `5` 列 `4` 行,所以只会生成一张 `t1.jpg`,如果视频足够长,将会生成多张雪碧图 `t1.jpg、t2.jpg、t3.jpg、t4.jpg...` +::: + +解释上面命令的参数: + +- `-i` 参数后面是视频文件。 +- `-vf` 参数后面跟着过滤器,多个过滤器用 `,` 分开,一个过滤器多个参数使用 `:` 分开。 +- `fps=1/1` 表示每 `1` 秒输出 `1` 张图片,`round=zero` 为时间戳向 `0` 取整。 + `start_time=0` 是让它从第 `0` 秒开始截取。 +- `scale=160x90` 设置输出图像分辨率大小,`tile=5x4` 将小图用 `5 x 4` 的方式组合在一起。 +- `t%d.jpg` 就是文件名,%d 表示按数字递增。 + +图片生成后,配置如下就可以: + +```js +new Player({ + // ...其他配置 + thumbnail: { + col: 5, + row: 4, + startSecond: 0, + gapSecond: 1, + images: [ + '/thumbnails/t1.jpg', // 目录根据自己放的位置来重写 + ], + }, +}) +``` + +::: warning 警示 +如果你传入的 `thumbnail.images` 配置时空数组,将不会展示小缩略图的框,所以一旦传入,请务必保证图是可访问的。 +::: diff --git a/website/docs/zh/guide/what-is-qier-player.md b/website/docs/zh/guide/what-is-qier-player.md new file mode 100644 index 0000000..c02d154 --- /dev/null +++ b/website/docs/zh/guide/what-is-qier-player.md @@ -0,0 +1,39 @@ +# QierPlayer 是什么? {#what-is-qier-player} + +`QierPlayer` 是一个简单易用的 h5 播放器,支持 UI 高度定制化、功能丰富的现代 web 播放器。本项目由 Typescript 编写,具备良好的类型提示;在未来会逐步开发更多特性,比如弹幕作为插件接入,兼容移动端等。 + +
+ +只是想尝试一下?跳到[快速开始](./getting-started)。 + +
+ + + + + + + +
+ +qier-player 的名字由来是一个在这个世界上很美好的女孩的名字中带有“琪”字,亲昵的称呼“琪儿”。 + +
+ +## 特性 {#features} + +- 📦 开箱即用,免去大部分 ui 的样式编写,功能齐全。 +- 🚄 已开发弹幕库,快速接入播放器。 +- 🛡 使用 TypeScript 开发,提供完整的类型定义文件。 +- 📃 主题轻松自定义,替换原有的图标、主题色非常简单。 +- 🔖 支持国际化,简单的 api 调用即可注册你的语言。 + +## 未来计划 {#future-plans} + +目前该项目还有许多需要做的功能,目前想到的有以下: + +- **设计插件接入机制**:支持用户自定义插件接入。 +- **移动端适配**:这是一个细心活儿。 +- **修复各种小问题**:比如弹幕在视频全屏或者调整尺寸后,发射的位置不对等。 diff --git a/website/docs/zh/index.md b/website/docs/zh/index.md new file mode 100644 index 0000000..70ff4ea --- /dev/null +++ b/website/docs/zh/index.md @@ -0,0 +1,51 @@ +--- +layout: home +title: QierPlayer +titleTemplate: 现代 web 播放器 + +hero: + name: 'QierPlayer' + text: '现代 web 播放器' + tagline: 简单易用的 h5 播放器,UI 高度定制化、功能丰富 + actions: + - theme: brand + text: 快速开始 + link: /zh/guide/getting-started + - theme: alt + text: GitHub + link: https://github.com/vortesnail/qier-player + image: + src: /logo.svg + alt: QierPlayer + +features: + - icon: + title: 可定制化 + details: 高度可定制的 ui,基本上每个地方都可以定制和替换。 + - icon: + title: 多功能 + details: 默认支持全屏、网页全屏、播放速度、循环播放、镜像画面、上下文菜单、视频缩略图、快捷键、国际化等。 + - icon: + title: 可扩展性 + details: 可自定义功能,提供插件机制实现,包括控制栏、右键菜单均可按照规范进行功能的添加。 + - icon: + title: 支持弹幕 + details: 提供独立的弹幕库,与播放器完美配合。 + - icon: + title: 与框架无关 + details: 使用 TypeScript 进行原生的 JavaScript 库开发,与使用什么 UI 框架无关。 + - icon: + title: 流媒体 + details: 支持接入任何流媒体,如 hls 和 flv 等。 +--- + + + + + + + + diff --git a/website/package.json b/website/package.json index 7a4c1b1..d384a95 100644 --- a/website/package.json +++ b/website/package.json @@ -1,36 +1,21 @@ { - "private": true, - "name": "dumi-app", - "scripts": { - "start": "dumi dev", - "build": "dumi build", - "prettier": "prettier --write \"**/*.{js,jsx,tsx,ts,less,md,json}\"" - }, + "name": "qier-player-docs", + "version": "0.1.0", + "description": "qier player docs", "main": "dist/index.js", - "module": "dist/index.esm.js", - "typings": "dist/index.d.ts", - "gitHooks": { - "pre-commit": "lint-staged" - }, - "lint-staged": { - "*.{js,jsx,less,md,json}": [ - "prettier --write" - ], - "*.ts?(x)": [ - "prettier --parser=typescript --write" - ] + "type": "module", + "scripts": { + "dev": "vitepress dev docs", + "build": "vitepress build docs", + "preview": "vitepress preview docs" }, + "author": "vortesnail", + "license": "MIT", "devDependencies": { - "@umijs/plugin-sass": "^1.1.1", - "dumi": "^1.1.26", - "lint-staged": "^10.0.7", - "prettier": "^2.2.1", - "react": "^17.0.2", - "react-dom": "^17.0.2", - "yorkie": "^2.0.0" + "vitepress": "^1.3.4" }, "dependencies": { - "prism-react-renderer": "^1.2.1", - "qier-player": "^2.0.2" + "@qier-player/danmaku": "^2.0.3", + "qier-player": "^2.0.3" } } diff --git a/website/public/img/customizable.svg b/website/public/img/customizable.svg deleted file mode 100644 index 63e0431..0000000 --- a/website/public/img/customizable.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/public/img/features.svg b/website/public/img/features.svg deleted file mode 100644 index 3d7eb70..0000000 --- a/website/public/img/features.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/public/img/github.svg b/website/public/img/github.svg deleted file mode 100644 index d3e3514..0000000 --- a/website/public/img/github.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/public/img/logo.svg b/website/public/img/logo.svg deleted file mode 100644 index 939c47a..0000000 --- a/website/public/img/logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/public/img/responsive.svg b/website/public/img/responsive.svg deleted file mode 100644 index e52acc9..0000000 --- a/website/public/img/responsive.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/public/img/screenshot-shadow.png b/website/public/img/screenshot-shadow.png deleted file mode 100644 index a416c3b..0000000 Binary files a/website/public/img/screenshot-shadow.png and /dev/null differ diff --git a/website/public/img/screenshot.png b/website/public/img/screenshot.png deleted file mode 100644 index af853e7..0000000 Binary files a/website/public/img/screenshot.png and /dev/null differ diff --git a/website/public/thumbnails/T1.jpg b/website/public/thumbnails/T1.jpg deleted file mode 100644 index 7670db7..0000000 Binary files a/website/public/thumbnails/T1.jpg and /dev/null differ diff --git a/website/public/thumbnails/T2.jpg b/website/public/thumbnails/T2.jpg deleted file mode 100644 index 48fd359..0000000 Binary files a/website/public/thumbnails/T2.jpg and /dev/null differ diff --git a/website/public/thumbnails/T3.jpg b/website/public/thumbnails/T3.jpg deleted file mode 100644 index 4710021..0000000 Binary files a/website/public/thumbnails/T3.jpg and /dev/null differ diff --git a/website/public/thumbnails/T4.jpg b/website/public/thumbnails/T4.jpg deleted file mode 100644 index 887d502..0000000 Binary files a/website/public/thumbnails/T4.jpg and /dev/null differ diff --git a/website/public/thumbnails/T5.jpg b/website/public/thumbnails/T5.jpg deleted file mode 100644 index 2cbe42a..0000000 Binary files a/website/public/thumbnails/T5.jpg and /dev/null differ diff --git a/website/tsconfig.json b/website/tsconfig.json deleted file mode 100644 index c44d6b5..0000000 --- a/website/tsconfig.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "compilerOptions": { - "target": "esnext", - "module": "esnext", - "moduleResolution": "node", - "importHelpers": true, - "jsx": "react", - "esModuleInterop": true, - "sourceMap": true, - "baseUrl": "./", - "strict": true, - "resolveJsonModule": true, - "paths": { - "@/*": ["src/*"], - "@@/*": ["src/.umi/*"] - }, - "allowSyntheticDefaultImports": true - }, - "exclude": [ - "node_modules", - "lib", - "es", - "dist", - "typings", - "**/__test__", - "test", - "docs", - "tests" - ] -} diff --git a/website/typings.d.ts b/website/typings.d.ts deleted file mode 100644 index 71e0e9f..0000000 --- a/website/typings.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare module '*.css'; -declare module '*.less'; diff --git a/website/yarn.lock b/website/yarn.lock index 0109927..da7b753 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -2,4801 +2,1123 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@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.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176" - integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA== - -"@babel/core@^7.7.2": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.0.tgz#749e57c68778b73ad8082775561f67f5196aafa8" - integrity sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw== - dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.15.0" - "@babel/helper-compilation-targets" "^7.15.0" - "@babel/helper-module-transforms" "^7.15.0" - "@babel/helpers" "^7.14.8" - "@babel/parser" "^7.15.0" - "@babel/template" "^7.14.5" - "@babel/traverse" "^7.15.0" - "@babel/types" "^7.15.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/generator@^7.15.0", "@babel/generator@^7.7.2": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz#a7d0c172e0d814974bad5aa77ace543b97917f15" - integrity sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ== - dependencies: - "@babel/types" "^7.15.0" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/helper-compilation-targets@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz#973df8cbd025515f3ff25db0c05efc704fa79818" - integrity sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A== - dependencies: - "@babel/compat-data" "^7.15.0" - "@babel/helper-validator-option" "^7.14.5" - browserslist "^4.16.6" - semver "^6.3.0" - -"@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.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.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.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz#0ddaf5299c8179f27f37327936553e9bba60990b" - integrity sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg== - dependencies: - "@babel/types" "^7.15.0" - -"@babel/helper-module-imports@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" - integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== - dependencies: - "@babel/types" "^7.14.5" - -"@babel/helper-module-transforms@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz#679275581ea056373eddbe360e1419ef23783b08" - integrity sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg== - dependencies: - "@babel/helper-module-imports" "^7.14.5" - "@babel/helper-replace-supers" "^7.15.0" - "@babel/helper-simple-access" "^7.14.8" - "@babel/helper-split-export-declaration" "^7.14.5" - "@babel/helper-validator-identifier" "^7.14.9" - "@babel/template" "^7.14.5" - "@babel/traverse" "^7.15.0" - "@babel/types" "^7.15.0" - -"@babel/helper-optimise-call-expression@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz#f27395a8619e0665b3f0364cddb41c25d71b499c" - integrity sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA== - dependencies: - "@babel/types" "^7.14.5" - -"@babel/helper-plugin-utils@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" - integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== - -"@babel/helper-replace-supers@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz#ace07708f5bf746bf2e6ba99572cce79b5d4e7f4" - integrity sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.15.0" - "@babel/helper-optimise-call-expression" "^7.14.5" - "@babel/traverse" "^7.15.0" - "@babel/types" "^7.15.0" - -"@babel/helper-simple-access@^7.14.8": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz#82e1fec0644a7e775c74d305f212c39f8fe73924" - integrity sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg== +"@algolia/autocomplete-core@1.9.3": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz#1d56482a768c33aae0868c8533049e02e8961be7" + integrity sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw== dependencies: - "@babel/types" "^7.14.8" + "@algolia/autocomplete-plugin-algolia-insights" "1.9.3" + "@algolia/autocomplete-shared" "1.9.3" -"@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.14.5", "@babel/helper-validator-identifier@^7.14.9": - version "7.14.9" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" - integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== - -"@babel/helper-validator-option@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" - integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== - -"@babel/helpers@^7.14.8": - version "7.15.3" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.3.tgz#c96838b752b95dcd525b4e741ed40bb1dc2a1357" - integrity sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g== - dependencies: - "@babel/template" "^7.14.5" - "@babel/traverse" "^7.15.0" - "@babel/types" "^7.15.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.14.5", "@babel/parser@^7.15.0": - version "7.15.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862" - integrity sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA== - -"@babel/plugin-transform-modules-commonjs@^7.7.2": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.0.tgz#3305896e5835f953b5cdb363acd9e8c2219a5281" - integrity sha512-3H/R9s8cXcOGE8kgMlmjYYC9nqr5ELiPkJn4q0mypBrjhYQoc+5/Maq69vV4xRPWnkzZuwJPf5rArxpB/35Cig== - dependencies: - "@babel/helper-module-transforms" "^7.15.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-simple-access" "^7.14.8" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/runtime@7.12.5": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" - integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== +"@algolia/autocomplete-plugin-algolia-insights@1.9.3": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz#9b7f8641052c8ead6d66c1623d444cbe19dde587" + integrity sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg== dependencies: - regenerator-runtime "^0.13.4" + "@algolia/autocomplete-shared" "1.9.3" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.1", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5": - version "7.15.3" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.3.tgz#2e1c2880ca118e5b2f9988322bd8a7656a32502b" - integrity sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA== +"@algolia/autocomplete-preset-algolia@1.9.3": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz#64cca4a4304cfcad2cf730e83067e0c1b2f485da" + integrity sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA== dependencies: - regenerator-runtime "^0.13.4" + "@algolia/autocomplete-shared" "1.9.3" -"@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.15.0", "@babel/traverse@^7.7.2": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz#4cca838fd1b2a03283c1f38e141f639d60b3fc98" - integrity sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw== - dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.15.0" - "@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.15.0" - "@babel/types" "^7.15.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.15.0", "@babel/types@^7.7.2": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" - integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ== - dependencies: - "@babel/helper-validator-identifier" "^7.14.9" +"@algolia/autocomplete-shared@1.9.3": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz#2e22e830d36f0a9cf2c0ccd3c7f6d59435b77dfa" + integrity sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ== + +"@algolia/cache-browser-local-storage@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.24.0.tgz#97bc6d067a9fd932b9c922faa6b7fd6e546e1348" + integrity sha512-t63W9BnoXVrGy9iYHBgObNXqYXM3tYXCjDSHeNwnsc324r4o5UiVKUiAB4THQ5z9U5hTj6qUvwg/Ez43ZD85ww== + dependencies: + "@algolia/cache-common" "4.24.0" + +"@algolia/cache-common@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.24.0.tgz#81a8d3a82ceb75302abb9b150a52eba9960c9744" + integrity sha512-emi+v+DmVLpMGhp0V9q9h5CdkURsNmFC+cOS6uK9ndeJm9J4TiqSvPYVu+THUP8P/S08rxf5x2P+p3CfID0Y4g== + +"@algolia/cache-in-memory@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.24.0.tgz#ffcf8872f3a10cb85c4f4641bdffd307933a6e44" + integrity sha512-gDrt2so19jW26jY3/MkFg5mEypFIPbPoXsQGQWAi6TrCPsNOSEYepBMPlucqWigsmEy/prp5ug2jy/N3PVG/8w== + dependencies: + "@algolia/cache-common" "4.24.0" + +"@algolia/client-account@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.24.0.tgz#eba7a921d828e7c8c40a32d4add21206c7fe12f1" + integrity sha512-adcvyJ3KjPZFDybxlqnf+5KgxJtBjwTPTeyG2aOyoJvx0Y8dUQAEOEVOJ/GBxX0WWNbmaSrhDURMhc+QeevDsA== + dependencies: + "@algolia/client-common" "4.24.0" + "@algolia/client-search" "4.24.0" + "@algolia/transporter" "4.24.0" + +"@algolia/client-analytics@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.24.0.tgz#9d2576c46a9093a14e668833c505ea697a1a3e30" + integrity sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg== + dependencies: + "@algolia/client-common" "4.24.0" + "@algolia/client-search" "4.24.0" + "@algolia/requester-common" "4.24.0" + "@algolia/transporter" "4.24.0" + +"@algolia/client-common@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.24.0.tgz#77c46eee42b9444a1d1c1583a83f7df4398a649d" + integrity sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA== + dependencies: + "@algolia/requester-common" "4.24.0" + "@algolia/transporter" "4.24.0" + +"@algolia/client-personalization@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.24.0.tgz#8b47789fb1cb0f8efbea0f79295b7c5a3850f6ae" + integrity sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w== + dependencies: + "@algolia/client-common" "4.24.0" + "@algolia/requester-common" "4.24.0" + "@algolia/transporter" "4.24.0" + +"@algolia/client-search@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.24.0.tgz#75e6c02d33ef3e0f34afd9962c085b856fc4a55f" + integrity sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA== + dependencies: + "@algolia/client-common" "4.24.0" + "@algolia/requester-common" "4.24.0" + "@algolia/transporter" "4.24.0" + +"@algolia/logger-common@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.24.0.tgz#28d439976019ec0a46ba7a1a739ef493d4ef8123" + integrity sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA== + +"@algolia/logger-console@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.24.0.tgz#c6ff486036cd90b81d07a95aaba04461da7e1c65" + integrity sha512-X4C8IoHgHfiUROfoRCV+lzSy+LHMgkoEEU1BbKcsfnV0i0S20zyy0NLww9dwVHUWNfPPxdMU+/wKmLGYf96yTg== + dependencies: + "@algolia/logger-common" "4.24.0" + +"@algolia/recommend@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-4.24.0.tgz#8a3f78aea471ee0a4836b78fd2aad4e9abcaaf34" + integrity sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw== + dependencies: + "@algolia/cache-browser-local-storage" "4.24.0" + "@algolia/cache-common" "4.24.0" + "@algolia/cache-in-memory" "4.24.0" + "@algolia/client-common" "4.24.0" + "@algolia/client-search" "4.24.0" + "@algolia/logger-common" "4.24.0" + "@algolia/logger-console" "4.24.0" + "@algolia/requester-browser-xhr" "4.24.0" + "@algolia/requester-common" "4.24.0" + "@algolia/requester-node-http" "4.24.0" + "@algolia/transporter" "4.24.0" + +"@algolia/requester-browser-xhr@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.24.0.tgz#313c5edab4ed73a052e75803855833b62dd19c16" + integrity sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA== + dependencies: + "@algolia/requester-common" "4.24.0" + +"@algolia/requester-common@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.24.0.tgz#1c60c198031f48fcdb9e34c4057a3ea987b9a436" + integrity sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA== + +"@algolia/requester-node-http@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.24.0.tgz#4461593714031d02aa7da221c49df675212f482f" + integrity sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw== + dependencies: + "@algolia/requester-common" "4.24.0" + +"@algolia/transporter@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.24.0.tgz#226bb1f8af62430374c1972b2e5c8580ab275102" + integrity sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA== + dependencies: + "@algolia/cache-common" "4.24.0" + "@algolia/logger-common" "4.24.0" + "@algolia/requester-common" "4.24.0" + +"@babel/helper-string-parser@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d" + integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== + +"@babel/helper-validator-identifier@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== + +"@babel/parser@^7.25.3": + version "7.25.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.6.tgz#85660c5ef388cbbf6e3d2a694ee97a38f18afe2f" + integrity sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q== + dependencies: + "@babel/types" "^7.25.6" + +"@babel/types@^7.25.6": + version "7.25.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.6.tgz#893942ddb858f32ae7a004ec9d3a76b3463ef8e6" + integrity sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw== + dependencies: + "@babel/helper-string-parser" "^7.24.8" + "@babel/helper-validator-identifier" "^7.24.7" to-fast-properties "^2.0.0" -"@bloomberg/record-tuple-polyfill@0.0.3": - version "0.0.3" - resolved "https://registry.yarnpkg.com/@bloomberg/record-tuple-polyfill/-/record-tuple-polyfill-0.0.3.tgz#0b03d18b88a30894caab14abd669b1cbbf47b843" - integrity sha512-sBnCqW0nqofE47mxFnw+lvx6kzsQstwaQMVkh66qm/A6IlsnH7WsyGuVXTou8RF2wL4W7ybOoHPvP2WgIo6rhQ== - -"@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@3.6.1", "@docsearch/css@^3.6.1": + version "3.6.1" + resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.6.1.tgz#f0a728ecb486c81f2d282650fc1820c914913408" + integrity sha512-VtVb5DS+0hRIprU2CO6ZQjK2Zg4QU5HrDM1+ix6rT0umsYvFvatMAnf97NHZlVWDaaLlx7GRfR/7FikANiM2Fg== + +"@docsearch/js@^3.6.1": + version "3.6.1" + resolved "https://registry.yarnpkg.com/@docsearch/js/-/js-3.6.1.tgz#aaf6c6427371a53c1cd46b2ed08b9c353e5cd02d" + integrity sha512-erI3RRZurDr1xES5hvYJ3Imp7jtrXj6f1xYIzDzxiS7nNBufYWPbJwrmMqWC5g9y165PmxEmN9pklGCdLi0Iqg== + dependencies: + "@docsearch/react" "3.6.1" + preact "^10.0.0" + +"@docsearch/react@3.6.1": + version "3.6.1" + resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.6.1.tgz#0f826df08693293806d64277d6d9c38636211b97" + integrity sha512-qXZkEPvybVhSXj0K7U3bXc233tk5e8PfhoZ6MhPOiik/qUQxYC+Dn9DnoS7CxHQQhHfCvTiN0eY9M12oRghEXw== + dependencies: + "@algolia/autocomplete-core" "1.9.3" + "@algolia/autocomplete-preset-algolia" "1.9.3" + "@docsearch/css" "3.6.1" + algoliasearch "^4.19.1" + +"@esbuild/aix-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" + integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== + +"@esbuild/android-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" + integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== + +"@esbuild/android-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" + integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== + +"@esbuild/android-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" + integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== + +"@esbuild/darwin-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" + integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== + +"@esbuild/darwin-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" + integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== + +"@esbuild/freebsd-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" + integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== + +"@esbuild/freebsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" + integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== + +"@esbuild/linux-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" + integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== + +"@esbuild/linux-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" + integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== + +"@esbuild/linux-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" + integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== + +"@esbuild/linux-loong64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" + integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== + +"@esbuild/linux-mips64el@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" + integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== + +"@esbuild/linux-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" + integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== + +"@esbuild/linux-riscv64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" + integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== + +"@esbuild/linux-s390x@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" + integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== + +"@esbuild/linux-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0" + integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== + +"@esbuild/netbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" + integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== + +"@esbuild/openbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" + integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== + +"@esbuild/sunos-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" + integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== + +"@esbuild/win32-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" + integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== + +"@esbuild/win32-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" + integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== + +"@esbuild/win32-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" + integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== + +"@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== -"@mapbox/hast-util-to-jsx@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@mapbox/hast-util-to-jsx/-/hast-util-to-jsx-1.0.0.tgz#90ce46b0d2dde42d5ea4d4a1e0b26b9ce2215013" - integrity sha512-HJRp3qkr0uGIBFASzA8rVATLo6y/UoOMoD8eXsG8HVofk5Dokc9PV+dh266zYLZniYgtpJbc2+AKf1fNpsVqAA== - dependencies: - kebab-case "^1.0.0" - postcss "^7.0.31" - postcss-js "^2.0.3" - property-information "^5.5.0" - react-attr-converter "^0.3.1" - stringify-entities "^3.0.1" - stringify-object "^3.3.0" - -"@tootallnate/once@1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" - integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== - -"@types/hast@^2.0.0": - version "2.3.4" - resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.4.tgz#8aa5ef92c117d20d974a82bdfb6a648b08c0bafc" - integrity sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g== - dependencies: - "@types/unist" "*" +"@qier-player/danmaku@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@qier-player/danmaku/-/danmaku-2.0.3.tgz#a735e5199332f415bf5e3884ec775421f8c23aaa" + integrity sha512-/WBLnfIU/jKXYVz4MqJgQyiPBH4LkPIN/yrUtI4A25n1zgR6QLlx3tVjacj5aGgyGoPMIBnxcLTo3Q8e/i1OCA== + +"@rollup/rollup-android-arm-eabi@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz#8b613b9725e8f9479d142970b106b6ae878610d5" + integrity sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w== + +"@rollup/rollup-android-arm64@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz#654ca1049189132ff602bfcf8df14c18da1f15fb" + integrity sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA== + +"@rollup/rollup-darwin-arm64@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz#6d241d099d1518ef0c2205d96b3fa52e0fe1954b" + integrity sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q== + +"@rollup/rollup-darwin-x64@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz#42bd19d292a57ee11734c980c4650de26b457791" + integrity sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw== + +"@rollup/rollup-linux-arm-gnueabihf@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz#f23555ee3d8fe941c5c5fd458cd22b65eb1c2232" + integrity sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ== + +"@rollup/rollup-linux-arm-musleabihf@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz#f3bbd1ae2420f5539d40ac1fde2b38da67779baa" + integrity sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg== + +"@rollup/rollup-linux-arm64-gnu@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz#7abe900120113e08a1f90afb84c7c28774054d15" + integrity sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw== + +"@rollup/rollup-linux-arm64-musl@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz#9e655285c8175cd44f57d6a1e8e5dedfbba1d820" + integrity sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA== + +"@rollup/rollup-linux-powerpc64le-gnu@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz#9a79ae6c9e9d8fe83d49e2712ecf4302db5bef5e" + integrity sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg== + +"@rollup/rollup-linux-riscv64-gnu@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz#67ac70eca4ace8e2942fabca95164e8874ab8128" + integrity sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA== + +"@rollup/rollup-linux-s390x-gnu@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz#9f883a7440f51a22ed7f99e1d070bd84ea5005fc" + integrity sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q== + +"@rollup/rollup-linux-x64-gnu@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz#70116ae6c577fe367f58559e2cffb5641a1dd9d0" + integrity sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg== + +"@rollup/rollup-linux-x64-musl@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz#f473f88219feb07b0b98b53a7923be716d1d182f" + integrity sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g== + +"@rollup/rollup-win32-arm64-msvc@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz#4349482d17f5d1c58604d1c8900540d676f420e0" + integrity sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw== + +"@rollup/rollup-win32-ia32-msvc@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz#a6fc39a15db618040ec3c2a24c1e26cb5f4d7422" + integrity sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g== + +"@rollup/rollup-win32-x64-msvc@4.22.4": + version "4.22.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz#3dd5d53e900df2a40841882c02e56f866c04d202" + integrity sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q== + +"@shikijs/core@1.18.0", "@shikijs/core@^1.13.0": + version "1.18.0" + resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.18.0.tgz#30dde8e53026dada606c4cf7f32d80a3f33d437c" + integrity sha512-VK4BNVCd2leY62Nm2JjyxtRLkyrZT/tv104O81eyaCjHq4Adceq2uJVFJJAIof6lT1mBwZrEo2qT/T+grv3MQQ== + dependencies: + "@shikijs/engine-javascript" "1.18.0" + "@shikijs/engine-oniguruma" "1.18.0" + "@shikijs/types" "1.18.0" + "@shikijs/vscode-textmate" "^9.2.2" + "@types/hast" "^3.0.4" + hast-util-to-html "^9.0.3" + +"@shikijs/engine-javascript@1.18.0": + version "1.18.0" + resolved "https://registry.yarnpkg.com/@shikijs/engine-javascript/-/engine-javascript-1.18.0.tgz#9888011c5d869a687b42e3e56c7243f15a73524b" + integrity sha512-qoP/aO/ATNwYAUw1YMdaip/YVEstMZEgrwhePm83Ll9OeQPuxDZd48szZR8oSQNQBT8m8UlWxZv8EA3lFuyI5A== + dependencies: + "@shikijs/types" "1.18.0" + "@shikijs/vscode-textmate" "^9.2.2" + oniguruma-to-js "0.4.3" + +"@shikijs/engine-oniguruma@1.18.0": + version "1.18.0" + resolved "https://registry.yarnpkg.com/@shikijs/engine-oniguruma/-/engine-oniguruma-1.18.0.tgz#7e57fd19b62b18cf2de382da684d042ee934f65d" + integrity sha512-B9u0ZKI/cud+TcmF8Chyh+R4V5qQVvyDOqXC2l2a4x73PBSBc6sZ0JRAX3eqyJswqir6ktwApUUGBYePdKnMJg== + dependencies: + "@shikijs/types" "1.18.0" + "@shikijs/vscode-textmate" "^9.2.2" + +"@shikijs/transformers@^1.13.0": + version "1.18.0" + resolved "https://registry.yarnpkg.com/@shikijs/transformers/-/transformers-1.18.0.tgz#c46539169ea2ae8af32d1e1167196b8e2ac6e4b3" + integrity sha512-EdX/UIVaaS8qp9NWRyHIXp2dmuLpdVvx+UVpbIn9eafFlLemAuljPb2+K40ie6jrlg0uUIqkg25CM/8I34yBNw== + dependencies: + shiki "1.18.0" + +"@shikijs/types@1.18.0": + version "1.18.0" + resolved "https://registry.yarnpkg.com/@shikijs/types/-/types-1.18.0.tgz#4c2d62d17f78cbfc051a15480ab4dfb0f06196c9" + integrity sha512-O9N36UEaGGrxv1yUrN2nye7gDLG5Uq0/c1LyfmxsvzNPqlHzWo9DI0A4+fhW2y3bGKuQu/fwS7EPdKJJCowcVA== + dependencies: + "@shikijs/vscode-textmate" "^9.2.2" + "@types/hast" "^3.0.4" + +"@shikijs/vscode-textmate@^9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@shikijs/vscode-textmate/-/vscode-textmate-9.2.2.tgz#24571f50625c7cd075f9efe0def8b9d2c0930ada" + integrity sha512-TMp15K+GGYrWlZM8+Lnj9EaHEFmOen0WJBrfa17hF7taDOYthuPPV0GWzfd/9iMij0akS/8Yw2ikquH7uVi/fg== + +"@types/estree@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== -"@types/history@*": - version "4.7.9" - resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.9.tgz#1cfb6d60ef3822c589f18e70f8b12f9a28ce8724" - integrity sha512-MUc6zSmU3tEVnkQ78q0peeEjKWPUADMlC/t++2bI8WnAG2tvYRPIgHG8lWkXwqc8MsUF6Z2MOf+Mh5sazOmhiQ== - -"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8": - version "7.0.9" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" - integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== - -"@types/mathjax@^0.0.36": - version "0.0.36" - resolved "https://registry.yarnpkg.com/@types/mathjax/-/mathjax-0.0.36.tgz#18cf766f88ac0cd4e7ee8282b1286049bb6aa682" - integrity sha512-TqDJc2GWuTqd/m+G/FbNkN+/TF2OCCHvcawmhIrUaZkdVquMdNZmNiNUkupNg9qctorXXkVLVSogZv1DhmgLmg== - -"@types/mdast@^3.0.0": - version "3.0.10" - resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af" - integrity sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA== +"@types/hast@^3.0.0", "@types/hast@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa" + integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ== dependencies: "@types/unist" "*" -"@types/node@*": - version "16.7.8" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.7.8.tgz#2448be5f24fe6b77114632b6350fcd219334651e" - integrity sha512-8upnoQU0OPzbIkm+ZMM0zCeFCkw2s3mS0IWdx0+AAaWqm4fkBb0UJp8Edl7FVKRamYbpJC/aVsHpKWBIbiC7Zg== - -"@types/node@^14.14.28": - version "14.17.12" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.12.tgz#7a31f720b85a617e54e42d24c4ace136601656c7" - integrity sha512-vhUqgjJR1qxwTWV5Ps5txuy2XMdf7Fw+OrdChRboy8BmWUPkckOhphaohzFG6b8DW7CrxaBMdrdJ47SYFq1okw== - -"@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/prop-types@*": - version "15.7.4" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11" - integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ== - -"@types/react-dom@^16.9.8": - version "16.9.14" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.14.tgz#674b8f116645fe5266b40b525777fc6bb8eb3bcd" - integrity sha512-FIX2AVmPTGP30OUJ+0vadeIFJJ07Mh1m+U0rxfgyW34p3rTlXI+nlenvAxNn4BP36YyI9IJ/+UJ7Wu22N1pI7A== - dependencies: - "@types/react" "^16" - -"@types/react-router-config@5.0.2": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@types/react-router-config/-/react-router-config-5.0.2.tgz#4d3b52e71ed363a1976a12321e67b09a99ad6d10" - integrity sha512-WOSetDV3YPxbkVJAdv/bqExJjmcdCi/vpCJh3NfQOy1X15vHMSiMioXIcGekXDJJYhqGUMDo9e337mh508foAA== - dependencies: - "@types/history" "*" - "@types/react" "*" - "@types/react-router" "*" - -"@types/react-router-config@^5.0.2": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@types/react-router-config/-/react-router-config-5.0.3.tgz#72a53561bcb5e13b82c576527b818fa2579591c7" - integrity sha512-38vpjXic0+E2sIBEKUe+RrCmbc8RqcQhNV8OmU3KUcwgy/yzTeo67MhllP+0zjZWNr7Lhw+RnUkL0hzkf63nUQ== - dependencies: - "@types/history" "*" - "@types/react" "*" - "@types/react-router" "*" - -"@types/react-router-dom@5.1.7": - version "5.1.7" - resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.1.7.tgz#a126d9ea76079ffbbdb0d9225073eb5797ab7271" - integrity sha512-D5mHD6TbdV/DNHYsnwBTv+y73ei+mMjrkGrla86HthE4/PVvL1J94Bu3qABU+COXzpL23T1EZapVVpwHuBXiUg== - dependencies: - "@types/history" "*" - "@types/react" "*" - "@types/react-router" "*" - -"@types/react-router@*": - version "5.1.16" - resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.16.tgz#f3ba045fb96634e38b21531c482f9aeb37608a99" - integrity sha512-8d7nR/fNSqlTFGHti0R3F9WwIertOaaA1UEB8/jr5l5mDMOs4CidEgvvYMw4ivqrBK+vtVLxyTj2P+Pr/dtgzg== - dependencies: - "@types/history" "*" - "@types/react" "*" - -"@types/react-router@5.1.12": - version "5.1.12" - resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.12.tgz#0f300e09468e7aed86e18241c90238c18c377e51" - integrity sha512-0bhXQwHYfMeJlCh7mGhc0VJTRm0Gk+Z8T00aiP4702mDUuLs9SMhnd2DitpjWFjdOecx2UXtICK14H9iMnziGA== - dependencies: - "@types/history" "*" - "@types/react" "*" - -"@types/react@*": - version "17.0.19" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.19.tgz#8f2a85e8180a43b57966b237d26a29481dacc991" - integrity sha512-sX1HisdB1/ZESixMTGnMxH9TDe8Sk709734fEQZzCV/4lSu9kJCPbo2PbTRoZM+53Pp0P10hYVyReUueGwUi4A== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - -"@types/react@^16", "@types/react@^16.9.43": - version "16.14.14" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.14.tgz#853de95a32a6a0e719192e222eacad024add2b8e" - integrity sha512-uwIWDYW8LznHzEMJl7ag9St1RsK0gw/xaFZ5+uI1ZM1HndwUgmPH3/wQkSb87GkOVg7shUxnpNW8DcN0AzvG5Q== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - -"@types/sax@^1.2.1": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@types/sax/-/sax-1.2.3.tgz#b630ac1403ebd7812e0bf9a10de9bf5077afb348" - integrity sha512-+QSw6Tqvs/KQpZX8DvIl3hZSjNFLW/OqE5nlyHXtTwODaJvioN2rOWpBNEWZp2HZUFhOh+VohmJku/WxEXU2XA== - dependencies: - "@types/node" "*" - -"@types/scheduler@*": - version "0.16.2" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" - integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== - -"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" - integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== - -"@umijs/ast@3.5.17": - version "3.5.17" - resolved "https://registry.yarnpkg.com/@umijs/ast/-/ast-3.5.17.tgz#868401050684d1b581c734370a4bab439a1e25d8" - integrity sha512-jVxXXiWUBk+M51nV3mlNynb8yBM9MloTX4LQC4KerBXMG6HLP8aWPJLzH+qXQUWR8Wf2NqeNIMfqQT1XHvyZ0A== - dependencies: - "@umijs/utils" "3.5.17" +"@types/linkify-it@^5": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-5.0.0.tgz#21413001973106cda1c3a9b91eedd4ccd5469d76" + integrity sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q== -"@umijs/babel-plugin-auto-css-modules@3.5.17": - version "3.5.17" - resolved "https://registry.yarnpkg.com/@umijs/babel-plugin-auto-css-modules/-/babel-plugin-auto-css-modules-3.5.17.tgz#26f52d54ce2361a8ffa19b54551699ec691ab95c" - integrity sha512-ZEnPUnIxtMvEZCetCVcC5s+Y4ZhNNrP4Bs3YWzu7DJMPEMtBtEFqXxkrWKqEpkhLeAmP7hnFeK+WE84M0wt1hw== +"@types/markdown-it@^14.1.2": + version "14.1.2" + resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-14.1.2.tgz#57f2532a0800067d9b934f3521429a2e8bfb4c61" + integrity sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog== dependencies: - "@umijs/utils" "3.5.17" + "@types/linkify-it" "^5" + "@types/mdurl" "^2" -"@umijs/babel-plugin-import-to-await-require@3.5.17": - version "3.5.17" - resolved "https://registry.yarnpkg.com/@umijs/babel-plugin-import-to-await-require/-/babel-plugin-import-to-await-require-3.5.17.tgz#5bf819c46996380300bb07bb92c7996c99fb741e" - integrity sha512-wquowE9if0DMm2d7U0mxkZgEVry7d9d9cMteeRmbVoNTgXCPlSqVDkP9fFzblgR+ZlsjmqJnD4omAqAWslVO6A== +"@types/mdast@^4.0.0": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-4.0.4.tgz#7ccf72edd2f1aa7dd3437e180c64373585804dd6" + integrity sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA== dependencies: - "@umijs/utils" "3.5.17" + "@types/unist" "*" -"@umijs/babel-plugin-lock-core-js-3@3.5.17": - version "3.5.17" - resolved "https://registry.yarnpkg.com/@umijs/babel-plugin-lock-core-js-3/-/babel-plugin-lock-core-js-3-3.5.17.tgz#488c40045347675fd621c17c10ef774940129c0a" - integrity sha512-kOlKk3zQWAnnP/R5gXzpPWimgavQ4OwMeDJPuUacve46eXqWjC2ZNWXhfcoXN9FKcjDWovJdEW/mpjmT+BeCdg== - dependencies: - "@umijs/utils" "3.5.17" - core-js "3.6.5" +"@types/mdurl@^2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-2.0.0.tgz#d43878b5b20222682163ae6f897b20447233bdfd" + integrity sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg== -"@umijs/babel-plugin-no-anonymous-default-export@3.5.17": - version "3.5.17" - resolved "https://registry.yarnpkg.com/@umijs/babel-plugin-no-anonymous-default-export/-/babel-plugin-no-anonymous-default-export-3.5.17.tgz#32b03b34f7741753856ef5be3eb693884fee724e" - integrity sha512-xHAyg/mYq806Xl832qEHKdA0qdSzwIUDN0pypbrh1bYgueoxodkjtOz0Erh1up33WV1/6xbGl9lXBVlmsfK+Vw== - dependencies: - "@umijs/utils" "3.5.17" +"@types/unist@*", "@types/unist@^3.0.0": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.3.tgz#acaab0f919ce69cce629c2d4ed2eb4adc1b6c20c" + integrity sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q== -"@umijs/babel-preset-umi@3.5.17", "@umijs/babel-preset-umi@3.x": - version "3.5.17" - resolved "https://registry.yarnpkg.com/@umijs/babel-preset-umi/-/babel-preset-umi-3.5.17.tgz#0ae3b896d3426d53f766c3e65f73e566de521745" - integrity sha512-TYEqmafIKiTSfDTw6xSXnFGai9FdqHq2zAzMSrYNC8fcmdqecXVg82VAzsujrHpwDpioBeB6YlECnsDmZZre7A== - dependencies: - "@babel/runtime" "7.12.5" - "@umijs/babel-plugin-auto-css-modules" "3.5.17" - "@umijs/babel-plugin-import-to-await-require" "3.5.17" - "@umijs/babel-plugin-lock-core-js-3" "3.5.17" - "@umijs/babel-plugin-no-anonymous-default-export" "3.5.17" - "@umijs/deps" "3.5.17" - -"@umijs/bundler-utils@3.5.17": - version "3.5.17" - resolved "https://registry.yarnpkg.com/@umijs/bundler-utils/-/bundler-utils-3.5.17.tgz#3d893cf5be78f0e2b1d9ea038d7131160ecc062f" - integrity sha512-+E6lc8ofD5skXWlvp/N689m4QVIUNveBt/vekqgFUB+DIaJCcLz3Qbme/L/sFNWr5hW8Fxt6ygSr9FCS/tQ5EQ== - dependencies: - "@umijs/babel-preset-umi" "3.5.17" - "@umijs/types" "3.5.17" - "@umijs/utils" "3.5.17" - -"@umijs/bundler-webpack@3.5.17": - version "3.5.17" - resolved "https://registry.yarnpkg.com/@umijs/bundler-webpack/-/bundler-webpack-3.5.17.tgz#7260f54c1260e6a6a2e392d3106e6e48526a97d9" - integrity sha512-4RoKUHiC4WSb8T32lVzrP7gMc+qpoEazNbsA7yVEzCd+gHTVLgo/7olhCT8MlXceARy6ngWOs3LFvQa6k+Bo7Q== - dependencies: - "@umijs/bundler-utils" "3.5.17" - "@umijs/deps" "3.5.17" - "@umijs/types" "3.5.17" - "@umijs/utils" "3.5.17" - jest-worker "26.6.2" - node-libs-browser "2.2.1" - normalize-url "1.9.1" - postcss "7.0.32" - postcss-flexbugs-fixes "4.2.1" - postcss-loader "3.0.0" - postcss-preset-env "6.7.0" - postcss-safe-parser "4.0.2" - terser "5.6.0" - webpack-chain "6.5.1" - -"@umijs/core@3.5.17": - version "3.5.17" - resolved "https://registry.yarnpkg.com/@umijs/core/-/core-3.5.17.tgz#711fb93478f80172922b1842df6b0416f1f1f6aa" - integrity sha512-/rMHskbv5nBGH2/Olva0OQ4zSf7SajQhAYTQGaeVQ7RElXledjoUMr0ug9pIdktGyqGLJe/H6MlaKbwn+l0LLA== - dependencies: - "@umijs/ast" "3.5.17" - "@umijs/babel-preset-umi" "3.5.17" - "@umijs/deps" "3.5.17" - "@umijs/utils" "3.5.17" - -"@umijs/deps@3.5.17": - version "3.5.17" - resolved "https://registry.yarnpkg.com/@umijs/deps/-/deps-3.5.17.tgz#028296a424f1b7a6027a31f3224386c6f9b7d94c" - integrity sha512-NfVX6ppd0wCBJhhz9US68UU0hrUgBj6n7zlFhaSejx1La6cZ0pGNx7WklDsSKHfaSLrYiFteLonR0pTbglwhpw== - dependencies: - "@bloomberg/record-tuple-polyfill" "0.0.3" - chokidar "3.5.1" - clipboardy "2.3.0" - esbuild "0.12.15" - jest-worker "24.9.0" - prettier "2.2.1" - -"@umijs/plugin-analytics@^0.2.2": - version "0.2.2" - resolved "https://registry.yarnpkg.com/@umijs/plugin-analytics/-/plugin-analytics-0.2.2.tgz#575fd231d4327ea13413217aa1b5fc6bdd89465e" - integrity sha512-dVDzUfgIdEwdCC6a5IsMYpIPI+bEZjBEqIhAvw9dic6Vk77w9RxQxyRfW11dDmdXLAwWphp22NntQNt1ejZPtg== - -"@umijs/plugin-sass@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@umijs/plugin-sass/-/plugin-sass-1.1.1.tgz#1367f9ac2553f09fcf34ea755588c80200b9e038" - integrity sha512-z9Gyn/pasXLD/URjErBuMH41DPGd669kmeDUUDnYQMbazNAa2+hiWKsVbHhLM0In27GE/ElQZ+bk/9M9dgH88A== - dependencies: - sass "^1.26.2" - sass-loader "^8.0.2" +"@types/web-bluetooth@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz#f066abfcd1cbe66267cdbbf0de010d8a41b41597" + integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow== -"@umijs/preset-built-in@3.5.17": - version "3.5.17" - resolved "https://registry.yarnpkg.com/@umijs/preset-built-in/-/preset-built-in-3.5.17.tgz#a8bcbe24805b1ee2556542666105d280ef4035c3" - integrity sha512-gdrAGcL3/TDKS9Egr8bwXXu6niWrFIO7n+OKC7ZR/3eAXVFbFVL0X0d/LJLUdcua+yInLcKczK5T3tQsBzmCkw== - dependencies: - "@types/react-router-config" "5.0.2" - "@umijs/babel-preset-umi" "3.5.17" - "@umijs/bundler-webpack" "3.5.17" - "@umijs/deps" "3.5.17" - "@umijs/renderer-mpa" "3.5.17" - "@umijs/renderer-react" "3.5.17" - "@umijs/runtime" "3.5.17" - "@umijs/server" "3.5.17" - "@umijs/types" "3.5.17" - "@umijs/utils" "3.5.17" - ansi-html "^0.0.7" - core-js "3.6.5" - core-js-pure "^3.8.1" - error-stack-parser "^2.0.6" - es-module-lexer "0.7.1" - es5-imcompatible-versions "^0.1.62" - history-with-query "4.10.4" - html-entities "^2.1.0" - mime "1.3.6" - react-refresh "0.10.0" - react-router "5.2.0" - react-router-config "5.1.1" - react-router-dom "5.2.0" - regenerator-runtime "0.13.5" - schema-utils "^3.0.0" - -"@umijs/preset-dumi@1.1.26": - version "1.1.26" - resolved "https://registry.yarnpkg.com/@umijs/preset-dumi/-/preset-dumi-1.1.26.tgz#864bb0b004816df6cb985ab1f1557646cc67e94f" - integrity sha512-z4Gh3K0oSobWdTAjZochy9c6J2qkWFTkPDLCPOiDfB9zUACErAFVqSJ+trKbC7UvdEQ18y2u2wY/j2Jf+5MQeg== - dependencies: - "@babel/core" "^7.7.2" - "@babel/generator" "^7.7.2" - "@babel/plugin-transform-modules-commonjs" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.7.2" - "@mapbox/hast-util-to-jsx" "^1.0.0" - "@umijs/babel-preset-umi" "3.x" - "@umijs/plugin-analytics" "^0.2.2" - "@umijs/runtime" "^3.2.14" - "@umijs/types" "3.x" - "@umijs/utils" "^3.2.28" - copy-text-to-clipboard "^2.2.0" - deepmerge "^4.2.2" - dumi-assets-types "1.0.0" - dumi-theme-default "1.1.9" - enhanced-resolve "^4.1.1" - github-slugger "^1.3.0" - hast-util-has-property "^1.0.4" - hast-util-is-element "^1.1.0" - hast-util-raw "^6.0.0" - hast-util-to-html "^7.1.1" - hast-util-to-string "^1.0.2" - hosted-git-info "^3.0.2" - ignore "^5.1.8" - js-yaml "^3.13.1" - lodash.throttle "^4.1.1" - lz-string "^1.4.4" - react-docgen-typescript-dumi-tmp "^1.22.1-0" - rehype-autolink-headings "^4.0.0" - rehype-mathjax "^3.1.0" - rehype-remove-comments "^4.0.2" - rehype-stringify "^8.0.0" - remark-frontmatter "^3.0.0" - remark-gfm "^1.0.0" - remark-math "^4.0.0" - remark-parse "^9.0.0" - remark-rehype "^8.0.0" - remark-stringify "^9.0.0" - sitemap "^6.3.3" - slash2 "^2.0.0" - terser "^5.5.1" - unified "^8.4.1" - unist-util-visit "^2.0.1" - unist-util-visit-parents "^3.0.1" - -"@umijs/renderer-mpa@3.5.17": - version "3.5.17" - resolved "https://registry.yarnpkg.com/@umijs/renderer-mpa/-/renderer-mpa-3.5.17.tgz#5f9ca959f71cb511448d0d5fcb52fd381283e2ae" - integrity sha512-wrL38YZn0meIT6BapJFlPBm5r5nGPW3z74v2fVnLI7kzTolzpU5SzLEbF4bDSDVgnpZ0bvJNCK2PSbOcWOQpog== - dependencies: - "@types/react" "^16.9.43" - "@types/react-dom" "^16.9.8" - "@umijs/runtime" "3.5.17" - -"@umijs/renderer-react@3.5.17": - version "3.5.17" - resolved "https://registry.yarnpkg.com/@umijs/renderer-react/-/renderer-react-3.5.17.tgz#2330a63c6566db4359ec2ea2a3ad66a829500bd9" - integrity sha512-IoHPF8bIQwkRqNcOrpdymreOAJJgAbxdUzk6wjUi5sqt+CDvzG6vcneD1MublDlGnMyYSR+FlL2Kj7lKMTDv0A== - dependencies: - "@types/react" "^16.9.43" - "@types/react-dom" "^16.9.8" - "@types/react-router-config" "^5.0.2" - "@umijs/runtime" "3.5.17" - react-router-config "5.1.1" - -"@umijs/runtime@3.5.17", "@umijs/runtime@^3.2.14": - version "3.5.17" - resolved "https://registry.yarnpkg.com/@umijs/runtime/-/runtime-3.5.17.tgz#90be6f257029a525f34472eaf68162dc140d75f9" - integrity sha512-IYTSa40GEuFqRNJ0o9q9jC5UdW0tY+XU/MVRY5gGmr0AmQf+4VDpBq33Ql+KyruiNaCCKmNC2I15Kd6+lw3XGA== - dependencies: - "@types/react-router" "5.1.12" - "@types/react-router-dom" "5.1.7" - history-with-query "4.10.4" - react-router "5.2.0" - react-router-dom "5.2.0" - use-subscription "1.5.1" - -"@umijs/server@3.5.17": - version "3.5.17" - resolved "https://registry.yarnpkg.com/@umijs/server/-/server-3.5.17.tgz#ea5633627da72c25f40051cfef3a93850f3ecfdb" - integrity sha512-8uI7Q/EP3cCeI0mP8dzzPe5d0LMZ0mmxhbCr+Ql9u+2gD2/YrCxzsP3l5iHoF5f+3G9AF+ziCAmj4l2dJPTNTQ== - dependencies: - "@umijs/deps" "3.5.17" - "@umijs/utils" "3.5.17" +"@ungap/structured-clone@^1.0.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + +"@vitejs/plugin-vue@^5.1.2": + version "5.1.4" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.1.4.tgz#72b8b705cfce36b00b59af196195146e356500c4" + integrity sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A== + +"@vue/compiler-core@3.5.7": + version "3.5.7" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.7.tgz#04300bdc9fb52f89e6f250bbac16e03f0e0ed914" + integrity sha512-A0gay3lK71MddsSnGlBxRPOugIVdACze9L/rCo5X5srCyjQfZOfYtSFMJc3aOZCM+xN55EQpb4R97rYn/iEbSw== + dependencies: + "@babel/parser" "^7.25.3" + "@vue/shared" "3.5.7" + entities "^4.5.0" + estree-walker "^2.0.2" + source-map-js "^1.2.0" + +"@vue/compiler-dom@3.5.7": + version "3.5.7" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.7.tgz#604ced082189b66cb811068332a45dcc11ae0af3" + integrity sha512-GYWl3+gO8/g0ZdYaJ18fYHdI/WVic2VuuUd1NsPp60DWXKy+XjdhFsDW7FbUto8siYYZcosBGn9yVBkjhq1M8Q== + dependencies: + "@vue/compiler-core" "3.5.7" + "@vue/shared" "3.5.7" + +"@vue/compiler-sfc@3.5.7": + version "3.5.7" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.7.tgz#1150c49c0e3b39d40b2cf0f7de9edfcba98fa3e9" + integrity sha512-EjOJtCWJrC7HqoCEzOwpIYHm+JH7YmkxC1hG6VkqIukYRqj8KFUlTLK6hcT4nGgtVov2+ZfrdrRlcaqS78HnBA== + dependencies: + "@babel/parser" "^7.25.3" + "@vue/compiler-core" "3.5.7" + "@vue/compiler-dom" "3.5.7" + "@vue/compiler-ssr" "3.5.7" + "@vue/shared" "3.5.7" + estree-walker "^2.0.2" + magic-string "^0.30.11" + postcss "^8.4.47" + source-map-js "^1.2.0" + +"@vue/compiler-ssr@3.5.7": + version "3.5.7" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.7.tgz#042144dfd574a1f64b685e87730b0196dc1846d2" + integrity sha512-oZx+jXP2k5arV/8Ly3TpQbfFyimMw2ANrRqvHJoKjPqtEzazxQGZjCLOfq8TnZ3wy2TOXdqfmVp4q7FyYeHV4g== + dependencies: + "@vue/compiler-dom" "3.5.7" + "@vue/shared" "3.5.7" + +"@vue/devtools-api@^7.3.8": + version "7.4.5" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-7.4.5.tgz#4b6f0a780aa187ee281a8ad45f121004f1a264e7" + integrity sha512-PX9uXirHOY2P99kb1cP3DxWZojFW3acNMqd+l4i5nKcqY59trXTOfwDZXt2Qifu0OU1izAQb76Ur6NPVldF2KQ== + dependencies: + "@vue/devtools-kit" "^7.4.5" + +"@vue/devtools-kit@^7.4.5": + version "7.4.5" + resolved "https://registry.yarnpkg.com/@vue/devtools-kit/-/devtools-kit-7.4.5.tgz#e80a551d4bce4c40c38a7ef6b080e408d541d346" + integrity sha512-Uuki4Z6Bc/ExvtlPkeDNGSAe4580R+HPcVABfTE9TF7BTz3Nntk7vxIRUyWblZkUEcB/x+wn2uofyt5i2LaUew== + dependencies: + "@vue/devtools-shared" "^7.4.5" + birpc "^0.2.17" + hookable "^5.5.3" + mitt "^3.0.1" + perfect-debounce "^1.0.0" + speakingurl "^14.0.1" + superjson "^2.2.1" + +"@vue/devtools-shared@^7.4.5": + version "7.4.5" + resolved "https://registry.yarnpkg.com/@vue/devtools-shared/-/devtools-shared-7.4.5.tgz#f8f5ef73451c05922e8d18aa86d39a05ab883e94" + integrity sha512-2XgUOkL/7QDmyYI9J7cm+rz/qBhcGv+W5+i1fhwdQ0HQ1RowhdK66F0QBuJSz/5k12opJY8eN6m03/XZMs7imQ== + dependencies: + rfdc "^1.4.1" + +"@vue/reactivity@3.5.7": + version "3.5.7" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.7.tgz#a52237fce841d92fc861220a8f26b51f5c3245e2" + integrity sha512-yF0EpokpOHRNXyn/h6abXc9JFIzfdAf0MJHIi92xxCWS0mqrXH6+2aZ+A6EbSrspGzX5MHTd5N8iBA28HnXu9g== + dependencies: + "@vue/shared" "3.5.7" + +"@vue/runtime-core@3.5.7": + version "3.5.7" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.7.tgz#4181b0a921d331f2efd5eda9aa35549ac97e6530" + integrity sha512-OzLpBpKbZEaZVSNfd+hQbfBrDKux+b7Yl5hYhhWWWhHD7fEpF+CdI3Brm5k5GsufHEfvMcjruPxwQZuBN6nFYQ== + dependencies: + "@vue/reactivity" "3.5.7" + "@vue/shared" "3.5.7" + +"@vue/runtime-dom@3.5.7": + version "3.5.7" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.7.tgz#646e006d403f2e6337f566fdf461fbe400e8487d" + integrity sha512-fL7cETfE27U2jyTgqzE382IGFY6a6uyznErn27KbbEzNctzxxUWYDbaN3B55l9nXh0xW2LRWPuWKOvjtO2UewQ== + dependencies: + "@vue/reactivity" "3.5.7" + "@vue/runtime-core" "3.5.7" + "@vue/shared" "3.5.7" + csstype "^3.1.3" + +"@vue/server-renderer@3.5.7": + version "3.5.7" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.7.tgz#65ba8b60c0ee9e791619c0f8b2b6209a258484e5" + integrity sha512-peRypij815eIDjpPpPXvYQGYqPH6QXwLJGWraJYPPn8JqWGl29A8QXnS7/Mh3TkMiOcdsJNhbFCoW2Agc2NgAQ== + dependencies: + "@vue/compiler-ssr" "3.5.7" + "@vue/shared" "3.5.7" + +"@vue/shared@3.5.7", "@vue/shared@^3.4.38": + version "3.5.7" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.7.tgz#1eedd1ffbf804c488fe806a17ff26c22e0ddb72f" + integrity sha512-NBE1PBIvzIedxIc2RZiKXvGbJkrZ2/hLf3h8GlS4/sP9xcXEZMFWOazFkNd6aGeUCMaproe5MHVYB3/4AW9q9g== + +"@vueuse/core@11.1.0", "@vueuse/core@^11.0.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-11.1.0.tgz#a104f33c899a15f3b28d3eb7b20738501a3a5035" + integrity sha512-P6dk79QYA6sKQnghrUz/1tHi0n9mrb/iO1WTMk/ElLmTyNqgDeSZ3wcDf6fRBGzRJbeG1dxzEOvLENMjr+E3fg== + dependencies: + "@types/web-bluetooth" "^0.0.20" + "@vueuse/metadata" "11.1.0" + "@vueuse/shared" "11.1.0" + vue-demi ">=0.14.10" + +"@vueuse/integrations@^11.0.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@vueuse/integrations/-/integrations-11.1.0.tgz#1e2c1d43b2d389fc4b4d0a7ee08091665698b9ad" + integrity sha512-O2ZgrAGPy0qAjpoI2YR3egNgyEqwG85fxfwmA9BshRIGjV4G6yu6CfOPpMHAOoCD+UfsIl7Vb1bXJ6ifrHYDDA== + dependencies: + "@vueuse/core" "11.1.0" + "@vueuse/shared" "11.1.0" + vue-demi ">=0.14.10" + +"@vueuse/metadata@11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-11.1.0.tgz#ad367d2a51d985129724425923b3cf95f0faf27b" + integrity sha512-l9Q502TBTaPYGanl1G+hPgd3QX5s4CGnpXriVBR5fEZ/goI6fvDaVmIl3Td8oKFurOxTmbXvBPSsgrd6eu6HYg== + +"@vueuse/shared@11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-11.1.0.tgz#3bfc3aa555c2a456c21945ec7f127d71938d12e8" + integrity sha512-YUtIpY122q7osj+zsNMFAfMTubGz0sn5QzE5gPzAIiCmtt2ha3uQUY1+JPyL4gRCTsLPX82Y9brNbo/aqlA91w== + dependencies: + vue-demi ">=0.14.10" + +algoliasearch@^4.19.1: + version "4.24.0" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.24.0.tgz#b953b3e2309ef8f25da9de311b95b994ac918275" + integrity sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g== + dependencies: + "@algolia/cache-browser-local-storage" "4.24.0" + "@algolia/cache-common" "4.24.0" + "@algolia/cache-in-memory" "4.24.0" + "@algolia/client-account" "4.24.0" + "@algolia/client-analytics" "4.24.0" + "@algolia/client-common" "4.24.0" + "@algolia/client-personalization" "4.24.0" + "@algolia/client-search" "4.24.0" + "@algolia/logger-common" "4.24.0" + "@algolia/logger-console" "4.24.0" + "@algolia/recommend" "4.24.0" + "@algolia/requester-browser-xhr" "4.24.0" + "@algolia/requester-common" "4.24.0" + "@algolia/requester-node-http" "4.24.0" + "@algolia/transporter" "4.24.0" + +birpc@^0.2.17: + version "0.2.17" + resolved "https://registry.yarnpkg.com/birpc/-/birpc-0.2.17.tgz#d0bdb90d4d063061156637f03b7b0adea1779734" + integrity sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg== + +ccount@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" + integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== -"@umijs/types@3.5.17", "@umijs/types@3.x": - version "3.5.17" - resolved "https://registry.yarnpkg.com/@umijs/types/-/types-3.5.17.tgz#277c3f5371c71569ca12a309931664397beaf054" - integrity sha512-vMLU0/mosQb7zvYhBNXYgcKVlqcbky1e/iQSoDPhuSu2RRK6eR2IECSRyDkvPP8F1lI5UFOzjbt3ogpc0pT7xQ== - dependencies: - "@umijs/babel-preset-umi" "3.5.17" - "@umijs/core" "3.5.17" - "@umijs/deps" "3.5.17" - "@umijs/renderer-react" "3.5.17" - "@umijs/server" "3.5.17" - "@umijs/utils" "3.5.17" - webpack-chain "6.5.1" - -"@umijs/utils@3.5.17", "@umijs/utils@^3.2.28": - version "3.5.17" - resolved "https://registry.yarnpkg.com/@umijs/utils/-/utils-3.5.17.tgz#74cee75d62be2828545e25b40df20af7f8959d2c" - integrity sha512-YydSzvl7j4AWgW5lkHDoXxKjIVA940fmdi6IavXRXGkWat4cLZAQZ7ERCCrmW7wSznLwOvzicsQbLTLK8OeO0w== - dependencies: - "@umijs/deps" "3.5.17" +character-entities-html4@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" + integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== -abab@^2.0.3, abab@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" - integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== +character-entities-legacy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" + integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - -acorn-walk@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - -acorn@^7.1.1: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.2.4: - version "8.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" - integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== - -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" +comma-separated-tokens@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" + integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== -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.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.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== +copy-anything@^3.0.2: + version "3.0.5" + resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-3.0.5.tgz#2d92dce8c498f790fa7ad16b01a1ae5a45b020a0" + integrity sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w== 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" + is-what "^4.1.8" -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== +csstype@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== -ansi-escapes@^4.3.0: - 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@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -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" +dequal@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== -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== +devlop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/devlop/-/devlop-1.1.0.tgz#4db7c2ca4dc6e0e834c30be70c94bbc976dc7018" + integrity sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA== dependencies: - color-convert "^2.0.1" + dequal "^2.0.0" -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" - -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== - -arg@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.1.tgz#eb0c9a8f77786cad2af8ff2b862899842d7b6adb" - integrity sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA== - -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" +entities@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== -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" +esbuild@^0.21.3: + version "0.21.5" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d" + integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== + optionalDependencies: + "@esbuild/aix-ppc64" "0.21.5" + "@esbuild/android-arm" "0.21.5" + "@esbuild/android-arm64" "0.21.5" + "@esbuild/android-x64" "0.21.5" + "@esbuild/darwin-arm64" "0.21.5" + "@esbuild/darwin-x64" "0.21.5" + "@esbuild/freebsd-arm64" "0.21.5" + "@esbuild/freebsd-x64" "0.21.5" + "@esbuild/linux-arm" "0.21.5" + "@esbuild/linux-arm64" "0.21.5" + "@esbuild/linux-ia32" "0.21.5" + "@esbuild/linux-loong64" "0.21.5" + "@esbuild/linux-mips64el" "0.21.5" + "@esbuild/linux-ppc64" "0.21.5" + "@esbuild/linux-riscv64" "0.21.5" + "@esbuild/linux-s390x" "0.21.5" + "@esbuild/linux-x64" "0.21.5" + "@esbuild/netbsd-x64" "0.21.5" + "@esbuild/openbsd-x64" "0.21.5" + "@esbuild/sunos-x64" "0.21.5" + "@esbuild/win32-arm64" "0.21.5" + "@esbuild/win32-ia32" "0.21.5" + "@esbuild/win32-x64" "0.21.5" + +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== -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== +focus-trap@^7.5.4: + version "7.6.0" + resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.6.0.tgz#7f3edab8135eaca92ab59b6e963eb5cc42ded715" + integrity sha512-1td0l3pMkWJLFipobUcGaf+5DTY4PLDDrcqoSaKP8ediO/CoWCCYk/fT/Y2A4e6TNB+Sh6clRJCjOPPnKoNHnQ== dependencies: - object-assign "^4.1.1" - util "0.10.3" + tabbable "^6.2.0" -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== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -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" - -babel-plugin-dynamic-import-node@^2.3.3: +fsevents@~2.3.2, fsevents@~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" - -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: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -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@^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== - -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== - -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= - -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - -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== + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +hast-util-to-html@^9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/hast-util-to-html/-/hast-util-to-html-9.0.3.tgz#a9999a0ba6b4919576a9105129fead85d37f302b" + integrity sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg== + dependencies: + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + ccount "^2.0.0" + comma-separated-tokens "^2.0.0" + hast-util-whitespace "^3.0.0" + html-void-elements "^3.0.0" + mdast-util-to-hast "^13.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + stringify-entities "^4.0.0" + zwitch "^2.0.4" + +hast-util-whitespace@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz#7778ed9d3c92dd9e8c5c8f648a49c21fc51cb621" + integrity sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw== dependencies: - pako "~1.0.5" + "@types/hast" "^3.0.0" -browserslist@^4.12.0, browserslist@^4.16.6, browserslist@^4.6.4: - version "4.16.8" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.8.tgz#cb868b0b554f137ba6e33de0ecff2eda403c4fb0" - integrity sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ== - dependencies: - caniuse-lite "^1.0.30001251" - colorette "^1.3.0" - electron-to-chromium "^1.3.811" - escalade "^3.1.1" - node-releases "^1.1.75" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -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" +hookable@^5.5.3: + version "5.5.3" + resolved "https://registry.yarnpkg.com/hookable/-/hookable-5.5.3.tgz#6cfc358984a1ef991e2518cb9ed4a778bbd3215d" + integrity sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ== -builtin-status-codes@^3.0.0: +html-void-elements@^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= - -call-bind@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-3.0.0.tgz#fc9dbd84af9e747249034d4d62602def6517f1d7" + integrity sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg== + +is-what@^4.1.8: + version "4.1.16" + resolved "https://registry.yarnpkg.com/is-what/-/is-what-4.1.16.tgz#1ad860a19da8b4895ad5495da3182ce2acdd7a6f" + integrity sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A== + +magic-string@^0.30.11: + version "0.30.11" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.11.tgz#301a6f93b3e8c2cb13ac1a7a673492c0dfd12954" + integrity sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + +mark.js@8.11.1: + version "8.11.1" + resolved "https://registry.yarnpkg.com/mark.js/-/mark.js-8.11.1.tgz#180f1f9ebef8b0e638e4166ad52db879beb2ffc5" + integrity sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ== + +mdast-util-to-hast@^13.0.0: + version "13.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz#5ca58e5b921cc0a3ded1bc02eed79a4fe4fe41f4" + integrity sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA== + dependencies: + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + "@ungap/structured-clone" "^1.0.0" + devlop "^1.0.0" + micromark-util-sanitize-uri "^2.0.0" + trim-lines "^3.0.0" + unist-util-position "^5.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" + +micromark-util-character@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-2.1.0.tgz#31320ace16b4644316f6bf057531689c71e2aee1" + integrity sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ== dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" -caller-callsite@^2.0.0: +micromark-util-encode@^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" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz#0921ac7953dc3f1fd281e3d1932decfdb9382ab1" + integrity sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA== -caller-path@^2.0.0: +micromark-util-sanitize-uri@^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= + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz#ec8fbf0258e9e6d8f13d9e4770f9be64342673de" + integrity sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw== dependencies: - caller-callsite "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-encode "^2.0.0" + micromark-util-symbol "^2.0.0" -callsites@^2.0.0: +micromark-util-symbol@^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: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase-css@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" - integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== - -caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001251: - version "1.0.30001252" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001252.tgz#cb16e4e3dafe948fc4a9bb3307aea054b912019a" - integrity sha512-I56jhWDGMtdILQORdusxBOH+Nl/KgQSdDmpJezYddnAkVOmnoU8zwjTV9xAjMIYxr0iPreEAVylCGcmHCjfaOw== - -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@^2.0.0, 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.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - 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-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== - -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.0.0 <4.0.0": - 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" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz#12225c8f95edf8b17254e47080ce0862d5db8044" + integrity sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw== -ci-info@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" - integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.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" - -classnames@2.x, classnames@^2.2.1, classnames@^2.2.6: - version "2.3.1" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" - integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== - -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== - -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" +micromark-util-types@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-2.0.0.tgz#63b4b7ffeb35d3ecf50d1ca20e68fc7caa36d95e" + integrity sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w== -cli-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== - dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" +minisearch@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/minisearch/-/minisearch-7.1.0.tgz#f5830e9109b5919ee7b291c29a304f381aa68770" + integrity sha512-tv7c/uefWdEhcu6hvrfTihflgeEi2tN6VV7HJnCjK6VxM75QQJh4t9FwJCsA2EsRS8LCnu3W87CuGPWMocOLCA== -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" - -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" +mitt@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1" + integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== -color-convert@^1.9.0: - 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" +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== -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.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== - -colorette@^1.2.1, colorette@^1.2.2, colorette@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af" - integrity sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w== - -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== +oniguruma-to-js@0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/oniguruma-to-js/-/oniguruma-to-js-0.4.3.tgz#8d899714c21f5c7d59a3c0008ca50e848086d740" + integrity sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ== dependencies: - delayed-stream "~1.0.0" + regex "^4.3.2" -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@>=7.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-8.1.0.tgz#db36e3e66edf24ff591d639862c6ab2c52664362" - integrity sha512-mf45ldcuHSYShkplHHGKWb4TrmwQadxOn7v4WuhDJy0ZVoY5JFajaRDKD0PNe5qXzBX0rhovjTnP6Kz9LETcuA== - -commander@^2.19.0, commander@^2.20.0: - 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@^6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" - integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== - -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== - -constants-browserify@^1.0.0: +perfect-debounce@^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= - -convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" - -copy-text-to-clipboard@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/copy-text-to-clipboard/-/copy-text-to-clipboard-2.2.0.tgz#329dd6daf8c42034c763ace567418401764579ae" - integrity sha512-WRvoIdnTs1rgPMkgA2pUOa/M4Enh2uzCwdKsOMYNAJiz/4ZvEJgmbF4OmninPmlFdAWisfeh0tH+Cpf7ni3RqQ== - -core-js-pure@^3.8.1: - version "3.16.4" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.16.4.tgz#8b23122628d88c560f209812b9b2d9ebbce5e29c" - integrity sha512-bY1K3/1Jy9D8Jd12eoeVahNXHLfHFb4TXWI8SQ4y8bImR9qDPmGITBAfmcffTkgUvbJn87r8dILOTWW5kZzkgA== - -core-js@3.6.5: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" - integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== - -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@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" - integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== - 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" - -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" - -cross-spawn@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^6.0.0: - 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.0: - 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" + resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a" + integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA== -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" +picocolors@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.0.tgz#5358b76a78cde483ba5cef6a9dc9671440b27d59" + integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw== -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== +postcss@^8.4.43, postcss@^8.4.47: + version "8.4.47" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.47.tgz#5bf6c9a010f3e724c503bf03ef7947dcb0fea365" + integrity sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ== dependencies: - postcss "^7.0.5" + nanoid "^3.3.7" + picocolors "^1.1.0" + source-map-js "^1.2.1" -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== +preact@^10.0.0: + version "10.24.0" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.24.0.tgz#bd8139bee35aafede3c6de96d2453982610dfeef" + integrity sha512-aK8Cf+jkfyuZ0ZZRG9FbYqwmEiGQ4y/PUO4SuTWoyWL244nZZh7bd5h2APd4rSNDYTBNghg1L+5iJN3Skxtbsw== -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== - -cssom@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" - integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - dependencies: - cssom "~0.3.6" +property-information@^6.0.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.5.0.tgz#6212fbb52ba757e92ef4fb9d657563b933b7ffec" + integrity sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig== -csstype@^3.0.2: - version "3.0.8" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.8.tgz#d2266a792729fb227cd216fb572f43728e1ad340" - integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw== - -data-urls@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" - integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== - dependencies: - abab "^2.0.3" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.0.0" +qier-player@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/qier-player/-/qier-player-2.0.3.tgz#5328dd08c394b2c64c5548e13ed16db606a04163" + integrity sha512-r3kIy0eQrHm+cO6DIZBw2zbGDfEYXjLxNv4mRbrvJmBgDh8Pg2h3ZVaE/2YvJNFv+S5pPdlg0ZMry8l+xEvmqg== -debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.2.0: +regex@^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" - -decimal.js@^10.2.1: - version "10.3.1" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" - integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== - -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= - -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= - -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@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" - integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ== - -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-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" - -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= - -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" - -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" + resolved "https://registry.yarnpkg.com/regex/-/regex-4.3.2.tgz#a68a68c9b337a77bf4ce4ed0b4b1a49d97cb3b7b" + integrity sha512-kK/AA3A9K6q2js89+VMymcboLOlF5lZRCYJv3gzszXFHBr6kO6qLGzbm+UIugBEV8SMMKCTR59txoY6ctRHYVw== -dom-align@^1.7.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/dom-align/-/dom-align-1.12.2.tgz#0f8164ebd0c9c21b0c790310493cd855892acd4b" - integrity sha512-pHuazgqrsTFrGU2WLDdXxCFabkdQDx72ddkraZNih1KsMcN5qsRSTR9O4VJRlwTPCPb5COYg3LOfiMHHcPInHg== - -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== +rfdc@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" + integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== -domexception@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" - integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== +rollup@^4.20.0: + version "4.22.4" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.22.4.tgz#4135a6446671cd2a2453e1ad42a45d5973ec3a0f" + integrity sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A== dependencies: - webidl-conversions "^5.0.0" - -dumi-assets-types@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dumi-assets-types/-/dumi-assets-types-1.0.0.tgz#d5368cb11045b203bf1ef1080e553b2287a2ec81" - integrity sha512-7nhSeWM15vybbUAMPLZsdls2jKoHB2UU4P1RM6kLPucuS8eC/HSmufquFqTTYtX4oIDLHGtil/dVtMreNGwhdA== + "@types/estree" "1.0.5" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.22.4" + "@rollup/rollup-android-arm64" "4.22.4" + "@rollup/rollup-darwin-arm64" "4.22.4" + "@rollup/rollup-darwin-x64" "4.22.4" + "@rollup/rollup-linux-arm-gnueabihf" "4.22.4" + "@rollup/rollup-linux-arm-musleabihf" "4.22.4" + "@rollup/rollup-linux-arm64-gnu" "4.22.4" + "@rollup/rollup-linux-arm64-musl" "4.22.4" + "@rollup/rollup-linux-powerpc64le-gnu" "4.22.4" + "@rollup/rollup-linux-riscv64-gnu" "4.22.4" + "@rollup/rollup-linux-s390x-gnu" "4.22.4" + "@rollup/rollup-linux-x64-gnu" "4.22.4" + "@rollup/rollup-linux-x64-musl" "4.22.4" + "@rollup/rollup-win32-arm64-msvc" "4.22.4" + "@rollup/rollup-win32-ia32-msvc" "4.22.4" + "@rollup/rollup-win32-x64-msvc" "4.22.4" + fsevents "~2.3.2" -dumi-theme-default@1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/dumi-theme-default/-/dumi-theme-default-1.1.9.tgz#e7aad356b5ecafcd3a8e2e57ddd811197527e397" - integrity sha512-wO1+qDlW8ZOEiFI5ZS00X60vsJ++7aHd7CbxfyrF5eMAm7T37Izi0iKDNoQtKzZrb8OThNAkCh+DVubindfDXA== +shiki@1.18.0, shiki@^1.13.0: + version "1.18.0" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.18.0.tgz#4f9ca2f442b3612849017ab1dcac47c35ee52276" + integrity sha512-8jo7tOXr96h9PBQmOHVrltnETn1honZZY76YA79MHheGQg55jBvbm9dtU+MI5pjC5NJCFuA6rvVTLVeSW5cE4A== dependencies: - prism-react-renderer "^1.1.1" - prismjs "^1.21.0" - rc-tabs "^11.7.1" - -dumi@^1.1.26: - version "1.1.26" - resolved "https://registry.yarnpkg.com/dumi/-/dumi-1.1.26.tgz#7247ed9fd66ae7ac81b07e21c99d9fd89f5cf6a9" - integrity sha512-gnr8I4MhdeePEjg2Yt90jK90SJIDRC64wHqoN89c63aWWW2kNcs3c069uizBy8ZQcHqeRJxa3KJE0w+FslmVOA== - dependencies: - "@umijs/preset-dumi" "1.1.26" - umi "^3.0.0" - -electron-to-chromium@^1.3.811: - version "1.3.824" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.824.tgz#9f85cc826c70b12180009d461e3b19c8121a56d2" - integrity sha512-Fk+5aD0HDi9i9ZKt9n2VPOZO1dQy7PV++hz2wJ/KIn+CvVfu4fny39squHtyVDPuHNuoJGAZIbuReEklqYIqfA== - -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@^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== + "@shikijs/core" "1.18.0" + "@shikijs/engine-javascript" "1.18.0" + "@shikijs/engine-oniguruma" "1.18.0" + "@shikijs/types" "1.18.0" + "@shikijs/vscode-textmate" "^9.2.2" + "@types/hast" "^3.0.4" -end-of-stream@^1.1.0: - 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" +source-map-js@^1.2.0, source-map-js@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== -enhanced-resolve@^4.1.1: - 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.6: - 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" +space-separated-tokens@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" + integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== -errno@^0.1.3: - 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" +speakingurl@^14.0.1: + version "14.0.1" + resolved "https://registry.yarnpkg.com/speakingurl/-/speakingurl-14.0.1.tgz#f37ec8ddc4ab98e9600c1c9ec324a8c48d772a53" + integrity sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ== -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== +stringify-entities@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.4.tgz#b3b79ef5f277cc4ac73caeb0236c5ba939b3a4f3" + integrity sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg== dependencies: - is-arrayish "^0.2.1" + character-entities-html4 "^2.0.0" + character-entities-legacy "^3.0.0" -error-stack-parser@^2.0.6: - 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== +superjson@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/superjson/-/superjson-2.2.1.tgz#9377a7fa80fedb10c851c9dbffd942d4bcf79733" + integrity sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA== dependencies: - stackframe "^1.1.1" - -es-module-lexer@0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.7.1.tgz#c2c8e0f46f2df06274cdaf0dd3f3b33e0a0b267d" - integrity sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw== - -es5-imcompatible-versions@^0.1.62: - version "0.1.73" - resolved "https://registry.yarnpkg.com/es5-imcompatible-versions/-/es5-imcompatible-versions-0.1.73.tgz#2d34dbb29cbc54f38902cc1150bbe301b388c014" - integrity sha512-P0SgLrYl9iqlrt0h6n/iz5z5P1uuhnfHp9BA/tcLfqgVIWHNvY4Rm+jtSvnh1ADK4DJOYDwJvxlrHMRoLQMgmQ== - -esbuild@0.12.15: - version "0.12.15" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.15.tgz#9d99cf39aeb2188265c5983e983e236829f08af0" - integrity sha512-72V4JNd2+48eOVCXx49xoSWHgC3/cCy96e7mbXKY+WOWghN00cCmlGnwVLRhRHorvv0dgCyuMYBZlM2xDM5OQw== - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + copy-anything "^3.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== +tabbable@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" + integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== -escodegen@^2.0.0: +to-fast-properties@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" - integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -esm@^3.2.25: - version "3.2.25" - resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" - integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== - -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -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== + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== -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== - -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== - -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" +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== -execa@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" - integrity sha1-2NdrvBtVIX7RkP1t1J08d07PyNo= - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.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@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" - integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== +unist-util-is@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-6.0.0.tgz#b775956486aff107a9ded971d996c173374be424" + integrity sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw== dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -extend@^3.0.0, extend@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -fast-deep-equal@^3.1.1: - 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== + "@types/unist" "^3.0.0" -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= - -fault@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/fault/-/fault-1.0.4.tgz#eafcfc0a6d214fc94601e170df29954a4f842f13" - integrity sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA== +unist-util-position@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-5.0.0.tgz#678f20ab5ca1207a97d7ea8a388373c9cf896be4" + integrity sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA== dependencies: - format "^0.2.0" + "@types/unist" "^3.0.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== +unist-util-stringify-position@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz#449c6e21a880e0855bf5aabadeb3a740314abac2" + integrity sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ== 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= + "@types/unist" "^3.0.0" -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== - -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" - -format@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" - integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs= - -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== - -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-intrinsic@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== +unist-util-visit-parents@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz#4d5f85755c3b8f0dc69e21eca5d6d82d22162815" + integrity sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw== dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" -get-own-enumerable-property-symbols@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" - integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== - -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - -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== +unist-util-visit@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-5.0.0.tgz#a7de1f31f72ffd3519ea71814cccf5fd6a9217d6" + integrity sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg== dependencies: - pump "^3.0.0" + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + unist-util-visit-parents "^6.0.0" -get-stream@^5.0.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== +vfile-message@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-4.0.2.tgz#c883c9f677c72c166362fd635f21fc165a7d1181" + integrity sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw== dependencies: - pump "^3.0.0" - -github-slugger@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.4.0.tgz#206eb96cdb22ee56fdc53a28d5a302338463444e" - integrity sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ== + "@types/unist" "^3.0.0" + unist-util-stringify-position "^4.0.0" -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== +vfile@^6.0.0: + version "6.0.3" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-6.0.3.tgz#3652ab1c496531852bf55a6bac57af981ebc38ab" + integrity sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q== dependencies: - is-glob "^4.0.1" - -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== + "@types/unist" "^3.0.0" + vfile-message "^4.0.0" -graceful-fs@^4.1.2: - version "4.2.8" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" - integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== - -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: - 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@^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== +vite@^5.4.1: + version "5.4.7" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.7.tgz#d226f57c08b61379e955f3836253ed3efb2dcf00" + integrity sha512-5l2zxqMEPVENgvzTuBpHer2awaetimj2BGkhBPdnwKbPNOlHsODU+oiazEZzLK7KhAnOrO+XGYJYn4ZlUhDtDQ== 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.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" - -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-dom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/hast-util-from-dom/-/hast-util-from-dom-3.0.0.tgz#e0ea87fafaf3ec64650fc9404ab1538238f32cb5" - integrity sha512-4vQuGiD5Y/wlD7fZiY4mZML/6oh0GOnH38UNyeDFcSTE4AHF0zjKHZfbd+ekVwPvsZXRl8choc99INHUwSPJlg== - dependencies: - hastscript "^6.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-has-property@^1.0.0, hast-util-has-property@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/hast-util-has-property/-/hast-util-has-property-1.0.4.tgz#9f137565fad6082524b382c1e7d7d33ca5059f36" - integrity sha512-ghHup2voGfgFoHMGnaLHOjbYFACKrRh9KFttdCzMCbFoBMJXiNi2+XTrPP8+q6cDJM/RSqlCfVWrjp1H201rZg== - -hast-util-is-conditional-comment@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/hast-util-is-conditional-comment/-/hast-util-is-conditional-comment-1.0.4.tgz#cc0694c9b5d27cc3e0f1d0e1185a631140aa6e81" - integrity sha512-rtULxWWknVeSuU/vsJ9tHo+M3ExyaOrZcWvLxqY2nUfCHbDcq60EJzSJC5zNm6ZlbxbJ8l7Ej8C1Kzsi5PJS1A== - -hast-util-is-element@^1.0.0, hast-util-is-element@^1.1.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.0.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-html@^7.1.1: - version "7.1.3" - resolved "https://registry.yarnpkg.com/hast-util-to-html/-/hast-util-to-html-7.1.3.tgz#9f339ca9bea71246e565fc79ff7dbfe98bb50f5e" - integrity sha512-yk2+1p3EJTEE9ZEUkgHsUSVhIpCsL/bvT8E5GzmWc+N1Po5gBw+0F8bo7dpxXR0nu0bQVxVZGX2lBGF21CmeDw== - dependencies: - ccount "^1.0.0" - comma-separated-tokens "^1.0.0" - hast-util-is-element "^1.0.0" - hast-util-whitespace "^1.0.0" - html-void-elements "^1.0.0" - property-information "^5.0.0" - space-separated-tokens "^1.0.0" - stringify-entities "^3.0.1" - unist-util-is "^4.0.0" - xtend "^4.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" - -hast-util-to-string@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/hast-util-to-string/-/hast-util-to-string-1.0.4.tgz#9b24c114866bdb9478927d7e9c36a485ac728378" - integrity sha512-eK0MxRX47AV2eZ+Lyr18DCpQgodvaS3fAQO2+b9Two9F5HEoRPhiUMNzoXArMJfZi2yieFzUBMRl3HNJ3Jus3w== - -hast-util-to-text@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/hast-util-to-text/-/hast-util-to-text-2.0.1.tgz#04f2e065642a0edb08341976084aa217624a0f8b" - integrity sha512-8nsgCARfs6VkwH2jJU9b8LNTuR4700na+0h3PqCaEk4MAnMDeu5P0tP8mjk9LLNGxIeQRLbiDbZVw6rku+pYsQ== - dependencies: - hast-util-is-element "^1.0.0" - repeat-string "^1.0.0" - unist-util-find-after "^3.0.0" - -hast-util-whitespace@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-1.0.4.tgz#e4fe77c4a9ae1cb2e6c25e02df0043d0164f6e41" - integrity sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A== - -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" - -history-with-query@4.10.4: - version "4.10.4" - resolved "https://registry.yarnpkg.com/history-with-query/-/history-with-query-4.10.4.tgz#8161ff3c5044e29dfaeb73e7587eb3d4c1a8090e" - integrity sha512-JnskQK8X+PbRFHSdDAExhoJyhLnlLZL+UuHQuQhys+Se9/ukRDRBWU4JVTjsiIfbv1fcEmR3oqKW56OYmk5M5w== - dependencies: - "@babel/runtime" "^7.1.2" - loose-envify "^1.2.0" - query-string "^6.11.0" - resolve-pathname "^3.0.0" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - value-equal "^1.0.1" - -history@^4.9.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" - integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== - dependencies: - "@babel/runtime" "^7.1.2" - loose-envify "^1.2.0" - resolve-pathname "^3.0.0" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - value-equal "^1.0.1" - -hmac-drbg@^1.0.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" - -hoist-non-react-statics@^3.1.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" - integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== - dependencies: - react-is "^16.7.0" - -hosted-git-info@^3.0.2: - version "3.0.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d" - integrity sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw== - dependencies: - lru-cache "^6.0.0" - -html-encoding-sniffer@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" - integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== - dependencies: - whatwg-encoding "^1.0.5" - -html-entities@^2.1.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.2.tgz#760b404685cb1d794e4f4b744332e3b00dcfe488" - integrity sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ== - -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== - -http-proxy-agent@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" - integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - -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@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - -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" - -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== - -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== - -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.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" - -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= - -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= - -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== - -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== - -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-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-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-ci@^1.0.10: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" - integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== - dependencies: - ci-info "^1.5.0" - -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-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: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -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-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@^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-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@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - -is-plain-obj@^1.0.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@^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-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-potential-custom-element-name@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" - integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== - -is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= - -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.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -is-wsl@^2.1.1: - 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@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -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= - -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@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -javascript-stringify@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-2.1.0.tgz#27c76539be14d8bd128219a2d731b09337904e79" - integrity sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg== - -jest-worker@24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" - integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== - dependencies: - merge-stream "^2.0.0" - supports-color "^6.1.0" - -jest-worker@26.6.2: - 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" - -"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-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" - -jsdom@^16.0.0: - version "16.7.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" - integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== - dependencies: - abab "^2.0.5" - acorn "^8.2.4" - acorn-globals "^6.0.0" - cssom "^0.4.4" - cssstyle "^2.3.0" - data-urls "^2.0.0" - decimal.js "^10.2.1" - domexception "^2.0.1" - escodegen "^2.0.0" - form-data "^3.0.0" - html-encoding-sniffer "^2.0.1" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "6.0.1" - saxes "^5.0.1" - symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" - w3c-xmlserializer "^2.0.0" - webidl-conversions "^6.1.0" - whatwg-encoding "^1.0.5" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.5.0" - ws "^7.4.6" - xml-name-validator "^3.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== - -json-parse-better-errors@^1.0.1: - 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== - -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.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" - -katex@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/katex/-/katex-0.12.0.tgz#2fb1c665dbd2b043edcf8a1f5c555f46beaa0cb9" - integrity sha512-y+8btoc/CK70XqcHqjxiGWBOeIL8upbS0peTPXTvgrh21n1RiWWcIpSWM+4uXq+IAgNh9YYQWdc7LVDPDAEEAg== - dependencies: - commander "^2.19.0" - -kebab-case@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/kebab-case/-/kebab-case-1.0.1.tgz#bf734fc95400a3701869215d99a902bd3fe72f60" - integrity sha512-txPHx6nVLhv8PHGXIlAk0nYoh894SpAqGPXNvbg2hh8spvHXIah3+vT87DLoa59nKgC6scD3u3xAuRIgiMqbfQ== - -kind-of@^6.0.2: - 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== - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= - -lint-staged@^10.0.7: - version "10.5.4" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.5.4.tgz#cd153b5f0987d2371fc1d2847a409a2fe705b665" - integrity sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg== - dependencies: - chalk "^4.1.0" - cli-truncate "^2.1.0" - commander "^6.2.0" - cosmiconfig "^7.0.0" - debug "^4.2.0" - dedent "^0.7.0" - enquirer "^2.3.6" - execa "^4.1.0" - listr2 "^3.2.2" - log-symbols "^4.0.0" - micromatch "^4.0.2" - normalize-path "^3.0.0" - please-upgrade-node "^3.2.0" - string-argv "0.3.1" - stringify-object "^3.3.0" - -listr2@^3.2.2: - version "3.11.0" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.11.0.tgz#9771b02407875aa78e73d6e0ff6541bbec0aaee9" - integrity sha512-XLJVe2JgXCyQTa3FbSv11lkKExYmEyA4jltVo8z4FX10Vt1Yj8IMekBfwim0BSOM9uj1QMTJvDQQpHyuPbB/dQ== - dependencies: - cli-truncate "^2.1.0" - colorette "^1.2.2" - log-update "^4.0.0" - p-map "^4.0.0" - rxjs "^6.6.7" - through "^2.3.8" - wrap-ansi "^7.0.0" - -loader-utils@^1.1.0, loader-utils@^1.2.3: - 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" - -lodash.throttle@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" - integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= - -lodash@^4.17.21, lodash@^4.7.0: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-symbols@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -log-update@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" - integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== - dependencies: - ansi-escapes "^4.3.0" - cli-cursor "^3.1.0" - slice-ansi "^4.0.0" - wrap-ansi "^6.2.0" - -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.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.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" - -lru-cache@^4.0.1: - 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@^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" - -lz-string@^1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" - integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= - -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" - -mathjax-full@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/mathjax-full/-/mathjax-full-3.2.0.tgz#e53269842a943d4df10502937518991268996c5c" - integrity sha512-D2EBNvUG+mJyhn+M1C858k0f2Fc4KxXvbEX2WCMXroV10212JwfYqaBJ336ECBSz5X9L5LRoamxb7AJtg3KaJA== - dependencies: - esm "^3.2.25" - mhchemparser "^4.1.0" - mj-context-menu "^0.6.1" - speech-rule-engine "^3.3.3" - -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-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-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-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-frontmatter@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/mdast-util-frontmatter/-/mdast-util-frontmatter-0.2.0.tgz#8bd5cd55e236c03e204a036f7372ebe9e6748240" - integrity sha512-FHKL4w4S5fdt1KjJCwB0178WJ0evnyyQr5kXTM3wrOVpytD0hrkvd+AOOjU9Td8onOejCkmZ+HQRT3CZ3coHHQ== - dependencies: - micromark-extension-frontmatter "^0.2.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-math@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/mdast-util-math/-/mdast-util-math-0.1.2.tgz#629a0793bd8822432917e5ddda5279492390cc2b" - integrity sha512-fogAitds+wH+QRas78Yr1TwmQGN4cW/G2WRw5ePuNoJbBSPJCxIOCE8MTzHgWHVSpgkRaPQTgfzXRE1CrwWSlg== - dependencies: - longest-streak "^2.0.0" - mdast-util-to-markdown "^0.6.0" - repeat-string "^1.0.0" - -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@^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== - -mdurl@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= - -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" - -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== - -mhchemparser@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/mhchemparser/-/mhchemparser-4.1.1.tgz#a2142fdab37a02ec8d1b48a445059287790becd5" - integrity sha512-R75CUN6O6e1t8bgailrF1qPq+HhVeFTM3XQ0uzI+mXTybmphy3b6h4NbLOYhemViQ3lUs+6CKRkC3Ws1TlYREA== - -micromark-extension-frontmatter@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/micromark-extension-frontmatter/-/micromark-extension-frontmatter-0.2.2.tgz#61b8e92e9213e1d3c13f5a59e7862f5ca98dfa53" - integrity sha512-q6nPLFCMTLtfsctAuS0Xh4vaolxSFUWUWR6PZSrXXiRy+SANGllpcqdXFv2z07l0Xz/6Hl40hK0ffNCJPH2n1A== - dependencies: - fault "^1.0.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-extension-math@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/micromark-extension-math/-/micromark-extension-math-0.1.2.tgz#5d7bb2b86018da4a758c05f3991664430ee4d711" - integrity sha512-ZJXsT2eVPM8VTmcw0CPSDeyonOn9SziGK3Z+nkf9Vb6xMPeU+4JMEnO6vzDL10562Favw8Vste74f54rxJ/i6Q== - dependencies: - katex "^0.12.0" - micromark "~2.11.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@^4.0.2: - 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.49.0: - version "1.49.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed" - integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== - -mime-types@^2.1.12: - version "2.1.32" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5" - integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A== - dependencies: - mime-db "1.49.0" - -mime@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0" - integrity sha1-WR2E02U6awtKO5343lqoEI5y5eA= - -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== - -mini-create-react-context@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e" - integrity sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ== - dependencies: - "@babel/runtime" "^7.12.1" - tiny-warning "^1.0.3" - -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= - -minimist@^1.2.0, 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== - -mj-context-menu@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/mj-context-menu/-/mj-context-menu-0.6.1.tgz#a043c5282bf7e1cf3821de07b13525ca6f85aa69" - integrity sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA== - -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== - -neo-async@^2.6.1: - 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== - -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-releases@^1.1.75: - version "1.1.75" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.75.tgz#6dd8c876b9897a1b8e5a02de26afa79bb54ebbfe" - integrity sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw== - -normalize-path@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" - integrity sha1-MtDkcvkf80VwHBWoMRAY07CpA3k= - -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" - -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.0: - 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" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= - -nwsapi@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" - integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== - -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-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.assign@^4.1.0: - 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" - -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: - 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" - -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -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= - -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-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" - -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== - -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" - -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-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" - -parse5@6.0.1, parse5@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -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-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-to-regexp@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" - integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== - dependencies: - isarray "0.0.1" - -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" - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== - -please-upgrade-node@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" - integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== - dependencies: - semver-compare "^1.0.0" - -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-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-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-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-flexbugs-fixes@4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz#9218a65249f30897deab1033aced8578562a6690" - integrity sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ== - dependencies: - postcss "^7.0.26" - -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-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-js@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-2.0.3.tgz#a96f0f23ff3d08cec7dc5b11bf11c5f8077cdab9" - integrity sha512-zS59pAk3deu6dVHyrGqmC3oDXBdNdajk4k1RyxeVXCrcEDBUBHoIhE4QTsmhxgzXxsaqFDAkUZfmMa5f/N/79w== - dependencies: - camelcase-css "^2.0.1" - postcss "^7.0.18" - -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-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-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-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-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-safe-parser@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz#a6d4e48f0f37d9f7c11b2a581bf00f8ba4870b96" - integrity sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g== - dependencies: - postcss "^7.0.26" - -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@^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.2: - 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-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.0.32: - version "7.0.32" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" - integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -postcss@^7.0.0, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.18, postcss@^7.0.2, postcss@^7.0.26, postcss@^7.0.31, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.36" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.36.tgz#056f8cffa939662a8f5905950c07d5285644dfcb" - integrity sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - -prepend-http@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= - -prettier@2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" - integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== - -prettier@^2.2.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d" - integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ== - -prism-react-renderer@^1.1.1, prism-react-renderer@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-1.2.1.tgz#392460acf63540960e5e3caa699d851264e99b89" - integrity sha512-w23ch4f75V1Tnz8DajsYKvY5lF7H1+WvzvLUcF0paFxkTHSp42RS0H5CttdN2Q8RR3DRGZ9v5xD/h3n8C8kGmg== - -prismjs@^1.21.0: - version "1.25.0" - resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.25.0.tgz#6f822df1bdad965734b310b315a23315cf999756" - integrity sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg== - -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= - -prop-types@^15.6.2: - version "15.7.2" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" - integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.8.1" - -property-information@^5.0.0, property-information@^5.3.0, property-information@^5.5.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" - -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= - -psl@^1.1.33: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.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" - -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" - -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, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -qier-player@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/qier-player/-/qier-player-2.0.2.tgz#092be14d34cbf715cfcf458a0464c856183d6dd4" - integrity sha512-U3oGln9WNW9WjZRng5NZ2dIb+ze9KTqSMmdeqmow36ZjID0MMjXZGfdoHTZGIBsVOsKD+Rn42G7fHcN7XJrXlg== - -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.11.0: - 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= - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: - 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" - -rc-align@^4.0.0: - version "4.0.11" - resolved "https://registry.yarnpkg.com/rc-align/-/rc-align-4.0.11.tgz#8198c62db266bc1b8ef05e56c13275bf72628a5e" - integrity sha512-n9mQfIYQbbNTbefyQnRHZPWuTEwG1rY4a9yKlIWHSTbgwI+XUMGRYd0uJ5pE2UbrNX0WvnMBA1zJ3Lrecpra/A== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "2.x" - dom-align "^1.7.0" - lodash "^4.17.21" - rc-util "^5.3.0" - resize-observer-polyfill "^1.5.1" - -rc-dropdown@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/rc-dropdown/-/rc-dropdown-3.2.0.tgz#da6c2ada403842baee3a9e909a0b1a91ba3e1090" - integrity sha512-j1HSw+/QqlhxyTEF6BArVZnTmezw2LnSmRk6I9W7BCqNCKaRwleRmMMs1PHbuaG8dKHVqP6e21RQ7vPBLVnnNw== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "^2.2.6" - rc-trigger "^5.0.4" - -rc-menu@^9.0.0: - version "9.0.12" - resolved "https://registry.yarnpkg.com/rc-menu/-/rc-menu-9.0.12.tgz#492c4bb07a596e2ce07587c669b27ee28c3810c5" - integrity sha512-8uy47DL36iDEwVZdUO/fjhhW5+4j0tYlrCsOzw6iy8MJqKL7/HC2pj7sL/S9ayp2+hk9fYQYB9Tu+UN+N2OOOQ== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "2.x" - rc-motion "^2.4.3" - rc-overflow "^1.2.0" - rc-trigger "^5.1.2" - rc-util "^5.12.0" - shallowequal "^1.1.0" - -rc-motion@^2.0.0, rc-motion@^2.4.3: - version "2.4.4" - resolved "https://registry.yarnpkg.com/rc-motion/-/rc-motion-2.4.4.tgz#e995d5fa24fc93065c24f714857cf2677d655bb0" - integrity sha512-ms7n1+/TZQBS0Ydd2Q5P4+wJTSOrhIrwNxLXCZpR7Fa3/oac7Yi803HDALc2hLAKaCTQtw9LmQeB58zcwOsqlQ== - dependencies: - "@babel/runtime" "^7.11.1" - classnames "^2.2.1" - rc-util "^5.2.1" - -rc-overflow@^1.2.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/rc-overflow/-/rc-overflow-1.2.2.tgz#95b0222016c0cdbdc0db85f569c262e7706a5f22" - integrity sha512-X5kj9LDU1ue5wHkqvCprJWLKC+ZLs3p4He/oxjZ1Q4NKaqKBaYf5OdSzRSgh3WH8kSdrfU8LjvlbWnHgJOEkNQ== - dependencies: - "@babel/runtime" "^7.11.1" - classnames "^2.2.1" - rc-resize-observer "^1.0.0" - rc-util "^5.5.1" - -rc-resize-observer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rc-resize-observer/-/rc-resize-observer-1.0.0.tgz#97fb89856f62fec32ab6e40933935cf58e2e102d" - integrity sha512-RgKGukg1mlzyGdvzF7o/LGFC8AeoMH9aGzXTUdp6m+OApvmRdUuOscq/Y2O45cJA+rXt1ApWlpFoOIioXL3AGg== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "^2.2.1" - rc-util "^5.0.0" - resize-observer-polyfill "^1.5.1" - -rc-tabs@^11.7.1: - version "11.10.1" - resolved "https://registry.yarnpkg.com/rc-tabs/-/rc-tabs-11.10.1.tgz#7b112f78bac998480c777ae160adc425e3fdb7cb" - integrity sha512-ey1i2uMyfnRNYbViLcUYGH+Y7hueJbdCVSLaXnXki9hxBcGqxJMPy9t5xR0n/3QFQspj7Tf6+2VTXVtmO7Yaug== - dependencies: - "@babel/runtime" "^7.11.2" - classnames "2.x" - rc-dropdown "^3.2.0" - rc-menu "^9.0.0" - rc-resize-observer "^1.0.0" - rc-util "^5.5.0" - -rc-trigger@^5.0.4, rc-trigger@^5.1.2: - version "5.2.10" - resolved "https://registry.yarnpkg.com/rc-trigger/-/rc-trigger-5.2.10.tgz#8a0057a940b1b9027eaa33beec8a6ecd85cce2b1" - integrity sha512-FkUf4H9BOFDaIwu42fvRycXMAvkttph9AlbCZXssZDVzz2L+QZ0ERvfB/4nX3ZFPh1Zd+uVGr1DEDeXxq4J1TA== - dependencies: - "@babel/runtime" "^7.11.2" - classnames "^2.2.6" - rc-align "^4.0.0" - rc-motion "^2.0.0" - rc-util "^5.5.0" - -rc-util@^5.0.0, rc-util@^5.12.0, rc-util@^5.2.1, rc-util@^5.3.0, rc-util@^5.5.0, rc-util@^5.5.1: - version "5.13.2" - resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.13.2.tgz#a8a0bb77743351841ba8bed6393e03b8d2f685c8" - integrity sha512-eYc71XXGlp96RMzg01Mhq/T3BL6OOVTDSS0urFEuvpi+e7slhJRhaHGCKy2hqJm18m9ff7VoRoptplKu60dYog== - dependencies: - "@babel/runtime" "^7.12.5" - react-is "^16.12.0" - shallowequal "^1.1.0" - -react-attr-converter@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/react-attr-converter/-/react-attr-converter-0.3.1.tgz#4a2abf6d907b7ddae4d862dfec80e489ce41ad6e" - integrity sha512-dSxo2Mn6Zx4HajeCeQNLefwEO4kNtV/0E682R1+ZTyFRPqxDa5zYb5qM/ocqw9Bxr/kFQO0IUiqdV7wdHw+Cdg== - -react-docgen-typescript-dumi-tmp@^1.22.1-0: - version "1.22.1-0" - resolved "https://registry.yarnpkg.com/react-docgen-typescript-dumi-tmp/-/react-docgen-typescript-dumi-tmp-1.22.1-0.tgz#6f452de05c5c114a6e1dd60b34930afaa7ae39a0" - integrity sha512-wjuAm1yj+ZZucovow2VF0MXkH2SGZ+squZxfNdnam3oyUbHy/xZaU1ZabCn7rY+13ZFx0/NLda+ZuBgF3g8vBA== - -react-dom@16.x: - version "16.14.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89" - integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.19.1" - -react-dom@^17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" - integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - scheduler "^0.20.2" - -react-is@^16.12.0, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react-refresh@0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.10.0.tgz#2f536c9660c0b9b1d500684d9e52a65e7404f7e3" - integrity sha512-PgidR3wST3dDYKr6b4pJoqQFpPGNKDSCDx4cZoshjXipw3LzO7mG1My2pwEzz2JVkF+inx3xRpDeQLFQGH/hsQ== - -react-router-config@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/react-router-config/-/react-router-config-5.1.1.tgz#0f4263d1a80c6b2dc7b9c1902c9526478194a988" - integrity sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg== - dependencies: - "@babel/runtime" "^7.1.2" - -react-router-dom@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.2.0.tgz#9e65a4d0c45e13289e66c7b17c7e175d0ea15662" - integrity sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA== - dependencies: - "@babel/runtime" "^7.1.2" - history "^4.9.0" - loose-envify "^1.3.1" - prop-types "^15.6.2" - react-router "5.2.0" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - -react-router@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.2.0.tgz#424e75641ca8747fbf76e5ecca69781aa37ea293" - integrity sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw== - dependencies: - "@babel/runtime" "^7.1.2" - history "^4.9.0" - hoist-non-react-statics "^3.1.0" - loose-envify "^1.3.1" - mini-create-react-context "^0.4.0" - path-to-regexp "^1.7.0" - prop-types "^15.6.2" - react-is "^16.6.0" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - -react@16.x: - version "16.14.0" - resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" - integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - -react@^17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" - integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.3.3, 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.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@~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" - -regenerator-runtime@0.13.5: - version "0.13.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" - integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== - -regenerator-runtime@^0.13.4: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== - -rehype-autolink-headings@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/rehype-autolink-headings/-/rehype-autolink-headings-4.0.0.tgz#9d5d78c9fb9c787b40efdc95e99cbeb573133e47" - integrity sha512-2lglJ+4S3A4RCz+zlKVWj1wHvwO4bjunAoEOgMfjphT59EVXwdMiJzrL/A2fuAX/33k/LhkGW6BEK1Cl1I5WQw== - dependencies: - extend "^3.0.1" - hast-util-has-property "^1.0.0" - hast-util-is-element "^1.0.0" - unist-util-visit "^2.0.0" - -rehype-mathjax@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/rehype-mathjax/-/rehype-mathjax-3.1.0.tgz#d0282243bf68f3f18dd63a062e0f8c45662ecc26" - integrity sha512-Pmz92Y56lBFmDjFc9nIdrKu1xzKSBYevcwKiKiG7b5JJg74q1E62nRSbPEm37vXaXn7Bn25iRsWcP39bJKkMxg== - dependencies: - "@types/mathjax" "^0.0.36" - hast-util-from-dom "^3.0.0" - hast-util-to-text "^2.0.0" - jsdom "^16.0.0" - mathjax-full "^3.0.0" - unist-util-visit "^2.0.0" - -rehype-remove-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/rehype-remove-comments/-/rehype-remove-comments-4.0.2.tgz#08487a5d85cb7b6a2571d7226176420c6c519a27" - integrity sha512-E2FNohTuIs7QzUnEQs3SdYdCScsTgUN7yPeDNWi+gsvx+pbLzIAyp27TWz3Gm64jpdLi7/6HxyRHxdd1NVQ37A== - dependencies: - hast-util-is-conditional-comment "^1.0.0" - unist-util-filter "^2.0.0" - -rehype-stringify@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/rehype-stringify/-/rehype-stringify-8.0.0.tgz#9b6afb599bcf3165f10f93fc8548f9a03d2ec2ba" - integrity sha512-VkIs18G0pj2xklyllrPSvdShAV36Ff3yE5PUO9u36f6+2qJFnn22Z5gKwBOwgXviux4UC7K+/j13AnZfPICi/g== - dependencies: - hast-util-to-html "^7.1.1" - -remark-frontmatter@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/remark-frontmatter/-/remark-frontmatter-3.0.0.tgz#ca5d996361765c859bd944505f377d6b186a6ec6" - integrity sha512-mSuDd3svCHs+2PyO29h7iijIZx4plX0fheacJcAoYAASfgzgVIcXGYSq9GFyYocFLftQs8IOmmkgtOovs6d4oA== - dependencies: - mdast-util-frontmatter "^0.2.0" - micromark-extension-frontmatter "^0.2.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-math@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-math/-/remark-math-4.0.0.tgz#494ddd50766555ad2332e3afca7796a76452256f" - integrity sha512-lH7SoQenXtQrvL0bm+mjZbvOk//YWNuyR+MxV18Qyv8rgFmMEGNuB0TSCQDkoDaiJ40FCnG8lxErc/zhcedYbw== - dependencies: - mdast-util-math "^0.1.0" - micromark-extension-math "^0.1.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.0.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-stringify@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-9.0.1.tgz#576d06e910548b0a7191a71f27b33f1218862894" - integrity sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg== - dependencies: - mdast-util-to-markdown "^0.6.0" - -repeat-string@^1.0.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -resize-observer-polyfill@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" - integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== - -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-pathname@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" - integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== - -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" - -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" - -rxjs@^6.6.7: - 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.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-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== - -"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@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-8.0.2.tgz#debecd8c3ce243c76454f2e8290482150380090d" - integrity sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ== - dependencies: - clone-deep "^4.0.1" - loader-utils "^1.2.3" - neo-async "^2.6.1" - schema-utils "^2.6.1" - semver "^6.3.0" - -sass@^1.26.2: - version "1.38.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.38.1.tgz#54dfb17fb168846b5850324b82fc62dc68f51bad" - integrity sha512-Lj8nPaSYOuRhgqdyShV50fY5jKnvaRmikUNalMPmbH+tKMGgEKVkltI/lP30PEfO2T1t6R9yc2QIBLgOc3uaFw== - dependencies: - chokidar ">=3.0.0 <4.0.0" - -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== - -saxes@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" - integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== - dependencies: - xmlchars "^2.2.0" - -scheduler@^0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" - integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -scheduler@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" - integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.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.6.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.1.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" - integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= - -semver@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -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== - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -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" - -shallowequal@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" - integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.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== - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -sitemap@^6.3.3: - version "6.4.0" - resolved "https://registry.yarnpkg.com/sitemap/-/sitemap-6.4.0.tgz#b4bc4edf36de742405a7572bc3e467ba484b852e" - integrity sha512-DoPKNc2/apQZTUnfiOONWctwq7s6dZVspxAZe2VPMNtoqNq7HgXRvlRnbIpKjf+8+piQdWncwcy+YhhTGY5USQ== - dependencies: - "@types/node" "^14.14.28" - "@types/sax" "^1.2.1" - arg "^5.0.0" - sax "^1.2.4" - -slash2@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/slash2/-/slash2-2.0.0.tgz#f4e0a11708b8545b912695981cf7096f52c63487" - integrity sha512-7ElvBydJPi3MHU/KEOblFSbO/skl4Z69jKkFCpYIYVOMSIZsKi4gYU43HGeZPmjxCXrHekoDAAewphPQNnsqtA== - -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -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" - -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" - -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@^0.5.0: - 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.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.2: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - -space-separated-tokens@^1.0.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" - integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== - -speech-rule-engine@^3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/speech-rule-engine/-/speech-rule-engine-3.3.3.tgz#781ed03cbcf3279f94d1d80241025ea954c6d571" - integrity sha512-0exWw+0XauLjat+f/aFeo5T8SiDsO1JtwpY3qgJE4cWt+yL/Stl0WP4VNDWdh7lzGkubUD9lWP4J1ASnORXfyQ== - dependencies: - commander ">=7.0.0" - wicked-good-xpath "^1.3.0" - xmldom-sre "^0.1.31" - -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== - -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= - -stackframe@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303" - integrity sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA== - -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-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" - -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-argv@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" - integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== - -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_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.0.1: - 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-object@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" - integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== - dependencies: - get-own-enumerable-property-symbols "^3.0.0" - is-obj "^1.0.1" - is-regexp "^1.0.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-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@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" - integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= - -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" - -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" - -symbol-tree@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - -tapable@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - -terser@5.6.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.6.0.tgz#138cdf21c5e3100b1b3ddfddf720962f88badcd2" - integrity sha512-vyqLMoqadC1uR0vywqOZzriDYzgEkNJFK4q9GeyOBHIbiECHiWLKcWfbQWAUaPfxkjDhapSlZB9f7fkMrvkVjA== - dependencies: - commander "^2.20.0" - source-map "~0.7.2" - source-map-support "~0.5.19" - -terser@^5.5.1: - version "5.7.2" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.2.tgz#d4d95ed4f8bf735cb933e802f2a1829abf545e3f" - integrity sha512-0Omye+RD4X7X69O0eql3lC4Heh/5iLj3ggxR/B5ketZLOtLiOqukUgjw3q4PDnNQbsrkKr3UMypqStQG3XKRvw== - dependencies: - commander "^2.20.0" - source-map "~0.7.2" - source-map-support "~0.5.19" - -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= - -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" - -tiny-invariant@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" - integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== - -tiny-warning@^1.0.0, tiny-warning@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" - integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -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" - -tough-cookie@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" - integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.1.2" - -tr46@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" - integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== - dependencies: - punycode "^2.1.1" - -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== - -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== - -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= - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -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== - -umi@^3.0.0: - version "3.5.17" - resolved "https://registry.yarnpkg.com/umi/-/umi-3.5.17.tgz#d58ed323d715057cc09a6c45a1f382f1b6dd2dab" - integrity sha512-KE2DjN4/jEadBROd2Y1wie4HN2uuZi7FxqcDPy9hCKqvLHPIy112hvpoS5IWa+1j39OCym241KfiTTb0y+vvbg== - dependencies: - "@umijs/bundler-webpack" "3.5.17" - "@umijs/core" "3.5.17" - "@umijs/deps" "3.5.17" - "@umijs/preset-built-in" "3.5.17" - "@umijs/runtime" "3.5.17" - "@umijs/types" "3.5.17" - "@umijs/utils" "3.5.17" - react "16.x" - react-dom "16.x" - v8-compile-cache "2.3.0" - -unified@^8.4.1: - version "8.4.2" - resolved "https://registry.yarnpkg.com/unified/-/unified-8.4.2.tgz#13ad58b4a437faa2751a4a4c6a16f680c500fff1" - integrity sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA== - dependencies: - bail "^1.0.0" - extend "^3.0.0" - is-plain-obj "^2.0.0" - trough "^1.0.0" - vfile "^4.0.0" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -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-filter@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/unist-util-filter/-/unist-util-filter-2.0.3.tgz#558cf866016f0e7ade1e30ef190abf253111dd39" - integrity sha512-8k6Jl/KLFqIRTHydJlHh6+uFgqYHq66pV75pZgr1JwfyFSjbWb12yfb0yitW/0TbHXjr9U4G9BQpOvMANB+ExA== - dependencies: - unist-util-is "^4.0.0" - -unist-util-find-after@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/unist-util-find-after/-/unist-util-find-after-3.0.0.tgz#5c65fcebf64d4f8f496db46fa8fd0fbf354b43e6" - integrity sha512-ojlBqfsBftYXExNu3+hHLfJQ/X1jYY/9vdm4yZWjIbf0VuWF6CRufci1ZyoD/wV2TYMKxXUoNuoqwy+CkgzAiQ== - dependencies: - unist-util-is "^4.0.0" - -unist-util-generated@^1.0.0: - version "1.1.6" - resolved "https://registry.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-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, unist-util-visit-parents@^3.0.1: - 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.1: - 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" - -universalify@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -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" - -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-subscription@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/use-subscription/-/use-subscription-1.5.1.tgz#73501107f02fad84c6dd57965beb0b75c68c42d1" - integrity sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA== - dependencies: - object-assign "^4.1.1" - -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@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" - -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== - -value-equal@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" - integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== - -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: + esbuild "^0.21.3" + postcss "^8.4.43" + rollup "^4.20.0" + optionalDependencies: + fsevents "~2.3.3" + +vitepress@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/vitepress/-/vitepress-1.3.4.tgz#3027f2e2c74e8a72479fd7b40615cf8d3cce2d42" + integrity sha512-I1/F6OW1xl3kW4PaIMC6snxjWgf3qfziq2aqsDoFc/Gt41WbcRv++z8zjw8qGRIJ+I4bUW7ZcKFDHHN/jkH9DQ== + dependencies: + "@docsearch/css" "^3.6.1" + "@docsearch/js" "^3.6.1" + "@shikijs/core" "^1.13.0" + "@shikijs/transformers" "^1.13.0" + "@types/markdown-it" "^14.1.2" + "@vitejs/plugin-vue" "^5.1.2" + "@vue/devtools-api" "^7.3.8" + "@vue/shared" "^3.4.38" + "@vueuse/core" "^11.0.0" + "@vueuse/integrations" "^11.0.0" + focus-trap "^7.5.4" + mark.js "8.11.1" + minisearch "^7.1.0" + shiki "^1.13.0" + vite "^5.4.1" + vue "^3.4.38" + +vue-demi@>=0.14.10: + version "0.14.10" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.10.tgz#afc78de3d6f9e11bf78c55e8510ee12814522f04" + integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg== + +vue@^3.4.38: + version "3.5.7" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.7.tgz#511df1fab33a4c20cfe6b59659d6f601f0c26625" + integrity sha512-JcFm0f5j8DQO9E07pZRxqZ/ZsNopMVzHYXpKvnfqXFcA4JTi+4YcrikRn9wkzWsdj0YsLzlLIsR0zzGxA2P6Wg== + dependencies: + "@vue/compiler-dom" "3.5.7" + "@vue/compiler-sfc" "3.5.7" + "@vue/runtime-dom" "3.5.7" + "@vue/server-renderer" "3.5.7" + "@vue/shared" "3.5.7" + +zwitch@^2.0.4: 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" - -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== - -w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" - -w3c-xmlserializer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" - integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== - dependencies: - xml-name-validator "^3.0.0" - -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== - -webidl-conversions@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" - integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== - -webidl-conversions@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" - integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== - -webpack-chain@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/webpack-chain/-/webpack-chain-6.5.1.tgz#4f27284cbbb637e3c8fbdef43eef588d4d861206" - integrity sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA== - dependencies: - deepmerge "^1.5.2" - javascript-stringify "^2.0.1" - -whatwg-encoding@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== - dependencies: - iconv-lite "0.4.24" - -whatwg-mimetype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== - -whatwg-url@^8.0.0, whatwg-url@^8.5.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" - integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== - dependencies: - lodash "^4.7.0" - tr46 "^2.1.0" - webidl-conversions "^6.1.0" - -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" - -wicked-good-xpath@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/wicked-good-xpath/-/wicked-good-xpath-1.3.0.tgz#81b0e95e8650e49c94b22298fff8686b5553cf6c" - integrity sha1-gbDpXoZQ5JyUsiKY//hoa1VTz2w= - -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== - -wrap-ansi@^6.2.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= - -ws@^7.4.6: - version "7.5.4" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.4.tgz#56bfa20b167427e138a7795de68d134fe92e21f9" - integrity sha512-zP9z6GXm6zC27YtspwH99T3qTG7bBFv2VIkeHstMLrLlDJuzA7tQ5ls3OJ1hOGGCzTQPniNJoHXIAOS0Jljohg== - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - -xmldom-sre@^0.1.31: - version "0.1.31" - resolved "https://registry.yarnpkg.com/xmldom-sre/-/xmldom-sre-0.1.31.tgz#10860d5bab2c603144597d04bf2c4980e98067f4" - integrity sha512-f9s+fUkX04BxQf+7mMWAp5zk61pciie+fFLC9hX9UVvCeJQfNHRHXpeo5MPcR0EUf57PYLdt+ZO4f3Ipk2oZUw== - -xtend@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -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@^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: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - -yorkie@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yorkie/-/yorkie-2.0.0.tgz#92411912d435214e12c51c2ae1093e54b6bb83d9" - integrity sha512-jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw== - dependencies: - execa "^0.8.0" - is-ci "^1.0.10" - normalize-path "^1.0.0" - strip-indent "^2.0.0" - -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== + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" + integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==