diff --git a/.eslintignore b/.eslintignore index 0d2c9f1..d491c0c 100644 --- a/.eslintignore +++ b/.eslintignore @@ -11,4 +11,4 @@ build.ts esm doc-site public -package \ No newline at end of file +package diff --git a/.eslintrc b/.eslintrc index 5e37e6c..56e94d7 100644 --- a/.eslintrc +++ b/.eslintrc @@ -12,22 +12,38 @@ "prettyFormat": true }, "parserOptions": { + "parser": "@typescript-eslint/parser", "ecmaVersion": 10, "sourceType": "module", "ecmaFeatures": { "jsx": true } }, - "parser": "@typescript-eslint/parser", - "plugins": ["@typescript-eslint", "markdown"], + "parser": "vue-eslint-parser", + "plugins": ["@typescript-eslint", "markdown", "import"], "rules": { "@typescript-eslint/explicit-module-boundary-types": "off", "@typescript-eslint/consistent-type-imports": "warn", "@typescript-eslint/no-var-requires": "off", "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-non-null-assertion": "off", "@typescript-eslint/no-unused-vars": "error", "@typescript-eslint/ban-ts-comment": "off", - "no-console": "error" + "@typescript-eslint/ban-types": "off", + "vue/multi-word-component-names": "off", + "no-console": "error", + "import/order": [ + "error", + { + "pathGroups": [ + { + "pattern": "@/**", + "group": "external" + } + ], + "groups": ["external", "internal", "builtin", "parent", "sibling", "index", "object"] + } + ] }, "overrides": [ { diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ee53779..0ce7e98 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,7 @@ jobs: if: contains(github.event.head_commit.message, 'chore(versions)') == false strategy: matrix: - node_version: [10.x, 11.x] + node_version: [18.x] os: [ubuntu-latest] steps: - uses: actions/checkout@v1 diff --git a/.gitignore b/.gitignore index 713019f..8d4f665 100644 --- a/.gitignore +++ b/.gitignore @@ -11,7 +11,6 @@ lib/ esm/ temp_esm/ dist/ -build/ coverage/ node_modules/ examples/test @@ -26,4 +25,6 @@ package.zip doc-site .lerna-changelog .history -.lint-report.log \ No newline at end of file +.lint-report.log +.temp +.cache diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000..d24fdfc --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +npx lint-staged diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..c690529 --- /dev/null +++ b/.npmrc @@ -0,0 +1,2 @@ +registry="https://registry.npmmirror.com/" +sass_binary_site="https://registry.npmmirror.com/mirrors/node-sass/" diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..d491c0c --- /dev/null +++ b/.prettierignore @@ -0,0 +1,14 @@ +node_modules +lib +dist +build +coverage +expected +website +gh-pages +weex +build.ts +esm +doc-site +public +package diff --git a/.prettierrc.js b/.prettierrc.js deleted file mode 100644 index eccc3c2..0000000 --- a/.prettierrc.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - semi: false, - tabWidth: 2, - singleQuote: true, -} diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..ecdf3e0 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json.schemastore.org/prettierrc", + "semi": false, + "tabWidth": 2, + "singleQuote": true, + "printWidth": 100, + "trailingComma": "none" +} diff --git a/.yarnrc b/.yarnrc deleted file mode 100644 index 6c8b0a1..0000000 --- a/.yarnrc +++ /dev/null @@ -1 +0,0 @@ -registry "https://registry.yarnpkg.com" \ No newline at end of file diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000..0648e74 --- /dev/null +++ b/babel.config.js @@ -0,0 +1,16 @@ +module.exports = (api) => { + return { + presets: [ + [ + '@babel/preset-env', + { + useBuiltIns: false, + modules: api.env(['es']) ? false : api.env(['cjs']) ? 'commonjs' : 'auto' + } + ], + + '@babel/preset-typescript' + ], + plugins: ['@babel/transform-runtime', '@vue/babel-plugin-jsx'] + } +} diff --git a/docs/.vuepress/clientAppEnhance.ts b/docs/.vuepress/clientAppEnhance.ts new file mode 100644 index 0000000..fb3fe82 --- /dev/null +++ b/docs/.vuepress/clientAppEnhance.ts @@ -0,0 +1,10 @@ +import { defineClientAppEnhance } from '@vuepress/client' +import AntDesign from 'ant-design-vue' +import 'prismjs/themes/prism-tomorrow.css' +import DumiPreviewer from './components/dumi-previewer.vue' +import './styles/index.styl' + +export default defineClientAppEnhance(({ app }) => { + app.use(AntDesign) + app.component('dumi-previewer', DumiPreviewer) +}) diff --git a/docs/.vuepress/components/createCodeSandBox.js b/docs/.vuepress/components/createCodeSandBox.js index 04e85fc..f6fd7ca 100644 --- a/docs/.vuepress/components/createCodeSandBox.js +++ b/docs/.vuepress/components/createCodeSandBox.js @@ -1,17 +1,60 @@ import { getParameters } from 'codesandbox/lib/api/define' const CodeSandBoxHTML = '
' -const CodeSandBoxJS = ` -import Vue from 'vue' +const CodeSandBoxJS = `import { createApp } from 'vue' import App from './App.vue' -import "@formily/antdv/dist/antdv.css"; -import "ant-design-vue/dist/antd.css"; -Vue.config.productionTip = false +createApp(App).mount('#app') +` -new Vue({ - render: h => h(App), -}).$mount('#app')` +const TsconfigContent = `{ + "compilerOptions": { + "target": "esnext", + "module": "esnext", + "strict": true, + "jsx": "preserve", + "moduleResolution": "node", + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "forceConsistentCasingInFileNames": true, + "useDefineForClassFields": true, + "sourceMap": true, + "noImplicitAny": false, + "baseUrl": ".", + "types": [ + "webpack-env" + ], + "paths": { + "@/*": [ + "src/*" + ] + }, + "lib": [ + "esnext", + "dom", + "dom.iterable", + "scripthost" + ] + }, + "include": [ + "src/**/*.ts", + "src/**/*.tsx", + "src/**/*.vue", + "tests/**/*.ts", + "tests/**/*.tsx" + ], + "exclude": [ + "node_modules" + ] +} +` +const ShimsVueContent = `declare module '*.vue' { + import type { DefineComponent } from 'vue' + const component: DefineComponent<{}, {}, any> + export default component +} +` const createForm = ({ method, action, data }) => { const form = document.createElement('form') // 构造 form @@ -50,63 +93,72 @@ export function createCodeSandBox(codeStr) { view: 'browser', container: { port: 8080, - node: '14', - }, - }, + node: '14' + } + } }, 'package.json': { content: { scripts: { serve: 'vue-cli-service serve', build: 'vue-cli-service build', - lint: 'vue-cli-service lint', + lint: 'vue-cli-service lint' }, dependencies: { '@formily/core': 'latest', '@formily/vue': 'latest', '@formily/antdv': 'latest', - axios: '^0.21.1', - 'core-js': '^3.6.5', - 'ant-design-vue': '^1.7.8', - 'vue-demi': 'latest', - vue: '^2.6.11', + 'core-js': '^3.8.3', + 'ant-design-vue': '^3.2.6', + vue: '^3.2.37' }, devDependencies: { - '@vue/cli-plugin-babel': '~4.5.0', - '@vue/cli-service': '~4.5.0', - '@vue/composition-api': 'latest', - 'vue-template-compiler': '^2.6.11', + '@vue/cli-plugin-babel': '~5.0.0', + '@vue/cli-service': '~5.0.0', + '@vue/cli-plugin-typescript': '~5.0.0', less: 'latest', - 'less-loader': '^5.0.0', + 'less-loader': 'latest', + typescript: '~4.5.5' }, babel: { - presets: ['@vue/cli-plugin-babel/preset'], + presets: ['@vue/cli-plugin-babel/preset'] }, vue: { devServer: { + headers: { + 'Access-Control-Allow-Origin': '*' + }, host: '0.0.0.0', - disableHostCheck: true, // 必须 + allowedHosts: 'all' }, css: { loaderOptions: { less: { - javascriptEnabled: true, - }, - }, - }, - }, - }, + lessOptions: { + javascriptEnabled: true + } + } + } + } + } + } }, 'src/App.vue': { - content: codeStr, + content: codeStr + }, + 'src/main.ts': { + content: CodeSandBoxJS }, - 'src/main.js': { - content: CodeSandBoxJS, + 'src/shims-vue.d.ts': { + content: ShimsVueContent }, 'public/index.html': { - content: CodeSandBoxHTML, + content: CodeSandBoxHTML }, - }, + 'tsconfig.json': { + content: TsconfigContent + } + } }) createForm({ @@ -114,7 +166,7 @@ export function createCodeSandBox(codeStr) { action: 'https://codesandbox.io/api/v1/sandboxes/define', data: { parameters, - query: 'file=/src/App.vue', - }, + query: 'file=/src/App.vue' + } }) } diff --git a/docs/.vuepress/components/dumi-previewer.vue b/docs/.vuepress/components/dumi-previewer.vue index fe7826b..2ddc462 100644 --- a/docs/.vuepress/components/dumi-previewer.vue +++ b/docs/.vuepress/components/dumi-previewer.vue @@ -1,18 +1,19 @@ - @@ -199,6 +176,10 @@ export default { &:hover { opacity: 0.6; } + + &.mr6 { + margin-right: 6px + } } } diff --git a/docs/.vuepress/components/highlight.js b/docs/.vuepress/components/highlight.js index d68dfa6..542fe60 100644 --- a/docs/.vuepress/components/highlight.js +++ b/docs/.vuepress/components/highlight.js @@ -1,6 +1,6 @@ -const prism = require('prismjs') -const escapeHtml = require('escape-html') -const loadLanguages = require('prismjs/components/index') +import prism from 'prismjs' +import escapeHtml from 'escape-html' +import loadLanguages from 'prismjs/components/index' function wrap(code, lang) { if (lang === 'text') { @@ -21,13 +21,13 @@ function getLangCodeFromExtension(extension) { yml: 'yaml', styl: 'stylus', kt: 'kotlin', - rs: 'rust', + rs: 'rust' } return extensionMap[extension] || extension } -module.exports = (str, lang) => { +export default function (str, lang) { if (!lang) { return wrap(str, 'text') } @@ -40,9 +40,7 @@ module.exports = (str, lang) => { try { loadLanguages([lang]) } catch (e) { - console.warn( - `[vuepress] Syntax highlight for language "${lang}" is not supported.` - ) + console.warn(`[vuepress] Syntax highlight for language "${lang}" is not supported.`) } } if (prism.languages[lang]) { diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js deleted file mode 100644 index b5622b9..0000000 --- a/docs/.vuepress/config.js +++ /dev/null @@ -1,79 +0,0 @@ -const path = require('path') -const utils = require('./util') - -const componentFiles = utils - .getFiles(path.resolve(__dirname, '../guide')) - .map((item) => item.replace(/(\.md)/g, '')) - .filter((item) => !['index'].includes(item)) - -module.exports = { - title: 'Formily Antdv', - dest: './doc-site', - theme: '@vuepress-dumi/dumi', - head: [ - [ - 'link', - { - rel: 'icon', - href: '//img.alicdn.com/imgextra/i3/O1CN01XtT3Tv1Wd1b5hNVKy_!!6000000002810-55-tps-360-360.svg', - }, - ], - [ - 'link', - { - rel: 'stylesheet', - href: 'https://unpkg.com/ant-design-vue@1.7.8/dist/antd.css', - }, - ], - ], - themeConfig: { - logo: '//img.alicdn.com/imgextra/i2/O1CN01Kq3OHU1fph6LGqjIz_!!6000000004056-55-tps-1141-150.svg', - nav: [ - { - text: '指南', - link: '/guide/', - }, - { - text: '主站', - link: 'https://formilyjs.org', - }, - { - text: 'GITHUB', - link: 'https://github.com/formilyjs/antdv', - }, - ], - sidebar: { - '/guide/': ['', ...componentFiles], - }, - lastUpdated: 'Last Updated', - smoothScroll: true, - }, - plugins: [ - 'vuepress-plugin-typescript', - '@vuepress/back-to-top', - '@vuepress/last-updated', - '@vuepress-dumi/dumi-previewer', - [ - '@vuepress/medium-zoom', - { - selector: '.content__default :not(a) > img', - }, - ], - ], - less: { - modifyVars: {}, - javascriptEnabled: true, - }, - configureWebpack: (config, isServer) => { - return { - resolve: { - alias: { - '@formily/antdv': path.resolve( - __dirname, - '../../packages/components/src' - ), - }, - }, - } - }, -} diff --git a/docs/.vuepress/config.ts b/docs/.vuepress/config.ts new file mode 100644 index 0000000..aae4d8d --- /dev/null +++ b/docs/.vuepress/config.ts @@ -0,0 +1,68 @@ +import VueJsx from '@vitejs/plugin-vue-jsx' +import path from 'path' +import { defineUserConfig } from 'vuepress' +import utils from './util' + +const componentFiles = utils + .getFiles(path.resolve(__dirname, '../guide')) + .map((item) => item.replace(/(\.md)/g, '')) + .filter((item) => !['index'].includes(item)) + +export default defineUserConfig({ + title: 'Formily Antdv', + dest: './doc-site', + theme: 'vuepress-theme-dumi', + head: [ + [ + 'link', + { + rel: 'icon', + href: '//img.alicdn.com/imgextra/i3/O1CN01XtT3Tv1Wd1b5hNVKy_!!6000000002810-55-tps-360-360.svg' + } + ] + ], + themeConfig: { + logo: '//img.alicdn.com/imgextra/i2/O1CN01Kq3OHU1fph6LGqjIz_!!6000000004056-55-tps-1141-150.svg', + navbar: [ + { + text: '指南', + link: '/guide/' + }, + { + text: '主站', + link: 'https://formilyjs.org' + }, + { + text: 'GITHUB', + link: 'https://github.com/formilyjs/Antdv' + } + ], + sidebar: { + '/guide/': ['/guide/index.md', ...componentFiles] + }, + lastUpdated: true, + smoothScroll: true + }, + markdown: { + code: { + lineNumbers: false + } + }, + plugins: ['vuepress-plugin-typescript'], + bundlerConfig: { + viteOptions: { + css: { + preprocessorOptions: { + less: { + modifyVars: {}, + javascriptEnabled: true + } + } + }, + plugins: [VueJsx({})] + } + }, + alias: { + '@formily/antdv': path.resolve(__dirname, '../../packages/components/src') + } +}) diff --git a/docs/.vuepress/enhanceApp.js b/docs/.vuepress/enhanceApp.js deleted file mode 100644 index 6804eda..0000000 --- a/docs/.vuepress/enhanceApp.js +++ /dev/null @@ -1,10 +0,0 @@ -import pageComponents from '@internal/page-components' -import AntDesign from 'ant-design-vue' -import '@formily/antdv/style.ts' - -export default ({ Vue }) => { - for (const [name, component] of Object.entries(pageComponents)) { - Vue.component(name, component) - } - Vue.use(AntDesign) -} diff --git a/docs/.vuepress/styles/index.styl b/docs/.vuepress/styles/index.styl index be1b5c0..d1257f6 100644 --- a/docs/.vuepress/styles/index.styl +++ b/docs/.vuepress/styles/index.styl @@ -66,6 +66,10 @@ margin: 1em 0; } +.theme-dumi-content table:not([class]) { + overflow-x: visible; +} + .custom-block.warning p { margin: 0; } diff --git a/docs/.vuepress/util.js b/docs/.vuepress/util.js deleted file mode 100644 index f5a7a35..0000000 --- a/docs/.vuepress/util.js +++ /dev/null @@ -1,7 +0,0 @@ -const fs = require('fs') - -module.exports = { - getFiles(dir) { - return fs.readdirSync(dir) - }, -} diff --git a/docs/.vuepress/util.ts b/docs/.vuepress/util.ts new file mode 100644 index 0000000..25f4dcf --- /dev/null +++ b/docs/.vuepress/util.ts @@ -0,0 +1,7 @@ +import fs from 'fs' + +export default { + getFiles(dir: string): Array { + return fs.readdirSync(dir) + } +} diff --git a/docs/README.md b/docs/README.md index d07a9a2..e1fcf35 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,9 +1,10 @@ --- home: true heroText: Formily Antdv -tagline: 基于 ant-design-vue 封装的Formily2.x组件体系 -actionText: 开发指南 -actionLink: /guide/ +tagline: 基于 ant-design-vue 和Vue 3 封装的Formily2.x组件体系 +actions: + - text: 开发指南 + link: /guide/ features: - title: 更易用 details: 开箱即用,案例丰富 @@ -11,16 +12,23 @@ features: details: 傻瓜写法,超高性能 - title: 更专业 details: 完备,灵活,优雅 -footer: Open-source MIT Licensed | Copyright © 2019-present +footer: Open-source MIT Licensed | Copyright © 2022-present --- ## 安装 -vue2: +vue3: ```bash $ npm install --save ant-design-vue -$ npm install --save @formily/core @formily/vue @vue/composition-api @formily/antdv +$ npm install --save @formily/core @formily/vue vue @formily/antdv +``` + +vue2 请安装 @formily/antdv 1.x 版本 + +```bash +$ npm install --save ant-design-vue +$ npm install --save @formily/core @formily/vue vue@2.x @formily/antdv@1.x ``` ## 快速开始 diff --git a/docs/demos/guide/array-cards/effects-json-schema.vue b/docs/demos/guide/array-cards/effects-json-schema.vue index 0801d27..9e6d521 100644 --- a/docs/demos/guide/array-cards/effects-json-schema.vue +++ b/docs/demos/guide/array-cards/effects-json-schema.vue @@ -5,33 +5,24 @@ - diff --git a/docs/demos/guide/array-cards/effects-markup-schema.vue b/docs/demos/guide/array-cards/effects-markup-schema.vue index c292947..9bbf352 100644 --- a/docs/demos/guide/array-cards/effects-markup-schema.vue +++ b/docs/demos/guide/array-cards/effects-markup-schema.vue @@ -3,11 +3,11 @@ @@ -53,33 +53,25 @@ - diff --git a/docs/demos/guide/array-cards/json-schema.vue b/docs/demos/guide/array-cards/json-schema.vue index 1715a27..46d6aee 100644 --- a/docs/demos/guide/array-cards/json-schema.vue +++ b/docs/demos/guide/array-cards/json-schema.vue @@ -5,33 +5,25 @@ - diff --git a/docs/demos/guide/array-cards/markup-schema.vue b/docs/demos/guide/array-cards/markup-schema.vue index a252ecf..e2bca8f 100644 --- a/docs/demos/guide/array-cards/markup-schema.vue +++ b/docs/demos/guide/array-cards/markup-schema.vue @@ -3,11 +3,11 @@ @@ -27,11 +27,11 @@ @@ -54,47 +54,39 @@ - diff --git a/docs/demos/guide/array-collapse/effects-json-schema.vue b/docs/demos/guide/array-collapse/effects-json-schema.vue index ce79df8..cd640a4 100644 --- a/docs/demos/guide/array-collapse/effects-json-schema.vue +++ b/docs/demos/guide/array-collapse/effects-json-schema.vue @@ -5,33 +5,24 @@ - diff --git a/docs/demos/guide/array-collapse/effects-markup-schema.vue b/docs/demos/guide/array-collapse/effects-markup-schema.vue index 534795e..3abd5f2 100644 --- a/docs/demos/guide/array-collapse/effects-markup-schema.vue +++ b/docs/demos/guide/array-collapse/effects-markup-schema.vue @@ -3,18 +3,18 @@ @@ -52,43 +52,33 @@ - + 提交 - diff --git a/docs/demos/guide/array-collapse/json-schema.vue b/docs/demos/guide/array-collapse/json-schema.vue index 0bd5f46..04934dc 100644 --- a/docs/demos/guide/array-collapse/json-schema.vue +++ b/docs/demos/guide/array-collapse/json-schema.vue @@ -5,33 +5,25 @@ - diff --git a/docs/demos/guide/array-collapse/markup-schema.vue b/docs/demos/guide/array-collapse/markup-schema.vue index eaed017..57350b2 100644 --- a/docs/demos/guide/array-collapse/markup-schema.vue +++ b/docs/demos/guide/array-collapse/markup-schema.vue @@ -3,18 +3,18 @@ @@ -29,21 +29,18 @@ - + @@ -58,24 +55,21 @@ - + @@ -94,7 +88,7 @@ x-component="ArrayCollapse.Addition" title="添加条目(unshift)" :x-component-props="{ - method: 'unshift', + method: 'unshift' }" /> @@ -105,14 +99,10 @@ () => { form.setInitialValues({ array: Array.from({ length: 10 }).map(() => ({ - input: 'default value', + input: 'default value' })), - string_array: Array.from({ length: 10 }).map( - () => 'default value' - ), - string_array_unshift: Array.from({ length: 10 }).map( - () => 'default value' - ), + string_array: Array.from({ length: 10 }).map(() => 'default value'), + string_array_unshift: Array.from({ length: 10 }).map(() => 'default value') }) } " @@ -124,47 +114,42 @@ - diff --git a/docs/demos/guide/array-items/json-schema.vue b/docs/demos/guide/array-items/json-schema.vue index 9b18d71..4183abc 100644 --- a/docs/demos/guide/array-items/json-schema.vue +++ b/docs/demos/guide/array-items/json-schema.vue @@ -5,7 +5,7 @@ - diff --git a/docs/demos/guide/array-items/markup-schema.vue b/docs/demos/guide/array-items/markup-schema.vue index 29c49c0..f6ef4d9 100644 --- a/docs/demos/guide/array-items/markup-schema.vue +++ b/docs/demos/guide/array-items/markup-schema.vue @@ -8,10 +8,7 @@ x-component="ArrayItems" > - + - + @@ -38,10 +32,7 @@ > - + - + @@ -95,10 +83,7 @@ > - + - + @@ -134,7 +116,7 @@ - diff --git a/docs/demos/guide/array-table/effects-json-schema.vue b/docs/demos/guide/array-table/effects-json-schema.vue index 23ee9de..e17dd73 100644 --- a/docs/demos/guide/array-table/effects-json-schema.vue +++ b/docs/demos/guide/array-table/effects-json-schema.vue @@ -5,17 +5,11 @@ - diff --git a/docs/demos/guide/array-table/effects-markup-schema.vue b/docs/demos/guide/array-table/effects-markup-schema.vue index d186fe1..8fafaf2 100644 --- a/docs/demos/guide/array-table/effects-markup-schema.vue +++ b/docs/demos/guide/array-table/effects-markup-schema.vue @@ -13,7 +13,7 @@ x-component="ArrayTable" :x-component-props="{ pagination: { pageSize: 10 }, - scroll: { x: 800 }, + scroll: { x: 800 } }" > @@ -28,36 +28,24 @@ x-component="ArrayTable.Column" :x-component-props="{ title: '显隐->A2', - width: 100, + width: 100 }" > - + - + - + @@ -83,17 +71,11 @@ - diff --git a/docs/demos/guide/array-table/json-schema.vue b/docs/demos/guide/array-table/json-schema.vue index 7238aa5..dbb6bc0 100644 --- a/docs/demos/guide/array-table/json-schema.vue +++ b/docs/demos/guide/array-table/json-schema.vue @@ -5,7 +5,7 @@ - diff --git a/docs/demos/guide/array-table/markup-schema.vue b/docs/demos/guide/array-table/markup-schema.vue index 9f39c82..9ba6cf2 100644 --- a/docs/demos/guide/array-table/markup-schema.vue +++ b/docs/demos/guide/array-table/markup-schema.vue @@ -6,8 +6,7 @@ x-decorator="FormItem" x-component="ArrayTable" :x-component-props="{ - pagination: { pageSize: 10 }, - scroll: { x: 800 }, + pagination: { pageSize: 10 } }" > @@ -15,10 +14,7 @@ x-component="ArrayTable.Column" :x-component-props="{ width: 80, title: 'Index', align: 'center' }" > - + @@ -77,7 +72,7 @@ @click=" () => { form.setInitialValues({ - array: range(100000), + array: range(100000) }) } " @@ -92,7 +87,7 @@ - diff --git a/docs/demos/guide/array-tabs/json-schema.vue b/docs/demos/guide/array-tabs/json-schema.vue index a75f12e..3b0ea63 100644 --- a/docs/demos/guide/array-tabs/json-schema.vue +++ b/docs/demos/guide/array-tabs/json-schema.vue @@ -5,17 +5,10 @@ - diff --git a/docs/demos/guide/array-tabs/markup-schema.vue b/docs/demos/guide/array-tabs/markup-schema.vue index 23b9694..9e991f9 100644 --- a/docs/demos/guide/array-tabs/markup-schema.vue +++ b/docs/demos/guide/array-tabs/markup-schema.vue @@ -5,20 +5,16 @@ name="string_array" x-decorator="FormItem" title="字符串数组" - :maxItems="3" + :max-items="3" x-component="ArrayTabs" > - + @@ -45,17 +41,10 @@ - diff --git a/docs/demos/guide/cascader/json-schema.vue b/docs/demos/guide/cascader/json-schema.vue index 6f52431..6571630 100644 --- a/docs/demos/guide/cascader/json-schema.vue +++ b/docs/demos/guide/cascader/json-schema.vue @@ -1,26 +1,23 @@ - l diff --git a/docs/demos/guide/cascader/markup-schema.vue b/docs/demos/guide/cascader/markup-schema.vue index 71178a6..d14ce93 100644 --- a/docs/demos/guide/cascader/markup-schema.vue +++ b/docs/demos/guide/cascader/markup-schema.vue @@ -9,8 +9,8 @@ x-component="Cascader" :x-component-props="{ style: { - width: '240px', - }, + width: '240px' + } }" /> @@ -19,19 +19,20 @@ - l diff --git a/docs/demos/guide/cascader/template.vue b/docs/demos/guide/cascader/template.vue index c6ea2ed..6a132ee 100644 --- a/docs/demos/guide/cascader/template.vue +++ b/docs/demos/guide/cascader/template.vue @@ -9,9 +9,9 @@ Cascader, { style: { - width: '240px', - }, - }, + width: '240px' + } + } ]" /> @@ -19,19 +19,20 @@ - diff --git a/docs/demos/guide/checkbox/json-schema.vue b/docs/demos/guide/checkbox/json-schema.vue index 086cb99..1c0d905 100644 --- a/docs/demos/guide/checkbox/json-schema.vue +++ b/docs/demos/guide/checkbox/json-schema.vue @@ -5,7 +5,7 @@ - -l diff --git a/docs/demos/guide/checkbox/markup-schema.vue b/docs/demos/guide/checkbox/markup-schema.vue index a41d733..613a1b0 100644 --- a/docs/demos/guide/checkbox/markup-schema.vue +++ b/docs/demos/guide/checkbox/markup-schema.vue @@ -12,7 +12,7 @@ title="复选" :enum="[ { label: '选项1', value: 1 }, - { label: '选项2', value: 2 }, + { label: '选项2', value: 2 } ]" x-decorator="FormItem" x-component="Checkbox.Group" @@ -22,7 +22,7 @@ - -l diff --git a/docs/demos/guide/checkbox/template.vue b/docs/demos/guide/checkbox/template.vue index 4116732..d33b7c2 100644 --- a/docs/demos/guide/checkbox/template.vue +++ b/docs/demos/guide/checkbox/template.vue @@ -1,22 +1,17 @@ - -l diff --git a/docs/demos/guide/date-picker/markup-schema.vue b/docs/demos/guide/date-picker/markup-schema.vue index 37a4a7d..651b54e 100644 --- a/docs/demos/guide/date-picker/markup-schema.vue +++ b/docs/demos/guide/date-picker/markup-schema.vue @@ -25,7 +25,7 @@ x-decorator="FormItem" x-component="DatePicker" :x-component-props="{ - mode: 'year', + picker: 'year' }" /> @@ -51,7 +51,7 @@ - -l diff --git a/docs/demos/guide/date-picker/template.vue b/docs/demos/guide/date-picker/template.vue index 19dcd4d..d04bfb5 100644 --- a/docs/demos/guide/date-picker/template.vue +++ b/docs/demos/guide/date-picker/template.vue @@ -1,11 +1,6 @@ - -l diff --git a/docs/demos/guide/editable/json-schema.vue b/docs/demos/guide/editable/json-schema.vue index cc3d00d..536fb45 100644 --- a/docs/demos/guide/editable/json-schema.vue +++ b/docs/demos/guide/editable/json-schema.vue @@ -7,25 +7,18 @@ - diff --git a/docs/demos/guide/editable/markup-schema.vue b/docs/demos/guide/editable/markup-schema.vue index 47b7839..819f596 100644 --- a/docs/demos/guide/editable/markup-schema.vue +++ b/docs/demos/guide/editable/markup-schema.vue @@ -1,15 +1,11 @@ - diff --git a/docs/demos/guide/editable/template.vue b/docs/demos/guide/editable/template.vue index 0b55c20..1a5fae2 100644 --- a/docs/demos/guide/editable/template.vue +++ b/docs/demos/guide/editable/template.vue @@ -1,17 +1,7 @@ - diff --git a/docs/demos/guide/form-button-group.vue b/docs/demos/guide/form-button-group.vue index 689f269..3d8145c 100644 --- a/docs/demos/guide/form-button-group.vue +++ b/docs/demos/guide/form-button-group.vue @@ -1,19 +1,9 @@ - diff --git a/docs/demos/guide/form-collapse/json-schema.vue b/docs/demos/guide/form-collapse/json-schema.vue index 86d00a7..57b6fa1 100644 --- a/docs/demos/guide/form-collapse/json-schema.vue +++ b/docs/demos/guide/form-collapse/json-schema.vue @@ -2,7 +2,7 @@ - + - diff --git a/docs/demos/guide/form-dialog/markup-schema.vue b/docs/demos/guide/form-dialog/markup-schema.vue index 114709f..fd1507b 100644 --- a/docs/demos/guide/form-dialog/markup-schema.vue +++ b/docs/demos/guide/form-dialog/markup-schema.vue @@ -4,29 +4,28 @@ - diff --git a/docs/demos/guide/form-dialog/template.vue b/docs/demos/guide/form-dialog/template.vue index eaf739f..efd6f75 100644 --- a/docs/demos/guide/form-dialog/template.vue +++ b/docs/demos/guide/form-dialog/template.vue @@ -2,17 +2,13 @@ - diff --git a/docs/demos/guide/form-drawer/json-schema.vue b/docs/demos/guide/form-drawer/json-schema.vue index 427c314..1211cc0 100644 --- a/docs/demos/guide/form-drawer/json-schema.vue +++ b/docs/demos/guide/form-drawer/json-schema.vue @@ -2,20 +2,15 @@ - diff --git a/docs/demos/guide/form-drawer/markup-schema.vue b/docs/demos/guide/form-drawer/markup-schema.vue index 83a7381..20abe64 100644 --- a/docs/demos/guide/form-drawer/markup-schema.vue +++ b/docs/demos/guide/form-drawer/markup-schema.vue @@ -2,21 +2,16 @@ - diff --git a/docs/demos/guide/form-drawer/template.vue b/docs/demos/guide/form-drawer/template.vue index 672fc04..f7d0153 100644 --- a/docs/demos/guide/form-drawer/template.vue +++ b/docs/demos/guide/form-drawer/template.vue @@ -2,17 +2,13 @@ - diff --git a/docs/demos/guide/form-grid/json-schema.vue b/docs/demos/guide/form-grid/json-schema.vue index cdc7295..d15db0d 100644 --- a/docs/demos/guide/form-grid/json-schema.vue +++ b/docs/demos/guide/form-grid/json-schema.vue @@ -5,7 +5,7 @@ - l diff --git a/docs/demos/guide/form-grid/markup-schema.vue b/docs/demos/guide/form-grid/markup-schema.vue index ce28ece..a2d773f 100644 --- a/docs/demos/guide/form-grid/markup-schema.vue +++ b/docs/demos/guide/form-grid/markup-schema.vue @@ -5,7 +5,7 @@ x-component="FormGrid" :x-component-props="{ maxColumns: 3, - minColumns: 2, + minColumns: 2 }" > - - - - - - + + + + + + 提交 - diff --git a/docs/demos/guide/form-grid/native.vue b/docs/demos/guide/form-grid/native.vue index 96eb686..27b33c2 100644 --- a/docs/demos/guide/form-grid/native.vue +++ b/docs/demos/guide/form-grid/native.vue @@ -1,8 +1,8 @@ - diff --git a/docs/demos/guide/form-item/bordered-none.vue b/docs/demos/guide/form-item/bordered-none.vue index 2d33fc6..c97c317 100644 --- a/docs/demos/guide/form-item/bordered-none.vue +++ b/docs/demos/guide/form-item/bordered-none.vue @@ -8,7 +8,7 @@ x-component="Input" required :x-decorator-props="{ - bordered: false, + bordered: false }" /> - diff --git a/docs/demos/guide/form-item/common.vue b/docs/demos/guide/form-item/common.vue index a64a445..7692133 100644 --- a/docs/demos/guide/form-item/common.vue +++ b/docs/demos/guide/form-item/common.vue @@ -6,7 +6,7 @@ x-decorator="FormItem" x-component="Input" :x-decorator-props="{ - labelWidth: 300, + labelWidth: 300 }" /> - + @@ -37,7 +33,7 @@ x-decorator="FormItem" x-component="Input" :x-decorator-props="{ - labelWidth: 300, + labelWidth: 300 }" /> @@ -77,7 +73,7 @@ x-component="Input" :x-decorator-props="{ labelWidth: 300, - labelAlign: 'left', + labelAlign: 'left' }" /> @@ -137,7 +133,7 @@ x-decorator="FormItem" x-component="Select" :x-decorator-props="{ - fullness: true, + fullness: true }" /> @@ -148,7 +144,7 @@ :x-decorator-props="{ asterisk: true, labelCol: 6, - wrapperCol: 10, + wrapperCol: 10 }" /> @@ -199,7 +195,7 @@ x-component="Input" description="description" :x-decorator-props="{ - feedbackStatus: 'error', + feedbackStatus: 'error' }" /> @@ -236,7 +232,7 @@ x-component="Input" :required="true" :x-decorator-props="{ - feedbackLayout: 'terse', + feedbackLayout: 'terse' }" /> @@ -302,7 +298,7 @@ x-component="FormLayout" :x-component-props="{ labelCol: 6, - wrapperCol: 10, + wrapperCol: 10 }" > @@ -391,7 +387,8 @@ - diff --git a/docs/demos/guide/form-item/feedback.vue b/docs/demos/guide/form-item/feedback.vue index 3de2c9e..f5a2413 100644 --- a/docs/demos/guide/form-item/feedback.vue +++ b/docs/demos/guide/form-item/feedback.vue @@ -8,7 +8,7 @@ x-component="Input" description="description" :x-decorator-props="{ - feedbackStatus: 'error', + feedbackStatus: 'error' }" /> @@ -45,7 +45,7 @@ x-component="Input" :required="true" :x-decorator-props="{ - feedbackLayout: 'terse', + feedbackLayout: 'terse' }" /> @@ -111,7 +111,7 @@ x-component="FormLayout" :x-component-props="{ labelCol: 6, - wrapperCol: 10, + wrapperCol: 10 }" > @@ -200,7 +200,8 @@ - diff --git a/docs/demos/guide/form-item/inset.vue b/docs/demos/guide/form-item/inset.vue index 5516bd9..4881b8b 100644 --- a/docs/demos/guide/form-item/inset.vue +++ b/docs/demos/guide/form-item/inset.vue @@ -8,7 +8,7 @@ x-component="Input" required :x-decorator-props="{ - inset: true, + inset: true }" /> - diff --git a/docs/demos/guide/form-item/json-schema.vue b/docs/demos/guide/form-item/json-schema.vue index dda6f0f..db403f0 100644 --- a/docs/demos/guide/form-item/json-schema.vue +++ b/docs/demos/guide/form-item/json-schema.vue @@ -5,7 +5,7 @@ - diff --git a/docs/demos/guide/form-item/markup-schema.vue b/docs/demos/guide/form-item/markup-schema.vue index 4f7f1cc..c677e68 100644 --- a/docs/demos/guide/form-item/markup-schema.vue +++ b/docs/demos/guide/form-item/markup-schema.vue @@ -13,7 +13,7 @@ - diff --git a/docs/demos/guide/form-item/size.vue b/docs/demos/guide/form-item/size.vue index 26e7217..19dccec 100644 --- a/docs/demos/guide/form-item/size.vue +++ b/docs/demos/guide/form-item/size.vue @@ -9,7 +9,7 @@ :enum="[ { value: 'small', label: 'Small' }, { value: 'default', label: 'Default' }, - { value: 'large', label: 'Large' }, + { value: 'large', label: 'Large' } ]" /> @@ -28,16 +28,16 @@ :enum="[ { label: '选项1', - value: 1, + value: 1 }, { label: '选项2', - value: 2, - }, + value: 2 + } ]" :x-component-props="{ multiple: true, - placeholder: '请选择', + placeholder: '请选择' }" required /> @@ -49,15 +49,15 @@ :enum="[ { label: '选项1', - value: 1, + value: 1 }, { label: '选项2', - value: 2, - }, + value: 2 + } ]" :x-component-props="{ - placeholder: '请选择', + placeholder: '请选择' }" required /> @@ -94,7 +94,8 @@ - diff --git a/docs/demos/guide/form-item/template.vue b/docs/demos/guide/form-item/template.vue index d5e9334..4531174 100644 --- a/docs/demos/guide/form-item/template.vue +++ b/docs/demos/guide/form-item/template.vue @@ -1,17 +1,11 @@ - diff --git a/docs/demos/guide/form-layout/json-schema.vue b/docs/demos/guide/form-layout/json-schema.vue index 5b6bde3..3765ab2 100644 --- a/docs/demos/guide/form-layout/json-schema.vue +++ b/docs/demos/guide/form-layout/json-schema.vue @@ -4,16 +4,10 @@ - diff --git a/docs/demos/guide/form-layout/markup-schema.vue b/docs/demos/guide/form-layout/markup-schema.vue index 1587eb9..1a583a2 100644 --- a/docs/demos/guide/form-layout/markup-schema.vue +++ b/docs/demos/guide/form-layout/markup-schema.vue @@ -5,7 +5,7 @@ x-component="FormLayout" :x-component-props="{ labelCol: 6, - wrapperCol: 10, + wrapperCol: 10 }" > - diff --git a/docs/demos/guide/form-layout/template.vue b/docs/demos/guide/form-layout/template.vue index 6b94325..168ff53 100644 --- a/docs/demos/guide/form-layout/template.vue +++ b/docs/demos/guide/form-layout/template.vue @@ -1,14 +1,14 @@ - diff --git a/docs/demos/guide/form-step/json-schema.vue b/docs/demos/guide/form-step/json-schema.vue index c0c8766..4fff741 100644 --- a/docs/demos/guide/form-step/json-schema.vue +++ b/docs/demos/guide/form-step/json-schema.vue @@ -31,24 +31,18 @@ - diff --git a/docs/demos/guide/form-step/markup-schema.vue b/docs/demos/guide/form-step/markup-schema.vue index 1e41cf6..81f0c02 100644 --- a/docs/demos/guide/form-step/markup-schema.vue +++ b/docs/demos/guide/form-step/markup-schema.vue @@ -2,23 +2,19 @@ - + - + - diff --git a/docs/demos/guide/form-tab/json-schema.vue b/docs/demos/guide/form-tab/json-schema.vue index ee2c40a..7c843f1 100644 --- a/docs/demos/guide/form-tab/json-schema.vue +++ b/docs/demos/guide/form-tab/json-schema.vue @@ -1,7 +1,7 @@ - diff --git a/docs/demos/guide/input-number/template.vue b/docs/demos/guide/input-number/template.vue index 7e91349..ef3605f 100644 --- a/docs/demos/guide/input-number/template.vue +++ b/docs/demos/guide/input-number/template.vue @@ -8,16 +8,16 @@ InputNumber, { style: { - width: '240px', - }, - }, + width: '240px' + } + } ]" /> 提交 - diff --git a/docs/demos/guide/input/json-schema.vue b/docs/demos/guide/input/json-schema.vue index 989c37d..aec9f69 100644 --- a/docs/demos/guide/input/json-schema.vue +++ b/docs/demos/guide/input/json-schema.vue @@ -5,7 +5,7 @@ - diff --git a/docs/demos/guide/input/markup-schema.vue b/docs/demos/guide/input/markup-schema.vue index 4743583..4def06b 100644 --- a/docs/demos/guide/input/markup-schema.vue +++ b/docs/demos/guide/input/markup-schema.vue @@ -1,12 +1,7 @@ - diff --git a/docs/demos/guide/input/template.vue b/docs/demos/guide/input/template.vue index b3b976f..cca6fe6 100644 --- a/docs/demos/guide/input/template.vue +++ b/docs/demos/guide/input/template.vue @@ -1,22 +1,12 @@ - diff --git a/docs/demos/guide/password/json-schema.vue b/docs/demos/guide/password/json-schema.vue index c2af11e..d14e40c 100644 --- a/docs/demos/guide/password/json-schema.vue +++ b/docs/demos/guide/password/json-schema.vue @@ -5,7 +5,7 @@ - diff --git a/docs/demos/guide/password/markup-schema.vue b/docs/demos/guide/password/markup-schema.vue index 389810a..17225c0 100644 --- a/docs/demos/guide/password/markup-schema.vue +++ b/docs/demos/guide/password/markup-schema.vue @@ -12,7 +12,7 @@ - diff --git a/docs/demos/guide/password/template.vue b/docs/demos/guide/password/template.vue index d0c6243..fc0a104 100644 --- a/docs/demos/guide/password/template.vue +++ b/docs/demos/guide/password/template.vue @@ -1,16 +1,11 @@ - diff --git a/docs/demos/guide/preview-text/base.vue b/docs/demos/guide/preview-text/base.vue index 676fde1..a8bc3fa 100644 --- a/docs/demos/guide/preview-text/base.vue +++ b/docs/demos/guide/preview-text/base.vue @@ -1,5 +1,5 @@ - diff --git a/docs/demos/guide/preview-text/extend.vue b/docs/demos/guide/preview-text/extend.vue index 8d176c6..1a70a00 100644 --- a/docs/demos/guide/preview-text/extend.vue +++ b/docs/demos/guide/preview-text/extend.vue @@ -1,10 +1,5 @@ - diff --git a/docs/demos/guide/radio/markup-schema.vue b/docs/demos/guide/radio/markup-schema.vue index 45b3238..9640047 100644 --- a/docs/demos/guide/radio/markup-schema.vue +++ b/docs/demos/guide/radio/markup-schema.vue @@ -9,12 +9,12 @@ :enum="[ { label: '选项1', - value: 1, + value: 1 }, { label: '选项2', - value: 2, - }, + value: 2 + } ]" /> @@ -22,7 +22,7 @@ - diff --git a/docs/demos/guide/radio/template.vue b/docs/demos/guide/radio/template.vue index 15bb65e..9c326d9 100644 --- a/docs/demos/guide/radio/template.vue +++ b/docs/demos/guide/radio/template.vue @@ -5,22 +5,22 @@ title="单选" :decorator="[FormItem]" :component="[Radio.Group]" - :dataSource="[ + :data-source="[ { label: '选项1', - value: 1, + value: 1 }, { label: '选项2', - value: 2, - }, + value: 2 + } ]" /> 提交 - diff --git a/docs/demos/guide/reset/base.vue b/docs/demos/guide/reset/base.vue index 0c86e76..c997038 100644 --- a/docs/demos/guide/reset/base.vue +++ b/docs/demos/guide/reset/base.vue @@ -23,37 +23,30 @@ - diff --git a/docs/demos/guide/reset/force.vue b/docs/demos/guide/reset/force.vue index dae608f..ad531ed 100644 --- a/docs/demos/guide/reset/force.vue +++ b/docs/demos/guide/reset/force.vue @@ -18,42 +18,35 @@ /> - 重置 + 重置 - diff --git a/docs/demos/guide/reset/validate.vue b/docs/demos/guide/reset/validate.vue index a451ebe..dbe1ee3 100644 --- a/docs/demos/guide/reset/validate.vue +++ b/docs/demos/guide/reset/validate.vue @@ -18,42 +18,35 @@ /> - 重置 + 重置 - diff --git a/docs/demos/guide/select/json-schema-async.vue b/docs/demos/guide/select/json-schema-async.vue index 06a7680..7e8eec6 100644 --- a/docs/demos/guide/select/json-schema-async.vue +++ b/docs/demos/guide/select/json-schema-async.vue @@ -5,7 +5,7 @@ - diff --git a/docs/demos/guide/select/json-schema-sync.vue b/docs/demos/guide/select/json-schema-sync.vue index becdbfb..8a93e6b 100644 --- a/docs/demos/guide/select/json-schema-sync.vue +++ b/docs/demos/guide/select/json-schema-sync.vue @@ -5,7 +5,7 @@ - diff --git a/docs/demos/guide/select/markup-schema-async-search.vue b/docs/demos/guide/select/markup-schema-async-search.vue index 8284074..2a4e735 100644 --- a/docs/demos/guide/select/markup-schema-async-search.vue +++ b/docs/demos/guide/select/markup-schema-async-search.vue @@ -9,8 +9,8 @@ :x-component-props="{ showSearch: true, style: { - width: '240px', - }, + width: '240px' + } }" /> @@ -18,7 +18,8 @@ - diff --git a/docs/demos/guide/select/markup-schema-async.vue b/docs/demos/guide/select/markup-schema-async.vue index 800d2fb..0320a41 100644 --- a/docs/demos/guide/select/markup-schema-async.vue +++ b/docs/demos/guide/select/markup-schema-async.vue @@ -8,12 +8,12 @@ x-component="Select" :enum="[ { label: '发请求1', value: 1 }, - { label: '发请求2', value: 2 }, + { label: '发请求2', value: 2 } ]" :x-component-props="{ style: { - width: '240px', - }, + width: '240px' + } }" /> @@ -32,14 +32,15 @@ - diff --git a/docs/demos/guide/select/markup-schema-sync.vue b/docs/demos/guide/select/markup-schema-sync.vue index ba5c17b..280b6db 100644 --- a/docs/demos/guide/select/markup-schema-sync.vue +++ b/docs/demos/guide/select/markup-schema-sync.vue @@ -8,18 +8,18 @@ x-component="Select" :x-component-props="{ style: { - width: '240px', - }, + width: '240px' + } }" :enum="[ { label: '选项1', - value: 1, + value: 1 }, { label: '选项2', - value: 2, - }, + value: 2 + } ]" /> @@ -27,7 +27,7 @@ - diff --git a/docs/demos/guide/select/template-async.vue b/docs/demos/guide/select/template-async.vue index bbbafaa..d2b6c9e 100644 --- a/docs/demos/guide/select/template-async.vue +++ b/docs/demos/guide/select/template-async.vue @@ -8,13 +8,13 @@ Select, { style: { - width: '240px', - }, - }, + width: '240px' + } + } ]" - :dataSource="[ + :data-source="[ { label: '发请求1', value: 1 }, - { label: '发请求2', value: 2 }, + { label: '发请求2', value: 2 } ]" /> 提交 - diff --git a/docs/demos/guide/select/template-sync.vue b/docs/demos/guide/select/template-sync.vue index 6145bac..8718d5a 100644 --- a/docs/demos/guide/select/template-sync.vue +++ b/docs/demos/guide/select/template-sync.vue @@ -8,26 +8,26 @@ Select, { style: { - width: '240px', - }, - }, + width: '240px' + } + } ]" - :dataSource="[ + :data-source="[ { label: '选项1', - value: 1, + value: 1 }, { label: '选项2', - value: 2, - }, + value: 2 + } ]" /> 提交 - diff --git a/docs/demos/guide/space/json-schema.vue b/docs/demos/guide/space/json-schema.vue index 1a17b52..e786da3 100644 --- a/docs/demos/guide/space/json-schema.vue +++ b/docs/demos/guide/space/json-schema.vue @@ -1,33 +1,26 @@ - diff --git a/docs/demos/guide/space/markup-schema.vue b/docs/demos/guide/space/markup-schema.vue index 1a97c89..61595dd 100644 --- a/docs/demos/guide/space/markup-schema.vue +++ b/docs/demos/guide/space/markup-schema.vue @@ -1,12 +1,12 @@ - diff --git a/docs/demos/guide/space/template.vue b/docs/demos/guide/space/template.vue index 1866b62..30ff7e7 100644 --- a/docs/demos/guide/space/template.vue +++ b/docs/demos/guide/space/template.vue @@ -1,6 +1,6 @@ - diff --git a/docs/demos/guide/submit/base.vue b/docs/demos/guide/submit/base.vue index da6d031..5ed8dab 100644 --- a/docs/demos/guide/submit/base.vue +++ b/docs/demos/guide/submit/base.vue @@ -17,42 +17,35 @@ /> - 提交 + 提交 - diff --git a/docs/demos/guide/submit/loading.vue b/docs/demos/guide/submit/loading.vue index abfd838..25c7d21 100644 --- a/docs/demos/guide/submit/loading.vue +++ b/docs/demos/guide/submit/loading.vue @@ -22,31 +22,24 @@ - diff --git a/docs/demos/guide/switch/json-schema.vue b/docs/demos/guide/switch/json-schema.vue index 66665a3..5df1c8c 100644 --- a/docs/demos/guide/switch/json-schema.vue +++ b/docs/demos/guide/switch/json-schema.vue @@ -5,7 +5,7 @@ - diff --git a/docs/demos/guide/switch/markup-schema.vue b/docs/demos/guide/switch/markup-schema.vue index a272b6c..d853452 100644 --- a/docs/demos/guide/switch/markup-schema.vue +++ b/docs/demos/guide/switch/markup-schema.vue @@ -1,18 +1,13 @@ - diff --git a/docs/demos/guide/switch/template.vue b/docs/demos/guide/switch/template.vue index 7ca611d..39f6a53 100644 --- a/docs/demos/guide/switch/template.vue +++ b/docs/demos/guide/switch/template.vue @@ -1,16 +1,11 @@ - diff --git a/docs/demos/guide/time-picker/json-schema.vue b/docs/demos/guide/time-picker/json-schema.vue index b570172..b55721c 100644 --- a/docs/demos/guide/time-picker/json-schema.vue +++ b/docs/demos/guide/time-picker/json-schema.vue @@ -5,7 +5,7 @@ - l diff --git a/docs/demos/guide/time-picker/markup-schema.vue b/docs/demos/guide/time-picker/markup-schema.vue index b2a7ac1..77c9dad 100644 --- a/docs/demos/guide/time-picker/markup-schema.vue +++ b/docs/demos/guide/time-picker/markup-schema.vue @@ -9,8 +9,8 @@ x-component="TimePicker" :x-component-props="{ style: { - width: '240px', - }, + width: '240px' + } }" /> @@ -18,7 +18,7 @@ - diff --git a/docs/demos/guide/time-picker/template.vue b/docs/demos/guide/time-picker/template.vue index ba9644e..4d309fe 100644 --- a/docs/demos/guide/time-picker/template.vue +++ b/docs/demos/guide/time-picker/template.vue @@ -9,16 +9,16 @@ TimePicker, { style: { - width: '240px', - }, - }, + width: '240px' + } + } ]" /> 提交 - diff --git a/docs/demos/guide/transfer/json-schema.vue b/docs/demos/guide/transfer/json-schema.vue index 700c46b..e26562a 100644 --- a/docs/demos/guide/transfer/json-schema.vue +++ b/docs/demos/guide/transfer/json-schema.vue @@ -5,7 +5,7 @@ - diff --git a/docs/demos/guide/transfer/markup-schema.vue b/docs/demos/guide/transfer/markup-schema.vue index 205f142..840482c 100644 --- a/docs/demos/guide/transfer/markup-schema.vue +++ b/docs/demos/guide/transfer/markup-schema.vue @@ -7,17 +7,17 @@ x-decorator="FormItem" x-component="Transfer" :x-component-props="{ - render: (item) => item.title, + render: (item) => item.title }" :enum="[ { title: '选项1', - key: 1, + key: '1' }, { title: '选项2', - key: 2, - }, + key: '2' + } ]" /> @@ -25,7 +25,7 @@ - diff --git a/docs/demos/guide/transfer/template.vue b/docs/demos/guide/transfer/template.vue index e198b11..1ab09c3 100644 --- a/docs/demos/guide/transfer/template.vue +++ b/docs/demos/guide/transfer/template.vue @@ -5,22 +5,22 @@ title="单选" :decorator="[FormItem]" :component="[Transfer, { render: (item) => item.title }]" - :dataSource="[ + :data-source="[ { title: '选项1', - key: 1, + key: '1' }, { title: '选项2', - key: 2, - }, + key: '2' + } ]" /> 提交 - diff --git a/docs/demos/guide/tree-select/json-schema-async.vue b/docs/demos/guide/tree-select/json-schema-async.vue index ffd4318..7b10ad7 100644 --- a/docs/demos/guide/tree-select/json-schema-async.vue +++ b/docs/demos/guide/tree-select/json-schema-async.vue @@ -4,7 +4,7 @@ 提交 - diff --git a/docs/demos/guide/tree-select/json-schema-sync.vue b/docs/demos/guide/tree-select/json-schema-sync.vue index 0c3491e..2c97af7 100644 --- a/docs/demos/guide/tree-select/json-schema-sync.vue +++ b/docs/demos/guide/tree-select/json-schema-sync.vue @@ -4,7 +4,7 @@ 提交 - diff --git a/docs/demos/guide/tree-select/markup-schema-async.vue b/docs/demos/guide/tree-select/markup-schema-async.vue index ee78383..148ac3c 100644 --- a/docs/demos/guide/tree-select/markup-schema-async.vue +++ b/docs/demos/guide/tree-select/markup-schema-async.vue @@ -8,12 +8,12 @@ x-component="Select" :enum="[ { label: '发请求1', value: 1 }, - { label: '发请求2', value: 2 }, + { label: '发请求2', value: 2 } ]" :x-component-props="{ style: { - width: '200px', - }, + width: '200px' + } }" /> 提交 - diff --git a/docs/demos/guide/tree-select/markup-schema-sync.vue b/docs/demos/guide/tree-select/markup-schema-sync.vue index 6efeffa..cf182a6 100644 --- a/docs/demos/guide/tree-select/markup-schema-sync.vue +++ b/docs/demos/guide/tree-select/markup-schema-sync.vue @@ -8,8 +8,8 @@ x-component="TreeSelect" :x-component-props="{ style: { - width: '200px', - }, + width: '200px' + } }" :enum="[ { @@ -19,19 +19,19 @@ { title: 'Child Node1', value: '0-0-0', - key: '0-0-0', + key: '0-0-0' }, { title: 'Child Node2', value: '0-0-1', - key: '0-0-1', + key: '0-0-1' }, { title: 'Child Node3', value: '0-0-2', - key: '0-0-2', - }, - ], + key: '0-0-2' + } + ] }, { label: '选项2', @@ -40,27 +40,27 @@ { title: 'Child Node3', value: '0-1-0', - key: '0-1-0', + key: '0-1-0' }, { title: 'Child Node4', value: '0-1-1', - key: '0-1-1', + key: '0-1-1' }, { title: 'Child Node5', value: '0-1-2', - key: '0-1-2', - }, - ], - }, + key: '0-1-2' + } + ] + } ]" /> 提交 - diff --git a/docs/demos/guide/tree-select/template-async.vue b/docs/demos/guide/tree-select/template-async.vue index 676d437..5689a8f 100644 --- a/docs/demos/guide/tree-select/template-async.vue +++ b/docs/demos/guide/tree-select/template-async.vue @@ -3,18 +3,18 @@ 提交 - diff --git a/docs/demos/guide/tree-select/template-sync.vue b/docs/demos/guide/tree-select/template-sync.vue index f7ccaf4..998f77c 100644 --- a/docs/demos/guide/tree-select/template-sync.vue +++ b/docs/demos/guide/tree-select/template-sync.vue @@ -3,7 +3,7 @@ 提交 - diff --git a/docs/demos/guide/upload/json-schema.vue b/docs/demos/guide/upload/json-schema.vue index 5a555b8..68bd36b 100644 --- a/docs/demos/guide/upload/json-schema.vue +++ b/docs/demos/guide/upload/json-schema.vue @@ -7,83 +7,64 @@ - diff --git a/docs/demos/guide/upload/markup-schema.vue b/docs/demos/guide/upload/markup-schema.vue index bb0b186..a6da680 100644 --- a/docs/demos/guide/upload/markup-schema.vue +++ b/docs/demos/guide/upload/markup-schema.vue @@ -29,83 +29,65 @@ - diff --git a/docs/demos/guide/upload/template.vue b/docs/demos/guide/upload/template.vue index 72901dc..e18a532 100644 --- a/docs/demos/guide/upload/template.vue +++ b/docs/demos/guide/upload/template.vue @@ -27,101 +27,79 @@ - diff --git a/docs/demos/index.vue b/docs/demos/index.vue index e2bba04..b2ad8b2 100644 --- a/docs/demos/index.vue +++ b/docs/demos/index.vue @@ -1,63 +1,61 @@ - diff --git a/docs/guide/array-cards.md b/docs/guide/array-cards.md index c8504f6..3736fb8 100644 --- a/docs/guide/array-cards.md +++ b/docs/guide/array-cards.md @@ -34,11 +34,11 @@ 扩展属性 -| 属性名 | 类型 | 描述 | 默认值 | -| ------------ | ------- | ---------- | -------- | -------- | -| title | string | 文案 | | -| method | `'push' | 'unshift'` | 添加方式 | `'push'` | -| defaultValue | `any` | 默认值 | | +| 属性名 | 类型 | 描述 | 默认值 | +| ------------ | --------------------- | -------- | -------- | +| title | string | 文案 | | +| method | `'push' \| 'unshift'` | 添加方式 | `'push'` | +| defaultValue | `any` | 默认值 | | 其余参考 [https://antdv.com/components/button-cn/](https://antdv.com/components/button-cn/) diff --git a/docs/guide/array-collapse.md b/docs/guide/array-collapse.md index 4c30671..586f35b 100644 --- a/docs/guide/array-collapse.md +++ b/docs/guide/array-collapse.md @@ -36,11 +36,11 @@ 扩展属性 -| 属性名 | 类型 | 描述 | 默认值 | -| ------------ | ------- | ---------- | -------- | -------- | -| title | string | 文案 | | -| method | `'push' | 'unshift'` | 添加方式 | `'push'` | -| defaultValue | any | 默认值 | | +| 属性名 | 类型 | 描述 | 默认值 | +| ------------ | --------------------- | -------- | -------- | +| title | string | 文案 | | +| method | `'push' \| 'unshift'` | 添加方式 | `'push'` | +| defaultValue | any | 默认值 | | 其余参考 [https://antdv.com/components/button-cn/](https://antdv.com/components/button-cn/) diff --git a/docs/guide/array-items.md b/docs/guide/array-items.md index 70ac0b1..fcd7366 100644 --- a/docs/guide/array-items.md +++ b/docs/guide/array-items.md @@ -36,11 +36,11 @@ 扩展属性 -| 属性名 | 类型 | 描述 | 默认值 | -| ------------ | ------- | ---------- | -------- | -------- | -| title | string | 文案 | | -| method | `'push' | 'unshift'` | 添加方式 | `'push'` | -| defaultValue | any | 默认值 | | +| 属性名 | 类型 | 描述 | 默认值 | +| ------------ | --------------------- | -------- | -------- | +| title | string | 文案 | | +| method | `'push' \| 'unshift'` | 添加方式 | `'push'` | +| defaultValue | any | 默认值 | | 其余参考 [https://antdv.com/components/button-cn/](https://antdv.com/components/button-cn/) diff --git a/docs/guide/array-table.md b/docs/guide/array-table.md index 3f0e175..3a28903 100644 --- a/docs/guide/array-table.md +++ b/docs/guide/array-table.md @@ -40,11 +40,11 @@ 扩展属性 -| 属性名 | 类型 | 描述 | 默认值 | -| ------------ | ------- | ---------- | -------- | -------- | -| title | string | 文案 | | -| method | `'push' | 'unshift'` | 添加方式 | `'push'` | -| defaultValue | `any` | 默认值 | | +| 属性名 | 类型 | 描述 | 默认值 | +| ------------ | --------------------- | -------- | -------- | +| title | string | 文案 | | +| method | `'push' \| 'unshift'` | 添加方式 | `'push'` | +| defaultValue | `any` | 默认值 | | 其余参考 [https://antdv.com/components/button-cn/](https://antdv.com/components/button-cn/) diff --git a/docs/guide/form-button-group.md b/docs/guide/form-button-group.md index bd8648c..867fdb7 100644 --- a/docs/guide/form-button-group.md +++ b/docs/guide/form-button-group.md @@ -8,8 +8,8 @@ ## API -| 属性名 | 类型 | 描述 | 默认值 | -| ------------- | ------- | ------------- | -------- | -------- | -------- | -| gutter | number | 间隙大小 | 8px | -| align | `'left' | 'center' | 'right'` | 对齐方式 | `'left'` | -| alignFormItem | boolean | 对齐 FormItem | `false` | +| 属性名 | 类型 | 描述 | 默认值 | +| ------------- | -------------------------------- | ------------- | -------- | +| gutter | number | 间隙大小 | 8px | +| align | `'left' \| 'center' \| 'right'` | 对齐方式 | `'left'` | +| alignFormItem | boolean | 对齐 FormItem | `false` | diff --git a/docs/guide/form-item.md b/docs/guide/form-item.md index 53fbc96..d0d8c62 100644 --- a/docs/guide/form-item.md +++ b/docs/guide/form-item.md @@ -44,36 +44,36 @@ ### FormItem -| 属性名 | 类型 | 描述 | 默认值 | -| -------------- | ------------------------------------------------------ | ------------------------------------------- | ---------- | -------- | -| style | CSSProperties | 样式 | - | -| label | String \| Vue Component | 标签 | - | -| labelStyle | CSSProperties | 标签样式 | - | -| wrapperStyle | CSSProperties | 组件容器样式 | - | -| className | string | 组件样式类名 | - | -| colon | boolean | 冒号 | - | -| tooltip | String \| Vue Component | 问号提示 | - | -| tooltipLayout | `"icon" | "text"` | 问提示布局 | `"icon"` | -| labelAlign | `"left"` \| `"right"` | 标签文本对齐方式 | `"right"` | -| labelWrap | boolean | 标签换⾏,否则出现省略号,hover 有 tooltip | false | -| labelWidth | `number` | 标签固定宽度 | - | -| wrapperWidth | `number` | 内容固定宽度 | - | -| labelCol | number | 标签⽹格所占列数,和内容列数加起来总和为 24 | - | -| wrapperCol | number | 内容⽹格所占列数,和标签列数加起来总和为 24 | - | -| wrapperAlign | `"left"` \| `"right"` | 内容文本对齐方式⻬ | `"left"` | -| wrapperWrap | boolean | 内容换⾏,否则出现省略号,hover 有 tooltip | false | -| fullness | boolean | 内容撑满 | false | -| addonBefore | String \| Vue Component | 前缀内容 | - | -| addonAfter | String \| Vue Component | 后缀内容 | - | -| size | `"small"` \| `"default"` \| `"large"` | 尺⼨ | - | -| extra | ReactNode | 扩展描述⽂案 | - | -| feedbackText | ReactNode | 反馈⽂案 | - | -| feedbackLayout | `"loose"` \| `"terse"` \| `"popover"` \| `"none"` | 反馈布局 | - | -| feedbackStatus | `"error"` \| `"warning"` \| `"success"` \| `"pending"` | 反馈布局 | - | -| feedbackIcon | string | 反馈图标 | - | -| required | boolean | 星号提醒 | - | -| asterisk | boolean | 星号提醒 | - | -| gridSpan | number | ⽹格布局占宽 | - | +| 属性名 | 类型 | 描述 | 默认值 | +| -------------- | ----------------------------------------------------------------- | ------------------------------------------- | --------- | +| style | CSSProperties | 样式 | - | +| label | String \| Vue Component | 标签 | - | +| labelStyle | CSSProperties | 标签样式 | - | +| wrapperStyle | CSSProperties | 组件容器样式 | - | +| className | string | 组件样式类名 | - | +| colon | boolean | 冒号 | - | +| tooltip | String \| Vue Component | 问号提示 | - | +| tooltipLayout | `"icon" \| "text"` | 问提示布局 | `"icon"` | +| labelAlign | `"left"` \| `"right"` | 标签文本对齐方式 | `"right"` | +| labelWrap | boolean | 标签换⾏,否则出现省略号,hover 有 tooltip | false | +| labelWidth | `number` | 标签固定宽度 | - | +| wrapperWidth | `number` | 内容固定宽度 | - | +| labelCol | number | 标签⽹格所占列数,和内容列数加起来总和为 24 | - | +| wrapperCol | number | 内容⽹格所占列数,和标签列数加起来总和为 24 | - | +| wrapperAlign | `"left"` \| `"right"` | 内容文本对齐方式⻬ | `"left"` | +| wrapperWrap | boolean | 内容换⾏,否则出现省略号,hover 有 tooltip | false | +| fullness | boolean | 内容撑满 | false | +| addonBefore | String \| Vue Component | 前缀内容 | - | +| addonAfter | String \| Vue Component | 后缀内容 | - | +| size | `"small"` \| `"default"` \| `"large"` | 尺⼨ | - | +| extra | ReactNode | 扩展描述⽂案 | - | +| feedbackText | ReactNode | 反馈⽂案 | - | +| feedbackLayout | `"loose"` \| `"terse"` \| `"popover"` \| `"none"` | 反馈布局 | - | +| feedbackStatus | `"error"` \| `"warning"` \| `"success"` \| `"pending"` | 反馈布局 | - | +| feedbackIcon | string | 反馈图标 | - | +| required | boolean | 星号提醒 | - | +| asterisk | boolean | 星号提醒 | - | +| gridSpan | number | ⽹格布局占宽 | - | ### FormItem.BaseItem diff --git a/docs/guide/form-layout.md b/docs/guide/form-layout.md index c9c9a73..ea5c53f 100644 --- a/docs/guide/form-layout.md +++ b/docs/guide/form-layout.md @@ -16,28 +16,28 @@ ## API -| 属性名 | 类型 | 描述 | 默认值 | -| -------------- | -------------------- | ----------------------- | -------------- | -------- | ---------- | ---- | -| style | CSSProperties | 样式 | - | -| className | string | 类名 | - | -| colon | boolean | 是否有冒号 | true | -| labelAlign | `right` \| `left` | 标签内容对齐 | - | -| wrapperAlign | `right` \| `left` | 组件容器内容对齐 | - | -| labelWrap | boolean | 标签内容换行 | false | -| labelWidth | number | 标签宽度(px) | - | -| wrapperWidth | number | 组件容器宽度(px) | - | -| wrapperWrap | boolean | 组件容器换行 | false | -| labelCol | number | 标签宽度(24 column) | - | -| wrapperCol | number | 组件容器宽度(24 column) | - | -| fullness | boolean | 组件容器宽度 100% | false | -| size | `'small' | 'default' | 'large'` | 组件尺寸 | default | -| layout | `'vertical' | 'horizontal' | 'inline'` | 布局模式 | horizontal | -| direction | `'rtl' | 'ltr'` | 方向(暂不支持) | ltr | -| inset | boolean | 内联布局 | false | -| shallow | boolean | 上下文浅层传递 | true | -| feedbackLayout | `'loose' | 'terse' | 'popover' | 'none'` | 反馈布局 | true | -| tooltipLayout | `'icon'` \| `'text'` | 问提示布局 | `"icon"` | -| bordered | boolean | 是否有边框 | true | -| gridColumnGap | number | 网格布局列间距 | 8 | -| gridRowGap | number | 网格布局行间距 | 4 | -| spaceGap | number | 弹性间距 | 8 | +| 属性名 | 类型 | 描述 | 默认值 | +| -------------- | -------------------------------------------- | ----------------------- | ---------- | +| style | CSSProperties | 样式 | - | +| className | string | 类名 | - | +| colon | boolean | 是否有冒号 | true | +| labelAlign | `right` \| `left` | 标签内容对齐 | - | +| wrapperAlign | `right` \| `left` | 组件容器内容对齐 | - | +| labelWrap | boolean | 标签内容换行 | false | +| labelWidth | number | 标签宽度(px) | - | +| wrapperWidth | number | 组件容器宽度(px) | - | +| wrapperWrap | boolean | 组件容器换行 | false | +| labelCol | number | 标签宽度(24 column) | - | +| wrapperCol | number | 组件容器宽度(24 column) | - | +| fullness | boolean | 组件容器宽度 100% | false | +| size | `'small' \| 'default' \| 'large'` | 组件尺寸 | default | +| layout | `'vertical' \| 'horizontal' \| 'inline'` | 布局模式 | horizontal | +| direction | `'rtl' \| 'ltr'` | 方向(暂不支持) | ltr | +| inset | boolean | 内联布局 | false | +| shallow | boolean | 上下文浅层传递 | true | +| feedbackLayout | `'loose' \| 'terse' \| 'popover' \| 'none'` | 反馈布局 | true | +| tooltipLayout | `'icon'` \| `'text'` | 问提示布局 | `"icon"` | +| bordered | boolean | 是否有边框 | true | +| gridColumnGap | number | 网格布局列间距 | 8 | +| gridRowGap | number | 网格布局行间距 | 4 | +| spaceGap | number | 弹性间距 | 8 | diff --git a/docs/guide/index.md b/docs/guide/index.md index 3c8aafe..bff0e20 100644 --- a/docs/guide/index.md +++ b/docs/guide/index.md @@ -62,7 +62,7 @@ ```bash $ npm install --save ant-design-vue -$ npm install --save @formily/core @formily/vue @vue/composition-api @formily/antdv +$ npm install --save @formily/core @formily/vue vue @formily/antdv ``` ## 按需打包 diff --git a/docs/guide/reset.md b/docs/guide/reset.md index e3f64c9..c663450 100644 --- a/docs/guide/reset.md +++ b/docs/guide/reset.md @@ -22,8 +22,8 @@ ### 事件 -| 属性名 | 类型 | 描述 | 默认值 | -| ---------------------- | ------------------------------------------------------------------------------------------------ | ---------------- | ------------------------------------- | --- | -| onClick | `(event: MouseEvent) => void | boolean` | 点击事件,如果返回 false 可以阻塞重置 | - | -| onResetValidateSuccess | (payload: any) => void | 重置校验成功事件 | - | -| onResetValidateFailed | (feedbacks: [IFormFeedback](https://core.formilyjs.org/api/models/form#iformfeedback)[]) => void | 重置校验失败事件 | - | +| 属性名 | 类型 | 描述 | 默认值 | +| ---------------------- | ------------------------------------------------------------------------------------------------------------ | ------------------------------------- | ------ | +| onClick | `(event: MouseEvent) => void \| boolean` | 点击事件,如果返回 false 可以阻塞重置 | - | +| onResetValidateSuccess | (payload: any) => void | 重置校验成功事件 | - | +| onResetValidateFailed | (feedbacks: [IFormFeedback](https://core.formilyjs.org/api/models/form#iformfeedback)[]) => void | 重置校验失败事件 | - | diff --git a/docs/guide/submit.md b/docs/guide/submit.md index 7bca16f..ab19e3e 100644 --- a/docs/guide/submit.md +++ b/docs/guide/submit.md @@ -14,9 +14,9 @@ 按钮相关的 API 属性,我们参考 [https://antdv.com/components/button-cn](https://antdv.com/components/button-cn) 即可,剩下是 Submit 组件独有的 API 属性 -| 属性名 | 类型 | 描述 | 默认值 | -| --------------- | ------------------------------------------------------------------------------------------------ | -------------------- | ------------------------------------- | --- | -| onClick | `(event: MouseEvent) => void | boolean` | 点击事件,如果返回 false 可以阻塞提交 | - | -| onSubmit | `(values: any) => Promise | any` | 提交事件回调 | - | -| onSubmitSuccess | (payload: any) => void | 提交成功响应事件 | - | -| onSubmitFailed | (feedbacks: [IFormFeedback](https://core.formilyjs.org/api/models/form#iformfeedback)[]) => void | 提交校验失败事件回调 | - | +| 属性名 | 类型 | 描述 | 默认值 | +| --------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------- | ------ | +| onClick | `(event: MouseEvent) => void \| boolean` | 点击事件,如果返回 false 可以阻塞提交 | - | +| onSubmit | `(values: any) => Promise \| any` | 提交事件回调 | - | +| onSubmitSuccess | (payload: any) => void | 提交成功响应事件 | - | +| onSubmitFailed | (feedbacks: [IFormFeedback](https://core.formilyjs.org/api/models/form#iformfeedback)[]) => void | 提交校验失败事件回调 | - | diff --git a/jest.config.js b/jest.config.js index 4a96660..cacc0fb 100644 --- a/jest.config.js +++ b/jest.config.js @@ -11,8 +11,8 @@ module.exports = { 'ts-jest': { babelConfig: false, tsconfig: './tsconfig.jest.json', - diagnostics: false, - }, + diagnostics: false + } }, coveragePathIgnorePatterns: [ '/node_modules/', @@ -24,6 +24,6 @@ module.exports = { '/packages/builder/src/__tests__/', '/packages/builder/src/components/', '/packages/builder/src/configs/', - 'package-lock.json', - ], + 'package-lock.json' + ] } diff --git a/lerna.json b/lerna.json index 6fd720e..de75619 100644 --- a/lerna.json +++ b/lerna.json @@ -1,10 +1,8 @@ { - "version": "1.0.0-alpha.8", + "version": "2.0.0", "npmClient": "yarn", "useWorkspaces": true, - "npmClientArgs": [ - "--ignore-engines" - ], + "npmClientArgs": ["--ignore-engines"], "command": { "version": { "forcePublish": true, diff --git a/package.json b/package.json index 6ce961f..cf287c4 100644 --- a/package.json +++ b/package.json @@ -5,15 +5,17 @@ "node": "8.x || 9.x || 10.x || 11.x" }, "workspaces": [ - "packages/*" + "packages/*", + "playground" ], "scripts": { "start": "vuepress dev docs", - "build": "formily-tpl build", + "build": "lerna run build --scope @formily/antdv", "build:docs": "vuepress build docs", - "test": "jest --coverage", - "test:prod": "jest --coverage --silent", - "preversion": "yarn install --ignore-engines && npm run build && npm run lint && npm run test", + "test": "vitest run --coverage", + "test:prod": "vitest run --coverage --silent", + "test:ui": "vitest --ui", + "preversion": "yarn install --ignore-engines && npm run build && npm run lint", "version:alpha": "lerna version prerelease --preid alpha", "version:beta": "lerna version prerelease --preid beta", "version:rc": "lerna version prerelease --preid rc", @@ -22,59 +24,94 @@ "version:preminor": "lerna version preminor --preid beta", "version:major": "lerna version major", "release": "lerna publish from-package --yes", - "lint": "eslint ." + "lint": "eslint .", + "format": "prettier --write ." }, "devDependencies": { + "@ant-design/icons-vue": "^6.1.0", + "@babel/cli": "^7.12.16", + "@babel/core": "^7.12.16", + "@babel/eslint-parser": "^7.12.16", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-transform-runtime": "^7.22.4", + "@babel/plugin-transform-typescript": "^7.21.3", + "@babel/preset-env": "^7.11.16", + "@babel/preset-typescript": "^7.22.15", "@commitlint/cli": "^14.1.0", "@commitlint/config-conventional": "^14.1.0", "@commitlint/prompt-cli": "^14.1.0", - "@formily/core": "^2.0.0", - "@formily/template": "^1.0.0-alpha.17", - "@formily/vue": "^2.0.0", - "@testing-library/jest-dom": "^5.16.1", - "@testing-library/vue": "^5.8.2", - "@types/jest": "^27.0.3", - "@typescript-eslint/eslint-plugin": "^4.33.0", - "@typescript-eslint/parser": "^4.33.0", - "@vue/composition-api": "^1.4.0", - "@vue/test-utils": "1.3.0", - "@vuepress-dumi/vuepress-plugin-dumi-previewer": "0.3.11", - "@vuepress-dumi/vuepress-theme-dumi": "0.3.11", - "@vuepress/plugin-back-to-top": "^1.8.2", - "@vuepress/plugin-medium-zoom": "^1.8.2", + "@rollup/plugin-babel": "^6.0.3", + "@rollup/plugin-commonjs": "^24.1.0", + "@rollup/plugin-node-resolve": "^15.0.2", + "@rollup/plugin-terser": "^0.4.1", + "@types/glob": "^8.1.0", + "@typescript-eslint/eslint-plugin": "^5.28.0", + "@typescript-eslint/parser": "^5.28.0", + "@vitejs/plugin-vue-jsx": "^1.0.0", + "@vitest/ui": "^0.16.0", + "@vue/test-utils": "^2.0.0", + "ant-design-vue": "^4.0.0", + "c8": "^7.11.3", "codesandbox": "^2.2.3", - "core-js": "^2.4.0", - "eslint": "^7.32.0", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-import": "^2.13.0", - "eslint-plugin-markdown": "^2.0.1", + "copy-to-clipboard": "^3.3.1", + "core-js": "^3.23.1", + "escape-html": "^1.0.3", + "eslint": "^8.17.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-markdown": "^2.2.1", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^4.0.0", - "eslint-plugin-promise": "^4.0.0", - "eslint-plugin-vue": "^7.20.0", + "eslint-plugin-promise": "^6.0.0", + "eslint-plugin-vue": "^9.1.1", "ghooks": "^2.0.4", - "jest": "^27.4.5", + "jsdom": "^20.0.0", "lerna": "^4.0.0", "less": "^4.1.2", "less-loader": "^5.0.0", + "less-plugin-npm-import": "^2.1.0", "lint-staged": "^8.2.1", + "moment": "^2.29.3", "prettier": "^2.2.1", "pretty-quick": "^3.1.0", - "raw-loader": "^4.0.0", - "ts-import-plugin": "1.6.1", - "ts-jest": "^27.1.2", - "ts-node": "^9.1.1", - "typescript": "4.4.4", - "vue": "^2.6.0", - "vuepress": "^1.8.2", - "vuepress-plugin-typescript": "^0.3.1" + "rollup": "^3.23.1", + "rollup-plugin-dts": "^5.3.0", + "rollup-plugin-external-globals": "^0.7.3", + "rollup-plugin-ignore-import": "^1.3.2", + "rollup-plugin-import-css": "^3.2.1", + "rollup-plugin-inject-process-env": "^1.3.1", + "rollup-plugin-postcss": "^4.0.2", + "rollup-plugin-typescript2": "^0.34.1", + "stylus": "^0.58.1", + "ts-node": "^10.9.1", + "tslib": "^2.6.2", + "typescript": "~5.1.6", + "vitest": "^0.16.0", + "vue": "^3.2.37", + "vuepress": "2.0.0-beta.38", + "vuepress-plugin-typescript": "^0.3.1", + "vuepress-theme-dumi": "^0.1.1" }, "resolutions": { - "vue": "^2.6.14" + "vuepress": "2.0.0-beta.38", + "@vuepress/client": "2.0.0-beta.38", + "@vuepress/core": "2.0.0-beta.38", + "@vuepress/utils": "2.0.0-beta.38", + "@vuepress/plugin-theme-data": "2.0.0-beta.38", + "@vuepress/shared": "2.0.0-beta.38", + "@vuepress/plugin-active-header-links": "2.0.0-beta.38", + "@vuepress/plugin-back-to-top": "2.0.0-beta.38", + "@vuepress/plugin-container": "2.0.0-beta.38", + "@vuepress/plugin-external-link-icon": "2.0.0-beta.38", + "@vuepress/plugin-git": "2.0.0-beta.38", + "@vuepress/plugin-medium-zoom": "2.0.0-beta.38", + "@vuepress/plugin-nprogress": "2.0.0-beta.38", + "@vuepress/plugin-prismjs": "2.0.0-beta.38", + "@vuepress/plugin-search": "2.0.0-beta.38" }, "repository": { "type": "git", - "url": "git+https://github.com/formilyjs/antdv.git" + "url": "git+https://github.com/formilyjs/Antdv.git" }, "config": { "ghooks": { @@ -93,14 +130,7 @@ "git add" ] }, - "dependencies": {}, "peerDependencies": { - "@vue/composition-api": "^1.0.0-beta.1", - "vue": "^2.6.0 || >=3.0.0-rc.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } + "vue": "^3.2.37" } } diff --git a/packages/components/babel.config.js b/packages/components/babel.config.js new file mode 100644 index 0000000..4b763bc --- /dev/null +++ b/packages/components/babel.config.js @@ -0,0 +1,15 @@ +module.exports = (api) => { + return { + presets: [ + [ + '@babel/preset-env', + { + useBuiltIns: false, + modules: api.env(['es']) ? false : api.env(['cjs']) ? 'commonjs' : 'auto' + } + ], + '@babel/preset-typescript' + ], + plugins: ['@babel/transform-runtime', '@vue/babel-plugin-jsx'] + } +} diff --git a/packages/components/builder.config.ts b/packages/components/builder.config.ts index c0e97b4..d9779c8 100644 --- a/packages/components/builder.config.ts +++ b/packages/components/builder.config.ts @@ -5,6 +5,6 @@ export const BuilderConfig: IBuilderConfig = { targetLibCjsDir: 'lib', targetLibEsDir: 'es', externals: { - 'ant-design-vue': 'Antd', - }, + 'ant-design-vue': 'antd' + } } diff --git a/packages/components/package.json b/packages/components/package.json index 5db065e..a6c2889 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@formily/antdv", - "version": "1.0.0-alpha.8", + "version": "2.0.0", "license": "MIT", "main": "lib", "types": "lib/index.d.ts", @@ -22,8 +22,11 @@ "**/*/style.js" ], "scripts": { - "build": "formily-tpl build" + "build": "ts-node ../../scripts/build.ts" }, + "maintainers": [ + "yiyunwan" + ], "repository": { "type": "git", "url": "git+https://github.com/formilyjs/antdv.git" @@ -36,13 +39,7 @@ "access": "public" }, "peerDependencies": { - "@vue/composition-api": "^1.0.0-beta.1", - "vue": "^2.6.0 || >=3.0.0-rc.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } + "vue": "^3.3.0" }, "dependencies": { "@formily/core": "^2.0.8", @@ -52,11 +49,7 @@ "@formily/reactive-vue": "^2.0.8", "@formily/shared": "^2.0.8", "@formily/vue": "^2.0.8", - "portal-vue": "^2.1.7", - "vue-slicksort": "^1.2.0" + "vue-slicksort": "^2.0.0" }, - "devDependencies": { - "ant-design-vue": "^1.7.8", - "vue": "^2.6.14" - } + "gitHead": "62ef79d985a056c1038754fc928645c3b147cb6e" } diff --git a/packages/components/src/__builtins__/configs/index.ts b/packages/components/src/__builtins__/configs/index.ts deleted file mode 100644 index 849fb6a..0000000 --- a/packages/components/src/__builtins__/configs/index.ts +++ /dev/null @@ -1 +0,0 @@ -export const stylePrefix = 'formily-antdv' diff --git a/packages/components/src/__builtins__/hooks/index.ts b/packages/components/src/__builtins__/hooks/index.ts new file mode 100644 index 0000000..a4c7fc0 --- /dev/null +++ b/packages/components/src/__builtins__/hooks/index.ts @@ -0,0 +1,2 @@ +export * from './usePrefixCls' +export * from './useToken' diff --git a/packages/components/src/__builtins__/hooks/usePrefixCls.ts b/packages/components/src/__builtins__/hooks/usePrefixCls.ts new file mode 100644 index 0000000..703d54b --- /dev/null +++ b/packages/components/src/__builtins__/hooks/usePrefixCls.ts @@ -0,0 +1,6 @@ +import { globalConfig } from 'ant-design-vue/es/config-provider' + +export const usePrefixCls = (suffixCls: string, customizePrefixCls?: string) => { + const configProvider = globalConfig() + return configProvider.getPrefixCls(suffixCls, customizePrefixCls) +} diff --git a/packages/components/src/__builtins__/hooks/useToken.ts b/packages/components/src/__builtins__/hooks/useToken.ts new file mode 100644 index 0000000..8a030ff --- /dev/null +++ b/packages/components/src/__builtins__/hooks/useToken.ts @@ -0,0 +1,4 @@ +import { theme } from 'ant-design-vue' + +const { useToken } = theme +export { useToken } diff --git a/packages/components/src/__builtins__/index.ts b/packages/components/src/__builtins__/index.ts index 820133e..28059ea 100644 --- a/packages/components/src/__builtins__/index.ts +++ b/packages/components/src/__builtins__/index.ts @@ -1,3 +1,3 @@ -export * from './configs' +export * from './hooks' export * from './shared' -export * from './moment' +export * from './styles' diff --git a/packages/components/src/__builtins__/moment.ts b/packages/components/src/__builtins__/moment.ts deleted file mode 100644 index 3eb6c0e..0000000 --- a/packages/components/src/__builtins__/moment.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { isArr, isFn } from '@formily/shared' -import moment from 'moment' - -export const momentable = (value: any, format?: string) => { - return Array.isArray(value) - ? value.map((val) => moment(val, format)) - : value - ? moment(value, format) - : value -} - -export const formatMomentValue = ( - value: any, - format: any, - placeholder?: string -): string | string[] => { - const formatDate = (date: any, format: any, i = 0) => { - if (!date) return placeholder - if (isArr(format)) { - const _format = format[i] - if (isFn(_format)) { - return _format(date) - } - return date?.format ? date.format(_format) : date - } else { - if (isFn(format)) { - return format(date) - } - return date?.format ? date.format(format) : date - } - } - if (isArr(value)) { - return value.map((val, index) => { - return formatDate(val, format, index) - }) - } else { - return value ? formatDate(value, format) : value || placeholder - } -} diff --git a/packages/components/src/__builtins__/shared/context.ts b/packages/components/src/__builtins__/shared/context.ts new file mode 100644 index 0000000..0e00779 --- /dev/null +++ b/packages/components/src/__builtins__/shared/context.ts @@ -0,0 +1,4 @@ +import { FieldSymbol } from '@formily/vue' +import { createContext } from './create-context' + +export const FieldContext = createContext(FieldSymbol) diff --git a/packages/components/src/__builtins__/shared/create-context.ts b/packages/components/src/__builtins__/shared/create-context.ts index d816599..1e40726 100644 --- a/packages/components/src/__builtins__/shared/create-context.ts +++ b/packages/components/src/__builtins__/shared/create-context.ts @@ -1,17 +1,14 @@ -import type { Component } from 'vue' -import type { InjectionKey, Ref } from '@vue/composition-api' -import { - defineComponent, - provide, - inject, - readonly, - ref, - toRef, -} from '@vue/composition-api' +import type { DefineComponent } from 'vue' +import type { InjectionKey, Ref } from 'vue' +import { defineComponent, provide, inject, readonly, ref, toRef } from 'vue' export type CreateContext = { - Provider: Component - Consumer: Component + Provider: DefineComponent<{ + value: { + type: any + } + }> + Consumer: DefineComponent injectKey: InjectionKey> } @@ -26,16 +23,16 @@ export const createContext = (defaultValue?: T): CreateContext => { type: null, default() { return defaultValue ?? null - }, - }, + } + } }, setup(props, { slots }) { - const value = toRef(props, 'value') + const value: any = toRef(props, 'value' as never) provide(injectKey, readonly(value)) return () => slots?.default?.() - }, - }), + } + }) as any, Consumer: defineComponent({ name: 'ContextConsumer', @@ -43,9 +40,9 @@ export const createContext = (defaultValue?: T): CreateContext => { const value = inject(injectKey) return () => slots?.default?.(value) - }, + } }), - injectKey, + injectKey } } diff --git a/packages/components/src/__builtins__/shared/dayjs.ts b/packages/components/src/__builtins__/shared/dayjs.ts new file mode 100644 index 0000000..135cc41 --- /dev/null +++ b/packages/components/src/__builtins__/shared/dayjs.ts @@ -0,0 +1,66 @@ +import { isArr, isFn, isEmpty } from '@formily/shared' +import type { ConfigType, Dayjs } from 'dayjs' +import dayjs from 'dayjs' + +export function dayjsable(value: ConfigType, format?: string): Dayjs +export function dayjsable(value: ConfigType[], format?: string): Dayjs[] + +export function dayjsable(value: ConfigType | ConfigType[], format?: string): any { + if (!value) return value + if (Array.isArray(value)) { + return value.map((val) => { + const date = dayjs(val, format) + if (date.isValid()) return date + const _date = dayjs(val) + return _date.isValid() ? _date : val + }) + } else { + const date = dayjs(value, format) + if (date.isValid()) return date + const _date = dayjs(value) + return _date.isValid() ? _date : value + } +} + +export const formatDayjsValue = ( + value: any, + format: any, + placeholder?: string +): string | string[] => { + const validFormatDate = (date: any, format: any) => { + if (typeof date === 'number') { + return dayjs(date).format(format) + } + const _date = dayjs(date, format) + return _date.isValid() ? _date.format(format) : date + } + + const formatDate = (date: any, format: any, i = 0) => { + if (!date) return placeholder + if (isArr(format)) { + const _format = format[i] + if (isFn(_format)) { + return _format(date) + } + if (isEmpty(_format)) { + return date + } + return validFormatDate(date, _format) + } else { + if (isFn(format)) { + return format(date) + } + if (isEmpty(format)) { + return date + } + return validFormatDate(date, format) + } + } + if (isArr(value)) { + return value.map((val, index) => { + return formatDate(val, format, index) + }) + } else { + return value ? formatDate(value, format) : value || placeholder + } +} diff --git a/packages/components/src/__builtins__/shared/index.ts b/packages/components/src/__builtins__/shared/index.ts index 25aee28..5547712 100644 --- a/packages/components/src/__builtins__/shared/index.ts +++ b/packages/components/src/__builtins__/shared/index.ts @@ -1,7 +1,9 @@ -export * from './transform-component' -export * from './resolve-component' +export * from './context' export * from './create-context' -export * from './utils' -export * from './portal' +export * from './dayjs' export * from './loading' +export * from './portal' +export * from './resolve-component' +export * from './transform-component' export * from './types' +export * from './utils' diff --git a/packages/components/src/__builtins__/shared/loading.ts b/packages/components/src/__builtins__/shared/loading.ts index 507818b..69513e0 100644 --- a/packages/components/src/__builtins__/shared/loading.ts +++ b/packages/components/src/__builtins__/shared/loading.ts @@ -1,10 +1,7 @@ import { message } from 'ant-design-vue' -import type { MessageType } from 'ant-design-vue/types/message' +import type { MessageType } from 'ant-design-vue/es/message' -export const loading = async ( - loadingText = 'Loading...', - processor: () => Promise -) => { +export const loading = async (loadingText = 'Loading...', processor: () => Promise) => { let loadingInstance: MessageType = null const loading = setTimeout(() => { loadingInstance = message.loading(loadingText) diff --git a/packages/components/src/__builtins__/shared/portal.ts b/packages/components/src/__builtins__/shared/portal.ts deleted file mode 100644 index 7ec1698..0000000 --- a/packages/components/src/__builtins__/shared/portal.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { defineComponent, onBeforeUnmount } from '@vue/composition-api' -import { h, Fragment } from '@formily/vue' -export interface IPortalProps { - id?: string | symbol -} - -const PortalMap = new Map() - -export const createPortalProvider = (id: string | symbol) => { - const Portal = defineComponent({ - name: 'ProtalProvider', - props: { - id: { - type: [String, Symbol], - default: id, - }, - }, - - setup(props) { - onBeforeUnmount(() => { - const { id } = props - if (id && PortalMap.has(id)) { - PortalMap.delete(id) - } - }) - }, - - render() { - const { id } = this - if (id && !PortalMap.has(id)) { - PortalMap.set(id, this) - } - - return h(Fragment, {}, this.$scopedSlots) - }, - }) - - return Portal -} - -export function getProtalContext(id: string | symbol) { - return PortalMap.get(id) -} diff --git a/packages/components/src/__builtins__/shared/portal.tsx b/packages/components/src/__builtins__/shared/portal.tsx new file mode 100644 index 0000000..dd69f0a --- /dev/null +++ b/packages/components/src/__builtins__/shared/portal.tsx @@ -0,0 +1,43 @@ +import { defineComponent, getCurrentInstance, onBeforeUnmount } from 'vue' +export interface IPortalProps { + id?: string | symbol +} + +const PortalMap = new Map() + +export const createPortalProvider = (id: string | symbol) => { + const Portal = defineComponent({ + name: 'PortalProvider', + props: { + id: { + type: String, + default: id + } + }, + + setup(props, { slots }) { + onBeforeUnmount(() => { + const { id } = props + if (id && PortalMap.has(id)) { + PortalMap.delete(id) + } + }) + + const { proxy } = getCurrentInstance() + return () => { + const { id } = props + if (id && !PortalMap.has(id)) { + PortalMap.set(id, proxy) + } + + return
{slots.default?.()}
+ } + } + }) + + return Portal +} + +export function getPortalContext(id: string) { + return PortalMap.get(id) +} diff --git a/packages/components/src/__builtins__/shared/resolve-component.ts b/packages/components/src/__builtins__/shared/resolve-component.ts deleted file mode 100644 index c4b301a..0000000 --- a/packages/components/src/__builtins__/shared/resolve-component.ts +++ /dev/null @@ -1,24 +0,0 @@ -import type { Component } from 'vue' -import { h, toRaw } from '@vue/composition-api' -import type { SlotTypes } from '.' -import { isVnode } from './utils' - -export const resolveComponent = ( - child?: SlotTypes, - props?: Record -) => { - if (child) { - if (typeof child === 'string' || typeof child === 'number') { - return child - } else if (typeof child === 'function') { - // eslint-disable-next-line @typescript-eslint/ban-types - return (child as Function)(props) - } else if (isVnode(child)) { - return child - } else { - return h(toRaw(child as Component), { props }) - } - } - - return null -} diff --git a/packages/components/src/__builtins__/shared/resolve-component.tsx b/packages/components/src/__builtins__/shared/resolve-component.tsx new file mode 100644 index 0000000..0e64473 --- /dev/null +++ b/packages/components/src/__builtins__/shared/resolve-component.tsx @@ -0,0 +1,21 @@ +import type { DefineComponent } from 'vue' +import { toRaw } from 'vue' +import type { SlotTypes } from './types' +import { isVnode } from './utils' + +export const resolveComponent = (child?: SlotTypes, props?: Record) => { + if (child) { + if (typeof child === 'string' || typeof child === 'number') { + return child + } else if (typeof child === 'function') { + return (child as Function)(props) + } else if (isVnode(child)) { + return child + } else { + const Com = toRaw(child as DefineComponent) + return + } + } + + return null +} diff --git a/packages/components/src/__builtins__/shared/transform-component.ts b/packages/components/src/__builtins__/shared/transform-component.ts index 2aef0ce..f394986 100644 --- a/packages/components/src/__builtins__/shared/transform-component.ts +++ b/packages/components/src/__builtins__/shared/transform-component.ts @@ -1,7 +1,6 @@ -import type { Component } from 'vue' import { merge } from '@formily/shared' -import { h } from '@formily/vue' -import { isVue2, defineComponent } from 'vue-demi' +import type { Component } from 'vue' +import { defineComponent, h } from 'vue' type ListenersTransformRules = Record @@ -10,56 +9,25 @@ export const transformComponent = >( transformRules?: ListenersTransformRules, defaultProps?: Partial ): Component | any => { - if (isVue2) { - return defineComponent({ - setup(props, { attrs, slots, listeners }) { - return () => { - const data = { - attrs: { - ...attrs, - }, - on: { - ...listeners, - }, - } - - if (transformRules) { - const transformListeners = transformRules - Object.keys(transformListeners).forEach((extract) => { - if (data.on !== undefined) { - data.on[transformListeners[extract]] = listeners[extract] - } - }) - } - if (defaultProps) { - data.attrs = merge(defaultProps, data.attrs) - } - - return h(tag, data, slots) + return defineComponent({ + setup(props, { attrs, slots }) { + return () => { + let data = { + ...attrs + } + if (transformRules) { + const listeners = transformRules + Object.keys(listeners).forEach((extract) => { + const event = listeners[extract] + data[`on${event[0].toUpperCase()}${event.slice(1)}`] = + attrs[`on${extract[0].toUpperCase()}${extract.slice(1)}`] + }) } - }, - }) - } else { - return defineComponent({ - setup(props, { attrs, slots }) { - return () => { - let data = { - ...attrs, - } - if (transformRules) { - const listeners = transformRules - Object.keys(listeners).forEach((extract) => { - const event = listeners[extract] - data[`on${event[0].toUpperCase()}${event.slice(1)}`] = - attrs[`on${extract[0].toUpperCase()}${extract.slice(1)}`] - }) - } - if (defaultProps) { - data = merge(defaultProps, data) - } - return h(tag, data, slots) + if (defaultProps) { + data = merge(defaultProps, data) } - }, - }) - } + return h(tag, data, slots) + } + } + }) } diff --git a/packages/components/src/__builtins__/shared/types.ts b/packages/components/src/__builtins__/shared/types.ts index 9f294ae..12ecce6 100644 --- a/packages/components/src/__builtins__/shared/types.ts +++ b/packages/components/src/__builtins__/shared/types.ts @@ -1,4 +1,4 @@ -import type { Component, VNode } from 'vue' +import type { Component, ExtractPropTypes, VNode } from 'vue' export type SlotTypes = | Component @@ -6,3 +6,5 @@ export type SlotTypes = | number | ((props: Record) => VNode[] | VNode) | VNode + +export type PropTypes any> = Partial>> diff --git a/packages/components/src/__builtins__/shared/utils.ts b/packages/components/src/__builtins__/shared/utils.ts index 826dd0d..272a009 100644 --- a/packages/components/src/__builtins__/shared/utils.ts +++ b/packages/components/src/__builtins__/shared/utils.ts @@ -20,18 +20,11 @@ export function isVnode(element: any): boolean { } export function isVueOptions(options) { - return ( - options && - (typeof options.template === 'string' || - typeof options.render === 'function') - ) + return options && (typeof options.template === 'string' || typeof options.render === 'function') } // eslint-disable-next-line @typescript-eslint/ban-types -export function composeExport( - s0: T0, - s1: T1 -): T0 & T1 { +export function composeExport(s0: T0, s1: T1): T0 & T1 { return Object.assign(s0, s1) } diff --git a/packages/components/src/__builtins__/styles/common.less b/packages/components/src/__builtins__/styles/common.less deleted file mode 100644 index 349fa92..0000000 --- a/packages/components/src/__builtins__/styles/common.less +++ /dev/null @@ -1,8 +0,0 @@ -@formily-prefix: formily-antdv; -// @namespace: 'el'; -@import '~ant-design-vue/lib/style/themes/index.less'; - -// height rules as antd -@height-base: 32px; -@height-lg: 40px; -@height-sm: 24px; diff --git a/packages/components/src/__builtins__/styles/index.ts b/packages/components/src/__builtins__/styles/index.ts new file mode 100644 index 0000000..ce83c80 --- /dev/null +++ b/packages/components/src/__builtins__/styles/index.ts @@ -0,0 +1,97 @@ +import { merge } from '@formily/shared' +import { useStyleRegister, type CSSInterpolation, type CSSObject } from 'ant-design-vue' +import type { VueNode } from 'ant-design-vue/es/_util/type' +import { useConfigContextInject } from 'ant-design-vue/es/config-provider/context' +import type { ComponentTokenMap, GlobalToken } from 'ant-design-vue/es/theme/interface' +import { computed, type Ref } from 'vue' +import { useToken } from '../hooks' + +export type OverrideComponent = keyof ComponentTokenMap | (string & {}) + +export interface StyleInfo { + hashId: string + prefixCls: string + rootPrefixCls: string + iconPrefixCls: string +} + +export type TokenWithCommonCls = T & { + /** Wrap component class with `.` prefix */ + componentCls: string + /** Origin prefix which do not have `.` prefix */ + prefixCls: string + /** Wrap icon class with `.` prefix */ + iconCls: string + /** Wrap ant prefixCls class with `.` prefix */ + antCls: string +} + +export type GenerateStyle< + ComponentToken extends object = TokenWithCommonCls, + ReturnType = CSSInterpolation +> = (token: ComponentToken, options?: any) => ReturnType + +export const genCommonStyle = (token: any, componentPrefixCls: string): CSSObject => { + const { fontFamily, fontSize } = token + + const rootPrefixSelector = `[class^="${componentPrefixCls}"], [class*=" ${componentPrefixCls}"]` + + return { + [rootPrefixSelector]: { + fontFamily, + fontSize, + boxSizing: 'border-box', + + '&::before, &::after': { + boxSizing: 'border-box' + }, + + [rootPrefixSelector]: { + boxSizing: 'border-box', + + '&::before, &::after': { + boxSizing: 'border-box' + } + } + } + } +} +export type UseComponentStyleResult = [(node: VueNode) => VueNode, Ref] + +export const genStyleHook = ( + component: ComponentName, + styleFn: (token: TokenWithCommonCls, info: StyleInfo) => CSSInterpolation +) => { + return (prefixCls: string): UseComponentStyleResult => { + const { theme, token, hashId } = useToken() + const { getPrefixCls, iconPrefixCls } = useConfigContextInject() + const rootPrefixCls = getPrefixCls() + const info = computed(() => ({ + theme: theme.value, + token: token.value, + hashId: hashId.value, + path: ['formily-antd', component, prefixCls, iconPrefixCls.value] + })) + return [ + useStyleRegister(info, () => { + const componentCls = `.${prefixCls}` + const mergedToken: TokenWithCommonCls = merge(token.value, { + ...token['Form'], // Merge the antd form token + componentCls, + prefixCls, + iconCls: `.${iconPrefixCls.value}`, + antCls: `.${rootPrefixCls}` + }) + + const styleInterpolation = styleFn(mergedToken, { + hashId: hashId.value, + prefixCls, + rootPrefixCls, + iconPrefixCls: iconPrefixCls.value + }) + return [genCommonStyle(token, prefixCls), styleInterpolation] + }), + hashId + ] + } +} diff --git a/packages/components/src/__tests__/reset.spec.ts b/packages/components/src/__tests__/reset.spec.ts deleted file mode 100644 index d5ff853..0000000 --- a/packages/components/src/__tests__/reset.spec.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Reset } from '../reset' -import { render } from '@testing-library/vue' -import { defineComponent } from '@vue/composition-api' -import { FormProvider, Field } from '@formily/vue' -import { createForm } from '@formily/core' - -test('render Reset', () => { - const form = createForm() - render( - defineComponent({ - name: 'TestReset', - components: { - FormProvider, - Field, - }, - setup() { - return { - form, - Reset, - } - }, - template: ` - - - - `, - }) - ) - expect(form.mounted).toBeTruthy() - expect(form.query('aa').take().mounted).toBeTruthy() -}) diff --git a/packages/components/src/array-base/index.ts b/packages/components/src/array-base/index.ts deleted file mode 100644 index 04e60d2..0000000 --- a/packages/components/src/array-base/index.ts +++ /dev/null @@ -1,423 +0,0 @@ -import { Button, Icon } from 'ant-design-vue' -import { stylePrefix } from '../__builtins__/configs' -import { Fragment, useField, useFieldSchema, h } from '@formily/vue' -import { isValid, clone, uid } from '@formily/shared' -import type { ArrayField } from '@formily/core' -import type { Button as ButtonProps } from 'ant-design-vue/types/button/button' -import type { Schema } from '@formily/json-schema' -import type { Ref, InjectionKey } from '@vue/composition-api' -import { - defineComponent, - provide, - inject, - toRefs, - ref, - onBeforeUnmount, -} from '@vue/composition-api' -import { HandleDirective } from 'vue-slicksort' -import { composeExport } from '../__builtins__/shared' - -export type KeyMapProps = - | WeakMap, string> - | string[] - | null - -export interface IArrayBaseAdditionProps extends ButtonProps { - title?: string - method?: 'push' | 'unshift' - defaultValue?: any -} - -export interface IArrayBaseItemProps { - index: number - record: any -} - -export type ArrayBaseMixins = { - Addition?: typeof ArrayBaseAddition - Remove?: typeof ArrayBaseRemove - MoveUp?: typeof ArrayBaseMoveUp - MoveDown?: typeof ArrayBaseMoveDown - SortHandle?: typeof ArrayBaseSortHandle - Index?: typeof ArrayBaseIndex - useArray?: typeof useArray - useIndex?: typeof useIndex - useRecord?: typeof useRecord -} - -export interface IArrayBaseProps { - disabled?: boolean - onAdd?: (index: number) => void - onRemove?: (index: number) => void - onMoveDown?: (index: number) => void - onMoveUp?: (index: number) => void - keyMap?: KeyMapProps -} - -export interface IArrayBaseContext { - props: IArrayBaseProps - field: Ref - schema: Ref - listeners: { - // eslint-disable-next-line @typescript-eslint/ban-types - [key in string]?: Function - } - keyMap?: KeyMapProps -} - -const ArrayBaseSymbol: InjectionKey = - Symbol('ArrayBaseContext') -const ItemSymbol: InjectionKey = Symbol('ItemContext') - -const useArray = () => { - return inject(ArrayBaseSymbol, null) -} - -const useIndex = (index?: number) => { - const { index: indexRef } = toRefs(inject(ItemSymbol)) - return indexRef ?? ref(index) -} - -const useRecord = (record?: number) => { - const { record: recordRef } = toRefs(inject(ItemSymbol)) - return recordRef ?? ref(record) -} - -const isObjectValue = (schema: Schema) => { - if (Array.isArray(schema?.items)) return isObjectValue(schema.items[0]) - - if (schema?.items?.type === 'array' || schema?.items?.type === 'object') { - return true - } - return false -} - -const useKey = (schema: Schema) => { - const isObject = isObjectValue(schema) - let keyMap: KeyMapProps = null - - if (isObject) { - keyMap = new WeakMap() - } else { - keyMap = [] - } - - onBeforeUnmount(() => { - keyMap = null - }) - - return { - keyMap, - getKey: (record: any, index?: number) => { - if (keyMap instanceof WeakMap) { - if (!keyMap.has(record)) { - keyMap.set(record, uid()) - } - return `${keyMap.get(record)}-${index}` - } - - if (!keyMap[index]) { - keyMap[index] = uid() - } - - return `${keyMap[index]}-${index}` - }, - } -} - -const getDefaultValue = (defaultValue: any, schema: Schema) => { - if (isValid(defaultValue)) return clone(defaultValue) - if (Array.isArray(schema?.items)) - return getDefaultValue(defaultValue, schema.items[0]) - if (schema?.items?.type === 'array') return [] - if (schema?.items?.type === 'boolean') return true - if (schema?.items?.type === 'date') return '' - if (schema?.items?.type === 'datetime') return '' - if (schema?.items?.type === 'number') return 0 - if (schema?.items?.type === 'object') return {} - if (schema?.items?.type === 'string') return '' - return null -} - -const ArrayBaseInner = defineComponent({ - name: 'ArrayBase', - props: ['disabled', 'keyMap'], - setup(props, { listeners, slots }) { - const field = useField() - const schema = useFieldSchema() - provide(ArrayBaseSymbol, { - field, - schema, - props, - listeners, - keyMap: props.keyMap as KeyMapProps, - }) - return () => { - return h(Fragment, {}, slots) - } - }, -}) - -const ArrayBaseItem = defineComponent({ - name: 'ArrayBaseItem', - props: ['index', 'record'], - setup(props: IArrayBaseItemProps, { slots }) { - provide(ItemSymbol, props) - return () => { - return h(Fragment, {}, slots) - } - }, -}) - -const ArrayBaseSortHandle = defineComponent({ - name: 'ArrayBaseSortHandle', - props: ['index'], - directives: { - handle: HandleDirective, - }, - setup(props, { attrs }) { - const array = useArray() - const prefixCls = `${stylePrefix}-array-base` - - return () => { - if (!array) return null - if (array.field.value?.pattern !== 'editable') return null - - return h( - Icon, - { - directives: [{ name: 'handle' }], - class: [`${prefixCls}-sort-handle`], - style: attrs.style, - props: { - type: 'menu', - }, - attrs: { - ...attrs, - }, - }, - {} - ) - } - }, -}) - -const ArrayBaseIndex = defineComponent({ - name: 'ArrayBaseIndex', - setup(props, { attrs }) { - const index = useIndex() - const prefixCls = `${stylePrefix}-array-base` - return () => { - return h( - 'span', - { - class: `${prefixCls}-index`, - attrs, - }, - { - default: () => [`#${index.value + 1}.`], - } - ) - } - }, -}) - -const ArrayBaseAddition = defineComponent({ - name: 'ArrayBaseAddition', - props: ['title', 'method', 'defaultValue'], - setup(props: IArrayBaseAdditionProps, { listeners }) { - const self = useField() - const array = useArray() - const prefixCls = `${stylePrefix}-array-base` - return () => { - if (!array) return null - if ( - array?.field.value.pattern !== 'editable' && - array?.field.value.pattern !== 'disabled' - ) - return null - return h( - Button, - { - class: `${prefixCls}-addition`, - attrs: { - ...props, - type: 'dashed', - block: true, - disabled: array.field.value?.disabled, - }, - on: { - ...listeners, - click: (e) => { - if (array.props?.disabled) return - const defaultValue = getDefaultValue( - props.defaultValue, - array?.schema.value - ) - if (props.method === 'unshift') { - array?.field?.value.unshift(defaultValue) - array.listeners?.add?.(0) - } else { - array?.field?.value.push(defaultValue) - array.listeners?.add?.(array?.field?.value?.value?.length - 1) - } - if (listeners.click) { - listeners.click(e) - } - }, - }, - }, - { - default: () => [ - h(Icon, { props: { type: 'plus' } }, {}), - self.value.title || props.title, - ], - } - ) - } - }, -}) - -const ArrayBaseRemove = defineComponent<{ title?: string; index?: number }>({ - name: 'ArrayBaseRemove', - props: ['title', 'index'], - setup(props, { attrs, listeners }) { - const indexRef = useIndex(props.index) - const base = useArray() - const prefixCls = `${stylePrefix}-array-base` - return () => { - if (base?.field.value.pattern !== 'editable') return null - return h( - Icon, - { - class: `${prefixCls}-remove`, - attrs, - props: { - type: 'delete', - }, - on: { - ...listeners, - click: (e: MouseEvent) => { - e.stopPropagation() - if (Array.isArray(base?.keyMap)) { - base?.keyMap?.splice(indexRef.value, 1) - } - - base?.field.value.remove(indexRef.value as number) - base?.listeners?.remove?.(indexRef.value as number) - - if (listeners.click) { - listeners.click(e) - } - }, - }, - }, - {} - ) - } - }, -}) - -const ArrayBaseMoveDown = defineComponent<{ title?: string; index?: number }>({ - name: 'ArrayBaseMoveDown', - props: ['title', 'index'], - setup(props, { attrs, listeners }) { - const indexRef = useIndex(props.index) - const base = useArray() - const prefixCls = `${stylePrefix}-array-base` - return () => { - if (base?.field.value.pattern !== 'editable') return null - return h( - Icon, - { - class: `${prefixCls}-move-down`, - attrs, - props: { - type: 'down', - }, - on: { - ...listeners, - click: (e: MouseEvent) => { - e.stopPropagation() - if (Array.isArray(base?.keyMap)) { - base.keyMap.splice( - indexRef.value + 1, - 0, - base.keyMap.splice(indexRef.value, 1)[0] - ) - } - - base?.field.value.moveDown(indexRef.value as number) - base?.listeners?.moveDown?.(indexRef.value as number) - - if (listeners.click) { - listeners.click(e) - } - }, - }, - }, - {} - ) - } - }, -}) - -const ArrayBaseMoveUp = defineComponent<{ title?: string; index?: number }>({ - name: 'ArrayBaseMoveUp', - props: ['title', 'index'], - setup(props, { attrs, listeners }) { - const indexRef = useIndex(props.index) - const base = useArray() - const prefixCls = `${stylePrefix}-array-base` - return () => { - if (base?.field.value.pattern !== 'editable') return null - return h( - Icon, - { - class: `${prefixCls}-move-up`, - attrs, - props: { - type: 'up', - }, - on: { - ...listeners, - click: (e: MouseEvent) => { - e.stopPropagation() - if (Array.isArray(base?.keyMap)) { - base.keyMap.splice( - indexRef.value - 1, - 0, - base.keyMap.splice(indexRef.value, 1)[0] - ) - } - - base?.field.value.moveUp(indexRef.value as number) - base?.listeners?.moveUp?.(indexRef.value as number) - - if (listeners.click) { - listeners.click(e) - } - }, - }, - }, - {} - ) - } - }, -}) - -export const ArrayBase = composeExport(ArrayBaseInner, { - Index: ArrayBaseIndex, - Item: ArrayBaseItem, - SortHandle: ArrayBaseSortHandle, - Addition: ArrayBaseAddition, - Remove: ArrayBaseRemove, - MoveDown: ArrayBaseMoveDown, - MoveUp: ArrayBaseMoveUp, - useArray: useArray, - useIndex: useIndex, - useKey: useKey, - useRecord: useRecord, -}) - -export default ArrayBase diff --git a/packages/components/src/array-base/index.tsx b/packages/components/src/array-base/index.tsx new file mode 100644 index 0000000..1515f96 --- /dev/null +++ b/packages/components/src/array-base/index.tsx @@ -0,0 +1,382 @@ +import { + DeleteOutlined, + DownOutlined, + MenuOutlined, + PlusOutlined, + UpOutlined +} from '@ant-design/icons-vue' +import type { ArrayField } from '@formily/core' +import { clone, isValid, uid } from '@formily/shared' +import type { Schema } from '@formily/vue' +import { useField, useFieldSchema } from '@formily/vue' +import type { ButtonProps } from 'ant-design-vue' +import { Button } from 'ant-design-vue' +import type { InjectionKey, PropType, Ref } from 'vue' +import { defineComponent, inject, onBeforeUnmount, provide, ref, toRefs, withDirectives } from 'vue' +import { HandleDirective } from 'vue-slicksort' +import { composeExport, resolveComponent, usePrefixCls } from '../__builtins__' +import useStyle from './style' + +export type KeyMapProps = WeakMap, string> | string[] | null + +export interface IArrayBaseItemProps { + index: number + record: any +} + +export type ArrayBaseMixins = { + Addition: typeof ArrayBaseAddition + Remove: typeof ArrayBaseRemove + MoveUp: typeof ArrayBaseMoveUp + MoveDown: typeof ArrayBaseMoveDown + SortHandle: typeof ArrayBaseSortHandle + Index: typeof ArrayBaseIndex + useArray: typeof useArray + useIndex: typeof useIndex + useRecord: typeof useRecord +} + +export interface IArrayBaseProps { + disabled?: boolean + onAdd?: (index: number) => void + onRemove?: (index: number) => void + onMoveDown?: (index: number) => void + onMoveUp?: (index: number) => void + keyMap?: KeyMapProps +} + +export interface IArrayBaseContext { + props: IArrayBaseProps + field: Ref + schema: Ref + attrs: { + [key in string]?: any + } + keyMap?: KeyMapProps +} + +const ArrayBaseSymbol: InjectionKey = Symbol('ArrayBaseContext') +const ItemSymbol: InjectionKey = Symbol('ItemContext') + +const useArray = () => { + return inject(ArrayBaseSymbol, null) +} + +const useIndex = (index?: number) => { + const itemRef = inject(ItemSymbol) + if (!itemRef) return ref(index) + const { index: indexRef } = toRefs(itemRef) + return indexRef +} + +const useRecord = (record?: Record) => { + const itemRef = inject(ItemSymbol) + if (!itemRef) return ref(record) + const { record: recordRef } = toRefs(itemRef) + return recordRef +} + +const isObjectValue = (schema: Schema) => { + if (Array.isArray(schema?.items)) return isObjectValue(schema.items[0]) + + if (schema?.items?.type === 'array' || schema?.items?.type === 'object') { + return true + } + return false +} + +const useKey = (schema: Schema) => { + const isObject = isObjectValue(schema) + let keyMap: KeyMapProps = null + + if (isObject) { + keyMap = new WeakMap() + } else { + keyMap = [] + } + + onBeforeUnmount(() => { + keyMap = null + }) + + return { + keyMap, + getKey: (record: any, index?: number) => { + if (keyMap instanceof WeakMap) { + if (!keyMap.has(record)) { + keyMap.set(record, uid()) + } + return `${keyMap.get(record)}-${index}` + } + + if (!keyMap[index]) { + keyMap[index] = uid() + } + + return `${keyMap[index]}-${index}` + } + } +} + +const getDefaultValue = (defaultValue: any, schema: Schema) => { + if (isValid(defaultValue)) return clone(defaultValue) + if (Array.isArray(schema?.items)) return getDefaultValue(defaultValue, schema.items[0]) + if (schema?.items?.type === 'array') return [] + if (schema?.items?.type === 'boolean') return true + if (schema?.items?.type === 'date') return '' + if (schema?.items?.type === 'datetime') return '' + if (schema?.items?.type === 'number') return 0 + if (schema?.items?.type === 'object') return {} + if (schema?.items?.type === 'string') return '' + return null +} + +const ArrayBaseInner = defineComponent({ + name: 'ArrayBase', + props: ['disabled', 'keyMap', 'onAdd'], + setup(props, { attrs, slots }) { + const field = useField() + const schema = useFieldSchema() + provide(ArrayBaseSymbol, { + field, + schema, + props, + attrs, + keyMap: props.keyMap as KeyMapProps + }) + return () => { + return <>{slots.default?.()} + } + } +}) + +const ArrayBaseItem = defineComponent({ + name: 'ArrayBaseItem', + props: ['index', 'record'], + setup(props, { slots }) { + provide(ItemSymbol, props) + return () => { + return <>{slots.default?.()} + } + } +}) + +const ArrayBaseSortHandle = defineComponent({ + name: 'ArrayBaseSortHandle', + props: ['index'], + setup(_props, { attrs }) { + const array = useArray() + const prefixCls = usePrefixCls('formily-array-base', attrs.prefixCls as string) + const [wrapSSR, hashId] = useStyle(prefixCls) + + return () => { + if (!array) return null + if (array.field.value?.pattern !== 'editable') return null + return wrapSSR( + withDirectives( + , + [[HandleDirective]] + ) + ) + } + } +}) + +const ArrayBaseIndex = defineComponent({ + name: 'ArrayBaseIndex', + setup(props, { attrs }) { + const index = useIndex() + const prefixCls = usePrefixCls('formily-array-base', attrs.prefixCls as string) + const [wrapSSR, hashId] = useStyle(prefixCls) + + return () => { + return wrapSSR( + + #{index.value + 1}. + + ) + } + } +}) + +const arrayBaseAdditionProps = { + title: { + type: String + }, + method: { + type: String as PropType<'push' | 'unshift'> + }, + defaultValue: {} +} + +export interface IArrayBaseAdditionProps extends ButtonProps { + title?: string + method?: 'push' | 'unshift' + defaultValue?: any +} + +const ArrayBaseAddition = defineComponent({ + name: 'ArrayBaseAddition', + props: arrayBaseAdditionProps, + setup(props, { attrs, emit }) { + const self = useField() + const array = useArray() + const prefixCls = usePrefixCls('formily-array-base', attrs.prefixCls as string) + const [wrapSSR, hashId] = useStyle(prefixCls) + + return () => { + if (!array) return null + if (array?.field.value.pattern !== 'editable' && array?.field.value.pattern !== 'disabled') + return null + const title = props.title || self.value.title + return wrapSSR( + + ) + } + } +}) + +const ArrayBaseRemove = defineComponent({ + name: 'ArrayBaseRemove', + props: { + index: { + type: Number + }, + title: {} + }, + setup(props, { attrs, emit }) { + const indexRef = useIndex(props.index) + const self = useField() + const base = useArray() + const prefixCls = usePrefixCls('formily-array-base', attrs.prefixCls as string) + const [wrapSSR, hashId] = useStyle(prefixCls) + + return () => { + if (base?.field.value.pattern !== 'editable') return null + + const { title = self.value.title } = props + + const onClick = (e: MouseEvent) => { + e.stopPropagation() + if (Array.isArray(base?.keyMap)) { + base?.keyMap?.splice(indexRef.value, 1) + } + + base?.field.value.remove(indexRef.value as number) + emit('remove', indexRef.value) + emit('click', e) + } + + if (title) { + return wrapSSR( + + ) + } + return wrapSSR( + + ) + } + } +}) + +const ArrayBaseMoveDown = defineComponent({ + name: 'ArrayBaseMoveDown', + props: ['title', 'index'], + setup(props, { attrs, emit }) { + const indexRef = useIndex(props.index) + const base = useArray() + const prefixCls = usePrefixCls('formily-array-base', attrs.prefixCls as string) + const [wrapSSR, hashId] = useStyle(prefixCls) + return () => { + if (base?.field.value.pattern !== 'editable') return null + return wrapSSR( + { + e.stopPropagation() + if (Array.isArray(base?.keyMap)) { + base.keyMap.splice(indexRef.value + 1, 0, base.keyMap.splice(indexRef.value, 1)[0]) + } + base?.field.value.moveDown(indexRef.value as number) + emit('moveDown', indexRef.value) + emit('click', e) + }} + /> + ) + } + } +}) + +const ArrayBaseMoveUp = defineComponent({ + name: 'ArrayBaseMoveUp', + props: ['title', 'index'], + setup(props, { attrs, emit }) { + const indexRef = useIndex(props.index) + const base = useArray() + const prefixCls = usePrefixCls('formily-array-base', attrs.prefixCls as string) + const [wrapSSR, hashId] = useStyle(prefixCls) + return () => { + if (base?.field.value.pattern !== 'editable') return null + return wrapSSR( + { + e.stopPropagation() + if (Array.isArray(base?.keyMap)) { + base.keyMap.splice(indexRef.value - 1, 0, base.keyMap.splice(indexRef.value, 1)[0]) + } + + base?.field.value.moveUp(indexRef.value as number) + emit('moveUp', indexRef.value) + emit('click', e) + }} + /> + ) + } + } +}) + +export const ArrayBase = composeExport(ArrayBaseInner, { + Index: ArrayBaseIndex, + Item: ArrayBaseItem, + SortHandle: ArrayBaseSortHandle, + Addition: ArrayBaseAddition, + Remove: ArrayBaseRemove, + MoveDown: ArrayBaseMoveDown, + MoveUp: ArrayBaseMoveUp, + useArray: useArray, + useIndex: useIndex, + useKey: useKey, + useRecord: useRecord +}) + +export default ArrayBase diff --git a/packages/components/src/array-base/style.less b/packages/components/src/array-base/style.less deleted file mode 100644 index 8900b11..0000000 --- a/packages/components/src/array-base/style.less +++ /dev/null @@ -1,43 +0,0 @@ -@import '../__builtins__/styles/common.less'; - -@array-base-prefix-cls: ~'@{formily-prefix}-array-base'; - -.@{array-base-prefix-cls}-remove { - transition: all 0.25s ease-in-out; - color: @text-color; - font-size: 16px; - &:hover { - color: @primary-5; - } -} - -.@{array-base-prefix-cls}-sort-handle { - cursor: move; - color: #888 !important; -} - -.@{array-base-prefix-cls}-addition { - transition: all 0.25s ease-in-out; -} - -.@{array-base-prefix-cls}-move-down { - transition: all 0.25s ease-in-out; - color: @text-color; - font-size: 16px; - margin-left: 6px; - - &:hover { - color: @primary-5; - } -} - -.@{array-base-prefix-cls}-move-up { - transition: all 0.25s ease-in-out; - color: @text-color; - font-size: 16px; - margin-left: 6px; - - &:hover { - color: @primary-5; - } -} diff --git a/packages/components/src/array-base/style.ts b/packages/components/src/array-base/style.ts index b91fa6b..3e1b921 100644 --- a/packages/components/src/array-base/style.ts +++ b/packages/components/src/array-base/style.ts @@ -1,2 +1,56 @@ -import 'ant-design-vue/lib/button/style/index' -import './style.less' +import { genStyleHook } from './../__builtins__' + +export default genStyleHook('array-base', (token) => { + const { componentCls, colorText, fontSizeLG, colorPrimaryText, colorTextDisabled } = token + return { + [componentCls]: { + '&-remove': { + transition: 'all 0.25s ease-in-out', + color: colorText, + fontSize: fontSizeLG, + + ':hover': { + color: colorPrimaryText + }, + + '&-disabled': { + color: colorTextDisabled, + cursor: 'not-allowed !important', + + '&:hover': { + color: colorTextDisabled + } + } + }, + + '&-sort-handle': { + cursor: 'move', + color: '#888 !important' + }, + + '&-addition': { + transition: 'all 0.25s ease-in-out' + }, + + '&-move-down, &-move-up': { + transition: 'all 0.25s ease-in-out', + color: colorText, + fontSize: fontSizeLG, + marginInlineStart: 6, + + ':hover': { + color: colorPrimaryText + }, + + '&-disabled': { + color: colorTextDisabled, + cursor: 'not-allowed !important', + + '&:hover': { + color: colorTextDisabled + } + } + } + } + } +}) diff --git a/packages/components/src/array-cards/index.ts b/packages/components/src/array-cards/index.ts deleted file mode 100644 index 7c6d125..0000000 --- a/packages/components/src/array-cards/index.ts +++ /dev/null @@ -1,217 +0,0 @@ -import { Card, Empty } from 'ant-design-vue' -import type { Card as CardProps } from 'ant-design-vue/types/card' -import type { ArrayField } from '@formily/core' -import { useField, useFieldSchema, RecursionField, h } from '@formily/vue' -import { observer } from '@formily/reactive-vue' -import type { ISchema } from '@formily/json-schema' -import { stylePrefix } from '../__builtins__/configs' -import { ArrayBase } from '../array-base' -import { composeExport } from '../__builtins__/shared' -import { defineComponent } from '@vue/composition-api' - -const isAdditionComponent = (schema: ISchema) => { - return schema['x-component']?.indexOf('Addition') > -1 -} - -const isIndexComponent = (schema: ISchema) => { - return schema['x-component']?.indexOf('Index') > -1 -} - -const isRemoveComponent = (schema: ISchema) => { - return schema['x-component']?.indexOf('Remove') > -1 -} - -const isMoveUpComponent = (schema: ISchema) => { - return schema['x-component']?.indexOf('MoveUp') > -1 -} - -const isMoveDownComponent = (schema: ISchema) => { - return schema['x-component']?.indexOf('MoveDown') > -1 -} - -const isOperationComponent = (schema: ISchema) => { - return ( - isAdditionComponent(schema) || - isRemoveComponent(schema) || - isMoveDownComponent(schema) || - isMoveUpComponent(schema) - ) -} - -const ArrayCardsInner = observer( - defineComponent({ - name: 'ArraryCards', - props: [], - setup(_props, { attrs }) { - const fieldRef = useField() - const schemaRef = useFieldSchema() - const prefixCls = `${stylePrefix}-array-cards` - const { getKey, keyMap } = ArrayBase.useKey(schemaRef.value) - return () => { - const props = { ...attrs } - const field = fieldRef.value - const schema = schemaRef.value - const dataSource = Array.isArray(field.value) ? field.value : [] - if (!schema) throw new Error('can not found schema object') - const renderItems = () => { - return dataSource?.map((item, index) => { - const items = Array.isArray(schema.items) - ? schema.items[index] || schema.items[0] - : schema.items - - const title = h( - 'span', - {}, - { - default: () => [ - h( - RecursionField, - { - props: { - schema: items, - name: index, - filterProperties: (schema) => { - if (!isIndexComponent(schema)) return false - return true - }, - onlyRenderProperties: true, - }, - }, - {} - ), - props.title || field.title, - ], - } - ) - - const extra = h( - 'span', - {}, - { - default: () => [ - h( - RecursionField, - { - props: { - schema: items, - name: index, - filterProperties: (schema) => { - if (!isOperationComponent(schema)) return false - return true - }, - onlyRenderProperties: true, - }, - }, - {} - ), - props.extra, - ], - } - ) - - const content = h( - RecursionField, - { - props: { - schema: items, - name: index, - filterProperties: (schema) => { - if (isIndexComponent(schema)) return false - if (isOperationComponent(schema)) return false - return true - }, - }, - }, - {} - ) - - return h( - ArrayBase.Item, - { - key: getKey(item, index), - props: { - index, - record: item, - }, - }, - { - default: () => - h( - Card, - { - class: [`${prefixCls}-item`], - attrs, - }, - { - default: () => content, - title: () => title, - extra: () => extra, - } - ), - } - ) - }) - } - - const renderAddition = () => { - return schema.reduceProperties((addition, schema, key) => { - if (isAdditionComponent(schema)) { - return h( - RecursionField, - { - props: { - schema, - name: key, - }, - }, - {} - ) - } - return addition - }, null) - } - - const renderEmpty = () => { - if (dataSource?.length) return - return h( - Card, - { - class: [`${prefixCls}-item`], - props: { - title: props.title || field.title, - }, - attrs: { - ...attrs, - }, - }, - { - default: () => h(Empty, {}, {}), - } - ) - } - - return h( - ArrayBase, - { props: { keyMap } }, - { - default: () => [renderEmpty(), renderItems(), renderAddition()], - } - ) - } - }, - }) -) - -export const ArrayCards = composeExport(ArrayCardsInner, { - Index: ArrayBase.Index, - SortHandle: ArrayBase.SortHandle, - Addition: ArrayBase.Addition, - Remove: ArrayBase.Remove, - MoveDown: ArrayBase.MoveDown, - MoveUp: ArrayBase.MoveUp, - useArray: ArrayBase.useArray, - useIndex: ArrayBase.useIndex, - useRecord: ArrayBase.useRecord, -}) - -export default ArrayCards diff --git a/packages/components/src/array-cards/index.tsx b/packages/components/src/array-cards/index.tsx new file mode 100644 index 0000000..4eafabb --- /dev/null +++ b/packages/components/src/array-cards/index.tsx @@ -0,0 +1,152 @@ +import type { ArrayField } from '@formily/core' +import type { ISchema } from '@formily/json-schema' +import { observer } from '@formily/reactive-vue' +import { RecursionField, useField, useFieldSchema } from '@formily/vue' +import { Card, Empty } from 'ant-design-vue' +import { defineComponent } from 'vue' +import { composeExport, usePrefixCls } from '../__builtins__' +import { ArrayBase } from '../array-base' + +const isAdditionComponent = (schema: ISchema) => { + return schema['x-component']?.indexOf('Addition') > -1 +} + +const isIndexComponent = (schema: ISchema) => { + return schema['x-component']?.indexOf('Index') > -1 +} + +const isRemoveComponent = (schema: ISchema) => { + return schema['x-component']?.indexOf('Remove') > -1 +} + +const isMoveUpComponent = (schema: ISchema) => { + return schema['x-component']?.indexOf('MoveUp') > -1 +} + +const isMoveDownComponent = (schema: ISchema) => { + return schema['x-component']?.indexOf('MoveDown') > -1 +} + +const isOperationComponent = (schema: ISchema) => { + return ( + isAdditionComponent(schema) || + isRemoveComponent(schema) || + isMoveDownComponent(schema) || + isMoveUpComponent(schema) + ) +} + +const ArrayCardsInner = observer( + defineComponent({ + name: 'ArrayCards', + props: [], + emits: ['change'], + setup(_props, { attrs }) { + const fieldRef = useField() + const schemaRef = useFieldSchema() + const prefixCls = usePrefixCls('formily-array-cards', attrs.prefixCls as string) + const { getKey, keyMap } = ArrayBase.useKey(schemaRef.value) + return () => { + const props = { ...attrs } + const field = fieldRef.value + const schema = schemaRef.value + const dataSource = Array.isArray(field.value) ? field.value : [] + if (!schema) throw new Error('can not found schema object') + const renderItems = () => { + return dataSource?.map((item, index) => { + const items = Array.isArray(schema.items) + ? schema.items[index] || schema.items[0] + : schema.items + + return ( + + + { + if (!isIndexComponent(schema)) return false + return true + }} + onlyRenderProperties + /> + {props.title || field.componentProps?.title || field.title} + + } + extra={ + + { + if (!isOperationComponent(schema)) return false + return true + }} + onlyRenderProperties + /> + {props.extra} + + } + > + { + if (isIndexComponent(schema)) return false + if (isOperationComponent(schema)) return false + return true + }} + /> + + + ) + }) + } + + const renderAddition = () => { + return schema.reduceProperties((addition, schema, key) => { + if (isAdditionComponent(schema)) { + return + } + return addition + }, null) + } + + const renderEmpty = () => { + if (dataSource?.length) return + return ( + + + + ) + } + + return ( + + {renderEmpty()} + {renderItems()} + {renderAddition()} + + ) + } + } + }) +) + +export const ArrayCards = composeExport(ArrayCardsInner, { + Index: ArrayBase.Index, + SortHandle: ArrayBase.SortHandle, + Addition: ArrayBase.Addition, + Remove: ArrayBase.Remove, + MoveDown: ArrayBase.MoveDown, + MoveUp: ArrayBase.MoveUp, + useArray: ArrayBase.useArray, + useIndex: ArrayBase.useIndex, + useRecord: ArrayBase.useRecord +}) + +export default ArrayCards diff --git a/packages/components/src/array-cards/style.less b/packages/components/src/array-cards/style.less deleted file mode 100644 index 9dbe2bd..0000000 --- a/packages/components/src/array-cards/style.less +++ /dev/null @@ -1,7 +0,0 @@ -@import '../__builtins__/styles/common.less'; - -@array-cards-prefix-cls: ~'@{formily-prefix}-array-cards'; - -.@{array-cards-prefix-cls}-item { - margin-bottom: 10px !important; -} diff --git a/packages/components/src/array-cards/style.ts b/packages/components/src/array-cards/style.ts index 4a1613a..a4f49d7 100644 --- a/packages/components/src/array-cards/style.ts +++ b/packages/components/src/array-cards/style.ts @@ -1,4 +1,17 @@ -import 'ant-design-vue/lib/card/style/index' -import 'ant-design-vue/lib/empty/style/index' -import 'ant-design-vue/lib/button/style/index' -import './style.less' +import { genStyleHook } from '../__builtins__' + +export default genStyleHook('array-cards', (token) => { + const { componentCls, antCls } = token + const arrayBase = `${antCls}-formily-array-base` + return { + [componentCls]: { + '&-item': { + marginBottom: '10px !important' + }, + + [`${arrayBase}-copy`]: { + marginInlineStart: 6 + } + } + } +}) diff --git a/packages/components/src/array-collapse/index.ts b/packages/components/src/array-collapse/index.ts deleted file mode 100644 index 659af11..0000000 --- a/packages/components/src/array-collapse/index.ts +++ /dev/null @@ -1,344 +0,0 @@ -import type { Ref } from '@vue/composition-api' -import { defineComponent, ref, watchEffect } from '@vue/composition-api' -import { Badge, Card, Collapse, Empty } from 'ant-design-vue' -import type { ArrayField } from '@formily/core' -import { - RecursionField, - useField, - useFieldSchema, - h, - Fragment, -} from '@formily/vue' -import { observer } from '@formily/reactive-vue' -import type { ISchema } from '@formily/json-schema' -import { stylePrefix } from '../__builtins__/configs' -import { ArrayBase } from '../array-base' -import { composeExport } from '../__builtins__/shared' -import type { Collapse as CollapseProps } from 'ant-design-vue/types/collapse/collapse' -import type { CollapsePanel as CollapsePanelProps } from 'ant-design-vue/types/collapse/collapse-panel' -import { toArr } from '@formily/shared' - -export interface IArrayCollapseProps extends CollapseProps { - defaultOpenPanelCount?: number -} - -const isAdditionComponent = (schema: ISchema) => { - return schema['x-component']?.indexOf('Addition') > -1 -} - -const isIndexComponent = (schema: ISchema) => { - return schema['x-component']?.indexOf('Index') > -1 -} - -const isRemoveComponent = (schema: ISchema) => { - return schema['x-component']?.indexOf('Remove') > -1 -} - -const isMoveUpComponent = (schema: ISchema) => { - return schema['x-component']?.indexOf('MoveUp') > -1 -} - -const isMoveDownComponent = (schema: ISchema) => { - return schema['x-component']?.indexOf('MoveDown') > -1 -} - -const isOperationComponent = (schema: ISchema) => { - return ( - isAdditionComponent(schema) || - isRemoveComponent(schema) || - isMoveDownComponent(schema) || - isMoveUpComponent(schema) - ) -} -const range = (count: number) => Array.from({ length: count }).map((_, i) => i) - -const takeDefaultActiveKeys = ( - dataSourceLength: number, - defaultOpenPanelCount: number -) => { - if (dataSourceLength < defaultOpenPanelCount) return range(dataSourceLength) - return range(defaultOpenPanelCount) -} - -const insertActiveKeys = (activeKeys: number[], index: number) => { - if (activeKeys.length <= index) return activeKeys.concat(index) - return activeKeys.reduce((buf, key) => { - if (key < index) return buf.concat(key) - if (key === index) return buf.concat([key, key + 1]) - return buf.concat(key + 1) - }, []) -} - -const ArrayCollapseInner = observer( - defineComponent({ - name: 'ArrayCollapse', - props: { - defaultOpenPanelCount: { - type: Number, - default: 5, - }, - }, - setup(props, { attrs }) { - const fieldRef = useField() - const schemaRef = useFieldSchema() - - const prefixCls = `${stylePrefix}-array-collapse` - const activeKeys: Ref = ref([]) - - watchEffect(() => { - const field = fieldRef.value - const dataSource = Array.isArray(field.value) ? field.value.slice() : [] - if (!field.modified && dataSource.length) { - activeKeys.value = takeDefaultActiveKeys( - dataSource.length, - props.defaultOpenPanelCount - ) - } - }) - - const { keyMap } = ArrayBase.useKey(schemaRef.value) - - return () => { - const field = fieldRef.value - const schema = schemaRef.value - const dataSource = Array.isArray(field.value) ? field.value.slice() : [] - if (!schema) throw new Error('can not found schema object') - - const renderAddition = () => { - return schema.reduceProperties((addition, schema, key) => { - if (isAdditionComponent(schema)) { - return h( - RecursionField, - { - props: { - schema, - name: key, - }, - }, - {} - ) - } - return addition - }, null) - } - - const renderEmpty = () => { - if (dataSource?.length) return - return h( - Card, - { - class: [`${prefixCls}-item`], - }, - { - default: () => h(Empty, {}, {}), - } - ) - } - - const renderItems = () => { - if (!dataSource.length) { - return null - } - - const items = dataSource?.map((item, index) => { - const items = Array.isArray(schema.items) - ? schema.items[index] || schema.items[0] - : schema.items - // const key = getKey(item, index) - const panelProps = field - .query(`${field.address}.${index}`) - .get('componentProps') - const props: CollapsePanelProps = items['x-component-props'] - const headerTitle = - panelProps?.header || props.header || field.title - const path = field.address.concat(index) - const errors = field.form.queryFeedbacks({ - type: 'error', - address: `${path}.**`, - }) - - const header = h( - ArrayBase.Item, - { - props: { - index, - record: item, - }, - }, - { - default: () => [ - h( - RecursionField, - { - props: { - schema: items, - name: index, - filterProperties: (schema) => { - if (!isIndexComponent(schema)) return false - return true - }, - onlyRenderProperties: true, - }, - }, - {} - ), - errors.length - ? h( - Badge, - { - class: [`${prefixCls}-errors-badge`], - props: { - count: errors.length, - }, - }, - { default: () => headerTitle } - ) - : headerTitle, - ], - } - ) - - const extra = h( - ArrayBase.Item, - { - props: { - index, - record: item, - }, - }, - { - default: () => [ - h( - RecursionField, - { - props: { - schema: items, - name: index, - filterProperties: (schema) => { - if (!isOperationComponent(schema)) return false - return true - }, - onlyRenderProperties: true, - }, - }, - { - default: () => [attrs.extra], - } - ), - ], - } - ) - const content = h( - RecursionField, - { - props: { - schema: items, - name: index, - filterProperties: (schema) => { - if (isIndexComponent(schema)) return false - if (isOperationComponent(schema)) return false - return true - }, - }, - }, - {} - ) - - const newProps = { ...props } - const newPanelProps = panelProps ? { ...panelProps } : {} - // 不传header这个props,采用slot的header - delete newProps.header - delete newPanelProps.header - - return h( - Collapse.Panel, - { - props: { - ...newProps, - ...newPanelProps, - key: index, - forceRender: true, - }, - }, - { - default: () => [ - h( - ArrayBase.Item, - { - props: { - index, - record: item, - // key: index, - }, - }, - { - default: () => [content], - } - ), - ], - header: () => header, - extra: () => extra, - } - ) - }) - - return h( - Collapse, - { - class: [`${prefixCls}-item`], - props: { - ...attrs, - activeKey: activeKeys.value, - }, - on: { - change: (keys: number[]) => { - activeKeys.value = toArr(keys).map(Number) - }, - }, - }, - { default: () => [items] } - ) - } - - return h( - ArrayBase, - { - props: { - keyMap, - }, - on: { - add: (index: number) => { - activeKeys.value = insertActiveKeys(activeKeys.value, index) - }, - }, - }, - { - default: () => [renderEmpty(), renderItems(), renderAddition()], - } - ) - } - }, - }) -) - -const ArrayCollapsePanel = defineComponent({ - name: 'ArrayCollapsePanel', - setup(_props, { slots }) { - return () => h(Fragment, {}, slots) - }, -}) - -export const ArrayCollapse = composeExport(ArrayCollapseInner, { - CollapsePanel: ArrayCollapsePanel, - Index: ArrayBase.Index, - SortHandle: ArrayBase.SortHandle, - Addition: ArrayBase.Addition, - Remove: ArrayBase.Remove, - MoveDown: ArrayBase.MoveDown, - MoveUp: ArrayBase.MoveUp, - useArray: ArrayBase.useArray, - useIndex: ArrayBase.useIndex, - useRecord: ArrayBase.useRecord, -}) - -export default ArrayCollapse diff --git a/packages/components/src/array-collapse/index.tsx b/packages/components/src/array-collapse/index.tsx new file mode 100644 index 0000000..3aacbe5 --- /dev/null +++ b/packages/components/src/array-collapse/index.tsx @@ -0,0 +1,249 @@ +import type { ArrayField } from '@formily/core' +import type { ISchema } from '@formily/json-schema' +import { observer } from '@formily/reactive-vue' +import { toArr } from '@formily/shared' +import { RecursionField, useField, useFieldSchema } from '@formily/vue' +import type { CollapsePanelProps, CollapseProps } from 'ant-design-vue' +import { Badge, Card, Collapse, Empty } from 'ant-design-vue' +import type { Ref } from 'vue' +import { defineComponent, ref, watchEffect } from 'vue' +import { composeExport, usePrefixCls } from '../__builtins__' +import { ArrayBase } from '../array-base' +import useStyle from './style' + +export interface IArrayCollapseProps extends CollapseProps { + defaultOpenPanelCount?: number +} + +const isAdditionComponent = (schema: ISchema) => { + return schema['x-component']?.indexOf('Addition') > -1 +} + +const isIndexComponent = (schema: ISchema) => { + return schema['x-component']?.indexOf('Index') > -1 +} + +const isRemoveComponent = (schema: ISchema) => { + return schema['x-component']?.indexOf('Remove') > -1 +} + +const isMoveUpComponent = (schema: ISchema) => { + return schema['x-component']?.indexOf('MoveUp') > -1 +} + +const isMoveDownComponent = (schema: ISchema) => { + return schema['x-component']?.indexOf('MoveDown') > -1 +} + +const isOperationComponent = (schema: ISchema) => { + return ( + isAdditionComponent(schema) || + isRemoveComponent(schema) || + isMoveDownComponent(schema) || + isMoveUpComponent(schema) + ) +} +const range = (count: number) => Array.from({ length: count }).map((_, i) => i) + +const takeDefaultActiveKeys = (dataSourceLength: number, defaultOpenPanelCount: number) => { + if (dataSourceLength < defaultOpenPanelCount) return range(dataSourceLength) + return range(defaultOpenPanelCount) +} + +const insertActiveKeys = (activeKeys: number[], index: number) => { + if (activeKeys.length <= index) return activeKeys.concat(index) + return activeKeys.reduce((buf, key) => { + if (key < index) return buf.concat(key) + if (key === index) return buf.concat([key, key + 1]) + return buf.concat(key + 1) + }, []) +} + +const ArrayCollapseInner = observer( + defineComponent({ + name: 'ArrayCollapse', + props: { + defaultOpenPanelCount: { + type: Number, + default: 5 + } + }, + emits: ['change'], + setup(props, { attrs }) { + const fieldRef = useField() + const schemaRef = useFieldSchema() + + const prefixCls = usePrefixCls('formily-array-collapse', attrs.prefixCls as string) + const activeKeys: Ref = ref([]) + const [wrapSSR, hashId] = useStyle(prefixCls) + + watchEffect(() => { + const field = fieldRef.value + const dataSource = Array.isArray(field.value) ? field.value.slice() : [] + if (!field.modified && dataSource.length) { + activeKeys.value = takeDefaultActiveKeys(dataSource.length, props.defaultOpenPanelCount) + } + }) + + const { keyMap } = ArrayBase.useKey(schemaRef.value) + + return () => { + const field = fieldRef.value + const schema = schemaRef.value + const dataSource = Array.isArray(field.value) ? field.value.slice() : [] + if (!schema) throw new Error('can not found schema object') + + const renderAddition = () => { + return schema.reduceProperties((addition, schema, key) => { + if (isAdditionComponent(schema)) { + return + } + return addition + }, null) + } + + const renderEmpty = () => { + if (dataSource?.length) return + return ( + + + + ) + } + + const renderItems = () => { + if (!dataSource.length) { + return null + } + + const items = dataSource?.map((item, index) => { + const items = Array.isArray(schema.items) + ? schema.items[index] || schema.items[0] + : schema.items + const panelProps = field.query(`${field.address}.${index}`).get('componentProps') + const props: CollapsePanelProps = items['x-component-props'] + const headerTitle = panelProps?.header || props.header || field.title + const path = field.address.concat(index) + const errors = field.form.queryFeedbacks({ + type: 'error', + address: `${path}.**` + }) + + const header = ( + + { + if (!isIndexComponent(schema)) return false + return true + }} + onlyRenderProperties + > + {errors.length ? ( + + {headerTitle} + + ) : ( + headerTitle + )} + + ) + + const extra = ( + + { + if (!isOperationComponent(schema)) return false + return true + }} + onlyRenderProperties + > + + ) + + const content = ( + { + if (isIndexComponent(schema)) return false + if (isOperationComponent(schema)) return false + return true + }} + > + ) + + const newProps = { ...props } + const newPanelProps = panelProps ? { ...panelProps } : {} + + return ( + + + {content} + + + ) + }) + + return ( + { + activeKeys.value = toArr(keys).map(Number) + }} + > + {items} + + ) + } + + return wrapSSR( + { + activeKeys.value = insertActiveKeys(activeKeys.value, index) + }} + > + {renderEmpty()} + {renderItems()} + {renderAddition()} + + ) + } + } + }) +) + +const ArrayCollapsePanel = defineComponent({ + name: 'ArrayCollapsePanel', + setup() { + return () => <>{null} + } +}) + +export const ArrayCollapse = composeExport(ArrayCollapseInner, { + CollapsePanel: ArrayCollapsePanel, + Index: ArrayBase.Index, + SortHandle: ArrayBase.SortHandle, + Addition: ArrayBase.Addition, + Remove: ArrayBase.Remove, + MoveDown: ArrayBase.MoveDown, + MoveUp: ArrayBase.MoveUp, + useArray: ArrayBase.useArray, + useIndex: ArrayBase.useIndex, + useRecord: ArrayBase.useRecord +}) + +export default ArrayCollapse diff --git a/packages/components/src/array-collapse/style.less b/packages/components/src/array-collapse/style.less deleted file mode 100644 index 78594c3..0000000 --- a/packages/components/src/array-collapse/style.less +++ /dev/null @@ -1,7 +0,0 @@ -@import '../__builtins__/styles/common.less'; - -@array-collapse-prefix-cls: ~'@{formily-prefix}-array-collapse'; - -.@{array-collapse-prefix-cls}-item { - margin-bottom: 10px !important; -} diff --git a/packages/components/src/array-collapse/style.ts b/packages/components/src/array-collapse/style.ts index 71e778a..c7a8ae4 100644 --- a/packages/components/src/array-collapse/style.ts +++ b/packages/components/src/array-collapse/style.ts @@ -1,6 +1,11 @@ -import 'ant-design-vue/lib/collapse/style/index' -import 'ant-design-vue/lib/card/style/index' -import 'ant-design-vue/lib/badge/style/index' -import 'ant-design-vue/lib/empty/style/index' - -import './style.less' +import { genStyleHook } from './../__builtins__' +export default genStyleHook('', (token) => { + const { componentCls } = token + return { + [componentCls]: { + '&-item': { + marginBottom: '10px !important' + } + } + } +}) diff --git a/packages/components/src/array-items/index.ts b/packages/components/src/array-items/index.ts deleted file mode 100644 index 5105f6f..0000000 --- a/packages/components/src/array-items/index.ts +++ /dev/null @@ -1,186 +0,0 @@ -import { defineComponent } from '@vue/composition-api' -import type { ArrayField } from '@formily/core' -import { useField, useFieldSchema, RecursionField, h } from '@formily/vue' -import { observer } from '@formily/reactive-vue' -import type { ISchema } from '@formily/json-schema' -import { stylePrefix } from '../__builtins__/configs' -import { ArrayBase } from '../array-base' -import { SlickList, SlickItem } from 'vue-slicksort' -import { composeExport } from '../__builtins__/shared' - -const isAdditionComponent = (schema: ISchema) => { - return schema['x-component']?.indexOf('Addition') > -1 -} - -export interface IArrayItemsItemProps { - type?: 'card' | 'divide' -} - -const ArrayItemsInner = observer( - defineComponent({ - name: 'ArrayItems', - setup() { - const fieldRef = useField() - const schemaRef = useFieldSchema() - - const prefixCls = `${stylePrefix}-array-items` - const { getKey, keyMap } = ArrayBase.useKey(schemaRef.value) - - return () => { - const field = fieldRef.value - const schema = schemaRef.value - const dataSource = Array.isArray(field.value) ? field.value.slice() : [] - if (!schema) throw new Error('can not found schema object') - - const renderItems = () => { - const items = dataSource?.map((item, index) => { - const items = Array.isArray(schema.items) - ? schema.items[index] || schema.items[0] - : schema.items - const key = getKey(item, index) - return h( - ArrayBase.Item, - { - key, - props: { - index, - record: item, - }, - }, - { - default: () => - h( - SlickItem, - { - class: [`${prefixCls}-item-inner`], - props: { - index, - }, - key, - }, - { - default: () => - h( - RecursionField, - { - props: { - schema: items, - name: index, - }, - }, - {} - ), - } - ), - } - ) - }) - - return h( - SlickList, - { - class: [`${prefixCls}-list`], - props: { - useDragHandle: true, - lockAxis: 'y', - helperClass: `${prefixCls}-sort-helper`, - value: [], - }, - on: { - 'sort-end': ({ oldIndex, newIndex }) => { - if (Array.isArray(keyMap)) { - keyMap.splice(newIndex, 0, keyMap.splice(oldIndex, 1)[0]) - } - field.move(oldIndex, newIndex) - }, - }, - }, - { default: () => items } - ) - } - - const renderAddition = () => { - return schema.reduceProperties((addition, schema, key) => { - if (isAdditionComponent(schema)) { - return h( - RecursionField, - { - props: { - schema, - name: key, - }, - }, - {} - ) - } - return addition - }, null) - } - - return h( - ArrayBase, - { - props: { - keyMap, - }, - }, - { - default: () => - h( - 'div', - { - class: [prefixCls], - on: { - // eslint-disable-next-line @typescript-eslint/no-empty-function - change: () => {}, - }, - }, - { - default: () => [renderItems(), renderAddition()], - } - ), - } - ) - } - }, - }) -) - -const ArrayItemsItem = defineComponent({ - name: 'ArrayItemsItem', - props: ['type'], - setup(props, { attrs, slots }) { - const prefixCls = `${stylePrefix}-array-items` - - return () => - h( - 'div', - { - class: [`${prefixCls}-${props.type || 'card'}`], - attrs: { - ...attrs, - }, - on: { - // eslint-disable-next-line @typescript-eslint/no-empty-function - change: () => {}, - }, - }, - slots - ) - }, -}) - -export const ArrayItems = composeExport(ArrayItemsInner, { - Item: ArrayItemsItem, - Index: ArrayBase.Index, - SortHandle: ArrayBase.SortHandle, - Addition: ArrayBase.Addition, - Remove: ArrayBase.Remove, - MoveDown: ArrayBase.MoveDown, - MoveUp: ArrayBase.MoveUp, - useArray: ArrayBase.useArray, - useIndex: ArrayBase.useIndex, - useRecord: ArrayBase.useRecord, -}) - -export default ArrayItems diff --git a/packages/components/src/array-items/index.tsx b/packages/components/src/array-items/index.tsx new file mode 100644 index 0000000..140d943 --- /dev/null +++ b/packages/components/src/array-items/index.tsx @@ -0,0 +1,121 @@ +import type { ArrayField } from '@formily/core' +import type { ISchema } from '@formily/json-schema' +import { observer } from '@formily/reactive-vue' +import { RecursionField, useField, useFieldSchema } from '@formily/vue' +import type { DefineComponent } from 'vue' +import { defineComponent } from 'vue' +import { SlickList as _SlickList, SlickItem as _SlickItem } from 'vue-slicksort' +import { composeExport, usePrefixCls } from '../__builtins__' +import { ArrayBase } from '../array-base' +import useStyle from './style' + +const SlickItem = _SlickItem as DefineComponent +const SlickList = _SlickList as DefineComponent + +const isAdditionComponent = (schema: ISchema) => { + return schema['x-component']?.indexOf('Addition') > -1 +} + +export interface IArrayItemsItemProps { + type?: 'card' | 'divide' +} + +const ArrayItemsInner = observer( + defineComponent({ + name: 'ArrayItems', + setup(_, { attrs }) { + const fieldRef = useField() + const schemaRef = useFieldSchema() + + const prefixCls = usePrefixCls('formily-array-items', attrs.prefixCls as string) + const [wrapSSR, hashId] = useStyle(prefixCls) + const { getKey, keyMap } = ArrayBase.useKey(schemaRef.value) + + return () => { + const field = fieldRef.value + const schema = schemaRef.value + const dataSource = Array.isArray(field.value) ? field.value.slice() : [] + if (!schema) throw new Error('can not found schema object') + + const renderItems = () => { + return ( + { + if (Array.isArray(keyMap)) { + keyMap.splice(newIndex, 0, keyMap.splice(oldIndex, 1)[0]) + } + field.move(oldIndex, newIndex) + }} + > + {dataSource.map((item, index) => { + const items = Array.isArray(schema.items) + ? schema.items[index] || schema.items[0] + : schema.items + const key = getKey(item, index) + return ( + + + + + + ) + })} + + ) + } + + const renderAddition = () => { + return schema.reduceProperties((addition, schema, key) => { + if (isAdditionComponent(schema)) { + return + } + return addition + }, null) + } + + return wrapSSR( + +
+ {renderItems()} + {renderAddition()} +
+
+ ) + } + } + }) +) + +const ArrayItemsItem = defineComponent({ + name: 'ArrayItemsItem', + props: ['type'], + setup(props, { attrs, slots }) { + const prefixCls = usePrefixCls('formily-array-items', attrs.prefixCls as string) + + return () => ( +
+ {slots.default?.()} +
+ ) + } +}) + +export const ArrayItems = composeExport(ArrayItemsInner, { + Item: ArrayItemsItem, + Index: ArrayBase.Index, + SortHandle: ArrayBase.SortHandle, + Addition: ArrayBase.Addition, + Remove: ArrayBase.Remove, + MoveDown: ArrayBase.MoveDown, + MoveUp: ArrayBase.MoveUp, + useArray: ArrayBase.useArray, + useIndex: ArrayBase.useIndex, + useRecord: ArrayBase.useRecord +}) + +export default ArrayItems diff --git a/packages/components/src/array-items/style.less b/packages/components/src/array-items/style.less deleted file mode 100644 index df0a51b..0000000 --- a/packages/components/src/array-items/style.less +++ /dev/null @@ -1,58 +0,0 @@ -@import '../__builtins__/styles/common.less'; - -@array-items-prefix-cls: ~'@{formily-prefix}-array-items'; - -.@{array-items-prefix-cls}-item-inner { - visibility: visible; -} - -.@{array-items-prefix-cls}-card { - display: flex; - border: 1px solid @border-color-split; - margin-bottom: 10px; - padding: 3px 6px; - background: @card-background; - justify-content: space-between; - color: @text-color; - - .@{ant-prefix}-formily-item:not(.@{ant-prefix}-formily-item-feedback-layout-popover) { - margin-bottom: 0 !important; - - .@{ant-prefix}-formily-item-help { - position: absolute; - font-size: 12px; - top: 100%; - background: @card-background; - width: 100%; - margin-top: 3px; - padding: 3px; - z-index: 1; - border-radius: 3px; - box-shadow: 0 0 10px @border-color-split; - } - } -} - -.@{array-items-prefix-cls}-divide { - display: flex; - border-bottom: 1px solid @border-color-split; - padding: 10px 0; - justify-content: space-between; - - .@{ant-prefix}-formily-item:not(.@{ant-prefix}-formily-item-feedback-layout-popover) { - margin-bottom: 0 !important; - - .@{ant-prefix}-formily-item-help { - position: absolute; - font-size: 12px; - top: 100%; - background: @card-background; - width: 100%; - margin-top: 3px; - padding: 3px; - z-index: 1; - border-radius: 3px; - box-shadow: 0 0 10px @border-color-split; - } - } -} diff --git a/packages/components/src/array-items/style.ts b/packages/components/src/array-items/style.ts index 1d62fa9..863787c 100644 --- a/packages/components/src/array-items/style.ts +++ b/packages/components/src/array-items/style.ts @@ -1 +1,68 @@ -import './style.less' +import { genStyleHook } from './../__builtins__' +export default genStyleHook('array-items', (token) => { + const { componentCls, antCls, colorBgBase, fontSizeSM, colorBorder, colorText } = token + + const itemCls = `${antCls}-formily-form-item` + return { + [componentCls]: { + [`${componentCls}-item-inner`]: { + visibility: 'visible' + }, + + '&-item': { + zIndex: 100000 + }, + + '&-card': { + display: 'flex', + border: `1px solid ${colorBorder}`, + marginBottom: 10, + padding: '3px 6px', + background: colorBgBase, + justifyContent: 'space-between', + color: colorText, + + [`${itemCls}:not(${itemCls}-feedback-layout-popover)`]: { + marginBottom: '0 !important', + + [`${itemCls}-help`]: { + position: 'absolute', + fontSize: fontSizeSM, + top: '100%', + background: colorBgBase, + width: '100%', + marginTop: 3, + padding: 3, + zIndex: 1, + borderRadius: 3, + boxShadow: `0 0 10px ${colorBorder}` + } + } + }, + + '&-divide': { + display: 'flex', + borderBottom: `1px solid ${colorBorder}`, + padding: '10px 0', + justifyContent: 'space-between', + + [`${itemCls}:not(${itemCls}-feedback-layout-popover)`]: { + marginBottom: '0 !important', + + [`${itemCls}-help`]: { + position: 'absolute', + fontSize: fontSizeSM, + top: '100%', + background: colorBgBase, + width: '100%', + marginTop: 3, + padding: 3, + zIndex: 1, + borderRadius: 3, + boxShadow: `0 0 10px ${colorBorder}` + } + } + } + } + } +}) diff --git a/packages/components/src/array-table/index.ts b/packages/components/src/array-table/index.ts deleted file mode 100644 index a23f3a2..0000000 --- a/packages/components/src/array-table/index.ts +++ /dev/null @@ -1,487 +0,0 @@ -import type { Ref } from '@vue/composition-api' -import { defineComponent, ref, computed } from '@vue/composition-api' -import type { GeneralField, FieldDisplayTypes, ArrayField } from '@formily/core' -import { - useField, - useFieldSchema, - h, - Fragment, - RecursionField, -} from '@formily/vue' -import { observer } from '@formily/reactive-vue' -import { isArr, isBool } from '@formily/shared' -import { ArrayBase } from '../array-base' -import { stylePrefix } from '../__builtins__/configs' -import { composeExport } from '../__builtins__/shared' -import type { Schema } from '@formily/json-schema' -import type { VNode } from 'vue' -import { Table, Pagination, Select, Badge } from 'ant-design-vue' -import { Space } from '../space' -import type { Table as TableProps } from 'ant-design-vue/types/table/table' -import type { Column as ColumnProps } from 'ant-design-vue/types/table/column' -import type { Pagination as PaginationProps } from 'ant-design-vue/types/pagination' -import type { Select as SelectProps } from 'ant-design-vue/types/select/select' - -interface ObservableColumnSource { - field: GeneralField - columnProps: ColumnProps - schema: Schema - display: FieldDisplayTypes - name: string -} - -interface IArrayTablePaginationProps extends PaginationProps { - dataSource?: any[] -} - -interface IStatusSelectProps extends SelectProps { - pageSize?: number - onChange?: (value: any, option: any | any[]) => void -} - -const isColumnComponent = (schema: Schema) => { - return schema['x-component']?.indexOf('Column') > -1 -} - -const isOperationsComponent = (schema: Schema) => { - return schema['x-component']?.indexOf('Operations') > -1 -} - -const isAdditionComponent = (schema: Schema) => { - return schema['x-component']?.indexOf('Addition') > -1 -} - -const useArrayTableSources = ( - arrayFieldRef: Ref, - schemaRef: Ref -) => { - const arrayField = arrayFieldRef.value - const parseSources = (schema: Schema): ObservableColumnSource[] => { - if ( - isColumnComponent(schema) || - isOperationsComponent(schema) || - isAdditionComponent(schema) - ) { - if (!schema['x-component-props']?.['dataIndex'] && !schema['name']) - return [] - const name = schema['x-component-props']?.['dataIndex'] || schema['name'] - const field = arrayField.query(arrayField.address.concat(name)).take() - const columnProps = - field?.component?.[1] || schema['x-component-props'] || {} - const display = field?.display || schema['x-display'] - return [ - { - name, - display, - field, - schema, - columnProps, - }, - ] - } else if (schema.properties) { - return schema.reduceProperties((buf, schema) => { - return buf.concat(parseSources(schema)) - }, []) - } - } - - const parseArrayItems = (schema: Schema['items']) => { - if (!schema) return [] - const sources: ObservableColumnSource[] = [] - const items = isArr(schema) ? schema : [schema] - return items.reduce((columns, schema) => { - const item = parseSources(schema) - if (item) { - return columns.concat(item) - } - return columns - }, sources) - } - - if (!schemaRef.value) throw new Error('can not found schema object') - - return parseArrayItems(schemaRef.value.items) -} - -const useArrayTableColumns = ( - dataSource: any[], - sources: ObservableColumnSource[] -): ColumnProps[] => { - return sources.reduce((buf, { name, columnProps, schema, display }, key) => { - if (display !== 'visible') return buf - if (!isColumnComponent(schema)) return buf - return buf.concat({ - ...columnProps, - key, - dataIndex: name, - customRender: (value: any, record: any) => { - const index = dataSource.indexOf(record) - const children = h( - ArrayBase.Item, - { - key: `${key}${index}`, - props: { - index, - record, - }, - }, - { - default: () => - h( - RecursionField, - { - props: { - schema, - name: index, - onlyRenderProperties: true, - }, - }, - {} - ), - } - ) - return children - }, - }) - }, []) -} - -const useAddition = () => { - const schema = useFieldSchema() - return schema.value.reduceProperties((addition, schema, key) => { - if (isAdditionComponent(schema)) { - return h( - RecursionField, - { - props: { - schema, - name: key, - }, - }, - {} - ) - } - return addition - }, null) -} - -const schedulerRequest = { - request: null, -} - -const StatusSelect = observer( - defineComponent({ - props: ['value', 'options', 'pageSize', 'onChange'], - setup(props) { - const fieldRef = useField() - const prefixCls = `${stylePrefix}-array-table` - - return () => { - const field = fieldRef.value - const width = String(props.options?.length).length * 15 - const errors = field.errors - const parseIndex = (address: string) => { - return Number( - address - .slice(address.indexOf(field.address.toString()) + 1) - .match(/(\d+)/)?.[1] - ) - } - return h( - Select, - { - style: { - width: `${width < 60 ? 60 : width}px`, - }, - class: [ - `${prefixCls}-status-select`, - { - 'has-error': errors?.length, - }, - ], - props: { - value: props.value, - virtual: true, - }, - on: { - change: props.onChange, - }, - }, - { - default: () => { - return props.options?.map(({ label, value }) => { - const hasError = errors.some(({ address }) => { - const currentIndex = parseIndex(address) - const startIndex = (value - 1) * props.pageSize - const endIndex = value * props.pageSize - return currentIndex >= startIndex && currentIndex <= endIndex - }) - return h( - Select.Option, - { - key: value, - props: { - label, - value, - }, - }, - { - default: () => { - if (hasError) { - return h( - Badge, - { props: { dot: true } }, - { default: () => label } - ) - } - return label - }, - } - ) - }) - }, - } - ) - } - }, - }), - { - scheduler: (update) => { - clearTimeout(schedulerRequest.request) - schedulerRequest.request = setTimeout(() => { - update() - }, 100) - }, - } -) - -const ArrayTablePagination = defineComponent({ - inheritAttrs: false, - setup(_props, { attrs, slots }) { - const prefixCls = `${stylePrefix}-array-table` - const current = ref(1) - return () => { - const props = attrs as unknown as IArrayTablePaginationProps - const pageSize = computed(() => props.pageSize || 10) - const dataSource = computed(() => props.dataSource || []) - const startIndex = computed(() => (current.value - 1) * pageSize.value) - const size = computed(() => props.size || 'default') - const endIndex = computed(() => startIndex.value + pageSize.value - 1) - const total = computed(() => dataSource.value?.length || 0) - const totalPage = computed(() => Math.ceil(total.value / pageSize.value)) - const pages = computed(() => - Array.from(new Array(totalPage.value)).map((_, index) => { - const page = index + 1 - return { - label: page, - value: page, - } - }) - ) - - const handleChange = (val: number) => { - current.value = val - } - - const renderPagination = () => { - if (totalPage.value <= 1) return - return h( - 'div', - { - class: [`${prefixCls}-pagination`], - }, - { - default: () => - h( - Space, - {}, - { - default: () => [ - h( - StatusSelect, - { - props: { - value: current.value, - onChange: handleChange, - pageSize: pageSize.value, - options: pages.value, - notFoundContent: false, - }, - }, - {} - ), - h( - Pagination, - { - props: { - ...props, - pageSize: pageSize.value, - current: current.value, - size: size.value, - total: total.value, - showSizeChanger: false, - }, - on: { - change: handleChange, - }, - }, - {} - ), - ], - } - ), - } - ) - } - return h( - Fragment, - {}, - { - default: () => - slots?.default?.( - dataSource.value?.slice(startIndex.value, endIndex.value + 1), - renderPagination - ), - } - ) - } - }, -}) - -const ArrayTableInner = observer( - defineComponent({ - name: 'ArrayTable', - inheritAttrs: false, - setup(_props, { attrs, slots, listeners }) { - const fieldRef = useField() - const schemaRef = useFieldSchema() - const prefixCls = `${stylePrefix}-array-table` - const { getKey, keyMap } = ArrayBase.useKey(schemaRef.value) - - const defaultRowKey = (record: any) => { - return getKey(record) - } - - return () => { - const props = attrs as unknown as TableProps - const field = fieldRef.value - const dataSource = Array.isArray(field.value) ? field.value.slice() : [] - const sources = useArrayTableSources(fieldRef, schemaRef) - const columns = useArrayTableColumns(dataSource, sources) - const pagination = isBool(props.pagination) ? {} : props.pagination - - const renderStateManager = () => - sources.map((column, key) => { - //专门用来承接对Column的状态管理 - if (!isColumnComponent(column.schema)) return - return h( - RecursionField, - { - props: { - name: column.name, - schema: column.schema, - onlyRenderSelf: true, - key, - }, - key, - }, - {} - ) - }) - - const renderTable = (dataSource?: any[], pager?: () => VNode) => { - return h( - 'div', - { - class: prefixCls, - }, - { - default: () => - h( - ArrayBase, - { - props: { - keyMap, - }, - }, - { - default: () => [ - h( - Table, - { - props: { - ...attrs, - size: 'small', - bordered: true, - rowKey: defaultRowKey, - pagination: false, - columns, - dataSource, - }, - on: listeners, - }, - { ...slots } - ), - h( - 'div', - { - style: { - marginTop: '5px', - marginBottom: '5px', - }, - }, - { - default: () => [pager?.()], - } - ), - renderStateManager(), - useAddition(), - ], - } - ), - } - ) - } - - if (!pagination) { - return renderTable(dataSource, null) - } - - return h( - ArrayTablePagination, - { - attrs: { - ...pagination, - dataSource, - }, - }, - { - default: renderTable, - } - ) - } - }, - }) -) - -const ArrayTableColumn = defineComponent({ - name: 'ArrayTableColumn', - render(createElement) { - return createElement() - }, -}) - -export const ArrayTable = composeExport(ArrayTableInner, { - Column: ArrayTableColumn, - Index: ArrayBase.Index, - SortHandle: ArrayBase.SortHandle, - Addition: ArrayBase.Addition, - Remove: ArrayBase.Remove, - MoveDown: ArrayBase.MoveDown, - MoveUp: ArrayBase.MoveUp, - useArray: ArrayBase.useArray, - useIndex: ArrayBase.useIndex, - useRecord: ArrayBase.useRecord, -}) - -export default ArrayTable diff --git a/packages/components/src/array-table/index.tsx b/packages/components/src/array-table/index.tsx new file mode 100644 index 0000000..6af146a --- /dev/null +++ b/packages/components/src/array-table/index.tsx @@ -0,0 +1,348 @@ +import type { ArrayField, FieldDisplayTypes, GeneralField } from '@formily/core' +import type { Schema } from '@formily/json-schema' +import { observer } from '@formily/reactive-vue' +import { isArr, isBool } from '@formily/shared' +import { RecursionField, useField, useFieldSchema } from '@formily/vue' +import type { PaginationProps } from 'ant-design-vue' +import { Badge, Pagination, Select, Table } from 'ant-design-vue' +import type { ColumnProps, TableProps } from 'ant-design-vue/es/table' +import type { Ref, VNode } from 'vue' +import { computed, defineComponent, ref } from 'vue' +import { FieldContext, composeExport, usePrefixCls } from '../__builtins__' +import { ArrayBase } from '../array-base' +import { Space } from '../space' +import useStyle from './style' + +interface ObservableColumnSource { + field: GeneralField + columnProps: ColumnProps + schema: Schema + display: FieldDisplayTypes + name: string +} + +interface IArrayTablePaginationProps extends PaginationProps { + dataSource?: any[] +} + +const isColumnComponent = (schema: Schema) => { + return schema['x-component']?.indexOf('Column') > -1 +} + +const isOperationsComponent = (schema: Schema) => { + return schema['x-component']?.indexOf('Operations') > -1 +} + +const isAdditionComponent = (schema: Schema) => { + return schema['x-component']?.indexOf('Addition') > -1 +} + +const useArrayTableSources = (arrayFieldRef: Ref, schemaRef: Ref) => { + const arrayField = arrayFieldRef.value + const parseSources = (schema: Schema): ObservableColumnSource[] => { + if (isColumnComponent(schema) || isOperationsComponent(schema) || isAdditionComponent(schema)) { + if (!schema['x-component-props']?.['dataIndex'] && !schema['name']) return [] + const name = schema['x-component-props']?.['dataIndex'] || schema['name'] + const field = arrayField.query(arrayField.address.concat(name)).take() + const columnProps = field?.component?.[1] || schema['x-component-props'] || {} + const display = field?.display || schema['x-display'] + return [ + { + name, + display, + field, + schema, + columnProps + } + ] + } else if (schema.properties) { + return schema.reduceProperties((buf, schema) => { + return buf.concat(parseSources(schema)) + }, []) + } + } + + const parseArrayItems = (schema: Schema['items']) => { + if (!schema) return [] + const sources: ObservableColumnSource[] = [] + const items = isArr(schema) ? schema : [schema] + return items.reduce((columns, schema) => { + const item = parseSources(schema) + if (item) { + return columns.concat(item) + } + return columns + }, sources) + } + + if (!schemaRef.value) throw new Error('can not found schema object') + + return parseArrayItems(schemaRef.value.items) +} + +const useArrayTableColumns = ( + dataSource: any[], + sources: ObservableColumnSource[] +): ColumnProps[] => { + return sources.reduce( + (buf, { name, columnProps, schema, display, field }, key) => { + if (display !== 'visible') return buf + if (!isColumnComponent(schema)) return buf + return buf.concat({ + ...columnProps, + dataIndex: name, + customRender: ({ record }) => { + const index = dataSource.indexOf(record) + const children = ( + + + + + + ) + + return children + } + }) + }, + [] + ) +} + +const useAddition = () => { + const schema = useFieldSchema() + return schema.value.reduceProperties((addition, schema, key) => { + if (isAdditionComponent(schema)) { + return + } + return addition + }, null) +} + +const schedulerRequest = { + request: null +} + +const StatusSelect = observer( + defineComponent({ + props: ['value', 'options', 'pageSize', 'onChange'], + setup(props, { attrs }) { + const fieldRef = useField() + const prefixCls = usePrefixCls('formily-array-table', attrs.prefixCls as string) + const [wrapSSR, hashId] = useStyle(prefixCls) + + return () => { + const field = fieldRef.value + const width = String(props.options?.length).length * 15 + const errors = field.errors + const parseIndex = (address: string) => { + return Number( + address.slice(address.indexOf(field.address.toString()) + 1).match(/(\d+)/)?.[1] + ) + } + return wrapSSR( + + ) + } + } + }), + { + scheduler: (update) => { + clearTimeout(schedulerRequest.request) + schedulerRequest.request = setTimeout(() => { + update() + }, 100) + } + } +) + +const ArrayTablePagination = defineComponent({ + inheritAttrs: false, + setup(_props, { attrs, slots }) { + const prefixCls = usePrefixCls('formily-array-table', attrs.prefixCls as string) + const current = ref(1) + return () => { + const props = attrs as unknown as IArrayTablePaginationProps + const pageSize = computed(() => props.pageSize || 10) + const dataSource = computed(() => props.dataSource || []) + const startIndex = computed(() => (current.value - 1) * pageSize.value) + const size = computed(() => props.size || 'default') + const endIndex = computed(() => startIndex.value + pageSize.value - 1) + const total = computed(() => dataSource.value?.length || 0) + const totalPage = computed(() => Math.ceil(total.value / pageSize.value)) + const pages = computed(() => + Array.from(new Array(totalPage.value)).map((_, index) => { + const page = index + 1 + return { + label: page, + value: page + } + }) + ) + + const handleChange = (val: number) => { + current.value = val + } + + const renderPagination = () => { + if (totalPage.value <= 1) return + return ( +
+ + + + +
+ ) + } + return ( + <> + {slots.default?.( + dataSource.value?.slice(startIndex.value, endIndex.value + 1), + renderPagination + )} + + ) + } + } +}) + +const ArrayTableInner = observer( + defineComponent({ + name: 'ArrayTable', + inheritAttrs: false, + setup(_props, { attrs, slots }) { + const fieldRef = useField() + const schemaRef = useFieldSchema() + const prefixCls = usePrefixCls('formily-array-table', attrs.prefixCls as string) + const [wrapSSR, hashId] = useStyle(prefixCls) + const { getKey, keyMap } = ArrayBase.useKey(schemaRef.value) + + const defaultRowKey = (record: any) => { + return getKey(record) + } + + return () => { + const props = attrs as unknown as TableProps + const field = fieldRef.value + const dataSource = Array.isArray(field.value) ? field.value.slice() : [] + const sources = useArrayTableSources(fieldRef, schemaRef) + const columns = useArrayTableColumns(dataSource, sources) + const pagination = isBool(props.pagination) ? {} : props.pagination + + const renderStateManager = () => + sources.map((column, key) => { + const { name, schema } = column + //专门用来承接对Column的状态管理 + if (!isColumnComponent(schema)) return + return + }) + + const renderTable = (dataSource?: any[], pager?: () => VNode) => { + return wrapSSR( +
+ + + {slots.default?.()} +
+ {renderStateManager()} +
+ {pager?.()} +
+ {useAddition()} +
+
+ ) + } + + if (!pagination) { + return renderTable(dataSource, null) + } + + return ( + + {(dataSource: any[], pager: () => VNode) => { + return renderTable(dataSource, pager) + }} + + ) + } + } + }) +) + +const ArrayTableColumn = defineComponent({ + name: 'ArrayTableColumn', + render() { + return <>{null} + } +}) + +export const ArrayTable = composeExport(ArrayTableInner, { + Column: ArrayTableColumn, + Index: ArrayBase.Index, + SortHandle: ArrayBase.SortHandle, + Addition: ArrayBase.Addition, + Remove: ArrayBase.Remove, + MoveDown: ArrayBase.MoveDown, + MoveUp: ArrayBase.MoveUp, + useArray: ArrayBase.useArray, + useIndex: ArrayBase.useIndex, + useRecord: ArrayBase.useRecord +}) + +export default ArrayTable diff --git a/packages/components/src/array-table/style.less b/packages/components/src/array-table/style.less index 266f37b..e69de29 100644 --- a/packages/components/src/array-table/style.less +++ b/packages/components/src/array-table/style.less @@ -1,48 +0,0 @@ -@import '../__builtins__/styles/common.less'; - -@array-table-prefix-cls: ~'@{formily-prefix}-array-table'; - -.@{array-table-prefix-cls} { - .@{array-table-prefix-cls}-pagination { - display: flex; - justify-content: center; - - .@{array-table-prefix-cls}-status-select.has-error { - .@{ant-prefix}-select-selector { - border-color: @error-color !important; - } - } - } - - .@{ant-prefix}-table { - td { - visibility: visible; - - .@{formily-prefix}-form-item:not(.@{formily-prefix}-form-item-feedback-layout-popover) { - margin-bottom: 0 !important; - - .@{formily-prefix}-form-item-help { - position: absolute; - font-size: 12px; - top: 100%; - background: #fff; - width: 100%; - margin-top: 3px; - padding: 3px; - z-index: 1; - border-radius: 3px; - box-shadow: 0 0 10px #eee; - animation: none; - transform: translateY(0); - opacity: 1; - } - } - } - } - - .@{array-table-prefix-cls}-sort-helper { - background: #fff; - border: 1px solid #eee; - z-index: 10; - } -} diff --git a/packages/components/src/array-table/style.ts b/packages/components/src/array-table/style.ts index 981ebdb..90ceff8 100644 --- a/packages/components/src/array-table/style.ts +++ b/packages/components/src/array-table/style.ts @@ -1,8 +1,59 @@ -import 'ant-design-vue/lib/table/style/index' -import 'ant-design-vue/lib/pagination/style/index' -import 'ant-design-vue/lib/button/style/index' -import 'ant-design-vue/lib/space/style/index' -import 'ant-design-vue/lib/select/style/index' -import 'ant-design-vue/lib/badge/style/index' - -import './style.less' +import { genStyleHook } from '../__builtins__' + +export default genStyleHook('array-table', (token) => { + const { + componentCls, + antCls, + colorErrorBorder, + fontSizeSM, + colorBgBase, + colorBorder, + colorBgContainer + } = token + const itemCls = `${antCls}-formily-form-item` + + return { + [componentCls]: { + [`${componentCls}-pagination`]: { + display: 'flex', + justifyContent: 'center', + + [`${componentCls}-status-select.has-error`]: { + [`${antCls}-select-selector`]: { + borderColor: `${colorErrorBorder} !important` + } + } + }, + [`${antCls}-table`]: { + td: { + visibility: 'visible', + [`${itemCls}`]: { + marginBottom: '0 !important', + + [`${itemCls}-help`]: { + position: 'absolute', + fontSize: fontSizeSM, + top: '100%', + background: colorBgBase, + width: '100%', + marginTop: 3, + padding: 3, + zIndex: 1, + borderRadius: 3, + boxShadow: `0 0 10px ${colorBorder}`, + animation: 'none', + transform: 'translateY(0)', + opacity: 1 + } + } + } + }, + + [`${componentCls}-sort-helper`]: { + background: colorBgContainer, + border: `1px solid ${colorBorder}`, + zIndex: 10 + } + } + } +}) diff --git a/packages/components/src/array-tabs/index.ts b/packages/components/src/array-tabs/index.ts deleted file mode 100644 index 9a69de6..0000000 --- a/packages/components/src/array-tabs/index.ts +++ /dev/null @@ -1,127 +0,0 @@ -import { defineComponent, ref } from '@vue/composition-api' -import { observer } from '@formily/reactive-vue' -import type { ArrayField } from '@formily/core' -import { h, useField, useFieldSchema, RecursionField } from '@formily/vue' -import { stylePrefix } from '../__builtins__/configs' -import { Tabs, Badge } from 'ant-design-vue' - -import type { Tabs as TabsProps } from 'ant-design-vue/types/tabs/tabs' - -export const ArrayTabs = observer( - defineComponent({ - name: 'ArrayTabs', - setup(props, { listeners }) { - const fieldRef = useField() - const schemaRef = useFieldSchema() - - const prefixCls = `${stylePrefix}-array-tabs` - const activeKey = ref('tab-0') - - return () => { - const field = fieldRef.value - const schema = schemaRef.value - const value = Array.isArray(field.value) ? field.value : [] - const dataSource = value?.length ? value : [{}] - - const onEdit = (targetKey: any, type: 'add' | 'remove') => { - if (type == 'add') { - const id = dataSource.length - if (field?.value?.length) { - field.push(null) - } else { - field.push(null, null) - } - activeKey.value = `tab-${id}` - } else if (type == 'remove') { - const index = targetKey.match(/-(\d+)/)?.[1] - field.remove(Number(index)) - if (activeKey.value === targetKey) { - activeKey.value = `tab-${index - 1}` - } - } - } - - const badgedTab = (index: number) => { - const tab = `${field.title || 'Untitled'} ${index + 1}` - const path = field.address.concat(index) - const errors = field.form.queryFeedbacks({ - type: 'error', - address: `${path}.**`, - }) - if (errors.length) { - return h( - Badge, - { - class: `${prefixCls}-errors-badge`, - props: { - count: errors.length, - }, - }, - { - default: () => [tab], - } - ) - } - return tab - } - - const renderItems = () => - dataSource?.map((item, index) => { - const items = Array.isArray(schema.items) - ? schema.items[index] - : schema.items - const key = `tab-${index}` - return h( - Tabs.TabPane, - { - key, - props: { - closable: index !== 0, - name: key, - }, - }, - { - default: () => - h( - RecursionField, - { - props: { - schema: items, - name: index, - }, - }, - {} - ), - tab: () => [badgedTab(index)], - } - ) - }) - - return h( - Tabs, - { - props: { - ...props, - activeKey: activeKey.value, - type: 'editable-card', - }, - on: { - ...listeners, - change: (key) => { - activeKey.value = key - }, - edit: (key, action) => { - onEdit(key, action) - }, - }, - }, - { - default: () => [renderItems()], - } - ) - } - }, - }) -) - -export default ArrayTabs diff --git a/packages/components/src/array-tabs/index.tsx b/packages/components/src/array-tabs/index.tsx new file mode 100644 index 0000000..68fc8c0 --- /dev/null +++ b/packages/components/src/array-tabs/index.tsx @@ -0,0 +1,120 @@ +import type { ArrayField } from '@formily/core' +import { observer } from '@formily/reactive-vue' +import { isFn } from '@formily/shared' +import { RecursionField, useField, useFieldSchema } from '@formily/vue' +import type { TabsProps } from 'ant-design-vue' +import { Badge, Tabs } from 'ant-design-vue' +import type { PropType } from 'vue' +import { defineComponent, ref, watch } from 'vue' +import { usePrefixCls } from '../__builtins__' + +export interface ArrayTabsProps extends TabsProps { + renderTitle?: (record: any, records: any[], index: number) => any +} + +export const ArrayTabs = observer( + defineComponent({ + name: 'ArrayTabs', + props: { + activeKey: { + type: String + }, + renderTitle: { + type: Function as PropType<(...args: any[]) => any> + } + }, + setup(props, { attrs }) { + const fieldRef = useField() + const schemaRef = useFieldSchema() + + const prefixCls = usePrefixCls('formily-array-tabs', attrs.prefixCls as string) + const activeKey = ref('tab-0') + + watch( + () => props.activeKey, + (val) => { + if (val) { + activeKey.value = val + } + }, + { + immediate: true + } + ) + + return () => { + const field = fieldRef.value + const schema = schemaRef.value + const value = Array.isArray(field.value) ? field.value.slice() : [] + const dataSource = value?.length ? value : [{}] + + const onEdit = (targetKey: any, type: 'add' | 'remove') => { + if (type == 'add') { + const id = dataSource.length + if (field?.value?.length) { + field.push(null) + } else { + field.push(null, null) + } + activeKey.value = `tab-${id}` + } else if (type == 'remove') { + const index = targetKey.match(/-(\d+)/)?.[1] + field.remove(Number(index)) + if (activeKey.value === targetKey) { + activeKey.value = `tab-${index - 1}` + } + } + } + + const badgedTab = (index: number) => { + const renderTitle = props.renderTitle + const tab = isFn(renderTitle) + ? renderTitle(dataSource[index], dataSource, index) + : `${field.title || 'Untitled'} ${index + 1}` + const path = field.address.concat(index) + const errors = field.form.queryFeedbacks({ + type: 'error', + address: `${path}.**` + }) + if (errors.length) { + return ( + + {tab} + + ) + } + return tab + } + + const renderItems = () => + dataSource?.map((item, index) => { + const items = Array.isArray(schema.items) ? schema.items[index] : schema.items + const key = `tab-${index}` + return ( + + + + ) + }) + + return ( + { + activeKey.value = key as string + }} + onEdit={(key, action) => { + onEdit(key, action) + }} + > + {renderItems()} + + ) + } + } + }) +) + +export default ArrayTabs diff --git a/packages/components/src/array-tabs/style.ts b/packages/components/src/array-tabs/style.ts deleted file mode 100644 index a1db468..0000000 --- a/packages/components/src/array-tabs/style.ts +++ /dev/null @@ -1,2 +0,0 @@ -import 'ant-design-vue/lib/badge/style/index' -import 'ant-design-vue/lib/tabs/style/index' diff --git a/packages/components/src/cascader/index.ts b/packages/components/src/cascader/index.ts deleted file mode 100644 index 1c10606..0000000 --- a/packages/components/src/cascader/index.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { connect, mapProps, mapReadPretty, h } from '@formily/vue' -import { Cascader as AntdCascader, Icon } from 'ant-design-vue' -import { PreviewText } from '../preview-text' - -export const Cascader = connect( - AntdCascader, - mapProps( - { - dataSource: 'options', - }, - (props, field) => { - return { - ...props, - suffixIcon: - field?.['loading'] || field?.['validating'] - ? h(Icon, { props: { type: 'loading' } }, {}) - : props.suffixIcon, - } - } - ), - mapReadPretty(PreviewText.Cascader) -) - -export default Cascader diff --git a/packages/components/src/cascader/index.tsx b/packages/components/src/cascader/index.tsx new file mode 100644 index 0000000..1f665b8 --- /dev/null +++ b/packages/components/src/cascader/index.tsx @@ -0,0 +1,27 @@ +import { LoadingOutlined } from '@ant-design/icons-vue' +import { connect, mapProps, mapReadPretty } from '@formily/vue' +import { Cascader as AntdCascader } from 'ant-design-vue' +import { PreviewText } from '../preview-text' + +export const Cascader = connect( + AntdCascader, + mapProps( + { + dataSource: 'options' + }, + ({ useNull, ...props }, field) => { + let value = props.value + if (!useNull && Array.isArray(value)) { + value = value.map((item) => (item === null ? undefined : item)) + } + return { + ...props, + suffixIcon: + field?.['loading'] || field?.['validating'] ? : props.suffixIcon + } + } + ), + mapReadPretty(PreviewText.Cascader) +) + +export default Cascader diff --git a/packages/components/src/cascader/style.ts b/packages/components/src/cascader/style.ts deleted file mode 100644 index c71fae3..0000000 --- a/packages/components/src/cascader/style.ts +++ /dev/null @@ -1 +0,0 @@ -import 'ant-design-vue/lib/cascader/style/index' diff --git a/packages/components/src/checkbox/index.ts b/packages/components/src/checkbox/index.ts index bf74cb9..ba3eb77 100644 --- a/packages/components/src/checkbox/index.ts +++ b/packages/components/src/checkbox/index.ts @@ -1,16 +1,17 @@ -import { connect, mapProps, mapReadPretty } from '@formily/vue' import { Checkbox as AntdCheckbox } from 'ant-design-vue' +import { connect, mapProps, mapReadPretty } from '@formily/vue' +import { composeExport } from '../__builtins__' import { PreviewText } from '../preview-text' -import { composeExport } from '../__builtins__/shared' + const { Group } = AntdCheckbox const CheckboxGroup = connect( Group, mapProps({ - dataSource: 'options', + dataSource: 'options' }), mapReadPretty(PreviewText.Select, { - mode: 'tags', + mode: 'tags' }) ) @@ -18,12 +19,12 @@ const _CheckBox = connect( AntdCheckbox, mapProps({ value: 'checked', - onInput: 'onChange', + onInput: 'onChange' }) ) export const Checkbox = composeExport(_CheckBox, { - Group: CheckboxGroup, + Group: CheckboxGroup }) export default Checkbox diff --git a/packages/components/src/checkbox/style.ts b/packages/components/src/checkbox/style.ts deleted file mode 100644 index 99d8121..0000000 --- a/packages/components/src/checkbox/style.ts +++ /dev/null @@ -1 +0,0 @@ -import 'ant-design-vue/lib/checkbox/style/index' diff --git a/packages/components/src/date-picker/index.ts b/packages/components/src/date-picker/index.ts index 6912a68..ba693d6 100644 --- a/packages/components/src/date-picker/index.ts +++ b/packages/components/src/date-picker/index.ts @@ -1,11 +1,11 @@ import { connect, mapProps, mapReadPretty } from '@formily/vue' +import type { DatePickerProps } from 'ant-design-vue' import { DatePicker as AntdDatePicker } from 'ant-design-vue' -import type { DatePicker as AntdDatePickerProps } from 'ant-design-vue/types/date-picker/date-picker' -import { formatMomentValue, composeExport } from '../__builtins__' +import { composeExport, transformComponent } from '../__builtins__' import { PreviewText } from '../preview-text' const mapDateFormat = function () { - const getDefaultFormat = (props: AntdDatePickerProps) => { + const getDefaultFormat = (props: DatePickerProps) => { if (props['mode'] === 'month') { return 'YYYY-MM' } else if (props['mode'] === 'quarter') { @@ -14,29 +14,29 @@ const mapDateFormat = function () { return 'YYYY' } else if (props['mode'] === 'week') { return 'gggg-wo' + } else if (props['mode'] === 'time') { + return 'HH:mm:ss' } return props['showTime'] ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD' } return (props: any) => { - const format = props['format'] || getDefaultFormat(props) - const onChange = props.onChange + const format = props.format || getDefaultFormat(props) + const valueFormat = props.valueFormat || getDefaultFormat(props) + return { ...props, - format: format, - valueFormat: props.valueFormat || getDefaultFormat(props), - on: { - change: (value: moment.Moment | moment.Moment[]) => { - if (onChange) { - onChange(formatMomentValue(value, format)) - } - }, - }, + format, + valueFormat } } } +const TransformElDatePicker = transformComponent(AntdDatePicker, { + change: 'panelChange' +}) + export const _DatePicker = connect( - AntdDatePicker, + TransformElDatePicker, mapProps(mapDateFormat()), mapReadPretty(PreviewText.DatePicker) ) @@ -54,7 +54,7 @@ export const _MonthPicker = connect(AntdDatePicker.MonthPicker) export const DatePicker = composeExport(_DatePicker, { RangePicker: _RangePicker, WeekPicker: _WeekPicker, - MonthPicker: _MonthPicker, + MonthPicker: _MonthPicker }) export default DatePicker diff --git a/packages/components/src/editable/index.ts b/packages/components/src/editable/index.ts deleted file mode 100644 index df82970..0000000 --- a/packages/components/src/editable/index.ts +++ /dev/null @@ -1,289 +0,0 @@ -import { h, useField } from '@formily/vue' -import { - defineComponent, - ref, - onBeforeUnmount, - computed, -} from '@vue/composition-api' -import { observer } from '@formily/reactive-vue' -import { Popover as AntdPopover, Icon } from 'ant-design-vue' -import { composeExport } from '../__builtins__' -import type { FormItemProps } from '../form-item' -import { FormBaseItem } from '../form-item' -import type { Popover as PopoverProps } from 'ant-design-vue/types/popover' -import type { Field } from '@formily/core' -import { isVoidField } from '@formily/core' -import { stylePrefix } from '../__builtins__/configs' -import { reaction } from '@formily/reactive' - -type IPopoverProps = PopoverProps -export type EditableProps = FormItemProps - -const useInitialPattern = (fieldRef) => { - const field = fieldRef.value - return computed(() => field?.pattern) -} - -const useFormItemProps = (fieldRef): FormItemProps => { - const field = fieldRef.value - if (isVoidField(field)) return {} - if (!field) return {} - const takeMessage = () => { - if (field.selfErrors.length) return field.selfErrors - if (field.selfWarnings.length) return field.selfWarnings - if (field.selfSuccesses.length) return field.selfSuccesses - } - - return { - feedbackStatus: - field.validateStatus === 'validating' ? 'pending' : field.validateStatus, - feedbackText: takeMessage(), - extra: field.description, - } -} - -const EditableInner = observer( - // eslint-disable-next-line vue/one-component-per-file - defineComponent({ - name: 'Editable', - setup(props, { attrs, slots, refs }) { - const fieldRef = useField() - const pattern = useInitialPattern(fieldRef) - const prefixCls = `${stylePrefix}-editable` - const setEditable = (payload: boolean) => { - // console.log('pattern', pattern) - if (pattern.value !== 'editable') return - fieldRef.value.setPattern(payload ? 'editable' : 'readPretty') - } - - const dispose = reaction( - () => { - return pattern - }, - (pattern) => { - if (pattern.value === 'editable') { - fieldRef.value.setPattern('readPretty') - } - }, - { - fireImmediately: true, - } - ) - - onBeforeUnmount(() => { - const field = fieldRef.value - field.setPattern(pattern.value) - dispose() - }) - - return () => { - const field = fieldRef.value - const editable = field.pattern === 'editable' - const itemProps = useFormItemProps(fieldRef) - - const closeEditable = () => { - if (editable && !fieldRef.value?.errors?.length) { - setEditable(false) - } - } - - const onClick = (e: MouseEvent) => { - const innerRef = refs.innerRef as HTMLElement - const target = e.target as HTMLElement - const close = innerRef.querySelector(`.${prefixCls}-close-btn`) - - if (target?.contains(close) || close?.contains(target)) { - closeEditable() - } else if (!editable) { - setTimeout(() => { - setEditable(true) - setTimeout(() => { - innerRef.querySelector('input')?.focus() - }) - }) - } - } - - const renderEditHelper = () => { - if (editable) return - return h( - FormBaseItem, - { - attrs: { - ...attrs, - ...itemProps, - }, - }, - { - default: () => { - return pattern.value === 'editable' - ? h( - Icon, - { - class: [`${prefixCls}-edit-btn`], - props: { - type: 'edit', - }, - }, - {} - ) - : null - }, - } - ) - } - - const renderCloseHelper = () => { - if (!editable) return - return h( - FormBaseItem, - { - attrs: { - ...attrs, - }, - }, - { - default: () => { - return h( - Icon, - { - class: [`${prefixCls}-close-btn`], - props: { - type: 'close', - }, - }, - {} - ) - }, - } - ) - } - - return h( - 'div', - { - class: prefixCls, - ref: 'innerRef', - on: { - click: onClick, - }, - }, - { - default: () => { - return h( - 'div', - { - class: `${prefixCls}-content`, - }, - { - default: () => [ - h( - FormBaseItem, - { - attrs: { - ...attrs, - ...itemProps, - }, - }, - slots - ), - renderEditHelper(), - renderCloseHelper(), - ], - } - ) - }, - } - ) - } - }, - }) -) - -const EditablePopover = observer( - // eslint-disable-next-line vue/one-component-per-file - defineComponent({ - name: 'EditablePopover', - setup(props, { attrs, slots }) { - const fieldRef = useField() - const prefixCls = `${stylePrefix}-editable` - const visible = ref(false) - - return () => { - const field = fieldRef.value - const pattern = useInitialPattern(fieldRef) - return h( - AntdPopover, - { - class: [prefixCls, attrs.class], - props: { - ...props, - title: attrs.title || field.title, - visible: visible.value, - trigger: 'click', - }, - arrrs: { - ...attrs, - }, - on: { - visibleChange: (value: boolean) => { - visible.value = value - }, - }, - }, - { - content: () => [slots.default()], - default: () => - h( - FormBaseItem, - { - class: [`${prefixCls}-trigger`], - }, - { - default: () => - h( - 'div', - { - class: [`${prefixCls}-content`], - }, - { - default: () => [ - h( - 'span', - { - class: [`${prefixCls}-preview`], - }, - { - default: () => [attrs.title || field.title], - } - ), - h( - Icon, - { - class: [`${prefixCls}-edit-btn`], - props: { - type: - pattern.value === 'editable' - ? 'edit' - : 'message', - }, - }, - {} - ), - ], - } - ), - } - ), - } - ) - } - }, - }) -) - -export const Editable = composeExport(EditableInner, { - Popover: EditablePopover, -}) - -export default Editable diff --git a/packages/components/src/editable/index.tsx b/packages/components/src/editable/index.tsx new file mode 100644 index 0000000..54cb511 --- /dev/null +++ b/packages/components/src/editable/index.tsx @@ -0,0 +1,176 @@ +import { CloseCircleOutlined, EditOutlined, MessageOutlined } from '@ant-design/icons-vue' +import type { Field } from '@formily/core' +import { isVoidField } from '@formily/core' +import { reaction } from '@formily/reactive' +import { observer } from '@formily/reactive-vue' +import { useField } from '@formily/vue' +import { Popover } from 'ant-design-vue' +import type { Ref } from 'vue' +import { computed, defineComponent, nextTick, onBeforeUnmount, ref } from 'vue' +import { composeExport, usePrefixCls } from '../__builtins__' +import type { FormItemProps } from '../form-item' +import { FormBaseItem } from '../form-item' +import useStyle from './style' + +export type EditableProps = FormItemProps + +const useInitialPattern = (fieldRef: Ref) => { + const field = fieldRef.value + return computed(() => field?.pattern) +} + +const useFormItemProps = (fieldRef: Ref): FormItemProps => { + const field = fieldRef.value + if (isVoidField(field)) return {} + if (!field) return {} + const takeMessage = () => { + if (field.selfErrors.length) return field.selfErrors + if (field.selfWarnings.length) return field.selfWarnings + if (field.selfSuccesses.length) return field.selfSuccesses + } + + return { + feedbackStatus: field.validateStatus === 'validating' ? 'pending' : field.validateStatus, + feedbackText: takeMessage(), + extra: field.description + } +} + +const EditableInner = observer( + defineComponent({ + name: 'Editable', + setup(props, { attrs, slots }) { + const fieldRef = useField() + const pattern = useInitialPattern(fieldRef) + const prefixCls = usePrefixCls('formily-editable', attrs.prefixCls as string) + const innerRef = ref() + const [wrapSSR, hashId] = useStyle(prefixCls) + const setEditable = (payload: boolean) => { + if (pattern.value !== 'editable') return + fieldRef.value.setPattern(payload ? 'editable' : 'readPretty') + } + + const dispose = reaction( + () => { + return pattern + }, + (pattern) => { + if (pattern.value === 'editable') { + fieldRef.value.setPattern('readPretty') + } + }, + { + fireImmediately: true + } + ) + + onBeforeUnmount(() => { + const field = fieldRef.value + field.setPattern(pattern.value) + dispose() + }) + + return () => { + const field = fieldRef.value + const editable = field.pattern === 'editable' + const itemProps = useFormItemProps(fieldRef) + const closeEditable = () => { + if (editable && !fieldRef.value?.errors?.length) { + setEditable(false) + } + } + + const onClick = (e: MouseEvent) => { + const target = e.target as HTMLElement + const close = innerRef.value.querySelector(`.${prefixCls}-close-btn`) + + if (target?.contains(close) || close?.contains(target)) { + closeEditable() + } else if (!editable) { + nextTick(() => { + setEditable(true) + nextTick(() => { + innerRef.value.querySelector('input')?.focus() + }) + }) + } + } + + const renderEditHelper = () => { + if (editable) return + return ( + + {pattern.value === 'editable' ? ( + + ) : null} + + ) + } + + const renderCloseHelper = () => { + if (!editable) return + return ( + + + + ) + } + return wrapSSR( +
+
+ + {slots.default?.()} + + {renderEditHelper()} + {renderCloseHelper()} +
+
+ ) + } + } + }) +) + +const EditablePopover = observer( + defineComponent({ + name: 'EditablePopover', + setup(props, { attrs, slots }) { + const fieldRef = useField() + const prefixCls = usePrefixCls('formily-editable', attrs.prefixCls as string) + const [wrapSSR, hashId] = useStyle(prefixCls) + const openRef = ref(false) + + return () => { + const field = fieldRef.value + const pattern = useInitialPattern(fieldRef) + return wrapSSR( + { + openRef.value = value + }} + content={slots.default()} + > + +
+ {attrs.title || field.title} + {pattern.value === 'editable' ? : } +
+
+
+ ) + } + } + }) +) + +export const Editable = composeExport(EditableInner, { + Popover: EditablePopover +}) + +export default Editable diff --git a/packages/components/src/editable/style.less b/packages/components/src/editable/style.less deleted file mode 100644 index 03be0fc..0000000 --- a/packages/components/src/editable/style.less +++ /dev/null @@ -1,55 +0,0 @@ -@import '../__builtins__/styles/common.less'; - -@editable-prefix-cls: ~'@{formily-prefix}-editable'; - -.@{editable-prefix-cls} { - cursor: pointer; - display: inline-block !important; - - .@{formily-prefix}-form-text { - .@{formily-prefix}-tag { - transition: none !important; - } - - .@{formily-prefix}-tag:last-child { - margin-right: 0 !important; - } - } - - &-content { - display: flex; - align-items: center; - - > * { - margin-right: 3px; - &:last-child { - margin-right: 0; - } - } - } - - .@{editable-prefix-cls}-edit-btn, - .@{editable-prefix-cls}-close-btn { - transition: all 0.25s ease-in-out; - color: #aaa; - font-size: 12px; - - &:hover { - color: @primary-5; - } - } - - .@{formily-prefix}-form-text { - display: flex; - align-items: center; - } - - .@{editable-prefix-cls}-preview { - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - word-break: break-all; - max-width: 100px; - display: block; - } -} diff --git a/packages/components/src/editable/style.ts b/packages/components/src/editable/style.ts index 8636b29..06cde90 100644 --- a/packages/components/src/editable/style.ts +++ b/packages/components/src/editable/style.ts @@ -1,4 +1,55 @@ -import 'ant-design-vue/lib/form/style/index' -import 'ant-design-vue/lib/space/style/index' -import 'ant-design-vue/lib/popover/style/index' -import './style.less' +import { genStyleHook } from './../__builtins__' +export default genStyleHook('editable', (token) => { + const { antCls, componentCls, fontSizeSM, colorPrimary } = token + return { + [componentCls]: { + cursor: 'pointer', + display: 'inline-block !important', + + [`${antCls}-form-text`]: { + display: 'flex', + alignItems: 'center', + + [`${antCls}-tag`]: { + transition: 'none !important' + }, + + [`${antCls}-tag:last-child`]: { + paddingInlineEnd: '0 !important' + } + }, + + [`${componentCls}-content`]: { + display: 'flex', + alignItems: 'center', + '> *': { + marginInlineEnd: 3, + + '&:last-child': { + marginInlineEnd: 0 + } + } + }, + + [`${componentCls}-edit-btn, + ${componentCls}-close-btn`]: { + transition: 'all .25s ease-in-out', + color: '#aaa', + fontSize: fontSizeSM, + + '&:hover': { + color: colorPrimary + } + }, + + [`${componentCls}-preview`]: { + whiteSpace: 'nowrap', + textOverflow: 'ellipsis', + overflow: 'hidden', + wordBreak: 'break-all', + maxWidth: '100%', + display: 'block' + } + } + } +}) diff --git a/packages/components/src/form-button-group/index.ts b/packages/components/src/form-button-group/index.ts deleted file mode 100644 index 77f6113..0000000 --- a/packages/components/src/form-button-group/index.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { h } from '@formily/vue' -import { defineComponent } from '@vue/composition-api' -import type { Space as SpaceProps } from 'ant-design-vue/types/space' -import { Space } from '../space' -import { FormBaseItem } from '../form-item' -import { stylePrefix } from '../__builtins__/configs' - -export type FormButtonGroupProps = Omit & { - align?: 'left' | 'right' | 'center' - gutter?: number - className?: string - alignFormItem: boolean -} - -export const FormButtonGroup = defineComponent({ - name: 'FormButtonGroup', - props: { - align: { - type: String, - default: 'left', - }, - gutter: { - type: Number, - default: 8, - }, - alignFormItem: { - type: Boolean, - default: false, - }, - }, - setup(props, { slots, attrs }) { - const prefixCls = `${stylePrefix}-form-button-group` - return () => { - if (props.alignFormItem) { - return h( - FormBaseItem, - { - style: { - margin: 0, - padding: 0, - width: '100%', - }, - attrs: { - colon: false, - label: ' ', - ...attrs, - }, - }, - { - default: () => h(Space, { props: { size: props.gutter } }, slots), - } - ) - } else { - return h( - Space, - { - class: [prefixCls], - style: { - justifyContent: - props.align === 'left' - ? 'flex-start' - : props.align === 'right' - ? 'flex-end' - : 'center', - display: 'flex', - }, - props: { - ...attrs, - size: props.gutter, - }, - attrs, - }, - slots - ) - } - } - }, -}) - -export default FormButtonGroup diff --git a/packages/components/src/form-button-group/index.tsx b/packages/components/src/form-button-group/index.tsx new file mode 100644 index 0000000..4e16a12 --- /dev/null +++ b/packages/components/src/form-button-group/index.tsx @@ -0,0 +1,73 @@ +import type { SpaceProps } from 'ant-design-vue' +import { defineComponent } from 'vue' +import { usePrefixCls } from '../__builtins__' +import { FormBaseItem } from '../form-item' +import { Space } from '../space' + +export type FormButtonGroupProps = Omit & { + align?: 'left' | 'right' | 'center' + gutter?: number + className?: string + alignFormItem: boolean +} + +export const FormButtonGroup = defineComponent({ + name: 'FormButtonGroup', + props: { + align: { + type: String, + default: 'left' + }, + gutter: { + type: Number, + default: 8 + }, + alignFormItem: { + type: Boolean, + default: false + } + }, + setup(props, { slots, attrs }) { + const prefixCls = usePrefixCls('formily-form-button-group', attrs.prefixCls as string) + + return () => { + if (props.alignFormItem) { + return ( + + {slots.default?.()} + + ) + } else { + return ( + + {slots.default?.()} + + ) + } + } + } +}) + +export default FormButtonGroup diff --git a/packages/components/src/form-button-group/style.ts b/packages/components/src/form-button-group/style.ts deleted file mode 100644 index ad6f8c5..0000000 --- a/packages/components/src/form-button-group/style.ts +++ /dev/null @@ -1,5 +0,0 @@ -import './style.less' - -// 依赖 -import '../form-item/style' -import '../space/style' diff --git a/packages/components/src/form-collapse/index.ts b/packages/components/src/form-collapse/index.tsx similarity index 56% rename from packages/components/src/form-collapse/index.ts rename to packages/components/src/form-collapse/index.tsx index 1f076eb..24172f4 100644 --- a/packages/components/src/form-collapse/index.ts +++ b/packages/components/src/form-collapse/index.tsx @@ -1,21 +1,14 @@ -import { Collapse, Badge } from 'ant-design-vue' -import { model, markRaw } from '@formily/reactive' -import type { Collapse as CollapseProps } from 'ant-design-vue/types/collapse/collapse' -import type { CollapsePanel as CollapsePanelProps } from 'ant-design-vue/types/collapse/collapse-panel' -import { - useField, - useFieldSchema, - RecursionField, - h, - Fragment, -} from '@formily/vue' -import { observer } from '@formily/reactive-vue' +import type { GeneralField } from '@formily/core' import type { Schema, SchemaKey } from '@formily/json-schema' -import type { PropType } from 'vue-demi' -import { computed, defineComponent } from '@vue/composition-api' +import { markRaw, model } from '@formily/reactive' +import { observer } from '@formily/reactive-vue' import { toArr } from '@formily/shared' -import { composeExport, stylePrefix } from '../__builtins__' -import type { GeneralField } from '@formily/core' +import { RecursionField, useField, useFieldSchema } from '@formily/vue' +import type { CollapsePanelProps, CollapseProps } from 'ant-design-vue' +import { Badge, Collapse } from 'ant-design-vue' +import type { PropType } from 'vue' +import { computed, defineComponent } from 'vue' +import { composeExport, usePrefixCls } from '../__builtins__' type ActiveKeys = string | number | Array @@ -46,9 +39,9 @@ const usePanels = (collapseField: GeneralField, schema: Schema) => { name, props: { ...schema?.['x-component-props'], - key: schema?.['x-component-props']?.key || name, + key: schema?.['x-component-props']?.key || name }, - schema, + schema }) } }) @@ -77,9 +70,7 @@ const createFormCollapse = (defaultActiveKeys?: ActiveKeys) => { }, removeActiveKey(key: ActiveKey) { if (Array.isArray(formCollapse.activeKeys)) { - formCollapse.activeKeys = formCollapse.activeKeys.filter( - (item) => item != key - ) + formCollapse.activeKeys = formCollapse.activeKeys.filter((item) => item != key) } else { formCollapse.activeKeys = '' } @@ -90,35 +81,31 @@ const createFormCollapse = (defaultActiveKeys?: ActiveKeys) => { } else { formCollapse.addActiveKey(key) } - }, + } }) return markRaw(formCollapse) } const _FormCollapse = observer( - // eslint-disable-next-line vue/one-component-per-file - defineComponent({ + defineComponent({ inheritAttrs: false, props: { // eslint-disable-next-line vue/require-default-prop formCollapse: { type: Object as PropType }, // eslint-disable-next-line vue/require-default-prop activeKey: { - type: [String, Number], - }, + type: [String, Number] + } }, setup(props, { attrs, emit }) { const field = useField() const schema = useFieldSchema() - const prefixCls = `${stylePrefix}-form-collapse` - const _formCollapse = computed( - () => props.formCollapse ?? createFormCollapse() - ) + const prefixCls = usePrefixCls('formily-form-collapse', attrs.prefixCls as string) + const _formCollapse = computed(() => props.formCollapse ?? createFormCollapse()) const takeActiveKeys = (panels: Panels) => { if (props.activeKey) return props.activeKey - if (_formCollapse.value?.activeKeys) - return _formCollapse.value?.activeKeys + if (_formCollapse.value?.activeKeys) return _formCollapse.value?.activeKeys if (attrs.accordion) return panels[0]?.name return panels.map((item) => item.name) } @@ -126,18 +113,13 @@ const _FormCollapse = observer( const badgedHeader = (key: SchemaKey, header: string) => { const errors = field.value.form.queryFeedbacks({ type: 'error', - address: `${field.value.address.concat(key)}.*`, + address: `${field.value.address.concat(key)}.*` }) if (errors.length) { - return h( - Badge, - { - class: [`${prefixCls}-errors-badge`], - props: { - count: errors.length, - }, - }, - { default: () => [header] } + return ( + + {header} + ) } return header @@ -146,55 +128,33 @@ const _FormCollapse = observer( return () => { const panels = usePanels(field.value, schema.value) const activeKey = takeActiveKeys(panels) - return h( - Collapse, - { - class: prefixCls, - props: { - ...props, - activeKey, - }, - on: { - change: (key: string | string[]) => { - emit('input', key) - _formCollapse.value.setActiveKeys(key) - }, - }, - }, - { - default: () => { - return panels.map(({ props, schema, name }) => { - const { header, ...restProps } = props - return h( - Collapse.Panel, - { - key: name, - props: { - ...restProps, - name, - forceRender: true, - }, - }, - { - default: () => [ - h(RecursionField, { props: { schema, name } }, {}), - ], - header: () => - h( - Fragment, - {}, - { - default: () => badgedHeader(name, header), - } - ), - } - ) - }) - }, - } + return ( + { + emit('input', key) + _formCollapse.value.setActiveKeys(key) + }} + > + {panels.map(({ props, schema, name }) => { + const { header, ...restProps } = props + return ( + + + + ) + })} + ) } - }, + } }) ) @@ -202,13 +162,13 @@ const _FormCollapse = observer( export const CollapsePanel = defineComponent({ name: 'FormCollapsePanel', setup(props, { slots }) { - return () => h(Fragment, {}, slots) - }, + return () => <>{slots.default?.()} + } }) export const FormCollapse = composeExport(_FormCollapse, { CollapsePanel, - createFormCollapse, + createFormCollapse }) export default FormCollapse diff --git a/packages/components/src/form-collapse/style.ts b/packages/components/src/form-collapse/style.ts deleted file mode 100644 index 7be8d6e..0000000 --- a/packages/components/src/form-collapse/style.ts +++ /dev/null @@ -1,2 +0,0 @@ -import 'ant-design-vue/lib/collapse/style/index' -import 'ant-design-vue/lib/badge/style/index' diff --git a/packages/components/src/form-dialog/index.ts b/packages/components/src/form-dialog/index.ts deleted file mode 100644 index 613b627..0000000 --- a/packages/components/src/form-dialog/index.ts +++ /dev/null @@ -1,353 +0,0 @@ -import { Button, Modal } from 'ant-design-vue' -import type { Modal as ModalProps } from 'ant-design-vue/types/modal' -import { FormProvider, h, Fragment } from '@formily/vue' -import { observer } from '@formily/reactive-vue' -import type { IMiddleware } from '@formily/shared' -import { isNum, isStr, isBool, isFn, applyMiddleware } from '@formily/shared' -import { toJS } from '@formily/reactive' -import type { Form, IFormProps } from '@formily/core' -import { createForm } from '@formily/core' -import type { Component, VNode } from 'vue' -import Vue from 'vue' -import { stylePrefix } from '../__builtins__/configs' -import { defineComponent } from '@vue/composition-api' -import { Portal, PortalTarget } from 'portal-vue' - -import { - isValidElement, - resolveComponent, - createPortalProvider, - getProtalContext, - loading, -} from '../__builtins__/shared' - -const PORTAL_TARGET_NAME = 'FormDialogFooter' - -type FormDialogRenderer = VNode | ((form: Form) => VNode) - -type ModalTitle = string | number | Component | VNode | (() => VNode) - -const isModalTitle = (props: any): props is ModalTitle => { - return isNum(props) || isStr(props) || isBool(props) || isValidElement(props) -} - -const getModelProps = (props: any): IModalProps => { - if (isModalTitle(props)) { - return { - title: props, - } as IModalProps - } else { - return props - } -} - -export interface IFormDialog { - forOpen(middleware: IMiddleware): IFormDialog - forConfirm(middleware: IMiddleware
): IFormDialog - forCancel(middleware: IMiddleware): IFormDialog - open(props?: IFormProps): Promise - close(): void -} - -export interface IModalProps extends ModalProps { - onOk?: (event?: MouseEvent) => void | boolean - onCancel?: (event?: MouseEvent) => void | boolean - loadingText?: string -} - -export function FormDialog( - title: IModalProps, - id: string, - renderer: FormDialogRenderer -): IFormDialog -export function FormDialog( - title: IModalProps, - renderer: FormDialogRenderer -): IFormDialog -export function FormDialog( - title: ModalTitle, - id: string, - renderer: FormDialogRenderer -): IFormDialog -export function FormDialog( - title: ModalTitle, - renderer: FormDialogRenderer -): IFormDialog - -export function FormDialog( - title: ModalTitle | IModalProps, - id: string | symbol | FormDialogRenderer, - renderer?: FormDialogRenderer -): IFormDialog { - if (isFn(id) || isValidElement(id)) { - renderer = id as FormDialogRenderer - id = 'form-dialog' - } - - const prefixCls = `${stylePrefix}-form-dialog` - const env = { - root: document.createElement('div'), - form: null, - promise: null, - instance: null, - openMiddlewares: [], - confirmMiddlewares: [], - cancelMiddlewares: [], - } - - document.body.appendChild(env.root) - const props = getModelProps(title) - - const dialogProps = { - ...props, - afterClose: () => { - props.afterClose?.() - env.instance.$destroy() - env.instance = null - env.root?.parentNode?.removeChild(env.root) - env.root = undefined - }, - } - - const DialogContent = observer( - // eslint-disable-next-line vue/one-component-per-file - defineComponent({ - setup() { - return () => - h( - Fragment, - {}, - { - default: () => resolveComponent(renderer, { form: env.form }), - } - ) - }, - }) - ) - - const renderDialog = ( - visible = true, - resolve?: () => any, - reject?: () => any - ) => { - if (!env.instance) { - // eslint-disable-next-line vue/one-component-per-file - const ComponentConstructor = observer( - Vue.extend({ - props: ['dialogProps'], - data() { - return { - visible: false, - } - }, - render() { - const { - onOk, - onCancel, - title, - footer, - okText = '确定', - okType = 'primary', - okButtonProps, - cancelButtonProps, - cancelText = '取消', - ...dialogProps - } = this.dialogProps - return h( - Modal, - { - class: prefixCls, - props: { - ...dialogProps, - visible: this.visible, - }, - on: { - 'update:visible': (val) => { - this.visible = val - }, - cancel: (e) => { - if (onCancel?.(e) !== false) { - reject?.() - } - }, - ok: (e) => { - if (onOk?.(e) !== false) { - resolve?.() - } - }, - }, - }, - { - default: () => - h( - FormProvider, - { - props: { - form: env.form, - }, - }, - { - default: () => [h(DialogContent, {}, {})], - } - ), - title: () => - h(Fragment, {}, { default: () => resolveComponent(title) }), - footer: () => - h( - Fragment, - {}, - { - default: () => { - const FooterProtalTarget = h( - PortalTarget, - { - props: { - name: PORTAL_TARGET_NAME, - slim: true, - }, - }, - {} - ) - if (footer === null) { - return [null, FooterProtalTarget] - } else if (footer) { - return [resolveComponent(footer), FooterProtalTarget] - } - return [ - h( - Button, - { - attrs: cancelButtonProps, - on: { - click: (e) => { - onCancel?.(e) - reject() - }, - }, - }, - { - default: () => resolveComponent(cancelText), - } - ), - h( - Button, - { - attrs: { - ...okButtonProps, - type: okType, - loading: env.form.submitting, - }, - on: { - click: (e) => { - onOk?.(e) - resolve() - }, - }, - }, - { - default: () => resolveComponent(okText), - } - ), - FooterProtalTarget, - ] - }, - } - ), - } - ) - }, - }) - ) - env.instance = new ComponentConstructor({ - propsData: { - dialogProps, - }, - parent: getProtalContext(id as string | symbol), - }) - env.instance.$mount(env.root) - } - env.instance.visible = visible - } - - const formDialog = { - forOpen: (middleware: IMiddleware) => { - if (isFn(middleware)) { - env.openMiddlewares.push(middleware) - } - return formDialog - }, - forConfirm: (middleware: IMiddleware) => { - if (isFn(middleware)) { - env.confirmMiddlewares.push(middleware) - } - return formDialog - }, - forCancel: (middleware: IMiddleware) => { - if (isFn(middleware)) { - env.cancelMiddlewares.push(middleware) - } - return formDialog - }, - open: async (props: IFormProps) => { - if (env.promise) return env.promise - env.promise = new Promise(async (resolve, reject) => { - try { - props = await loading(dialogProps.loadingText, () => - applyMiddleware(props, env.openMiddlewares) - ) - env.form = env.form || createForm(props) - } catch (e) { - reject(e) - } - - renderDialog( - true, - () => { - env.form - .submit(async () => { - await applyMiddleware(env.form, env.confirmMiddlewares) - resolve(toJS(env.form.values)) - formDialog.close() - }) - .catch(reject) - }, - async () => { - await loading(dialogProps.loadingText, () => - applyMiddleware(env.form, env.cancelMiddlewares) - ) - formDialog.close() - } - ) - }) - return env.promise - }, - close: () => { - if (!env.root) return - renderDialog(false) - }, - } - return formDialog -} - -// eslint-disable-next-line vue/one-component-per-file -const DialogFooter = defineComponent({ - name: 'DialogFooter', - setup(props, { slots }) { - return () => { - return h( - Portal, - { - props: { - to: PORTAL_TARGET_NAME, - }, - }, - slots - ) - } - }, -}) - -FormDialog.Footer = DialogFooter -FormDialog.Portal = createPortalProvider('form-dialog') - -export default FormDialog diff --git a/packages/components/src/form-dialog/index.tsx b/packages/components/src/form-dialog/index.tsx new file mode 100644 index 0000000..7c3ec35 --- /dev/null +++ b/packages/components/src/form-dialog/index.tsx @@ -0,0 +1,291 @@ +import type { Form, IFormProps } from '@formily/core' +import { createForm } from '@formily/core' +import { toJS } from '@formily/reactive' +import { observer } from '@formily/reactive-vue' +import type { IMiddleware } from '@formily/shared' +import { applyMiddleware, isBool, isFn, isNum, isStr } from '@formily/shared' +import { FormProvider } from '@formily/vue' +import type { ModalProps } from 'ant-design-vue' +import { Button, Modal } from 'ant-design-vue' +import type { App, Component, VNode } from 'vue' +import { Teleport, createApp, defineComponent, ref } from 'vue' +import { + createPortalProvider, + getPortalContext, + isValidElement, + loading, + resolveComponent, + usePrefixCls +} from '../__builtins__' + +const PORTAL_TARGET_NAME = 'FormDialogFooter' + +type FormDialogRenderer = VNode | ((form: Form) => VNode) + +type ModalTitle = string | number | Component | VNode | (() => VNode) + +const isModalTitle = (props: any): props is ModalTitle => { + return isNum(props) || isStr(props) || isBool(props) || isValidElement(props) +} + +const getModelProps = (props: any): IModalProps => { + if (isModalTitle(props)) { + return { + title: props + } as IModalProps + } else { + return props + } +} + +export interface IFormDialog { + forOpen(middleware: IMiddleware): IFormDialog + forConfirm(middleware: IMiddleware): IFormDialog + forCancel(middleware: IMiddleware): IFormDialog + open(props?: IFormProps): Promise + close(): void +} + +export interface IModalProps extends ModalProps { + onOk?: (event?: MouseEvent) => void | boolean + onCancel?: (event?: MouseEvent) => void | boolean + loadingText?: string +} + +export function FormDialog( + title: IModalProps, + id: string, + renderer: FormDialogRenderer +): IFormDialog +export function FormDialog(title: IModalProps, renderer: FormDialogRenderer): IFormDialog +export function FormDialog(title: ModalTitle, id: string, renderer: FormDialogRenderer): IFormDialog +export function FormDialog(title: ModalTitle, renderer: FormDialogRenderer): IFormDialog + +export function FormDialog( + title: ModalTitle | IModalProps, + id: string | FormDialogRenderer, + renderer?: FormDialogRenderer +): IFormDialog { + if (isFn(id) || isValidElement(id)) { + renderer = id as FormDialogRenderer + id = 'form-dialog' + } + + const prefixCls = usePrefixCls('formily-form-dialog') + const env = { + root: document.createElement('div'), + form: null, + promise: null, + instance: null as App, + openMiddlewares: [], + confirmMiddlewares: [], + cancelMiddlewares: [] + } + + document.body.appendChild(env.root) + + const props = getModelProps(title) + + const dialogProps: IModalProps = { + ...props, + afterClose: () => { + props.afterClose?.() + setTimeout(() => { + env.instance.unmount() + env.instance = null + env.root = undefined + }, 500) + } + } + + const DialogContent = observer( + defineComponent({ + setup() { + return () => <>{resolveComponent(renderer, { form: env.form })} + } + }) + ) + const openRef = ref(false) + + const renderDialog = (visible = true, resolve?: () => any, reject?: () => any) => { + if (!env.instance) { + const ComponentConstructor = observer( + defineComponent({ + props: ['dialogProps'], + setup(props) { + return () => { + const { + onOk, + onCancel, + title, + footer, + okText = '确定', + okType = 'primary', + okButtonProps, + cancelButtonProps, + cancelText = '取消', + ...dialogProps + } = props.dialogProps + + const renderFooter = () => { + const FooterPortalTarget =
+ + if (footer === null) { + return FooterPortalTarget + } else if (footer) { + return ( + <> + {resolveComponent(footer)} + {FooterPortalTarget} + + ) + } + return ( + <> + + + {FooterPortalTarget} + + ) + } + return ( + { + openRef.value = val + }} + onCancel={(e) => { + if (onCancel?.(e) !== false) { + reject?.() + } + }} + onOk={(e) => { + if (onOk?.(e) !== false) { + resolve?.() + } + }} + title={resolveComponent(title)} + footer={renderFooter()} + > + + + + + ) + } + } + }) + ) + + const app = createApp({ + render() { + const target = getPortalContext(id as string) + if (target) { + return ( + + + + ) + } + return + } + }) + app.mount(env.root) + env.instance = app + } + openRef.value = visible + } + + const formDialog = { + forOpen: (middleware: IMiddleware) => { + if (isFn(middleware)) { + env.openMiddlewares.push(middleware) + } + return formDialog + }, + forConfirm: (middleware: IMiddleware) => { + if (isFn(middleware)) { + env.confirmMiddlewares.push(middleware) + } + return formDialog + }, + forCancel: (middleware: IMiddleware) => { + if (isFn(middleware)) { + env.cancelMiddlewares.push(middleware) + } + return formDialog + }, + open: async (props: IFormProps) => { + if (env.promise) return env.promise + env.promise = new Promise(async (resolve, reject) => { + try { + props = await loading(dialogProps.loadingText, () => + applyMiddleware(props, env.openMiddlewares) + ) + env.form = env.form || createForm(props) + } catch (e) { + reject(e) + } + + renderDialog( + true, + () => { + env.form + .submit(async () => { + await applyMiddleware(env.form, env.confirmMiddlewares) + resolve(toJS(env.form.values)) + formDialog.close() + }) + .catch(reject) + }, + async () => { + await loading(dialogProps.loadingText, () => + applyMiddleware(env.form, env.cancelMiddlewares) + ) + formDialog.close() + } + ) + }) + return env.promise + }, + close: () => { + if (!env.root) return + renderDialog(false) + } + } + return formDialog +} + +const DialogFooter = defineComponent({ + name: 'DialogFooter', + setup(props, { slots }) { + return () => { + return {slots.default?.()} + } + } +}) + +FormDialog.Footer = DialogFooter +FormDialog.Portal = createPortalProvider('form-dialog') + +export default FormDialog diff --git a/packages/components/src/form-dialog/style.ts b/packages/components/src/form-dialog/style.ts deleted file mode 100644 index c755661..0000000 --- a/packages/components/src/form-dialog/style.ts +++ /dev/null @@ -1,2 +0,0 @@ -import 'ant-design-vue/lib/modal/style/index' -import 'ant-design-vue/lib/button/style/index' diff --git a/packages/components/src/form-drawer/index.ts b/packages/components/src/form-drawer/index.ts deleted file mode 100644 index ea495ea..0000000 --- a/packages/components/src/form-drawer/index.ts +++ /dev/null @@ -1,379 +0,0 @@ -import { Button, Drawer, Space } from 'ant-design-vue' -import type { Drawer as DrawerProps } from 'ant-design-vue/types/drawer' -import { FormProvider, h, Fragment } from '@formily/vue' -import { observer } from '@formily/reactive-vue' -import type { IMiddleware } from '@formily/shared' -import { isNum, isStr, isBool, isFn, applyMiddleware } from '@formily/shared' -import { toJS } from '@formily/reactive' -import type { Form, IFormProps } from '@formily/core' -import { createForm } from '@formily/core' -import type { Component, VNode } from 'vue' -import Vue from 'vue' -import { stylePrefix } from '../__builtins__/configs' -import { defineComponent } from '@vue/composition-api' -import { Portal, PortalTarget } from 'portal-vue' - -import { - isValidElement, - resolveComponent, - createPortalProvider, - getProtalContext, - loading, -} from '../__builtins__/shared' - -const PORTAL_TARGET_NAME = 'FormDrawerFooter' - -type FormDrawerRenderer = VNode | ((form: Form) => VNode) - -type DrawerTitle = string | number | Component | VNode | (() => VNode) - -const isDrawerTitle = (props: any): props is DrawerTitle => { - return isNum(props) || isStr(props) || isBool(props) || isValidElement(props) -} - -const getDrawerProps = (props: any): IDrawerProps => { - if (isDrawerTitle(props)) { - return { - title: props, - } as IDrawerProps - } else { - return props - } -} - -export interface IFormDrawer { - forOpen(middleware: IMiddleware): IFormDrawer - forConfirm(middleware: IMiddleware): IFormDrawer - forCancel(middleware: IMiddleware): IFormDrawer - open(props?: IFormProps): Promise - close(): void -} - -export interface IDrawerProps extends DrawerProps { - onOk?: (event?: MouseEvent) => void | boolean - onClose?: (event?: MouseEvent) => void | boolean - loadingText?: string -} - -export function FormDrawer( - title: IDrawerProps, - id: string, - renderer: FormDrawerRenderer -): IFormDrawer -export function FormDrawer( - title: IDrawerProps, - renderer: FormDrawerRenderer -): IFormDrawer -export function FormDrawer( - title: DrawerTitle, - id: string, - renderer: FormDrawerRenderer -): IFormDrawer -export function FormDrawer( - title: DrawerTitle, - renderer: FormDrawerRenderer -): IFormDrawer - -export function FormDrawer( - title: DrawerTitle | IDrawerProps, - id: string | symbol | FormDrawerRenderer, - renderer?: FormDrawerRenderer -): IFormDrawer { - if (isFn(id) || isValidElement(id)) { - renderer = id as FormDrawerRenderer - id = 'form-drawer' - } - - const prefixCls = `${stylePrefix}-form-drawer` - const env = { - root: document.createElement('div'), - form: null, - promise: null, - instance: null, - openMiddlewares: [], - confirmMiddlewares: [], - cancelMiddlewares: [], - } - - document.body.appendChild(env.root) - const props = getDrawerProps(title) - - const drawerProps = { - ...props, - width: '40%', - onClose: () => { - props.onClose?.() - // env.instance.$destroy() - // env.instance = null - // env.root?.parentNode?.removeChild(env.root) - // env.root = undefined - }, - afterVisibleChange: (visible: boolean) => { - props?.afterVisibleChange?.(visible) - if (visible) return - env.instance.$destroy() - env.instance = null - env.root?.parentNode?.removeChild(env.root) - env.root = undefined - }, - } - - const DrawerContent = observer( - defineComponent({ - setup() { - return () => - h( - Fragment, - {}, - { - default: () => resolveComponent(renderer, { form: env.form }), - } - ) - }, - }) - ) - - const renderDrawer = ( - visible = true, - resolve?: () => any, - reject?: () => any - ) => { - if (!env.instance) { - const ComponentConstructor = observer( - Vue.extend({ - props: ['drawerProps'], - data() { - return { - visible: false, - } - }, - render() { - const { - onOk, - onClose, - title, - footer, - okText = '确定', - okType = 'primary', - okButtonProps, - cancelButtonProps, - cancelText = '取消', - ...drawerProps - } = this.drawerProps - return h( - Drawer, - { - class: prefixCls, - props: { - ...drawerProps, - visible: this.visible, - }, - on: { - 'update:visible': (val) => { - this.visible = val - }, - close: (e) => { - if (onClose?.(e) !== false) { - reject?.() - } - }, - ok: (e) => { - if (onOk?.(e) !== false) { - resolve?.() - } - }, - }, - }, - { - default: () => - h( - FormProvider, - { - props: { - form: env.form, - }, - }, - { - default: () => [ - h( - 'div', - { - class: [`${prefixCls}-body`], - }, - { - default: () => h(DrawerContent, {}, {}), - } - ), - h( - 'div', - { - class: [`${prefixCls}-footer`], - }, - { - default: () => - h( - Space, - {}, - { - default: () => { - const FooterProtalTarget = h( - PortalTarget, - { - props: { - name: PORTAL_TARGET_NAME, - slim: true, - }, - }, - {} - ) - if (footer === null) { - return [null, FooterProtalTarget] - } else if (footer) { - return [ - resolveComponent(footer), - FooterProtalTarget, - ] - } - return [ - h( - Button, - { - attrs: cancelButtonProps, - on: { - click: (e) => { - onClose?.(e) - reject() - }, - }, - }, - { - default: () => - resolveComponent(cancelText), - } - ), - h( - Button, - { - attrs: { - ...okButtonProps, - type: okType, - loading: env.form.submitting, - }, - on: { - click: (e) => { - onOk?.(e) - resolve() - }, - }, - }, - { - default: () => - resolveComponent(okText), - } - ), - FooterProtalTarget, - ] - }, - } - ), - } - ), - ], - } - ), - title: () => - h(Fragment, {}, { default: () => resolveComponent(title) }), - } - ) - }, - }) - ) - env.instance = new ComponentConstructor({ - propsData: { - drawerProps, - }, - parent: getProtalContext(id as string | symbol), - }) - env.instance.$mount(env.root) - } - env.instance.visible = visible - } - - const formDrawer = { - forOpen: (middleware: IMiddleware) => { - if (isFn(middleware)) { - env.openMiddlewares.push(middleware) - } - return formDrawer - }, - forConfirm: (middleware: IMiddleware) => { - if (isFn(middleware)) { - env.confirmMiddlewares.push(middleware) - } - return formDrawer - }, - forCancel: (middleware: IMiddleware) => { - if (isFn(middleware)) { - env.cancelMiddlewares.push(middleware) - } - return formDrawer - }, - open: async (props: IFormProps) => { - if (env.promise) return env.promise - env.promise = new Promise(async (resolve, reject) => { - try { - props = await loading(drawerProps.loadingText, () => - applyMiddleware(props, env.openMiddlewares) - ) - env.form = env.form || createForm(props) - } catch (e) { - reject(e) - } - - renderDrawer( - true, - () => { - env.form - .submit(async () => { - await applyMiddleware(env.form, env.confirmMiddlewares) - resolve(toJS(env.form.values)) - formDrawer.close() - }) - .catch(reject) - }, - async () => { - formDrawer.close() - } - ) - }) - return env.promise - }, - close: () => { - if (!env.root) return - renderDrawer(false) - }, - } - return formDrawer -} - -const DrawerFooter = defineComponent({ - name: 'DrawerFooter', - setup(props, { slots }) { - return () => { - return h( - Portal, - { - props: { - to: PORTAL_TARGET_NAME, - }, - }, - slots - ) - } - }, -}) - -FormDrawer.Footer = DrawerFooter -FormDrawer.Portal = createPortalProvider('form-drawer') - -export default FormDrawer diff --git a/packages/components/src/form-drawer/index.tsx b/packages/components/src/form-drawer/index.tsx new file mode 100644 index 0000000..da0ac5b --- /dev/null +++ b/packages/components/src/form-drawer/index.tsx @@ -0,0 +1,300 @@ +import type { Form, IFormProps } from '@formily/core' +import { createForm } from '@formily/core' +import { toJS } from '@formily/reactive' +import { observer } from '@formily/reactive-vue' +import type { IMiddleware } from '@formily/shared' +import { applyMiddleware, isBool, isFn, isNum, isStr } from '@formily/shared' +import { FormProvider } from '@formily/vue' +import type { DrawerProps } from 'ant-design-vue' +import { Button, Drawer, Space } from 'ant-design-vue' +import type { App, Component, VNode } from 'vue' +import { Teleport, createApp, defineComponent, ref } from 'vue' +import { usePrefixCls } from '../__builtins__' +import { + createPortalProvider, + getPortalContext, + isValidElement, + loading, + resolveComponent +} from '../__builtins__/shared' + +const PORTAL_TARGET_NAME = 'FormDrawerFooter' + +type FormDrawerRenderer = VNode | ((form: Form) => VNode) + +type DrawerTitle = string | number | Component | VNode | (() => VNode) + +const isDrawerTitle = (props: any): props is DrawerTitle => { + return isNum(props) || isStr(props) || isBool(props) || isValidElement(props) +} + +const getDrawerProps = (props: any): IDrawerProps => { + if (isDrawerTitle(props)) { + return { + title: props + } as IDrawerProps + } else { + return props + } +} + +export interface IFormDrawer { + forOpen(middleware: IMiddleware): IFormDrawer + forConfirm(middleware: IMiddleware): IFormDrawer + forCancel(middleware: IMiddleware): IFormDrawer + open(props?: IFormProps): Promise + close(): void +} + +export interface IDrawerProps extends DrawerProps { + onOk?: (event?: MouseEvent) => void | boolean + onClose?: (event?: MouseEvent) => void | boolean + loadingText?: string +} + +export function FormDrawer( + title: IDrawerProps, + id: string, + renderer: FormDrawerRenderer +): IFormDrawer +export function FormDrawer(title: IDrawerProps, renderer: FormDrawerRenderer): IFormDrawer +export function FormDrawer( + title: DrawerTitle, + id: string, + renderer: FormDrawerRenderer +): IFormDrawer +export function FormDrawer(title: DrawerTitle, renderer: FormDrawerRenderer): IFormDrawer + +export function FormDrawer( + title: DrawerTitle | IDrawerProps, + id: string | symbol | FormDrawerRenderer, + renderer?: FormDrawerRenderer +): IFormDrawer { + if (isFn(id) || isValidElement(id)) { + renderer = id as FormDrawerRenderer + id = 'form-drawer' + } + + const prefixCls = usePrefixCls('formily-form-drawer') + const env = { + root: document.createElement('div'), + form: null, + promise: null, + instance: null as App, + openMiddlewares: [], + confirmMiddlewares: [], + cancelMiddlewares: [] + } + + document.body.appendChild(env.root) + const props = getDrawerProps(title) + + const drawerProps: IDrawerProps = { + ...props, + width: '40%', + onClose: () => { + props.onClose?.() + }, + onAfterOpenChange: (visible: boolean) => { + props?.onAfterOpenChange?.(visible) + if (visible) return + setTimeout(() => { + env.instance.unmount() + env.instance = null + env.root?.parentNode?.removeChild(env.root) + env.root = undefined + }, 500) + } + } + + const DrawerContent = observer( + defineComponent({ + setup() { + return () => <>{resolveComponent(renderer, { form: env.form })} + } + }) + ) + const openRef = ref(false) + + const renderDrawer = (visible = true, resolve?: () => any, reject?: () => any) => { + if (!env.instance) { + const ComponentConstructor = observer( + defineComponent({ + props: ['drawerProps'], + + setup(props) { + return () => { + const { + onOk, + onClose, + title, + footer, + okText = '确定', + okType = 'primary', + okButtonProps, + cancelButtonProps, + cancelText = '取消', + ...drawerProps + } = props.drawerProps + return ( + { + // openRef.value = val + // }} + onClose={(e: MouseEvent) => { + if (onClose?.(e) !== false) { + reject?.() + } + }} + onOk={(e) => { + if (onOk?.(e) !== false) { + resolve?.() + } + }} + title={resolveComponent(title)} + > + +
+ +
+
+ + {footer === null ? ( +
+ ) : footer ? ( + <> + {resolveComponent(footer)} +
+ + ) : ( + <> + + +
+ + )} +
+
+
+
+ ) + } + } + }) + ) + + const app = createApp( + { + render() { + const target = getPortalContext(id as string) + if (target) { + return ( + + + + ) + } + return + } + }, + { + drawerProps + } + ) + env.instance = app + app.mount(env.root) + } + openRef.value = visible + } + + const formDrawer = { + forOpen: (middleware: IMiddleware) => { + if (isFn(middleware)) { + env.openMiddlewares.push(middleware) + } + return formDrawer + }, + forConfirm: (middleware: IMiddleware) => { + if (isFn(middleware)) { + env.confirmMiddlewares.push(middleware) + } + return formDrawer + }, + forCancel: (middleware: IMiddleware) => { + if (isFn(middleware)) { + env.cancelMiddlewares.push(middleware) + } + return formDrawer + }, + open: async (props: IFormProps) => { + if (env.promise) return env.promise + env.promise = new Promise(async (resolve, reject) => { + try { + props = await loading(drawerProps.loadingText, () => + applyMiddleware(props, env.openMiddlewares) + ) + env.form = env.form || createForm(props) + } catch (e) { + reject(e) + } + + renderDrawer( + true, + () => { + env.form + .submit(async () => { + await applyMiddleware(env.form, env.confirmMiddlewares) + resolve(toJS(env.form.values)) + formDrawer.close() + }) + .catch(reject) + }, + async () => { + formDrawer.close() + } + ) + }) + return env.promise + }, + close: () => { + if (!env.root) return + renderDrawer(false) + } + } + return formDrawer +} + +const DrawerFooter = defineComponent({ + name: 'DrawerFooter', + setup(props, { slots }) { + return () => { + return {slots.default?.()} + } + } +}) + +FormDrawer.Footer = DrawerFooter +FormDrawer.Portal = createPortalProvider('form-drawer') + +export default FormDrawer diff --git a/packages/components/src/form-drawer/style.less b/packages/components/src/form-drawer/style.less deleted file mode 100644 index 0db2d2b..0000000 --- a/packages/components/src/form-drawer/style.less +++ /dev/null @@ -1,29 +0,0 @@ -@import '../__builtins__/styles/common.less'; - -.@{formily-prefix}-form-drawer { - .@{ant-prefix}-drawer-wrapper-body { - display: flex; - flex-direction: column; - } - .@{ant-prefix}-drawer-body { - display: flex; - flex-direction: column; - flex: 1; - padding: 0; - overflow: auto; - } - - &-body { - flex: 1; - overflow: auto; - padding: @drawer-body-padding; - } - - &-footer { - border-top: 1px solid @border-color-base; - padding: @drawer-body-padding; - display: flex; - justify-content: flex-end; - align-items: center; - } -} diff --git a/packages/components/src/form-drawer/style.ts b/packages/components/src/form-drawer/style.ts deleted file mode 100644 index 3f6748c..0000000 --- a/packages/components/src/form-drawer/style.ts +++ /dev/null @@ -1,3 +0,0 @@ -import 'ant-design-vue/lib/button/style/index' -import 'ant-design-vue/lib/drawer/style/index' -import './style.less' diff --git a/packages/components/src/form-grid/index.ts b/packages/components/src/form-grid/index.tsx similarity index 54% rename from packages/components/src/form-grid/index.ts rename to packages/components/src/form-grid/index.tsx index c0c8c6d..0633288 100644 --- a/packages/components/src/form-grid/index.ts +++ b/packages/components/src/form-grid/index.tsx @@ -1,22 +1,12 @@ -import type { InjectionKey, Ref } from '@vue/composition-api' -import { - defineComponent, - provide, - ref, - onMounted, - computed, - watchEffect, -} from '@vue/composition-api' -import { h } from '@formily/vue' -import { observer } from '@formily/reactive-vue' -import { markRaw } from '@formily/reactive' import type { IGridOptions } from '@formily/grid' import { Grid } from '@formily/grid' -import { stylePrefix } from '../__builtins__/configs' -import { composeExport } from '../__builtins__/shared' +import { markRaw } from '@formily/reactive' +import { observer } from '@formily/reactive-vue' +import type { InjectionKey, PropType, Ref } from 'vue' +import { computed, defineComponent, inject, onMounted, provide, ref, watchEffect } from 'vue' +import { composeExport, usePrefixCls } from '../__builtins__' import { useFormLayout } from '../form-layout' -import { inject } from '@vue/composition-api' -import type { PropType } from '@vue/composition-api' +import useStyle from './style' export interface IFormGridProps extends IGridOptions { grid?: Grid @@ -24,12 +14,7 @@ export interface IFormGridProps extends IGridOptions { className?: string } -const FormGridSymbol: InjectionKey>> = - Symbol('FormGridContext') - -interface GridColumnProps { - gridSpan: number -} +const FormGridSymbol: InjectionKey>> = Symbol('FormGridContext') export const createFormGrid = (props: IFormGridProps): Grid => { return markRaw(new Grid(props)) @@ -52,50 +37,49 @@ export const useGridColumn = (gridSpan = 1) => { } const FormGridInner = observer( - // eslint-disable-next-line vue/one-component-per-file defineComponent({ name: 'FormGrid', props: { columnGap: { - type: Number, + type: Number }, rowGap: { - type: Number, + type: Number }, minColumns: { - type: [Number, Array], + type: [Number, Array] }, minWidth: { - type: [Number, Array], + type: [Number, Array] }, maxColumns: { - type: [Number, Array], + type: [Number, Array] }, maxWidth: { - type: [Number, Array], + type: [Number, Array] }, breakpoints: { - type: Array, + type: Array }, colWrap: { type: Boolean, - default: true, + default: true }, strictAutoFit: { type: Boolean, - default: false, + default: false }, shouldVisible: { type: Function as PropType, default() { return () => true - }, + } }, grid: { - type: Object as PropType>, - }, + type: Object as PropType> + } }, - setup(props: IFormGridProps) { + setup(props, { slots }) { const layout = useFormLayout() const gridInstance = computed(() => { @@ -105,78 +89,60 @@ const FormGridInner = observer( newProps[key] = props[key] } }) - const options = { + const options: any = { columnGap: layout.value?.gridColumnGap ?? 8, rowGap: layout.value?.gridRowGap ?? 4, - ...newProps, + ...newProps } return markRaw(options?.grid ? options.grid : new Grid(options)) }) - const prefixCls = `${stylePrefix}-form-grid` - const root = ref(null) + const prefixCls = usePrefixCls('formily-form-grid') + const [wrapSSR, hashId] = useStyle(prefixCls) + const rootRef = ref(null) provide(FormGridSymbol, gridInstance) onMounted(() => { watchEffect((onInvalidate) => { - const dispose = gridInstance.value.connect(root.value) + const dispose = gridInstance.value.connect(rootRef.value) onInvalidate(() => { dispose() }) }) }) - return { - prefixCls, - root, - gridInstance, + return () => { + return wrapSSR( +
+ {slots.default?.()} +
+ ) } - }, - render() { - const { prefixCls, gridInstance } = this - return h( - 'div', - { - attrs: { - class: `${prefixCls}`, - }, - style: { - gridTemplateColumns: gridInstance.templateColumns, - gap: gridInstance.gap, - }, - ref: 'root', - }, - { - default: () => this.$slots.default, - } - ) - }, + } }) -) as any +) const FormGridColumn = observer( - // eslint-disable-next-line vue/one-component-per-file defineComponent({ name: 'FormGridColumn', props: { gridSpan: { type: Number, - default: 1, - }, + default: 1 + } }, - setup(props: GridColumnProps, { slots }) { + setup(props, { slots }) { return () => { - return h( - 'div', - { - attrs: { - 'data-grid-span': props.gridSpan, - }, - }, - slots - ) + return
{slots.default?.()}
} - }, + } }) ) @@ -184,7 +150,7 @@ export const FormGrid = composeExport(FormGridInner, { GridColumn: FormGridColumn, useGridSpan, useFormGrid, - createFormGrid, + createFormGrid }) export default FormGrid diff --git a/packages/components/src/form-grid/style.less b/packages/components/src/form-grid/style.less deleted file mode 100644 index 574e90f..0000000 --- a/packages/components/src/form-grid/style.less +++ /dev/null @@ -1,5 +0,0 @@ -@import '../__builtins__/styles/common.less'; - -.@{formily-prefix}-form-grid { - display: grid; -} diff --git a/packages/components/src/form-grid/style.ts b/packages/components/src/form-grid/style.ts index 1d62fa9..7f10de7 100644 --- a/packages/components/src/form-grid/style.ts +++ b/packages/components/src/form-grid/style.ts @@ -1 +1,9 @@ -import './style.less' +import { genStyleHook } from './../__builtins__' +export default genStyleHook('form-grid', (token) => { + const { componentCls } = token + return { + [`${componentCls}`]: { + display: 'grid' + } + } +}) diff --git a/packages/components/src/form-item/animation.less b/packages/components/src/form-item/animation.less deleted file mode 100644 index afe64c7..0000000 --- a/packages/components/src/form-item/animation.less +++ /dev/null @@ -1,72 +0,0 @@ -@-webkit-keyframes antShowHelpIn { - 0% { - -webkit-transform: translateY(-5px); - transform: translateY(-5px); - opacity: 0; - } - - to { - -webkit-transform: translateY(0); - transform: translateY(0); - opacity: 1; - } -} - -.@{form-item-cls}-help-appear, -.@{form-item-cls}-help-enter { - -webkit-animation-duration: 0.3s; - animation-duration: 0.3s; - -webkit-animation-fill-mode: both; - animation-fill-mode: both; - -webkit-animation-play-state: paused; - animation-play-state: paused; -} - -.@{form-item-cls}-help-appear.@{form-item-cls}-help-appear-active, -.@{form-item-cls}-help-enter.@{form-item-cls}-help-enter-active { - -webkit-animation-name: antShowHelpIn; - animation-name: antShowHelpIn; - -webkit-animation-play-state: running; - animation-play-state: running; -} - -.@{form-item-cls}-help-appear, -.@{form-item-cls}-help-enter { - opacity: 0; -} - -.@{form-item-cls}-help-appear, -.@{form-item-cls}-help-enter { - -webkit-animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1); - animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1); -} - -@keyframes antShowHelpIn { - 0% { - -webkit-transform: translateY(-5px); - transform: translateY(-5px); - opacity: 0; - } - - to { - -webkit-transform: translateY(0); - transform: translateY(0); - opacity: 1; - } -} - -@-webkit-keyframes antShowHelpOut { - to { - -webkit-transform: translateY(-5px); - transform: translateY(-5px); - opacity: 0; - } -} - -@keyframes antShowHelpOut { - to { - -webkit-transform: translateY(-5px); - transform: translateY(-5px); - opacity: 0; - } -} diff --git a/packages/components/src/form-item/grid.less b/packages/components/src/form-item/grid.less deleted file mode 100644 index a4dbe79..0000000 --- a/packages/components/src/form-item/grid.less +++ /dev/null @@ -1,173 +0,0 @@ -.@{form-item-cls} { - .@{form-item-cls}-item-col-24 { - -webkit-box-flex: 0; - -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; - } - - .@{form-item-cls}-item-col-23 { - -webkit-box-flex: 0; - -ms-flex: 0 0 95.83333333%; - flex: 0 0 95.83333333%; - max-width: 95.83333333%; - } - - .@{form-item-cls}-item-col-22 { - -webkit-box-flex: 0; - -ms-flex: 0 0 91.66666667%; - flex: 0 0 91.66666667%; - max-width: 91.66666667%; - } - - .@{form-item-cls}-item-col-21 { - -webkit-box-flex: 0; - -ms-flex: 0 0 87.5%; - flex: 0 0 87.5%; - max-width: 87.5%; - } - - .@{form-item-cls}-item-col-20 { - -webkit-box-flex: 0; - -ms-flex: 0 0 83.33333333%; - flex: 0 0 83.33333333%; - max-width: 83.33333333%; - } - - .@{form-item-cls}-item-col-19 { - -webkit-box-flex: 0; - -ms-flex: 0 0 79.16666667%; - flex: 0 0 79.16666667%; - max-width: 79.16666667%; - } - - .@{form-item-cls}-item-col-18 { - -webkit-box-flex: 0; - -ms-flex: 0 0 75%; - flex: 0 0 75%; - max-width: 75%; - } - - .@{form-item-cls}-item-col-17 { - -webkit-box-flex: 0; - -ms-flex: 0 0 70.83333333%; - flex: 0 0 70.83333333%; - max-width: 70.83333333%; - } - - .@{form-item-cls}-item-col-16 { - -webkit-box-flex: 0; - -ms-flex: 0 0 66.66666667%; - flex: 0 0 66.66666667%; - max-width: 66.66666667%; - } - - .@{form-item-cls}-item-col-15 { - -webkit-box-flex: 0; - -ms-flex: 0 0 62.5%; - flex: 0 0 62.5%; - max-width: 62.5%; - } - - .@{form-item-cls}-item-col-14 { - -webkit-box-flex: 0; - -ms-flex: 0 0 58.33333333%; - flex: 0 0 58.33333333%; - max-width: 58.33333333%; - } - - .@{form-item-cls}-item-col-13 { - -webkit-box-flex: 0; - -ms-flex: 0 0 54.16666667%; - flex: 0 0 54.16666667%; - max-width: 54.16666667%; - } - - .@{form-item-cls}-item-col-12 { - -webkit-box-flex: 0; - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; - } - - .@{form-item-cls}-item-col-11 { - -webkit-box-flex: 0; - -ms-flex: 0 0 45.83333333%; - flex: 0 0 45.83333333%; - max-width: 45.83333333%; - } - - .@{form-item-cls}-item-col-10 { - -webkit-box-flex: 0; - -ms-flex: 0 0 41.66666667%; - flex: 0 0 41.66666667%; - max-width: 41.66666667%; - } - - .@{form-item-cls}-item-col-9 { - -webkit-box-flex: 0; - -ms-flex: 0 0 37.5%; - flex: 0 0 37.5%; - max-width: 37.5%; - } - - .@{form-item-cls}-item-col-8 { - -webkit-box-flex: 0; - -ms-flex: 0 0 33.33333333%; - flex: 0 0 33.33333333%; - max-width: 33.33333333%; - } - - .@{form-item-cls}-item-col-7 { - -webkit-box-flex: 0; - -ms-flex: 0 0 29.16666667%; - flex: 0 0 29.16666667%; - max-width: 29.16666667%; - } - - .@{form-item-cls}-item-col-6 { - -webkit-box-flex: 0; - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; - } - - .@{form-item-cls}-item-col-5 { - -webkit-box-flex: 0; - -ms-flex: 0 0 20.83333333%; - flex: 0 0 20.83333333%; - max-width: 20.83333333%; - } - - .@{form-item-cls}-item-col-4 { - -webkit-box-flex: 0; - -ms-flex: 0 0 16.66666667%; - flex: 0 0 16.66666667%; - max-width: 16.66666667%; - } - - .@{form-item-cls}-item-col-3 { - -webkit-box-flex: 0; - -ms-flex: 0 0 12.5%; - flex: 0 0 12.5%; - max-width: 12.5%; - } - - .@{form-item-cls}-item-col-2 { - -webkit-box-flex: 0; - -ms-flex: 0 0 8.33333333%; - flex: 0 0 8.33333333%; - max-width: 8.33333333%; - } - - .@{form-item-cls}-item-col-1 { - -webkit-box-flex: 0; - -ms-flex: 0 0 4.16666667%; - flex: 0 0 4.16666667%; - max-width: 4.16666667%; - } - - .@{form-item-cls}-item-col-0 { - display: none; - } -} diff --git a/packages/components/src/form-item/index.ts b/packages/components/src/form-item/index.ts deleted file mode 100644 index efed8b1..0000000 --- a/packages/components/src/form-item/index.ts +++ /dev/null @@ -1,567 +0,0 @@ -import type { Ref } from '@vue/composition-api' -import { - ref, - defineComponent, - onMounted, - onBeforeUnmount, - watch, - provide, -} from '@vue/composition-api' -import { isVoidField } from '@formily/core' -import { connect, mapProps, h } from '@formily/vue' -import { useFormLayout, FormLayoutShallowContext } from '../form-layout' -import { composeExport, resolveComponent } from '../__builtins__/shared' -import { stylePrefix } from '../__builtins__/configs' -import type { Component } from 'vue' -import { Tooltip } from 'ant-design-vue' -import ResizeObserver from 'resize-observer-polyfill' - -export type FormItemProps = { - className?: string - required?: boolean - label?: string | Component - colon?: boolean - tooltip?: string | Component - layout?: 'vertical' | 'horizontal' | 'inline' - labelStyle?: Record - labelAlign?: 'left' | 'right' - labelWrap?: boolean - labelWidth?: number - wrapperWidth?: number - labelCol?: number - wrapperCol?: number - wrapperAlign?: 'left' | 'right' - wrapperWrap?: boolean - wrapperStyle?: Record - fullness?: boolean - addonBefore?: string | Component - addonAfter?: string | Component - size?: 'small' | 'default' | 'large' - extra?: string - feedbackText?: string | Component - feedbackLayout?: 'loose' | 'terse' | 'popover' | 'none' | (string & unknown) - feedbackStatus?: - | 'error' - | 'warning' - | 'success' - | 'pending' - | (string & unknown) - tooltipLayout?: 'icon' | 'text' - feedbackIcon?: string | Component - asterisk?: boolean - gridSpan?: number - bordered?: boolean - inset?: boolean -} - -const useOverflow = (containerRef: Ref) => { - const overflow = ref(false) - let resizeObserver: ResizeObserver | undefined - - const cleanup = () => { - if (resizeObserver) { - resizeObserver.unobserve(containerRef.value) - resizeObserver = null - } - } - - const observer = () => { - const container = containerRef.value - const content = container.querySelector('label') - const containerWidth = container.getBoundingClientRect().width - const contentWidth = content?.getBoundingClientRect().width - - if (containerWidth !== 0) { - if (contentWidth > containerWidth) { - overflow.value = true - } else { - overflow.value = false - } - } - } - - const stopWatch = watch( - () => containerRef.value, - (el) => { - cleanup() - - if (el) { - resizeObserver = new ResizeObserver(observer) - resizeObserver.observe(el) - } - }, - { immediate: true, flush: 'post' } - ) - - onBeforeUnmount(() => { - cleanup() - stopWatch() - }) - - return overflow -} - -const ICON_MAP = { - error: () => h('i', { class: 'el-icon-circle-close' }, {}), - success: () => h('i', { class: 'el-icon-circle-check' }, {}), - warning: () => h('i', { class: 'el-icon-warning-outline' }, {}), -} - -export const FormBaseItem = defineComponent({ - name: 'FormItem', - props: { - className: {}, - required: {}, - label: {}, - colon: {}, - layout: {}, - tooltip: {}, - labelStyle: {}, - labelAlign: {}, - labelWrap: {}, - labelWidth: {}, - wrapperWidth: {}, - labelCol: {}, - wrapperCol: {}, - wrapperAlign: {}, - wrapperWrap: {}, - wrapperStyle: {}, - fullness: {}, - addonBefore: {}, - addonAfter: {}, - size: {}, - extra: {}, - feedbackText: {}, - feedbackLayout: {}, - tooltipLayout: {}, - feedbackStatus: {}, - feedbackIcon: {}, - asterisk: {}, - gridSpan: {}, - bordered: { default: true }, - inset: { default: false }, - }, - setup(props, { slots, refs }) { - const active = ref(false) - const deepLayoutRef = useFormLayout() - - const prefixCls = `${stylePrefix}-form-item` - - const containerRef = ref(null) - const overflow = useOverflow(containerRef) - - onMounted(() => { - containerRef.value = refs.labelContainer - }) - - provide(FormLayoutShallowContext, ref(null)) - - return () => { - const gridStyles: Record = {} - - const deepLayout = deepLayoutRef.value - const { - label, - colon = deepLayout.colon ?? true, - layout = deepLayout.layout ?? 'horizontal', - tooltip, - labelStyle = {}, - labelWrap = deepLayout.labelWrap ?? false, - labelWidth = deepLayout.labelWidth, - wrapperWidth = deepLayout.wrapperWidth, - labelCol = deepLayout.labelCol, - wrapperCol = deepLayout.wrapperCol, - wrapperAlign = deepLayout.wrapperAlign ?? 'left', - wrapperWrap = deepLayout.wrapperWrap, - wrapperStyle = {}, - fullness = deepLayout.fullness, - addonBefore, - addonAfter, - size = deepLayout.size, - extra, - feedbackText, - feedbackLayout = deepLayout.feedbackLayout ?? 'loose', - tooltipLayout = deepLayout.tooltipLayout ?? 'icon', - feedbackStatus, - feedbackIcon, - asterisk, - bordered = deepLayout.bordered, - inset = deepLayout.inset, - } = props - const labelAlign = - deepLayout.layout === 'vertical' - ? props.labelAlign ?? deepLayout.labelAlign ?? 'left' - : props.labelAlign ?? deepLayout.labelAlign ?? 'right' - - // 固定宽度 - let enableCol = false - if (labelWidth || wrapperWidth) { - if (labelWidth) { - labelStyle.width = `${labelWidth}px` - labelStyle.maxWidth = `${labelWidth}px` - } - if (wrapperWidth) { - wrapperStyle.width = `${wrapperWidth}px` - wrapperStyle.maxWidth = `${wrapperWidth}px` - } - // 栅格模式 - } else if (labelCol || wrapperCol) { - enableCol = true - } - - const formatChildren = - feedbackLayout === 'popover' - ? h( - 'el-popover', - { - props: { - disabled: !feedbackText, - placement: 'top', - }, - }, - { - reference: () => - h('div', {}, { default: () => slots.default?.() }), - default: () => [ - h( - 'div', - { - class: { - [`${prefixCls}-${feedbackStatus}-help`]: - !!feedbackStatus, - [`${prefixCls}-help`]: true, - }, - }, - { - default: () => [ - feedbackStatus && - ['error', 'success', 'warning'].includes(feedbackStatus) - ? ICON_MAP[ - feedbackStatus as 'error' | 'success' | 'warning' - ]() - : '', - resolveComponent(feedbackText), - ], - } - ), - ], - } - ) - : slots.default?.() - - const renderLabelText = () => { - const labelChildren = h( - 'div', - { - class: `${prefixCls}-label-content`, - ref: 'labelContainer', - }, - { - default: () => [ - asterisk && - h( - 'span', - { class: `${prefixCls}-asterisk` }, - { default: () => ['*'] } - ), - h('label', {}, { default: () => [resolveComponent(label)] }), - ], - } - ) - const isTextTooltip = tooltip && tooltipLayout === 'text' - if (isTextTooltip || overflow.value) { - return h( - Tooltip, - { - props: { - placement: 'top', - }, - }, - { - default: () => [labelChildren], - content: () => - h( - 'div', - {}, - { - default: () => [ - overflow.value && resolveComponent(label), - isTextTooltip && resolveComponent(tooltip), - ], - } - ), - } - ) - } else { - return labelChildren - } - } - const renderTooltipIcon = () => { - if (tooltip && tooltipLayout === 'icon') { - return h( - 'span', - { - class: `${prefixCls}-label-tooltip`, - }, - { - default: () => [ - h( - Tooltip, - { - props: { - placement: 'top', - }, - }, - { - default: () => [h('i', { class: 'el-icon-info' }, {})], - content: () => - h( - 'div', - { - class: `${prefixCls}-label-tooltip-content`, - }, - { - default: () => [resolveComponent(tooltip)], - } - ), - } - ), - ], - } - ) - } - } - const renderLabel = - label && - h( - 'div', - { - class: { - [`${prefixCls}-label`]: true, - [`${prefixCls}-label-tooltip`]: - (tooltip && tooltipLayout === 'text') || overflow.value, - [`${prefixCls}-item-col-${labelCol}`]: enableCol && !!labelCol, - }, - style: labelStyle, - }, - { - default: () => [ - // label content - renderLabelText(), - // label tooltip - renderTooltipIcon(), - // label colon - label && - h( - 'span', - { - class: `${prefixCls}-colon`, - }, - { default: () => [colon ? ':' : ''] } - ), - ], - } - ) - - const renderFeedback = - !!feedbackText && - feedbackLayout !== 'popover' && - feedbackLayout !== 'none' && - h( - 'div', - { - class: { - [`${prefixCls}-${feedbackStatus}-help`]: !!feedbackStatus, - [`${prefixCls}-help`]: true, - [`${prefixCls}-help-enter`]: true, - [`${prefixCls}-help-enter-active`]: true, - }, - }, - { default: () => [resolveComponent(feedbackText)] } - ) - - const renderExtra = - extra && - h('div', { class: `${prefixCls}-extra` }, { default: () => [extra] }) - const renderContent = h( - 'div', - { - class: { - [`${prefixCls}-control`]: true, - [`${prefixCls}-item-col-${wrapperCol}`]: enableCol && !!wrapperCol, - }, - }, - { - default: () => [ - h( - 'div', - { class: `${prefixCls}-control-content` }, - { - default: () => [ - addonBefore && - h( - 'div', - { class: `${prefixCls}-addon-before` }, - { - default: () => [resolveComponent(addonBefore)], - } - ), - h( - 'div', - { - class: { - [`${prefixCls}-control-content-component`]: true, - [`${prefixCls}-control-content-component-has-feedback-icon`]: - !!feedbackIcon, - }, - style: wrapperStyle, - }, - { - default: () => [ - formatChildren, - feedbackIcon && - h( - 'div', - { class: `${prefixCls}-feedback-icon` }, - { - default: () => [ - typeof feedbackIcon === 'string' - ? h('i', { class: feedbackIcon }, {}) - : resolveComponent(feedbackIcon), - ], - } - ), - ], - } - ), - addonAfter && - h( - 'div', - { class: `${prefixCls}-addon-after` }, - { - default: () => [resolveComponent(addonAfter)], - } - ), - ], - } - ), - renderFeedback, - renderExtra, - ], - } - ) - return h( - 'div', - { - style: { - ...gridStyles, - }, - attrs: { - 'data-grid-span': props.gridSpan, - }, - class: { - [`${prefixCls}`]: true, - [`${prefixCls}-layout-${layout}`]: true, - [`${prefixCls}-${feedbackStatus}`]: !!feedbackStatus, - [`${prefixCls}-feedback-has-text`]: !!feedbackText, - [`${prefixCls}-size-${size}`]: !!size, - [`${prefixCls}-feedback-layout-${feedbackLayout}`]: - !!feedbackLayout, - [`${prefixCls}-fullness`]: !!fullness || !!inset || !!feedbackIcon, - [`${prefixCls}-inset`]: !!inset, - [`${prefixCls}-active`]: active.value, - [`${prefixCls}-inset-active`]: !!inset && active.value, - [`${prefixCls}-label-align-${labelAlign}`]: true, - [`${prefixCls}-control-align-${wrapperAlign}`]: true, - [`${prefixCls}-label-wrap`]: !!labelWrap, - [`${prefixCls}-control-wrap`]: !!wrapperWrap, - [`${prefixCls}-bordered-none`]: - bordered === false || !!inset || !!feedbackIcon, - [`${props.className}`]: !!props.className, - }, - on: { - '!focus': () => { - if (feedbackIcon || inset) { - active.value = true - } - }, - '!blur': () => { - if (feedbackIcon || inset) { - active.value = false - } - }, - }, - }, - { - default: () => [renderLabel, renderContent], - } - ) - } - }, -}) - -const Item = connect( - FormBaseItem, - mapProps( - { validateStatus: true, title: 'label', required: true }, - (props, field) => { - if (isVoidField(field)) return props - if (!field) return props - const takeMessage = () => { - const split = (messages: any[]) => { - return messages.reduce((buf, text, index) => { - if (!text) return buf - return index < messages.length - 1 - ? buf.concat([text, ', ']) - : buf.concat([text]) - }, []) - } - if (field.validating) return - if (props.feedbackText) return props.feedbackText - if (field.selfErrors.length) return split(field.selfErrors) - if (field.selfWarnings.length) return split(field.selfWarnings) - if (field.selfSuccesses.length) return split(field.selfSuccesses) - } - const errorMessages = takeMessage() - return { - feedbackText: Array.isArray(errorMessages) - ? errorMessages.join(', ') - : errorMessages, - extra: props.extra || field.description, - } - }, - (props, field) => { - if (isVoidField(field)) return props - if (!field) return props - return { - feedbackStatus: - field.validateStatus === 'validating' - ? 'pending' - : (Array.isArray(field.decorator) && - field.decorator[1]?.feedbackStatus) || - field.validateStatus, - } - }, - (props, field) => { - if (isVoidField(field)) return props - - if (!field) return props - let asterisk = false - if (field.required && field.pattern !== 'readPretty') { - asterisk = true - } - if ('asterisk' in props) { - asterisk = props.asterisk - } - return { - asterisk, - } - } - ) -) - -export const FormItem = composeExport(Item, { - BaseItem: FormBaseItem, -}) - -export default FormItem diff --git a/packages/components/src/form-item/index.tsx b/packages/components/src/form-item/index.tsx new file mode 100644 index 0000000..5cda239 --- /dev/null +++ b/packages/components/src/form-item/index.tsx @@ -0,0 +1,454 @@ +import { + CheckCircleOutlined, + CloseCircleOutlined, + ExclamationCircleOutlined, + QuestionCircleOutlined +} from '@ant-design/icons-vue' +import { isVoidField } from '@formily/core' +import { connect, mapProps } from '@formily/vue' +import { Popover, Tooltip } from 'ant-design-vue' +import ResizeObserver from 'resize-observer-polyfill' +import type { Component, Ref } from 'vue' +import { defineComponent, onBeforeUnmount, provide, ref, watch } from 'vue' +import { composeExport, resolveComponent, usePrefixCls } from '../__builtins__' +import { FormLayoutShallowContext, useFormLayout } from '../form-layout' +import useStyle from './style' + +export type FormItemProps = { + className?: string + required?: boolean + label?: string | Component + colon?: boolean + tooltip?: string | Component + layout?: 'vertical' | 'horizontal' | 'inline' + labelStyle?: Record + labelAlign?: 'left' | 'right' + labelWrap?: boolean + labelWidth?: number + wrapperWidth?: number + labelCol?: number + wrapperCol?: number + wrapperAlign?: 'left' | 'right' + wrapperWrap?: boolean + wrapperStyle?: Record + fullness?: boolean + addonBefore?: string | Component + addonAfter?: string | Component + size?: 'small' | 'default' | 'large' + extra?: string + feedbackText?: string | Component + feedbackLayout?: 'loose' | 'terse' | 'popover' | 'none' | (string & unknown) + feedbackStatus?: 'error' | 'warning' | 'success' | 'pending' | (string & unknown) + tooltipLayout?: 'icon' | 'text' + feedbackIcon?: string | Component + asterisk?: boolean + gridSpan?: number + bordered?: boolean + inset?: boolean +} + +const useOverflow = (containerRef: Ref) => { + const overflow = ref(false) + let resizeObserver: ResizeObserver | undefined + + const cleanup = () => { + if (resizeObserver && containerRef.value) { + resizeObserver.unobserve(containerRef.value) + resizeObserver = null + } + } + + const observer = () => { + const container = containerRef.value + if (!container) return + const content = container.querySelector('label') + const containerWidth = container.getBoundingClientRect().width + const contentWidth = content?.getBoundingClientRect().width + + if (containerWidth !== 0) { + if (+contentWidth.toFixed(2) > +containerWidth.toFixed(2)) { + overflow.value = true + } else { + overflow.value = false + } + } + } + + const stopWatch = watch( + () => containerRef.value, + (el) => { + cleanup() + + if (el) { + resizeObserver = new ResizeObserver(observer) + resizeObserver.observe(el) + } + }, + { immediate: true, flush: 'post' } + ) + + onBeforeUnmount(() => { + cleanup() + stopWatch() + }) + + return overflow +} + +const ICON_MAP = { + error: () => , + success: () => , + warning: () => +} + +export const FormBaseItem = defineComponent({ + name: 'FormItem', + props: { + className: {}, + required: {}, + label: {}, + colon: {}, + layout: {}, + tooltip: {}, + labelStyle: {}, + labelAlign: {}, + labelWrap: {}, + labelWidth: {}, + wrapperWidth: {}, + labelCol: {}, + wrapperCol: {}, + wrapperAlign: {}, + wrapperWrap: {}, + wrapperStyle: {}, + fullness: {}, + addonBefore: {}, + addonAfter: {}, + size: {}, + extra: {}, + feedbackText: {}, + feedbackLayout: {}, + tooltipLayout: {}, + feedbackStatus: {}, + feedbackIcon: {}, + asterisk: {}, + gridSpan: {}, + bordered: { default: true }, + inset: { default: false } + }, + setup(_props, { attrs, slots }) { + const props = _props as FormItemProps + const active = ref(false) + const deepLayoutRef = useFormLayout() + + const prefixCls = usePrefixCls('formily-form-item', attrs.prefixCls as string) + + const containerRef = ref() + const overflow = useOverflow(containerRef) + + provide(FormLayoutShallowContext, ref(null)) + + const [wrapSSR, hashId] = useStyle(prefixCls) + + return () => { + const deepLayout = deepLayoutRef.value + const { + label, + colon = deepLayout.colon ?? true, + layout = deepLayout.layout ?? 'horizontal', + tooltip, + labelStyle = {}, + labelWrap = deepLayout.labelWrap ?? false, + labelWidth = deepLayout.labelWidth, + wrapperWidth = deepLayout.wrapperWidth, + labelCol = deepLayout.labelCol, + wrapperCol = deepLayout.wrapperCol, + wrapperAlign = deepLayout.wrapperAlign ?? 'left', + wrapperWrap = deepLayout.wrapperWrap, + wrapperStyle = {}, + fullness = deepLayout.fullness, + addonBefore, + addonAfter, + size = deepLayout.size, + extra, + feedbackText, + feedbackLayout = deepLayout.feedbackLayout ?? 'loose', + tooltipLayout = deepLayout.tooltipLayout ?? 'icon', + feedbackStatus, + feedbackIcon, + asterisk, + bordered = deepLayout.bordered, + inset = deepLayout.inset + } = props + const labelAlign = + deepLayout.layout === 'vertical' + ? props.labelAlign ?? deepLayout.labelAlign ?? 'left' + : props.labelAlign ?? deepLayout.labelAlign ?? 'right' + + // 固定宽度 + let enableCol = false + + const getWidth = (width?: number | string) => { + if (Number.isNaN(+width)) { + return width === 'auto' ? undefined : width + } + return `${width}px` + } + + if (labelWidth || wrapperWidth) { + if (labelWidth) { + const _labelWidth = getWidth(labelWidth) + labelStyle.width = _labelWidth + labelStyle.maxWidth = _labelWidth + } + if (wrapperWidth) { + const _wrapperWidth = getWidth(wrapperWidth) + wrapperStyle.width = _wrapperWidth + wrapperStyle.maxWidth = _wrapperWidth + } + // 栅格模式 + } else if (labelCol || wrapperCol) { + enableCol = true + } + + const formatChildren = + feedbackLayout === 'popover' ? ( + + {feedbackStatus && ['error', 'success', 'warning'].includes(feedbackStatus) ? ( + {ICON_MAP[feedbackStatus]()} + ) : ( + '' + )} + {resolveComponent(feedbackText)} + + } + > +
{slots.default?.()}
+
+ ) : ( + slots.default?.() + ) + + const renderLabelText = () => { + const labelChildren = ( +
+ {asterisk && *} + +
+ ) + const isTextTooltip = tooltip && tooltipLayout === 'text' + if (isTextTooltip || overflow.value) { + return ( + + {overflow.value && resolveComponent(label)} + {isTextTooltip && resolveComponent(tooltip)} + + } + > + {labelChildren} + + ) + } else { + return labelChildren + } + } + const renderTooltipIcon = () => { + if (tooltip && tooltipLayout === 'icon') { + return ( + + + {resolveComponent(tooltip)} + + } + > + + + + ) + } + } + const renderLabel = label && ( +
+ {renderLabelText()} + {renderTooltipIcon()} + {label && {colon ? ':' : ''}} +
+ ) + + const renderFeedback = !!feedbackText && + feedbackLayout !== 'popover' && + feedbackLayout !== 'none' && ( +
+ {resolveComponent(feedbackText)} +
+ ) + + const renderExtra = extra &&
{resolveComponent(extra)}
+ const renderContent = ( +
+
+ {addonBefore && ( +
{resolveComponent(addonBefore)}
+ )} + { +
+ {formatChildren} + {feedbackIcon && ( +
+ {typeof feedbackIcon === 'string' ? ( + + ) : ( + resolveComponent(feedbackIcon) + )} +
+ )} +
+ } + {addonAfter && ( +
{resolveComponent(addonAfter)}
+ )} +
+ {renderFeedback} + {renderExtra} +
+ ) + return wrapSSR( +
{ + if (feedbackIcon || inset) { + active.value = true + } + }} + onBlur={() => { + if (feedbackIcon || inset) { + active.value = false + } + }} + > + {renderLabel} + {renderContent} +
+ ) + } + } +}) + +const Item = connect( + FormBaseItem, + mapProps( + { validateStatus: true, title: 'label', required: true }, + (props, field) => { + if (isVoidField(field)) return props + if (!field) return props + const takeMessage = () => { + const split = (messages: any[]) => { + return messages.reduce((buf, text, index) => { + if (!text) return buf + return index < messages.length - 1 ? buf.concat([text, ', ']) : buf.concat([text]) + }, []) + } + if (field.validating) return + if (props.feedbackText) return props.feedbackText + if (field.selfErrors.length) return split(field.selfErrors) + if (field.selfWarnings.length) return split(field.selfWarnings) + if (field.selfSuccesses.length) return split(field.selfSuccesses) + } + const errorMessages = takeMessage() + return { + feedbackText: Array.isArray(errorMessages) ? errorMessages.join(', ') : errorMessages, + extra: props.extra || field.description + } + }, + (props, field) => { + if (isVoidField(field)) return props + if (!field) return props + return { + feedbackStatus: + field.validateStatus === 'validating' + ? 'pending' + : (Array.isArray(field.decorator) && field.decorator[1]?.feedbackStatus) || + field.validateStatus + } + }, + (props, field) => { + if (isVoidField(field)) return props + + if (!field) return props + let asterisk = false + if (field.required && field.pattern !== 'readPretty') { + asterisk = true + } + if ('asterisk' in props) { + asterisk = props.asterisk + } + return { + asterisk + } + } + ) +) + +export const FormItem = composeExport(Item, { + BaseItem: FormBaseItem +}) + +export default FormItem diff --git a/packages/components/src/form-item/style.less b/packages/components/src/form-item/style.less deleted file mode 100644 index 8580c43..0000000 --- a/packages/components/src/form-item/style.less +++ /dev/null @@ -1,838 +0,0 @@ -@import '../__builtins__/styles/common.less'; -@import '~ant-design-vue/lib/style/themes/default.less'; -@import '~ant-design-vue/lib/input/style/mixin.less'; -@import './var.less'; -@import './grid.less'; -@import './animation.less'; - -.@{form-item-cls} { - display: flex; - margin-bottom: @form-item-margin-bottom - 2; - position: relative; - font-size: @font-size-base; - - &-label { - line-height: @height-base; - min-height: @height-base - 2; - } - - textarea.@{ant-prefix}-input { - height: auto; - } - - // input[type=file] - .@{ant-prefix}-upload { - background: transparent; - } - - .@{ant-prefix}-upload.@{ant-prefix}-upload-drag { - background: @background-color-light; - } - - input[type='radio'], - input[type='checkbox'] { - width: @font-size-base; - height: @font-size-base; - } - - // Radios and checkboxes on same line - .@{ant-prefix}-radio-inline, - .@{ant-prefix}-checkbox-inline { - display: inline-block; - margin-left: 8px; - font-weight: normal; - vertical-align: middle; - cursor: pointer; - - &:first-child { - margin-left: 0; - } - } - - .@{ant-prefix}-checkbox-vertical, - .@{ant-prefix}-radio-vertical { - display: block; - } - - .@{ant-prefix}-checkbox-vertical + .@{ant-prefix}-checkbox-vertical, - .@{ant-prefix}-radio-vertical + .@{ant-prefix}-radio-vertical { - margin-left: 0; - } - - .@{ant-prefix}-input-number { - width: 100%; - - + .@{ant-prefix}-form-text { - margin-left: 8px; - } - - &-handler-wrap { - z-index: 2; // https://github.com/ant-design/ant-design/issues/6289 - } - } - - .@{ant-prefix}-select, - .@{ant-prefix}-cascader-picker, - .@{ant-prefix}-picker { - width: 100%; - } - - // Don't impact select inside input group - .@{ant-prefix}-input-group .@{ant-prefix}-select, - .@{ant-prefix}-input-group .@{ant-prefix}-cascader-picker { - width: auto; - } -} - -.@{form-item-cls}-label { - position: relative; - display: flex; - - &-content { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - - &-tooltip { - cursor: help; - - * { - cursor: help; - } - - label { - border-bottom: 1px dashed currentColor; - } - } -} - -.@{form-item-cls}-label { - color: @heading-color; -} - -.@{form-item-cls}-label-align-left { - > .@{form-item-cls}-label { - justify-content: flex-start; - } -} - -.@{form-item-cls}-label-align-right { - > .@{form-item-cls}-label { - justify-content: flex-end; - } -} - -.@{form-item-cls}-label-wrap { - .@{form-item-cls}-label { - label { - white-space: pre-line; - word-break: break-all; - } - } -} - -.@{form-item-cls}-feedback-layout-terse { - margin-bottom: 8px; - - &.@{form-item-cls}-feedback-has-text:not(.@{form-item-cls}-inset) { - margin-bottom: 0; - } -} - -.@{form-item-cls}-feedback-layout-loose { - margin-bottom: 22px; - - &.@{form-item-cls}-feedback-has-text:not(.@{form-item-cls}-inset) { - margin-bottom: 0; - } -} - -.@{form-item-cls}-feedback-layout-none { - margin-bottom: 0px; - - &.@{form-item-cls}-feedback-has-text:not(.@{form-item-cls}-inset) { - margin-bottom: 0; - } -} - -.@{form-item-cls}-control { - flex: 1; - max-width: 100%; - - .@{form-item-cls}-control-content { - display: flex; - - .@{form-item-cls}-control-content-component { - width: 100%; - min-height: @height-base - 2; - line-height: @height-base + 2; - - &-has-feedback-icon { - flex: 1; - position: relative; - display: flex; - align-items: center; - } - } - - .@{form-item-cls}-addon-before { - margin-right: 8px; - display: inline-flex; - align-items: center; - min-height: @height-base; - flex-shrink: 0; - } - - .@{form-item-cls}-addon-after { - margin-left: 8px; - display: inline-flex; - align-items: center; - min-height: @height-base; - flex-shrink: 0; - } - } - - .@{form-item-cls}-help, - .@{form-item-cls}-extra { - min-height: 22px; - line-height: 22px; - color: @text-color-secondary; - } -} - -.@{form-item-cls}-size-small { - font-size: @font-size-sm; - - line-height: @height-sm; - - .@{form-item-cls}-label { - line-height: @height-sm; - min-height: @height-sm - 2; - } - - .@{form-item-cls}-control-content { - .@{form-item-cls}-control-content-component { - min-height: @height-sm - 2; - line-height: @height-sm + 2; - } - } - - .@{form-item-cls}-help, - .@{form-item-cls}-extra { - min-height: @height-sm - 4; - line-height: @height-sm - 4; - } - - .@{form-item-cls}-control-content { - min-height: @height-sm - 2; - } - - .@{form-item-cls}-label > label { - height: @height-sm - 2; - } - - .@{ant-prefix}-input-affix-wrapper, - .@{ant-prefix}-input-number, - .@{ant-prefix}-picker { - padding: 0px 11px; - - input { - height: @height-sm - 2; - font-size: @font-size-sm; - } - } - - .@{ant-prefix}-cascader-picker { - height: @height-sm - 2; - - input { - padding: 0 7px; - height: @height-sm - 2; - font-size: @font-size-sm; - } - } - - .@{ant-prefix}-select-single:not(.@{ant-prefix}-select-customize-input) - .@{ant-prefix}-select-selector { - padding: 0px 11px; - height: @height-sm - 2; - font-size: @font-size-sm; - line-height: @height-sm; - - .@{ant-prefix}-select-selection-search { - height: @height-sm; - line-height: @height-sm - 2; - - &-input { - height: @height-sm; - line-height: @height-sm - 2; - } - } - - .@{ant-prefix}-select-selection-placeholder { - line-height: @height-sm - 2; - height: @height-sm; - } - - .@{ant-prefix}-select-selection-item { - line-height: @height-sm - 2; - height: @height-sm; - } - } - - .@{ant-prefix}-select-multiple:not(.@{ant-prefix}-select-customize-input) - .@{ant-prefix}-select-selector { - padding: 0px 2px; - height: @height-sm - 2; - font-size: @font-size-sm; - line-height: @height-sm; - - &::after { - height: @height-sm - 8; - line-height: @height-sm - 8; - } - - .@{ant-prefix}-select-selection-search { - height: @height-sm - 8; - line-height: @height-sm - 8; - margin-inline-start: 0; - - &-input { - height: @height-sm - 12; - line-height: @height-sm - 12; - } - } - - .@{ant-prefix}-select-selection-placeholder { - line-height: @height-sm - 8; - height: @height-sm - 8; - left: 4px; - } - - .@{ant-prefix}-select-selection-overflow-item { - align-self: flex-start; - } - - .@{ant-prefix}-select-selection-item { - line-height: @height-sm - 10; - height: @height-sm - 8; - } - } - - &.@{form-item-cls}-feedback-layout-terse { - margin-bottom: 8px; - - &.@{form-item-cls}-feedback-has-text:not(.@{form-item-cls}-inset) { - margin-bottom: 0; - } - } - - &.@{form-item-cls}-feedback-layout-loose { - margin-bottom: @height-sm - 4; - - &.@{form-item-cls}-feedback-has-text:not(.@{form-item-cls}-inset) { - margin-bottom: 0; - } - } -} - -.@{form-item-cls}-size-large { - font-size: @font-size-lg; - line-height: @height-lg; - - .@{form-item-cls}-label { - line-height: @height-lg; - min-height: @height-lg - 2; - } - - .@{form-item-cls}-control-content { - .@{form-item-cls}-control-content-component { - min-height: @height-lg - 2; - line-height: @height-lg; - } - } - - .@{form-item-cls}-help, - .@{form-item-cls}-extra { - min-height: @form-item-margin-bottom; - line-height: @form-item-margin-bottom; - } - - .@{form-item-cls}-control-content { - min-height: @height-lg - 2; - } - - .@{ant-prefix}-input { - font-size: @font-size-lg; - } - - .@{ant-prefix}-input-number { - font-size: @font-size-lg; - input { - height: @height-lg - 2; - } - } - - .@{ant-prefix}-input-affix-wrapper, - .@{ant-prefix}-picker { - padding: 0px 11px; - line-height: @height-lg - 2; - - input { - height: @height-lg - 2; - font-size: @font-size-lg; - } - } - - .@{ant-prefix}-btn { - height: @height-lg; - padding: 0px 8px; - } - - .@{ant-prefix}-radio-button-wrapper { - height: @height-lg; - line-height: @height-lg; - } - - .@{ant-prefix}-cascader-picker { - height: @height-lg - 2; - - input { - padding: 0px 11px; - height: @height-lg - 2; - font-size: @font-size-lg; - } - } - - .@{ant-prefix}-select-single:not(.@{ant-prefix}-select-customize-input) - .@{ant-prefix}-select-selector { - padding: 0px 11px; - height: @height-lg; - font-size: @font-size-lg; - line-height: @height-lg; - - .@{ant-prefix}-select-selection-search { - height: @height-lg; - line-height: @height-lg - 2; - - &-input { - height: @height-lg; - line-height: @height-lg - 2; - } - } - - .@{ant-prefix}-select-selection-placeholder { - line-height: @height-lg - 2; - height: @height-lg; - } - - .@{ant-prefix}-select-selection-item { - line-height: @height-lg - 2; - height: @height-lg; - } - } - - .@{ant-prefix}-select-multiple:not(.@{ant-prefix}-select-customize-input) - .@{ant-prefix}-select-selector { - padding: 0px 2px; - height: @height-lg - 2; - font-size: @font-size-lg; - line-height: @height-lg; - - &::after { - height: @height-lg - 8; - line-height: @height-lg - 8; - } - - .@{ant-prefix}-select-selection-search { - height: @height-lg - 8; - line-height: @height-lg - 8; - - &-input { - height: @height-lg - 12; - line-height: @height-lg - 12; - } - } - - .@{ant-prefix}-select-selection-placeholder { - line-height: @height-lg - 8; - height: @height-lg - 8; - } - - .@{ant-prefix}-select-selection-overflow-item { - align-self: flex-start; - } - - .@{ant-prefix}-select-selection-item { - line-height: @height-lg - 10; - height: @height-lg - 8; - } - } - - &.@{form-item-cls}-feedback-layout-terse { - margin-bottom: 8px; - - &.@{form-item-cls}-feedback-has-text:not(.@{form-item-cls}-inset) { - margin-bottom: 0; - } - } - - &.@{form-item-cls}-feedback-layout-loose { - margin-bottom: @form-item-margin-bottom; - - &.@{form-item-cls}-feedback-has-text:not(.@{form-item-cls}-inset) { - margin-bottom: 0; - } - } -} - -.@{form-item-cls} { - &-layout-vertical { - display: block; - - .@{form-item-cls}-label { - min-height: @height-base - 10; - line-height: 1.5715; - } - } -} - -.@{form-item-cls}-feedback-layout-popover { - margin-bottom: 8px; -} - -.@{form-item-cls}-label-tooltip-icon { - margin-left: 4px; - color: #00000073; - display: flex; - align-items: center; - max-height: @height-base; - - span { - display: inline-flex; - } -} - -.@{form-item-cls}-control-align-left { - .@{form-item-cls}-control-content { - justify-content: flex-start; - } -} - -.@{form-item-cls}-control-align-right { - .@{form-item-cls}-control-content { - justify-content: flex-end; - } -} - -.@{form-item-cls}-control-wrap { - .@{form-item-cls}-control { - white-space: pre-line; - word-break: break-all; - } -} - -.@{form-item-cls}-asterisk { - color: @error-color; - margin-right: 4px; - display: inline-block; - font-family: SimSun, sans-serif; -} - -.@{form-item-cls}-colon { - margin-left: 2px; - margin-right: 8px; -} - -.@{form-item-cls}-help, -.@{form-item-cls}-extra { - clear: both; - min-height: @form-item-margin-bottom - 2; - color: rgba(0, 0, 0, 0.45); - transition: color 0.3s cubic-bezier(0.215, 0.61, 0.355, 1); - padding-top: 0px; -} - -.@{form-item-cls}-fullness { - > .@{form-item-cls}-control { - > .@{form-item-cls}-control-content { - > .@{form-item-cls}-control-content-component { - > *:first-child { - width: 100%; - } - } - } - } -} - -.@{form-item-cls}-control-content-component-has-feedback-icon { - border-radius: 2px; - border: 1px solid @border-color-base; - padding-right: 8px; - transition: all 0.3s; - touch-action: manipulation; - outline: none; - - .@{ant-prefix}-input-number, - .@{ant-prefix}-picker, - .@{ant-prefix}-cascader-picker:focus .@{ant-prefix}-cascader-input, - .@{ant-prefix}-select:not(.@{ant-prefix}-select-customize-input) - .@{ant-prefix}-select-selector, - .@{ant-prefix}-input-affix-wrapper, - .@{ant-prefix}-input { - border: none !important; - box-shadow: none !important; - } -} - -.@{form-item-cls}-bordered-none { - .@{ant-prefix}-input-number, - .@{ant-prefix}-input-affix-wrapper, - .@{ant-prefix}-picker, - .@{ant-prefix}-cascader-picker:focus .@{ant-prefix}-cascader-input, - .@{ant-prefix}-select:not(.@{ant-prefix}-select-customize-input) - .@{ant-prefix}-select-selector, - .@{ant-prefix}-input { - border: none !important; - box-shadow: none !important; - } - - .@{ant-prefix}-input-number-handler-wrap { - border: none !important; - - .@{ant-prefix}-input-number-handler { - border: none !important; - } - } -} - -.@{form-item-cls}-inset { - border-radius: 2px; - border: 1px solid @border-color-base; - padding-left: 12px; - transition: 0.3s all; - - .@{ant-prefix}-input-number, - .@{ant-prefix}-picker, - .@{ant-prefix}-cascader-picker:focus .@{ant-prefix}-cascader-input, - .@{ant-prefix}-select:not(.@{ant-prefix}-select-customize-input) - .@{ant-prefix}-select-selector, - .@{ant-prefix}-input-affix-wrapper, - .@{ant-prefix}-input { - border: none !important; - box-shadow: none !important; - } - - .@{ant-prefix}-input-number-handler-wrap { - border: none !important; - - .@{ant-prefix}-input-number-handler { - border: none !important; - } - } - - &:hover { - .hover(); - } -} - -.@{form-item-cls}-inset-active { - .active(); -} - -.@{form-item-cls}-active { - .@{form-item-cls}-control-content-component-has-feedback-icon { - .active(); - } - - .@{ant-prefix}-input-number, - .@{ant-prefix}-picker, - .@{ant-prefix}-cascader-picker:focus .@{ant-prefix}-cascader-input, - .@{ant-prefix}-select:not(.@{ant-prefix}-select-customize-input) - .@{ant-prefix}-select-selector, - .@{ant-prefix}-input { - .active(); - } -} - -.@{form-item-cls} { - &:hover { - .@{form-item-cls}-control-content-component-has-feedback-icon { - .hover(); - } - } -} - -.@{form-item-cls}-error { - .@{ant-prefix}-select-selector, - .@{ant-prefix}-cascader-picker, - .@{ant-prefix}-picker, - .@{ant-prefix}-input, - .@{ant-prefix}-input-number, - .@{ant-prefix}-input-affix-wrapper, - .@{ant-prefix}-input-affix-wrapper, - .@{ant-prefix}-input { - border-color: @error-color !important; - } - - .@{ant-prefix}-select-selector, - .@{ant-prefix}-cascader-picker, - .@{ant-prefix}-picker, - .@{ant-prefix}-input, - .@{ant-prefix}-input-number, - .@{ant-prefix}-input-affix-wrapper, - .@{ant-prefix}-input-affix-wrapper:hover, - .@{ant-prefix}-input:hover { - border-color: @error-color !important; - } - - .@{ant-prefix}-select:not(.@{ant-prefix}-select-disabled):not(.@{ant-prefix}-select-customize-input) { - .@{ant-prefix}-select-selector { - background-color: @form-error-input-bg; - border-color: @error-color !important; - } - - &.@{ant-prefix}-select-open .@{ant-prefix}-select-selector, - &.@{ant-prefix}-select-focused .@{ant-prefix}-select-selector { - .active(@error-color); - } - } - - .@{ant-prefix}-input-number, - .@{ant-prefix}-picker { - background-color: @form-error-input-bg; - border-color: @error-color; - - &-focused, - &:focus { - .active(@error-color); - } - - &:not([disabled]):hover { - background-color: @form-error-input-bg; - border-color: @error-color; - } - } - - .@{ant-prefix}-cascader-picker:focus .@{ant-prefix}-cascader-input { - background-color: @form-error-input-bg; - .active(@error-color); - } - - .@{ant-prefix}-input-affix-wrapper-focused, - .@{ant-prefix}-input-affix-wrapper:focus, - .@{ant-prefix}-input-focused, - .@{ant-prefix}-input:focus { - .active(@error-color); - } -} - -.@{form-item-cls}-error-help { - color: @error-color !important; -} - -.@{form-item-cls}-warning-help { - color: @warning-color !important; -} - -.@{form-item-cls}-success-help { - color: @success-color !important; -} - -.@{form-item-cls}-warning { - .@{ant-prefix}-select-selector, - .@{ant-prefix}-cascader-picker, - .@{ant-prefix}-picker, - .@{ant-prefix}-input, - .@{ant-prefix}-input-number, - .@{ant-prefix}-input-affix-wrapper, - .@{ant-prefix}-input-affix-wrapper, - .@{ant-prefix}-input { - border-color: @warning-color !important; - } - - .@{ant-prefix}-select-selector, - .@{ant-prefix}-cascader-picker, - .@{ant-prefix}-picker, - .@{ant-prefix}-input, - .@{ant-prefix}-input-number, - .@{ant-prefix}-input-affix-wrapper, - .@{ant-prefix}-input-affix-wrapper:hover, - .@{ant-prefix}-input:hover { - border-color: @warning-color !important; - } - - .@{ant-prefix}-select:not(.@{ant-prefix}-select-disabled):not(.@{ant-prefix}-select-customize-input) { - .@{ant-prefix}-select-selector { - background-color: @form-warning-input-bg; - border-color: @warning-color !important; - } - - &.@{ant-prefix}-select-open .@{ant-prefix}-select-selector, - &.@{ant-prefix}-select-focused .@{ant-prefix}-select-selector { - .active(@warning-color); - } - } - - .@{ant-prefix}-input-number, - .@{ant-prefix}-picker { - background-color: @form-warning-input-bg; - border-color: @warning-color; - - &-focused, - &:focus { - .active(@warning-color); - } - - &:not([disabled]):hover { - background-color: @form-warning-input-bg; - border-color: @warning-color; - } - } - - .@{ant-prefix}-cascader-picker:focus .@{ant-prefix}-cascader-input { - background-color: @form-warning-input-bg; - .active(@warning-color); - } - - .@{ant-prefix}-input-affix-wrapper-focused, - .@{ant-prefix}-input-affix-wrapper:focus, - .@{ant-prefix}-input-focused, - .@{ant-prefix}-input:focus { - .active(@warning-color); - } -} - -.@{form-item-cls}-success { - .@{ant-prefix}-select-selector, - .@{ant-prefix}-cascader-picker, - .@{ant-prefix}-picker, - .@{ant-prefix}-input, - .@{ant-prefix}-input-number, - .@{ant-prefix}-input-affix-wrapper, - .@{ant-prefix}-input-affix-wrapper, - .@{ant-prefix}-input { - border-color: @success-color !important; - } - - .@{ant-prefix}-select-selector, - .@{ant-prefix}-cascader-picker, - .@{ant-prefix}-picker, - .@{ant-prefix}-input, - .@{ant-prefix}-input-number, - .@{ant-prefix}-input-affix-wrapper, - .@{ant-prefix}-input-affix-wrapper:hover, - .@{ant-prefix}-input:hover { - border-color: @success-color !important; - } - - .@{ant-prefix}-input-affix-wrapper-focused, - .@{ant-prefix}-input-affix-wrapper:focus, - .@{ant-prefix}-input-focused, - .@{ant-prefix}-input:focus { - border-color: @success-color !important; - border-right-width: 1px !important; - outline: 0; - } -} diff --git a/packages/components/src/form-item/style.ts b/packages/components/src/form-item/style.ts deleted file mode 100644 index 418fe1b..0000000 --- a/packages/components/src/form-item/style.ts +++ /dev/null @@ -1,2 +0,0 @@ -import 'ant-design-vue/lib/form/style' -import './style.less' diff --git a/packages/components/src/form-item/style/animation.tsx b/packages/components/src/form-item/style/animation.tsx new file mode 100644 index 0000000..0c2b769 --- /dev/null +++ b/packages/components/src/form-item/style/animation.tsx @@ -0,0 +1,35 @@ +import { Keyframes } from 'ant-design-vue' +import type { GenerateStyle } from '../../__builtins__' + +const antShowHelpIn = new Keyframes('antShowHelpIn', { + '0%': { + transform: 'translateY(-5px)', + opacity: 0 + }, + to: { + transform: ' translateY(0)', + opacity: 1 + } +}) + +export const getAnimationStyle: GenerateStyle = (token) => { + const { componentCls } = token + const helpCls = `${componentCls}-help` + + return { + [helpCls]: { + '&-appear, &-enter': { + animationDuration: '0.3s', + animationFillMode: 'both', + animationPlayState: 'paused', + opacity: 0, + animationTimingFunction: 'cubic-bezier(0.645, 0.045, 0.355, 1)', + + '&-active': { + animationPlayState: 'running', + animationName: antShowHelpIn + } + } + } + } +} diff --git a/packages/components/src/form-item/style/grid.tsx b/packages/components/src/form-item/style/grid.tsx new file mode 100644 index 0000000..47ef6be --- /dev/null +++ b/packages/components/src/form-item/style/grid.tsx @@ -0,0 +1,28 @@ +import type { GenerateStyle } from '../../__builtins__' + +export const getGridStyle: GenerateStyle = (token) => { + const { componentCls } = token + + const colCls = `${componentCls}-item-col` + + const genGrid = (grid: number) => { + return { + flex: `0 0 ${(grid / 24) * 100}%`, + maxWidth: `${(grid / 24) * 100}%` + } + } + const genGrids = () => { + return Array.from({ length: 24 }, (_, i) => { + const gridCls = `${colCls}-${i + 1}` + return { + [gridCls]: genGrid(i + 1) + } + }).reduce((acc, cur) => ({ ...acc, ...cur }), {}) + } + + return { + [componentCls]: { + ...genGrids() + } + } +} diff --git a/packages/components/src/form-item/style/index.tsx b/packages/components/src/form-item/style/index.tsx new file mode 100644 index 0000000..9c4f757 --- /dev/null +++ b/packages/components/src/form-item/style/index.tsx @@ -0,0 +1,453 @@ +import type { GenerateStyle } from '../../__builtins__' +import { genStyleHook } from '../../__builtins__' +import { getAnimationStyle } from './animation' +import { getGridStyle } from './grid' +import { genOtherStyle } from './other' + +const genSmallStyle: GenerateStyle = (token) => { + const { componentCls, antCls, controlHeightSM, marginLG, fontSizeSM, lineHeightSM } = token + return { + fontSize: fontSizeSM, + lineHeight: controlHeightSM, + [`${componentCls}-label`]: { + lineHeight: `${controlHeightSM}px`, + minHeight: controlHeightSM - 4, + + '> label': { + height: controlHeightSM - 2 + } + }, + + [`${componentCls}-control-content`]: { + ' &-component': { + minHeight: controlHeightSM - 4, + lineHeight: lineHeightSM + } + }, + + [`${componentCls}-help, + ${componentCls}-extra`]: { + minHeight: controlHeightSM - 4, + lineHeight: `${controlHeightSM - 4}px` + }, + + [`${componentCls}-control-content`]: { + minHeight: controlHeightSM - 4 + }, + + [`${antCls}-input-affix-wrapper, + ${antCls}-input-number, + ${antCls}-picker`]: { + padding: `0px 11px`, + + input: { + height: controlHeightSM - 4, + fontSize: fontSizeSM + } + }, + + [`${antCls}-cascader-picker`]: { + height: controlHeightSM - 4, + + input: { + padding: '0 7px', + height: controlHeightSM - 4, + fontSize: fontSizeSM + } + }, + + [`${antCls}-select-single:not(${antCls}-select-customize-input) ${antCls}-select-selector`]: { + padding: `0px 11px`, + height: controlHeightSM - 4, + fontSize: fontSizeSM, + lineHeight: `${controlHeightSM}px`, + + [`${antCls}-select-selection-search`]: { + height: controlHeightSM, + lineHeight: `${controlHeightSM - 4}px`, + + '&-input': { + height: controlHeightSM - 4, + lineHeight: `${controlHeightSM - 4}px` + } + }, + + [`${antCls}-select-selection-placeholder`]: { + height: controlHeightSM, + lineHeight: `${controlHeightSM - 4}px` + }, + + [`${antCls}-select-selection-item`]: { + height: controlHeightSM, + lineHeight: `${controlHeightSM - 4}px` + }, + [`${antCls}-select-multiple:not(${antCls}-select-customize-input) + ${antCls}-select-selector`]: { + padding: '0px 2px', + height: controlHeightSM - 4, + fontSize: fontSizeSM, + lineHeight: `${controlHeightSM}px`, + + '&::after': { + height: controlHeightSM - 8, + lineHeight: `${controlHeightSM - 8}px` + }, + + [`${antCls}-select-selection-search`]: { + height: controlHeightSM - 8, + lineHeight: `${controlHeightSM - 8}px`, + marginInlineStart: 0, + + '&-input': { + height: controlHeightSM, + lineHeight: `${controlHeightSM - 4}px` + } + }, + + [`${antCls}-select-selection-placeholder`]: { + height: controlHeightSM - 4, + lineHeight: `${controlHeightSM}px`, + marginInlineStart: 4 + }, + + [`${antCls}-select-selection-overflow-item`]: { + alignSelf: 'flex-start', + + [`${antCls}-select-selection-item`]: { + lineHeight: `${controlHeightSM - 10}px`, + height: controlHeightSM - 8 + } + } + }, + + [`&${componentCls}-feedback-layout-terse`]: { + marginBottom: 8, + + [`&${componentCls}-feedback-has-text:not(${componentCls}-inset)`]: { + marginBottom: 0 + } + }, + + [`&${componentCls}-feedback-layout-loose`]: { + marginBottom: marginLG, + + [`&${componentCls}-feedback-has-text:not(${componentCls}-inset)`]: { + marginBottom: 0 + } + } + } + } +} + +const genLargeStyle: GenerateStyle = (token) => { + const { + componentCls, + antCls, + fontSizeLG, + controlHeightLG, + controlHeightSM, + marginLG, + lineHeightLG + } = token + return { + fontSize: fontSizeLG, + lineHeight: `${controlHeightLG}px`, + [`${componentCls}-label`]: { + lineHeight: `${controlHeightLG}px`, + minHeight: controlHeightLG - 2, + + '> label': { + height: controlHeightLG + } + }, + + [`${componentCls}-control-content`]: { + ' &-component': { + minHeight: controlHeightLG - 2, + lineHeight: lineHeightLG + } + }, + + [`${componentCls}-help, + ${componentCls}-extra`]: { + minHeight: controlHeightSM, + lineHeight: `${controlHeightSM}px` + }, + + [`${componentCls}-control-content`]: { + minHeight: controlHeightLG - 2 + }, + + [`${antCls}-input`]: { + fontSize: fontSizeLG + }, + + [`${antCls}-input-number`]: { + fontSize: fontSizeLG, + + input: { + height: controlHeightLG - 2 + } + }, + + [`${antCls}-input-affix-wrapper, + ${antCls}-picker`]: { + padding: `0px 11px`, + lineHeight: `${controlHeightLG - 2}px`, + input: { + height: controlHeightLG - 2, + fontSize: fontSizeLG + } + }, + + [`${antCls}-btn`]: { + height: controlHeightLG, + padding: '0 8px' + }, + + [`${antCls}-radio-button-wrapper`]: { + height: controlHeightLG, + lineHeight: `${controlHeightLG}px` + }, + + [`${antCls}-cascader-picker`]: { + height: controlHeightLG - 2, + + input: { + padding: '0 11px', + height: controlHeightLG - 2, + fontSize: fontSizeLG + } + }, + + [`${antCls}-select-single:not(${antCls}-select-customize-input) ${antCls}-select-selector`]: { + padding: `0px 11px`, + height: controlHeightLG, + fontSize: fontSizeLG, + lineHeight: `${controlHeightLG}px`, + + [`${antCls}-select-selection-search`]: { + height: controlHeightLG, + lineHeight: `${controlHeightLG - 2}px`, + + '&-input': { + height: controlHeightLG, + lineHeight: `${controlHeightLG - 2}px` + } + }, + + [`${antCls}-select-selection-placeholder`]: { + height: controlHeightLG, + lineHeight: `${controlHeightLG}px` + }, + + [`${antCls}-select-selection-item`]: { + height: controlHeightLG, + lineHeight: `${controlHeightLG}px` + }, + [`${antCls}-select-multiple:not(${antCls}-select-customize-input) + ${antCls}-select-selector`]: { + padding: '0px 2px', + height: controlHeightLG - 2, + fontSize: fontSizeLG, + lineHeight: `${controlHeightLG}px`, + + '&::after': { + height: controlHeightLG - 8, + lineHeight: `${controlHeightLG - 8}px` + }, + + [`${antCls}-select-selection-search`]: { + height: controlHeightLG - 8, + lineHeight: `${controlHeightLG - 8}px`, + + '&-input': { + height: controlHeightLG - 12, + lineHeight: `${controlHeightLG - 12}px` + } + }, + + [`${antCls}-select-selection-placeholder`]: { + height: controlHeightLG - 8, + lineHeight: `${controlHeightLG - 8}px` + }, + + [`${antCls}-select-selection-overflow-item`]: { + alignSelf: 'flex-start', + + [`${antCls}-select-selection-item`]: { + lineHeight: `${controlHeightLG - 10}px`, + height: controlHeightLG - 8 + } + } + }, + + [`&${componentCls}-feedback-layout-terse`]: { + marginBottom: 8, + + [`&${componentCls}-feedback-has-text:not(${componentCls}-inset)`]: { + marginBottom: 0 + } + }, + + [`&${componentCls}-feedback-layout-loose`]: { + marginBottom: marginLG, + + [`&${componentCls}-feedback-has-text:not(${componentCls}-inset)`]: { + marginBottom: 0 + } + } + } + } +} + +const genLabelStyle: GenerateStyle = (token) => { + const { componentCls, controlHeight, controlHeightSM, marginLG, marginSM, lineHeight } = token + return { + lineHeight: `${controlHeight}px`, + minHeight: controlHeight - 2, + position: 'relative', + display: 'flex', + color: token.colorTextHeading, + + label: { + cursor: 'text' + }, + + '&-content': { + overflow: 'hidden', + textOverflow: 'ellipsis', + whiteSpace: 'nowrap', + label: { + whiteSpace: 'nowrap' + } + }, + + '&-tooltip': { + cursor: 'help', + '*': { + cursor: 'help' + }, + label: { + borderBottom: '1px dashed currentColor' + } + }, + + '&-feedback-layout': { + '&-terse': { + marginBottom: marginSM + }, + + '&-loose': { + marginBottom: marginLG + }, + + '&-none': { + marginBottom: 0 + }, + + '&-terse, &-loosee, &-none': { + [`&.${componentCls}-feedback-has-text:not(${componentCls}-inset)`]: { + marginBottom: 0 + } + } + }, + + '&-control': { + flex: 1, + maxWidth: '100%', + + [`&.${componentCls}-control-content`]: { + display: 'flex', + + '&-component': { + width: '100%', + minHeight: controlHeight - 2, + lineHeight: lineHeight, + + '&-has-feedback-icon': { + flex: 1, + position: 'relative', + display: 'flex', + alignItems: 'center' + } + }, + + [`${componentCls}-addon`]: { + '&-before': { + marginInlineEnd: marginSM + }, + + '&-after': { + marginInlineEnd: marginSM + }, + + '&-before, &-after': { + display: 'inline-flex', + alignItems: 'center', + minHeight: controlHeight, + flexShrink: 0 + } + } + }, + + [`${componentCls}-help, + ${componentCls}-extra`]: { + minHeight: controlHeightSM, + lineHeight: `${controlHeightSM}px`, + color: token.colorTextSecondary + } + } + } +} + +const genFormItemStyle: GenerateStyle = (token) => { + const { componentCls, fontSize, marginLG } = token + return { + [componentCls]: { + display: 'flex', + position: 'relative', + marginBottom: marginLG, + fontSize: fontSize, + + [`${componentCls}-label`]: genLabelStyle(token), + + [`&${componentCls}-size-small`]: genSmallStyle(token), + + [`&${componentCls}-size-large`]: genLargeStyle(token), + + '&-label': { + '&-align': { + [`&-left`]: { + [`> ${componentCls}-label`]: { + justifyContent: 'flex-start' + } + }, + + [`&-right`]: { + [`> ${componentCls}-label`]: { + justifyContent: 'flex-end' + } + } + }, + ['&-wrap']: { + [`${componentCls}-label`]: { + label: { + whiteSpace: 'pre-line', + wordBreak: 'break-all' + } + } + } + } + } + } +} + +export default genStyleHook('Form', (token) => { + return [ + genFormItemStyle(token), + getAnimationStyle(token), + genOtherStyle(token), + getGridStyle(token) + ] +}) diff --git a/packages/components/src/form-item/style/other.tsx b/packages/components/src/form-item/style/other.tsx new file mode 100644 index 0000000..9d8634e --- /dev/null +++ b/packages/components/src/form-item/style/other.tsx @@ -0,0 +1,551 @@ +import type { CSSProperties } from 'vue' +import type { GenerateStyle } from '../../__builtins__' + +export const genOtherStyle: GenerateStyle = (token) => { + const { + componentCls, + colorError, + colorWarningBg, + colorWarning, + colorBorder, + colorSuccess, + lineWidth, + colorPrimaryBorderHover, + colorPrimary, + antCls, + fontSize, + marginSM, + marginLG, + controlHeight, + controlHeightSM, + lineHeight, + controlOutlineWidth, + controlOutline, + colorPrimaryHover, + colorTextSecondary, + paddingXS + } = token + + const hover = (color = colorPrimaryBorderHover): CSSProperties => ({ + borderColor: color, + borderInlineEndWidth: lineWidth + }) + + const active = (color = colorPrimary): CSSProperties => ({ + borderColor: color, + borderInlineEndWidth: lineWidth, + outline: 0, + boxShadow: `${controlOutlineWidth} 0 ${controlOutline} ${colorPrimaryHover}` + }) + + const extraLabelHeight = controlHeightSM - 2 + + return { + [componentCls]: { + '&-layout-vertical': { + display: 'block', + + // Vertical Label: https://github.com/ant-design/ant-design/blob/master/components/form/style/index.ts#L391C1-L404C4 + [`${componentCls}-label`]: { + minHeight: lineHeight * fontSize + paddingXS, + lineHeight, + padding: `0 0 ${paddingXS}px`, + + '&-content': { + whiteSpace: 'initial', + textAlign: 'start' + } + }, + + [`${antCls}-label`]: { + minHeight: controlHeight - 10, + lineHeight + } + }, + + '&-success': { + [`${antCls}-select-selector, + ${antCls}-cascader-picker, + ${antCls}-picker, + ${antCls}-input, + ${antCls}-input-number, + ${antCls}-input-affix-wrapper, + ${antCls}-input-affix-wrapper, + ${antCls}-input`]: { + borderColor: `${colorSuccess} !important` + }, + [`${antCls}-select-selector, + ${antCls}-cascader-picker, + ${antCls}-picker, + ${antCls}-input, + ${antCls}-input-number, + ${antCls}-input-affix-wrapper, + ${antCls}-input-affix-wrapper:hover, + ${antCls}-input:hover`]: { + borderColor: `${colorSuccess} !important` + }, + [`${antCls}-input-affix-wrapper-focused, + ${antCls}-input-affix-wrapper:focus, + ${antCls}-input-focused, + ${antCls}-input:focus`]: { + borderColor: `${colorSuccess} !important`, + borderInlineEndWidth: '1px !important', + outline: 0 + } + }, + + '&-warning': { + [`${antCls}-select-selector, + ${antCls}-cascader-picker, + ${antCls}-picker, + ${antCls}-input, + ${antCls}-input-number, + ${antCls}-input-affix-wrapper, + ${antCls}-input-affix-wrapper, + ${antCls}-input`]: { + borderColor: colorSuccess + }, + + [`${antCls}-select-selector, + ${antCls}-cascader-picker, + ${antCls}-picker, + ${antCls}-input, + ${antCls}-input-number, + ${antCls}-input-affix-wrapper, + ${antCls}-input-affix-wrapper:hover, + ${antCls}-input:hover`]: { + borderColor: colorSuccess + }, + + [`${antCls}-select:not(${antCls}-select-disabled):not(${antCls}-select-customize-input)`]: { + [`${antCls}-select-selector`]: { + backgroundColor: colorWarningBg, + borderColor: colorSuccess + }, + + [`&${antCls}-select-open ${antCls}-select-selector, + &${antCls}-select-focused ${antCls}-select-selector`]: { + ...active(colorWarning) + } + }, + + [`${antCls}-input-number, + ${antCls}-picker`]: { + backgroundColor: colorWarningBg, + borderColor: colorWarning, + + [`&-focused, + &:focus`]: { + ...active(colorWarning) + }, + + '&:not([disabled]):hover': { + backgroundColor: colorWarningBg, + borderColor: colorWarning + } + }, + + [`${antCls}-cascader-picker:focus ${antCls}-cascader-input`]: { + backgroundColor: colorWarningBg, + ...active(colorWarning) + }, + + [`${antCls}-input-affix-wrapper-focused, + ${antCls}-input-affix-wrapper:focus, + ${antCls}-input-focused, + ${antCls}-input:focus`]: { + ...active(colorWarning) + } + }, + + '&-error': { + [`${antCls}-select-selector, + ${antCls}-cascader-picker, + ${antCls}-picker, + ${antCls}-input, + ${antCls}-input-number, + ${antCls}-input-affix-wrapper, + ${antCls}-input`]: { + borderColor: `${colorError} !important` + }, + + [`${antCls}-select-selector, + ${antCls}-cascader-picker, + ${antCls}-picker, + ${antCls}-input, + ${antCls}-input-number, + ${antCls}-input-affix-wrapper, + ${antCls}-input-affix-wrapper:hover, + ${antCls}-input:hover`]: { + borderColor: `${colorError} !important` + }, + + [`${antCls}-select:not(${antCls}-select-disabled):not(${antCls}-select-customize-input)`]: { + [`${antCls}-select-selector`]: { + borderColor: `${colorError} !important` + }, + + [`&${antCls}-select-open ${antCls}-select-selector, + &${antCls}-select-focused ${antCls}-select-selector`]: { + ...active(colorError) + } + }, + + [`${antCls}-input-number, + ${antCls}-picker`]: { + borderColor: colorError, + + [`&-focused, + &:focus`]: { + ...active(colorError) + }, + + [`&:not([disabled]):hover`]: { + borderColor: colorError + } + }, + + [`${antCls}-cascader-picker:focus ${antCls}-cascader-input`]: { + ...active(colorError) + }, + + [`${antCls}-input-affix-wrapper-focused, + ${antCls}-input-affix-wrapper:focus, + ${antCls}-input-focused, + ${antCls}-input:focus`]: { + ...active(colorError) + } + }, + + '&-feedback-layout': { + '&-terse': { + marginBottom: marginSM, + + [`&${componentCls}-feedback-has-text:not(${componentCls}-inset)`]: { + marginBottom: 0 + } + }, + + '&-loose': { + marginBottom: marginLG, + [`&${componentCls}-feedback-has-text:not(${componentCls}-inset)`]: { + marginBottom: Math.max(marginLG - extraLabelHeight, 0) + } + }, + + '&-none': { + marginBottom: 0, + + [`&${componentCls}-feedback-has-text:not(${componentCls}-inset)`]: { + marginBottom: 0 + } + } + }, + + '&-control-wrap': { + [`${componentCls}-control`]: { + whiteSpace: 'pre-line', + wordBreak: 'break-all' + } + }, + + '&-control-align': { + '&-left': { + [`${componentCls}-control-content`]: { + justifyContent: 'flex-start' + } + }, + + '&-right': { + [`${componentCls}-control-content`]: { + justifyContent: 'flex-end' + } + } + }, + + "input[type='radio'], input[type='checkbox']": { + width: fontSize, + height: fontSize + }, + + '&-feedback-layout-popover': { + marginBottom: 8 + }, + + '&-fullness': { + [`> ${componentCls}-control`]: { + [`> ${componentCls}-control-content`]: { + [`> ${componentCls}-control-content-component`]: { + '> *:first-child': { + width: '100%' + } + } + } + } + }, + + '&-inset': { + borderRadius: 2, + border: `1px solid ${colorBorder}`, + paddingInlineStart: 12, + transition: '0.3s all', + + [`${antCls}-input-number, + ${antCls}-picker, + ${antCls}-cascader-picker:focus ${antCls}-cascader-input, + ${antCls}-select:not(${antCls}-select-customize-input) + ${antCls}-select-selector, + ${antCls}-input-affix-wrapper, + ${antCls}-input`]: { + border: 'none !important', + boxShadow: 'none !important' + }, + + [`${antCls}-input-number-handler-wrap`]: { + border: 'none !important', + + [`${antCls}-input-number-handler`]: { + border: 'none !important' + } + }, + + '&:hover': { + ...hover() + } + }, + + '&-active': { + [`${componentCls}-control-content-component-has-feedback-icon`]: { + ...active() + }, + + [`${antCls}-input-number, + ${antCls}-picker, + ${antCls}-cascader-picker:focus ${antCls}-cascader-input, + ${antCls}-select:not(${antCls}-select-customize-input) + ${antCls}-select-selector, + ${antCls}-input`]: { + ...active() + } + }, + + '&-inset-active': { + ...active() + }, + + '&-bordered-none': { + [`${antCls}-input-number, + ${antCls}-input-affix-wrapper, + ${antCls}-picker, + ${antCls}-cascader-picker:focus ${antCls}-cascader-input, + ${antCls}-select:not(${antCls}-select-customize-input) + ${antCls}-select-selector, + ${antCls}-input`]: { + border: 'none !important', + boxShadow: 'none !important' + }, + + [`${antCls}-input-number-handler-wrap`]: { + border: 'none !important', + + [`${antCls}-input-number-handler`]: { + border: 'none !important' + } + } + }, + + '&:hover': { + [`${componentCls}-control-content-component-has-feedback-icon`]: { + ...hover() + } + }, + + [`textarea${antCls}-input`]: { + height: 'auto' + }, + + [`${componentCls}-label-tooltip-icon`]: { + marginInlineStart: 4, + + color: token.colorTextSecondary, + display: 'flex', + alignItems: 'center', + maxHeight: controlHeight, + + span: { + display: 'inline-block' + } + }, + + [`${componentCls}-asterisk`]: { + color: colorError, + marginInlineEnd: '4px', + display: 'inline-block', + fontFamily: 'SimSun, sans-serif' + }, + + [`${componentCls}-colon`]: { + marginInlineStart: 2, + marginInlineEnd: 8 + }, + + [`${componentCls}-control`]: { + flex: 1, + maxWidth: '100%', + + [`${componentCls}-control-content`]: { + display: 'flex', + + [`${componentCls}-control-content-component`]: { + width: '100%', + minHeight: controlHeight - 2, + lineHeight: `${controlHeight - 2}px`, + + [`&-has-feedback-icon`]: { + flex: 1, + position: 'relative', + display: 'flex', + alignItems: 'center' + } + }, + + [`${componentCls}-addon-before `]: { + marginInlineEnd: 8, + display: 'inline-flex', + alignItems: 'center', + minHeight: controlHeight, + flexShrink: 0 + }, + + [`${componentCls}-addon-after`]: { + marginInlineStart: 8, + display: 'inline-flex', + alignItems: 'center', + minHeight: controlHeight, + flexShrink: 0 + } + }, + + [`${componentCls}-help, + ${componentCls}-extra `]: { + minHeight: extraLabelHeight, + lineHeight: `${extraLabelHeight}px`, + color: colorTextSecondary + } + }, + + [`${componentCls}-help, + ${componentCls}-extra`]: { + clear: 'both', + minHeight: extraLabelHeight, + color: 'rgba(0, 0, 0, 0.45)', + transition: 'color 0.3s cubic-bezier(0.215, 0.61, 0.355, 1)', + paddingTop: 0 + }, + + [`${componentCls}-control-content-component-has-feedback-icon`]: { + borderRadius: 2, + border: `1px solid ${colorBorder}`, + paddingInlineEnd: 8, + transition: 'all 0.3s', + touchAction: 'manipulation', + outline: 'none', + + [`${antCls}-input-number, + ${antCls}-picker, + ${antCls}-cascader-picker:focus ${antCls}-cascader-input, + ${antCls}-select:not(${antCls}-select-customize-input) + ${antCls}-select-selector, + ${antCls}-input-affix-wrapper, + ${antCls}-input`]: { + border: 'none !important', + boxShadow: 'none !important' + } + }, + + [`${componentCls}-error-help`]: { + color: `${colorError} !important` + }, + + [`${componentCls}-warning-help`]: { + color: colorSuccess + }, + + [`${componentCls}-success-help`]: { + color: `${colorSuccess} !important` + }, + + [`${antCls}-upload`]: { + background: 'transparent' + }, + + [`${antCls}-upload${antCls}-upload-drag`]: { + background: token.colorBgBase + }, + + [`${antCls}-radio-inline, ${antCls}-checkbox-inline`]: { + display: 'inline-block', + marginInlineStart: marginSM, + fontWeight: 'normal', + verticalAlign: 'middle', + cursor: 'pointer', + + '&:first-child': { + marginInlineStart: 0 + } + }, + + [`${antCls}-radio-vertical, + ${antCls}-checkbox-vertical`]: { + display: 'block' + }, + + [`${antCls}-checkbox-vertical + ${antCls}-checkbox-vertical, + ${antCls}-radio-vertical + ${antCls}-radio-vertical`]: { + marginInlineStart: 0 + }, + + [`${antCls}-input-number`]: { + width: '100%', + verticalAlign: 'top', + + [`+ ${antCls}-form-text`]: { + marginInlineStart: marginSM + }, + + '&-handler-wrap': { + zIndex: 2 + } + }, + [`${antCls}-select, + ${antCls}-cascader-picker, + ${antCls}-picker`]: { + width: '100%' + }, + + [`${antCls}-input-group ${antCls}-select, + ${antCls}-input-group ${antCls}-cascader-picker`]: { + width: 'auto' + } + }, + [`${componentCls}-help`]: { + '.anticon': { + display: 'flex', + alignItems: 'center', + justifyItems: 'center', + marginRight: 6 + } + }, + [`${componentCls}-error-help`]: { + color: `${colorError} !important` + }, + + [`${componentCls}-warning-help`]: { + color: colorSuccess + }, + + [`${componentCls}-success-help`]: { + color: `${colorSuccess} !important` + } + } +} diff --git a/packages/components/src/form-item/var.less b/packages/components/src/form-item/var.less deleted file mode 100644 index 15a7173..0000000 --- a/packages/components/src/form-item/var.less +++ /dev/null @@ -1 +0,0 @@ -@form-item-cls: ~'@{formily-prefix}-form-item'; diff --git a/packages/components/src/form-layout/index.ts b/packages/components/src/form-layout/index.ts deleted file mode 100644 index 1fbc24b..0000000 --- a/packages/components/src/form-layout/index.ts +++ /dev/null @@ -1,157 +0,0 @@ -import type { InjectionKey, Ref } from '@vue/composition-api' -import { - provide, - inject, - defineComponent, - ref, - watch, -} from '@vue/composition-api' -import { h } from '@formily/vue' -import { stylePrefix } from '../__builtins__/configs' -import { useResponsiveFormLayout } from './useResponsiveFormLayout' - -export type FormLayoutProps = { - className?: string - colon?: boolean - labelAlign?: 'right' | 'left' | ('right' | 'left')[] - wrapperAlign?: 'right' | 'left' | ('right' | 'left')[] - labelWrap?: boolean - labelWidth?: number - wrapperWidth?: number - wrapperWrap?: boolean - labelCol?: number | number[] - wrapperCol?: number | number[] - fullness?: boolean - size?: 'small' | 'default' | 'large' - layout?: - | 'vertical' - | 'horizontal' - | 'inline' - | ('vertical' | 'horizontal' | 'inline')[] - direction?: 'rtl' | 'ltr' - shallow?: boolean - feedbackLayout?: 'loose' | 'terse' | 'popover' - tooltipLayout?: 'icon' | 'text' - bordered?: boolean - breakpoints?: number[] - inset?: boolean - spaceGap?: number - gridColumnGap?: number - gridRowGap?: number -} - -export const FormLayoutDeepContext: InjectionKey> = Symbol( - 'FormLayoutDeepContext' -) - -export const FormLayoutShallowContext: InjectionKey> = - Symbol('FormLayoutShallowContext') - -export const useFormDeepLayout = (): Ref => - inject(FormLayoutDeepContext, ref({})) - -export const useFormShallowLayout = (): Ref => - inject(FormLayoutShallowContext, ref({})) - -export const useFormLayout = (): Ref => { - const shallowLayout = useFormShallowLayout() - const deepLayout = useFormDeepLayout() - const formLayout = ref({ - ...deepLayout.value, - ...shallowLayout.value, - }) - - watch( - [shallowLayout, deepLayout], - () => { - formLayout.value = { - ...deepLayout.value, - ...shallowLayout.value, - } - }, - { - deep: true, - } - ) - return formLayout -} - -export const FormLayout = defineComponent({ - name: 'FFormLayout', - props: { - className: {}, - colon: { default: true }, - labelAlign: {}, - wrapperAlign: {}, - labelWrap: { default: false }, - labelWidth: {}, - wrapperWidth: {}, - wrapperWrap: { default: false }, - labelCol: {}, - wrapperCol: {}, - fullness: { default: false }, - size: { default: 'default' }, - layout: { default: 'horizontal' }, - direction: { default: 'ltr' }, - shallow: { default: true }, - feedbackLayout: {}, - tooltipLayout: {}, - bordered: { default: true }, - inset: { default: false }, - breakpoints: {}, - spaceGap: {}, - gridColumnGap: {}, - gridRowGap: {}, - }, - setup(customProps, { slots, refs }) { - const { props } = useResponsiveFormLayout(customProps, refs) - - const deepLayout = useFormDeepLayout() - const newDeepLayout = ref({ - ...deepLayout, - }) - const shallowProps = ref({}) - - watch( - [props, deepLayout], - () => { - shallowProps.value = props.value.shallow ? props.value : undefined - if (!props.value.shallow) { - Object.assign(newDeepLayout.value, props.value) - } else { - if (props.value.size) { - newDeepLayout.value.size = props.value.size - } - if (props.value.colon) { - newDeepLayout.value.colon = props.value.colon - } - } - }, - { deep: true, immediate: true } - ) - - provide(FormLayoutDeepContext, newDeepLayout) - provide(FormLayoutShallowContext, shallowProps) - - const formPrefixCls = `${stylePrefix}-form` - return () => { - const classNames = { - [`${formPrefixCls}-${props.value.layout}`]: true, - [`${formPrefixCls}-rtl`]: props.value.direction === 'rtl', - [`${formPrefixCls}-${props.value.size}`]: - props.value.size !== undefined, - [`${props.value.className}`]: props.value.className !== undefined, - } - return h( - 'div', - { - ref: 'root', - class: classNames, - }, - slots - ) - } - }, -}) - -export default FormLayout diff --git a/packages/components/src/form-layout/index.tsx b/packages/components/src/form-layout/index.tsx new file mode 100644 index 0000000..35aa73b --- /dev/null +++ b/packages/components/src/form-layout/index.tsx @@ -0,0 +1,145 @@ +import type { InjectionKey, PropType, Ref } from 'vue' +import { defineComponent, inject, provide, ref, watch } from 'vue' +import type { PropTypes } from '../__builtins__' +import { usePrefixCls } from '../__builtins__' +import { useResponsiveFormLayout } from './useResponsiveFormLayout' +import useStyle from './style' + +export const getFormLayoutProps = () => { + return { + className: { + type: String as PropType + }, + colon: { default: true }, + labelAlign: { + type: [String, Array] as PropType<'right' | 'left' | ('right' | 'left')[]> + }, + wrapperAlign: { + type: [String, Array] as PropType<'right' | 'left' | ('right' | 'left')[]> + }, + labelWrap: { default: false }, + labelWidth: { + type: Number + }, + wrapperWidth: { + type: Number + }, + wrapperWrap: { default: false }, + labelCol: { + type: [Number, Array] as PropType + }, + wrapperCol: { + type: [Number, Array] as PropType + }, + fullness: { default: false }, + size: { default: 'default' }, + layout: { + type: [String, Array] as PropType<'vertical' | 'horizontal' | 'inline'>, + default: 'horizontal' + }, + direction: { default: 'ltr' }, + shallow: { default: true }, + feedbackLayout: { type: null }, + tooltipLayout: { type: null }, + bordered: { default: true }, + inset: { default: false }, + breakpoints: { type: Array as PropType }, + spaceGap: {}, + gridColumnGap: {}, + gridRowGap: {} + } +} + +export type FormLayoutProps = PropTypes + +export const FormLayoutDeepContext: InjectionKey> = + Symbol('FormLayoutDeepContext') + +export const FormLayoutShallowContext = Symbol('FormLayoutShallowContext') + +export const useFormDeepLayout = (): Ref => inject(FormLayoutDeepContext, ref({})) + +export const useFormShallowLayout = (): Ref => + inject(FormLayoutShallowContext, ref({})) + +export const useFormLayout = (): Ref => { + const shallowLayout = useFormShallowLayout() + const deepLayout = useFormDeepLayout() + const formLayout = ref>({ + ...deepLayout.value, + ...shallowLayout.value + }) + + watch( + [shallowLayout, deepLayout], + () => { + formLayout.value = { + ...deepLayout.value, + ...shallowLayout.value + } + }, + { + deep: true + } + ) + return formLayout +} + +export const FormLayout = defineComponent({ + name: 'FFormLayout', + props: getFormLayoutProps(), + setup(customProps, { attrs, slots }) { + const prefixCls = usePrefixCls('formily-form', attrs.prefixCls as string) + + const [wrapSSR, hashId] = useStyle(prefixCls) + const rootRef = ref() + const { props } = useResponsiveFormLayout(customProps, rootRef) + + const deepLayout = useFormDeepLayout() + const newDeepLayout = ref({ + ...deepLayout + }) + const shallowProps = ref({}) + + watch( + [props, deepLayout], + () => { + shallowProps.value = props.value.shallow ? props.value : undefined + if (!props.value.shallow) { + Object.assign(newDeepLayout.value, props.value) + } else { + if (props.value.size) { + newDeepLayout.value = { + ...newDeepLayout.value, + size: props.value.size + } + } + if (props.value.colon) { + newDeepLayout.value.colon = props.value.colon + } + } + }, + { deep: true, immediate: true } + ) + + provide(FormLayoutDeepContext, newDeepLayout) + provide(FormLayoutShallowContext, shallowProps) + + return () => { + const classNames = { + [`${prefixCls}-${props.value.layout}`]: true, + [`${prefixCls}-rtl`]: props.value.direction === 'rtl', + [`${prefixCls}-${props.value.size}`]: props.value.size !== undefined, + [`${props.value.className}`]: props.value.className !== undefined, + [`${hashId.value}`]: true + } + return wrapSSR( +
+ {slots.default?.()} +
+ ) + } + } +}) + +export default FormLayout diff --git a/packages/components/src/form-layout/style.less b/packages/components/src/form-layout/style.less deleted file mode 100644 index c82039b..0000000 --- a/packages/components/src/form-layout/style.less +++ /dev/null @@ -1,6 +0,0 @@ -@import '../__builtins__/styles/common.less'; - -.@{formily-prefix}-form-inline { - display: flex; - flex-wrap: wrap; -} diff --git a/packages/components/src/form-layout/style.ts b/packages/components/src/form-layout/style.ts index 1d62fa9..6361158 100644 --- a/packages/components/src/form-layout/style.ts +++ b/packages/components/src/form-layout/style.ts @@ -1 +1,12 @@ -import './style.less' +import { genStyleHook } from './../__builtins__' +export default genStyleHook('form-layout', (token) => { + const { componentCls } = token + return { + [`${componentCls}`]: { + '&-inline': { + display: 'flex', + flexWrap: 'wrap' + } + } + } +}) diff --git a/packages/components/src/form-layout/useResponsiveFormLayout.ts b/packages/components/src/form-layout/useResponsiveFormLayout.ts index 1d613ef..e8e1781 100644 --- a/packages/components/src/form-layout/useResponsiveFormLayout.ts +++ b/packages/components/src/form-layout/useResponsiveFormLayout.ts @@ -1,14 +1,10 @@ import { isArr, isValid } from '@formily/shared' -import type { Ref } from 'vue-demi' -import { onMounted, ref } from 'vue-demi' +import type { Ref } from 'vue' +import { onMounted, ref } from 'vue' interface IProps { breakpoints?: number[] - layout?: - | 'vertical' - | 'horizontal' - | 'inline' - | ('vertical' | 'horizontal' | 'inline')[] + layout?: 'vertical' | 'horizontal' | 'inline' labelCol?: number | number[] wrapperCol?: number | number[] labelAlign?: 'right' | 'left' | ('right' | 'left')[] @@ -25,12 +21,7 @@ interface ICalculateProps { } interface IUseResponsiveFormLayout { - ( - props: IProps, - refs: { - [key: string]: Vue | Element | Vue[] | Element[] - } - ): { + (props: IProps, rootRef: Ref): { props: Ref } } @@ -57,15 +48,8 @@ const factor = (value: T | T[], breakpointIndex: number): T => const calculateProps: ICalculateProps = (target, props) => { const { clientWidth } = target - const { - breakpoints, - layout, - labelAlign, - wrapperAlign, - labelCol, - wrapperCol, - ...otherProps - } = props + const { breakpoints, layout, labelAlign, wrapperAlign, labelCol, wrapperCol, ...otherProps } = + props const breakpointIndex = calcBreakpointIndex(breakpoints, clientWidth) return { @@ -74,15 +58,11 @@ const calculateProps: ICalculateProps = (target, props) => { wrapperAlign: factor(wrapperAlign, breakpointIndex), labelCol: factor(labelCol, breakpointIndex), wrapperCol: factor(wrapperCol, breakpointIndex), - ...otherProps, + ...otherProps } } -export const useResponsiveFormLayout: IUseResponsiveFormLayout = ( - props, - refs -) => { - const root = ref(null) +export const useResponsiveFormLayout: IUseResponsiveFormLayout = (props, rootRef) => { const { breakpoints } = props if (!isArr(breakpoints)) { return { props: ref(props) } @@ -90,17 +70,16 @@ export const useResponsiveFormLayout: IUseResponsiveFormLayout = ( const layoutProps = ref({}) const updateUI = () => { - layoutProps.value = calculateProps(root.value, props) + layoutProps.value = calculateProps(rootRef.value, props) } onMounted(() => { - root.value = refs.root as Element const observer = () => { updateUI() } const resizeObserver = new ResizeObserver(observer) - if (root.value) { - resizeObserver.observe(root.value) + if (rootRef.value) { + resizeObserver.observe(rootRef.value) } updateUI() @@ -111,6 +90,6 @@ export const useResponsiveFormLayout: IUseResponsiveFormLayout = ( }) return { - props: layoutProps, + props: layoutProps } } diff --git a/packages/components/src/form-step/index.ts b/packages/components/src/form-step/index.tsx similarity index 64% rename from packages/components/src/form-step/index.ts rename to packages/components/src/form-step/index.tsx index 09c3880..8a4c8b2 100644 --- a/packages/components/src/form-step/index.ts +++ b/packages/components/src/form-step/index.tsx @@ -1,22 +1,13 @@ -import type { PropType } from '@vue/composition-api' -import { defineComponent } from '@vue/composition-api' +import type { Form, VoidField } from '@formily/core' +import type { Schema, SchemaKey } from '@formily/json-schema' import { action, model, observable } from '@formily/reactive' -import type { VoidField, Form } from '@formily/core' import { observer } from '@formily/reactive-vue' -import { - h, - useField, - useFieldSchema, - RecursionField, - Fragment, -} from '@formily/vue' -import type { Schema, SchemaKey } from '@formily/json-schema' +import { RecursionField, useField, useFieldSchema } from '@formily/vue' +import type { StepProps, StepsProps } from 'ant-design-vue' import { Steps } from 'ant-design-vue' -import { stylePrefix } from '../__builtins__/configs' - -import type { Steps as StepsProps } from 'ant-design-vue/types/steps/steps' -import type { Step as StepProps } from 'ant-design-vue/types/steps/step' -import { composeExport } from '../__builtins__/shared' +import type { PropType } from 'vue' +import { defineComponent } from 'vue' +import { composeExport, usePrefixCls } from '../__builtins__' const { Step } = Steps @@ -54,7 +45,7 @@ const parseSteps = (schema: Schema) => { steps.push({ name, props: schema['x-component-props'], - schema, + schema }) } }) @@ -65,7 +56,7 @@ const createFormStep = (defaultCurrent = 0): IFormStep => { const env: FormStepEnv = observable({ form: null, field: null, - steps: [], + steps: [] }) const setDisplay = action.bound((target: number) => { @@ -122,28 +113,30 @@ const createFormStep = (defaultCurrent = 0): IFormStep => { }, async submit(onSubmit) { return env.form?.submit?.(onSubmit) - }, + } }) return formStep } const FormStepInner = observer( - // eslint-disable-next-line vue/one-component-per-file - defineComponent({ + defineComponent({ name: 'FormStep', props: { formStep: { type: Object as PropType, default() { return { - current: 0, + current: 0 } - }, + } }, + current: { + type: Number + } }, setup(props, { attrs }) { const field = useField().value - const prefixCls = `${stylePrefix}-form-step` + const prefixCls = usePrefixCls('formily-form-step', attrs.prefixCls as string) const fieldSchemaRef = useFieldSchema() const steps = parseSteps(fieldSchemaRef.value) @@ -153,57 +146,41 @@ const FormStepInner = observer( return () => { const current = props.current || props.formStep?.current || 0 - const renderSteps = (steps: SchemaStep[], callback) => { + const renderSteps = ( + steps: SchemaStep[], + callback: (value: SchemaStep, index: number, array: SchemaStep[]) => any + ) => { return steps.map(callback) } - - return h( - 'div', - { - class: [prefixCls], - }, - { - default: () => [ - h( - Steps, - { - props: { - current: current, - }, - style: [{ marginBottom: '10px' }, attrs.style], - attrs, - }, - { - default: () => - renderSteps(steps, ({ props }, key) => { - return h(Step, { props, key }, {}) - }), - } - ), - - renderSteps(steps, ({ name, schema }, key) => { - if (key !== current) return - return h(RecursionField, { props: { name, schema }, key }, {}) - }), - ], - } + return ( +
+ + {renderSteps(steps, ({ props }, key) => { + return + })} + + {renderSteps(steps, ({ name, schema }, key) => { + if (key !== current) return + return + })} +
) } }, + inheritAttrs: false }) ) -// eslint-disable-next-line vue/one-component-per-file const StepPane = defineComponent({ name: 'FormStepPane', setup(_props, { slots }) { - return () => h(Fragment, {}, slots) - }, + return () => <>{slots.default?.()} + } }) export const FormStep = composeExport(FormStepInner, { StepPane, - createFormStep, + createFormStep }) export default FormStep diff --git a/packages/components/src/form-step/style.ts b/packages/components/src/form-step/style.ts deleted file mode 100644 index 3f9e007..0000000 --- a/packages/components/src/form-step/style.ts +++ /dev/null @@ -1 +0,0 @@ -import 'ant-design-vue/lib/steps/style/index' diff --git a/packages/components/src/form-tab/index.ts b/packages/components/src/form-tab/index.ts deleted file mode 100644 index 97b18a2..0000000 --- a/packages/components/src/form-tab/index.ts +++ /dev/null @@ -1,172 +0,0 @@ -import { defineComponent, reactive, computed } from '@vue/composition-api' -import { observer } from '@formily/reactive-vue' -import { model } from '@formily/reactive' -import { - h, - useField, - useFieldSchema, - RecursionField, - Fragment, -} from '@formily/vue' -import type { Schema, SchemaKey } from '@formily/json-schema' -import { Tabs, Badge } from 'ant-design-vue' -import { stylePrefix } from '../__builtins__/configs' - -import type { Tabs as TabsProps } from 'ant-design-vue/types/tabs/tabs' -import type { TabPane as TabPaneProps } from 'ant-design-vue/types/tabs/tab-pane' - -import { composeExport } from '../__builtins__/shared' - -const { TabPane } = Tabs - -export interface IFormTab { - activeKey: string - setActiveKey(key: string): void -} - -export interface IFormTabProps extends TabsProps { - formTab?: IFormTab -} - -export interface IFormTabPaneProps extends TabPaneProps { - key: string -} - -const useTabs = () => { - const tabsField = useField().value - const schema = useFieldSchema().value - const tabs: { name: SchemaKey; props: any; schema: Schema }[] = reactive([]) - schema.mapProperties((schema, name) => { - const field = tabsField.query(tabsField.address.concat(name)).take() - if (field?.display === 'none' || field?.display === 'hidden') return - if (schema['x-component']?.indexOf('TabPane') > -1) { - tabs.push({ - name, - props: { - key: schema?.['x-component-props']?.key || name, - ...schema?.['x-component-props'], - }, - schema, - }) - } - }) - return tabs -} - -const createFormTab = (defaultActiveKey?: string) => { - const formTab = model({ - activeKey: defaultActiveKey, - setActiveKey(key: string) { - formTab.activeKey = key - }, - }) - return formTab -} - -const FormTabInner = observer( - // eslint-disable-next-line vue/one-component-per-file - defineComponent({ - name: 'FormTab', - props: ['formTab'], - setup(props, { attrs, listeners }) { - const field = useField().value - const formTabRef = computed(() => props.formTab ?? createFormTab()) - - const prefixCls = `${stylePrefix}-form-tab` - - return () => { - const formTab = formTabRef.value - const tabs = useTabs() - const activeKey = - props.activeKey || formTab?.activeKey || tabs?.[0]?.name - const badgedTab = (key: SchemaKey, props: any) => { - const errors = field.form.queryFeedbacks({ - type: 'error', - address: `${field.address.concat(key)}.*`, - }) - if (errors.length) { - return () => - h( - Badge, - { - class: [`${prefixCls}-errors-badge`], - props: { - count: errors.length, - size: 'small', - }, - }, - { default: () => props.tab } - ) - } - return props.tab - } - - const getTabs = (tabs) => { - return tabs.map(({ props, schema, name }) => { - return h( - TabPane, - { - key: name, - props: { - ...props, - tab: badgedTab(name, props), - forceRender: true, - }, - }, - { - default: () => [ - h( - RecursionField, - { - props: { - schema, - name, - }, - }, - {} - ), - ], - } - ) - }) - } - return h( - Tabs, - { - class: [prefixCls], - style: attrs.style, - props: { - ...attrs, - activeKey: activeKey, - }, - on: { - ...listeners, - change: (key) => { - listeners.change?.(key) - formTab.setActiveKey?.(key) - }, - }, - }, - { - default: () => getTabs(tabs), - } - ) - } - }, - }) -) - -// eslint-disable-next-line vue/one-component-per-file -const FormTabPane = defineComponent({ - name: 'FormTabPane', - setup(_props, { slots }) { - return () => h(Fragment, {}, slots) - }, -}) - -export const FormTab = composeExport(FormTabInner, { - TabPane: FormTabPane, - createFormTab, -}) - -export default FormTab diff --git a/packages/components/src/form-tab/index.tsx b/packages/components/src/form-tab/index.tsx new file mode 100644 index 0000000..b01a37d --- /dev/null +++ b/packages/components/src/form-tab/index.tsx @@ -0,0 +1,137 @@ +import type { GeneralField } from '@formily/core' +import type { Schema, SchemaKey } from '@formily/json-schema' +import { model } from '@formily/reactive' +import { observer } from '@formily/reactive-vue' +import { RecursionField, useField, useFieldSchema } from '@formily/vue' +import type { TabPaneProps, TabsProps } from 'ant-design-vue' +import { Badge, Tabs } from 'ant-design-vue' +import { computed, defineComponent, reactive, watchEffect } from 'vue' +import { composeExport, usePrefixCls } from '../__builtins__' + +const { TabPane } = Tabs + +export interface IFormTab { + activeKey: string + setActiveKey(key: string): void +} + +export interface IFormTabProps extends TabsProps { + formTab?: IFormTab +} + +export interface IFormTabPaneProps extends TabPaneProps { + key: string +} + +interface ITab { + name: SchemaKey + props: any + schema: Schema + field: GeneralField +} + +const useTabs = () => { + const tabsFieldRef = useField() + const schemaRef = useFieldSchema() + const tabs: ITab[] = reactive([]) + watchEffect(() => { + schemaRef.value.mapProperties((schema, name) => { + const field = tabsFieldRef.value.query(tabsFieldRef.value.address.concat(name)).take() + if (field?.display === 'none' || field?.display === 'hidden') return + if (schema['x-component']?.indexOf('TabPane') > -1) { + tabs.push({ + name, + props: { + key: schema?.['x-component-props']?.key || name, + ...schema?.['x-component-props'], + ...field?.componentProps + }, + schema, + field + }) + } + }) + }) + return tabs +} + +const createFormTab = (defaultActiveKey?: string) => { + const formTab = model({ + activeKey: defaultActiveKey, + setActiveKey(key: string) { + formTab.activeKey = key + } + }) + return formTab +} + +const FormTabInner = observer( + defineComponent({ + name: 'FormTab', + props: ['formTab', 'activeKey'], + emits: ['change'], + setup(props, { attrs, emit }) { + const field = useField().value + const formTabRef = computed(() => props.formTab ?? createFormTab()) + + const prefixCls = usePrefixCls('formily-form-tab', attrs.prefixCls as string) + const tabs = useTabs() + + return () => { + const formTab = formTabRef.value + const activeKey = props.activeKey || formTab?.activeKey || tabs?.[0]?.name + const badgedTab = (key: SchemaKey, props: any) => { + const errors = field.form.queryFeedbacks({ + type: 'error', + address: `${field.address.concat(key)}.*` + }) + if (errors.length) { + return () => ( + + {props.tab} + + ) + } + return props.tab + } + + const getTabs = (tabs: ITab[]) => { + return tabs.map(({ props, schema, name }) => { + return ( + + + + ) + }) + } + return ( + { + emit('change', key) + formTab.setActiveKey?.(key) + }} + > + {getTabs(tabs)} + + ) + } + } + }) +) + +const FormTabPane = defineComponent({ + name: 'FormTabPane', + setup(_props, { slots }) { + return () => <>{slots.default?.()} + } +}) + +export const FormTab = composeExport(FormTabInner, { + TabPane: FormTabPane, + createFormTab +}) + +export default FormTab diff --git a/packages/components/src/form-tab/style.ts b/packages/components/src/form-tab/style.ts deleted file mode 100644 index a1db468..0000000 --- a/packages/components/src/form-tab/style.ts +++ /dev/null @@ -1,2 +0,0 @@ -import 'ant-design-vue/lib/badge/style/index' -import 'ant-design-vue/lib/tabs/style/index' diff --git a/packages/components/src/form/index.ts b/packages/components/src/form/index.ts deleted file mode 100644 index e462ef3..0000000 --- a/packages/components/src/form/index.ts +++ /dev/null @@ -1,99 +0,0 @@ -import type { Form as FormType, IFormFeedback } from '@formily/core' -import { FormProvider as _FormProvider, h, useForm } from '@formily/vue' -import { defineComponent } from '@vue/composition-api' -import type { FormLayoutProps } from '../form-layout' -import { FormLayout } from '../form-layout' -import { PreviewText } from '../preview-text' -import type { Component, VNode } from 'vue' - -const FormProvider = _FormProvider as unknown as Component - -export interface FormProps extends FormLayoutProps { - form?: FormType - component?: Component - previewTextPlaceholder: string | (() => VNode) - onAutoSubmit?: (values: any) => any - onAutoSubmitFailed?: (feedbacks: IFormFeedback[]) => void -} - -export const Form = defineComponent({ - name: 'FForm', - props: [ - 'form', - 'component', - 'previewTextPlaceholder', - 'onAutoSubmit', - 'onAutoSubmitFailed', - ], - setup(props, { attrs, slots, listeners }) { - const top = useForm() - - return () => { - const { - form, - component = 'form', - onAutoSubmit = listeners?.autoSubmit, - onAutoSubmitFailed = listeners?.autoSubmitFailed, - previewTextPlaceholder = slots?.previewTextPlaceholder, - } = props - - const renderContent = (form: FormType) => { - return h( - PreviewText.Placeholder, - { - props: { - value: previewTextPlaceholder, - }, - }, - { - default: () => [ - h( - FormLayout, - { - attrs: { - ...attrs, - }, - }, - { - default: () => [ - h( - component, - { - on: { - submit: (e: Event) => { - e?.stopPropagation?.() - e?.preventDefault?.() - form - .submit(onAutoSubmit as (e: any) => void) - .catch(onAutoSubmitFailed as (e: any) => void) - }, - }, - }, - slots - ), - ], - } - ), - ], - } - ) - } - - if (form) { - return h( - FormProvider, - { props: { form } }, - { - default: () => renderContent(form), - } - ) - } - - if (!top.value) throw new Error('must pass form instance by createForm') - - return renderContent(top.value) - } - }, -}) - -export default Form diff --git a/packages/components/src/form/index.tsx b/packages/components/src/form/index.tsx new file mode 100644 index 0000000..957daf3 --- /dev/null +++ b/packages/components/src/form/index.tsx @@ -0,0 +1,80 @@ +import type { Form as FormType, IFormFeedback } from '@formily/core' +import { FormProvider, useForm } from '@formily/vue' +import type { Component, PropType, VNode } from 'vue' +import { defineComponent } from 'vue' +import type { PropTypes } from '../__builtins__' +import { FormLayout, getFormLayoutProps } from '../form-layout' +import { PreviewText } from '../preview-text' + +export const getFormProps = () => { + return { + ...getFormLayoutProps(), + form: { + type: Object as PropType + }, + component: { + type: [String, Object] as PropType + }, + previewTextPlaceholder: { + type: [String, Function] as PropType VNode)> + }, + onAutoSubmit: { + type: Function as PropType<(values: any) => any> + }, + onAutoSubmitFailed: { + type: Function as PropType<(feedbacks: IFormFeedback[]) => void> + } + } +} + +export type FormProps = PropTypes + +export const Form = defineComponent({ + name: 'FForm', + props: getFormProps(), + setup(props, { attrs, slots }) { + const top = useForm() + + return () => { + const { + form, + component = 'form', + onAutoSubmit = attrs.onAutoSubmit, + onAutoSubmitFailed = attrs.onAutoSubmitFailed, + previewTextPlaceholder = slots.previewTextPlaceholder, + ...layoutProps + } = props + + const renderContent = (form: FormType) => { + const Com = component as 'form' + return ( + + { + e?.stopPropagation?.() + e?.preventDefault?.() + form + .submit(onAutoSubmit as (e: any) => void) + .catch(onAutoSubmitFailed as (e: any) => void) + }} + > + + {slots.default?.()} + + + + ) + } + + if (form) { + return {renderContent(form)} + } + + if (!top.value) throw new Error('must pass form instance by createForm') + + return renderContent(top.value) + } + } +}) + +export default Form diff --git a/packages/components/src/form/style.ts b/packages/components/src/form/style.ts deleted file mode 100644 index 11dce55..0000000 --- a/packages/components/src/form/style.ts +++ /dev/null @@ -1 +0,0 @@ -// @ts-ignore diff --git a/packages/components/src/index.ts b/packages/components/src/index.ts index 5a310d5..6b95a98 100644 --- a/packages/components/src/index.ts +++ b/packages/components/src/index.ts @@ -1,35 +1,37 @@ -import './style' +export { genCommonStyle, genStyleHook } from './__builtins__/styles' +export type { GenerateStyle } from './__builtins__/styles' +export * from './array-base' +export * from './array-cards' +export * from './array-collapse' +export * from './array-items' +export * from './array-table' +export * from './array-tabs' +export * from './cascader' +export * from './checkbox' +export * from './date-picker' +export * from './editable' export * from './form' -export * from './form-item' -export * from './form-layout' -export * from './form-grid' export * from './form-button-group' -export * from './form-step' -export * from './form-tab' export * from './form-collapse' export * from './form-dialog' export * from './form-drawer' -export * from './preview-text' -export * from './space' -export * from './reset' -export * from './submit' +export * from './form-grid' +export * from './form-item' +export * from './form-layout' +export * from './form-step' +export * from './form-tab' export * from './input' export * from './input-number' +export * from './password' +export * from './preview-text' +export * from './radio' +export * from './reset' export * from './select' +export * from './slider' +export * from './space' +export * from './submit' export * from './switch' -export * from './radio' -export * from './password' -export * from './checkbox' -export * from './cascader' +export * from './time-picker' export * from './transfer' export * from './tree-select' -export * from './time-picker' -export * from './date-picker' -export * from './editable' export * from './upload' -export * from './array-tabs' -export * from './array-base' -export * from './array-cards' -export * from './array-items' -export * from './array-table' -export * from './array-collapse' diff --git a/packages/components/src/input-number/index.ts b/packages/components/src/input-number/index.ts index 21f34e8..0a8fba1 100644 --- a/packages/components/src/input-number/index.ts +++ b/packages/components/src/input-number/index.ts @@ -1,10 +1,7 @@ -import { connect, mapReadPretty } from '@formily/vue' import { InputNumber as AntdInputNumber } from 'ant-design-vue' +import { connect, mapReadPretty } from '@formily/vue' import { PreviewText } from '../preview-text' -export const InputNumber = connect( - AntdInputNumber, - mapReadPretty(PreviewText.Input) -) +export const InputNumber = connect(AntdInputNumber, mapReadPretty(PreviewText.Input)) export default InputNumber diff --git a/packages/components/src/input/index.ts b/packages/components/src/input/index.ts index 98c95b6..7d6745a 100644 --- a/packages/components/src/input/index.ts +++ b/packages/components/src/input/index.ts @@ -1,32 +1,30 @@ -import { composeExport, transformComponent } from '../__builtins__/shared' import { connect, mapProps, mapReadPretty } from '@formily/vue' +import { Input as AntInput, Textarea as AntTextarea } from 'ant-design-vue' +import type { InputProps as AntInputProps } from 'ant-design-vue/es/input' +import { composeExport, transformComponent } from '../__builtins__' import { PreviewText } from '../preview-text' -import { Input as AntInput } from 'ant-design-vue' -import type { Input as AntInputProps } from 'ant-design-vue/types/input/input' -const TransformElInput = transformComponent(AntInput, { - change: 'input', +const TransformAntInput = transformComponent(AntInput, { + change: 'input' +}) + +const TransformTextarea = transformComponent(AntTextarea, { + change: 'input' }) const InnerInput = connect( - TransformElInput, + TransformAntInput, mapProps({ readOnly: 'read-only' }), mapReadPretty(PreviewText.Input) ) - const TextArea = connect( - InnerInput, - mapProps((props) => { - return { - ...props, - type: 'textarea', - } - }), + TransformTextarea, + mapProps({ readOnly: 'read-only' }), mapReadPretty(PreviewText.Input) ) export const Input = composeExport(InnerInput, { - TextArea, + TextArea }) export default Input diff --git a/packages/components/src/password/index.ts b/packages/components/src/password/index.ts index 699c3a1..cffc9ab 100644 --- a/packages/components/src/password/index.ts +++ b/packages/components/src/password/index.ts @@ -1,5 +1,5 @@ -import { connect, mapProps, mapReadPretty } from '@formily/vue' import { Input } from 'ant-design-vue' +import { connect, mapProps, mapReadPretty } from '@formily/vue' import { PreviewText } from '../preview-text' const { Password: AntdPassword } = Input @@ -8,7 +8,7 @@ export const Password = connect( AntdPassword, mapProps((props) => { return { - ...props, + ...props } }), mapReadPretty(PreviewText.Input) diff --git a/packages/components/src/preview-text/index.ts b/packages/components/src/preview-text/index.ts deleted file mode 100644 index ab3ac6c..0000000 --- a/packages/components/src/preview-text/index.ts +++ /dev/null @@ -1,339 +0,0 @@ -import { defineComponent, computed } from '@vue/composition-api' -import { h, useField } from '@formily/vue' -import { isArr, isValid } from '@formily/shared' -import { - createContext, - resolveComponent, - useContext, - composeExport, -} from '../__builtins__/shared' -import { stylePrefix } from '../__builtins__/configs' -import type { Input as InputProps } from 'ant-design-vue/types/input/input' -import type { Select as SelectProps } from 'ant-design-vue/types/select/select' -import type { - Cascader as CascaderProps, - CascaderOptionType, -} from 'ant-design-vue/types/cascader' -import type { TimePicker as TimePickerProps } from 'ant-design-vue/types/time-picker' -import type { DatePicker as DatePickerProps } from 'ant-design-vue/types/date-picker/date-picker' -import type { RangePicker as RangePickerProps } from 'ant-design-vue/types/date-picker/range-picker' - -import { Tag } from 'ant-design-vue' - -import { Space } from '../space' -import { observer } from '@formily/reactive-vue' -import type { Field } from '@formily/core' -import { formatMomentValue } from '../__builtins__' - -const prefixCls = `${stylePrefix}-preview-text` -const PlaceholderContext = createContext('N/A') - -export const usePlaceholder = (value?: any) => { - const placeholderCtx = useContext(PlaceholderContext) - const placeholder = computed(() => { - return isValid(value) && value !== '' - ? value - : resolveComponent(placeholderCtx.value) || 'N/A' - }) - - return placeholder -} - -const Select = observer( - // eslint-disable-next-line vue/one-component-per-file - defineComponent({ - name: 'PreviewTextSelect', - props: [], - setup(_props, { attrs }) { - const fieldRef = useField() - const field = fieldRef.value - const props = attrs as unknown as SelectProps - const placeholder = usePlaceholder() - const getSelected = () => { - const value = props.value - if (props.mode === 'multiple' || props.mode === 'tags') { - if (props.labelInValue) { - return isArr(value) ? value : [] - } - return isArr(value) - ? value.map((val) => ({ label: val, value: val })) - : [] - } else { - if (props.labelInValue) { - return isValid(value) ? [value] : [] - } - return isValid(value) ? [{ label: value, value }] : [] - } - } - - const getLabels = () => { - const selected = getSelected() - const dataSource: any[] = field?.dataSource?.length - ? field.dataSource - : props?.options?.length - ? props.options - : [] - if (!selected.length) { - return h( - Tag, - {}, - { - default: () => placeholder.value, - } - ) - } - return selected.map((target, key) => { - const text = - dataSource?.find((item) => item.value == target?.value)?.label || - target?.label - return h( - Tag, - { - key, - }, - { - default: () => text || placeholder.value, - } - ) - }) - } - - return () => { - return h( - Space, - { - class: [prefixCls], - style: attrs.style, - }, - { - default: () => getLabels(), - } - ) - } - }, - }) -) - -// eslint-disable-next-line vue/one-component-per-file -const Input = observer( - defineComponent({ - name: 'PreviewTextInput', - setup(_props, { attrs, slots }) { - return () => { - const placeholder = usePlaceholder(attrs.value) - return h( - Space, - { - class: [prefixCls], - style: attrs.style, - }, - { - default: () => [ - slots?.prepend?.(), - slots?.prefix?.(), - placeholder.value, - slots?.suffix?.(), - slots?.append?.(), - ], - } - ) - } - }, - }) -) - -// eslint-disable-next-line vue/one-component-per-file -const Text = defineComponent({ - name: 'PreviewText', - setup(_props, { attrs }) { - const placeholder = usePlaceholder() - - return () => { - return h( - 'div', - { - class: [prefixCls], - style: attrs.style, - }, - { - default: () => placeholder.value, - } - ) - } - }, -}) - -export type PreviewCascaderProps = CascaderProps & { - options: CascaderOptionType[] -} -const Cascader = observer( - // eslint-disable-next-line vue/one-component-per-file - defineComponent({ - name: 'PreviewTextCascader', - props: [], - setup(_props, { attrs }) { - const fieldRef = useField() - const field = fieldRef.value - const props = attrs as unknown as PreviewCascaderProps - const dataSource: any[] = field?.dataSource?.length - ? field.dataSource - : props?.options?.length - ? props.options - : [] - const placeholder = usePlaceholder() - const getSelected = () => { - return isArr(props.value) ? props.value : [] - } - - const findLabel = (value: any, dataSource: any[]) => { - for (let i = 0; i < dataSource?.length; i++) { - const item = dataSource[i] - if (item?.value === value) { - return item?.label - } else { - const childLabel = findLabel(value, item?.children) - if (childLabel) return childLabel - } - } - } - - const getLabels = () => { - const selected = getSelected() - if (!selected?.length) { - return h( - Tag, - {}, - { - default: () => placeholder.value, - } - ) - } - return selected.map((value, key) => { - const text = findLabel(value, dataSource) - return h( - Tag, - { - key, - }, - { - default: () => text || placeholder.value, - } - ) - }) - } - - return () => { - return h( - Space, - { - class: [prefixCls], - style: attrs.style, - }, - { - default: () => getLabels(), - } - ) - } - }, - }) -) - -// eslint-disable-next-line vue/one-component-per-file -const TimePicker = defineComponent({ - name: 'PreviewTextTimePicker', - setup(_props, { attrs }) { - const props = attrs as unknown as TimePickerProps - const placeholder = usePlaceholder() - const getLabels = () => { - const labels = formatMomentValue( - props.value, - props.format, - placeholder.value - ) - return isArr(labels) ? labels.join('~') : labels - } - return () => { - return h( - 'div', - { - class: [prefixCls], - style: attrs.style, - }, - { - default: () => getLabels() as any, - } - ) - } - }, -}) - -// eslint-disable-next-line vue/one-component-per-file -const DatePicker = defineComponent({ - name: 'PreviewTextDatePicker', - setup(_props, { attrs }) { - const props = attrs as unknown as DatePickerProps - const placeholder = usePlaceholder() - const getLabels = () => { - const labels = formatMomentValue( - props.value, - props.format, - placeholder.value - ) - return isArr(labels) ? labels.join('~') : labels - } - return () => { - return h( - 'div', - { - class: [prefixCls], - style: attrs.style, - }, - { - default: () => getLabels() as any, - } - ) - } - }, -}) - -// eslint-disable-next-line vue/one-component-per-file -const DateRangePicker = defineComponent({ - name: 'PreviewTextDatePicker', - setup(_props, { attrs }) { - const props = attrs as unknown as RangePickerProps - const placeholder = usePlaceholder() - const getLabels = () => { - const labels = formatMomentValue( - props.value, - props.format, - placeholder.value - ) - return isArr(labels) ? labels.join('~') : labels - } - return () => { - return h( - 'div', - { - class: [prefixCls], - style: attrs.style, - }, - { - default: () => getLabels() as any, - } - ) - } - }, -}) - -export const PreviewText = composeExport(Text, { - Input, - Select, - Cascader, - DatePicker, - DateRangePicker, - TimePicker, - Placeholder: PlaceholderContext.Provider, - usePlaceholder, -}) - -export default PreviewText diff --git a/packages/components/src/preview-text/index.tsx b/packages/components/src/preview-text/index.tsx new file mode 100644 index 0000000..726349e --- /dev/null +++ b/packages/components/src/preview-text/index.tsx @@ -0,0 +1,242 @@ +import type { Field } from '@formily/core' +import { observer } from '@formily/reactive-vue' +import { isArr, isValid } from '@formily/shared' +import { useField } from '@formily/vue' +import type { CascaderProps, DatePickerProps, SelectProps, TimePickerProps } from 'ant-design-vue' +import { Tag } from 'ant-design-vue' +import type { CascaderOptionType } from 'ant-design-vue/es/cascader' +import type { RangePickerProps } from 'ant-design-vue/es/date-picker' +import { computed, defineComponent } from 'vue' +import { + composeExport, + createContext, + formatDayjsValue, + resolveComponent, + useContext, + usePrefixCls +} from '../__builtins__' +import { Space } from '../space' +import useStyle from './style' + +const PlaceholderContext = createContext('N/A') + +export const usePlaceholder = (value?: any) => { + const placeholderCtx = useContext(PlaceholderContext) + const placeholder = computed(() => { + return isValid(value) && value !== '' ? value : resolveComponent(placeholderCtx.value) || 'N/A' + }) + + return placeholder +} + +const Select = observer( + defineComponent({ + name: 'PreviewTextSelect', + props: [], + setup(_props, { attrs }) { + const prefixCls = usePrefixCls('formily-preview-text', attrs.prefixCls as string) + const [wrapSSR, hashId] = useStyle(prefixCls) + const fieldRef = useField() + const field = fieldRef.value + const props = attrs as unknown as SelectProps + const placeholder = usePlaceholder() + const getSelected = () => { + const value = props.value + if (props.mode === 'multiple' || props.mode === 'tags') { + if (props.labelInValue) { + return isArr(value) ? value : [] + } + return isArr(value) ? value.map((val) => ({ label: val, value: val })) : [] + } else { + if (props.labelInValue) { + return isValid(value) ? [value] : [] + } + return isValid(value) ? [{ label: value, value }] : [] + } + } + + const getLabels = () => { + const selected = getSelected() + const dataSource: any[] = field?.dataSource?.length + ? field.dataSource + : props?.options?.length + ? props.options + : [] + if (!selected.length) { + return {placeholder.value} + } + return selected.map((target, key) => { + const text = + dataSource?.find((item) => item.value == target?.value)?.label || target?.label + return {text || placeholder.value} + }) + } + + return () => { + return wrapSSR({getLabels()}) + } + } + }) +) + +const Input = observer( + defineComponent({ + name: 'PreviewTextInput', + setup(_props, { attrs, slots }) { + const prefixCls = usePrefixCls('formily-preview-text', attrs.prefixCls as string) + const [wrapSSR, hashId] = useStyle(prefixCls) + return () => { + const placeholder = usePlaceholder(attrs.value) + return wrapSSR( + + {slots?.prepend?.()} + {slots?.prefix?.()} + {placeholder.value} + {slots?.suffix?.()} + {slots?.append?.()} + + ) + } + } + }) +) + +const Text = defineComponent({ + name: 'PreviewText', + setup(_props, { attrs }) { + const prefixCls = usePrefixCls('formily-preview-text', attrs.prefixCls as string) + const [wrapSSR, hashId] = useStyle(prefixCls) + const placeholder = usePlaceholder() + + return () => { + return wrapSSR(
{placeholder.value}
) + } + } +}) + +export type PreviewCascaderProps = CascaderProps & { + options: CascaderOptionType[] +} +const Cascader = observer( + defineComponent({ + name: 'PreviewTextCascader', + props: [], + setup(_props, { attrs }) { + const prefixCls = usePrefixCls('formily-preview-text', attrs.prefixCls as string) + const [wrapSSR, hashId] = useStyle(prefixCls) + const fieldRef = useField() + const field = fieldRef.value + const props = attrs as unknown as PreviewCascaderProps + + const placeholder = usePlaceholder() + const getSelected = (): any[] => { + return isArr(props.value) ? props.value : [] + } + + const getLabels = () => { + const dataSource: any[] = field?.dataSource?.length + ? field.dataSource + : props?.options?.length + ? props.options + : [] + const selected = getSelected() + if (!selected?.length) { + return {placeholder.value} + } + + return selected + .reduce<{ + dataSource?: any[] + labels: any[] + }>( + (pre, cur) => { + const result = pre.dataSource?.find((item) => item.value == cur) + if (result) { + pre.labels.push(result.label) + pre.dataSource = result.children + } else { + pre.labels.push(cur) + pre.dataSource = [] + } + return pre + }, + { + dataSource, + labels: [] as any[] + } + ) + .labels.map((label, key) => { + return {label || placeholder.value} + }) + } + + return () => { + return wrapSSR({getLabels()}) + } + } + }) +) + +const TimePicker = defineComponent({ + name: 'PreviewTextTimePicker', + setup(_props, { attrs }) { + const props = attrs as unknown as TimePickerProps + const prefixCls = usePrefixCls('formily-preview-text', attrs.prefixCls as string) + const [wrapSSR, hashId] = useStyle(prefixCls) + const placeholder = usePlaceholder() + const getLabels = () => { + const labels = formatDayjsValue(props.value, props.format, placeholder.value) + return isArr(labels) ? labels.join('~') : labels + } + return () => { + return wrapSSR(
{getLabels()}
) + } + } +}) + +const DatePicker = defineComponent({ + name: 'PreviewTextDatePicker', + setup(_props, { attrs }) { + const props = attrs as unknown as DatePickerProps + const prefixCls = usePrefixCls('formily-preview-text', attrs.prefixCls as string) + const [wrapSSR, hashId] = useStyle(prefixCls) + const placeholder = usePlaceholder() + const getLabels = () => { + const labels = formatDayjsValue(props.value, props.format, placeholder.value) + return isArr(labels) ? labels.join('~') : labels + } + return () => { + return wrapSSR(
{getLabels()}
) + } + } +}) + +const DateRangePicker = defineComponent({ + name: 'PreviewTextDatePicker', + setup(_props, { attrs }) { + const props = attrs as unknown as RangePickerProps + const prefixCls = usePrefixCls('formily-preview-text', attrs.prefixCls as string) + const [wrapSSR, hashId] = useStyle(prefixCls) + const placeholder = usePlaceholder() + const getLabels = () => { + const labels = formatDayjsValue(props.value, props.format, placeholder.value) + return isArr(labels) ? labels.join('~') : labels + } + return () => { + return wrapSSR(
{getLabels()}
) + } + } +}) + +export const PreviewText = composeExport(Text, { + Input, + Select, + Cascader, + DatePicker, + DateRangePicker, + TimePicker, + Placeholder: PlaceholderContext.Provider, + usePlaceholder +}) + +export default PreviewText diff --git a/packages/components/src/preview-text/style.less b/packages/components/src/preview-text/style.less deleted file mode 100644 index 5c345d3..0000000 --- a/packages/components/src/preview-text/style.less +++ /dev/null @@ -1,12 +0,0 @@ -@import '~ant-design-vue/lib/style/themes/index.less'; - -@form-text-prefix-cls: ~'@{ant-prefix}-form-text'; - -.@{form-text-prefix-cls} { - font-size: 14px; - font-weight: 500; - - .@{ant-prefix}-tag:last-child { - margin-right: 0; - } -} diff --git a/packages/components/src/preview-text/style.ts b/packages/components/src/preview-text/style.ts index 06499da..23b8860 100644 --- a/packages/components/src/preview-text/style.ts +++ b/packages/components/src/preview-text/style.ts @@ -1,2 +1,19 @@ -import './style.less' -import 'ant-design-vue/lib/tag/style/index' +import { genStyleHook } from './../__builtins__' + +export default genStyleHook('preview-text', (token) => { + const { componentCls, antCls, fontSize } = token + return [ + { + [componentCls]: { + fontSize, + + [`${antCls}-tag:last-child`]: { + marginInlineEnd: 0 + } + }, + [`${antCls}-space`]: { + display: 'flex !important' + } + } + ] +}) diff --git a/packages/components/src/radio/index.ts b/packages/components/src/radio/index.ts deleted file mode 100644 index 90dcb43..0000000 --- a/packages/components/src/radio/index.ts +++ /dev/null @@ -1,101 +0,0 @@ -import { connect, mapProps, mapReadPretty, h } from '@formily/vue' -import { - composeExport, - transformComponent, - resolveComponent, -} from '../__builtins__/shared' -import { PreviewText } from '../preview-text' -import { Radio as AntdRadio } from 'ant-design-vue' -import type { RadioGroup as AntdRadioGroupProps } from 'ant-design-vue/types/radio/radio-group' -import type { PropType } from '@vue/composition-api' -import { defineComponent } from '@vue/composition-api' - -const { Button, Group } = AntdRadio - -export type RadioGroupProps = AntdRadioGroupProps & { - optionType: 'defalt' | 'button' -} - -const TransformRadioGroup = transformComponent(Group, { - change: 'input', -}) - -const RadioGroupOption = defineComponent({ - name: 'RadioGroup', - props: { - options: { - type: Array as PropType, - default: () => [], - }, - optionType: { - type: String as PropType, - default: 'default', - }, - }, - setup(customProps, { attrs, slots, listeners }) { - return () => { - const options = customProps.options || [] - const OptionType = - customProps.optionType === 'button' ? Button : AntdRadio - const children = - options.length !== 0 - ? { - default: () => - options.map((option) => { - if (typeof option === 'string') { - return h( - OptionType, - { props: { value: option } }, - { - default: () => [ - resolveComponent(slots?.option ?? option, { option }), - ], - } - ) - } else { - return h( - OptionType, - { - props: { - ...option, - value: option.value, - label: option.label, - }, - }, - { - default: () => [ - resolveComponent(slots?.option ?? option.label, { - option, - }), - ], - } - ) - } - }), - } - : slots - return h( - TransformRadioGroup, - { - attrs: { - ...attrs, - }, - on: listeners, - }, - children - ) - } - }, -}) - -const RadioGroup = connect( - RadioGroupOption, - mapProps({ dataSource: 'options' }), - mapReadPretty(PreviewText.Select) -) - -export const Radio = composeExport(AntdRadio, { - Group: RadioGroup, -}) - -export default Radio diff --git a/packages/components/src/radio/index.tsx b/packages/components/src/radio/index.tsx new file mode 100644 index 0000000..c65f8ef --- /dev/null +++ b/packages/components/src/radio/index.tsx @@ -0,0 +1,73 @@ +import { connect, mapProps, mapReadPretty } from '@formily/vue' +import type { RadioGroupProps as AntdRadioGroupProps } from 'ant-design-vue' +import { Radio as AntdRadio, RadioGroup as AntdRadioGroup, RadioButton } from 'ant-design-vue' +import type { PropType } from 'vue' +import { defineComponent } from 'vue' +import { composeExport, resolveComponent, transformComponent } from '../__builtins__' +import { PreviewText } from '../preview-text' + +export type RadioGroupProps = AntdRadioGroupProps & { + optionType: 'default' | 'button' +} + +const TransformRadioGroup = transformComponent(AntdRadioGroup, { + change: 'input' +}) + +const RadioGroupOption = defineComponent({ + name: 'RadioGroup', + props: { + options: { + type: Array as PropType, + default: () => [] + }, + optionType: { + type: String as PropType, + default: 'default' + } + }, + setup(customProps, { attrs, slots }) { + return () => { + const options = customProps.options || [] + const Radio = customProps.optionType === 'button' ? RadioButton : AntdRadio + const renderSlot = () => { + return options.length !== 0 + ? { + default: () => + options.map((option) => { + if (typeof option === 'string' || typeof option === 'number') { + return ( + + {resolveComponent(slots?.option ?? option, { option })} + + ) + } else { + return ( + + {resolveComponent(slots?.option ?? option.label, { + option + })} + + ) + } + }) + } + : slots + } + + return {renderSlot()} + } + } +}) + +const RadioGroup = connect( + RadioGroupOption, + mapProps({ dataSource: 'options' }), + mapReadPretty(PreviewText.Select) +) + +export const Radio = composeExport(AntdRadio, { + Group: RadioGroup +}) + +export default Radio diff --git a/packages/components/src/radio/style.ts b/packages/components/src/radio/style.ts deleted file mode 100644 index ba48890..0000000 --- a/packages/components/src/radio/style.ts +++ /dev/null @@ -1 +0,0 @@ -import 'ant-design-vue/lib/radio/style/index' diff --git a/packages/components/src/reset/index.ts b/packages/components/src/reset/index.ts deleted file mode 100644 index adaf703..0000000 --- a/packages/components/src/reset/index.ts +++ /dev/null @@ -1,56 +0,0 @@ -import type { IFieldResetOptions } from '@formily/core' -import { h, useParentForm } from '@formily/vue' -import { observer } from '@formily/reactive-vue' -import { defineComponent } from '@vue/composition-api' - -import type { Button as IAntButton } from 'ant-design-vue' -import { Button as AntButton } from 'ant-design-vue' - -export type ResetProps = IFieldResetOptions & IAntButton - -export const Reset = observer( - defineComponent({ - name: 'Reset', - props: { - forceClear: { - type: Boolean, - default: false, - }, - validate: { - type: Boolean, - default: false, - }, - }, - setup(props, context) { - const formRef = useParentForm() - const { listeners, slots } = context - return () => { - const form = formRef?.value - return h( - AntButton, - { - attrs: context.attrs, - on: { - ...listeners, - click: (e: any) => { - if (listeners?.click) { - if (listeners.click(e) === false) return - } - form - ?.reset('*', { - forceClear: props.forceClear, - validate: props.validate, - }) - .then(listeners.resetValidateSuccess as (e: any) => void) - .catch(listeners.resetValidateFailed as (e: any) => void) - }, - }, - }, - slots - ) - } - }, - }) -) - -export default Reset diff --git a/packages/components/src/reset/index.tsx b/packages/components/src/reset/index.tsx new file mode 100644 index 0000000..28eb1aa --- /dev/null +++ b/packages/components/src/reset/index.tsx @@ -0,0 +1,47 @@ +import { observer } from '@formily/reactive-vue' +import { useParentForm } from '@formily/vue' +import { Button } from 'ant-design-vue' +import { defineComponent } from 'vue' + +export const Reset = observer( + defineComponent({ + name: 'Reset', + props: { + forceClear: { + type: Boolean, + default: false + }, + validate: { + type: Boolean, + default: false + } + }, + emits: ['resetValidateSuccess', 'resetValidateFailed'], + setup(props, { attrs, slots, emit }) { + const formRef = useParentForm() + return () => { + const form = formRef?.value + return ( + + ) + } + } + }) +) + +export default Reset diff --git a/packages/components/src/reset/style.ts b/packages/components/src/reset/style.ts deleted file mode 100644 index 40a0655..0000000 --- a/packages/components/src/reset/style.ts +++ /dev/null @@ -1 +0,0 @@ -import 'ant-design-vue/lib/button/style/index' diff --git a/packages/components/src/select/index.ts b/packages/components/src/select/index.ts index 0ddf021..56328fa 100644 --- a/packages/components/src/select/index.ts +++ b/packages/components/src/select/index.ts @@ -1,5 +1,5 @@ -import { connect, mapProps, mapReadPretty } from '@formily/vue' import { Select as AntdSelect } from 'ant-design-vue' +import { connect, mapProps, mapReadPretty } from '@formily/vue' import { PreviewText } from '../preview-text' export const Select = connect( @@ -7,13 +7,17 @@ export const Select = connect( mapProps( { dataSource: 'options', - loading: true, + loading: true }, - (props, field) => { + ({ useNull, ...props }, field) => { + let value = props.value + if (!useNull && value === null) { + value = undefined + } return { ...props, - loading: - field?.['loading'] || field?.['validating'] ? true : props.loading, + loading: field?.['loading'] || field?.['validating'] ? true : props.loading, + value } } ), diff --git a/packages/components/src/select/style.ts b/packages/components/src/select/style.ts deleted file mode 100644 index f0e6b8f..0000000 --- a/packages/components/src/select/style.ts +++ /dev/null @@ -1 +0,0 @@ -import 'ant-design-vue/lib/select/style/index' diff --git a/packages/components/src/slider/index.ts b/packages/components/src/slider/index.ts new file mode 100644 index 0000000..00ead3a --- /dev/null +++ b/packages/components/src/slider/index.ts @@ -0,0 +1,6 @@ +import { Slider as AntdSlider } from 'ant-design-vue' +import { connect, mapProps } from '@formily/vue' + +export const Slider = connect(AntdSlider, mapProps({})) + +export default Slider diff --git a/packages/components/src/space/index.ts b/packages/components/src/space/index.ts deleted file mode 100644 index 4a3ce19..0000000 --- a/packages/components/src/space/index.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { h } from '@formily/vue' -import type { Space as AntSpaceProps } from 'ant-design-vue/types/space' -import { useFormLayout } from '../form-layout' -import type { VNode } from 'vue' -import { defineComponent } from '@vue/composition-api' - -const spaceSize = { - small: 8, - middle: 16, - large: 24, -} - -export const Space = defineComponent({ - name: 'Space', - props: ['size', 'align', 'direction'], - // inject: 'configProvider', - setup(props, { slots }) { - const layout = useFormLayout() - - return () => { - const { - align, - size = layout.value?.spaceGap ?? 'small', - direction = 'horizontal', - } = props - const prefixCls = `ant-space` - const children = slots.default?.() - let items = [] - if (Array.isArray(children)) { - if (children.length === 1) { - if ((children[0]['tag'] as string)?.endsWith('Fragment')) { - // Fragment hack - items = (children[0]['componentOptions'] as { children: VNode[] }) - ?.children - } else { - items = children - } - } else { - items = children - } - } - const len = items.length - if (len === 0) return null - - const mergedAlign = - align === undefined && direction === 'horizontal' ? 'center' : align - - const someSpaceClass = { - [prefixCls]: true, - [`${prefixCls}-${direction}`]: true, - [`${prefixCls}-align-${mergedAlign}`]: mergedAlign, - } - - const itemClassName = `${prefixCls}-item` - const marginDirection = 'marginRight' // directionConfig === 'rtl' ? 'marginLeft' : 'marginRight'; - - const renderItems = items.map((child, i) => - h( - 'div', - { - class: itemClassName, - key: `${itemClassName}-${i}`, - style: - i === len - 1 - ? {} - : { - [direction === 'vertical' - ? 'marginBottom' - : marginDirection]: - typeof size === 'string' - ? `${spaceSize[size]}px` - : `${size}px`, - }, - }, - { default: () => [child] } - ) - ) - - return h( - 'div', - { - class: someSpaceClass, - }, - { - default: () => renderItems, - } - ) - } - }, -}) - -export default Space diff --git a/packages/components/src/space/index.tsx b/packages/components/src/space/index.tsx new file mode 100644 index 0000000..e4984fa --- /dev/null +++ b/packages/components/src/space/index.tsx @@ -0,0 +1,77 @@ +import { Space as AntdSpace } from 'ant-design-vue' +import type { VNode } from 'vue' +import { defineComponent } from 'vue' +import { usePrefixCls } from '../__builtins__' +import { useFormLayout } from '../form-layout' + +const spaceSize = { + small: 8, + middle: 16, + large: 24 +} + +export const Space = defineComponent({ + name: 'Space', + props: ['size', 'align', 'direction'], + setup(props, { attrs, slots }) { + const layout = useFormLayout() + + return () => { + const { align, size = layout.value?.spaceGap ?? 'small', direction = 'horizontal' } = props + const prefixCls = usePrefixCls('space', attrs.prefixCls as string) + const children = slots.default?.() + let items = [] + if (Array.isArray(children)) { + if (children.length === 1) { + if ((children[0]['tag'] as string)?.endsWith('Fragment')) { + // Fragment hack + items = (children[0]['componentOptions'] as { children: VNode[] })?.children + } else { + items = children.filter((child) => !!child.children) + } + } else { + items = children.filter((child) => !!child.children) + } + } + const len = items.length + if (len === 0) return null + + const mergedAlign = align === undefined && direction === 'horizontal' ? 'center' : align + + const someSpaceClass = { + [`${prefixCls}-align-${mergedAlign}`]: mergedAlign + } + + const itemClassName = `${prefixCls}-item` + const marginDirection = 'marginRight' // directionConfig === 'rtl' ? 'marginLeft' : 'marginRight'; + + const renderItems = () => + items.map((child, i) => { + return ( +
+ {child} +
+ ) + }) + + return ( + + {renderItems()} + + ) + } + } +}) + +export default Space diff --git a/packages/components/src/space/style.ts b/packages/components/src/space/style.ts deleted file mode 100644 index c3d8a71..0000000 --- a/packages/components/src/space/style.ts +++ /dev/null @@ -1 +0,0 @@ -import 'ant-design-vue/lib/space/style/index' diff --git a/packages/components/src/style.ts b/packages/components/src/style.ts deleted file mode 100644 index 09257ae..0000000 --- a/packages/components/src/style.ts +++ /dev/null @@ -1,13 +0,0 @@ -// auto generated code -import './array-base/style.less' -import './array-cards/style.less' -import './array-collapse/style.less' -import './array-items/style.less' -import './array-table/style.less' -import './editable/style.less' -import './form-button-group/style.less' -import './form-drawer/style.less' -import './form-grid/style.less' -import './form-item/style.less' -import './form-layout/style.less' -import './preview-text/style.less' diff --git a/packages/components/src/submit/index.ts b/packages/components/src/submit/index.ts deleted file mode 100644 index 0d5d699..0000000 --- a/packages/components/src/submit/index.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { h, useParentForm } from '@formily/vue' -import type { IFormFeedback } from '@formily/core' -import { observer } from '@formily/reactive-vue' -import { defineComponent } from '@vue/composition-api' - -import { Button as AntButton } from 'ant-design-vue' -import type { Button as ButtonProps } from 'ant-design-vue/types/button/button' - -export interface ISubmitProps extends ButtonProps { - onClick?: (e: MouseEvent) => any - onSubmit?: (values: any) => any - onSubmitSuccess?: (payload: any) => void - onSubmitFailed?: (feedbacks: IFormFeedback[]) => void -} - -export const Submit = observer( - defineComponent({ - name: 'FSubmit', - props: ['onClick', 'onSubmit', 'onSubmitSuccess', 'onSubmitFailed'], - setup(props, { attrs, slots, listeners }) { - const formRef = useParentForm() - - return () => { - const { - onClick = listeners?.click, - onSubmit = listeners?.submit, - onSubmitSuccess = listeners?.submitSuccess, - onSubmitFailed = listeners?.submitFailed, - } = props - - const form = formRef?.value - return h( - AntButton, - { - attrs: { - nativeType: listeners?.submit ? 'button' : 'submit', - type: 'primary', - ...attrs, - loading: - attrs.loading !== undefined ? attrs.loading : form?.submitting, - }, - on: { - ...listeners, - click: (e: any) => { - if (onClick) { - if (onClick(e) === false) return - } - if (onSubmit) { - form - ?.submit(onSubmit as (e: any) => void) - .then(onSubmitSuccess as (e: any) => void) - .catch(onSubmitFailed as (e: any) => void) - } - }, - }, - }, - slots - ) - } - }, - }) -) - -export default Submit diff --git a/packages/components/src/submit/index.tsx b/packages/components/src/submit/index.tsx new file mode 100644 index 0000000..782bcf2 --- /dev/null +++ b/packages/components/src/submit/index.tsx @@ -0,0 +1,49 @@ +import { observer } from '@formily/reactive-vue' +import { useParentForm } from '@formily/vue' +import type { ButtonProps } from 'ant-design-vue' +import { Button } from 'ant-design-vue' +import { defineComponent } from 'vue' + +import type { IFormFeedback } from '@formily/core' + +export interface ISubmitProps extends ButtonProps { + onClick?: (e: MouseEvent) => any + onSubmit?: (values: any) => any + onSubmitSuccess?: (payload: any) => void + onSubmitFailed?: (feedbacks: IFormFeedback[]) => void +} + +export const Submit = observer( + defineComponent({ + name: 'FSubmit', + setup(props, { attrs, slots }) { + const formRef = useParentForm() + + return () => { + const { onClick, onSubmit, onSubmitSuccess, onSubmitFailed } = attrs + const form = formRef?.value + return ( + + ) + } + } + }) +) + +export default Submit diff --git a/packages/components/src/submit/style.ts b/packages/components/src/submit/style.ts deleted file mode 100644 index 40a0655..0000000 --- a/packages/components/src/submit/style.ts +++ /dev/null @@ -1 +0,0 @@ -import 'ant-design-vue/lib/button/style/index' diff --git a/packages/components/src/switch/index.ts b/packages/components/src/switch/index.ts index 9048824..9b59290 100644 --- a/packages/components/src/switch/index.ts +++ b/packages/components/src/switch/index.ts @@ -1,9 +1,6 @@ -import { connect, mapProps } from '@formily/vue' import { Switch as AntdSwitch } from 'ant-design-vue' +import { connect, mapProps } from '@formily/vue' -export const Switch = connect( - AntdSwitch, - mapProps({ readOnly: 'read-only', value: 'checked' }) -) +export const Switch = connect(AntdSwitch, mapProps({ readOnly: 'read-only', value: 'checked' })) export default Switch diff --git a/packages/components/src/switch/style.ts b/packages/components/src/switch/style.ts deleted file mode 100644 index 5226d7a..0000000 --- a/packages/components/src/switch/style.ts +++ /dev/null @@ -1 +0,0 @@ -import 'ant-design-vue/lib/switch/style/index' diff --git a/packages/components/src/time-picker/index.ts b/packages/components/src/time-picker/index.ts index 926436f..4f7954b 100644 --- a/packages/components/src/time-picker/index.ts +++ b/packages/components/src/time-picker/index.ts @@ -1,10 +1,17 @@ -import { connect, mapProps, mapReadPretty } from '@formily/vue' import { TimePicker as AntdTimePicker } from 'ant-design-vue' +import { connect, mapProps, mapReadPretty } from '@formily/vue' +import { dayjsable } from '../__builtins__' import { PreviewText } from '../preview-text' export const TimePicker = connect( AntdTimePicker, - mapProps({ readOnly: 'read-only' }), + mapProps((props) => { + return { + ...props, + defaultValue: dayjsable(props.defaultValue, props.valueFormat), + defaultOpenValue: dayjsable(props.defaultOpenValue, props.valueFormat) + } + }), mapReadPretty(PreviewText.TimePicker) ) diff --git a/packages/components/src/time-picker/style.ts b/packages/components/src/time-picker/style.ts deleted file mode 100644 index 0adae4d..0000000 --- a/packages/components/src/time-picker/style.ts +++ /dev/null @@ -1 +0,0 @@ -import 'ant-design-vue/lib/time-picker/style/index' diff --git a/packages/components/src/transfer/index.ts b/packages/components/src/transfer/index.ts index 088fd9d..f162881 100644 --- a/packages/components/src/transfer/index.ts +++ b/packages/components/src/transfer/index.ts @@ -1,6 +1,6 @@ -import { connect, mapProps } from '@formily/vue' import { Transfer as AntdTransfer } from 'ant-design-vue' import { isVoidField } from '@formily/core' +import { connect, mapProps } from '@formily/vue' export const Transfer = connect( AntdTransfer, @@ -8,14 +8,15 @@ export const Transfer = connect( if (isVoidField(field)) return props return { ...props, + render: props.render || ((item) => item.title), dataSource: field.dataSource?.map((item) => { return { ...item, title: item.title || item.label, - key: item.key || item.value, + key: item.key || item.value } - }) || [], + }) || [] } }) ) diff --git a/packages/components/src/transfer/style.ts b/packages/components/src/transfer/style.ts deleted file mode 100644 index 727c51e..0000000 --- a/packages/components/src/transfer/style.ts +++ /dev/null @@ -1 +0,0 @@ -import 'ant-design-vue/lib/transfer/style/index' diff --git a/packages/components/src/tree-select/index.ts b/packages/components/src/tree-select/index.ts deleted file mode 100644 index e858913..0000000 --- a/packages/components/src/tree-select/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { connect, mapProps, h } from '@formily/vue' -import { TreeSelect as AntdTreeSelect, Icon } from 'ant-design-vue' - -export const TreeSelect = connect( - AntdTreeSelect, - mapProps( - { - dataSource: 'treeData', - }, - (props, field) => { - return { - ...props, - suffixIcon: - field?.['loading'] || field?.['validating'] - ? h(Icon, { props: { type: 'loading' } }, {}) - : props.suffixIcon, - } - } - ) -) - -export default TreeSelect diff --git a/packages/components/src/tree-select/index.tsx b/packages/components/src/tree-select/index.tsx new file mode 100644 index 0000000..fd2226b --- /dev/null +++ b/packages/components/src/tree-select/index.tsx @@ -0,0 +1,21 @@ +import { LoadingOutlined } from '@ant-design/icons-vue' +import { connect, mapProps } from '@formily/vue' +import { TreeSelect as AntdTreeSelect } from 'ant-design-vue' + +export const TreeSelect = connect( + AntdTreeSelect, + mapProps( + { + dataSource: 'treeData' + }, + (props, field) => { + return { + ...props, + suffixIcon: + field?.['loading'] || field?.['validating'] ? : props.suffixIcon + } + } + ) +) + +export default TreeSelect diff --git a/packages/components/src/tree-select/style.ts b/packages/components/src/tree-select/style.ts deleted file mode 100644 index 4443cbf..0000000 --- a/packages/components/src/tree-select/style.ts +++ /dev/null @@ -1 +0,0 @@ -import 'ant-design-vue/lib/tree-select/style/index' diff --git a/packages/components/src/type.d.ts b/packages/components/src/type.d.ts new file mode 100644 index 0000000..51b1f6a --- /dev/null +++ b/packages/components/src/type.d.ts @@ -0,0 +1,3 @@ +declare module '@vue/composition-api' { + export * from 'vue' +} diff --git a/packages/components/src/upload/index.ts b/packages/components/src/upload/index.ts deleted file mode 100644 index e8664a2..0000000 --- a/packages/components/src/upload/index.ts +++ /dev/null @@ -1,99 +0,0 @@ -import { connect, mapProps, h } from '@formily/vue' -import { Upload as AntdUpload } from 'ant-design-vue' -import { composeExport } from '../__builtins__' -import type { - UploadFile, - Upload as AntdUploadProps, -} from 'ant-design-vue/types/upload' -import { defineComponent } from '@vue/composition-api' - -export type IUploadOnchange = (fileList: UploadFile[]) => void - -export type IUploadProps = Omit & { - onChange?: IUploadOnchange -} - -export type IDraggerUploadProps = Omit & { - onChange?: IUploadOnchange -} - -const UploadWrapper = defineComponent({ - name: 'UploadWrapper', - setup(props, { slots, attrs, listeners, emit }) { - return () => { - const children = { - ...slots, - } - - return h( - AntdUpload, - { - attrs, - on: { - ...listeners, - change: ({ fileList }) => { - ;(attrs.onChange as IUploadOnchange)?.(fileList) - emit('change', fileList) - }, - }, - }, - children - ) - } - }, -}) - -const UploaDraggerdWrapper = defineComponent({ - name: 'UploaDraggerdWrapper', - setup(props, { slots, attrs, listeners, emit }) { - return () => { - const children = { - ...slots, - } - - return h( - 'div', - {}, - { - default: () => - h( - AntdUpload.Dragger, - { - attrs, - on: { - ...listeners, - change: ({ fileList }) => { - ;(attrs.onChange as IUploadOnchange)?.(fileList) - emit('change', fileList) - }, - }, - }, - children - ), - } - ) - } - }, -}) - -const _Upload = connect( - UploadWrapper, - mapProps({ - value: 'fileList', - onInput: 'onChange', - }) -) - -const UploadDragger = connect( - UploaDraggerdWrapper, - mapProps({ - value: 'fileList', - onInput: 'onChange', - }) -) - -export const Upload = composeExport(_Upload, { - Dragger: UploadDragger, -}) - -export default Upload diff --git a/packages/components/src/upload/index.tsx b/packages/components/src/upload/index.tsx new file mode 100644 index 0000000..d10b376 --- /dev/null +++ b/packages/components/src/upload/index.tsx @@ -0,0 +1,85 @@ +import { UploadOutlined } from '@ant-design/icons-vue' +import { connect, mapProps } from '@formily/vue' +import type { UploadFile, UploadProps } from 'ant-design-vue' +import { Upload as AntdUpload, Button } from 'ant-design-vue' +import { defineComponent } from 'vue' +import { composeExport } from '../__builtins__' + +export type IUploadOnchange = (fileList: UploadFile[]) => void + +export type IUploadProps = Omit & { + textContent?: string + onChange?: IUploadOnchange +} + +export type IDraggerUploadProps = Omit & { + onChange?: IUploadOnchange +} + +const UploadWrapper = defineComponent({ + name: 'UploadWrapper', + props: ['textContent', 'onChange'], + emits: ['change'], + setup(props, { attrs, emit }) { + return () => { + return ( + { + ;(attrs.onChange as IUploadOnchange)?.(fileList) + emit('change', fileList) + }} + > + + + ) + } + } +}) + +const UploadDraggerWrapper = defineComponent({ + name: 'UploadDraggerWrapper', + emits: ['change'], + setup(props, { slots, attrs, emit }) { + return () => { + return ( +
+ { + ;(attrs.onChange as IUploadOnchange)?.(fileList) + emit('change', fileList) + }} + > + {slots.default?.()} + +
+ ) + } + } +}) + +const _Upload = connect( + UploadWrapper, + mapProps({ + value: 'fileList', + onInput: 'onChange' + }) +) + +const UploadDragger = connect( + UploadDraggerWrapper, + mapProps({ + value: 'fileList', + onInput: 'onChange' + }) +) + +export const Upload = composeExport(_Upload, { + Dragger: UploadDragger +}) + +export default Upload diff --git a/packages/components/src/upload/style.ts b/packages/components/src/upload/style.ts deleted file mode 100644 index 0e2d027..0000000 --- a/packages/components/src/upload/style.ts +++ /dev/null @@ -1 +0,0 @@ -import 'ant-design-vue/lib/upload/style/index' diff --git a/packages/components/tsconfig.build.json b/packages/components/tsconfig.build.json index cb94a64..0d5dfcd 100644 --- a/packages/components/tsconfig.build.json +++ b/packages/components/tsconfig.build.json @@ -1,10 +1,8 @@ { "extends": "./tsconfig.json", "compilerOptions": { + "baseUrl": "./src", "outDir": "./lib", - "paths": { - "@formily/*": ["packages/*"] - }, "declaration": true } } diff --git a/packages/renderer/.npmignore b/packages/designable/.npmignore similarity index 100% rename from packages/renderer/.npmignore rename to packages/designable/.npmignore diff --git a/packages/designable/README.md b/packages/designable/README.md new file mode 100644 index 0000000..8bcebe1 --- /dev/null +++ b/packages/designable/README.md @@ -0,0 +1,9 @@ +# @formily/antdv + +> Formily Component Adaptor + +## Install + +```bash +npm install @formily/antdv --save +``` diff --git a/packages/designable/README.zh-CN.md b/packages/designable/README.zh-CN.md new file mode 100644 index 0000000..a37eed5 --- /dev/null +++ b/packages/designable/README.zh-CN.md @@ -0,0 +1,9 @@ +# @formily/antdv + +> Formily 组件库桥接层 + +## 安装 + +```bash +npm install @formily/antdv --save +``` diff --git a/packages/designable/babel.config.js b/packages/designable/babel.config.js new file mode 100644 index 0000000..4b763bc --- /dev/null +++ b/packages/designable/babel.config.js @@ -0,0 +1,15 @@ +module.exports = (api) => { + return { + presets: [ + [ + '@babel/preset-env', + { + useBuiltIns: false, + modules: api.env(['es']) ? false : api.env(['cjs']) ? 'commonjs' : 'auto' + } + ], + '@babel/preset-typescript' + ], + plugins: ['@babel/transform-runtime', '@vue/babel-plugin-jsx'] + } +} diff --git a/packages/renderer/builder.config.ts b/packages/designable/builder.config.ts similarity index 64% rename from packages/renderer/builder.config.ts rename to packages/designable/builder.config.ts index dc7bd55..33b6900 100644 --- a/packages/renderer/builder.config.ts +++ b/packages/designable/builder.config.ts @@ -1,7 +1,10 @@ import type { IBuilderConfig } from '@formily/template' export const BuilderConfig: IBuilderConfig = { - targetLibName: 'ant-design-vue', + targetLibName: 'element', targetLibCjsDir: 'lib', targetLibEsDir: 'es', + externals: { + '@formily/antdv': 'Formily.Antdv' + } } diff --git a/packages/designable/package.json b/packages/designable/package.json new file mode 100644 index 0000000..871ace3 --- /dev/null +++ b/packages/designable/package.json @@ -0,0 +1,46 @@ +{ + "name": "@formily/antdv-designable", + "version": "2.0.0", + "license": "MIT", + "main": "lib", + "types": "lib/index.d.ts", + "engines": { + "npm": ">=3.0.0" + }, + "module": "esm", + "umd:main": "dist/formily.antdv-designable.umd.production.js", + "unpkg": "dist/formily.antdv-designable.umd.production.js", + "jsdelivr": "dist/formily.antdv-designable.umd.production.js", + "jsnext:main": "esm", + "sideEffects": true, + "scripts": { + "build": "ts-node ../../scripts/build.ts" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/formilyjs/antdv.git" + }, + "bugs": { + "url": "https://github.com/formilyjs/antdv/issues" + }, + "homepage": "https://github.com/formilyjs/antdv#readme", + "publishConfig": { + "access": "public" + }, + "maintainers": [ + "yiyunwan" + ], + "peerDependencies": { + "vue": "^3.3.0" + }, + "devDependencies": { + "@formily/reactive-vue": "^2.0.0", + "@formily/vue": "^2.0.0", + "@juggle/resize-observer": "^3.3.1", + "@pind/designable-core": "^2.0.0-beta.6", + "@pind/designable-shared": "^2.0.0-beta.6", + "@formily/antdv": "2.0.0", + "dateformat": "^3.0.0" + }, + "gitHead": "62ef79d985a056c1038754fc928645c3b147cb6e" +} diff --git a/packages/designable/src/containers/Designer.tsx b/packages/designable/src/containers/Designer.tsx new file mode 100644 index 0000000..f1d959b --- /dev/null +++ b/packages/designable/src/containers/Designer.tsx @@ -0,0 +1,69 @@ +import type { Engine } from '@pind/designable-core' +import { GlobalRegistry } from '@pind/designable-core' +import type { PropType } from 'vue' +import { defineComponent, onBeforeUnmount, provide, ref, toRef, watchEffect } from 'vue' +import { DesignerEngineSymbol } from '../context' +import { useDesigner } from '../hooks/useDesigner' +import * as icons from '../icons' +import type { IDesignerProps } from '../types' +import { GhostWidget } from '../widgets' +import { Layout } from './Layout' + +GlobalRegistry.registerDesignerIcons(icons) + +export const Designer = defineComponent({ + name: 'DnDesigner', + props: { + engine: { + type: Object as PropType + }, + theme: { + type: String as PropType, + default: 'light' + }, + prefixCls: { + type: String as PropType, + default: 'dn-' + }, + variables: { + type: Object as PropType, + default: () => ({}) + } + }, + setup(props, { slots }) { + const engine = useDesigner() + const refInstance = ref(null) + + provide(DesignerEngineSymbol, toRef(props, 'engine')) + + watchEffect(() => { + if (props.engine) { + if (props.engine && refInstance.value) { + if (props.engine !== refInstance.value) { + refInstance.value.unmount() + } + } + props.engine.mount() + refInstance.value = props.engine + } + }) + + onBeforeUnmount(() => { + if (props.engine) { + props.engine.unmount() + } + }) + + if (engine.value) + throw new Error('There can only be one Designable Engine Context in the Vue Tree') + + return () => { + return ( + + {slots.default?.()} + + + ) + } + } +}) diff --git a/packages/designable/src/containers/Layout.tsx b/packages/designable/src/containers/Layout.tsx new file mode 100644 index 0000000..9c618cd --- /dev/null +++ b/packages/designable/src/containers/Layout.tsx @@ -0,0 +1,67 @@ +import { each } from '@pind/designable-shared' +import type { PropType } from 'vue' +import { computed, defineComponent, provide, ref, watch } from 'vue' +import type { IDesignerLayoutContext } from '../context' +import { DesignerLayoutSymbol, useContext } from '../context' +import type { IDesignerLayoutProps } from '../types' + +export const Layout = defineComponent({ + name: 'DnLayout', + props: { + theme: { + type: String as PropType, + default: 'light' + }, + prefixCls: { + type: String as PropType, + default: 'dn-' + }, + variables: { + type: Object as PropType, + default: () => ({}) + }, + position: { + type: String as PropType, + default: 'fixed' + } + }, + setup(props, { slots = { default: () => null } }) { + const layoutRef = useContext(DesignerLayoutSymbol) + const containerRef = ref() + + watch(containerRef, () => { + if (containerRef.value) { + each(props.variables!, (value, key) => { + containerRef.value?.style?.setProperty(`--${key}`, value) + }) + } + }) + + if (layoutRef.value) { + return () => { + return slots.default?.() + } + } + + provide( + DesignerLayoutSymbol, + computed(() => ({ + theme: props.theme, + prefixCls: props.prefixCls, + position: props.position + })) + ) + + return () => ( +
+ {slots.default?.()} +
+ ) + } +}) diff --git a/packages/designable/src/containers/Simulator.tsx b/packages/designable/src/containers/Simulator.tsx new file mode 100644 index 0000000..6b9f4bb --- /dev/null +++ b/packages/designable/src/containers/Simulator.tsx @@ -0,0 +1,41 @@ +import { ScreenType } from '@pind/designable-core' +import { observer } from '@formily/reactive-vue' +import { defineComponent } from 'vue' +import { useScreen } from '../hooks' +import { MobileSimulator, PCSimulator, ResponsiveSimulator } from '../simulators' + +export type ISimulatorProps = HTMLDivElement & any + +const SimulatorComponent = defineComponent({ + name: 'DnSimulator', + setup(props, { attrs, slots }) { + const screenRef = useScreen() + return () => { + if (screenRef.value.type === ScreenType.PC) + return ( + + {slots.default?.()} + + ) + if (screenRef.value.type === ScreenType.Mobile) + return ( + + {slots.default?.()} + + ) + if (screenRef.value.type === ScreenType.Responsive) + return ( + + {slots.default?.()} + + ) + return ( + + {slots.default?.()} + + ) + } + } +}) + +export const Simulator = observer(SimulatorComponent) diff --git a/packages/designable/src/containers/Viewport.tsx b/packages/designable/src/containers/Viewport.tsx new file mode 100644 index 0000000..3c51e03 --- /dev/null +++ b/packages/designable/src/containers/Viewport.tsx @@ -0,0 +1,81 @@ +import type { Viewport as ViewportType } from '@pind/designable-core' +import { requestIdle } from '@pind/designable-shared' +import type { VNode } from 'vue' +import { defineComponent, onBeforeUnmount, onMounted, ref } from 'vue' +import { usePrefix, useViewport } from '../hooks' +import { useStyle } from '../shared/util' +import { AuxToolWidget, EmptyWidget } from '../widgets' + +export interface IViewportProps { + placeholder: VNode + dragTipsDirection?: 'left' | 'right' +} + +export const Viewport = defineComponent({ + name: 'DnViewport', + props: { + placeholder: {}, + dragTipsDirection: String + }, + setup(props, { slots, attrs }) { + const loaded = ref(false) + const prefixRef = usePrefix('viewport') + const viewportHookRef = useViewport() + + const containerRef = ref() + // 该组件内部缓存的ref + const viewportRef = ref() + const isFrameRef = ref(false) + + onMounted(() => { + const frameElement = containerRef.value?.querySelector('iframe') + if (!viewportHookRef.value) return + if (viewportRef.value && viewportRef.value !== viewportHookRef.value) { + viewportRef.value.onUnmount() + } + if (frameElement) { + frameElement.addEventListener('load', () => { + viewportHookRef.value.onMount(frameElement, frameElement.contentWindow) + requestIdle(() => { + isFrameRef.value = true + loaded.value = true + }) + }) + } else { + viewportHookRef.value.onMount(containerRef.value, window) + requestIdle(() => { + isFrameRef.value = false + loaded.value = true + }) + } + viewportRef.value = viewportHookRef.value + }) + + onBeforeUnmount(() => { + viewportHookRef.value.onUnmount() + }) + + const style = useStyle() + + return () => { + return ( +
+ {slots.default?.()} + + {props.placeholder} +
+ ) + } + } +}) diff --git a/packages/designable/src/containers/Workbench.tsx b/packages/designable/src/containers/Workbench.tsx new file mode 100644 index 0000000..7525987 --- /dev/null +++ b/packages/designable/src/containers/Workbench.tsx @@ -0,0 +1,16 @@ +import { observer } from '@formily/reactive-vue' +import { defineComponent } from 'vue' +import { useWorkbench } from '../hooks' +import { Workspace } from './Workspace' + +const WrokbenchComponent = defineComponent({ + name: 'DnWrokbench', + setup(props, { slots }) { + const workbench = useWorkbench() + + return () => ( + {slots.default?.()} + ) + } +}) +export const Workbench = observer(WrokbenchComponent) diff --git a/packages/designable/src/containers/Workspace.tsx b/packages/designable/src/containers/Workspace.tsx new file mode 100644 index 0000000..4b19661 --- /dev/null +++ b/packages/designable/src/containers/Workspace.tsx @@ -0,0 +1,46 @@ +import { FragmentComponent, h } from '@formily/vue' +import { computed, defineComponent, provide, unref } from 'vue' +import { WorkspaceSymbol } from '../context' +import { useDesigner } from '../hooks' + +export interface IWorkspaceProps { + id?: string + title?: string + description?: string +} + +export const Workspace = defineComponent({ + name: 'DnWorkspace', + props: { + id: String, + title: String, + description: String + }, + setup(props, { slots }) { + const oldId = computed(() => { + return props.id || 'index' + }) + const designerRef = useDesigner() + // memo [id, designer] + const workspace = computed(() => { + const designer = unref(designerRef) + if (!designer) return + if (oldId.value && oldId.value !== props.id) { + const old = designer.workbench.findWorkspaceById(oldId.value) + if (old) old.viewport.detachEvents() + } + const workspace = { + id: props.id || 'index', + title: props.title, + description: props.description + } + designer.workbench.ensureWorkspace(workspace) + + return workspace + }) + + provide(WorkspaceSymbol, workspace) + + return () => h(FragmentComponent, {}, slots) + } +}) diff --git a/packages/designable/src/containers/index.ts b/packages/designable/src/containers/index.ts new file mode 100644 index 0000000..94ad94b --- /dev/null +++ b/packages/designable/src/containers/index.ts @@ -0,0 +1,7 @@ +import './styles.less' +export * from './Layout' +export * from './Designer' +export * from './Workspace' +export * from './Simulator' +export * from './Viewport' +export * from './Workbench' diff --git a/packages/designable/src/containers/styles.less b/packages/designable/src/containers/styles.less new file mode 100644 index 0000000..2ba98c0 --- /dev/null +++ b/packages/designable/src/containers/styles.less @@ -0,0 +1,19 @@ +@import '../variables.less'; + +.@{prefix-cls}-viewport { + height: 100%; + width: 100%; + min-height: 100px; + position: relative; + outline: none; + box-sizing: border-box; + user-select: none; + overflow: overlay; + + // & > * { + // width: fit-content; + // height: fit-content; + // min-width: 100%; + // min-height: 100%; + // } +} diff --git a/packages/designable/src/context.ts b/packages/designable/src/context.ts new file mode 100644 index 0000000..afca5fa --- /dev/null +++ b/packages/designable/src/context.ts @@ -0,0 +1,22 @@ +import { inject, ref } from 'vue' +import type { TreeNode, Engine } from '@pind/designable-core' +import type { InjectionKey, Ref } from 'vue' +import type { IDesignerLayoutContext, IWorkspaceContext, IDesignerComponents } from './types' +export * from './types' + +export const DesignerComponentsSymbol: InjectionKey> = Symbol( + 'DesignerComponentsSymbol' +) + +export const DesignerLayoutSymbol: InjectionKey> = + Symbol('DesignerLayoutSymbol') + +export const DesignerEngineSymbol: InjectionKey> = Symbol('DesignerEngineSymbol') + +export const TreeNodeSymbol: InjectionKey> = Symbol('TreeNodeSymbol') + +export const WorkspaceSymbol: InjectionKey> = Symbol('WorkspaceSymbol') + +export function useContext(key: InjectionKey>) { + return inject(key, ref()) +} diff --git a/packages/designable/src/hooks/index.ts b/packages/designable/src/hooks/index.ts new file mode 100644 index 0000000..1fb879a --- /dev/null +++ b/packages/designable/src/hooks/index.ts @@ -0,0 +1,25 @@ +export * from './useDesigner' +export * from './useCursor' +export * from './useScreen' +export * from './useTree' +export * from './useTheme' +export * from './useTreeNode' +export * from './useHover' +export * from './useViewport' +export * from './useOutline' +export * from './useSelection' +export * from './useOperation' +export * from './useWorkbench' +export * from './useWorkspace' +export * from './useHistory' +export * from './usePrefix' +export * from './usePosition' +export * from './useLayout' +export * from './useRegistry' +export * from './useValidNodeOffsetRect' +export * from './useCurrentNodeSelected' +export * from './useMoveHelper' +export * from './useNodeIdProps' +export * from './useSelectedNode' +export * from './useSelected' +export * from './useComponents' diff --git a/packages/designable/src/hooks/observer.ts b/packages/designable/src/hooks/observer.ts new file mode 100644 index 0000000..3bf0e16 --- /dev/null +++ b/packages/designable/src/hooks/observer.ts @@ -0,0 +1,38 @@ +export class LayoutObserver { + private resizeObserver: ResizeObserver + + private performanceObserver: PerformanceObserver + + private mutationObserver: MutationObserver + + private connected = false + + constructor(observer: () => void = () => void 0) { + this.resizeObserver = new ResizeObserver(() => observer()) + this.performanceObserver = new PerformanceObserver(() => { + observer() + }) + this.mutationObserver = new MutationObserver(() => observer()) + } + + observe = (target: HTMLElement | Element) => { + this.resizeObserver.observe(target) + this.performanceObserver.observe({ + entryTypes: ['paint', 'element', 'layout-shift', 'event'] + }) + this.mutationObserver.observe(target, { + attributeFilter: ['style'], + attributes: true + }) + this.connected = true + } + + disconnect = () => { + if (this.connected) { + this.resizeObserver.disconnect() + this.performanceObserver.disconnect() + this.mutationObserver.disconnect() + } + this.connected = false + } +} diff --git a/packages/designable/src/hooks/useComponents.ts b/packages/designable/src/hooks/useComponents.ts new file mode 100644 index 0000000..2b45fa7 --- /dev/null +++ b/packages/designable/src/hooks/useComponents.ts @@ -0,0 +1,2 @@ +import { DesignerComponentsSymbol, useContext } from '../context' +export const useComponents = () => useContext(DesignerComponentsSymbol) diff --git a/packages/designable/src/hooks/useCurrentNodeSelected.ts b/packages/designable/src/hooks/useCurrentNodeSelected.ts new file mode 100644 index 0000000..7894c7c --- /dev/null +++ b/packages/designable/src/hooks/useCurrentNodeSelected.ts @@ -0,0 +1,11 @@ +import { computed } from 'vue' +import { useSelectedNode } from './useSelectedNode' +import { useSelected } from './useSelected' + +export const useCurrentNodeSelected = () => { + const nodeRef = useSelectedNode() + const selectedRef = useSelected() + return computed( + () => selectedRef.value.length === 1 && nodeRef.value.id === selectedRef.value?.[0] + ) +} diff --git a/packages/designable/src/hooks/useCursor.ts b/packages/designable/src/hooks/useCursor.ts new file mode 100644 index 0000000..b723a9b --- /dev/null +++ b/packages/designable/src/hooks/useCursor.ts @@ -0,0 +1,7 @@ +import { computed } from 'vue' +import { useDesigner } from './useDesigner' + +export const useCursor = () => { + const designer = useDesigner() + return computed(() => designer.value?.cursor) +} diff --git a/packages/designable/src/hooks/useDesigner.ts b/packages/designable/src/hooks/useDesigner.ts new file mode 100644 index 0000000..11fcbc3 --- /dev/null +++ b/packages/designable/src/hooks/useDesigner.ts @@ -0,0 +1,21 @@ +import type { Engine } from '@pind/designable-core' +import { isFn } from '@pind/designable-shared' +import type { Ref } from 'vue' +import { inject, onBeforeUnmount, ref } from 'vue' +import { DesignerEngineSymbol } from '../context' +export interface IEffects { + (engine: Engine): void | (() => void) +} + +export const useDesigner = (effects?: IEffects): Ref => { + const designer = window['__DESIGNER_ENGINE__'] + ? ref(window['__DESIGNER_ENGINE__']) + : inject(DesignerEngineSymbol, ref()) + + const unRef = isFn(effects) ? effects(designer.value) : null + + onBeforeUnmount(() => { + unRef && unRef() + }) + return designer +} diff --git a/packages/designable/src/hooks/useHistory.ts b/packages/designable/src/hooks/useHistory.ts new file mode 100644 index 0000000..aa141a0 --- /dev/null +++ b/packages/designable/src/hooks/useHistory.ts @@ -0,0 +1,8 @@ +import type { Ref } from 'vue' +import { computed } from 'vue' +import { useWorkspace } from './useWorkspace' + +export const useHistory = (workspaceId?: Ref) => { + const workspace = useWorkspace(workspaceId) + return computed(() => workspace.value?.history) +} diff --git a/packages/designable/src/hooks/useHover.ts b/packages/designable/src/hooks/useHover.ts new file mode 100644 index 0000000..24e8523 --- /dev/null +++ b/packages/designable/src/hooks/useHover.ts @@ -0,0 +1,8 @@ +import type { Ref } from 'vue' +import { computed } from 'vue' +import { useOperation } from './useOperation' + +export const useHover = (workspaceId?: Ref) => { + const operation = useOperation(workspaceId) + return computed(() => operation.value?.hover) +} diff --git a/packages/designable/src/hooks/useLayout.ts b/packages/designable/src/hooks/useLayout.ts new file mode 100644 index 0000000..7330c8f --- /dev/null +++ b/packages/designable/src/hooks/useLayout.ts @@ -0,0 +1,10 @@ +import type { ComputedRef } from 'vue' +import { inject, ref } from 'vue' +import { DesignerLayoutSymbol } from '../context' +import type { IDesignerLayoutContext } from '../types' + +export const useLayout = (): ComputedRef => { + return window['__DESIGNABLE_LAYOUT__'] + ? ref(window['__DESIGNABLE_LAYOUT__']) + : inject(DesignerLayoutSymbol, ref()) +} diff --git a/packages/designable/src/hooks/useMoveHelper.ts b/packages/designable/src/hooks/useMoveHelper.ts new file mode 100644 index 0000000..ec344bd --- /dev/null +++ b/packages/designable/src/hooks/useMoveHelper.ts @@ -0,0 +1,8 @@ +import type { Ref } from '../shared' +import { computed as reactiveComputed } from '../shared' +import { useOperation } from './useOperation' + +export const useMoveHelper = (workspaceId?: Ref) => { + const operation = useOperation(workspaceId) + return reactiveComputed(() => operation.value?.moveHelper) +} diff --git a/packages/designable/src/hooks/useNodeIdProps.ts b/packages/designable/src/hooks/useNodeIdProps.ts new file mode 100644 index 0000000..9c9e366 --- /dev/null +++ b/packages/designable/src/hooks/useNodeIdProps.ts @@ -0,0 +1,14 @@ +import type { TreeNode } from '@pind/designable-core' +import { computed } from 'vue' +import { useDesigner } from './useDesigner' +import { useTreeNode } from './useTreeNode' + +export const useNodeIdProps = (node?: TreeNode) => { + const targetRef = useTreeNode() + const designerRef = useDesigner() + return computed(() => { + return { + [designerRef.value.props.nodeIdAttrName]: node ? node.id : targetRef.value.id + } + }) +} diff --git a/packages/designable/src/hooks/useOperation.ts b/packages/designable/src/hooks/useOperation.ts new file mode 100644 index 0000000..c958b6d --- /dev/null +++ b/packages/designable/src/hooks/useOperation.ts @@ -0,0 +1,8 @@ +import type { Ref } from 'vue' +import { computed } from 'vue' +import { useWorkspace } from './useWorkspace' + +export const useOperation = (workspaceId?: Ref) => { + const workspace = useWorkspace(workspaceId) + return computed(() => workspace.value?.operation) +} diff --git a/packages/designable/src/hooks/useOutline.ts b/packages/designable/src/hooks/useOutline.ts new file mode 100644 index 0000000..f8f5192 --- /dev/null +++ b/packages/designable/src/hooks/useOutline.ts @@ -0,0 +1,8 @@ +import type { Ref } from 'vue' +import { computed } from 'vue' +import { useWorkspace } from './useWorkspace' + +export const useOutline = (workspaceId: Ref) => { + const workspace = useWorkspace(workspaceId) + return computed(() => workspace.value?.outline) +} diff --git a/packages/designable/src/hooks/usePosition.ts b/packages/designable/src/hooks/usePosition.ts new file mode 100644 index 0000000..60fc70c --- /dev/null +++ b/packages/designable/src/hooks/usePosition.ts @@ -0,0 +1,9 @@ +import type { ComputedRef } from 'vue' +import { computed } from 'vue' +import type { IDesignerLayoutContext } from '../types' +import { useLayout } from './useLayout' + +export const usePosition = (): ComputedRef => { + const layoutRef = useLayout() + return computed(() => layoutRef.value?.position) +} diff --git a/packages/designable/src/hooks/usePrefix.ts b/packages/designable/src/hooks/usePrefix.ts new file mode 100644 index 0000000..722550e --- /dev/null +++ b/packages/designable/src/hooks/usePrefix.ts @@ -0,0 +1,8 @@ +import { computed, unref } from 'vue' +import { DesignerLayoutSymbol, useContext } from '../context' + +export const usePrefix = (after = '') => { + const DesignerLayoutContext = useContext(DesignerLayoutSymbol) + const usePrefixContext = computed(() => unref(DesignerLayoutContext)?.prefixCls + after) + return usePrefixContext +} diff --git a/packages/designable/src/hooks/useRegistry.ts b/packages/designable/src/hooks/useRegistry.ts new file mode 100644 index 0000000..f301079 --- /dev/null +++ b/packages/designable/src/hooks/useRegistry.ts @@ -0,0 +1,6 @@ +import { GlobalRegistry } from '@pind/designable-core' +import type { IDesignerRegistry } from '@pind/designable-core' + +export const useRegistry = (): IDesignerRegistry => { + return window['__DESIGNER_REGISTRY__'] || GlobalRegistry +} diff --git a/packages/designable/src/hooks/useScreen.ts b/packages/designable/src/hooks/useScreen.ts new file mode 100644 index 0000000..52a0bc7 --- /dev/null +++ b/packages/designable/src/hooks/useScreen.ts @@ -0,0 +1,7 @@ +import { computed } from 'vue' +import { useDesigner } from './useDesigner' + +export const useScreen = () => { + const designer = useDesigner() + return computed(() => designer.value?.screen) +} diff --git a/packages/designable/src/hooks/useSelected.ts b/packages/designable/src/hooks/useSelected.ts new file mode 100644 index 0000000..6797cea --- /dev/null +++ b/packages/designable/src/hooks/useSelected.ts @@ -0,0 +1,12 @@ +import { toJS } from '@formily/reactive' +import type { Ref } from '../shared/reactive' +import { computed as reactiveComputed } from '../shared/reactive' +import { useSelection } from './useSelection' + +export const useSelected = (workspaceId?: Ref) => { + const selection = useSelection(workspaceId) + + return reactiveComputed(() => { + return toJS(selection.value.selected) + }) +} diff --git a/packages/designable/src/hooks/useSelectedNode.ts b/packages/designable/src/hooks/useSelectedNode.ts new file mode 100644 index 0000000..d87c2c1 --- /dev/null +++ b/packages/designable/src/hooks/useSelectedNode.ts @@ -0,0 +1,24 @@ +import { toJS } from '@formily/reactive' +import { SelectNodeEvent } from '@pind/designable-core' +import type { Ref } from 'vue' +import { shallowRef } from 'vue' +import { computed as reactiveComputed } from '../shared' +import { useDesigner } from './useDesigner' +import { useSelection } from './useSelection' +import { useTree } from './useTree' + +export const useSelectedNode = (workspaceId?: Ref) => { + const selection = useSelection(workspaceId) + const selected = shallowRef(selection.value.selected) + const tree = useTree(workspaceId) + + const designer = useDesigner() + + designer.value.subscribeTo(SelectNodeEvent, () => { + selected.value = toJS(selection.value.selected) + }) + + return reactiveComputed(() => { + return tree.value?.findById?.(selected.value[0]) + }) +} diff --git a/packages/designable/src/hooks/useSelection.ts b/packages/designable/src/hooks/useSelection.ts new file mode 100644 index 0000000..f669bac --- /dev/null +++ b/packages/designable/src/hooks/useSelection.ts @@ -0,0 +1,8 @@ +import type { Ref } from 'vue' +import { computed } from 'vue' +import { useOperation } from './useOperation' + +export const useSelection = (workspaceId?: Ref) => { + const operation = useOperation(workspaceId) + return computed(() => operation.value?.selection) +} diff --git a/packages/designable/src/hooks/useTheme.ts b/packages/designable/src/hooks/useTheme.ts new file mode 100644 index 0000000..3695d9e --- /dev/null +++ b/packages/designable/src/hooks/useTheme.ts @@ -0,0 +1,10 @@ +import type { ComputedRef } from 'vue' +import { computed, inject, ref } from 'vue' +import { DesignerLayoutSymbol } from '../context' +import type { IDesignerLayoutContext } from '../types' + +export const useTheme = (): ComputedRef => { + return computed( + () => window['__DESIGNER_THEME__'] || inject(DesignerLayoutSymbol, ref()).value?.theme + ) +} diff --git a/packages/designable/src/hooks/useTree.ts b/packages/designable/src/hooks/useTree.ts new file mode 100644 index 0000000..ac9f164 --- /dev/null +++ b/packages/designable/src/hooks/useTree.ts @@ -0,0 +1,8 @@ +import type { Ref } from 'vue' +import { computed } from 'vue' +import { useOperation } from './useOperation' + +export const useTree = (workspaceId: Ref) => { + const operation = useOperation(workspaceId) + return computed(() => operation.value?.tree) +} diff --git a/packages/designable/src/hooks/useTreeNode.ts b/packages/designable/src/hooks/useTreeNode.ts new file mode 100644 index 0000000..3aa95f4 --- /dev/null +++ b/packages/designable/src/hooks/useTreeNode.ts @@ -0,0 +1,5 @@ +import { TreeNodeSymbol, useContext } from '../context' + +export const useTreeNode = () => { + return useContext(TreeNodeSymbol) +} diff --git a/packages/designable/src/hooks/useValidNodeOffsetRect.ts b/packages/designable/src/hooks/useValidNodeOffsetRect.ts new file mode 100644 index 0000000..9069e94 --- /dev/null +++ b/packages/designable/src/hooks/useValidNodeOffsetRect.ts @@ -0,0 +1,72 @@ +import type { TreeNode } from '@pind/designable-core' +import type { Rect } from '@pind/designable-shared' +import { cancelIdle, requestIdle } from '@pind/designable-shared' +import type { Ref } from 'vue' +import { computed, ref } from 'vue' +import { useEffect } from '../shared/useEffect' +import { useViewport } from './useViewport' + +const isEqualRect = (rect1: Partial, rect2: Rect) => { + return ( + rect1?.x === rect2?.x && + rect1?.y === rect2?.y && + rect1?.width === rect2?.width && + rect1?.height === rect2?.height + ) +} + +export const useValidNodeOffsetRect = (node: Ref) => { + const viewportRef = useViewport() + const rectRef = ref(viewportRef.value.getValidNodeOffsetRect(node.value)) + const idleTaskRef = ref(null) + const unmountRef = ref(false) + const observerRef = ref(null) + const element = computed(() => viewportRef.value.findElementById(node.value?.id)) + + const compute = () => { + if (unmountRef.value) return + const nextRect = viewportRef.value.getValidNodeOffsetRect(node.value) + if (!isEqualRect(rectRef.value, nextRect) && nextRect) { + rectRef.value = nextRect + // rectRef.value = nextRect + // forceUpdate(nextRect) + // forceUp + } + } + + useEffect( + () => { + if (!element.value) return + if (observerRef.value) { + observerRef.value.disconnect() + } + observerRef.value = new ResizeObserver(() => { + compute() + }) + observerRef.value.observe(viewportRef.value.findElementById(node.value?.id)) + return () => observerRef.value?.disconnect() + }, + () => [element.value, viewportRef.value] + ) + + useEffect( + () => { + unmountRef.value = false + const requestIdleTask = () => { + cancelIdle(idleTaskRef.value) + idleTaskRef.value = requestIdle(() => { + compute() + requestIdleTask() + }) + } + requestIdleTask() + return () => { + unmountRef.value = true + cancelIdle(idleTaskRef.value) + } + }, + () => [node] + ) + + return rectRef +} diff --git a/packages/designable/src/hooks/useViewport.ts b/packages/designable/src/hooks/useViewport.ts new file mode 100644 index 0000000..c5f1aae --- /dev/null +++ b/packages/designable/src/hooks/useViewport.ts @@ -0,0 +1,8 @@ +import type { Ref } from 'vue' +import { computed } from 'vue' +import { useWorkspace } from './useWorkspace' + +export const useViewport = (workspaceId?: Ref) => { + const workspace = useWorkspace(workspaceId) + return computed(() => workspace.value?.viewport) +} diff --git a/packages/designable/src/hooks/useWorkbench.ts b/packages/designable/src/hooks/useWorkbench.ts new file mode 100644 index 0000000..6e36db9 --- /dev/null +++ b/packages/designable/src/hooks/useWorkbench.ts @@ -0,0 +1,7 @@ +import { computed } from 'vue' +import { useDesigner } from './useDesigner' + +export const useWorkbench = () => { + const designer = useDesigner() + return computed(() => designer.value.workbench) +} diff --git a/packages/designable/src/hooks/useWorkspace.ts b/packages/designable/src/hooks/useWorkspace.ts new file mode 100644 index 0000000..956cafb --- /dev/null +++ b/packages/designable/src/hooks/useWorkspace.ts @@ -0,0 +1,19 @@ +import type { Workspace } from '@pind/designable-core' +import type { Ref } from 'vue' +import { computed, ref } from 'vue' +import { WorkspaceSymbol, useContext } from '../context' +import { useDesigner } from './useDesigner' + +export const useWorkspace = (id?: Ref): Ref => { + const designer = useDesigner() + const workspaceRef = ref() + const workspaceId = computed(() => id?.value || useContext(WorkspaceSymbol)?.value.id) + if (workspaceId.value) { + workspaceRef.value = designer.value.workbench.findWorkspaceById(workspaceId.value) + } + if (window['__DESIGNER_WORKSPACE__']) { + workspaceRef.value = window['__DESIGNER_WORKSPACE__'] + } + workspaceRef.value = designer.value.workbench.currentWorkspace + return workspaceRef +} diff --git a/packages/designable/src/icons/actions.tsx b/packages/designable/src/icons/actions.tsx new file mode 100644 index 0000000..5369681 --- /dev/null +++ b/packages/designable/src/icons/actions.tsx @@ -0,0 +1,148 @@ +export const AddSort = (props: any) => ( + + + + + + + + +) + +export const AddIndex = (props: any) => ( + + + + + + + +) + +export const AddColumn = (props: any) => ( + + + + + + + +) + +export const AddColumnGroup = (props: any) => ( + + + + + + + +) + +export const AddPanel = (props: any) => ( + + + + + + +) + +export const AddOperation = (props: any) => ( + + + + + + + + + + +) diff --git a/packages/designable/src/icons/add.tsx b/packages/designable/src/icons/add.tsx new file mode 100644 index 0000000..84e6c8a --- /dev/null +++ b/packages/designable/src/icons/add.tsx @@ -0,0 +1,6 @@ +export const Add = (props: any) => ( + + + + +) diff --git a/packages/designable/src/icons/animations.tsx b/packages/designable/src/icons/animations.tsx new file mode 100644 index 0000000..8f93ec5 --- /dev/null +++ b/packages/designable/src/icons/animations.tsx @@ -0,0 +1,339 @@ +import { IconWidget } from '../widgets/IconWidget' + +export const DragLeftSourceAnimation = { + light: () => ( + +@keyframes helper-drag-rec_w { 0% { width: 210px; } 54.5455% { width: 210px; animation-timing-function: cubic-bezier(0.904,0,0.726,0.668); } 66.6667% { width: 540px; animation-timing-function: cubic-bezier(0.214,0.499,0.52,0.867); } 72.7273% { width: 520px; } 100% { width: 520px; } } +@keyframes helper-drag-rec_h { 0% { height: 100px; } 54.5455% { height: 100px; animation-timing-function: cubic-bezier(0.904,0,0.726,0.668); } 66.6667% { height: 560px; animation-timing-function: cubic-bezier(0.214,0.499,0.52,0.867); } 72.7273% { height: 540px; } 100% { height: 540px; } } +@keyframes helper-drag-rec_mo { 0% { offset-distance: 0%; } 33.3333% { offset-distance: 0.12%; animation-timing-function: cubic-bezier(0.62,0.079,0.616,1); } 54.5455% { offset-distance: 64.297%; animation-timing-function: cubic-bezier(0.904,0,0.726,0.668); } 66.6667% { offset-distance: 98.331%; animation-timing-function: cubic-bezier(0.214,0.499,0.52,0.867); } 72.7273% { offset-distance: 100%; } 100% { offset-distance: 100%; } } +@keyframes helper-drag-mouse_mo { 0% { offset-distance: 0%; animation-timing-function: cubic-bezier(0.69,0.145,0.37,1); } 18.1818% { offset-distance: 37.49%; } 24.2424% { offset-distance: 38.651%; } 33.3333% { offset-distance: 38.651%; animation-timing-function: cubic-bezier(0.62,0.079,0.616,1); } 54.5455% { offset-distance: 100%; } 100% { offset-distance: 100%; } } +@keyframes helper-drag-boomrightup_o { 0% { opacity: 0; } 66.6667% { opacity: 0; } 69.697% { opacity: 1; } 75.7576% { opacity: 1; } 78.7879% { opacity: 0; } 100% { opacity: 0; } } +@keyframes a0_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes a1_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes a2_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes helper-drag-boomleftup_o { 0% { opacity: 0; } 66.6667% { opacity: 0; } 69.697% { opacity: 1; } 75.7576% { opacity: 1; } 78.7879% { opacity: 0; } 100% { opacity: 0; } } +@keyframes a3_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes a4_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes a5_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes helper-drag-boomrightbottom_o { 0% { opacity: 0; } 66.6667% { opacity: 0; } 69.697% { opacity: 1; } 75.7576% { opacity: 1; } 78.7879% { opacity: 0; } 100% { opacity: 0; } } +@keyframes a6_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes a7_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes a8_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes helper-drag-boomleftbottom_o { 0% { opacity: 0; } 66.6667% { opacity: 0; } 69.697% { opacity: 1; } 75.7576% { opacity: 1; } 78.7879% { opacity: 0; } 100% { opacity: 0; } } +@keyframes a9_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes a10_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes a11_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + + + + + + + + + + + + + + + + + + + + + + + + + + + +`} + /> + ), + dark: () => ( + + @keyframes helper-drag-rec_w { 0% { width: 210px; } 54.5455% { width: 210px; animation-timing-function: cubic-bezier(0.904,0,0.726,0.668); } 66.6667% { width: 540px; animation-timing-function: cubic-bezier(0.214,0.499,0.52,0.867); } 72.7273% { width: 520px; } 100% { width: 520px; } } + @keyframes helper-drag-rec_h { 0% { height: 100px; } 54.5455% { height: 100px; animation-timing-function: cubic-bezier(0.904,0,0.726,0.668); } 66.6667% { height: 560px; animation-timing-function: cubic-bezier(0.214,0.499,0.52,0.867); } 72.7273% { height: 540px; } 100% { height: 540px; } } + @keyframes helper-drag-rec_mo { 0% { offset-distance: 0%; } 33.3333% { offset-distance: 0.12%; animation-timing-function: cubic-bezier(0.62,0.079,0.616,1); } 54.5455% { offset-distance: 64.297%; animation-timing-function: cubic-bezier(0.904,0,0.726,0.668); } 66.6667% { offset-distance: 98.331%; animation-timing-function: cubic-bezier(0.214,0.499,0.52,0.867); } 72.7273% { offset-distance: 100%; } 100% { offset-distance: 100%; } } + @keyframes helper-drag-mouse_mo { 0% { offset-distance: 0%; animation-timing-function: cubic-bezier(0.69,0.145,0.37,1); } 18.1818% { offset-distance: 37.49%; } 24.2424% { offset-distance: 38.651%; } 33.3333% { offset-distance: 38.651%; animation-timing-function: cubic-bezier(0.62,0.079,0.616,1); } 54.5455% { offset-distance: 100%; } 100% { offset-distance: 100%; } } + @keyframes helper-drag-boomrightup_o { 0% { opacity: 0; } 66.6667% { opacity: 0; } 69.697% { opacity: 1; } 75.7576% { opacity: 1; } 78.7879% { opacity: 0; } 100% { opacity: 0; } } + @keyframes a0_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes a1_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes a2_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes helper-drag-boomleftup_o { 0% { opacity: 0; } 66.6667% { opacity: 0; } 69.697% { opacity: 1; } 75.7576% { opacity: 1; } 78.7879% { opacity: 0; } 100% { opacity: 0; } } + @keyframes a3_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes a4_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes a5_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes helper-drag-boomrightbottom_o { 0% { opacity: 0; } 66.6667% { opacity: 0; } 69.697% { opacity: 1; } 75.7576% { opacity: 1; } 78.7879% { opacity: 0; } 100% { opacity: 0; } } + @keyframes a6_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes a7_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes a8_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes helper-drag-boomleftbottom_o { 0% { opacity: 0; } 66.6667% { opacity: 0; } 69.697% { opacity: 1; } 75.7576% { opacity: 1; } 78.7879% { opacity: 0; } 100% { opacity: 0; } } + @keyframes a9_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes a10_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes a11_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + + + + + + + + + + + + + + + + + + + + + + + + + + + + `} + /> + ) +} + +export const DragRightSourceAnimation = { + light: () => ( + +@keyframes helper-rec_w { 0% { width: 210px; } 54.5455% { width: 210px; animation-timing-function: cubic-bezier(0.904,0,0.726,0.668); } 66.6667% { width: 540px; animation-timing-function: cubic-bezier(0.214,0.499,0.52,0.867); } 72.7273% { width: 520px; } 100% { width: 520px; } } +@keyframes helper-rec_h { 0% { height: 100px; } 54.5455% { height: 100px; animation-timing-function: cubic-bezier(0.904,0,0.726,0.668); } 66.6667% { height: 560px; animation-timing-function: cubic-bezier(0.214,0.499,0.52,0.867); } 72.7273% { height: 540px; } 100% { height: 540px; } } +@keyframes helper-rec_mo { 0% { offset-distance: 0%; } 33.3333% { offset-distance: 0%; animation-timing-function: cubic-bezier(0.62,0.079,0.616,1); } 54.5455% { offset-distance: 64.764%; animation-timing-function: cubic-bezier(0.904,0,0.726,0.668); } 66.6667% { offset-distance: 98.323%; animation-timing-function: cubic-bezier(0.214,0.499,0.52,0.867); } 72.7273% { offset-distance: 100%; } 100% { offset-distance: 100%; } } +@keyframes helper-mouse_mo { 0% { offset-distance: 0%; animation-timing-function: cubic-bezier(0.69,0.145,0.37,1); } 18.1818% { offset-distance: 36.981%; } 24.2424% { offset-distance: 38.116%; } 33.3333% { offset-distance: 38.116%; animation-timing-function: cubic-bezier(0.62,0.079,0.616,1); } 54.5455% { offset-distance: 100%; } 100% { offset-distance: 100%; } } +@keyframes helper-boomrightup_o { 0% { opacity: 0; } 66.6667% { opacity: 0; } 69.697% { opacity: 1; } 75.7576% { opacity: 1; } 78.7879% { opacity: 0; } 100% { opacity: 0; } } +@keyframes a0_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes a1_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes a2_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes helper-boomleftup_o { 0% { opacity: 0; } 66.6667% { opacity: 0; } 69.697% { opacity: 1; } 75.7576% { opacity: 1; } 78.7879% { opacity: 0; } 100% { opacity: 0; } } +@keyframes a3_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes a4_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes a5_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes helper-boomrightbottom_o { 0% { opacity: 0; } 66.6667% { opacity: 0; } 69.697% { opacity: 1; } 75.7576% { opacity: 1; } 78.7879% { opacity: 0; } 100% { opacity: 0; } } +@keyframes a6_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes a7_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes a8_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes helper-boomleftbottom_o { 0% { opacity: 0; } 66.6667% { opacity: 0; } 69.697% { opacity: 1; } 75.7576% { opacity: 1; } 78.7879% { opacity: 0; } 100% { opacity: 0; } } +@keyframes a9_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes a10_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes a11_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + + + + + + + + + + + + + + + + + + + + + + + + + + + + `} + /> + ), + dark: () => ( + +@keyframes helper-rec_w { 0% { width: 210px; } 54.5455% { width: 210px; animation-timing-function: cubic-bezier(0.904,0,0.726,0.668); } 66.6667% { width: 540px; animation-timing-function: cubic-bezier(0.214,0.499,0.52,0.867); } 72.7273% { width: 520px; } 100% { width: 520px; } } +@keyframes helper-rec_h { 0% { height: 100px; } 54.5455% { height: 100px; animation-timing-function: cubic-bezier(0.904,0,0.726,0.668); } 66.6667% { height: 560px; animation-timing-function: cubic-bezier(0.214,0.499,0.52,0.867); } 72.7273% { height: 540px; } 100% { height: 540px; } } +@keyframes helper-rec_mo { 0% { offset-distance: 0%; } 33.3333% { offset-distance: 0%; animation-timing-function: cubic-bezier(0.62,0.079,0.616,1); } 54.5455% { offset-distance: 64.764%; animation-timing-function: cubic-bezier(0.904,0,0.726,0.668); } 66.6667% { offset-distance: 98.323%; animation-timing-function: cubic-bezier(0.214,0.499,0.52,0.867); } 72.7273% { offset-distance: 100%; } 100% { offset-distance: 100%; } } +@keyframes helper-mouse_mo { 0% { offset-distance: 0%; animation-timing-function: cubic-bezier(0.69,0.145,0.37,1); } 18.1818% { offset-distance: 36.981%; } 24.2424% { offset-distance: 38.116%; } 33.3333% { offset-distance: 38.116%; animation-timing-function: cubic-bezier(0.62,0.079,0.616,1); } 54.5455% { offset-distance: 100%; } 100% { offset-distance: 100%; } } +@keyframes helper-boomrightup_o { 0% { opacity: 0; } 66.6667% { opacity: 0; } 69.697% { opacity: 1; } 75.7576% { opacity: 1; } 78.7879% { opacity: 0; } 100% { opacity: 0; } } +@keyframes a0_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes a1_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes a2_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes helper-boomleftup_o { 0% { opacity: 0; } 66.6667% { opacity: 0; } 69.697% { opacity: 1; } 75.7576% { opacity: 1; } 78.7879% { opacity: 0; } 100% { opacity: 0; } } +@keyframes a3_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes a4_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes a5_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes helper-boomrightbottom_o { 0% { opacity: 0; } 66.6667% { opacity: 0; } 69.697% { opacity: 1; } 75.7576% { opacity: 1; } 78.7879% { opacity: 0; } 100% { opacity: 0; } } +@keyframes a6_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes a7_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes a8_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes helper-boomleftbottom_o { 0% { opacity: 0; } 66.6667% { opacity: 0; } 69.697% { opacity: 1; } 75.7576% { opacity: 1; } 78.7879% { opacity: 0; } 100% { opacity: 0; } } +@keyframes a9_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes a10_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } +@keyframes a11_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 66.6667% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 72.7273% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 78.7879% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + + + + + + + + + + + + + + + + + + + + + + + + + + + `} + /> + ) +} + +export const BatchDragAnimation = { + light: () => ( + + @keyframes helper-batch-drag-boomrightup_o { 0% { opacity: 0; } 60% { opacity: 0; } 64% { opacity: 1; } 72% { opacity: 1; } 76% { opacity: 0; } 100% { opacity: 0; } } + @keyframes a0_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 60% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 68% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 76% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes a1_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 60% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 68% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 76% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes a2_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 60% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 68% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 76% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes helper-batch-drag-boomleftup_o { 0% { opacity: 0; } 60% { opacity: 0; } 64% { opacity: 1; } 72% { opacity: 1; } 76% { opacity: 0; } 100% { opacity: 0; } } + @keyframes a3_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 60% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 68% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 76% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes a4_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 60% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 68% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 76% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes a5_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 60% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 68% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 76% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes helper-batch-drag-boomrightbottom_o { 0% { opacity: 0; } 60% { opacity: 0; } 64% { opacity: 1; } 72% { opacity: 1; } 76% { opacity: 0; } 100% { opacity: 0; } } + @keyframes a6_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 60% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 68% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 76% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes a7_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 60% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 68% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 76% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes a8_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 60% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 68% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 76% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes helper-batch-drag-boomleftbottom_o { 0% { opacity: 0; } 60% { opacity: 0; } 64% { opacity: 1; } 72% { opacity: 1; } 76% { opacity: 0; } 100% { opacity: 0; } } + @keyframes a9_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 60% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 68% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 76% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes a10_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 60% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 68% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 76% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes a11_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 60% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 68% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 76% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes helpler-dragwhole_t { 0% { transform: scale(1,1) translate(-166.5px,-140px); } 60% { transform: scale(1,1) translate(-166.5px,-140px); } 64% { transform: scale(1.1,1.1) translate(-166.5px,-140px); } 68% { transform: scale(1,1) translate(-166.5px,-140px); } 100% { transform: scale(1,1) translate(-166.5px,-140px); } } + @keyframes helpler-dragwhole_mo { 0% { offset-distance: 0%; } 20% { offset-distance: 0%; } 28% { offset-distance: 0%; } 40% { offset-distance: 0%; animation-timing-function: cubic-bezier(0.69,0.145,0.37,1); } 68% { offset-distance: 100%; } 100% { offset-distance: 100%; } } + @keyframes helper-batch-drag-mouse_mo { 0% { offset-distance: 0%; animation-timing-function: cubic-bezier(0.766821,0.127231,0.642631,0.749003); } 20% { offset-distance: 39.885%; animation-timing-function: cubic-bezier(0.232064,0.618697,0.545352,1); } 28% { offset-distance: 41.847%; } 40% { offset-distance: 41.847%; animation-timing-function: cubic-bezier(0.69,0.145,0.37,1); } 68% { offset-distance: 100%; } 100% { offset-distance: 100%; } } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + `} + /> + ), + dark: () => ( + + @keyframes helper-batch-drag-boomrightup_o { 0% { opacity: 0; } 60% { opacity: 0; } 64% { opacity: 1; } 72% { opacity: 1; } 76% { opacity: 0; } 100% { opacity: 0; } } + @keyframes a0_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 60% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 68% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 76% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes a1_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 60% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 68% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 76% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes a2_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 60% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 68% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 76% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes helper-batch-drag-boomleftup_o { 0% { opacity: 0; } 60% { opacity: 0; } 64% { opacity: 1; } 72% { opacity: 1; } 76% { opacity: 0; } 100% { opacity: 0; } } + @keyframes a3_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 60% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 68% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 76% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes a4_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 60% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 68% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 76% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes a5_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 60% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 68% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 76% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes helper-batch-drag-boomrightbottom_o { 0% { opacity: 0; } 60% { opacity: 0; } 64% { opacity: 1; } 72% { opacity: 1; } 76% { opacity: 0; } 100% { opacity: 0; } } + @keyframes a6_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 60% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 68% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 76% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes a7_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 60% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 68% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 76% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes a8_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 60% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 68% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 76% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes helper-batch-drag-boomleftbottom_o { 0% { opacity: 0; } 60% { opacity: 0; } 64% { opacity: 1; } 72% { opacity: 1; } 76% { opacity: 0; } 100% { opacity: 0; } } + @keyframes a9_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 60% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 68% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 76% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes a10_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 60% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 68% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 76% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes a11_d { 0% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); } 60% { d: path('M1,0L3,0C3.55228,0,4,0.447715,4,1L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,1C0,0.447715,0.447715,0,1,0Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 68% { d: path('M1,-15L3,-15C3.55228,-15,4,-14.5523,4,-14L4,3C4,3.55228,3.55228,4,3,4L1,4C0.447715,4,0,3.55228,0,3L0,-14C0,-14.5523,0.447715,-15,1,-15Z'); animation-timing-function: cubic-bezier(0.455,0.03,0.515,0.955); } 76% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } 100% { d: path('M1,-10L3,-10C3.55228,-10,4,-9.55228,4,-9L4,-7C4,-6.44772,3.55228,-6,3,-6L1,-6C0.447715,-6,0,-6.44772,0,-7L0,-9C0,-9.55228,0.447715,-10,1,-10Z'); } } + @keyframes helpler-dragwhole_t { 0% { transform: scale(1,1) translate(-166.5px,-140px); } 60% { transform: scale(1,1) translate(-166.5px,-140px); } 64% { transform: scale(1.1,1.1) translate(-166.5px,-140px); } 68% { transform: scale(1,1) translate(-166.5px,-140px); } 100% { transform: scale(1,1) translate(-166.5px,-140px); } } + @keyframes helpler-dragwhole_mo { 0% { offset-distance: 0%; } 20% { offset-distance: 0%; } 28% { offset-distance: 0%; } 40% { offset-distance: 0%; animation-timing-function: cubic-bezier(0.69,0.145,0.37,1); } 68% { offset-distance: 100%; } 100% { offset-distance: 100%; } } + @keyframes helper-batch-drag-mouse_mo { 0% { offset-distance: 0%; animation-timing-function: cubic-bezier(0.766821,0.127231,0.642631,0.749003); } 20% { offset-distance: 39.885%; animation-timing-function: cubic-bezier(0.232064,0.618697,0.545352,1); } 28% { offset-distance: 41.847%; } 40% { offset-distance: 41.847%; animation-timing-function: cubic-bezier(0.69,0.145,0.37,1); } 68% { offset-distance: 100%; } 100% { offset-distance: 100%; } } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + `} + /> + ) +} diff --git a/packages/designable/src/icons/boolean.tsx b/packages/designable/src/icons/boolean.tsx new file mode 100644 index 0000000..33f92a7 --- /dev/null +++ b/packages/designable/src/icons/boolean.tsx @@ -0,0 +1,5 @@ +export const Boolean = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/clone.tsx b/packages/designable/src/icons/clone.tsx new file mode 100644 index 0000000..81b6018 --- /dev/null +++ b/packages/designable/src/icons/clone.tsx @@ -0,0 +1,11 @@ +export const Clone = (props: any) => ( + + + +) + +export const Repeat = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/close.tsx b/packages/designable/src/icons/close.tsx new file mode 100644 index 0000000..de2b84b --- /dev/null +++ b/packages/designable/src/icons/close.tsx @@ -0,0 +1,5 @@ +export const Close = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/code.tsx b/packages/designable/src/icons/code.tsx new file mode 100644 index 0000000..5647872 --- /dev/null +++ b/packages/designable/src/icons/code.tsx @@ -0,0 +1,8 @@ +export const Code = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/command.tsx b/packages/designable/src/icons/command.tsx new file mode 100644 index 0000000..6f82c7b --- /dev/null +++ b/packages/designable/src/icons/command.tsx @@ -0,0 +1,12 @@ +export const Command = (props: any) => ( + + + + +) diff --git a/packages/designable/src/icons/component.tsx b/packages/designable/src/icons/component.tsx new file mode 100644 index 0000000..82bc2fd --- /dev/null +++ b/packages/designable/src/icons/component.tsx @@ -0,0 +1,5 @@ +export const Component = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/container.tsx b/packages/designable/src/icons/container.tsx new file mode 100644 index 0000000..bf648c0 --- /dev/null +++ b/packages/designable/src/icons/container.tsx @@ -0,0 +1,6 @@ +export const Container = (props: any) => ( + + + + +) diff --git a/packages/designable/src/icons/corner.tsx b/packages/designable/src/icons/corner.tsx new file mode 100644 index 0000000..5901068 --- /dev/null +++ b/packages/designable/src/icons/corner.tsx @@ -0,0 +1,32 @@ +export const TopLeft = (props: any) => ( + + + +) + +export const TopRight = (props: any) => ( + + + +) + +export const BottomRight = (props: any) => ( + + + +) + +export const BottomLeft = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/delete.tsx b/packages/designable/src/icons/delete.tsx new file mode 100644 index 0000000..e5992fa --- /dev/null +++ b/packages/designable/src/icons/delete.tsx @@ -0,0 +1,16 @@ +export const Delete = (props: any) => ( + + + + + +) diff --git a/packages/designable/src/icons/design.tsx b/packages/designable/src/icons/design.tsx new file mode 100644 index 0000000..c256c0d --- /dev/null +++ b/packages/designable/src/icons/design.tsx @@ -0,0 +1,8 @@ +export const Design = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/display.tsx b/packages/designable/src/icons/display.tsx new file mode 100644 index 0000000..64e2de4 --- /dev/null +++ b/packages/designable/src/icons/display.tsx @@ -0,0 +1,23 @@ +export const DisplayBlock = (props: any) => ( + + + +) + +export const DisplayInlineBlock = (props: any) => ( + + + +) + +export const DisplayInline = (props: any) => ( + + + +) + +export const DisplayFlex = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/drag-move.tsx b/packages/designable/src/icons/drag-move.tsx new file mode 100644 index 0000000..91a2eee --- /dev/null +++ b/packages/designable/src/icons/drag-move.tsx @@ -0,0 +1,8 @@ +export const DragMove = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/expand.tsx b/packages/designable/src/icons/expand.tsx new file mode 100644 index 0000000..02c0252 --- /dev/null +++ b/packages/designable/src/icons/expand.tsx @@ -0,0 +1,5 @@ +export const Expand = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/expression.tsx b/packages/designable/src/icons/expression.tsx new file mode 100644 index 0000000..60dbfa7 --- /dev/null +++ b/packages/designable/src/icons/expression.tsx @@ -0,0 +1,5 @@ +export const Expression = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/eyes.tsx b/packages/designable/src/icons/eyes.tsx new file mode 100644 index 0000000..37b2869 --- /dev/null +++ b/packages/designable/src/icons/eyes.tsx @@ -0,0 +1,13 @@ +export const Eye = () => ( + + + + +) + +export const EyeClose = () => ( + + + + +) diff --git a/packages/designable/src/icons/flex.tsx b/packages/designable/src/icons/flex.tsx new file mode 100644 index 0000000..af05272 --- /dev/null +++ b/packages/designable/src/icons/flex.tsx @@ -0,0 +1,125 @@ +export const FlexDirectionRow = (props: any) => ( + + + +) + +export const FlexDirectionColumn = (props: any) => ( + + + +) + +export const FlexAlignContentCenter = (props: any) => ( + + + +) + +export const FlexAlignContentStart = (props: any) => ( + + + +) + +export const FlexAlignContentEnd = (props: any) => ( + + + +) + +export const FlexAlignContentSpaceAround = (props: any) => ( + + + +) + +export const FlexAlignContentSpaceBetween = (props: any) => ( + + + +) + +export const FlexAlignContentStretch = (props: any) => ( + + + +) + +export const FlexJustifyCenter = (props: any) => ( + + + +) + +export const FlexJustifyStart = (props: any) => ( + + + +) + +export const FlexJustifyEnd = (props: any) => ( + + + +) + +export const FlexJustifySpaceBetween = (props: any) => ( + + + +) + +export const FlexJustifySpaceAround = (props: any) => ( + + + +) + +export const FlexJustifySpaceEvenly = (props: any) => ( + + + +) + +export const FlexAlignItemsCenter = (props: any) => ( + + + +) + +export const FlexAlignItemsStart = (props: any) => ( + + + +) + +export const FlexAlignItemsEnd = (props: any) => ( + + + +) + +export const FlexAlignItemsStretch = (props: any) => ( + + + +) + +export const FlexAlignItemsBaseline = (props: any) => ( + + + +) + +export const FlexNoWrap = (props: any) => ( + + + +) + +export const FlexWrap = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/flip.tsx b/packages/designable/src/icons/flip.tsx new file mode 100644 index 0000000..61d675e --- /dev/null +++ b/packages/designable/src/icons/flip.tsx @@ -0,0 +1,5 @@ +export const Flip = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/focus.tsx b/packages/designable/src/icons/focus.tsx new file mode 100644 index 0000000..2dee968 --- /dev/null +++ b/packages/designable/src/icons/focus.tsx @@ -0,0 +1,5 @@ +export const Focus = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/font.tsx b/packages/designable/src/icons/font.tsx new file mode 100644 index 0000000..400f9cd --- /dev/null +++ b/packages/designable/src/icons/font.tsx @@ -0,0 +1,89 @@ +export const FontWeight = (props: any) => ( + + + +) + +export const FontStyle = (props: any) => ( + + + +) + +export const NormalFontStyle = (props: any) => ( + + + +) + +export const ItalicFontStyle = (props: any) => ( + + + +) + +export const FontColor = (props: any) => ( + + + +) + +export const FontSize = (props: any) => ( + + + +) + +export const LineHeight = (props: any) => ( + + + +) + +export const TextDecoration = (props: any) => ( + + + +) + +export const TextUnderline = (props: any) => ( + + + +) + +export const TextLineThrough = (props: any) => ( + + + +) + +export const TextAlign = (props: any) => ( + + + +) + +export const TextAlignLeft = (props: any) => ( + + + +) + +export const TextAlignCenter = (props: any) => ( + + + +) + +export const TextAlignRight = (props: any) => ( + + + +) + +export const TextAlignJustify = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/formula.tsx b/packages/designable/src/icons/formula.tsx new file mode 100644 index 0000000..6e106ec --- /dev/null +++ b/packages/designable/src/icons/formula.tsx @@ -0,0 +1,5 @@ +export const Formula = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/help.tsx b/packages/designable/src/icons/help.tsx new file mode 100644 index 0000000..c845e7a --- /dev/null +++ b/packages/designable/src/icons/help.tsx @@ -0,0 +1,6 @@ +export const Help = (props: any) => ( + + + + +) diff --git a/packages/designable/src/icons/hidden.tsx b/packages/designable/src/icons/hidden.tsx new file mode 100644 index 0000000..f6405d8 --- /dev/null +++ b/packages/designable/src/icons/hidden.tsx @@ -0,0 +1,5 @@ +export const Hidden = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/history.tsx b/packages/designable/src/icons/history.tsx new file mode 100644 index 0000000..ce8361d --- /dev/null +++ b/packages/designable/src/icons/history.tsx @@ -0,0 +1,5 @@ +export const History = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/image.tsx b/packages/designable/src/icons/image.tsx new file mode 100644 index 0000000..6ab43b8 --- /dev/null +++ b/packages/designable/src/icons/image.tsx @@ -0,0 +1,9 @@ +export const Image = (props: any) => ( + + + +) + +export const ImageSize = () => ( + +) diff --git a/packages/designable/src/icons/index.ts b/packages/designable/src/icons/index.ts new file mode 100644 index 0000000..117b975 --- /dev/null +++ b/packages/designable/src/icons/index.ts @@ -0,0 +1,52 @@ +export * from './actions' +export * from './add' +export * from './animations' +export * from './boolean' +export * from './clone' +export * from './close' +export * from './code' +export * from './command' +export * from './component' +export * from './container' +export * from './corner' +export * from './delete' +export * from './design' +export * from './display' +export * from './drag-move' +export * from './expand' +export * from './expression' +export * from './eyes' +export * from './flex' +export * from './flip' +export * from './focus' +export * from './font' +export * from './formula' +export * from './help' +export * from './hidden' +export * from './history' +export * from './image' +export * from './json' +export * from './logo' +export * from './menu' +export * from './mobile' +export * from './move' +export * from './number' +export * from './outline' +export * from './page' +export * from './pc' +export * from './play' +export * from './position' +export * from './pushpin' +export * from './recover' +export * from './redo' +export * from './remove' +export * from './responsive' +export * from './return' +export * from './selection' +export * from './setting' +export * from './shadow' +export * from './shift' +export * from './sources' +export * from './text' +export * from './undo' +export * from './upload' diff --git a/packages/designable/src/icons/json.tsx b/packages/designable/src/icons/json.tsx new file mode 100644 index 0000000..6d1929f --- /dev/null +++ b/packages/designable/src/icons/json.tsx @@ -0,0 +1,5 @@ +export const JSON = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/logo.tsx b/packages/designable/src/icons/logo.tsx new file mode 100644 index 0000000..a4d3aa2 --- /dev/null +++ b/packages/designable/src/icons/logo.tsx @@ -0,0 +1,4 @@ +export const Logo = { + light: '//img.alicdn.com/imgextra/i3/O1CN01Eib3GC1c7JthHYQnI_!!6000000003553-55-tps-1783-385.svg', + dark: '//img.alicdn.com/imgextra/i1/O1CN018hbWup1QhhyhiElX0_!!6000000002008-55-tps-1783-385.svg' +} diff --git a/packages/designable/src/icons/menu.tsx b/packages/designable/src/icons/menu.tsx new file mode 100644 index 0000000..f8d6bf7 --- /dev/null +++ b/packages/designable/src/icons/menu.tsx @@ -0,0 +1,5 @@ +export const Menu = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/mobile.tsx b/packages/designable/src/icons/mobile.tsx new file mode 100644 index 0000000..1ecccb7 --- /dev/null +++ b/packages/designable/src/icons/mobile.tsx @@ -0,0 +1,6 @@ +export const Mobile = (props: any) => ( + + + + +) diff --git a/packages/designable/src/icons/move.tsx b/packages/designable/src/icons/move.tsx new file mode 100644 index 0000000..f9e54ef --- /dev/null +++ b/packages/designable/src/icons/move.tsx @@ -0,0 +1,5 @@ +export const Move = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/number.tsx b/packages/designable/src/icons/number.tsx new file mode 100644 index 0000000..21d8e93 --- /dev/null +++ b/packages/designable/src/icons/number.tsx @@ -0,0 +1,5 @@ +export const Number = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/outline.tsx b/packages/designable/src/icons/outline.tsx new file mode 100644 index 0000000..b64555c --- /dev/null +++ b/packages/designable/src/icons/outline.tsx @@ -0,0 +1,5 @@ +export const Outline = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/page.tsx b/packages/designable/src/icons/page.tsx new file mode 100644 index 0000000..7cdcfba --- /dev/null +++ b/packages/designable/src/icons/page.tsx @@ -0,0 +1,7 @@ +export const Page = (props: any) => ( + + + + + +) diff --git a/packages/designable/src/icons/pc.tsx b/packages/designable/src/icons/pc.tsx new file mode 100644 index 0000000..147ecff --- /dev/null +++ b/packages/designable/src/icons/pc.tsx @@ -0,0 +1,5 @@ +export const PC = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/play.tsx b/packages/designable/src/icons/play.tsx new file mode 100644 index 0000000..128f304 --- /dev/null +++ b/packages/designable/src/icons/play.tsx @@ -0,0 +1,8 @@ +export const Play = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/position.tsx b/packages/designable/src/icons/position.tsx new file mode 100644 index 0000000..01ca5d9 --- /dev/null +++ b/packages/designable/src/icons/position.tsx @@ -0,0 +1,38 @@ +export const Top = (props: any) => ( + + + +) + +export const Bottom = (props: any) => ( + + + +) + +export const Right = (props: any) => ( + + + +) + +export const Left = (props: any) => ( + + + +) + +export const Position = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/pushpin.tsx b/packages/designable/src/icons/pushpin.tsx new file mode 100644 index 0000000..d8e81eb --- /dev/null +++ b/packages/designable/src/icons/pushpin.tsx @@ -0,0 +1,27 @@ +export const PushPinOutlined = () => ( + +) + +export const PushPinFilled = () => ( + +) diff --git a/packages/designable/src/icons/recover.tsx b/packages/designable/src/icons/recover.tsx new file mode 100644 index 0000000..0fe9337 --- /dev/null +++ b/packages/designable/src/icons/recover.tsx @@ -0,0 +1,5 @@ +export const Recover = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/redo.tsx b/packages/designable/src/icons/redo.tsx new file mode 100644 index 0000000..0ecc687 --- /dev/null +++ b/packages/designable/src/icons/redo.tsx @@ -0,0 +1,5 @@ +export const Redo = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/remove.tsx b/packages/designable/src/icons/remove.tsx new file mode 100644 index 0000000..251a68b --- /dev/null +++ b/packages/designable/src/icons/remove.tsx @@ -0,0 +1,5 @@ +export const Remove = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/responsive.tsx b/packages/designable/src/icons/responsive.tsx new file mode 100644 index 0000000..3f35f71 --- /dev/null +++ b/packages/designable/src/icons/responsive.tsx @@ -0,0 +1,16 @@ +export const Responsive = (props: any) => ( + + + + + +) diff --git a/packages/designable/src/icons/return.tsx b/packages/designable/src/icons/return.tsx new file mode 100644 index 0000000..0585887 --- /dev/null +++ b/packages/designable/src/icons/return.tsx @@ -0,0 +1,5 @@ +export const Return = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/selection.tsx b/packages/designable/src/icons/selection.tsx new file mode 100644 index 0000000..648f2df --- /dev/null +++ b/packages/designable/src/icons/selection.tsx @@ -0,0 +1,5 @@ +export const Selection = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/setting.tsx b/packages/designable/src/icons/setting.tsx new file mode 100644 index 0000000..5b49fd7 --- /dev/null +++ b/packages/designable/src/icons/setting.tsx @@ -0,0 +1,5 @@ +export const Setting = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/shadow.tsx b/packages/designable/src/icons/shadow.tsx new file mode 100644 index 0000000..7ea3d39 --- /dev/null +++ b/packages/designable/src/icons/shadow.tsx @@ -0,0 +1,29 @@ +export const Blur = (props: any) => ( + + + +) + +export const Shadow = (props: any) => ( + + + +) + +export const AxisX = (props: any) => ( + + + +) + +export const AxisY = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/shift.tsx b/packages/designable/src/icons/shift.tsx new file mode 100644 index 0000000..0707748 --- /dev/null +++ b/packages/designable/src/icons/shift.tsx @@ -0,0 +1,8 @@ +export const Shift = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/sources.tsx b/packages/designable/src/icons/sources.tsx new file mode 100644 index 0000000..af6e871 --- /dev/null +++ b/packages/designable/src/icons/sources.tsx @@ -0,0 +1,2732 @@ +export const InputSource = (props: any) => ( + + + + + + +) + +export const TextAreaSource = (props: any) => ( + + + + + + +) + +export const SelectSource = (props: any) => ( + + + + + + + + + + +) +export const TreeSelectSource = (props: any) => ( + + + + + + + + + + + + + + + + + +) + +export const CascaderSource = (props: any) => ( + + + + + + + + + + + + + +) + +export const RadioGroupSource = (props: any) => ( + + + + + + + + + + + + + + + +) + +export const CheckboxGroupSource = (props: any) => ( + + + + + + + + + + +) + +export const SliderSource = (props: any) => ( + + + + + + + + + + +) + +export const RateSource = (props: any) => ( + + + + + + + +) +export const DatePickerSource = { + light: (props: any) => ( + + + + + + + + + + + + + + + + + + + + + + + + + ), + dark: (props: any) => ( + + + + + + + + + + + + + + + + + + + + + + + + + ) +} + +export const DateRangePickerSource = { + light: (props: any) => ( + + + + + + + + + + + + + + + + + + + + + + + + + ), + dark: (props: any) => ( + + + + + + + + + + + + + + + + + + + + + + + + + ) +} + +export const TimePickerSource = (props: any) => ( + + + + + + + + + + + +) + +export const TimeRangePickerSource = (props: any) => ( + + + + + + + + + + + + + + + + + +) + +export const NumberPickerSource = (props: any) => ( + + + + + + + + + + + +) + +export const PasswordSource = { + light: (props: any) => ( + + + + + + + + + + + + + ), + dark: (props: any) => ( + + + + + + + + + + + + + ) +} + +export const TransferSource = (props: any) => ( + + + + + + + + + + + +) + +export const UploadSource = (props: any) => ( + + + + + + + + +) + +export const UploadDraggerSource = (props: any) => ( + + + + + + + + + + + + +) + +export const SwitchSource = (props: any) => ( + + + + + + + +) + +export const ObjectSource = (props: any) => ( + + + + + + + + + + +) + +export const CardSource = { + light: (props: any) => ( + + + + + + + + + + + ), + dark: (props: any) => ( + + + + + + + + + + + ) +} + +export const GridSource = (props: any) => ( + + + + + + + + + + + + +) + +export const FormLayoutSource = (props: any) => ( + + + + + + + + + + + + + +) + +export const SpaceSource = (props: any) => ( + + + + + + + + + +) + +export const TabSource = { + light: (props: any) => ( + + + + + + + + + + + + + + + ), + dark: (props: any) => ( + + + + + + + + + + + + + + + ) +} + +export const CollapseSource = { + light: (props: any) => ( + + + + + + + + + + + + + + + ), + dark: (props: any) => ( + + + + + + + + + + + + + + + ) +} + +export const ArrayCardsSource = (props: any) => ( + + + + + + + + + + + +) + +export const ArrayTableSource = { + light: (props: any) => ( + + + + + + + + + + + + + + + + + ), + dark: (props: any) => ( + + + + + + + + + + + + + + + + + ) +} + +export const ButtonSource = (props: any) => ( + + + + + + + +) + +export const MediaSource = (props: any) => ( + + + + + + + +) + +export const NotificationSource = (props: any) => ( + + + + + + + + + + + +) + +export const ImageSource = (props: any) => ( + + + + + + + + +) + +export const TextSource = (props: any) => ( + + + + + + + + + + + +) + +export const CreateButtonSource = (props: any) => ( + + + + + + + + + +) + +export const DeleteButtonSource = (props: any) => ( + + + + + + + + + + + +) + +export const SubmitButtonSource = (props: any) => ( + + + + + + + +) + +export const ResetButtonSource = (props: any) => ( + + + + + + + + +) + +export const UpdateButtonSource = (props: any) => ( + + + + + + + + +) + +export const OpenPageButtonSource = (props: any) => ( + + + + + + + + + + + +) + +export const CustomButtonSource = (props: any) => ( + + + + + + + + + + + +) + +export const ConfirmButtonSource = (props: any) => ( + + + + + + + + + + + +) + +export const CancelButtonSource = (props: any) => ( + + + + + + + + +) + +export const DetailButtonSource = (props: any) => ( + + + + + + + + + + + + +) + +export const DataTableSource = (props: any) => ( + + + + + + + + + + + + + + + + + + + + + + + + + + + +) + +export const DataQueryListSource = (props: any) => ( + + + + + + + + + + + + + + + + + + + + + + + + + + + +) + +export const DataFormSource = (props: any) => ( + + + + + + + + + + + + + + + + + + + + + + +) + +export const DataDetailFormSource = (props: any) => ( + + + + + + + + + + + + + + + + + + + + +) diff --git a/packages/designable/src/icons/text.tsx b/packages/designable/src/icons/text.tsx new file mode 100644 index 0000000..3175049 --- /dev/null +++ b/packages/designable/src/icons/text.tsx @@ -0,0 +1,11 @@ +export const Text = (props: any) => ( + + + +) + +export const RichText = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/undo.tsx b/packages/designable/src/icons/undo.tsx new file mode 100644 index 0000000..d088840 --- /dev/null +++ b/packages/designable/src/icons/undo.tsx @@ -0,0 +1,5 @@ +export const Undo = (props: any) => ( + + + +) diff --git a/packages/designable/src/icons/upload.tsx b/packages/designable/src/icons/upload.tsx new file mode 100644 index 0000000..9f0cc3e --- /dev/null +++ b/packages/designable/src/icons/upload.tsx @@ -0,0 +1,6 @@ +export const CloudUpload = (props: any) => ( + + + + +) diff --git a/packages/designable/src/index.ts b/packages/designable/src/index.ts new file mode 100644 index 0000000..2a0064f --- /dev/null +++ b/packages/designable/src/index.ts @@ -0,0 +1,10 @@ +import './locales' +import './theme.less' +export * from './panels' +export * from './widgets' +export * from './context' +export * from './hooks' +export * from './containers' +export * from './simulators' +export * from './types' +export * from './shared' diff --git a/packages/designable/src/locales/global.ts b/packages/designable/src/locales/global.ts new file mode 100644 index 0000000..e5e0f3b --- /dev/null +++ b/packages/designable/src/locales/global.ts @@ -0,0 +1,16 @@ +export default { + 'zh-CN': { + save: '保存', + submit: '提交', + cancel: '取消', + reset: '重置', + publish: '发布' + }, + 'en-US': { + save: 'Save', + submit: 'Submit', + cancel: 'Cancel', + reset: 'Reset', + publish: 'Publish' + } +} diff --git a/packages/designable/src/locales/icons.ts b/packages/designable/src/locales/icons.ts new file mode 100644 index 0000000..111cb88 --- /dev/null +++ b/packages/designable/src/locales/icons.ts @@ -0,0 +1,132 @@ +export default { + 'zh-CN': { + icons: { + Image: '图片', + ImageSize: '图片尺寸', + Position: '位置', + Number: '数字', + Text: '文本', + Expression: '表达式', + RichText: '富文本', + Boolean: '布尔', + Repeat: '重复', + Top: '上', + Left: '左', + Right: '右', + Bottom: '下', + TopLeft: '左上', + TopRight: '右上', + BottomRight: '右下', + BottomLeft: '左下', + DisplayBlock: '区块', + DisplayInlineBlock: '内联区块', + DisplayInline: '文本内联', + DisplayFlex: '弹性盒子', + FlexDirectionRow: '横向', + FlexDirectionColumn: '纵向', + FlexAlignContentCenter: '居中', + FlexAlignContentStart: '头部', + FlexAlignContentEnd: '尾部', + FlexAlignContentSpaceAround: 'Space Around', + FlexAlignContentSpaceBetween: 'Space Between', + FlexAlignContentStretch: 'Stretch', + FlexJustifyCenter: '居中', + FlexJustifyStart: '头部', + FlexJustifyEnd: '尾部', + FlexJustifySpaceBetween: 'Space Between', + FlexJustifySpaceAround: 'Space Around', + FlexJustifySpaceEvenly: 'Space Evenly', + FlexAlignItemsCenter: '居中', + FlexAlignItemsStart: '头部', + FlexAlignItemsEnd: '尾部', + FlexAlignItemsStretch: 'Stretch', + FlexAlignItemsBaseline: 'Baseline', + FlexNoWrap: '不换行', + FlexWrap: '换行', + AxisX: 'X轴', + AxisY: 'Y轴', + Blur: '模糊度', + Shadow: '阴影扩展', + FontWeight: '字重', + FontStyle: '风格', + NormalFontStyle: '标准', + ItalicFontStyle: '斜体', + FontColor: '颜色', + FontSize: '大小', + LineHeight: '行高', + TextDecoration: '修饰', + TextUnderline: '下划线', + TextLineThrough: '中横线', + TextAlign: '对齐', + TextAlignLeft: '左对齐', + TextAlignCenter: '居中', + TextAlignRight: '右对齐', + TextAlignJustify: '自适应' + } + }, + 'en-US': { + icons: { + Image: 'Image', + ImageSize: 'Image Size', + Boolean: 'Boolean', + Number: 'Number', + Text: 'Text', + Expression: 'Expression', + RichText: 'Rich Text', + Position: 'Position', + Repeat: 'Repeat', + Top: 'Top', + Left: 'Left', + Right: 'Right', + Bottom: 'Bottom', + TopLeft: 'Top Left', + TopRight: 'Top Right', + BottomRight: 'Bottom Right', + BottomLeft: 'Bottom Left', + DisplayBlock: 'Block', + DisplayInlineBlock: 'Inline Block', + DisplayInline: 'Inline', + DisplayFlex: 'Flex', + FlexDirectionRow: 'Horizontal', + FlexDirectionColumn: 'Vertical', + FlexAlignContentCenter: 'Center', + FlexAlignContentStart: 'Start', + FlexAlignContentEnd: 'End', + FlexAlignContentSpaceAround: 'Space Around', + FlexAlignContentSpaceBetween: 'Space Between', + FlexAlignContentStretch: 'Stretch', + FlexJustifyCenter: 'Center', + FlexJustifyStart: 'Start', + FlexJustifyEnd: 'End', + FlexJustifySpaceBetween: 'Space Between', + FlexJustifySpaceAround: 'Space Around', + FlexJustifySpaceEvenly: 'Space Evenly', + FlexAlignItemsCenter: 'Center', + FlexAlignItemsStart: 'Start', + FlexAlignItemsEnd: 'End', + FlexAlignItemsStretch: 'Stretch', + FlexAlignItemsBaseline: 'Baseline', + FlexNoWrap: 'No Wrap', + FlexWrap: 'Wrap', + AxisX: 'X Axis', + AxisY: 'Y Axis', + Blur: 'Blur', + Shadow: 'Shadow Spread', + FontWeight: 'Font Weight', + FontStyle: 'Font Style', + NormalFontStyle: 'Normal', + ItalicFontStyle: 'Italic', + FontColor: 'Color', + FontSize: 'Font Size', + LineHeight: 'Line Height', + TextDecoration: 'Decoration', + TextUnderline: 'Underline', + TextLineThrough: 'Line Through', + TextAlign: 'Align', + TextAlignLeft: 'Left', + TextAlignCenter: 'Center', + TextAlignRight: 'Right', + TextAlignJustify: 'Justify' + } + } +} diff --git a/packages/designable/src/locales/index.ts b/packages/designable/src/locales/index.ts new file mode 100644 index 0000000..e84b3c9 --- /dev/null +++ b/packages/designable/src/locales/index.ts @@ -0,0 +1,7 @@ +import { GlobalRegistry } from '@pind/designable-core' +import icons from './icons' +import panels from './panels' +import global from './global' +import operations from './operations' + +GlobalRegistry.registerDesignerLocales(icons, panels, global, operations) diff --git a/packages/designable/src/locales/operations.ts b/packages/designable/src/locales/operations.ts new file mode 100644 index 0000000..4489d14 --- /dev/null +++ b/packages/designable/src/locales/operations.ts @@ -0,0 +1,34 @@ +export default { + 'zh-CN': { + operations: { + default_state: '缺省态', + append_node: '追加节点', + prepend_node: '头部追加', + clone_node: '复制节点', + update_node_props: '属性更改', + insert_after: '后置插入', + insert_before: '前置插入', + insert_children: '插入子节点', + update_children: '覆盖子节点', + remove_node: '删除节点', + wrap_node: '包装节点', + from_node: '子树更新' + } + }, + 'en-US': { + operations: { + default_state: 'Default State', + append_node: 'Append Node', + prepend_node: 'Prepend Node', + clone_node: 'Clone Node', + update_node_props: 'Update Node Props', + insert_after: 'Insert Node After', + insert_before: 'Insert Node Before', + insert_children: 'Insert Node Children', + update_children: 'Update Children', + remove_node: 'Remove Node', + wrap_node: 'Wrap Node', + from_node: 'Update Child Tree' + } + } +} diff --git a/packages/designable/src/locales/panels.ts b/packages/designable/src/locales/panels.ts new file mode 100644 index 0000000..9d51c6f --- /dev/null +++ b/packages/designable/src/locales/panels.ts @@ -0,0 +1,18 @@ +export default { + 'zh-CN': { + panels: { + Component: '组件', + OutlinedTree: '大纲树', + PropertySettings: '属性配置', + History: '历史记录' + } + }, + 'en-US': { + panels: { + Component: 'Component', + OutlinedTree: 'Outlined Tree', + PropertySettings: 'Property Settings', + History: 'History' + } + } +} diff --git a/packages/designable/src/panels/CompositePanel.tsx b/packages/designable/src/panels/CompositePanel.tsx new file mode 100644 index 0000000..22b08da --- /dev/null +++ b/packages/designable/src/panels/CompositePanel.tsx @@ -0,0 +1,236 @@ +import { isValid } from '@pind/designable-shared' +import { FragmentComponent } from '@formily/vue' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import type { VNode } from 'vue' +import { defineComponent, ref, unref, watch } from 'vue' +import { usePrefix } from '../hooks' +import { IconWidget, TextWidget } from '../widgets' + +export interface ICompositePanelProps { + direction?: 'left' | 'right' + showNavTitle?: boolean + defaultOpen?: boolean + defaultPinning?: boolean + defaultActiveKey?: number + activeKey?: number | string + onChange?: (activeKey: number | string) => void +} + +export interface ICompositePanelItemProps { + shape?: 'tab' | 'button' | 'link' + title?: VNode + icon?: VNode + key?: number | string + href?: string + // React.MouseEvent + onClick?: (e: MouseEvent) => void + extra?: VNode +} + +const parseItems = (children: VNode[]): Array => { + const items: any[] = [] + children.forEach((item, index) => { + items.push({ + key: item.key ?? index, + ...item?.props, + children: item.children + }) + }) + return items +} + +const findItem = (items: any[], key: string | number) => { + for (let index = 0; index < items.length; index++) { + const item = items[index] + if (key === index) return item + if (key === item.key) return item + } +} + +const getDefaultKey = (children: VNode[]) => { + const items = parseItems(children) + return items?.[0]?.key +} + +export const CompositePanelComponent = defineComponent({ + name: 'DnCompositePanel', + props: { + activeKey: [Number, String], + defaultActiveKey: Number, + defaultPinning: Boolean, + showNavTitle: Boolean, + defaultOpen: { type: Boolean, default: true }, + direction: String, + onChange: Function + }, + setup(props, { slots }) { + const prefixRef = usePrefix('composite-panel') + + const activeKey = ref(props.defaultActiveKey ?? getDefaultKey(slots.default())) + + // 获取所有子组件 + const items = parseItems(slots.default()) + const pinning = ref(props.defaultPinning ?? false) + const visible = ref(props.defaultOpen ?? true) + + watch( + () => props.activeKey, + () => { + if (isValid(props.activeKey)) { + if (props.activeKey !== activeKey.value) { + activeKey.value = props.activeKey + } + } + }, + { immediate: true } + ) + + const renderContent = () => { + const prefix = unref(prefixRef) + const currentItem = findItem(items, unref(activeKey)) + + const content = currentItem?.children // 估计不对 + if (!unref(visible) || !content) return + + return ( +
+
+
+ {currentItem.title} +
+
+
{currentItem?.extra}
+ {!pinning.value && ( + { + pinning.value = !pinning.value + }} + /> + )} + {pinning.value && ( + { + pinning.value = !pinning.value + }} + /> + )} + { + visible.value = false + }} + /> +
+
+
{content.default?.()}
+
+ ) + } + + return () => { + const prefix = unref(prefixRef) + return ( +
+
+ {items.map((item, index) => { + const takeTab = () => { + if (item.href) { + return {item.icon} + } + return ( + {item.title}, + placement: props.direction === 'right' ? 'left' : 'right' + } + } + infer={item.icon} + /> + ) + } + const shape = item.shape ?? 'tab' + const Comp = shape === 'link' ? 'a' : 'div' + return ( + { + if (shape === 'tab') { + if (unref(activeKey) === item.key) { + visible.value = !visible.value + } else { + visible.value = true + } + if (!props?.activeKey || !props?.onChange) activeKey.value = item.key + } + item.onClick?.(e) + props.onChange?.(item.key as string) + }} + > + {takeTab()} + {props.showNavTitle && item.title ? ( +
+ {item.title} +
+ ) : null} +
+ ) + })} +
+ {renderContent()} +
+ ) + } + } +}) + +/** + * shape?: 'tab' | 'button' | 'link' + title?: VNode + icon?: VNode + key?: number | string + href?: string + // React.MouseEvent + onClick?: (e: any) => void + extra?: VNode + */ +const Item = defineComponent({ + name: 'DnCompositePanelItem', + // key is reserved + props: ['shape', 'title', 'icon', 'href', 'extra', 'onClick'], + setup() { + return FragmentComponent + } +}) + +export const CompositePanel = composeExport(CompositePanelComponent, { + Item: composeExport(Item, { type: Item }) +}) diff --git a/packages/designable/src/panels/SettingsPanel.tsx b/packages/designable/src/panels/SettingsPanel.tsx new file mode 100644 index 0000000..5d9db0e --- /dev/null +++ b/packages/designable/src/panels/SettingsPanel.tsx @@ -0,0 +1,95 @@ +import { defineComponent, ref, watchEffect } from 'vue' +import { requestIdle } from '@pind/designable-shared' +import { observer } from '@formily/reactive-vue' +import { TextWidget, IconWidget } from '../widgets' +import { usePrefix, useWorkbench } from '../hooks' + +export interface ISettingPanelProps { + title?: any + extra?: any +} + +export const SettingsPanel = observer( + defineComponent({ + name: 'DnSettingsPanel', + props: ['title', 'extra'], + setup(props, { slots }) { + const prefixRef = usePrefix('settings-panel') + const workbenchRef = useWorkbench() + const innerVisible = ref(true) + const pinning = ref(false) + const visible = ref(true) + + watchEffect(() => { + if (visible.value || workbenchRef.value.type === 'DESIGNABLE') { + if (!innerVisible.value) { + requestIdle(() => { + requestAnimationFrame(() => { + innerVisible.value = true + }) + }) + } + } + }) + + return () => { + if (workbenchRef.value.type !== 'DESIGNABLE') { + if (innerVisible.value) innerVisible.value = false + return null + } + if (!visible.value) { + if (innerVisible.value) innerVisible.value = false + return ( +
{ + visible.value = true + }} + > + +
+ ) + } + + return ( +
+
+
+ {props.title} +
+
+
{props.extra}
+ {!pinning.value && ( + { + pinning.value = !pinning.value + }} + /> + )} + {pinning.value && ( + { + pinning.value = !pinning.value + }} + /> + )} + { + visible.value = false + }} + /> +
+
+
{innerVisible.value && slots.default?.()}
+
+ ) + } + } + }) +) diff --git a/packages/designable/src/panels/StudioPanel.tsx b/packages/designable/src/panels/StudioPanel.tsx new file mode 100644 index 0000000..757913a --- /dev/null +++ b/packages/designable/src/panels/StudioPanel.tsx @@ -0,0 +1,76 @@ +import type { PropType } from 'vue' +import { defineComponent, unref } from 'vue' +import { Layout } from '../containers' +import { usePosition, usePrefix } from '../hooks' +import type { IDesignerLayoutProps } from '../types' + +export interface IStudioPanelProps { + prefixCls?: string + theme?: IDesignerLayoutProps['theme'] + position?: IDesignerLayoutProps['position'] +} + +const StudioPanelInternal = defineComponent({ + name: 'DnStudioPanelInternal', + setup(props, { attrs, slots }) { + const prefixRef = usePrefix('main-panel') + const positionRef = usePosition() + + return () => { + const position = unref(positionRef) + const prefix = unref(prefixRef) + if (slots.logo || slots.actions) { + return ( +
+
+
{slots.logo?.()}
+
{slots.actions?.()}
+
+
{slots.default?.()}
+
+ ) + } else { + return ( +
+ {slots.default?.()} +
+ ) + } + } + } +}) + +export const StudioPanel = defineComponent({ + name: 'DnStudioPanel', + props: { + prefixCls: { type: String as PropType, default: 'dn-' }, + theme: { + type: String as PropType, + default: 'light' + }, + position: { + type: String as PropType, + default: 'fixed' + }, + logo: null, + actions: null + }, + setup(props, { slots }) { + return () => ( + + + {{ + default: () => slots.default?.(), + logo: () => props.logo, + actions: () => props.actions + }} + + + ) + } +}) diff --git a/packages/designable/src/panels/ToolbarPanel.tsx b/packages/designable/src/panels/ToolbarPanel.tsx new file mode 100644 index 0000000..cb59161 --- /dev/null +++ b/packages/designable/src/panels/ToolbarPanel.tsx @@ -0,0 +1,24 @@ +import { defineComponent } from 'vue' +import { useStyle } from '../shared/util' +import { WorkspacePanel } from './WorkspacePanel' + +export const ToolbarPanel = defineComponent({ + name: 'DnToolbarPanel', + setup(props, { slots }) { + const style = useStyle() + return () => ( + + {slots.default?.()} + + ) + } +}) diff --git a/packages/designable/src/panels/ViewPanel.tsx b/packages/designable/src/panels/ViewPanel.tsx new file mode 100644 index 0000000..9e1031a --- /dev/null +++ b/packages/designable/src/panels/ViewPanel.tsx @@ -0,0 +1,68 @@ +import type { WorkbenchTypes } from '@pind/designable-core' +import { observer } from '@formily/reactive-vue' +import { defineComponent } from 'vue' +import { Viewport } from '../containers' +import { useTree, useWorkbench } from '../hooks' + +export interface IViewPanelProps { + type: WorkbenchTypes + // children: ( + // tree: TreeNode, + // onChange: (tree: ITreeNode) => void + // ) => React.ReactElement + scrollable?: boolean + dragTipsDirection?: 'left' | 'right' +} + +const ViewPanelComponent = defineComponent({ + name: 'DnViewPanel', + props: { + type: String, + scrollable: { type: Boolean, default: true }, + dragTipsDirection: { type: String } + }, + setup(props, { slots }) { + // const visible = ref(true) + const workbenchRef = useWorkbench() + const treeRef = useTree() + + // onMounted(() => { + // if (workbenchRef.value.type === props.type) { + // requestIdle(() => { + // requestAnimationFrame(() => { + // visible.value = true + // }) + // }) + // } else { + // visible.value = false + // } + // }) + + return () => { + if (workbenchRef.value.type !== props.type) return null + const render = () => { + return slots.default?.(treeRef.value, (payload) => { + treeRef.value.from(payload) + treeRef.value.takeSnapshot() + }) + } + + if (workbenchRef.value.type === 'DESIGNABLE') { + return {render()} + } + return ( +
+ {render()} +
+ ) + } + } +}) +export const ViewPanel = observer(ViewPanelComponent) diff --git a/packages/designable/src/panels/ViewportPanel.tsx b/packages/designable/src/panels/ViewportPanel.tsx new file mode 100644 index 0000000..18fb044 --- /dev/null +++ b/packages/designable/src/panels/ViewportPanel.tsx @@ -0,0 +1,16 @@ +import { defineComponent } from 'vue' +import { Simulator } from '../containers' +import { WorkspacePanel } from './WorkspacePanel' + +export const ViewportPanel = defineComponent({ + name: 'DnViewportPanel', + setup(props, { slots }) { + return () => { + return ( + + {slots.default?.()} + + ) + } + } +}) diff --git a/packages/designable/src/panels/WorkspacePanel.tsx b/packages/designable/src/panels/WorkspacePanel.tsx new file mode 100644 index 0000000..254c526 --- /dev/null +++ b/packages/designable/src/panels/WorkspacePanel.tsx @@ -0,0 +1,50 @@ +import { defineComponent } from 'vue' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { usePrefix } from '../hooks' +import { useStyle } from '../shared/util' + +export interface IWorkspaceItemProps { + flexable?: boolean +} + +// export const WorkspacePanel: React.FC & { +// Item?: React.FC +// } = (props) => { +// const prefix = usePrefix('workspace-panel') +// return
{props.children}
+// } + +const WorkspacePanelComponent = defineComponent({ + name: 'DnWorkspacePanel', + setup(_props, { slots }) { + const prefix = usePrefix('workspace-panel') + return () =>
{slots.default?.()}
+ } +}) + +const WorkspacePanelItem = defineComponent({ + name: 'DnWorkspacePanelItem', + props: ['flexable'], + setup(props, { slots }) { + const prefix = usePrefix('workspace-panel-item') + return () => { + const style = useStyle() + return ( +
+ {slots.default?.()} +
+ ) + } + } +}) + +export const WorkspacePanel = composeExport(WorkspacePanelComponent, { + Item: WorkspacePanelItem +}) diff --git a/packages/designable/src/panels/index.ts b/packages/designable/src/panels/index.ts new file mode 100644 index 0000000..90ddb56 --- /dev/null +++ b/packages/designable/src/panels/index.ts @@ -0,0 +1,8 @@ +import './styles.less' +export * from './StudioPanel' +export * from './CompositePanel' +export * from './SettingsPanel' +export * from './WorkspacePanel' +export * from './ToolbarPanel' +export * from './ViewportPanel' +export * from './ViewPanel' diff --git a/packages/designable/src/panels/styles.less b/packages/designable/src/panels/styles.less new file mode 100644 index 0000000..5128b5f --- /dev/null +++ b/packages/designable/src/panels/styles.less @@ -0,0 +1,333 @@ +@import '../variables.less'; + +.@{prefix-cls}-main-panel { + display: flex; + width: 100%; + height: 100%; + flex: 1; + min-height: 0; + position: relative; + overflow: hidden; + + &-container { + display: flex; + flex-direction: column; + flex-grow: 1; + + &.root { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + } + + &.absolute { + position: absolute; + } + + &.relative { + position: relative; + } + } + + &-header { + display: flex; + align-items: center; + flex-grow: 0; + flex-shrink: 0; + justify-content: space-between; + background: var(--dn-main-panel-header-bg-color); + border-bottom: 1px solid var(--dn-panel-border-color); + padding: 4px; + + &-logo { + display: flex; + align-items: center; + } + + &-actions { + display: flex; + align-items: center; + justify-content: flex-end; + } + } + + &.root { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + } +} + +.@{prefix-cls}-composite-panel { + flex-grow: 0; + flex-shrink: 0; + display: flex; + position: relative; + user-select: none; + z-index: 2; + + &-tabs { + display: flex; + flex-direction: column; + border-right: 1px solid var(--dn-panel-border-color); + background-color: var(--dn-composite-panel-tabs-bg-color); + z-index: 2; + position: relative; + + &-pane { + color: var(--dn-composite-panel-tabs-color); + min-height: 48px; + min-width: 48px; + padding: 10px; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + position: relative; + font-size: 20px; + flex-direction: column; + + &-title { + font-size: 10px; + margin-top: 6px; + } + + &:hover { + color: var(--dn-composite-panel-tabs-hover-color); + } + + &.active { + color: var(--dn-composite-panel-tabs-hover-color); + + &::after { + position: absolute; + top: 0; + left: 0; + display: block; + content: ''; + width: 3px; + height: 100%; + background-color: var(--dn-composite-panel-tabs-hover-color); + } + } + } + + &-content { + width: 300px; + border-right: 1px solid var(--dn-panel-border-color); + background: var(--dn-composite-panel-tabs-content-bg-color); + display: flex; + flex-direction: column; + height: 100%; + box-sizing: content-box; + + &.pinning { + position: absolute; + z-index: 1; + left: 100%; + top: 0; + border-right: 1px solid transparent; + box-shadow: -2px 5px 10px rgba(102, 102, 102, 0.42); + } + } + + &-header { + padding: 14px 7px; + color: var(--dn-composite-panel-tabs-header-color); + line-height: 18px; + font-size: 16px; + border-bottom: 1px solid var(--dn-panel-border-color); + display: flex; + justify-content: space-between; + + &-actions { + display: flex; + align-items: center; + + & > * { + margin-right: 8px; + + &:last-child { + margin-right: 0; + } + } + } + + &-pin { + transition: all 0.15s ease-in-out; + + &:hover { + transform: scale(1.1); + } + } + + &-title { + font-size: 20px; + } + + &-close { + transition: all 0.15s ease-in-out; + + &:hover { + transform: rotate(90deg); + } + } + } + + &-body { + flex-grow: 2; + flex-shrink: 2; + overflow: overlay; + overflow-x: hidden; + height: 100%; + } + } + + &.direction-right { + flex-direction: row-reverse; + + .@{prefix-cls}-composite-panel-tabs-pane.active:after { + left: auto; + right: -1px; + } + + .@{prefix-cls}-composite-panel-tabs-content.pinning { + left: auto; + right: 100%; + top: 0; + } + + .@{prefix-cls}-composite-panel-tabs-content { + border-right: none; + border-left: 1px solid var(--dn-panel-border-color); + } + .@{prefix-cls}-composite-panel-tabs { + border-left: 1px solid var(--dn-panel-border-color); + } + } +} + +.@{prefix-cls}-workspace-panel { + display: flex; + flex-grow: 1; + flex-direction: column; + padding: 4px; + overflow: hidden; + box-sizing: border-box; + background-color: var(--dn-workspace-panel-bg-color); + position: relative; + z-index: 1; + + &-item { + position: relative; + } + + button[disabled] { + pointer-events: none !important; + } +} + +.@{prefix-cls}-settings-panel { + flex-grow: 0; + flex-shrink: 0; + position: relative; + display: flex; + flex-direction: column; + z-index: 2; + width: 300px; + background: var(--dn-composite-panel-tabs-content-bg-color); + border-left: 1px solid var(--dn-panel-border-color); + height: 100%; + box-sizing: content-box; + user-select: none; + + &.pinning { + position: absolute; + z-index: 10; + top: 0; + right: 0; + box-shadow: 2px 5px 10px rgba(102, 102, 102, 0.52); + border-left: 1px solid transparent; + } + + &-header { + padding: 14px 7px; + color: var(--dn-composite-panel-tabs-header-color); + line-height: 18px; + font-size: 16px; + border-bottom: 1px solid var(--dn-panel-border-color); + display: flex; + justify-content: space-between; + + &-actions { + display: flex; + align-items: center; + + & > * { + margin-right: 8px; + + &:last-child { + margin-right: 0; + } + } + } + + &-pin { + transition: all 0.15s ease-in-out; + + &:hover { + transform: scale(1.1); + } + } + + &-title { + font-size: 20px; + } + + &-close { + transition: all 0.15s ease-in-out; + + &:hover { + transform: rotate(90deg); + } + } + } + + &-body { + flex-grow: 2; + flex-shrink: 2; + overflow: overlay; + height: 100%; + } + + &-opener { + position: absolute; + right: 0; + top: 50%; + transform: translateY(-50%); + z-index: 2; + background: var(--dn-composite-panel-tabs-content-bg-color); + border: 1px solid var(--dn-panel-border-color); + color: var(--dn-composite-panel-tabs-color); + box-shadow: 0 0 6px rgb(0 0 0 / 10%); + border-radius: 3px; + display: flex; + align-items: center; + justify-content: center; + width: 40px; + height: 40px; + cursor: pointer; + + .dn-icon { + transition: all 0.15s ease-in-out; + } + + &:hover .dn-icon { + transform: rotate(45deg); + } + } +} diff --git a/packages/designable/src/shared/index.ts b/packages/designable/src/shared/index.ts new file mode 100644 index 0000000..3b6deff --- /dev/null +++ b/packages/designable/src/shared/index.ts @@ -0,0 +1,3 @@ +export * from './util' +export * from './reactive' +export * from './useEffect' diff --git a/packages/designable/src/shared/reactive.ts b/packages/designable/src/shared/reactive.ts new file mode 100644 index 0000000..197642d --- /dev/null +++ b/packages/designable/src/shared/reactive.ts @@ -0,0 +1,65 @@ +import { + computed as vueComputed, + watch as vueWatch, + watchEffect as VueWatchEffect, + shallowRef, + onBeforeUnmount +} from 'vue' +import { autorun, reaction } from '@formily/reactive' + +import type { ComputedGetter, ComputedRef } from 'vue' + +export * from 'vue' + +export const computed = (calc: ComputedGetter): ComputedRef => { + const temp = shallowRef() + let dispose: () => void + onBeforeUnmount(() => dispose?.()) + return vueComputed((ctx?: any) => { + dispose?.() + dispose = autorun(() => (temp.value = calc(ctx))) + return temp.value as T + }) +} + +type Watch = typeof vueWatch +export const watch = ( + deps: Parameters[0], + callback: Parameters[1], + options?: Parameters[2] +): ReturnType => { + if (Array.isArray(deps)) { + const disposes = deps + .map((dep, i) => { + if (typeof dep === 'function') { + const newVs: unknown[] = [] + const oldVs: unknown[] = [] + return reaction(dep, (n, o) => { + newVs[i] = n + oldVs[i] = o + callback(newVs, oldVs, onBeforeUnmount) + }) + } + }) + .filter((item) => item !== undefined) + onBeforeUnmount(() => disposes.forEach((dispose) => dispose?.())) + } else if (typeof deps === 'function') { + const dispose = reaction(deps as () => unknown, (n, o) => + callback(n as any, o as any, onBeforeUnmount) + ) + onBeforeUnmount(() => dispose?.()) + } + return vueWatch(deps, callback, options) +} + +type WatchEffect = typeof VueWatchEffect +export const watchEffect: WatchEffect = ( + effect: Parameters[0], + options: Parameters[1] +): ReturnType => { + let dispose: () => void + return VueWatchEffect((onInvalidate) => { + dispose = autorun(() => effect(onInvalidate)) + onInvalidate(dispose) + }, options) +} diff --git a/packages/designable/src/shared/useEffect.ts b/packages/designable/src/shared/useEffect.ts new file mode 100644 index 0000000..1703a72 --- /dev/null +++ b/packages/designable/src/shared/useEffect.ts @@ -0,0 +1,22 @@ +import { onBeforeUnmount, watch } from 'vue' +import type { WatchSource } from 'vue' + +export function useEffect( + func: () => void | (() => void | null), + dependency: WatchSource | WatchSource[] +) { + const disposes = [] + + watch( + dependency, + () => { + disposes.forEach((fn) => fn?.()) + disposes.push(func()) + }, + { immediate: true } + ) + + onBeforeUnmount(() => { + disposes.forEach((fn) => fn?.()) + }) +} diff --git a/packages/designable/src/shared/util.ts b/packages/designable/src/shared/util.ts new file mode 100644 index 0000000..5b8c15e --- /dev/null +++ b/packages/designable/src/shared/util.ts @@ -0,0 +1,43 @@ +import { isStr } from '@pind/designable-shared' +import type { VNode } from 'vue' +import { getCurrentInstance } from 'vue' + +/** + * 复制一个现有VNode对象 + * @param VNode + * @param props + * @returns + */ +export function cloneElement(VNode: VNode, _props = {}) { + const props = { ...VNode?.props, ..._props } + const data = { ...VNode, props } + + return { ...VNode, data } +} + +const css2obj = (css) => { + const r = /(?<=^|;)\s*([^:]+)\s*:\s*([^;]+)\s*/g, + o = {} + css.replace(r, (m, p, v) => (o[p] = v)) + return o +} +/** + * 获取组件外层绑定的style对象 + * @returns + */ +export function useStyle() { + const { proxy } = getCurrentInstance() + let style = proxy.$attrs?.style + if (isStr(style)) { + style = css2obj(style) + } + if (Array.isArray(style)) { + style = Object.assign({}, ...style) + } + return style as Record +} + +const isObj = (val: unknown): val is any => typeof val === 'object' +export function isVNode(val: unknown): (val: unknown) => val is VNode { + return isObj(val) && val?.context?._isVue +} diff --git a/packages/designable/src/simulators/MobileSimulator/body.tsx b/packages/designable/src/simulators/MobileSimulator/body.tsx new file mode 100644 index 0000000..a10193d --- /dev/null +++ b/packages/designable/src/simulators/MobileSimulator/body.tsx @@ -0,0 +1,83 @@ +import { observer } from '@formily/reactive-vue' +import { defineComponent } from 'vue' +import type { CSSProperties } from 'vue/types/jsx' +import { usePrefix, useScreen, useTheme } from '../../hooks' + +const MockupImages = { + dark: [ + '//img.alicdn.com/imgextra/i3/O1CN01zXMc8W26oJZGUaCK1_!!6000000007708-55-tps-946-459.svg', + '//img.alicdn.com/imgextra/i3/O1CN012KWk2i1DLduN7InSK_!!6000000000200-55-tps-459-945.svg' + ], + light: [ + '//img.alicdn.com/imgextra/i4/O1CN01vuXGe31tEy00v2xBx_!!6000000005871-55-tps-946-459.svg', + '//img.alicdn.com/imgextra/i4/O1CN01ehfzMc1QPqY6HONTJ_!!6000000001969-55-tps-459-945.svg' + ] +} +const MobileBodyComponent = defineComponent({ + setup(props, { slots }) { + const screenRef = useScreen() + const themeRef = useTheme() + const prefixRef = usePrefix('mobile-simulator-body') + const getContentStyles = (): CSSProperties => { + if (screenRef.value.flip) { + return { + position: 'absolute', + width: '736px', + height: '414px', + top: '43.3333px', + left: '106.667px', + overflow: 'hidden' + } + } + return { + position: 'absolute', + width: '414px', + height: '736px', + top: '126.667px', + left: '23.3333px', + overflow: 'hidden' + } + } + + return () => { + return ( +
+
+ +
+ {slots.default?.()} +
+
+
+ ) + } + } +}) +export const MobileBody = observer(MobileBodyComponent) diff --git a/packages/designable/src/simulators/MobileSimulator/index.tsx b/packages/designable/src/simulators/MobileSimulator/index.tsx new file mode 100644 index 0000000..8924486 --- /dev/null +++ b/packages/designable/src/simulators/MobileSimulator/index.tsx @@ -0,0 +1,32 @@ +import { defineComponent } from 'vue' +import { usePrefix } from '../../hooks' +import { MobileBody } from './body' +import './styles.less' + +// export interface IMobileSimulatorProps +// extends React.HTMLAttributes { +// className?: string +// style?: React.CSSProperties +// } + +export const MobileSimulator = defineComponent({ + name: 'DnMobileSimulator', + props: [], + setup(props, { attrs, slots }) { + const prefixRef = usePrefix('mobile-simulator') + return () => { + return ( +
+
+ {slots.default?.()} +
+
+ ) + } + } +}) diff --git a/packages/designable/src/simulators/MobileSimulator/styles.less b/packages/designable/src/simulators/MobileSimulator/styles.less new file mode 100644 index 0000000..f3ab421 --- /dev/null +++ b/packages/designable/src/simulators/MobileSimulator/styles.less @@ -0,0 +1,29 @@ +@import '../../variables.less'; + +.@{prefix-cls}-mobile-simulator { + position: relative; + min-height: 100px; + height: 100%; + width: 100%; + background-color: var(--dn-mobile-simulator-bg-color); + + &-content { + width: 100%; + top: 0; + left: 0; + height: 100%; + position: absolute; + overflow: overlay; + } + + &-body { + display: flex; + justify-content: center; + height: 100%; + + &-content { + background-color: var(--dn-mobile-simulator-body-bg-color); + border: 3px solid var(--dn-mobile-simulator-border-color); + } + } +} diff --git a/packages/designable/src/simulators/PCSimulator/index.tsx b/packages/designable/src/simulators/PCSimulator/index.tsx new file mode 100644 index 0000000..789b1de --- /dev/null +++ b/packages/designable/src/simulators/PCSimulator/index.tsx @@ -0,0 +1,27 @@ +import { defineComponent } from 'vue' +import { usePrefix } from '../../hooks' +import './styles.less' +// export interface IPCSimulatorProps extends HTMLDivElement { +// className?: string +// style?: any // CSSProperties +// } +export const PCSimulator = defineComponent({ + name: 'DnPCSimulator', + props: [], + setup(props, { attrs, slots }) { + const prefix = usePrefix('pc-simulator') + + return () => { + return ( +
+ {slots.default?.()} +
+ ) + } + } +}) diff --git a/packages/designable/src/simulators/PCSimulator/styles.less b/packages/designable/src/simulators/PCSimulator/styles.less new file mode 100644 index 0000000..d626345 --- /dev/null +++ b/packages/designable/src/simulators/PCSimulator/styles.less @@ -0,0 +1,11 @@ +@import '../../variables.less'; + +.@{prefix-cls}-pc-simulator { + background-color: var(--dn-pc-simulator-bg-color); + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + box-sizing: border-box; +} diff --git a/packages/designable/src/simulators/ResponsiveSimulator/handle.tsx b/packages/designable/src/simulators/ResponsiveSimulator/handle.tsx new file mode 100644 index 0000000..541c81e --- /dev/null +++ b/packages/designable/src/simulators/ResponsiveSimulator/handle.tsx @@ -0,0 +1,37 @@ +import { defineComponent } from 'vue' +import { usePrefix } from '../../hooks' + +export enum ResizeHandleType { + Resize = 'RESIZE', + ResizeWidth = 'RESIZE_WIDTH', + ResizeHeight = 'RESIZE_HEIGHT' +} + +export interface IResizeHandleProps { + type?: ResizeHandleType +} + +export const ResizeHandle = defineComponent({ + props: ['type'], + setup(props, { slots, attrs }) { + const prefixRef = usePrefix('resize-handle') + return () => { + return ( +
+ {slots.default?.()} +
+ ) + } + } +}) diff --git a/packages/designable/src/simulators/ResponsiveSimulator/index.tsx b/packages/designable/src/simulators/ResponsiveSimulator/index.tsx new file mode 100644 index 0000000..d7b6358 --- /dev/null +++ b/packages/designable/src/simulators/ResponsiveSimulator/index.tsx @@ -0,0 +1,192 @@ +import type { Engine } from '@pind/designable-core' +import { CursorType, DragMoveEvent, DragStartEvent, DragStopEvent } from '@pind/designable-core' +import { calcSpeedFactor, createUniformSpeedAnimation, isStr } from '@pind/designable-shared' +import { observe } from '@formily/reactive' +import { observer } from '@formily/reactive-vue' +import type { Ref } from 'vue' +import { defineComponent, nextTick, onBeforeUnmount, ref } from 'vue' +import { useDesigner, usePrefix, useScreen } from '../../hooks' +import { IconWidget } from '../../widgets' +import { ResizeHandle, ResizeHandleType } from './handle' +import './styles.less' + +const useResizeEffect = ( + container: Ref, // React.MutableRefObject, + content: Ref, // React.MutableRefObject, + engine: Engine +) => { + let status: ResizeHandleType = null + let startX = 0 + let startY = 0 + let startWidth = 0 + let startHeight = 0 + let animationX = null + let animationY = null + + const updateSize = (deltaX: number, deltaY: number) => { + const containerRect = container.value?.getBoundingClientRect() + if (status === ResizeHandleType.Resize) { + engine.screen.setSize(startWidth + deltaX, startHeight + deltaY) + container.value.scrollBy(containerRect.width + deltaX, containerRect.height + deltaY) + } else if (status === ResizeHandleType.ResizeHeight) { + engine.screen.setSize(startWidth, startHeight + deltaY) + container.value.scrollBy(container.value.scrollLeft, containerRect.height + deltaY) + } else if (status === ResizeHandleType.ResizeWidth) { + engine.screen.setSize(startWidth + deltaX, startHeight) + container.value.scrollBy(containerRect.width + deltaX, container.value.scrollTop) + } + } + + engine.subscribeTo(DragStartEvent, (e) => { + if (!engine.workbench.currentWorkspace?.viewport) return + const target = e.data.target as HTMLElement + if (target?.closest('*[data-designer-resize-handle]')) { + const rect = content.value?.getBoundingClientRect() + if (!rect) return + status = target.getAttribute('data-designer-resize-handle') as ResizeHandleType + engine.cursor.setType(status) + startX = e.data.topClientX + startY = e.data.topClientY + startWidth = rect.width + startHeight = rect.height + } + }) + engine.subscribeTo(DragMoveEvent, (e) => { + if (!engine.workbench.currentWorkspace?.viewport) return + if (!status) return + const deltaX = e.data.topClientX - startX + const deltaY = e.data.topClientY - startY + const containerRect = container.value?.getBoundingClientRect() + const distanceX = Math.floor(containerRect.right - e.data.topClientX) + const distanceY = Math.floor(containerRect.bottom - e.data.topClientY) + const factorX = calcSpeedFactor(distanceX, 10) + const factorY = calcSpeedFactor(distanceY, 10) + updateSize(deltaX, deltaY) + if (distanceX <= 10) { + if (!animationX) { + animationX = createUniformSpeedAnimation(1000 * factorX, (delta) => { + updateSize(deltaX + delta, deltaY) + }) + } + } else { + if (animationX) { + animationX = animationX() + } + } + + if (distanceY <= 10) { + if (!animationY) { + animationY = createUniformSpeedAnimation(300 * factorY, (delta) => { + updateSize(deltaX, deltaY + delta) + }) + } + } else { + if (animationY) { + animationY = animationY() + } + } + }) + engine.subscribeTo(DragStopEvent, () => { + if (!status) return + status = null + engine.cursor.setType(CursorType.Move) + if (animationX) { + animationX = animationX() + } + if (animationY) { + animationY = animationY() + } + }) +} + +/** + * @param content + */ +function useScreenModifier(screen, content: Ref) { + const dispose = observe(screen, () => { + nextTick(() => { + screen.setSize(content.value?.clientWidth, content.value?.clientHeight) + }) + }) + nextTick(() => { + screen.setSize(content.value?.clientWidth, content.value?.clientHeight) + }) + onBeforeUnmount(() => { + dispose() + }) +} + +const ResponsiveSimulatorComponent = defineComponent({ + name: 'DnResponsiveSimulator', + props: [], + setup(props, { attrs, slots }) { + const content = ref() + const container = ref() + const prefixRef = usePrefix('responsive-simulator') + const screenRef = useScreen() + + useDesigner((engine) => { + useResizeEffect(container, content, engine) + }) + + useScreenModifier(screenRef.value, content) + + return () => { + return ( +
+
+
+ {slots.default?.()} + + + + + + + + + +
+
+
+ ) + } + } +}) +export const ResponsiveSimulator = observer(ResponsiveSimulatorComponent) diff --git a/packages/designable/src/simulators/ResponsiveSimulator/styles.less b/packages/designable/src/simulators/ResponsiveSimulator/styles.less new file mode 100644 index 0000000..6921582 --- /dev/null +++ b/packages/designable/src/simulators/ResponsiveSimulator/styles.less @@ -0,0 +1,56 @@ +@import '../../variables.less'; + +.@{prefix-cls}-responsive-simulator { + background-color: var(--dn-responsive-simulator-bg-color); +} + +.@{prefix-cls}-resize-handle { + position: absolute; + transition: 0.2s all ease-in-out; + box-sizing: border-box; + user-select: none; + bottom: 0; + z-index: 10; + background: var(--dn-resize-handle-bg-color); + color: var(--dn-resize-handle-color); + display: flex; + justify-content: center; + align-items: center; + + &-RESIZE_WIDTH { + top: 0; + bottom: 15px; + cursor: ew-resize; + + svg { + transform-origin: center; + transform: rotate(-90deg); + } + } + + &-RESIZE_HEIGHT { + left: 0; + right: 15px; + cursor: ns-resize; + } + + &-RESIZE { + cursor: nwse-resize; + } + + &-RESIZE_HEIGHT, + &-RESIZE { + height: 15px; + } + + &-RESIZE_WIDTH, + &-RESIZE { + right: 0; + width: 15px; + } + + &:hover { + background: var(--dn-resize-handle-hover-bg-color); + color: var(--dn-resize-handle-hover-color); + } +} diff --git a/packages/designable/src/simulators/index.tsx b/packages/designable/src/simulators/index.tsx new file mode 100644 index 0000000..7c24a1d --- /dev/null +++ b/packages/designable/src/simulators/index.tsx @@ -0,0 +1,3 @@ +export * from './PCSimulator' +export * from './MobileSimulator' +export * from './ResponsiveSimulator' diff --git a/packages/designable/src/theme.less b/packages/designable/src/theme.less new file mode 100644 index 0000000..89d87e0 --- /dev/null +++ b/packages/designable/src/theme.less @@ -0,0 +1,226 @@ +@import './variables.less'; + +:root { + //品牌色 + --dn-brand: rgba(24, 144, 255, 1); + --dn-brand-hovering: rgba(64, 169, 255, 1); + --dn-brand-dragging: rgba(24, 144, 255, 0.26); + --dn-brand-dropping: rgba(24, 144, 255, 0.34); + --dn-brand-moving: rgba(24, 144, 255, 0.5); + //白色调色版 + --dn-white: #fff; + --dn-white-gray: #d9d9d9; + --dn-white-gray-light: #eee; + --dn-white-gray-lighter: #f0f0f0; + --dn-white-gray-dark: #aaa; + //灰色调色板 + --dn-gray: #333; + --dn-gray-light: #444; + --dn-gray-lighter: #666; + --dn-gray-dark: #222; + --dn-black: #1a1a1a; +} + +.@{prefix-cls}-light { + --dn-aux-cover-rect-dragging-color: var(--dn-brand-dragging); + --dn-aux-cover-rect-dropping-color: var(--dn-brand-dropping); + --dn-aux-free-selection-background-color: var(--dn-brand); + --dn-aux-free-selection-border-color: var(--dn-brand); + --dn-aux-insertion-color: var(--dn-brand); + --dn-aux-dashed-box-color: var(--dn-brand); + --dn-aux-dashed-box-title-color: var(--dn-gray); + --dn-aux-selection-box-border-color: var(--dn-brand); + --dn-aux-selection-box-color: var(--dn-gray); + --dn-ghost-color: var(--dn-white); + --dn-ghost-bg-color: var(--dn-brand-moving); + --dn-outline-tree-bg-color: var(--dn-white); + --dn-outline-tree-header-border-color: var(--dn-white-gray-light); + --dn-outline-tree-color: var(--dn-gray); + --dn-outline-tree-insertion-bg-color: var(--dn-brand); + --dn-outline-tree-node-header-color: var(--dn-gray); + --dn-outline-tree-node-hover-color: var(--dn-brand); + + --dn-toolbar-input-color: var(--dn-gray-dark); + --dn-toolbar-input-bg-color: var(--dn-white); + --dn-toolbar-input-border-color: var(--dn-white-gray-light); + --dn-toolbar-input-hover-border-color: var(--dn-white-gray-light); + --dn-toolbar-input-handler-bg-color: var(--dn-white); + + --dn-resize-handle-bg-color: var(--dn-white-gray-light); + --dn-resize-handle-hover-bg-color: var(--dn-white-gray-lighter); + --dn-resize-handle-color: var(--dn-gray-light); + --dn-resize-handle-hover-color: var(--dn-white-lighter); + + --dn-mobile-simulator-bg-color: var(--dn-white-gray-light); + --dn-mobile-simulator-body-bg-color: var(--dn-white); + --dn-mobile-simulator-border-color: var(--dn-gray-dark); + --dn-responsive-simulator-bg-color: var(--dn-white); + --dn-pc-simulator-bg-color: var(--dn-white); + + --dn-aux-selector-btn-color: var(--dn-white); + --dn-aux-selector-btn-bg-color: var(--dn-brand); + --dn-aux-selector-btn-border-color: var(--dn-brand); + --dn-aux-selector-btn-hover-color: var(--dn-white); + --dn-aux-selector-btn-hover-bg-color: var(--dn-brand-hovering); + --dn-aux-selector-btn-hover-border-color: var(--dn-brand-hovering); + --dn-aux-selector-btn-active-color: var(--dn-white); + --dn-aux-selector-btn-active-bg-color: var(--dn-brand-hovering); + --dn-aux-selector-btn-active-border-color: var(--dn-brand-hovering); + + --dn-panel-border-color: var(--dn-white-gray); + --dn-panel-active-bg-color: var(--dn-white-gray-light); + --dn-resource-content-bg-color: var(--dn-white); + + --dn-composite-panel-tabs-bg-color: var(--dn-white); + --dn-composite-panel-tabs-active-bg-color: var(--dn-white); + --dn-composite-panel-highlight-bg-color: var(--dn-white-gray-light); + --dn-composite-panel-tabs-color: var(--dn-gray-lighter); + --dn-composite-panel-tabs-hover-color: var(--dn-brand); + --dn-composite-panel-tabs-content-bg-color: var(--dn-white); + --dn-composite-panel-tabs-header-color: var(--dn-gray-lighter); + + --dn-collapse-header-color: var(--dn-gray); + + --dn-resource-item-color: var(--dn-gray); + --dn-resource-item-hover-border-color: var(--dn-brand); + --dn-resource-item-hover-color: var(--dn-brand); + + --dn-main-panel-header-bg-color: var(--dn-white); + --dn-workspace-panel-bg-color: var(--dn-white-gray-light); + + --dn-scrollbar-color: var(--dn-white-gray); + --dn-scrollbar-hover-color: var(--white-dn-gray-lighter); + + --dn-empty-bg-color: var(--dn-white); + + --dn-droppable-bg-color: var(--dn-white-gray-lighter); + --dn-droppable-border-color: var(--dn-white-gray-dark); + --dn-droppable-color: var(--dn-gray-lighter); +} + +.@{prefix-cls}-dark { + --dn-aux-cover-rect-dragging-color: var(--dn-brand-dragging); + --dn-aux-cover-rect-dropping-color: var(--dn-brand-dropping); + --dn-aux-free-selection-background-color: var(--dn-brand); + --dn-aux-free-selection-border-color: var(--dn-brand); + --dn-aux-insertion-color: var(--dn-brand); + --dn-aux-dashed-box-color: var(--dn-brand); + --dn-aux-dashed-box-title-color: var(--dn-brand); + --dn-aux-selection-box-border-color: var(--dn-brand); + --dn-aux-selection-box-color: var(--dn-gray); + --dn-ghost-color: var(--dn-white); + --dn-ghost-bg-color: var(--dn-brand-moving); + --dn-outline-tree-bg-color: var(--dn-gray-dark); + --dn-outline-tree-header-border-color: var(--dn-gray); + --dn-outline-tree-color: var(--dn-white-gray); + --dn-outline-tree-insertion-bg-color: var(--dn-brand); + --dn-outline-tree-node-header-color: var(--dn-white-gray); + --dn-outline-tree-node-hover-color: var(--dn-white-gray); + + --dn-toolbar-input-color: var(--dn-white-gray); + --dn-toolbar-input-bg-color: transparent; + --dn-toolbar-input-border-color: var(--dn-gray-light); + --dn-toolbar-input-hover-border-color: var(--dn-brand); + --dn-toolbar-input-handler-bg-color: var(--dn-gray-light); + --dn-resize-handle-bg-color: var(--dn-gray-light); + --dn-resize-handle-hover-bg-color: var(--dn-gray-lighter); + --dn-resize-handle-color: var(--dn-gray-lighter); + --dn-resize-handle-hover-color: var(--dn-white-gray-dark); + + --dn-mobile-simulator-bg-color: var(--dn-black); + --dn-mobile-simulator-body-bg-color: var(--dn-black); + --dn-mobile-simulator-border-color: var(--dn-black); + --dn-responsive-simulator-bg-color: var(--dn-black); + --dn-pc-simulator-bg-color: var(--dn-black); + + --dn-aux-selector-btn-color: var(--dn-white); + --dn-aux-selector-btn-bg-color: var(--dn-brand); + --dn-aux-selector-btn-border-color: var(--dn-brand); + --dn-aux-selector-btn-hover-color: var(--dn-white); + --dn-aux-selector-btn-hover-bg-color: var(--dn-brand-hovering); + --dn-aux-selector-btn-hover-border-color: var(--dn-brand-hovering); + --dn-aux-selector-btn-active-color: var(--dn-white); + --dn-aux-selector-btn-active-bg-color: var(--dn-brand-hovering); + --dn-aux-selector-btn-active-border-color: var(--dn-brand-hovering); + + --dn-panel-border-color: var(--dn-gray-light); + --dn-panel-active-bg-color: var(--dn-gray); + --dn-resource-content-bg-color: var(--dn-gray-dark); + + --dn-composite-panel-tabs-bg-color: var(--dn-gray-dark); + --dn-composite-panel-tabs-active-bg-color: var(--dn-gray-dark); + --dn-composite-panel-highlight-bg-color: var(--dn-black); + --dn-composite-panel-tabs-color: var(--dn-white-gray-dark); + --dn-composite-panel-tabs-hover-color: var(--dn-brand); + --dn-composite-panel-tabs-content-bg-color: var(--dn-gray-dark); + --dn-composite-panel-tabs-header-color: var(--dn-white-gray); + + --dn-collapse-header-color: var(--dn-white-gray); + + --dn-resource-item-color: var(--dn-white-gray); + --dn-resource-item-hover-color: var(--dn-brand); + + --dn-main-panel-header-bg-color: var(--dn-gray-dark); + --dn-workspace-panel-bg-color: var(--dn-gray-dark); + + --dn-scrollbar-color: var(--dn-gray-light); + --dn-scrollbar-hover-color: var(--dn-gray-lighter); + + --dn-empty-bg-color: var(--dn-gray-dark); + + --dn-droppable-bg-color: var(--dn-gray); + --dn-droppable-border-color: var(--dn-gray-light); + --dn-droppable-color: var(--dn-white); +} + +.@{prefix-cls}-app { + ::-webkit-scrollbar { + width: 5px; + height: 5px; + } + + ::-webkit-scrollbar-thumb { + background-color: var(--dn-scrollbar-color); + border-radius: 0; + transition: all 0.25s ease-in-out; + } + + ::-webkit-scrollbar-thumb:hover { + background-color: var(--dn-scrollbar-hover-color); + } + + color: var(--dn-gray-dark); + font-size: 14px; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, + 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', + 'Noto Color Emoji'; + font-variant: tabular-nums; + line-height: 1.5715; + font-feature-settings: 'tnum'; + + * { + box-sizing: border-box; + } + + *[contenteditable='true'] { + min-width: 1px; + min-height: 14px; + cursor: text !important; + outline: none !important; + } + + *[data-content-editable]:not(*[contenteditable='true']) { + pointer-events: initial; + + &:empty::before { + content: 'Please Input'; + display: block; + opacity: 0.6; + } + + &:hover { + cursor: text !important; + opacity: 0.8; + } + } +} diff --git a/packages/designable/src/types.ts b/packages/designable/src/types.ts new file mode 100644 index 0000000..46a35ff --- /dev/null +++ b/packages/designable/src/types.ts @@ -0,0 +1,39 @@ +import type { Engine, IResource, IBehavior } from '@pind/designable-core' +import type { DefineComponent } from '@formily/vue' + +export interface IDesignerLayoutProps { + prefixCls?: string + theme?: 'dark' | 'light' | (string & {}) + variables?: Record + position?: 'fixed' | 'absolute' | 'relative' +} + +export interface IDesignerProps extends IDesignerLayoutProps { + engine: Engine +} + +export interface IDesignerComponents { + [key: string]: DnFC +} + +export interface IDesignerLayoutContext { + theme?: 'dark' | 'light' | (string & {}) + prefixCls: string + position?: 'fixed' | 'absolute' | 'relative' +} + +export interface IWorkspaceContext { + id: string + title?: string + description?: string +} + +export type DnFC

= DefineComponent

& { + Resource?: IResource[] + Behavior?: IBehavior[] +} + +export type DnComponent

= DefineComponent

& { + Resource?: IResource[] + Behavior?: IBehavior[] +} diff --git a/packages/designable/src/variables.less b/packages/designable/src/variables.less new file mode 100644 index 0000000..2d10112 --- /dev/null +++ b/packages/designable/src/variables.less @@ -0,0 +1,6 @@ +// @import '~ant-design-vue/lib/style/themes/index.less'; + +@prefix-cls: ~'dn'; +@border-color-split: #f0f0f0; +@text-color-secondary: #666666; +@primary-color: #999999; diff --git a/packages/designable/src/widgets/AuxToolWidget/Copy.tsx b/packages/designable/src/widgets/AuxToolWidget/Copy.tsx new file mode 100644 index 0000000..cc163c5 --- /dev/null +++ b/packages/designable/src/widgets/AuxToolWidget/Copy.tsx @@ -0,0 +1,40 @@ +// import React from 'react' +import type { TreeNode } from '@pind/designable-core' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { Button } from 'ant-design-vue' +import type { PropType } from 'vue' +import { defineComponent } from 'vue' +import { useOperation, usePrefix } from '../../hooks' +import { useStyle } from '../../shared/util' +import { IconWidget } from '../IconWidget' + +export interface ICopyProps { + node: TreeNode +} + +const CopyComponent = defineComponent({ + name: 'DnCopy', + props: { node: { type: Object as PropType } }, + setup(props) { + const operationRef = useOperation() + const prefixRef = usePrefix('aux-copy') + const style = useStyle() + return () => { + if (props.node === props.node.root) return null + return ( + + ) + } + } +}) + +export const Copy = composeExport(CopyComponent, { displayName: 'Copy' }) diff --git a/packages/designable/src/widgets/AuxToolWidget/Cover.tsx b/packages/designable/src/widgets/AuxToolWidget/Cover.tsx new file mode 100644 index 0000000..7620f61 --- /dev/null +++ b/packages/designable/src/widgets/AuxToolWidget/Cover.tsx @@ -0,0 +1,95 @@ +import type { TreeNode } from '@pind/designable-core' +import { ClosestPosition, CursorStatus } from '@pind/designable-core' +import { isNum } from '@pind/designable-shared' +import { observer } from '@formily/reactive-vue' +import { FragmentComponent as Fragment } from '@formily/vue' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { defineComponent, toRef } from 'vue' +import { + useCursor, + useMoveHelper, + usePrefix, + useValidNodeOffsetRect, + useViewport +} from '../../hooks' + +export interface ICoverRectProps { + node: TreeNode + dragging?: boolean + dropping?: boolean +} + +const CoverRect = defineComponent({ + name: 'DnCoverRect', + props: ['dragging', 'dropping', 'node'], + setup(props) { + const prefixRef = usePrefix('aux-cover-rect') + const node = toRef(props, 'node') + const rectRef = useValidNodeOffsetRect(node) + + return () => { + const rect = rectRef.value + const createCoverStyle = () => { + const baseStyle: any = { + position: 'absolute', + top: 0, + left: 0, + pointerEvents: 'none' + } + if (rect) { + baseStyle.transform = `perspective(1px) translate3d(${rect.x}px,${rect.y}px,0)` + baseStyle.height = isNum(rect.height) ? rect.height + 'px' : rect.height + baseStyle.width = isNum(rect.width) ? rect.width + 'px' : rect.width + } + return baseStyle + } + return ( +

+ ) + } + } +}) + +const CoverComponent = observer( + defineComponent({ + name: 'DnCover', + setup() { + const moveHelperRef = useMoveHelper() + const viewportRef = useViewport() + const cursorRef = useCursor() + const renderDropCover = () => { + if ( + !moveHelperRef.value.closestNode || + !moveHelperRef.value.closestNode?.allowAppend(moveHelperRef.value.dragNodes) || + moveHelperRef.value.closestDirection !== ClosestPosition.Inner + ) + return null + return + } + return () => { + if (cursorRef.value.status !== CursorStatus.Dragging) return null + return ( + + {moveHelperRef.value.dragNodes.map((node) => { + if (!node) return + if (!viewportRef.value.findElementById(node.id)) return + return + })} + {renderDropCover()} + + ) + } + } + }) +) + +export const Cover = composeExport(CoverComponent, { displayName: 'Cover' }) diff --git a/packages/designable/src/widgets/AuxToolWidget/DashedBox.tsx b/packages/designable/src/widgets/AuxToolWidget/DashedBox.tsx new file mode 100644 index 0000000..3551577 --- /dev/null +++ b/packages/designable/src/widgets/AuxToolWidget/DashedBox.tsx @@ -0,0 +1,75 @@ +import { computed, defineComponent } from 'vue' +import { isNum } from '@pind/designable-shared' +import { observer } from '@formily/reactive-vue' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { useHover, usePrefix, useValidNodeOffsetRect, useSelection } from '../../hooks' + +const DashBox = observer( + defineComponent({ + name: 'DnDashBox', + setup() { + const hoverRef = useHover() + const prefixRef = usePrefix('aux-dashed-box') + const selectionRef = useSelection() + + const node = computed(() => hoverRef.value?.node) + + const rectRef = useValidNodeOffsetRect(node) + + return () => { + const rect = rectRef.value + const createTipsStyle = () => { + const baseStyle: any = { + top: 0, + left: 0, + pointerEvents: 'none', + boxSizing: 'border-box', + visibility: 'hidden', + zIndex: 2 + } + if (rect) { + baseStyle.transform = `perspective(1px) translate3d(${rect.x}px,${rect.y}px,0)` + baseStyle.height = isNum(rect.height) ? rect.height + 'px' : rect.height + baseStyle.width = isNum(rect.width) ? rect.width + 'px' : rect.width + baseStyle.visibility = 'visible' + } + return baseStyle + } + if (!hoverRef.value.node) return null + if (hoverRef.value.node.hidden) return null + if (selectionRef.value.selected.includes(hoverRef.value.node.id)) return null + return ( +
+ + {hoverRef.value?.node.getMessage('title')} + +
+ ) + } + } + }) +) + +export const DashedBox = composeExport( + observer( + defineComponent({ + name: 'DnDashedBox', + setup() { + const hoverRef = useHover() + return () => + } + }) + ), + { displayName: 'DashedBox' } +) diff --git a/packages/designable/src/widgets/AuxToolWidget/Delete.tsx b/packages/designable/src/widgets/AuxToolWidget/Delete.tsx new file mode 100644 index 0000000..3d5e4a0 --- /dev/null +++ b/packages/designable/src/widgets/AuxToolWidget/Delete.tsx @@ -0,0 +1,35 @@ +import type { TreeNode } from '@pind/designable-core' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { Button } from 'ant-design-vue' +import type { PropType } from 'vue' +import { defineComponent } from 'vue' +import { useOperation, usePrefix } from '../../hooks' +import { IconWidget } from '../IconWidget' + +export interface IDeleteProps { + node: TreeNode +} + +const DeleteComponent = defineComponent({ + name: 'DnDelete', + props: { node: { type: Object as PropType } }, + setup(props) { + const operationRef = useOperation() + const prefixRef = usePrefix('aux-copy') + return () => { + if (props.node === props.node.root) return null + return ( + + ) + } + } +}) +export const Delete = composeExport(DeleteComponent, { displayName: 'Delete' }) diff --git a/packages/designable/src/widgets/AuxToolWidget/DragHandler.tsx b/packages/designable/src/widgets/AuxToolWidget/DragHandler.tsx new file mode 100644 index 0000000..74aa159 --- /dev/null +++ b/packages/designable/src/widgets/AuxToolWidget/DragHandler.tsx @@ -0,0 +1,42 @@ +import type { TreeNode } from '@pind/designable-core' +import { observer } from '@formily/reactive-vue' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { Button } from 'ant-design-vue' +import type { PropType } from 'vue' +import { defineComponent } from 'vue' +import { useDesigner, usePrefix } from '../../hooks' +import { useStyle } from '../../shared' +import { IconWidget } from '../IconWidget' + +export interface IDragHandlerProps { + node: TreeNode +} + +const DragHandlerComponent = observer( + defineComponent({ + name: 'DnDragHandler', + props: { node: { type: Object as PropType } }, + setup(props) { + const designerRef = useDesigner() + const style = useStyle() + const prefixRef = usePrefix('aux-drag-handler') + + return () => { + const node = props.node! + if (node === node.root || !node.allowDrag()) return null + const handlerProps = { + [designerRef.value.props.nodeDragHandlerAttrName!]: 'true' + } + return ( + + ) + } + } + }) +) + +export const DragHandler = composeExport(DragHandlerComponent, { + displayName: 'DragHandler' +}) diff --git a/packages/designable/src/widgets/AuxToolWidget/FreeSelection.tsx b/packages/designable/src/widgets/AuxToolWidget/FreeSelection.tsx new file mode 100644 index 0000000..a62291c --- /dev/null +++ b/packages/designable/src/widgets/AuxToolWidget/FreeSelection.tsx @@ -0,0 +1,61 @@ +import { observer } from '@formily/reactive-vue' +import { CursorDragType, CursorStatus } from '@pind/designable-core' +import { calcRectByStartEndPoint, isNum } from '@pind/designable-shared' +import { defineComponent } from 'vue' +import { useCursor, useOperation, usePrefix, useViewport } from '../../hooks' + +export const FreeSelection = observer( + defineComponent({ + name: 'DnFreeSelection', + props: [], + setup() { + const operationRef = useOperation() + const cursorRef = useCursor() + const viewportRef = useViewport() + const prefixRef = usePrefix('aux-free-selection') + const createSelectionStyle = () => { + const cursor = cursorRef.value + const viewport = viewportRef.value + const startDragPoint = viewportRef.value.getOffsetPoint({ + x: cursor.dragStartPosition.topClientX, + y: cursor.dragStartPosition.topClientY + }) + const currentPoint = viewportRef.value.getOffsetPoint({ + x: cursor.position.topClientX, + y: cursor.position.topClientY + }) + const rect = calcRectByStartEndPoint( + startDragPoint, + currentPoint, + viewport.dragScrollXDelta, + viewport.dragScrollYDelta + ) + const baseStyle: any = { + position: 'absolute', + top: 0, + left: 0, + opacity: 0.2, + borderWidth: 1, + borderStyle: 'solid', + transform: `perspective(1px) translate3d(${rect.x}px,${rect.y}px,0)`, + height: isNum(rect.height) ? rect.height + 'px' : rect.height, + width: isNum(rect.width) ? rect.width + 'px' : rect.width, + pointerEvents: 'none', + boxSizing: 'border-box', + zIndex: 1 + } + return baseStyle + } + return () => { + const cursor = cursorRef.value + if ( + operationRef.value.moveHelper.hasDragNodes || + cursor.status !== CursorStatus.Dragging || + cursor.type !== CursorDragType.Move + ) + return null + return
+ } + } + }) +) diff --git a/packages/designable/src/widgets/AuxToolWidget/Helpers.tsx b/packages/designable/src/widgets/AuxToolWidget/Helpers.tsx new file mode 100644 index 0000000..3887b6f --- /dev/null +++ b/packages/designable/src/widgets/AuxToolWidget/Helpers.tsx @@ -0,0 +1,136 @@ +import type { TreeNode } from '@pind/designable-core' +import { reaction } from '@formily/reactive' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { Button } from 'ant-design-vue' +import { defineComponent, nextTick, ref } from 'vue' +import { usePrefix, useViewport } from '../../hooks' +import { useEffect } from '../../shared/useEffect' +import { Copy } from './Copy' +import { Delete } from './Delete' +import { DragHandler } from './DragHandler' +import { Selector } from './Selector' + +const HELPER_DEBOUNCE_TIMEOUT = 100 + +export interface IHelpersProps { + node: TreeNode + nodeRect: DOMRect +} + +export interface IViewportState { + viewportWidth?: number + viewportHeight?: number + viewportScrollX?: number + viewportScrollY?: number + viewportIsScrollTop?: boolean + viewportIsScrollBottom?: boolean +} + +const HelpersComponent = defineComponent({ + props: ['node', 'nodeRect'], + setup(props) { + const prefixRef = usePrefix('aux-helpers') + const viewportRef = useViewport() + const unmountRef = ref(false) + const refContainer = ref() + const positionRef = ref('top-right') + + useEffect( + () => { + let request = null + const getYInViewport = (nodeRect: DOMRect, helpersRect: DOMRect) => { + if (nodeRect.top - viewportRef.value.scrollY > helpersRect.height) { + return 'top' + } else if ( + viewportRef.value.isScrollTop && + nodeRect.height + helpersRect.height > viewportRef.value.height + ) { + return 'inner-top' + } else if ( + viewportRef.value.isScrollBottom && + nodeRect.height + helpersRect.height > viewportRef.value.height + ) { + return 'inner-bottom' + } + + return 'bottom' + } + + const getXInViewport = (nodeRect: DOMRect, helpersRect: DOMRect) => { + const widthDelta = helpersRect.width - nodeRect.width + if (widthDelta >= 0) { + if (nodeRect.x < widthDelta) { + return 'left' + } else if (nodeRect.right + widthDelta > viewportRef.value.width) { + return 'right' + } else { + return 'center' + } + } + return 'right' + } + + const update = () => { + const nodeRect = props.nodeRect + const ref = refContainer + const helpersRect = ref.value?.getBoundingClientRect() + if (!helpersRect || !nodeRect) return + if (unmountRef.value) return + positionRef.value = + getYInViewport(nodeRect, helpersRect) + '-' + getXInViewport(nodeRect, helpersRect) + } + + nextTick(() => { + update() + }) + + return reaction( + () => [ + viewportRef.value.width, + viewportRef.value.height, + viewportRef.value.scrollX, + viewportRef.value.scrollY, + viewportRef.value.isScrollBottom, + viewportRef.value.isScrollTop + ], + () => { + clearTimeout(request) + request = setTimeout(update, HELPER_DEBOUNCE_TIMEOUT) + } + ) + }, + () => [viewportRef.value, props.nodeRect] + ) + + return () => { + const node = props.node + const nodeRect = props.nodeRect + if (!nodeRect || !node) return null + + return ( +
+
+ + + {node?.allowClone() === false ? null : } + {node?.allowDrag() === false ? null : } + {node?.allowDelete() === false ? null : } + +
+
+ ) + } + } +}) + +export const Helpers = composeExport(HelpersComponent, { + displayName: 'Helpers' +}) diff --git a/packages/designable/src/widgets/AuxToolWidget/Insertion.tsx b/packages/designable/src/widgets/AuxToolWidget/Insertion.tsx new file mode 100644 index 0000000..cca609b --- /dev/null +++ b/packages/designable/src/widgets/AuxToolWidget/Insertion.tsx @@ -0,0 +1,95 @@ +import { ClosestPosition } from '@pind/designable-core' +import { observer } from '@formily/reactive-vue' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { defineComponent } from 'vue' +import { isNum } from '@pind/designable-shared' +import { useMoveHelper, usePrefix } from '../../hooks' + +export const InsertionComponent = observer( + defineComponent({ + props: [], + setup() { + const moveHelper = useMoveHelper() + const prefix = usePrefix('aux-insertion') + + const createInsertionStyle = (): any => { + const closestDirection = moveHelper.value.closestDirection + const closestRect = moveHelper.value.viewportClosestOffsetRect + const isInlineLayout = moveHelper.value.closestNode?.moveLayout === 'horizontal' + const baseStyle: any = { + position: 'absolute', + transform: 'perspective(1px) translate3d(0,0,0)', + top: 0, + left: 0 + } + if (!closestRect) return baseStyle + if ( + closestDirection === ClosestPosition.Before || + closestDirection === ClosestPosition.ForbidBefore + ) { + baseStyle.width = 2 + baseStyle.height = closestRect.height + baseStyle.transform = `perspective(1px) translate3d(${closestRect.x}px,${closestRect.y}px,0)` + } else if ( + closestDirection === ClosestPosition.After || + closestDirection === ClosestPosition.ForbidAfter + ) { + baseStyle.width = 2 + baseStyle.height = closestRect.height + baseStyle.transform = `perspective(1px) translate3d(${ + closestRect.x + closestRect.width - 2 + }px,${closestRect.y}px,0)` + } else if ( + closestDirection === ClosestPosition.InnerAfter || + closestDirection === ClosestPosition.Under || + closestDirection === ClosestPosition.ForbidInnerAfter || + closestDirection === ClosestPosition.ForbidUnder + ) { + if (isInlineLayout) { + baseStyle.width = 2 + baseStyle.height = closestRect.height + baseStyle.transform = `perspective(1px) translate3d(${ + closestRect.x + closestRect.width - 2 + }px,${closestRect.y}px,0)` + } else { + baseStyle.width = closestRect.width + baseStyle.height = 2 + baseStyle.transform = `perspective(1px) translate3d(${closestRect.x}px,${ + closestRect.y + closestRect.height - 2 + }px,0)` + } + } else if ( + closestDirection === ClosestPosition.InnerBefore || + closestDirection === ClosestPosition.Upper || + closestDirection === ClosestPosition.ForbidInnerBefore || + closestDirection === ClosestPosition.ForbidUpper + ) { + if (isInlineLayout) { + baseStyle.width = 2 + baseStyle.height = closestRect.height + baseStyle.transform = `perspective(1px) translate3d(${closestRect.x}px,${closestRect.y}px,0)` + } else { + baseStyle.width = closestRect.width + baseStyle.height = 2 + baseStyle.transform = `perspective(1px) translate3d(${closestRect.x}px,${closestRect.y}px,0)` + } + } + if (closestDirection.includes('FORBID')) { + baseStyle.backgroundColor = 'red' + } + Object.keys(baseStyle).forEach((key) => { + const value = baseStyle[key] + isNum(value) && (baseStyle[key] = value + 'px') + }) + return baseStyle + } + return () => { + return
+ } + } + }) +) + +export const Insertion = composeExport(InsertionComponent, { + displayName: 'Insertion' +}) diff --git a/packages/designable/src/widgets/AuxToolWidget/ResizeHandler.tsx b/packages/designable/src/widgets/AuxToolWidget/ResizeHandler.tsx new file mode 100644 index 0000000..0273c67 --- /dev/null +++ b/packages/designable/src/widgets/AuxToolWidget/ResizeHandler.tsx @@ -0,0 +1,48 @@ +import type { TreeNode } from '@pind/designable-core' +import { FragmentComponent } from '@formily/vue' +import { defineComponent } from 'vue' +import { useDesigner, usePrefix } from '../../hooks' + +export interface IResizeHandlerProps { + node: TreeNode +} + +export const ResizeHandler = defineComponent({ + name: 'DnResizeHandler', + props: ['node'], + setup(props) { + const designerRef = useDesigner() + const prefixRef = usePrefix('aux-node-resize-handler') + + return () => { + const allowResize = props.node.allowResize() + if (!allowResize) return null + const allowX = allowResize.includes('x') + const allowY = allowResize.includes('y') + + const createHandlerProps = (value: string) => { + return { + [designerRef.value.props.nodeResizeHandlerAttrName!]: value, + class: { + [prefixRef.value]: true, + [value]: true + } + } + } + const handlerProps = { + xStart: createHandlerProps('x-start'), + xEnd: createHandlerProps('x-end'), + yStart: createHandlerProps('y-start'), + yEnd: createHandlerProps('y-end') + } + return ( + + {allowX &&
} + {allowX &&
} + {allowY &&
} + {allowY &&
} +
+ ) + } + } +}) diff --git a/packages/designable/src/widgets/AuxToolWidget/Selection.tsx b/packages/designable/src/widgets/AuxToolWidget/Selection.tsx new file mode 100644 index 0000000..6a2f2f6 --- /dev/null +++ b/packages/designable/src/widgets/AuxToolWidget/Selection.tsx @@ -0,0 +1,105 @@ +import { observer } from '@formily/reactive-vue' +import { FragmentComponent as Fragment } from '@formily/vue' +import type { TreeNode } from '@pind/designable-core' +import { isNum } from '@pind/designable-shared' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { defineComponent, toRef } from 'vue' +import { + useCursor, + useDesigner, + useMoveHelper, + usePrefix, + useSelection, + useTree, + useValidNodeOffsetRect +} from '../../hooks' +import { Helpers } from './Helpers' +import { ResizeHandler } from './ResizeHandler' +import { TranslateHandler } from './TranslateHandler' + +export interface ISelectionBoxProps { + node: TreeNode + showHelpers: boolean +} + +export const SelectionBox = defineComponent({ + name: 'DnSelectionBox', + inheritAttrs: false, + props: ['node', 'showHelpers'], + setup(props, { attrs }) { + const designerRef = useDesigner() + const prefixRef = usePrefix('aux-selection-box') + const innerPrefixRef = usePrefix('aux-selection-box-inner') + const node = toRef(props, 'node') + + const nodeRectRef = useValidNodeOffsetRect(node) + + return () => { + const nodeRect = nodeRectRef.value + const createSelectionStyle = () => { + const baseStyle: Record = { + position: 'absolute', + top: 0, + left: 0, + pointerEvents: 'none', + boxSizing: 'border-box' + } + if (nodeRect) { + baseStyle.transform = `perspective(1px) translate3d(${nodeRect.x}px,${nodeRect.y}px,0)` + baseStyle.height = isNum(nodeRect.height) ? nodeRect.height + 'px' : nodeRect.height + baseStyle.width = isNum(nodeRect.width) ? nodeRect.width + 'px' : nodeRect.width + } + return baseStyle + } + if (!nodeRect) return null + if (!nodeRect.width || !nodeRect.height) return null + + const selectionId = { + [designerRef.value.props.nodeSelectionIdAttrName!]: props.node.id + } + return ( +
+
+ + + {props.showHelpers && } +
+ ) + } + } +}) + +const SelectionComponent = observer( + defineComponent({ + name: 'DnSelection', + setup() { + const selectionRef = useSelection() + const treeRef = useTree() + const cursorRef = useCursor() + const viewportDragonRef = useMoveHelper() + return () => { + if (cursorRef.value.status !== 'NORMAL' && viewportDragonRef.value.touchNode) return null + return ( + + {selectionRef.value.selected.map((id) => { + const node = treeRef.value.findById(id) + if (!node) return + if (node.hidden) return + return ( + + ) + })} + + ) + } + } + }) +) + +export const Selection = composeExport(SelectionComponent, { + displayName: 'Selection' +}) diff --git a/packages/designable/src/widgets/AuxToolWidget/Selector.tsx b/packages/designable/src/widgets/AuxToolWidget/Selector.tsx new file mode 100644 index 0000000..442c66b --- /dev/null +++ b/packages/designable/src/widgets/AuxToolWidget/Selector.tsx @@ -0,0 +1,146 @@ +import type { TreeNode } from '@pind/designable-core' +import { observer } from '@formily/reactive-vue' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { Button } from 'ant-design-vue' +import type { PropType, Ref } from 'vue' +import { defineComponent, onBeforeUnmount, onMounted, ref, unref } from 'vue' +import { useHover, usePrefix, useSelection } from '../../hooks' +import { IconWidget } from '../IconWidget' +import { NodeTitleWidget } from '../NodeTitleWidget' + +const useMouseHover = >( + refInstance: T, + enter?: () => void, + leave?: () => void +) => { + const unmounted = ref(false) + let timer = null + + const onMouseOver = (e: MouseEvent) => { + const target: HTMLElement = e.target as any + clearTimeout(timer) + timer = setTimeout(() => { + if (unmounted.value) return + const result = unref(refInstance) as any + if (result?.contains(target)) { + enter && enter() + } else { + leave && leave() + } + }, 100) + } + + onMounted(() => { + document.addEventListener('mouseover', onMouseOver) + }) + + onBeforeUnmount(() => { + unmounted.value = true + document.removeEventListener('mouseover', onMouseOver) + }) +} + +export interface ISelectorProps { + node: TreeNode +} + +const SelectorComponent = observer( + defineComponent({ + name: 'DnSelector', + props: { node: { type: Object as PropType } }, + setup(props) { + const expand = ref(false) + const setExpand = (value) => { + expand.value = value + } + + const hoverRef = useHover() + const refInstance = ref() + const selectionRef = useSelection() + const prefixRef = usePrefix('aux-selector') + + useMouseHover( + refInstance, + () => { + setExpand(true) + }, + () => { + setExpand(false) + } + ) + + return () => { + const node = props.node + const renderIcon = (node: TreeNode) => { + const icon = node.designerProps.icon + if (icon) { + return + } + if (node === node.root) { + return + } else if (node.designerProps?.droppable) { + return + } + return + } + + const parents = node.getParents() + + const renderMenu = () => { + return ( +
+ {parents.slice(0, 4).map((parent) => { + return ( + + ) + })} +
+ ) + } + + return ( +
+ + {expand.value && renderMenu()} +
+ ) + } + } + }) +) + +export const Selector = composeExport(SelectorComponent, { + displayName: 'Selector' +}) diff --git a/packages/designable/src/widgets/AuxToolWidget/TranslateHandler.tsx b/packages/designable/src/widgets/AuxToolWidget/TranslateHandler.tsx new file mode 100644 index 0000000..bdd7070 --- /dev/null +++ b/packages/designable/src/widgets/AuxToolWidget/TranslateHandler.tsx @@ -0,0 +1,37 @@ +import type { TreeNode } from '@pind/designable-core' +import { defineComponent } from 'vue' +import { useDesigner, usePrefix } from '../../hooks' +import { IconWidget } from '../IconWidget' + +export interface ITranslateHandlerProps { + node: TreeNode +} + +export const TranslateHandler = defineComponent({ + name: 'DnTranslateHandler', + props: ['node'], + setup(props) { + const designerRef = useDesigner() + const prefixRef = usePrefix('aux-node-translate-handler') + + return () => { + const allowTranslate = props.node.allowTranslate() + if (!allowTranslate) return null + + const createHandlerProps = (value: string) => ({ + [designerRef.value.props.nodeTranslateAttrName!]: value, + class: { + [prefixRef.value]: true, + [value]: true + } + }) + + const handlerProps = createHandlerProps('translate') + return ( +
+ +
+ ) + } + } +}) diff --git a/packages/designable/src/widgets/AuxToolWidget/index.tsx b/packages/designable/src/widgets/AuxToolWidget/index.tsx new file mode 100644 index 0000000..b564e5e --- /dev/null +++ b/packages/designable/src/widgets/AuxToolWidget/index.tsx @@ -0,0 +1,96 @@ +// import React, { useEffect, useRef } from 'react' +import { CursorStatus, CursorType } from '@pind/designable-core' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { defineComponent, onBeforeUnmount, ref } from 'vue' +import { useCursor, useDesigner, useOperation, usePrefix, useViewport } from '../../hooks' +import { ResizeHandleType } from '../../simulators/ResponsiveSimulator/handle' +import { Cover } from './Cover' +import { DashedBox } from './DashedBox' +import { FreeSelection } from './FreeSelection' +import { Insertion } from './Insertion' +import { Selection } from './Selection' +import './styles.less' + +const setCursorState = (contentWindow: Window, state: string) => { + const valueRoot = document?.getElementsByTagName?.('html')?.[0] + const root = contentWindow?.document?.getElementsByTagName('html')?.[0] + if (root) { + root.style.cursor = state + } + if (valueRoot) { + valueRoot.style.cursor = state + } +} + +const AuxToolWidgetComponent = defineComponent({ + name: 'DnAuxToolWidget', + props: [], + setup() { + const engineRef = useDesigner() + const viewportRef = useViewport() + const operationRef = useOperation() + const cursorRef = useCursor() + const prefixRef = usePrefix('aux-tool') + const _ref = ref() + + const engineSubs: any[] = [] + + // [engine, viewport] + const cb1 = engineRef.value.subscribeWith('viewport:scroll', () => { + if (viewportRef.value.isIframe && _ref.value) { + _ref.value.style.transform = `perspective(1px) translate3d(${-viewportRef.value + .scrollX}px,${-viewportRef.value.scrollY}px,0)` + } + }) + // [engine, cursor, viewportDragon, viewport, operation] + const cb2 = engineRef.value.subscribeWith(['drag:move', 'drag:stop'], () => { + if (cursorRef.value.status !== CursorStatus.Dragging) { + setCursorState(viewportRef.value.contentWindow, 'default') + } else { + if (cursorRef.value.type === CursorType.Move) { + if (operationRef.value.getDragNodes().length) { + // todo: update cursor will trigger document layout rerender https://bugs.chromium.org/p/chromium/issues/detail?id=664066 + // if (viewportDragon.closestDirection === ClosestPosition.Inner) { + // setCursorState(viewport.contentWindow, 'copy') + // } else { + setCursorState(viewportRef.value.contentWindow, 'move') + //} + } + } else { + if (cursorRef.value.type === ResizeHandleType.ResizeWidth) { + setCursorState(viewportRef.value.contentWindow, 'ew-resize') + } else if (cursorRef.value.type === ResizeHandleType.ResizeHeight) { + setCursorState(viewportRef.value.contentWindow, 'ns-resize') + } else if (cursorRef.value.type === ResizeHandleType.Resize) { + setCursorState(viewportRef.value.contentWindow, 'nwse-resize') + } else { + setCursorState(viewportRef.value.contentWindow, 'default') + } + } + } + }) + engineSubs.push(cb1, cb2) + + onBeforeUnmount(() => { + engineSubs.map((engineCb) => engineCb()) + }) + + return () => { + if (!viewportRef.value) return null + + return ( +
+ + + + + +
+ ) + } + } +}) + +export const AuxToolWidget = composeExport(AuxToolWidgetComponent, { + displayName: 'AuxToolWidget' +}) diff --git a/packages/designable/src/widgets/AuxToolWidget/styles.less b/packages/designable/src/widgets/AuxToolWidget/styles.less new file mode 100644 index 0000000..11e7d1b --- /dev/null +++ b/packages/designable/src/widgets/AuxToolWidget/styles.less @@ -0,0 +1,274 @@ +@import '../../variables.less'; + +@keyframes dn-animate-slide-to-top { + from { + transform: translateY(-10%); + opacity: 0; + } + + to { + transform: translateY(0); + opacity: 0.8; + } +} + +.@{prefix-cls}-aux-tool { + transform: perspective(1px) translate3d(0, 0, 0); + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + pointer-events: none; + z-index: 2; +} + +.@{prefix-cls}-aux-button { + button { + font-size: 12px !important; + display: flex; + align-items: center; + padding: 0 3px; + height: 20px; + color: var(--dn-aux-selector-btn-color); //#fff + background: var(--dn-aux-selector-btn-bg-color); //#1890ff + border-color: var(--dn-aux-selector-btn-border-color); //#1890ff + + &:hover, + &:focus { + color: var(--dn-aux-selector-btn-hover-color); //#fff + background: var(--dn-aux-selector-btn-hover-bg-color); //#40a9ff + border-color: var(--dn-aux-selector-btn-hover-border-color); //#40a9ff + } + + &:active { + color: var(--dn-aux-selector-btn-active-color); //#fff + background: var(--dn-aux-selector-btn-active-bg-color); //#096dd9 + border-color: var(--dn-aux-selector-btn-active-border-color); //#096dd9 + } + } +} + +.@{prefix-cls}-aux-cover-rect { + &.dragging { + background-color: var(--dn-aux-cover-rect-dragging-color); + } + + &.dropping { + background-color: var(--dn-aux-cover-rect-dropping-color); + } +} + +.@{prefix-cls}-aux-free-selection { + background-color: var(--dn-aux-free-selection-background-color); + border-color: var(--dn-aux-free-selection-border-color); +} + +.@{prefix-cls}-aux-helpers { + position: absolute; + pointer-events: all; + z-index: 10; + user-select: none; + + .dn-aux-button(); + + &.bottom-right { + top: 100%; + right: 0; + } + + &.bottom-left { + top: 100%; + left: 0; + } + + &.bottom-center { + top: 100%; + left: 50%; + transform: translateX(-50%); + } + + &.inner-top-right { + top: -2px; + right: 2px; + } + + &.inner-top-left { + top: -2px; + left: 2px; + } + + &.inner-top-center { + top: -2px; + right: 2px; + } + + &.inner-bottom-right { + bottom: -2px; + right: 2px; + } + + &.inner-bottom-left { + bottom: -2px; + left: 2px; + } + + &.inner-bottom-center { + bottom: -2px; + right: 2px; + } + + &.top-right { + bottom: 100%; + right: 0; + } + + &.top-left { + bottom: 100%; + left: 0; + } + + &.top-center { + bottom: 100%; + left: 50%; + transform: translateX(-50%); + } + + button { + span { + transform: scale(0.9); + margin-left: 2px; + + &.@{prefix-cls}-icon { + transform: scale(1); + margin-left: 0; + } + } + } + + &-content { + display: flex; + flex-wrap: nowrap; + white-space: nowrap; + + button { + font-size: 12px !important; + display: flex; + align-items: center; + padding: 0 3px; + height: 20px; + } + + & > * { + margin-top: 4px; + margin-bottom: 4px; + margin-left: 2px; + + &:first-child { + margin-left: 0; + } + } + } +} + +.@{prefix-cls}-aux-insertion { + background-color: var(--dn-aux-insertion-color); +} + +.@{prefix-cls}-aux-dashed-box { + border: 1px dashed var(--dn-aux-dashed-box-color); + + &-title { + color: var(--dn-aux-dashed-box-title-color); + } +} + +.@{prefix-cls}-aux-selection-box { + border: 2px solid var(--dn-aux-selection-box-border-color); + position: relative; + pointer-events: none; + + &-inner { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + } + + &-title { + color: var(--dn-aux-selection-box-color); + } +} + +.@{prefix-cls}-aux-selector { + .dn-aux-button(); + + &-menu { + margin-top: -4px; + animation: dn-animate-slide-to-top 0.2s; + opacity: 0.8; + + button { + font-size: 12px !important; + display: flex; + align-items: center; + padding: 0 3px; + height: 20px; + margin-top: 2px; + } + } +} + +.@{prefix-cls}-aux-drag-handler { + cursor: move !important; +} + +.@{prefix-cls}-aux-node-resize-handler { + position: absolute; + width: 8px; + height: 8px; + pointer-events: all; + background-color: var(--dn-brand-color); + + &.x-start { + left: 0; + top: 50%; + transform: translate(calc(-50% - 1px), -50%); + cursor: ew-resize; + } + + &.x-end { + left: 100%; + top: 50%; + transform: translate(calc(-50% + 1px), -50%); + cursor: ew-resize; + } + + &.y-start { + left: 50%; + top: 0; + transform: translate(-50%, calc(-50% - 1px)); + cursor: ns-resize; + } + + &.y-end { + left: 50%; + top: 100%; + transform: translate(-50%, calc(-50% + 1px)); + cursor: ns-resize; + } +} + +.@{prefix-cls}-aux-node-translate-handler { + position: absolute; + display: flex; + align-items: center; + justify-content: center; + border-radius: 2px; + width: 40px; + height: 20px; + background-color: var(--dn-brand-color); + opacity: 0.5; + pointer-events: all; +} diff --git a/packages/designable/src/widgets/ComponentTreeWidget/index.tsx b/packages/designable/src/widgets/ComponentTreeWidget/index.tsx new file mode 100644 index 0000000..4221989 --- /dev/null +++ b/packages/designable/src/widgets/ComponentTreeWidget/index.tsx @@ -0,0 +1,109 @@ +import type { TreeNode } from '@pind/designable-core' +import { GlobalRegistry } from '@pind/designable-core' +import { observer } from '@formily/reactive-vue' +import { FragmentComponent as Fragment } from '@formily/vue' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import type { PropType } from 'vue' +import { defineComponent, provide, ref, toRef } from 'vue' +import { DesignerComponentsSymbol, TreeNodeSymbol } from '../../context' +import { useComponents, useDesigner, usePrefix, useTree } from '../../hooks' +import type { IDesignerComponents } from '../../types' +import './styles.less' + +export interface IComponentTreeWidgetProps { + components: IDesignerComponents +} + +export interface ITreeNodeWidgetProps { + node: TreeNode +} + +export const TreeNodeWidgetComponent = defineComponent({ + name: 'DnTreeNodeWidget', + props: { + node: Object as PropType + }, + setup(props) { + const designerRef = useDesigner(props.node?.designerProps?.effects) + const componentsRef = useComponents() + + provide(TreeNodeSymbol, toRef(props, 'node')) + + return () => { + const node = props.node + const renderChildren = () => { + if (node?.designerProps?.selfRenderChildren) return [] + return node?.children?.map((child) => { + return + }) + } + + // may need to change + const renderProps = (extendsProps: any = {}) => { + return { + ...node.designerProps?.defaultProps, + ...extendsProps, + ...node.props, + ...node.designerProps?.getComponentProps?.(node) + } + } + + const renderComponent = () => { + const componentName = node.componentName + const Component = componentsRef.value?.[componentName] + + const dataId = {} + if (Component) { + if (designerRef.value) { + dataId[designerRef.value?.props?.nodeIdAttrName] = node.id + } + const { style, ...attrs } = renderProps(dataId) + return ( + + {renderChildren()} + + ) + } else { + if (node?.children?.length) { + return {renderChildren()} + } + } + } + if (!node) return null + if (node.hidden) return null + return renderComponent() + } + } +}) + +export const TreeNodeWidget = observer(TreeNodeWidgetComponent) + +export const ComponentTreeWidgetComponent = observer( + defineComponent({ + name: 'DnComponentTreeWidget', + props: { components: [Object] }, + setup(props) { + const treeRef = useTree() + const prefixRef = usePrefix('component-tree') + const designerRef = useDesigner() + const dataId = {} + + GlobalRegistry.registerDesignerBehaviors(props.components as IDesignerComponents) + provide(DesignerComponentsSymbol, ref(toRef(props, 'components'))) + if (designerRef.value && treeRef.value) { + dataId[designerRef.value?.props?.nodeIdAttrName] = treeRef.value.id + } + return () => { + return ( +
+ +
+ ) + } + } + }) +) + +export const ComponentTreeWidget = composeExport(ComponentTreeWidgetComponent, { + displayName: 'ComponentTreeWidget' +}) diff --git a/packages/designable/src/widgets/ComponentTreeWidget/styles.less b/packages/designable/src/widgets/ComponentTreeWidget/styles.less new file mode 100644 index 0000000..7f5bfc9 --- /dev/null +++ b/packages/designable/src/widgets/ComponentTreeWidget/styles.less @@ -0,0 +1,7 @@ +@import '../../variables.less'; + +.@{prefix-cls}-component-tree { + position: relative; + min-height: 100%; + z-index: 1; +} diff --git a/packages/designable/src/widgets/DesignerToolsWidget/index.tsx b/packages/designable/src/widgets/DesignerToolsWidget/index.tsx new file mode 100644 index 0000000..8da3bf2 --- /dev/null +++ b/packages/designable/src/widgets/DesignerToolsWidget/index.tsx @@ -0,0 +1,217 @@ +import { CursorType, ScreenType } from '@pind/designable-core' +import { observer } from '@formily/reactive-vue' +import { FragmentComponent as Fragment } from '@formily/vue' +import { Button, InputNumber } from 'ant-design-vue' +import type { PropType } from 'vue' +import { defineComponent, reactive } from 'vue' +import { useCursor, useHistory, usePrefix, useScreen, useWorkbench } from '../../hooks' +import { useStyle } from '../../shared' +import { IconWidget } from '../IconWidget' +import './styles.less' + +type DesignerToolsType = 'HISTORY' | 'CURSOR' | 'SCREEN_TYPE' + +export type IDesignerToolsWidgetProps = { + use?: DesignerToolsType[] +} + +const DesignerToolsWidgetComponent = defineComponent({ + name: 'DnDesignerToolsWidget', + props: { + use: { + type: Array as PropType, + default: () => ['HISTORY', 'CURSOR', 'SCREEN_TYPE'] + } + }, + setup(props) { + const screenRef = useScreen() + const cursorRef = useCursor() + const workbenchRef = useWorkbench() + const historyRef = useHistory() + const sizeRef = reactive<{ width?: any; height?: any }>({ + width: null, + height: null + }) + const prefixRef = usePrefix('designer-tools') + const style = useStyle() + + return () => { + const renderResponsiveController = () => { + if (!props.use.includes('SCREEN_TYPE')) return null + if (screenRef.value.type !== ScreenType.Responsive) return null + return ( + + { + sizeRef.width = value + }} + onPressEnter={() => { + screenRef.value.setSize(sizeRef.width, screenRef.value.height) + }} + /> + + { + sizeRef.height = value + }} + onPressEnter={() => { + screenRef.value.setSize(screenRef.value.width, sizeRef.height) + }} + /> + {(screenRef.value.width !== '100%' || screenRef.value.height !== '100%') && ( + + )} + + ) + } + + const renderScreenTypeController = () => { + if (!props.use.includes('SCREEN_TYPE')) return null + return ( + + + + + + ) + } + + const renderMobileController = () => { + if (!props.use.includes('SCREEN_TYPE')) return null + if (screenRef.value.type !== ScreenType.Mobile) return + return ( + + ) + } + + const renderHistoryController = () => { + if (!props.use.includes('HISTORY')) return null + return ( + + + + + ) + } + const renderCursorController = () => { + if (workbenchRef.value.type !== 'DESIGNABLE') return null + if (!props.use.includes('CURSOR')) return null + const cursor = cursorRef.value + return ( + + + + + ) + } + return ( +
+ {renderHistoryController()} + {renderCursorController()} + {renderScreenTypeController()} + {renderMobileController()} + {renderResponsiveController()} +
+ ) + } + } +}) +export const DesignerToolsWidget = observer(DesignerToolsWidgetComponent) diff --git a/packages/designable/src/widgets/DesignerToolsWidget/styles.less b/packages/designable/src/widgets/DesignerToolsWidget/styles.less new file mode 100644 index 0000000..5e8ac63 --- /dev/null +++ b/packages/designable/src/widgets/DesignerToolsWidget/styles.less @@ -0,0 +1,29 @@ +@import '../../variables.less'; + +.@{prefix-cls}-designer-tools { + display: flex; + align-items: center; + + .@{ant-prefix}-input-number { + font-size: 12px !important; + background: var(--dn-toolbar-input-bg-color) !important; + border-color: var(--dn-toolbar-input-border-color) !important; + color: var(--dn-toolbar-input-color) !important; + + .@{ant-prefix}-input-number-handler-wrap, + .@{ant-prefix}-input-number-handler { + background: var(--dn-toolbar-input-handler-bg-color) !important; + border-color: var(--dn-toolbar-input-border-color) !important; + color: var(--dn-toolbar-input-color) !important; + } + + .@{ant-prefix}-input-number-handler-down-inner, + .@{ant-prefix}-input-number-handler-up-inner { + color: var(--dn-toolbar-input-color) !important; + } + + &:hover { + border-color: var(--dn-toolbar-input-hover-border-color) !important; + } + } +} diff --git a/packages/designable/src/widgets/DroppableWidget/index.tsx b/packages/designable/src/widgets/DroppableWidget/index.tsx new file mode 100644 index 0000000..a7a3644 --- /dev/null +++ b/packages/designable/src/widgets/DroppableWidget/index.tsx @@ -0,0 +1,73 @@ +import type { TreeNode } from '@pind/designable-core' +import { isStr } from '@pind/designable-shared' +import { observer } from '@formily/reactive-vue' +import type { PropType } from 'vue' +import { defineComponent } from 'vue' +import { useNodeIdProps, useTreeNode } from '../../hooks' +import type { INodeActionsWidgetActionProps } from '../NodeActionsWidget' +import { NodeActionsWidget } from '../NodeActionsWidget' +import { NodeTitleWidget } from '../NodeTitleWidget' +import './styles.less' + +export interface IDroppableWidgetProps { + node?: TreeNode + actions?: INodeActionsWidgetActionProps[] + height?: number + placeholder?: boolean + hasChildren?: boolean +} + +export const DroppableWidget = observer( + defineComponent({ + name: 'DnDroppableWidget', + inheritAttrs: false, + props: { + node: { type: Object as PropType }, + height: {}, + actions: { + type: Array as PropType> + }, + placeholder: { type: Boolean as PropType, default: true }, + hasChildren: { type: Boolean as PropType, default: undefined } + }, + setup(props, { slots }) { + const nodeRef = useTreeNode() + const nodeIdRef = useNodeIdProps(props.node) + + return () => { + const target = props.node ?? nodeRef.value + if (!target) return + const children = slots.default?.() + const hasChildren = props.hasChildren ?? (target.children?.length > 0 && children) + return ( +
+ {hasChildren ? ( + children + ) : props.placeholder ? ( +
+ +
+ ) : ( + children + )} + {props.actions?.length ? ( + + {props.actions.map((action, key) => ( + + ))} + + ) : null} +
+ ) + } + } + }) + // ({ node, actions, height, style, className, ...props }) => { + + // } +) diff --git a/packages/designable/src/widgets/DroppableWidget/styles.less b/packages/designable/src/widgets/DroppableWidget/styles.less new file mode 100644 index 0000000..d03f16a --- /dev/null +++ b/packages/designable/src/widgets/DroppableWidget/styles.less @@ -0,0 +1,11 @@ +.dn-droppable-placeholder { + height: 60px; + background-color: var(--dn-droppable-bg-color); + border: 1px dashed var(--dn-droppable-border-color); + display: flex; + align-items: center; + justify-content: center; + color: var(--dn-droppable-color); + font-weight: lighter; + font-size: 13px; +} diff --git a/packages/designable/src/widgets/EmptyWidget/index.tsx b/packages/designable/src/widgets/EmptyWidget/index.tsx new file mode 100644 index 0000000..2c70566 --- /dev/null +++ b/packages/designable/src/widgets/EmptyWidget/index.tsx @@ -0,0 +1,58 @@ +import { defineComponent } from 'vue' +import { observer } from '@formily/reactive-vue' +import { useTree, usePrefix } from '../../hooks' +import { IconWidget } from '../IconWidget' +import './styles.less' + +export interface IEmptyWidgetProps { + dragTipsDirection?: 'left' | 'right' +} + +const EmptyWidgetComponent = defineComponent({ + name: 'DnEmptyWidget', + props: { + dragTipsDirection: { type: String, default: 'left' } + }, + setup(props, { slots }) { + const treeRef = useTree() + const prefixRef = usePrefix('empty') + + return () => { + const renderEmpty = () => { + return ( +
+
+ + +
+
+
+ Selection + Click / + + Click / + A +
+
+ Copy + C / Paste + V +
+
+ Delete +
+
+
+ ) + } + + if (!treeRef.value?.children?.length) { + return
{slots.default ? slots.default() : renderEmpty()}
+ } + return null + } + } +}) +export const EmptyWidget = observer(EmptyWidgetComponent) diff --git a/packages/designable/src/widgets/EmptyWidget/styles.less b/packages/designable/src/widgets/EmptyWidget/styles.less new file mode 100644 index 0000000..e37d3cf --- /dev/null +++ b/packages/designable/src/widgets/EmptyWidget/styles.less @@ -0,0 +1,27 @@ +@import '../../variables.less'; + +.@{prefix-cls}-empty { + transform: perspective(1px) translate3d(0, 0, 0); + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + height: 100%; + width: 100%; + pointer-events: none; + display: flex; + align-items: center; + justify-content: center; + background: var(--dn-empty-bg-color); + .animations { + display: flex; + flex-wrap: wrap; + justify-content: center; + } + .hotkeys-list { + text-align: center; + line-height: 30px; + color: #888; + } +} diff --git a/packages/designable/src/widgets/GhostWidget/index.tsx b/packages/designable/src/widgets/GhostWidget/index.tsx new file mode 100644 index 0000000..75a5add --- /dev/null +++ b/packages/designable/src/widgets/GhostWidget/index.tsx @@ -0,0 +1,73 @@ +import { defineComponent, ref, unref, onBeforeUnmount } from 'vue' +import { CursorStatus } from '@pind/designable-core' +import { autorun, observe } from '@formily/reactive' +import { observer } from '@formily/reactive-vue' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { useCursor, usePrefix, useDesigner } from '../../hooks' +import { NodeTitleWidget } from '../NodeTitleWidget' +import './styles.less' + +const GhostWidgetComponent = defineComponent({ + name: 'DnGhostWidget', + setup() { + const designerRef = useDesigner() + const cursorRef = useCursor() + const refInstance = ref() + const prefixRef = usePrefix('ghost') + + observe(cursorRef.value, () => { + const cursor = unref(cursorRef) + if (cursor.status === CursorStatus.Dragging) { + refInstance.value = document.querySelector('#GhostWidget') + } else { + refInstance.value = null + } + }) + + // [designer, cursor] + const dispose = autorun(() => { + const cursor = unref(cursorRef) + const ref = refInstance + const transform = `perspective(1px) translate3d(${cursor.position?.topClientX - 18}px,${ + cursor.position?.topClientY - 12 + }px,0) scale(0.8)` + if (!ref.value) return + ref.value.style.transform = transform + }) + + onBeforeUnmount(() => { + dispose && dispose() + }) + + return () => { + const designer = unref(designerRef) + const cursor = unref(cursorRef) + + const draggingNodes = designer.findMovingNodes() + const firstNode = draggingNodes[0] + + const renderNodes = () => { + return ( + + + {draggingNodes.length > 1 ? '...' : ''} + + ) + } + if (!firstNode) return null + return cursor.status === CursorStatus.Dragging ? ( +
+ {renderNodes()} +
+ ) : null + } + } +}) + +export const GhostWidget = composeExport(observer(GhostWidgetComponent), { + displayName: 'GhostWidget' +}) diff --git a/packages/designable/src/widgets/GhostWidget/styles.less b/packages/designable/src/widgets/GhostWidget/styles.less new file mode 100644 index 0000000..8fa6d54 --- /dev/null +++ b/packages/designable/src/widgets/GhostWidget/styles.less @@ -0,0 +1,20 @@ +@import '../../variables.less'; + +.@{prefix-cls}-ghost { + padding-left: 25px; + padding-right: 15px; + height: 30px; + display: flex; + justify-content: center; + align-items: center; + position: fixed; + color: var(--dn-ghost-color); + font-size: 12px; + z-index: 9999; + border-radius: 50px; + background-color: var(--dn-ghost-bg-color); + pointer-events: none; + left: 0; + top: 0; + transform: translate3d(0, 0, 0); +} diff --git a/packages/designable/src/widgets/HistoryWidget/index.tsx b/packages/designable/src/widgets/HistoryWidget/index.tsx new file mode 100644 index 0000000..6b42381 --- /dev/null +++ b/packages/designable/src/widgets/HistoryWidget/index.tsx @@ -0,0 +1,53 @@ +import format from 'dateformat' +import { defineComponent } from 'vue' +import { observer } from '@formily/reactive-vue' +import { usePrefix, useWorkbench } from '../../hooks' +import { TextWidget } from '../TextWidget' +import './styles.less' + +export const HistoryWidget = observer( + defineComponent({ + name: 'DnHistory', + props: [], + setup() { + const workbenchRef = useWorkbench() + const prefixRef = usePrefix('history') + + return () => { + const currentWorkspace = + workbenchRef.value?.activeWorkspace || workbenchRef.value?.currentWorkspace + if (!currentWorkspace) return null + return ( +
+ {currentWorkspace.history.list().map((item, index) => { + const type = item.type || 'default_state' + const token = type.replace(/\:/g, '_') + return ( +
{ + currentWorkspace.history.goTo(index) + }} + > + + + + + {' '} + {format(item.timestamp, 'yy/mm/dd HH:MM:ss')} + +
+ ) + })} +
+ ) + } + } + }) +) diff --git a/packages/designable/src/widgets/HistoryWidget/styles.less b/packages/designable/src/widgets/HistoryWidget/styles.less new file mode 100644 index 0000000..c5b62c7 --- /dev/null +++ b/packages/designable/src/widgets/HistoryWidget/styles.less @@ -0,0 +1,23 @@ +@import '../../variables.less'; + +.@{prefix-cls}-history { + &-item { + display: flex; + justify-content: space-between; + min-height: 32px; + padding: 0 10px; + align-items: center; + cursor: pointer; + color: var(--dn-outline-tree-node-header-color); + &-timestamp { + font-size: 10px; + } + &:hover { + background-color: var(--dn-panel-active-bg-color); + } + + &.active { + background-color: var(--dn-panel-active-bg-color); + } + } +} diff --git a/packages/designable/src/widgets/IconWidget/index.tsx b/packages/designable/src/widgets/IconWidget/index.tsx new file mode 100644 index 0000000..c26882a --- /dev/null +++ b/packages/designable/src/widgets/IconWidget/index.tsx @@ -0,0 +1,193 @@ +import { observer } from '@formily/reactive-vue' +import { isObj, isPlainObj, isStr } from '@pind/designable-shared' +import { composeExport, createContext, useContext } from '@formily/antdv/esm/__builtins__' +import type { TooltipProps } from 'ant-design-vue' +import { Tooltip } from 'ant-design-vue' +import type { PropType, VNode } from 'vue' +import { defineComponent, onBeforeUnmount, onMounted, ref, unref } from 'vue' +import { usePrefix, useRegistry, useTheme } from '../../hooks' +import { cloneElement, isVNode, useStyle } from '../../shared/util' +import './styles.less' + +const IconContext = createContext(null) + +const isNumSize = (val: any) => /^[\d.]+$/.test(val) + +export interface IconProviderProps { + tooltip?: boolean +} + +export interface IShadowSVGProps { + content?: string + width?: number | string + height?: number | string +} + +export interface IIconWidgetProps extends HTMLElement { + tooltip?: Partial + infer: string | VNode | { shadow: string } + size?: number | string +} + +const IconWidgetInner = observer( + defineComponent({ + name: 'DnIconWidget', + emits: ['click'], + props: { + tooltip: { + type: [Object, String] as PropType + }, + infer: { + type: [String, Function, Object] as PropType + }, + size: { type: [Number, String] as PropType }, + onClick: { type: Function } + }, + setup(props, { attrs: _attrs, emit }) { + const themeRef = useTheme() + const IconContextRef = useContext(IconContext) + const registry = useRegistry() + const prefixRef = usePrefix('icon') + + return () => { + const size = isNumSize(props.size) ? `${props.size}px` : props.size || '1em' + const attrs = _attrs + const style = useStyle() + const height = style?.height || size + const width = style?.width || size + + const takeIcon = (infer: any) => { + const theme = unref(themeRef) + if (isStr(infer)) { + const fined = registry.getDesignerIcon(infer) + if (fined) { + return takeIcon(fined) + } + return + } else if (typeof infer?.render === 'function') { + const InferIcon = infer + return ( + + ) + } else if (isVNode(infer)) { + if (infer.tag === 'svg') { + const Component = cloneElement(infer, { + height, + width, + fill: 'currentColor', + viewBox: infer.data?.attrs?.viewBox || '0 0 1024 1024', + focusable: 'false', + 'aria-hidden': 'true' + }) + return Component + } else if (infer.tag === 'path' || infer.tag === 'g') { + return ( + + ) + } else if (infer.componentOptions?.propsData?.content) { + // 判断是不是 shadowSVG === IconWidget.ShadowSVG 写死了看看后续怎么修改 + return ( + + ) + } + return infer + } else if (typeof infer === 'function') { + const InferIcon = infer + return + } else if (isPlainObj(infer)) { + if (infer[theme]) { + return takeIcon(infer[theme]) + } + } + } + + const renderTooltips = (children: any) => { + const IconContext = unref(IconContextRef) + if (!isStr(props.infer) && IconContext?.tooltip) return children + const tooltip = props.tooltip || registry.getDesignerMessage(`icons.${props.infer}`) + if (tooltip) { + const props = isObj(tooltip) ? tooltip : { title: tooltip } + return {children} + } + return children + } + return renderTooltips( + emit('click')} + > + {takeIcon(props.infer)} + + ) + } + } + }) +) + +const ShadowSVG = defineComponent({ + props: { + width: [Number, String], + height: [Number, String], + content: String + }, + setup(props: IShadowSVGProps) { + const refInstance = ref(null) + const width = isNumSize(props.width) ? `${props.width}px` : props.width + const height = isNumSize(props.height) ? `${props.height}px` : props.height + + onMounted(() => { + if (refInstance.value) { + const root = refInstance.value.attachShadow({ + mode: 'open' + }) + root.innerHTML = `${props.content}` + } + }) + + onBeforeUnmount(() => { + // TODO::报错 + // if (!refInstance.value) return + // refInstance.value.attachShadow({ + // mode: 'closed', + // }) + }) + + return () =>
+ } +}) + +const Provider = defineComponent({ + props: { tooltip: Boolean }, + setup(props: IconProviderProps, { slots }) { + return () => {slots.default?.()} + } +}) + +export const IconWidget = composeExport(IconWidgetInner, { + ShadowSVG, + Provider +}) diff --git a/packages/designable/src/widgets/IconWidget/styles.less b/packages/designable/src/widgets/IconWidget/styles.less new file mode 100644 index 0000000..e0e55c9 --- /dev/null +++ b/packages/designable/src/widgets/IconWidget/styles.less @@ -0,0 +1,17 @@ +@import '../../variables.less'; + +.@{prefix-cls}-icon { + display: inline-block; + color: inherit; + font-style: normal; + line-height: 0; + text-align: center; + text-transform: none; + vertical-align: -0.125em; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + svg { + pointer-events: none; + } +} diff --git a/packages/designable/src/widgets/NodeActionsWidget/index.tsx b/packages/designable/src/widgets/NodeActionsWidget/index.tsx new file mode 100644 index 0000000..dc589d6 --- /dev/null +++ b/packages/designable/src/widgets/NodeActionsWidget/index.tsx @@ -0,0 +1,76 @@ +import { observer } from '@formily/reactive-vue' +import { Space } from '@formily/antdv' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { Button } from 'ant-design-vue' +import type { VNode } from 'vue' +import { defineComponent } from 'vue' +import { usePrefix, useSelected, useTreeNode } from '../../hooks' +import { IconWidget } from '../IconWidget' +import { TextWidget } from '../TextWidget' +import './styles.less' + +export interface INodeActionsWidgetProps { + activeShown?: boolean +} + +export interface INodeActionsWidgetActionProps { + title: VNode + icon?: VNode +} + +const NodeActionsWidgetComponent = observer( + defineComponent({ + name: 'DnNodeActionsWidget', + props: ['activeShown'], + setup(props, { slots }) { + const nodeRef = useTreeNode() + const prefixRef = usePrefix('node-actions') + const selectedRef = useSelected() + return () => { + if (selectedRef.value.indexOf(nodeRef.value.id) === -1 && props.activeShown) return null + return ( +
+
+ + {slots.default?.()} + +
+
+ ) + } + } + }) +) + +const ActionComponent = defineComponent({ + name: 'DnAction', + props: ['icon', 'title', 'onClick'], + emits: ['click'], + setup(props, { attrs, emit }) { + const prefixRef = usePrefix('node-actions-item') + return () => { + return ( + + ) + } + } +}) + +export const NodeActionsWidget = composeExport(NodeActionsWidgetComponent, { + Action: ActionComponent +}) diff --git a/packages/designable/src/widgets/NodeActionsWidget/styles.less b/packages/designable/src/widgets/NodeActionsWidget/styles.less new file mode 100644 index 0000000..d420595 --- /dev/null +++ b/packages/designable/src/widgets/NodeActionsWidget/styles.less @@ -0,0 +1,61 @@ +@import '../../variables.less'; + +.dn-node-actions { + display: flex; + align-items: center; + justify-content: center; + width: 100%; + overflow: hidden; + padding-top: 8px; + padding-bottom: 8px; + &-content { + position: relative; + padding: 0 20px; + display: flex; + align-items: center; + line-height: 1; + &::before { + position: absolute; + content: ''; + display: block; + height: 0; + width: 300%; + top: 50%; + border-bottom: 1px dashed @border-color-split; + right: 100%; + } + &::after { + position: absolute; + content: ''; + display: block; + height: 0; + width: 300%; + top: 50%; + border-bottom: 1px dashed @border-color-split; + left: 100%; + } + // a { + // color: @text-color-secondary; + // &:hover { + // color: @primary-color; + // } + // } + button { + color: @text-color-secondary; + &:hover { + color: @primary-color; + } + } + } + &-item { + &-text { + font-size: 10px; + display: flex; + align-items: center; + line-height: 1; + .dn-icon { + margin-right: 6px; + } + } + } +} diff --git a/packages/designable/src/widgets/NodePathWidget/index.tsx b/packages/designable/src/widgets/NodePathWidget/index.tsx new file mode 100644 index 0000000..b3770d5 --- /dev/null +++ b/packages/designable/src/widgets/NodePathWidget/index.tsx @@ -0,0 +1,58 @@ +import { defineComponent, toRef } from 'vue' +import { Breadcrumb } from 'ant-design-vue' +import { FragmentComponent as Fragment } from '@formily/vue' +import { useSelectedNode, useSelection, usePrefix, useHover } from '../../hooks' +import { IconWidget } from '../IconWidget' +import { NodeTitleWidget } from '../NodeTitleWidget' +import './styles.less' + +export interface INodePathWidgetProps { + workspaceId?: string + maxItems?: number +} + +export const NodePathWidget = defineComponent({ + name: 'DnNodePathWidget', + props: ['workspaceId', 'maxItems'], + setup(props) { + const workspaceId = toRef(props, 'workspaceId') + const selectedRef = useSelectedNode(workspaceId) + const selectionRef = useSelection(workspaceId) + const hoverRef = useHover(workspaceId) + const prefixRef = usePrefix('node-path') + + return () => { + if (!selectedRef.value) return + const maxItems = props.maxItems ?? 3 + const nodes = selectedRef.value + .getParents() + .slice(0, maxItems - 1) + .reverse() + .concat(selectedRef.value) + return ( + + {nodes.map((node, key) => { + return ( + + {key === 0 && } + { + hoverRef.value.setHover(node) + }} + onClick={(e) => { + e.stopPropagation() + e.preventDefault() + selectionRef.value.select(node) + }} + > + + + + ) + })} + + ) + } + } +}) diff --git a/packages/designable/src/widgets/NodePathWidget/styles.less b/packages/designable/src/widgets/NodePathWidget/styles.less new file mode 100644 index 0000000..26f5249 --- /dev/null +++ b/packages/designable/src/widgets/NodePathWidget/styles.less @@ -0,0 +1,16 @@ +// @import '~antd/lib/style/themes/default.less'; +@border-color-split: #f0f0f0; +.dn-node-path { + padding: 4px 10px !important; + border-bottom: 1px solid @border-color-split; + .dn-icon { + font-size: 11px; + } + // .@{ant-prefix}-breadcrumb-separator { + // margin: 0 4px !important; + // } + + a { + font-size: 12px; + } +} diff --git a/packages/designable/src/widgets/NodeTitleWidget/index.tsx b/packages/designable/src/widgets/NodeTitleWidget/index.tsx new file mode 100644 index 0000000..06bf4c9 --- /dev/null +++ b/packages/designable/src/widgets/NodeTitleWidget/index.tsx @@ -0,0 +1,28 @@ +import { defineComponent } from 'vue' +import { observer } from '@formily/reactive-vue' +import { FragmentComponent as Fragment } from '@formily/vue' + +import type { TreeNode } from '@pind/designable-core' + +export interface INodeTitleWidgetProps { + node: TreeNode +} + +const NodeTitleWidgetComponent = defineComponent({ + name: 'DnNodeTitleWidget', + props: ['node'], + setup(props) { + const takeNode = () => { + const node = props.node + if (node.componentName === '$$ResourceNode$$') { + return node.children[0] + } + return node + } + return () => { + const node = takeNode() + return {node.getMessage('title') || node.componentName} + } + } +}) +export const NodeTitleWidget = observer(NodeTitleWidgetComponent) diff --git a/packages/designable/src/widgets/OutlineWidget/Insertion.tsx b/packages/designable/src/widgets/OutlineWidget/Insertion.tsx new file mode 100644 index 0000000..6a95dc4 --- /dev/null +++ b/packages/designable/src/widgets/OutlineWidget/Insertion.tsx @@ -0,0 +1,78 @@ +import { observer } from '@formily/reactive-vue' +import { ClosestPosition } from '@pind/designable-core' +import { isNum } from '@pind/designable-shared' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { defineComponent, toRef } from 'vue' +import { useMoveHelper, usePrefix } from '../../hooks' + +export interface IInsertionProps { + workspaceId?: string +} + +const InsertionComponent = defineComponent({ + name: 'DnInsertion', + props: ['workspaceId'], + setup(props) { + const workspaceId = toRef(props, 'workspaceId') + + const moveHelperRef = useMoveHelper(workspaceId) + const prefixRef = usePrefix('outline-tree-insertion') + return () => { + const moveHelper = moveHelperRef.value + const prefix = prefixRef.value + const createInsertionStyle = () => { + const closestDirection = moveHelper.viewportClosestDirection + const closestRect = moveHelper.viewportClosestOffsetRect + const baseStyle: Record = { + position: 'absolute', + transform: 'perspective(1px) translate3d(0,0,0)', + top: 0, + left: 0 + } + if (!closestRect) return baseStyle + if ( + closestDirection === ClosestPosition.After || + closestDirection === ClosestPosition.InnerAfter || + closestDirection === ClosestPosition.Under || + closestDirection === ClosestPosition.ForbidAfter || + closestDirection === ClosestPosition.ForbidInnerAfter || + closestDirection === ClosestPosition.ForbidUnder + ) { + baseStyle.width = closestRect.width + baseStyle.height = 2 + baseStyle.transform = `perspective(1px) translate3d(${closestRect.x}px,${ + closestRect.y + closestRect.height - 2 + }px,0)` + } else if ( + closestDirection === ClosestPosition.Before || + closestDirection === ClosestPosition.InnerBefore || + closestDirection === ClosestPosition.Upper || + closestDirection === ClosestPosition.ForbidBefore || + closestDirection === ClosestPosition.ForbidInnerBefore || + closestDirection === ClosestPosition.ForbidUpper + ) { + baseStyle.width = closestRect.width + baseStyle.height = 2 + baseStyle.transform = `perspective(1px) translate3d(${closestRect.x}px,${closestRect.y}px,0)` + } + if (closestDirection.includes('FORBID')) { + baseStyle.backgroundColor = 'red' + } else { + baseStyle.backgroundColor = '' + } + Object.keys(baseStyle).forEach((key) => { + const value = baseStyle[key] + isNum(value) && (baseStyle[key] = value + 'px') + }) + return baseStyle + } + if (!moveHelper?.closestNode) return null + + return
+ } + } +}) + +export const Insertion = composeExport(observer(InsertionComponent), { + displayName: 'Insertion' +}) diff --git a/packages/designable/src/widgets/OutlineWidget/OutlineNode.tsx b/packages/designable/src/widgets/OutlineWidget/OutlineNode.tsx new file mode 100644 index 0000000..33b80f8 --- /dev/null +++ b/packages/designable/src/widgets/OutlineWidget/OutlineNode.tsx @@ -0,0 +1,196 @@ +import { autorun } from '@formily/reactive' +import { observer } from '@formily/reactive-vue' +import type { TreeNode } from '@pind/designable-core' +import { ClosestPosition, CursorStatus, DragMoveEvent } from '@pind/designable-core' +import { isFn } from '@pind/designable-shared' +import { defineComponent, onBeforeUnmount, onMounted, ref, toRef } from 'vue' +import { useContext } from '../../context' +import { useCursor, useDesigner, useMoveHelper, usePrefix, useSelection } from '../../hooks' +import { useStyle } from '../../shared/util' +import { IconWidget } from '../IconWidget' +import { NodeTitleWidget } from '../NodeTitleWidget' +import { NodeSymbol } from './context' +import './styles.less' + +export interface IOutlineTreeNodeProps { + node: TreeNode + workspaceId?: string +} + +export const OutlineTreeNode = observer( + defineComponent({ + name: 'DnOutlineTreeNode', + props: ['workspaceId', 'node'], + setup(props) { + const style = useStyle() + + const prefix = usePrefix('outline-tree-node') + const engine = useDesigner() + const refInstance = ref() + const ctx = useContext(NodeSymbol) + const request = ref(null) + const cursor = useCursor() + const workspaceId = toRef(props, 'workspaceId') + + const selection = useSelection(workspaceId) + const moveHelper = useMoveHelper(workspaceId) + + // [node, outlineDragon, cursor] + const unSub = [] + onMounted(() => { + const ref = refInstance + const subCb = engine.value.subscribeTo(DragMoveEvent, () => { + const closestNodeId = moveHelper.value?.closestNode?.id + const closestDirection = moveHelper.value?.outlineClosestDirection + const id = props.node.id + if (!ref.value) return + if (closestNodeId === id && closestDirection === ClosestPosition.Inner) { + if (!ref.value.classList.contains('droppable')) { + ref.value.classList.add('droppable') + } + if (!ref.value.classList.contains('expanded')) { + if (request.value) { + clearTimeout(request.value) + request.value = null + } + request.value = setTimeout(() => { + ref.value.classList.add('expanded') + }, 600) + } + } else { + if (request.value) { + clearTimeout(request.value) + request.value = null + } + if (ref.value.classList.contains('droppable')) { + ref.value.classList.remove('droppable') + } + } + }) + unSub.push(subCb) + //[node, selection] + const subCb2 = autorun(() => { + const selectedIds = selection.value?.selected || [] + const id = props.node.id + if (!ref.value) return + if (selectedIds.includes(id)) { + if (!ref.value.classList.contains('selected')) { + ref.value.classList.add('selected') + } + } else { + if (ref.value.classList.contains('selected')) { + ref.value.classList.remove('selected') + } + } + if (cursor.value.status === CursorStatus.Dragging) { + if (ref.value.classList.contains('selected')) { + ref.value.classList.remove('selected') + } + } + }) + unSub.push(subCb2) + }) + + onBeforeUnmount(() => { + unSub.forEach((cb) => cb()) + }) + + return () => { + const ref = refInstance + const node = props.node + + if (!node) return null + const renderIcon = (node: TreeNode) => { + const icon = node.designerProps.icon + if (icon) { + return + } + if (node === node?.root) { + return + } else if (node.designerProps?.droppable) { + return + } + return + } + + const renderTitle = (node: TreeNode) => { + if (isFn(ctx.value.renderTitle)) return ctx.value.renderTitle(node) + return ( + + + + ) + } + const renderActions = (node: TreeNode) => { + if (isFn(ctx.value.renderActions)) return ctx.value.renderActions(node) + } + return ( +
+
+
+
+
+ {(node?.children?.length > 0 || node === node.root) && ( +
{ + e.preventDefault() + e.stopPropagation() + if (ref.value?.classList?.contains('expanded')) { + ref.value?.classList.remove('expanded') + } else { + ref.value?.classList.add('expanded') + } + }} + > + +
+ )} +
{renderIcon(node)}
+
{renderTitle(node)}
+
+
+ {renderActions(node)} + {node !== node.root && ( + { + node.hidden = !node.hidden + }} + /> + )} +
+
+
+
+ {node.children?.map((child) => { + return ( + + ) + })} +
+
+ ) + } + } + }) +) diff --git a/packages/designable/src/widgets/OutlineWidget/context.ts b/packages/designable/src/widgets/OutlineWidget/context.ts new file mode 100644 index 0000000..418946a --- /dev/null +++ b/packages/designable/src/widgets/OutlineWidget/context.ts @@ -0,0 +1,9 @@ +import type { TreeNode } from '@pind/designable-core' +import type { InjectionKey, Ref } from 'vue' + +interface INodeContext { + renderTitle?: (node: TreeNode) => any + renderActions?: (node: TreeNode) => any +} + +export const NodeSymbol: InjectionKey> = Symbol('INodeContext') diff --git a/packages/designable/src/widgets/OutlineWidget/index.tsx b/packages/designable/src/widgets/OutlineWidget/index.tsx new file mode 100644 index 0000000..f095327 --- /dev/null +++ b/packages/designable/src/widgets/OutlineWidget/index.tsx @@ -0,0 +1,75 @@ +// import React, { useRef, useLayoutEffect } from 'react' +import { observer } from '@formily/reactive-vue' +import type { Viewport } from '@pind/designable-core' +import { computed, defineComponent, onMounted, provide, ref, unref } from 'vue' +import { useOutline, usePrefix, useTree, useWorkbench } from '../../hooks' +import { useStyle } from '../../shared/util' +import { Insertion } from './Insertion' +import { OutlineTreeNode } from './OutlineNode' +import { NodeSymbol } from './context' + +export const OutlineTreeWidget = observer( + defineComponent({ + props: ['renderActions', 'renderTitle', 'onClose'], + setup(props) { + const refInstance = ref(null) + const prefixRef = usePrefix('outline-tree') + const workbenchRef = useWorkbench() + const workspaceId = computed(() => { + const current = workbenchRef.value?.activeWorkspace || workbenchRef.value?.currentWorkspace + return current?.id + }) + + const treeRef = useTree(workspaceId) + const outline = useOutline(workspaceId) + const outlineRef = ref() + const style = useStyle() + + provide( + NodeSymbol, + ref({ + renderActions: props.renderActions, + renderTitle: props.renderTitle + }) + ) + + // [workspaceId, outline] + // TODO::响应式有bug + onMounted(() => { + const _outline = outline.value + if (!workspaceId.value) return + if (outlineRef.value && outlineRef.value !== _outline) { + outlineRef.value.onUnmount() + } + if (refInstance.value && outline) { + _outline.onMount(refInstance.value, window) + } + outlineRef.value = _outline + return () => { + _outline.onUnmount() + } + }) + + return () => { + const prefix = unref(prefixRef) + const tree = unref(treeRef) + if (!outline.value || !workspaceId.value) return null + return ( +
+
+ +
+ +
+
+
+ ) + } + } + }) +) diff --git a/packages/designable/src/widgets/OutlineWidget/styles.less b/packages/designable/src/widgets/OutlineWidget/styles.less new file mode 100644 index 0000000..7c7265c --- /dev/null +++ b/packages/designable/src/widgets/OutlineWidget/styles.less @@ -0,0 +1,191 @@ +@import '../../variables.less'; + +.@{prefix-cls}-outline-tree { + &-container { + position: relative; + min-height: 100px; + display: flex; + flex-direction: column; + height: 100%; + width: 100%; + overflow: hidden; + background-color: var(--dn-outline-tree-bg-color); + } + + &-header { + display: flex; + padding: 8px; + justify-content: space-between; + align-items: center; + border-bottom: 1px solid var(--dn-outline-tree-header-border-color); + color: var(--dn-outline-tree-color); + } + + &-title { + font-size: 16px; + font-weight: 500; + } + + &-close { + display: flex; + align-items: center; + transform: scale(1.6); + cursor: pointer; + } + + &-content { + position: relative; + flex-grow: 1; + height: 100%; + width: 100%; + padding-bottom: 20px; + overflow: overlay; + } + + &-aux { + position: absolute; + top: 0; + left: 0; + } + + &-insertion { + background-color: var(--dn-outline-tree-insertion-bg-color); + } + + &-node { + position: relative; + user-select: none; + width: fit-content; + min-width: 100%; + + &.expanded { + & > .@{prefix-cls}-outline-tree-node-header { + .@{prefix-cls}-outline-tree-node-expand { + transform: rotate(0); + } + } + + & > .@{prefix-cls}-outline-tree-node-children { + display: block; + } + } + + &.selected { + & > .@{prefix-cls}-outline-tree-node-header { + background-color: var(--dn-panel-active-bg-color); + + .@{prefix-cls}-outline-tree-node-header-head { + background-color: var(--dn-panel-active-bg-color); + } + } + } + + &.droppable { + & > .@{prefix-cls}-outline-tree-node-header { + .@{prefix-cls}-outline-tree-node-header-content { + .@{prefix-cls}-outline-tree-node-header-base { + & > .@{prefix-cls}-outline-tree-node-icon { + transform: scale(1.2); + } + } + } + } + } + + &-hidden-icon:not(.hidden) { + display: none; + } + + &-header { + display: flex; + min-height: 32px; + width: fit-content; + min-width: 100%; + align-items: center; + color: var(--dn-outline-tree-node-header-color); + position: relative; + padding-left: 8px; + + &:hover { + .@{prefix-cls}-outline-tree-node-header-content { + color: var(--dn-outline-tree-node-hover-color); + } + } + } + + &-header-head { + position: absolute; + top: 0; + left: 0; + height: 100%; + pointer-events: none; + } + + &-header-content { + display: flex; + align-items: center; + transition: all 0.15s ease-in; + transform-origin: left; + width: fit-content; + min-width: 100%; + height: 100%; + justify-content: space-between; + font-size: 12px; + } + + &-header-base { + display: flex; + align-items: center; + } + + &-header-actions { + display: flex; + align-items: center; + margin-right: 8px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + &-expand { + display: flex; + align-items: center; + transition: all 0.15s ease-out; + transform: rotate(-90deg); + margin-right: 3px; + width: 12px; + } + + &-icon { + margin-right: 5px; + display: flex; + align-items: center; + font-size: 12px; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + + &-title { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + margin-right: 100px; + } + + &-actions { + font-size: 12px; + flex-grow: 2; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + &-children { + padding-left: 16px; + display: none; + width: fit-content; + min-width: 100%; + } + } +} diff --git a/packages/designable/src/widgets/ResourceWidget/index.tsx b/packages/designable/src/widgets/ResourceWidget/index.tsx new file mode 100644 index 0000000..38a003e --- /dev/null +++ b/packages/designable/src/widgets/ResourceWidget/index.tsx @@ -0,0 +1,112 @@ +import type { IResource, IResourceLike } from '@pind/designable-core' +import { isResourceHost, isResourceList } from '@pind/designable-core' +import { isFn } from '@pind/designable-shared' +import { observer } from '@formily/reactive-vue' +import { defineComponent, ref, unref } from 'vue' +import { usePrefix } from '../../hooks' +import { IconWidget } from '../IconWidget' +import { TextWidget } from '../TextWidget' +import './styles.less' + +export interface IResourceWidgetProps { + title: string + sources?: IResourceLike[] + defaultExpand?: boolean +} + +export const ResourceWidget = observer( + defineComponent({ + name: 'DnResourceWidget', + props: { + defaultExpand: { type: Boolean, default: true }, + sources: { type: Array, default: () => [] }, + title: String + }, + setup(props, { slots }) { + const prefixRef = usePrefix('resource') + const expand = ref(props.defaultExpand) + + const renderNode = (source: IResource) => { + const prefix = unref(prefixRef) + const { node, icon, title, thumb, span } = source + return ( +
+ {thumb && } + {icon && ( + + )} + + {title || node.children[0]?.getMessage('title')} + +
+ ) + } + + const sources = props.sources.reduce((buf, source) => { + if (isResourceList(source)) { + return buf.concat(source) + } else if (isResourceHost(source)) { + return buf.concat(source.Resource) + } + return buf + }, []) + + const remainItems = + sources.reduce((length, source) => { + return length + (source.span ?? 1) + }, 0) % 3 + + return () => { + const prefix = unref(prefixRef) + return ( +
+
{ + e.stopPropagation() + e.preventDefault() + expand.value = !expand.value + }} + > +
+ +
+
+ {props.title} +
+
+
+
+ {sources.map( + isFn(slots.default) ? (slots.default as (source: IResource) => any) : renderNode + )} + {remainItems ? ( +
+ ) : null} +
+
+
+ ) + } + } + }) +) diff --git a/packages/designable/src/widgets/ResourceWidget/styles.less b/packages/designable/src/widgets/ResourceWidget/styles.less new file mode 100644 index 0000000..0c66ca6 --- /dev/null +++ b/packages/designable/src/widgets/ResourceWidget/styles.less @@ -0,0 +1,85 @@ +@import '../../variables.less'; + +.@{prefix-cls}-resource { + flex-wrap: wrap; + + &-header { + display: flex; + align-items: center; + padding: 5px 8px; + color: var(--dn-collapse-header-color); + border-bottom: 1px solid var(--dn-panel-border-color); + background-color: var(--dn-panel-active-bg-color); + cursor: pointer; + transition: all 0.25s ease-in-out; + font-size: 13px; + + &-expand { + transform: rotate(-90deg); + font-size: 12px; + transition: all 0.15s ease-in-out; + margin-right: 3px; + } + } + + &-content-wrapper { + display: flex; + justify-content: center; + background: var(--dn-resource-content-bg-color); + } + + &-content { + width: 100%; + display: flex; + flex-wrap: wrap; + display: none; + } + + &.expand { + .@{prefix-cls}-resource-content { + display: grid; + grid-template-columns: repeat(3, 33.3333%); + grid-gap: 1px; + background-color: var(--dn-panel-border-color); + border-bottom: 1px solid var(--dn-panel-border-color); + } + + .@{prefix-cls}-resource-header-expand { + transform: rotate(0); + } + } + + &-item { + position: relative; + user-select: none; + background: var(--dn-resource-content-bg-color); + min-height: 40px; + color: var(--dn-resource-item-color); + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + cursor: grab; + transition: color 0.1s ease-out; + + &:hover { + color: var(--dn-resource-item-hover-color); + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); + z-index: 1; + } + + &-icon { + margin: 12px 0; + } + + &-text { + text-align: center; + font-size: 12px; + line-height: 1; + margin-bottom: 12px; + } + &-remain { + background: var(--dn-resource-content-bg-color); + } + } +} diff --git a/packages/designable/src/widgets/TextWidget/index.tsx b/packages/designable/src/widgets/TextWidget/index.tsx new file mode 100644 index 0000000..87a3b3f --- /dev/null +++ b/packages/designable/src/widgets/TextWidget/index.tsx @@ -0,0 +1,51 @@ +import { observer } from '@formily/reactive-vue' +import type { IDesignerMiniLocales } from '@pind/designable-core' +import { GlobalRegistry } from '@pind/designable-core' +import { isPlainObj, isStr } from '@pind/designable-shared' +import { defineComponent } from 'vue' + +const TextWidgetComponent = defineComponent({ + name: 'DnTextWidget', + props: { + componentName: String, + sourceName: String, + token: String, + defaultMessage: String + }, + setup(props, { slots }) { + const takeLocale = (message: string | IDesignerMiniLocales) => { + if (isStr(message)) return message + if (isPlainObj(message)) { + const lang = GlobalRegistry.getDesignerLanguage() + for (const key in message) { + if (key.toLocaleLowerCase() === lang) return message[key] + } + return + } + return message + } + + const takeMessage = (token: any) => { + if (!token) return + const message = isStr(token) ? GlobalRegistry.getDesignerMessage(token) : token + if (message) return takeLocale(message) + return token + } + /** + * 子节点为TextNode的vnode + * 子节点为i18n对象 + */ + return () => { + return ( + <> + {takeMessage(slots.default?.()?.[0]?.children) || + takeMessage(slots.default?.()?.[0]) || + takeMessage(props.token) || + takeMessage(props.defaultMessage)} + + ) + } + } +}) + +export const TextWidget = observer(TextWidgetComponent) diff --git a/packages/designable/src/widgets/ViewToolsWidget/index.tsx b/packages/designable/src/widgets/ViewToolsWidget/index.tsx new file mode 100644 index 0000000..5e425d2 --- /dev/null +++ b/packages/designable/src/widgets/ViewToolsWidget/index.tsx @@ -0,0 +1,76 @@ +import type { WorkbenchTypes } from '@pind/designable-core' +import { observer } from '@formily/reactive-vue' +import { Button } from 'ant-design-vue' +import type { PropType } from 'vue' +import { defineComponent } from 'vue' +import { usePrefix, useWorkbench } from '../../hooks' +import { IconWidget } from '../IconWidget' + +export interface IViewToolsWidget { + use?: WorkbenchTypes[] +} + +const VireToolsWidgetComponent = defineComponent({ + name: 'DnVireToolsWidget', + props: { + use: { + type: Array as PropType, + default: () => ['DESIGNABLE', 'JSONTREE', 'PREVIEW'] + } + }, + setup(props) { + const workbenchRef = useWorkbench() + const prefixRef = usePrefix('view-tools') + + return () => ( + + {props.use.includes('DESIGNABLE') && ( + + )} + {props.use.includes('JSONTREE') && ( + + )} + {props.use.includes('MARKUP') && ( + + )} + {props.use.includes('PREVIEW') && ( + + )} + + ) + } +}) + +export const ViewToolsWidget = observer(VireToolsWidgetComponent) diff --git a/packages/designable/src/widgets/index.ts b/packages/designable/src/widgets/index.ts new file mode 100644 index 0000000..8c44b1b --- /dev/null +++ b/packages/designable/src/widgets/index.ts @@ -0,0 +1,15 @@ +export * from './AuxToolWidget' +export * from './ComponentTreeWidget' +export * from './DesignerToolsWidget' +export * from './ViewToolsWidget' +export * from './ResourceWidget' +export * from './GhostWidget' +export * from './EmptyWidget' +export * from './OutlineWidget' +export * from './IconWidget' +export * from './TextWidget' +export * from './HistoryWidget' +export * from './NodePathWidget' +export * from './NodeTitleWidget' +export * from './DroppableWidget' +export * from './NodeActionsWidget' diff --git a/packages/renderer/tsconfig.build.json b/packages/designable/tsconfig.build.json similarity index 65% rename from packages/renderer/tsconfig.build.json rename to packages/designable/tsconfig.build.json index cb94a64..0d5dfcd 100644 --- a/packages/renderer/tsconfig.build.json +++ b/packages/designable/tsconfig.build.json @@ -1,10 +1,8 @@ { "extends": "./tsconfig.json", "compilerOptions": { + "baseUrl": "./src", "outDir": "./lib", - "paths": { - "@formily/*": ["packages/*"] - }, "declaration": true } } diff --git a/packages/renderer/tsconfig.json b/packages/designable/tsconfig.json similarity index 100% rename from packages/renderer/tsconfig.json rename to packages/designable/tsconfig.json diff --git a/packages/prototypes/babel.config.js b/packages/prototypes/babel.config.js new file mode 100644 index 0000000..4b763bc --- /dev/null +++ b/packages/prototypes/babel.config.js @@ -0,0 +1,15 @@ +module.exports = (api) => { + return { + presets: [ + [ + '@babel/preset-env', + { + useBuiltIns: false, + modules: api.env(['es']) ? false : api.env(['cjs']) ? 'commonjs' : 'auto' + } + ], + '@babel/preset-typescript' + ], + plugins: ['@babel/transform-runtime', '@vue/babel-plugin-jsx'] + } +} diff --git a/packages/prototypes/builder.config.ts b/packages/prototypes/builder.config.ts index dc7bd55..6feaa4f 100644 --- a/packages/prototypes/builder.config.ts +++ b/packages/prototypes/builder.config.ts @@ -4,4 +4,10 @@ export const BuilderConfig: IBuilderConfig = { targetLibName: 'ant-design-vue', targetLibCjsDir: 'lib', targetLibEsDir: 'es', + externals: { + '@formily/antdv': 'Formily.Antdv', + '@formily/antdv-designable': 'Formily.AntdvDesignable', + '@formily/antdv-setters': 'Formily.AntdvSetters', + '@formily/antdv-settings-form': 'Formily.AntdvSettingsForm' + } } diff --git a/packages/prototypes/package.json b/packages/prototypes/package.json index 5467c66..0569483 100644 --- a/packages/prototypes/package.json +++ b/packages/prototypes/package.json @@ -1,7 +1,6 @@ { "name": "@formily/antdv-prototypes", - "private": true, - "version": "1.0.0-alpha.8", + "version": "2.0.0", "license": "MIT", "main": "lib", "types": "lib/index.d.ts", @@ -23,7 +22,7 @@ "**/*/style.js" ], "scripts": { - "build": "formily-tpl build" + "build": "ts-node ../../scripts/build.ts" }, "repository": { "type": "git", @@ -36,17 +35,24 @@ "publishConfig": { "access": "public" }, + "maintainers": [ + "yiyunwan" + ], "peerDependencies": { - "@vue/composition-api": "^1.0.0-beta.1", - "vue": "^2.6.0 || >=3.0.0-rc.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } + "vue": "^3.3.0" }, "devDependencies": { - "ant-design-vue": "^1.7.8", - "vue": "^2.6.14" - } + "@formily/core": "^2.0.0", + "@formily/json-schema": "^2.0.0", + "@formily/reactive": "^2.0.0", + "@formily/reactive-vue": "^2.0.0", + "@formily/shared": "^2.0.0", + "@formily/vue": "^2.0.0", + "@pind/designable-core": "^2.0.0-beta.6", + "@pind/designable-shared": "^2.0.0-beta.6", + "@formily/antdv": "2.0.0", + "@formily/antdv-designable": "2.0.0", + "@formily/antdv-setters": "2.0.0" + }, + "gitHead": "62ef79d985a056c1038754fc928645c3b147cb6e" } diff --git a/packages/prototypes/src/common/Container/index.tsx b/packages/prototypes/src/common/Container/index.tsx new file mode 100644 index 0000000..7229cf5 --- /dev/null +++ b/packages/prototypes/src/common/Container/index.tsx @@ -0,0 +1,27 @@ +import { uid } from '@pind/designable-shared' +import { DroppableWidget } from '@formily/antdv-designable' +import { defineComponent } from 'vue' +import './styles.less' + +export const Container = defineComponent({ + name: 'DnContainer', + setup(props, { slots }) { + return () => { + return {slots} + } + } +}) + +export const withContainer = (Target: any) => { + return defineComponent({ + setup(props, { attrs, slots }) { + return () => { + return ( + + {slots} + + ) + } + } + }) +} diff --git a/packages/prototypes/src/common/Container/styles.less b/packages/prototypes/src/common/Container/styles.less new file mode 100644 index 0000000..2b8430b --- /dev/null +++ b/packages/prototypes/src/common/Container/styles.less @@ -0,0 +1,7 @@ +@import '../../styles.less'; + +.dn-form-container { + margin: 0 !important; + padding: 20px; + border: 1px solid @border-color-split; +} diff --git a/packages/prototypes/src/common/FormItemSwitcher/index.tsx b/packages/prototypes/src/common/FormItemSwitcher/index.tsx new file mode 100644 index 0000000..45831a1 --- /dev/null +++ b/packages/prototypes/src/common/FormItemSwitcher/index.tsx @@ -0,0 +1,23 @@ +import { Switch } from '@formily/antdv' +import { defineComponent } from 'vue' + +export interface IFormItemSwitcherProps { + value?: string +} + +export const FormItemSwitcher = defineComponent({ + props: { value: {} }, + emits: ['change'], + setup(props, { emit }) { + return () => { + return ( + { + emit('change', value ? 'FormItem' : undefined) + }} + /> + ) + } + } +}) diff --git a/packages/prototypes/src/common/LoadTemplate/index.tsx b/packages/prototypes/src/common/LoadTemplate/index.tsx new file mode 100644 index 0000000..d146dd6 --- /dev/null +++ b/packages/prototypes/src/common/LoadTemplate/index.tsx @@ -0,0 +1,32 @@ +import { NodeActionsWidget } from '@formily/antdv-designable' +import type { VNode } from 'vue' +import { defineComponent } from 'vue' + +export interface ITemplateAction { + title: VNode + tooltip?: VNode + icon?: string | VNode + onClick: () => void +} + +export interface ILoadTemplateProps { + className?: string + style?: Record + actions?: ITemplateAction[] +} + +export const LoadTemplate = defineComponent({ + emits: ['click'], + props: { actions: Array }, + setup(props) { + return () => { + return ( + + {props.actions?.map((action: ITemplateAction, key) => { + return + })} + + ) + } + } +}) diff --git a/packages/prototypes/src/components/ArrayBase/index.ts b/packages/prototypes/src/components/ArrayBase/index.ts new file mode 100644 index 0000000..ad2cbb7 --- /dev/null +++ b/packages/prototypes/src/components/ArrayBase/index.ts @@ -0,0 +1,79 @@ +import { createBehavior } from '@pind/designable-core' +import { createFieldSchema, createVoidFieldSchema } from '../Field' +import { AllSchemas } from '../../schemas' +import { AllLocales } from '../../locales' + +export const createArrayBehavior = (name: string) => { + return createBehavior( + { + name, + extends: ['Field'], + selector: (node) => node.props['x-component'] === name, + designerProps: { + droppable: true, + propsSchema: createFieldSchema(AllSchemas[name]) + }, + designerLocales: AllLocales[name] + }, + { + name: `${name}.Addition`, + extends: ['Field'], + selector: (node) => node.props['x-component'] === `${name}.Addition`, + designerProps: { + allowDrop(parent) { + return parent.props['x-component'] === name + }, + propsSchema: createVoidFieldSchema(AllSchemas[name].Addition) + }, + designerLocales: AllLocales.ArrayAddition + }, + { + name: `${name}.Remove`, + extends: ['Field'], + selector: (node) => node.props['x-component'] === `${name}.Remove`, + designerProps: { + allowDrop(parent) { + return parent.props['x-component'] === name + }, + propsSchema: createVoidFieldSchema() + }, + designerLocales: AllLocales.ArrayRemove + }, + { + name: `${name}.Index`, + extends: ['Field'], + selector: (node) => node.props['x-component'] === `${name}.Index`, + designerProps: { + allowDrop(parent) { + return parent.props['x-component'] === name + }, + propsSchema: createVoidFieldSchema() + }, + designerLocales: AllLocales.ArrayIndex + }, + { + name: `${name}.MoveUp`, + extends: ['Field'], + selector: (node) => node.props['x-component'] === `${name}.MoveUp`, + designerProps: { + allowDrop(parent) { + return parent.props['x-component'] === name + }, + propsSchema: createVoidFieldSchema() + }, + designerLocales: AllLocales.ArrayMoveUp + }, + { + name: `${name}.MoveDown`, + extends: ['Field'], + selector: (node) => node.props['x-component'] === `${name}.MoveDown`, + designerProps: { + allowDrop(parent) { + return parent.props['x-component'] === 'ArrayCards' + }, + propsSchema: createVoidFieldSchema() + }, + designerLocales: AllLocales.ArrayMoveDown + } + ) +} diff --git a/packages/prototypes/src/components/ArrayCards/index.ts b/packages/prototypes/src/components/ArrayCards/index.ts new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/ArrayCards/index.ts @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/ArrayCards/preview.tsx b/packages/prototypes/src/components/ArrayCards/preview.tsx new file mode 100644 index 0000000..ac53732 --- /dev/null +++ b/packages/prototypes/src/components/ArrayCards/preview.tsx @@ -0,0 +1,275 @@ +import { defineComponent } from 'vue' +import { Card, Row } from 'ant-design-vue' +import { TreeNode, createResource } from '@pind/designable-core' +import { uid } from '@pind/designable-shared' +import { + useTreeNode, + TreeNodeWidget, + DroppableWidget, + useNodeIdProps +} from '@formily/antdv-designable' +import { ArrayBase } from '@formily/antdv' +import { observer } from '@formily/reactive-vue' +import { composeExport, usePrefixCls } from '@formily/antdv/esm/__builtins__' +import { + hasNodeByComponentPath, + queryNodesByComponentPath, + createEnsureTypeItemsNode, + findNodeByComponentPath, + createNodeId +} from '../../shared' +import { useDropTemplate } from '../../hooks' +import { LoadTemplate } from '../../common/LoadTemplate' +import { createArrayBehavior } from '../ArrayBase' +import './styles.less' + +const ensureObjectItemsNode = createEnsureTypeItemsNode('object') + +const isArrayCardsOperation = (name: string) => + name === 'ArrayCards.Remove' || name === 'ArrayCards.MoveDown' || name === 'ArrayCards.MoveUp' + +export const ArrayCards = composeExport( + observer( + defineComponent({ + props: { title: {} }, + setup(props, { attrs, slots }) { + const nodeRef = useTreeNode() + const nodeIdRef = useNodeIdProps() + const formilyArrayCardsPrefix = usePrefixCls('formily-array-cards') + + const designerRef = useDropTemplate('ArrayCards', (source) => { + const indexNode = new TreeNode({ + componentName: nodeRef.value.componentName, + props: { + type: 'void', + 'x-component': 'ArrayCards.Index' + } + }) + const additionNode = new TreeNode({ + componentName: nodeRef.value.componentName, + props: { + type: 'void', + title: 'Addition', + 'x-component': 'ArrayCards.Addition' + } + }) + const removeNode = new TreeNode({ + componentName: nodeRef.value.componentName, + props: { + type: 'void', + 'x-component': 'ArrayCards.Remove' + } + }) + const moveDownNode = new TreeNode({ + componentName: nodeRef.value.componentName, + props: { + type: 'void', + 'x-component': 'ArrayCards.MoveDown' + } + }) + const moveUpNode = new TreeNode({ + componentName: nodeRef.value.componentName, + props: { + type: 'void', + 'x-component': 'ArrayCards.MoveUp' + } + }) + + const objectNode = new TreeNode({ + componentName: nodeRef.value.componentName, + props: { + type: 'object' + }, + children: [indexNode, ...source, removeNode, moveDownNode, moveUpNode] + }) + return [objectNode, additionNode] + }) + + return () => { + const node = nodeRef.value + const nodeId = nodeIdRef.value + const designer = designerRef.value + + const renderCard = () => { + if (node.children.length === 0) return + const additions = queryNodesByComponentPath(node, ['ArrayCards', 'ArrayCards.Addition']) + const indexes = queryNodesByComponentPath(node, ['ArrayCards', '*', 'ArrayCards.Index']) + const operations = queryNodesByComponentPath(node, [ + 'ArrayCards', + '*', + isArrayCardsOperation + ]) + const children = queryNodesByComponentPath(node, [ + 'ArrayCards', + '*', + (name) => name.indexOf('ArrayCards.') === -1 + ]) + + return ( + + + + {indexes.map((node) => ( + + ))} + {props.title} + + } + extra={ + + + {operations.map((node) => ( + + ))} + {slots.extra?.()} + + + } + > +
+ {children.length ? ( + children.map((node) => ) + ) : ( + + )} +
+
+ + {additions.map((node) => { + return + })} + +
+
+ ) + } + + return ( +
+ {renderCard()} + { + if (hasNodeByComponentPath(node, ['ArrayCards', '*', 'ArrayCards.Index'])) + return + const indexNode = new TreeNode({ + componentName: node.componentName, + props: { + type: 'void', + 'x-component': 'Button' + } + }) + ensureObjectItemsNode(node).append(indexNode) + } + }, + { + title: node.getMessage('addOperation'), + icon: 'AddOperation', + onClick: () => { + const oldAdditionNode = findNodeByComponentPath(node, [ + 'ArrayCards', + 'ArrayCards.Addition' + ]) + if (!oldAdditionNode) { + const additionNode = new TreeNode({ + componentName: node.componentName, + props: { + type: 'void', + title: 'Addition', + 'x-component': 'ArrayCards.Addition' + } + }) + ensureObjectItemsNode(node).insertAfter(additionNode) + } + const oldRemoveNode = findNodeByComponentPath(node, [ + 'ArrayCards', + '*', + 'ArrayCards.Remove' + ]) + const oldMoveDownNode = findNodeByComponentPath(node, [ + 'ArrayCards', + '*', + 'ArrayCards.MoveDown' + ]) + const oldMoveUpNode = findNodeByComponentPath(node, [ + 'ArrayCards', + '*', + 'ArrayCards.MoveUp' + ]) + if (!oldRemoveNode) { + ensureObjectItemsNode(node).append( + new TreeNode({ + componentName: node.componentName, + props: { + type: 'void', + 'x-component': 'ArrayCards.Remove' + } + }) + ) + } + if (!oldMoveDownNode) { + ensureObjectItemsNode(node).append( + new TreeNode({ + componentName: node.componentName, + props: { + type: 'void', + 'x-component': 'ArrayCards.MoveDown' + } + }) + ) + } + if (!oldMoveUpNode) { + ensureObjectItemsNode(node).append( + new TreeNode({ + componentName: node.componentName, + props: { + type: 'void', + 'x-component': 'ArrayCards.MoveUp' + } + }) + ) + } + } + } + ]} + /> +
+ ) + } + } + }) + ), + { + Behavior: createArrayBehavior('ArrayCards'), + Resource: createResource({ + icon: 'ArrayCardsSource', + elements: [ + { + componentName: 'Field', + props: { + type: 'array', + 'x-decorator': 'FormItem', + 'x-component': 'ArrayCards', + 'x-component-props': { + title: `Title` + } + } + } + ] + }), + Addition: ArrayBase.Addition, + Index: ArrayBase.Index, + Item: ArrayBase.Item, + MoveDown: ArrayBase.MoveDown, + MoveUp: ArrayBase.MoveUp, + Remove: ArrayBase.Remove, + SortHandle: ArrayBase.SortHandle + } +) diff --git a/packages/prototypes/src/components/ArrayCards/styles.less b/packages/prototypes/src/components/ArrayCards/styles.less new file mode 100644 index 0000000..c468465 --- /dev/null +++ b/packages/prototypes/src/components/ArrayCards/styles.less @@ -0,0 +1,5 @@ +@import '../../styles.less'; + +.dn-array-cards { + background-color: @component-background; +} diff --git a/packages/prototypes/src/components/ArrayItems/index.ts b/packages/prototypes/src/components/ArrayItems/index.ts new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/ArrayItems/index.ts @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/ArrayItems/preview.tsx b/packages/prototypes/src/components/ArrayItems/preview.tsx new file mode 100644 index 0000000..05a5e1d --- /dev/null +++ b/packages/prototypes/src/components/ArrayItems/preview.tsx @@ -0,0 +1,117 @@ +import { defineComponent } from 'vue' +import { Row } from 'ant-design-vue' +import { TreeNode, createResource } from '@pind/designable-core' +import { + useTreeNode, + TreeNodeWidget, + DroppableWidget, + useNodeIdProps +} from '@formily/antdv-designable' +import { ArrayBase } from '@formily/antdv' +import { observer } from '@formily/reactive-vue' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { uid } from '@pind/designable-shared' +import { queryNodesByComponentPath, createEnsureTypeItemsNode, createNodeId } from '../../shared' +import { useDropTemplate } from '../../hooks' +import { createArrayBehavior } from '../ArrayBase' +import './styles.less' + +const ensureObjectItemsNode = createEnsureTypeItemsNode('object') + +export const ArrayItems = composeExport( + observer( + defineComponent({ + props: [], + setup() { + const nodeRef = useTreeNode() + const nodeIdRef = useNodeIdProps() + + const designerRef = useDropTemplate('ArrayItems', (source) => { + const additionNode = new TreeNode({ + componentName: nodeRef.value.componentName, + props: { + type: 'void', + title: 'Addition', + 'x-component': 'ArrayItems.Addition' + } + }) + const removeNode = new TreeNode({ + componentName: nodeRef.value.componentName, + props: { + type: 'void', + 'x-component': 'ArrayItems.Remove' + } + }) + const objectNode = new TreeNode({ + componentName: nodeRef.value.componentName, + props: { + type: 'object' + }, + children: [...source, removeNode] + }) + return [objectNode, additionNode] + }) + + return () => { + const node = nodeRef.value + const nodeId = nodeIdRef.value + const designer = designerRef.value + + const renderItems = () => { + if (node.children.length === 0) return + const additions = queryNodesByComponentPath(node, ['ArrayItems', 'ArrayItems.Addition']) + const children = queryNodesByComponentPath(node, [ + 'ArrayItems', + '*', + (name) => name.indexOf('ArrayItems.') === -1 + ]) + + return ( + + +
+ {children.length ? ( + children.map((node) => ) + ) : ( + + )} +
+ + {additions.map((node) => { + return + })} + +
+
+ ) + } + + return ( +
+ {renderItems()} +
+ ) + } + } + }) + ), + { + Behavior: createArrayBehavior('ArrayItems'), + Resource: createResource({ + icon: 'ArrayCardsSource', + elements: [ + { + componentName: 'Field', + props: { + type: 'array', + 'x-decorator': 'FormItem', + 'x-component': 'ArrayItems' + } + } + ] + }), + Addition: ArrayBase.Addition, + Item: ArrayBase.Item, + Remove: ArrayBase.Remove + } +) diff --git a/packages/prototypes/src/components/ArrayItems/styles.less b/packages/prototypes/src/components/ArrayItems/styles.less new file mode 100644 index 0000000..0d9cc3c --- /dev/null +++ b/packages/prototypes/src/components/ArrayItems/styles.less @@ -0,0 +1,5 @@ +@import '../../styles.less'; + +.dn-array-items { + background-color: @component-background; +} diff --git a/packages/prototypes/src/components/ArrayTable/index.ts b/packages/prototypes/src/components/ArrayTable/index.ts new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/ArrayTable/index.ts @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/ArrayTable/preview.tsx b/packages/prototypes/src/components/ArrayTable/preview.tsx new file mode 100644 index 0000000..e05677b --- /dev/null +++ b/packages/prototypes/src/components/ArrayTable/preview.tsx @@ -0,0 +1,454 @@ +import { defineComponent } from 'vue' +import { Table, Row } from 'ant-design-vue' +import { observer } from '@formily/reactive-vue' +import { TreeNode, createBehavior, createResource } from '@pind/designable-core' +import { uid } from '@pind/designable-shared' +import { + useDesigner, + useTreeNode, + TreeNodeWidget, + DroppableWidget, + useNodeIdProps +} from '@formily/antdv-designable' +import { ArrayBase } from '@formily/antdv' +import { composeExport, usePrefixCls } from '@formily/antdv/esm/__builtins__' +import { AllLocales } from '../../locales' +import { AllSchemas } from '../../schemas' +import { useDropTemplate } from '../../hooks' +import { + queryNodesByComponentPath, + hasNodeByComponentPath, + findNodeByComponentPath, + createEnsureTypeItemsNode +} from '../../shared' +import { LoadTemplate } from '../../common/LoadTemplate' +import { createVoidFieldSchema } from '../Field' +import { createArrayBehavior } from '../ArrayBase' +import './styles.less' + +const ensureObjectItemsNode = createEnsureTypeItemsNode('object') + +// TableProps +export const ArrayTable = composeExport( + observer( + defineComponent({ + props: [], + setup(props, { attrs }) { + const designerRef = useDesigner() + const nodeRef = useTreeNode() + const nodeIdRef = useNodeIdProps() + const formilyArrayTablePrefix = usePrefixCls('formily-array-table') + + useDropTemplate('ArrayTable', (source) => { + const sortHandleNode = new TreeNode({ + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'ArrayTable.Column', + 'x-component-props': { + title: `Title` + } + }, + children: [ + { + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'ArrayTable.SortHandle' + } + } + ] + }) + const indexNode = new TreeNode({ + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'ArrayTable.Column', + 'x-component-props': { + title: `Title` + } + }, + children: [ + { + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'ArrayTable.Index' + } + } + ] + }) + const columnNode = new TreeNode({ + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'ArrayTable.Column', + 'x-component-props': { + title: `Title` + } + }, + children: source.map((node) => { + node.props.title = undefined + return node + }) + }) + + const operationNode = new TreeNode({ + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'ArrayTable.Column', + 'x-component-props': { + title: `Title` + } + }, + children: [ + { + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'ArrayTable.Remove' + } + }, + { + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'ArrayTable.MoveDown' + } + }, + { + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'ArrayTable.MoveUp' + } + } + ] + }) + const objectNode = new TreeNode({ + componentName: 'Field', + props: { + type: 'object' + }, + children: [sortHandleNode, indexNode, columnNode, operationNode] + }) + const additionNode = new TreeNode({ + componentName: 'Field', + props: { + type: 'void', + title: `Addition`, + 'x-component': 'ArrayTable.Addition' + } + }) + return [objectNode, additionNode] + }) + + useDropTemplate('ArrayTable.Column', (source) => { + return source.map((node) => { + node.props.title = undefined + return node + }) + }) + + return () => { + const node = nodeRef.value + const nodeId = nodeIdRef.value + const columns = queryNodesByComponentPath(node, ['ArrayTable', '*', 'ArrayTable.Column']) + const additions = queryNodesByComponentPath(node, ['ArrayTable', 'ArrayTable.Addition']) + + const defaultRowKey = () => { + return node.id + } + + const renderTable = () => { + if (node.children.length === 0) return + return ( + + {/* TODO:: rerender table cuz table resizes when insert new value */} + + {columns.map((node) => { + const children = node.children.map((child) => { + return + }) + const { title, ...columnProps } = node.props['x-component-props'] + return ( + ({ + [designerRef.value.props.nodeIdAttrName]: node.id + })} + customCell={() => ({ + [designerRef.value.props.nodeIdAttrName]: node.id + })} + customRender={({ index }) => ( + + {children.length > 0 ? children : 'Droppable'} + + )} + title={() => ( + {title} + )} + > + ) + })} + {columns.length === 0 && ( + + + + )} +
+ + {additions.map((node) => { + return + })} + +
+ ) + } + return ( +
+ {renderTable()} + { + if ( + hasNodeByComponentPath(node, [ + 'ArrayTable', + '*', + 'ArrayTable.Column', + 'ArrayTable.SortHandle' + ]) + ) + return + const tableColumn = new TreeNode({ + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'ArrayTable.Column', + 'x-component-props': { + title: `Title` + } + }, + children: [ + { + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'ArrayTable.SortHandle' + } + } + ] + }) + ensureObjectItemsNode(node).prepend(tableColumn) + } + }, + { + title: node.getMessage('addIndex'), + icon: 'AddIndex', + onClick: () => { + if ( + hasNodeByComponentPath(node, [ + 'ArrayTable', + '*', + 'ArrayTable.Column', + 'ArrayTable.Index' + ]) + ) + return + const tableColumn = new TreeNode({ + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'ArrayTable.Column', + 'x-component-props': { + title: `序号` + } + }, + children: [ + { + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'ArrayTable.Index' + } + } + ] + }) + const sortNode = findNodeByComponentPath(node, [ + 'ArrayTable', + '*', + 'ArrayTable.Column', + 'ArrayTable.SortHandle' + ]) + if (sortNode) { + sortNode.parent.insertAfter(tableColumn) + } else { + ensureObjectItemsNode(node).prepend(tableColumn) + } + } + }, + { + title: node.getMessage('addColumn'), + icon: 'AddColumn', + onClick: () => { + const operationNode = findNodeByComponentPath(node, [ + 'ArrayTable', + '*', + 'ArrayTable.Column', + (name) => { + return ( + name === 'ArrayTable.Remove' || + name === 'ArrayTable.MoveDown' || + name === 'ArrayTable.MoveUp' + ) + } + ]) + const tableColumn = new TreeNode({ + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'ArrayTable.Column', + 'x-component-props': { + title: `Title` + } + } + }) + if (operationNode) { + operationNode.parent.insertBefore(tableColumn) + } else { + ensureObjectItemsNode(node).append(tableColumn) + } + } + }, + { + title: node.getMessage('addOperation'), + icon: 'AddOperation', + onClick: () => { + const oldOperationNode = findNodeByComponentPath(node, [ + 'ArrayTable', + '*', + 'ArrayTable.Column', + (name) => { + return ( + name === 'ArrayTable.Remove' || + name === 'ArrayTable.MoveDown' || + name === 'ArrayTable.MoveUp' + ) + } + ]) + const oldAdditionNode = findNodeByComponentPath(node, [ + 'ArrayTable', + 'ArrayTable.Addition' + ]) + if (!oldOperationNode) { + const operationNode = new TreeNode({ + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'ArrayTable.Column', + 'x-component-props': { + title: `操作` + } + }, + children: [ + { + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'ArrayTable.Remove' + } + }, + { + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'ArrayTable.MoveDown' + } + }, + { + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'ArrayTable.MoveUp' + } + } + ] + }) + ensureObjectItemsNode(node).append(operationNode) + } + if (!oldAdditionNode) { + const additionNode = new TreeNode({ + componentName: 'Field', + props: { + type: 'void', + title: 'Addition', + 'x-component': 'ArrayTable.Addition' + } + }) + ensureObjectItemsNode(node).insertAfter(additionNode) + } + } + } + ]} + /> +
+ ) + } + } + }) + ), + { + Behavior: createBehavior(createArrayBehavior('ArrayTable'), { + name: 'ArrayTable.Column', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'ArrayTable.Column', + designerProps: { + droppable: true, + allowDrop: (node) => + node.props['type'] === 'object' && node.parent?.props?.['x-component'] === 'ArrayTable', + propsSchema: createVoidFieldSchema(AllSchemas.ArrayTable.Column) + }, + designerLocales: AllLocales.ArrayTableColumn + }), + Resource: createResource({ + icon: 'ArrayTableSource', + elements: [ + { + componentName: 'Field', + props: { + type: 'array', + 'x-decorator': 'FormItem', + 'x-component': 'ArrayTable' + } + } + ] + }), + Column: () => null, + Index: ArrayBase.Index, + SortHandle: ArrayBase.SortHandle, + Addition: ArrayBase.Addition, + Remove: ArrayBase.Remove, + MoveDown: ArrayBase.MoveDown, + MoveUp: ArrayBase.MoveUp, + useArray: ArrayBase.useArray, + useIndex: ArrayBase.useIndex, + useRecord: ArrayBase.useRecord + } +) diff --git a/packages/prototypes/src/components/ArrayTable/styles.less b/packages/prototypes/src/components/ArrayTable/styles.less new file mode 100644 index 0000000..a637451 --- /dev/null +++ b/packages/prototypes/src/components/ArrayTable/styles.less @@ -0,0 +1,5 @@ +@import '../../styles.less'; + +.dn-array-table { + background-color: @component-background; +} diff --git a/packages/prototypes/src/components/Card/index.ts b/packages/prototypes/src/components/Card/index.ts new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/Card/index.ts @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/Card/preview.tsx b/packages/prototypes/src/components/Card/preview.tsx new file mode 100644 index 0000000..3715366 --- /dev/null +++ b/packages/prototypes/src/components/Card/preview.tsx @@ -0,0 +1,62 @@ +import { defineComponent, unref } from 'vue' +import { Card as AntCard } from 'ant-design-vue' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { createBehavior, createResource } from '@pind/designable-core' +import { uid } from '@pind/designable-shared' +import { useTreeNode, TreeNodeWidget, DroppableWidget } from '@formily/antdv-designable' +import { createVoidFieldSchema } from '../Field' +import { AllSchemas } from '../../schemas' +import { AllLocales } from '../../locales' + +export const Card = composeExport( + defineComponent({ + props: { title: {} }, + setup(props, { attrs }) { + const nodeRef = useTreeNode() + + return () => { + const node = unref(nodeRef) + + return ( + {props.title}} + > + {node.children.length ? ( + node.children.map((child) => ) + ) : ( + + )} + + ) + } + } + }), + { + Behavior: createBehavior({ + name: 'Card', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'Card', + designerProps: { + droppable: true, + propsSchema: createVoidFieldSchema(AllSchemas.Card) + }, + designerLocales: AllLocales.Card + }), + Resource: createResource({ + icon: 'CardSource', + elements: [ + { + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'Card', + 'x-component-props': { + title: 'Title' + } + } + } + ] + }) + } +) diff --git a/packages/prototypes/src/components/Cascader/index.ts b/packages/prototypes/src/components/Cascader/index.ts new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/Cascader/index.ts @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/Cascader/preview.tsx b/packages/prototypes/src/components/Cascader/preview.tsx new file mode 100644 index 0000000..56550da --- /dev/null +++ b/packages/prototypes/src/components/Cascader/preview.tsx @@ -0,0 +1,65 @@ +import { Cascader as FormilyCascader } from '@formily/antdv' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { createBehavior, createResource } from '@pind/designable-core' +import { createFieldSchema } from '../Field' +import { AllSchemas } from '../../schemas' +import { AllLocales } from '../../locales' + +export const Cascader = composeExport(FormilyCascader, { + Behavior: createBehavior({ + name: 'Cascader', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'Cascader', + designerProps: { + propsSchema: createFieldSchema(AllSchemas.Cascader) + }, + designerLocales: AllLocales.Cascader + }), + Resource: createResource({ + icon: 'CascaderSource', + elements: [ + { + componentName: 'Field', + props: { + title: 'Cascader', + enum: [ + { + value: 'zhejiang', + label: 'Zhejiang', + children: [ + { + value: 'hangzhou', + label: 'Hangzhou', + children: [ + { + value: 'xihu', + label: 'West Lake' + } + ] + } + ] + }, + { + value: 'jiangsu', + label: 'Jiangsu', + children: [ + { + value: 'nanjing', + label: 'Nanjing', + children: [ + { + value: 'zhonghuamen', + label: 'Zhong Hua Men' + } + ] + } + ] + } + ], + 'x-decorator': 'FormItem', + 'x-component': 'Cascader' + } + } + ] + }) +}) diff --git a/packages/prototypes/src/components/Checkbox/index.ts b/packages/prototypes/src/components/Checkbox/index.ts new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/Checkbox/index.ts @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/Checkbox/preview.tsx b/packages/prototypes/src/components/Checkbox/preview.tsx new file mode 100644 index 0000000..325a10b --- /dev/null +++ b/packages/prototypes/src/components/Checkbox/preview.tsx @@ -0,0 +1,36 @@ +import { Checkbox as FormilyCheckbox } from '@formily/antdv' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { createBehavior, createResource } from '@pind/designable-core' +import { createFieldSchema } from '../Field' +import { AllSchemas } from '../../schemas' +import { AllLocales } from '../../locales' + +export const Checkbox = composeExport(FormilyCheckbox, { + Behavior: createBehavior({ + name: 'Checkbox.Group', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'Checkbox.Group', + designerProps: { + propsSchema: createFieldSchema(AllSchemas.Checkbox.Group) + }, + designerLocales: AllLocales.CheckboxGroup + }), + Resource: createResource({ + icon: 'CheckboxGroupSource', + elements: [ + { + componentName: 'Field', + props: { + type: 'array' || 'Array', + title: 'Checkbox Group', + enum: [ + { label: '选项1', value: 1 }, + { label: '选项2', value: 2 } + ], + 'x-decorator': 'FormItem', + 'x-component': 'Checkbox.Group' + } + } + ] + }) +}) diff --git a/packages/prototypes/src/components/DatePicker/index.ts b/packages/prototypes/src/components/DatePicker/index.ts new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/DatePicker/index.ts @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/DatePicker/preview.tsx b/packages/prototypes/src/components/DatePicker/preview.tsx new file mode 100644 index 0000000..43446e0 --- /dev/null +++ b/packages/prototypes/src/components/DatePicker/preview.tsx @@ -0,0 +1,59 @@ +import { DatePicker as FormilyDatePicker } from '@formily/antdv' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { createBehavior, createResource } from '@pind/designable-core' +import { createFieldSchema } from '../Field' +import { AllSchemas } from '../../schemas' +import { AllLocales } from '../../locales' + +export const DatePicker = composeExport(FormilyDatePicker, { + Behavior: createBehavior( + { + name: 'DatePicker', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'DatePicker', + designerProps: { + propsSchema: createFieldSchema(AllSchemas.DatePicker) + }, + designerLocales: AllLocales.DatePicker + }, + { + name: 'DateRangePicker', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'DatePicker.RangePicker', + designerProps: { + propsSchema: createFieldSchema(AllSchemas.DatePicker.RangePicker) + }, + designerLocales: AllLocales.DateRangePicker + } + ), + Resource: createResource( + { + icon: 'DatePickerSource', + elements: [ + { + componentName: 'Field', + props: { + type: 'string', + title: 'DatePicker', + 'x-decorator': 'FormItem', + 'x-component': 'DatePicker' + } + } + ] + }, + { + icon: 'DateRangePickerSource', + elements: [ + { + componentName: 'Field', + props: { + type: 'string', + title: 'DateRangePicker', + 'x-decorator': 'FormItem', + 'x-component': 'DatePicker.RangePicker' + } + } + ] + } + ) +}) diff --git a/packages/prototypes/src/components/Field/index.ts b/packages/prototypes/src/components/Field/index.ts new file mode 100644 index 0000000..7eb57a8 --- /dev/null +++ b/packages/prototypes/src/components/Field/index.ts @@ -0,0 +1,2 @@ +export * from './preview' +export * from './shared' diff --git a/packages/prototypes/src/components/Field/preview.tsx b/packages/prototypes/src/components/Field/preview.tsx new file mode 100644 index 0000000..beaf71c --- /dev/null +++ b/packages/prototypes/src/components/Field/preview.tsx @@ -0,0 +1,176 @@ +import { createBehavior } from '@pind/designable-core' +import { isArr, isFn, isStr } from '@pind/designable-shared' +import { FormPath } from '@formily/core' +import { toJS } from '@formily/reactive' +import { observer } from '@formily/reactive-vue' +import { each, reduce } from '@formily/shared' +import type { ISchema } from '@formily/vue' +import { + ArrayField, + h as CreateElement, + Field as InternalField, + ObjectField, + Schema, + VoidField +} from '@formily/vue' +import { FormItem } from '@formily/antdv' +import { useComponents, useDesigner, useTreeNode } from '@formily/antdv-designable' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { defineComponent } from 'vue' +import { Container } from '../../common/Container' +import { AllLocales } from '../../locales' + +Schema.silent(true) + +const SchemaStateMap = { + title: 'title', + description: 'description', + default: 'value', + enum: 'dataSource', + readOnly: 'readOnly', + writeOnly: 'editable', + required: 'required', + 'x-content': 'content', + 'x-value': 'value', + 'x-editable': 'editable', + 'x-disabled': 'disabled', + 'x-read-pretty': 'readPretty', + 'x-read-only': 'readOnly', + 'x-visible': 'visible', + 'x-hidden': 'hidden', + 'x-display': 'display', + 'x-pattern': 'pattern' +} + +const NeedShownExpression = { + title: true, + description: true, + default: true, + 'x-content': true, + 'x-value': true +} + +const isExpression = (val: any) => isStr(val) && /^\{\{.*\}\}$/.test(val) + +const filterExpression = (val: any) => { + if (typeof val === 'object') { + const isArray = isArr(val) + const results = reduce( + val, + (buf: any, value, key) => { + if (isExpression(value)) { + return buf + } else { + const results = filterExpression(value) + if (results === undefined || results === null) return buf + if (isArray) { + return buf.concat([results]) + } + buf[key] = results + return buf + } + }, + isArray ? [] : {} + ) + return results + } + if (isExpression(val)) { + return + } + return val +} + +const toDesignableFieldProps = ( + schema: ISchema, + components: any, + nodeIdAttrName: string, + id: string +) => { + const results: any = {} + each(SchemaStateMap, (fieldKey, schemaKey) => { + const value = schema[schemaKey] + if (isExpression(value)) { + if (!NeedShownExpression[schemaKey]) return + if (value) { + results[fieldKey] = value + return + } + } else if (value) { + results[fieldKey] = filterExpression(value) + } + }) + if (!components['FormItem']) { + components['FormItem'] = FormItem + } + const decorator = schema['x-decorator'] && FormPath.getIn(components, schema['x-decorator']) + const component = schema['x-component'] && FormPath.getIn(components, schema['x-component']) + const decoratorProps = schema['x-decorator-props'] || {} + const componentProps = schema['x-component-props'] || {} + + if (decorator) { + results.decorator = [decorator, toJS(decoratorProps)] + } + if (component) { + // 有的是functional 有的是 正常的 vueComponent + results.component = [ + isFn(component) + ? component + : Object.assign({}, component, { Behavior: null, Resource: null }), + toJS(componentProps) + ] + } + if (decorator) { + FormPath.setIn(results['decorator'][1], nodeIdAttrName, id) + } else if (component) { + FormPath.setIn(results['component'][1], nodeIdAttrName, id) + } + // vue为异步渲染需要进行缓存 不然就变成了函数 + const title = results.title + results.title = results.title && (() => {title}) + // TODO::formily vue 貌似不支持呢 + results.description = results.description // (() => {description}) + return results +} +// +const FieldComponent = observer( + defineComponent({ + name: 'DnField', + setup(_props, { attrs, slots }) { + const designerRef = useDesigner() + const componentsRef = useComponents() + const nodeRef = useTreeNode() + const props = attrs as ISchema + return () => { + if (!nodeRef.value) return null + const fieldProps = toDesignableFieldProps( + props, + componentsRef.value, + designerRef.value.props.nodeIdAttrName, + nodeRef.value.id + ) + if (props.type === 'object') { + return ( + + + {slots.default?.()} + + + ) + } else if (props.type === 'array') { + return CreateElement(ArrayField, { ...fieldProps, name: nodeRef.value.id }, slots) + } else if (nodeRef.value.props.type === 'void') { + return CreateElement(VoidField, { ...fieldProps, name: nodeRef.value.id }, slots) + } + return CreateElement(InternalField, { ...fieldProps, name: nodeRef.value.id }, {}) + } + } + }) +) + +export const Field = composeExport(FieldComponent, { + Behavior: createBehavior({ + name: 'Field', + selector: 'Field', + designerLocales: AllLocales.Field + }) +}) diff --git a/packages/prototypes/src/components/Field/shared.ts b/packages/prototypes/src/components/Field/shared.ts new file mode 100644 index 0000000..b9e62a1 --- /dev/null +++ b/packages/prototypes/src/components/Field/shared.ts @@ -0,0 +1,230 @@ +import type { ISchema } from '@formily/json-schema' +import { DataSourceSetter, ReactionsSetter, ValidatorSetter } from '@formily/antdv-setters' +import { FormItemSwitcher } from '../../common/FormItemSwitcher' +import { AllSchemas } from '../../schemas' + +// TODO::setter没做 +export const createComponentSchema = (component: ISchema, decorator: ISchema) => { + return { + 'component-group': component && { + type: 'void', + 'x-component': 'CollapseItem', + 'x-reactions': { + fulfill: { + state: { + visible: '{{!!$form.values["x-component"]}}' + } + } + }, + properties: { + 'x-component-props': component + } + }, + 'decorator-group': decorator && { + type: 'void', + 'x-component': 'CollapseItem', + 'x-component-props': { defaultExpand: false }, + 'x-reactions': { + fulfill: { + state: { + visible: '{{!!$form.values["x-decorator"]}}' + } + } + }, + properties: { + 'x-decorator-props': decorator + } + }, + 'component-style-group': { + type: 'void', + 'x-component': 'CollapseItem', + 'x-component-props': { defaultExpand: false }, + 'x-reactions': { + fulfill: { + state: { + visible: '{{!!$form.values["x-component"]}}' + } + } + }, + properties: { + 'x-component-props.style': AllSchemas.CSSStyle + } + }, + 'decorator-style-group': { + type: 'void', + 'x-component': 'CollapseItem', + 'x-component-props': { defaultExpand: false }, + 'x-reactions': { + fulfill: { + state: { + visible: '{{!!$form.values["x-decorator"]}}' + } + } + }, + properties: { + 'x-decorator-props.style': AllSchemas.CSSStyle + } + } + } +} + +export const createFieldSchema = ( + component?: ISchema, + decorator: ISchema = AllSchemas.FormItem +): ISchema => { + return { + type: 'object', + properties: { + 'field-group': { + type: 'void', + 'x-component': 'CollapseItem', + properties: { + name: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + title: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + description: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input.TextArea', + 'x-component-props': { + rows: 1 + } + }, + 'x-display': { + default: 'visible', + type: 'string', + enum: ['visible', 'hidden', 'none', ''], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': {} + }, + 'x-pattern': { + default: 'editable', + type: 'string', + enum: ['editable', 'disabled', 'readOnly', 'readPretty', ''], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': {} + }, + default: { + 'x-decorator': 'FormItem', + 'x-component': 'ValueInput' + }, + enum: { + 'x-decorator': 'FormItem', + 'x-component': DataSourceSetter + }, + 'x-reactions': { + 'x-decorator': 'FormItem', + 'x-component': ReactionsSetter + }, + 'x-validator': { + type: 'array', + 'x-component': ValidatorSetter + }, + required: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + } + } + }, + ...createComponentSchema(component, decorator) + } + } +} + +export const createVoidFieldSchema = ( + component?: ISchema, + decorator: ISchema = AllSchemas.FormItem +) => { + return { + type: 'object', + properties: { + 'field-group': { + type: 'void', + 'x-component': 'CollapseItem', + properties: { + name: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + title: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + }, + 'x-reactions': { + fulfill: { + state: { + hidden: '{{$form.values["x-decorator"] === "FormItem"}}' + } + } + } + }, + description: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input.TextArea', + 'x-reactions': { + fulfill: { + state: { + hidden: '{{$form.values["x-decorator"] === "FormItem"}}' + } + } + } + }, + 'x-display': { + default: 'visible', + type: 'string', + enum: ['visible', 'hidden', 'none', ''], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + allowClear: true + } + }, + 'x-pattern': { + default: 'editable', + type: 'string', + enum: ['editable', 'disabled', 'readOnly', 'readPretty', ''], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + allowClear: true + } + }, + 'x-reactions': { + 'x-decorator': 'FormItem', + 'x-component': ReactionsSetter + }, + 'x-decorator': { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': FormItemSwitcher + } + } + }, + ...createComponentSchema(component, decorator) + } + } +} diff --git a/packages/prototypes/src/components/Form/index.tsx b/packages/prototypes/src/components/Form/index.tsx new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/Form/index.tsx @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/Form/preview.tsx b/packages/prototypes/src/components/Form/preview.tsx new file mode 100644 index 0000000..cf42200 --- /dev/null +++ b/packages/prototypes/src/components/Form/preview.tsx @@ -0,0 +1,76 @@ +import { createBehavior, createResource } from '@pind/designable-core' +import { createForm } from '@formily/core' +import { observer } from '@formily/reactive-vue' +import { Form as FormilyForm } from '@formily/antdv' +import { usePrefix } from '@formily/antdv-designable' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { computed, defineComponent, unref } from 'vue' +import { AllSchemas } from '../../schemas' +import { AllLocales } from '../../locales' +import './styles.less' + +const FormComponent = observer( + defineComponent({ + name: 'DnForm', + setup(props, { slots, attrs }) { + const prefix = usePrefix('designable-form') + const formRef = computed(() => + createForm({ + designable: true + }) + ) + return () => { + const form = unref(formRef) + + return ( + + {slots.default?.()} + + ) + } + } + }) +) + +export const Form = composeExport(FormComponent, { + Behavior: createBehavior({ + name: 'Form', + selector: (node) => node.componentName === 'Form', + designerProps(node) { + return { + draggable: !node.isRoot, + cloneable: !node.isRoot, + deletable: !node.isRoot, + droppable: true, + propsSchema: AllSchemas.Form, + defaultProps: { + labelCol: 6, + wrapperCol: 12, + colon: false, + feedbackLayout: 'loose', + size: 'default', + layout: 'horizontal', + tooltipLayout: 'icon', + labelAlign: 'right', + wrapperAlign: 'left', + shallow: true, + bordered: true + } + } + }, + designerLocales: AllLocales.Form + }), + Resource: createResource({ + title: { 'zh-CN': '表单', 'en-US': 'Form' }, + icon: 'FormLayoutSource', + elements: [ + { + componentName: 'Field', + props: { + type: 'object', + 'x-component': 'Form' + } + } + ] + }) +}) diff --git a/packages/prototypes/src/components/Form/styles.less b/packages/prototypes/src/components/Form/styles.less new file mode 100644 index 0000000..ea00e9a --- /dev/null +++ b/packages/prototypes/src/components/Form/styles.less @@ -0,0 +1,42 @@ +@import (reference) '../../styles.less'; + +.dn-designable-form { + width: 100%; + height: 100%; + min-height: 80vh; + + .@{ant-prefix}-input, + .@{ant-prefix}-input-number, + .@{ant-prefix}-input-affix-wrapper, + .@{ant-prefix}-cascader-picker, + .@{ant-prefix}-picker-input, + .@{ant-prefix}-picker, + .@{ant-prefix}-time-picker, + .@{ant-prefix}-calendar-picker, + .@{ant-prefix}-cascader-picker-label, + .@{ant-prefix}-slider, + .@{ant-prefix}-checkbox, + .@{ant-prefix}-cascader, + .@{ant-prefix}-textarea, + .@{ant-prefix}-rate, + .@{ant-prefix}-switch, + .@{ant-prefix}-radio, + .@{ant-prefix}-radio-wrapper, + .@{ant-prefix}-checkbox-group, + .@{ant-prefix}-checkbox-wrapper, + .@{ant-prefix}-radio-group, + .@{ant-prefix}-upload, + .@{ant-prefix}-transfer, + .@{ant-prefix}-select, + .@{ant-prefix}-select-selector { + pointer-events: none !important; + + input { + pointer-events: none !important; + } + } + + .ant-icon svg { + pointer-events: none; + } +} diff --git a/packages/prototypes/src/components/FormCollapse/index.ts b/packages/prototypes/src/components/FormCollapse/index.ts new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/FormCollapse/index.ts @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/FormCollapse/preview.tsx b/packages/prototypes/src/components/FormCollapse/preview.tsx new file mode 100644 index 0000000..ff778a2 --- /dev/null +++ b/packages/prototypes/src/components/FormCollapse/preview.tsx @@ -0,0 +1,210 @@ +import { observer } from '@formily/reactive-vue' +import { Collapse } from 'ant-design-vue' +import { TreeNode, createBehavior, createResource } from '@pind/designable-core' +import { + useTreeNode, + useNodeIdProps, + DroppableWidget, + TreeNodeWidget, + useSelection +} from '@formily/antdv-designable' +import { toArr } from '@formily/shared' +import { defineComponent, nextTick, ref } from 'vue' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { LoadTemplate } from '../../common/LoadTemplate' +import { useDropTemplate } from '../../hooks' +import { createVoidFieldSchema } from '../Field' +import { AllSchemas } from '../../schemas' +import { AllLocales } from '../../locales' +import { matchComponent } from '../../shared' + +const parseCollapse = (parent: TreeNode) => { + const tabs: TreeNode[] = [] + parent.children.forEach((node) => { + if (matchComponent(node, 'FormCollapse.CollapsePanel')) { + tabs.push(node) + } + }) + return tabs +} +// CollapsePanel: FragmentComponent, +// & { +// CollapsePanel?: VueComponent +// } +export const FormCollapse = composeExport( + observer( + defineComponent({ + name: 'DnFormCollapse', + props: { accordion: Boolean }, + setup(props, { attrs }) { + const activeKeyRef = ref([]) + + const setActiveKey = (value) => { + activeKeyRef.value = value + } + const nodeRef = useTreeNode() + const nodeIdRef = useNodeIdProps() + const selectionRef = useSelection() + + const designerRef = useDropTemplate('FormCollapse', (source) => { + const panelNode = new TreeNode({ + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'FormCollapse.CollapsePanel', + 'x-component-props': { + header: `Unnamed Title` + } + }, + children: source + }) + + setActiveKey(toArr(activeKeyRef.value).concat(panelNode.id)) + return [panelNode] + }) + + const getCorrectActiveKey = (activeKey: string[] | string, tabs: TreeNode[]) => { + if (!tabs.length || !activeKey?.length) { + if (props.accordion) { + return tabs[0]?.id + } + return tabs.map((item) => item.id) + } + if ( + tabs.some((node) => + Array.isArray(activeKey) ? activeKey.includes(node.id) : node.id === activeKey + ) + ) { + return props.accordion ? activeKey[activeKey.length - 1] : activeKey + } + return props.accordion ? tabs[tabs.length - 1].id : [tabs[tabs.length - 1].id] + } + + return () => { + const node = nodeRef.value + const nodeId = nodeIdRef.value + const activeKey = activeKeyRef.value + const designer = designerRef.value + + const panels = parseCollapse(node) + + const renderCollapse = () => { + if (!node.children?.length) return + return ( + + {panels.map((panel) => { + const props = panel.props['x-component-props'] || {} + return ( + + {props.header} + + } + > +
+ {/* TODO::reactive的flow,重新渲染了整个子树 */} + {panel.children.length ? ( + + ) : ( + + )} +
+
+ ) + })} +
+ ) + } + return ( +
+ {renderCollapse()} + { + const tabPane = new TreeNode({ + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'FormCollapse.CollapsePanel', + 'x-component-props': { + header: `Unnamed Title` + } + } + }) + node.append(tabPane) + const keys = toArr(activeKey) + setActiveKey(keys.concat(tabPane.id)) + nextTick(() => { + selectionRef.value.select(tabPane.id) + }) + } + } + ]} + /> +
+ ) + } + } + }) + ), + { + Behavior: createBehavior( + { + name: 'FormCollapse', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'FormCollapse', + designerProps: { + droppable: true, + allowAppend: (target, source) => + target.children.length === 0 || + source.every((node) => node.props['x-component'] === 'FormCollapse.CollapsePanel'), + propsSchema: createVoidFieldSchema(AllSchemas.FormCollapse) + }, + designerLocales: AllLocales.FormCollapse + }, + { + name: 'FormCollapse.CollapsePanel', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'FormCollapse.CollapsePanel', + designerProps: { + droppable: true, + allowDrop: (node) => node.props['x-component'] === 'FormCollapse', + propsSchema: createVoidFieldSchema(AllSchemas.FormCollapse.CollapsePanel) + }, + designerLocales: AllLocales.FormCollapsePanel + } + ), + Resource: createResource({ + icon: 'CollapseSource', + elements: [ + { + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'FormCollapse' + } + } + ] + }) + } +) diff --git a/packages/prototypes/src/components/FormGrid/index.ts b/packages/prototypes/src/components/FormGrid/index.ts new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/FormGrid/index.ts @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/FormGrid/preview.tsx b/packages/prototypes/src/components/FormGrid/preview.tsx new file mode 100644 index 0000000..6f3edfa --- /dev/null +++ b/packages/prototypes/src/components/FormGrid/preview.tsx @@ -0,0 +1,130 @@ +import { FormGrid as FormilyGird } from '@formily/antdv' +import { TreeNode, createBehavior, createResource } from '@pind/designable-core' +import { useTreeNode, useNodeIdProps, DroppableWidget } from '@formily/antdv-designable' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { defineComponent } from 'vue' +import { LoadTemplate } from '../../common/LoadTemplate' +import { createFieldSchema } from '../Field' +import { AllSchemas } from '../../schemas' +import { AllLocales } from '../../locales' +import './styles.less' + +export const FormGrid = composeExport( + defineComponent({ + inheritAttrs: false, + setup(props, { slots, attrs }) { + const nodeRef = useTreeNode() + const nodeIdRef = useNodeIdProps() + + return () => { + if (nodeRef.value.children.length === 0) return + const totalColumns = nodeRef.value.children.reduce( + (buf, child) => buf + (child.props?.['x-component-props']?.gridSpan ?? 1), + 0 + ) + return ( +
+ + {slots.default?.()} + + { + const column = new TreeNode({ + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'FormGrid.GridColumn' + } + }) + nodeRef.value.append(column) + } + } + ]} + /> +
+ ) + } + } + }), + { + GridColumn: defineComponent({ + props: { gridSpan: { default: 1 } }, + setup(props, { attrs, slots }) { + return () => { + return ( + + {slots.default?.()} + + ) + } + } + }), + Behavior: createBehavior( + { + name: 'FormGrid', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'FormGrid', + designerProps: { + droppable: true, + allowDrop: (node) => node.props['x-component'] !== 'FormGrid', + propsSchema: createFieldSchema(AllSchemas.FormGrid) + }, + designerLocales: AllLocales.FormGrid + }, + { + name: 'FormGrid.GridColumn', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'FormGrid.GridColumn', + designerProps: { + droppable: true, + allowDrop: (node) => node.props['x-component'] === 'FormGrid', + propsSchema: createFieldSchema(AllSchemas.FormGrid.GridColumn) + }, + designerLocales: AllLocales.FormGridColumn + } + ), + Resource: createResource({ + icon: 'GridSource', + elements: [ + { + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'FormGrid' + }, + children: [ + { + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'FormGrid.GridColumn' + } + }, + { + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'FormGrid.GridColumn' + } + }, + { + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'FormGrid.GridColumn' + } + } + ] + } + ] + }) + } +) diff --git a/packages/prototypes/src/components/FormGrid/styles.less b/packages/prototypes/src/components/FormGrid/styles.less new file mode 100644 index 0000000..7355667 --- /dev/null +++ b/packages/prototypes/src/components/FormGrid/styles.less @@ -0,0 +1,5 @@ +.dn-grid-column { + margin: 4px; + min-height: 60px; + border: 1px dashed #aaa; +} diff --git a/packages/prototypes/src/components/FormLayout/index.ts b/packages/prototypes/src/components/FormLayout/index.ts new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/FormLayout/index.ts @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/FormLayout/preview.ts b/packages/prototypes/src/components/FormLayout/preview.ts new file mode 100644 index 0000000..0de6752 --- /dev/null +++ b/packages/prototypes/src/components/FormLayout/preview.ts @@ -0,0 +1,32 @@ +import { FormLayout as FormilyFormLayout } from '@formily/antdv' +import { createBehavior, createResource } from '@pind/designable-core' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { withContainer } from '../../common/Container' +import { createVoidFieldSchema } from '../Field' +import { AllSchemas } from '../../schemas' +import { AllLocales } from '../../locales' + +export const FormLayout = composeExport(withContainer(FormilyFormLayout), { + Behavior: createBehavior({ + name: 'FormLayout', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'FormLayout', + designerProps: { + droppable: true, + propsSchema: createVoidFieldSchema(AllSchemas.FormLayout) + }, + designerLocales: AllLocales.FormLayout + }), + Resource: createResource({ + icon: 'FormLayoutSource', + elements: [ + { + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'FormLayout' + } + } + ] + }) +}) diff --git a/packages/prototypes/src/components/FormTab/index.ts b/packages/prototypes/src/components/FormTab/index.ts new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/FormTab/index.ts @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/FormTab/preview.tsx b/packages/prototypes/src/components/FormTab/preview.tsx new file mode 100644 index 0000000..53aaf2f --- /dev/null +++ b/packages/prototypes/src/components/FormTab/preview.tsx @@ -0,0 +1,193 @@ +// import React, { Fragment, useState } from 'react' +import { createBehavior, createResource, TreeNode } from '@pind/designable-core' +import { uid } from '@pind/designable-shared' +import { observer } from '@formily/reactive-vue' +import { + DroppableWidget, + TreeNodeWidget, + useNodeIdProps, + useSelection, + useTreeNode +} from '@formily/antdv-designable' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { Tabs } from 'ant-design-vue' +import { defineComponent, ref } from 'vue' +import { LoadTemplate } from '../../common/LoadTemplate' +import { useDropTemplate } from '../../hooks' +import { AllLocales } from '../../locales' +import { AllSchemas } from '../../schemas' +import { matchComponent } from '../../shared' +import { createVoidFieldSchema } from '../Field' +// import type { Tabs as TabsProps } from 'ant-design-vue' + +const parseTabs = (parent: TreeNode) => { + const tabs: TreeNode[] = [] + parent.children.forEach((node) => { + if (matchComponent(node, 'FormTab.TabPane')) { + tabs.push(node) + } + }) + return tabs +} + +const getCorrectActiveKey = (activeKey: string, tabs: TreeNode[]) => { + if (tabs.length === 0) return + if (tabs.some((node) => node.id === activeKey)) return activeKey + return tabs[tabs.length - 1].id +} +// { +// TabPane?: VueComponent +// } +export const FormTab = composeExport( + observer( + defineComponent({ + setup(props, { attrs }) { + const activeKeyRef = ref() + const nodeIdRef = useNodeIdProps() + const nodeRef = useTreeNode() + const selectionRef = useSelection() + const designerRef = useDropTemplate('FormTab', (source) => { + return [ + new TreeNode({ + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'FormTab.TabPane', + 'x-component-props': { + label: `Unnamed Title` + } + }, + children: source + }) + ] + }) + + const setActiveKey = (value) => { + activeKeyRef.value = value + selectionRef.value.select(value) + } + return () => { + const activeKey = activeKeyRef.value + const nodeId = nodeIdRef.value + const node = nodeRef.value + const designer = designerRef.value + + const tabs = parseTabs(node) + const renderTabs = () => { + if (!node.children?.length) return + return ( + { + setActiveKey(id) + }} + activeKey={getCorrectActiveKey(activeKey, tabs)} + > + {tabs.map((tab) => { + const props = tab.props['x-component-props'] || {} + return ( + + {props.tab} + + } + > +
+ {tab.children.length ? ( + + ) : ( + + )} +
+
+ ) + })} +
+ ) + } + return ( +
+ {renderTabs()} + { + const tabPane = new TreeNode({ + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'FormTab.TabPane', + 'x-component-props': { + tab: `Unnamed Title` + } + } + }) + node.append(tabPane) + setActiveKey(tabPane.id) + } + } + ]} + /> +
+ ) + } + } + }) + ), + { + Behavior: createBehavior( + { + name: 'FormTab', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'FormTab', + designerProps: { + droppable: true, + allowAppend: (target, source) => + target.children.length === 0 || + source.every((node) => node.props['x-component'] === 'FormTab.TabPane'), + propsSchema: createVoidFieldSchema(AllSchemas.FormTab) + }, + designerLocales: AllLocales.FormTab + }, + { + name: 'FormTab.TabPane', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'FormTab.TabPane', + designerProps: { + droppable: true, + allowDrop: (node) => node.props['x-component'] === 'FormTab', + propsSchema: createVoidFieldSchema(AllSchemas.FormTab.TabPane) + }, + designerLocales: AllLocales.FormTabPane + } + ), + Resource: createResource({ + icon: 'TabSource', + elements: [ + { + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'FormTab' + } + } + ] + }) + } +) diff --git a/packages/prototypes/src/components/Input/index.ts b/packages/prototypes/src/components/Input/index.ts new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/Input/index.ts @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/Input/preview.ts b/packages/prototypes/src/components/Input/preview.ts new file mode 100644 index 0000000..af623ea --- /dev/null +++ b/packages/prototypes/src/components/Input/preview.ts @@ -0,0 +1,63 @@ +import { createBehavior, createResource } from '@pind/designable-core' +import { Input as FormilyInput } from '@formily/antdv' +import type { DnFC } from '@formily/antdv-designable' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { AllLocales } from '../../locales' +import { AllSchemas } from '../../schemas' +import { createFieldSchema } from '../Field' + +export const Input: DnFC> = composeExport( + FormilyInput, + { + Behavior: createBehavior( + { + name: 'Input', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'Input', + designerProps: { + propsSchema: createFieldSchema(AllSchemas.Input) + }, + designerLocales: AllLocales.Input + }, + { + name: 'Input.TextArea', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'Input.TextArea', + designerProps: { + propsSchema: createFieldSchema(AllSchemas.Input.TextArea) + }, + designerLocales: AllLocales.TextArea + } + ), + Resource: createResource( + { + icon: 'InputSource', + elements: [ + { + componentName: 'Field', + props: { + type: 'string', + title: 'Input', + 'x-decorator': 'FormItem', + 'x-component': 'Input' + } + } + ] + }, + { + icon: 'TextAreaSource', + elements: [ + { + componentName: 'Field', + props: { + type: 'string', + title: 'TextArea', + 'x-decorator': 'FormItem', + 'x-component': 'Input.TextArea' + } + } + ] + } + ) + } +) diff --git a/packages/prototypes/src/components/NumberPicker/index.ts b/packages/prototypes/src/components/NumberPicker/index.ts new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/NumberPicker/index.ts @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/NumberPicker/preview.ts b/packages/prototypes/src/components/NumberPicker/preview.ts new file mode 100644 index 0000000..a2ac2dd --- /dev/null +++ b/packages/prototypes/src/components/NumberPicker/preview.ts @@ -0,0 +1,37 @@ +import { InputNumber as FormilyInputNumber } from '@formily/antdv' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { createBehavior, createResource } from '@pind/designable-core' +import { createFieldSchema } from '../Field' +import { AllSchemas } from '../../schemas' +import { AllLocales } from '../../locales' + +const NumberPicker = composeExport(FormilyInputNumber, { + Behavior: createBehavior({ + name: 'InputNumber', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'InputNumber', + designerProps: { + propsSchema: createFieldSchema(AllSchemas.InputNumber) + }, + designerLocales: AllLocales.InputNumber + }), + Resource: createResource({ + icon: 'NumberPickerSource', + elements: [ + { + componentName: 'Field', + props: { + type: 'number', + title: 'InputNumber', + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber', + 'x-component-props': { + 'controls-position': 'right' + } + } + } + ] + }) +}) + +export const InputNumber = NumberPicker diff --git a/packages/prototypes/src/components/Object/index.ts b/packages/prototypes/src/components/Object/index.ts new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/Object/index.ts @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/Object/preview.tsx b/packages/prototypes/src/components/Object/preview.tsx new file mode 100644 index 0000000..70de326 --- /dev/null +++ b/packages/prototypes/src/components/Object/preview.tsx @@ -0,0 +1,29 @@ +import { createBehavior, createResource } from '@pind/designable-core' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { createFieldSchema } from '../Field' +import { Container } from '../../common/Container' +import { AllLocales } from '../../locales' + +export const ObjectContainer = composeExport(Container, { + Behavior: createBehavior({ + name: 'Object', + extends: ['Field'], + selector: (node) => node.props.type === 'object', + designerProps: { + droppable: true, + propsSchema: createFieldSchema() + }, + designerLocales: AllLocales.ObjectLocale + }), + Resource: createResource({ + icon: 'ObjectSource', + elements: [ + { + componentName: 'Field', + props: { + type: 'object' + } + } + ] + }) +}) diff --git a/packages/prototypes/src/components/Password/index.ts b/packages/prototypes/src/components/Password/index.ts new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/Password/index.ts @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/Password/preview.tsx b/packages/prototypes/src/components/Password/preview.tsx new file mode 100644 index 0000000..ca215ee --- /dev/null +++ b/packages/prototypes/src/components/Password/preview.tsx @@ -0,0 +1,39 @@ +import { Password as FormilyPassword } from '@formily/antdv' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { createBehavior, createResource } from '@pind/designable-core' +import { merge } from '@formily/shared' +import { createFieldSchema } from '../Field' +import { AllSchemas } from '../../schemas' +import { AllLocales } from '../../locales' + +export const Password = composeExport(FormilyPassword, { + Behavior: createBehavior({ + name: 'Password', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'Password', + designerProps: { + propsSchema: createFieldSchema(AllSchemas.Input) + }, + designerLocales: merge(AllLocales.Input, { + 'zh-CN': { + title: '密码输入' + }, + 'en-US': { + title: 'PassWord' + } + }) + }), + Resource: createResource({ + icon: 'PasswordSource', + elements: [ + { + componentName: 'Field', + props: { + title: 'Password', + 'x-decorator': 'FormItem', + 'x-component': 'Password' + } + } + ] + }) +}) diff --git a/packages/prototypes/src/components/Radio/index.ts b/packages/prototypes/src/components/Radio/index.ts new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/Radio/index.ts @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/Radio/preview.tsx b/packages/prototypes/src/components/Radio/preview.tsx new file mode 100644 index 0000000..93b12bc --- /dev/null +++ b/packages/prototypes/src/components/Radio/preview.tsx @@ -0,0 +1,36 @@ +import { Radio as FormilyRadio } from '@formily/antdv' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { createBehavior, createResource } from '@pind/designable-core' +import { createFieldSchema } from '../Field' +import { AllSchemas } from '../../schemas' +import { AllLocales } from '../../locales' + +export const Radio = composeExport(FormilyRadio, { + Behavior: createBehavior({ + name: 'Radio.Group', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'Radio.Group', + designerProps: { + propsSchema: createFieldSchema(AllSchemas.Radio.Group) + }, + designerLocales: AllLocales.RadioGroup + }), + Resource: createResource({ + icon: 'RadioGroupSource', + elements: [ + { + componentName: 'Field', + props: { + type: 'string | number', + title: 'Radio Group', + enum: [ + { label: '选项1', value: 1 }, + { label: '选项2', value: 2 } + ], + 'x-decorator': 'FormItem', + 'x-component': 'Radio.Group' + } + } + ] + }) +}) diff --git a/packages/prototypes/src/components/Rate/index.ts b/packages/prototypes/src/components/Rate/index.ts new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/Rate/index.ts @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/Rate/preview.tsx b/packages/prototypes/src/components/Rate/preview.tsx new file mode 100644 index 0000000..328b450 --- /dev/null +++ b/packages/prototypes/src/components/Rate/preview.tsx @@ -0,0 +1,32 @@ +import { Rate as AntRate } from 'ant-design-vue' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { createBehavior, createResource } from '@pind/designable-core' +import { createFieldSchema } from '../Field' +import { AllSchemas } from '../../schemas' +import { AllLocales } from '../../locales' + +export const Rate = composeExport(AntRate, { + Behavior: createBehavior({ + name: 'Rate', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'Rate', + designerProps: { + propsSchema: createFieldSchema(AllSchemas.Rate) + }, + designerLocales: AllLocales.Rate + }), + Resource: createResource({ + icon: 'RateSource', + elements: [ + { + componentName: 'Field', + props: { + type: 'number', + title: 'Rate', + 'x-decorator': 'FormItem', + 'x-component': 'Rate' + } + } + ] + }) +}) diff --git a/packages/prototypes/src/components/Select/index.ts b/packages/prototypes/src/components/Select/index.ts new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/Select/index.ts @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/Select/preview.tsx b/packages/prototypes/src/components/Select/preview.tsx new file mode 100644 index 0000000..7f9065b --- /dev/null +++ b/packages/prototypes/src/components/Select/preview.tsx @@ -0,0 +1,31 @@ +import { Select as FormilySelect } from '@formily/antdv' +import { createBehavior, createResource } from '@pind/designable-core' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { createFieldSchema } from '../Field' +import { AllSchemas } from '../../schemas' +import { AllLocales } from '../../locales' + +export const Select = composeExport(FormilySelect, { + Behavior: createBehavior({ + name: 'Select', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'Select', + designerProps: { + propsSchema: createFieldSchema(AllSchemas.Select) + }, + designerLocales: AllLocales.Select + }), + Resource: createResource({ + icon: 'SelectSource', + elements: [ + { + componentName: 'Field', + props: { + title: 'Select', + 'x-decorator': 'FormItem', + 'x-component': 'Select' + } + } + ] + }) +}) diff --git a/packages/prototypes/src/components/Slider/index.ts b/packages/prototypes/src/components/Slider/index.ts new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/Slider/index.ts @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/Slider/preview.tsx b/packages/prototypes/src/components/Slider/preview.tsx new file mode 100644 index 0000000..2518593 --- /dev/null +++ b/packages/prototypes/src/components/Slider/preview.tsx @@ -0,0 +1,32 @@ +import { Slider as AntSlider } from 'ant-design-vue' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { createBehavior, createResource } from '@pind/designable-core' +import { createFieldSchema } from '../Field' +import { AllSchemas } from '../../schemas' +import { AllLocales } from '../../locales' + +export const Slider = composeExport(AntSlider, { + Behavior: createBehavior({ + name: 'Slider', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'Slider', + designerProps: { + propsSchema: createFieldSchema(AllSchemas.Slider) + }, + designerLocales: AllLocales.Slider + }), + Resource: createResource({ + icon: 'SliderSource', + elements: [ + { + componentName: 'Field', + props: { + type: 'number', + title: 'Slider', + 'x-decorator': 'FormItem', + 'x-component': 'Slider' + } + } + ] + }) +}) diff --git a/packages/prototypes/src/components/Space/index.ts b/packages/prototypes/src/components/Space/index.ts new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/Space/index.ts @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/Space/preview.tsx b/packages/prototypes/src/components/Space/preview.tsx new file mode 100644 index 0000000..103bb11 --- /dev/null +++ b/packages/prototypes/src/components/Space/preview.tsx @@ -0,0 +1,33 @@ +import { Space as FormilySpace } from '@formily/antdv' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { createBehavior, createResource } from '@pind/designable-core' +import { createVoidFieldSchema } from '../Field' +import { withContainer } from '../../common/Container' +import { AllSchemas } from '../../schemas' +import { AllLocales } from '../../locales' + +export const Space = composeExport(withContainer(FormilySpace), { + Behavior: createBehavior({ + name: 'Space', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'Space', + designerProps: { + droppable: true, + inlineChildrenLayout: true, + propsSchema: createVoidFieldSchema(AllSchemas.Space) + }, + designerLocales: AllLocales.Space + }), + Resource: createResource({ + icon: 'SpaceSource', + elements: [ + { + componentName: 'Field', + props: { + type: 'void', + 'x-component': 'Space' + } + } + ] + }) +}) diff --git a/packages/prototypes/src/components/Switch/index.ts b/packages/prototypes/src/components/Switch/index.ts new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/Switch/index.ts @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/Switch/preview.tsx b/packages/prototypes/src/components/Switch/preview.tsx new file mode 100644 index 0000000..915dc1c --- /dev/null +++ b/packages/prototypes/src/components/Switch/preview.tsx @@ -0,0 +1,32 @@ +import { Switch as AntSwitch } from 'ant-design-vue' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { createBehavior, createResource } from '@pind/designable-core' +import { createFieldSchema } from '../Field' +import { AllSchemas } from '../../schemas' +import { AllLocales } from '../../locales' + +export const Switch = composeExport(AntSwitch, { + Behavior: createBehavior({ + name: 'Switch', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'Switch', + designerProps: { + propsSchema: createFieldSchema(AllSchemas.Switch) + }, + designerLocales: AllLocales.Switch + }), + Resource: createResource({ + icon: 'SwitchSource', + elements: [ + { + componentName: 'Field', + props: { + type: 'boolean', + title: 'Switch', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + } + } + ] + }) +}) diff --git a/packages/prototypes/src/components/Text/index.ts b/packages/prototypes/src/components/Text/index.ts new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/Text/index.ts @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/Text/preview.tsx b/packages/prototypes/src/components/Text/preview.tsx new file mode 100644 index 0000000..94396c3 --- /dev/null +++ b/packages/prototypes/src/components/Text/preview.tsx @@ -0,0 +1,62 @@ +import { createBehavior, createResource } from '@pind/designable-core' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { defineComponent } from 'vue' +import { createVoidFieldSchema } from '../Field' +import { AllSchemas } from '../../schemas' +import { AllLocales } from '../../locales' +import './styles.less' + +export interface IDesignableTextProps { + value?: string + content?: string + mode?: 'normal' | 'h1' | 'h2' | 'h3' | 'p' + style?: Record + className?: string +} + +export const Text = composeExport( + defineComponent({ + props: ['mode', 'content'], + setup(props, { attrs }) { + const TagName = props.mode === 'normal' || !props.mode ? 'div' : props.mode + return () => { + return ( + + {props.content} + + ) + } + } + }), + { + Behavior: createBehavior({ + name: 'Text', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'Text', + designerProps: { + propsSchema: createVoidFieldSchema(AllSchemas.Text) + }, + designerLocales: AllLocales.Text + }), + + Resource: createResource({ + icon: 'TextSource', + elements: [ + { + componentName: 'Field', + props: { + type: 'string', + 'x-component': 'Text' + } + } + ] + }) + } +) diff --git a/packages/prototypes/src/components/Text/styles.less b/packages/prototypes/src/components/Text/styles.less new file mode 100644 index 0000000..b94e412 --- /dev/null +++ b/packages/prototypes/src/components/Text/styles.less @@ -0,0 +1,10 @@ +.dn-text { + &:empty::before { + content: 'Please Input'; + display: block; + opacity: 0.6; + } + &:focus { + padding: 4px; + } +} diff --git a/packages/prototypes/src/components/TimePicker/index.ts b/packages/prototypes/src/components/TimePicker/index.ts new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/TimePicker/index.ts @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/TimePicker/preview.tsx b/packages/prototypes/src/components/TimePicker/preview.tsx new file mode 100644 index 0000000..7cc662f --- /dev/null +++ b/packages/prototypes/src/components/TimePicker/preview.tsx @@ -0,0 +1,32 @@ +import { TimePicker as FormilyTimePicker } from '@formily/antdv' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { createBehavior, createResource } from '@pind/designable-core' +import { createFieldSchema } from '../Field' +import { AllSchemas } from '../../schemas' +import { AllLocales } from '../../locales' + +export const TimePicker = composeExport(FormilyTimePicker, { + Behavior: createBehavior({ + name: 'TimePicker', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'TimePicker', + designerProps: { + propsSchema: createFieldSchema(AllSchemas.TimePicker) + }, + designerLocales: AllLocales.TimePicker + }), + Resource: createResource({ + icon: 'TimePickerSource', + elements: [ + { + componentName: 'Field', + props: { + type: 'string', + title: 'TimePicker', + 'x-decorator': 'FormItem', + 'x-component': 'TimePicker' + } + } + ] + }) +}) diff --git a/packages/prototypes/src/components/Transfer/index.ts b/packages/prototypes/src/components/Transfer/index.ts new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/Transfer/index.ts @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/Transfer/preview.tsx b/packages/prototypes/src/components/Transfer/preview.tsx new file mode 100644 index 0000000..9d60215 --- /dev/null +++ b/packages/prototypes/src/components/Transfer/preview.tsx @@ -0,0 +1,45 @@ +import { Transfer as FormilyTransfer } from '@formily/antdv' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { createBehavior, createResource } from '@pind/designable-core' +import { createFieldSchema } from '../Field' +import { AllSchemas } from '../../schemas' +import { AllLocales } from '../../locales' + +export const Transfer = composeExport(FormilyTransfer, { + Behavior: createBehavior({ + name: 'Transfer', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'Transfer', + designerProps: { + propsSchema: createFieldSchema(AllSchemas.Transfer) + }, + designerLocales: AllLocales.Transfer + }), + Resource: createResource({ + icon: 'TransferSource', + elements: [ + { + componentName: 'Field', + props: { + title: 'Transfer', + enum: [ + { + key: '1', + title: '项目1', + description: '描述项目1', + disabled: false + }, + { + key: '2', + title: '项目2', + description: '描述项目2', + disabled: true + } + ], + 'x-decorator': 'FormItem', + 'x-component': 'Transfer' + } + } + ] + }) +}) diff --git a/packages/prototypes/src/components/TreeSelect/index.ts b/packages/prototypes/src/components/TreeSelect/index.ts new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/TreeSelect/index.ts @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/TreeSelect/preview.tsx b/packages/prototypes/src/components/TreeSelect/preview.tsx new file mode 100644 index 0000000..bab0ed6 --- /dev/null +++ b/packages/prototypes/src/components/TreeSelect/preview.tsx @@ -0,0 +1,63 @@ +import { TreeSelect as FormilyTreeSelect } from '@formily/antdv' +import { createBehavior, createResource } from '@pind/designable-core' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { createFieldSchema } from '../Field' +import { AllSchemas } from '../../schemas' +import { AllLocales } from '../../locales' + +export const TreeSelect = composeExport(FormilyTreeSelect, { + Behavior: createBehavior({ + name: 'TreeSelect', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'TreeSelect', + designerProps: { + propsSchema: createFieldSchema(AllSchemas.TreeSelect) + }, + designerLocales: AllLocales.TreeSelect + }), + Resource: createResource({ + icon: 'TreeSelectSource', + elements: [ + { + componentName: 'Field', + props: { + title: 'TreeSelect', + enum: [ + { + value: 1, + label: '项目1', + children: [ + { + value: 11, + label: '项目1-1', + disableCheckbox: true, + selectable: true + }, + { + value: 12, + label: '项目1-2' + } + ] + }, + { + value: 2, + label: '项目2', + children: [ + { + value: 21, + label: '项目2-1' + }, + { + value: 12, + label: '项目2-2' + } + ] + } + ], + 'x-decorator': 'FormItem', + 'x-component': 'TreeSelect' + } + } + ] + }) +}) diff --git a/packages/prototypes/src/components/Upload/index.ts b/packages/prototypes/src/components/Upload/index.ts new file mode 100644 index 0000000..2d3d80b --- /dev/null +++ b/packages/prototypes/src/components/Upload/index.ts @@ -0,0 +1 @@ +export * from './preview' diff --git a/packages/prototypes/src/components/Upload/preview.tsx b/packages/prototypes/src/components/Upload/preview.tsx new file mode 100644 index 0000000..4af9901 --- /dev/null +++ b/packages/prototypes/src/components/Upload/preview.tsx @@ -0,0 +1,36 @@ +import { Upload as FormilyUpload } from '@formily/antdv' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { createBehavior, createResource } from '@pind/designable-core' +import { createFieldSchema } from '../Field' +import { AllSchemas } from '../../schemas' +import { AllLocales } from '../../locales' + +export const Upload = composeExport(FormilyUpload, { + Behavior: createBehavior({ + name: 'Upload', + extends: ['Field'], + selector: (node) => node.props['x-component'] === 'Upload', + designerProps: { + propsSchema: createFieldSchema(AllSchemas.Upload) + }, + designerLocales: AllLocales.Upload + }), + + Resource: createResource({ + icon: 'UploadSource', + elements: [ + { + componentName: 'Field', + props: { + type: 'Array', + title: '上传', + 'x-decorator': 'FormItem', + 'x-component': 'Upload', + 'x-component-props': { + textContent: '上传' + } + } + } + ] + }) +}) diff --git a/packages/prototypes/src/components/index.ts b/packages/prototypes/src/components/index.ts new file mode 100644 index 0000000..71019af --- /dev/null +++ b/packages/prototypes/src/components/index.ts @@ -0,0 +1,28 @@ +export * from './Field' +export * from './Form' +export * from './Input' +export * from './Select' +export * from './TreeSelect' +export * from './Cascader' +export * from './Radio' +export * from './Checkbox' +export * from './Slider' +export * from './Rate' +export * from './NumberPicker' +export * from './Transfer' +export * from './Password' +export * from './DatePicker' +export * from './TimePicker' +export * from './Upload' +export * from './Switch' +export * from './Text' +export * from './Card' +export * from './Space' +export * from './Object' +export * from './ArrayCards' +export * from './ArrayItems' +export * from './ArrayTable' +export * from './FormTab' +export * from './FormCollapse' +export * from './FormGrid' +export * from './FormLayout' diff --git a/packages/prototypes/src/hooks/index.ts b/packages/prototypes/src/hooks/index.ts new file mode 100644 index 0000000..6ab5860 --- /dev/null +++ b/packages/prototypes/src/hooks/index.ts @@ -0,0 +1 @@ +export * from './useDropTemplate' diff --git a/packages/prototypes/src/hooks/useDropTemplate.ts b/packages/prototypes/src/hooks/useDropTemplate.ts new file mode 100644 index 0000000..0cd2016 --- /dev/null +++ b/packages/prototypes/src/hooks/useDropTemplate.ts @@ -0,0 +1,24 @@ +import type { TreeNode } from '@pind/designable-core' +import { AppendNodeEvent } from '@pind/designable-core' +import { useDesigner } from '@formily/antdv-designable' +import { matchChildComponent, matchComponent } from '../shared' + +export const useDropTemplate = (name: string, getChildren: (source: TreeNode[]) => TreeNode[]) => { + return useDesigner((designer) => { + return designer.subscribeTo(AppendNodeEvent, (event) => { + const { source, target } = event.data + if (Array.isArray(target)) return + if (!Array.isArray(source)) return + if ( + matchComponent( + target, + (key) => key === name && source.every((child) => !matchChildComponent(child, name)) + ) && + target.children.length === 0 + ) { + target.setChildren(...getChildren(source)) + return false + } + }) + }) +} diff --git a/packages/prototypes/src/index.ts b/packages/prototypes/src/index.ts index b1c6ea4..8bdec8e 100644 --- a/packages/prototypes/src/index.ts +++ b/packages/prototypes/src/index.ts @@ -1 +1,3 @@ -export default {} +export * from './components' +export * from './schemas' +export * from './locales' diff --git a/packages/prototypes/src/locales/ArrayBase.ts b/packages/prototypes/src/locales/ArrayBase.ts new file mode 100644 index 0000000..a86731d --- /dev/null +++ b/packages/prototypes/src/locales/ArrayBase.ts @@ -0,0 +1,101 @@ +import { GlobalRegistry } from '@pind/designable-core' + +GlobalRegistry.registerDesignerLocales({ + 'zh-CN': { + Previews: { + droppable: '可以拖入组件', + addTabPanel: '添加选项卡', + addCollapsePanel: '添加手风琴卡片', + addTableColumn: '添加表格列', + addTableSortHandle: '添加排序', + addIndex: '添加索引', + addOperation: '添加操作' + } + }, + 'en-US': { + Previews: { + droppable: 'Droppable', + addTabPanel: 'Add tab panel', + addCollapsePanel: 'Add collapse panel', + addTableColumn: 'Add table column', + addTableSortHandle: 'Add table sort', + addIndex: 'Add index', + addOperation: 'Add operation' + } + } +}) + +export const ArrayAddition = { + 'zh-CN': { + title: '添加按钮', + settings: { + 'x-component-props': { + title: '标题', + method: { + title: '方式', + dataSource: ['末尾', '开始'], + tooltip: '追加至列表方式' + }, + defaultValue: '默认值' + } + } + }, + 'en-US': { + title: 'Addition', + settings: { + 'x-component-props': { + title: 'Title', + method: { + title: 'Method', + dataSource: ['Push', 'Unshift'] + }, + defaultValue: 'Default value' + } + } + } +} + +export const ArrayRemove = { + 'zh-CN': { + title: '删除按钮' + }, + 'en-US': { + title: 'Remove' + } +} + +export const ArrayMoveUp = { + 'zh-CN': { + title: '上移按钮' + }, + 'en-US': { + title: 'Move Up' + } +} + +export const ArrayMoveDown = { + 'zh-CN': { + title: '下移按钮' + }, + 'en-US': { + title: 'Move Down' + } +} + +export const ArrayIndex = { + 'zh-CN': { + title: '索引标识' + }, + 'en-US': { + title: 'Index' + } +} + +export const ArraySortHandle = { + 'zh-CN': { + title: '排序标识' + }, + 'en-US': { + title: 'Sort Handle' + } +} diff --git a/packages/prototypes/src/locales/ArrayCards.ts b/packages/prototypes/src/locales/ArrayCards.ts new file mode 100644 index 0000000..5db1367 --- /dev/null +++ b/packages/prototypes/src/locales/ArrayCards.ts @@ -0,0 +1,15 @@ +import { createLocales } from '@pind/designable-core' +import { Card } from './Card' + +export const ArrayCards = createLocales(Card, { + 'zh-CN': { + title: '自增卡片', + addIndex: '添加索引', + addOperation: '添加操作' + }, + 'en-US': { + title: 'Array Cards', + addIndex: 'Add Index', + addOperation: 'Add Operations' + } +}) diff --git a/packages/prototypes/src/locales/ArrayItems.ts b/packages/prototypes/src/locales/ArrayItems.ts new file mode 100644 index 0000000..8e0fe6d --- /dev/null +++ b/packages/prototypes/src/locales/ArrayItems.ts @@ -0,0 +1,14 @@ +export const ArrayItems = { + 'zh-CN': { + title: '自增列表', + settings: { + 'x-component-props': {} + } + }, + 'en-US': { + title: 'Array Items', + settings: { + 'x-component-props': {} + } + } +} diff --git a/packages/prototypes/src/locales/ArrayTable.ts b/packages/prototypes/src/locales/ArrayTable.ts new file mode 100644 index 0000000..f177e39 --- /dev/null +++ b/packages/prototypes/src/locales/ArrayTable.ts @@ -0,0 +1,88 @@ +export const ArrayTable = { + 'zh-CN': { + title: '自增表格', + addSortHandle: '添加排序', + addColumn: '添加列', + addIndex: '添加索引', + addOperation: '添加操作', + settings: { + 'x-component-props': { + bordered: { + title: '展示边框', + tooltip: '展示外边框和列边框' + }, + showHeader: { title: '显示表头' }, + size: { + title: '尺寸', + dataSource: ['中', '小', '默认'] + } + } + } + }, + 'en-US': { + title: 'Array Table', + addSortHandle: 'Add Sort Handle', + addColumn: 'Add Column', + addIndex: 'Add Index', + addOperation: 'Add Operations', + settings: { + 'x-component-props': { + bordered: { title: 'Bordered' }, + showHeader: { title: 'Show header' }, + size: { + title: 'Size', + dataSource: ['Middle', 'Small', 'Default'] + } + } + } + } +} + +export const ArrayTableColumn = { + 'zh-CN': { + title: '表格列', + settings: { + 'x-component-props': { + title: '标题', + key: '字段名称', + align: { + title: '内容对齐', + dataSource: ['左', '中', '右'] + }, + width: '宽度', + fixed: { + title: '固定', + dataSource: ['左', '右'] + }, + sorter: '排序', + sortOrder: { + title: '排序方式', + dataSource: ['正序', '倒序'] + } + } + } + }, + 'en-US': { + title: 'Column', + settings: { + 'x-component-props': { + title: 'Title', + key: 'Key', + align: { + title: 'Align', + dataSource: ['Left', 'Center', 'Right'] + }, + width: 'Width', + fixed: { + title: 'Fixed', + dataSource: ['Left', 'Right'] + }, + sorter: 'Sort', + sortOrder: { + title: 'Sort order', + dataSource: ['Asc', 'Desc'] + } + } + } + } +} diff --git a/packages/prototypes/src/locales/Card.ts b/packages/prototypes/src/locales/Card.ts new file mode 100644 index 0000000..d9a05bb --- /dev/null +++ b/packages/prototypes/src/locales/Card.ts @@ -0,0 +1,36 @@ +export const Card = { + 'zh-CN': { + title: '卡片', + settings: { + 'x-component-props': { + title: '标题', + bordered: '边框', + hoverable: { + title: '阴影', + tooltip: '鼠标移过时可浮起' + }, + size: { + title: '尺寸', + dataSource: ['小', '默认'] + } + } + } + }, + 'en-US': { + title: 'Card', + settings: { + 'x-component-props': { + title: 'Title', + bordered: 'Border', + hoverable: { + title: 'Shadow', + tooltip: 'Lift up when hovering card' + }, + size: { + title: 'Size', + dataSource: ['Samll', 'Default'] + } + } + } + } +} diff --git a/packages/prototypes/src/locales/Cascader.ts b/packages/prototypes/src/locales/Cascader.ts new file mode 100644 index 0000000..9b74aba --- /dev/null +++ b/packages/prototypes/src/locales/Cascader.ts @@ -0,0 +1,66 @@ +export const Cascader = { + 'zh-CN': { + title: '联级选择', + settings: { + 'x-component-props': { + allowClear: '是否支持清除', + autoFocus: '自动获取焦点', + placeholder: '占位提示', + size: { + title: '尺寸', + dataSource: ['大', '小', '默认'] + }, + popupPlacement: { + title: '浮层位置', + dataSource: ['左下', '右下', '左上', '右上'] + }, + showSearch: '显示搜索框', + changeOnSelect: { + title: '选择时改变', + tooltip: '当此项为 true 时,点选每级菜单选项值都会发生变化' + }, + displayRender: { + title: '显示渲染函数', + tooltip: '选择后展示的渲染函数, 默认是 label => label.join(" / ")' + }, + fieldNames: { + title: '自定义字段', + tooltip: + '自定义 options 中 label name children 的字段, 默认:{ label: "label", value: "value", children: "children" }' + } + } + } + }, + 'en-US': { + title: 'Cascader', + settings: { + 'x-component-props': { + allowClear: 'Allow clear', + autoFocus: 'Auto focus', + placeholder: 'Placeholder', + size: { + title: 'Size', + dataSource: ['Large', 'Small', 'Default'] + }, + popupPlacement: { + title: 'Popup placement', + dataSource: ['Bottom left', 'Bottom right', 'Top left', 'Top right'] + }, + showSearch: 'Show search', + changeOnSelect: { + title: 'Change On Select', + tooltip: 'Click on each level of menu option value will change' + }, + displayRender: { + title: 'Display Render', + tooltip: + 'The rendering function displayed after selection, the default is label => label.join(" / ")' + }, + fieldNames: { + title: 'Field Names', + tooltip: 'Defaults:{ label: "label", value: "value", children: "children" }' + } + } + } + } +} diff --git a/packages/prototypes/src/locales/Checkbox.ts b/packages/prototypes/src/locales/Checkbox.ts new file mode 100644 index 0000000..bb1ce72 --- /dev/null +++ b/packages/prototypes/src/locales/Checkbox.ts @@ -0,0 +1,14 @@ +export const CheckboxGroup = { + 'zh-CN': { + title: '复选框组', + settings: { + 'x-component-props': {} + } + }, + 'en-US': { + title: 'Checkbox', + settings: { + 'x-component-props': {} + } + } +} diff --git a/packages/prototypes/src/locales/Component.ts b/packages/prototypes/src/locales/Component.ts new file mode 100644 index 0000000..77ec42f --- /dev/null +++ b/packages/prototypes/src/locales/Component.ts @@ -0,0 +1,36 @@ +export const Component = { + 'zh-CN': { + settings: { + style: { + width: '宽度', + height: '高度', + display: '展示', + background: '背景', + boxShadow: '阴影', + font: '字体', + margin: '外边距', + padding: '内边距', + borderRadius: '圆角', + border: '边框', + opacity: '透明度' + } + } + }, + 'en-US': { + settings: { + style: { + width: 'Width', + height: 'Height', + display: 'Display', + background: 'Background', + boxShadow: 'Box Shadow', + font: 'Font', + margin: 'Margin', + padding: 'Padding', + borderRadius: 'Radius', + border: 'Border', + opacity: 'Opacity' + } + } + } +} diff --git a/packages/prototypes/src/locales/DatePicker.ts b/packages/prototypes/src/locales/DatePicker.ts new file mode 100644 index 0000000..9cd2c18 --- /dev/null +++ b/packages/prototypes/src/locales/DatePicker.ts @@ -0,0 +1,102 @@ +import { createLocales } from '@pind/designable-core' + +export const DatePicker = { + 'zh-CN': { + title: '日期选择', + settings: { + 'x-component-props': { + allowClear: '显示清除按钮', + autoFocus: '自动获取焦点', + placeholder: '占位提示', + defaultValue: '默认日期', + defaultPickerValue: { + title: '默认选择日期', + tooltip: '当 value defaultValue 没有时时起作用' + }, + size: { + title: '尺寸', + dataSource: ['大', '小', '默认'] + }, + mode: { + title: '日期面板的状态', + dataSource: ['时间', '日期', '月份', '年', '十年'] + }, + format: { + title: '显示格式', + tooltip: '显示在输入框中的格式,请参考 "moment.js" 设置' + }, + valueFormat: { + title: '绑定值格式', + tooltip: '绑定值的格式,对 value、defaultValue、defaultPickerValue 起作用' + }, + align: { + title: '对齐方式', + tooltip: '请参考 "dom-align" 设置' + }, + inputReadOnly: '输入框只读', + popupStyle: '弹出日历样式', + showTime: '显示时间', + showToday: '显示今天' + } + } + }, + 'en-US': { + title: 'DatePicker', + settings: { + 'x-component-props': { + allowClear: 'Allow clear', + autoFocus: 'Auto focus', + placeholder: 'Placeholder', + defaultValue: 'Default date', + defaultPickerValue: { + title: 'Default picker date', + tooltip: 'When value and defaultValue are not specified' + }, + size: { + title: 'Size', + dataSource: ['Large', 'Small', 'Default'] + }, + mode: { + title: 'Picker type', + dataSource: ['Time', 'Date', 'Month', 'Year', 'Decade'] + }, + format: { + title: 'Display format', + tooltip: 'Please refer to the settings "moment.js"' + }, + valueFormat: { + title: 'Value format', + tooltip: + 'Format of binding value. If not specified, the binding value will be a Date object' + }, + align: { + title: 'Align', + tooltip: 'Please refer to the settings "dom-align"' + }, + inputReadOnly: 'Input readonly', + popupStyle: 'Popup style', + showTime: 'Show time', + showToday: 'Show today' + } + } + } +} + +export const DateRangePicker = createLocales(DatePicker, { + 'zh-CN': { + title: '日期区间', + settings: { + 'x-component-props': { + separator: '分隔符' + } + } + }, + 'en-US': { + title: 'RangePicker', + settings: { + 'x-component-props': { + separator: 'Separator' + } + } + } +}) diff --git a/packages/prototypes/src/locales/Field.ts b/packages/prototypes/src/locales/Field.ts new file mode 100644 index 0000000..ff7fbe4 --- /dev/null +++ b/packages/prototypes/src/locales/Field.ts @@ -0,0 +1,218 @@ +export const Field = { + 'zh-CN': { + settings: { + name: '字段标识', + title: '标题', + required: '必填', + description: '描述', + default: '默认值', + enum: '数据源', + 'x-display': { + title: '展示状态', + tooltip: '半隐藏只会隐藏UI,全隐藏会删除数据', + dataSource: ['显示', '半隐藏', '全隐藏', '继承'] + }, + 'x-pattern': { + title: 'UI形态', + dataSource: ['可编辑', '禁用', '只读', '阅读', '继承'] + }, + 'x-validator': { + title: '校验规则' + }, + 'x-decorator': '容器组件', + 'x-reactions': '响应器规则', + 'field-group': '字段属性', + 'component-group': '组件属性', + 'decorator-group': '容器属性', + 'component-style-group': '组件样式', + 'decorator-style-group': '容器样式', + 'x-component-props': { + size: { + title: '尺寸', + dataSource: ['大', '小', '默认', '继承'] + }, + allowClear: '允许清除内容', + autoFocus: '自动获取焦点', + showSearch: '支持搜索', + notFoundContent: '空状态内容', + bordered: '是否有边框', + placeholder: '占位提示', + clearable: '可清空', + filterable: '可搜索选项', + style: { + width: '宽度', + height: '高度', + display: '展示', + background: '背景', + boxShadow: '阴影', + font: '字体', + margin: '外边距', + padding: '内边距', + borderRadius: '圆角', + border: '边框', + opacity: '透明度' + } + }, + 'x-decorator-props': { + addonAfter: '后缀标签', + addonBefore: '前缀标签', + tooltip: '提示', + asterisk: '星号', + gridSpan: '网格跨列', + labelCol: '标签网格宽度', + wrapperCol: '组件网格宽度', + colon: '是否有冒号', + labelAlign: { + title: '标签对齐', + dataSource: ['左对齐', '右对齐', '继承'] + }, + wrapperAlign: { + title: '组件对齐', + dataSource: ['左对齐', '右对齐', '继承'] + }, + labelWrap: '标签换行', + wrapperWrap: '组件换行', + labelWidth: '标签宽度', + wrapperWidth: '组件宽度', + fullness: '组件占满', + inset: '内联布局', + shallow: '是否浅传递', + bordered: '是否有边框', + size: { + title: '尺寸', + dataSource: ['大', '小', '默认', '继承'] + }, + layout: { title: '布局', dataSource: ['垂直', '水平', '内联', '继承'] }, + feedbackLayout: { + title: '反馈布局', + dataSource: ['宽松', '紧凑', '弹层', '无', '继承'] + }, + tooltipLayout: { + title: '提示布局', + dataSource: ['图标', '文本', '继承'] + }, + style: { + width: '宽度', + height: '高度', + display: '展示', + background: '背景', + boxShadow: '阴影', + font: '字体', + margin: '外边距', + padding: '内边距', + borderRadius: '圆角', + border: '边框', + opacity: '透明度' + } + } + } + }, + 'en-US': { + settings: { + name: 'Name', + title: 'Title', + required: 'Required', + description: 'Description', + default: 'Default', + enum: 'DataSource', + 'x-display': { + title: 'Display State', + tooltip: + 'When the display value is "None", the data will be "Hidden" and deleted. When the display value is hidden, only the UI will be hidden', + dataSource: ['Visible', 'Hidden', 'None', 'Inherit'] + }, + 'x-pattern': { + title: 'UI Pattern', + dataSource: ['Editable', 'Disabled', 'ReadOnly', 'ReadPretty', 'Inherit'] + }, + 'x-validator': 'Validator', + 'x-decorator': 'Decorator', + 'x-reactions': 'Reactions', + 'field-group': 'Field Properties', + 'component-group': 'Component Properties', + 'decorator-group': 'Decorator Properties', + 'component-style-group': 'Component Style', + 'decorator-style-group': 'Decorator Style', + 'x-component-props': { + size: { + title: 'Size', + dataSource: ['Large', 'Small', 'Default', 'Inherit'] + }, + allowClear: 'Allow Clear', + autoFocus: 'Auto Focus', + showSearch: 'Show Search', + notFoundContent: 'Not Found Content', + bordered: 'Bordered', + placeholder: 'Placeholder', + style: { + width: 'Width', + height: 'Height', + display: 'Display', + background: 'Background', + boxShadow: 'Box Shadow', + font: 'Font', + margin: 'Margin', + padding: 'Padding', + borderRadius: 'Radius', + border: 'Border', + opacity: 'Opacity' + } + }, + 'x-decorator-props': { + addonAfter: 'Addon After', + addonBefore: 'Addon Before', + tooltip: 'Tooltip', + asterisk: 'Asterisk', + gridSpan: 'Grid Span', + labelCol: 'Label Col', + wrapperCol: 'Wrapper Col', + colon: 'Colon', + labelAlign: { + title: 'Label Align', + dataSource: ['Left', 'Right', 'Inherit'] + }, + wrapperAlign: { + title: 'Wrapper Align', + dataSource: ['Left', 'Right', 'Inherit'] + }, + labelWrap: 'Label Wrap', + wrapperWrap: 'Wrapper Wrap', + labelWidth: 'Label Width', + wrapperWidth: 'Wrapper Width', + fullness: 'Fullness', + inset: 'Inset', + shallow: 'Shallow', + bordered: 'Bordered', + size: { + title: 'Size', + dataSource: ['Large', 'Small', 'Default', 'Inherit'] + }, + layout: { + title: 'Layout', + dataSource: ['Vertical', 'Horizontal', 'Inline', 'Inherit'] + }, + feedbackLayout: { + title: 'Feedback Layout', + dataSource: ['Loose', 'Terse', 'Popup', 'None', 'Inherit'] + }, + tooltipLayout: { + title: 'Tooltip Layout', + dataSource: ['Icon', 'Text', 'Inherit'] + }, + style: { + width: 'Width', + height: 'Height', + display: 'Display', + background: 'Background', + boxShadow: 'Box Shadow', + font: 'Font', + margin: 'Margin', + padding: 'Padding', + borderRadius: 'Radius', + border: 'Border', + opacity: 'Opacity' + } + } + } + } +} diff --git a/packages/prototypes/src/locales/Form.ts b/packages/prototypes/src/locales/Form.ts new file mode 100644 index 0000000..0adb34e --- /dev/null +++ b/packages/prototypes/src/locales/Form.ts @@ -0,0 +1,85 @@ +import { createLocales } from '@pind/designable-core' +import { Component } from './Component' + +export const Form = createLocales(Component, { + 'zh-CN': { + title: '表单', + settings: { + labelCol: '标签网格宽度', + wrapperCol: '组件网格宽度', + colon: '是否有冒号', + labelAlign: { + title: '标签对齐', + dataSource: ['左对齐', '右对齐', '继承'] + }, + wrapperAlign: { + title: '组件对齐', + dataSource: ['左对齐', '右对齐', '继承'] + }, + labelWrap: '标签换行', + wrapperWrap: '组件换行', + labelWidth: '标签宽度', + wrapperWidth: '组件宽度', + fullness: '组件占满', + inset: '内联布局', + shallow: '是否浅传递', + bordered: '是否有边框', + size: { + title: '尺寸', + dataSource: ['大', '小', '默认', '继承'] + }, + layout: { + title: '布局', + dataSource: ['垂直', '水平', '内联', '继承'] + }, + feedbackLayout: { + title: '反馈布局', + dataSource: ['宽松', '紧凑', '弹层', '无', '继承'] + }, + tooltipLayout: { + title: '提示布局', + dataSource: ['图标', '文本', '继承'] + } + } + }, + 'en-US': { + title: 'Form', + settings: { + labelCol: 'Label Col', + wrapperCol: 'Wrapper Col', + colon: 'Colon', + labelAlign: { + title: 'Label Align', + dataSource: ['Left', 'Right', 'Inherit'] + }, + wrapperAlign: { + title: 'Wrapper Align', + dataSource: ['Left', 'Right', 'Inherit'] + }, + labelWrap: 'Label Wrap', + wrapperWrap: 'Wrapper Wrap', + labelWidth: 'Label Width', + wrapperWidth: 'Wrapper Width', + fullness: 'Fullness', + inset: 'Inset', + shallow: 'Shallow', + bordered: 'Bordered', + size: { + title: 'Size', + dataSource: ['Large', 'Small', 'Default', 'Inherit'] + }, + layout: { + title: 'Layout', + dataSource: ['Vertical', 'Horizontal', 'Inline', 'Inherit'] + }, + feedbackLayout: { + title: 'Feedback Layout', + dataSource: ['Loose', 'Terse', 'Popup', 'None', 'Inherit'] + }, + tooltipLayout: { + title: 'Tooltip Layout', + dataSource: ['Icon', 'Text', 'Inherit'] + } + } + } +}) diff --git a/packages/prototypes/src/locales/FormCollapse.ts b/packages/prototypes/src/locales/FormCollapse.ts new file mode 100644 index 0000000..b65994c --- /dev/null +++ b/packages/prototypes/src/locales/FormCollapse.ts @@ -0,0 +1,41 @@ +export const FormCollapse = { + 'zh-CN': { + title: '折叠面板', + addCollapsePanel: '添加面板', + settings: { + 'x-component-props': { + accordion: '手风琴模式' + } + } + }, + 'en-US': { + title: 'Collapse', + addCollapsePanel: 'Add Panel', + settings: { + 'x-component-props': { + accordion: 'Accordion Mode' + } + } + } +} + +export const FormCollapsePanel = { + 'zh-CN': { + title: '面板', + settings: { + 'x-component-props': { + title: '标题', + disabled: '禁用' + } + } + }, + 'en-US': { + title: 'Panel', + settings: { + 'x-component-props': { + title: '标题', + disabled: '禁用' + } + } + } +} diff --git a/packages/prototypes/src/locales/FormGrid.ts b/packages/prototypes/src/locales/FormGrid.ts new file mode 100644 index 0000000..e119fc6 --- /dev/null +++ b/packages/prototypes/src/locales/FormGrid.ts @@ -0,0 +1,62 @@ +export const FormGrid = { + 'zh-CN': { + title: '网格布局', + addGridColumn: '添加网格列', + settings: { + 'x-component-props': { + minWidth: '最小宽度', + minColumns: '最小列数', + maxWidth: '最大宽度', + maxColumns: '最大列数', + breakpoints: '响应式断点', + columnGap: '列间距', + rowGap: '行间距', + colWrap: '自动换行', + strictAutoFit: { + title: '严格限制', + tooltip: 'GridItem 宽度是否严格受限于 maxWidth,不受限的话会自动占满容器' + } + } + } + }, + 'en-US': { + title: 'Grid', + addGridColumn: 'Add Grid Column', + settings: { + 'x-component-props': { + minWidth: 'Min Width', + minColumns: 'Min Columns', + maxWidth: 'Max Width', + maxColumns: 'Max Columns', + breakpoints: 'Breakpoints', + columnGap: 'Column Gap', + rowGap: 'Row Gap', + colWrap: 'Col Wrap', + strictAutoFit: { + title: 'Strict autoFit', + tooltip: + 'Is GridItem width strictly limited by maxWidth? Otherwise, the container will fill up automatically' + } + } + } + } +} + +export const FormGridColumn = { + 'zh-CN': { + title: '网格列', + settings: { + 'x-component-props': { + gridSpan: '跨列栏数' + } + } + }, + 'en-US': { + title: 'Grid Column', + settings: { + 'x-component-props': { + gridSpan: 'Grid Span' + } + } + } +} diff --git a/packages/prototypes/src/locales/FormLayout.ts b/packages/prototypes/src/locales/FormLayout.ts new file mode 100644 index 0000000..2efffa7 --- /dev/null +++ b/packages/prototypes/src/locales/FormLayout.ts @@ -0,0 +1,86 @@ +export const FormLayout = { + 'zh-CN': { + title: '表单布局', + settings: { + 'x-component-props': { + labelCol: '标签网格宽度', + wrapperCol: '组件网格宽度', + colon: '是否有冒号', + labelAlign: { + title: '标签对齐', + dataSource: ['左对齐', '右对齐', '继承'] + }, + wrapperAlign: { + title: '组件对齐', + dataSource: ['左对齐', '右对齐', '继承'] + }, + labelWrap: '标签换行', + wrapperWrap: '组件换行', + labelWidth: '标签宽度', + wrapperWidth: '组件宽度', + fullness: '组件占满', + inset: '内联布局', + shallow: '是否浅传递', + bordered: '是否有边框', + size: { + title: '尺寸', + dataSource: ['大', '小', '默认', '继承'] + }, + layout: { + title: '布局', + dataSource: ['水平', '垂直', '内联', '继承'] + }, + feedbackLayout: { + title: '反馈布局', + dataSource: ['宽松', '紧凑', '弹层', '无', '继承'] + }, + tooltipLayout: { + title: '提示布局', + dataSource: ['图标', '文本', '继承'] + } + } + } + }, + 'en-US': { + title: 'Form Layout', + settings: { + 'x-component-props': { + labelCol: 'Label Col', + wrapperCol: 'Wrapper Col', + colon: 'Colon', + labelAlign: { + title: 'Label Align', + dataSource: ['Left', 'Right', 'Inherit'] + }, + wrapperAlign: { + title: 'Wrapper Align', + dataSource: ['Left', 'Right', 'Inherit'] + }, + labelWrap: 'Label Wrap', + wrapperWrap: 'Wrapper Wrap', + labelWidth: 'Label Width', + wrapperWidth: 'Wrapper Width', + fullness: 'Fullness', + inset: 'Inset', + shallow: 'Shallow', + bordered: 'Bordered', + size: { + title: 'Size', + dataSource: ['Large', 'Small', 'Default', 'Inherit'] + }, + layout: { + title: 'Layout', + dataSource: ['Horizontal', 'Vertical', 'Inline', 'Inherit'] + }, + feedbackLayout: { + title: 'Feedback Layout', + dataSource: ['Loose', 'Terse', 'Popup', 'None', 'Inherit'] + }, + tooltipLayout: { + title: 'Tooltip Layout', + dataSource: ['Icon', 'Text', 'Inherit'] + } + } + } + } +} diff --git a/packages/prototypes/src/locales/FormTab.ts b/packages/prototypes/src/locales/FormTab.ts new file mode 100644 index 0000000..4a1098f --- /dev/null +++ b/packages/prototypes/src/locales/FormTab.ts @@ -0,0 +1,87 @@ +export const FormTab = { + 'zh-CN': { + title: '选项卡', + addTabPane: '添加选项卡', + settings: { + 'x-component-props': { + animated: { + title: '使用动画切换', + tooltip: '在 tabPosition=top|bottom 时有效' + }, + hideAdd: { + title: '隐藏加号', + tooltip: '在 type="editable-card" 时有效' + }, + type: { + title: '类型', + dataSource: ['Line', 'Card', 'Editable Card'] + }, + size: { + title: '大小', + dataSource: ['大', '小', '默认'] + }, + tabPosition: '选项卡所在位置', + tabBarGutter: '选项卡之间的间隙' + } + } + }, + 'en-US': { + title: 'Tabs', + addTabPane: 'Add Panel', + settings: { + 'x-component-props': { + animated: { + title: 'Animation', + tooltip: 'Only works while tabPosition="top"|"bottom"' + }, + hideAdd: { + title: 'Hide plus icon', + tooltip: 'Only works while type="editable-card"' + }, + type: { + title: 'Type', + dataSource: ['Line', 'Card', 'Editable Card'] + }, + size: { + title: 'Size', + dataSource: ['Large', 'Samll', 'Default'] + }, + tabPosition: 'Position', + tabBarGutter: 'Gap between tabs' + } + } + } +} + +export const FormTabPane = { + 'zh-CN': { + title: '选项卡面板', + settings: { + 'x-component-props': { + label: '面板标题', + disabled: '禁用', + name: { + title: '列表中的顺序值', + tooltip: `该选项卡在选项卡列表中的顺序值,如第一个选项卡则为'1'` + }, + closable: '标签是否可关闭', + lazy: '标签是否延迟渲染' + } + } + }, + 'en-US': { + title: 'Tab Panel', + settings: { + 'x-component-props': { + label: '面板标题', + disabled: '禁用', + name: { + title: '列表中的顺序值', + tooltip: `该选项卡在选项卡列表中的顺序值,如第一个选项卡则为'1'` + }, + closable: '标签是否可关闭', + lazy: '标签是否延迟渲染' + } + } + } +} diff --git a/packages/prototypes/src/locales/Input.ts b/packages/prototypes/src/locales/Input.ts new file mode 100644 index 0000000..fb81775 --- /dev/null +++ b/packages/prototypes/src/locales/Input.ts @@ -0,0 +1,70 @@ +import { createLocales } from '@pind/designable-core' + +export const Input = { + 'zh-CN': { + title: '输入框', + settings: { + 'x-component-props': { + maxLength: '最大输入长度', + placeholder: '占位提示', + allowClear: '可清空', + prefix: '前缀图标', + suffix: '后缀图标', + type: { + title: 'input 类型', + tooltip: '同原生 input 标签的 type 属性,(请直接使用 Input.TextArea 代替 type="textarea")' + }, + size: { + title: '尺寸', + dataSource: ['大', '小', '默认'] + } + } + } + }, + 'en-US': { + title: 'Input', + settings: { + 'x-component-props': { + maxLength: 'Max length', + placeholder: 'Placehoder', + allowClear: 'Allow clear', + prefix: 'Prefix icon', + suffix: 'Suffix icon', + type: { + title: 'Type of input', + tooltips: 'use Input.TextArea instead of type="textarea"' + }, + size: { + title: 'Size', + dataSource: ['Large', 'Small', 'Default'] + } + } + } + } +} + +export const TextArea = createLocales(Input, { + 'zh-CN': { + title: '多行输入', + settings: { + 'x-component-props': { + autoSize: { + title: '自适应高度', + tooltip: '可设置为 true | false 或对象:{ minRows: 2, maxRows: 6 }' + } + } + } + }, + 'en-US': { + title: 'TextArea', + settings: { + 'x-component-props': { + autoSize: { + title: 'Auto size', + tooltip: + 'Height autosize feature, can be set to true|false or an object { minRows: 2, maxRows: 6 }' + } + } + } + } +}) diff --git a/packages/prototypes/src/locales/NumberPicker.ts b/packages/prototypes/src/locales/NumberPicker.ts new file mode 100644 index 0000000..3d62c60 --- /dev/null +++ b/packages/prototypes/src/locales/NumberPicker.ts @@ -0,0 +1,38 @@ +export const NumberPicker = { + 'zh-CN': { + title: '数字输入', + settings: { + 'x-component-props': { + placeholder: '占位提示', + max: '最大值', + min: '最小值', + step: '步长', + precision: '数字精度', + decimalSeparator: '小数点', + size: { + title: '尺寸', + dataSource: ['大', '小', '默认'] + } + } + } + }, + 'en-US': { + title: 'NumberInput', + settings: { + 'x-component-props': { + placeholder: 'Placeholder', + max: 'Max', + min: 'Min', + step: 'Step', + precision: 'Precision', + decimalSeparator: 'Decimal Separator', + size: { + title: 'Size', + dataSource: ['Large', 'Small', 'Default'] + } + } + } + } +} + +export const InputNumber = NumberPicker diff --git a/packages/prototypes/src/locales/Object.ts b/packages/prototypes/src/locales/Object.ts new file mode 100644 index 0000000..4f508c3 --- /dev/null +++ b/packages/prototypes/src/locales/Object.ts @@ -0,0 +1,8 @@ +export const ObjectLocale = { + 'zh-CN': { + title: '对象容器' + }, + 'en-US': { + title: 'Object' + } +} diff --git a/packages/prototypes/src/locales/Password.ts b/packages/prototypes/src/locales/Password.ts new file mode 100644 index 0000000..5e21199 --- /dev/null +++ b/packages/prototypes/src/locales/Password.ts @@ -0,0 +1,11 @@ +import { createLocales } from '@pind/designable-core' +import { Input } from './Input' + +export const Password = createLocales(Input, { + 'zh-CN': { + title: '密码输入' + }, + 'en-US': { + title: 'Password' + } +}) diff --git a/packages/prototypes/src/locales/Radio.ts b/packages/prototypes/src/locales/Radio.ts new file mode 100644 index 0000000..19e6360 --- /dev/null +++ b/packages/prototypes/src/locales/Radio.ts @@ -0,0 +1,28 @@ +export const RadioGroup = { + 'zh-CN': { + title: '单选框组', + settings: { + 'x-component-props': { + buttonStyle: { title: '按钮风格', dataSource: ['空心', '实心'] }, + optionType: { title: '选项类型', dataSource: ['默认', '按钮'] }, + size: { + title: '尺寸', + dataSource: ['大', '小', '默认'] + } + } + } + }, + 'en-US': { + title: 'Radio', + settings: { + 'x-component-props': { + buttonStyle: { title: 'Button style', dataSource: ['Hollow', 'Solid'] }, + optionType: { title: 'Option type', dataSource: ['Default', 'Button'] }, + size: { + title: 'Size', + dataSource: ['Large', 'Small', 'Default'] + } + } + } + } +} diff --git a/packages/prototypes/src/locales/Rate.ts b/packages/prototypes/src/locales/Rate.ts new file mode 100644 index 0000000..34f6c1f --- /dev/null +++ b/packages/prototypes/src/locales/Rate.ts @@ -0,0 +1,32 @@ +export const Rate = { + 'zh-CN': { + title: '评分器', + settings: { + 'x-component-props': { + allowClear: '允许清除', + allowHalf: '允许半选', + autoFocus: '自动获取焦点', + count: '总数', + tooltips: { + title: '提示信息', + tooltip: '自定义每项的提示信息,格式:string[]' + } + } + } + }, + 'en-US': { + title: 'Rate', + settings: { + 'x-component-props': { + allowClear: 'Allow clear', + allowHalf: 'Allow Half', + autoFocus: 'Auto focus', + count: 'Count', + tooltips: { + title: 'Tooltips', + tooltip: 'Customize tooltip by each character, Format:string[]' + } + } + } + } +} diff --git a/packages/prototypes/src/locales/Select.ts b/packages/prototypes/src/locales/Select.ts new file mode 100644 index 0000000..608dc8d --- /dev/null +++ b/packages/prototypes/src/locales/Select.ts @@ -0,0 +1,88 @@ +export const Select = { + 'zh-CN': { + title: '选择框', + settings: { + 'x-component-props': { + mode: { + title: '模式', + dataSource: ['多选', '标签', '下拉列表', '默认'] + }, + allowClear: '可以清空选项', + autoFocus: '默认获取焦点', + placeholder: '占位提示', + size: { + title: '尺寸', + dataSource: ['大', '小', '默认'] + }, + maxTagCount: { + title: '最多标签数量', + tooltip: '最多显示多少个 tag,响应式模式会对性能产生损耗' + }, + maxTagPlaceholder: { + title: '最多标签占位', + tooltip: '隐藏 tag 时显示的内容' + }, + maxTagTextLength: '最大显示的tag文本长度', + notFoundContent: '为空时显示内容', + labelInValue: { + title: '标签值', + tooltip: + '是否把每个选项的 label 包装到 value 中,会把 Select 的 value 类型从 string 变为 {key: string, label: vNodes} 的格式' + }, + optionFilterProp: { + title: '搜索时过滤字段', + tooltip: + '搜索时过滤对应的 option 属性,如设置为 children 表示对内嵌内容进行搜索,默认是:value' + }, + optionLabelProp: { + title: '回填到选择框字段', + tooltip: + '回填到选择框的 Option 的属性值,默认是 Option 的子元素。比如在子元素需要高亮效果时,此值可以设为 value。' + }, + showSearch: '单选模式可搜索', + showArrow: '显示下拉小箭头' + } + } + }, + 'en-US': { + title: 'Select', + settings: { + 'x-component-props': { + mode: { + title: 'Mode', + dataSource: ['Multiple', 'Tags', 'Combobox', 'Default'] + }, + allowClear: 'Allow clear', + autoFocus: 'Auto focus', + placeholder: 'Placeholder', + size: { + title: 'Size', + dataSource: ['Large', 'Small', 'Default'] + }, + maxTagCount: 'Max Tag Count', + maxTagPlaceholder: { + title: 'Max Tag Placeholder', + tooltip: 'Content displayed when tag is hidden' + }, + maxTagTextLength: 'Max Tag Text Length', + notFoundContent: 'Not found content', + labelInValue: { + title: 'Label in value', + tooltip: + 'whether to embed label in value, turn the format of value from string to {key: string, label: vNodes}' + }, + optionFilterProp: { + title: 'Prop for filter', + tooltip: + 'Which prop value of option will be used for filter if filterOption is true, default is: value' + }, + optionLabelProp: { + title: 'prop for select display', + tooltip: 'Which prop value of option will render as content of select' + }, + showSearch: 'Show search', + showArrow: 'Show arrow' + } + } + } +} diff --git a/packages/prototypes/src/locales/Slider.ts b/packages/prototypes/src/locales/Slider.ts new file mode 100644 index 0000000..3bf3a04 --- /dev/null +++ b/packages/prototypes/src/locales/Slider.ts @@ -0,0 +1,49 @@ +export const Slider = { + 'zh-CN': { + title: '滑动条', + settings: { + 'x-component-props': { + dots: '刻度固定', + range: '双滑块', + reverse: '反向坐标系', + vertical: '垂直布局', + tooltipPlacement: { + title: '提示位置', + tooltip: '设置 提示 展示位置。参考 Tooltip' + }, + tooltipVisible: { + title: '提示显示', + tooltip: '开启时,提示 将会始终显示;否则始终不显示,哪怕在拖拽及移入时' + }, + max: '最大值', + min: '最小值', + step: '步长', + marks: '刻度标签' + } + } + }, + 'en-US': { + title: 'Slider', + settings: { + 'x-component-props': { + dots: 'Fixed Scale', + range: 'Double Slider', + reverse: 'Reverse Coordinate System', + vertical: 'Vertical', + tooltipPlacement: { + title: 'Tooltip Placement', + tooltip: 'Set up prompt placement. Reference Tooltip' + }, + tooltipVisible: { + title: 'Tooltip Visible', + tooltip: + 'When turned on, the prompt will always be displayed; otherwise, it will always not be displayed, even when dragging and moving in' + }, + max: 'Max', + min: 'Min', + step: 'Step', + marks: 'Marks' + } + } + } +} diff --git a/packages/prototypes/src/locales/Space.ts b/packages/prototypes/src/locales/Space.ts new file mode 100644 index 0000000..8ad51e2 --- /dev/null +++ b/packages/prototypes/src/locales/Space.ts @@ -0,0 +1,36 @@ +export const Space = { + 'zh-CN': { + title: '弹性间距', + settings: { + 'x-component-props': { + align: { + title: '对齐', + dataSource: ['头部', '尾部', '居中', '基准线'] + }, + direction: { + title: '方向', + dataSource: ['垂直', '水平'] + }, + split: '分割内容', + wrap: '自动换行' + } + } + }, + 'en-US': { + title: 'Space', + settings: { + 'x-component-props': { + align: { + title: 'Align', + dataSource: ['Start', 'End', 'Center', 'Baseline'] + }, + direction: { + title: 'Direction', + dataSource: ['Vertical', 'Horizontal'] + }, + split: 'Split', + wrap: 'Word Wrap' + } + } + } +} diff --git a/packages/prototypes/src/locales/Switch.ts b/packages/prototypes/src/locales/Switch.ts new file mode 100644 index 0000000..71357db --- /dev/null +++ b/packages/prototypes/src/locales/Switch.ts @@ -0,0 +1,28 @@ +export const Switch = { + 'zh-CN': { + title: '开关', + settings: { + 'x-component-props': { + autoFocus: '自动获取焦点', + defaultChecked: '默认状态', + size: { + title: '尺寸', + dataSource: ['小', '默认'] + } + } + } + }, + 'en-US': { + title: 'Switch', + settings: { + 'x-component-props': { + autoFocus: 'Auto focus', + defaultChecked: 'Default checked', + size: { + title: 'Size', + dataSource: ['Small', 'Default'] + } + } + } + } +} diff --git a/packages/prototypes/src/locales/Text.ts b/packages/prototypes/src/locales/Text.ts new file mode 100644 index 0000000..fbb89fd --- /dev/null +++ b/packages/prototypes/src/locales/Text.ts @@ -0,0 +1,26 @@ +export const Text = { + 'zh-CN': { + title: '文本', + settings: { + 'x-component-props': { + mode: { + title: '文本类型', + dataSource: ['H1', 'H2', 'H3', 'Paragraph', 'Normal'] + }, + content: '文本内容' + } + } + }, + 'en-US': { + title: 'Text', + settings: { + 'x-component-props': { + mode: { + title: 'Text Mode', + dataSource: ['H1', 'H2', 'H3', 'Paragraph', 'Normal'] + }, + content: 'Text Content' + } + } + } +} diff --git a/packages/prototypes/src/locales/TimePicker.ts b/packages/prototypes/src/locales/TimePicker.ts new file mode 100644 index 0000000..eed0f12 --- /dev/null +++ b/packages/prototypes/src/locales/TimePicker.ts @@ -0,0 +1,74 @@ +import { createLocales } from '@pind/designable-core' +import { DatePicker } from './DatePicker' + +export const TimePicker = createLocales(DatePicker, { + 'zh-CN': { + title: '时间选择', + settings: { + 'x-component-props': { + allowClear: '显示清除按钮', + clearText: '清除按钮的提示文案', + autoFocus: '自动获取焦点', + placeholder: '占位提示', + defaultValue: '默认时间', + defaultOpenValue: { + title: '默认选择时间', + tooltip: '当 value defaultValue 没有时时起作用' + }, + size: { + title: '尺寸', + dataSource: ['大', '小', '默认'] + }, + format: { + title: '显示格式', + tooltip: '显示在输入框中的格式,请参考 "moment.js" 设置' + }, + valueFormat: { + title: '绑定值格式', + tooltip: '绑定值的格式,对 value、defaultValue、defaultPickerValue 起作用' + }, + align: { + title: '对齐方式', + tooltip: '请参考 "dom-align" 设置' + }, + inputReadOnly: '输入框只读', + popupStyle: '弹出日历样式' + } + } + }, + 'en-US': { + title: 'Time Picker', + settings: { + 'x-component-props': { + allowClear: 'Allow clear', + clearText: 'Clear button text', + autoFocus: 'Auto focus', + placeholder: 'Placeholder', + defaultValue: 'Default time', + defaultOpenValue: { + title: 'Default picker time', + tooltip: 'When value and defaultValue are not specified' + }, + size: { + title: 'Size', + dataSource: ['Large', 'Small', 'Default'] + }, + format: { + title: 'Display format', + tooltip: 'Please refer to the settings "moment.js"' + }, + valueFormat: { + title: 'Value format', + tooltip: + 'Format of binding value. If not specified, the binding value will be a Date object' + }, + align: { + title: 'Align', + tooltip: 'Please refer to the settings "dom-align"' + }, + inputReadOnly: 'Input readonly', + popupStyle: 'Popup style' + } + } + } +}) diff --git a/packages/prototypes/src/locales/Transfer.ts b/packages/prototypes/src/locales/Transfer.ts new file mode 100644 index 0000000..51e39f2 --- /dev/null +++ b/packages/prototypes/src/locales/Transfer.ts @@ -0,0 +1,36 @@ +export const Transfer = { + 'zh-CN': { + title: '穿梭框', + settings: { + 'x-component-props': { + titles: '标题', + operations: '操作符', + lazy: '懒加载', + render: { + title: '渲染函数', + tooltip: + '每行数据渲染函数,该函数的入参为 dataSource 中的项,返回值为 element。或者返回一个普通对象,其中 label 字段为 element,value 字段为 title' + }, + showSearch: '显示搜索框', + showSelectAll: '展示全选勾选框' + } + } + }, + 'en-US': { + title: 'Transfer', + settings: { + 'x-component-props': { + titles: 'Titles', + operations: 'Operations', + lazy: 'Lazy', + render: { + title: 'Render', + tooltip: + 'The function to generate the item shown on a column. Based on an record (element of the dataSource array), this function should return a element which is generated from that record. Also, it can return a plain object with value and label, label is a element and value is for title' + }, + showSearch: 'Show search', + showSelectAll: 'Show select all' + } + } + } +} diff --git a/packages/prototypes/src/locales/TreeSelect.ts b/packages/prototypes/src/locales/TreeSelect.ts new file mode 100644 index 0000000..cd811c6 --- /dev/null +++ b/packages/prototypes/src/locales/TreeSelect.ts @@ -0,0 +1,117 @@ +export const TreeSelect = { + 'zh-CN': { + title: '树选择', + settings: { + 'x-component-props': { + allowClear: '可以清空选项', + dropdownMatchSelectWidth: { + title: '下拉选择器同宽', + tooltip: '默认将设置 min-width,当值小于选择框宽度时会被忽略。false 时会关闭虚拟滚动' + }, + placeholder: '占位提示', + size: { + title: '尺寸', + dataSource: ['大', '小', '默认'] + }, + multiple: '多选', + maxTagCount: { + title: '最多标签数量', + tooltip: '最多显示多少个 tag,响应式模式会对性能产生损耗' + }, + maxTagPlaceholder: { + title: '最多标签占位', + tooltip: '隐藏 tag 时显示的内容' + }, + labelInValue: { + title: '标签值', + tooltip: + '是否把每个选项的 label 包装到 value 中,会把 Select 的 value 类型从 string 变为 { value: string, label: ReactNode } 的格式' + }, + filterTreeNode: { + title: '节点过滤器', + tooltip: + '是否根据输入项进行筛选,默认用 treeNodeFilterProp 的值作为要筛选的 TreeNode 的属性值' + }, + showCheckedStrategy: { + title: '复选回显策略', + tooltip: + '配置 treeCheckable 时,定义选中项回填的方式。TreeSelect.SHOW_ALL: 显示所有选中节点(包括父节点)。TreeSelect.SHOW_PARENT: 只显示父节点(当父节点下所有子节点都选中时)。 默认只显示子节点', + dataSource: ['显示所有', '显示父节点', '显示子节点'] + }, + treeCheckable: '开启复选', + treeDataSimpleMode: { + title: '使用简单数据结构', + tooltip: `使用简单格式的 treeData,具体设置参考可设置的类型 (此时 treeData 应变为这样的数据结构: [{id:1, pId:0, value:'1', title:"test1",...},...], pId 是父节点的 id)` + }, + treeDefaultExpandAll: '默认展开所有', + treeDefaultExpandedKeys: { + title: '默认展开选项', + tooltip: '格式:Array' + }, + treeNodeFilterProp: { + title: '节点过滤属性', + tooltip: '输入项过滤对应的 treeNode 属性, value' + }, + treeNodeLabelProp: { + title: '标签显示名称', + tooltip: '作为显示的 prop 设置, 默认为title' + }, + showSearch: '显示搜索' + } + } + }, + 'en-US': { + title: 'TreeSelect', + settings: { + 'x-component-props': { + allowClear: 'Allow clear', + dropdownMatchSelectWidth: { + title: 'Dropdown Match Select Width', + tooltip: + 'By default, min-width will be set, and it will be ignored when the value is less than the width of the selection box. false will turn off virtual scrolling' + }, + placeholder: 'Placeholder', + size: { + title: 'Size', + dataSource: ['Large', 'Small', 'Default'] + }, + multiple: 'Multiple', + maxTagCount: 'Max Tag Count', + maxTagPlaceholder: { + title: 'Max Tag Placeholder', + tooltip: 'Content displayed when tag is hidden' + }, + labelInValue: 'Label In Value', + filterTreeNode: { + title: 'Filter', + tooltip: + 'Whether to filter treeNodes by input value. The value of treeNodeFilterProp is used for filtering by default' + }, + showCheckedStrategy: { + title: 'Checked Strategy', + tooltip: + 'When configuring treeCheckable, define how to backfill the selected item. TreeSelect.SHOW_ALL: Show all selected nodes (including parent nodes). TreeSelect.SHOW_PARENT: Only display the parent node (when all child nodes under the parent node are selected). Only show child nodes by default', + dataSource: ['Show All', 'Show Parent Node', 'Show Child Nodes'] + }, + treeCheckable: 'Checkable', + treeDataSimpleMode: { + title: 'Simple Mode', + tooltip: `Use treeData in a simple format. For specific settings, refer to the settable type (the treeData should be a data structure like this: [{id:1, pId:0, value:'1', title:"test1",...} ,...], pId is the id of the parent node)` + }, + treeDefaultExpandAll: 'Default Expand All', + treeDefaultExpandedKeys: { + title: 'Tree Default Expanded Keys', + tooltip: 'Format:Array' + }, + treeNodeFilterProp: { + title: 'TFilter Properties', + tooltip: 'Will be used for filtering if filterTreeNode returns true, default is value' + }, + treeNodeLabelProp: { + title: 'Label Properties', + tooltip: 'Will render as content of select, default is title' + } + } + } + } +} diff --git a/packages/prototypes/src/locales/Upload.ts b/packages/prototypes/src/locales/Upload.ts new file mode 100644 index 0000000..9c97ad4 --- /dev/null +++ b/packages/prototypes/src/locales/Upload.ts @@ -0,0 +1,65 @@ +import { createLocales } from '@pind/designable-core' + +export const Upload = { + 'zh-CN': { + title: '上传', + settings: { + 'x-component-props': { + textContent: '上传文案', + action: '上传地址', + headers: '请求头', + multiple: '多选模式', + data: '数据/参数', + name: '文件名称', + 'with-credentials': '携带Cookie', + 'show-file-list': '文件列表', + drag: '拖拽上传', + accept: '可接受类型', + 'list-type': { + title: '列表类型', + dataSource: ['文本', '图片', '卡片'] + }, + 'auto-upload': '自动上传', + limit: '最大数量' + } + } + }, + 'en-US': { + title: 'Upload', + settings: { + 'x-component-props': { + textContent: 'Text Content', + action: 'Action', + headers: 'Headers', + multiple: 'Multiple', + data: 'Data', + name: 'Name', + 'with-credentials': 'With Credentials', + 'show-file-list': 'Show File List', + drag: 'Drag', + accept: 'Accept', + 'list-type': { + title: 'List Type', + dataSource: ['Text', 'Picture', 'Picture Card'] + }, + 'auto-upload': 'Auto Upload', + limit: 'Limit' + } + } + } +} + +export const UploadDragger = createLocales(Upload, { + 'zh-CN': { + title: '拖拽上传', + settings: { + 'x-component-props': {} + } + }, + 'en-US': { + title: 'UploadDragger', + settings: { + 'x-component-props': {} + } + } +}) diff --git a/packages/prototypes/src/locales/Void.ts b/packages/prototypes/src/locales/Void.ts new file mode 100644 index 0000000..2caad6f --- /dev/null +++ b/packages/prototypes/src/locales/Void.ts @@ -0,0 +1,8 @@ +export const Void = { + 'zh-CN': { + title: '虚拟容器' + }, + 'en-US': { + title: 'Void' + } +} diff --git a/packages/prototypes/src/locales/all.ts b/packages/prototypes/src/locales/all.ts new file mode 100644 index 0000000..ed71b94 --- /dev/null +++ b/packages/prototypes/src/locales/all.ts @@ -0,0 +1,31 @@ +export * from './ArrayBase' +export * from './ArrayCards' +export * from './ArrayItems' +export * from './ArrayTable' +export * from './Cascader' +export * from './Card' +export * from './Checkbox' +export * from './Component' +export * from './DatePicker' +export * from './Field' +export * from './Form' +export * from './FormLayout' +export * from './FormTab' +export * from './FormCollapse' +export * from './FormGrid' +export * from './Input' +export * from './NumberPicker' +export * from './Object' +export * from './Password' +export * from './Radio' +export * from './Rate' +export * from './Select' +export * from './Slider' +export * from './Space' +export * from './Switch' +export * from './Text' +export * from './TimePicker' +export * from './TreeSelect' +export * from './Transfer' +export * from './Upload' +export * from './Void' diff --git a/packages/prototypes/src/locales/index.ts b/packages/prototypes/src/locales/index.ts new file mode 100644 index 0000000..0ba9c2b --- /dev/null +++ b/packages/prototypes/src/locales/index.ts @@ -0,0 +1,3 @@ +import * as AllLocales from './all' + +export { AllLocales } diff --git a/packages/prototypes/src/schemas/ArrayCards.ts b/packages/prototypes/src/schemas/ArrayCards.ts new file mode 100644 index 0000000..b970c03 --- /dev/null +++ b/packages/prototypes/src/schemas/ArrayCards.ts @@ -0,0 +1,5 @@ +import { ArrayTable } from './ArrayTable' +import { Card } from './Card' + +export const ArrayCards = Card +ArrayCards.Addition = ArrayTable.Addition diff --git a/packages/prototypes/src/schemas/ArrayItems.ts b/packages/prototypes/src/schemas/ArrayItems.ts new file mode 100644 index 0000000..f2f601f --- /dev/null +++ b/packages/prototypes/src/schemas/ArrayItems.ts @@ -0,0 +1,9 @@ +import type { ISchema } from '@formily/vue' +import { ArrayTable } from './ArrayTable' + +export const ArrayItems: ISchema & { Addition?: ISchema } = { + type: 'object', + properties: {} +} + +ArrayItems.Addition = ArrayTable.Addition diff --git a/packages/prototypes/src/schemas/ArrayTable.ts b/packages/prototypes/src/schemas/ArrayTable.ts new file mode 100644 index 0000000..c417fe9 --- /dev/null +++ b/packages/prototypes/src/schemas/ArrayTable.ts @@ -0,0 +1,135 @@ +import type { ISchema } from '@formily/vue' + +export const ArrayTable: ISchema & { Addition?: ISchema; Column?: ISchema } = { + type: 'object', + properties: { + bordered: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + showHeader: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch', + 'x-component-props': { + defaultChecked: true + } + }, + size: { + default: 'default', + type: 'string', + enum: ['middle', 'small', 'default'], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + allowClear: true + } + } + } +} + +const Column: ISchema = { + type: 'object', + properties: { + title: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + key: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + width: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber', + 'x-component-props': {} + }, + align: { + default: 'left', + type: 'string', + enum: ['left', 'center', 'right'], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + allowClear: true + } + }, + fixed: { + type: 'string', + enum: ['left', 'right'], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + allowClear: true + }, + 'x-reactions': (field) => { + if (field.value === '') { + field.display = 'none' + } else { + field.display = 'visible' + } + } + }, + sorter: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + sortOrder: { + type: 'string', + enum: ['ascend', 'descend'], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + allowClear: true + } + } + } +} + +const Addition: ISchema = { + type: 'object', + properties: { + // title: { + // type: 'string', + // 'x-decorator': 'FormItem', + // 'x-component': 'Input', + // 'x-component-props': { + // + // allowClear:true, + // }, + // }, + method: { + type: 'string', + enum: ['push', 'unshift'], + 'x-decorator': 'FormItem', + 'x-component': 'Radio.Group', + 'x-component-props': { + defaultValue: 'push', + optionType: 'button', + size: 'small' + } + }, + defaultValue: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'ValueInput', + 'x-component-props': { + allowClear: true + } + } + } +} + +ArrayTable.Column = Column +ArrayTable.Addition = Addition diff --git a/packages/prototypes/src/schemas/CSSStyle.ts b/packages/prototypes/src/schemas/CSSStyle.ts new file mode 100644 index 0000000..ec247ce --- /dev/null +++ b/packages/prototypes/src/schemas/CSSStyle.ts @@ -0,0 +1,60 @@ +import type { ISchema } from '@formily/vue' + +export const CSSStyle: ISchema = { + type: 'void', + properties: { + 'style.width': { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'SizeInput' + }, + 'style.height': { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'SizeInput' + }, + 'style.display': { + 'x-component': 'DisplayStyleSetter' + }, + 'style.background': { + 'x-component': 'BackgroundStyleSetter', + 'x-component-props': { + allowClear: true + } + }, + 'style.boxShadow': { + 'x-component': 'BoxShadowStyleSetter', + 'x-component-props': { + allowClear: true + } + }, + 'style.font': { + 'x-component': 'FontStyleSetter', + 'x-component-props': { + allowClear: true + } + }, + 'style.margin': { + 'x-component': 'BoxStyleSetter' + }, + 'style.padding': { + 'x-component': 'BoxStyleSetter' + }, + 'style.borderRadius': { + 'x-component': 'BorderRadiusStyleSetter' + }, + 'style.border': { + 'x-component': 'BorderStyleSetter' + }, + 'style.opacity': { + 'x-decorator': 'FormItem', + 'x-component': 'Slider', + 'x-component-props': { + defaultValue: 1, + min: 0, + max: 1, + step: 0.01 + } + } + } +} diff --git a/packages/prototypes/src/schemas/Card.ts b/packages/prototypes/src/schemas/Card.ts new file mode 100644 index 0000000..b687a78 --- /dev/null +++ b/packages/prototypes/src/schemas/Card.ts @@ -0,0 +1,39 @@ +import type { ISchema } from '@formily/vue' + +export const Card: ISchema & { Addition?: ISchema } = { + type: 'object', + properties: { + title: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + bordered: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch', + 'x-component-props': { + defaultChecked: true + } + }, + hoverable: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch', + 'x-component-props': {} + }, + size: { + type: 'string', + default: 'default', + enum: ['small', 'default'], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + allowClear: true + } + } + } +} diff --git a/packages/prototypes/src/schemas/Cascader.ts b/packages/prototypes/src/schemas/Cascader.ts new file mode 100644 index 0000000..dc35f7b --- /dev/null +++ b/packages/prototypes/src/schemas/Cascader.ts @@ -0,0 +1,74 @@ +import type { ISchema } from '@formily/vue' + +export const Cascader: ISchema = { + type: 'object', + properties: { + allowClear: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch', + 'x-component-props': { + defaultChecked: true + } + }, + autoFocus: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + placeholder: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + size: { + default: 'default', + type: 'string', + enum: ['large', 'small', 'default'], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + allowClear: true + } + }, + popupPlacement: { + default: 'bottomLeft', + type: 'string', + enum: ['bottomLeft', 'bottomRight', 'topLeft', 'topRight'], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + allowClear: true + } + }, + showSearch: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + changeOnSelect: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + displayRender: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'ValueInput', + 'x-component-props': { + include: ['EXPRESSION'] + } + }, + fieldNames: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'ValueInput', + 'x-component-props': { + include: ['EXPRESSION'] + } + } + } +} diff --git a/packages/prototypes/src/schemas/Checkbox.ts b/packages/prototypes/src/schemas/Checkbox.ts new file mode 100644 index 0000000..a4dd882 --- /dev/null +++ b/packages/prototypes/src/schemas/Checkbox.ts @@ -0,0 +1,17 @@ +import type { ISchema } from '@formily/vue' + +export const Checkbox: ISchema & { Group?: ISchema } = { + type: 'object', + properties: { + autoFocus: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + } + } +} + +Checkbox.Group = { + type: 'object', + properties: {} +} diff --git a/packages/prototypes/src/schemas/DatePicker.ts b/packages/prototypes/src/schemas/DatePicker.ts new file mode 100644 index 0000000..9a54396 --- /dev/null +++ b/packages/prototypes/src/schemas/DatePicker.ts @@ -0,0 +1,221 @@ +import type { ISchema } from '@formily/vue' + +export const DatePicker: ISchema & { + RangePicker?: ISchema +} = { + type: 'object', + properties: { + mode: { + type: 'string', + default: 'date', + enum: ['time', 'date', 'month', 'year', 'decade'], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + allowClear: true + } + }, + allowClear: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch', + 'x-component-props': { + defaultChecked: true + } + }, + autoFocus: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + placeholder: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + defaultValue: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'DatePicker', + 'x-component-props': { + allowClear: true, + align: { + points: ['br', 'br'] + } + } + }, + defaultPickerValue: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'DatePicker', + 'x-component-props': { + allowClear: true, + align: { + points: ['br', 'br'] + } + } + }, + size: { + type: 'string', + enum: ['large', 'small', 'default'], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + value: 'default', + allowClear: true + } + }, + format: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + valueFormat: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + align: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'ValueInput', + 'x-component-props': { + include: ['EXPRESSION'] + } + }, + popupStyle: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'ValueInput', + 'x-component-props': { + include: ['EXPRESSION'] + } + }, + inputReadOnly: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + showTime: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch', + 'x-component-props': {}, + 'x-reactions': (field) => { + // TIPS: mode 指定后,选择面板无法切换 + field.visible = !field.form?.values?.['x-component-props']?.mode + } + }, + showToday: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch', + 'x-component-props': { + defaultChecked: true + }, + 'x-reactions': (field) => { + const mode = field.form?.values?.['x-component-props']?.mode + field.visible = !mode || mode === 'date' + } + } + } +} + +DatePicker.RangePicker = { + type: 'object', + properties: { + ...(DatePicker.properties as object), + placeholder: { + type: 'void', + 'x-decorator': 'FormItem', + 'x-component': 'div', + properties: { + 'placeholder[0]': { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + 'placeholder[1]': { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + } + } + }, + defaultValue: { + type: 'void', + 'x-decorator': 'FormItem', + 'x-component': 'div', + properties: { + 'defaultValue[0]': { + type: 'string', + 'x-component': 'DatePicker', + 'x-component-props': { + allowClear: true, + align: { + points: ['br', 'br'] + } + } + }, + 'defaultValue[1]': { + type: 'string', + 'x-component': 'DatePicker', + 'x-component-props': { + allowClear: true, + align: { + points: ['br', 'br'] + } + } + } + } + }, + defaultPickerValue: { + type: 'void', + 'x-decorator': 'FormItem', + 'x-component': 'div', + properties: { + 'defaultPickerValue[0]': { + type: 'string', + 'x-component': 'DatePicker', + 'x-component-props': { + allowClear: true, + align: { + points: ['br', 'br'] + } + } + }, + 'defaultPickerValue[1]': { + type: 'string', + 'x-component': 'DatePicker', + 'x-component-props': { + allowClear: true, + align: { + points: ['br', 'br'] + } + } + } + } + }, + separator: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + } + } +} diff --git a/packages/prototypes/src/schemas/Form.ts b/packages/prototypes/src/schemas/Form.ts new file mode 100644 index 0000000..0efc190 --- /dev/null +++ b/packages/prototypes/src/schemas/Form.ts @@ -0,0 +1,11 @@ +import type { ISchema } from '@formily/vue' +import { CSSStyle } from './CSSStyle' +import { FormLayout } from './FormLayout' + +export const Form: ISchema = { + type: 'object', + properties: { + ...(FormLayout.properties as Exclude), + style: CSSStyle + } +} diff --git a/packages/prototypes/src/schemas/FormCollapse.ts b/packages/prototypes/src/schemas/FormCollapse.ts new file mode 100644 index 0000000..e8166ae --- /dev/null +++ b/packages/prototypes/src/schemas/FormCollapse.ts @@ -0,0 +1,35 @@ +import type { ISchema } from '@formily/vue' + +export const FormCollapse: ISchema & { CollapsePanel?: ISchema } = { + type: 'object', + properties: { + accordion: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch', + 'x-component-props': { + defaultChecked: true + } + } + } +} + +FormCollapse.CollapsePanel = { + type: 'object', + properties: { + title: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + disabled: { + default: false, + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + } + } +} diff --git a/packages/prototypes/src/schemas/FormGrid.ts b/packages/prototypes/src/schemas/FormGrid.ts new file mode 100644 index 0000000..ef9bb2b --- /dev/null +++ b/packages/prototypes/src/schemas/FormGrid.ts @@ -0,0 +1,79 @@ +import type { ISchema } from '@formily/vue' + +export const FormGrid: ISchema & { GridColumn?: ISchema } = { + type: 'object', + properties: { + minWidth: { + type: 'number', + default: 100, + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber', + 'x-component-props': {} + }, + maxWidth: { + type: 'number', + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber' + }, + minColumns: { + type: 'number', + default: 0, + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber', + 'x-component-props': {} + }, + maxColumns: { + type: 'number', + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber' + }, + breakpoints: { + type: 'number', + 'x-decorator': 'FormItem', + 'x-component': 'ValueInput', + 'x-component-props': { + include: ['EXPRESSION'] + } + }, + columnGap: { + type: 'number', + default: 10, + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber', + 'x-component-props': {} + }, + rowGap: { + type: 'number', + default: 5, + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber', + 'x-component-props': {} + }, + colWrap: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch', + 'x-component-props': { + defaultChecked: true + } + }, + strictAutoFit: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + } + } +} + +FormGrid.GridColumn = { + type: 'object', + properties: { + gridSpan: { + default: 1, + type: 'number', + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber', + 'x-component-props': {} + } + } +} diff --git a/packages/prototypes/src/schemas/FormItem.ts b/packages/prototypes/src/schemas/FormItem.ts new file mode 100644 index 0000000..2a62e39 --- /dev/null +++ b/packages/prototypes/src/schemas/FormItem.ts @@ -0,0 +1,141 @@ +import type { ISchema } from '@formily/vue' + +export const FormItem: ISchema = { + type: 'object', + properties: { + tooltip: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input' + }, + addonBefore: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input' + }, + addonAfter: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input' + }, + labelCol: { + type: 'number', + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber' + }, + wrapperCol: { + type: 'number', + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber' + }, + labelWidth: { + 'x-decorator': 'FormItem', + 'x-component': 'SizeInput' + }, + wrapperWidth: { + 'x-decorator': 'FormItem', + 'x-component': 'SizeInput' + }, + colon: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch', + 'x-component-props': { + defaultChecked: true + } + }, + asterisk: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + gridSpan: { + type: 'number', + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber' + }, + feedbackLayout: { + type: 'string', + enum: ['loose', 'terse', 'popover', 'none', null], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + defaultValue: 'loose' + } + }, + size: { + type: 'string', + enum: ['large', 'small', 'default', null], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + defaultValue: 'default' + } + }, + layout: { + type: 'string', + enum: ['vertical', 'horizontal', 'inline', null], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + defaultValue: 'horizontal' + } + }, + + tooltipLayout: { + type: 'string', + enum: ['icon', 'text', null], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + defaultValue: 'icon' + } + }, + labelAlign: { + type: 'string', + enum: ['left', 'right', null], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + defaultValue: 'right' + } + }, + wrapperAlign: { + type: 'string', + enum: ['left', 'right', null], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + defaultValue: 'left' + } + }, + labelWrap: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + wrapperWrap: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + fullness: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + inset: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + bordered: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch', + 'x-component-props': { + defaultChecked: true + } + } + } +} diff --git a/packages/prototypes/src/schemas/FormLayout.ts b/packages/prototypes/src/schemas/FormLayout.ts new file mode 100644 index 0000000..f0ea20c --- /dev/null +++ b/packages/prototypes/src/schemas/FormLayout.ts @@ -0,0 +1,97 @@ +import type { ISchema } from '@formily/vue' + +export const FormLayout: ISchema = { + type: 'object', + properties: { + labelCol: { + type: 'number', + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber' + }, + wrapperCol: { + type: 'number', + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber' + }, + labelWidth: { + 'x-decorator': 'FormItem', + 'x-component': 'SizeInput' + }, + wrapperWidth: { + 'x-decorator': 'FormItem', + 'x-component': 'SizeInput' + }, + colon: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + feedbackLayout: { + type: 'string', + enum: ['loose', 'terse', 'popover', 'none', null], + 'x-decorator': 'FormItem', + 'x-component': 'Select' + }, + size: { + type: 'string', + enum: ['large', 'small', 'default', null], + 'x-decorator': 'FormItem', + 'x-component': 'Select' + }, + layout: { + type: 'string', + enum: ['vertical', 'horizontal', 'inline', null], + 'x-decorator': 'FormItem', + 'x-component': 'Select' + }, + tooltipLayout: { + type: 'string', + enum: ['icon', 'text', null], + 'x-decorator': 'FormItem', + 'x-component': 'Select' + }, + labelAlign: { + type: 'string', + enum: ['left', 'right', null], + 'x-decorator': 'FormItem', + 'x-component': 'Select' + }, + wrapperAlign: { + type: 'string', + enum: ['left', 'right', null], + 'x-decorator': 'FormItem', + 'x-component': 'Select' + }, + labelWrap: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + wrapperWrap: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + + fullness: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + inset: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + shallow: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + bordered: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + } + } +} diff --git a/packages/prototypes/src/schemas/FormTab.ts b/packages/prototypes/src/schemas/FormTab.ts new file mode 100644 index 0000000..94bf32d --- /dev/null +++ b/packages/prototypes/src/schemas/FormTab.ts @@ -0,0 +1,91 @@ +import type { ISchema } from '@formily/vue' + +export const FormTab: ISchema & { TabPane?: ISchema } = { + type: 'object', + properties: { + animated: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + hideAdd: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + type: { + type: 'string', + default: 'line', + enum: ['line', 'card', 'editable-card'], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + allowClear: true + } + }, + size: { + type: 'string', + default: 'default', + enum: ['large', 'samll', 'default'], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + allowClear: true + } + }, + tabPosition: { + type: 'string', + default: 'top', + enum: ['top', 'right', 'bottom', 'left'], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + allowClear: true + } + }, + tabBarGutter: { + type: 'number', + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber', + 'x-component-props': {} + } + } +} + +FormTab.TabPane = { + type: 'object', + properties: { + tab: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + disabled: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + name: { + 'x-visible': false, + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + closable: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + lazy: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + } + } +} diff --git a/packages/prototypes/src/schemas/Input.ts b/packages/prototypes/src/schemas/Input.ts new file mode 100644 index 0000000..5f72465 --- /dev/null +++ b/packages/prototypes/src/schemas/Input.ts @@ -0,0 +1,68 @@ +import { merge } from '@formily/shared' +import type { ISchema } from '@formily/vue' + +export const Input: ISchema & { TextArea?: ISchema } = { + type: 'object', + properties: { + allowClear: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + type: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': {} + }, + placeholder: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + maxLength: { + type: 'number', + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber', + 'x-component-props': {} + }, + prefix: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': {} + }, + suffix: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': {} + }, + size: { + type: 'string', + default: 'default', + enum: ['large', 'small', 'default'], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + allowClear: true + } + } + } +} + +Input.TextArea = merge(Input, { + properties: { + autoSize: { + type: 'boolean|object', + 'x-decorator': 'FormItem', + 'x-component': 'ValueInput', + 'x-component-props': { + include: ['BOOLEAN', 'EXPRESSION'] + } + } + } +}) diff --git a/packages/prototypes/src/schemas/NumberPicker.ts b/packages/prototypes/src/schemas/NumberPicker.ts new file mode 100644 index 0000000..fcfad33 --- /dev/null +++ b/packages/prototypes/src/schemas/NumberPicker.ts @@ -0,0 +1,53 @@ +import type { ISchema } from '@formily/vue' +export const NumberPicker: ISchema = { + type: 'object', + properties: { + placeholder: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': {} + }, + min: { + type: 'number', + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber', + 'x-component-props': {} + }, + max: { + type: 'number', + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber', + 'x-component-props': {} + }, + step: { + type: 'number', + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber', + 'x-component-props': {} + }, + precision: { + type: 'number', + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber', + 'x-component-props': {} + }, + decimalSeparator: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': {} + }, + size: { + default: 'default', + type: 'string', + enum: ['large', 'small', 'default'], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + allowClear: true + } + } + } +} +export const InputNumber = NumberPicker diff --git a/packages/prototypes/src/schemas/Password.ts b/packages/prototypes/src/schemas/Password.ts new file mode 100644 index 0000000..4484fe3 --- /dev/null +++ b/packages/prototypes/src/schemas/Password.ts @@ -0,0 +1,14 @@ +import type { ISchema } from '@formily/vue' +import { Input } from './Input' + +export const Password: ISchema = { + type: 'object', + properties: { + ...(Input.properties as any), + checkStrength: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + } + } +} diff --git a/packages/prototypes/src/schemas/Radio.ts b/packages/prototypes/src/schemas/Radio.ts new file mode 100644 index 0000000..5ef004f --- /dev/null +++ b/packages/prototypes/src/schemas/Radio.ts @@ -0,0 +1,53 @@ +import type { ISchema } from '@formily/vue' + +export const Radio: ISchema & { Group?: ISchema } = { + type: 'object', + properties: { + autoFocus: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + } + } +} + +Radio.Group = { + type: 'object', + properties: { + optionType: { + type: 'string', + enum: ['default', 'button'], + 'x-decorator': 'FormItem', + 'x-component': 'Radio.Group', + 'x-component-props': { + defaultValue: 'default', + optionType: 'button', + size: 'small' + } + }, + buttonStyle: { + type: 'string', + enum: ['outline', 'solid'], + 'x-decorator': 'FormItem', + 'x-component': 'Radio.Group', + 'x-component-props': { + defaultValue: 'outline', + optionType: 'button', + size: 'small' + } + }, + size: { + default: 'default', + type: 'string', + enum: ['large', 'small', 'default'], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + allowClear: true + }, + 'x-reactions': (field) => { + field.visible = field.form?.values?.['x-component-props']?.optionType === 'button' + } + } + } +} diff --git a/packages/prototypes/src/schemas/Rate.ts b/packages/prototypes/src/schemas/Rate.ts new file mode 100644 index 0000000..ac8a966 --- /dev/null +++ b/packages/prototypes/src/schemas/Rate.ts @@ -0,0 +1,39 @@ +import type { ISchema } from '@formily/vue' + +export const Rate: ISchema = { + type: 'object', + properties: { + allowClear: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch', + 'x-component-props': { + defaultChecked: true + } + }, + allowHalf: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + autoFocus: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + count: { + type: 'number', + default: 5, + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber', + 'x-component-props': {} + }, + tooltips: { + 'x-decorator': 'FormItem', + 'x-component': 'ValueInput', + 'x-component-props': { + include: ['EXPRESSION'] + } + } + } +} diff --git a/packages/prototypes/src/schemas/Select.ts b/packages/prototypes/src/schemas/Select.ts new file mode 100644 index 0000000..cf8c1c3 --- /dev/null +++ b/packages/prototypes/src/schemas/Select.ts @@ -0,0 +1,114 @@ +import type { ISchema } from '@formily/vue' + +export const Select: ISchema = { + type: 'object', + properties: { + mode: { + default: 'default', + type: 'string', + enum: ['multiple', 'tags', 'combobox', 'default'], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + allowClear: true + } + }, + allowClear: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + autoFocus: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + placeholder: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': {} + }, + size: { + default: 'default', + type: 'string', + enum: ['large', 'small', 'default'], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + allowClear: true + } + }, + maxTagCount: { + type: 'number', + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber', + 'x-component-props': {}, + 'x-reactions': (field) => { + field.visible = field.form?.values?.['x-component-props']?.mode === 'tags' + } + }, + maxTagPlaceholder: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + }, + 'x-reactions': (field) => { + field.visible = field.form?.values?.['x-component-props']?.mode === 'tags' + } + }, + maxTagTextLength: { + type: 'number', + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber', + 'x-component-props': {}, + 'x-reactions': (field) => { + field.visible = field.form?.values?.['x-component-props']?.mode === 'tags' + } + }, + notFoundContent: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + labelInValue: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + optionFilterProp: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + optionLabelProp: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + showSearch: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + showArrow: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch', + 'x-component-props': { + defaultChecked: true + } + } + } +} diff --git a/packages/prototypes/src/schemas/Slider.ts b/packages/prototypes/src/schemas/Slider.ts new file mode 100644 index 0000000..1e54461 --- /dev/null +++ b/packages/prototypes/src/schemas/Slider.ts @@ -0,0 +1,76 @@ +import { GlobalRegistry } from '@pind/designable-core' +import type { ISchema } from '@formily/vue' + +export const Slider: ISchema = { + type: 'object', + properties: { + allowClear: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + min: { + type: 'number', + default: 0, + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber', + 'x-component-props': {} + }, + max: { + type: 'number', + default: 100, + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber', + 'x-component-props': {} + }, + step: { + type: 'number', + default: 1, + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber', + 'x-component-props': {} + }, + dots: { + title: GlobalRegistry.getDesignerMessage('settings.sliderDots'), + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + range: { + title: GlobalRegistry.getDesignerMessage('settings.sliderRange'), + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + reverse: { + title: GlobalRegistry.getDesignerMessage('settings.sliderReverse'), + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + vertical: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + tooltipVisible: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + tooltipPlacement: { + 'x-decorator': 'FormItem', + 'x-component': 'ValueInput', + 'x-component-props': { + include: ['EXPRESSION'] + } + }, + marks: { + 'x-decorator': 'FormItem', + 'x-component': 'ValueInput', + 'x-component-props': { + include: ['EXPRESSION'] + } + } + } +} diff --git a/packages/prototypes/src/schemas/Space.ts b/packages/prototypes/src/schemas/Space.ts new file mode 100644 index 0000000..021ccb9 --- /dev/null +++ b/packages/prototypes/src/schemas/Space.ts @@ -0,0 +1,45 @@ +import type { ISchema } from '@formily/vue' + +export const Space: ISchema = { + type: 'object', + properties: { + align: { + type: 'string', + enum: ['start', 'end', 'center', 'baseline'], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + allowClear: true + } + }, + direction: { + type: 'string', + enum: ['vertical', 'horizontal'], + 'x-decorator': 'FormItem', + 'x-component': 'Radio.Group', + 'x-component-props': { + defaultValue: 'horizontal', + optionType: 'button', + size: 'small' + } + }, + size: { + type: 'number', + default: 8, + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber', + 'x-component-props': {} + } + // split: { + // type: 'string', + // 'x-decorator': 'FormItem', + // 'x-component': 'Input', + // 'x-visible': false, + // }, + // wrap: { + // type: 'boolean', + // 'x-decorator': 'FormItem', + // 'x-component': 'Switch', + // }, + } +} diff --git a/packages/prototypes/src/schemas/Switch.ts b/packages/prototypes/src/schemas/Switch.ts new file mode 100644 index 0000000..7a8501d --- /dev/null +++ b/packages/prototypes/src/schemas/Switch.ts @@ -0,0 +1,27 @@ +import type { ISchema } from '@formily/vue' + +export const Switch: ISchema = { + type: 'object', + properties: { + autoFocus: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + defaultChecked: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + size: { + type: 'string', + default: 'default', + enum: ['small', 'default'], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + allowClear: true + } + } + } +} diff --git a/packages/prototypes/src/schemas/Text.ts b/packages/prototypes/src/schemas/Text.ts new file mode 100644 index 0000000..f1efc14 --- /dev/null +++ b/packages/prototypes/src/schemas/Text.ts @@ -0,0 +1,20 @@ +import type { ISchema } from '@formily/vue' + +export const Text: ISchema = { + type: 'object', + properties: { + mode: { + type: 'string', + default: 'normal', + enum: ['h1', 'h2', 'h3', 'p', 'normal'], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': {} + }, + content: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input.TextArea' + } + } +} diff --git a/packages/prototypes/src/schemas/TimePicker.ts b/packages/prototypes/src/schemas/TimePicker.ts new file mode 100644 index 0000000..a1e55ae --- /dev/null +++ b/packages/prototypes/src/schemas/TimePicker.ts @@ -0,0 +1,102 @@ +import type { ISchema } from '@formily/vue' + +export const CommonTimePickerAPI = { + allowClear: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch', + 'x-component-props': { + defaultChecked: true + } + }, + clearText: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input' + }, + autoFocus: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + placeholder: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + defaultValue: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'TimePicker', + 'x-component-props': { + align: { + points: ['br', 'br'] + } + } + }, + defaultOpenValue: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'TimePicker', + 'x-component-props': { + align: { + points: ['br', 'br'] + } + } + }, + size: { + default: 'default', + type: 'string', + enum: ['large', 'small', 'default'], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + allowClear: true + } + }, + format: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + valueFormat: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + align: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'ValueInput', + 'x-component-props': { + include: ['EXPRESSION'] + } + }, + popupStyle: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'ValueInput', + 'x-component-props': { + include: ['EXPRESSION'] + } + }, + inputReadOnly: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + } +} + +export const TimePicker: ISchema & { RangePicker?: ISchema } = { + type: 'object', + properties: CommonTimePickerAPI +} diff --git a/packages/prototypes/src/schemas/Transfer.ts b/packages/prototypes/src/schemas/Transfer.ts new file mode 100644 index 0000000..71ba381 --- /dev/null +++ b/packages/prototypes/src/schemas/Transfer.ts @@ -0,0 +1,77 @@ +import type { ISchema } from '@formily/vue' + +export const Transfer: ISchema = { + type: 'object', + properties: { + titles: { + type: 'void', + 'x-component': 'div', + 'x-decorator': 'FormItem', + properties: { + 'titles[0]': { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + 'titles[1]': { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + } + } + }, + operations: { + type: 'void', + 'x-component': 'div', + 'x-decorator': 'FormItem', + properties: { + 'operations[0]': { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + 'operations[1]': { + type: 'string', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + } + } + }, + lazy: { + type: 'boolean|object', + 'x-decorator': 'FormItem', + 'x-component': 'ValueInput', + 'x-component-props': { + include: ['BOOLEAN', 'EXPRESSION'] + } + }, + render: { + 'x-decorator': 'FormItem', + 'x-component': 'ValueInput', + 'x-component-props': { + include: ['EXPRESSION'] + } + }, + showSearch: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + showSelectAll: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch', + 'x-component-props': { + defaultChecked: true + } + } + } +} diff --git a/packages/prototypes/src/schemas/TreeSelect.ts b/packages/prototypes/src/schemas/TreeSelect.ts new file mode 100644 index 0000000..63e439f --- /dev/null +++ b/packages/prototypes/src/schemas/TreeSelect.ts @@ -0,0 +1,123 @@ +import type { ISchema } from '@formily/vue' + +export const TreeSelect: ISchema = { + type: 'object', + properties: { + allowClear: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + dropdownMatchSelectWidth: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch', + 'x-component-props': { + defaultChecked: true + } + }, + placeholder: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input' + }, + size: { + type: 'string', + default: 'default', + enum: ['large', 'small', 'default'], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': {} + }, + multiple: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch', + 'x-reactions': (field) => { + field.visible = field.form?.values?.['x-component-props']?.treeCheckable === true + } + }, + maxTagCount: { + type: 'number', + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber', + 'x-component-props': {}, + 'x-reactions': (field) => { + field.visible = field.form?.values?.['x-component-props']?.mode === 'tags' + } + }, + maxTagPlaceholder: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + }, + 'x-reactions': (field) => { + field.visible = field.form?.values?.['x-component-props']?.mode === 'tags' + } + }, + labelInValue: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + filterTreeNode: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'ValueInput', + 'x-component-props': { + include: ['BOOLEAN', 'EXPRESSION'] + } + }, + showCheckedStrategy: { + type: 'string', + default: 'SHOW_CHILD', + enum: ['SHOW_ALL', 'SHOW_PARENT', 'SHOW_CHILD'], + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': {} + }, + treeCheckable: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + treeDataSimpleMode: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'ValueInput', + 'x-component-props': { + include: ['BOOLEAN', 'EXPRESSION'] + } + }, + treeDefaultExpandAll: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + treeDefaultExpandedKeys: { + type: 'array', + 'x-decorator': 'FormItem', + 'x-component': 'ValueInput', + 'x-component-props': { + include: ['EXPRESSION'] + } + }, + treeNodeFilterProp: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input' + }, + treeNodeLabelProp: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input' + }, + showSearch: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + } + } +} diff --git a/packages/prototypes/src/schemas/Upload.ts b/packages/prototypes/src/schemas/Upload.ts new file mode 100644 index 0000000..fb34825 --- /dev/null +++ b/packages/prototypes/src/schemas/Upload.ts @@ -0,0 +1,129 @@ +import type { ISchema } from '@formily/vue' + +export const Upload: ISchema & { Dragger?: ISchema } = { + type: 'object', + properties: { + textContent: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + action: { + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + headers: { + 'x-decorator': 'FormItem', + 'x-component': 'ValueInput', + 'x-component-props': { + include: ['EXPRESSION'] + } + }, + multiple: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + data: { + 'x-decorator': 'FormItem', + 'x-component': 'ValueInput', + 'x-component-props': { + include: ['EXPRESSION'] + } + }, + name: { + default: 'file', + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + 'with-credentials': { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch', + 'x-component-props': { + allowClear: true + } + }, + 'show-file-list': { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + drag: { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + accept: { + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + allowClear: true + } + }, + 'list-type': { + enum: ['text', 'picture', 'picture-card'], + 'x-decorator': 'FormItem', + 'x-component': 'Radio.Group', + 'x-component-props': { + defaultValue: 'text', + optionType: 'button', + size: 'small' + } + }, + 'auto-upload': { + type: 'boolean', + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + limit: { + type: 'number', + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber', + 'x-component-props': {} + } + // fileList: {} + // method: { + // enum: ['POST', 'PUT', 'GET'], + // 'x-decorator': 'FormItem', + // 'x-component': 'Radio.Group', + // 'x-component-props': { + // defaultValue: 'POST', + // optionType: 'button', + // size: 'small', + // }, + // }, + // directory: { + // type: 'boolean', + // 'x-decorator': 'FormItem', + // 'x-component': 'Switch', + // }, + // openFileDialogOnClick: { + // type: 'boolean', + // 'x-decorator': 'FormItem', + // 'x-component': 'Switch', + // 'x-component-props': { + // defaultChecked: true, + // }, + // }, + // showUploadList: { + // type: 'boolean', + // 'x-decorator': 'FormItem', + // 'x-component': 'Switch', + // 'x-component-props': { + // defaultChecked: true, + // }, + // }, + } +} diff --git a/packages/prototypes/src/schemas/all.ts b/packages/prototypes/src/schemas/all.ts new file mode 100644 index 0000000..9ddc12a --- /dev/null +++ b/packages/prototypes/src/schemas/all.ts @@ -0,0 +1,28 @@ +export * from './ArrayCards' +export * from './ArrayItems' +export * from './ArrayTable' +export * from './CSSStyle' +export * from './Card' +export * from './Cascader' +export * from './Checkbox' +export * from './DatePicker' +export * from './Form' +export * from './FormCollapse' +export * from './FormGrid' +export * from './FormItem' +export * from './FormLayout' +export * from './FormTab' +export * from './Input' +export * from './NumberPicker' +export * from './Password' +export * from './Radio' +export * from './Rate' +export * from './Select' +export * from './Slider' +export * from './Space' +export * from './Switch' +export * from './Text' +export * from './TimePicker' +export * from './Transfer' +export * from './TreeSelect' +export * from './Upload' diff --git a/packages/prototypes/src/schemas/index.ts b/packages/prototypes/src/schemas/index.ts new file mode 100644 index 0000000..cb04f59 --- /dev/null +++ b/packages/prototypes/src/schemas/index.ts @@ -0,0 +1,3 @@ +import * as AllSchemas from './all' + +export { AllSchemas } diff --git a/packages/prototypes/src/shared.ts b/packages/prototypes/src/shared.ts new file mode 100644 index 0000000..213350f --- /dev/null +++ b/packages/prototypes/src/shared.ts @@ -0,0 +1,96 @@ +import { TreeNode } from '@pind/designable-core' +import type { Engine } from '@pind/designable-core' + +export type ComponentNameMatcher = + | string + | string[] + | ((name: string, node: TreeNode, context?: any) => boolean) + +export const matchComponent = (node: TreeNode, name: ComponentNameMatcher, context?: any) => { + if (name === '*') return true + const componentName = node?.props?.['x-component'] + if (typeof name === 'function') return name(componentName || '', node, context) + if (Array.isArray(name)) return name.includes(componentName) + return componentName === name +} + +export const matchChildComponent = (node: TreeNode, name: ComponentNameMatcher, context?: any) => { + if (name === '*') return true + const componentName = node?.props?.['x-component'] + if (!componentName) return false + if (typeof name === 'function') return name(componentName || '', node, context) + if (Array.isArray(name)) return name.includes(componentName) + return componentName.indexOf(`${name}.`) > -1 +} + +export const includesComponent = ( + node: TreeNode, + names: ComponentNameMatcher[], + target?: TreeNode +) => { + return names.some((name) => matchComponent(node, name, target)) +} + +export const queryNodesByComponentPath = ( + node: TreeNode, + path: ComponentNameMatcher[] +): TreeNode[] => { + if (path?.length === 0) return [] + if (path?.length === 1) { + if (matchComponent(node, path[0])) { + return [node] + } + } + const result = matchComponent(node, path[0]) + ? node.children.reduce((buf, child) => { + return buf.concat(queryNodesByComponentPath(child, path.slice(1))) + }, []) + : [] + return result +} + +export const findNodeByComponentPath = (node: TreeNode, path: ComponentNameMatcher[]): TreeNode => { + if (path?.length === 0) return + if (path?.length === 1) { + if (matchComponent(node, path[0])) { + return node + } + } + if (matchComponent(node, path[0])) { + for (let i = 0; i < node.children.length; i++) { + const next = findNodeByComponentPath(node.children[i], path.slice(1)) + if (next) { + return next + } + } + } +} + +export const hasNodeByComponentPath = (node: TreeNode, path: ComponentNameMatcher[]) => + !!findNodeByComponentPath(node, path) + +export const matchArrayItemsNode = (node: TreeNode) => { + return node?.parent?.props?.type === 'array' && node?.parent?.children?.[0] === node +} + +export const createNodeId = (designer: Engine, id: string) => { + return { + [designer.props.nodeIdAttrName]: id + } +} + +export const createEnsureTypeItemsNode = (type: string) => (node: TreeNode) => { + const objectNode = node.children.find((child) => child.props['type'] === type) + if (objectNode) { + return objectNode + } else { + const newObjectNode = new TreeNode({ + componentName: 'Field', + props: { + type + } + }) + node.prepend(newObjectNode) + return newObjectNode + } +} diff --git a/packages/prototypes/src/shims-tsx.d.ts b/packages/prototypes/src/shims-tsx.d.ts new file mode 100644 index 0000000..707deb0 --- /dev/null +++ b/packages/prototypes/src/shims-tsx.d.ts @@ -0,0 +1,9 @@ +import 'vue' + +declare module 'vue' { + export interface ComponentCustomProps { + attrs?: { [key: string]: any } + props?: { [key: string]: any } + on?: { [key: string]: any } + } +} diff --git a/packages/prototypes/src/styles.less b/packages/prototypes/src/styles.less new file mode 100644 index 0000000..7d5a227 --- /dev/null +++ b/packages/prototypes/src/styles.less @@ -0,0 +1,6 @@ +// @import '~ant-design-vue/lib/style/themes/index.less'; + +@text-color: rgba(0, 0, 0, 0.85); +@border-color-split: #f0f0f0; +@border-color-base: #d9d9d9; +@component-background: #fff; diff --git a/packages/prototypes/tsconfig.build.json b/packages/prototypes/tsconfig.build.json index cb94a64..0d5dfcd 100644 --- a/packages/prototypes/tsconfig.build.json +++ b/packages/prototypes/tsconfig.build.json @@ -1,10 +1,8 @@ { "extends": "./tsconfig.json", "compilerOptions": { + "baseUrl": "./src", "outDir": "./lib", - "paths": { - "@formily/*": ["packages/*"] - }, "declaration": true } } diff --git a/packages/renderer/.npmignore.tpl b/packages/renderer/.npmignore.tpl deleted file mode 100644 index 1ff3374..0000000 --- a/packages/renderer/.npmignore.tpl +++ /dev/null @@ -1,11 +0,0 @@ -node_modules -*.log -build -docs -doc-site -__tests__ -.eslintrc -jest.config.js -tsconfig.json -.umi -src \ No newline at end of file diff --git a/packages/renderer/package.json b/packages/renderer/package.json deleted file mode 100644 index 8902d44..0000000 --- a/packages/renderer/package.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "@formily/antdv-renderer", - "private": true, - "version": "1.0.0-alpha.8", - "license": "MIT", - "main": "lib", - "types": "lib/index.d.ts", - "engines": { - "npm": ">=3.0.0" - }, - "module": "esm", - "umd:main": "dist/formily.antdv-renderer.umd.production.js", - "unpkg": "dist/formily.antdv-renderer.umd.production.js", - "jsdelivr": "dist/formily.antdv-renderer.umd.production.js", - "jsnext:main": "esm", - "sideEffects": [ - "dist/*", - "esm/*.js", - "lib/*.js", - "src/*.ts", - "*.less", - "*.scss", - "**/*/style.js" - ], - "scripts": { - "build": "formily-tpl build" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/formilyjs/antdv.git" - }, - "bugs": { - "url": "https://github.com/formilyjs/antdv/issues" - }, - "homepage": "https://github.com/formilyjs/antdv#readme", - "publishConfig": { - "access": "public" - }, - "peerDependencies": { - "@vue/composition-api": "^1.0.0-beta.1", - "vue": "^2.6.0 || >=3.0.0-rc.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } - }, - "devDependencies": { - "ant-design-vue": "^1.7.8", - "vue": "^2.6.14" - } -} diff --git a/packages/renderer/src/index.ts b/packages/renderer/src/index.ts deleted file mode 100644 index b1c6ea4..0000000 --- a/packages/renderer/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export default {} diff --git a/packages/setters/.npmignore.tpl b/packages/setters/.npmignore.tpl deleted file mode 100644 index 1ff3374..0000000 --- a/packages/setters/.npmignore.tpl +++ /dev/null @@ -1,11 +0,0 @@ -node_modules -*.log -build -docs -doc-site -__tests__ -.eslintrc -jest.config.js -tsconfig.json -.umi -src \ No newline at end of file diff --git a/packages/setters/babel.config.js b/packages/setters/babel.config.js new file mode 100644 index 0000000..4b763bc --- /dev/null +++ b/packages/setters/babel.config.js @@ -0,0 +1,15 @@ +module.exports = (api) => { + return { + presets: [ + [ + '@babel/preset-env', + { + useBuiltIns: false, + modules: api.env(['es']) ? false : api.env(['cjs']) ? 'commonjs' : 'auto' + } + ], + '@babel/preset-typescript' + ], + plugins: ['@babel/transform-runtime', '@vue/babel-plugin-jsx'] + } +} diff --git a/packages/setters/builder.config.ts b/packages/setters/builder.config.ts index dc7bd55..4585e71 100644 --- a/packages/setters/builder.config.ts +++ b/packages/setters/builder.config.ts @@ -4,4 +4,9 @@ export const BuilderConfig: IBuilderConfig = { targetLibName: 'ant-design-vue', targetLibCjsDir: 'lib', targetLibEsDir: 'es', + externals: { + '@formily/antdv': 'Formily.Antdv', + '@formily/antdv-designable': 'Formily.AntdvDesignable', + '@formily/antdv-settings-form': 'Formily.AntdvSettingsForm' + } } diff --git a/packages/setters/package.json b/packages/setters/package.json index c8a7201..914effe 100644 --- a/packages/setters/package.json +++ b/packages/setters/package.json @@ -1,7 +1,6 @@ { "name": "@formily/antdv-setters", - "private": true, - "version": "1.0.0-alpha.8", + "version": "2.0.0", "license": "MIT", "main": "lib", "types": "lib/index.d.ts", @@ -13,22 +12,17 @@ "unpkg": "dist/formily.antdv-setters.umd.production.js", "jsdelivr": "dist/formily.antdv-setters.umd.production.js", "jsnext:main": "esm", - "sideEffects": [ - "dist/*", - "esm/*.js", - "lib/*.js", - "src/*.ts", - "*.less", - "*.scss", - "**/*/style.js" - ], + "sideEffects": true, "scripts": { - "build": "formily-tpl build" + "build": "ts-node ../../scripts/build.ts" }, "repository": { "type": "git", "url": "git+https://github.com/formilyjs/antdv.git" }, + "maintainers": [ + "yiyunwan" + ], "bugs": { "url": "https://github.com/formilyjs/antdv/issues" }, @@ -37,16 +31,20 @@ "access": "public" }, "peerDependencies": { - "@vue/composition-api": "^1.0.0-beta.1", - "vue": "^2.6.0 || >=3.0.0-rc.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } + "vue": "^3.3.0" }, "devDependencies": { - "ant-design-vue": "^1.7.8", - "vue": "^2.6.14" - } + "@formily/core": "^2.0.0", + "@formily/json-schema": "^2.0.0", + "@formily/reactive": "^2.0.0", + "@formily/reactive-vue": "^2.0.0", + "@formily/shared": "^2.0.0", + "@formily/vue": "^2.0.0", + "@pind/designable-core": "^2.0.0-beta.6", + "@pind/designable-shared": "^2.0.0-beta.6", + "@formily/antdv": "2.0.0", + "@formily/antdv-designable": "2.0.0", + "@formily/antdv-settings-form": "2.0.0" + }, + "gitHead": "62ef79d985a056c1038754fc928645c3b147cb6e" } diff --git a/packages/setters/src/components/DataSourceSetter/DataSettingPanel.tsx b/packages/setters/src/components/DataSourceSetter/DataSettingPanel.tsx new file mode 100644 index 0000000..73f1ec0 --- /dev/null +++ b/packages/setters/src/components/DataSourceSetter/DataSettingPanel.tsx @@ -0,0 +1,153 @@ +import { GlobalRegistry } from '@pind/designable-core' +import type { ArrayField, Form as FormCore } from '@formily/core' +import { createForm } from '@formily/core' +import { observer } from '@formily/reactive-vue' +import { FragmentComponent, createSchemaField } from '@formily/vue' +import { ArrayItems, Form, FormItem, Input, Space } from '@formily/antdv' +import { IconWidget, TextWidget, usePrefix } from '@formily/antdv-designable' +import { ValueInput } from '@formily/antdv-settings-form' +import { Button } from 'ant-design-vue' +import type { PropType } from 'vue' +import { defineComponent, watch } from 'vue' +import { Header } from './Header' +import { traverseTree } from './shared' +import './styles.less' +import type { INodeItem, ITreeDataSource } from './types' + +const { SchemaField, SchemaArrayField, SchemaObjectField, SchemaStringField, SchemaVoidField } = + createSchemaField({ + components: { + FormItem, + Input, + ArrayItems, + ValueInput, + Space + } + }) + +export interface IDataSettingPanelProps { + treeDataSource: ITreeDataSource + allowExtendOption?: boolean + effects?: (form: FormCore) => void +} + +export const DataSettingPanel = observer( + defineComponent({ + inheritAttrs: false, + props: { + treeDataSource: { + type: Object as PropType + }, + allowExtendOption: { + type: Boolean as PropType + }, + effects: { + type: Function as PropType + } + }, + setup(props) { + const prefixRef = usePrefix('data-source-setter') + const form = createForm({ + values: {}, + effects: props.effects + }) + watch( + [() => props.treeDataSource.selectedKey, () => props.treeDataSource.dataSource], + ([selectedKey, dataSource]) => { + let values: any = {} + traverseTree(dataSource as INodeItem[], (dataItem) => { + if (dataItem.key === selectedKey) { + values = dataItem + } + }) + form.setValues(values, 'overwrite') + }, + { immediate: true } + ) + const labelStr = GlobalRegistry.getDesignerMessage('SettingComponents.DataSourceSetter.label') + const valueStr = GlobalRegistry.getDesignerMessage('SettingComponents.DataSourceSetter.value') + return () => { + const prefix = prefixRef.value + const allowExtendOption = props.allowExtendOption + if (!props.treeDataSource?.selectedKey) + return ( + +
} + extra={null} + /> +
+ +
+ + ) + return ( + +
} + extra={ + allowExtendOption ? ( + + ) : null + } + /> +
+ + + + + + + + + + + +
+ + ) + } + } + }) +) diff --git a/packages/setters/src/components/DataSourceSetter/Header.tsx b/packages/setters/src/components/DataSourceSetter/Header.tsx new file mode 100644 index 0000000..87bf6af --- /dev/null +++ b/packages/setters/src/components/DataSourceSetter/Header.tsx @@ -0,0 +1,29 @@ +import { observer } from '@formily/reactive-vue' +import { usePrefix } from '@formily/antdv-designable' +import './styles.less' +import { defineComponent } from 'vue' +import type { VNode } from 'vue' + +export interface IHeaderProps { + extra: VNode | null + title: VNode | string +} + +export const Header = observer( + defineComponent({ + inheritAttrs: false, + props: ['title', 'extra'], + setup(props) { + const prefixRef = usePrefix('data-source-setter') + return () => { + const prefix = prefixRef.value + return ( +
+
{props.title}
+ {props.extra} +
+ ) + } + } + }) +) diff --git a/packages/setters/src/components/DataSourceSetter/Title.tsx b/packages/setters/src/components/DataSourceSetter/Title.tsx new file mode 100644 index 0000000..f8e09b6 --- /dev/null +++ b/packages/setters/src/components/DataSourceSetter/Title.tsx @@ -0,0 +1,75 @@ +import { observer } from '@formily/reactive-vue' +import { clone, toArr } from '@formily/shared' +import { IconWidget, TextWidget, usePrefix } from '@formily/antdv-designable' +import type { PropType } from 'vue' +import { defineComponent } from 'vue' +import { traverseTree } from './shared' +import './styles.less' +import type { INodeItem, ITreeDataSource } from './types' + +export interface ITitleProps extends INodeItem { + treeDataSource: ITreeDataSource +} + +const titleInner = defineComponent({ + inheritAttrs: false, + props: { + duplicateKey: { type: String as PropType }, + map: { type: Array as PropType }, + children: { type: Array as PropType }, + treeDataSource: { type: Object as PropType } + }, + setup(props) { + const prefixRef = usePrefix('data-source-setter-node-title') + const getTitleValue = (dataSource: ITitleProps['map']) => { + const optionalKeys = ['label', 'title', 'header'] + let nodeTitle: string | undefined + optionalKeys.some((key) => { + const title = toArr(dataSource).find((item) => item.label === key)?.value + if (title !== undefined) { + nodeTitle = title + return true + } + return false + }) + if (nodeTitle === undefined) { + toArr(dataSource || []).some((item) => { + if (item.value && typeof item.value === 'string') { + nodeTitle = item.value + return true + } + return false + }) + } + return nodeTitle + } + + const renderTitle = (dataSource: ITitleProps['map']) => { + const nodeTitle = getTitleValue(dataSource) + if (nodeTitle === undefined) + return + else return nodeTitle + '' + } + return () => { + const prefix = prefixRef.value + return ( +
+ {renderTitle(props.map || [])} + { + const newDataSource = clone(props?.treeDataSource?.dataSource) + traverseTree(newDataSource || [], (dataItem, i, data) => { + if (data[i].key === props.duplicateKey) toArr(data).splice(i, 1) + }) + props.treeDataSource!.dataSource = newDataSource + }} + /> +
+ ) + } + } +}) + +export const Title = observer(titleInner) diff --git a/packages/setters/src/components/DataSourceSetter/TreePanel.tsx b/packages/setters/src/components/DataSourceSetter/TreePanel.tsx new file mode 100644 index 0000000..e180923 --- /dev/null +++ b/packages/setters/src/components/DataSourceSetter/TreePanel.tsx @@ -0,0 +1,149 @@ +import { GlobalRegistry } from '@pind/designable-core' +import { observer } from '@formily/reactive-vue' +import { uid } from '@formily/shared' +import { FragmentComponent } from '@formily/vue' +import { IconWidget, TextWidget, usePrefix } from '@formily/antdv-designable' +import { Button, Tree } from 'ant-design-vue' +import type { PropType } from 'vue' +import { defineComponent } from 'vue' +import { Header } from './Header' +import { Title } from './Title' +import { traverseTree } from './shared' +import './styles.less' +import type { INodeItem, ITreeDataSource } from './types' + +export interface ITreePanelProps { + treeDataSource: ITreeDataSource + allowTree: boolean + defaultOptionValue: { + label: string + value: any + }[] +} + +export const TreePanel = observer( + defineComponent({ + emits: ['data-source-change'], + props: { + treeDataSource: { + type: Object as PropType + }, + allowTree: { type: Boolean as PropType }, + defaultOptionValue: { + type: Object as PropType + } + }, + setup(props, { emit }) { + const prefixRef = usePrefix('data-source-setter') + const dropHandler = (info: any) => { + const dropKey = info.node?.eventKey + const dragKey = info.dragNode?.eventKey + const dropPos = info.node.pos.split('-') + const dropPosition = info.dropPosition - Number(dropPos[dropPos.length - 1]) + const data = [...props.treeDataSource.dataSource] + // Find dragObject + let dragObj: INodeItem + traverseTree(data, (item, index, arr) => { + if (arr[index].key === dragKey) { + arr.splice(index, 1) + dragObj = item + } + }) + if (!info.dropToGap) { + traverseTree(data, (item) => { + if (item.key === dropKey) { + item.children = item.children || [] + item.children.unshift(dragObj) + } + }) + } else if ( + (info.node.children || []).length > 0 && + info.node.expanded && + dropPosition === 1 + ) { + traverseTree(data, (item) => { + if (item.key === dropKey) { + item.children = item.children || [] + item.children.unshift(dragObj) + } + }) + } else { + let ar: any[] + let i: number + traverseTree(data, (item, index, arr) => { + if (item.key === dropKey) { + ar = arr + i = index + } + }) + if (dropPosition === -1) { + ar.splice(i, 0, dragObj) + } else { + ar.splice(i + 1, 0, dragObj) + } + } + emit('data-source-change', data) + } + return () => { + const prefix = prefixRef.value + return ( + +
} + extra={ + + } + /> +
+ ({})} + onDrop={dropHandler} + onActiveChange={(selectedKeys: string) => { + if (selectedKeys[0]) { + props.treeDataSource!.selectedKey = selectedKeys[0].toString() + } + }} + > + {{ + title: function (titleProps: any) { + return + } + }} + +
+ + ) + } + } + }) +) diff --git a/packages/setters/src/components/DataSourceSetter/index.tsx b/packages/setters/src/components/DataSourceSetter/index.tsx new file mode 100644 index 0000000..973e5d7 --- /dev/null +++ b/packages/setters/src/components/DataSourceSetter/index.tsx @@ -0,0 +1,126 @@ +import type { Form } from '@formily/core' +import { observer } from '@formily/reactive-vue' +import { FragmentComponent } from '@formily/vue' +import { TextWidget, usePrefix, useTheme } from '@formily/antdv-designable' +import { Button, Modal, Space } from 'ant-design-vue' +import type { PropType } from 'vue' +import { defineComponent, reactive, ref, watch } from 'vue' +import { DataSettingPanel } from './DataSettingPanel' +import { TreePanel } from './TreePanel' +import { transformDataToValue, transformValueToData } from './shared' +import './styles.less' +import type { IDataSourceItem, INodeItem } from './types' + +export interface IDataSourceSetterProps { + onChange: (dataSource: IDataSourceItem[]) => void + value: IDataSourceItem[] + allowTree?: boolean + allowExtendOption?: boolean + defaultOptionValue?: { + label: string + value: any + }[] + effects?: (form: Form) => void +} +export const DataSourceSetter = observer( + defineComponent({ + props: { + value: { + type: Array as PropType, + default: () => [] + }, + allowTree: { + type: Boolean as PropType, + default: true + }, + allowExtendOption: { + type: Boolean as PropType, + default: true + }, + defaultOptionValue: { + type: Array as PropType + }, + effects: { + type: Function as PropType + }, + onChange: { + type: Function as PropType + } + }, + inheritAttrs: false, + emits: ['change'], + setup(props, { emit }) { + const prefixRef = usePrefix('data-source-setter') + const themeRef = useTheme() + const modalOpenRef = ref(false) + const treeDataSourceRef = reactive({ + dataSource: [], + selectedKey: '' + }) + watch( + [() => props.value, modalOpenRef], + () => { + treeDataSourceRef.selectedKey = '' + treeDataSourceRef.dataSource = transformValueToData(props.value) + }, + { immediate: true } + ) + const openModal = () => (modalOpenRef.value = true) + const closeModal = () => (modalOpenRef.value = false) + return () => { + const modalOpen = modalOpenRef.value + const treeDataSource = treeDataSourceRef + const prefix = prefixRef.value + return ( + + + } + footer={ + + + + + } + open={modalOpen} + width="65%" + destroyOnClose + > +
+
+ { + treeDataSourceRef.dataSource = data + }} + > +
+
+ +
+
+
+
+ ) + } + } + }) +) diff --git a/packages/setters/src/components/DataSourceSetter/shared.ts b/packages/setters/src/components/DataSourceSetter/shared.ts new file mode 100644 index 0000000..e91ed57 --- /dev/null +++ b/packages/setters/src/components/DataSourceSetter/shared.ts @@ -0,0 +1,56 @@ +import { uid, clone, toArr } from '@formily/shared' +import type { IDataSourceItem, INodeItem } from './types' + +export interface INode { + key?: string + map?: any + children?: INode[] +} + +export const traverseTree = ( + data: T[], + callback: (dataItem: T, i: number, data: T[]) => any +) => { + for (let i = 0; i < data.length; i++) { + callback(data[i], i, data) + if (data[i]?.children) { + traverseTree(data[i]?.children, callback) + } + } +} + +export const transformValueToData = (value: IDataSourceItem[]): INodeItem[] => { + const data = clone(value) + traverseTree(data, (item, i, dataSource) => { + const dataItem = { + key: '', + duplicateKey: '', + map: [], + children: [] + } + for (const [key, value] of Object.entries(dataSource[i] || {})) { + if (key !== 'children') dataItem.map.push({ label: key, value: value }) + } + const uuid = uid() + dataItem.key = uuid + dataItem.duplicateKey = uuid + dataItem.children = dataSource[i].children || [] + dataSource[i] = dataItem + }) + return data +} + +export const transformDataToValue = (data: INodeItem[]): IDataSourceItem[] => { + const value = clone(data) + traverseTree(value, (item, i, dataSource) => { + const valueItem: IDataSourceItem = { + children: [] + } + toArr(dataSource[i].map).forEach((item) => { + if (item.label) valueItem[item.label] = item.value + }) + valueItem.children = dataSource[i]?.children || [] + dataSource[i] = valueItem + }) + return value +} diff --git a/packages/setters/src/components/DataSourceSetter/styles.less b/packages/setters/src/components/DataSourceSetter/styles.less new file mode 100644 index 0000000..79ef3ea --- /dev/null +++ b/packages/setters/src/components/DataSourceSetter/styles.less @@ -0,0 +1,82 @@ +@import (reference) '../../styles.less'; + +.@{prefix-cls}-data-source-setter { + ::-webkit-scrollbar { + width: 5px; + height: 5px; + } + + ::-webkit-scrollbar-thumb { + background-color: rgba(0, 0, 0, 0.2); + border-radius: 0; + transition: all 0.25s ease-in-out; + } + + ::-webkit-scrollbar-thumb:hover { + background-color: rgba(0, 0, 0, 0.3); + } + + &-node-title { + display: flex; + justify-content: space-between; + align-items: center; + + &-icon { + transition: all 0.15s ease-in-out; + opacity: 0; + + &:hover { + color: @primary-color; + } + } + } + + &-layout { + display: flex; + justify-content: space-around; + border: 1px solid @border-color-base; + border-radius: 3px; + + .@{ant-prefix}-tree li { + padding-right: 10px; + white-space: nowrap; + + .@{ant-prefix}-tree-title:hover { + .@{prefix-cls}-data-source-setter-node-title-icon { + opacity: 1; + } + } + } + + &-item { + position: relative; + + &.left { + width: 40%; + border-right: 1px solid @border-color-base; + } + + &.right { + width: 60%; + } + + &-header { + display: flex; + flex: none; + align-items: center; + justify-content: space-between; + height: 40px; + padding: 8px 12px 9px; + border-bottom: 1px solid @border-color-base; + border-radius: 2px 2px 0 0; + } + + &-content { + padding: 2%; + height: 300px; + max-height: 300px; + overflow: auto; + } + } + } +} diff --git a/packages/setters/src/components/DataSourceSetter/types.ts b/packages/setters/src/components/DataSourceSetter/types.ts new file mode 100644 index 0000000..ffffd0e --- /dev/null +++ b/packages/setters/src/components/DataSourceSetter/types.ts @@ -0,0 +1,17 @@ +export interface IDataSourceItem { + label?: '' + value?: any + children?: any[] +} + +export interface INodeItem { + key: string + duplicateKey?: string + map?: { label: string; value: any }[] + children?: INodeItem[] +} + +export interface ITreeDataSource { + dataSource: INodeItem[] + selectedKey: string +} diff --git a/packages/setters/src/components/ReactionsSetter/FieldPropertySetter.tsx b/packages/setters/src/components/ReactionsSetter/FieldPropertySetter.tsx new file mode 100644 index 0000000..96c9839 --- /dev/null +++ b/packages/setters/src/components/ReactionsSetter/FieldPropertySetter.tsx @@ -0,0 +1,139 @@ +import { TextWidget, usePrefix } from '@formily/antdv-designable' +import { Menu } from 'ant-design-vue' +import { MonacoInput } from '@formily/antdv-settings-form' +import { defineComponent, ref } from 'vue' +import { isPlainObj, reduce } from '@formily/shared' +import { FieldProperties } from './properties' + +export interface IFieldProperty { + [key: string]: string +} + +export interface IFieldPropertySetterProps { + extraLib?: string + value?: IFieldProperty + onChange?: (value: IFieldProperty) => void +} + +const template = (code: string) => { + if (!code) return + return code.trim() +} + +export const FieldPropertySetter = defineComponent({ + props: { value: { type: Object }, extraLib: {} }, + emits: ['change'], + setup(props, { emit }) { + const selectKeyRef = ref('visible') + const setSelectKey = (value: string) => (selectKeyRef.value = value) + const prefixRef = usePrefix('field-property-setter') + + const parseExpression = (expression: string) => { + if (!expression) return '' + return String(expression).match(/^\{\{([\s\S]*)\}\}$/)?.[1] || '' + } + + const filterEmpty = (value) => { + return reduce( + value, + (buf, value, key) => { + if (!value || value === '{{}}') return buf + buf[key] = value + return buf + }, + {} as Record + ) + } + + return () => { + const prefix = prefixRef.value + const value = { ...props.value } + const selectKey = selectKeyRef.value + const currentProperty = FieldProperties.find((item) => item.key === selectKey) + return ( +
+ { + setSelectKey(selectedKey) + }} + > + {FieldProperties.map((key) => { + if (isPlainObj(key)) { + return ( + + + + ) + } + return ( + + + + ) + })} + +
+
+ {`$self.${selectKey} = (`} + + {'//'}{' '} + {'`'} + {currentProperty?.type} + {'`'} + +
+
+ { + emit( + 'change', + filterEmpty({ + ...value, + [selectKey]: `{{${expression}}}` + }) + ) + }} + /> +
+
{`)`}
+
+
+ ) + } + } +}) diff --git a/packages/setters/src/components/ReactionsSetter/PathSelector.tsx b/packages/setters/src/components/ReactionsSetter/PathSelector.tsx new file mode 100644 index 0000000..83c54b5 --- /dev/null +++ b/packages/setters/src/components/ReactionsSetter/PathSelector.tsx @@ -0,0 +1,113 @@ +import type { TreeNode } from '@pind/designable-core' +import { useSelectedNode } from '@formily/antdv-designable' +import type { TreeSelectProps } from 'ant-design-vue' +import { TreeSelect } from 'ant-design-vue' +import { defineComponent } from 'vue' + +export interface IPathSelectorProps extends Omit { + value?: string + onChange?: (value: string, node: TreeNode) => void + style?: Record + className?: string +} + +const transformDataSource = (node: TreeNode) => { + const currentNode = node + const dots = (count: number) => { + let dots = '' + for (let i = 0; i < count; i++) { + dots += '.' + } + return dots + } + const targetPath = (parentNode: TreeNode, targetNode: TreeNode) => { + const path: Array = [] + const transform = (node: TreeNode) => { + if (node && node !== parentNode) { + path.push(node.props?.name || node.id) + } else { + transform(node.parent) + } + } + transform(targetNode) + return path.reverse().join('.') + } + const hasNoVoidChildren: (node: TreeNode) => boolean | undefined = (node: TreeNode) => { + return node.children?.some((node) => { + if (node.props?.type !== 'void' && node !== currentNode) return true + return hasNoVoidChildren(node) + }) + } + const findRoot = (node: TreeNode): TreeNode => { + if (!node?.parent) return node + if (node?.parent?.componentName !== node.componentName) return node.parent + return findRoot(node.parent) + } + const findArrayParent: (node: TreeNode) => TreeNode | undefined = (node: TreeNode) => { + if (!node?.parent) return + if (node.parent.props?.type === 'array') return node.parent + if (node.parent === root) return + return findArrayParent(node.parent) + } + const transformRelativePath = (arrayNode: TreeNode, targetNode: TreeNode) => { + if (targetNode.depth === currentNode.depth) return `.${targetNode.props?.name || targetNode.id}` + return `${dots(currentNode.depth - arrayNode.depth)}[].${targetPath(arrayNode, targetNode)}` + } + const transformChildren: ( + node: TreeNode[], + path?: string[] + ) => { + label: string | undefined + value: any + node: any + children: any[] + }[] = (children: TreeNode[], path = []) => { + return children.reduce((buf, node) => { + if (node === currentNode) return buf + if (node.props?.type === 'array' && !node.contains(currentNode)) return buf + if (node.props?.type === 'void' && !hasNoVoidChildren(node)) return buf + const currentPath = path.concat(node.props?.name || node.id) + const arrayNode = findArrayParent(node) + const label = + node.props?.title || + node.props?.['x-component-props']?.title || + node.props?.name || + node.designerProps.title + const value = arrayNode ? transformRelativePath(arrayNode, node) : currentPath.join('.') + return buf.concat({ + label, + value, + node, + children: transformChildren(node.children, currentPath) + }) + }, [] as { label: string | undefined; value: any; node: any; children: any[] }[]) + } + const root = findRoot(node) + if (root) { + return transformChildren(root.children) + } + return [] +} + +export const PathSelector = defineComponent({ + props: { + value: {}, + onChange: {} + }, + emits: ['change'], + setup(props, { attrs, emit }) { + const baseNode = useSelectedNode() + const dataSource = transformDataSource(baseNode.value) + return () => { + return ( + emit('change', arg)} + /> + ) + } + } +}) diff --git a/packages/setters/src/components/ReactionsSetter/declarations.ts b/packages/setters/src/components/ReactionsSetter/declarations.ts new file mode 100644 index 0000000..9fc524d --- /dev/null +++ b/packages/setters/src/components/ReactionsSetter/declarations.ts @@ -0,0 +1,66 @@ +import { MonacoInput, getNpmCDNRegistry } from '@formily/antdv-settings-form' + +export interface IDependency { + name: string + path: string +} + +const loadDependencies = async (deps: IDependency[]) => { + return Promise.all( + deps.map(async ({ name, path }) => ({ + name, + path, + library: await fetch(`${getNpmCDNRegistry()}/${name}/${path}`).then((res) => res.text()) + })) + ) +} + +export const initDeclaration = async () => { + return MonacoInput.loader.init().then(async (monaco) => { + const deps = await loadDependencies([ + { name: '@formily/core', path: 'dist/formily.core.all.d.ts' } + ]) + deps?.forEach(({ name, library }) => { + monaco.languages.typescript.typescriptDefaults.addExtraLib( + `declare module '${name}'{ ${library} }`, + `file:///node_modules/${name}/index.d.ts` + ) + }) + monaco.languages.typescript.typescriptDefaults.addExtraLib( + ` + import { Form, Field } from '@formily/core' + declare global { + /* + * Form Model + **/ + declare var $form: Form + /* + * Form Values + **/ + declare var $values: any + /* + * Field Model + **/ + declare var $self: Field + /* + * create an persistent observable state object + **/ + declare var $observable: (target: T, deps?: any[]) => T + /* + * create a persistent data + **/ + declare var $memo: (callback: () => T, deps?: any[]) => T + /* + * handle side-effect logic + **/ + declare var $effect: (callback: () => void | (() => void), deps?: any[]) => void + /* + * set initial component props to current field + **/ + declare var $props: (props: any) => void + } + `, + `file:///node_modules/formily_global.d.ts` + ) + }) +} diff --git a/packages/setters/src/components/ReactionsSetter/helpers.ts b/packages/setters/src/components/ReactionsSetter/helpers.ts new file mode 100644 index 0000000..0b28735 --- /dev/null +++ b/packages/setters/src/components/ReactionsSetter/helpers.ts @@ -0,0 +1,393 @@ +export const GlobalHelper = ` +/** + * You can use the built-in context variables + * + * 1. \`$self\` is the current Field Model + * + * 2. \`$form\` is the current Form Model + * + * 3. \`$deps\` is the dependencies value + * + * 4. \`$observable\` function is used to create an persistent observable state object + * + * 5. \`$memo\` function is is used to create a persistent data + * + * 6. \`$effect\` function is used to handle side-effect logic + * + * 7. \`$props\` function is used to set component props to current field + * + * Document Links + * + * https://react.formilyjs.org/api/shared/schema#%E5%86%85%E7%BD%AE%E8%A1%A8%E8%BE%BE%E5%BC%8F%E4%BD%9C%E7%94%A8%E5%9F%9F + **/ +` + +export const BooleanHelper = ` +/** + * Example 1 + * Static Boolean + **/ + +false + +/** + * Example 2 + * Equal Calculation + **/ + +$deps.VariableName === 'TARGET_VALUE' + +/** + * Example 3 + * Not Equal Calculation + **/ + +$deps.VariableName !== 'TARGET_VALUE' + +/** + * Example 4 + * And Logic Calculation + **/ + +$deps.VariableName1 && $deps.VariableName2 + +/** + * Example 5 + * Grater Logic Calculation + **/ + +$deps.VariableName > 100 + +/** + * Example 6 + * Not Logic Calculation + **/ + +!$deps.VariableName + +${GlobalHelper} +` + +export const DisplayHelper = ` +/** + * Example 1 + * Static Mode + **/ + +'none' + +/** + * Example 2 + * Equal Condition Associated + **/ + +$deps.VariableName === 'TARGET_VALUE' ? 'visible' : 'none' + +/** + * Example 3 + * Not Equal Condition Associated + **/ + +$deps.VariableName !== 'TARGET_VALUE' ? 'visible' : 'hidden' + +/** + * Example 4 + * And Logic Condition Associated + **/ + +$deps.VariableName1 && $deps.VariableName2 ? 'visible' : 'none' + +/** + * Example 5 + * Grater Logic Condition Associated + **/ + +$deps.VariableName > 100 ? 'visible' : 'hidden' + +/** + * Example 6 + * Not Logic Condition Associated + **/ + +!$deps.VariableName ? 'visible' : 'none' + +${GlobalHelper} +` + +export const PatternHelper = ` +/** + * Example 1 + * Static Mode + **/ + +'readPretty' + +/** + * Example 2 + * Equal Condition Associated + **/ + +$deps.VariableName === 'TARGET_VALUE' ? 'editable' : 'disabled' + +/** + * Example 3 + * Not Equal Condition Associated + **/ + +$deps.VariableName !== 'TARGET_VALUE' ? 'editable' : 'readOnly' + +/** + * Example 4 + * And Logic Condition Associated + **/ + +$deps.VariableName1 && $deps.VariableName2 ? 'editable' : 'readPretty' + +/** + * Example 5 + * Grater Logic Condition Associated + **/ + +$deps.VariableName > 100 ? 'editable' : 'readOnly' + +/** + * Example 6 + * Not Logic Condition Associated + **/ + +!$deps.VariableName ? 'editable' : 'disabled' + +${GlobalHelper} +` + +export const StringHelper = ` +/** + * Example 1 + * Static String + **/ + +'Normal String Text' + +/** + * Example 2 + * Associated String + **/ + +$deps.VariableName === 'TARGET_VALUE' ? 'Associated String Text' : '' + +${GlobalHelper} +` + +export const AnyHelper = ` +/** + * Example 1 + * String Type + **/ + +'String' + +/** + * Example 2 + * String Array + **/ + +['StringArray'] + +/** + * Example 3 + * Object Array + **/ + +[{ key: 'ObjectArray' }] + +/** + * Example 4 + * Boolean + **/ + +true + +/** + * Example 5 + * RegExp + **/ + +/\d+/ + +/** + * Example 1 + * Associated String Value + **/ + +$deps.VariableName + 'Compose String' + +/** + * Example 2 + * Associated Array Value + **/ + +[ $deps.VariableName ] + +/** + * Example 3 + * Associated Object Value + **/ + +{ + key : $deps.VariableName +} + +/** + * Example 4 + * Associated Boolean Value + **/ + +!$deps.VariableName + +${GlobalHelper} +` + +export const DataSourceHelper = ` +/** + * Example 1 + * Static DataSource + **/ + +[ + { label : "item1", value: "1" }, + { label : "item2", value: "2" } +] + +/** + * Example 2 + * Associated DataSource + **/ + +[ + { label : "item1", value: "1" }, + { label : "item2", value: "2" }, + ...$deps.VariableName +] + +${GlobalHelper} +` + +export const ComponentPropsHelper = ` +/** + * Example 1 + * Static Props + **/ + +{ + placeholder: "This is placeholder" +} + +/** + * Example 2 + * Associated Props + **/ + +{ + placeholder: $deps.VariableName +} + +${GlobalHelper} +` + +export const DecoratorPropsHelper = ` +/** + * Example 1 + * Static Props + **/ + +{ + labelCol:6 +} + +/** + * Example 2 + * Associated Props + **/ + +{ + labelCol: $deps.VariableName +} + +${GlobalHelper} +` + +export const FulfillRunHelper = ` +/** + * Example 1 + * Async Select + **/ + +$effect(()=>{ + $self.loading = true + fetch('//some.domain/getSomething') + .then(response=>response.json()) + .then(({ data })=>{ + $self.loading = false + $self.dataSource = data + },()=>{ + $self.loading = false + }) +},[]) + + +/** + * Example 2 + * Async Search Select + **/ + +const state = $observable({ + keyword:'' +}) + +$props({ + onSearch(keyword){ + state.keyword = keyword + } +}) + +$effect(()=>{ + $self.loading = true + fetch(\`//some.domain/getSomething?q=\${state.keyword}\`) + .then(response=>response.json()) + .then(({ data })=>{ + $self.loading = false + $self.dataSource = data + },()=>{ + $self.loading = false + }) +},[ state.keyword ]) + +/** + * Example 3 + * Async Associated Select + **/ + +const state = $observable({ + keyword:'' +}) + +$props({ + onSearch(keyword){ + state.keyword = keyword + } +}) + +$effect(()=>{ + $self.loading = true + fetch(\`//some.domain/getSomething?q=\${state.keyword}&other=\${$deps.VariableName}\`) + .then(response=>response.json()) + .then(({ data })=>{ + $self.loading = false + $self.dataSource = data + },()=>{ + $self.loading = false + }) +},[ state.keyword, $deps.VariableName ]) + +${GlobalHelper} +` diff --git a/packages/setters/src/components/ReactionsSetter/index.tsx b/packages/setters/src/components/ReactionsSetter/index.tsx new file mode 100644 index 0000000..eac8951 --- /dev/null +++ b/packages/setters/src/components/ReactionsSetter/index.tsx @@ -0,0 +1,465 @@ +import { GlobalRegistry } from '@pind/designable-core' +import { requestIdle } from '@pind/designable-shared' +import { createForm, isVoidField } from '@formily/core' +import { clone, uid } from '@formily/shared' +import type { ISchema } from '@formily/vue' +import { FragmentComponent, createSchemaField } from '@formily/vue' +import { ArrayTable, Form, FormCollapse, FormItem, Input, Select } from '@formily/antdv' +import { TextWidget, usePrefix } from '@formily/antdv-designable' +import { MonacoInput } from '@formily/antdv-settings-form' +import { Button, Card, Modal, Space, Tag, Tooltip } from 'ant-design-vue' +import { defineComponent, markRaw, ref, watch } from 'vue' +import { FieldPropertySetter } from './FieldPropertySetter' +import { PathSelector } from './PathSelector' +import { initDeclaration } from './declarations' +import { FulfillRunHelper } from './helpers' +import './styles.less' +import type { IReaction } from './types' + +export interface IReactionsSetterProps { + value?: IReaction + onChange?: (value: IReaction) => void +} + +const TypeView = defineComponent({ + props: { value: { type: String } }, + setup(props) { + return () => { + const value = props.value + const text = String(value) + if (text.length <= 26) return {text} + return ( + + + +
{text}
+
+ + } + > + {text.substring(0, 24)}... +
+
+ ) + } + } +}) + +const { + SchemaField, + SchemaVoidField, + SchemaArrayField, + SchemaObjectField, + SchemaStringField, + SchemaMarkupField +} = createSchemaField({ + components: { + Card, + FormCollapse, + Input, + TypeView, + Select, + FormItem, + PathSelector, + FieldPropertySetter, + ArrayTable, + MonacoInput + } +}) + +const FieldStateProperties = [ + 'value', + 'initialValue', + 'inputValue', + 'inputValues', + 'modified', + 'initialized', + 'title', + 'description', + 'mounted', + 'unmounted', + 'active', + 'visited', + 'loading', + 'errors', + 'warnings', + 'successes', + 'feedbacks', + 'valid', + 'invalid', + 'pattern', + 'display', + 'disabled', + 'readOnly', + 'readPretty', + 'visible', + 'hidden', + 'editable', + 'validateStatus', + 'validating' +] + +const FieldStateValueTypes = { + modified: 'boolean', + initialized: 'boolean', + title: 'string', + description: 'string', + mounted: 'boolean', + unmounted: 'boolean', + active: 'boolean', + visited: 'boolean', + loading: 'boolean', + errors: 'string[]', + warnings: 'string[]', + successes: 'string[]', + feedbacks: `Array< + triggerType?: 'onInput' | 'onFocus' | 'onBlur' + type?: 'error' | 'success' | 'warning' + code?: + | 'ValidateError' + | 'ValidateSuccess' + | 'ValidateWarning' + | 'EffectError' + | 'EffectSuccess' + | 'EffectWarning' + messages?: string[] +> +`, + valid: 'boolean', + invalid: 'boolean', + pattern: "'editable' | 'disabled' | 'readOnly' | 'readPretty'", + display: "'visible' | 'hidden' | 'none'", + disabled: 'boolean', + readOnly: 'boolean', + readPretty: 'boolean', + visible: 'boolean', + hidden: 'boolean', + editable: 'boolean', + validateStatus: "'error' | 'warning' | 'success' | 'validating'", + validating: 'boolean' +} + +export const ReactionsSetter = defineComponent({ + props: { value: { type: [Array, Object] } }, + inheritAttrs: false, + emits: ['change'], + setup(props, { emit }) { + const modalOpenRef = ref(false) + const formRef = ref() + const formCollapseRef = ref() + const prefixRef = usePrefix('reactions-setter') + + watch( + [() => props.value, modalOpenRef], + () => { + formRef.value = markRaw( + createForm({ + values: clone(props.value) + }) + ) + }, + { immediate: true } + ) + + watch( + [modalOpenRef], + () => { + formCollapseRef.value = markRaw(FormCollapse.createFormCollapse(['deps', 'state'])) + }, + { immediate: true } + ) + + const openModal = () => (modalOpenRef.value = true) + const closeModal = () => (modalOpenRef.value = false) + + watch( + modalOpenRef, + (value) => { + if (value) { + requestIdle( + () => { + initDeclaration() + }, + { + timeout: 400 + } + ) + } + }, + { immediate: true } + ) + + return () => { + const modalOpen = modalOpenRef.value + const form = formRef.value + const formCollapse = formCollapseRef.value + const prefix = prefixRef.value + return ( + + + } + footer={ + + + + + } + > +
+
+ + + + + + + + + + + + + { + if (isVoidField(field)) return + field.query('.source').take((source) => { + if (isVoidField(source)) return + if (source.value && !field.value && !field.modified) { + field.value = source.inputValues[1]?.props?.name || `v_${uid()}` + } + }) + }} + /> + + + + { + if (isVoidField(field)) return + const property = field.query('.property').get('inputValues') + if (!property) return + property[0] = property[0] || 'value' + field.query('.source').take((source) => { + if (isVoidField(source)) return + if (source.value) { + if ( + property[0] === 'value' || + property[0] === 'initialValue' || + property[0] === 'inputValue' + ) { + field.value = source.inputValues[1]?.props?.type || 'any' + } else if (property[0] === 'inputValues') { + field.value = `any[]` + } else if (property[0]) { + field.value = FieldStateValueTypes[property[0]] + } else { + field.value = 'any' + } + } + }) + }} + /> + + + + + + + + + + + + + + { + const deps = field.query('dependencies').value() + if (Array.isArray(deps)) { + field.componentProps.extraLib = ` + declare var $deps : { + ${deps.map(({ name, type }) => { + if (!name) return '' + return `${name}?:${type || 'any'},` + })} + } + ` + } + }} + /> + + + +
+
+
+
+ ) + } + } +}) diff --git a/packages/setters/src/components/ReactionsSetter/properties.ts b/packages/setters/src/components/ReactionsSetter/properties.ts new file mode 100644 index 0000000..20a6071 --- /dev/null +++ b/packages/setters/src/components/ReactionsSetter/properties.ts @@ -0,0 +1,51 @@ +import { + BooleanHelper, + PatternHelper, + StringHelper, + AnyHelper, + DataSourceHelper, + DecoratorPropsHelper, + DisplayHelper, + ComponentPropsHelper +} from './helpers' + +export const FieldProperties = [ + { + key: 'visible', + type: 'boolean', + helpCode: BooleanHelper + }, + { key: 'hidden', type: 'boolean', helpCode: BooleanHelper }, + { + key: 'display', + type: '"visible" | "hidden" | "none"', + helpCode: DisplayHelper + }, + { + key: 'pattern', + type: '"editable" | "disabled" | "readOnly" | "readPretty"', + helpCode: PatternHelper + }, + { key: 'title', type: 'string', helpCode: StringHelper }, + { key: 'description', type: 'string', helpCode: StringHelper }, + { key: 'value', type: 'any', helpCode: AnyHelper }, + { key: 'initialValue', type: 'any', helpCode: AnyHelper }, + { key: 'required', type: 'boolean', helpCode: BooleanHelper }, + { + key: 'dataSource', + type: 'Array<{label?:string,value?:any}>', + helpCode: DataSourceHelper + }, + { + key: 'componentProps', + token: 'componentProps', + type: 'object', + helpCode: ComponentPropsHelper + }, + { + key: 'decoratorProps', + token: 'decoratorProps', + type: 'object', + helpCode: DecoratorPropsHelper + } +] diff --git a/packages/setters/src/components/ReactionsSetter/styles.less b/packages/setters/src/components/ReactionsSetter/styles.less new file mode 100644 index 0000000..2052611 --- /dev/null +++ b/packages/setters/src/components/ReactionsSetter/styles.less @@ -0,0 +1,106 @@ +@import (reference) '../../styles.less'; + +.@{prefix-cls}-reactions-setter { + width: 100%; + min-height: 623px; + overflow: hidden; + + ::-webkit-scrollbar { + width: 5px; + height: 5px; + } + + ::-webkit-scrollbar-thumb { + background-color: rgba(0, 0, 0, 0.2); + border-radius: 0; + transition: all 0.25s ease-in-out; + } + + ::-webkit-scrollbar-thumb:hover { + background-color: rgba(0, 0, 0, 0.3); + } + + .@{ant-prefix}-collapse { + border: 1px solid @border-color-base; + + &-header { + padding: 8px 10px !important; + padding-left: 40px !important; + // background-color: var(--ant-bg-color) !important; + border-bottom: 1px solid @border-color-base !important; + font-weight: 500 !important; + + .@{ant-prefix}-collapse-arrow { + margin-right: 4px !important; + } + } + + &-item { + border: none !important; + } + + &-content { + border: none !important; + transition: none !important; + } + + &-content-box { + padding: 12px !important; + } + } + + .reaction-runner { + .@{ant-prefix}-collapse-content-box { + padding: 12px 0 !important; + } + } + + .reaction-state { + .@{ant-prefix}-collapse-content-box { + padding: 12px 0 !important; + } + } + + .dn-field-property-setter { + display: flex; + height: 300px; + + &-coder-wrapper { + display: flex; + flex-grow: 2; + height: 100%; + padding-left: 10px; + position: relative; + flex-direction: column; + } + + &-coder-start { + font-size: 18px; + line-height: 30px; + margin-bottom: 4px; + color: @border-color-base; + font-weight: 300; + flex-grow: 0; + opacity: 0.96; + height: 31px; + } + + &-coder-end { + font-size: 18px; + height: 31px; + color: @border-color-base; + margin-top: 4px; + margin-bottom: 4px; + line-height: 30px; + font-weight: 300; + flex-grow: 0; + opacity: 0.96; + } + + &-coder { + min-width: 0; + flex-grow: 2; + padding-left: 10px; + } + } +} diff --git a/packages/setters/src/components/ReactionsSetter/types.ts b/packages/setters/src/components/ReactionsSetter/types.ts new file mode 100644 index 0000000..ad84a65 --- /dev/null +++ b/packages/setters/src/components/ReactionsSetter/types.ts @@ -0,0 +1,13 @@ +export interface IReaction { + dependencies?: { + [key: string]: string + } + fulfill?: { + state?: { + [key: string]: string + } + schema?: { + [key: string]: string + } + } +} diff --git a/packages/setters/src/components/ValidatorSetter/index.tsx b/packages/setters/src/components/ValidatorSetter/index.tsx new file mode 100644 index 0000000..5f8e175 --- /dev/null +++ b/packages/setters/src/components/ValidatorSetter/index.tsx @@ -0,0 +1,251 @@ +import { defineComponent, unref } from 'vue' +import { Select as ASelect } from 'ant-design-vue' +import { GlobalRegistry } from '@pind/designable-core' +import { onFormInputChange } from '@formily/core' +import { useField, createForm, createSchemaField } from '@formily/vue' +import { observer } from '@formily/reactive-vue' +import { + ArrayItems, + FormItem, + Input, + Space, + Select, + Switch, + Form, + InputNumber +} from '@formily/antdv' +import { FoldItem, DrawerSetter, ValueInput } from '@formily/antdv-settings-form' + +import type { ArrayField } from '@formily/core' +import type { ISchema } from '@formily/json-schema' + +export interface IValidatorSetterProps { + value?: any + onChange?: (value: any) => void +} + +const { SchemaField } = createSchemaField({ + components: { + ArrayItems, + FormItem, + Input, + Space, + Select, + Switch, + InputNumber, + DrawerSetter, + ValueInput + } +}) + +export const ValidatorSetter = observer( + defineComponent({ + props: ['value', 'onChange'], + emits: ['change'], + setup(props, { emit }) { + const fieldRef = useField() + const form = createForm({ + effects() { + onFormInputChange((res) => { + const decorator = res.values?.array || [] + props.onChange?.(decorator) + emit('change', decorator) + }) + } + }) + + // TIPS: 放在组件外面,如果语言设置置后会导致多语言无效 + const ValidatorSchema: ISchema = { + type: 'void', + properties: { + array: { + type: 'array', + 'x-component': 'ArrayItems', + items: { + type: 'object', + 'x-decorator': 'ArrayItems.Item', + 'x-decorator-props': { + style: { + alignItems: 'center', + borderRadius: '3px', + paddingTop: '6px', + paddingBottom: '6px' + } + }, + properties: { + sortable: { + type: 'void', + 'x-component': 'ArrayItems.SortHandle', + 'x-component-props': { style: { marginRight: '10px' } } + }, + drawer: { + type: 'void', + 'x-component': 'DrawerSetter', + title: GlobalRegistry.getDesignerMessage('settings.x-validator.drawer'), + properties: { + triggerType: { + type: 'string', + title: GlobalRegistry.getDesignerMessage( + 'settings.x-validator.triggerType.title' + ), + enum: GlobalRegistry.getDesignerMessage( + 'settings.x-validator.triggerType.dataSource' + ), + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + placeholder: GlobalRegistry.getDesignerMessage( + 'settings.x-validator.triggerType.placeholder' + ) + } + }, + validator: { + type: 'string', + title: GlobalRegistry.getDesignerMessage( + 'settings.x-validator.validator.title' + ), + 'x-decorator': 'FormItem', + 'x-component': 'ValueInput', + 'x-component-props': { + include: ['EXPRESSION'] + } + }, + message: { + type: 'string', + title: GlobalRegistry.getDesignerMessage( + 'settings.x-validator.message.title' + ), + 'x-decorator': 'FormItem', + 'x-component': 'Input.TextArea' + }, + format: { + type: 'string', + title: GlobalRegistry.getDesignerMessage('settings.x-validator.format.title'), + 'x-decorator': 'FormItem', + 'x-component': 'Select', + 'x-component-props': { + allowClear: true, + placeholder: GlobalRegistry.getDesignerMessage( + 'settings.x-validator.format.placeholder' + ) + } + }, + pattern: { + type: 'string', + title: GlobalRegistry.getDesignerMessage('settings.x-validator.pattern'), + 'x-decorator': 'FormItem', + 'x-component': 'Input', + 'x-component-props': { + prefix: '/', + suffix: '/' + } + }, + len: { + type: 'string', + title: GlobalRegistry.getDesignerMessage('settings.x-validator.len'), + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber' + }, + max: { + title: GlobalRegistry.getDesignerMessage('settings.x-validator.max'), + type: 'string', + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber' + }, + min: { + type: 'string', + title: GlobalRegistry.getDesignerMessage('settings.x-validator.min'), + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber' + }, + exclusiveMaximum: { + type: 'string', + title: GlobalRegistry.getDesignerMessage( + 'settings.x-validator.exclusiveMaximum' + ), + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber' + }, + exclusiveMinimum: { + type: 'string', + title: GlobalRegistry.getDesignerMessage( + 'settings.x-validator.exclusiveMinimum' + ), + 'x-decorator': 'FormItem', + 'x-component': 'InputNumber' + }, + whitespace: { + type: 'string', + title: GlobalRegistry.getDesignerMessage('settings.x-validator.whitespace'), + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + }, + required: { + type: 'string', + title: GlobalRegistry.getDesignerMessage('settings.x-validator.required'), + 'x-decorator': 'FormItem', + 'x-component': 'Switch' + } + } + }, + moveDown: { + type: 'void', + 'x-component': 'ArrayItems.MoveDown', + 'x-component-props': { style: { marginLeft: '10px' } } + }, + moveUp: { + type: 'void', + 'x-component': 'ArrayItems.MoveUp', + 'x-component-props': { style: { marginLeft: '5px' } } + }, + remove: { + type: 'void', + 'x-component': 'ArrayItems.Remove', + 'x-component-props': { style: { marginLeft: '5px' } } + } + } + }, + properties: { + addValidatorRules: { + type: 'void', + 'x-component': 'ArrayItems.Addition', + title: GlobalRegistry.getDesignerMessage('settings.x-validator.addValidatorRules') + } + } + } + } + } + + return () => { + const field = unref(fieldRef) + return ( + + {{ + base: () => ( + { + props.onChange?.(value) + emit('change', value) + }} + allowClear + options={GlobalRegistry.getDesignerMessage( + 'SettingComponents.ValidatorSetter.formats' + )} + placeholder={GlobalRegistry.getDesignerMessage( + 'SettingComponents.ValidatorSetter.pleaseSelect' + )} + > + ), + extra: () => ( +
+ +
+ ) + }} +
+ ) + } + } + }) +) diff --git a/packages/setters/src/components/index.ts b/packages/setters/src/components/index.ts new file mode 100644 index 0000000..85a9cd9 --- /dev/null +++ b/packages/setters/src/components/index.ts @@ -0,0 +1,3 @@ +export * from './ValidatorSetter' +export * from './DataSourceSetter' +export * from './ReactionsSetter' diff --git a/packages/setters/src/index.ts b/packages/setters/src/index.ts index b1c6ea4..f8bfcd9 100644 --- a/packages/setters/src/index.ts +++ b/packages/setters/src/index.ts @@ -1 +1,2 @@ -export default {} +import './locales' +export * from './components' diff --git a/packages/setters/src/locales/en-US.ts b/packages/setters/src/locales/en-US.ts new file mode 100644 index 0000000..1af48b7 --- /dev/null +++ b/packages/setters/src/locales/en-US.ts @@ -0,0 +1,103 @@ +const ValidatorFormats = [ + { label: 'URL', value: 'url' }, + { label: 'Email', value: 'email' }, + { label: 'IPV6', value: 'ipv6' }, + { label: 'IPV4', value: 'ipv4' }, + { label: 'Number', value: 'number' }, + { label: 'Integer', value: 'integer' }, + { label: 'ID', value: 'idcard' }, + { label: 'QQ', value: 'qq' }, + { label: 'Phone Number', value: 'phone' }, + { label: 'Currency', value: 'money' }, + { label: 'Chinese', value: 'zh' }, + { label: 'Date', value: 'date' }, + { label: 'Zip', value: 'zip' } +] + +export default { + 'en-US': { + settings: { + 'x-validator': { + title: 'Validator', + addValidatorRules: 'Add Validator Rules', + drawer: 'Edit Rules', + triggerType: { + title: 'Trigger Type', + placeholder: 'Please Select', + dataSource: ['onInput', 'onFocus', 'onBlur'] + }, + format: { + title: 'Format', + placeholder: 'Please Select', + dataSource: ValidatorFormats + }, + validator: { + title: 'Custom Validator', + tooltip: 'Format: function (value){ return "Error Message"}' + }, + pattern: 'RegExp', + len: 'Length Limit', + max: 'Length/Value Lt', + min: 'Length/Value Gt', + exclusiveMaximum: 'Length/Value Lte', + exclusiveMinimum: 'Length/Value Gte', + whitespace: 'No Whitespace', + required: 'Required', + message: { + title: 'Error Message', + tooltip: + 'The error message is only effective for one built-in rule of the current rule set. If you need to customize the error message for different built-in rules, please split into multiple rules' + } + } + }, + SettingComponents: { + DataSourceSetter: { + nodeProperty: 'Node Property', + pleaseSelectNode: 'please select node from the tree on the left', + addKeyValuePair: 'Add Key Value Pair', + configureDataSource: 'Configure', + dataSource: 'DataSource', + defaultTitle: 'Default Title', + dataSourceTree: 'DataSource Tree', + addNode: 'Add Node', + label: 'label', + value: 'value', + item: 'Item' + }, + ReactionsSetter: { + configureReactions: 'Configure', + relationsFields: 'Associated Fields', + variableName: 'Variable Name', + variableNameValidateMessage: 'This is not a standard variable name', + pleaseInput: 'Please Input', + sourceField: 'Source Field', + sourceProperty: 'Field Property', + variableType: 'Variable Type', + operations: 'Operations', + addRelationField: 'Add Associated Field', + propertyReactions: 'Property Reactions(Only Support Javascript Expression)', + actionReactions: 'Action Reactions(Optional, Support Javascript Statement)', + visible: 'Show/None', + hidden: 'Show/UI Hidden', + display: 'Display', + pattern: 'Pattern', + title: 'Title', + description: 'Description', + value: 'Value', + initialValue: 'InitialValue', + dataSource: 'DataSource', + required: 'Required', + component: 'Component', + componentProps: 'Component Props', + decorator: 'Decorator', + decoratorProps: 'Decorator Props', + pleaseSelect: 'Please Select', + expressionValueTypeIs: 'Expression value type is' + }, + ValidatorSetter: { + pleaseSelect: 'Please Select', + formats: ValidatorFormats + } + } + } +} diff --git a/packages/setters/src/locales/index.ts b/packages/setters/src/locales/index.ts new file mode 100644 index 0000000..150adfc --- /dev/null +++ b/packages/setters/src/locales/index.ts @@ -0,0 +1,5 @@ +import { GlobalRegistry } from '@pind/designable-core' +import zhCN from './zh-CN' +import enUS from './en-US' + +GlobalRegistry.registerDesignerLocales(zhCN, enUS) diff --git a/packages/setters/src/locales/zh-CN.ts b/packages/setters/src/locales/zh-CN.ts new file mode 100644 index 0000000..6f1f552 --- /dev/null +++ b/packages/setters/src/locales/zh-CN.ts @@ -0,0 +1,116 @@ +const ValidatorFormats = [ + { label: 'URL地址', value: 'url' }, + { label: '邮箱格式', value: 'email' }, + { label: 'IPV6格式', value: 'ipv6' }, + { label: 'IPV4格式', value: 'ipv4' }, + { label: '数字格式', value: 'number' }, + { label: '整数格式', value: 'integer' }, + { label: '身份证格式', value: 'idcard' }, + { label: 'QQ号格式', value: 'qq' }, + { label: '手机号格式', value: 'phone' }, + { label: '货币格式', value: 'money' }, + { label: '中文格式', value: 'zh' }, + { label: '日期格式', value: 'date' }, + { label: '邮编格式', value: 'zip' } +] + +export default { + 'zh-CN': { + settings: { + 'x-validator': { + title: '校验规则', + addValidatorRules: '添加校验规则', + drawer: '配置规则', + triggerType: { + title: '触发类型', + placeholder: '请选择', + dataSource: [ + { + label: '输入时', + value: 'onInput' + }, + { + label: '聚焦时', + value: 'onFocus' + }, + { + label: '失焦时', + value: 'onBlur' + } + ] + }, + format: { + title: '格式校验', + placeholder: '请选择', + dataSource: ValidatorFormats + }, + validator: { + title: '自定义校验器', + tooltip: '格式: function (value){ return "Error Message"}' + }, + pattern: '正则表达式', + len: '长度限制', + max: '长度/数值小于', + min: '长度/数值大于', + exclusiveMaximum: '长度/数值小于等于', + exclusiveMinimum: '长度/数值大于等于', + whitespace: '不允许空白符', + required: '是否必填', + message: { + title: '错误消息', + tooltip: + '错误消息只对当前规则集的一个内置规则生效,如果需要对不同内置规则定制错误消息,请拆分成多条规则' + } + } + }, + SettingComponents: { + DataSourceSetter: { + nodeProperty: '节点属性', + pleaseSelectNode: '请先选择左侧树节点', + addKeyValuePair: '添加键值对', + configureDataSource: '配置数据源', + dataSource: '数据源', + defaultTitle: '默认标题', + dataSourceTree: '数据源节点树', + addNode: '新增节点', + label: '键名', + value: '键值', + item: '选项' + }, + ReactionsSetter: { + configureReactions: '配置响应器', + relationsFields: '依赖字段', + variableName: '变量名', + variableNameValidateMessage: '不符合变量命名规则', + pleaseInput: '请输入', + sourceField: '来源字段', + sourceProperty: '字段属性', + variableType: '变量类型', + operations: '操作', + addRelationField: '添加依赖字段', + propertyReactions: '属性响应(仅支持JS表达式)', + actionReactions: '动作响应(高级,可选,支持JS语句)', + visible: '显示/隐藏', + hidden: 'UI隐藏', + display: '展示状态', + pattern: 'UI形态', + title: '标题', + description: '描述', + value: '字段值', + initialValue: '默认值', + dataSource: '数据源', + required: '是否必填', + component: '组件', + componentProps: '组件属性', + decorator: '容器', + decoratorProps: '容器属性', + pleaseSelect: '请选择', + expressionValueTypeIs: '表达式值类型为' + }, + ValidatorSetter: { + pleaseSelect: '请选择', + formats: ValidatorFormats + } + } + } +} diff --git a/packages/setters/src/styles.less b/packages/setters/src/styles.less new file mode 100644 index 0000000..66a772f --- /dev/null +++ b/packages/setters/src/styles.less @@ -0,0 +1,3 @@ +// @import '~ant-design-vue/lib/style/themes/index.less'; + +@prefix-cls: ~'dn'; diff --git a/packages/setters/tsconfig.build.json b/packages/setters/tsconfig.build.json index cb94a64..0d5dfcd 100644 --- a/packages/setters/tsconfig.build.json +++ b/packages/setters/tsconfig.build.json @@ -1,10 +1,8 @@ { "extends": "./tsconfig.json", "compilerOptions": { + "baseUrl": "./src", "outDir": "./lib", - "paths": { - "@formily/*": ["packages/*"] - }, "declaration": true } } diff --git a/packages/settings-form/.npmignore.tpl b/packages/settings-form/.npmignore.tpl deleted file mode 100644 index 1ff3374..0000000 --- a/packages/settings-form/.npmignore.tpl +++ /dev/null @@ -1,11 +0,0 @@ -node_modules -*.log -build -docs -doc-site -__tests__ -.eslintrc -jest.config.js -tsconfig.json -.umi -src \ No newline at end of file diff --git a/packages/settings-form/babel.config.js b/packages/settings-form/babel.config.js new file mode 100644 index 0000000..4b763bc --- /dev/null +++ b/packages/settings-form/babel.config.js @@ -0,0 +1,15 @@ +module.exports = (api) => { + return { + presets: [ + [ + '@babel/preset-env', + { + useBuiltIns: false, + modules: api.env(['es']) ? false : api.env(['cjs']) ? 'commonjs' : 'auto' + } + ], + '@babel/preset-typescript' + ], + plugins: ['@babel/transform-runtime', '@vue/babel-plugin-jsx'] + } +} diff --git a/packages/settings-form/builder.config.ts b/packages/settings-form/builder.config.ts index dc7bd55..9348134 100644 --- a/packages/settings-form/builder.config.ts +++ b/packages/settings-form/builder.config.ts @@ -4,4 +4,9 @@ export const BuilderConfig: IBuilderConfig = { targetLibName: 'ant-design-vue', targetLibCjsDir: 'lib', targetLibEsDir: 'es', + externals: { + '@formily/antdv': 'Formily.Antdv', + '@formily/antdv-designable': 'Formily.AntdvDesignable', + '@formily/antdv-setters': 'Formily.AntdvSetters' + } } diff --git a/packages/settings-form/package.json b/packages/settings-form/package.json index 8d21af9..f6c4866 100644 --- a/packages/settings-form/package.json +++ b/packages/settings-form/package.json @@ -1,7 +1,6 @@ { "name": "@formily/antdv-settings-form", - "private": true, - "version": "1.0.0-alpha.8", + "version": "2.0.0", "license": "MIT", "main": "lib", "types": "lib/index.d.ts", @@ -13,17 +12,9 @@ "unpkg": "dist/formily.antdv-settings-form.umd.production.js", "jsdelivr": "dist/formily.antdv-settings-form.umd.production.js", "jsnext:main": "esm", - "sideEffects": [ - "dist/*", - "esm/*.js", - "lib/*.js", - "src/*.ts", - "*.less", - "*.scss", - "**/*/style.js" - ], + "sideEffects": true, "scripts": { - "build": "formily-tpl build" + "build": "ts-node ../../scripts/build.ts" }, "repository": { "type": "git", @@ -36,17 +27,27 @@ "publishConfig": { "access": "public" }, + "maintainers": [ + "yiyunwan" + ], "peerDependencies": { - "@vue/composition-api": "^1.0.0-beta.1", - "vue": "^2.6.0 || >=3.0.0-rc.0" + "vue": "^3.3.0" }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } + "dependencies": { + "@ckpack/vue-color": "^1.5.0", + "@monaco-editor/loader": "^1.3.2", + "monaco-editor": "^0.34.0" }, "devDependencies": { - "ant-design-vue": "^1.7.8", - "vue": "^2.6.14" - } + "@formily/reactive": "^2.0.0", + "@formily/reactive-vue": "^2.0.0", + "@formily/shared": "^2.0.0", + "@formily/vue": "^2.0.0", + "@pind/designable-core": "^2.0.0-beta.6", + "@pind/designable-formily-transformer": "^2.0.0-beta.6", + "@pind/designable-shared": "^2.0.0-beta.6", + "@formily/antdv": "2.0.0", + "@formily/antdv-designable": "2.0.0" + }, + "gitHead": "62ef79d985a056c1038754fc928645c3b147cb6e" } diff --git a/packages/settings-form/src/SchemaField.tsx b/packages/settings-form/src/SchemaField.tsx new file mode 100644 index 0000000..98e48e9 --- /dev/null +++ b/packages/settings-form/src/SchemaField.tsx @@ -0,0 +1,35 @@ +import { createSchemaField } from '@formily/vue' +import * as AntdvUI from '@formily/antdv' +import type { SchemaVueComponents } from '@formily/vue' +import { + BackgroundStyleSetter, + BorderRadiusStyleSetter, + BorderStyleSetter, + BoxShadowStyleSetter, + BoxStyleSetter, + CollapseItem, + ColorInput, + DisplayStyleSetter, + FontStyleSetter, + SizeInput, + ValueInput +} from './components' + +const SchemaFields = createSchemaField({ + components: { + CollapseItem, + ColorInput, + ...(AntdvUI as unknown as SchemaVueComponents), + SizeInput, + DisplayStyleSetter, + BackgroundStyleSetter, + BoxShadowStyleSetter, + FontStyleSetter, + BoxStyleSetter, + BorderRadiusStyleSetter, + BorderStyleSetter, + ValueInput + } +}) + +export const SchemaField = SchemaFields.SchemaField diff --git a/packages/settings-form/src/SettingsForm.tsx b/packages/settings-form/src/SettingsForm.tsx new file mode 100644 index 0000000..8334edb --- /dev/null +++ b/packages/settings-form/src/SettingsForm.tsx @@ -0,0 +1,156 @@ +import { createForm } from '@formily/core' +import { cancelIdle, requestIdle } from '@pind/designable-shared' +import { Form } from '@formily/antdv' +import { + IconWidget, + NodePathWidget, + useEffect, + useOperation, + usePrefix, + useSelected, + useSelectedNode, + useWorkbench +} from '@formily/antdv-designable' +import { Empty } from 'ant-design-vue' +import { computed, defineComponent, onBeforeUnmount, provide, ref, shallowRef } from 'vue' +import { SchemaField } from './SchemaField' +import { useLocales, useSnapshot } from './effects' +import { SettingsFormSymbol } from './shared/context' +import './styles.less' + +function useKeyUp() { + const keyboardRef = ref(false) + + const listener = () => { + keyboardRef.value = true + } + window.addEventListener('keyup', listener) + + onBeforeUnmount(() => { + window.removeEventListener('keyup', listener) + }) + + return keyboardRef +} + +export const SettingsForm = defineComponent({ + name: 'DnSettingsForm', + inheritAttrs: false, + props: [ + 'uploadAction', + 'uploadMethod', + 'uploadCustomRequest', + 'headers', + 'components', + 'effects', + 'scope' + ], + setup(props, { attrs }) { + const workbenchRef = useWorkbench() + const prefixRef = usePrefix('settings-form') + + const currentWorkspaceId = computed(() => { + const currentWorkspace = + workbenchRef.value?.activeWorkspace || workbenchRef.value?.currentWorkspace + return currentWorkspace?.id + }) + + const operationRef = useOperation(currentWorkspaceId) + const nodeRef = useSelectedNode(currentWorkspaceId) + const selectedRef = useSelected(currentWorkspaceId) + const keyupRef = useKeyUp() + const idleTaskRef = ref(null) + + // [node, node?.props, schema, operation, isEmpty] + const formRef = shallowRef() + const schemaRef = computed(() => nodeRef.value?.designerProps?.propsSchema) + const isEmptyRef = computed( + () => + !( + nodeRef.value && + nodeRef.value.designerProps?.propsSchema && + selectedRef.value.length === 1 + ) + ) + + useEffect( + () => { + idleTaskRef.value && cancelIdle(idleTaskRef.value) + idleTaskRef.value = requestIdle(() => { + formRef.value = createForm({ + initialValues: nodeRef.value?.designerProps?.defaultProps, + values: nodeRef.value?.props, + effects(form) { + useLocales(nodeRef.value) + useSnapshot(operationRef.value, keyupRef) + props.effects?.(form) + } + }) + }) + }, + () => [ + nodeRef.value, + nodeRef.value?.props, + schemaRef.value, + operationRef.value, + isEmptyRef.value + ] + ) + + provide( + SettingsFormSymbol, + computed(() => props) + ) + + return () => { + const node = nodeRef.value + const prefix = prefixRef.value + const schema = schemaRef.value + const isEmpty = isEmptyRef.value + const render = () => { + if (!isEmpty && formRef.value) { + return ( +
+
+ + +
+ ) + } + return ( +
+ +
+ ) + } + + return ( + +
+ {!isEmpty && } +
{render()}
+
+
+ ) + } + } +}) diff --git a/packages/settings-form/src/components/BackgroundStyleSetter/index.tsx b/packages/settings-form/src/components/BackgroundStyleSetter/index.tsx new file mode 100644 index 0000000..24b9d54 --- /dev/null +++ b/packages/settings-form/src/components/BackgroundStyleSetter/index.tsx @@ -0,0 +1,94 @@ +import { defineComponent, unref } from 'vue' +import { useField, Field } from '@formily/vue' +import { observer } from '@formily/reactive-vue' +import { usePrefix } from '@formily/antdv-designable' +import { Select, Input } from '@formily/antdv' +import { FoldItem } from '../FoldItem' +import { ColorInput } from '../ColorInput' +import { BackgroundSizeInput } from '../SizeInput' +import { BackgroundImageInput } from '../ImageInput' +import { InputItems } from '../InputItems' + +export const BackgroundStyleSetter = observer( + defineComponent({ + setup(props, { attrs }) { + const fieldRef = useField() + const prefixRef = usePrefix('background-style-setter') + + return () => { + const field = unref(fieldRef) + return ( + + {{ + base: () => ( + + ), + extra: () => ( + + + + + + + + + + + + + + + ) + }} + + ) + } + } + }) +) diff --git a/packages/settings-form/src/components/BorderRadiusStyleSetter/index.tsx b/packages/settings-form/src/components/BorderRadiusStyleSetter/index.tsx new file mode 100644 index 0000000..4ce00f9 --- /dev/null +++ b/packages/settings-form/src/components/BorderRadiusStyleSetter/index.tsx @@ -0,0 +1,29 @@ +import { IconWidget } from '@formily/antdv-designable' +import { defineComponent } from 'vue' +import { BoxStyleSetter } from '../BoxStyleSetter' +export interface IBorderRadiusStyleSetterProps { + value?: string + onChange?: (value: string) => void +} + +export const BorderRadiusStyleSetter: Vue.Component = + defineComponent({ + props: { value: String }, + emits: ['change'], + setup(props, { emit }) { + return () => { + return ( + emit('change', value)} + labels={[ + , + , + , + + ]} + /> + ) + } + } + }) diff --git a/packages/settings-form/src/components/BorderStyleSetter/index.tsx b/packages/settings-form/src/components/BorderStyleSetter/index.tsx new file mode 100644 index 0000000..1024022 --- /dev/null +++ b/packages/settings-form/src/components/BorderStyleSetter/index.tsx @@ -0,0 +1,138 @@ +import type { Field as FieldType } from '@formily/core' +import { observable } from '@formily/reactive' +import { observer } from '@formily/reactive-vue' +import { camelCase } from '@formily/shared' +import { Field, useField } from '@formily/vue' +import { usePrefix } from '@formily/antdv-designable' +import { defineComponent, unref } from 'vue' +import { ColorInput } from '../ColorInput' +import { FoldItem } from '../FoldItem' +import { Select } from '../FontStyleSetter/select' +import { PositionInput } from '../PositionInput' +import { SizeInput } from '../SizeInput' +import './styles.less' + +const Positions = ['center', 'top', 'right', 'bottom', 'left'] + +const BorderStyleOptions = [ + { + label: 'None', + value: 'none' + }, + { + component: () => , + label: 'solid', + value: 'solid' + }, + { + component: () => , + label: 'dashed', + value: 'dashed' + }, + { + component: () => , + label: 'dotted', + value: 'dotted' + } +] + +const createBorderProp = (position: string, key: string) => { + const insert = position === 'center' ? '' : `-${position}` + return camelCase(`border${insert}-${key}`) +} + +const parseInitPosition = (field: FieldType) => { + const basePath = field.address.parent() + for (let i = 0; i < Positions.length; i++) { + const position = Positions[i] + const stylePath = `${basePath}.${createBorderProp(position, 'style')}` + const widthPath = `${basePath}.${createBorderProp(position, 'width')}` + const colorPath = `${basePath}.${createBorderProp(position, 'color')}` + if ( + field.query(stylePath).value() || + field.query(widthPath).value() || + field.query(colorPath).value() + ) { + return position + } + } + return 'center' +} + +export const BorderStyleSetter = observer( + defineComponent({ + setup() { + const prefixRef = usePrefix('border-style-setter') + const fieldRef = useField() + const currentPosition = observable({ + value: parseInitPosition(fieldRef.value) + }) + return () => { + const prefix = unref(prefixRef) + const field = unref(fieldRef) + const createReaction = (position: string) => (field: FieldType) => { + field.display = currentPosition.value === position ? 'visible' : 'hidden' + if (position !== 'center') { + const borderStyle = field.query('.borderStyle').value() + const borderWidth = field.query('.borderWidth').value() + const borderColor = field.query('.borderColor').value() + if (borderStyle || borderWidth || borderColor) { + field.value = undefined + } + } + } + return ( + + {{ + extra: () => ( +
+
+ { + currentPosition.value = value + }} + /> +
+
+ {Positions.map((position, key) => { + return ( +
+ + + +
+ ) + })} +
+
+ ) + }} +
+ ) + } + } + }) +) diff --git a/packages/settings-form/src/components/BorderStyleSetter/styles.less b/packages/settings-form/src/components/BorderStyleSetter/styles.less new file mode 100644 index 0000000..74838e9 --- /dev/null +++ b/packages/settings-form/src/components/BorderStyleSetter/styles.less @@ -0,0 +1,70 @@ +.dn-border-style-setter { + display: flex; + &-position { + margin-left: -10px; + } + &-input { + height: 110px; + display: flex; + flex-direction: column; + justify-content: space-between; + margin-bottom: 10px; + } +} + +.border-style-solid-line { + position: relative; + width: 100%; + height: 100%; + display: block; + + &::after { + position: absolute; + top: 50%; + left: 0; + display: block; + content: ''; + height: 0; + width: 100%; + border-top: 2px solid currentColor; + transform: translateY(-50%); + } +} + +.border-style-dashed-line { + position: relative; + width: 100%; + height: 100%; + display: block; + + &::after { + position: absolute; + top: 50%; + left: 0; + display: block; + content: ''; + height: 0; + width: 100%; + border-top: 2px dashed currentColor; + transform: translateY(-50%); + } +} + +.border-style-dotted-line { + position: relative; + width: 100%; + height: 100%; + display: block; + + &::after { + position: absolute; + top: 50%; + left: 0; + display: block; + content: ''; + height: 0; + width: 100%; + border-top: 2px dotted currentColor; + transform: translateY(-50%); + } +} diff --git a/packages/settings-form/src/components/BoxShadowStyleSetter/index.tsx b/packages/settings-form/src/components/BoxShadowStyleSetter/index.tsx new file mode 100644 index 0000000..c9a2b1b --- /dev/null +++ b/packages/settings-form/src/components/BoxShadowStyleSetter/index.tsx @@ -0,0 +1,98 @@ +import { unref, defineComponent } from 'vue' +import { usePrefix } from '@formily/antdv-designable' +import { useField } from '@formily/vue' +import { observer } from '@formily/reactive-vue' +import { FoldItem } from '../FoldItem' +import { ColorInput } from '../ColorInput' +import { SizeInput } from '../SizeInput' +import { InputItems } from '../InputItems' + +export interface IBoxShadowStyleSetterProps { + value?: string +} + +export const BoxShadowStyleSetter = observer( + defineComponent({ + props: { value: String }, + setup(props, { attrs, emit }) { + const fieldRef = useField() + const prefixRef = usePrefix('shadow-style-setter') + + return () => { + const field = unref(fieldRef) + const prefix = unref(prefixRef) + const createBoxShadowConnector = (position: number) => { + const splited = String(props.value || '') + .trim() + .split(' ') + const result = { + value: splited[position] || '', + onChange: (value: any) => { + splited[position] = value + emit( + 'change', + `${splited[0] || ''} ${splited[1] || ''} ${splited[2] || ''} ${splited[3] || ''} ${ + splited[4] || '' + }` + ) + } + } + return result + } + // TODO::响应式有点问题 + const connectors = [ + createBoxShadowConnector(0), + createBoxShadowConnector(1), + createBoxShadowConnector(2), + createBoxShadowConnector(3), + createBoxShadowConnector(4) + ] + return ( + + {{ + base: () => ( + + ), + extra: () => ( + + + + + + + + + + + + + + + ) + }} + + ) + } + } + }) +) diff --git a/packages/settings-form/src/components/BoxStyleSetter/index.tsx b/packages/settings-form/src/components/BoxStyleSetter/index.tsx new file mode 100644 index 0000000..90e3762 --- /dev/null +++ b/packages/settings-form/src/components/BoxStyleSetter/index.tsx @@ -0,0 +1,132 @@ +import { useField } from '@formily/vue' +import { usePrefix } from '@formily/antdv-designable' +import type { PropType } from 'vue' +import { defineComponent, unref } from 'vue' +import { FoldItem } from '../FoldItem' +import { InputItems } from '../InputItems' +import { SizeInput } from '../SizeInput' + +type Position = 'top' | 'right' | 'left' | 'bottom' | 'all' +export interface IMarginStyleSetterProps { + labels?: Vue.Component[] + value?: string + onChange?: (value: string) => void +} + +const PositionMap = { + top: 1, + right: 2, + bottom: 3, + left: 4, + all: 1 +} + +const BoxRex = + /([\d\.]+[^\d\s\.+-]+)(?:\s+([\d\.]+[^\d\s\.+-]+)(?:\s+([\d\.]+[^\d\s\.+-]+)(?:\s+([\d\.]+[^\d\s\.+-]+))?)?)?/ + +export const BoxStyleSetter = defineComponent({ + name: 'DnBoxStyleSetter', + emits: ['change'], + props: { + value: String, + labels: { + type: Array, + default: () => ['Top', 'Right', 'Bottom', 'Left'] + }, + onChange: { + type: Function as PropType<(value: string) => void> + } + }, + setup(props, { emit }) { + const fieldRef = useField() + const prefixRef = usePrefix('box-style-setter') + + const createPositionHandler = (position: Position, props: IMarginStyleSetterProps) => { + const matched = String(props.value).match(BoxRex) || [] + const value = matched[PositionMap[position]] + const v1 = matched[1] + const v2 = matched[2] + const v3 = matched[3] + const v4 = matched[4] + const allEqualls = v1 === v2 && v2 === v3 && v3 === v4 + return { + ...props, + value: position === 'all' ? (allEqualls ? v1 : undefined) : value, + onChange(value: string) { + if (position === 'all') { + emit( + 'change', + `${value || '0px'} ${value || '0px'} ${value || '0px'} ${value || '0px'}` + ) + } else { + matched[PositionMap[position]] = value + emit( + 'change', + `${matched[1] || '0px'} ${matched[2] || '0px'} ${matched[3] || '0px'} ${ + matched[4] || '0px' + }` + ) + } + } + } + } + + return () => { + const field = unref(fieldRef) + const prefix = unref(prefixRef) + + const positionHandlers = { + all: createPositionHandler('all', props), + top: createPositionHandler('top', props), + right: createPositionHandler('right', props), + bottom: createPositionHandler('bottom', props), + left: createPositionHandler('left', props) + } + return ( + + {{ + base: () => ( + + ), + extra: () => ( + + + + + + + + + + + + + + + ) + }} + + ) + } + } +}) diff --git a/packages/settings-form/src/components/CollapseItem/index.tsx b/packages/settings-form/src/components/CollapseItem/index.tsx new file mode 100644 index 0000000..bd8c94b --- /dev/null +++ b/packages/settings-form/src/components/CollapseItem/index.tsx @@ -0,0 +1,43 @@ +import { observer } from '@formily/reactive-vue' +import { useField } from '@formily/vue' +import { usePrefix, IconWidget } from '@formily/antdv-designable' +import './styles.less' +import { defineComponent, ref } from 'vue' + +// export interface ICollapseItemProps { +// className?: string +// style?: React.CSSProperties +// defaultExpand?: boolean +// } + +export const CollapseItem = observer( + defineComponent({ + props: ['defaultExpand'], + setup(props, { slots }) { + const prefixRef = usePrefix('collapse-item') + const field = useField() + const expand = ref(props.defaultExpand ?? true) + return () => { + const prefix = prefixRef.value + return ( +
+
{ + e.stopPropagation() + e.preventDefault() + expand.value = !expand.value + }} + > +
+ +
+
{field.value.title}
+
+
{expand.value && slots.default?.()}
+
+ ) + } + } + }) +) diff --git a/packages/settings-form/src/components/CollapseItem/styles.less b/packages/settings-form/src/components/CollapseItem/styles.less new file mode 100644 index 0000000..01a6526 --- /dev/null +++ b/packages/settings-form/src/components/CollapseItem/styles.less @@ -0,0 +1,45 @@ +.dn-collapse-item { + flex-wrap: wrap; + + &-header { + display: flex; + align-items: center; + padding: 5px 20px; + margin: -1px -20px 0 -20px; + color: var(--dn-collapse-header-color); + border-top: 1px solid var(--dn-panel-border-color); + border-bottom: 1px solid var(--dn-panel-border-color); + background-color: var(--dn-panel-active-bg-color); + cursor: pointer; + transition: all 0.25s ease-in-out; + font-size: 13px; + + &-expand { + margin-left: -13px; + transform: rotate(-90deg); + font-size: 12px; + transition: all 0.15s ease-in-out; + margin-right: 3px; + } + } + + &-content { + display: none; + width: 100%; + padding-top: 4px; + + & > div:last-child { + border-bottom: none !important; + } + } + + &.expand { + .dn-collapse-item-content { + display: block; + } + + .dn-collapse-item-header-expand { + transform: rotate(0); + } + } +} diff --git a/packages/settings-form/src/components/ColorInput/index.tsx b/packages/settings-form/src/components/ColorInput/index.tsx new file mode 100644 index 0000000..ad31fe4 --- /dev/null +++ b/packages/settings-form/src/components/ColorInput/index.tsx @@ -0,0 +1,77 @@ +import { Sketch as ColorPicker } from '@ckpack/vue-color' +import { usePrefix } from '@formily/antdv-designable' +import { Input, Popover } from 'ant-design-vue' +import { defineComponent, ref } from 'vue' +import './styles.less' + +export interface IColorInputProps { + value?: string + popupProps?: Record + colorPickerProps?: Record +} + +export const ColorInput = defineComponent({ + emits: ['change'], + props: { + value: String, + popupProps: Object, + colorPickerProps: Object, + onChange: Function + }, + setup(props, { attrs, emit }) { + const prefixRef = usePrefix('color-input') + const containerRef = ref() + + return () => ( +
+ { + emit('change', e.target.value) + }} + > + {{ + prefix: () => ( + containerRef.value + }} + > + {{ + content: () => ( + { + emit( + 'change', + props.colorPickerProps?.disableAlpha + ? hex + : `rgba(${rgba.r},${rgba.g},${rgba.b},${rgba.a})` + ) + }} + /> + ), + default: () => ( +
+ ) + }} +
+ ) + }} + +
+ ) + } +}) diff --git a/packages/settings-form/src/components/ColorInput/styles.less b/packages/settings-form/src/components/ColorInput/styles.less new file mode 100644 index 0000000..69e3901 --- /dev/null +++ b/packages/settings-form/src/components/ColorInput/styles.less @@ -0,0 +1,39 @@ +@import (reference) '../../styles.less'; + +.dn-color-input { + width: 100%; + + .@{ant-prefix}-popover-inner-content { + padding: 0 !important; + user-select: none; + } + + .@{ant-prefix}-input__prefix { + display: flex; + align-items: center; + } + .@{ant-prefix}-input--prefix { + .@{ant-prefix}-input__inner { + padding-left: 40px; + } + } + .@{ant-prefix}-input-affix-wrapper { + .@{ant-prefix}-input-prefix { + left: 5px; + :not(.antion) { + line-height: unset !important; + } + } + .@{ant-prefix}-input:not(:first-child) { + padding-left: 35px; + } + } + + &-color-tips { + width: 20px; + height: 20px; + border-radius: 2px; + border: 1px solid @border-color-base; + cursor: pointer; + } +} diff --git a/packages/settings-form/src/components/DisplayStyleSetter/index.tsx b/packages/settings-form/src/components/DisplayStyleSetter/index.tsx new file mode 100644 index 0000000..518a63e --- /dev/null +++ b/packages/settings-form/src/components/DisplayStyleSetter/index.tsx @@ -0,0 +1,74 @@ +import { observer } from '@formily/reactive-vue' +import { Field, useField } from '@formily/vue' +import { FormItem } from '@formily/antdv' +import { IconWidget, usePrefix, useStyle } from '@formily/antdv-designable' +import { Radio } from 'ant-design-vue' +import { defineComponent, unref } from 'vue' +// eslint-disable-next-line import/order +import { FlexStyleSetter } from '../FlexStyleSetter' +import './styles.less' + +import type { Field as FieldType } from '@formily/core' +import type { VueComponent } from '@formily/vue' + +export interface IDisplayStyleSetterProps { + value?: string +} + +export const DisplayStyleSetter = observer( + defineComponent({ + props: { + value: { type: String } + }, + emits: ['change'], + setup(props, { emit }) { + const prefixRef = usePrefix('display-style-setter') + const fieldRef = useField() + + return () => { + const prefix = unref(prefixRef) + const field = unref(fieldRef) + const style = useStyle() + + return ( +
+ + { + emit('change', e) + }} + > + + + + + + + + + + + + + + + { + flexField.visible = field.value === 'flex' + }} + component={[FlexStyleSetter]} + /> +
+ ) + } + } + }) +) as VueComponent diff --git a/packages/settings-form/src/components/DisplayStyleSetter/styles.less b/packages/settings-form/src/components/DisplayStyleSetter/styles.less new file mode 100644 index 0000000..cfffe37 --- /dev/null +++ b/packages/settings-form/src/components/DisplayStyleSetter/styles.less @@ -0,0 +1,16 @@ +// @import '~antd/lib/style/themes/default.less'; + +.dn-display-style-setter { + &-radio { + display: flex !important; + width: 100%; + + // .@{ant-prefix}-radio-button-wrapper { + // flex-grow: 1; + // display: flex; + // justify-content: center; + // align-items: center; + // padding: 0; + // } + } +} diff --git a/packages/settings-form/src/components/DrawerSetter/index.tsx b/packages/settings-form/src/components/DrawerSetter/index.tsx new file mode 100644 index 0000000..ca09041 --- /dev/null +++ b/packages/settings-form/src/components/DrawerSetter/index.tsx @@ -0,0 +1,83 @@ +import { defineComponent, ref, onMounted } from 'vue' +import { Button } from 'ant-design-vue' +import { observer } from '@formily/reactive-vue' +import { useField, FragmentComponent } from '@formily/vue' +import { FormLayout } from '@formily/antdv' +import { IconWidget, usePrefix } from '@formily/antdv-designable' +import './styles.less' + +export const DrawerSetter = observer( + defineComponent({ + props: ['text', 'children'], + setup(props, { slots }) { + const field = useField() + const visible = ref(false) + const remove = ref(false) + const root = ref() + const prefixRef = usePrefix('drawer-setter') + const formWrapperCls = usePrefix('settings-form-wrapper') + onMounted(() => { + const wrapper = document.querySelector('.' + formWrapperCls.value) + if (wrapper) { + root.value = wrapper + } + }) + const renderDrawer = () => { + if (root.value && visible.value) { + return ( +
+
+ + + {props.text || field.value.title} + +
+
+ + {slots?.default?.()} + +
+
+ ) + } + return null + } + + const handleOpen = () => { + visible.value = true + } + + const handleClose = () => { + remove.value = true + setTimeout(() => { + visible.value = false + remove.value = false + }, 150) + } + + return () => ( + + + {renderDrawer()} + + ) + } + }) +) diff --git a/packages/settings-form/src/components/DrawerSetter/styles.less b/packages/settings-form/src/components/DrawerSetter/styles.less new file mode 100644 index 0000000..b84075d --- /dev/null +++ b/packages/settings-form/src/components/DrawerSetter/styles.less @@ -0,0 +1,55 @@ +@import (reference) '../../styles.less'; + +.dn-drawer-setter { + position: absolute; + top: 0; + left: 0; + width: 100%; + bottom: 0; + background: var(--dn-composite-panel-tabs-content-bg-color); + z-index: 10; + display: flex; + flex-direction: column; + + &-header { + display: flex; + align-items: center; + flex-shrink: 0; + flex-grow: 0; + padding: 5px 10px; + color: @text-color; + border-bottom: 1px solid @border-color-split; + cursor: pointer; + } + + &-header-text { + margin-left: 4px; + } + + &-body { + padding: 10px 20px; + overflow: overlay; + overflow-x: hidden; + flex-grow: 2; + } +} + +.dn-drawer-wrapper { + transition: all 0.16s ease-in-out; + + &-enter { + transform: translateX(100%); + } + + &-enter-active { + transform: translateX(0); + } + + &-exit { + transform: translateX(0); + } + + &-exit-active { + transform: translateX(100%); + } +} diff --git a/packages/settings-form/src/components/FlexStyleSetter/index.tsx b/packages/settings-form/src/components/FlexStyleSetter/index.tsx new file mode 100644 index 0000000..7167bd1 --- /dev/null +++ b/packages/settings-form/src/components/FlexStyleSetter/index.tsx @@ -0,0 +1,232 @@ +import { defineComponent, unref } from 'vue' +import { Field, useField } from '@formily/vue' +import { observer } from '@formily/reactive-vue' +import { Radio } from '@formily/antdv' +import { usePrefix, IconWidget } from '@formily/antdv-designable' +import { InputItems } from '../InputItems' +import './styles.less' + +export const FlexStyleSetter = observer( + defineComponent({ + components: { IconWidget }, + props: [], + setup() { + const fieldRef = useField() + const prefixRef = usePrefix('flex-style-setter') + return () => { + const field = unref(fieldRef) + const prefix = unref(prefixRef) + return ( +
+ + { + return + }, + value: 'row' + }, + { + infer: 'FlexDirectionColumn', + label: ({ option }) => { + return + }, + value: 'column' + } + ]} + reactions={(field) => { + field.decorator[1].title = `Flex Direction : ${field.value || ''}` + }} + decorator={[InputItems.Item]} + component={[Radio.Group, { optionType: 'button', size: 'small' }]} + /> + { + return + }, + value: 'nowrap' + }, + { + infer: 'FlexWrap', + label: ({ option }) => { + return + }, + value: 'wrap' + } + ]} + reactions={(field) => { + field.decorator[1].title = `Flex Wrap : ${field.value || ''}` + }} + decorator={[InputItems.Item]} + component={[Radio.Group, { optionType: 'button', size: 'small' }]} + /> + { + return + }, + value: 'center' + }, + { + infer: 'FlexAlignContentStart', + label: ({ option }) => { + return + }, + value: 'flex-start' + }, + { + infer: 'FlexAlignContentEnd', + label: ({ option }) => { + return + }, + value: 'flex-end' + }, + { + infer: 'FlexAlignContentSpaceAround', + label: ({ option }) => { + return + }, + value: 'space-around' + }, + + { + infer: 'FlexAlignContentSpaceBetween', + label: ({ option }) => { + return + }, + value: 'space-between' + }, + { + infer: 'FlexAlignContentStretch', + label: ({ option }) => { + return + }, + value: 'stretch' + } + ]} + reactions={(field) => { + field.decorator[1].title = `Align Content : ${field.value || ''}` + }} + decorator={[InputItems.Item]} + component={[Radio.Group, { optionType: 'button', size: 'small' }]} + /> + { + return + }, + value: 'center' + }, + { + infer: 'FlexJustifyStart', + label: ({ option }) => { + return + }, + value: 'flex-start' + }, + { + infer: 'FlexJustifyEnd', + label: ({ option }) => { + return + }, + value: 'flex-end' + }, + { + infer: 'FlexJustifySpaceAround', + label: ({ option }) => { + return + }, + value: 'space-around' + }, + { + infer: 'FlexJustifySpaceBetween', + label: ({ option }) => { + return + }, + value: 'space-between' + }, + { + infer: 'FlexJustifySpaceEvenly', + label: ({ option }) => { + return + }, + value: 'space-evenly' + } + ]} + reactions={(field) => { + field.decorator[1].title = `Justify Content : ${field.value || ''}` + }} + decorator={[InputItems.Item]} + component={[Radio.Group, { optionType: 'button', size: 'small' }]} + /> + { + return + }, + value: 'center' + }, + { + infer: 'FlexAlignItemsStart', + label: ({ option }) => { + return + }, + value: 'flex-start' + }, + { + infer: 'FlexAlignItemsEnd', + label: ({ option }) => { + return + }, + value: 'flex-end' + }, + + { + infer: 'FlexAlignItemsStretch', + label: ({ option }) => { + return + }, + value: 'stretch' + }, + { + infer: 'FlexAlignItemsBaseline', + label: ({ option }) => { + return + }, + value: 'baseline' + } + ]} + reactions={(field) => { + field.decorator[1].title = `Align Items : ${field.value || ''}` + }} + decorator={[InputItems.Item]} + component={[Radio.Group, { optionType: 'button', size: 'small' }]} + /> + +
+ ) + } + } + }) +) diff --git a/packages/settings-form/src/components/FlexStyleSetter/styles.less b/packages/settings-form/src/components/FlexStyleSetter/styles.less new file mode 100644 index 0000000..4e7970f --- /dev/null +++ b/packages/settings-form/src/components/FlexStyleSetter/styles.less @@ -0,0 +1,34 @@ +// @import '~antd/lib/style/themes/default.less'; +@import (reference) '../../styles.less'; + +.dn-flex-style-setter { + .dn-input-items { + margin-top: -10px; + margin-left: -10px; + margin-right: -10px; + margin-bottom: 10px; + padding: 10px 10px 0 10px; + background-color: @border-color-split; + + .@{ant-prefix}-radio-group { + display: flex; + width: 100%; + + .@{ant-prefix}-radio-button-wrapper { + flex-grow: 1; + display: flex; + justify-content: center; + padding: 0; + + > .@{ant-prefix}-radio-button { + position: absolute; + top: 0; + left: 0; + z-index: -1; + width: 100%; + height: 100%; + } + } + } + } +} diff --git a/packages/settings-form/src/components/FoldItem/index.tsx b/packages/settings-form/src/components/FoldItem/index.tsx new file mode 100644 index 0000000..0239e04 --- /dev/null +++ b/packages/settings-form/src/components/FoldItem/index.tsx @@ -0,0 +1,82 @@ +import { defineComponent, unref } from 'vue' +import { FormItem } from '@formily/antdv' +import { useField, FragmentComponent } from '@formily/vue' +import { observer } from '@formily/reactive-vue' +import { observable } from '@formily/reactive' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { IconWidget, usePrefix } from '@formily/antdv-designable' +import './styles.less' + +import type { PropType } from 'vue' + +const ExpandedMap = new Map() + +export type FoldItemProps = { + label: PropType +} + +const FoldItemComponent = observer( + defineComponent({ + name: 'DnFoldItem', + props: ['label'], + setup(props, { attrs, slots }) { + const fieldRef = useField() + const expand = observable.ref(ExpandedMap.get(fieldRef.value.address.toString())) + const prefixRef = usePrefix('fold-item') + + return () => { + const field = unref(fieldRef) + + return ( +
+
{ + expand.value = !expand.value + ExpandedMap.set(field.address.toString(), expand.value) + }} + > + + {slots.extra && } + {props.label} + + } + > +
{ + e.stopPropagation() + }} + > + {slots.base?.()} +
+
+
+ {expand.value && slots.extra && ( +
{slots.extra?.()}
+ )} +
+ ) + } + } + }) +) + +export const FoldItem = composeExport(FoldItemComponent, { + Base: composeExport(() => , { + displayName: 'FoldItem.Base' + }), + Extra: composeExport(() => , { + displayName: 'FoldItem.Extra' + }) +}) diff --git a/packages/settings-form/src/components/FoldItem/styles.less b/packages/settings-form/src/components/FoldItem/styles.less new file mode 100644 index 0000000..3815485 --- /dev/null +++ b/packages/settings-form/src/components/FoldItem/styles.less @@ -0,0 +1,48 @@ +// @import '~antd/lib/style/themes/default.less'; +@import (reference) '../../styles.less'; + +.dn-fold-item { + // .@{ant-prefix}-formily-item-label-content { + // overflow: visible; + // } + .@{ant-prefix}-formily-form-item-label-content { + overflow: visible; + } + // .formily-element-form-item-label-content { + // overflow: visible; + // } + &-base { + cursor: pointer; + } + + &-title { + display: flex; + align-items: center; + cursor: pointer; + .dn-icon { + transform: translateX(-3px); + + svg { + transition: all 0.15s ease-in-out; + transform: rotate(-90deg); + } + } + + &.expand { + .dn-icon { + svg { + transform: rotate(0deg); + } + } + } + } + + &-extra { + margin-top: 5px; + margin-left: -10px; + margin-right: -10px; + margin-bottom: 10px; + padding: 10px; + background-color: var(--dn-composite-panel-highlight-bg-color); + } +} diff --git a/packages/settings-form/src/components/FontStyleSetter/index.tsx b/packages/settings-form/src/components/FontStyleSetter/index.tsx new file mode 100644 index 0000000..029d413 --- /dev/null +++ b/packages/settings-form/src/components/FontStyleSetter/index.tsx @@ -0,0 +1,201 @@ +import { usePrefix, IconWidget } from '@formily/antdv-designable' +import { observer } from '@formily/reactive-vue' +import { useField, Field } from '@formily/vue' +import { Radio, InputNumber } from '@formily/antdv' +import { defineComponent, unref } from 'vue' +import { FoldItem } from '../FoldItem' +import { InputItems } from '../InputItems' +import { SizeInput } from '../SizeInput' +import { ColorInput } from '../ColorInput' +import { Select } from './select' + +// export interface IFontStyleSetterProps {} + +const createFontFamilyOptions = (fonts: string[]) => { + return fonts.map((font) => { + const splited = font.split('=') + const label = splited?.[0] + const value = splited?.[1] + return { + component: () => { + return {label} + }, + label: label, + value + } + }) +} +const FontFamilyOptions = createFontFamilyOptions([ + '宋体=SimSun', + '微软雅黑=Microsoft Yahei', + '苹方=PingFang SC', + 'Andale Mono=andale mono,monospace', + 'Arial=arial,helvetica,sans-serif', + 'Arial Black=arial black,sans-serif', + 'Book Antiqua=book antiqua,palatino,serif', + 'Comic Sans MS=comic sans ms,sans-serif', + 'Courier New=courier new,courier,monospace', + 'Georgia=georgia,palatino,serif', + 'Helvetica Neue=Helvetica Neue', + 'Helvetica=helvetica,arial,sans-serif', + 'Impact=impact,sans-serif', + 'Symbol=symbol', + 'Tahoma=tahoma,arial,helvetica,sans-serif', + 'Terminal=terminal,monaco,monospace', + 'Times New Roman=times new roman,times,serif', + 'Trebuchet MS=trebuchet ms,geneva,sans-serif', + 'Verdana=verdana,geneva,sans-serif' +]) + +export const FontStyleSetter = observer( + defineComponent({ + setup(props, { attrs }) { + const fieldRef = useField() + const prefixRef = usePrefix('font-style-setter') + return () => { + const prefix = prefixRef.value + const field = unref(fieldRef) + return ( + + {{ + base: () => ( + + ), + extra: () => ( + + + + + + { + return + }, + value: 'normal' + }, + { + infer: 'ItalicFontStyle', + label: ({ option }) => { + return + }, + value: 'italic' + } + ]} + component={[Radio.Group, { optionType: 'button', size: 'small' }]} + /> + + + + + + + + + + + + { + return + }, + value: 'left' + }, + { + infer: 'TextAlignCenter', + label: ({ option }) => { + return + }, + value: 'center' + }, + { + infer: 'TextAlignRight', + label: ({ option }) => { + return + }, + value: 'right' + }, + { + infer: 'TextAlignJustify', + label: ({ option }) => { + return + }, + value: 'justify' + } + ]} + component={[Radio.Group, { optionType: 'button', size: 'small' }]} + /> + + + { + return + }, + value: 'underline' + }, + { + infer: 'TextLineThrough', + label: ({ option }) => { + return + }, + value: 'line-through' + } + ]} + component={[Radio.Group, { optionType: 'button', size: 'small' }]} + /> + + + ) + }} + + ) + } + } + }) +) diff --git a/packages/settings-form/src/components/FontStyleSetter/select.ts b/packages/settings-form/src/components/FontStyleSetter/select.ts new file mode 100644 index 0000000..3515c50 --- /dev/null +++ b/packages/settings-form/src/components/FontStyleSetter/select.ts @@ -0,0 +1,70 @@ +import { connect, h, mapProps, mapReadPretty } from '@formily/vue' +import { PreviewText } from '@formily/antdv' +import { resolveComponent } from '@formily/antdv/esm/__builtins__' +import type { SelectProps as AntSelectProps } from 'ant-design-vue' +import { Select as AntSelect } from 'ant-design-vue' +import { defineComponent } from 'vue' + +const AntOption = AntSelect.Option +type AntOptionProps = typeof AntOption + +export type SelectProps = AntSelectProps & { + options?: Array +} +const SelectOption = defineComponent({ + name: 'FSelect', + props: ['options'], + setup(customProps, { attrs, slots }) { + return () => { + const options = customProps.options || [] + const children = + options.length !== 0 + ? { + default: () => + options.map((option) => { + if (typeof option === 'string') { + return h( + AntOption, + { props: { value: option, label: option } }, + { + default: () => [resolveComponent(slots?.option, { option })] + } + ) + } else { + return h( + AntOption, + { + props: { + ...option + } + }, + { + default: () => [ + resolveComponent(slots?.option ?? (option.component || option.label), { + option + }) + ] + } + ) + } + }) + } + : slots + return h( + AntSelect, + { + ...attrs + }, + children + ) + } + } +}) + +export const Select = connect( + SelectOption, + mapProps({ dataSource: 'options', loading: true }), + mapReadPretty(PreviewText.Select) +) + +export default Select diff --git a/packages/settings-form/src/components/ImageInput/index.tsx b/packages/settings-form/src/components/ImageInput/index.tsx new file mode 100644 index 0000000..d328d28 --- /dev/null +++ b/packages/settings-form/src/components/ImageInput/index.tsx @@ -0,0 +1,103 @@ +import { LoadingOutlined } from '@ant-design/icons-vue' +import { IconWidget, useContext, usePrefix } from '@formily/antdv-designable' +import { Input, Upload } from 'ant-design-vue' +import { defineComponent, ref } from 'vue' +import { SettingsFormSymbol } from '../../shared/context' +import './styles.less' + +export interface ImageInputProps { + value?: string +} + +export const ImageInput = defineComponent({ + emits: ['change'], + props: { value: String, onChange: Function }, + setup(props, { emit }) { + const prefixRef = usePrefix('image-input') + const contextRef = useContext(SettingsFormSymbol) + + const uploadingRef = ref(false) + + return () => { + const prefix = prefixRef.value + const context = contextRef.value + return ( +
+ { + emit('change', e.target.value) + }} + > + {{ + prefix: () => ( + { + uploadingRef.value = status === 'uploading' + if (status === 'done') { + const url = + response?.url || + response?.downloadURL || + response?.imageURL || + response?.thumbUrl || + response?.data + if (!url) return + emit('change', url) + } + }} + > + {uploadingRef.value ? ( + + ) : ( + + )} + + ) + }} + +
+ ) + } + } +}) + +export const BackgroundImageInput = defineComponent({ + props: { value: String }, + emits: ['change'], + setup(props, { emit }) { + return () => { + const addBgValue = (value: any) => { + if (/url\([^)]+\)/.test(value)) { + return value + } + return `url(${value})` + } + const removeBgValue = (value: any) => { + const matched = String(value).match(/url\(\s*([^)]+)\s*\)/) + if (matched?.[1]) { + return matched?.[1] + } + return value + } + return ( + { + emit('change', addBgValue(url)) + }} + /> + ) + } + } +}) diff --git a/packages/settings-form/src/components/ImageInput/styles.less b/packages/settings-form/src/components/ImageInput/styles.less new file mode 100644 index 0000000..24bdbfc --- /dev/null +++ b/packages/settings-form/src/components/ImageInput/styles.less @@ -0,0 +1,25 @@ +@import (reference) '../../styles.less'; + +.dn-image-input { + width: 100%; + .@{ant-prefix}-popover-inner-content { + padding: 0 !important; + user-select: none; + } + + .@{ant-prefix}-input__prefix { + display: flex; + color: @text-color; + align-items: center; + } + .@{ant-prefix}-upload-list { + position: absolute; + width: 160px; + background: #fff; + border-radius: 4px; + box-shadow: 0 8px 12px #ebedf0; + } + .@{ant-prefix}-upload-list-item { + margin-top: 0; + } +} diff --git a/packages/settings-form/src/components/InputItems/index.tsx b/packages/settings-form/src/components/InputItems/index.tsx new file mode 100644 index 0000000..686d0c9 --- /dev/null +++ b/packages/settings-form/src/components/InputItems/index.tsx @@ -0,0 +1,86 @@ +import { defineComponent, computed, provide } from 'vue' +import { usePrefix, IconWidget, useContext } from '@formily/antdv-designable' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import './styles.less' + +import type { InjectionKey, Ref } from 'vue' + +export interface IInputItemsContext { + width?: string | number + vertical?: boolean +} + +export interface IInputItemsProps { + // className?: string + // style?: React.CSSProperties + width?: string | number + vertical?: boolean +} + +export interface IInputItemProps { + // className?: string + // style?: React.CSSProperties + width?: string | number + vertical?: boolean + title?: any + icon?: any +} + +const InputItemsSymbol: InjectionKey> = Symbol('IInputItemsContext') + +const InputItemsBase = defineComponent({ + props: { + width: { type: [String, Number], default: '100%' }, + vertical: Boolean + }, + setup(props, { slots }) { + const prefixRef = usePrefix('input-items') + provide( + InputItemsSymbol, + computed(() => props) + ) + return () => { + return
{slots.default?.()}
+ } + } +}) + +const InputItemsItem = defineComponent({ + props: { + vertical: Boolean, + width: String, + icon: [String, Object, Function], + title: [String, Object, Function] + }, + setup(props, { slots }) { + const prefixRef = usePrefix('input-items-item') + const ctxRef = useContext(InputItemsSymbol) + return () => { + const prefix = prefixRef.value + const ctx = ctxRef.value + return ( +
+ {props.icon && ( +
+ +
+ )} + {props.title &&
{props.title}
} +
{slots.default?.()}
+
+ ) + } + } +}) + +export const InputItems = composeExport(InputItemsBase, { + Item: InputItemsItem +}) diff --git a/packages/settings-form/src/components/InputItems/styles.less b/packages/settings-form/src/components/InputItems/styles.less new file mode 100644 index 0000000..9ed6346 --- /dev/null +++ b/packages/settings-form/src/components/InputItems/styles.less @@ -0,0 +1,47 @@ +// @import '~antd/lib/style/themes/default.less'; +@import (reference) '../../styles.less'; + +.dn-input-items { + display: flex; + flex-wrap: wrap; + margin-left: -8px; + + &-item { + display: flex; + align-items: center; + margin-bottom: 10px; + color: @text-color; + &-icon { + display: flex; + align-items: center; + justify-content: center; + margin: 0 8px; + flex-shrink: 0; + flex-grow: 0; + color: @text-color; + } + + &-controller { + min-width: 0; + flex-shrink: 1; + flex-grow: 1; + + .@{ant-prefix}-radio-group { + display: flex; + + .@{ant-prefix}-radio-button-wrapper { + flex-grow: 1; + display: flex; + justify-content: center; + } + } + } + &.vertical { + flex-direction: column; + align-items: flex-start; + .dn-input-items-item-controller { + width: 100%; + } + } + } +} diff --git a/packages/settings-form/src/components/MonacoEditor/components/editor/Editor.tsx b/packages/settings-form/src/components/MonacoEditor/components/editor/Editor.tsx new file mode 100644 index 0000000..a7cd223 --- /dev/null +++ b/packages/settings-form/src/components/MonacoEditor/components/editor/Editor.tsx @@ -0,0 +1,213 @@ +import type * as monacoEditor from 'monaco-editor/esm/vs/editor/editor.api' +import type { Ref } from 'vue' +import { + computed, + defineComponent, + nextTick, + onMounted, + onUnmounted, + ref, + shallowRef, + watch +} from 'vue' +import { useMonaco } from '../../hooks' +import type { MonacoEditor, Nullable } from '../../types' +import { getOrCreateModel, isUndefined } from '../../utils' +import MonacoContainer from '../monacoContainer' +import type { EditorProps } from './types' +import { editorProps } from './types' + +export default defineComponent({ + props: editorProps, + setup(props, { emit, slots }) { + const viewStates = new Map< + string | undefined, + Nullable + >() + const containerRef = shallowRef>(null) + const setContainerRef = (el: Ref>) => (containerRef.value = el.value) + const { monacoRef, unload } = useMonaco() + const { editorRef } = useEditor(props, emit, monacoRef, containerRef) + const { disposeValidator } = useValidator(props, emit, monacoRef, editorRef) + const isEditorReady = computed(() => !!monacoRef.value && !!editorRef.value) + + onUnmounted(() => { + disposeValidator.value?.() + editorRef.value?.getModel()?.dispose() + // @ts-ignore TODO: error + editorRef.value?.dispose() ?? unload() + }) + + // value + watch( + () => props.value, + (newValue) => { + if (editorRef.value && editorRef.value.getValue() !== newValue) { + editorRef.value.setValue(newValue!) + } + } + ) + + // path + watch( + () => props.path, + (newPath, oldPath) => { + const model = getOrCreateModel( + monacoRef.value!, + props.value || props.defaultValue!, + props.language || props.defaultLanguage, + newPath + ) + + if (model !== editorRef.value!.getModel()) { + props.saveViewState && viewStates.set(oldPath, editorRef.value!.saveViewState()) + editorRef.value!.setModel(model) + props.saveViewState && editorRef.value!.restoreViewState(viewStates.get(newPath)!) + } + } + ) + + // options + watch( + () => props.options, + (options) => editorRef.value && editorRef.value.updateOptions(options), + { deep: true } + ) + + // theme + watch( + () => props.theme, + (theme) => monacoRef.value && monacoRef.value.editor.setTheme(theme) + ) + + // language + watch( + () => props.language, + (language) => + isEditorReady.value && + monacoRef.value!.editor.setModelLanguage(editorRef.value!.getModel()!, language!) + ) + + // line + watch( + () => props.line, + (line) => { + // reason for undefined check: https://github.com/suren-atoyan/monaco-react/pull/188 + if (editorRef.value && !isUndefined(line)) { + editorRef.value.revealLine(line!) + } + } + ) + + return () => ( + + {slots.default?.() ?? 'loading...'} + + ) + } +}) + +function useEditor( + props: EditorProps, + emit: any, + monacoRef: Ref>, + containerRef: Ref> +) { + const editorRef = shallowRef>(null) + + onMounted(() => { + const stop = watch( + monacoRef, + () => { + if (containerRef.value && monacoRef.value) { + nextTick(() => stop()) + createEditor() + } + }, + { immediate: true } + ) + }) + + function createEditor() { + if (!containerRef.value || !monacoRef.value || editorRef.value) { + return + } + + // editor before mount + props.onBeforeMount?.(monacoRef.value) + emit('beforeMount', monacoRef.value) + + const autoCreatedModelPath = props.path || props.defaultPath + const defaultModel = getOrCreateModel( + monacoRef.value, + props.value || props.defaultValue!, + props.language || props.defaultLanguage, + autoCreatedModelPath + ) + editorRef.value = monacoRef.value.editor.create( + containerRef.value, + { + model: defaultModel, + theme: props.theme, + automaticLayout: true, + autoIndent: 'brackets', + formatOnPaste: true, + formatOnType: true, + ...props.options + }, + props.overrideServices + ) + + editorRef.value?.onDidChangeModelContent((event) => { + const value = editorRef.value!.getValue() + if (value !== props.value) { + props['onUpdate:value']?.(value) + props.onChange?.(value, event) + emit('change', value, event) + } + }) + + // editor mount + props.onMount?.(editorRef.value, monacoRef.value) + emit('mount', editorRef.value, monacoRef.value) + } + + return { editorRef } +} + +function useValidator( + props: EditorProps, + emit: any, + monacoRef: Ref>, + editorRef: Ref> +) { + const disposeValidator = ref void>>(null) + + const stop = watch([monacoRef, editorRef], () => { + if (monacoRef.value && editorRef.value) { + nextTick(() => stop()) + const changeMarkersListener = monacoRef.value.editor.onDidChangeMarkers((uris) => { + const editorUri = editorRef.value?.getModel()?.uri + if (editorUri) { + const currentEditorHasMarkerChanges = uris.find((uri) => uri.path === editorUri.path) + if (currentEditorHasMarkerChanges) { + const markers = monacoRef.value!.editor.getModelMarkers({ + resource: editorUri + }) + props.onValidate?.(markers) + emit('validate', markers) + } + } + }) + + disposeValidator.value = () => changeMarkersListener?.dispose() + } + }) + + return { disposeValidator } +} diff --git a/packages/settings-form/src/components/MonacoEditor/components/editor/index.ts b/packages/settings-form/src/components/MonacoEditor/components/editor/index.ts new file mode 100644 index 0000000..bfdaed0 --- /dev/null +++ b/packages/settings-form/src/components/MonacoEditor/components/editor/index.ts @@ -0,0 +1,3 @@ +export type { EditorProps } from './types' + +export { default } from './Editor' diff --git a/packages/settings-form/src/components/MonacoEditor/components/editor/types.ts b/packages/settings-form/src/components/MonacoEditor/components/editor/types.ts new file mode 100644 index 0000000..adeb7a0 --- /dev/null +++ b/packages/settings-form/src/components/MonacoEditor/components/editor/types.ts @@ -0,0 +1,62 @@ +import type { ExtractPropTypes, PropType } from 'vue' +import type * as monaco from 'monaco-editor/esm/vs/editor/editor.api' +import type { MonacoEditor } from '../../types' + +export const editorProps = { + defaultValue: String, + defaultPath: String, + defaultLanguage: String, + value: String, + language: String, + path: String, + + /* === */ + + theme: { + type: String, + default: 'light' + }, + line: Number, + options: { + type: Object, + default: () => ({}) + }, + overrideServices: { + type: Object, + default: () => ({}) + }, + saveViewState: { + type: Boolean, + default: true + }, + + // keepCurrentModel: { + // type: Boolean, + // default: false, + // }, + + /* === */ + + width: { + type: [Number, String], + default: '100%' + }, + height: { + type: [Number, String], + default: '100%' + }, + className: String, + + /* === */ + 'onUpdate:value': Function as PropType<(value: string | undefined) => void>, + onBeforeMount: Function as PropType<(monaco: MonacoEditor) => void>, + onMount: Function as PropType< + (editor: monaco.editor.IStandaloneCodeEditor, monaco: MonacoEditor) => void + >, + onChange: Function as PropType< + (value: string | undefined, event: monaco.editor.IModelContentChangedEvent) => void + >, + onValidate: Function as PropType<(markers: monaco.editor.IMarker[]) => void> +} + +export type EditorProps = ExtractPropTypes diff --git a/packages/settings-form/src/components/MonacoEditor/components/loading/Loading.tsx b/packages/settings-form/src/components/MonacoEditor/components/loading/Loading.tsx new file mode 100644 index 0000000..4721820 --- /dev/null +++ b/packages/settings-form/src/components/MonacoEditor/components/loading/Loading.tsx @@ -0,0 +1,50 @@ +import { defineComponent } from 'vue' +const isString = (val: unknown): val is string => typeof val === 'string' +const isObject = (val: unknown): val is Record => val !== null && typeof val === 'object' +const isArray = Array.isArray +const loadingStyles = { + display: 'flex', + height: '100%', + width: '100%', + justifyContent: 'center', + alignItems: 'center' +} +const listDelimiterRE = /;(?![^(]*\))/g +const propertyDelimiterRE = /:(.+)/ +type NormalizedStyle = Record +function parseStringStyle(cssText: string): NormalizedStyle { + const ret: NormalizedStyle = {} + cssText.split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE) + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()) + } + }) + return ret +} +function normalizeStyle(value: unknown): NormalizedStyle | string | undefined { + if (isArray(value)) { + const res: NormalizedStyle = {} + for (let i = 0; i < value.length; i++) { + const item = value[i] + const normalized = isString(item) + ? parseStringStyle(item) + : (normalizeStyle(item) as NormalizedStyle) + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key] + } + } + } + return res + } else if (isString(value)) { + return value + } else if (isObject(value)) { + return value + } +} +export default defineComponent({ + setup(props, { slots }) { + return () =>
{slots.default?.()}
+ } +}) diff --git a/packages/settings-form/src/components/MonacoEditor/components/loading/index.ts b/packages/settings-form/src/components/MonacoEditor/components/loading/index.ts new file mode 100644 index 0000000..472e998 --- /dev/null +++ b/packages/settings-form/src/components/MonacoEditor/components/loading/index.ts @@ -0,0 +1,3 @@ +import Loading from './Loading' + +export default Loading diff --git a/packages/settings-form/src/components/MonacoEditor/components/monacoContainer/MonacoContainer.tsx b/packages/settings-form/src/components/MonacoEditor/components/monacoContainer/MonacoContainer.tsx new file mode 100644 index 0000000..4bd798b --- /dev/null +++ b/packages/settings-form/src/components/MonacoEditor/components/monacoContainer/MonacoContainer.tsx @@ -0,0 +1,40 @@ +import { computed, defineComponent, onMounted, ref } from 'vue' +import type { CSSProperties } from 'vue/types/jsx' +import Loading from '../loading' +import styles from './style' +import type { MonacoContainerProps } from './types' +import { monacoContainerProps } from './types' + +export default defineComponent({ + props: monacoContainerProps, + setup(props: MonacoContainerProps, { slots }) { + const containerRef = ref(null) + const wrapperStyle = computed(() => { + const { width, height } = props + return { + ...styles.wrapper, + width, + height + } + }) + + const containerStyle = computed(() => { + return { + ...styles.fullWidth, + ...(!props.isEditorReady && styles.hide) + } + }) + onMounted(() => { + props.setContainerRef(containerRef) + }) + + return () => { + return ( +
+ {!props.isEditorReady && {slots.default?.()}} +
+
+ ) + } + } +}) diff --git a/packages/settings-form/src/components/MonacoEditor/components/monacoContainer/index.ts b/packages/settings-form/src/components/MonacoEditor/components/monacoContainer/index.ts new file mode 100644 index 0000000..2218052 --- /dev/null +++ b/packages/settings-form/src/components/MonacoEditor/components/monacoContainer/index.ts @@ -0,0 +1,5 @@ +import MonacoContainer from './MonacoContainer' + +export type { MonacoContainerProps } from './types' + +export default MonacoContainer diff --git a/packages/settings-form/src/components/MonacoEditor/components/monacoContainer/style.ts b/packages/settings-form/src/components/MonacoEditor/components/monacoContainer/style.ts new file mode 100644 index 0000000..11fd237 --- /dev/null +++ b/packages/settings-form/src/components/MonacoEditor/components/monacoContainer/style.ts @@ -0,0 +1,17 @@ +import type { CSSProperties } from 'vue/types/jsx' + +const styles: Record<'wrapper' | 'fullWidth' | 'hide', CSSProperties> = { + wrapper: { + display: 'flex', + position: 'relative', + textAlign: 'initial' + }, + fullWidth: { + width: '100%' + }, + hide: { + display: 'none' + } +} + +export default styles diff --git a/packages/settings-form/src/components/MonacoEditor/components/monacoContainer/types.ts b/packages/settings-form/src/components/MonacoEditor/components/monacoContainer/types.ts new file mode 100644 index 0000000..0c0caf1 --- /dev/null +++ b/packages/settings-form/src/components/MonacoEditor/components/monacoContainer/types.ts @@ -0,0 +1,24 @@ +import type { ExtractPropTypes, PropType, Ref } from 'vue' + +export const monacoContainerProps = { + width: { + type: [Number, String], + required: true as const + }, + + height: { + type: [Number, String], + required: true as const + }, + + isEditorReady: { + type: Boolean, + required: true as const + }, + + className: String, + + setContainerRef: Function as PropType<(ref: Ref) => void> +} + +export type MonacoContainerProps = ExtractPropTypes diff --git a/packages/settings-form/src/components/MonacoEditor/hooks/index.ts b/packages/settings-form/src/components/MonacoEditor/hooks/index.ts new file mode 100644 index 0000000..fc82379 --- /dev/null +++ b/packages/settings-form/src/components/MonacoEditor/hooks/index.ts @@ -0,0 +1,3 @@ +import useMonaco from './useMonaco' + +export { useMonaco } diff --git a/packages/settings-form/src/components/MonacoEditor/hooks/useMonaco.ts b/packages/settings-form/src/components/MonacoEditor/hooks/useMonaco.ts new file mode 100644 index 0000000..f5d481b --- /dev/null +++ b/packages/settings-form/src/components/MonacoEditor/hooks/useMonaco.ts @@ -0,0 +1,28 @@ +import { shallowRef } from 'vue' +import loader from '@monaco-editor/loader' + +import type { Nullable, MonacoEditor } from '../types' + +function useMonaco() { + const monacoRef = shallowRef>(null) + + // monaco mount + const monacoLoader = loader.init() + const unload = () => monacoLoader.cancel() + + monacoLoader + .then((monacoInstance) => (monacoRef.value = monacoInstance)) + .catch((error) => { + if (error?.type !== 'cancelation') { + // eslint-disable-next-line no-console + console.error('Monaco initialization error:', error) + } + }) + + return { + monacoRef, + unload + } +} + +export default useMonaco diff --git a/packages/settings-form/src/components/MonacoEditor/index.ts b/packages/settings-form/src/components/MonacoEditor/index.ts new file mode 100644 index 0000000..d943de2 --- /dev/null +++ b/packages/settings-form/src/components/MonacoEditor/index.ts @@ -0,0 +1,10 @@ +import loader from '@monaco-editor/loader' +import Editor from './components/editor' +import MonacoContainer from './components/monacoContainer' +import { useMonaco } from './hooks' + +export type { MonacoContainerProps } from './components/monacoContainer' +export type { EditorProps } from './components/editor' + +export { MonacoContainer, loader, useMonaco } +export default Editor diff --git a/packages/settings-form/src/components/MonacoEditor/types.ts b/packages/settings-form/src/components/MonacoEditor/types.ts new file mode 100644 index 0000000..149c0ad --- /dev/null +++ b/packages/settings-form/src/components/MonacoEditor/types.ts @@ -0,0 +1,5 @@ +import type * as monacoEditor from 'monaco-editor/esm/vs/editor/editor.api' + +export type Nullable = T | null + +export type MonacoEditor = typeof monacoEditor diff --git a/packages/settings-form/src/components/MonacoEditor/utils/index.ts b/packages/settings-form/src/components/MonacoEditor/utils/index.ts new file mode 100644 index 0000000..1a06df1 --- /dev/null +++ b/packages/settings-form/src/components/MonacoEditor/utils/index.ts @@ -0,0 +1,26 @@ +import type { MonacoEditor } from '../types' + +export function isUndefined(v: unknown) { + return v === undefined +} + +export function getOrCreateModel( + monaco: MonacoEditor, + value: string, + language?: string, + path?: string +) { + return getModel(monaco, path!) || createModel(monaco, value, language, path) +} + +function getModel(monaco: MonacoEditor, path: string) { + return monaco.editor.getModel(createModelUri(monaco, path)) +} + +function createModel(monaco: MonacoEditor, value: string, language?: string, path?: string) { + return monaco.editor.createModel(value, language, path ? createModelUri(monaco, path) : undefined) +} + +function createModelUri(monaco: MonacoEditor, path: string) { + return monaco.Uri.parse(path) +} diff --git a/packages/settings-form/src/components/MonacoInput/config.ts b/packages/settings-form/src/components/MonacoInput/config.ts new file mode 100644 index 0000000..5be7dac --- /dev/null +++ b/packages/settings-form/src/components/MonacoInput/config.ts @@ -0,0 +1,41 @@ +import { loader } from '../MonacoEditor' +import chromeTheme from './themes/chrome' +import monokaiTheme from './themes/monokai' +import { format } from './format' + +let initialized = false + +export const initMonaco = () => { + if (initialized) return + loader.init().then((monaco) => { + monaco.editor.defineTheme('monokai', monokaiTheme as any) + monaco.editor.defineTheme('chrome-devtools', chromeTheme as any) + monaco.languages.typescript.typescriptDefaults.setCompilerOptions({ + target: monaco.languages.typescript.ScriptTarget.Latest, + allowNonTsExtensions: true, + moduleResolution: monaco.languages.typescript.ModuleResolutionKind.NodeJs, + module: monaco.languages.typescript.ModuleKind.CommonJS, + noEmit: true, + esModuleInterop: true, + jsx: monaco.languages.typescript.JsxEmit.React, + reactNamespace: 'React', + allowJs: true + }) + + monaco.languages.typescript.typescriptDefaults.setDiagnosticsOptions({ + noSemanticValidation: false, + noSyntaxValidation: true + }) + monaco.languages.registerDocumentFormattingEditProvider('typescript', { + async provideDocumentFormattingEdits(model) { + return [ + { + text: await format(model['getDesignerLanguage']?.() || 'typescript', model.getValue()), + range: model.getFullModelRange() + } + ] + } + }) + initialized = true + }) +} diff --git a/packages/settings-form/src/components/MonacoInput/format.ts b/packages/settings-form/src/components/MonacoInput/format.ts new file mode 100644 index 0000000..16e5994 --- /dev/null +++ b/packages/settings-form/src/components/MonacoInput/format.ts @@ -0,0 +1,44 @@ +import { parse } from '@babel/parser' +import { getNpmCDNRegistry } from '../../registry' + +interface IPrettierModule { + default: { + format( + source: string, + options: { + semi?: boolean + parser?: (code: string) => any + } + ): string + } +} + +const cache: { prettier: Promise } = { + prettier: null +} + +export const format = async (language: string, source: string) => { + cache.prettier = + cache.prettier || + new Function(`return import("${getNpmCDNRegistry()}/prettier@2.x/esm/standalone.mjs")`)() + return cache.prettier.then((module) => { + if (language === 'javascript.expression' || language === 'typescript.expression') { + return source + } + if (/(?:javascript|typescript)/gi.test(language)) { + return module.default.format(source, { + semi: false, + parser(text) { + return parse(text, { + sourceType: 'module', + plugins: ['typescript', 'jsx'] + }) + } + }) + } + if (language === 'json') { + return JSON.stringify(JSON.parse(source), null, 2) + } + return source + }) +} diff --git a/packages/settings-form/src/components/MonacoInput/index.tsx b/packages/settings-form/src/components/MonacoInput/index.tsx new file mode 100644 index 0000000..484393c --- /dev/null +++ b/packages/settings-form/src/components/MonacoInput/index.tsx @@ -0,0 +1,353 @@ +import { parse, parseExpression } from '@babel/parser' +import { isNum, uid } from '@pind/designable-shared' +import { IconWidget, TextWidget, usePrefix, useTheme } from '@formily/antdv-designable' +import { composeExport } from '@formily/antdv/esm/__builtins__' +import { Tooltip } from 'ant-design-vue' +import type * as monaco from 'monaco-editor/esm/vs/editor/editor.api' +import type { PropType } from 'vue' +import { defineComponent, onBeforeUnmount, shallowRef, watch } from 'vue' +import type { EditorProps } from '../MonacoEditor' +import Editor, { loader } from '../MonacoEditor' +import './config' +import { initMonaco } from './config' +import { format } from './format' +import './styles.less' + +export type Monaco = typeof monaco +export interface MonacoInputProps extends EditorProps { + helpLink?: string | boolean + helpCode?: string + helpCodeViewWidth?: number | string + extraLib?: string + lineNumbers?: string + wordWrap?: string + glyphMargin?: boolean + folding?: boolean + lineDecorationsWidth?: number + lineNumbersMinChars?: number + minimap: Record + onMount?: (editor: monaco.editor.IStandaloneCodeEditor, monaco: Monaco) => void + onChange?: (value: string) => void +} + +const MonacoInputInner = defineComponent({ + name: 'MonacoInput', + props: { + language: { type: String as PropType }, + defaultLanguage: { type: String as PropType }, + width: { type: [String, Number] }, + height: { type: [String, Number] }, + helpLink: { type: [String, Boolean], default: undefined }, + helpCode: { type: String as PropType }, + helpCodeViewWidth: { type: [String, Number] }, + onMount: { type: Function as PropType }, + onChange: { type: Function as PropType }, + value: { type: String as PropType }, + defaultValue: { + type: String as PropType + }, + extraLib: { type: String }, + options: { + type: Object as PropType> + } + }, + inheritAttrs: false, + setup(props, { attrs, emit }) { + const loadedRef = shallowRef(false) + const setLoaded = (value: boolean) => (loadedRef.value = value) + const themeRef = useTheme() + const valueRef = shallowRef('') + const validateRef = shallowRef() + const submitRef = shallowRef() + const declarationRef = shallowRef([]) + const extraLibRef = shallowRef() + const monacoRef = shallowRef() + const editorRef = shallowRef() + const computedLanguage = shallowRef(props.language! || props.defaultLanguage!) + const realLanguage = shallowRef('') + const unmountedRef = shallowRef(false) + const changedRef = shallowRef(false) + const uidRef = shallowRef(uid()) + const prefixRef = usePrefix('monaco-input') + + const updateExtraLib = () => { + if (extraLibRef.value) { + extraLibRef.value.dispose() + } + extraLibRef.value = monacoRef.value!.languages.typescript.typescriptDefaults.addExtraLib( + props.extraLib!, + `${uidRef.value}.d.ts` + ) + } + + const isFileLanguage = () => { + const lang = computedLanguage.value + return lang === 'javascript' || lang === 'typescript' + } + + const isExpLanguage = () => { + const lang = computedLanguage.value + return lang === 'javascript.expression' || lang === 'typescript.expression' + } + + const renderHelper = () => { + const prefix = prefixRef.value + const getHref = () => { + if (typeof props.helpLink === 'string') return props.helpLink + if (isFileLanguage()) { + return 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript' + } + if (isExpLanguage()) { + return 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators' + } + } + if (props.helpLink === false) return null + const href = getHref() + return ( + href && ( + }> +
+ + + +
+
+ ) + ) + } + + const onMountHandler = (editor: monaco.editor.IStandaloneCodeEditor, monaco: Monaco) => { + editorRef.value = editor + monacoRef.value = monaco + props.onMount?.(editor, monaco) + emit('mount', editor, monaco) + const model = editor.getModel() + const currentValue = editor.getValue() + model['getDesignerLanguage'] = () => computedLanguage.value + if (currentValue) { + format(computedLanguage.value, currentValue) + .then((content) => { + editor.setValue(content) + setLoaded(true) + }) + .catch(() => { + setLoaded(true) + }) + } else { + setLoaded(true) + } + if (props.extraLib) { + updateExtraLib() + } + } + + const submit = () => { + clearTimeout(submitRef.value!) + submitRef.value = setTimeout(() => { + props.onChange?.(valueRef.value) + emit('change', valueRef.value) + }, 1000) + } + + const validate = () => { + if (realLanguage.value === 'typescript') { + clearTimeout(validateRef.value) + validateRef.value = setTimeout(() => { + try { + if (valueRef.value) { + if (isFileLanguage()) { + parse(valueRef.value, { + sourceType: 'module', + plugins: ['typescript', 'jsx'] + }) + } else if (isExpLanguage()) { + parseExpression(valueRef.value, { + plugins: ['typescript', 'jsx'] + }) + } + } + monacoRef.value!.editor.setModelMarkers( + // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain + editorRef.value?.getModel()!, + computedLanguage.value, + [] + ) + declarationRef.value = editorRef.value!.deltaDecorations(declarationRef.value, [ + { + range: new monacoRef.value!.Range(1, 1, 1, 1), + options: {} + } + ]) + submit() + } catch (e) { + declarationRef.value = editorRef.value!.deltaDecorations(declarationRef.value, [ + { + range: new monacoRef.value!.Range( + e.loc.line, + e.loc.column, + e.loc.line, + e.loc.column + ), + options: { + isWholeLine: true, + glyphMarginClassName: 'monaco-error-highline' + } + } + ]) + monacoRef.value!.editor.setModelMarkers( + editorRef.value!.getModel()!, + computedLanguage.value, + [ + { + code: '1003', + severity: 8, + startLineNumber: e.loc.line, + startColumn: e.loc.column, + endLineNumber: e.loc.line, + endColumn: e.loc.column, + message: e.message + } + ] + ) + } + }, 240) + } else { + submit() + declarationRef.value = editorRef.value!.deltaDecorations(declarationRef.value, [ + { + range: new monacoRef.value!.Range(1, 1, 1, 1), + options: {} + } + ]) + } + } + + const onChangeHandler = (value: string) => { + changedRef.value = true + valueRef.value = value + validate() + } + + const renderHelpCode = () => { + if (!props.helpCode) return null + const helpCodeViewWidth = isNum(props.helpCodeViewWidth) + ? props.helpCodeViewWidth + 'px' + : props.helpCodeViewWidth + const prefix = prefixRef.value + const theme = themeRef.value + + return ( +
+ +
+ ) + } + + const disposes = [ + () => { + if (extraLibRef.value) { + extraLibRef.value.dispose() + } + unmountedRef.value = true + } + ] + + watch( + () => props.extraLib, + () => { + if (monacoRef.value && props.extraLib) { + updateExtraLib() + } + } + ) + + unmountedRef.value = false + initMonaco() + + onBeforeUnmount(() => { + disposes.forEach((dispose) => dispose()) + }) + + return () => { + const theme = themeRef.value + const prefix = prefixRef.value + const loaded = loadedRef.value + const input = props.value! || props.defaultValue! || '' + computedLanguage.value = props.language! || props.defaultLanguage! + realLanguage.value = /(?:javascript|typescript)/gi.test(computedLanguage.value) + ? 'typescript' + : computedLanguage.value + return ( +
+ {renderHelper()} +
+ +
+ {renderHelpCode()} +
+ ) + } + } +}) + +export const MonacoInput = composeExport(MonacoInputInner, { + loader: loader +}) diff --git a/packages/settings-form/src/components/MonacoInput/styles.less b/packages/settings-form/src/components/MonacoInput/styles.less new file mode 100644 index 0000000..6d2b0e8 --- /dev/null +++ b/packages/settings-form/src/components/MonacoInput/styles.less @@ -0,0 +1,32 @@ +.dn-monaco-input { + position: relative; + transition: all 0.15s ease-in-out; + width: 100%; + height: 100%; + display: flex; + + &.loaded { + opacity: 1; + } + + &-view { + flex-grow: 2; + height: 100%; + } + + &-helper { + position: absolute; + bottom: 10px; + right: 5%; + z-index: 2; + } + + .monaco-error-highline { + left: 0px !important; + width: 5px !important; + height: 5px !important; + background: red !important; + border-radius: 100% !important; + transform: translate(35px, 5px) !important; + } +} diff --git a/packages/settings-form/src/components/MonacoInput/themes/chrome.ts b/packages/settings-form/src/components/MonacoInput/themes/chrome.ts new file mode 100644 index 0000000..2d536e3 --- /dev/null +++ b/packages/settings-form/src/components/MonacoInput/themes/chrome.ts @@ -0,0 +1,106 @@ +export default { + base: 'vs', + inherit: true, + rules: [ + { + foreground: 'c41a16', + token: 'string' + }, + { + foreground: '1c00cf', + token: 'constant.numeric' + }, + { + foreground: 'aa0d91', + token: 'keyword' + }, + { + foreground: '000000', + token: 'keyword.operator' + }, + { + foreground: 'aa0d91', + token: 'constant.language' + }, + { + foreground: '990000', + token: 'support.class.exception' + }, + { + foreground: '000000', + token: 'entity.name.function' + }, + { + fontStyle: 'bold underline', + token: 'entity.name.type' + }, + { + fontStyle: 'italic', + token: 'variable.parameter' + }, + { + foreground: '007400', + token: 'comment' + }, + { + foreground: 'ff0000', + token: 'invalid' + }, + { + background: 'e71a1100', + token: 'invalid.deprecated.trailing-whitespace' + }, + { + foreground: '000000', + background: 'fafafafc', + token: 'text source' + }, + { + foreground: 'aa0d91', + token: 'meta.tag' + }, + { + foreground: 'aa0d91', + token: 'declaration.tag' + }, + { + foreground: '000000', + fontStyle: 'bold', + token: 'support' + }, + { + foreground: 'aa0d91', + token: 'storage' + }, + { + fontStyle: 'bold underline', + token: 'entity.name.section' + }, + { + foreground: '000000', + fontStyle: 'bold', + token: 'entity.name.function.frame' + }, + { + foreground: '333333', + token: 'meta.tag.preprocessor.xml' + }, + { + foreground: '994500', + fontStyle: 'italic', + token: 'entity.other.attribute-name' + }, + { + foreground: '881280', + token: 'entity.name.tag' + } + ], + colors: { + 'editor.foreground': '#000000', + 'editor.background': '#FFFFFF', + 'editor.selectionBackground': '#BAD6FD', + 'editor.lineHighlightBackground': '#EFEFFF', + 'editorCursor.foreground': '#000000', + 'editorWhitespace.foreground': '#B3B3B3F4' + } +} diff --git a/packages/settings-form/src/components/MonacoInput/themes/monokai.ts b/packages/settings-form/src/components/MonacoInput/themes/monokai.ts new file mode 100644 index 0000000..0465934 --- /dev/null +++ b/packages/settings-form/src/components/MonacoInput/themes/monokai.ts @@ -0,0 +1,140 @@ +export default { + base: 'vs-dark', + inherit: true, + rules: [ + { + foreground: '75715e', + token: 'comment' + }, + { + foreground: 'e6db74', + token: 'string' + }, + { + foreground: 'ae81ff', + token: 'constant.numeric' + }, + { + foreground: 'ae81ff', + token: 'constant.language' + }, + { + foreground: 'ae81ff', + token: 'constant.character' + }, + { + foreground: 'ae81ff', + token: 'constant.other' + }, + { + foreground: 'f92672', + token: 'keyword' + }, + { + foreground: 'f92672', + token: 'storage' + }, + { + foreground: '66d9ef', + fontStyle: 'italic', + token: 'storage.type' + }, + { + foreground: 'a6e22e', + fontStyle: 'underline', + token: 'entity.name.class' + }, + { + foreground: 'a6e22e', + fontStyle: 'italic underline', + token: 'entity.other.inherited-class' + }, + { + foreground: 'a6e22e', + token: 'entity.name.function' + }, + { + foreground: 'fd971f', + fontStyle: 'italic', + token: 'variable.parameter' + }, + { + foreground: 'f92672', + token: 'entity.name.tag' + }, + { + foreground: 'a6e22e', + token: 'entity.other.attribute-name' + }, + { + foreground: '66d9ef', + token: 'support.function' + }, + { + foreground: '66d9ef', + token: 'support.constant' + }, + { + foreground: '66d9ef', + fontStyle: 'italic', + token: 'support.type' + }, + { + foreground: '66d9ef', + fontStyle: 'italic', + token: 'support.class' + }, + { + foreground: 'f8f8f0', + background: 'f92672', + token: 'invalid' + }, + { + foreground: 'f8f8f0', + background: 'ae81ff', + token: 'invalid.deprecated' + }, + { + foreground: 'cfcfc2', + token: 'meta.structure.dictionary.json string.quoted.double.json' + }, + { + foreground: '75715e', + token: 'meta.diff' + }, + { + foreground: '75715e', + token: 'meta.diff.header' + }, + { + foreground: 'f92672', + token: 'markup.deleted' + }, + { + foreground: 'a6e22e', + token: 'markup.inserted' + }, + { + foreground: 'e6db74', + token: 'markup.changed' + }, + { + foreground: 'ae81ffa0', + token: 'constant.numeric.line-number.find-in-files - match' + }, + { + foreground: 'e6db74', + token: 'entity.name.filename.find-in-files' + } + ], + colors: { + 'editor.foreground': '#F8F8F2', + 'editor.background': '#222222', + 'editor.selectionBackground': '#49483E', + 'editor.lineHighlightBackground': '#3E3D32', + 'editorCursor.foreground': '#F8F8F0', + 'editorWhitespace.foreground': '#3B3A32', + 'editorIndentGuide.activeBackground': '#9D550FB0', + 'editor.selectionHighlightBorder': '#222218' + } +} diff --git a/packages/settings-form/src/components/PolyInput/index.tsx b/packages/settings-form/src/components/PolyInput/index.tsx new file mode 100644 index 0000000..21603c4 --- /dev/null +++ b/packages/settings-form/src/components/PolyInput/index.tsx @@ -0,0 +1,119 @@ +import { defineComponent, ref, unref, watch } from 'vue' +import { Button } from 'ant-design-vue' +import { usePrefix, IconWidget } from '@formily/antdv-designable' +import './styles.less' + +export interface IInput { + value: any + onChange: (value: any) => void + exclude?: string[] + include?: string[] +} + +export interface IPolyType { + type: string + title?: string + icon?: string + component?: any + checker: (value: any) => boolean + toInputValue?: (value: any) => any + toChangeValue?: (value: any) => any +} + +export type PolyTypes = IPolyType[] + +const isValid = (val: any) => val !== undefined && val !== null + +const getEventValue = (event: any) => { + if (event?.target) { + if (isValid(event.target.value)) return event.target.value + if (isValid(event.target.checked)) return event.target.checked + return + } + return event +} + +const createTypes = (types: PolyTypes, exclude: string[], include: string[]) => { + return types.filter(({ type }) => { + if (Array.isArray(include) && include.length) { + return include.includes(type) + } + if (Array.isArray(exclude) && exclude.length) { + return !exclude.includes(type) + } + return true + }) +} + +export function createPolyInput(polyTypes: PolyTypes = []) { + return defineComponent({ + name: 'DnPolyInput', + props: ['value', 'exclude', 'include', 'onChange'], + emits: ['change'], + setup(props, { emit }) { + const prefixRef = usePrefix('poly-input') + const types = createTypes(polyTypes, props.exclude, props.include) + const current = ref(types?.[0]?.type) + const typesValue = ref({}) + watch( + () => props.value, + () => { + types?.forEach(({ checker, type }) => { + if (checker(props.value)) { + current.value = type + } + }) + }, + { immediate: true } + ) + const getNextType = () => { + const currentIndex = types?.findIndex(({ type }) => type === unref(current)) + const nextIndex = currentIndex + 1 > types?.length - 1 ? 0 : currentIndex + 1 + return types[nextIndex] + } + + const transformOnChangeValue = (value: any, type: IPolyType) => { + return type?.toChangeValue ? type?.toChangeValue(value) : value + } + return () => { + const type = types?.find(({ type }) => type === current.value) + const typeComponent = type?.component + return ( + // style={style} className +
+ {typeComponent && ( +
+ { + const value = getEventValue(event) + typesValue.value[type?.type] = event + emit('change', transformOnChangeValue(value, type)) + }} + > +
+ )} + +
+ ) + } + } + }) +} diff --git a/packages/settings-form/src/components/PolyInput/styles.less b/packages/settings-form/src/components/PolyInput/styles.less new file mode 100644 index 0000000..a5b8453 --- /dev/null +++ b/packages/settings-form/src/components/PolyInput/styles.less @@ -0,0 +1,38 @@ +// @import '~antd/lib/style/themes/default.less'; +@import (reference) '../../styles.less'; + +.dn-poly-input { + display: flex; + width: 100%; + align-items: center; + + .dn-poly-input-content { + flex-grow: 2; + margin-right: 2px; + display: flex; + + .@{ant-prefix}-select { + width: 100%; + } + + .@{ant-prefix}-input-number { + width: 100%; + .@{ant-prefix}input__inner { + padding: 0 11px; + text-align: left; + } + } + } + + .dn-poly-input-controller { + border: 1px solid @border-color-base; + border-radius: 2px; + cursor: pointer; + padding: 8px 8px; + display: flex; + align-items: center; + justify-content: center; + flex-grow: 0; + height: 32px; + } +} diff --git a/packages/settings-form/src/components/PositionInput/index.tsx b/packages/settings-form/src/components/PositionInput/index.tsx new file mode 100644 index 0000000..140c56d --- /dev/null +++ b/packages/settings-form/src/components/PositionInput/index.tsx @@ -0,0 +1,70 @@ +import { usePrefix } from '@formily/antdv-designable' +import './styles.less' +import { defineComponent, ref, unref, watch } from 'vue' + +export interface IPositionInputProps { + value?: string + onChange?: (value: string) => void +} + +export const PositionInput = defineComponent({ + props: { value: String, onChange: Function }, + emits: ['change'], + setup(props, { emit }) { + const prefixRef = usePrefix('position-input') + const currentRef = ref(props.value) + + watch( + () => props.value, + () => { + if (!props.value) { + currentRef.value = 'center' + } + } + ) + + return () => { + const prefix = unref(prefixRef) + const current = unref(currentRef) + const createCellProps = (type: string) => ({ + class: [prefix + '-cell', { active: current === type }], + onClick() { + currentRef.value = type + emit('change', type) + } + }) + const cellProps = { + top: createCellProps('top'), + left: createCellProps('left'), + center: createCellProps('center'), + right: createCellProps('right'), + bottom: createCellProps('bottom') + } + return ( +
+
+
+ ┳ +
+
+
+
+ ┣ +
+
+ ╋ +
+
+ ┫ +
+
+
+
+ ┻ +
+
+
+ ) + } + } +}) diff --git a/packages/settings-form/src/components/PositionInput/styles.less b/packages/settings-form/src/components/PositionInput/styles.less new file mode 100644 index 0000000..51ef10c --- /dev/null +++ b/packages/settings-form/src/components/PositionInput/styles.less @@ -0,0 +1,29 @@ +@import (reference) '../../styles.less'; + +.dn-position-input { + display: flex; + flex-direction: column; + + &-row { + display: flex; + justify-content: center; + } + + &-cell { + width: 26px; + height: 26px; + box-sizing: border-box; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + border-radius: 3px; + color: rgba(0, 0, 0, 0.6); + margin: 5px; + color: @text-color; + + &.active { + background: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.2)); + } + } +} diff --git a/packages/settings-form/src/components/SizeInput/index.tsx b/packages/settings-form/src/components/SizeInput/index.tsx new file mode 100644 index 0000000..bfa0720 --- /dev/null +++ b/packages/settings-form/src/components/SizeInput/index.tsx @@ -0,0 +1,80 @@ +import { InputNumber } from 'ant-design-vue' +import { defineComponent } from 'vue' +import { createPolyInput } from '../PolyInput' + +const takeNumber = (value: any) => { + const num = String(value) + .trim() + .replace(/[^\d\.]+/, '') + if (num === '') return + return Number(num) +} + +const createUnitType = (type: string) => { + return { + type, + component: defineComponent({ + name: 'DnUnitType', + props: ['value'], + emits: ['change'], + setup(props, { attrs, emit }) { + return () => { + return ( + { + emit('change', cb) + }} + > + ) + } + } + }), + checker(value: any) { + return String(value).includes(type) + }, + toInputValue(value: any) { + return takeNumber(value) + }, + toChangeValue(value: any) { + return `${value || 0}${type}` + } + } +} + +const createSpecialSizeOption = (type: string) => ({ + type: type, + checker(value: any) { + if (value === type) return true + return false + }, + toChangeValue() { + return type + } +}) + +const NormalSizeOptions = [ + createSpecialSizeOption('inherit'), + createSpecialSizeOption('auto'), + createUnitType('px'), + createUnitType('%'), + createUnitType('em'), + createUnitType('rem'), + createUnitType('vh'), + createUnitType('vw') +] + +export const SizeInput = createPolyInput(NormalSizeOptions) + +export const BackgroundSizeInput = createPolyInput([ + createSpecialSizeOption('cover'), + createSpecialSizeOption('contain'), + createUnitType('px'), + createUnitType('%'), + createUnitType('em'), + createUnitType('rem'), + createUnitType('vh'), + createUnitType('vw') +]) diff --git a/packages/settings-form/src/components/SizeInput/styles.less b/packages/settings-form/src/components/SizeInput/styles.less new file mode 100644 index 0000000..9add2c9 --- /dev/null +++ b/packages/settings-form/src/components/SizeInput/styles.less @@ -0,0 +1,23 @@ +@border-color-base: #f0f0f0; + +.dn-size-input { + display: flex; + width: 100%; + + // .@{ant-prefix}-input-number { + // flex-grow: 2; + // margin-right: 2px; + // } + + .dn-size-input-unit { + border: 1px solid @border-color-base; + border-radius: 2px; + cursor: pointer; + height: 32px; + padding: 0 8px; + display: flex; + align-items: center; + justify-content: center; + flex-grow: 0; + } +} diff --git a/packages/settings-form/src/components/ValueInput/index.tsx b/packages/settings-form/src/components/ValueInput/index.tsx new file mode 100644 index 0000000..4008c75 --- /dev/null +++ b/packages/settings-form/src/components/ValueInput/index.tsx @@ -0,0 +1,135 @@ +/* + * 支持文本、数字、布尔、表达式 + * Todo: JSON、富文本,公式 + */ +import { Select, Popover, Button } from 'ant-design-vue' +import { InputNumber, Input } from '@formily/antdv' +import { TextWidget } from '@formily/antdv-designable' +import { defineComponent } from 'vue' +import { createPolyInput } from '../PolyInput' +import { MonacoInput } from '../MonacoInput' + +const STARTTAG_REX = + /<([-A-Za-z0-9_]+)((?:\s+[a-zA-Z_:][-a-zA-Z0-9_:.]*(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/ + +const EXPRESSION_REX = /^\{\{([\s\S]*)\}\}$/ + +const isNumber = (value: any) => typeof value === 'number' + +const isBoolean = (value: any) => typeof value === 'boolean' + +const isExpression = (value: any) => { + return typeof value === 'string' && EXPRESSION_REX.test(value) +} + +const isRichText = (value: any) => { + return typeof value === 'string' && STARTTAG_REX.test(value) +} + +const isNormalText = (value: any) => { + return typeof value === 'string' && !isExpression(value) && !isRichText(value) +} + +const takeNumber = (value: any) => { + const num = String(value).replace(/[^\d\.]+/, '') + if (num === '') return + return Number(num) +} + +export const ValueInput = createPolyInput([ + { + type: 'TEXT', + icon: 'Text', + component: Input, + checker: isNormalText + }, + { + type: 'EXPRESSION', + icon: 'Expression', + component: defineComponent({ + props: ['value'], + emits: ['change'], + setup(props, { emit }) { + return () => ( + + {{ + content: () => ( +
+ { + emit('change', value) + }} + /> +
+ ), + default: () => ( + + ) + }} +
+ ) + } + }), + checker: isExpression, + toInputValue: (value) => { + if (value === '{{}}') return + const matched = String(value).match(EXPRESSION_REX) + return matched?.[1] || value || '' + }, + toChangeValue: (value) => { + if (value === '{{}}') return + const matched = String(value).match(EXPRESSION_REX) + return `{{${matched?.[1] || value || ''}}}` + } + }, + { + type: 'BOOLEAN', + icon: 'Boolean', + component: defineComponent({ + props: ['value'], + emits: ['change'], + setup(props, { emit }) { + return () => { + return ( + + ) + } + } + }), + checker: isBoolean, + toInputValue: (value) => { + return !!value + }, + toChangeValue: (value) => { + return !!value + } + }, + { + type: 'NUMBER', + icon: 'Number', + component: InputNumber, + checker: isNumber, + toInputValue: takeNumber, + toChangeValue: takeNumber + } +]) diff --git a/packages/components/src/form-button-group/style.less b/packages/settings-form/src/components/ValueInput/styles.less similarity index 100% rename from packages/components/src/form-button-group/style.less rename to packages/settings-form/src/components/ValueInput/styles.less diff --git a/packages/settings-form/src/components/index.ts b/packages/settings-form/src/components/index.ts new file mode 100644 index 0000000..16042a6 --- /dev/null +++ b/packages/settings-form/src/components/index.ts @@ -0,0 +1,14 @@ +export * from './CollapseItem' +export * from './SizeInput' +export * from './DisplayStyleSetter' +export * from './BackgroundStyleSetter' +export * from './BoxShadowStyleSetter' +export * from './FontStyleSetter' +export * from './BoxStyleSetter' +export * from './BorderRadiusStyleSetter' +export * from './BorderStyleSetter' +export * from './ValueInput' +export * from './ColorInput' +export * from './MonacoInput' +export * from './FoldItem' +export * from './DrawerSetter' diff --git a/packages/settings-form/src/effects/index.ts b/packages/settings-form/src/effects/index.ts new file mode 100644 index 0000000..8b14f35 --- /dev/null +++ b/packages/settings-form/src/effects/index.ts @@ -0,0 +1,2 @@ +export * from './useLocales' +export * from './useSnapshot' diff --git a/packages/settings-form/src/effects/useLocales.tsx b/packages/settings-form/src/effects/useLocales.tsx new file mode 100644 index 0000000..5025523 --- /dev/null +++ b/packages/settings-form/src/effects/useLocales.tsx @@ -0,0 +1,67 @@ +import { isVoidField, onFieldReact } from '@formily/core' +import { GlobalRegistry } from '@pind/designable-core' +import { isStr } from '@pind/designable-shared' +import { IconWidget } from '@formily/antdv-designable' +import type { TreeNode } from '@pind/designable-core' + +const takeIcon = (message: string) => { + if (!isStr(message)) return + const matched = message.match(/@([^:\s]+)(?:\s*\:\s*([\s\S]+))?/) + if (matched) return [matched[1], matched[2]] + return +} + +const mapEnum = (dataSource: any[]) => (item: any, index: number) => { + const label = dataSource[index] || dataSource[item.value] || item.label + const icon = takeIcon(label) + return { + ...item, + value: item?.value ?? null, + label: icon ? ( + + ) : ( + label?.label ?? label ?? 'Unknown' + ) + } +} + +export const useLocales = (node: TreeNode) => { + onFieldReact('*', (field) => { + if (!field.initialized) return + const path = field.path.toString().replace(/\.[\d+]/g, '') + const takeMessage = (prop?: string) => { + const token = `settings.${path}${prop ? `.${prop}` : ''}` + return node.getMessage(token) || GlobalRegistry.getDesignerMessage(token) + } + const title = takeMessage('title') || takeMessage() + const description = takeMessage('description') + const tooltip = takeMessage('tooltip') + const dataSource = takeMessage('dataSource') + const placeholder = takeMessage('placeholder') + if (title) { + field.title = title + } + if (description) { + field.description = description + } + if (tooltip) { + field.decorator[1] = field.decorator[1] || [] + field.decorator[1].tooltip = tooltip + } + if (placeholder) { + field.component[1] = field.component[1] || [] + field.component[1].placeholder = placeholder + } + if (!isVoidField(field)) { + if (dataSource?.length) { + if (field.dataSource?.length) { + field.dataSource = field.dataSource.map(mapEnum(dataSource)) + } else { + field.dataSource = dataSource.slice() + } + } else { + field.dataSource = field.dataSource?.filter(Boolean) + } + } + }) +} diff --git a/packages/settings-form/src/effects/useSnapshot.tsx b/packages/settings-form/src/effects/useSnapshot.tsx new file mode 100644 index 0000000..3c8156b --- /dev/null +++ b/packages/settings-form/src/effects/useSnapshot.tsx @@ -0,0 +1,19 @@ +import { onFieldInputValueChange } from '@formily/core' +import type { Operation } from '@pind/designable-core' +import type { Ref } from 'vue' +let timeRequest = null + +export const useSnapshot = (operation: Operation, keyup: Ref) => { + // TODO::usesnapshot is causing problem but dont know what this is + // the ant-design-vue's input-number emit('input') event by immediate watcher + // also CreateForm effect changes schema by locales which cause label goes to null + // workaround listen to keyup event, if keyup event is fired then snapshot, otherwise no snapshots + onFieldInputValueChange('*', () => { + if (!keyup.value) return + clearTimeout(timeRequest) + timeRequest = setTimeout(() => { + operation.snapshot('update:node:props') + keyup.value = false + }, 1000) + }) +} diff --git a/packages/settings-form/src/index.ts b/packages/settings-form/src/index.ts index b1c6ea4..c247a65 100644 --- a/packages/settings-form/src/index.ts +++ b/packages/settings-form/src/index.ts @@ -1 +1,5 @@ -export default {} +import './locales' +export * from './registry' +export * from './components' +export * from './SchemaField' +export * from './SettingsForm' diff --git a/packages/settings-form/src/locales/en-US.ts b/packages/settings-form/src/locales/en-US.ts new file mode 100644 index 0000000..81410ab --- /dev/null +++ b/packages/settings-form/src/locales/en-US.ts @@ -0,0 +1,12 @@ +export default { + 'en-US': { + SettingComponents: { + ValueInput: { + expression: 'Expression' + }, + MonacoInput: { + helpDocument: 'Help Documents' + } + } + } +} diff --git a/packages/settings-form/src/locales/index.ts b/packages/settings-form/src/locales/index.ts new file mode 100644 index 0000000..150adfc --- /dev/null +++ b/packages/settings-form/src/locales/index.ts @@ -0,0 +1,5 @@ +import { GlobalRegistry } from '@pind/designable-core' +import zhCN from './zh-CN' +import enUS from './en-US' + +GlobalRegistry.registerDesignerLocales(zhCN, enUS) diff --git a/packages/settings-form/src/locales/zh-CN.ts b/packages/settings-form/src/locales/zh-CN.ts new file mode 100644 index 0000000..7f26880 --- /dev/null +++ b/packages/settings-form/src/locales/zh-CN.ts @@ -0,0 +1,12 @@ +export default { + 'zh-CN': { + SettingComponents: { + ValueInput: { + expression: '表达式' + }, + MonacoInput: { + helpDocument: '帮助文档' + } + } + } +} diff --git a/packages/settings-form/src/registry.ts b/packages/settings-form/src/registry.ts new file mode 100644 index 0000000..e76d90f --- /dev/null +++ b/packages/settings-form/src/registry.ts @@ -0,0 +1,16 @@ +import loader from '@monaco-editor/loader' + +const Registry = { + cdn: '//cdn.jsdelivr.net/npm' +} + +export const setNpmCDNRegistry = (registry: string) => { + Registry.cdn = registry + loader.config({ + paths: { + vs: `${registry}/monaco-editor@0.30.1/min/vs` + } + }) +} + +export const getNpmCDNRegistry = () => String(Registry.cdn).replace(/\/$/, '') diff --git a/packages/settings-form/src/shared/context.ts b/packages/settings-form/src/shared/context.ts new file mode 100644 index 0000000..0895761 --- /dev/null +++ b/packages/settings-form/src/shared/context.ts @@ -0,0 +1,5 @@ +import type { InjectionKey, Ref } from 'vue' +import type { ISettingFormProps } from '../types' + +export const SettingsFormSymbol: InjectionKey> = + Symbol('SettingsFormContext') diff --git a/packages/settings-form/src/shared/loadScript.ts b/packages/settings-form/src/shared/loadScript.ts new file mode 100644 index 0000000..73bea5a --- /dev/null +++ b/packages/settings-form/src/shared/loadScript.ts @@ -0,0 +1,33 @@ +export interface ILoadScriptProps { + package: string + entry: string + root: string + base?: string +} + +export const loadScript = async (props: ILoadScriptProps) => { + const options: ILoadScriptProps = { + base: '//cdn.jsdelivr.net/npm', + ...props + } + if (window[props.root]) return window[options.root] + const path = `${options.base}/${options.package}/${options.entry}` + return new Promise((resolve, reject) => { + const script = document.createElement('script') + script.type = 'text/javascript' + script.async = false + script.src = path + script.onload = () => { + const module = window[options.root] + window['define'] = define + resolve(module) + script.remove() + } + script.onerror = (err) => { + reject(err) + } + const define = window['define'] + window['define'] = undefined + document.body.appendChild(script) + }) +} diff --git a/packages/settings-form/src/styles.less b/packages/settings-form/src/styles.less new file mode 100644 index 0000000..af4bb1b --- /dev/null +++ b/packages/settings-form/src/styles.less @@ -0,0 +1,132 @@ +// @import '~ant-design-vue/lib/style/themes/index.less'; + +@keyframes fadeIn { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } +} + +@keyframes slideInRight { + 0% { + transform: translateX(100%); + } + + 100% { + transform: translateX(0); + } +} + +@keyframes slideOutRight { + 0% { + transform: translateX(0); + } + + 100% { + transform: translateX(100%); + } +} + +.animate__slideInRight { + -webkit-animation-name: slideInRight; + animation-name: slideInRight; +} + +.animate__slideOutRight { + -webkit-animation-name: slideOutRight; + animation-name: slideOutRight; +} + +.animate__animated { + animation-delay: 0ms; + animation-duration: 0.25s; + animation-fill-mode: forwards; +} + +.animate__fadeInUp { + -webkit-animation-name: fadeIn; + animation-name: fadeIn; +} +.dn-settings-form-wrapper { + height: 100%; + display: flex; + flex-direction: column; + position: relative; + overflow: hidden; + .dn-node-path { + flex-grow: 0; + } + + .dn-settings-form-content { + flex-grow: 1; + overflow: overlay; + + .@{ant-prefix}-formily-form-item { + border-bottom: 1px solid @border-color-split; + margin: 8px 0; + padding-bottom: 8px; + } + } + + // .@{ant-prefix}-radio-button-wrapper { + // display: flex; + // justify-content: center; + // padding: 0 6px !important; + // align-items: center; + // flex-grow: 2; + // } + + .dn-collapse-item-content + .@{ant-prefix}--formily-form-item-control-content + .@{ant-prefix}-radio-group { + display: flex !important; + width: 100%; + } + // .@{ant-prefix}-formily-item { + // border-bottom: 1px solid @border-color-split; + // padding-bottom: 8px; + // margin-bottom: 8px; + // margin-top: 8px; + // * { + // font-size: 13px; + // } + + // .@{ant-prefix}-formily-item-control-content-component { + // display: flex; + // align-items: center; + // justify-content: flex-end; + + // & > .@{ant-prefix}-radio-group { + // display: flex !important; + // width: 100%; + + // } + + // & > .@{ant-prefix}-slider { + // flex-shrink: 0; + // min-width: 0; + // width: 100%; + // } + // } + // } +} + +.dn-settings-form { + padding: 0 20px; + + &-empty { + display: flex; + align-items: center; + flex-direction: column; + justify-content: center; + height: 100%; + color: #888; + } +} + +@text-color: rgba(0, 0, 0, 0.85); +@border-color-split: #f0f0f0; +@border-color-base: #d9d9d9; diff --git a/packages/settings-form/src/types.ts b/packages/settings-form/src/types.ts new file mode 100644 index 0000000..614bb3e --- /dev/null +++ b/packages/settings-form/src/types.ts @@ -0,0 +1,13 @@ +import type { Form } from '@formily/core' +import type { VueComponent } from '@formily/vue' +import type { UploadRequestOption } from 'ant-design-vue/es/vc-upload/interface' + +export interface ISettingFormProps { + uploadAction?: string | ((file: File) => Promise) + uploadMethod?: 'post' | 'POST' | 'PUT' | 'PATCH' | 'put' | 'patch' + uploadCustomRequest?: (options: UploadRequestOption) => void + headers?: Record + components?: Record + effects?: (form: Form) => void + scope?: any +} diff --git a/packages/settings-form/tsconfig.build.json b/packages/settings-form/tsconfig.build.json index cb94a64..0d5dfcd 100644 --- a/packages/settings-form/tsconfig.build.json +++ b/packages/settings-form/tsconfig.build.json @@ -1,10 +1,8 @@ { "extends": "./tsconfig.json", "compilerOptions": { + "baseUrl": "./src", "outDir": "./lib", - "paths": { - "@formily/*": ["packages/*"] - }, "declaration": true } } diff --git a/packages/prototypes/.npmignore.tpl b/playground/.npmignore similarity index 100% rename from packages/prototypes/.npmignore.tpl rename to playground/.npmignore diff --git a/packages/renderer/README.md b/playground/README.md similarity index 100% rename from packages/renderer/README.md rename to playground/README.md diff --git a/packages/renderer/README.zh-CN.md b/playground/README.zh-CN.md similarity index 100% rename from packages/renderer/README.zh-CN.md rename to playground/README.zh-CN.md diff --git a/playground/babel.config.js b/playground/babel.config.js new file mode 100644 index 0000000..4b763bc --- /dev/null +++ b/playground/babel.config.js @@ -0,0 +1,15 @@ +module.exports = (api) => { + return { + presets: [ + [ + '@babel/preset-env', + { + useBuiltIns: false, + modules: api.env(['es']) ? false : api.env(['cjs']) ? 'commonjs' : 'auto' + } + ], + '@babel/preset-typescript' + ], + plugins: ['@babel/transform-runtime', '@vue/babel-plugin-jsx'] + } +} diff --git a/playground/builder.config.ts b/playground/builder.config.ts new file mode 100644 index 0000000..dbd923e --- /dev/null +++ b/playground/builder.config.ts @@ -0,0 +1,14 @@ +import type { IBuilderConfig } from '@formily/template' + +export const BuilderConfig: IBuilderConfig = { + targetLibName: 'ant-design-vue', + targetLibCjsDir: 'lib', + targetLibEsDir: 'es', + externals: { + '@formily/antdv': 'Formily.Antdv', + '@formily/antdv-designable': 'Formily.AntdvDesignable', + '@formily/antdv-setters': 'Formily.AntdvSetters', + '@formily/antdv-settings-form': 'Formily.AntdvSettingsForm', + '@formily/antdv-prototypes': 'Formily.AntdvPrototypes' + } +} diff --git a/playground/index.html b/playground/index.html new file mode 100644 index 0000000..2e43d36 --- /dev/null +++ b/playground/index.html @@ -0,0 +1,13 @@ + + + + + + + Designable Antdv + + +
+ + + diff --git a/playground/package.json b/playground/package.json new file mode 100644 index 0000000..0876493 --- /dev/null +++ b/playground/package.json @@ -0,0 +1,73 @@ +{ + "name": "playground", + "version": "2.0.0", + "private": true, + "license": "MIT", + "main": "lib", + "types": "lib/index.d.ts", + "engines": { + "npm": ">=3.0.0" + }, + "module": "esm", + "jsnext:main": "esm", + "sideEffects": [ + "dist/*", + "esm/*.js", + "lib/*.js", + "src/*.ts", + "*.less", + "*.scss", + "**/*/style.js" + ], + "scripts": { + "dev": "vite", + "build": "vite build", + "serve": "vite preview" + }, + "maintainers": [ + "yiyunwan" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/formilyjs/antdv.git" + }, + "bugs": { + "url": "https://github.com/formilyjs/antdv/issues" + }, + "homepage": "https://github.com/formilyjs/antdv#readme", + "publishConfig": { + "access": "public" + }, + "peerDependencies": { + "vue": "^3.3.0" + }, + "dependencies": { + "core-js": "^3.23.3", + "lodash-es": "^4.17.21", + "regenerator-runtime": "^0.13.9", + "vue-codemirror": "^4.0.6" + }, + "devDependencies": { + "@formily/reactive": "^2.0.0", + "@formily/reactive-vue": "^2.0.0", + "@formily/shared": "^2.0.0", + "@formily/vue": "^2.0.0", + "@pind/designable-core": "^2.0.0-beta.6", + "@pind/designable-formily-transformer": "^2.0.0-beta.6", + "@pind/designable-shared": "^2.0.0-beta.6", + "@formily/antdv": "2.0.0", + "@formily/antdv-designable": "2.0.0", + "@formily/antdv-prototypes": "2.0.0", + "@formily/antdv-setters": "2.0.0", + "@formily/antdv-settings-form": "2.0.0", + "@types/fs-extra": "^9.0.13", + "@vitejs/plugin-vue": "^4.0.0", + "@vitejs/plugin-vue-jsx": "^3.0.0", + "babel-loader": "^8.2.3", + "fs-extra": "^11.1.0", + "less": "^4.1.2", + "vite": "^4.3.5", + "vue": "^3.3.0" + }, + "gitHead": "3729413f0c158ed6658761aae123e37e20f5c0c0" +} diff --git a/playground/src/app.tsx b/playground/src/app.tsx new file mode 100644 index 0000000..27a422d --- /dev/null +++ b/playground/src/app.tsx @@ -0,0 +1,180 @@ +import { GlobalRegistry, createDesigner } from '@pind/designable-core' +import { + ComponentTreeWidget, + CompositePanel, + Designer, + DesignerToolsWidget, + HistoryWidget, + OutlineTreeWidget, + ResourceWidget, + SettingsPanel, + StudioPanel, + ToolbarPanel, + ViewPanel, + ViewToolsWidget, + ViewportPanel, + Workbench, + WorkspacePanel +} from '@formily/antdv-designable' +import { + ArrayCards, + ArrayItems, + ArrayTable, + Card, + Cascader, + Checkbox, + DatePicker, + Field, + Form, + FormCollapse, + FormGrid, + FormLayout, + FormTab, + Input, + InputNumber, + ObjectContainer, + Password, + Radio, + Select, + Space, + Switch, + Text, + TimePicker, + Transfer, + TreeSelect, + Upload +} from '@formily/antdv-prototypes' +import { SettingsForm } from '@formily/antdv-settings-form' +import { defineComponent } from 'vue' +import ActionsWidget from './widgets/actions-widget' +import LogoWidget from './widgets/logo-widget' +import PreviewWidget from './widgets/preview-widget' +import SchemaEditorWidget from './widgets/schema-editor-widget' + +GlobalRegistry.registerDesignerLocales({ + 'zh-CN': { + sources: { + Inputs: '输入控件', + Layouts: '布局组件', + Arrays: '自增组件', + Displays: '展示组件' + } + }, + 'en-US': { + sources: { + Inputs: 'Inputs', + Layouts: 'Layouts', + Arrays: 'Arrays', + Displays: 'Displays' + } + } +}) +export const App = defineComponent({ + setup() { + const engine = createDesigner({ + shortcuts: [], + rootComponentName: 'Form' + }) + const sources = { + Inputs: [ + Input, + Password, + InputNumber, + Switch, + Checkbox, + Radio, + DatePicker, + TimePicker, + Select, + TreeSelect, + Cascader, + Transfer, + Upload, + ObjectContainer + ], + Layouts: [FormGrid, FormTab, FormLayout, FormCollapse, Space], + Arrays: [ArrayCards, ArrayItems, ArrayTable], + Displays: [Text] + } + const components = { + Form, + Field, + Input, + Select, + TreeSelect, + Cascader, + Radio, + Checkbox, + Transfer, + Password, + DatePicker, + TimePicker, + Upload, + Switch, + InputNumber, + Text, + FormGrid, + Card, + Space, + FormCollapse, + FormTab, + FormLayout, + ArrayCards, + ArrayTable, + ArrayItems, + ObjectContainer + } + return () => { + return ( + + + } actions={}> + + + + + + + + + + + + + + + + + + + + + + + + + {{ + default: (tree, onChange) => ( + + ) + }} + + + {(tree: any) => } + + + + + + + + + + ) + } + } +}) +export default App diff --git a/playground/src/index.ts b/playground/src/index.ts new file mode 100644 index 0000000..55ac76d --- /dev/null +++ b/playground/src/index.ts @@ -0,0 +1,11 @@ +import 'ant-design-vue/dist/reset.css' +import { createApp } from 'vue' +import App from './app' +import WidgetsInstaller from './widgets' + +export function mount(id: string) { + const app = createApp(App) + app.use(WidgetsInstaller) + app.mount(`#${id}`) + return app +} diff --git a/playground/src/main.ts b/playground/src/main.ts new file mode 100644 index 0000000..2836ea9 --- /dev/null +++ b/playground/src/main.ts @@ -0,0 +1,2 @@ +import { mount } from './index' +mount('app') diff --git a/playground/src/service/index.ts b/playground/src/service/index.ts new file mode 100644 index 0000000..cb7cdd4 --- /dev/null +++ b/playground/src/service/index.ts @@ -0,0 +1 @@ +export * from './schema' diff --git a/playground/src/service/schema.ts b/playground/src/service/schema.ts new file mode 100644 index 0000000..cba6896 --- /dev/null +++ b/playground/src/service/schema.ts @@ -0,0 +1,18 @@ +import { transformToSchema, transformToTreeNode } from '@pind/designable-formily-transformer' +import { message } from 'ant-design-vue' +import type { Engine } from '@pind/designable-core' + +export const saveSchema = (designer: Engine) => { + localStorage.setItem( + 'formily-schema', + JSON.stringify(transformToSchema(designer.getCurrentTree())) + ) + message.success('Save Success') +} + +export const loadInitialSchema = (designer: Engine) => { + try { + const tree = transformToTreeNode(JSON.parse(localStorage.getItem('formily-schema'))) + designer.setCurrentTree(tree) + } catch (err) {} +} diff --git a/playground/src/widgets/actions-widget.tsx b/playground/src/widgets/actions-widget.tsx new file mode 100644 index 0000000..c70cd02 --- /dev/null +++ b/playground/src/widgets/actions-widget.tsx @@ -0,0 +1,57 @@ +import { GithubOutlined } from '@ant-design/icons-vue' +import { GlobalRegistry } from '@pind/designable-core' +import { TextWidget, useDesigner, useEffect } from '@formily/antdv-designable' +import { Button, Radio, Space } from 'ant-design-vue' +import { defineComponent, ref } from 'vue' +import { loadInitialSchema, saveSchema } from '../service' + +function useI18n() { + const language = ref( + String.prototype.toLocaleLowerCase.call(GlobalRegistry.getDesignerLanguage()) + ) + function handleChangeLanguage(value) { + language.value = value + GlobalRegistry.setDesignerLanguage(value) + } + return { language, handleChangeLanguage } +} + +export default defineComponent({ + setup() { + const designerRef = useDesigner() + useEffect(() => { + loadInitialSchema(designerRef.value) + }, []) + + const { language, handleChangeLanguage } = useI18n() + const supportLocales = ['zh-cn', 'en-us', 'ko-kr'] + useEffect(() => { + if (!supportLocales.includes(language.value)) { + GlobalRegistry.setDesignerLanguage('zh-cn') + } + }, []) + + return () => ( + + e.target && handleChangeLanguage(e.target.value)} + > + English + 简体中文 + + + + + + ) + } +}) diff --git a/playground/src/widgets/index.ts b/playground/src/widgets/index.ts new file mode 100644 index 0000000..3d52b9d --- /dev/null +++ b/playground/src/widgets/index.ts @@ -0,0 +1,16 @@ +import type { VueConstructor } from 'vue' +import ActionsWidget from './actions-widget' +import LogoWidget from './logo-widget' +import PreviewWidget from './preview-widget' +import SchemaEditorWidget from './schema-editor-widget' + +export default function install( + vue: VueConstructor, + // eslint-disable-next-line + options: Record +) { + vue.component('ActionsWidget', ActionsWidget) + vue.component('SchemaEditorWidget', SchemaEditorWidget) + vue.component('PreviewWidget', PreviewWidget) + vue.component('LogoWidget', LogoWidget) +} diff --git a/playground/src/widgets/logo-widget.tsx b/playground/src/widgets/logo-widget.tsx new file mode 100644 index 0000000..a121ddf --- /dev/null +++ b/playground/src/widgets/logo-widget.tsx @@ -0,0 +1,19 @@ +import { defineComponent } from 'vue' +import { useTheme } from '@formily/antdv-designable' + +const logo = { + dark: '//img.alicdn.com/imgextra/i2/O1CN01NTUDi81fHLQvZCPnc_!!6000000003981-55-tps-1141-150.svg', + light: '//img.alicdn.com/imgextra/i2/O1CN01Kq3OHU1fph6LGqjIz_!!6000000004056-55-tps-1141-150.svg' +} + +export default defineComponent({ + name: 'LogoWidget', + setup() { + const url = logo[useTheme().value] + return () => ( +
+ +
+ ) + } +}) diff --git a/playground/src/widgets/preview-widget.tsx b/playground/src/widgets/preview-widget.tsx new file mode 100644 index 0000000..b1d9ffc --- /dev/null +++ b/playground/src/widgets/preview-widget.tsx @@ -0,0 +1,35 @@ +import { createForm } from '@formily/core' +import { createSchemaField } from '@formily/vue' +import { transformToSchema } from '@pind/designable-formily-transformer' +import * as Antdv from '@formily/antdv' +import { Form } from '@formily/antdv' +import { Text } from '@formily/antdv-prototypes' +import type { Component } from 'vue' +import { computed, defineComponent } from 'vue' + +const { SchemaField } = createSchemaField({ + components: { + Text: Text as Component, + ...(Antdv as any) + } +}) + +export default defineComponent({ + name: 'DnPreviewWidget', + props: ['tree'], + setup(props) { + const form = createForm() + const treeSchema = computed(() => transformToSchema(props.tree)) + + return () => { + const { form: { style, ...formProps } = {}, schema } = treeSchema.value + return ( +
+
+ + +
+ ) + } + } +}) diff --git a/playground/src/widgets/schema-editor-widget.tsx b/playground/src/widgets/schema-editor-widget.tsx new file mode 100644 index 0000000..4117413 --- /dev/null +++ b/playground/src/widgets/schema-editor-widget.tsx @@ -0,0 +1,46 @@ +import { defineComponent, computed } from 'vue' +import { transformToSchema, transformToTreeNode } from '@pind/designable-formily-transformer' +import { codemirror as CodeMirror } from 'vue-codemirror' +import _ from 'lodash-es' + +// import base style +import 'codemirror/lib/codemirror.css' +import 'codemirror/mode/javascript/javascript' + +export default defineComponent({ + name: 'DnSchemaEditorWidget', + props: ['tree', 'onChange'], + emits: ['change'], + setup(props, { emit }) { + const code = computed(() => { + return JSON.stringify(transformToSchema(props.tree), null, 2) + }) + + const handleEmitChanges = _.debounce((cm) => { + emit('change', transformToTreeNode(JSON.parse(cm.getValue()))) + }, 200) + + const cmReady = (mirror) => { + mirror.setSize('100%', '100%') + mirror.on('changes', handleEmitChanges) + } + + return () => { + return ( + + ) + } + } +}) diff --git a/playground/tsconfig.build.json b/playground/tsconfig.build.json new file mode 100644 index 0000000..2e21904 --- /dev/null +++ b/playground/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "baseUrl": "./src", + "outDir": "./lib", + // Ensure that .d.ts files are created by tsc, but not .js files + "declaration": true, + "emitDeclarationOnly": true, + // Ensure that Babel can safely transpile files in the TypeScript project + "isolatedModules": true + } +} diff --git a/playground/tsconfig.json b/playground/tsconfig.json new file mode 100644 index 0000000..1c3b8a6 --- /dev/null +++ b/playground/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../tsconfig.json", + "include": ["./src/**/*.js", "./src/**/*.ts", "./src/**/*.tsx"], + "exclude": ["./src/__tests__/*"], + "compilerOptions": { + "module": "esnext", + "target": "ESNext" + } +} diff --git a/playground/vite.config.ts b/playground/vite.config.ts new file mode 100644 index 0000000..79f2352 --- /dev/null +++ b/playground/vite.config.ts @@ -0,0 +1,60 @@ +import vue from '@vitejs/plugin-vue' +import vueJsx from '@vitejs/plugin-vue-jsx' +import { theme } from 'ant-design-vue/lib' +import convertLegacyToken from 'ant-design-vue/lib/theme/convertLegacyToken' +import fs from 'fs-extra' +import { GlobSync } from 'glob' +import { defineConfig } from 'vite' +import { fileURLToPath, URL } from 'node:url' +import { resolve } from 'path' + +const { defaultAlgorithm, defaultSeed } = theme + +const mapToken = defaultAlgorithm(defaultSeed) +const v3Token = convertLegacyToken(mapToken) + +const getWorkspaceAlias = () => { + const basePath = resolve(__dirname, '../') + const pkg = fs.readJSONSync(resolve(basePath, 'package.json')) || {} + const alias: Record = {} + const workspaces = pkg.workspaces + if (Array.isArray(workspaces)) { + workspaces.forEach((pattern) => { + const { found } = new GlobSync(pattern, { cwd: basePath }) + found.forEach((name) => { + try { + const pkg = fs.readJSONSync(resolve(basePath, name, './package.json')) + alias[`${pkg.name}/esm`] = resolve(basePath, name, './esm') + alias[pkg.name] = resolve(basePath, name, './src') + } catch (error) { + /* empty */ + } + }) + }) + } + return alias +} + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [vue(), vueJsx()], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)), + '~ant-design-vue': 'ant-design-vue', + ...getWorkspaceAlias() + } + }, + css: { + preprocessorOptions: { + less: { + javascriptEnabled: true, + charset: false, + modifyVars: v3Token + } + } + }, + server: { + host: true + } +}) diff --git a/scripts/build-library.ts b/scripts/build-library.ts new file mode 100644 index 0000000..04654fd --- /dev/null +++ b/scripts/build-library.ts @@ -0,0 +1,63 @@ +import execa from 'execa' +import fs from 'fs-extra' +import path from 'path' +import { cwd } from './constants' + +const hasBuildConfig = async () => { + try { + await fs.access(path.resolve(cwd, 'tsconfig.build.json')) + return true + } catch { + return false + } +} + +/** + * ts file type check + * https://www.typescriptlang.org/docs/handbook/babel-with-typescript.html + */ +const buildType = async (params: string[] = []) => { + const hasProjects = await hasBuildConfig() + if (hasProjects) { + params.unshift('--project', 'tsconfig.build.json') + } + + await execa('tsc', params) +} + +interface BuildDefaultOpts { + outDir?: string + env?: string +} + +const buildDefault = async ({ outDir = 'lib', env = 'cjs' }: BuildDefaultOpts = {}) => { + await buildType([ + '--outDir', + outDir, + '--sourceRoot', + outDir, + // Only output d.ts files and not JavaScript files. + '--emitDeclarationOnly', + // Ensure that Babel can safely transpile files in the TypeScript project + '--isolatedModules' + ]) + await execa('babel', [ + 'src', + '--out-dir', + outDir, + '--env-name', + env, + '--extensions', + '.ts,.tsx', + '--copy-files' + ]) +} + +const buildEsm = async () => { + await buildDefault({ outDir: 'esm', env: 'es' }) +} + +export const buildLibrary = async () => { + await buildDefault() + await buildEsm() +} diff --git a/scripts/build-umd.ts b/scripts/build-umd.ts new file mode 100644 index 0000000..2707ce3 --- /dev/null +++ b/scripts/build-umd.ts @@ -0,0 +1,191 @@ +// import typescript from 'rollup-plugin-typescript2' +import { DEFAULT_EXTENSIONS } from '@babel/core' +import babel from '@rollup/plugin-babel' +import commonjs from '@rollup/plugin-commonjs' +import resolve from '@rollup/plugin-node-resolve' +import terser from '@rollup/plugin-terser' +import NpmImport from 'less-plugin-npm-import' +import { paramCase } from 'param-case' +import { pascalCase } from 'pascal-case' +import type { OutputOptions, RollupOptions } from 'rollup' +import { rollup } from 'rollup' +import dts from 'rollup-plugin-dts' +import externalGlobals from 'rollup-plugin-external-globals' +import ignoreImport from 'rollup-plugin-ignore-import' +import css from 'rollup-plugin-import-css' +import injectProcessEnv from 'rollup-plugin-inject-process-env' +import postcss from 'rollup-plugin-postcss' +import path from 'node:path' +import { builderConfigs, cwd, pkg } from './constants' + +const extensions = [...DEFAULT_EXTENSIONS, '.ts', '.tsx'] + +const parseName = () => { + const name = String(pkg?.name || '') + const scope = paramCase(name.match(/@([^\/]+)\//)?.[1] as string) + const moduleName = paramCase(name.replace(/@[^\/]+\//, '')) + const filename = scope ? `${scope}.${moduleName}` : moduleName + const rootName = scope ? `${pascalCase(scope)}.${pascalCase(moduleName)}` : pascalCase(moduleName) + return { name, filename, scope, moduleName, rootName } +} + +const buildAll = async (inputs: RollupOptions[]) => { + for (const input of inputs) { + const { output, ...options } = input + const bundle = await rollup(options) + await bundle.write(output as OutputOptions) + } +} + +const presets = () => { + const externals = { + antd: 'antd', + vue: 'Vue', + react: 'React', + moment: 'moment', + 'react-is': 'ReactIs', + 'react-dom': 'ReactDOM', + 'element-ui': 'Element', + 'ant-design-vue': 'antd', + '@ant-design/icons': 'icons', + '@formily/reactive-react': 'Formily.ReactiveReact', + '@formily/reactive-vue': 'Formily.ReactiveVue', + '@formily/reactive': 'Formily.Reactive', + '@formily/path': 'Formily.Path', + '@formily/shared': 'Formily.Shared', + '@formily/validator': 'Formily.Validator', + '@formily/core': 'Formily.Core', + '@formily/json-schema': 'Formily.JSONSchema', + '@formily/react': 'Formily.React', + '@formily/vue': 'Formily.Vue', + ...builderConfigs.externals + } + return [ + // 使用 @babel/preset-typescript + // typescript({ + // tsconfig: './tsconfig.build.json', + // tsconfigOverride: { + // compilerOptions: { + // module: 'ESNext', + // declaration: false, + // }, + // }, + // }), + css(), + resolve({ + browser: true, + extensions + }), + commonjs(), + babel({ + // https://babeljs.io/docs/en/options#rootMode + rootMode: 'upward', // 向上级查找 babel.config.js + exclude: [/\/@babel\//, /\/core-js\//], + babelHelpers: 'runtime', + extensions + }), + externalGlobals(externals) + ] +} + +const createEnvPlugin = (env = 'development') => { + return injectProcessEnv( + { + NODE_ENV: env + }, + { + exclude: '**/*.{css,less,sass,scss}', + verbose: false + } + ) +} + +export const buildUmd = async () => { + const { name, filename, moduleName, rootName } = parseName() + function onwarn(warning, warn) { + // ignore 'this' rewrite with 'undefined' warn + if (warning.code === 'THIS_IS_UNDEFINED') return + warn(warning) // this requires Rollup 0.46 + } + const configs: RollupOptions[] = [ + { + input: 'src/index.ts', + output: { + format: 'umd', + file: path.resolve(cwd, `dist/${filename}.umd.development.js`), + name: rootName, + sourcemap: true, + amd: { + id: name + } + }, + external: ['react', 'react-dom', 'react-is'], + plugins: [ + ignoreImport({ + extensions: ['.scss', '.css', '.less'], + body: 'export default undefined;' + }), + ...presets(), + createEnvPlugin() + ], + onwarn + }, + { + input: 'src/index.ts', + output: { + format: 'umd', + file: path.resolve(cwd, `dist/${filename}.umd.production.js`), + name: rootName, + sourcemap: true, + amd: { + id: name + } + }, + external: ['react', 'react-dom', 'react-is'], + plugins: [ + postcss({ + extract: path.resolve(cwd, `dist/${moduleName}.css`), + minimize: true, + sourceMap: true, + use: { + less: { + plugins: [new NpmImport({ prefix: '~' })], + javascriptEnabled: true + }, + sass: {}, + stylus: {} + } + }), + ...presets(), + terser(), + createEnvPlugin('production') + ], + onwarn + } + ] + if (builderConfigs.bundleDts) { + configs.push( + { + input: 'esm/index.d.ts', + output: { + format: 'es', + file: `dist/${filename}.d.ts` + }, + plugins: [dts()] + }, + { + input: 'esm/index.d.ts', + output: { + format: 'es', + file: `dist/${filename}.all.d.ts` + }, + plugins: [ + dts({ + respectExternal: true + }) + ] + } + ) + } + await buildAll(configs) +} diff --git a/scripts/build.ts b/scripts/build.ts new file mode 100644 index 0000000..b42e8f1 --- /dev/null +++ b/scripts/build.ts @@ -0,0 +1,9 @@ +import { buildLibrary } from './build-library' +// import { buildUmd } from './build-umd' + +async function build() { + await buildLibrary() + // await buildUmd() +} + +build() diff --git a/scripts/constants.ts b/scripts/constants.ts new file mode 100644 index 0000000..879db6e --- /dev/null +++ b/scripts/constants.ts @@ -0,0 +1,25 @@ +import fs from 'fs-extra' +import { glob } from 'glob' +import path from 'path' +import { getConfigs } from './shared' +import type { IBuilderConfig } from './types' + +export const cwd = process.cwd() + +export const entry = path.resolve(cwd, 'src/index.ts') + +const configs = getConfigs('builder.config') + +export const builderConfigs: IBuilderConfig = configs?.BuilderConfig ?? configs ?? {} + +export const templates = glob.sync(path.resolve(__dirname, '../templates/*')) + +let pkg: any = {} + +try { + pkg = fs.readJSONSync(path.resolve(cwd, 'package.json')) +} catch { + pkg = {} +} + +export { pkg } diff --git a/scripts/shared.ts b/scripts/shared.ts new file mode 100644 index 0000000..be3adc4 --- /dev/null +++ b/scripts/shared.ts @@ -0,0 +1,11 @@ +import path from 'path' +import { cwd } from './constants' + +export const getConfigs = (name: string) => { + try { + const module = require.resolve(path.resolve(cwd, name)) + return require(module) + } catch { + return {} as any + } +} diff --git a/scripts/types.ts b/scripts/types.ts new file mode 100644 index 0000000..0019a75 --- /dev/null +++ b/scripts/types.ts @@ -0,0 +1,11 @@ +export interface IBuilderConfig { + externals?: Record + //当前仓库核心依赖的三方组件库名称 + targetLibName?: string + //核心三方库cjs目录名 + targetLibCjsDir?: string + //核心三方库es目录名 + targetLibEsDir?: string + //是否打包全量类型文件 + bundleDts?: boolean +} diff --git a/tsconfig.jest.json b/tsconfig.jest.json index 330c126..563d3c5 100644 --- a/tsconfig.jest.json +++ b/tsconfig.jest.json @@ -8,7 +8,10 @@ "module": "commonjs", "target": "es5", "paths": { - "@formily/*": ["./packages/*/src"] + "@formily/antdv": ["packages/components/src"], + "@formily/antdv/esm/*": ["packages/components/src/*"], + "@formily/antdv/lib/*": ["packages/components/src/*"], + "@formily/antdv-*": ["packages/*/src"] } }, "exclude": ["./packages/*/esm", "./packages/*/lib"] diff --git a/tsconfig.json b/tsconfig.json index af0951e..9941531 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -14,9 +14,17 @@ "declaration": true, "experimentalDecorators": true, "downlevelIteration": true, + "noImplicitThis": true, "baseUrl": ".", "paths": { - "@formily/*": ["packages/*/src"] - } + "@formily/antdv": ["packages/components/src"], + "@formily/antdv/esm/*": ["packages/components/src/*"], + "@formily/antdv/lib/*": ["packages/components/src/*"], + "@formily/antdv-*": ["packages/*/src"] + }, + "types": ["vitest/globals", "vite/client"] + }, + "vueCompilerOptions": { + "target": 2.7 } } diff --git a/yarn.lock b/yarn.lock index 39dfa12..9226dd4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,874 +2,919 @@ # yarn lockfile v1 -"@ant-design/colors@^3.1.0": - version "3.2.2" - resolved "https://registry.yarnpkg.com/@ant-design/colors/-/colors-3.2.2.tgz#5ad43d619e911f3488ebac303d606e66a8423903" - integrity sha512-YKgNbG2dlzqMhA9NtI3/pbY16m3Yl/EeWBRa+lB1X1YaYxHrxNexiQYCLTWO/uDvAjLFMEDU+zR901waBtMtjQ== +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.npmmirror.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + +"@ampproject/remapping@^2.2.0": + version "2.2.1" + resolved "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== dependencies: - tinycolor2 "^1.4.1" + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" -"@ant-design/icons-vue@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@ant-design/icons-vue/-/icons-vue-2.0.0.tgz#0357f5010a404e9f34a87a4b41b2a08df691dbce" - integrity sha512-2c0QQE5hL4N48k5NkPG5sdpMl9YnvyNhf0U7YkdZYDlLnspoRU7vIA0UK9eHBs6OpFLcJB6o8eJrIl2ajBskPg== +"@ant-design/colors@^6.0.0": + version "6.0.0" + resolved "https://registry.npmmirror.com/@ant-design/colors/-/colors-6.0.0.tgz#9b9366257cffcc47db42b9d0203bb592c13c0298" + integrity sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ== dependencies: - "@ant-design/colors" "^3.1.0" - babel-runtime "^6.26.0" + "@ctrl/tinycolor" "^3.4.0" -"@ant-design/icons@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-2.1.1.tgz#7b9c08dffd4f5d41db667d9dbe5e0107d0bd9a4a" - integrity sha512-jCH+k2Vjlno4YWl6g535nHR09PwCEmTBKAG6VqF+rhkrSPRLfgpU2maagwbZPLjaHuU5Jd1DFQ2KJpQuI6uG8w== - -"@babel/code-frame@7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" - integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== - dependencies: - "@babel/highlight" "^7.10.4" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" - integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA== - dependencies: - "@babel/highlight" "^7.16.0" - -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.0", "@babel/compat-data@^7.16.4": - version "7.16.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.4.tgz#081d6bbc336ec5c2435c6346b2ae1fb98b5ac68e" - integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q== - -"@babel/core@^7.1.0", "@babel/core@^7.11.0", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.4": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.5.tgz#924aa9e1ae56e1e55f7184c8bf073a50d8677f5c" - integrity sha512-wUcenlLzuWMZ9Zt8S0KmFwGlH6QKRh3vsm/dhDA3CHkiTA45YuG1XkHRcNRl73EFPXDp/d5kVOU0/y7x2w6OaQ== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/generator" "^7.16.5" - "@babel/helper-compilation-targets" "^7.16.3" - "@babel/helper-module-transforms" "^7.16.5" - "@babel/helpers" "^7.16.5" - "@babel/parser" "^7.16.5" - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.5" - "@babel/types" "^7.16.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" +"@ant-design/icons-svg@^4.2.1": + version "4.3.1" + resolved "https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.3.1.tgz#4b2f65a17d4d32b526baa6414aca2117382bf8da" + integrity sha512-4QBZg8ccyC6LPIRii7A0bZUk3+lEDCLnhB+FVsflGdcWPPmV+j3fire4AwwoqHV/BibgvBmR9ZIo4s867smv+g== -"@babel/generator@^7.16.5", "@babel/generator@^7.7.2": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.5.tgz#26e1192eb8f78e0a3acaf3eede3c6fc96d22bedf" - integrity sha512-kIvCdjZqcdKqoDbVVdt5R99icaRtrtYhYK/xux5qiWCBmfdvEYMFZ68QCrpE5cbFM1JsuArUNs1ZkuKtTtUcZA== +"@ant-design/icons-vue@^6.1.0": + version "6.1.0" + resolved "https://registry.npmmirror.com/@ant-design/icons-vue/-/icons-vue-6.1.0.tgz#f9324fdc0eb4cea943cf626d2bf3db9a4ff4c074" + integrity sha512-EX6bYm56V+ZrKN7+3MT/ubDkvJ5rK/O2t380WFRflDcVFgsvl3NLH7Wxeau6R8DbrO5jWR6DSTC3B6gYFp77AA== dependencies: - "@babel/types" "^7.16.0" - jsesc "^2.5.1" - source-map "^0.5.0" + "@ant-design/colors" "^6.0.0" + "@ant-design/icons-svg" "^4.2.1" -"@babel/helper-annotate-as-pure@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz#9a1f0ebcda53d9a2d00108c4ceace6a5d5f1f08d" - integrity sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg== - dependencies: - "@babel/types" "^7.16.0" +"@ant-design/icons-vue@^7.0.0": + version "7.0.0" + resolved "https://registry.npmmirror.com/@ant-design/icons-vue/-/icons-vue-7.0.0.tgz#0ad1ecd037d66d86391460872eb2ae59c69b6ee7" + integrity sha512-VEb0r/Jqo2qi9olfBephYlyxbmhQVZ5+tJ3Zw5VaBd5h0wV1zdjGt5mJxSbRRs2mnnOWpsa1s4PeoLwNnkLV/w== + dependencies: + "@ant-design/colors" "^6.0.0" + "@ant-design/icons-svg" "^4.2.1" + +"@babel/cli@^7.12.16": + version "7.23.0" + resolved "https://registry.npmmirror.com/@babel/cli/-/cli-7.23.0.tgz#1d7f37c44d4117c67df46749e0c86e11a58cc64b" + integrity sha512-17E1oSkGk2IwNILM4jtfAvgjt+ohmpfBky8aLerUfYZhiPNg7ca+CRCxZn8QDxwNhV/upsc2VHBCqGFIR+iBfA== + dependencies: + "@jridgewell/trace-mapping" "^0.3.17" + commander "^4.0.1" + convert-source-map "^2.0.0" + fs-readdir-recursive "^1.1.0" + glob "^7.2.0" + make-dir "^2.1.0" + slash "^2.0.0" + optionalDependencies: + "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" + chokidar "^3.4.0" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.5.tgz#a8429d064dce8207194b8bf05a70a9ea828746af" - integrity sha512-3JEA9G5dmmnIWdzaT9d0NmFRgYnWUThLsDaL7982H0XqqWr56lRrsmwheXFMjR+TMl7QMBb6mzy9kvgr1lRLUA== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.22.5": + version "7.22.13" + resolved "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" + integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== dependencies: - "@babel/helper-explode-assignable-expression" "^7.16.0" - "@babel/types" "^7.16.0" + "@babel/highlight" "^7.22.13" + chalk "^2.4.2" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.3", "@babel/helper-compilation-targets@^7.9.6": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz#5b480cd13f68363df6ec4dc8ac8e2da11363cbf0" - integrity sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA== - dependencies: - "@babel/compat-data" "^7.16.0" - "@babel/helper-validator-option" "^7.14.5" - browserslist "^4.17.5" - semver "^6.3.0" +"@babel/compat-data@^7.22.20", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": + version "7.22.20" + resolved "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.22.20.tgz#8df6e96661209623f1975d66c35ffca66f3306d0" + integrity sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw== + +"@babel/core@^7.12.16", "@babel/core@^7.17.9", "@babel/core@^7.22.10": + version "7.23.0" + resolved "https://registry.npmmirror.com/@babel/core/-/core-7.23.0.tgz#f8259ae0e52a123eb40f552551e647b506a94d83" + integrity sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.0" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-module-transforms" "^7.23.0" + "@babel/helpers" "^7.23.0" + "@babel/parser" "^7.23.0" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.0" + "@babel/types" "^7.23.0" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/eslint-parser@^7.12.16": + version "7.22.15" + resolved "https://registry.npmmirror.com/@babel/eslint-parser/-/eslint-parser-7.22.15.tgz#263f059c476e29ca4972481a17b8b660cb025a34" + integrity sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg== + dependencies: + "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" + eslint-visitor-keys "^2.1.0" + semver "^6.3.1" + +"@babel/generator@^7.23.0": + version "7.23.0" + resolved "https://registry.npmmirror.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" + integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== + dependencies: + "@babel/types" "^7.23.0" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" -"@babel/helper-create-class-features-plugin@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.5.tgz#5d1bcd096792c1ebec6249eebc6358eec55d0cad" - integrity sha512-NEohnYA7mkB8L5JhU7BLwcBdU3j83IziR9aseMueWGeAjblbul3zzb8UvJ3a1zuBiqCMObzCJHFqKIQE6hTVmg== +"@babel/helper-annotate-as-pure@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" + integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-environment-visitor" "^7.16.5" - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-member-expression-to-functions" "^7.16.5" - "@babel/helper-optimise-call-expression" "^7.16.0" - "@babel/helper-replace-supers" "^7.16.5" - "@babel/helper-split-export-declaration" "^7.16.0" + "@babel/types" "^7.22.5" -"@babel/helper-create-regexp-features-plugin@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.0.tgz#06b2348ce37fccc4f5e18dcd8d75053f2a7c44ff" - integrity sha512-3DyG0zAFAZKcOp7aVr33ddwkxJ0Z0Jr5V99y3I690eYLpukJsJvAbzTy1ewoCqsML8SbIrjH14Jc/nSQ4TvNPA== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": + version "7.22.15" + resolved "https://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" + integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - regexpu-core "^4.7.1" + "@babel/types" "^7.22.15" -"@babel/helper-define-polyfill-provider@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz#c5b10cf4b324ff840140bb07e05b8564af2ae971" - integrity sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg== +"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6": + version "7.22.15" + resolved "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" + integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== + dependencies: + "@babel/compat-data" "^7.22.9" + "@babel/helper-validator-option" "^7.22.15" + browserslist "^4.21.9" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.22.11", "@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.22.5": + version "7.22.15" + resolved "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4" + integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.5": + version "7.22.15" + resolved "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" + integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + regexpu-core "^5.3.1" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.4.2": + version "0.4.2" + resolved "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz#82c825cadeeeee7aad237618ebbe8fa1710015d7" + integrity sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw== dependencies: - "@babel/helper-compilation-targets" "^7.13.0" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/traverse" "^7.13.0" + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" debug "^4.1.1" lodash.debounce "^4.0.8" resolve "^1.14.2" - semver "^6.1.2" - -"@babel/helper-environment-visitor@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.5.tgz#f6a7f38b3c6d8b07c88faea083c46c09ef5451b8" - integrity sha512-ODQyc5AnxmZWm/R2W7fzhamOk1ey8gSguo5SGvF0zcB3uUzRpTRmM/jmLSm9bDMyPlvbyJ+PwPEK0BWIoZ9wjg== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-explode-assignable-expression@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz#753017337a15f46f9c09f674cff10cee9b9d7778" - integrity sha512-Hk2SLxC9ZbcOhLpg/yMznzJ11W++lg5GMbxt1ev6TXUiJB0N42KPC+7w8a+eWGuqDnUYuwStJoZHM7RgmIOaGQ== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-function-name@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz#b7dd0797d00bbfee4f07e9c4ea5b0e30c8bb1481" - integrity sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog== - dependencies: - "@babel/helper-get-function-arity" "^7.16.0" - "@babel/template" "^7.16.0" - "@babel/types" "^7.16.0" -"@babel/helper-get-function-arity@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz#0088c7486b29a9cb5d948b1a1de46db66e089cfa" - integrity sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-hoist-variables@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz#4c9023c2f1def7e28ff46fc1dbcd36a39beaa81a" - integrity sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-member-expression-to-functions@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.5.tgz#1bc9f7e87354e86f8879c67b316cb03d3dc2caab" - integrity sha512-7fecSXq7ZrLE+TWshbGT+HyCLkxloWNhTbU2QM1NTI/tDqyf0oZiMcEfYtDuUDCo528EOlt39G1rftea4bRZIw== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.0", "@babel/helper-module-imports@^7.8.3": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz#90538e60b672ecf1b448f5f4f5433d37e79a3ec3" - integrity sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-module-transforms@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.5.tgz#530ebf6ea87b500f60840578515adda2af470a29" - integrity sha512-CkvMxgV4ZyyioElFwcuWnDCcNIeyqTkCm9BxXZi73RR1ozqlpboqsbGUNvRTflgZtFbbJ1v5Emvm+lkjMYY/LQ== - dependencies: - "@babel/helper-environment-visitor" "^7.16.5" - "@babel/helper-module-imports" "^7.16.0" - "@babel/helper-simple-access" "^7.16.0" - "@babel/helper-split-export-declaration" "^7.16.0" - "@babel/helper-validator-identifier" "^7.15.7" - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.5" - "@babel/types" "^7.16.0" +"@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": + version "7.22.20" + resolved "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== -"@babel/helper-optimise-call-expression@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz#cecdb145d70c54096b1564f8e9f10cd7d193b338" - integrity sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw== +"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz#afe37a45f39fce44a3d50a7958129ea5b1a5c074" - integrity sha512-59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ== + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" -"@babel/helper-remap-async-to-generator@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.5.tgz#e706646dc4018942acb4b29f7e185bc246d65ac3" - integrity sha512-X+aAJldyxrOmN9v3FKp+Hu1NO69VWgYgDGq6YDykwRPzxs5f2N+X988CBXS7EQahDU+Vpet5QYMqLk+nsp+Qxw== +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-wrap-function" "^7.16.5" - "@babel/types" "^7.16.0" + "@babel/types" "^7.22.5" -"@babel/helper-replace-supers@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.5.tgz#96d3988bd0ab0a2d22c88c6198c3d3234ca25326" - integrity sha512-ao3seGVa/FZCMCCNDuBcqnBFSbdr8N2EW35mzojx3TwfIbdPmNK+JV6+2d5bR0Z71W5ocLnQp9en/cTF7pBJiQ== +"@babel/helper-member-expression-to-functions@^7.22.15": + version "7.23.0" + resolved "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" + integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== dependencies: - "@babel/helper-environment-visitor" "^7.16.5" - "@babel/helper-member-expression-to-functions" "^7.16.5" - "@babel/helper-optimise-call-expression" "^7.16.0" - "@babel/traverse" "^7.16.5" - "@babel/types" "^7.16.0" + "@babel/types" "^7.23.0" + +"@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5": + version "7.22.15" + resolved "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== + dependencies: + "@babel/types" "^7.22.15" -"@babel/helper-simple-access@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz#21d6a27620e383e37534cf6c10bba019a6f90517" - integrity sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw== +"@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.23.0": + version "7.23.0" + resolved "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz#3ec246457f6c842c0aee62a01f60739906f7047e" + integrity sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.20" + +"@babel/helper-optimise-call-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" + integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== + +"@babel/helper-remap-async-to-generator@^7.22.5", "@babel/helper-remap-async-to-generator@^7.22.9": + version "7.22.20" + resolved "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" + integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-wrap-function" "^7.22.20" + +"@babel/helper-replace-supers@^7.22.5", "@babel/helper-replace-supers@^7.22.9": + version "7.22.20" + resolved "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" + integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-optimise-call-expression" "^7.22.5" + +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" + integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== + +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + +"@babel/helper-validator-option@^7.22.15": + version "7.22.15" + resolved "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" + integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== + +"@babel/helper-wrap-function@^7.22.20": + version "7.22.20" + resolved "https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569" + integrity sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw== + dependencies: + "@babel/helper-function-name" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/types" "^7.22.19" + +"@babel/helpers@^7.23.0": + version "7.23.1" + resolved "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.23.1.tgz#44e981e8ce2b9e99f8f0b703f3326a4636c16d15" + integrity sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA== dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-skip-transparent-expression-wrappers@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" - integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-split-export-declaration@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz#29672f43663e936df370aaeb22beddb3baec7438" - integrity sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-validator-identifier@^7.15.7": - version "7.15.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" - integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== - -"@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/helper-wrap-function@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.5.tgz#0158fca6f6d0889c3fee8a6ed6e5e07b9b54e41f" - integrity sha512-2J2pmLBqUqVdJw78U0KPNdeE2qeuIyKoG4mKV7wAq3mc4jJG282UgjZw4ZYDnqiWQuS3Y3IYdF/AQ6CpyBV3VA== - dependencies: - "@babel/helper-function-name" "^7.16.0" - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.5" - "@babel/types" "^7.16.0" - -"@babel/helpers@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.5.tgz#29a052d4b827846dd76ece16f565b9634c554ebd" - integrity sha512-TLgi6Lh71vvMZGEkFuIxzaPsyeYCHQ5jJOOX1f0xXn0uciFuE8cEk0wyBquMcCxBXZ5BJhE2aUB7pnWTD150Tw== - dependencies: - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.5" - "@babel/types" "^7.16.0" - -"@babel/highlight@^7.10.4", "@babel/highlight@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" - integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g== - dependencies: - "@babel/helper-validator-identifier" "^7.15.7" - chalk "^2.0.0" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.0" + "@babel/types" "^7.23.0" + +"@babel/highlight@^7.22.13": + version "7.22.20" + resolved "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" + integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.0", "@babel/parser@^7.16.5", "@babel/parser@^7.7.2": - version "7.16.6" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.6.tgz#8f194828193e8fa79166f34a4b4e52f3e769a314" - integrity sha512-Gr86ujcNuPDnNOY8mi383Hvi8IYrJVJYuf3XcuBM/Dgd+bINn/7tHqsj+tKkoreMbmGsFLsltI/JJd8fOFWGDQ== - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.2": - version "7.16.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz#2977fca9b212db153c195674e57cfab807733183" - integrity sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz#358972eaab006f5eb0826183b0c93cbcaf13e1e2" - integrity sha512-4tcFwwicpWTrpl9qjf7UsoosaArgImF85AxqCRZlgc3IQDvkUHjJpruXAL58Wmj+T6fypWTC/BakfEkwIL/pwA== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-proposal-optional-chaining" "^7.16.0" - -"@babel/plugin-proposal-async-generator-functions@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.5.tgz#fd3bd7e0d98404a3d4cbca15a72d533f8c9a2f67" - integrity sha512-C/FX+3HNLV6sz7AqbTQqEo1L9/kfrKjxcVtgyBCmvIgOjvuBVUWooDoi7trsLxOzCEo5FccjRvKHkfDsJFZlfA== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/helper-remap-async-to-generator" "^7.16.5" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-proposal-class-properties@^7.16.5", "@babel/plugin-proposal-class-properties@^7.8.3": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.5.tgz#3269f44b89122110f6339806e05d43d84106468a" - integrity sha512-pJD3HjgRv83s5dv1sTnDbZOaTjghKEz8KUn1Kbh2eAIRhGuyQ1XSeI4xVXU3UlIEVA3DAyIdxqT1eRn7Wcn55A== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" - -"@babel/plugin-proposal-class-static-block@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.5.tgz#df58ab015a7d3b0963aafc8f20792dcd834952a9" - integrity sha512-EEFzuLZcm/rNJ8Q5krK+FRKdVkd6FjfzT9tuSZql9sQn64K0hHA2KLJ0DqVot9/iV6+SsuadC5yI39zWnm+nmQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-proposal-decorators@^7.8.3": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.16.5.tgz#4617420d3685078dfab8f68f859dca1448bbb3c7" - integrity sha512-XAiZll5oCdp2Dd2RbXA3LVPlFyIRhhcQy+G34p9ePpl6mjFkbqHAYHovyw2j5mqUrlBf0/+MtOIJ3JGYtz8qaw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-syntax-decorators" "^7.16.5" - -"@babel/plugin-proposal-dynamic-import@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.5.tgz#2e0d19d5702db4dcb9bc846200ca02f2e9d60e9e" - integrity sha512-P05/SJZTTvHz79LNYTF8ff5xXge0kk5sIIWAypcWgX4BTRUgyHc8wRxJ/Hk+mU0KXldgOOslKaeqnhthcDJCJQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-namespace-from@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.5.tgz#3b4dd28378d1da2fea33e97b9f25d1c2f5bf1ac9" - integrity sha512-i+sltzEShH1vsVydvNaTRsgvq2vZsfyrd7K7vPLUU/KgS0D5yZMe6uipM0+izminnkKrEfdUnz7CxMRb6oHZWw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" +"@babel/parser@^7.20.15", "@babel/parser@^7.21.3", "@babel/parser@^7.22.15", "@babel/parser@^7.23.0": + version "7.23.0" + resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" + integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== -"@babel/plugin-proposal-json-strings@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.5.tgz#1e726930fca139caab6b084d232a9270d9d16f9c" - integrity sha512-QQJueTFa0y9E4qHANqIvMsuxM/qcLQmKttBACtPCQzGUEizsXDACGonlPiSwynHfOa3vNw0FPMVvQzbuXwh4SQ== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.15": + version "7.22.15" + resolved "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz#02dc8a03f613ed5fdc29fb2f728397c78146c962" + integrity sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-proposal-logical-assignment-operators@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.5.tgz#df1f2e4b5a0ec07abf061d2c18e53abc237d3ef5" - integrity sha512-xqibl7ISO2vjuQM+MzR3rkd0zfNWltk7n9QhaD8ghMmMceVguYrNDt7MikRyj4J4v3QehpnrU8RYLnC7z/gZLA== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.15": + version "7.22.15" + resolved "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz#2aeb91d337d4e1a1e7ce85b76a37f5301781200f" + integrity sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.22.15" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.5.tgz#652555bfeeeee2d2104058c6225dc6f75e2d0f07" - integrity sha512-YwMsTp/oOviSBhrjwi0vzCUycseCYwoXnLiXIL3YNjHSMBHicGTz7GjVU/IGgz4DtOEXBdCNG72pvCX22ehfqg== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" + integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.5.tgz#edcb6379b6cf4570be64c45965d8da7a2debf039" - integrity sha512-DvB9l/TcsCRvsIV9v4jxR/jVP45cslTVC0PMVHvaJhhNuhn2Y1SOhCSFlPK777qLB5wb8rVDaNoqMTyOqtY5Iw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.5.tgz#f30f80dacf7bc1404bf67f99c8d9c01665e830ad" - integrity sha512-UEd6KpChoyPhCoE840KRHOlGhEZFutdPDMGj+0I56yuTTOaT51GzmnEl/0uT41fB/vD2nT+Pci2KjezyE3HmUw== - dependencies: - "@babel/compat-data" "^7.16.4" - "@babel/helper-compilation-targets" "^7.16.3" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.16.5" - -"@babel/plugin-proposal-optional-catch-binding@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.5.tgz#1a5405765cf589a11a33a1fd75b2baef7d48b74e" - integrity sha512-ihCMxY1Iljmx4bWy/PIMJGXN4NS4oUj1MKynwO07kiKms23pNvIn1DMB92DNB2R0EA882sw0VXIelYGdtF7xEQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.16.0", "@babel/plugin-proposal-optional-chaining@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.5.tgz#a5fa61056194d5059366c0009cb9a9e66ed75c1f" - integrity sha512-kzdHgnaXRonttiTfKYnSVafbWngPPr2qKw9BWYBESl91W54e+9R5pP70LtWxV56g0f05f/SQrwHYkfvbwcdQ/A== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-private-methods@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.5.tgz#2086f7d78c1b0c712d49b5c3fbc2d1ca21a7ee12" - integrity sha512-+yFMO4BGT3sgzXo+lrq7orX5mAZt57DwUK6seqII6AcJnJOIhBJ8pzKH47/ql/d426uQ7YhN8DpUFirQzqYSUA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" - -"@babel/plugin-proposal-private-property-in-object@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.5.tgz#a42d4b56005db3d405b12841309dbca647e7a21b" - integrity sha512-+YGh5Wbw0NH3y/E5YMu6ci5qTDmAEVNoZ3I54aB6nVEOZ5BQ7QJlwKq5pYVucQilMByGn/bvX0af+uNaPRCabA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-create-class-features-plugin" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - -"@babel/plugin-proposal-unicode-property-regex@^7.16.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.5.tgz#35fe753afa7c572f322bd068ff3377bde0f37080" - integrity sha512-s5sKtlKQyFSatt781HQwv1hoM5BQ9qRH30r+dK56OLDsHmV74mzwJNX7R1yMuE7VZKG5O6q/gmOGSAO6ikTudg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.16.5" +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": +"@babel/plugin-syntax-class-properties@^7.12.13": version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-class-static-block@^7.14.5": version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-decorators@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.16.5.tgz#8d397dee482716a79f1a22314f0b4770a5b67427" - integrity sha512-3CbYTXfflvyy8O819uhZcZSMedZG4J8yS/NLTc/8T24M9ke1GssTGvg8VZu3Yn2LU5IyQSv1CmPq0a9JWHXJwg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-export-namespace-from@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-import-meta@^7.8.3": +"@babel/plugin-syntax-import-assertions@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz#07d252e2aa0bc6125567f742cd58619cb14dce98" + integrity sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-attributes@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz#ab840248d834410b829f569f5262b9e517555ecb" + integrity sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-meta@^7.10.4": version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.8.3": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.5.tgz#bf255d252f78bc8b77a17cadc37d1aa5b8ed4394" - integrity sha512-42OGssv9NPk4QHKVgIHlzeLgPOW5rGgfV5jzG90AhcXXIv6hu/eqj63w4VgvRxdvZY3AlYeDgPiSJ3BqAd1Y6Q== +"@babel/plugin-syntax-jsx@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" + integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": +"@babel/plugin-syntax-numeric-separator@^7.10.4": version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-catch-binding@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-chaining@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-private-property-in-object@^7.14.5": version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": +"@babel/plugin-syntax-top-level-await@^7.14.5": version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.7.2": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.5.tgz#f47a33e4eee38554f00fb6b2f894fa1f5649b0b3" - integrity sha512-/d4//lZ1Vqb4mZ5xTep3dDK888j7BGM/iKqBmndBaoYAFPlPKrGU608VVBz5JeyAb6YQDjRu1UKqj86UhwWVgw== +"@babel/plugin-syntax-typescript@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz#aac8d383b062c5072c647a31ef990c1d0af90272" + integrity sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.npmmirror.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz#e5ba566d0c58a5b2ba2a8b795450641950b71958" + integrity sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-arrow-functions@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.5.tgz#04c18944dd55397b521d9d7511e791acea7acf2d" - integrity sha512-8bTHiiZyMOyfZFULjsCnYOWG059FVMes0iljEHSfARhNgFfpsqE92OrCffv3veSw9rwMkYcFe9bj0ZoXU2IGtQ== +"@babel/plugin-transform-async-generator-functions@^7.22.15": + version "7.22.15" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.15.tgz#3b153af4a6b779f340d5b80d3f634f55820aefa3" + integrity sha512-jBm1Es25Y+tVoTi5rfd5t1KLmL8ogLKpXszboWOTTtGFGz2RKnQe2yn7HbZ+kb/B8N0FVSGQo874NSlOU1T4+w== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.9" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-transform-async-to-generator@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz#c7a85f44e46f8952f6d27fe57c2ed3cc084c3775" + integrity sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ== + dependencies: + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.5" -"@babel/plugin-transform-async-to-generator@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.5.tgz#89c9b501e65bb14c4579a6ce9563f859de9b34e4" - integrity sha512-TMXgfioJnkXU+XRoj7P2ED7rUm5jbnDWwlCuFVTpQboMfbSya5WrmubNBAMlk7KXvywpo8rd8WuYZkis1o2H8w== +"@babel/plugin-transform-block-scoped-functions@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024" + integrity sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA== dependencies: - "@babel/helper-module-imports" "^7.16.0" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/helper-remap-async-to-generator" "^7.16.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoped-functions@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.5.tgz#af087494e1c387574260b7ee9b58cdb5a4e9b0b0" - integrity sha512-BxmIyKLjUGksJ99+hJyL/HIxLIGnLKtw772zYDER7UuycDZ+Xvzs98ZQw6NGgM2ss4/hlFAaGiZmMNKvValEjw== +"@babel/plugin-transform-block-scoping@^7.22.15": + version "7.23.0" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz#8744d02c6c264d82e1a4bc5d2d501fd8aff6f022" + integrity sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoping@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.5.tgz#b91f254fe53e210eabe4dd0c40f71c0ed253c5e7" - integrity sha512-JxjSPNZSiOtmxjX7PBRBeRJTUKTyJ607YUYeT0QJCNdsedOe+/rXITjP08eG8xUpsLfPirgzdCFN+h0w6RI+pQ== +"@babel/plugin-transform-class-properties@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz#97a56e31ad8c9dc06a0b3710ce7803d5a48cca77" + integrity sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-classes@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.5.tgz#6acf2ec7adb50fb2f3194dcd2909dbd056dcf216" - integrity sha512-DzJ1vYf/7TaCYy57J3SJ9rV+JEuvmlnvvyvYKFbk5u46oQbBvuB9/0w+YsVsxkOv8zVWKpDmUoj4T5ILHoXevA== +"@babel/plugin-transform-class-static-block@^7.22.11": + version "7.22.11" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz#dc8cc6e498f55692ac6b4b89e56d87cec766c974" + integrity sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-environment-visitor" "^7.16.5" - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-optimise-call-expression" "^7.16.0" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/helper-replace-supers" "^7.16.5" - "@babel/helper-split-export-declaration" "^7.16.0" + "@babel/helper-create-class-features-plugin" "^7.22.11" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.22.15": + version "7.22.15" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz#aaf4753aee262a232bbc95451b4bdf9599c65a0b" + integrity sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.9" + "@babel/helper-split-export-declaration" "^7.22.6" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.5.tgz#2af91ebf0cceccfcc701281ada7cfba40a9b322a" - integrity sha512-n1+O7xtU5lSLraRzX88CNcpl7vtGdPakKzww74bVwpAIRgz9JVLJJpOLb0uYqcOaXVM0TL6X0RVeIJGD2CnCkg== +"@babel/plugin-transform-computed-properties@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz#cd1e994bf9f316bd1c2dafcd02063ec261bb3869" + integrity sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/template" "^7.22.5" + +"@babel/plugin-transform-destructuring@^7.22.15": + version "7.23.0" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz#6447aa686be48b32eaf65a73e0e2c0bd010a266c" + integrity sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-dotall-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" + integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-duplicate-keys@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz#b6e6428d9416f5f0bba19c70d1e6e7e0b88ab285" + integrity sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-dynamic-import@^7.22.11": + version "7.22.11" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz#2c7722d2a5c01839eaf31518c6ff96d408e447aa" + integrity sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-transform-destructuring@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.5.tgz#89ebc87499ac4a81b897af53bb5d3eed261bd568" - integrity sha512-GuRVAsjq+c9YPK6NeTkRLWyQskDC099XkBSVO+6QzbnOnH2d/4mBVXYStaPrZD3dFRfg00I6BFJ9Atsjfs8mlg== +"@babel/plugin-transform-exponentiation-operator@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz#402432ad544a1f9a480da865fda26be653e48f6a" + integrity sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dotall-regex@^7.16.5", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.5.tgz#b40739c00b6686820653536d6d143e311de67936" - integrity sha512-iQiEMt8Q4/5aRGHpGVK2Zc7a6mx7qEAO7qehgSug3SDImnuMzgmm/wtJALXaz25zUj1PmnNHtShjFgk4PDx4nw== +"@babel/plugin-transform-export-namespace-from@^7.22.11": + version "7.22.11" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz#b3c84c8f19880b6c7440108f8929caf6056db26c" + integrity sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-transform-duplicate-keys@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.5.tgz#2450f2742325412b746d7d005227f5e8973b512a" - integrity sha512-81tijpDg2a6I1Yhj4aWY1l3O1J4Cg/Pd7LfvuaH2VVInAkXtzibz9+zSPdUM1WvuUi128ksstAP0hM5w48vQgg== +"@babel/plugin-transform-for-of@^7.22.15": + version "7.22.15" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz#f64b4ccc3a4f131a996388fae7680b472b306b29" + integrity sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-exponentiation-operator@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.5.tgz#36e261fa1ab643cfaf30eeab38e00ed1a76081e2" - integrity sha512-12rba2HwemQPa7BLIKCzm1pT2/RuQHtSFHdNl41cFiC6oi4tcrp7gjB07pxQvFpcADojQywSjblQth6gJyE6CA== +"@babel/plugin-transform-function-name@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz#935189af68b01898e0d6d99658db6b164205c143" + integrity sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-compilation-targets" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-for-of@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.5.tgz#9b544059c6ca11d565457c0ff1f08e13ce225261" - integrity sha512-+DpCAJFPAvViR17PIMi9x2AE34dll5wNlXO43wagAX2YcRGgEVHCNFC4azG85b4YyyFarvkc/iD5NPrz4Oneqw== +"@babel/plugin-transform-json-strings@^7.22.11": + version "7.22.11" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz#689a34e1eed1928a40954e37f74509f48af67835" + integrity sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-transform-function-name@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.5.tgz#6896ebb6a5538a75d6a4086a277752f655a7bd15" - integrity sha512-Fuec/KPSpVLbGo6z1RPw4EE1X+z9gZk1uQmnYy7v4xr4TO9p41v1AoUuXEtyqAI7H+xNJYSICzRqZBhDEkd3kQ== +"@babel/plugin-transform-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz#e9341f4b5a167952576e23db8d435849b1dd7920" + integrity sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g== dependencies: - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-literals@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.5.tgz#af392b90e3edb2bd6dc316844cbfd6b9e009d320" - integrity sha512-B1j9C/IfvshnPcklsc93AVLTrNVa69iSqztylZH6qnmiAsDDOmmjEYqOm3Ts2lGSgTSywnBNiqC949VdD0/gfw== +"@babel/plugin-transform-logical-assignment-operators@^7.22.11": + version "7.22.11" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz#24c522a61688bde045b7d9bc3c2597a4d948fc9c" + integrity sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-transform-member-expression-literals@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.5.tgz#4bd6ecdc11932361631097b779ca5c7570146dd5" - integrity sha512-d57i3vPHWgIde/9Y8W/xSFUndhvhZN5Wu2TjRrN1MVz5KzdUihKnfDVlfP1U7mS5DNj/WHHhaE4/tTi4hIyHwQ== +"@babel/plugin-transform-member-expression-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz#4fcc9050eded981a468347dd374539ed3e058def" + integrity sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-amd@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.5.tgz#92c0a3e83f642cb7e75fada9ab497c12c2616527" - integrity sha512-oHI15S/hdJuSCfnwIz+4lm6wu/wBn7oJ8+QrkzPPwSFGXk8kgdI/AIKcbR/XnD1nQVMg/i6eNaXpszbGuwYDRQ== +"@babel/plugin-transform-modules-amd@^7.22.5": + version "7.23.0" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz#05b2bc43373faa6d30ca89214731f76f966f3b88" + integrity sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw== dependencies: - "@babel/helper-module-transforms" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-module-transforms" "^7.23.0" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-commonjs@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.5.tgz#4ee03b089536f076b2773196529d27c32b9d7bde" - integrity sha512-ABhUkxvoQyqhCWyb8xXtfwqNMJD7tx+irIRnUh6lmyFud7Jln1WzONXKlax1fg/ey178EXbs4bSGNd6PngO+SQ== +"@babel/plugin-transform-modules-commonjs@^7.22.15", "@babel/plugin-transform-modules-commonjs@^7.23.0": + version "7.23.0" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz#b3dba4757133b2762c00f4f94590cf6d52602481" + integrity sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ== dependencies: - "@babel/helper-module-transforms" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/helper-simple-access" "^7.16.0" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-module-transforms" "^7.23.0" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" -"@babel/plugin-transform-modules-systemjs@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.5.tgz#07078ba2e3cc94fbdd06836e355c246e98ad006b" - integrity sha512-53gmLdScNN28XpjEVIm7LbWnD/b/TpbwKbLk6KV4KqC9WyU6rq1jnNmVG6UgAdQZVVGZVoik3DqHNxk4/EvrjA== +"@babel/plugin-transform-modules-systemjs@^7.22.11": + version "7.23.0" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz#77591e126f3ff4132a40595a6cccd00a6b60d160" + integrity sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg== dependencies: - "@babel/helper-hoist-variables" "^7.16.0" - "@babel/helper-module-transforms" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/helper-validator-identifier" "^7.15.7" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-module-transforms" "^7.23.0" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" -"@babel/plugin-transform-modules-umd@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.5.tgz#caa9c53d636fb4e3c99fd35a4c9ba5e5cd7e002e" - integrity sha512-qTFnpxHMoenNHkS3VoWRdwrcJ3FhX567GvDA3hRZKF0Dj8Fmg0UzySZp3AP2mShl/bzcywb/UWAMQIjA1bhXvw== +"@babel/plugin-transform-modules-umd@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz#4694ae40a87b1745e3775b6a7fe96400315d4f98" + integrity sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ== dependencies: - "@babel/helper-module-transforms" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-named-capturing-groups-regex@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.5.tgz#4afd8cdee377ce3568f4e8a9ee67539b69886a3c" - integrity sha512-/wqGDgvFUeKELW6ex6QB7dLVRkd5ehjw34tpXu1nhKC0sFfmaLabIswnpf8JgDyV2NeDmZiwoOb0rAmxciNfjA== +"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" + integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.0" + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-new-target@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.5.tgz#759ea9d6fbbc20796056a5d89d13977626384416" - integrity sha512-ZaIrnXF08ZC8jnKR4/5g7YakGVL6go6V9ql6Jl3ecO8PQaQqFE74CuM384kezju7Z9nGCCA20BqZaR1tJ/WvHg== +"@babel/plugin-transform-new-target@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz#1b248acea54ce44ea06dfd37247ba089fcf9758d" + integrity sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-object-super@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.5.tgz#8ccd9a1bcd3e7732ff8aa1702d067d8cd70ce380" - integrity sha512-tded+yZEXuxt9Jdtkc1RraW1zMF/GalVxaVVxh41IYwirdRgyAxxxCKZ9XB7LxZqmsjfjALxupNE1MIz9KH+Zg== +"@babel/plugin-transform-nullish-coalescing-operator@^7.22.11": + version "7.22.11" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz#debef6c8ba795f5ac67cd861a81b744c5d38d9fc" + integrity sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/helper-replace-supers" "^7.16.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-transform-parameters@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.5.tgz#4fc74b18a89638bd90aeec44a11793ecbe031dde" - integrity sha512-B3O6AL5oPop1jAVg8CV+haeUte9oFuY85zu0jwnRNZZi3tVAbJriu5tag/oaO2kGaQM/7q7aGPBlTI5/sr9enA== +"@babel/plugin-transform-numeric-separator@^7.22.11": + version "7.22.11" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz#498d77dc45a6c6db74bb829c02a01c1d719cbfbd" + integrity sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-property-literals@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.5.tgz#58f1465a7202a2bb2e6b003905212dd7a79abe3f" - integrity sha512-+IRcVW71VdF9pEH/2R/Apab4a19LVvdVsr/gEeotH00vSDVlKD+XgfSIw+cgGWsjDB/ziqGv/pGoQZBIiQVXHg== +"@babel/plugin-transform-object-rest-spread@^7.22.15": + version "7.22.15" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz#21a95db166be59b91cde48775310c0df6e1da56f" + integrity sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/compat-data" "^7.22.9" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.22.15" -"@babel/plugin-transform-regenerator@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.5.tgz#704cc6d8dd3dd4758267621ab7b36375238cef13" - integrity sha512-2z+it2eVWU8TtQQRauvGUqZwLy4+7rTfo6wO4npr+fvvN1SW30ZF3O/ZRCNmTuu4F5MIP8OJhXAhRV5QMJOuYg== - dependencies: - regenerator-transform "^0.14.2" +"@babel/plugin-transform-object-super@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c" + integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.5" -"@babel/plugin-transform-reserved-words@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.5.tgz#db95e98799675e193dc2b47d3e72a7c0651d0c30" - integrity sha512-aIB16u8lNcf7drkhXJRoggOxSTUAuihTSTfAcpynowGJOZiGf+Yvi7RuTwFzVYSYPmWyARsPqUGoZWWWxLiknw== +"@babel/plugin-transform-optional-catch-binding@^7.22.11": + version "7.22.11" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz#461cc4f578a127bb055527b3e77404cad38c08e0" + integrity sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-runtime@^7.11.0": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.5.tgz#0cc3f01d69f299d5a42cd9ec43b92ea7a777b8db" - integrity sha512-gxpfS8XQWDbQ8oP5NcmpXxtEgCJkbO+W9VhZlOhr0xPyVaRjAQPOv7ZDj9fg0d5s9+NiVvMCE6gbkEkcsxwGRw== +"@babel/plugin-transform-optional-chaining@^7.22.15": + version "7.23.0" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz#73ff5fc1cf98f542f09f29c0631647d8ad0be158" + integrity sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g== dependencies: - "@babel/helper-module-imports" "^7.16.0" - "@babel/helper-plugin-utils" "^7.16.5" - babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.4.0" - babel-plugin-polyfill-regenerator "^0.3.0" - semver "^6.3.0" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-transform-shorthand-properties@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.5.tgz#ccb60b1a23b799f5b9a14d97c5bc81025ffd96d7" - integrity sha512-ZbuWVcY+MAXJuuW7qDoCwoxDUNClfZxoo7/4swVbOW1s/qYLOMHlm9YRWMsxMFuLs44eXsv4op1vAaBaBaDMVg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - -"@babel/plugin-transform-spread@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.5.tgz#912b06cff482c233025d3e69cf56d3e8fa166c29" - integrity sha512-5d6l/cnG7Lw4tGHEoga4xSkYp1euP7LAtrah1h1PgJ3JY7yNsjybsxQAnVK4JbtReZ/8z6ASVmd3QhYYKLaKZw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - -"@babel/plugin-transform-sticky-regex@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.5.tgz#593579bb2b5a8adfbe02cb43823275d9098f75f9" - integrity sha512-usYsuO1ID2LXxzuUxifgWtJemP7wL2uZtyrTVM4PKqsmJycdS4U4mGovL5xXkfUheds10Dd2PjoQLXw6zCsCbg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - -"@babel/plugin-transform-template-literals@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.5.tgz#343651385fd9923f5aa2275ca352c5d9183e1773" - integrity sha512-gnyKy9RyFhkovex4BjKWL3BVYzUDG6zC0gba7VMLbQoDuqMfJ1SDXs8k/XK41Mmt1Hyp4qNAvGFb9hKzdCqBRQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - -"@babel/plugin-transform-typeof-symbol@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.5.tgz#a1d1bf2c71573fe30965d0e4cd6a3291202e20ed" - integrity sha512-ldxCkW180qbrvyCVDzAUZqB0TAeF8W/vGJoRcaf75awm6By+PxfJKvuqVAnq8N9wz5Xa6mSpM19OfVKKVmGHSQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - -"@babel/plugin-transform-unicode-escapes@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.5.tgz#80507c225af49b4f4ee647e2a0ce53d2eeff9e85" - integrity sha512-shiCBHTIIChGLdyojsKQjoAyB8MBwat25lKM7MJjbe1hE0bgIppD+LX9afr41lLHOhqceqeWl4FkLp+Bgn9o1Q== - dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - -"@babel/plugin-transform-unicode-regex@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.5.tgz#ac84d6a1def947d71ffb832426aa53b83d7ed49e" - integrity sha512-GTJ4IW012tiPEMMubd7sD07iU9O/LOo8Q/oU4xNhcaq0Xn8+6TcUQaHtC8YxySo1T+ErQ8RaWogIEeFhKGNPzw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.16.5" - -"@babel/preset-env@^7.11.0": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.5.tgz#2e94d922f4a890979af04ffeb6a6b4e44ba90847" - integrity sha512-MiJJW5pwsktG61NDxpZ4oJ1CKxM1ncam9bzRtx9g40/WkLRkxFP6mhpkYV0/DxcciqoiHicx291+eUQrXb/SfQ== - dependencies: - "@babel/compat-data" "^7.16.4" - "@babel/helper-compilation-targets" "^7.16.3" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/helper-validator-option" "^7.14.5" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.2" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.0" - "@babel/plugin-proposal-async-generator-functions" "^7.16.5" - "@babel/plugin-proposal-class-properties" "^7.16.5" - "@babel/plugin-proposal-class-static-block" "^7.16.5" - "@babel/plugin-proposal-dynamic-import" "^7.16.5" - "@babel/plugin-proposal-export-namespace-from" "^7.16.5" - "@babel/plugin-proposal-json-strings" "^7.16.5" - "@babel/plugin-proposal-logical-assignment-operators" "^7.16.5" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.5" - "@babel/plugin-proposal-numeric-separator" "^7.16.5" - "@babel/plugin-proposal-object-rest-spread" "^7.16.5" - "@babel/plugin-proposal-optional-catch-binding" "^7.16.5" - "@babel/plugin-proposal-optional-chaining" "^7.16.5" - "@babel/plugin-proposal-private-methods" "^7.16.5" - "@babel/plugin-proposal-private-property-in-object" "^7.16.5" - "@babel/plugin-proposal-unicode-property-regex" "^7.16.5" +"@babel/plugin-transform-parameters@^7.22.15": + version "7.22.15" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz#719ca82a01d177af358df64a514d64c2e3edb114" + integrity sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-private-methods@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz#21c8af791f76674420a147ae62e9935d790f8722" + integrity sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-private-property-in-object@^7.22.11": + version "7.22.11" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz#ad45c4fc440e9cb84c718ed0906d96cf40f9a4e1" + integrity sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.11" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz#b5ddabd73a4f7f26cd0e20f5db48290b88732766" + integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-regenerator@^7.22.10": + version "7.22.10" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz#8ceef3bd7375c4db7652878b0241b2be5d0c3cca" + integrity sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + regenerator-transform "^0.15.2" + +"@babel/plugin-transform-reserved-words@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz#832cd35b81c287c4bcd09ce03e22199641f964fb" + integrity sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-runtime@^7.22.4": + version "7.22.15" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.15.tgz#3a625c4c05a39e932d7d34f5d4895cdd0172fdc9" + integrity sha512-tEVLhk8NRZSmwQ0DJtxxhTrCht1HVo8VaMzYT4w6lwyKBuHsgoioAUA7/6eT2fRfc5/23fuGdlwIxXhRVgWr4g== + dependencies: + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + babel-plugin-polyfill-corejs2 "^0.4.5" + babel-plugin-polyfill-corejs3 "^0.8.3" + babel-plugin-polyfill-regenerator "^0.5.2" + semver "^6.3.1" + +"@babel/plugin-transform-shorthand-properties@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624" + integrity sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-spread@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz#6487fd29f229c95e284ba6c98d65eafb893fea6b" + integrity sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + +"@babel/plugin-transform-sticky-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz#295aba1595bfc8197abd02eae5fc288c0deb26aa" + integrity sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-template-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz#8f38cf291e5f7a8e60e9f733193f0bcc10909bff" + integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-typeof-symbol@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz#5e2ba478da4b603af8673ff7c54f75a97b716b34" + integrity sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-typescript@^7.16.8", "@babel/plugin-transform-typescript@^7.21.3", "@babel/plugin-transform-typescript@^7.22.10", "@babel/plugin-transform-typescript@^7.22.15": + version "7.22.15" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz#15adef906451d86349eb4b8764865c960eb54127" + integrity sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-typescript" "^7.22.5" + +"@babel/plugin-transform-unicode-escapes@^7.22.10": + version "7.22.10" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz#c723f380f40a2b2f57a62df24c9005834c8616d9" + integrity sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-property-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz#098898f74d5c1e86660dc112057b2d11227f1c81" + integrity sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz#ce7e7bb3ef208c4ff67e02a22816656256d7a183" + integrity sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-sets-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.npmmirror.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz#77788060e511b708ffc7d42fdfbc5b37c3004e91" + integrity sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/preset-env@^7.11.16": + version "7.22.20" + resolved "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.22.20.tgz#de9e9b57e1127ce0a2f580831717f7fb677ceedb" + integrity sha512-11MY04gGC4kSzlPHRfvVkNAZhUxOvm7DCJ37hPDnUENwe06npjIRAfInEMTGSb4LZK5ZgDFkv5hw0lGebHeTyg== + dependencies: + "@babel/compat-data" "^7.22.20" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.15" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.15" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.22.5" + "@babel/plugin-syntax-import-attributes" "^7.22.5" + "@babel/plugin-syntax-import-meta" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" @@ -879,118 +924,145 @@ "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.16.5" - "@babel/plugin-transform-async-to-generator" "^7.16.5" - "@babel/plugin-transform-block-scoped-functions" "^7.16.5" - "@babel/plugin-transform-block-scoping" "^7.16.5" - "@babel/plugin-transform-classes" "^7.16.5" - "@babel/plugin-transform-computed-properties" "^7.16.5" - "@babel/plugin-transform-destructuring" "^7.16.5" - "@babel/plugin-transform-dotall-regex" "^7.16.5" - "@babel/plugin-transform-duplicate-keys" "^7.16.5" - "@babel/plugin-transform-exponentiation-operator" "^7.16.5" - "@babel/plugin-transform-for-of" "^7.16.5" - "@babel/plugin-transform-function-name" "^7.16.5" - "@babel/plugin-transform-literals" "^7.16.5" - "@babel/plugin-transform-member-expression-literals" "^7.16.5" - "@babel/plugin-transform-modules-amd" "^7.16.5" - "@babel/plugin-transform-modules-commonjs" "^7.16.5" - "@babel/plugin-transform-modules-systemjs" "^7.16.5" - "@babel/plugin-transform-modules-umd" "^7.16.5" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.5" - "@babel/plugin-transform-new-target" "^7.16.5" - "@babel/plugin-transform-object-super" "^7.16.5" - "@babel/plugin-transform-parameters" "^7.16.5" - "@babel/plugin-transform-property-literals" "^7.16.5" - "@babel/plugin-transform-regenerator" "^7.16.5" - "@babel/plugin-transform-reserved-words" "^7.16.5" - "@babel/plugin-transform-shorthand-properties" "^7.16.5" - "@babel/plugin-transform-spread" "^7.16.5" - "@babel/plugin-transform-sticky-regex" "^7.16.5" - "@babel/plugin-transform-template-literals" "^7.16.5" - "@babel/plugin-transform-typeof-symbol" "^7.16.5" - "@babel/plugin-transform-unicode-escapes" "^7.16.5" - "@babel/plugin-transform-unicode-regex" "^7.16.5" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.16.0" - babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.4.0" - babel-plugin-polyfill-regenerator "^0.3.0" - core-js-compat "^3.19.1" - semver "^6.3.0" - -"@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.22.5" + "@babel/plugin-transform-async-generator-functions" "^7.22.15" + "@babel/plugin-transform-async-to-generator" "^7.22.5" + "@babel/plugin-transform-block-scoped-functions" "^7.22.5" + "@babel/plugin-transform-block-scoping" "^7.22.15" + "@babel/plugin-transform-class-properties" "^7.22.5" + "@babel/plugin-transform-class-static-block" "^7.22.11" + "@babel/plugin-transform-classes" "^7.22.15" + "@babel/plugin-transform-computed-properties" "^7.22.5" + "@babel/plugin-transform-destructuring" "^7.22.15" + "@babel/plugin-transform-dotall-regex" "^7.22.5" + "@babel/plugin-transform-duplicate-keys" "^7.22.5" + "@babel/plugin-transform-dynamic-import" "^7.22.11" + "@babel/plugin-transform-exponentiation-operator" "^7.22.5" + "@babel/plugin-transform-export-namespace-from" "^7.22.11" + "@babel/plugin-transform-for-of" "^7.22.15" + "@babel/plugin-transform-function-name" "^7.22.5" + "@babel/plugin-transform-json-strings" "^7.22.11" + "@babel/plugin-transform-literals" "^7.22.5" + "@babel/plugin-transform-logical-assignment-operators" "^7.22.11" + "@babel/plugin-transform-member-expression-literals" "^7.22.5" + "@babel/plugin-transform-modules-amd" "^7.22.5" + "@babel/plugin-transform-modules-commonjs" "^7.22.15" + "@babel/plugin-transform-modules-systemjs" "^7.22.11" + "@babel/plugin-transform-modules-umd" "^7.22.5" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" + "@babel/plugin-transform-new-target" "^7.22.5" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.11" + "@babel/plugin-transform-numeric-separator" "^7.22.11" + "@babel/plugin-transform-object-rest-spread" "^7.22.15" + "@babel/plugin-transform-object-super" "^7.22.5" + "@babel/plugin-transform-optional-catch-binding" "^7.22.11" + "@babel/plugin-transform-optional-chaining" "^7.22.15" + "@babel/plugin-transform-parameters" "^7.22.15" + "@babel/plugin-transform-private-methods" "^7.22.5" + "@babel/plugin-transform-private-property-in-object" "^7.22.11" + "@babel/plugin-transform-property-literals" "^7.22.5" + "@babel/plugin-transform-regenerator" "^7.22.10" + "@babel/plugin-transform-reserved-words" "^7.22.5" + "@babel/plugin-transform-shorthand-properties" "^7.22.5" + "@babel/plugin-transform-spread" "^7.22.5" + "@babel/plugin-transform-sticky-regex" "^7.22.5" + "@babel/plugin-transform-template-literals" "^7.22.5" + "@babel/plugin-transform-typeof-symbol" "^7.22.5" + "@babel/plugin-transform-unicode-escapes" "^7.22.10" + "@babel/plugin-transform-unicode-property-regex" "^7.22.5" + "@babel/plugin-transform-unicode-regex" "^7.22.5" + "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" + "@babel/preset-modules" "0.1.6-no-external-plugins" + "@babel/types" "^7.22.19" + babel-plugin-polyfill-corejs2 "^0.4.5" + babel-plugin-polyfill-corejs3 "^0.8.3" + babel-plugin-polyfill-regenerator "^0.5.2" + core-js-compat "^3.31.0" + semver "^6.3.1" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/runtime-corejs3@^7.10.2": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.16.5.tgz#9057d879720c136193f0440bc400088212a74894" - integrity sha512-F1pMwvTiUNSAM8mc45kccMQxj31x3y3P+tA/X8hKNWp3/hUsxdGxZ3D3H8JIkxtfA8qGkaBTKvcmvStaYseAFw== - dependencies: - core-js-pure "^3.19.0" - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.5.tgz#7f3e34bf8bdbbadf03fbb7b1ea0d929569c9487a" - integrity sha512-TXWihFIS3Pyv5hzR7j6ihmeLkZfrXGxAr5UfSl8CHf+6q/wpiYDkUau0czckpYG8QmnCIuPpdLtuA9VmuGGyMA== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/standalone@^7.14.0": - version "7.16.6" - resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.16.6.tgz#2999d50df80207f747095118c19ed63a596a268b" - integrity sha512-wjildVe951w1IPEPN4G76j+y5JFZfJN9gdyP8o9zd61qbiVEecAgORKskK1D/7VrJZrZS+nxDbhj2akEFU2RJw== - -"@babel/template@^7.0.0", "@babel/template@^7.16.0", "@babel/template@^7.3.3": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.0.tgz#d16a35ebf4cd74e202083356fab21dd89363ddd6" - integrity sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/parser" "^7.16.0" - "@babel/types" "^7.16.0" - -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.5", "@babel/traverse@^7.7.2": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.5.tgz#d7d400a8229c714a59b87624fc67b0f1fbd4b2b3" - integrity sha512-FOCODAzqUMROikDYLYxl4nmwiLlu85rNqBML/A5hKRVXG2LV8d0iMqgPzdYTcIpjZEBB7D6UDU9vxRZiriASdQ== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/generator" "^7.16.5" - "@babel/helper-environment-visitor" "^7.16.5" - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-hoist-variables" "^7.16.0" - "@babel/helper-split-export-declaration" "^7.16.0" - "@babel/parser" "^7.16.5" - "@babel/types" "^7.16.0" +"@babel/preset-typescript@^7.22.15": + version "7.23.0" + resolved "https://registry.npmmirror.com/@babel/preset-typescript/-/preset-typescript-7.23.0.tgz#cc6602d13e7e5b2087c811912b87cf937a9129d9" + integrity sha512-6P6VVa/NM/VlAYj5s2Aq/gdVg8FSENCg3wlZ6Qau9AcPaoF5LbN1nyGlR9DTRIw9PpxI94e+ReydsJHcjwAweg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-syntax-jsx" "^7.22.5" + "@babel/plugin-transform-modules-commonjs" "^7.23.0" + "@babel/plugin-transform-typescript" "^7.22.15" + +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.npmmirror.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== + +"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.5", "@babel/runtime@^7.8.4": + version "7.23.1" + resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.1.tgz#72741dc4d413338a91dcb044a86f3c0bc402646d" + integrity sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.22.15", "@babel/template@^7.22.5": + version "7.22.15" + resolved "https://registry.npmmirror.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" + +"@babel/traverse@^7.22.5", "@babel/traverse@^7.23.0": + version "7.23.0" + resolved "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.23.0.tgz#18196ddfbcf4ccea324b7f6d3ada00d8c5a99c53" + integrity sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.0" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.0" + "@babel/types" "^7.23.0" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.16.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.0.tgz#db3b313804f96aadd0b776c4823e127ad67289ba" - integrity sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg== +"@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.4.4": + version "7.23.0" + resolved "https://registry.npmmirror.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" + integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== dependencies: - "@babel/helper-validator-identifier" "^7.15.7" + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + resolved "https://registry.npmmirror.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== +"@ckpack/vue-color@^1.5.0": + version "1.5.0" + resolved "https://registry.npmmirror.com/@ckpack/vue-color/-/vue-color-1.5.0.tgz#938154e9f3ee7b1a66a8668f46dba83db5588bae" + integrity sha512-dj1zXVyay2m4LdlLJCQSdIS2FYwUl77BZqyKmUXiehyqjCP0bGYnPcL38lrShzYUc2FdkYQX8ANZZjRahd4PQw== + dependencies: + "@ctrl/tinycolor" "^3.6.0" + material-colors "^1.2.6" + "@commitlint/cli@^14.1.0": version "14.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-14.1.0.tgz#7b657a955ed22f3df348ba9afa6ce5a5121ff7eb" + resolved "https://registry.npmmirror.com/@commitlint/cli/-/cli-14.1.0.tgz#7b657a955ed22f3df348ba9afa6ce5a5121ff7eb" integrity sha512-Orq62jkl9qAGvjFqhehtAqjGY/duJ8hIRPPIHmGR2jIB96D4VTmazS3ZvqJz2Q9kKr61mLAk/171zm0FVzQCYA== dependencies: "@commitlint/format" "^14.1.0" @@ -1005,14 +1077,14 @@ "@commitlint/config-conventional@^14.1.0": version "14.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-14.1.0.tgz#29e386ef200fa72d43418153ab1c490c89024dee" + resolved "https://registry.npmmirror.com/@commitlint/config-conventional/-/config-conventional-14.1.0.tgz#29e386ef200fa72d43418153ab1c490c89024dee" integrity sha512-JuhCqkEv8jyqmd54EpXPsQFpYc/8k7sfP1UziRdEvZSJUCLxz+8Pk4cNS0oF1BtjaWO7ITgXPlIZg47PyApGmg== dependencies: conventional-changelog-conventionalcommits "^4.3.1" "@commitlint/ensure@^14.1.0": version "14.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-14.1.0.tgz#b58b2ffe2bc95be143ed8f188721b97df1043ba5" + resolved "https://registry.npmmirror.com/@commitlint/ensure/-/ensure-14.1.0.tgz#b58b2ffe2bc95be143ed8f188721b97df1043ba5" integrity sha512-xrYvFdqVepT3XA1BmSh88eKbvYKtLuQu98QLfgxVmwS99Kj3yW0sT3D7jGvNsynbIx2dhbXofDyubf/DKkpFrQ== dependencies: "@commitlint/types" "^14.0.0" @@ -1020,12 +1092,12 @@ "@commitlint/execute-rule@^14.0.0": version "14.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-14.0.0.tgz#3ba45fc255286e3180f89ed4e9ac1ef237160734" + resolved "https://registry.npmmirror.com/@commitlint/execute-rule/-/execute-rule-14.0.0.tgz#3ba45fc255286e3180f89ed4e9ac1ef237160734" integrity sha512-Hh/HLpCBDlrD3Rx2x2pDBx6CU+OtVqGXh7mbFpNihAVx6B0zyZqm/vv0cdwdhfGW5OEn1BhCqHf1ZOvL/DwdWA== "@commitlint/format@^14.1.0": version "14.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-14.1.0.tgz#09b4081bdcb02163496bfcece98f9d4606238bc5" + resolved "https://registry.npmmirror.com/@commitlint/format/-/format-14.1.0.tgz#09b4081bdcb02163496bfcece98f9d4606238bc5" integrity sha512-sF6engqqHjvxGctWRKjFs/HQeNowlpbVmmoP481b2UMQnVQnjjfXJvQsoLpaqFUvgc2sHM4L85F8BmAw+iHG1w== dependencies: "@commitlint/types" "^14.0.0" @@ -1033,7 +1105,7 @@ "@commitlint/is-ignored@^14.0.0": version "14.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-14.0.0.tgz#8c88e05211519bc187558aad07eee02581292ec4" + resolved "https://registry.npmmirror.com/@commitlint/is-ignored/-/is-ignored-14.0.0.tgz#8c88e05211519bc187558aad07eee02581292ec4" integrity sha512-nJltYjXTa+mk+6SPe35nOZCCvt3Gh5mbDz008KQ4OPcn1GX1NG+pEgz1Kx3agDp/pc+JGnsrr5GV00gygIoloA== dependencies: "@commitlint/types" "^14.0.0" @@ -1041,7 +1113,7 @@ "@commitlint/lint@^14.1.0": version "14.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-14.1.0.tgz#1673b216803d65cc4bbe631f656125be54fd2f69" + resolved "https://registry.npmmirror.com/@commitlint/lint/-/lint-14.1.0.tgz#1673b216803d65cc4bbe631f656125be54fd2f69" integrity sha512-CApGJEOtWU/CcuPD8HkOR1jdUYpjKutGPaeby9nSFzJhwl/UQOjxc4Nd+2g2ygsMi5l3N4j2sWQYEgccpFC3lA== dependencies: "@commitlint/is-ignored" "^14.0.0" @@ -1051,7 +1123,7 @@ "@commitlint/load@^14.1.0": version "14.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-14.1.0.tgz#911e8625cfa1a80df2914b835834c6068fdfdab4" + resolved "https://registry.npmmirror.com/@commitlint/load/-/load-14.1.0.tgz#911e8625cfa1a80df2914b835834c6068fdfdab4" integrity sha512-p+HbgjhkqLsnxyjOUdEYHztHCp8n2oLVUJTmRPuP5FXLNevh6Gwmxf+NYC2J0sgD084aV2CFi3qu1W4yHWIknA== dependencies: "@commitlint/execute-rule" "^14.0.0" @@ -1066,12 +1138,12 @@ "@commitlint/message@^14.0.0": version "14.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-14.0.0.tgz#4db852fcd76352be547811d57709667588a39ba9" + resolved "https://registry.npmmirror.com/@commitlint/message/-/message-14.0.0.tgz#4db852fcd76352be547811d57709667588a39ba9" integrity sha512-316Pum+bwDcZamOQw0DXSY17Dq9EjvL1zKdYIZqneu4lnXN6uFfi53Y/sP5crW6zlLdnuTHe1MnuewXPLHfH1Q== "@commitlint/parse@^14.0.0": version "14.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-14.0.0.tgz#cb6f66323a27617744f9b479cf09941ff9c3f93d" + resolved "https://registry.npmmirror.com/@commitlint/parse/-/parse-14.0.0.tgz#cb6f66323a27617744f9b479cf09941ff9c3f93d" integrity sha512-49qkk0TcwdxJPZUX8MElEzMlRFIL/cg64P4pk8HotFEm2HYdbxxZp6v3cbVw5WOsnRA0frrs+NNoOcIT83ccMQ== dependencies: "@commitlint/types" "^14.0.0" @@ -1080,7 +1152,7 @@ "@commitlint/prompt-cli@^14.1.0": version "14.2.0" - resolved "https://registry.yarnpkg.com/@commitlint/prompt-cli/-/prompt-cli-14.2.0.tgz#2b53850e159184685b140ff015a96a3895fbfe28" + resolved "https://registry.npmmirror.com/@commitlint/prompt-cli/-/prompt-cli-14.2.0.tgz#2b53850e159184685b140ff015a96a3895fbfe28" integrity sha512-x7MQ+E5jccROkpzSvJfVzV+HwcgJY5PV2JAtAev/G/eqdTKyRh2t4Z73Mtby3HPDIZBAheun2vFA9AZyiMb3CQ== dependencies: "@commitlint/prompt" "^14.2.0" @@ -1089,7 +1161,7 @@ "@commitlint/prompt@^14.2.0": version "14.2.0" - resolved "https://registry.yarnpkg.com/@commitlint/prompt/-/prompt-14.2.0.tgz#74b7ae416edbbd46e045df2f41078af19f4195b2" + resolved "https://registry.npmmirror.com/@commitlint/prompt/-/prompt-14.2.0.tgz#74b7ae416edbbd46e045df2f41078af19f4195b2" integrity sha512-n3slpeZxJBRtw0zHRUpSvR67T9wixwaaKsFOQN+VFQHQ+IrdV3197ZrLhJV2SjVLTKzoaAnJ/8/uS5+nXuwKdA== dependencies: "@commitlint/ensure" "^14.1.0" @@ -1101,7 +1173,7 @@ "@commitlint/read@^14.0.0": version "14.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-14.0.0.tgz#f871600ce815b541c7f1a4fdabe2c66d8840c2ab" + resolved "https://registry.npmmirror.com/@commitlint/read/-/read-14.0.0.tgz#f871600ce815b541c7f1a4fdabe2c66d8840c2ab" integrity sha512-WXXcSLBqwXTqnEmB0lbU2TrayDJ2G3qI/lxy1ianVmpQol8p9BjodAA6bYxtYYHdQFVXUrIsclzFP/naWG+hlQ== dependencies: "@commitlint/top-level" "^14.0.0" @@ -1111,7 +1183,7 @@ "@commitlint/resolve-extends@^14.1.0": version "14.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-14.1.0.tgz#f23b40d95c95901fcb7b53edebc8fe86f54fe99d" + resolved "https://registry.npmmirror.com/@commitlint/resolve-extends/-/resolve-extends-14.1.0.tgz#f23b40d95c95901fcb7b53edebc8fe86f54fe99d" integrity sha512-ko80k6QB6E6/OvGNWy4u7gzzWyluDT3VDNL2kfZaDywsnrYntUKyT4Do97gQ7orttITzj2GRtk3KWClVz4rUUQ== dependencies: import-fresh "^3.0.0" @@ -1121,7 +1193,7 @@ "@commitlint/rules@^14.1.0": version "14.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-14.1.0.tgz#caec339b05c45e7536cac5d9f1db11fcc9e3dfcd" + resolved "https://registry.npmmirror.com/@commitlint/rules/-/rules-14.1.0.tgz#caec339b05c45e7536cac5d9f1db11fcc9e3dfcd" integrity sha512-6jmv414/1JzGzDI/DS+snAMhcL6roQKPdg0WB3kWTWN52EvWXBFm0HIMGt2H/FlRKxozwVXlQN60/1fNIl98xA== dependencies: "@commitlint/ensure" "^14.1.0" @@ -1132,26 +1204,48 @@ "@commitlint/to-lines@^14.0.0": version "14.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-14.0.0.tgz#d90c7453bc678e7e2d8a4cae125783b1d4df7aa4" + resolved "https://registry.npmmirror.com/@commitlint/to-lines/-/to-lines-14.0.0.tgz#d90c7453bc678e7e2d8a4cae125783b1d4df7aa4" integrity sha512-uIXk54oJDuYyLpI208s3+cGmJ323yvSJ9LB7yUDMWUeJi2LgRxE2EBZL995kLQdnoAsBBXcLq+VDyppg5bV/cg== "@commitlint/top-level@^14.0.0": version "14.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-14.0.0.tgz#5fed6ac7ae2f5cff02ea1f41bddbfa24487ef3c8" + resolved "https://registry.npmmirror.com/@commitlint/top-level/-/top-level-14.0.0.tgz#5fed6ac7ae2f5cff02ea1f41bddbfa24487ef3c8" integrity sha512-MZDKZfWfl9g4KozgWBGTCrI2cXkMHnBFlhwvEfrAu5G8wd5aL1f2uWEUMnBMjUikmhVj99i1pzge4XFWHQ29wQ== dependencies: find-up "^5.0.0" "@commitlint/types@^14.0.0": version "14.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-14.0.0.tgz#17bf4d1ab1178c67990ce01b36017d6e6792b751" + resolved "https://registry.npmmirror.com/@commitlint/types/-/types-14.0.0.tgz#17bf4d1ab1178c67990ce01b36017d6e6792b751" integrity sha512-sIls1nP2uSbGL466edYlh8mn7O/WP4i3bcvP+2DMhkscRCSgaPhNRWDilhYVsHt2Vu1HTQ27uT0Bj5/Lt2+EcQ== dependencies: chalk "^4.0.0" +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.npmmirror.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@ctrl/tinycolor@^3.4.0", "@ctrl/tinycolor@^3.5.0", "@ctrl/tinycolor@^3.6.0": + version "3.6.1" + resolved "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz#b6c75a56a1947cc916ea058772d666a2c8932f31" + integrity sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA== + +"@emotion/hash@^0.9.0": + version "0.9.1" + resolved "https://registry.npmmirror.com/@emotion/hash/-/hash-0.9.1.tgz#4ffb0055f7ef676ebc3a5a91fb621393294e2f43" + integrity sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ== + +"@emotion/unitless@^0.8.0": + version "0.8.1" + resolved "https://registry.npmmirror.com/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3" + integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ== + "@endemolshinegroup/cosmiconfig-typescript-loader@^3.0.2": version "3.0.2" - resolved "https://registry.yarnpkg.com/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz#eea4635828dde372838b0909693ebd9aafeec22d" + resolved "https://registry.npmmirror.com/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz#eea4635828dde372838b0909693ebd9aafeec22d" integrity sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA== dependencies: lodash.get "^4" @@ -1159,120 +1253,203 @@ ts-node "^9" tslib "^2" -"@eslint/eslintrc@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" - integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== +"@esbuild/android-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" + integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== + +"@esbuild/android-arm@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" + integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== + +"@esbuild/android-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" + integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== + +"@esbuild/darwin-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" + integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== + +"@esbuild/darwin-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" + integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== + +"@esbuild/freebsd-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" + integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== + +"@esbuild/freebsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" + integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== + +"@esbuild/linux-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" + integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== + +"@esbuild/linux-arm@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" + integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== + +"@esbuild/linux-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" + integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== + +"@esbuild/linux-loong64@0.14.54": + version "0.14.54" + resolved "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz#de2a4be678bd4d0d1ffbb86e6de779cde5999028" + integrity sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw== + +"@esbuild/linux-loong64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" + integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== + +"@esbuild/linux-mips64el@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" + integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== + +"@esbuild/linux-ppc64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" + integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== + +"@esbuild/linux-riscv64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" + integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== + +"@esbuild/linux-s390x@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" + integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== + +"@esbuild/linux-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" + integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== + +"@esbuild/netbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" + integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== + +"@esbuild/openbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" + integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== + +"@esbuild/sunos-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" + integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== + +"@esbuild/win32-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" + integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== + +"@esbuild/win32-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" + integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== + +"@esbuild/win32-x64@0.18.20": + version "0.18.20" + resolved "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" + integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== + +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": + version "4.4.0" + resolved "https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.1": + version "4.9.0" + resolved "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.9.0.tgz#7ccb5f58703fa61ffdcbf39e2c604a109e781162" + integrity sha512-zJmuCWj2VLBt4c25CfBIbMZLGLyhkvs7LznyVX5HfpzeocThgIj5XQK4L+g3U36mMcx8bPMhGyPpwCATamC4jQ== + +"@eslint/eslintrc@^2.1.2": + version "2.1.2" + resolved "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396" + integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g== dependencies: ajv "^6.12.4" - debug "^4.1.1" - espree "^7.3.0" - globals "^13.9.0" - ignore "^4.0.6" + debug "^4.3.2" + espree "^9.6.0" + globals "^13.19.0" + ignore "^5.2.0" import-fresh "^3.2.1" - js-yaml "^3.13.1" - minimatch "^3.0.4" + js-yaml "^4.1.0" + minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@formily/core@2.0.7", "@formily/core@^2.0.0": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@formily/core/-/core-2.0.7.tgz#63165cae79dafdd5f92291b16a8d58b854d1ec2d" - integrity sha512-fh6V5kqZ35Qq10aCNjbIcJE0Dwsl0KmcZJi1kNRh4iK45nC9KUeeYp/WtgRLs6yf6MHaCO/GCN3cB/g+fQwf7A== - dependencies: - "@formily/reactive" "2.0.7" - "@formily/shared" "2.0.7" - "@formily/validator" "2.0.7" +"@eslint/js@8.50.0": + version "8.50.0" + resolved "https://registry.npmmirror.com/@eslint/js/-/js-8.50.0.tgz#9e93b850f0f3fa35f5fa59adfd03adae8488e484" + integrity sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ== -"@formily/core@2.0.8", "@formily/core@^2.0.8": - version "2.0.8" - resolved "https://registry.yarnpkg.com/@formily/core/-/core-2.0.8.tgz#992b907fa5e8776d10ea5b421e35b5ffa1f49245" - integrity sha512-CiZntugbBE7KGxxrlqPpZl2UTZ/Dyd+ocW23EervUt087FmtsHp0932jII0Zzz1wGU3l+f62KXmgr4d1Oxx+Ag== +"@formily/core@2.2.29", "@formily/core@^2.0.0", "@formily/core@^2.0.8": + version "2.2.29" + resolved "https://registry.npmmirror.com/@formily/core/-/core-2.2.29.tgz#60bc10b1057494c7848ec615bbb992f9b2b1de90" + integrity sha512-oYfhepygcTgmkpvc64ZnRYZnP9Tg6DXYgsdeCs31LAC7mKTYxu1jX2wgDBanORgViCC0BYpNxtvsMJVoo597Pg== dependencies: - "@formily/reactive" "2.0.8" - "@formily/shared" "2.0.8" - "@formily/validator" "2.0.8" + "@formily/reactive" "2.2.29" + "@formily/shared" "2.2.29" + "@formily/validator" "2.2.29" "@formily/grid@^2.0.8": - version "2.0.8" - resolved "https://registry.yarnpkg.com/@formily/grid/-/grid-2.0.8.tgz#5c3dfc15928e4b764662f27b6061b90472979504" - integrity sha512-IyACVh3hrb2L+IMtL525G8JSpbnXi0383NUsJNsZvn4cGfgJj3hSQxGaAIRPNRKf1iifr1jpFuUmpYb9cN/ZWQ== + version "2.2.29" + resolved "https://registry.npmmirror.com/@formily/grid/-/grid-2.2.29.tgz#ba60cc9f585b6430ee5cda8731d3fb509f5157b4" + integrity sha512-X63PAmAb8fV2O0ouWuNbBSv9UJHK1fEUrxB9MCJsYfukGclme5CUi+zNcNGvTniu3/gsgM0tqu0lJFsLEIM4vQ== dependencies: - "@formily/reactive" "2.0.8" + "@formily/reactive" "2.2.29" "@juggle/resize-observer" "^3.3.1" -"@formily/json-schema@2.0.7": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@formily/json-schema/-/json-schema-2.0.7.tgz#3488aa0924b910bb19fc86321c364c891b95bc88" - integrity sha512-4mx0JdBaLPymlZ0vhh2bpelqQDEuaaAKu5mAQ1B8iA9n99DnbPzBUTWVw71fUpXRvOtVuedySlN5VGAfCJJsPA== - dependencies: - "@formily/core" "2.0.7" - "@formily/reactive" "2.0.7" - "@formily/shared" "2.0.7" - -"@formily/json-schema@2.0.8", "@formily/json-schema@^2.0.8": - version "2.0.8" - resolved "https://registry.yarnpkg.com/@formily/json-schema/-/json-schema-2.0.8.tgz#1fa87bc78f588a8a175e88d2a978a976abcf71e3" - integrity sha512-sPivmCNYJTBC4dQfnZEFuvBm3WUlrHBEj4hf1qj4lJXaqmp0zdfNuVwu8D8bciFnHe94Yg9+hwSZU6zDoTw9+w== +"@formily/json-schema@2.2.29", "@formily/json-schema@^2.0.0", "@formily/json-schema@^2.0.8": + version "2.2.29" + resolved "https://registry.npmmirror.com/@formily/json-schema/-/json-schema-2.2.29.tgz#72ad904cc65ef1fdfb44a515809b8c78df1995da" + integrity sha512-CC+koG4u/Rt4pszgbIT1Kz29J4sFJevB9ktsSVto8HRpoM2xYGouysJIggLAHz+JaA3eGaI4qlmFwryLjrG+ig== dependencies: - "@formily/core" "2.0.8" - "@formily/reactive" "2.0.8" - "@formily/shared" "2.0.8" - -"@formily/path@2.0.7": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@formily/path/-/path-2.0.7.tgz#43985e696fdd03e302db781a12c555e27a90a289" - integrity sha512-78iiB+Ct8gM71uXH+loekN1ivJ1UxyNNP0wm1RhVd/BKVosvyPrdPZYbVoev/iw3xKfHTu94d8vFdHSd5eTdGA== - -"@formily/path@2.0.8": - version "2.0.8" - resolved "https://registry.yarnpkg.com/@formily/path/-/path-2.0.8.tgz#9279b27a76819bf4c38862e2d98c23c62f9c6e92" - integrity sha512-HJ0+zTEFr5QVWK08z8+QATFx1q8yxO9MOY9KKiu7qeWWoTsVn+cNzuKcFcKifVRuQDuwyUx5O+0eYGBmNVriNA== + "@formily/core" "2.2.29" + "@formily/reactive" "2.2.29" + "@formily/shared" "2.2.29" -"@formily/reactive-vue@2.0.7": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@formily/reactive-vue/-/reactive-vue-2.0.7.tgz#8b62deb05449d57d695da6f25e71e9813e7e204e" - integrity sha512-10rhHoY3p00JwHGvMYl4JnfbDLMoawJU7VsH5IBkwJ6KS20nFUCxA1aCvNbbRFfvwsvz6LJrozPdHxiMFsTuNA== - dependencies: - "@formily/reactive" "2.0.7" - vue-demi "^0.9.0" +"@formily/path@2.2.29": + version "2.2.29" + resolved "https://registry.npmmirror.com/@formily/path/-/path-2.2.29.tgz#cbe04fbd7237e33dc440704d90c4b44ece03ef34" + integrity sha512-2KqmIxoP2sU1Y2BHSAwtG6nEnfNx/YEknxgbhj1UFQI8rTd8KtTFP6clH8i1Zy9vE7ZQeA8nwIoAKifozEF2Vw== -"@formily/reactive-vue@2.0.8", "@formily/reactive-vue@^2.0.8": - version "2.0.8" - resolved "https://registry.yarnpkg.com/@formily/reactive-vue/-/reactive-vue-2.0.8.tgz#5a162c141f49927cf459070725f083d572cc5177" - integrity sha512-3bMGnheWHFdXc2bomo+LpNl1Y4aQtHnZlHVPE6xiPv15ZQ3VQlenbjwOLn74pIjZezlL3EbV3nTTry6rk5s+5w== +"@formily/reactive-vue@2.2.29", "@formily/reactive-vue@^2.0.0", "@formily/reactive-vue@^2.0.8": + version "2.2.29" + resolved "https://registry.npmmirror.com/@formily/reactive-vue/-/reactive-vue-2.2.29.tgz#919097238aaad614beff511df1abfd3dfb9c2467" + integrity sha512-zMgZj38Tr2dduUEs5sgolKvt8wMxY9KwYuUaIWdKKpg1VZgngCM+E3ON3/XUVJTSbumU4k0RTSKn9NVvQE1rYw== dependencies: - "@formily/reactive" "2.0.8" - vue-demi "^0.9.0" - -"@formily/reactive@2.0.7": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@formily/reactive/-/reactive-2.0.7.tgz#3ca3e4dedfabfce98885bbc8ec15eb2fba3364a0" - integrity sha512-cXUhcfBGWRCoPrziCCXVRsw3+lJ93fhPDJ2eGFPXMcMXYZ7XpeqQd+9wq+L8GJLYVLAR0k6P93ojc7d9lnS5Vw== - -"@formily/reactive@2.0.8", "@formily/reactive@^2.0.8": - version "2.0.8" - resolved "https://registry.yarnpkg.com/@formily/reactive/-/reactive-2.0.8.tgz#335bca5707e764ccb3829e7afd06e37b93e564cd" - integrity sha512-bPsa8Pyd2A8ZT2nIdohLXHAzhMvR6saDD+FQnnD9Abssf5CwMiHHMVBQWGDc5HmtVb4JeEsCQLA2PYJDKi1zGg== + "@formily/reactive" "2.2.29" + vue-demi "^0.13.6" -"@formily/shared@2.0.7": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@formily/shared/-/shared-2.0.7.tgz#1e62d91accde8f86f48473304f65c3ec386310bd" - integrity sha512-io2DzKd5AQg2lebgO5OkB+AOPYxpxSn92rop5LnavcY+NBOsNLSe5zgZdGcA6w2xqCu4AYlkqPimF5GypI1gxQ== - dependencies: - "@formily/path" "2.0.7" - camel-case "^4.1.1" - lower-case "^2.0.1" - no-case "^3.0.4" - param-case "^3.0.4" - pascal-case "^3.1.1" - upper-case "^2.0.1" +"@formily/reactive@2.2.29", "@formily/reactive@^2.0.0", "@formily/reactive@^2.0.8", "@formily/reactive@^2.2.16": + version "2.2.29" + resolved "https://registry.npmmirror.com/@formily/reactive/-/reactive-2.2.29.tgz#d4b713689e464af7e4af844fdc8e27145f2f6a46" + integrity sha512-VYfIJpqx1EA2/9nkZvs/sJI+hjEAEZWKof4NAdRDA92Dj18IkdjobgzV57ZiOZZPII3J53qbUL0lGtRsx3wQxQ== -"@formily/shared@2.0.8", "@formily/shared@^2.0.8": - version "2.0.8" - resolved "https://registry.yarnpkg.com/@formily/shared/-/shared-2.0.8.tgz#d0f15e823b7098867640010c5f40ff49a41e39da" - integrity sha512-XCLvx31x1sH5S5Eugq2gDPhrCa02OczFOMLSJTrGRco7I64Mg01vq0Yj6dudIQYPUfLfVGIoT5O87GeqhKDKvg== +"@formily/shared@2.2.29", "@formily/shared@^2.0.0", "@formily/shared@^2.0.8": + version "2.2.29" + resolved "https://registry.npmmirror.com/@formily/shared/-/shared-2.2.29.tgz#c7c8f4de5fa3bd7e2f45f96edf4781866df439b1" + integrity sha512-vB9xY+/DtbdWFK5DWoKYo0hfm2MPVMKvxxqsVMfZEPh4ioD/2MohwOiLLm7IVllcrZWEAxJk8JY3EhBS1WD6yg== dependencies: - "@formily/path" "2.0.8" + "@formily/path" "2.2.29" camel-case "^4.1.1" lower-case "^2.0.1" no-case "^3.0.4" @@ -1280,308 +1457,118 @@ pascal-case "^3.1.1" upper-case "^2.0.1" -"@formily/template@^1.0.0-alpha.17": - version "1.0.0-alpha.17" - resolved "https://registry.yarnpkg.com/@formily/template/-/template-1.0.0-alpha.17.tgz#1753bfd99c45617af8168fe4503804c73d53072d" - integrity sha512-mvral+HAfF7qjQFPtc/GFRxGaCiaVzemh0DKshW1NhlVbTEPsdrrkRxNUqNwTufjeGc34mFWzkIat1WvubYdKw== - dependencies: - "@rollup/plugin-commonjs" "^17.0.0" - ejs "^3.1.6" - execa "^5.0.0" - fs-extra "^10.0.0" - glob "^7.1.3" - less "^4.1.1" - less-loader "^5.0.0" - less-plugin-npm-import "^2.1.0" - param-case "^3.0.4" - pascal-case "^3.1.2" - postcss "^8.3.11" - prompts "^2.4.2" - rimraf "^3.0.2" - rollup "^2.37.1" - rollup-plugin-dts "^2.0.0" - rollup-plugin-external-globals "^0.6.1" - rollup-plugin-ignore-import "^1.3.2" - rollup-plugin-inject-process-env "^1.3.1" - rollup-plugin-node-resolve "^5.2.0" - rollup-plugin-postcss "^4.0.0" - rollup-plugin-terser "^7.0.2" - rollup-plugin-typescript2 "^0.30.0" - ts-node "^9.1.1" - typescript "^4.1.5" - -"@formily/validator@2.0.7": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@formily/validator/-/validator-2.0.7.tgz#9390ed6b65b55760713c18d187db90b47ab7804d" - integrity sha512-y/+fzGAiqsLotfvUuOggpZbat3e9AREAofnmiCGrik9SMVeRZYZ2LXFJ3ZDqazGFObq4kHHuXEZRFWJnFY3izg== +"@formily/validator@2.2.29": + version "2.2.29" + resolved "https://registry.npmmirror.com/@formily/validator/-/validator-2.2.29.tgz#a3a758cf3cf18b698d822aa5a39921dd3a5ccfc7" + integrity sha512-w9Y2MJxLaFYG/w3tQ/cMBN7DboN3J/lFZlAIF2USeXYK8ZdGD6FeKq/X/gbD2aqGxCyNtU1lFBtaGZID9qoAhA== dependencies: - "@formily/shared" "2.0.7" + "@formily/shared" "2.2.29" -"@formily/validator@2.0.8": - version "2.0.8" - resolved "https://registry.yarnpkg.com/@formily/validator/-/validator-2.0.8.tgz#d7402b9cc2e74995301b9f0fc03116e7b6632f0c" - integrity sha512-UcfIy89iBwkesZ5u8z5ehwCtoYpWtfdBqSAMG9KCEGGZMpGwqm/EwF1lCGkrl0jzbEZ0rc2heMASf7X+5xDIQg== +"@formily/vue@^2.0.0", "@formily/vue@^2.0.8": + version "2.2.29" + resolved "https://registry.npmmirror.com/@formily/vue/-/vue-2.2.29.tgz#cecd0f97d72037f16738f51c945deab8119d1c4a" + integrity sha512-78XDggKqo3GDLYTrvIwqyKQ82A7ZD74nQLSJvq4soMR6rsYTEKHEBrAfJhoGwmL8q8tdu2ZUDB/xxUxl/EXk3Q== dependencies: - "@formily/shared" "2.0.8" - -"@formily/vue@^2.0.0": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@formily/vue/-/vue-2.0.7.tgz#c26370c198888a852c87813966f91ec492619372" - integrity sha512-OxaLsDODNHDHDmKEdgFojuzmGjPJZBwA1dnplaiePYWeMpAa7tr0gxnz+L9c+W7zrqgnqYzhYZun+3WxLOvruQ== - dependencies: - "@formily/core" "2.0.7" - "@formily/json-schema" "2.0.7" - "@formily/reactive" "2.0.7" - "@formily/reactive-vue" "2.0.7" - "@formily/shared" "2.0.7" - "@formily/validator" "2.0.7" - fs-extra "^10.0.0" - vue-demi "^0.9.0" - vue-frag "^1.1.4" - -"@formily/vue@^2.0.8": - version "2.0.8" - resolved "https://registry.yarnpkg.com/@formily/vue/-/vue-2.0.8.tgz#7b502724fc4326937392ee9dd9ce919b8f8835ca" - integrity sha512-PHd/8K7ILRGX6/UttRwv/eMWU0tF/RG3M9qjeCq2hsAl4A2b/3fYI5H/YKG4kruWCC5w5ZTq1SYQYv+vArjQXw== - dependencies: - "@formily/core" "2.0.8" - "@formily/json-schema" "2.0.8" - "@formily/reactive" "2.0.8" - "@formily/reactive-vue" "2.0.8" - "@formily/shared" "2.0.8" - "@formily/validator" "2.0.8" + "@formily/core" "2.2.29" + "@formily/json-schema" "2.2.29" + "@formily/reactive" "2.2.29" + "@formily/reactive-vue" "2.2.29" + "@formily/shared" "2.2.29" + "@formily/validator" "2.2.29" fs-extra "^10.0.0" - vue-demi "^0.9.0" + vue-demi "^0.13.6" vue-frag "^1.1.4" "@gar/promisify@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210" - integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw== + version "1.1.3" + resolved "https://registry.npmmirror.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== -"@humanwhocodes/config-array@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" - integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== +"@humanwhocodes/config-array@^0.11.11": + version "0.11.11" + resolved "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.11.tgz#88a04c570dbbc7dd943e4712429c3df09bc32844" + integrity sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA== dependencies: - "@humanwhocodes/object-schema" "^1.2.0" + "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" - minimatch "^3.0.4" + minimatch "^3.0.5" -"@humanwhocodes/object-schema@^1.2.0": +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.npmmirror.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^1.2.1": version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + resolved "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== "@hutson/parse-repository-url@^3.0.0": version "3.0.2" - resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340" + resolved "https://registry.npmmirror.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340" integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q== -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2": +"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + resolved "https://registry.npmmirror.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^27.4.2": - version "27.4.2" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.4.2.tgz#7a95612d38c007ddb528ee446fe5e5e785e685ce" - integrity sha512-xknHThRsPB/To1FUbi6pCe43y58qFC03zfb6R7fDb/FfC7k2R3i1l+izRBJf8DI46KhYGRaF14Eo9A3qbBoixg== +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.3" + resolved "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== dependencies: - "@jest/types" "^27.4.2" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^27.4.2" - jest-util "^27.4.2" - slash "^3.0.0" + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" -"@jest/core@^27.4.5": - version "27.4.5" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.4.5.tgz#cae2dc34259782f4866c6606c3b480cce920ed4c" - integrity sha512-3tm/Pevmi8bDsgvo73nX8p/WPng6KWlCyScW10FPEoN1HU4pwI83tJ3TsFvi1FfzsjwUlMNEPowgb/rPau/LTQ== - dependencies: - "@jest/console" "^27.4.2" - "@jest/reporters" "^27.4.5" - "@jest/test-result" "^27.4.2" - "@jest/transform" "^27.4.5" - "@jest/types" "^27.4.2" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.8.1" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-changed-files "^27.4.2" - jest-config "^27.4.5" - jest-haste-map "^27.4.5" - jest-message-util "^27.4.2" - jest-regex-util "^27.4.0" - jest-resolve "^27.4.5" - jest-resolve-dependencies "^27.4.5" - jest-runner "^27.4.5" - jest-runtime "^27.4.5" - jest-snapshot "^27.4.5" - jest-util "^27.4.2" - jest-validate "^27.4.2" - jest-watcher "^27.4.2" - micromatch "^4.0.4" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" +"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== -"@jest/environment@^27.4.4": - version "27.4.4" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.4.4.tgz#66ebebc79673d84aad29d2bb70a8c51e6c29bb4d" - integrity sha512-q+niMx7cJgt/t/b6dzLOh4W8Ef/8VyKG7hxASK39jakijJzbFBGpptx3RXz13FFV7OishQ9lTbv+dQ5K3EhfDQ== - dependencies: - "@jest/fake-timers" "^27.4.2" - "@jest/types" "^27.4.2" - "@types/node" "*" - jest-mock "^27.4.2" +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -"@jest/fake-timers@^27.4.2": - version "27.4.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.4.2.tgz#d217f86c3ba2027bf29e0b731fd0cb761a72d093" - integrity sha512-f/Xpzn5YQk5adtqBgvw1V6bF8Nx3hY0OIRRpCvWcfPl0EAjdqWPdhH3t/3XpiWZqtjIEHDyMKP9ajpva1l4Zmg== +"@jridgewell/source-map@^0.3.3": + version "0.3.5" + resolved "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" + integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ== dependencies: - "@jest/types" "^27.4.2" - "@sinonjs/fake-timers" "^8.0.1" - "@types/node" "*" - jest-message-util "^27.4.2" - jest-mock "^27.4.2" - jest-util "^27.4.2" + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" -"@jest/globals@^27.4.4": - version "27.4.4" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.4.4.tgz#fe501a80c23ea2dab585c42be2a519bb5e38530d" - integrity sha512-bqpqQhW30BOreXM8bA8t8JbOQzsq/WnPTnBl+It3UxAD9J8yxEAaBEylHx1dtBapAr/UBk8GidXbzmqnee8tYQ== - dependencies: - "@jest/environment" "^27.4.4" - "@jest/types" "^27.4.2" - expect "^27.4.2" +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": + version "1.4.15" + resolved "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jest/reporters@^27.4.5": - version "27.4.5" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.4.5.tgz#e229acca48d18ea39e805540c1c322b075ae63ad" - integrity sha512-3orsG4vi8zXuBqEoy2LbnC1kuvkg1KQUgqNxmxpQgIOQEPeV0onvZu+qDQnEoX8qTQErtqn/xzcnbpeTuOLSiA== +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^27.4.2" - "@jest/test-result" "^27.4.2" - "@jest/transform" "^27.4.5" - "@jest/types" "^27.4.2" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.2.4" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^4.0.3" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.2" - jest-haste-map "^27.4.5" - jest-resolve "^27.4.5" - jest-util "^27.4.2" - jest-worker "^27.4.5" - slash "^3.0.0" - source-map "^0.6.0" - string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^8.1.0" + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" -"@jest/source-map@^27.4.0": - version "27.4.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.4.0.tgz#2f0385d0d884fb3e2554e8f71f8fa957af9a74b6" - integrity sha512-Ntjx9jzP26Bvhbm93z/AKcPRj/9wrkI88/gK60glXDx1q+IeI0rf7Lw2c89Ch6ofonB0On/iRDreQuQ6te9pgQ== +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.19" + resolved "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" + integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== dependencies: - callsites "^3.0.0" - graceful-fs "^4.2.4" - source-map "^0.6.0" + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" -"@jest/test-result@^27.4.2": - version "27.4.2" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.4.2.tgz#05fd4a5466ec502f3eae0b39dff2b93ea4d5d9ec" - integrity sha512-kr+bCrra9jfTgxHXHa2UwoQjxvQk3Am6QbpAiJ5x/50LW8llOYrxILkqY0lZRW/hu8FXesnudbql263+EW9iNA== - dependencies: - "@jest/console" "^27.4.2" - "@jest/types" "^27.4.2" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^27.4.5": - version "27.4.5" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.4.5.tgz#1d7e026844d343b60d2ca7fd82c579a17b445d7d" - integrity sha512-n5woIn/1v+FT+9hniymHPARA9upYUmfi5Pw9ewVwXCDlK4F5/Gkees9v8vdjGdAIJ2MPHLHodiajLpZZanWzEQ== - dependencies: - "@jest/test-result" "^27.4.2" - graceful-fs "^4.2.4" - jest-haste-map "^27.4.5" - jest-runtime "^27.4.5" - -"@jest/transform@^27.4.5": - version "27.4.5" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.4.5.tgz#3dfe2e3680cd4aa27356172bf25617ab5b94f195" - integrity sha512-PuMet2UlZtlGzwc6L+aZmR3I7CEBpqadO03pU40l2RNY2fFJ191b9/ITB44LNOhVtsyykx0OZvj0PCyuLm7Eew== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^27.4.2" - babel-plugin-istanbul "^6.0.0" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^27.4.5" - jest-regex-util "^27.4.0" - jest-util "^27.4.2" - micromatch "^4.0.4" - pirates "^4.0.1" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" - -"@jest/types@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" - integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - -"@jest/types@^27.4.2": - version "27.4.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.4.2.tgz#96536ebd34da6392c2b7c7737d693885b5dd44a5" - integrity sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - -"@juggle/resize-observer@^3.3.1": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@juggle/resize-observer/-/resize-observer-3.3.1.tgz#b50a781709c81e10701004214340f25475a171a0" - integrity sha512-zMM9Ds+SawiUkakS7y94Ymqx+S0ORzpG3frZirN3l+UlXUmSUR7hF4wxCVqW+ei94JzV5kt0uXBcoOEAuiydrw== +"@juggle/resize-observer@^3.3.1", "@juggle/resize-observer@^3.4.0": + version "3.4.0" + resolved "https://registry.npmmirror.com/@juggle/resize-observer/-/resize-observer-3.4.0.tgz#08d6c5e20cf7e4cc02fd181c4b0c225cd31dbb60" + integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== "@lerna/add@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/add/-/add-4.0.0.tgz#c36f57d132502a57b9e7058d1548b7a565ef183f" + resolved "https://registry.npmmirror.com/@lerna/add/-/add-4.0.0.tgz#c36f57d132502a57b9e7058d1548b7a565ef183f" integrity sha512-cpmAH1iS3k8JBxNvnMqrGTTjbY/ZAiKa1ChJzFevMYY3eeqbvhsBKnBcxjRXtdrJ6bd3dCQM+ZtK+0i682Fhng== dependencies: "@lerna/bootstrap" "4.0.0" @@ -1597,7 +1584,7 @@ "@lerna/bootstrap@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-4.0.0.tgz#5f5c5e2c6cfc8fcec50cb2fbe569a8c607101891" + resolved "https://registry.npmmirror.com/@lerna/bootstrap/-/bootstrap-4.0.0.tgz#5f5c5e2c6cfc8fcec50cb2fbe569a8c607101891" integrity sha512-RkS7UbeM2vu+kJnHzxNRCLvoOP9yGNgkzRdy4UV2hNalD7EP41bLvRVOwRYQ7fhc2QcbhnKNdOBihYRL0LcKtw== dependencies: "@lerna/command" "4.0.0" @@ -1625,7 +1612,7 @@ "@lerna/changed@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-4.0.0.tgz#b9fc76cea39b9292a6cd263f03eb57af85c9270b" + resolved "https://registry.npmmirror.com/@lerna/changed/-/changed-4.0.0.tgz#b9fc76cea39b9292a6cd263f03eb57af85c9270b" integrity sha512-cD+KuPRp6qiPOD+BO6S6SN5cARspIaWSOqGBpGnYzLb4uWT8Vk4JzKyYtc8ym1DIwyoFXHosXt8+GDAgR8QrgQ== dependencies: "@lerna/collect-updates" "4.0.0" @@ -1635,7 +1622,7 @@ "@lerna/check-working-tree@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/check-working-tree/-/check-working-tree-4.0.0.tgz#257e36a602c00142e76082a19358e3e1ae8dbd58" + resolved "https://registry.npmmirror.com/@lerna/check-working-tree/-/check-working-tree-4.0.0.tgz#257e36a602c00142e76082a19358e3e1ae8dbd58" integrity sha512-/++bxM43jYJCshBiKP5cRlCTwSJdRSxVmcDAXM+1oUewlZJVSVlnks5eO0uLxokVFvLhHlC5kHMc7gbVFPHv6Q== dependencies: "@lerna/collect-uncommitted" "4.0.0" @@ -1644,7 +1631,7 @@ "@lerna/child-process@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-4.0.0.tgz#341b96a57dffbd9705646d316e231df6fa4df6e1" + resolved "https://registry.npmmirror.com/@lerna/child-process/-/child-process-4.0.0.tgz#341b96a57dffbd9705646d316e231df6fa4df6e1" integrity sha512-XtCnmCT9eyVsUUHx6y/CTBYdV9g2Cr/VxyseTWBgfIur92/YKClfEtJTbOh94jRT62hlKLqSvux/UhxXVh613Q== dependencies: chalk "^4.1.0" @@ -1653,7 +1640,7 @@ "@lerna/clean@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-4.0.0.tgz#8f778b6f2617aa2a936a6b5e085ae62498e57dc5" + resolved "https://registry.npmmirror.com/@lerna/clean/-/clean-4.0.0.tgz#8f778b6f2617aa2a936a6b5e085ae62498e57dc5" integrity sha512-uugG2iN9k45ITx2jtd8nEOoAtca8hNlDCUM0N3lFgU/b1mEQYAPRkqr1qs4FLRl/Y50ZJ41wUz1eazS+d/0osA== dependencies: "@lerna/command" "4.0.0" @@ -1667,7 +1654,7 @@ "@lerna/cli@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/cli/-/cli-4.0.0.tgz#8eabd334558836c1664df23f19acb95e98b5bbf3" + resolved "https://registry.npmmirror.com/@lerna/cli/-/cli-4.0.0.tgz#8eabd334558836c1664df23f19acb95e98b5bbf3" integrity sha512-Neaw3GzFrwZiRZv2g7g6NwFjs3er1vhraIniEs0jjVLPMNC4eata0na3GfE5yibkM/9d3gZdmihhZdZ3EBdvYA== dependencies: "@lerna/global-options" "4.0.0" @@ -1677,7 +1664,7 @@ "@lerna/collect-uncommitted@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/collect-uncommitted/-/collect-uncommitted-4.0.0.tgz#855cd64612969371cfc2453b90593053ff1ba779" + resolved "https://registry.npmmirror.com/@lerna/collect-uncommitted/-/collect-uncommitted-4.0.0.tgz#855cd64612969371cfc2453b90593053ff1ba779" integrity sha512-ufSTfHZzbx69YNj7KXQ3o66V4RC76ffOjwLX0q/ab//61bObJ41n03SiQEhSlmpP+gmFbTJ3/7pTe04AHX9m/g== dependencies: "@lerna/child-process" "4.0.0" @@ -1686,7 +1673,7 @@ "@lerna/collect-updates@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/collect-updates/-/collect-updates-4.0.0.tgz#8e208b1bafd98a372ff1177f7a5e288f6bea8041" + resolved "https://registry.npmmirror.com/@lerna/collect-updates/-/collect-updates-4.0.0.tgz#8e208b1bafd98a372ff1177f7a5e288f6bea8041" integrity sha512-bnNGpaj4zuxsEkyaCZLka9s7nMs58uZoxrRIPJ+nrmrZYp1V5rrd+7/NYTuunOhY2ug1sTBvTAxj3NZQ+JKnOw== dependencies: "@lerna/child-process" "4.0.0" @@ -1697,7 +1684,7 @@ "@lerna/command@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/command/-/command-4.0.0.tgz#991c7971df8f5bf6ae6e42c808869a55361c1b98" + resolved "https://registry.npmmirror.com/@lerna/command/-/command-4.0.0.tgz#991c7971df8f5bf6ae6e42c808869a55361c1b98" integrity sha512-LM9g3rt5FsPNFqIHUeRwWXLNHJ5NKzOwmVKZ8anSp4e1SPrv2HNc1V02/9QyDDZK/w+5POXH5lxZUI1CHaOK/A== dependencies: "@lerna/child-process" "4.0.0" @@ -1713,7 +1700,7 @@ "@lerna/conventional-commits@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/conventional-commits/-/conventional-commits-4.0.0.tgz#660fb2c7b718cb942ead70110df61f18c6f99750" + resolved "https://registry.npmmirror.com/@lerna/conventional-commits/-/conventional-commits-4.0.0.tgz#660fb2c7b718cb942ead70110df61f18c6f99750" integrity sha512-CSUQRjJHFrH8eBn7+wegZLV3OrNc0Y1FehYfYGhjLE2SIfpCL4bmfu/ViYuHh9YjwHaA+4SX6d3hR+xkeseKmw== dependencies: "@lerna/validation-error" "4.0.0" @@ -1730,7 +1717,7 @@ "@lerna/create-symlink@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/create-symlink/-/create-symlink-4.0.0.tgz#8c5317ce5ae89f67825443bd7651bf4121786228" + resolved "https://registry.npmmirror.com/@lerna/create-symlink/-/create-symlink-4.0.0.tgz#8c5317ce5ae89f67825443bd7651bf4121786228" integrity sha512-I0phtKJJdafUiDwm7BBlEUOtogmu8+taxq6PtIrxZbllV9hWg59qkpuIsiFp+no7nfRVuaasNYHwNUhDAVQBig== dependencies: cmd-shim "^4.1.0" @@ -1739,7 +1726,7 @@ "@lerna/create@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/create/-/create-4.0.0.tgz#b6947e9b5dfb6530321952998948c3e63d64d730" + resolved "https://registry.npmmirror.com/@lerna/create/-/create-4.0.0.tgz#b6947e9b5dfb6530321952998948c3e63d64d730" integrity sha512-mVOB1niKByEUfxlbKTM1UNECWAjwUdiioIbRQZEeEabtjCL69r9rscIsjlGyhGWCfsdAG5wfq4t47nlDXdLLag== dependencies: "@lerna/child-process" "4.0.0" @@ -1763,7 +1750,7 @@ "@lerna/describe-ref@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/describe-ref/-/describe-ref-4.0.0.tgz#53c53b4ea65fdceffa072a62bfebe6772c45d9ec" + resolved "https://registry.npmmirror.com/@lerna/describe-ref/-/describe-ref-4.0.0.tgz#53c53b4ea65fdceffa072a62bfebe6772c45d9ec" integrity sha512-eTU5+xC4C5Gcgz+Ey4Qiw9nV2B4JJbMulsYJMW8QjGcGh8zudib7Sduj6urgZXUYNyhYpRs+teci9M2J8u+UvQ== dependencies: "@lerna/child-process" "4.0.0" @@ -1771,7 +1758,7 @@ "@lerna/diff@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-4.0.0.tgz#6d3071817aaa4205a07bf77cfc6e932796d48b92" + resolved "https://registry.npmmirror.com/@lerna/diff/-/diff-4.0.0.tgz#6d3071817aaa4205a07bf77cfc6e932796d48b92" integrity sha512-jYPKprQVg41+MUMxx6cwtqsNm0Yxx9GDEwdiPLwcUTFx+/qKCEwifKNJ1oGIPBxyEHX2PFCOjkK39lHoj2qiag== dependencies: "@lerna/child-process" "4.0.0" @@ -1781,7 +1768,7 @@ "@lerna/exec@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-4.0.0.tgz#eb6cb95cb92d42590e9e2d628fcaf4719d4a8be6" + resolved "https://registry.npmmirror.com/@lerna/exec/-/exec-4.0.0.tgz#eb6cb95cb92d42590e9e2d628fcaf4719d4a8be6" integrity sha512-VGXtL/b/JfY84NB98VWZpIExfhLOzy0ozm/0XaS4a2SmkAJc5CeUfrhvHxxkxiTBLkU+iVQUyYEoAT0ulQ8PCw== dependencies: "@lerna/child-process" "4.0.0" @@ -1794,7 +1781,7 @@ "@lerna/filter-options@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/filter-options/-/filter-options-4.0.0.tgz#ac94cc515d7fa3b47e2f7d74deddeabb1de5e9e6" + resolved "https://registry.npmmirror.com/@lerna/filter-options/-/filter-options-4.0.0.tgz#ac94cc515d7fa3b47e2f7d74deddeabb1de5e9e6" integrity sha512-vV2ANOeZhOqM0rzXnYcFFCJ/kBWy/3OA58irXih9AMTAlQLymWAK0akWybl++sUJ4HB9Hx12TOqaXbYS2NM5uw== dependencies: "@lerna/collect-updates" "4.0.0" @@ -1804,7 +1791,7 @@ "@lerna/filter-packages@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/filter-packages/-/filter-packages-4.0.0.tgz#b1f70d70e1de9cdd36a4e50caa0ac501f8d012f2" + resolved "https://registry.npmmirror.com/@lerna/filter-packages/-/filter-packages-4.0.0.tgz#b1f70d70e1de9cdd36a4e50caa0ac501f8d012f2" integrity sha512-+4AJIkK7iIiOaqCiVTYJxh/I9qikk4XjNQLhE3kixaqgMuHl1NQ99qXRR0OZqAWB9mh8Z1HA9bM5K1HZLBTOqA== dependencies: "@lerna/validation-error" "4.0.0" @@ -1813,14 +1800,14 @@ "@lerna/get-npm-exec-opts@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-4.0.0.tgz#dc955be94a4ae75c374ef9bce91320887d34608f" + resolved "https://registry.npmmirror.com/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-4.0.0.tgz#dc955be94a4ae75c374ef9bce91320887d34608f" integrity sha512-yvmkerU31CTWS2c7DvmAWmZVeclPBqI7gPVr5VATUKNWJ/zmVcU4PqbYoLu92I9Qc4gY1TuUplMNdNuZTSL7IQ== dependencies: npmlog "^4.1.2" "@lerna/get-packed@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/get-packed/-/get-packed-4.0.0.tgz#0989d61624ac1f97e393bdad2137c49cd7a37823" + resolved "https://registry.npmmirror.com/@lerna/get-packed/-/get-packed-4.0.0.tgz#0989d61624ac1f97e393bdad2137c49cd7a37823" integrity sha512-rfWONRsEIGyPJTxFzC8ECb3ZbsDXJbfqWYyeeQQDrJRPnEJErlltRLPLgC2QWbxFgFPsoDLeQmFHJnf0iDfd8w== dependencies: fs-extra "^9.1.0" @@ -1829,7 +1816,7 @@ "@lerna/github-client@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/github-client/-/github-client-4.0.0.tgz#2ced67721363ef70f8e12ffafce4410918f4a8a4" + resolved "https://registry.npmmirror.com/@lerna/github-client/-/github-client-4.0.0.tgz#2ced67721363ef70f8e12ffafce4410918f4a8a4" integrity sha512-2jhsldZtTKXYUBnOm23Lb0Fx8G4qfSXF9y7UpyUgWUj+YZYd+cFxSuorwQIgk5P4XXrtVhsUesIsli+BYSThiw== dependencies: "@lerna/child-process" "4.0.0" @@ -1840,7 +1827,7 @@ "@lerna/gitlab-client@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/gitlab-client/-/gitlab-client-4.0.0.tgz#00dad73379c7b38951d4b4ded043504c14e2b67d" + resolved "https://registry.npmmirror.com/@lerna/gitlab-client/-/gitlab-client-4.0.0.tgz#00dad73379c7b38951d4b4ded043504c14e2b67d" integrity sha512-OMUpGSkeDWFf7BxGHlkbb35T7YHqVFCwBPSIR6wRsszY8PAzCYahtH3IaJzEJyUg6vmZsNl0FSr3pdA2skhxqA== dependencies: node-fetch "^2.6.1" @@ -1849,12 +1836,12 @@ "@lerna/global-options@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/global-options/-/global-options-4.0.0.tgz#c7d8b0de6a01d8a845e2621ea89e7f60f18c6a5f" + resolved "https://registry.npmmirror.com/@lerna/global-options/-/global-options-4.0.0.tgz#c7d8b0de6a01d8a845e2621ea89e7f60f18c6a5f" integrity sha512-TRMR8afAHxuYBHK7F++Ogop2a82xQjoGna1dvPOY6ltj/pEx59pdgcJfYcynYqMkFIk8bhLJJN9/ndIfX29FTQ== "@lerna/has-npm-version@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/has-npm-version/-/has-npm-version-4.0.0.tgz#d3fc3292c545eb28bd493b36e6237cf0279f631c" + resolved "https://registry.npmmirror.com/@lerna/has-npm-version/-/has-npm-version-4.0.0.tgz#d3fc3292c545eb28bd493b36e6237cf0279f631c" integrity sha512-LQ3U6XFH8ZmLCsvsgq1zNDqka0Xzjq5ibVN+igAI5ccRWNaUsE/OcmsyMr50xAtNQMYMzmpw5GVLAivT2/YzCg== dependencies: "@lerna/child-process" "4.0.0" @@ -1862,7 +1849,7 @@ "@lerna/import@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/import/-/import-4.0.0.tgz#bde656c4a451fa87ae41733ff8a8da60547c5465" + resolved "https://registry.npmmirror.com/@lerna/import/-/import-4.0.0.tgz#bde656c4a451fa87ae41733ff8a8da60547c5465" integrity sha512-FaIhd+4aiBousKNqC7TX1Uhe97eNKf5/SC7c5WZANVWtC7aBWdmswwDt3usrzCNpj6/Wwr9EtEbYROzxKH8ffg== dependencies: "@lerna/child-process" "4.0.0" @@ -1876,7 +1863,7 @@ "@lerna/info@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/info/-/info-4.0.0.tgz#b9fb0e479d60efe1623603958a831a88b1d7f1fc" + resolved "https://registry.npmmirror.com/@lerna/info/-/info-4.0.0.tgz#b9fb0e479d60efe1623603958a831a88b1d7f1fc" integrity sha512-8Uboa12kaCSZEn4XRfPz5KU9XXoexSPS4oeYGj76s2UQb1O1GdnEyfjyNWoUl1KlJ2i/8nxUskpXIftoFYH0/Q== dependencies: "@lerna/command" "4.0.0" @@ -1885,7 +1872,7 @@ "@lerna/init@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/init/-/init-4.0.0.tgz#dadff67e6dfb981e8ccbe0e6a310e837962f6c7a" + resolved "https://registry.npmmirror.com/@lerna/init/-/init-4.0.0.tgz#dadff67e6dfb981e8ccbe0e6a310e837962f6c7a" integrity sha512-wY6kygop0BCXupzWj5eLvTUqdR7vIAm0OgyV9WHpMYQGfs1V22jhztt8mtjCloD/O0nEe4tJhdG62XU5aYmPNQ== dependencies: "@lerna/child-process" "4.0.0" @@ -1896,7 +1883,7 @@ "@lerna/link@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/link/-/link-4.0.0.tgz#c3a38aabd44279d714e90f2451e31b63f0fb65ba" + resolved "https://registry.npmmirror.com/@lerna/link/-/link-4.0.0.tgz#c3a38aabd44279d714e90f2451e31b63f0fb65ba" integrity sha512-KlvPi7XTAcVOByfaLlOeYOfkkDcd+bejpHMCd1KcArcFTwijOwXOVi24DYomIeHvy6HsX/IUquJ4PPUJIeB4+w== dependencies: "@lerna/command" "4.0.0" @@ -1907,7 +1894,7 @@ "@lerna/list@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/list/-/list-4.0.0.tgz#24b4e6995bd73f81c556793fe502b847efd9d1d7" + resolved "https://registry.npmmirror.com/@lerna/list/-/list-4.0.0.tgz#24b4e6995bd73f81c556793fe502b847efd9d1d7" integrity sha512-L2B5m3P+U4Bif5PultR4TI+KtW+SArwq1i75QZ78mRYxPc0U/piau1DbLOmwrdqr99wzM49t0Dlvl6twd7GHFg== dependencies: "@lerna/command" "4.0.0" @@ -1917,7 +1904,7 @@ "@lerna/listable@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/listable/-/listable-4.0.0.tgz#d00d6cb4809b403f2b0374fc521a78e318b01214" + resolved "https://registry.npmmirror.com/@lerna/listable/-/listable-4.0.0.tgz#d00d6cb4809b403f2b0374fc521a78e318b01214" integrity sha512-/rPOSDKsOHs5/PBLINZOkRIX1joOXUXEtyUs5DHLM8q6/RP668x/1lFhw6Dx7/U+L0+tbkpGtZ1Yt0LewCLgeQ== dependencies: "@lerna/query-graph" "4.0.0" @@ -1926,7 +1913,7 @@ "@lerna/log-packed@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/log-packed/-/log-packed-4.0.0.tgz#95168fe2e26ac6a71e42f4be857519b77e57a09f" + resolved "https://registry.npmmirror.com/@lerna/log-packed/-/log-packed-4.0.0.tgz#95168fe2e26ac6a71e42f4be857519b77e57a09f" integrity sha512-+dpCiWbdzgMAtpajLToy9PO713IHoE6GV/aizXycAyA07QlqnkpaBNZ8DW84gHdM1j79TWockGJo9PybVhrrZQ== dependencies: byte-size "^7.0.0" @@ -1936,7 +1923,7 @@ "@lerna/npm-conf@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/npm-conf/-/npm-conf-4.0.0.tgz#b259fd1e1cee2bf5402b236e770140ff9ade7fd2" + resolved "https://registry.npmmirror.com/@lerna/npm-conf/-/npm-conf-4.0.0.tgz#b259fd1e1cee2bf5402b236e770140ff9ade7fd2" integrity sha512-uS7H02yQNq3oejgjxAxqq/jhwGEE0W0ntr8vM3EfpCW1F/wZruwQw+7bleJQ9vUBjmdXST//tk8mXzr5+JXCfw== dependencies: config-chain "^1.1.12" @@ -1944,7 +1931,7 @@ "@lerna/npm-dist-tag@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/npm-dist-tag/-/npm-dist-tag-4.0.0.tgz#d1e99b4eccd3414142f0548ad331bf2d53f3257a" + resolved "https://registry.npmmirror.com/@lerna/npm-dist-tag/-/npm-dist-tag-4.0.0.tgz#d1e99b4eccd3414142f0548ad331bf2d53f3257a" integrity sha512-F20sg28FMYTgXqEQihgoqSfwmq+Id3zT23CnOwD+XQMPSy9IzyLf1fFVH319vXIw6NF6Pgs4JZN2Qty6/CQXGw== dependencies: "@lerna/otplease" "4.0.0" @@ -1954,7 +1941,7 @@ "@lerna/npm-install@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/npm-install/-/npm-install-4.0.0.tgz#31180be3ab3b7d1818a1a0c206aec156b7094c78" + resolved "https://registry.npmmirror.com/@lerna/npm-install/-/npm-install-4.0.0.tgz#31180be3ab3b7d1818a1a0c206aec156b7094c78" integrity sha512-aKNxq2j3bCH3eXl3Fmu4D54s/YLL9WSwV8W7X2O25r98wzrO38AUN6AB9EtmAx+LV/SP15et7Yueg9vSaanRWg== dependencies: "@lerna/child-process" "4.0.0" @@ -1967,7 +1954,7 @@ "@lerna/npm-publish@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/npm-publish/-/npm-publish-4.0.0.tgz#84eb62e876fe949ae1fd62c60804423dbc2c4472" + resolved "https://registry.npmmirror.com/@lerna/npm-publish/-/npm-publish-4.0.0.tgz#84eb62e876fe949ae1fd62c60804423dbc2c4472" integrity sha512-vQb7yAPRo5G5r77DRjHITc9piR9gvEKWrmfCH7wkfBnGWEqu7n8/4bFQ7lhnkujvc8RXOsYpvbMQkNfkYibD/w== dependencies: "@lerna/otplease" "4.0.0" @@ -1981,7 +1968,7 @@ "@lerna/npm-run-script@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/npm-run-script/-/npm-run-script-4.0.0.tgz#dfebf4f4601442e7c0b5214f9fb0d96c9350743b" + resolved "https://registry.npmmirror.com/@lerna/npm-run-script/-/npm-run-script-4.0.0.tgz#dfebf4f4601442e7c0b5214f9fb0d96c9350743b" integrity sha512-Jmyh9/IwXJjOXqKfIgtxi0bxi1pUeKe5bD3S81tkcy+kyng/GNj9WSqD5ZggoNP2NP//s4CLDAtUYLdP7CU9rA== dependencies: "@lerna/child-process" "4.0.0" @@ -1990,21 +1977,21 @@ "@lerna/otplease@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/otplease/-/otplease-4.0.0.tgz#84972eb43448f8a1077435ba1c5e59233b725850" + resolved "https://registry.npmmirror.com/@lerna/otplease/-/otplease-4.0.0.tgz#84972eb43448f8a1077435ba1c5e59233b725850" integrity sha512-Sgzbqdk1GH4psNiT6hk+BhjOfIr/5KhGBk86CEfHNJTk9BK4aZYyJD4lpDbDdMjIV4g03G7pYoqHzH765T4fxw== dependencies: "@lerna/prompt" "4.0.0" "@lerna/output@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/output/-/output-4.0.0.tgz#b1d72215c0e35483e4f3e9994debc82c621851f2" + resolved "https://registry.npmmirror.com/@lerna/output/-/output-4.0.0.tgz#b1d72215c0e35483e4f3e9994debc82c621851f2" integrity sha512-Un1sHtO1AD7buDQrpnaYTi2EG6sLF+KOPEAMxeUYG5qG3khTs2Zgzq5WE3dt2N/bKh7naESt20JjIW6tBELP0w== dependencies: npmlog "^4.1.2" "@lerna/pack-directory@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/pack-directory/-/pack-directory-4.0.0.tgz#8b617db95d20792f043aaaa13a9ccc0e04cb4c74" + resolved "https://registry.npmmirror.com/@lerna/pack-directory/-/pack-directory-4.0.0.tgz#8b617db95d20792f043aaaa13a9ccc0e04cb4c74" integrity sha512-NJrmZNmBHS+5aM+T8N6FVbaKFScVqKlQFJNY2k7nsJ/uklNKsLLl6VhTQBPwMTbf6Tf7l6bcKzpy7aePuq9UiQ== dependencies: "@lerna/get-packed" "4.0.0" @@ -2017,7 +2004,7 @@ "@lerna/package-graph@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/package-graph/-/package-graph-4.0.0.tgz#16a00253a8ac810f72041481cb46bcee8d8123dd" + resolved "https://registry.npmmirror.com/@lerna/package-graph/-/package-graph-4.0.0.tgz#16a00253a8ac810f72041481cb46bcee8d8123dd" integrity sha512-QED2ZCTkfXMKFoTGoccwUzjHtZMSf3UKX14A4/kYyBms9xfFsesCZ6SLI5YeySEgcul8iuIWfQFZqRw+Qrjraw== dependencies: "@lerna/prerelease-id-from-version" "4.0.0" @@ -2028,7 +2015,7 @@ "@lerna/package@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/package/-/package-4.0.0.tgz#1b4c259c4bcff45c876ee1d591a043aacbc0d6b7" + resolved "https://registry.npmmirror.com/@lerna/package/-/package-4.0.0.tgz#1b4c259c4bcff45c876ee1d591a043aacbc0d6b7" integrity sha512-l0M/izok6FlyyitxiQKr+gZLVFnvxRQdNhzmQ6nRnN9dvBJWn+IxxpM+cLqGACatTnyo9LDzNTOj2Db3+s0s8Q== dependencies: load-json-file "^6.2.0" @@ -2037,14 +2024,14 @@ "@lerna/prerelease-id-from-version@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-4.0.0.tgz#c7e0676fcee1950d85630e108eddecdd5b48c916" + resolved "https://registry.npmmirror.com/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-4.0.0.tgz#c7e0676fcee1950d85630e108eddecdd5b48c916" integrity sha512-GQqguzETdsYRxOSmdFZ6zDBXDErIETWOqomLERRY54f4p+tk4aJjoVdd9xKwehC9TBfIFvlRbL1V9uQGHh1opg== dependencies: semver "^7.3.4" "@lerna/profiler@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/profiler/-/profiler-4.0.0.tgz#8a53ab874522eae15d178402bff90a14071908e9" + resolved "https://registry.npmmirror.com/@lerna/profiler/-/profiler-4.0.0.tgz#8a53ab874522eae15d178402bff90a14071908e9" integrity sha512-/BaEbqnVh1LgW/+qz8wCuI+obzi5/vRE8nlhjPzdEzdmWmZXuCKyWSEzAyHOJWw1ntwMiww5dZHhFQABuoFz9Q== dependencies: fs-extra "^9.1.0" @@ -2053,7 +2040,7 @@ "@lerna/project@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/project/-/project-4.0.0.tgz#ff84893935833533a74deff30c0e64ddb7f0ba6b" + resolved "https://registry.npmmirror.com/@lerna/project/-/project-4.0.0.tgz#ff84893935833533a74deff30c0e64ddb7f0ba6b" integrity sha512-o0MlVbDkD5qRPkFKlBZsXZjoNTWPyuL58564nSfZJ6JYNmgAptnWPB2dQlAc7HWRZkmnC2fCkEdoU+jioPavbg== dependencies: "@lerna/package" "4.0.0" @@ -2071,7 +2058,7 @@ "@lerna/prompt@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/prompt/-/prompt-4.0.0.tgz#5ec69a803f3f0db0ad9f221dad64664d3daca41b" + resolved "https://registry.npmmirror.com/@lerna/prompt/-/prompt-4.0.0.tgz#5ec69a803f3f0db0ad9f221dad64664d3daca41b" integrity sha512-4Ig46oCH1TH5M7YyTt53fT6TuaKMgqUUaqdgxvp6HP6jtdak6+amcsqB8YGz2eQnw/sdxunx84DfI9XpoLj4bQ== dependencies: inquirer "^7.3.3" @@ -2079,7 +2066,7 @@ "@lerna/publish@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-4.0.0.tgz#f67011305adeba120066a3b6d984a5bb5fceef65" + resolved "https://registry.npmmirror.com/@lerna/publish/-/publish-4.0.0.tgz#f67011305adeba120066a3b6d984a5bb5fceef65" integrity sha512-K8jpqjHrChH22qtkytA5GRKIVFEtqBF6JWj1I8dWZtHs4Jywn8yB1jQ3BAMLhqmDJjWJtRck0KXhQQKzDK2UPg== dependencies: "@lerna/check-working-tree" "4.0.0" @@ -2113,21 +2100,21 @@ "@lerna/pulse-till-done@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/pulse-till-done/-/pulse-till-done-4.0.0.tgz#04bace7d483a8205c187b806bcd8be23d7bb80a3" + resolved "https://registry.npmmirror.com/@lerna/pulse-till-done/-/pulse-till-done-4.0.0.tgz#04bace7d483a8205c187b806bcd8be23d7bb80a3" integrity sha512-Frb4F7QGckaybRhbF7aosLsJ5e9WuH7h0KUkjlzSByVycxY91UZgaEIVjS2oN9wQLrheLMHl6SiFY0/Pvo0Cxg== dependencies: npmlog "^4.1.2" "@lerna/query-graph@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/query-graph/-/query-graph-4.0.0.tgz#09dd1c819ac5ee3f38db23931143701f8a6eef63" + resolved "https://registry.npmmirror.com/@lerna/query-graph/-/query-graph-4.0.0.tgz#09dd1c819ac5ee3f38db23931143701f8a6eef63" integrity sha512-YlP6yI3tM4WbBmL9GCmNDoeQyzcyg1e4W96y/PKMZa5GbyUvkS2+Jc2kwPD+5KcXou3wQZxSPzR3Te5OenaDdg== dependencies: "@lerna/package-graph" "4.0.0" "@lerna/resolve-symlink@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/resolve-symlink/-/resolve-symlink-4.0.0.tgz#6d006628a210c9b821964657a9e20a8c9a115e14" + resolved "https://registry.npmmirror.com/@lerna/resolve-symlink/-/resolve-symlink-4.0.0.tgz#6d006628a210c9b821964657a9e20a8c9a115e14" integrity sha512-RtX8VEUzqT+uLSCohx8zgmjc6zjyRlh6i/helxtZTMmc4+6O4FS9q5LJas2uGO2wKvBlhcD6siibGt7dIC3xZA== dependencies: fs-extra "^9.1.0" @@ -2136,7 +2123,7 @@ "@lerna/rimraf-dir@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/rimraf-dir/-/rimraf-dir-4.0.0.tgz#2edf3b62d4eb0ef4e44e430f5844667d551ec25a" + resolved "https://registry.npmmirror.com/@lerna/rimraf-dir/-/rimraf-dir-4.0.0.tgz#2edf3b62d4eb0ef4e44e430f5844667d551ec25a" integrity sha512-QNH9ABWk9mcMJh2/muD9iYWBk1oQd40y6oH+f3wwmVGKYU5YJD//+zMiBI13jxZRtwBx0vmBZzkBkK1dR11cBg== dependencies: "@lerna/child-process" "4.0.0" @@ -2146,7 +2133,7 @@ "@lerna/run-lifecycle@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/run-lifecycle/-/run-lifecycle-4.0.0.tgz#e648a46f9210a9bcd7c391df6844498cb5079334" + resolved "https://registry.npmmirror.com/@lerna/run-lifecycle/-/run-lifecycle-4.0.0.tgz#e648a46f9210a9bcd7c391df6844498cb5079334" integrity sha512-IwxxsajjCQQEJAeAaxF8QdEixfI7eLKNm4GHhXHrgBu185JcwScFZrj9Bs+PFKxwb+gNLR4iI5rpUdY8Y0UdGQ== dependencies: "@lerna/npm-conf" "4.0.0" @@ -2155,7 +2142,7 @@ "@lerna/run-topologically@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/run-topologically/-/run-topologically-4.0.0.tgz#af846eeee1a09b0c2be0d1bfb5ef0f7b04bb1827" + resolved "https://registry.npmmirror.com/@lerna/run-topologically/-/run-topologically-4.0.0.tgz#af846eeee1a09b0c2be0d1bfb5ef0f7b04bb1827" integrity sha512-EVZw9hGwo+5yp+VL94+NXRYisqgAlj0jWKWtAIynDCpghRxCE5GMO3xrQLmQgqkpUl9ZxQFpICgYv5DW4DksQA== dependencies: "@lerna/query-graph" "4.0.0" @@ -2163,7 +2150,7 @@ "@lerna/run@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/run/-/run-4.0.0.tgz#4bc7fda055a729487897c23579694f6183c91262" + resolved "https://registry.npmmirror.com/@lerna/run/-/run-4.0.0.tgz#4bc7fda055a729487897c23579694f6183c91262" integrity sha512-9giulCOzlMPzcZS/6Eov6pxE9gNTyaXk0Man+iCIdGJNMrCnW7Dme0Z229WWP/UoxDKg71F2tMsVVGDiRd8fFQ== dependencies: "@lerna/command" "4.0.0" @@ -2178,7 +2165,7 @@ "@lerna/symlink-binary@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/symlink-binary/-/symlink-binary-4.0.0.tgz#21009f62d53a425f136cb4c1a32c6b2a0cc02d47" + resolved "https://registry.npmmirror.com/@lerna/symlink-binary/-/symlink-binary-4.0.0.tgz#21009f62d53a425f136cb4c1a32c6b2a0cc02d47" integrity sha512-zualodWC4q1QQc1pkz969hcFeWXOsVYZC5AWVtAPTDfLl+TwM7eG/O6oP+Rr3fFowspxo6b1TQ6sYfDV6HXNWA== dependencies: "@lerna/create-symlink" "4.0.0" @@ -2188,7 +2175,7 @@ "@lerna/symlink-dependencies@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/symlink-dependencies/-/symlink-dependencies-4.0.0.tgz#8910eca084ae062642d0490d8972cf2d98e9ebbd" + resolved "https://registry.npmmirror.com/@lerna/symlink-dependencies/-/symlink-dependencies-4.0.0.tgz#8910eca084ae062642d0490d8972cf2d98e9ebbd" integrity sha512-BABo0MjeUHNAe2FNGty1eantWp8u83BHSeIMPDxNq0MuW2K3CiQRaeWT3EGPAzXpGt0+hVzBrA6+OT0GPn7Yuw== dependencies: "@lerna/create-symlink" "4.0.0" @@ -2200,19 +2187,19 @@ "@lerna/timer@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/timer/-/timer-4.0.0.tgz#a52e51bfcd39bfd768988049ace7b15c1fd7a6da" + resolved "https://registry.npmmirror.com/@lerna/timer/-/timer-4.0.0.tgz#a52e51bfcd39bfd768988049ace7b15c1fd7a6da" integrity sha512-WFsnlaE7SdOvjuyd05oKt8Leg3ENHICnvX3uYKKdByA+S3g+TCz38JsNs7OUZVt+ba63nC2nbXDlUnuT2Xbsfg== "@lerna/validation-error@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/validation-error/-/validation-error-4.0.0.tgz#af9d62fe8304eaa2eb9a6ba1394f9aa807026d35" + resolved "https://registry.npmmirror.com/@lerna/validation-error/-/validation-error-4.0.0.tgz#af9d62fe8304eaa2eb9a6ba1394f9aa807026d35" integrity sha512-1rBOM5/koiVWlRi3V6dB863E1YzJS8v41UtsHgMr6gB2ncJ2LsQtMKlJpi3voqcgh41H8UsPXR58RrrpPpufyw== dependencies: npmlog "^4.1.2" "@lerna/version@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/version/-/version-4.0.0.tgz#532659ec6154d8a8789c5ab53878663e244e3228" + resolved "https://registry.npmmirror.com/@lerna/version/-/version-4.0.0.tgz#532659ec6154d8a8789c5ab53878663e244e3228" integrity sha512-otUgiqs5W9zGWJZSCCMRV/2Zm2A9q9JwSDS7s/tlKq4mWCYriWo7+wsHEA/nPTMDyYyBO5oyZDj+3X50KDUzeA== dependencies: "@lerna/check-working-tree" "4.0.0" @@ -2244,23 +2231,34 @@ "@lerna/write-log-file@4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@lerna/write-log-file/-/write-log-file-4.0.0.tgz#18221a38a6a307d6b0a5844dd592ad53fa27091e" + resolved "https://registry.npmmirror.com/@lerna/write-log-file/-/write-log-file-4.0.0.tgz#18221a38a6a307d6b0a5844dd592ad53fa27091e" integrity sha512-XRG5BloiArpXRakcnPHmEHJp+4AtnhRtpDIHSghmXD5EichI1uD73J7FgPp30mm2pDRq3FdqB0NbwSEsJ9xFQg== dependencies: npmlog "^4.1.2" write-file-atomic "^3.0.3" -"@mrmlnc/readdir-enhanced@^2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" - integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== +"@monaco-editor/loader@^1.3.2": + version "1.3.3" + resolved "https://registry.npmmirror.com/@monaco-editor/loader/-/loader-1.3.3.tgz#7f1742bd3cc21c0362a46a4056317f6e5215cfca" + integrity sha512-6KKF4CTzcJiS8BJwtxtfyYt9shBiEv32ateQ9T4UVogwn4HM/uPo9iJd2Dmbkpz8CM6Y0PDUpjnZzCwC+eYo2Q== + dependencies: + state-local "^1.0.6" + +"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": + version "2.1.8-no-fsevents.3" + resolved "https://registry.npmmirror.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" + integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ== + +"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": + version "5.1.1-v1" + resolved "https://registry.npmmirror.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" + integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== dependencies: - call-me-maybe "^1.0.1" - glob-to-regexp "^0.3.0" + eslint-scope "5.1.1" "@nodelib/fs.scandir@2.1.5": version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + resolved "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" @@ -2268,17 +2266,12 @@ "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + resolved "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@nodelib/fs.stat@^1.1.2": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" - integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== - -"@nodelib/fs.walk@^1.2.3": +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + resolved "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" @@ -2286,20 +2279,20 @@ "@npmcli/ci-detect@^1.0.0": version "1.4.0" - resolved "https://registry.yarnpkg.com/@npmcli/ci-detect/-/ci-detect-1.4.0.tgz#18478bbaa900c37bfbd8a2006a6262c62e8b0fe1" + resolved "https://registry.npmmirror.com/@npmcli/ci-detect/-/ci-detect-1.4.0.tgz#18478bbaa900c37bfbd8a2006a6262c62e8b0fe1" integrity sha512-3BGrt6FLjqM6br5AhWRKTr3u5GIVkjRYeAFrMp3HjnfICrg4xOrVRwFavKT6tsp++bq5dluL5t8ME/Nha/6c1Q== "@npmcli/fs@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.0.tgz#bec1d1b89c170d40e1b73ad6c943b0b75e7d2951" - integrity sha512-VhP1qZLXcrXRIaPoqb4YA55JQxLNF3jNR4T55IdOJa3+IFJKNYHtPvtXx8slmeMavj37vCzCfrqQM1vWLsYKLA== + version "1.1.1" + resolved "https://registry.npmmirror.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" + integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== dependencies: "@gar/promisify" "^1.0.1" semver "^7.3.5" "@npmcli/git@^2.1.0": version "2.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-2.1.0.tgz#2fbd77e147530247d37f325930d457b3ebe894f6" + resolved "https://registry.npmmirror.com/@npmcli/git/-/git-2.1.0.tgz#2fbd77e147530247d37f325930d457b3ebe894f6" integrity sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw== dependencies: "@npmcli/promise-spawn" "^1.3.2" @@ -2313,7 +2306,7 @@ "@npmcli/installed-package-contents@^1.0.6": version "1.0.7" - resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz#ab7408c6147911b970a8abe261ce512232a3f4fa" + resolved "https://registry.npmmirror.com/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz#ab7408c6147911b970a8abe261ce512232a3f4fa" integrity sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw== dependencies: npm-bundled "^1.1.1" @@ -2321,7 +2314,7 @@ "@npmcli/move-file@^1.0.1": version "1.1.2" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" + resolved "https://registry.npmmirror.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== dependencies: mkdirp "^1.0.4" @@ -2329,19 +2322,19 @@ "@npmcli/node-gyp@^1.0.2": version "1.0.3" - resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz#a912e637418ffc5f2db375e93b85837691a43a33" + resolved "https://registry.npmmirror.com/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz#a912e637418ffc5f2db375e93b85837691a43a33" integrity sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA== "@npmcli/promise-spawn@^1.2.0", "@npmcli/promise-spawn@^1.3.2": version "1.3.2" - resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz#42d4e56a8e9274fba180dabc0aea6e38f29274f5" + resolved "https://registry.npmmirror.com/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz#42d4e56a8e9274fba180dabc0aea6e38f29274f5" integrity sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg== dependencies: infer-owner "^1.0.4" "@npmcli/run-script@^1.8.2": version "1.8.6" - resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-1.8.6.tgz#18314802a6660b0d4baa4c3afe7f1ad39d8c28b7" + resolved "https://registry.npmmirror.com/@npmcli/run-script/-/run-script-1.8.6.tgz#18314802a6660b0d4baa4c3afe7f1ad39d8c28b7" integrity sha512-e42bVZnC6VluBZBAFEr3YrdqSspG3bgilyg4nSLBJ7TRGNCzxHa92XAHxQBLYg0BmgwO4b2mf3h/l5EkEWRn3g== dependencies: "@npmcli/node-gyp" "^1.0.2" @@ -2351,19 +2344,19 @@ "@octokit/auth-token@^2.4.4": version "2.5.0" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36" + resolved "https://registry.npmmirror.com/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36" integrity sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g== dependencies: "@octokit/types" "^6.0.3" "@octokit/core@^3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.5.1.tgz#8601ceeb1ec0e1b1b8217b960a413ed8e947809b" - integrity sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw== + version "3.6.0" + resolved "https://registry.npmmirror.com/@octokit/core/-/core-3.6.0.tgz#3376cb9f3008d9b3d110370d90e0a1fcd5fe6085" + integrity sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q== dependencies: "@octokit/auth-token" "^2.4.4" "@octokit/graphql" "^4.5.8" - "@octokit/request" "^5.6.0" + "@octokit/request" "^5.6.3" "@octokit/request-error" "^2.0.5" "@octokit/types" "^6.0.3" before-after-hook "^2.2.0" @@ -2371,7 +2364,7 @@ "@octokit/endpoint@^6.0.1": version "6.0.12" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" + resolved "https://registry.npmmirror.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== dependencies: "@octokit/types" "^6.0.3" @@ -2380,67 +2373,67 @@ "@octokit/graphql@^4.5.8": version "4.8.0" - resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3" + resolved "https://registry.npmmirror.com/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3" integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg== dependencies: "@octokit/request" "^5.6.0" "@octokit/types" "^6.0.3" universal-user-agent "^6.0.0" -"@octokit/openapi-types@^11.2.0": - version "11.2.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-11.2.0.tgz#b38d7fc3736d52a1e96b230c1ccd4a58a2f400a6" - integrity sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA== +"@octokit/openapi-types@^12.11.0": + version "12.11.0" + resolved "https://registry.npmmirror.com/@octokit/openapi-types/-/openapi-types-12.11.0.tgz#da5638d64f2b919bca89ce6602d059f1b52d3ef0" + integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ== "@octokit/plugin-enterprise-rest@^6.0.1": version "6.0.1" - resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437" + resolved "https://registry.npmmirror.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437" integrity sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw== "@octokit/plugin-paginate-rest@^2.16.8": - version "2.17.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz#32e9c7cab2a374421d3d0de239102287d791bce7" - integrity sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw== + version "2.21.3" + resolved "https://registry.npmmirror.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz#7f12532797775640dbb8224da577da7dc210c87e" + integrity sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw== dependencies: - "@octokit/types" "^6.34.0" + "@octokit/types" "^6.40.0" "@octokit/plugin-request-log@^1.0.4": version "1.0.4" - resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" + resolved "https://registry.npmmirror.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== "@octokit/plugin-rest-endpoint-methods@^5.12.0": - version "5.13.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz#8c46109021a3412233f6f50d28786f8e552427ba" - integrity sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA== + version "5.16.2" + resolved "https://registry.npmmirror.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz#7ee8bf586df97dd6868cf68f641354e908c25342" + integrity sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw== dependencies: - "@octokit/types" "^6.34.0" + "@octokit/types" "^6.39.0" deprecation "^2.3.1" "@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": version "2.1.0" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" + resolved "https://registry.npmmirror.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== dependencies: "@octokit/types" "^6.0.3" deprecation "^2.0.0" once "^1.4.0" -"@octokit/request@^5.6.0": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.2.tgz#1aa74d5da7b9e04ac60ef232edd9a7438dcf32d8" - integrity sha512-je66CvSEVf0jCpRISxkUcCa0UkxmFs6eGDRSbfJtAVwbLH5ceqF+YEyC8lj8ystKyZTy8adWr0qmkY52EfOeLA== +"@octokit/request@^5.6.0", "@octokit/request@^5.6.3": + version "5.6.3" + resolved "https://registry.npmmirror.com/@octokit/request/-/request-5.6.3.tgz#19a022515a5bba965ac06c9d1334514eb50c48b0" + integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A== dependencies: "@octokit/endpoint" "^6.0.1" "@octokit/request-error" "^2.1.0" "@octokit/types" "^6.16.1" is-plain-object "^5.0.0" - node-fetch "^2.6.1" + node-fetch "^2.6.7" universal-user-agent "^6.0.0" "@octokit/rest@^18.1.0": version "18.12.0" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" + resolved "https://registry.npmmirror.com/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q== dependencies: "@octokit/core" "^3.5.1" @@ -2448,1136 +2441,889 @@ "@octokit/plugin-request-log" "^1.0.4" "@octokit/plugin-rest-endpoint-methods" "^5.12.0" -"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.34.0": - version "6.34.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.34.0.tgz#c6021333334d1ecfb5d370a8798162ddf1ae8218" - integrity sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw== +"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.39.0", "@octokit/types@^6.40.0": + version "6.41.0" + resolved "https://registry.npmmirror.com/@octokit/types/-/types-6.41.0.tgz#e58ef78d78596d2fb7df9c6259802464b5f84a04" + integrity sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg== dependencies: - "@octokit/openapi-types" "^11.2.0" + "@octokit/openapi-types" "^12.11.0" -"@rollup/plugin-commonjs@^17.0.0": - version "17.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz#757ec88737dffa8aa913eb392fade2e45aef2a2d" - integrity sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew== - dependencies: - "@rollup/pluginutils" "^3.1.0" - commondir "^1.0.1" - estree-walker "^2.0.1" - glob "^7.1.6" - is-reference "^1.2.1" - magic-string "^0.25.7" - resolve "^1.17.0" +"@one-ini/wasm@0.1.1": + version "0.1.1" + resolved "https://registry.npmmirror.com/@one-ini/wasm/-/wasm-0.1.1.tgz#6013659736c9dbfccc96e8a9c2b3de317df39323" + integrity sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw== -"@rollup/pluginutils@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" - integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== +"@pind/designable-core@2.0.0-beta.6", "@pind/designable-core@^2.0.0-beta.6": + version "2.0.0-beta.6" + resolved "https://registry.npmmirror.com/@pind/designable-core/-/designable-core-2.0.0-beta.6.tgz#28f10995d5188f9be4dee1aafa0c0a6d4e002bde" + integrity sha512-WUdGrIaQV5UBIkuTXcLpFSFzILS3V2XIMpeaOZrh4SyZ2/AuhCJq+xZsEuUNj320RsJE/C1lE9sdGzxo0cbcug== dependencies: - "@types/estree" "0.0.39" - estree-walker "^1.0.1" - picomatch "^2.2.2" + "@formily/reactive" "^2.2.16" + "@juggle/resize-observer" "^3.4.0" + "@pind/designable-shared" "2.0.0-beta.6" -"@rollup/pluginutils@^4.0.0", "@rollup/pluginutils@^4.1.0": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.1.2.tgz#ed5821c15e5e05e32816f5fb9ec607cdf5a75751" - integrity sha512-ROn4qvkxP9SyPeHaf7uQC/GPFY6L/OWy9+bd9AwcjOAWQwxRscoEyAUD8qCY5o5iL4jqQwoLk2kaTKJPb/HwzQ== +"@pind/designable-formily-transformer@^2.0.0-beta.6": + version "2.0.0-beta.6" + resolved "https://registry.npmmirror.com/@pind/designable-formily-transformer/-/designable-formily-transformer-2.0.0-beta.6.tgz#9b7858e8b42edc9d5d68de63d8ff5a7fa0f05b08" + integrity sha512-/ZF3Tb7g3aWTnZhtqXaKxEDOE2JMBaR4sxRQGKokq0QuqFD1sVo2OVD+EzOVMzaiyyVM28ns2ZlYR1fozdECaQ== dependencies: - estree-walker "^2.0.1" - picomatch "^2.2.2" + "@pind/designable-core" "2.0.0-beta.6" + "@pind/designable-shared" "2.0.0-beta.6" -"@samverschueren/stream-to-observable@^0.3.0": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301" - integrity sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ== +"@pind/designable-shared@2.0.0-beta.6", "@pind/designable-shared@^2.0.0-beta.6": + version "2.0.0-beta.6" + resolved "https://registry.npmmirror.com/@pind/designable-shared/-/designable-shared-2.0.0-beta.6.tgz#adb2b0f5f651a0ceeb870fc43e96b824e94f780e" + integrity sha512-zxtAAt4iSw3bKA7aXT7yGoGC3BB3SppxAPJwx9hSyduCql8cCytUfG5VtSj0AdqYOIhcB5dJORW23RSI7+NQYQ== dependencies: - any-observable "^0.3.0" + requestidlecallback "^0.3.0" -"@simonwep/pickr@~1.7.0": - version "1.7.4" - resolved "https://registry.yarnpkg.com/@simonwep/pickr/-/pickr-1.7.4.tgz#b14fcd945890388b870cd6db4d6c78d531f25141" - integrity sha512-fq7jgKJT21uWGC1mARBHvvd1JYlEf93o7SuVOB4Lr0x/2UPuNC9Oe9n/GzVeg4oVtqMDfh1wIEJpsdOJEZb+3g== - dependencies: - core-js "^3.6.5" - nanopop "^2.1.0" +"@polka/url@^1.0.0-next.20": + version "1.0.0-next.23" + resolved "https://registry.npmmirror.com/@polka/url/-/url-1.0.0-next.23.tgz#498e41218ab3b6a1419c735e5c6ae2c5ed609b6c" + integrity sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg== -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== +"@rollup/plugin-babel@^6.0.3": + version "6.0.3" + resolved "https://registry.npmmirror.com/@rollup/plugin-babel/-/plugin-babel-6.0.3.tgz#07ccde15de278c581673034ad6accdb4a153dfeb" + integrity sha512-fKImZKppa1A/gX73eg4JGo+8kQr/q1HBQaCGKECZ0v4YBBv3lFqi14+7xyApECzvkLTHCifx+7ntcrvtBIRcpg== + dependencies: + "@babel/helper-module-imports" "^7.18.6" + "@rollup/pluginutils" "^5.0.1" -"@sinonjs/commons@^1.7.0": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" - integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== +"@rollup/plugin-commonjs@^24.1.0": + version "24.1.0" + resolved "https://registry.npmmirror.com/@rollup/plugin-commonjs/-/plugin-commonjs-24.1.0.tgz#79e54bd83bb64396761431eee6c44152ef322100" + integrity sha512-eSL45hjhCWI0jCCXcNtLVqM5N1JlBGvlFfY0m6oOYnLCJ6N0qEXoZql4sY2MOUArzhH4SA/qBpTxvvZp2Sc+DQ== dependencies: - type-detect "4.0.8" + "@rollup/pluginutils" "^5.0.1" + commondir "^1.0.1" + estree-walker "^2.0.2" + glob "^8.0.3" + is-reference "1.2.1" + magic-string "^0.27.0" + +"@rollup/plugin-node-resolve@^15.0.2": + version "15.2.1" + resolved "https://registry.npmmirror.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.1.tgz#a15b14fb7969229e26a30feff2816d39eff503f0" + integrity sha512-nsbUg588+GDSu8/NS8T4UAshO6xeaOfINNuXeVHcKV02LJtoRaM1SiOacClw4kws1SFiNhdLGxlbMY9ga/zs/w== + dependencies: + "@rollup/pluginutils" "^5.0.1" + "@types/resolve" "1.20.2" + deepmerge "^4.2.2" + is-builtin-module "^3.2.1" + is-module "^1.0.0" + resolve "^1.22.1" -"@sinonjs/fake-timers@^8.0.1": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7" - integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== +"@rollup/plugin-terser@^0.4.1": + version "0.4.3" + resolved "https://registry.npmmirror.com/@rollup/plugin-terser/-/plugin-terser-0.4.3.tgz#c2bde2fe3a85e45fa68a454d48f4e73e57f98b30" + integrity sha512-EF0oejTMtkyhrkwCdg0HJ0IpkcaVg1MMSf2olHb2Jp+1mnLM04OhjpJWGma4HobiDTF0WCyViWuvadyE9ch2XA== dependencies: - "@sinonjs/commons" "^1.7.0" + serialize-javascript "^6.0.1" + smob "^1.0.0" + terser "^5.17.4" -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== +"@rollup/pluginutils@^4.1.2", "@rollup/pluginutils@^4.2.0": + version "4.2.1" + resolved "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" + integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== dependencies: - defer-to-connect "^1.0.1" + estree-walker "^2.0.1" + picomatch "^2.2.2" -"@testing-library/dom@^7.26.6": - version "7.31.2" - resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.31.2.tgz#df361db38f5212b88555068ab8119f5d841a8c4a" - integrity sha512-3UqjCpey6HiTZT92vODYLPxTBWlM8ZOOjr3LX5F37/VRipW2M1kX6I/Cm4VXzteZqfGfagg8yXywpcOgQBlNsQ== +"@rollup/pluginutils@^5.0.1", "@rollup/pluginutils@^5.0.2", "@rollup/pluginutils@^5.0.4": + version "5.0.4" + resolved "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.0.4.tgz#74f808f9053d33bafec0cc98e7b835c9667d32ba" + integrity sha512-0KJnIoRI8A+a1dqOYLxH8vBf8bphDmty5QvIm2hqm7oFCFYKCAZWWd2hXgMibaPsNDhI0AtpYfQZJG47pt/k4g== dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/runtime" "^7.12.5" - "@types/aria-query" "^4.2.0" - aria-query "^4.2.2" - chalk "^4.1.0" - dom-accessibility-api "^0.5.6" - lz-string "^1.4.4" - pretty-format "^26.6.2" + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^2.3.1" -"@testing-library/jest-dom@^5.16.1": - version "5.16.1" - resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.16.1.tgz#3db7df5ae97596264a7da9696fe14695ba02e51f" - integrity sha512-ajUJdfDIuTCadB79ukO+0l8O+QwN0LiSxDaYUTI4LndbbUsGi6rWU1SCexXzBA2NSjlVB9/vbkasQIL3tmPBjw== +"@samverschueren/stream-to-observable@^0.3.0": + version "0.3.1" + resolved "https://registry.npmmirror.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301" + integrity sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ== dependencies: - "@babel/runtime" "^7.9.2" - "@types/testing-library__jest-dom" "^5.9.1" - aria-query "^5.0.0" - chalk "^3.0.0" - css "^3.0.0" - css.escape "^1.5.1" - dom-accessibility-api "^0.5.6" - lodash "^4.17.15" - redent "^3.0.0" + any-observable "^0.3.0" -"@testing-library/vue@^5.8.2": - version "5.8.2" - resolved "https://registry.yarnpkg.com/@testing-library/vue/-/vue-5.8.2.tgz#976b2179dc28ceba8dd63b5437edc2749f860252" - integrity sha512-evsQjLw3T/c92ZsXflZMzSN72P06VlgUZMIcrRKn5n9ZX7QgQyebB3DgdmPACf6JgNfP8Y3Lm2212FmeMnWlZw== +"@simonwep/pickr@~1.8.0": + version "1.8.2" + resolved "https://registry.npmmirror.com/@simonwep/pickr/-/pickr-1.8.2.tgz#96dc86675940d7cad63d69c22083dd1cbb9797cb" + integrity sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA== dependencies: - "@babel/runtime" "^7.12.5" - "@testing-library/dom" "^7.26.6" - "@vue/test-utils" "^1.1.0" + core-js "^3.15.1" + nanopop "^2.1.0" "@tootallnate/once@1": version "1.1.2" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + resolved "https://registry.npmmirror.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== +"@tootallnate/once@2": + version "2.0.0" + resolved "https://registry.npmmirror.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" + integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== + "@trysound/sax@0.2.0": version "0.2.0" - resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + resolved "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== -"@types/aria-query@^4.2.0": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.2.tgz#ed4e0ad92306a704f9fb132a0cfcf77486dbe2bc" - integrity sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig== - -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": - version "7.1.17" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.17.tgz#f50ac9d20d64153b510578d84f9643f9a3afbe64" - integrity sha512-6zzkezS9QEIL8yCBvXWxPTJPNuMeECJVxSOhxNY/jfq9LxOTHivaYTqr37n9LknWWRTIkzqH2UilS5QFvfa90A== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.npmmirror.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== -"@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" - integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== - dependencies: - "@babel/types" "^7.3.0" +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.npmmirror.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== -"@types/body-parser@*": - version "1.19.2" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" - integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== - dependencies: - "@types/connect" "*" - "@types/node" "*" +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.npmmirror.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== -"@types/connect-history-api-fallback@*": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae" - integrity sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw== - dependencies: - "@types/express-serve-static-core" "*" - "@types/node" "*" +"@tsconfig/node16@^1.0.2": + version "1.0.4" + resolved "https://registry.npmmirror.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== -"@types/connect@*": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" - integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== +"@types/chai-subset@^1.3.3": + version "1.3.3" + resolved "https://registry.npmmirror.com/@types/chai-subset/-/chai-subset-1.3.3.tgz#97893814e92abd2c534de422cb377e0e0bdaac94" + integrity sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw== dependencies: - "@types/node" "*" - -"@types/estree@*": - version "0.0.50" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" - integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== + "@types/chai" "*" -"@types/estree@0.0.39": - version "0.0.39" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" - integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== +"@types/chai@*", "@types/chai@^4.3.1": + version "4.3.6" + resolved "https://registry.npmmirror.com/@types/chai/-/chai-4.3.6.tgz#7b489e8baf393d5dd1266fb203ddd4ea941259e6" + integrity sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw== -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": - version "4.17.27" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.27.tgz#7a776191e47295d2a05962ecbb3a4ce97e38b401" - integrity sha512-e/sVallzUTPdyOTiqi8O8pMdBBphscvI6E4JYaKlja4Lm+zh7UFSSdW5VMkRbhDtmrONqOUHOXRguPsDckzxNA== +"@types/debug@^4.1.7": + version "4.1.9" + resolved "https://registry.npmmirror.com/@types/debug/-/debug-4.1.9.tgz#906996938bc672aaf2fb8c0d3733ae1dda05b005" + integrity sha512-8Hz50m2eoS56ldRlepxSBa6PWEVCtzUo/92HgLc2qTMnotJNIm7xP+UZhyWoYsyOdd5dxZ+NZLb24rsKyFs2ow== dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" + "@types/ms" "*" -"@types/express@*": - version "4.17.13" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" - integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.18" - "@types/qs" "*" - "@types/serve-static" "*" +"@types/estree@*", "@types/estree@^1.0.0": + version "1.0.2" + resolved "https://registry.npmmirror.com/@types/estree/-/estree-1.0.2.tgz#ff02bc3dc8317cd668dfec247b750ba1f1d62453" + integrity sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA== -"@types/glob@^7.1.1": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== +"@types/fs-extra@^9.0.13": + version "9.0.13" + resolved "https://registry.npmmirror.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" + integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== dependencies: - "@types/minimatch" "*" "@types/node" "*" -"@types/graceful-fs@^4.1.2": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== +"@types/glob@^8.1.0": + version "8.1.0" + resolved "https://registry.npmmirror.com/@types/glob/-/glob-8.1.0.tgz#b63e70155391b0584dce44e7ea25190bbc38f2fc" + integrity sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w== dependencies: + "@types/minimatch" "^5.1.2" "@types/node" "*" -"@types/highlight.js@^9.7.0": - version "9.12.4" - resolved "https://registry.yarnpkg.com/@types/highlight.js/-/highlight.js-9.12.4.tgz#8c3496bd1b50cc04aeefd691140aa571d4dbfa34" - integrity sha512-t2szdkwmg2JJyuCM20e8kR2X59WCE5Zkl4bzm1u1Oukjm79zpbiAv+QjnwLnuuV0WHEcX2NgUItu0pAMKuOPww== - -"@types/http-proxy@^1.17.5": - version "1.17.8" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.8.tgz#968c66903e7e42b483608030ee85800f22d03f55" - integrity sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA== - dependencies: - "@types/node" "*" +"@types/hash-sum@^1.0.0": + version "1.0.0" + resolved "https://registry.npmmirror.com/@types/hash-sum/-/hash-sum-1.0.0.tgz#838f4e8627887d42b162d05f3d96ca636c2bc504" + integrity sha512-FdLBT93h3kcZ586Aee66HPCVJ6qvxVjBlDWNmxSGSbCZe9hTsjRKdSsl4y1T+3zfujxo9auykQMnFsfyHWD7wg== -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": +"@types/istanbul-lib-coverage@^2.0.1": version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" + resolved "https://registry.npmmirror.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== -"@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/jest@*", "@types/jest@^27.0.3": - version "27.0.3" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.0.3.tgz#0cf9dfe9009e467f70a342f0f94ead19842a783a" - integrity sha512-cmmwv9t7gBYt7hNKH5Spu7Kuu/DotGa+Ff+JGRKZ4db5eh8PnKS4LuebJ3YLUoyOyIHraTGyULn23YtEAm0VSg== - dependencies: - jest-diff "^27.0.0" - pretty-format "^27.0.0" - -"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7", "@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/json-schema@^7.0.5", "@types/json-schema@^7.0.9": + version "7.0.13" + resolved "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.13.tgz#02c24f4363176d2d18fc8b70b9f3c54aba178a85" + integrity sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ== "@types/json5@^0.0.29": version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + resolved "https://registry.npmmirror.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/linkify-it@*": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-3.0.2.tgz#fd2cd2edbaa7eaac7e7f3c1748b52a19143846c9" - integrity sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA== + version "3.0.3" + resolved "https://registry.npmmirror.com/@types/linkify-it/-/linkify-it-3.0.3.tgz#15a0712296c5041733c79efe233ba17ae5a7587b" + integrity sha512-pTjcqY9E4nOI55Wgpz7eiI8+LzdYnw3qxXCfHyBDdPbYvbyLgWLJGh8EdPvqawwMK1Uo1794AUkkR38Fr0g+2g== -"@types/markdown-it@^10.0.0": - version "10.0.3" - resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-10.0.3.tgz#a9800d14b112c17f1de76ec33eff864a4815eec7" - integrity sha512-daHJk22isOUvNssVGF2zDnnSyxHhFYhtjeX4oQaKD6QzL3ZR1QSgiD1g+Q6/WSWYVogNXYDXODtbgW/WiFCtyw== +"@types/markdown-it@^12.2.3": + version "12.2.3" + resolved "https://registry.npmmirror.com/@types/markdown-it/-/markdown-it-12.2.3.tgz#0d6f6e5e413f8daaa26522904597be3d6cd93b51" + integrity sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ== dependencies: - "@types/highlight.js" "^9.7.0" "@types/linkify-it" "*" "@types/mdurl" "*" - highlight.js "^9.7.0" "@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== + version "3.0.12" + resolved "https://registry.npmmirror.com/@types/mdast/-/mdast-3.0.12.tgz#beeb511b977c875a5b0cc92eab6fcac2f0895514" + integrity sha512-DT+iNIRNX884cx0/Q1ja7NyUPpZuv0KPyL5rGNxm1WC1OtHstl7n4Jb7nk+xacNShQMbczJjt8uFzznpp6kYBg== dependencies: - "@types/unist" "*" + "@types/unist" "^2" "@types/mdurl@*": version "1.0.2" - resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-1.0.2.tgz#e2ce9d83a613bacf284c7be7d491945e39e1f8e9" + resolved "https://registry.npmmirror.com/@types/mdurl/-/mdurl-1.0.2.tgz#e2ce9d83a613bacf284c7be7d491945e39e1f8e9" integrity sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA== -"@types/mime@^1": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" - integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== - -"@types/minimatch@*", "@types/minimatch@^3.0.3": +"@types/minimatch@^3.0.3": version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" + resolved "https://registry.npmmirror.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== +"@types/minimatch@^5.1.2": + version "5.1.2" + resolved "https://registry.npmmirror.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== + "@types/minimist@^1.2.0": version "1.2.2" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" + resolved "https://registry.npmmirror.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== +"@types/ms@*": + version "0.7.31" + resolved "https://registry.npmmirror.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" + integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== + "@types/node@*": - version "17.0.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.5.tgz#57ca67ec4e57ad9e4ef5a6bab48a15387a1c83e0" - integrity sha512-w3mrvNXLeDYV1GKTZorGJQivK6XLCoGwpnyJFbJVK/aTBQUxOCaa/GlFAAN3OTDFcb7h5tiFG+YXCO2By+riZw== + version "20.7.0" + resolved "https://registry.npmmirror.com/@types/node/-/node-20.7.0.tgz#c03de4572f114a940bc2ca909a33ddb2b925e470" + integrity sha512-zI22/pJW2wUZOVyguFaUL1HABdmSVxpXrzIqkjsHmyUjNhPoWM1CKfvVuXfetHhIok4RY573cqS0mZ1SJEnoTg== "@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + version "2.4.2" + resolved "https://registry.npmmirror.com/@types/normalize-package-data/-/normalize-package-data-2.4.2.tgz#9b0e3e8533fe5024ad32d6637eb9589988b6fdca" + integrity sha512-lqa4UEhhv/2sjjIQgjX8B+RBjj47eo0mzGasklVJ78UKGQY1r0VpB9XHDaZZO9qzEFDdy4MrXLuEaSmPrPSe/A== "@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" + resolved "https://registry.npmmirror.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== -"@types/prettier@^2.1.5": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.2.tgz#4c62fae93eb479660c3bd93f9d24d561597a8281" - integrity sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA== - -"@types/q@^1.5.1": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" - integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== - -"@types/qs@*": - version "6.9.7" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== - -"@types/range-parser@*": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" - integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== - -"@types/resolve@0.0.8": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" - integrity sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ== - dependencies: - "@types/node" "*" - -"@types/serve-static@*": - version "1.13.10" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" - integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== - dependencies: - "@types/mime" "^1" - "@types/node" "*" - -"@types/source-list-map@*": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" - integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== - -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== - -"@types/tapable@^1": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310" - integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ== - -"@types/testing-library__jest-dom@^5.9.1": - version "5.14.2" - resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.2.tgz#564fb2b2dc827147e937a75b639a05d17ce18b44" - integrity sha512-vehbtyHUShPxIa9SioxDwCvgxukDMH//icJG90sXQBUm5lJOHLT5kNeU9tnivhnA/TkOFMzGIXN2cTc4hY8/kg== - dependencies: - "@types/jest" "*" - -"@types/uglify-js@*": - version "3.13.1" - resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.1.tgz#5e889e9e81e94245c75b6450600e1c5ea2878aea" - integrity sha512-O3MmRAk6ZuAKa9CHgg0Pr0+lUOqoMLpc9AS4R8ano2auvsg7IE8syF3Xh/NPr26TWklxYcqoEEFdzLLs1fV9PQ== - dependencies: - source-map "^0.6.1" +"@types/resolve@1.20.2": + version "1.20.2" + resolved "https://registry.npmmirror.com/@types/resolve/-/resolve-1.20.2.tgz#97d26e00cd4a0423b4af620abecf3e6f442b7975" + integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== -"@types/unist@*", "@types/unist@^2.0.2": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" - integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== +"@types/semver@^7.3.12": + version "7.5.3" + resolved "https://registry.npmmirror.com/@types/semver/-/semver-7.5.3.tgz#9a726e116beb26c24f1ccd6850201e1246122e04" + integrity sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw== -"@types/webpack-dev-server@^3": - version "3.11.6" - resolved "https://registry.yarnpkg.com/@types/webpack-dev-server/-/webpack-dev-server-3.11.6.tgz#d8888cfd2f0630203e13d3ed7833a4d11b8a34dc" - integrity sha512-XCph0RiiqFGetukCTC3KVnY1jwLcZ84illFRMbyFzCcWl90B/76ew0tSqF46oBhnLC4obNDG7dMO0JfTN0MgMQ== - dependencies: - "@types/connect-history-api-fallback" "*" - "@types/express" "*" - "@types/serve-static" "*" - "@types/webpack" "^4" - http-proxy-middleware "^1.0.0" +"@types/unist@^2", "@types/unist@^2.0.2": + version "2.0.8" + resolved "https://registry.npmmirror.com/@types/unist/-/unist-2.0.8.tgz#bb197b9639aa1a04cf464a617fe800cccd92ad5c" + integrity sha512-d0XxK3YTObnWVp6rZuev3c49+j4Lo8g4L1ZRm9z5L0xpoZycUPshHgczK5gsUMaZOstjVYYi09p5gYvUtfChYw== + +"@types/web-bluetooth@^0.0.14": + version "0.0.14" + resolved "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.14.tgz#94e175b53623384bff1f354cdb3197a8d63cdbe5" + integrity sha512-5d2RhCard1nQUC3aHcq/gHzWYO6K0WJmAbjO7mQJgCQKtZpgXxv1rOM6O/dBDhDYYVutk1sciOgNSe+5YyfM8A== + +"@typescript-eslint/eslint-plugin@^5.28.0": + version "5.62.0" + resolved "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db" + integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag== + dependencies: + "@eslint-community/regexpp" "^4.4.0" + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/type-utils" "5.62.0" + "@typescript-eslint/utils" "5.62.0" + debug "^4.3.4" + graphemer "^1.4.0" + ignore "^5.2.0" + natural-compare-lite "^1.4.0" + semver "^7.3.7" + tsutils "^3.21.0" -"@types/webpack-sources@*": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-3.2.0.tgz#16d759ba096c289034b26553d2df1bf45248d38b" - integrity sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg== +"@typescript-eslint/parser@^5.28.0": + version "5.62.0" + resolved "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7" + integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA== dependencies: - "@types/node" "*" - "@types/source-list-map" "*" - source-map "^0.7.3" + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/typescript-estree" "5.62.0" + debug "^4.3.4" -"@types/webpack@^4": - version "4.41.32" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.32.tgz#a7bab03b72904070162b2f169415492209e94212" - integrity sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg== +"@typescript-eslint/scope-manager@5.62.0": + version "5.62.0" + resolved "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" + integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== dependencies: - "@types/node" "*" - "@types/tapable" "^1" - "@types/uglify-js" "*" - "@types/webpack-sources" "*" - anymatch "^3.0.0" - source-map "^0.6.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" -"@types/yargs-parser@*": - version "20.2.1" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" - integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== - -"@types/yargs@^15.0.0": - version "15.0.14" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06" - integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ== +"@typescript-eslint/type-utils@5.62.0": + version "5.62.0" + resolved "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz#286f0389c41681376cdad96b309cedd17d70346a" + integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew== dependencies: - "@types/yargs-parser" "*" + "@typescript-eslint/typescript-estree" "5.62.0" + "@typescript-eslint/utils" "5.62.0" + debug "^4.3.4" + tsutils "^3.21.0" -"@types/yargs@^16.0.0": - version "16.0.4" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" - integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== - dependencies: - "@types/yargs-parser" "*" +"@typescript-eslint/types@5.62.0": + version "5.62.0" + resolved "https://registry.npmmirror.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" + integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== -"@typescript-eslint/eslint-plugin@^4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276" - integrity sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg== +"@typescript-eslint/typescript-estree@5.62.0": + version "5.62.0" + resolved "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" + integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== dependencies: - "@typescript-eslint/experimental-utils" "4.33.0" - "@typescript-eslint/scope-manager" "4.33.0" - debug "^4.3.1" - functional-red-black-tree "^1.0.1" - ignore "^5.1.8" - regexpp "^3.1.0" - semver "^7.3.5" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd" - integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q== - dependencies: - "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.33.0" - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/typescript-estree" "4.33.0" +"@typescript-eslint/utils@5.62.0": + version "5.62.0" + resolved "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" + integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/typescript-estree" "5.62.0" eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - -"@typescript-eslint/parser@^4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899" - integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA== - dependencies: - "@typescript-eslint/scope-manager" "4.33.0" - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/typescript-estree" "4.33.0" - debug "^4.3.1" - -"@typescript-eslint/scope-manager@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" - integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ== - dependencies: - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/visitor-keys" "4.33.0" - -"@typescript-eslint/types@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" - integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== - -"@typescript-eslint/typescript-estree@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" - integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== - dependencies: - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/visitor-keys" "4.33.0" - debug "^4.3.1" - globby "^11.0.3" - is-glob "^4.0.1" - semver "^7.3.5" - tsutils "^3.21.0" + semver "^7.3.7" -"@typescript-eslint/visitor-keys@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" - integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg== +"@typescript-eslint/visitor-keys@5.62.0": + version "5.62.0" + resolved "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" + integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== dependencies: - "@typescript-eslint/types" "4.33.0" - eslint-visitor-keys "^2.0.0" - -"@vue/babel-helper-vue-jsx-merge-props@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz#31624a7a505fb14da1d58023725a4c5f270e6a81" - integrity sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA== + "@typescript-eslint/types" "5.62.0" + eslint-visitor-keys "^3.3.0" -"@vue/babel-helper-vue-transform-on@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz#9b9c691cd06fc855221a2475c3cc831d774bc7dc" - integrity sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA== - -"@vue/babel-plugin-jsx@^1.0.3": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz#0c5bac27880d23f89894cd036a37b55ef61ddfc1" - integrity sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.0.0" - "@babel/template" "^7.0.0" - "@babel/traverse" "^7.0.0" - "@babel/types" "^7.0.0" - "@vue/babel-helper-vue-transform-on" "^1.0.2" - camelcase "^6.0.0" - html-tags "^3.1.0" - svg-tags "^1.0.0" - -"@vue/babel-plugin-transform-vue-jsx@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.2.1.tgz#646046c652c2f0242727f34519d917b064041ed7" - integrity sha512-HJuqwACYehQwh1fNT8f4kyzqlNMpBuUK4rSiSES5D4QsYncv5fxFsLyrxFPG2ksO7t5WP+Vgix6tt6yKClwPzA== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1" - html-tags "^2.0.0" - lodash.kebabcase "^4.1.1" - svg-tags "^1.0.0" - -"@vue/babel-preset-app@^4.1.2": - version "4.5.15" - resolved "https://registry.yarnpkg.com/@vue/babel-preset-app/-/babel-preset-app-4.5.15.tgz#f6bc08f8f674e98a260004234cde18b966d72eb0" - integrity sha512-J+YttzvwRfV1BPczf8r3qCevznYk+jh531agVF+5EYlHF4Sgh/cGXTz9qkkiux3LQgvhEGXgmCteg1n38WuuKg== +"@vitejs/plugin-vue-jsx@^1.0.0": + version "1.3.10" + resolved "https://registry.npmmirror.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-1.3.10.tgz#5b61294ed4334fbc5f5679243fd3ccc448b26044" + integrity sha512-Cf5zznh4yNMiEMBfTOztaDVDmK1XXfgxClzOSUVUc8WAmHzogrCUeM8B05ABzuGtg0D1amfng+mUmSIOFGP3Pw== dependencies: - "@babel/core" "^7.11.0" - "@babel/helper-compilation-targets" "^7.9.6" - "@babel/helper-module-imports" "^7.8.3" - "@babel/plugin-proposal-class-properties" "^7.8.3" - "@babel/plugin-proposal-decorators" "^7.8.3" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-jsx" "^7.8.3" - "@babel/plugin-transform-runtime" "^7.11.0" - "@babel/preset-env" "^7.11.0" - "@babel/runtime" "^7.11.0" - "@vue/babel-plugin-jsx" "^1.0.3" - "@vue/babel-preset-jsx" "^1.2.4" - babel-plugin-dynamic-import-node "^2.3.3" - core-js "^3.6.5" - core-js-compat "^3.6.5" - semver "^6.1.0" + "@babel/core" "^7.17.9" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-transform-typescript" "^7.16.8" + "@rollup/pluginutils" "^4.2.0" + "@vue/babel-plugin-jsx" "^1.1.1" + hash-sum "^2.0.0" -"@vue/babel-preset-jsx@^1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@vue/babel-preset-jsx/-/babel-preset-jsx-1.2.4.tgz#92fea79db6f13b01e80d3a0099e2924bdcbe4e87" - integrity sha512-oRVnmN2a77bYDJzeGSt92AuHXbkIxbf/XXSE3klINnh9AXBmVS1DGa1f0d+dDYpLfsAKElMnqKTQfKn7obcL4w== - dependencies: - "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1" - "@vue/babel-plugin-transform-vue-jsx" "^1.2.1" - "@vue/babel-sugar-composition-api-inject-h" "^1.2.1" - "@vue/babel-sugar-composition-api-render-instance" "^1.2.4" - "@vue/babel-sugar-functional-vue" "^1.2.2" - "@vue/babel-sugar-inject-h" "^1.2.2" - "@vue/babel-sugar-v-model" "^1.2.3" - "@vue/babel-sugar-v-on" "^1.2.3" - -"@vue/babel-sugar-composition-api-inject-h@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.2.1.tgz#05d6e0c432710e37582b2be9a6049b689b6f03eb" - integrity sha512-4B3L5Z2G+7s+9Bwbf+zPIifkFNcKth7fQwekVbnOA3cr3Pq71q71goWr97sk4/yyzH8phfe5ODVzEjX7HU7ItQ== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@vue/babel-sugar-composition-api-render-instance@^1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.2.4.tgz#e4cbc6997c344fac271785ad7a29325c51d68d19" - integrity sha512-joha4PZznQMsxQYXtR3MnTgCASC9u3zt9KfBxIeuI5g2gscpTsSKRDzWQt4aqNIpx6cv8On7/m6zmmovlNsG7Q== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@vue/babel-sugar-functional-vue@^1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.2.2.tgz#267a9ac8d787c96edbf03ce3f392c49da9bd2658" - integrity sha512-JvbgGn1bjCLByIAU1VOoepHQ1vFsroSA/QkzdiSs657V79q6OwEWLCQtQnEXD/rLTA8rRit4rMOhFpbjRFm82w== +"@vitejs/plugin-vue-jsx@^3.0.0": + version "3.0.2" + resolved "https://registry.npmmirror.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.0.2.tgz#f071274f78ea8132c6731986893b7c5c5231af24" + integrity sha512-obF26P2Z4Ogy3cPp07B4VaW6rpiu0ue4OT2Y15UxT5BZZ76haUY9guOsZV3uWh/I6xc+VeiW+ZVabRE82FyzWw== dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" + "@babel/core" "^7.22.10" + "@babel/plugin-transform-typescript" "^7.22.10" + "@vue/babel-plugin-jsx" "^1.1.5" -"@vue/babel-sugar-inject-h@^1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.2.2.tgz#d738d3c893367ec8491dcbb669b000919293e3aa" - integrity sha512-y8vTo00oRkzQTgufeotjCLPAvlhnpSkcHFEp60+LJUwygGcd5Chrpn5480AQp/thrxVm8m2ifAk0LyFel9oCnw== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" +"@vitejs/plugin-vue@^2.3.1": + version "2.3.4" + resolved "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-2.3.4.tgz#966a6279060eb2d9d1a02ea1a331af071afdcf9e" + integrity sha512-IfFNbtkbIm36O9KB8QodlwwYvTEsJb4Lll4c2IwB3VHc2gie2mSPtSzL0eYay7X2jd/2WX02FjSGTWR6OPr/zg== -"@vue/babel-sugar-v-model@^1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.2.3.tgz#fa1f29ba51ebf0aa1a6c35fa66d539bc459a18f2" - integrity sha512-A2jxx87mySr/ulAsSSyYE8un6SIH0NWHiLaCWpodPCVOlQVODCaSpiR4+IMsmBr73haG+oeCuSvMOM+ttWUqRQ== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1" - "@vue/babel-plugin-transform-vue-jsx" "^1.2.1" - camelcase "^5.0.0" - html-tags "^2.0.0" - svg-tags "^1.0.0" +"@vitejs/plugin-vue@^4.0.0": + version "4.3.4" + resolved "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.3.4.tgz#a289dff38e01949fe7be581d5542cabaeb961dec" + integrity sha512-ciXNIHKPriERBisHFBvnTbfKa6r9SAesOYXeGDzgegcvy9Q4xdScSHAmKbNT0M3O0S9LKhIf5/G+UYG4NnnzYw== -"@vue/babel-sugar-v-on@^1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.2.3.tgz#342367178586a69f392f04bfba32021d02913ada" - integrity sha512-kt12VJdz/37D3N3eglBywV8GStKNUhNrsxChXIV+o0MwVXORYuhDTHJRKPgLJRb/EY3vM2aRFQdxJBp9CLikjw== +"@vitest/ui@^0.16.0": + version "0.16.0" + resolved "https://registry.npmmirror.com/@vitest/ui/-/ui-0.16.0.tgz#0bf730a26460c1703aaf27ab64b0917f86ac1fe3" + integrity sha512-RwXYTFA2tVwUhuuTcdAaK5kIq+I3pnvNQUojPThZPZhS7ttKXkCgWwud0KXwnR04ofKc3HXEuzWPf6s7JD1vgw== dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-plugin-transform-vue-jsx" "^1.2.1" - camelcase "^5.0.0" + sirv "^2.0.2" -"@vue/component-compiler-utils@^3.1.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz#f9f5fb53464b0c37b2c8d2f3fbfe44df60f61dc9" - integrity sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ== - dependencies: - consolidate "^0.15.1" - hash-sum "^1.0.2" - lru-cache "^4.1.2" - merge-source-map "^1.1.0" - postcss "^7.0.36" - postcss-selector-parser "^6.0.2" - source-map "~0.6.1" - vue-template-es2015-compiler "^1.9.0" - optionalDependencies: - prettier "^1.18.2 || ^2.0.0" +"@vue/babel-helper-vue-transform-on@^1.1.5": + version "1.1.5" + resolved "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.1.5.tgz#a976486b21e108e545524fe41ffe3fc9bbc28c7f" + integrity sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w== -"@vue/composition-api@^1.4.0": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@vue/composition-api/-/composition-api-1.4.3.tgz#c80eb8c692e16ebfcdab4af5344a6e3ff8ccc38e" - integrity sha512-Qp4rMbESO05/7/Imck027X5lPhbmMX/mtYSDvIMJ14PS4KHY/4GllnQbPEfsBEe1LECFE6HWx2k7HYgcuYNvpg== - dependencies: - tslib "^2.3.1" +"@vue/babel-plugin-jsx@^1.1.1", "@vue/babel-plugin-jsx@^1.1.5": + version "1.1.5" + resolved "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.5.tgz#5088bae7dbb83531d94df3742ff650c12fd54973" + integrity sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g== + dependencies: + "@babel/helper-module-imports" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.22.5" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.5" + "@babel/types" "^7.22.5" + "@vue/babel-helper-vue-transform-on" "^1.1.5" + camelcase "^6.3.0" + html-tags "^3.3.1" + svg-tags "^1.0.0" -"@vue/test-utils@1.3.0", "@vue/test-utils@^1.1.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.3.0.tgz#d563decdcd9c68a7bca151d4179a2bfd6d5c3e15" - integrity sha512-Xk2Xiyj2k5dFb8eYUKkcN9PzqZSppTlx7LaQWBbdA8tqh3jHr/KHX2/YLhNFc/xwDrgeLybqd+4ZCPJSGPIqeA== - dependencies: - dom-event-types "^1.0.0" - lodash "^4.17.15" - pretty "^2.0.0" - -"@vuepress-dumi/vuepress-plugin-dumi-previewer@0.3.11", "@vuepress-dumi/vuepress-plugin-dumi-previewer@latest": - version "0.3.11" - resolved "https://registry.yarnpkg.com/@vuepress-dumi/vuepress-plugin-dumi-previewer/-/vuepress-plugin-dumi-previewer-0.3.11.tgz#0a1b17a2fd7401d43a8a5b83b5c6f7938e8115c3" - integrity sha512-jx/NaeSMV9Chk98CZbPnyTqlaqeveUtXQDi3Zo3Lonwf+vx47kDVO33gSio8BEGgld9VmIdIiAWQx00QiR1WNQ== - dependencies: - "@babel/standalone" "^7.14.0" - "@vuepress/markdown" "^1.8.0" - babel-helper-vue-jsx-merge-props "^2.0.3" - babel-plugin-syntax-jsx "^6.18.0" - babel-plugin-transform-vue-jsx "^3.7.0" - copy-to-clipboard "^3.3.1" - markdown-it-container "^3.0.0" - vue-template-compiler "^2.6.12" - -"@vuepress-dumi/vuepress-theme-dumi@0.3.11": - version "0.3.11" - resolved "https://registry.yarnpkg.com/@vuepress-dumi/vuepress-theme-dumi/-/vuepress-theme-dumi-0.3.11.tgz#2b46f6e7fc55230ea32a4f4f8d166e9efff0012f" - integrity sha512-uqV9qhuDEG7D1OGHlfcTJVWbQPR9/np6b8HROSefogVjz6DCT+U7WZZ8dYDSS6QRMS3VDJN9QCtIEr0zfvj0lQ== - dependencies: - "@vuepress-dumi/vuepress-plugin-dumi-previewer" latest - -"@vuepress/core@1.9.5": - version "1.9.5" - resolved "https://registry.yarnpkg.com/@vuepress/core/-/core-1.9.5.tgz#5cebc0248a2364de8a0df825f976eea6250b945f" - integrity sha512-Fv9obu+eLkflrPFpdL4qv42Rso0AzDDLk/0dGANF9yqi7t3XgIvWV8oiiUa1cg/m/Sgel5RlSjJxDPWrnXjDCQ== - dependencies: - "@babel/core" "^7.8.4" - "@vue/babel-preset-app" "^4.1.2" - "@vuepress/markdown" "1.9.5" - "@vuepress/markdown-loader" "1.9.5" - "@vuepress/plugin-last-updated" "1.9.5" - "@vuepress/plugin-register-components" "1.9.5" - "@vuepress/shared-utils" "1.9.5" - "@vuepress/types" "1.9.5" - autoprefixer "^9.5.1" - babel-loader "^8.0.4" - bundle-require "2.1.8" - cache-loader "^3.0.0" - chokidar "^2.0.3" - connect-history-api-fallback "^1.5.0" - copy-webpack-plugin "^5.0.2" - core-js "^3.6.4" - cross-spawn "^6.0.5" - css-loader "^2.1.1" - esbuild "0.14.7" - file-loader "^3.0.1" - js-yaml "^3.13.1" - lru-cache "^5.1.1" - mini-css-extract-plugin "0.6.0" - optimize-css-assets-webpack-plugin "^5.0.1" - portfinder "^1.0.13" - postcss-loader "^3.0.0" - postcss-safe-parser "^4.0.1" +"@vue/compiler-core@3.3.4": + version "3.3.4" + resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.4.tgz#7fbf591c1c19e1acd28ffd284526e98b4f581128" + integrity sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g== + dependencies: + "@babel/parser" "^7.21.3" + "@vue/shared" "3.3.4" + estree-walker "^2.0.2" + source-map-js "^1.0.2" + +"@vue/compiler-dom@3.3.4": + version "3.3.4" + resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz#f56e09b5f4d7dc350f981784de9713d823341151" + integrity sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w== + dependencies: + "@vue/compiler-core" "3.3.4" + "@vue/shared" "3.3.4" + +"@vue/compiler-sfc@3.3.4", "@vue/compiler-sfc@^3.2.31": + version "3.3.4" + resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz#b19d942c71938893535b46226d602720593001df" + integrity sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ== + dependencies: + "@babel/parser" "^7.20.15" + "@vue/compiler-core" "3.3.4" + "@vue/compiler-dom" "3.3.4" + "@vue/compiler-ssr" "3.3.4" + "@vue/reactivity-transform" "3.3.4" + "@vue/shared" "3.3.4" + estree-walker "^2.0.2" + magic-string "^0.30.0" + postcss "^8.1.10" + source-map-js "^1.0.2" + +"@vue/compiler-ssr@3.3.4": + version "3.3.4" + resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz#9d1379abffa4f2b0cd844174ceec4a9721138777" + integrity sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ== + dependencies: + "@vue/compiler-dom" "3.3.4" + "@vue/shared" "3.3.4" + +"@vue/devtools-api@^6.1.4", "@vue/devtools-api@^6.5.0": + version "6.5.0" + resolved "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.5.0.tgz#98b99425edee70b4c992692628fa1ea2c1e57d07" + integrity sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q== + +"@vue/reactivity-transform@3.3.4": + version "3.3.4" + resolved "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz#52908476e34d6a65c6c21cd2722d41ed8ae51929" + integrity sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw== + dependencies: + "@babel/parser" "^7.20.15" + "@vue/compiler-core" "3.3.4" + "@vue/shared" "3.3.4" + estree-walker "^2.0.2" + magic-string "^0.30.0" + +"@vue/reactivity@3.3.4": + version "3.3.4" + resolved "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.4.tgz#a27a29c6cd17faba5a0e99fbb86ee951653e2253" + integrity sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ== + dependencies: + "@vue/shared" "3.3.4" + +"@vue/runtime-core@3.3.4": + version "3.3.4" + resolved "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.4.tgz#4bb33872bbb583721b340f3088888394195967d1" + integrity sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA== + dependencies: + "@vue/reactivity" "3.3.4" + "@vue/shared" "3.3.4" + +"@vue/runtime-dom@3.3.4": + version "3.3.4" + resolved "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz#992f2579d0ed6ce961f47bbe9bfe4b6791251566" + integrity sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ== + dependencies: + "@vue/runtime-core" "3.3.4" + "@vue/shared" "3.3.4" + csstype "^3.1.1" + +"@vue/server-renderer@3.3.4", "@vue/server-renderer@^3.2.31": + version "3.3.4" + resolved "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.4.tgz#ea46594b795d1536f29bc592dd0f6655f7ea4c4c" + integrity sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ== + dependencies: + "@vue/compiler-ssr" "3.3.4" + "@vue/shared" "3.3.4" + +"@vue/shared@3.3.4", "@vue/shared@^3.2.31": + version "3.3.4" + resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.4.tgz#06e83c5027f464eef861c329be81454bc8b70780" + integrity sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ== + +"@vue/test-utils@^2.0.0": + version "2.4.1" + resolved "https://registry.npmmirror.com/@vue/test-utils/-/test-utils-2.4.1.tgz#7db869b4142d2a5fce4ad6c6dfa01c8ea524f26c" + integrity sha512-VO8nragneNzUZUah6kOjiFmD/gwRjUauG9DROh6oaOeFwX1cZRUNHhdeogE8635cISigXFTtGLUQWx5KCb0xeg== + dependencies: + js-beautify "1.14.9" + vue-component-type-helpers "1.8.4" + +"@vuepress/bundler-vite@2.0.0-beta.38": + version "2.0.0-beta.38" + resolved "https://registry.npmmirror.com/@vuepress/bundler-vite/-/bundler-vite-2.0.0-beta.38.tgz#d522f6ea433336b902f5df5ec7dcbbc34aee2421" + integrity sha512-CoFwtheF7v7iYuDrGwlLGoKoc91YgK+NpXolaq4UjfWhhqOdkfHjCz4oEj3EPl0cwm/8qs3V7JwVzqtIW8ovRg== + dependencies: + "@vitejs/plugin-vue" "^2.3.1" + "@vue/compiler-sfc" "^3.2.31" + "@vue/server-renderer" "^3.2.31" + "@vuepress/client" "2.0.0-beta.38" + "@vuepress/core" "2.0.0-beta.38" + "@vuepress/shared" "2.0.0-beta.38" + "@vuepress/utils" "2.0.0-beta.38" + autoprefixer "^10.4.4" + connect-history-api-fallback "^1.6.0" + postcss "^8.4.12" + postcss-csso "^6.0.0" + rollup "^2.70.1" + vite "~2.9.1" + vue "^3.2.31" + vue-router "^4.0.14" + +"@vuepress/cli@2.0.0-beta.38": + version "2.0.0-beta.38" + resolved "https://registry.npmmirror.com/@vuepress/cli/-/cli-2.0.0-beta.38.tgz#111314d33adab268ac5b7cf847ad3e6c51f388f8" + integrity sha512-gP/MYjhZQ/ehvni7oo25GMp7yCL7HhCjxOh2yT1h1MRjXJAA4SStSN2okqQbDw8YbkCWvgGuRqRJjny+wpbZLw== + dependencies: + "@vuepress/core" "2.0.0-beta.38" + "@vuepress/utils" "2.0.0-beta.38" + cac "^6.7.12" + chokidar "^3.5.3" + envinfo "^7.8.1" + esbuild "^0.14.29" + +"@vuepress/client@2.0.0-beta.38", "@vuepress/client@^2.0.0-beta.37": + version "2.0.0-beta.38" + resolved "https://registry.npmmirror.com/@vuepress/client/-/client-2.0.0-beta.38.tgz#ffd57932465d2fd68c5be2defd387537893ec293" + integrity sha512-siwZECsly5Rzn8yTo7u3R/vZWyPoh1yR8VESPflwfi3dIRhQLVfUsnyCC0OBz5INqB+etUiQtuY4WpNPYJcNuA== + dependencies: + "@vue/devtools-api" "^6.1.4" + "@vuepress/shared" "2.0.0-beta.38" + vue "^3.2.31" + vue-router "^4.0.14" + +"@vuepress/core@2.0.0-beta.38", "@vuepress/core@^2.0.0-beta.37": + version "2.0.0-beta.38" + resolved "https://registry.npmmirror.com/@vuepress/core/-/core-2.0.0-beta.38.tgz#6e2daa3b0f502dc74a7e942bbb1142bdb4ed4b10" + integrity sha512-NgTeDdhspM6mxwAafThzMYO4rhkeT3bQYdPzcZ2uEaK36zbEqRhsnrzN9X3QXfefIlX8//HF9BdAJx0+gPJErQ== + dependencies: + "@vuepress/client" "2.0.0-beta.38" + "@vuepress/markdown" "2.0.0-beta.38" + "@vuepress/shared" "2.0.0-beta.38" + "@vuepress/utils" "2.0.0-beta.38" + gray-matter "^4.0.3" toml "^3.0.0" - url-loader "^1.0.1" - vue "^2.6.10" - vue-loader "^15.7.1" - vue-router "^3.4.5" - vue-server-renderer "^2.6.10" - vue-template-compiler "^2.6.10" - vuepress-html-webpack-plugin "^3.2.0" - vuepress-plugin-container "^2.0.2" - webpack "^4.8.1" - webpack-chain "^6.0.0" - webpack-dev-server "^3.5.1" - webpack-merge "^4.1.2" - webpackbar "3.2.0" - -"@vuepress/markdown-loader@1.9.5": - version "1.9.5" - resolved "https://registry.yarnpkg.com/@vuepress/markdown-loader/-/markdown-loader-1.9.5.tgz#daf966759ed26daa09e352398f9b9a740d6ce5f1" - integrity sha512-Y4pxXQpOf2gvxGMPKEotHJKqVAIi+HfqKQAJPd/0zhsFn6F54qOsuhohXOvtx3sAUnbYmuM5+zS/Jpvh6UMebA== - dependencies: - "@vuepress/markdown" "1.9.5" - loader-utils "^1.1.0" - lru-cache "^5.1.1" -"@vuepress/markdown@1.9.5", "@vuepress/markdown@^1.8.0": - version "1.9.5" - resolved "https://registry.yarnpkg.com/@vuepress/markdown/-/markdown-1.9.5.tgz#5edd47f13118931e6b93a7e823b9336acbcd96d4" - integrity sha512-6W2hen+9qhkSuj/j403QaWxMcnqQSnZqjHr1qt581zNz1xLwgkSva7IzfGWxEVdCkwtM8+JWZrDEkzt4UyItXA== - dependencies: - "@vuepress/shared-utils" "1.9.5" - markdown-it "^8.4.1" - markdown-it-anchor "^5.0.2" - markdown-it-chain "^1.3.0" - markdown-it-emoji "^1.4.0" - markdown-it-table-of-contents "^0.4.0" - prismjs "^1.13.0" - -"@vuepress/plugin-active-header-links@1.9.5": - version "1.9.5" - resolved "https://registry.yarnpkg.com/@vuepress/plugin-active-header-links/-/plugin-active-header-links-1.9.5.tgz#db24938fba6500508259eb4ab4b5f26f876c14c9" - integrity sha512-Pi6cu5Ed4m6Ri8QatigapdXqhEcZXd/s+lyhdKWIwjJQaMSYlyAN2pX8Pqm4vqAvW6c0Dw2wEXrd989BcI7T4g== - dependencies: - "@vuepress/types" "1.9.5" - lodash.debounce "^4.0.8" - -"@vuepress/plugin-back-to-top@^1.8.2": - version "1.9.5" - resolved "https://registry.yarnpkg.com/@vuepress/plugin-back-to-top/-/plugin-back-to-top-1.9.5.tgz#61e2f5aa84f07306843db5e13f53a386aa89e443" - integrity sha512-zcESgBsH5EYQLUN+EtxDYKHyPmZXIgLEReaKU8ddRaMxzodMXW84WtCmsc0En/P9wkf4SOXZkmWllH53rZWrzQ== - dependencies: - "@vuepress/types" "1.9.5" - lodash.debounce "^4.0.8" - -"@vuepress/plugin-last-updated@1.9.5": - version "1.9.5" - resolved "https://registry.yarnpkg.com/@vuepress/plugin-last-updated/-/plugin-last-updated-1.9.5.tgz#e0f8c3c1bac84fb7711936b3eadf2cc751bd868f" - integrity sha512-coy5zMgAHVno+c8yGMwxBhkTNMBYoRJdogzuVQRgITJRDZfToiKSza3RDQkFfn1YluCps2v/9NQSHwPnhEv6eA== - dependencies: - "@vuepress/types" "1.9.5" - cross-spawn "^6.0.5" +"@vuepress/markdown@2.0.0-beta.38": + version "2.0.0-beta.38" + resolved "https://registry.npmmirror.com/@vuepress/markdown/-/markdown-2.0.0-beta.38.tgz#def50e87ac00eec5b86bd06fa3b8e6a1c37167b6" + integrity sha512-FB4md4zONcFELYkfppGlnrQl3fOtNhHsHG3X7jj8boOW/GmUROy3A0RBGIklf4Ox6q4Se1qjdcdI/1lZy9mcsQ== + dependencies: + "@types/markdown-it" "^12.2.3" + "@vuepress/shared" "2.0.0-beta.38" + "@vuepress/utils" "2.0.0-beta.38" + markdown-it "^12.3.2" + markdown-it-anchor "^8.4.1" + markdown-it-emoji "^2.0.0" + mdurl "^1.0.1" -"@vuepress/plugin-medium-zoom@^1.8.2": - version "1.9.5" - resolved "https://registry.yarnpkg.com/@vuepress/plugin-medium-zoom/-/plugin-medium-zoom-1.9.5.tgz#71d71312ea4d579883bdfda554ef4ed1c434bac2" - integrity sha512-ANHfmsPxF+lDtPHa0RlRlsfM6J5Bg2PWNfWxLGET9UxgN4tFX1cq3QLUk+yxoNIb5XFUtqEA2gR7nRc2i0Kt0Q== - dependencies: - "@vuepress/types" "1.9.5" - medium-zoom "^1.0.4" +"@vuepress/plugin-active-header-links@2.0.0-beta.38", "@vuepress/plugin-active-header-links@^2.0.0-beta.37": + version "2.0.0-beta.38" + resolved "https://registry.npmmirror.com/@vuepress/plugin-active-header-links/-/plugin-active-header-links-2.0.0-beta.38.tgz#c14c7f3cb9bf3689fb659b6d28855e4d3043d686" + integrity sha512-cQIglb/zRkd1Dyc2W69LHmKI5cbf1FaMpWwTxXrOKPY4/DFIV5bS0/8QbBBt/dEr+oydfJBpydFeyaDRZVm6Ng== + dependencies: + "@vuepress/client" "2.0.0-beta.38" + "@vuepress/core" "2.0.0-beta.38" + "@vuepress/utils" "2.0.0-beta.38" + ts-debounce "^4.0.0" + vue "^3.2.31" + vue-router "^4.0.14" + +"@vuepress/plugin-back-to-top@2.0.0-beta.38", "@vuepress/plugin-back-to-top@^2.0.0-beta.37": + version "2.0.0-beta.38" + resolved "https://registry.npmmirror.com/@vuepress/plugin-back-to-top/-/plugin-back-to-top-2.0.0-beta.38.tgz#96766d4d18e290d5d272c685f1feda26b2b6abf6" + integrity sha512-tWkhCB632OFKXqDDT0rKwTqQJOpiUxRpWhfNs1tzS4yNBzGkj5LGEubcwQbNQR0ujHkw/N6V+ehmWBC/RCNwjw== + dependencies: + "@vuepress/core" "2.0.0-beta.38" + "@vuepress/utils" "2.0.0-beta.38" + ts-debounce "^4.0.0" + vue "^3.2.31" + +"@vuepress/plugin-container@2.0.0-beta.38", "@vuepress/plugin-container@^2.0.0-beta.37": + version "2.0.0-beta.38" + resolved "https://registry.npmmirror.com/@vuepress/plugin-container/-/plugin-container-2.0.0-beta.38.tgz#2084f969a1eb6edf368d9ce8a45eb9674c7076ef" + integrity sha512-3CNiBzCBKLjfH/8IVeb9hT6QG8CVNuoiMdZ8mlaKrwAq4F0KkViwJLNSI/DyuFfIGMGfEMX2smkpCvtY7okAbg== + dependencies: + "@types/markdown-it" "^12.2.3" + "@vuepress/core" "2.0.0-beta.38" + "@vuepress/markdown" "2.0.0-beta.38" + "@vuepress/shared" "2.0.0-beta.38" + "@vuepress/utils" "2.0.0-beta.38" + markdown-it "^12.3.2" + markdown-it-container "^3.0.0" -"@vuepress/plugin-nprogress@1.9.5": - version "1.9.5" - resolved "https://registry.yarnpkg.com/@vuepress/plugin-nprogress/-/plugin-nprogress-1.9.5.tgz#baaf23193410974089ea56d14dd9a32474705a15" - integrity sha512-XEtyCt/R/qNcQM62/F6srqOZ6V6mmxSqfQktPMYfOdQqeRW0aCXvG6N2/cy55S4xH8LeEVL4Nxg5m9Cew9AEgA== - dependencies: - "@vuepress/types" "1.9.5" +"@vuepress/plugin-external-link-icon@2.0.0-beta.38", "@vuepress/plugin-external-link-icon@^2.0.0-beta.37": + version "2.0.0-beta.38" + resolved "https://registry.npmmirror.com/@vuepress/plugin-external-link-icon/-/plugin-external-link-icon-2.0.0-beta.38.tgz#c7912634e5a00b7ca15258dc1e91356a8c86e556" + integrity sha512-vQNpVqkZ0uo7pPMpZ+GwxdxJCKhNcCBYGQBOQsBlFJjFL6ZDLlF5Gp5lZoRRMsGCkusNCMFaBGVAeGP9gDjC6A== + dependencies: + "@vuepress/client" "2.0.0-beta.38" + "@vuepress/core" "2.0.0-beta.38" + "@vuepress/markdown" "2.0.0-beta.38" + "@vuepress/utils" "2.0.0-beta.38" + vue "^3.2.31" + +"@vuepress/plugin-git@2.0.0-beta.38", "@vuepress/plugin-git@^2.0.0-beta.37": + version "2.0.0-beta.38" + resolved "https://registry.npmmirror.com/@vuepress/plugin-git/-/plugin-git-2.0.0-beta.38.tgz#92a162edb5d209bf84af383890d44d85c2278798" + integrity sha512-3pWsTdo87JakN0j3ztAT/eSrdF+y1zTd4ASeA4feGnRyt4cobzy1DHoScb5QwI9AfEHKMBAomDJhNLXIk4QzNg== + dependencies: + "@vuepress/core" "2.0.0-beta.38" + execa "^5.1.1" + +"@vuepress/plugin-medium-zoom@2.0.0-beta.38", "@vuepress/plugin-medium-zoom@^2.0.0-beta.37": + version "2.0.0-beta.38" + resolved "https://registry.npmmirror.com/@vuepress/plugin-medium-zoom/-/plugin-medium-zoom-2.0.0-beta.38.tgz#9d4150fba3c2797d32ca0648e1a3eefb79953c05" + integrity sha512-ERuvdkaPSbloHUBAUjJBj1pXWluEZdC5j18eQ478jtYdC/QLd/BDyM2KP1xwWcn+cOrLJ9L8/7NBTjfxUWBpWg== + dependencies: + "@vuepress/client" "2.0.0-beta.38" + "@vuepress/core" "2.0.0-beta.38" + "@vuepress/utils" "2.0.0-beta.38" + medium-zoom "^1.0.6" + vue "^3.2.31" + +"@vuepress/plugin-nprogress@2.0.0-beta.38", "@vuepress/plugin-nprogress@^2.0.0-beta.37": + version "2.0.0-beta.38" + resolved "https://registry.npmmirror.com/@vuepress/plugin-nprogress/-/plugin-nprogress-2.0.0-beta.38.tgz#6d0be4a7793ab21d3324e917e9d75e99f6f2c522" + integrity sha512-0P43/DK5w8IUzXaKXjeIALRCWNjzS+VcIBaJatHn56oR0kZHSaeQTL6mpfztXghXEcW5okUAnz8owYdZd1hyLA== + dependencies: + "@vuepress/client" "2.0.0-beta.38" + "@vuepress/core" "2.0.0-beta.38" + "@vuepress/utils" "2.0.0-beta.38" nprogress "^0.2.0" + vue "^3.2.31" + vue-router "^4.0.14" + +"@vuepress/plugin-palette@2.0.0-beta.38": + version "2.0.0-beta.38" + resolved "https://registry.npmmirror.com/@vuepress/plugin-palette/-/plugin-palette-2.0.0-beta.38.tgz#7adbf006d84624155f3020e7f724be13aa0afd9c" + integrity sha512-V14jK0M8scRLwExsOeWAWJEAXk1GVA69522DtEilFBJ0WiId21i68gbPWoeOI9ZcdJQuA/NnCuF4/ogLv6O3Fw== + dependencies: + "@vuepress/core" "2.0.0-beta.38" + "@vuepress/utils" "2.0.0-beta.38" + chokidar "^3.5.3" + +"@vuepress/plugin-prismjs@2.0.0-beta.38", "@vuepress/plugin-prismjs@^2.0.0-beta.37": + version "2.0.0-beta.38" + resolved "https://registry.npmmirror.com/@vuepress/plugin-prismjs/-/plugin-prismjs-2.0.0-beta.38.tgz#a4ee05572870a13db97e2671c9fd72416cc7cda9" + integrity sha512-zQQ138gqIMfO52UV67L2KA4MgiUl7TDTLwQKdm96+8+Om9iUe8qpOPzxyZRaO2WVZSXVkJDnvTjon2jqVkhm8A== + dependencies: + "@vuepress/core" "2.0.0-beta.38" + prismjs "^1.27.0" + +"@vuepress/plugin-search@2.0.0-beta.38", "@vuepress/plugin-search@^2.0.0-beta.37": + version "2.0.0-beta.38" + resolved "https://registry.npmmirror.com/@vuepress/plugin-search/-/plugin-search-2.0.0-beta.38.tgz#aecbd09cf228f6f0552c1ee94d9abebb238dd6a8" + integrity sha512-bv5rDpXFjssYiP6wDdskObcKm9cEevKXVThx/F+0rwN0mVACqbEET0RvLeoU3uE5PYWJYB6lmh7xdn/74fPkWg== + dependencies: + "@vuepress/client" "2.0.0-beta.38" + "@vuepress/core" "2.0.0-beta.38" + "@vuepress/shared" "2.0.0-beta.38" + "@vuepress/utils" "2.0.0-beta.38" + chokidar "^3.5.3" + vue "^3.2.31" + vue-router "^4.0.14" + +"@vuepress/plugin-theme-data@2.0.0-beta.38", "@vuepress/plugin-theme-data@^2.0.0-beta.37": + version "2.0.0-beta.38" + resolved "https://registry.npmmirror.com/@vuepress/plugin-theme-data/-/plugin-theme-data-2.0.0-beta.38.tgz#6c3358bbc00147fcf1a7199e3da057d9952047c6" + integrity sha512-mhGMjntB90RYCaJLYAtvM7BOs8OvABG5ganXKBdH6hIvvcQ5SETgGP1tsyoHPbXpG7M1b8YseDA4yDJCYcZ26w== + dependencies: + "@vue/devtools-api" "^6.1.4" + "@vuepress/client" "2.0.0-beta.38" + "@vuepress/core" "2.0.0-beta.38" + "@vuepress/shared" "2.0.0-beta.38" + "@vuepress/utils" "2.0.0-beta.38" + vue "^3.2.31" + +"@vuepress/shared@2.0.0-beta.38", "@vuepress/shared@^2.0.0-beta.37": + version "2.0.0-beta.38" + resolved "https://registry.npmmirror.com/@vuepress/shared/-/shared-2.0.0-beta.38.tgz#fe222b4a984e0b4ff06fbbb72fec9004da49fe37" + integrity sha512-IWZPZkQwGI94iX8mjhMJa6CR7fyGQ5zAmjbM0hEBxw1BY5Q7RJSkwJTi5vdh1wUeF1CQx88+dfKYpWb1Wogwhg== + dependencies: + "@vue/shared" "^3.2.31" + +"@vuepress/theme-default@2.0.0-beta.38": + version "2.0.0-beta.38" + resolved "https://registry.npmmirror.com/@vuepress/theme-default/-/theme-default-2.0.0-beta.38.tgz#63c05dce2bc6627ec78fc273c8f6003f1f928f8c" + integrity sha512-vdZiaQg40oqOPx7n8z+zHiPNur5pqGu5xMi8m/kiKHsPoWc3uO+1xoNlpOjGDDTcZhLoXDXE7Grm4rOzsx8+0w== + dependencies: + "@vuepress/client" "2.0.0-beta.38" + "@vuepress/core" "2.0.0-beta.38" + "@vuepress/plugin-active-header-links" "2.0.0-beta.38" + "@vuepress/plugin-back-to-top" "2.0.0-beta.38" + "@vuepress/plugin-container" "2.0.0-beta.38" + "@vuepress/plugin-external-link-icon" "2.0.0-beta.38" + "@vuepress/plugin-git" "2.0.0-beta.38" + "@vuepress/plugin-medium-zoom" "2.0.0-beta.38" + "@vuepress/plugin-nprogress" "2.0.0-beta.38" + "@vuepress/plugin-palette" "2.0.0-beta.38" + "@vuepress/plugin-prismjs" "2.0.0-beta.38" + "@vuepress/plugin-theme-data" "2.0.0-beta.38" + "@vuepress/shared" "2.0.0-beta.38" + "@vuepress/utils" "2.0.0-beta.38" + "@vueuse/core" "^8.2.1" + sass "^1.49.10" + sass-loader "^12.6.0" + vue "^3.2.31" + vue-router "^4.0.14" + +"@vuepress/utils@2.0.0-beta.38", "@vuepress/utils@^2.0.0-beta.37": + version "2.0.0-beta.38" + resolved "https://registry.npmmirror.com/@vuepress/utils/-/utils-2.0.0-beta.38.tgz#d2ae36142a628ad18f92b705dbb0850bf0552851" + integrity sha512-qc8roc+9KJjKGHHRXnP7Yef7P6Zc3ABRiHeeBVJ0TBhoKSlguHIfDvOnUzkAvV2FWAHw3hEk71drJwRO+/zrPw== + dependencies: + "@types/debug" "^4.1.7" + "@types/fs-extra" "^9.0.13" + "@types/hash-sum" "^1.0.0" + "@vuepress/shared" "2.0.0-beta.38" + chalk "^4.1.2" + debug "^4.3.4" + fs-extra "^10.0.1" + globby "^11.0.4" + hash-sum "^2.0.0" + ora "^5.4.1" + upath "^2.0.1" -"@vuepress/plugin-register-components@1.9.5": - version "1.9.5" - resolved "https://registry.yarnpkg.com/@vuepress/plugin-register-components/-/plugin-register-components-1.9.5.tgz#7d0628a7bf4937ea32573f884479be8b47090678" - integrity sha512-2eFqboPCOSY8bh7lkd13Cs7vyUcETEzzYnK/7CjqaeDmYtiJuWCoPjF30K2RsdbpVCE5aqheyXmBSEp2uWEosA== - dependencies: - "@vuepress/shared-utils" "1.9.5" - "@vuepress/types" "1.9.5" - -"@vuepress/plugin-search@1.9.5": - version "1.9.5" - resolved "https://registry.yarnpkg.com/@vuepress/plugin-search/-/plugin-search-1.9.5.tgz#2b854dc641de3fd2bc6976c44063df03d4eb07e3" - integrity sha512-SDK/1UnJ44OAktgZQWiw6S8Yq8F6WkJsGp4k/e3x1gHg5fB96JJlKK4VBsGk/PUsPpYRwr5554dtEVFjFG7oWw== - dependencies: - "@vuepress/types" "1.9.5" - -"@vuepress/shared-utils@1.9.5", "@vuepress/shared-utils@^1.2.0": - version "1.9.5" - resolved "https://registry.yarnpkg.com/@vuepress/shared-utils/-/shared-utils-1.9.5.tgz#8c6408f65ea6ea227046a2ae34470026cc51733c" - integrity sha512-WA6lq5YwbG3HX3yVhMsrsw6zqDUiiMsUsBJCk/gNwbWng/NTibR/f+DkUyD/tw8fYuNu5EDK8wPn+qyLhcrjJg== - dependencies: - chalk "^2.3.2" - escape-html "^1.0.3" - fs-extra "^7.0.1" - globby "^9.2.0" - gray-matter "^4.0.1" - hash-sum "^1.0.2" - semver "^6.0.0" - toml "^3.0.0" - upath "^1.1.0" - -"@vuepress/theme-default@1.9.5": - version "1.9.5" - resolved "https://registry.yarnpkg.com/@vuepress/theme-default/-/theme-default-1.9.5.tgz#5ebb99174da04e5e4ddd9989f143ef227d41ed5a" - integrity sha512-mB919hzorh3PwEY6hzkBYEa0Xweg3kEUPhZbNx29gMXn6KBS7NqN3+sId/Frv2RydSWw5h1ax8NtphaiR0UvBQ== - dependencies: - "@vuepress/plugin-active-header-links" "1.9.5" - "@vuepress/plugin-nprogress" "1.9.5" - "@vuepress/plugin-search" "1.9.5" - "@vuepress/types" "1.9.5" - docsearch.js "^2.5.2" - lodash "^4.17.15" - stylus "^0.54.8" - stylus-loader "^3.0.2" - vuepress-plugin-container "^2.0.2" - vuepress-plugin-smooth-scroll "^0.0.3" - -"@vuepress/types@1.9.5": - version "1.9.5" - resolved "https://registry.yarnpkg.com/@vuepress/types/-/types-1.9.5.tgz#9fe265fac3236cd5f9c01216553825461d5eca9b" - integrity sha512-fu1Wyi+cPFyn7nfxNH4MVvU5glYvRB0RMI7besq9kiI/KkZJPb2G1hITopECJOGk+6G/cOU/iSdUDUHH4GQLgA== - dependencies: - "@types/markdown-it" "^10.0.0" - "@types/webpack-dev-server" "^3" - webpack-chain "^6.0.0" - -"@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== - dependencies: - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - -"@webassemblyjs/floating-point-hex-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" - integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== - -"@webassemblyjs/helper-api-error@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" - integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== - -"@webassemblyjs/helper-buffer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== - -"@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== - dependencies: - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== - -"@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - -"@webassemblyjs/helper-wasm-bytecode@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" - integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== - -"@webassemblyjs/helper-wasm-section@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - -"@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" - integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== - -"@webassemblyjs/wasm-edit@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/helper-wasm-section" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-opt" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/wasm-gen@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== +"@vueuse/core@^5.0.0": + version "5.3.0" + resolved "https://registry.npmmirror.com/@vueuse/core/-/core-5.3.0.tgz#d8c6e939e18089afa224fab6e443fae2bdb57a51" + integrity sha512-bBL1/JMRHFWmbgQzUZHF4WOwlqfenR1B8+elriXsbnHlogQM5foSz9++WyDBR0YPIVgCJq7fvNLqd4T7+cjc5w== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" + "@vueuse/shared" "5.3.0" + vue-demi "*" -"@webassemblyjs/wasm-opt@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== +"@vueuse/core@^8.2.1": + version "8.9.4" + resolved "https://registry.npmmirror.com/@vueuse/core/-/core-8.9.4.tgz#c7db40f19390b3c9f4ff9294a30461497f62ec19" + integrity sha512-B/Mdj9TK1peFyWaPof+Zf/mP9XuGAngaJZBwPaXBvU3aCTZlx3ltlrFFFyMV4iGBwsjSCeUCgZrtkEj9dS2Y3Q== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" + "@types/web-bluetooth" "^0.0.14" + "@vueuse/metadata" "8.9.4" + "@vueuse/shared" "8.9.4" + vue-demi "*" -"@webassemblyjs/wasm-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" +"@vueuse/metadata@8.9.4": + version "8.9.4" + resolved "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-8.9.4.tgz#a4132db33e4c1b1023636acfa20aa7b37ab3d978" + integrity sha512-IwSfzH80bnJMzqhaapqJl9JRIiyQU0zsRGEgnxN6jhq7992cPUJIRfV+JHRIZXjYqbwt07E1gTEp0R0zPJ1aqw== -"@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== +"@vueuse/shared@5.3.0": + version "5.3.0" + resolved "https://registry.npmmirror.com/@vueuse/shared/-/shared-5.3.0.tgz#2b9583f80f1284242f808925e7e141310e400e45" + integrity sha512-qZfkPFH0qTScFpYiPOFpTcxWriRhlM3bgSzl3DFTgr/U0eZg3w2EFWaRZHdWeSvAUdNQyjOC4Toa8S0zJyEjHw== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/floating-point-hex-parser" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-code-frame" "1.9.0" - "@webassemblyjs/helper-fsm" "1.9.0" - "@xtuc/long" "4.2.2" + vue-demi "*" -"@webassemblyjs/wast-printer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== +"@vueuse/shared@8.9.4": + version "8.9.4" + resolved "https://registry.npmmirror.com/@vueuse/shared/-/shared-8.9.4.tgz#c9741c30ffb666b50d62f0dd80b76119fd47573e" + integrity sha512-wt+T30c4K6dGRMVqPddexEVLa28YwxW5OFIPmzUHICjphfAuBFTTdDoyqREZNDOFJZ44ARH1WWQNCUK8koJ+Ag== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - "@xtuc/long" "4.2.2" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + vue-demi "*" JSONStream@^1.0.4: version "1.3.5" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + resolved "https://registry.npmmirror.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== dependencies: jsonparse "^1.2.0" through ">=2.2.7 <3" -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== +abab@^2.0.6: + version "2.0.6" + resolved "https://registry.npmmirror.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" + integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== -abbrev@1: +abbrev@1, abbrev@^1.0.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + resolved "https://registry.npmmirror.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -acorn-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== +acorn-globals@^7.0.0: + version "7.0.1" + resolved "https://registry.npmmirror.com/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3" + integrity sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q== dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" + acorn "^8.1.0" + acorn-walk "^8.0.2" -acorn-jsx@^5.2.0, acorn-jsx@^5.3.1: +acorn-jsx@^5.3.2: version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + resolved "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -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@^6.4.1: - version "6.4.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== +acorn-walk@^8.0.2, acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== -acorn@^7.1.1, acorn@^7.4.0: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.2.4: - version "8.7.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" - integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== - -add-dom-event-listener@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz#6a92db3a0dd0abc254e095c0f1dc14acbbaae310" - integrity sha512-WCxx1ixHT0GQU9hb0KI/mhgRQhnU+U3GvwY6ZvVjYq8rsihIGoaIOUbY0yMPBxLH5MDtr0kz3fisWGNcbWW7Jw== - dependencies: - object-assign "4.x" +acorn@^8.1.0, acorn@^8.4.1, acorn@^8.8.1, acorn@^8.8.2, acorn@^8.9.0: + version "8.10.0" + resolved "https://registry.npmmirror.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" + integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== add-stream@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" - integrity sha1-anmQQ3ynNtXhKI25K9MmbV9csqo= + resolved "https://registry.npmmirror.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" + integrity sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ== agent-base@4, agent-base@^4.1.0, agent-base@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" + resolved "https://registry.npmmirror.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== dependencies: es6-promisify "^5.0.0" agent-base@6, agent-base@^6.0.2: version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + resolved "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== dependencies: debug "4" -agentkeepalive@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-2.2.0.tgz#c5d1bd4b129008f1163f236f86e5faea2026e2ef" - integrity sha1-xdG9SxKQCPEWPyNvhuX66iAm4u8= - agentkeepalive@^3.3.0: version "3.5.2" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz#a113924dd3fa24a0bc3b78108c450c2abee00f67" + resolved "https://registry.npmmirror.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz#a113924dd3fa24a0bc3b78108c450c2abee00f67" integrity sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ== dependencies: humanize-ms "^1.2.1" agentkeepalive@^4.1.3: - version "4.1.4" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.1.4.tgz#d928028a4862cb11718e55227872e842a44c945b" - integrity sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ== + version "4.5.0" + resolved "https://registry.npmmirror.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" + integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== dependencies: - debug "^4.1.0" - depd "^1.1.2" humanize-ms "^1.2.1" aggregate-error@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + resolved "https://registry.npmmirror.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== dependencies: clean-stack "^2.0.0" @@ -3585,17 +3331,17 @@ aggregate-error@^3.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" + resolved "https://registry.npmmirror.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: +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" + resolved "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.1.0, ajv@^6.12.3, ajv@^6.12.4: version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + resolved "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -3603,197 +3349,118 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.1: - version "8.8.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.8.2.tgz#01b4fef2007a28bf75f0b7fc009f62679de4abbb" - integrity sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -algoliasearch@^3.24.5: - version "3.35.1" - resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-3.35.1.tgz#297d15f534a3507cab2f5dfb996019cac7568f0c" - integrity sha512-K4yKVhaHkXfJ/xcUnil04xiSrB8B8yHZoFEhWNpXg23eiCnqvTZw1tn/SqvdsANlYHLJlKl0qi3I/Q2Sqo7LwQ== - dependencies: - agentkeepalive "^2.2.0" - debug "^2.6.9" - envify "^4.0.0" - es6-promise "^4.1.0" - events "^1.1.0" - foreach "^2.0.5" - global "^4.3.2" - inherits "^2.0.1" - isarray "^2.0.1" - load-script "^1.0.0" - object-keys "^1.0.11" - querystring-es3 "^0.2.1" - reduce "^1.0.1" - semver "^5.1.0" - tunnel-agent "^0.6.0" - -alphanum-sort@^1.0.0, alphanum-sort@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= - ansi-align@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" - integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38= + resolved "https://registry.npmmirror.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" + integrity sha512-TdlOggdA/zURfMYa7ABC66j+oqfMew58KpJMbUlH3bcZP1b+cBHIHDDn5uH9INsxrHBPjsqM0tDB4jPTF/vgJA== dependencies: string-width "^2.0.0" -ansi-align@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" - integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== - dependencies: - string-width "^4.1.0" - -ansi-colors@^3.0.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== - -ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + resolved "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== -ansi-escapes@^4.1.0, ansi-escapes@^4.2.1: +ansi-escapes@^4.2.1: version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + resolved "https://registry.npmmirror.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-community@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" - integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== - ansi-regex@^2.0.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + version "3.0.1" + resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + version "4.1.1" + resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" + integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== -ansi-regex@^5.0.0, ansi-regex@^5.0.1: +ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== -ansi-styles@^3.2.0, ansi-styles@^3.2.1: +ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -ant-design-vue@^1.7.8: - version "1.7.8" - resolved "https://registry.yarnpkg.com/ant-design-vue/-/ant-design-vue-1.7.8.tgz#1abbf86b68a4f5b1000bea0487b8031dc0001661" - integrity sha512-F1hmiS9vwbyfuFvlamdW5l9bHKqRlj9wHaGDIE41NZMWXyWy8qL0UFa/+I0Wl8gQWZCqODW5pN6Yfoyn85At3A== - dependencies: - "@ant-design/icons" "^2.1.1" - "@ant-design/icons-vue" "^2.0.0" - "@simonwep/pickr" "~1.7.0" - add-dom-event-listener "^1.0.2" +ant-design-vue@^4.0.0: + version "4.0.3" + resolved "https://registry.npmmirror.com/ant-design-vue/-/ant-design-vue-4.0.3.tgz#0f283c4507368ce4fb658effece3d890394f8c4a" + integrity sha512-fbgZbbirLx7rc19ytaGxApwS01CKLRzvEZmH0TVF06niQA9ekx7xkvfQGlmiSaCs4b8nWZi4Bo7gUzRNRt5YJA== + dependencies: + "@ant-design/colors" "^6.0.0" + "@ant-design/icons-vue" "^7.0.0" + "@babel/runtime" "^7.10.5" + "@ctrl/tinycolor" "^3.5.0" + "@emotion/hash" "^0.9.0" + "@emotion/unitless" "^0.8.0" + "@simonwep/pickr" "~1.8.0" array-tree-filter "^2.1.0" - async-validator "^3.0.3" - babel-helper-vue-jsx-merge-props "^2.0.3" - babel-runtime "6.x" - classnames "^2.2.5" - component-classes "^1.2.6" - dom-align "^1.10.4" - dom-closest "^0.2.0" + async-validator "^4.0.0" + csstype "^3.1.1" + dayjs "^1.10.5" + dom-align "^1.12.1" dom-scroll-into-view "^2.0.0" - enquire.js "^2.1.6" - intersperse "^1.0.0" - is-mobile "^2.2.1" - is-negative-zero "^2.0.0" - ismobilejs "^1.0.0" - json2mq "^0.2.0" - lodash "^4.17.5" - moment "^2.21.0" - mutationobserver-shim "^0.3.2" - node-emoji "^1.10.0" - omit.js "^1.0.0" - raf "^3.4.0" + lodash "^4.17.21" + lodash-es "^4.17.15" resize-observer-polyfill "^1.5.1" + scroll-into-view-if-needed "^2.2.25" shallow-equal "^1.0.0" - shallowequal "^1.0.2" - vue-ref "^2.0.0" + stylis "^4.1.3" + throttle-debounce "^5.0.0" + vue-types "^3.0.0" warning "^4.0.0" any-observable@^0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" + resolved "https://registry.npmmirror.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@^3.0.0, anymatch@^3.0.3, 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== +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + resolved "https://registry.npmmirror.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== aproba@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + resolved "https://registry.npmmirror.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== are-we-there-yet@~1.1.2: version "1.1.7" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" + resolved "https://registry.npmmirror.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== dependencies: delegates "^1.0.0" @@ -3801,386 +3468,286 @@ are-we-there-yet@~1.1.2: arg@^4.1.0: version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + resolved "https://registry.npmmirror.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== argparse@^1.0.7: version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + resolved "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" -aria-query@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" - integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== - dependencies: - "@babel/runtime" "^7.10.2" - "@babel/runtime-corejs3" "^7.10.2" - -aria-query@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.0.0.tgz#210c21aaf469613ee8c9a62c7f86525e058db52c" - integrity sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg== +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== arr-diff@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + resolved "https://registry.npmmirror.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== arr-flatten@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + resolved "https://registry.npmmirror.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== arr-union@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + resolved "https://registry.npmmirror.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== + +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" array-differ@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" + resolved "https://registry.npmmirror.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - -array-flatten@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - array-ify@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" - integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= + resolved "https://registry.npmmirror.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== -array-includes@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" - integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== +array-includes@^3.1.6: + version "3.1.7" + resolved "https://registry.npmmirror.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" + integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - get-intrinsic "^1.1.1" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" is-string "^1.0.7" array-tree-filter@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz#873ac00fec83749f255ac8dd083814b4f6329190" + resolved "https://registry.npmmirror.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz#873ac00fec83749f255ac8dd083814b4f6329190" integrity sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw== -array-union@^1.0.1, array-union@^1.0.2: +array-union@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + resolved "https://registry.npmmirror.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== dependencies: array-uniq "^1.0.1" array-union@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + resolved "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== array-uniq@^1.0.1: version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + resolved "https://registry.npmmirror.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== array-unique@^0.3.2: version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + resolved "https://registry.npmmirror.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== + +array.prototype.findlastindex@^1.2.2: + version "1.2.3" + resolved "https://registry.npmmirror.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" + integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.2.1" + +array.prototype.flat@^1.3.1: + version "1.3.2" + resolved "https://registry.npmmirror.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.flatmap@^1.3.1: + version "1.3.2" + resolved "https://registry.npmmirror.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.reduce@^1.0.6: + version "1.0.6" + resolved "https://registry.npmmirror.com/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz#63149931808c5fc1e1354814923d92d45f7d96d5" + integrity sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-array-method-boxes-properly "^1.0.0" + is-string "^1.0.7" -array.prototype.flat@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13" - integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg== +arraybuffer.prototype.slice@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" + integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== dependencies: + array-buffer-byte-length "^1.0.0" call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + is-array-buffer "^3.0.2" + is-shared-array-buffer "^1.0.2" arrify@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + resolved "https://registry.npmmirror.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== arrify@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + resolved "https://registry.npmmirror.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== asap@^2.0.0, asap@~2.0.3: version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= - -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" + resolved "https://registry.npmmirror.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== asn1@~0.2.3: version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + resolved "https://registry.npmmirror.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== dependencies: safer-buffer "~2.1.0" assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + resolved "https://registry.npmmirror.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== assign-symbols@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + resolved "https://registry.npmmirror.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== -async-validator@^3.0.3: - version "3.5.2" - resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-3.5.2.tgz#68e866a96824e8b2694ff7a831c1a25c44d5e500" - integrity sha512-8eLCg00W9pIRZSB781UUX/H6Oskmm8xloZfr09lz5bikRpBVDlJ3hRVuxxP1SxcwsEYfJ4IU8Q19Y8/893r3rQ== - -async@0.9.x: - version "0.9.2" - resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" - integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= - -async@^2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" +async-validator@^4.0.0: + version "4.2.5" + resolved "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz#c96ea3332a521699d0afaaceed510a54656c6339" + integrity sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg== asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + resolved "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== at-least-node@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + resolved "https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== atob@^2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + resolved "https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -autocomplete.js@0.36.0: - version "0.36.0" - resolved "https://registry.yarnpkg.com/autocomplete.js/-/autocomplete.js-0.36.0.tgz#94fe775fe64b6cd42e622d076dc7fd26bedd837b" - integrity sha512-jEwUXnVMeCHHutUt10i/8ZiRaCb0Wo+ZyKxeGsYwBDtw6EJHqEeDrq4UwZRD8YBSvp3g6klP678il2eeiVXN2Q== +autoprefixer@^10.4.4: + version "10.4.16" + resolved "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.16.tgz#fad1411024d8670880bdece3970aa72e3572feb8" + integrity sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ== dependencies: - immediate "^3.2.3" - -autoprefixer@^9.5.1: - version "9.8.8" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a" - integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA== - dependencies: - browserslist "^4.12.0" - caniuse-lite "^1.0.30001109" + browserslist "^4.21.10" + caniuse-lite "^1.0.30001538" + fraction.js "^4.3.6" normalize-range "^0.1.2" - num2fraction "^1.2.2" - picocolors "^0.2.1" - postcss "^7.0.32" - postcss-value-parser "^4.1.0" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== aws-sign2@~0.7.0: version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + resolved "https://registry.npmmirror.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + version "1.12.0" + resolved "https://registry.npmmirror.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" + integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== axios@^0.18.1: version "0.18.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.1.tgz#ff3f0de2e7b5d180e757ad98000f1081b87bcea3" + resolved "https://registry.npmmirror.com/axios/-/axios-0.18.1.tgz#ff3f0de2e7b5d180e757ad98000f1081b87bcea3" integrity sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g== dependencies: follow-redirects "1.5.10" is-buffer "^2.0.2" -babel-helper-vue-jsx-merge-props@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6" - integrity sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg== - -babel-jest@^27.4.5: - version "27.4.5" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.4.5.tgz#d38bd0be8ea71d8b97853a5fc9f76deeb095c709" - integrity sha512-3uuUTjXbgtODmSv/DXO9nZfD52IyC2OYTFaXGRzL0kpykzroaquCrD5+lZNafTvZlnNqZHt5pb0M08qVBZnsnA== - dependencies: - "@jest/transform" "^27.4.5" - "@jest/types" "^27.4.2" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^27.4.0" - chalk "^4.0.0" - graceful-fs "^4.2.4" - slash "^3.0.0" - -babel-loader@^8.0.4: - version "8.2.3" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.3.tgz#8986b40f1a64cacfcb4b8429320085ef68b1342d" - integrity sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw== +babel-loader@^8.2.3: + version "8.3.0" + resolved "https://registry.npmmirror.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8" + integrity sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q== dependencies: find-cache-dir "^3.3.1" - loader-utils "^1.4.0" + loader-utils "^2.0.0" make-dir "^3.1.0" schema-utils "^2.6.5" -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -babel-plugin-istanbul@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.4.0.tgz#d7831fc0f93573788d80dee7e682482da4c730d6" - integrity sha512-Jcu7qS4OX5kTWBc45Hz7BMmgXuJqRnhatqpUhnzGC3OBYpOmf2tv6jFNwZpwM7wU7MUuv2r9IPS/ZlYOuburVw== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.0.0" - "@types/babel__traverse" "^7.0.6" - -babel-plugin-polyfill-corejs2@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz#407082d0d355ba565af24126fb6cb8e9115251fd" - integrity sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA== - dependencies: - "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.3.0" - semver "^6.1.1" - -babel-plugin-polyfill-corejs3@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz#0b571f4cf3d67f911512f5c04842a7b8e8263087" - integrity sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.0" - core-js-compat "^3.18.0" - -babel-plugin-polyfill-regenerator@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz#9ebbcd7186e1a33e21c5e20cae4e7983949533be" - integrity sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.0" - -babel-plugin-syntax-jsx@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" - integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= - -babel-plugin-transform-vue-jsx@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-3.7.0.tgz#d40492e6692a36b594f7e9a1928f43e969740960" - integrity sha512-W39X07/n3oJMQd8tALBO+440NraGSF//Lo1ydd/9Nme3+QiRGFBb1Q39T9iixh0jZPPbfv3so18tNoIgLatymw== - dependencies: - esutils "^2.0.2" - -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== +babel-plugin-polyfill-corejs2@^0.4.5: + version "0.4.5" + resolved "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz#8097b4cb4af5b64a1d11332b6fb72ef5e64a054c" + integrity sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg== dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.4.2" + semver "^6.3.1" -babel-preset-jest@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.4.0.tgz#70d0e676a282ccb200fbabd7f415db5fdf393bca" - integrity sha512-NK4jGYpnBvNxcGo7/ZpZJr51jCGT+3bwwpVIDY2oNfTxJJldRtB4VAcYdgp1loDE50ODuTu+yBjpMAswv5tlpg== +babel-plugin-polyfill-corejs3@^0.8.3: + version "0.8.4" + resolved "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.4.tgz#1fac2b1dcef6274e72b3c72977ed8325cb330591" + integrity sha512-9l//BZZsPR+5XjyJMPtZSK4jv0BsTO1zDac2GC6ygx9WLGlcsnRd1Co0B2zT5fF5Ic6BZy+9m3HNZ3QcOeDKfg== dependencies: - babel-plugin-jest-hoist "^27.4.0" - babel-preset-current-node-syntax "^1.0.0" + "@babel/helper-define-polyfill-provider" "^0.4.2" + core-js-compat "^3.32.2" -babel-runtime@6.x, babel-runtime@^6.23.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= +babel-plugin-polyfill-regenerator@^0.5.2: + version "0.5.2" + resolved "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz#80d0f3e1098c080c8b5a65f41e9427af692dc326" + integrity sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA== dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" + "@babel/helper-define-polyfill-provider" "^0.4.2" balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + resolved "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base64-js@^1.0.2: +base64-js@^1.3.1: version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + resolved "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== base@^0.11.1: version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + resolved "https://registry.npmmirror.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== dependencies: cache-base "^1.0.1" @@ -4191,114 +3758,63 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= - bcrypt-pbkdf@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + resolved "https://registry.npmmirror.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== dependencies: tweetnacl "^0.14.3" before-after-hook@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" - integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== - -big.js@^3.1.3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" - integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== + version "2.2.3" + resolved "https://registry.npmmirror.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" + integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== big.js@^5.2.2: version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + resolved "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - binary-extensions@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + resolved "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== binaryextensions@^2.1.2: version "2.3.0" - resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.3.0.tgz#1d269cbf7e6243ea886aa41453c3651ccbe13c22" + resolved "https://registry.npmmirror.com/binaryextensions/-/binaryextensions-2.3.0.tgz#1d269cbf7e6243ea886aa41453c3651ccbe13c22" integrity sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg== -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - bl@^1.0.0: version "1.2.3" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7" + resolved "https://registry.npmmirror.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7" integrity sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww== dependencies: readable-stream "^2.3.5" safe-buffer "^5.1.1" -bluebird@^3.1.1, bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.5: +bl@^4.1.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +bluebird@^3.5.0, bluebird@^3.5.1: version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + resolved "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.0.0, bn.js@^5.1.1: - version "5.2.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" - integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== - -body-parser@1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.1.tgz#1499abbaa9274af3ecc9f6f10396c995943e31d4" - integrity sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA== - dependencies: - bytes "3.1.1" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.8.1" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.9.6" - raw-body "2.4.2" - type-is "~1.6.18" - -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= - dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" - -boolbase@^1.0.0, boolbase@~1.0.0: +boolbase@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + resolved "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== boxen@^1.2.1: version "1.3.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" + resolved "https://registry.npmmirror.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw== dependencies: ansi-align "^2.0.0" @@ -4309,31 +3825,24 @@ boxen@^1.2.1: term-size "^1.2.0" widest-line "^2.0.0" -boxen@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" - integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== - dependencies: - ansi-align "^3.0.0" - camelcase "^5.3.1" - chalk "^3.0.0" - cli-boxes "^2.2.0" - string-width "^4.1.0" - term-size "^2.1.0" - type-fest "^0.8.1" - widest-line "^3.1.0" - brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^2.3.1, braces@^2.3.2: +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^2.3.1: version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + resolved "https://registry.npmmirror.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== dependencies: arr-flatten "^1.1.0" @@ -4347,117 +3856,31 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@^3.0.1, braces@~3.0.2: +braces@^3.0.2, braces@~3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + resolved "https://registry.npmmirror.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== - dependencies: - pako "~1.0.5" - -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.16.0, browserslist@^4.16.6, browserslist@^4.17.5, browserslist@^4.19.1: - version "4.19.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" - integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== - dependencies: - caniuse-lite "^1.0.30001286" - electron-to-chromium "^1.4.17" - escalade "^3.1.1" - node-releases "^2.0.1" - picocolors "^1.0.0" - -bs-logger@0.x: - version "0.2.6" - resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" - integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== - dependencies: - fast-json-stable-stringify "2.x" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== +browserslist@^4.0.0, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.21.9: + version "4.22.0" + resolved "https://registry.npmmirror.com/browserslist/-/browserslist-4.22.0.tgz#6adc8116589ccea8a99d0df79c5de2436199abdb" + integrity sha512-v+Jcv64L2LbfTC6OnRcaxtqJNJuQAVhZKSJfR/6hn7lhnChUXl4amwVviqN1k411BB+3rRoKMitELRn1CojeRA== dependencies: - node-int64 "^0.4.0" + caniuse-lite "^1.0.30001539" + electron-to-chromium "^1.4.530" + node-releases "^2.0.0" + update-browserslist-db "^1.0.13" buffer-alloc-unsafe@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + resolved "https://registry.npmmirror.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== buffer-alloc@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + resolved "https://registry.npmmirror.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== dependencies: buffer-alloc-unsafe "^1.1.0" @@ -4465,86 +3888,73 @@ buffer-alloc@^1.2.0: buffer-fill@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= + resolved "https://registry.npmmirror.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ== buffer-from@^1.0.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + resolved "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" - integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== - buffer-json@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/buffer-json/-/buffer-json-2.0.0.tgz#f73e13b1e42f196fe2fd67d001c7d7107edd7c23" + resolved "https://registry.npmmirror.com/buffer-json/-/buffer-json-2.0.0.tgz#f73e13b1e42f196fe2fd67d001c7d7107edd7c23" integrity sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw== -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" + base64-js "^1.3.1" + ieee754 "^1.1.13" -builtin-modules@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" - integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= +builtin-modules@^3.3.0: + version "3.3.0" + resolved "https://registry.npmmirror.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== builtins@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" - integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= - -bundle-require@2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/bundle-require/-/bundle-require-2.1.8.tgz#28f6de9d4468a6b7b76fb5c9bf52e70f5091245d" - integrity sha512-oOEg3A0hy/YzvNWNowtKD0pmhZKseOFweCbgyMqTIih4gRY1nJWsvrOCT27L9NbIyL5jMjTFrAUpGxxpW68Puw== + resolved "https://registry.npmmirror.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== byline@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" - integrity sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE= + resolved "https://registry.npmmirror.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" + integrity sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q== byte-size@^7.0.0: version "7.0.1" - resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-7.0.1.tgz#b1daf3386de7ab9d706b941a748dbfc71130dee3" + resolved "https://registry.npmmirror.com/byte-size/-/byte-size-7.0.1.tgz#b1daf3386de7ab9d706b941a748dbfc71130dee3" integrity sha512-crQdqyCwhokxwV1UyDzLZanhkugAgft7vt0qbbdt60C6Zf3CAiGmtUCylbtYwrU6loOUw3euGrNtW1J651ot1A== -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - -bytes@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.1.tgz#3f018291cb4cbad9accb6e6970bca9c8889e879a" - integrity sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg== +c8@^7.11.3: + version "7.14.0" + resolved "https://registry.npmmirror.com/c8/-/c8-7.14.0.tgz#f368184c73b125a80565e9ab2396ff0be4d732f3" + integrity sha512-i04rtkkcNcCf7zsQcSv/T9EbUn4RXQ6mropeMcjFOsQXQ0iGLAr/xT6TImQg4+U9hmNpN9XdvPkjUL1IzbgxJw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@istanbuljs/schema" "^0.1.3" + find-up "^5.0.0" + foreground-child "^2.0.0" + istanbul-lib-coverage "^3.2.0" + istanbul-lib-report "^3.0.0" + istanbul-reports "^3.1.4" + rimraf "^3.0.2" + test-exclude "^6.0.0" + v8-to-istanbul "^9.0.0" + yargs "^16.2.0" + yargs-parser "^20.2.9" -cac@^6.5.6: - version "6.7.12" - resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.12.tgz#6fb5ea2ff50bd01490dbda497f4ae75a99415193" - integrity sha512-rM7E2ygtMkJqD9c7WnFU6fruFcN3xe4FM5yUmgxhZzIKJk4uHl9U/fhwdajGFQbQuv43FAUo1Fe8gX/oIKDeSA== +cac@^6.7.12: + version "6.7.14" + resolved "https://registry.npmmirror.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" + integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== cacache@^10.0.0: version "10.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" + resolved "https://registry.npmmirror.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" integrity sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA== dependencies: bluebird "^3.5.1" @@ -4561,30 +3971,9 @@ cacache@^10.0.0: unique-filename "^1.1.0" y18n "^4.0.0" -cacache@^12.0.2, cacache@^12.0.3: - version "12.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" - integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - cacache@^15.0.5, cacache@^15.2.0: version "15.3.0" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" + resolved "https://registry.npmmirror.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== dependencies: "@npmcli/fs" "^1.0.0" @@ -4608,7 +3997,7 @@ cacache@^15.0.5, cacache@^15.2.0: cacache@^9.2.9: version "9.3.0" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-9.3.0.tgz#9cd58f2dd0b8c8cacf685b7067b416d6d3cf9db1" + resolved "https://registry.npmmirror.com/cacache/-/cacache-9.3.0.tgz#9cd58f2dd0b8c8cacf685b7067b416d6d3cf9db1" integrity sha512-Vbi8J1XfC8v+FbQ6QkOtKXsHpPnB0i9uMeYFJoj40EbdOsEqWB3DPpNjfsnYBkqOPYA8UvrqH6FZPpBP0zdN7g== dependencies: bluebird "^3.5.0" @@ -4627,7 +4016,7 @@ cacache@^9.2.9: cache-base@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + resolved "https://registry.npmmirror.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== dependencies: collection-visit "^1.0.0" @@ -4642,7 +4031,7 @@ cache-base@^1.0.1: cache-loader@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-3.0.1.tgz#cee6cf4b3cdc7c610905b26bad6c2fc439c821af" + resolved "https://registry.npmmirror.com/cache-loader/-/cache-loader-3.0.1.tgz#cee6cf4b3cdc7c610905b26bad6c2fc439c821af" integrity sha512-HzJIvGiGqYsFUrMjAJNDbVZoG7qQA+vy9AIoKs7s9DscNfki0I589mf2w6/tW+kkFH3zyiknoWV5Jdynu6b/zw== dependencies: buffer-json "^2.0.0" @@ -4652,67 +4041,41 @@ cache-loader@^3.0.0: neo-async "^2.6.1" schema-utils "^1.0.0" -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" - call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + resolved "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== dependencies: function-bind "^1.1.1" get-intrinsic "^1.0.2" -call-me-maybe@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" - integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= - caller-callsite@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + resolved "https://registry.npmmirror.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== dependencies: callsites "^2.0.0" caller-path@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + resolved "https://registry.npmmirror.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== dependencies: caller-callsite "^2.0.0" callsites@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + resolved "https://registry.npmmirror.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== callsites@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + resolved "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camel-case@3.0.x: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" - integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= - dependencies: - no-case "^2.2.0" - upper-case "^1.1.1" - camel-case@^4.1.1: version "4.1.2" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + resolved "https://registry.npmmirror.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== dependencies: pascal-case "^3.1.2" @@ -4720,7 +4083,7 @@ camel-case@^4.1.1: camelcase-keys@^6.2.2: version "6.2.2" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" + resolved "https://registry.npmmirror.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== dependencies: camelcase "^5.3.1" @@ -4729,22 +4092,22 @@ camelcase-keys@^6.2.2: camelcase@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= + resolved "https://registry.npmmirror.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw== -camelcase@^5.0.0, camelcase@^5.2.0, camelcase@^5.3.1: +camelcase@^5.3.1: version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + resolved "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0, camelcase@^6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.1.tgz#250fd350cfd555d0d2160b1d51510eaf8326e86e" - integrity sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA== +camelcase@^6.3.0: + version "6.3.0" + resolved "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-api@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + resolved "https://registry.npmmirror.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== dependencies: browserslist "^4.0.0" @@ -4752,25 +4115,38 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001286: - version "1.0.30001292" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001292.tgz#4a55f61c06abc9595965cfd77897dc7bc1cdc456" - integrity sha512-jnT4Tq0Q4ma+6nncYQVe7d73kmDmE9C3OGTx3MvW7lBM/eY1S1DZTMBON7dqV481RhNiS5OxD7k9JQvmDOTirw== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001539: + version "1.0.30001539" + resolved "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001539.tgz#325a387ab1ed236df2c12dc6cd43a4fff9903a44" + integrity sha512-hfS5tE8bnNiNvEOEkm8HElUHroYwlqMMENEzELymy77+tJ6m+gA2krtHl5hxJaj71OlpC2cHZbdSMX1/YEqEkA== capture-stack-trace@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" - integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== + version "1.0.2" + resolved "https://registry.npmmirror.com/capture-stack-trace/-/capture-stack-trace-1.0.2.tgz#1c43f6b059d4249e7f3f8724f15f048b927d3a8a" + integrity sha512-X/WM2UQs6VMHUtjUDnZTRI+i1crWteJySFzr9UpGoQa4WQffXVTTXuekjl7TjZRlcF2XfjgITT0HxZ9RnxeT0w== caseless@~0.12.0: version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + resolved "https://registry.npmmirror.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== + +chai@^4.3.6: + version "4.3.8" + resolved "https://registry.npmmirror.com/chai/-/chai-4.3.8.tgz#40c59718ad6928da6629c70496fe990b2bb5b17c" + integrity sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^4.1.2" + get-func-name "^2.0.0" + loupe "^2.3.1" + pathval "^1.1.1" + type-detect "^4.0.5" chalk@^1.0.0, chalk@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + resolved "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== dependencies: ansi-styles "^2.2.1" escape-string-regexp "^1.0.2" @@ -4778,9 +4154,9 @@ chalk@^1.0.0, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + resolved "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" @@ -4789,68 +4165,49 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.3 chalk@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + resolved "https://registry.npmmirror.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.0.0, chalk@^4.1.0: +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + resolved "https://registry.npmmirror.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" -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - 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" + resolved "https://registry.npmmirror.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" + resolved "https://registry.npmmirror.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" + resolved "https://registry.npmmirror.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== chardet@^0.7.0: version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + resolved "https://registry.npmmirror.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -chokidar@^2.0.3, chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" +check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== -chokidar@^3.4.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.0, chokidar@^3.5.3: + version "3.5.3" + resolved "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -4862,52 +4219,29 @@ chokidar@^3.4.1: optionalDependencies: fsevents "~2.3.2" -chownr@^1.0.1, chownr@^1.1.1, chownr@^1.1.4: +chownr@^1.0.1, chownr@^1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + resolved "https://registry.npmmirror.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== chownr@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + resolved "https://registry.npmmirror.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== -chrome-trace-event@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== - ci-info@^1.5.0: version "1.6.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" + resolved "https://registry.npmmirror.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== ci-info@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + resolved "https://registry.npmmirror.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -ci-info@^3.1.1, ci-info@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2" - integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw== - -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" - -cjs-module-lexer@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" - integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== - class-utils@^0.3.5: version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + resolved "https://registry.npmmirror.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== dependencies: arr-union "^3.1.0" @@ -4915,148 +4249,120 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -classnames@^2.2.5: - version "2.3.1" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" - integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== - -clean-css@4.2.x: - version "4.2.4" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.4.tgz#733bf46eba4e607c6891ea57c24a989356831178" - integrity sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A== - dependencies: - source-map "~0.6.0" - clean-stack@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + resolved "https://registry.npmmirror.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== cli-boxes@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" - integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= - -cli-boxes@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" - integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== + resolved "https://registry.npmmirror.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + integrity sha512-3Fo5wu8Ytle8q9iCzS4D2MWVL2X7JVWRiS1BnXbTFDhS9c/REkM9vd1AmabsoZoY5/dGi5TT9iKL8Kb6DeBRQg== cli-cursor@^2.0.0, cli-cursor@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + resolved "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== dependencies: restore-cursor "^2.0.0" cli-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + resolved "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== dependencies: restore-cursor "^3.1.0" cli-spinners@^1.0.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.3.1.tgz#002c1990912d0d59580c93bd36c056de99e4259a" + resolved "https://registry.npmmirror.com/cli-spinners/-/cli-spinners-1.3.1.tgz#002c1990912d0d59580c93bd36c056de99e4259a" integrity sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg== +cli-spinners@^2.5.0: + version "2.9.1" + resolved "https://registry.npmmirror.com/cli-spinners/-/cli-spinners-2.9.1.tgz#9c0b9dad69a6d47cbb4333c14319b060ed395a35" + integrity sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ== + cli-truncate@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" - integrity sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ= + resolved "https://registry.npmmirror.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" + integrity sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg== dependencies: slice-ansi "0.0.4" string-width "^1.0.1" cli-width@^2.0.0: version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + resolved "https://registry.npmmirror.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== cli-width@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + resolved "https://registry.npmmirror.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - cliui@^7.0.2: version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + resolved "https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" strip-ansi "^6.0.0" wrap-ansi "^7.0.0" +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.npmmirror.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + clone-deep@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + resolved "https://registry.npmmirror.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" -clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - clone@^1.0.2: version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + resolved "https://registry.npmmirror.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== clone@^2.1.1: version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= + resolved "https://registry.npmmirror.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== cmd-shim@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-4.1.0.tgz#b3a904a6743e9fede4148c6f3800bf2a08135bdd" + resolved "https://registry.npmmirror.com/cmd-shim/-/cmd-shim-4.1.0.tgz#b3a904a6743e9fede4148c6f3800bf2a08135bdd" integrity sha512-lb9L7EM4I/ZRVuljLPEtUJOP+xiQVknZ4ZMpMgEp4JzNldPb27HU03hi6K1/6CoIuit/Zm/LQXySErFeXxDprw== dependencies: mkdirp-infer-owner "^2.0.0" -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - code-point-at@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + resolved "https://registry.npmmirror.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== + +codemirror@^5.41.0: + version "5.65.15" + resolved "https://registry.npmmirror.com/codemirror/-/codemirror-5.65.15.tgz#66899278f44a7acde0eb641388cd563fe6dfbe19" + integrity sha512-YC4EHbbwQeubZzxLl5G4nlbLc1T21QTrKGaOal/Pkm9dVDMZXMH7+ieSPEOZCtO9I68i8/oteJKOxzHC2zR+0g== codesandbox-import-util-types@^2.2.3: version "2.2.3" - resolved "https://registry.yarnpkg.com/codesandbox-import-util-types/-/codesandbox-import-util-types-2.2.3.tgz#b354b2f732ad130e119ebd9ead3bda3be5981a54" + resolved "https://registry.npmmirror.com/codesandbox-import-util-types/-/codesandbox-import-util-types-2.2.3.tgz#b354b2f732ad130e119ebd9ead3bda3be5981a54" integrity sha512-Qj00p60oNExthP2oR3vvXmUGjukij+rxJGuiaKM6tyUmSyimdZsqHI/TUvFFClAffk9s7hxGnQgWQ8KCce27qQ== codesandbox-import-utils@^2.2.3: version "2.2.3" - resolved "https://registry.yarnpkg.com/codesandbox-import-utils/-/codesandbox-import-utils-2.2.3.tgz#f7b4801245b381cb8c90fe245e336624e19b6c84" + resolved "https://registry.npmmirror.com/codesandbox-import-utils/-/codesandbox-import-utils-2.2.3.tgz#f7b4801245b381cb8c90fe245e336624e19b6c84" integrity sha512-ymtmcgZKU27U+nM2qUb21aO8Ut/u2S9s6KorOgG81weP+NA0UZkaHKlaRqbLJ9h4i/4FLvwmEXYAnTjNmp6ogg== dependencies: codesandbox-import-util-types "^2.2.3" @@ -5065,7 +4371,7 @@ codesandbox-import-utils@^2.2.3: codesandbox@^2.2.3: version "2.2.3" - resolved "https://registry.yarnpkg.com/codesandbox/-/codesandbox-2.2.3.tgz#092de403506d9e4c5358cd61dc84068c3ee8ceea" + resolved "https://registry.npmmirror.com/codesandbox/-/codesandbox-2.2.3.tgz#092de403506d9e4c5358cd61dc84068c3ee8ceea" integrity sha512-IAkWFk6UUglOhSemI7UFgNNL/jgg+1YjVEIllFULLgsaHhFnY51pCqAifMNuAd5d9Zp4Nk/xMgrEaGNV0L4Xlg== dependencies: axios "^0.18.1" @@ -5090,174 +4396,126 @@ codesandbox@^2.2.3: shortid "^2.2.8" update-notifier "^2.2.0" -collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== - collection-visit@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + resolved "https://registry.npmmirror.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== dependencies: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^1.9.0, color-convert@^1.9.3: +color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + resolved "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + resolved "https://registry.npmmirror.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= + resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== -color-name@^1.0.0, color-name@~1.1.4: +color-name@~1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.6.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.0.tgz#63b6ebd1bec11999d1df3a79a7569451ac2be8aa" - integrity sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.0.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== - dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" - colord@^2.9.1: - version "2.9.2" - resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.2.tgz#25e2bacbbaa65991422c07ea209e2089428effb1" - integrity sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ== + version "2.9.3" + resolved "https://registry.npmmirror.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== colors@~0.6.0-1: version "0.6.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc" - integrity sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w= + resolved "https://registry.npmmirror.com/colors/-/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc" + integrity sha512-OsSVtHK8Ir8r3+Fxw/b4jS1ZLPXkV6ZxDRJQzeD7qo0SqMXWrHDM71DgYzPMHY8SFJ0Ao+nNU2p1MmwdzKqPrw== columnify@^1.5.4: - version "1.5.4" - resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" - integrity sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs= + version "1.6.0" + resolved "https://registry.npmmirror.com/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3" + integrity sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q== dependencies: - strip-ansi "^3.0.0" + strip-ansi "^6.0.1" wcwidth "^1.0.0" combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + resolved "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" -commander@2.17.x: - version "2.17.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" - integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== - commander@2.9.0: version "2.9.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" - integrity sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q= + resolved "https://registry.npmmirror.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + integrity sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A== dependencies: graceful-readlink ">= 1.0.0" -commander@^2.14.1, commander@^2.19.0, commander@^2.20.0, commander@^2.9.0: +commander@^10.0.0: + version "10.0.1" + resolved "https://registry.npmmirror.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + +commander@^2.14.1, commander@^2.20.0, commander@^2.9.0: version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + resolved "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== +commander@^4.0.1: + version "4.1.1" + resolved "https://registry.npmmirror.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + commander@^7.2.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + resolved "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== commander@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.1.0.tgz#d121bbae860d9992a3d517ba96f56588e47c6781" - integrity sha1-0SG7roYNmZKj1Re6lvVliOR8Z4E= - -commander@~2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" - integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== + resolved "https://registry.npmmirror.com/commander/-/commander-2.1.0.tgz#d121bbae860d9992a3d517ba96f56588e47c6781" + integrity sha512-J2wnb6TKniXNOtoHS8TSrG9IOQluPrsmyAJ8oCUJOBmv+uLBCyPYAZkD2jFvw2DCzIXNnISIM01NIvr35TkBMQ== commondir@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + resolved "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== compare-func@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" + resolved "https://registry.npmmirror.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== dependencies: array-ify "^1.0.0" dot-prop "^5.1.0" -component-classes@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/component-classes/-/component-classes-1.2.6.tgz#c642394c3618a4d8b0b8919efccbbd930e5cd691" - integrity sha1-xkI5TDYYpNiwuJGe/Mu9kw5c1pE= - dependencies: - component-indexof "0.0.3" - component-emitter@^1.2.1: version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + resolved "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== -component-indexof@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/component-indexof/-/component-indexof-0.0.3.tgz#11d091312239eb8f32c8f25ae9cb002ffe8d3c24" - integrity sha1-EdCRMSI5648yyPJa6csAL/6NPCQ= - -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" +compute-scroll-into-view@^1.0.20: + version "1.0.20" + resolved "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz#1768b5522d1172754f5d0c9b02de3af6be506a43" + integrity sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + resolved "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== concat-stream@^1.5.0: version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + resolved "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== dependencies: buffer-from "^1.0.0" @@ -5267,7 +4525,7 @@ concat-stream@^1.5.0: concat-stream@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" + resolved "https://registry.npmmirror.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== dependencies: buffer-from "^1.0.0" @@ -5277,23 +4535,14 @@ concat-stream@^2.0.0: concat-with-sourcemaps@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" + resolved "https://registry.npmmirror.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg== dependencies: source-map "^0.6.1" -condense-newlines@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/condense-newlines/-/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f" - integrity sha1-PemFVTE5R10yUCyDsC9gaE0kxV8= - dependencies: - extend-shallow "^2.0.1" - is-whitespace "^0.3.0" - kind-of "^3.0.2" - -config-chain@^1.1.12: +config-chain@^1.1.12, config-chain@^1.1.13: version "1.1.13" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + resolved "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== dependencies: ini "^1.3.4" @@ -5301,7 +4550,7 @@ config-chain@^1.1.12: configstore@^3.0.0: version "3.1.5" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.5.tgz#e9af331fadc14dabd544d3e7e76dc446a09a530f" + resolved "https://registry.npmmirror.com/configstore/-/configstore-3.1.5.tgz#e9af331fadc14dabd544d3e7e76dc446a09a530f" integrity sha512-nlOhI4+fdzoK5xmJ+NY+1gZK56bwEaWZr8fYuXohZ9Vkc1o3a4T/R3M+yE/w7x/ZVJ1zF8c+oaOvF0dztdUgmA== dependencies: dot-prop "^4.2.1" @@ -5311,74 +4560,28 @@ configstore@^3.0.0: write-file-atomic "^2.0.0" xdg-basedir "^3.0.0" -configstore@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" - integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== - dependencies: - dot-prop "^5.2.0" - graceful-fs "^4.1.2" - make-dir "^3.0.0" - unique-string "^2.0.0" - write-file-atomic "^3.0.0" - xdg-basedir "^4.0.0" - -connect-history-api-fallback@^1.5.0, connect-history-api-fallback@^1.6.0: +connect-history-api-fallback@^1.6.0: version "1.6.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + resolved "https://registry.npmmirror.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== -consola@^2.6.0: - version "2.15.3" - resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550" - integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= - -consolidate@^0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7" - integrity sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw== - dependencies: - bluebird "^3.1.1" - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + resolved "https://registry.npmmirror.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== conventional-changelog-angular@^5.0.11, conventional-changelog-angular@^5.0.12: version "5.0.13" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz#896885d63b914a70d4934b59d2fe7bde1832b28c" + resolved "https://registry.npmmirror.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz#896885d63b914a70d4934b59d2fe7bde1832b28c" integrity sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA== dependencies: compare-func "^2.0.0" q "^1.5.1" conventional-changelog-conventionalcommits@^4.3.1: - version "4.6.2" - resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.2.tgz#6debf07a894f7c7e22b950e2f872de334d5d49ed" - integrity sha512-fo+VhM0VtD3wdHZtrPhgvTFjAhAMUjYeQV6B5+DB/cupG1O554pJdTwrvBInq8JLHl+GucKQpZycMPye/OpgSw== + version "4.6.3" + resolved "https://registry.npmmirror.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz#0765490f56424b46f6cb4db9135902d6e5a36dc2" + integrity sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g== dependencies: compare-func "^2.0.0" lodash "^4.17.15" @@ -5386,7 +4589,7 @@ conventional-changelog-conventionalcommits@^4.3.1: conventional-changelog-core@^4.2.2: version "4.2.4" - resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz#e50d047e8ebacf63fac3dc67bf918177001e1e9f" + resolved "https://registry.npmmirror.com/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz#e50d047e8ebacf63fac3dc67bf918177001e1e9f" integrity sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg== dependencies: add-stream "^1.0.0" @@ -5406,17 +4609,17 @@ conventional-changelog-core@^4.2.2: conventional-changelog-preset-loader@^2.3.4: version "2.3.4" - resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz#14a855abbffd59027fd602581f1f34d9862ea44c" + resolved "https://registry.npmmirror.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz#14a855abbffd59027fd602581f1f34d9862ea44c" integrity sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g== conventional-changelog-writer@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-5.0.0.tgz#c4042f3f1542f2f41d7d2e0d6cad23aba8df8eec" - integrity sha512-HnDh9QHLNWfL6E1uHz6krZEQOgm8hN7z/m7tT16xwd802fwgMN0Wqd7AQYVkhpsjDUx/99oo+nGgvKF657XP5g== + version "5.0.1" + resolved "https://registry.npmmirror.com/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz#e0757072f045fe03d91da6343c843029e702f359" + integrity sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ== dependencies: conventional-commits-filter "^2.0.7" dateformat "^3.0.0" - handlebars "^4.7.6" + handlebars "^4.7.7" json-stringify-safe "^5.0.1" lodash "^4.17.15" meow "^8.0.0" @@ -5426,16 +4629,16 @@ conventional-changelog-writer@^5.0.0: conventional-commits-filter@^2.0.7: version "2.0.7" - resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz#f8d9b4f182fce00c9af7139da49365b136c8a0b3" + resolved "https://registry.npmmirror.com/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz#f8d9b4f182fce00c9af7139da49365b136c8a0b3" integrity sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA== dependencies: lodash.ismatch "^4.4.0" modify-values "^1.0.0" conventional-commits-parser@^3.2.0, conventional-commits-parser@^3.2.2: - version "3.2.3" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.2.3.tgz#fc43704698239451e3ef35fd1d8ed644f46bd86e" - integrity sha512-YyRDR7On9H07ICFpRm/igcdjIqebXbvf4Cff+Pf0BrBys1i1EOzx9iFXNlAbdrLAR8jf7bkUYkDAr8pEy0q4Pw== + version "3.2.4" + resolved "https://registry.npmmirror.com/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz#a7d3b77758a202a9b2293d2112a8d8052c740972" + integrity sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q== dependencies: JSONStream "^1.0.4" is-text-path "^1.0.1" @@ -5446,7 +4649,7 @@ conventional-commits-parser@^3.2.0, conventional-commits-parser@^3.2.2: conventional-recommended-bump@^6.1.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz#cfa623285d1de554012f2ffde70d9c8a22231f55" + resolved "https://registry.npmmirror.com/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz#cfa623285d1de554012f2ffde70d9c8a22231f55" integrity sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw== dependencies: concat-stream "^2.0.0" @@ -5458,33 +4661,26 @@ conventional-recommended-bump@^6.1.0: meow "^8.0.0" q "^1.5.1" -convert-source-map@^1.4.0, convert-source-map@^1.6.0, 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" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= +convert-source-map@^1.6.0: + version "1.9.0" + resolved "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== -cookie@0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" - integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== copy-anything@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.3.tgz#842407ba02466b0df844819bbe3baebbe5d45d87" - integrity sha512-GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ== + version "2.0.6" + resolved "https://registry.npmmirror.com/copy-anything/-/copy-anything-2.0.6.tgz#092454ea9584a7b7ad5573062b2a87f5900fc480" + integrity sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw== dependencies: - is-what "^3.12.0" + is-what "^3.14.1" copy-concurrently@^1.0.0: version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + resolved "https://registry.npmmirror.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== dependencies: aproba "^1.1.1" @@ -5496,70 +4692,41 @@ copy-concurrently@^1.0.0: copy-descriptor@^0.1.0: version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + resolved "https://registry.npmmirror.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== copy-to-clipboard@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae" - integrity sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw== + version "3.3.3" + resolved "https://registry.npmmirror.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" + integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== dependencies: toggle-selection "^1.0.6" -copy-webpack-plugin@^5.0.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.2.tgz#8a889e1dcafa6c91c6cd4be1ad158f1d3823bae2" - integrity sha512-Uh7crJAco3AjBvgAy9Z75CjK8IG+gxaErro71THQ+vv/bl4HaQcpkexAY8KVW/T6D2W2IRr+couF/knIRkZMIQ== - dependencies: - cacache "^12.0.3" - find-cache-dir "^2.1.0" - glob-parent "^3.1.0" - globby "^7.1.1" - is-glob "^4.0.1" - loader-utils "^1.2.3" - minimatch "^3.0.4" - normalize-path "^3.0.0" - p-limit "^2.2.1" - schema-utils "^1.0.0" - serialize-javascript "^4.0.0" - webpack-log "^2.0.0" - -core-js-compat@^3.18.0, core-js-compat@^3.19.1, core-js-compat@^3.6.5: - version "3.20.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.20.1.tgz#96917b4db634fbbbc7b36575b2e8fcbf7e4f9691" - integrity sha512-AVhKZNpqMV3Jz8hU0YEXXE06qoxtQGsAqU0u1neUngz5IusDJRX/ZJ6t3i7mS7QxNyEONbCo14GprkBrxPlTZA== +core-js-compat@^3.31.0, core-js-compat@^3.32.2: + version "3.32.2" + resolved "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.32.2.tgz#8047d1a8b3ac4e639f0d4f66d4431aa3b16e004c" + integrity sha512-+GjlguTDINOijtVRUxrQOv3kfu9rl+qPNdX2LTbJ/ZyVTuxK+ksVSAGX1nHstu4hrv1En/uPTtWgq2gI5wt4AQ== dependencies: - browserslist "^4.19.1" - semver "7.0.0" - -core-js-pure@^3.19.0: - version "3.20.1" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.20.1.tgz#f7a2c62f98de83e4da8fca7b78846d3a2f542145" - integrity sha512-yeNNr3L9cEBwNy6vhhIJ0nko7fE7uFO6PgawcacGt2VWep4WqQx0RiqlkgSP7kqUMC1IKdfO9qPeWXcUheHLVQ== + browserslist "^4.21.10" -core-js@^2.4.0: - version "2.6.12" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== - -core-js@^3.6.4, core-js@^3.6.5: - version "3.20.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.20.1.tgz#eb1598047b7813572f1dc24b7c6a95528c99eef3" - integrity sha512-btdpStYFQScnNVQ5slVcr858KP0YWYjV16eGJQw8Gg7CWtu/2qNvIM3qVRIR3n1pK2R9NNOrTevbvAYxajwEjg== +core-js@^3.15.1, core-js@^3.23.1, core-js@^3.23.3: + version "3.32.2" + resolved "https://registry.npmmirror.com/core-js/-/core-js-3.32.2.tgz#172fb5949ef468f93b4be7841af6ab1f21992db7" + integrity sha512-pxXSw1mYZPDGvTQqEc5vgIb83jGQKFGYWY76z4a7weZXUolw3G+OvpZqSRcfYOoOVUQJYEPsWeQK8pKEnUtWxQ== core-util-is@1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + resolved "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== core-util-is@~1.0.0: version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + resolved "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -cosmiconfig@^5.0.0, cosmiconfig@^5.2.0: +cosmiconfig@^5.2.0: version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + resolved "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== dependencies: import-fresh "^2.0.0" @@ -5568,9 +4735,9 @@ cosmiconfig@^5.0.0, cosmiconfig@^5.2.0: 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== + version "7.1.0" + resolved "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== dependencies: "@types/parse-json" "^4.0.0" import-fresh "^3.2.1" @@ -5578,61 +4745,30 @@ cosmiconfig@^7.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-error-class@^3.0.0: version "3.0.2" - resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" - integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= + resolved "https://registry.npmmirror.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + integrity sha512-gYTKKexFO3kh200H1Nit76sRwRtOY32vQd3jpAQKpLtZqyNsSQNfI4N7o3eP2wUjV35pTWKRYqFUDBvUha/Pkw== dependencies: capture-stack-trace "^1.0.0" -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - create-require@^1.1.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + resolved "https://registry.npmmirror.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== 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= + resolved "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A== dependencies: lru-cache "^4.0.1" shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^6.0.0, cross-spawn@^6.0.5: +cross-spawn@^6.0.0: version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + resolved "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== dependencies: nice-try "^1.0.4" @@ -5643,154 +4779,58 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + resolved "https://registry.npmmirror.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" - crypto-random-string@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" - integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= - -crypto-random-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" - integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== - -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" - -css-declaration-sorter@^6.0.3: - version "6.1.3" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.1.3.tgz#e9852e4cf940ba79f509d9425b137d1f94438dc2" - integrity sha512-SvjQjNRZgh4ULK1LDJ2AduPKUKxIqmtU7ZAyi47BTV+M90Qvxr9AB6lKlLbDUfXqI9IQeYA8LbAsCZPpJEV3aA== - dependencies: - timsort "^0.3.0" - -css-loader@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-2.1.1.tgz#d8254f72e412bb2238bb44dd674ffbef497333ea" - integrity sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w== - dependencies: - camelcase "^5.2.0" - icss-utils "^4.1.0" - loader-utils "^1.2.3" - normalize-path "^3.0.0" - postcss "^7.0.14" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^2.0.6" - postcss-modules-scope "^2.1.0" - postcss-modules-values "^2.0.0" - postcss-value-parser "^3.3.0" - schema-utils "^1.0.0" - -css-parse@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/css-parse/-/css-parse-2.0.0.tgz#a468ee667c16d81ccf05c58c38d2a97c780dbfd4" - integrity sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q= - dependencies: - css "^2.0.0" - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + resolved "https://registry.npmmirror.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + integrity sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg== -css-select@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" +css-declaration-sorter@^6.3.1: + version "6.4.1" + resolved "https://registry.npmmirror.com/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz#28beac7c20bad7f1775be3a7129d7eae409a3a71" + integrity sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g== css-select@^4.1.3: - version "4.2.1" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.2.1.tgz#9e665d6ae4c7f9d65dbe69d0316e3221fb274cdd" - integrity sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ== + version "4.3.0" + resolved "https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== dependencies: boolbase "^1.0.0" - css-what "^5.1.0" - domhandler "^4.3.0" + css-what "^6.0.1" + domhandler "^4.3.1" domutils "^2.8.0" nth-check "^2.0.1" -css-tree@1.0.0-alpha.37: - version "1.0.0-alpha.37" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== - dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" - css-tree@^1.1.2, css-tree@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + resolved "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== dependencies: mdn-data "2.0.14" source-map "^0.6.1" -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" - integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== - -css-what@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" - integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== - -css.escape@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" - integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s= - -css@^2.0.0: - version "2.2.4" - resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" - integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== +css-tree@~2.2.0: + version "2.2.1" + resolved "https://registry.npmmirror.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032" + integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== dependencies: - inherits "^2.0.3" - source-map "^0.6.1" - source-map-resolve "^0.5.2" - urix "^0.1.0" + mdn-data "2.0.28" + source-map-js "^1.0.1" + +css-what@^6.0.1: + version "6.1.0" + resolved "https://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== css@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/css/-/css-3.0.0.tgz#4447a4d58fdd03367c516ca9f64ae365cee4aa5d" + resolved "https://registry.npmmirror.com/css/-/css-3.0.0.tgz#4447a4d58fdd03367c516ca9f64ae365cee4aa5d" integrity sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ== dependencies: inherits "^2.0.4" @@ -5799,186 +4839,130 @@ css@^3.0.0: cssesc@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + resolved "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" - integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.3" - postcss-unique-selectors "^4.0.1" - -cssnano-preset-default@^5.1.9: - version "5.1.9" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.9.tgz#79628ac48eccbdad570f70b4018cc38d43d1b7df" - integrity sha512-RhkEucqlQ+OxEi14K1p8gdXcMQy1mSpo7P1oC44oRls7BYIj8p+cht4IFBFV3W4iOjTP8EUB33XV1fX9KhDzyA== - dependencies: - css-declaration-sorter "^6.0.3" - cssnano-utils "^2.0.1" - postcss-calc "^8.0.0" - postcss-colormin "^5.2.2" - postcss-convert-values "^5.0.2" - postcss-discard-comments "^5.0.1" - postcss-discard-duplicates "^5.0.1" - postcss-discard-empty "^5.0.1" - postcss-discard-overridden "^5.0.1" - postcss-merge-longhand "^5.0.4" - postcss-merge-rules "^5.0.3" - postcss-minify-font-values "^5.0.1" - postcss-minify-gradients "^5.0.3" - postcss-minify-params "^5.0.2" - postcss-minify-selectors "^5.1.0" - postcss-normalize-charset "^5.0.1" - postcss-normalize-display-values "^5.0.1" - postcss-normalize-positions "^5.0.1" - postcss-normalize-repeat-style "^5.0.1" - postcss-normalize-string "^5.0.1" - postcss-normalize-timing-functions "^5.0.1" - postcss-normalize-unicode "^5.0.1" - postcss-normalize-url "^5.0.4" - postcss-normalize-whitespace "^5.0.1" - postcss-ordered-values "^5.0.2" - postcss-reduce-initial "^5.0.2" - postcss-reduce-transforms "^5.0.1" - postcss-svgo "^5.0.3" - postcss-unique-selectors "^5.0.2" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= - -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== - dependencies: - postcss "^7.0.0" - -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== - -cssnano-utils@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-2.0.1.tgz#8660aa2b37ed869d2e2f22918196a9a8b6498ce2" - integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== - -cssnano@^4.1.10: - version "4.1.11" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" - integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== - dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.8" - is-resolvable "^1.0.0" - postcss "^7.0.0" +cssnano-preset-default@^5.2.14: + version "5.2.14" + resolved "https://registry.npmmirror.com/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz#309def4f7b7e16d71ab2438052093330d9ab45d8" + integrity sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A== + dependencies: + css-declaration-sorter "^6.3.1" + cssnano-utils "^3.1.0" + postcss-calc "^8.2.3" + postcss-colormin "^5.3.1" + postcss-convert-values "^5.1.3" + postcss-discard-comments "^5.1.2" + postcss-discard-duplicates "^5.1.0" + postcss-discard-empty "^5.1.1" + postcss-discard-overridden "^5.1.0" + postcss-merge-longhand "^5.1.7" + postcss-merge-rules "^5.1.4" + postcss-minify-font-values "^5.1.0" + postcss-minify-gradients "^5.1.1" + postcss-minify-params "^5.1.4" + postcss-minify-selectors "^5.2.1" + postcss-normalize-charset "^5.1.0" + postcss-normalize-display-values "^5.1.0" + postcss-normalize-positions "^5.1.1" + postcss-normalize-repeat-style "^5.1.1" + postcss-normalize-string "^5.1.0" + postcss-normalize-timing-functions "^5.1.0" + postcss-normalize-unicode "^5.1.1" + postcss-normalize-url "^5.1.0" + postcss-normalize-whitespace "^5.1.1" + postcss-ordered-values "^5.1.3" + postcss-reduce-initial "^5.1.2" + postcss-reduce-transforms "^5.1.0" + postcss-svgo "^5.1.0" + postcss-unique-selectors "^5.1.1" + +cssnano-utils@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861" + integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== cssnano@^5.0.1: - version "5.0.14" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.14.tgz#99bc550f663b48c38e9b8e0ae795697c9de84b47" - integrity sha512-qzhRkFvBhv08tbyKCIfWbxBXmkIpLl1uNblt8SpTHkgLfON5OCPX/CCnkdNmEosvo8bANQYmTTMEgcVBlisHaw== + version "5.1.15" + resolved "https://registry.npmmirror.com/cssnano/-/cssnano-5.1.15.tgz#ded66b5480d5127fcb44dac12ea5a983755136bf" + integrity sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw== dependencies: - cssnano-preset-default "^5.1.9" + cssnano-preset-default "^5.2.14" lilconfig "^2.0.3" yaml "^1.10.2" -csso@^4.0.2, csso@^4.2.0: +csso@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + resolved "https://registry.npmmirror.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== dependencies: css-tree "^1.1.2" -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== +csso@^5.0.5: + version "5.0.5" + resolved "https://registry.npmmirror.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" + integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== + dependencies: + css-tree "~2.2.0" + +cssom@^0.5.0: + version "0.5.0" + resolved "https://registry.npmmirror.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" + integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== cssom@~0.3.6: version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + resolved "https://registry.npmmirror.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" + resolved "https://registry.npmmirror.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== dependencies: cssom "~0.3.6" +csstype@^3.1.1: + version "3.1.2" + resolved "https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== + cwd@^0.9.1: version "0.9.1" - resolved "https://registry.yarnpkg.com/cwd/-/cwd-0.9.1.tgz#41e10a7e1ab833dc59c2eca83814c7de77b5a4fd" - integrity sha1-QeEKfhq4M9xZwuyoOBTH3ne1pP0= + resolved "https://registry.npmmirror.com/cwd/-/cwd-0.9.1.tgz#41e10a7e1ab833dc59c2eca83814c7de77b5a4fd" + integrity sha512-4+0D+ojEasdLndYX4Cqff057I/Jp6ysXpwKkdLQLnZxV8f6IYZmZtTP5uqD91a/kWqejoc0sSqK4u8wpTKCh8A== dependencies: find-pkg "^0.1.0" cyclist@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= + version "1.0.2" + resolved "https://registry.npmmirror.com/cyclist/-/cyclist-1.0.2.tgz#673b5f233bf34d8e602b949429f8171d9121bea3" + integrity sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA== dargs@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" + resolved "https://registry.npmmirror.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== dashdash@^1.12.0: version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + resolved "https://registry.npmmirror.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== dependencies: assert-plus "^1.0.0" -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== +data-urls@^3.0.2: + version "3.0.2" + resolved "https://registry.npmmirror.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143" + integrity sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ== dependencies: - abab "^2.0.3" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.0.0" + abab "^2.0.6" + whatwg-mimetype "^3.0.0" + whatwg-url "^11.0.0" datauri@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/datauri/-/datauri-3.0.0.tgz#6196997e9a7bbbee81b60e8c8acb1a2c871e2349" + resolved "https://registry.npmmirror.com/datauri/-/datauri-3.0.0.tgz#6196997e9a7bbbee81b60e8c8acb1a2c871e2349" integrity sha512-NeDFuUPV1YCpCn8MUIcDk1QnuyenUHs7f4Q5P0n9FFA0neKFrfEH9esR+YMW95BplbYfdmjbs0Pl/ZGAaM2QHQ== dependencies: image-size "0.8.3" @@ -5986,163 +4970,144 @@ datauri@^3.0.0: date-fns@^1.27.2: version "1.30.1" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" + resolved "https://registry.npmmirror.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== dateformat@^3.0.0: version "3.0.3" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" + resolved "https://registry.npmmirror.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== -de-indent@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" - integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" +dayjs@^1.10.5: + version "1.11.10" + resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0" + integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ== -debug@3.1.0, debug@=3.1.0, debug@~3.1.0: +debug@3.1.0, debug@=3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + resolved "https://registry.npmmirror.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== dependencies: ms "2.0.0" -debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== +debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@^3.1.0, debug@^3.1.1, debug@^3.2.6, debug@^3.2.7: +debug@^2.2.0, debug@^2.3.3: + version "2.6.9" + resolved "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.1.0, debug@^3.2.6, debug@^3.2.7: version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + resolved "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" debuglog@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" - integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= + resolved "https://registry.npmmirror.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" + integrity sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw== decamelize-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" - integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= + version "1.1.1" + resolved "https://registry.npmmirror.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" + integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== dependencies: decamelize "^1.1.0" map-obj "^1.0.0" -decamelize@^1.1.0, decamelize@^1.2.0: +decamelize@^1.1.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + resolved "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== -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== +decimal.js@^10.4.2: + version "10.4.3" + resolved "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" + integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" + version "0.2.2" + resolved "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" + integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== dedent@^0.7.0: version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + resolved "https://registry.npmmirror.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== -deep-equal@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== +deep-eql@^4.1.2: + version "4.1.3" + resolved "https://registry.npmmirror.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" + integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" + type-detect "^4.0.0" deep-extend@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + resolved "https://registry.npmmirror.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== -deep-is@^0.1.3, deep-is@~0.1.3: +deep-is@^0.1.3: version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + resolved "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -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== - -default-gateway@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" - integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== - dependencies: - execa "^1.0.0" - ip-regex "^2.1.0" + version "4.3.1" + resolved "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== defaults@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + version "1.0.4" + resolved "https://registry.npmmirror.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== dependencies: clone "^1.0.2" -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== +define-data-property@^1.0.1: + version "1.1.0" + resolved "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.0.tgz#0db13540704e1d8d479a0656cf781267531b9451" + integrity sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g== + dependencies: + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: + version "1.2.1" + resolved "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== dependencies: - object-keys "^1.0.12" + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" define-property@^0.2.5: version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + resolved "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== dependencies: is-descriptor "^0.1.0" define-property@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + resolved "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== dependencies: is-descriptor "^1.0.0" define-property@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + resolved "https://registry.npmmirror.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== dependencies: is-descriptor "^1.0.2" @@ -6150,8 +5115,8 @@ define-property@^2.0.2: del@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" - integrity sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU= + resolved "https://registry.npmmirror.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" + integrity sha512-7yjqSoVSlJzA4t/VUwazuEagGeANEKB3f/aNI//06pfKgwoCb7f6Q1gETN1sZzYaj6chTQ0AhIwDiPdfOjko4A== dependencies: globby "^6.1.0" is-path-cwd "^1.0.0" @@ -6160,261 +5125,111 @@ del@^3.0.0: pify "^3.0.0" rimraf "^2.2.8" -del@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" - integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== - dependencies: - "@types/glob" "^7.1.1" - globby "^6.1.0" - is-path-cwd "^2.0.0" - is-path-in-cwd "^2.0.0" - p-map "^2.0.0" - pify "^4.0.1" - rimraf "^2.6.3" - delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + resolved "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== delegates@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= - -depd@^1.1.2, depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + resolved "https://registry.npmmirror.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== deprecation@^2.0.0, deprecation@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + resolved "https://registry.npmmirror.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== -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" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - detect-indent@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" - integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= + resolved "https://registry.npmmirror.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" + integrity sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g== detect-indent@^6.0.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" + resolved "https://registry.npmmirror.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -detect-node@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" - integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== - dezalgo@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" - integrity sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY= + version "1.0.4" + resolved "https://registry.npmmirror.com/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81" + integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig== dependencies: asap "^2.0.0" wrappy "1" -diff-sequences@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.4.0.tgz#d783920ad8d06ec718a060d00196dfef25b132a5" - integrity sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww== +diff-match-patch@^1.0.0: + version "1.0.5" + resolved "https://registry.npmmirror.com/diff-match-patch/-/diff-match-patch-1.0.5.tgz#abb584d5f10cd1196dfc55aa03701592ae3f7b37" + integrity sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw== diff@^4.0.1: version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + resolved "https://registry.npmmirror.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -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" - -dir-glob@^2.0.0, dir-glob@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" - integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== - dependencies: - path-type "^3.0.0" - dir-glob@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + resolved "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: path-type "^4.0.0" -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= - -dns-packet@^1.3.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" - integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= - dependencies: - buffer-indexof "^1.0.0" - -docsearch.js@^2.5.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/docsearch.js/-/docsearch.js-2.6.3.tgz#57cb4600d3b6553c677e7cbbe6a734593e38625d" - integrity sha512-GN+MBozuyz664ycpZY0ecdQE0ND/LSgJKhTLA0/v3arIS3S1Rpf2OJz6A35ReMsm91V5apcmzr5/kM84cvUg+A== - dependencies: - algoliasearch "^3.24.5" - autocomplete.js "0.36.0" - hogan.js "^3.0.2" - request "^2.87.0" - stack-utils "^1.0.1" - to-factory "^1.0.0" - zepto "^1.2.0" - doctrine@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + resolved "https://registry.npmmirror.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== dependencies: esutils "^2.0.2" doctrine@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + resolved "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: esutils "^2.0.2" -dom-accessibility-api@^0.5.6: - version "0.5.10" - resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.10.tgz#caa6d08f60388d0bb4539dd75fe458a9a1d0014c" - integrity sha512-Xu9mD0UjrJisTmv7lmVSDMagQcU9R5hwAbxsaAE/35XPnPLJobbuREfV/rraiSaEj/UOvgrzQs66zyTWTlyd+g== - -dom-align@^1.10.4: - version "1.12.2" - resolved "https://registry.yarnpkg.com/dom-align/-/dom-align-1.12.2.tgz#0f8164ebd0c9c21b0c790310493cd855892acd4b" - integrity sha512-pHuazgqrsTFrGU2WLDdXxCFabkdQDx72ddkraZNih1KsMcN5qsRSTR9O4VJRlwTPCPb5COYg3LOfiMHHcPInHg== - -dom-closest@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/dom-closest/-/dom-closest-0.2.0.tgz#ebd9f91d1bf22e8d6f477876bbcd3ec90216c0cf" - integrity sha1-69n5HRvyLo1vR3h2u80+yQIWwM8= - dependencies: - dom-matches ">=1.0.1" - -dom-converter@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" - integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== - dependencies: - utila "~0.4" - -dom-event-types@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dom-event-types/-/dom-event-types-1.0.0.tgz#5830a0a29e1bf837fe50a70cd80a597232813cae" - integrity sha512-2G2Vwi2zXTHBGqXHsJ4+ak/iP0N8Ar+G8a7LiD2oup5o4sQWytwqqrZu/O6hIMV0KMID2PL69OhpshLO0n7UJQ== - -dom-matches@>=1.0.1: - version "2.0.0" - resolved "https://registry.yarnpkg.com/dom-matches/-/dom-matches-2.0.0.tgz#d2728b416a87533980eb089b848d253cf23a758c" - integrity sha1-0nKLQWqHUzmA6wibhI0lPPI6dYw= +dom-align@^1.12.1: + version "1.12.4" + resolved "https://registry.npmmirror.com/dom-align/-/dom-align-1.12.4.tgz#3503992eb2a7cfcb2ed3b2a6d21e0b9c00d54511" + integrity sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw== dom-scroll-into-view@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz#0decc8522801fd8d3f1c6ba355a74d382c5f989b" + resolved "https://registry.npmmirror.com/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz#0decc8522801fd8d3f1c6ba355a74d382c5f989b" integrity sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w== -dom-serializer@0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - dom-serializer@^1.0.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" - integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== + version "1.4.1" + resolved "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== dependencies: domelementtype "^2.0.1" domhandler "^4.2.0" entities "^2.0.0" -dom-walk@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" - integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -domelementtype@1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - domelementtype@^2.0.1, domelementtype@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" - integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== + version "2.3.0" + resolved "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== -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== +domexception@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" + integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw== dependencies: - webidl-conversions "^5.0.0" + webidl-conversions "^7.0.0" -domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.0.tgz#16c658c626cf966967e306f966b431f77d4a5626" - integrity sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g== +domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== dependencies: domelementtype "^2.2.0" -domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -domutils@^2.5.2, domutils@^2.8.0: +domutils@^2.8.0: version "2.8.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + resolved "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== dependencies: dom-serializer "^1.0.1" @@ -6423,7 +5238,7 @@ domutils@^2.5.2, domutils@^2.8.0: dot-case@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + resolved "https://registry.npmmirror.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== dependencies: no-case "^3.0.4" @@ -6431,38 +5246,38 @@ dot-case@^3.0.4: dot-prop@^4.2.1: version "4.2.1" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.1.tgz#45884194a71fc2cda71cbb4bceb3a4dd2f433ba4" + resolved "https://registry.npmmirror.com/dot-prop/-/dot-prop-4.2.1.tgz#45884194a71fc2cda71cbb4bceb3a4dd2f433ba4" integrity sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ== dependencies: is-obj "^1.0.0" -dot-prop@^5.1.0, dot-prop@^5.2.0: +dot-prop@^5.1.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + resolved "https://registry.npmmirror.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== dependencies: is-obj "^2.0.0" dot-prop@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" + resolved "https://registry.npmmirror.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== dependencies: is-obj "^2.0.0" duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + version "0.1.5" + resolved "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" + integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== duplexer@^0.1.1: version "0.1.2" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + resolved "https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== duplexify@^3.4.2, duplexify@^3.6.0: version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + resolved "https://registry.npmmirror.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== dependencies: end-of-stream "^1.0.0" @@ -6472,443 +5287,462 @@ duplexify@^3.4.2, duplexify@^3.6.0: ecc-jsbn@~0.1.1: version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + resolved "https://registry.npmmirror.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== dependencies: jsbn "~0.1.0" safer-buffer "^2.1.0" editions@^2.2.0: version "2.3.1" - resolved "https://registry.yarnpkg.com/editions/-/editions-2.3.1.tgz#3bc9962f1978e801312fbd0aebfed63b49bfe698" + resolved "https://registry.npmmirror.com/editions/-/editions-2.3.1.tgz#3bc9962f1978e801312fbd0aebfed63b49bfe698" integrity sha512-ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA== dependencies: errlop "^2.0.0" semver "^6.3.0" -editorconfig@^0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" - integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== - dependencies: - commander "^2.19.0" - lru-cache "^4.1.5" - semver "^5.6.0" - sigmund "^1.0.1" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -ejs@^3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.6.tgz#5bfd0a0689743bb5268b3550cceeebbc1702822a" - integrity sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw== +editorconfig@^1.0.3: + version "1.0.4" + resolved "https://registry.npmmirror.com/editorconfig/-/editorconfig-1.0.4.tgz#040c9a8e9a6c5288388b87c2db07028aa89f53a3" + integrity sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q== dependencies: - jake "^10.6.1" + "@one-ini/wasm" "0.1.1" + commander "^10.0.0" + minimatch "9.0.1" + semver "^7.5.3" -electron-to-chromium@^1.4.17: - version "1.4.28" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.28.tgz#fef0e92e281df6d568f482d8d53c34ca5374de48" - integrity sha512-Gzbf0wUtKfyPaqf0Plz+Ctinf9eQIzxEqBHwSvbGfeOm9GMNdLxyu1dNiCUfM+x6r4BE0xUJNh3Nmg9gfAtTmg== +electron-to-chromium@^1.4.530: + version "1.4.530" + resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.530.tgz#c31a44346739bb34acb1a4026a07c3b9eeeb326c" + integrity sha512-rsJ9O8SCI4etS8TBsXuRfHa2eZReJhnGf5MHZd3Vo05PukWHKXhk3VQGbHHnDLa8nZz9woPCpLCMQpLGgkGNRA== elegant-spinner@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" - integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= - -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" - -emittery@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" - integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + resolved "https://registry.npmmirror.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" + integrity sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ== emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + resolved "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - emojis-list@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + resolved "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - encoding@^0.1.11, encoding@^0.1.12: version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + resolved "https://registry.npmmirror.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== dependencies: iconv-lite "^0.6.2" end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + resolved "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" -enhanced-resolve@^4.0.0, enhanced-resolve@^4.5.0: +enhanced-resolve@^4.0.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" + resolved "https://registry.npmmirror.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" -enquire.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/enquire.js/-/enquire.js-2.1.6.tgz#3e8780c9b8b835084c3f60e166dbc3c2a3c89814" - integrity sha1-PoeAybi4NQhMP2DhZtvDwqPImBQ= - -enquirer@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== - dependencies: - ansi-colors "^4.1.1" - entities@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + resolved "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -entities@~1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== +entities@^4.4.0: + version "4.5.0" + resolved "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +entities@~2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" + integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== env-paths@^2.2.0: version "2.2.1" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + resolved "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== -envify@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/envify/-/envify-4.1.0.tgz#f39ad3db9d6801b4e6b478b61028d3f0b6819f7e" - integrity sha512-IKRVVoAYr4pIx4yIWNsz9mOsboxlNXiu7TNBnem/K/uTHdkyzXWDzHCK7UTolqBbgaBz0tQHsD3YNls0uIIjiw== - dependencies: - esprima "^4.0.0" - through "~2.3.4" - -envinfo@^7.2.0, envinfo@^7.7.4: - version "7.8.1" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" - integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== +envinfo@^7.7.4, envinfo@^7.8.1: + version "7.10.0" + resolved "https://registry.npmmirror.com/envinfo/-/envinfo-7.10.0.tgz#55146e3909cc5fe63c22da63fb15b05aeac35b13" + integrity sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw== err-code@^1.0.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" - integrity sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA= + resolved "https://registry.npmmirror.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" + integrity sha512-CJAN+O0/yA1CKfRn9SXOGctSpEM7DCon/r/5r2eXFMY2zCCJBasFhcM5I+1kh3Ap11FsQCX+vGHceNPvpWKhoA== err-code@^2.0.2: version "2.0.3" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + resolved "https://registry.npmmirror.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== errlop@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/errlop/-/errlop-2.2.0.tgz#1ff383f8f917ae328bebb802d6ca69666a42d21b" + resolved "https://registry.npmmirror.com/errlop/-/errlop-2.2.0.tgz#1ff383f8f917ae328bebb802d6ca69666a42d21b" integrity sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw== -errno@^0.1.1, errno@^0.1.3, errno@~0.1.7: +errno@^0.1.1, errno@^0.1.3: version "0.1.8" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + resolved "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== dependencies: prr "~1.0.1" error-ex@^1.3.1: version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + resolved "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" - integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== +es-abstract@^1.22.1: + version "1.22.2" + resolved "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.22.2.tgz#90f7282d91d0ad577f505e423e52d4c1d93c1b8a" + integrity sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA== dependencies: + array-buffer-byte-length "^1.0.0" + arraybuffer.prototype.slice "^1.0.2" + available-typed-arrays "^1.0.5" call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.1" get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" has "^1.0.3" - has-symbols "^1.0.2" - internal-slot "^1.0.3" - is-callable "^1.2.4" - is-negative-zero "^2.0.1" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" is-regex "^1.1.4" - is-shared-array-buffer "^1.0.1" + is-shared-array-buffer "^1.0.2" is-string "^1.0.7" - is-weakref "^1.0.1" - object-inspect "^1.11.0" + is-typed-array "^1.1.12" + is-weakref "^1.0.2" + object-inspect "^1.12.3" object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.1" + safe-array-concat "^1.0.1" + safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.8" + string.prototype.trimend "^1.0.7" + string.prototype.trimstart "^1.0.7" + typed-array-buffer "^1.0.0" + typed-array-byte-length "^1.0.0" + typed-array-byte-offset "^1.0.0" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.11" + +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + +es-set-tostringtag@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + has-tostringtag "^1.0.0" + +es-shim-unscopables@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + dependencies: + has "^1.0.3" es-to-primitive@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + resolved "https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" is-date-object "^1.0.1" is-symbol "^1.0.2" -es6-promise@^4.0.3, es6-promise@^4.1.0: +es6-promise@^4.0.3: version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + resolved "https://registry.npmmirror.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== es6-promisify@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= + resolved "https://registry.npmmirror.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== dependencies: es6-promise "^4.0.3" -esbuild-android-arm64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.7.tgz#8c78cbb617f9f216abfb5a84cca453b51421a1b6" - integrity sha512-9/Q1NC4JErvsXzJKti0NHt+vzKjZOgPIjX/e6kkuCzgfT/GcO3FVBcGIv4HeJG7oMznE6KyKhvLrFgt7CdU2/w== - -esbuild-darwin-64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.7.tgz#7424bdb64c104556d36b7429af79ab51415ab8f4" - integrity sha512-Z9X+3TT/Xj+JiZTVlwHj2P+8GoiSmUnGVz0YZTSt8WTbW3UKw5Pw2ucuJ8VzbD2FPy0jbIKJkko/6CMTQchShQ== - -esbuild-darwin-arm64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.7.tgz#6a243dc0132aeb11c1991f968a6a9e393f43c6bc" - integrity sha512-68e7COhmwIiLXBEyxUxZSSU0akgv8t3e50e2QOtKdBUE0F6KIRISzFntLe2rYlNqSsjGWsIO6CCc9tQxijjSkw== - -esbuild-freebsd-64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.7.tgz#e7281e50522e724c4da502504dcd75be0db46c94" - integrity sha512-76zy5jAjPiXX/S3UvRgG85Bb0wy0zv/J2lel3KtHi4V7GUTBfhNUPt0E5bpSXJ6yMT7iThhnA5rOn+IJiUcslQ== - -esbuild-freebsd-arm64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.7.tgz#31e513098efd181d76a3ba3ea285836d37f018a3" - integrity sha512-lSlYNLiqyzd7qCN5CEOmLxn7MhnGHPcu5KuUYOG1i+t5A6q7LgBmfYC9ZHJBoYyow3u4CNu79AWHbvVLpE/VQQ== - -esbuild-linux-32@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.7.tgz#82cf96accbf55d3007c3338dc3b3144efa9ae108" - integrity sha512-Vk28u409wVOXqTaT6ek0TnfQG4Ty1aWWfiysIaIRERkNLhzLhUf4i+qJBN8mMuGTYOkE40F0Wkbp6m+IidOp2A== - -esbuild-linux-64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.7.tgz#67bdfe23a6ca918a0bb8e9558a3ee0fdf98c0bc0" - integrity sha512-+Lvz6x+8OkRk3K2RtZwO+0a92jy9si9cUea5Zoru4yJ/6EQm9ENX5seZE0X9DTwk1dxJbjmLsJsd3IoowyzgVg== - -esbuild-linux-arm64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.7.tgz#f79c69ff0c176559c418de8e59aa3cf388fff992" - integrity sha512-kJd5beWSqteSAW086qzCEsH6uwpi7QRIpzYWHzEYwKKu9DiG1TwIBegQJmLpPsLp4v5RAFjea0JAmAtpGtRpqg== - -esbuild-linux-arm@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.7.tgz#3d665b35e1c27dbe1c9deb8bf956d7d1f191a21b" - integrity sha512-OzpXEBogbYdcBqE4uKynuSn5YSetCvK03Qv1HcOY1VN6HmReuatjJ21dCH+YPHSpMEF0afVCnNfffvsGEkxGJQ== - -esbuild-linux-mips64le@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.7.tgz#226114a0cc6649ba0ffd3428118a8f622872f16d" - integrity sha512-mFWpnDhZJmj/h7pxqn1GGDsKwRfqtV7fx6kTF5pr4PfXe8pIaTERpwcKkoCwZUkWAOmUEjMIUAvFM72A6hMZnA== - -esbuild-linux-ppc64le@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.7.tgz#5c67ae56517f2644d567b2ca5ecb97f9520cfc49" - integrity sha512-wM7f4M0bsQXfDL4JbbYD0wsr8cC8KaQ3RPWc/fV27KdErPW7YsqshZZSjDV0kbhzwpNNdhLItfbaRT8OE8OaKA== - -esbuild-netbsd-64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.7.tgz#69dc0469ea089013956d8c6aa71c9e7fc25fc567" - integrity sha512-J/afS7woKyzGgAL5FlgvMyqgt5wQ597lgsT+xc2yJ9/7BIyezeXutXqfh05vszy2k3kSvhLesugsxIA71WsqBw== - -esbuild-openbsd-64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.7.tgz#3a9d04ecf820708e2e5b7d26fa7332e3f19f6b6c" - integrity sha512-7CcxgdlCD+zAPyveKoznbgr3i0Wnh0L8BDGRCjE/5UGkm5P/NQko51tuIDaYof8zbmXjjl0OIt9lSo4W7I8mrw== - -esbuild-sunos-64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.7.tgz#7c33a682f0fd9565cae7df165d0e8736b7b62623" - integrity sha512-GKCafP2j/KUljVC3nesw1wLFSZktb2FGCmoT1+730zIF5O6hNroo0bSEofm6ZK5mNPnLiSaiLyRB9YFgtkd5Xg== - -esbuild-windows-32@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.7.tgz#24ec706a5f25b4499048f56146bcff0ed3839dce" - integrity sha512-5I1GeL/gZoUUdTPA0ws54bpYdtyeA2t6MNISalsHpY269zK8Jia/AXB3ta/KcDHv2SvNwabpImeIPXC/k0YW6A== - -esbuild-windows-64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.7.tgz#dd6d5b5bace93cd7a9174d31fbd727ba21885abf" - integrity sha512-CIGKCFpQOSlYsLMbxt8JjxxvVw9MlF1Rz2ABLVfFyHUF5OeqHD5fPhGrCVNaVrhO8Xrm+yFmtjcZudUGr5/WYQ== - -esbuild-windows-arm64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.7.tgz#ecfd9ac289606f26760c4f737caaeeadfff3cfe3" - integrity sha512-eOs1eSivOqN7cFiRIukEruWhaCf75V0N8P0zP7dh44LIhLl8y6/z++vv9qQVbkBm5/D7M7LfCfCTmt1f1wHOCw== - -esbuild@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.7.tgz#e85cead55b0e1001abf1b2ce4a11c1d4d709d13c" - integrity sha512-+u/msd6iu+HvfysUPkZ9VHm83LImmSNnecYPfFI01pQ7TTcsFR+V0BkybZX7mPtIaI7LCrse6YRj+v3eraJSgw== +esbuild-android-64@0.14.54: + version "0.14.54" + resolved "https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz#505f41832884313bbaffb27704b8bcaa2d8616be" + integrity sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ== + +esbuild-android-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz#8ce69d7caba49646e009968fe5754a21a9871771" + integrity sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg== + +esbuild-darwin-64@0.14.54: + version "0.14.54" + resolved "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz#24ba67b9a8cb890a3c08d9018f887cc221cdda25" + integrity sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug== + +esbuild-darwin-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz#3f7cdb78888ee05e488d250a2bdaab1fa671bf73" + integrity sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw== + +esbuild-freebsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz#09250f997a56ed4650f3e1979c905ffc40bbe94d" + integrity sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg== + +esbuild-freebsd-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz#bafb46ed04fc5f97cbdb016d86947a79579f8e48" + integrity sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q== + +esbuild-linux-32@0.14.54: + version "0.14.54" + resolved "https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz#e2a8c4a8efdc355405325033fcebeb941f781fe5" + integrity sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw== + +esbuild-linux-64@0.14.54: + version "0.14.54" + resolved "https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz#de5fdba1c95666cf72369f52b40b03be71226652" + integrity sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg== + +esbuild-linux-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz#dae4cd42ae9787468b6a5c158da4c84e83b0ce8b" + integrity sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig== + +esbuild-linux-arm@0.14.54: + version "0.14.54" + resolved "https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz#a2c1dff6d0f21dbe8fc6998a122675533ddfcd59" + integrity sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw== + +esbuild-linux-mips64le@0.14.54: + version "0.14.54" + resolved "https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz#d9918e9e4cb972f8d6dae8e8655bf9ee131eda34" + integrity sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw== + +esbuild-linux-ppc64le@0.14.54: + version "0.14.54" + resolved "https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz#3f9a0f6d41073fb1a640680845c7de52995f137e" + integrity sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ== + +esbuild-linux-riscv64@0.14.54: + version "0.14.54" + resolved "https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz#618853c028178a61837bc799d2013d4695e451c8" + integrity sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg== + +esbuild-linux-s390x@0.14.54: + version "0.14.54" + resolved "https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz#d1885c4c5a76bbb5a0fe182e2c8c60eb9e29f2a6" + integrity sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA== + +esbuild-netbsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz#69ae917a2ff241b7df1dbf22baf04bd330349e81" + integrity sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w== + +esbuild-openbsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz#db4c8495287a350a6790de22edea247a57c5d47b" + integrity sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw== + +esbuild-sunos-64@0.14.54: + version "0.14.54" + resolved "https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz#54287ee3da73d3844b721c21bc80c1dc7e1bf7da" + integrity sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw== + +esbuild-windows-32@0.14.54: + version "0.14.54" + resolved "https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz#f8aaf9a5667630b40f0fb3aa37bf01bbd340ce31" + integrity sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w== + +esbuild-windows-64@0.14.54: + version "0.14.54" + resolved "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz#bf54b51bd3e9b0f1886ffdb224a4176031ea0af4" + integrity sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ== + +esbuild-windows-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz#937d15675a15e4b0e4fafdbaa3a01a776a2be982" + integrity sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg== + +esbuild@^0.14.27, esbuild@^0.14.29: + version "0.14.54" + resolved "https://registry.npmmirror.com/esbuild/-/esbuild-0.14.54.tgz#8b44dcf2b0f1a66fc22459943dccf477535e9aa2" + integrity sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA== optionalDependencies: - esbuild-android-arm64 "0.14.7" - esbuild-darwin-64 "0.14.7" - esbuild-darwin-arm64 "0.14.7" - esbuild-freebsd-64 "0.14.7" - esbuild-freebsd-arm64 "0.14.7" - esbuild-linux-32 "0.14.7" - esbuild-linux-64 "0.14.7" - esbuild-linux-arm "0.14.7" - esbuild-linux-arm64 "0.14.7" - esbuild-linux-mips64le "0.14.7" - esbuild-linux-ppc64le "0.14.7" - esbuild-netbsd-64 "0.14.7" - esbuild-openbsd-64 "0.14.7" - esbuild-sunos-64 "0.14.7" - esbuild-windows-32 "0.14.7" - esbuild-windows-64 "0.14.7" - esbuild-windows-arm64 "0.14.7" + "@esbuild/linux-loong64" "0.14.54" + esbuild-android-64 "0.14.54" + esbuild-android-arm64 "0.14.54" + esbuild-darwin-64 "0.14.54" + esbuild-darwin-arm64 "0.14.54" + esbuild-freebsd-64 "0.14.54" + esbuild-freebsd-arm64 "0.14.54" + esbuild-linux-32 "0.14.54" + esbuild-linux-64 "0.14.54" + esbuild-linux-arm "0.14.54" + esbuild-linux-arm64 "0.14.54" + esbuild-linux-mips64le "0.14.54" + esbuild-linux-ppc64le "0.14.54" + esbuild-linux-riscv64 "0.14.54" + esbuild-linux-s390x "0.14.54" + esbuild-netbsd-64 "0.14.54" + esbuild-openbsd-64 "0.14.54" + esbuild-sunos-64 "0.14.54" + esbuild-windows-32 "0.14.54" + esbuild-windows-64 "0.14.54" + esbuild-windows-arm64 "0.14.54" + +esbuild@^0.18.10: + version "0.18.20" + resolved "https://registry.npmmirror.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" + integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== + optionalDependencies: + "@esbuild/android-arm" "0.18.20" + "@esbuild/android-arm64" "0.18.20" + "@esbuild/android-x64" "0.18.20" + "@esbuild/darwin-arm64" "0.18.20" + "@esbuild/darwin-x64" "0.18.20" + "@esbuild/freebsd-arm64" "0.18.20" + "@esbuild/freebsd-x64" "0.18.20" + "@esbuild/linux-arm" "0.18.20" + "@esbuild/linux-arm64" "0.18.20" + "@esbuild/linux-ia32" "0.18.20" + "@esbuild/linux-loong64" "0.18.20" + "@esbuild/linux-mips64el" "0.18.20" + "@esbuild/linux-ppc64" "0.18.20" + "@esbuild/linux-riscv64" "0.18.20" + "@esbuild/linux-s390x" "0.18.20" + "@esbuild/linux-x64" "0.18.20" + "@esbuild/netbsd-x64" "0.18.20" + "@esbuild/openbsd-x64" "0.18.20" + "@esbuild/sunos-x64" "0.18.20" + "@esbuild/win32-arm64" "0.18.20" + "@esbuild/win32-ia32" "0.18.20" + "@esbuild/win32-x64" "0.18.20" escalade@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + resolved "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-goat@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" - integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== - -escape-html@^1.0.3, escape-html@~1.0.3: +escape-html@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + resolved "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.4, 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@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + resolved "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== 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" + resolved "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== escodegen@^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== + version "2.1.0" + resolved "https://registry.npmmirror.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" + integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== dependencies: esprima "^4.0.1" estraverse "^5.2.0" esutils "^2.0.2" - optionator "^0.8.1" optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@^8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz#f7471b20b6fe8a9a9254cc684454202886a2dd7a" - integrity sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew== +eslint-config-prettier@^8.5.0: + version "8.10.0" + resolved "https://registry.npmmirror.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11" + integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg== -eslint-import-resolver-node@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" - integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== +eslint-import-resolver-node@^0.3.7: + version "0.3.9" + resolved "https://registry.npmmirror.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== dependencies: debug "^3.2.7" - resolve "^1.20.0" + is-core-module "^2.13.0" + resolve "^1.22.4" -eslint-module-utils@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz#b435001c9f8dd4ab7f6d0efcae4b9696d4c24b7c" - integrity sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ== +eslint-module-utils@^2.8.0: + version "2.8.0" + resolved "https://registry.npmmirror.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== dependencies: debug "^3.2.7" - find-up "^2.1.0" - pkg-dir "^2.0.0" eslint-plugin-es@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893" + resolved "https://registry.npmmirror.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893" integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== dependencies: eslint-utils "^2.0.0" regexpp "^3.0.0" -eslint-plugin-import@^2.13.0: - version "2.25.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz#a554b5f66e08fb4f6dc99221866e57cfff824766" - integrity sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg== +eslint-plugin-import@^2.26.0: + version "2.28.1" + resolved "https://registry.npmmirror.com/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz#63b8b5b3c409bfc75ebaf8fb206b07ab435482c4" + integrity sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A== dependencies: - array-includes "^3.1.4" - array.prototype.flat "^1.2.5" - debug "^2.6.9" + array-includes "^3.1.6" + array.prototype.findlastindex "^1.2.2" + array.prototype.flat "^1.3.1" + array.prototype.flatmap "^1.3.1" + debug "^3.2.7" doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.1" + eslint-import-resolver-node "^0.3.7" + eslint-module-utils "^2.8.0" has "^1.0.3" - is-core-module "^2.8.0" + is-core-module "^2.13.0" is-glob "^4.0.3" - minimatch "^3.0.4" - object.values "^1.1.5" - resolve "^1.20.0" - tsconfig-paths "^3.11.0" - -eslint-plugin-markdown@^2.0.1: + minimatch "^3.1.2" + object.fromentries "^2.0.6" + object.groupby "^1.0.0" + object.values "^1.1.6" + semver "^6.3.1" + tsconfig-paths "^3.14.2" + +eslint-plugin-markdown@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-markdown/-/eslint-plugin-markdown-2.2.1.tgz#76b8a970099fbffc6cc1ffcad9772b96911c027a" + resolved "https://registry.npmmirror.com/eslint-plugin-markdown/-/eslint-plugin-markdown-2.2.1.tgz#76b8a970099fbffc6cc1ffcad9772b96911c027a" integrity sha512-FgWp4iyYvTFxPwfbxofTvXxgzPsDuSKHQy2S+a8Ve6savbujey+lgrFFbXQA0HPygISpRYWYBjooPzhYSF81iA== dependencies: mdast-util-from-markdown "^0.8.5" eslint-plugin-node@^11.1.0: version "11.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" + resolved "https://registry.npmmirror.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== dependencies: eslint-plugin-es "^3.0.0" @@ -6919,219 +5753,180 @@ eslint-plugin-node@^11.1.0: semver "^6.1.0" eslint-plugin-prettier@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz#8b99d1e4b8b24a762472b4567992023619cb98e0" - integrity sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ== + version "4.2.1" + resolved "https://registry.npmmirror.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" + integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== dependencies: prettier-linter-helpers "^1.0.0" -eslint-plugin-promise@^4.0.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz#61485df2a359e03149fdafc0a68b0e030ad2ac45" - integrity sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ== +eslint-plugin-promise@^6.0.0: + version "6.1.1" + resolved "https://registry.npmmirror.com/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz#269a3e2772f62875661220631bd4dafcb4083816" + integrity sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig== -eslint-plugin-vue@^7.20.0: - version "7.20.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-7.20.0.tgz#98c21885a6bfdf0713c3a92957a5afeaaeed9253" - integrity sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw== +eslint-plugin-vue@^9.1.1: + version "9.17.0" + resolved "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.17.0.tgz#4501547373f246547083482838b4c8f4b28e5932" + integrity sha512-r7Bp79pxQk9I5XDP0k2dpUC7Ots3OSWgvGZNu3BxmKK6Zg7NgVtcOB6OCna5Kb9oQwJPl5hq183WD0SY5tZtIQ== dependencies: - eslint-utils "^2.1.0" + "@eslint-community/eslint-utils" "^4.4.0" natural-compare "^1.4.0" - semver "^6.3.0" - vue-eslint-parser "^7.10.0" - -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" + nth-check "^2.1.1" + postcss-selector-parser "^6.0.13" + semver "^7.5.4" + vue-eslint-parser "^9.3.1" + xml-name-validator "^4.0.0" -eslint-scope@^5.1.1: +eslint-scope@5.1.1, eslint-scope@^5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + resolved "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-utils@^2.0.0, eslint-utils@^2.1.0: +eslint-scope@^7.1.1, eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-utils@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + resolved "https://registry.npmmirror.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== dependencies: eslint-visitor-keys "^1.1.0" -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: +eslint-visitor-keys@^1.1.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + resolved "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== -eslint-visitor-keys@^2.0.0: +eslint-visitor-keys@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + resolved "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint@^7.32.0: - version "7.32.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" - integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== - dependencies: - "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.3" - "@humanwhocodes/config-array" "^0.5.0" - ajv "^6.10.0" +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@^8.17.0: + version "8.50.0" + resolved "https://registry.npmmirror.com/eslint/-/eslint-8.50.0.tgz#2ae6015fee0240fcd3f83e1e25df0287f487d6b2" + integrity sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.2" + "@eslint/js" "8.50.0" + "@humanwhocodes/config-array" "^0.11.11" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" - debug "^4.0.1" + debug "^4.3.2" doctrine "^3.0.0" - enquirer "^2.3.5" escape-string-regexp "^4.0.0" - eslint-scope "^5.1.1" - eslint-utils "^2.1.0" - eslint-visitor-keys "^2.0.0" - espree "^7.3.1" - esquery "^1.4.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^5.1.2" - globals "^13.6.0" - ignore "^4.0.6" - import-fresh "^3.0.0" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" imurmurhash "^0.1.4" is-glob "^4.0.0" - js-yaml "^3.13.1" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" lodash.merge "^4.6.2" - minimatch "^3.0.4" + minimatch "^3.1.2" natural-compare "^1.4.0" - optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.1.0" - semver "^7.2.1" - strip-ansi "^6.0.0" - strip-json-comments "^3.1.0" - table "^6.0.9" + optionator "^0.9.3" + strip-ansi "^6.0.1" text-table "^0.2.0" - v8-compile-cache "^2.0.3" - -espree@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" - integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== - dependencies: - acorn "^7.1.1" - acorn-jsx "^5.2.0" - eslint-visitor-keys "^1.1.0" -espree@^7.3.0, espree@^7.3.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" - integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== +espree@^9.3.1, espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.npmmirror.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: - acorn "^7.4.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^1.3.0" + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + resolved "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== +esquery@^1.4.0, esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.npmmirror.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" -esrecurse@^4.1.0, esrecurse@^4.3.0: +esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + resolved "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^4.1.1: version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + resolved "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== estraverse@^5.1.0, estraverse@^5.2.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + resolved "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== estree-walker@^0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" + resolved "https://registry.npmmirror.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== -estree-walker@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" - integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== - -estree-walker@^2.0.1: +estree-walker@^2.0.1, estree-walker@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + resolved "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== +estree-walker@^3.0.1: + version "3.0.3" + resolved "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== + dependencies: + "@types/estree" "^1.0.0" + esutils@^2.0.2: version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + resolved "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -eventemitter3@^4.0.0, eventemitter3@^4.0.4: +eventemitter3@^4.0.4: version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + resolved "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -events@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= - -events@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - -eventsource@^1.0.7: - version "1.1.0" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.0.tgz#00e8ca7c92109e94b0ddf32dac677d841028cfaf" - integrity sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg== - dependencies: - original "^1.0.0" - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - execa@^0.7.0: version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= + resolved "https://registry.npmmirror.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + integrity sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw== dependencies: cross-spawn "^5.0.1" get-stream "^3.0.0" @@ -7143,7 +5938,7 @@ execa@^0.7.0: execa@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + resolved "https://registry.npmmirror.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== dependencies: cross-spawn "^6.0.0" @@ -7156,7 +5951,7 @@ execa@^1.0.0: execa@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + resolved "https://registry.npmmirror.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== dependencies: cross-spawn "^7.0.0" @@ -7169,9 +5964,9 @@ execa@^4.0.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" -execa@^5.0.0: +execa@^5.0.0, execa@^5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + resolved "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== dependencies: cross-spawn "^7.0.3" @@ -7184,15 +5979,10 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= - expand-brackets@^2.1.4: version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + resolved "https://registry.npmmirror.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== dependencies: debug "^2.3.3" define-property "^0.2.5" @@ -7204,82 +5994,34 @@ expand-brackets@^2.1.4: expand-tilde@^1.2.2: version "1.2.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" - integrity sha1-C4HrqJflo9MdHD0QL48BRB5VlEk= + resolved "https://registry.npmmirror.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" + integrity sha512-rtmc+cjLZqnu9dSYosX9EWmSJhTwpACgJQTfj4hgg2JjOD/6SIQalZrt4a3aQeh++oNxkazcaxrhPUj6+g5G/Q== dependencies: os-homedir "^1.0.1" -expect@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/expect/-/expect-27.4.2.tgz#4429b0f7e307771d176de9bdf23229b101db6ef6" - integrity sha512-BjAXIDC6ZOW+WBFNg96J22D27Nq5ohn+oGcuP2rtOtcjuxNoV9McpQ60PcQWhdFOSBIQdR72e+4HdnbZTFSTyg== - dependencies: - "@jest/types" "^27.4.2" - ansi-styles "^5.0.0" - jest-get-type "^27.4.0" - jest-matcher-utils "^27.4.2" - jest-message-util "^27.4.2" - jest-regex-util "^27.4.0" - -express@^4.17.1: - version "4.17.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.2.tgz#c18369f265297319beed4e5558753cc8c1364cb3" - integrity sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg== - dependencies: - accepts "~1.3.7" - array-flatten "1.1.1" - body-parser "1.19.1" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.4.1" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.9.6" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.17.2" - serve-static "1.14.2" - setprototypeof "1.2.0" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - extend-shallow@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + resolved "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== dependencies: is-extendable "^0.1.0" extend-shallow@^3.0.0, extend-shallow@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + resolved "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== dependencies: assign-symbols "^1.0.0" is-extendable "^1.0.1" extend@~3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + resolved "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== external-editor@^3.0.3: version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + resolved "https://registry.npmmirror.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== dependencies: chardet "^0.7.0" @@ -7288,7 +6030,7 @@ external-editor@^3.0.3: extglob@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + resolved "https://registry.npmmirror.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== dependencies: array-unique "^0.3.2" @@ -7302,40 +6044,28 @@ extglob@^2.0.4: extsprintf@1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + resolved "https://registry.npmmirror.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== extsprintf@^1.2.0: version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + resolved "https://registry.npmmirror.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + resolved "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-diff@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== - -fast-glob@^2.2.6: - version "2.2.7" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" - integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== - dependencies: - "@mrmlnc/readdir-enhanced" "^2.2.1" - "@nodelib/fs.stat" "^1.1.2" - glob-parent "^3.1.0" - is-glob "^4.0.0" - merge2 "^1.2.3" - micromatch "^3.1.10" + version "1.3.0" + resolved "https://registry.npmmirror.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== -fast-glob@^3.1.1: - version "3.2.7" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" - integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== +fast-glob@^3.2.9: + version "3.3.1" + resolved "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" + integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -7343,105 +6073,66 @@ fast-glob@^3.1.1: merge2 "^1.3.0" micromatch "^4.0.4" -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.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" + resolved "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + resolved "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + version "1.15.0" + resolved "https://registry.npmmirror.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== dependencies: reusify "^1.0.4" -faye-websocket@^0.11.3: - version "0.11.4" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" - integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== - dependencies: - websocket-driver ">=0.5.1" - -fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== - dependencies: - bser "2.1.1" - -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - figures@^1.7.0: version "1.7.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" - integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= + resolved "https://registry.npmmirror.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + integrity sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ== dependencies: escape-string-regexp "^1.0.5" object-assign "^4.1.0" figures@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= + resolved "https://registry.npmmirror.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== dependencies: escape-string-regexp "^1.0.5" figures@^3.0.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + resolved "https://registry.npmmirror.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== dependencies: escape-string-regexp "^1.0.5" file-entry-cache@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + resolved "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: flat-cache "^3.0.4" -file-loader@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-3.0.1.tgz#f8e0ba0b599918b51adfe45d66d1e771ad560faa" - integrity sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw== - dependencies: - loader-utils "^1.0.2" - schema-utils "^1.0.0" - file-name@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/file-name/-/file-name-0.1.0.tgz#12b122f120f9c34dbc176c1ab81a548aced6def7" - integrity sha1-ErEi8SD5w028F2wauBpUis7W3vc= - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -filelist@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.2.tgz#80202f21462d4d1c2e214119b1807c1bc0380e5b" - integrity sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ== - dependencies: - minimatch "^3.0.4" + resolved "https://registry.npmmirror.com/file-name/-/file-name-0.1.0.tgz#12b122f120f9c34dbc176c1ab81a548aced6def7" + integrity sha512-Q8SskhjF4eUk/xoQkmubwLkoHwOTv6Jj/WGtOVLKkZ0vvM+LipkSXugkn1F/+mjWXU32AXLZB3qaz0arUzgtRw== filesize@^3.6.1: version "3.6.1" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" + resolved "https://registry.npmmirror.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== fill-range@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + resolved "https://registry.npmmirror.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== dependencies: extend-shallow "^2.0.1" is-number "^3.0.0" @@ -7450,41 +6141,28 @@ fill-range@^4.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" + resolved "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: to-regex-range "^5.0.1" filter-obj@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" - integrity sha1-mzERErxsYSehbgFsbF1/GeCAXFs= - -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" + resolved "https://registry.npmmirror.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" + integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== find-cache-dir@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + resolved "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== dependencies: commondir "^1.0.1" make-dir "^2.0.0" pkg-dir "^3.0.0" -find-cache-dir@^3.3.1: +find-cache-dir@^3.3.1, find-cache-dir@^3.3.2: version "3.3.2" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + resolved "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== dependencies: commondir "^1.0.1" @@ -7493,36 +6171,36 @@ find-cache-dir@^3.3.1: find-file-up@^0.1.2: version "0.1.3" - resolved "https://registry.yarnpkg.com/find-file-up/-/find-file-up-0.1.3.tgz#cf68091bcf9f300a40da411b37da5cce5a2fbea0" - integrity sha1-z2gJG8+fMApA2kEbN9pczlovvqA= + resolved "https://registry.npmmirror.com/find-file-up/-/find-file-up-0.1.3.tgz#cf68091bcf9f300a40da411b37da5cce5a2fbea0" + integrity sha512-mBxmNbVyjg1LQIIpgO8hN+ybWBgDQK8qjht+EbrTCGmmPV/sc7RF1i9stPTD6bpvXZywBdrwRYxhSdJv867L6A== dependencies: fs-exists-sync "^0.1.0" resolve-dir "^0.1.0" find-pkg@^0.1.0: version "0.1.2" - resolved "https://registry.yarnpkg.com/find-pkg/-/find-pkg-0.1.2.tgz#1bdc22c06e36365532e2a248046854b9788da557" - integrity sha1-G9wiwG42NlUy4qJIBGhUuXiNpVc= + resolved "https://registry.npmmirror.com/find-pkg/-/find-pkg-0.1.2.tgz#1bdc22c06e36365532e2a248046854b9788da557" + integrity sha512-0rnQWcFwZr7eO0513HahrWafsc3CTFioEB7DRiEYCUM/70QXSY8f3mCST17HXLcPvEhzH/Ty/Bxd72ZZsr/yvw== dependencies: find-file-up "^0.1.2" -find-up@^2.0.0, find-up@^2.1.0: +find-up@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + resolved "https://registry.npmmirror.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== dependencies: locate-path "^2.0.0" find-up@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + resolved "https://registry.npmmirror.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== dependencies: locate-path "^3.0.0" find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + resolved "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: locate-path "^5.0.0" @@ -7530,7 +6208,7 @@ find-up@^4.0.0, find-up@^4.1.0: find-up@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + resolved "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: locate-path "^6.0.0" @@ -7538,28 +6216,29 @@ find-up@^5.0.0: findup@0.1.5: version "0.1.5" - resolved "https://registry.yarnpkg.com/findup/-/findup-0.1.5.tgz#8ad929a3393bac627957a7e5de4623b06b0e2ceb" - integrity sha1-itkpozk7rGJ5V6fl3kYjsGsOLOs= + resolved "https://registry.npmmirror.com/findup/-/findup-0.1.5.tgz#8ad929a3393bac627957a7e5de4623b06b0e2ceb" + integrity sha512-Udxo3C9A6alt2GZ2MNsgnIvX7De0V3VGxeP/x98NSVgSlizcDHdmJza61LI7zJy4OEtSiJyE72s0/+tBl5/ZxA== dependencies: colors "~0.6.0-1" commander "~2.1.0" flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + version "3.1.0" + resolved "https://registry.npmmirror.com/flat-cache/-/flat-cache-3.1.0.tgz#0e54ab4a1a60fe87e2946b6b00657f1c99e1af3f" + integrity sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew== dependencies: - flatted "^3.1.0" + flatted "^3.2.7" + keyv "^4.5.3" rimraf "^3.0.2" -flatted@^3.1.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2" - integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw== +flatted@^3.2.7: + version "3.2.9" + resolved "https://registry.npmmirror.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" + integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== flush-write-stream@^1.0.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + resolved "https://registry.npmmirror.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== dependencies: inherits "^2.0.3" @@ -7567,40 +6246,45 @@ flush-write-stream@^1.0.0: fn-name@~2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/fn-name/-/fn-name-2.0.1.tgz#5214d7537a4d06a4a301c0cc262feb84188002e7" - integrity sha1-UhTXU3pNBqSjAcDMJi/rhBiAAuc= + resolved "https://registry.npmmirror.com/fn-name/-/fn-name-2.0.1.tgz#5214d7537a4d06a4a301c0cc262feb84188002e7" + integrity sha512-oIDB1rXf3BUnn00bh2jVM0byuqr94rBh6g7ZfdKcbmp1we2GQtPzKdloyvBXHs+q3fvxB8EqX5ecFba3RwCSjA== follow-redirects@1.5.10: version "1.5.10" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" + resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== dependencies: debug "=3.1.0" -follow-redirects@^1.0.0: - version "1.14.6" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.6.tgz#8cfb281bbc035b3c067d6cd975b0f6ade6e855cd" - integrity sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A== +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" for-in@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + resolved "https://registry.npmmirror.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== -foreach@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" - integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= +foreground-child@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" + integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^3.0.2" forever-agent@~0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + resolved "https://registry.npmmirror.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== -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== +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" @@ -7608,61 +6292,56 @@ form-data@^3.0.0: form-data@~2.3.2: version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + resolved "https://registry.npmmirror.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== dependencies: asynckit "^0.4.0" combined-stream "^1.0.6" mime-types "^2.1.12" -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== +fraction.js@^4.3.6: + version "4.3.6" + resolved "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.3.6.tgz#e9e3acec6c9a28cf7bc36cbe35eea4ceb2c5c92d" + integrity sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg== fragment-cache@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + resolved "https://registry.npmmirror.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== dependencies: map-cache "^0.2.2" -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - from2@^2.1.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + resolved "https://registry.npmmirror.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== dependencies: inherits "^2.0.1" readable-stream "^2.0.0" fs-constants@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + resolved "https://registry.npmmirror.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== fs-exists-sync@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" - integrity sha1-mC1ok6+RjnLQjeyehnP/K1qNat0= + resolved "https://registry.npmmirror.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" + integrity sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg== -fs-extra@8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== +fs-extra@^10.0.0, fs-extra@^10.0.1: + version "10.1.0" + resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== dependencies: graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" + jsonfile "^6.0.1" + universalify "^2.0.0" -fs-extra@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" - integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== +fs-extra@^11.1.0: + version "11.1.1" + resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" + integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" @@ -7670,25 +6349,16 @@ fs-extra@^10.0.0: fs-extra@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291" - integrity sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE= + resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291" + integrity sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg== dependencies: graceful-fs "^4.1.2" jsonfile "^3.0.0" universalify "^0.1.0" -fs-extra@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" - integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - fs-extra@^9.1.0: version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== dependencies: at-least-node "^1.0.0" @@ -7698,22 +6368,27 @@ fs-extra@^9.1.0: fs-minipass@^1.2.7: version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + resolved "https://registry.npmmirror.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== dependencies: minipass "^2.6.0" fs-minipass@^2.0.0, fs-minipass@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + resolved "https://registry.npmmirror.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== dependencies: minipass "^3.0.0" +fs-readdir-recursive@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" + integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== + fs-write-stream-atomic@^1.0.8: version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + resolved "https://registry.npmmirror.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA== dependencies: graceful-fs "^4.1.2" iferr "^0.1.5" @@ -7722,35 +6397,37 @@ fs-write-stream-atomic@^1.0.8: fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" + resolved "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@^2.3.2, 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== +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== function-bind@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= +function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== g-status@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/g-status/-/g-status-2.0.2.tgz#270fd32119e8fc9496f066fe5fe88e0a6bc78b97" + resolved "https://registry.npmmirror.com/g-status/-/g-status-2.0.2.tgz#270fd32119e8fc9496f066fe5fe88e0a6bc78b97" integrity sha512-kQoE9qH+T1AHKgSSD0Hkv98bobE90ILQcXAF4wvGgsr7uFqNvwmh8j+Lq3l0RVt3E3HjSbv2B9biEGcEtpHLCA== dependencies: arrify "^1.0.1" @@ -7759,8 +6436,8 @@ g-status@^2.0.2: gauge@~2.7.3: version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + resolved "https://registry.npmmirror.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg== dependencies: aproba "^1.0.3" console-control-strings "^1.0.0" @@ -7773,48 +6450,49 @@ gauge@~2.7.3: generic-names@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-4.0.0.tgz#0bd8a2fd23fe8ea16cbd0a279acd69c06933d9a3" + resolved "https://registry.npmmirror.com/generic-names/-/generic-names-4.0.0.tgz#0bd8a2fd23fe8ea16cbd0a279acd69c06933d9a3" integrity sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A== dependencies: loader-utils "^3.2.0" genfun@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/genfun/-/genfun-4.0.1.tgz#ed10041f2e4a7f1b0a38466d17a5c3e27df1dfc1" - integrity sha1-7RAEHy5KfxsKOEZtF6XD4n3x38E= + resolved "https://registry.npmmirror.com/genfun/-/genfun-4.0.1.tgz#ed10041f2e4a7f1b0a38466d17a5c3e27df1dfc1" + integrity sha512-48yv1eDS5Qrz6cbSDBBik0u7jCgC/eA9eZrl9MIN1LfKzFTuGt6EHgr31YM8yT9cjb5BplXb4Iz3VtOYmgt8Jg== 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" + resolved "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^2.0.1, get-caller-file@^2.0.5: +get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + resolved "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== +get-func-name@^2.0.0: + version "2.0.2" + resolved "https://registry.npmmirror.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" + integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1: + version "1.2.1" + resolved "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== dependencies: function-bind "^1.1.1" has "^1.0.3" - has-symbols "^1.0.1" + has-proto "^1.0.1" + has-symbols "^1.0.3" 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" + resolved "https://registry.npmmirror.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - get-pkg-repo@^4.0.0: version "4.2.1" - resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz#75973e1c8050c73f48190c52047c4cee3acbf385" + resolved "https://registry.npmmirror.com/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz#75973e1c8050c73f48190c52047c4cee3acbf385" integrity sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA== dependencies: "@hutson/parse-repository-url" "^3.0.0" @@ -7824,36 +6502,36 @@ get-pkg-repo@^4.0.0: get-port@^5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" + resolved "https://registry.npmmirror.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== 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= + resolved "https://registry.npmmirror.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ== -get-stream@^4.0.0, get-stream@^4.1.0: +get-stream@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + resolved "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== dependencies: pump "^3.0.0" -get-stream@^5.0.0, get-stream@^5.1.0: +get-stream@^5.0.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + resolved "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== dependencies: pump "^3.0.0" get-stream@^6.0.0: version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + resolved "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-symbol-description@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + resolved "https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== dependencies: call-bind "^1.0.2" @@ -7861,20 +6539,20 @@ get-symbol-description@^1.0.0: get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + resolved "https://registry.npmmirror.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== getpass@^0.1.1: version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + resolved "https://registry.npmmirror.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== dependencies: assert-plus "^1.0.0" ghooks@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/ghooks/-/ghooks-2.0.4.tgz#fd50e040ff548906ae42cb51793a01bfe24567b9" - integrity sha1-/VDgQP9UiQauQstReToBv+JFZ7k= + resolved "https://registry.npmmirror.com/ghooks/-/ghooks-2.0.4.tgz#fd50e040ff548906ae42cb51793a01bfe24567b9" + integrity sha512-Ey6PSgelTufntLJBUQZsSHHeRg1PjsjM1oOS+0lpExHqXGjrL5uyQVQdOIlf2WR5EBJVdJbJlCdSHAVt+uZmNA== dependencies: findup "0.1.5" lodash.clone "4.5.0" @@ -7885,22 +6563,22 @@ ghooks@^2.0.4: git-branch@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/git-branch/-/git-branch-1.0.0.tgz#64cc7dd75da2d81a9d4679087c1f8b56e6bd2d3d" + resolved "https://registry.npmmirror.com/git-branch/-/git-branch-1.0.0.tgz#64cc7dd75da2d81a9d4679087c1f8b56e6bd2d3d" integrity sha512-ZTzuqw5Df8fyLXQWrX6hK+4FpNCdKzMcERlxENEGO5aKcLmG7MAszhrMhluUKNKmOS/JAGijDMQDXDCDw1mE/A== git-config-path@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/git-config-path/-/git-config-path-1.0.1.tgz#6d33f7ed63db0d0e118131503bab3aca47d54664" - integrity sha1-bTP37WPbDQ4RgTFQO6s6ykfVRmQ= + resolved "https://registry.npmmirror.com/git-config-path/-/git-config-path-1.0.1.tgz#6d33f7ed63db0d0e118131503bab3aca47d54664" + integrity sha512-KcJ2dlrrP5DbBnYIZ2nlikALfRhKzNSX0stvv3ImJ+fvC4hXKoV+U+74SV0upg+jlQZbrtQzc0bu6/Zh+7aQbg== dependencies: extend-shallow "^2.0.1" fs-exists-sync "^0.1.0" homedir-polyfill "^1.0.0" git-raw-commits@^2.0.0, git-raw-commits@^2.0.8: - version "2.0.10" - resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.10.tgz#e2255ed9563b1c9c3ea6bd05806410290297bbc1" - integrity sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ== + version "2.0.11" + resolved "https://registry.npmmirror.com/git-raw-commits/-/git-raw-commits-2.0.11.tgz#bc3576638071d18655e1cc60d7f524920008d723" + integrity sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A== dependencies: dargs "^7.0.0" lodash "^4.17.15" @@ -7910,16 +6588,16 @@ git-raw-commits@^2.0.0, git-raw-commits@^2.0.8: git-remote-origin-url@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" - integrity sha1-UoJlna4hBxRaERJhEq0yFuxfpl8= + resolved "https://registry.npmmirror.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" + integrity sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw== dependencies: gitconfiglocal "^1.0.0" pify "^2.3.0" git-repo-name@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/git-repo-name/-/git-repo-name-0.6.0.tgz#af09884656aa537ec625c7087008175cd61228ff" - integrity sha1-rwmIRlaqU37GJccIcAgXXNYSKP8= + resolved "https://registry.npmmirror.com/git-repo-name/-/git-repo-name-0.6.0.tgz#af09884656aa537ec625c7087008175cd61228ff" + integrity sha512-DF4XxB6H+Te79JA08/QF/IjIv+j+0gF990WlgAX3SXXU2irfqvBc/xxlAIh6eJWYaKz45MrrGVBFS0Qc4bBz5g== dependencies: cwd "^0.9.1" file-name "^0.1.0" @@ -7928,7 +6606,7 @@ git-repo-name@^0.6.0: git-semver-tags@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-4.1.1.tgz#63191bcd809b0ec3e151ba4751c16c444e5b5780" + resolved "https://registry.npmmirror.com/git-semver-tags/-/git-semver-tags-4.1.1.tgz#63191bcd809b0ec3e151ba4751c16c444e5b5780" integrity sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA== dependencies: meow "^8.0.0" @@ -7936,7 +6614,7 @@ git-semver-tags@^4.1.1: git-up@^4.0.0: version "4.0.5" - resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.5.tgz#e7bb70981a37ea2fb8fe049669800a1f9a01d759" + resolved "https://registry.npmmirror.com/git-up/-/git-up-4.0.5.tgz#e7bb70981a37ea2fb8fe049669800a1f9a01d759" integrity sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA== dependencies: is-ssh "^1.3.0" @@ -7944,125 +6622,122 @@ git-up@^4.0.0: git-url-parse@^11.4.4: version "11.6.0" - resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-11.6.0.tgz#c634b8de7faa66498a2b88932df31702c67df605" + resolved "https://registry.npmmirror.com/git-url-parse/-/git-url-parse-11.6.0.tgz#c634b8de7faa66498a2b88932df31702c67df605" integrity sha512-WWUxvJs5HsyHL6L08wOusa/IXYtMuCAhrMmnTjQPpBU0TTHyDhnOATNH3xNQz7YOQUsqIIPTGr4xiVti1Hsk5g== dependencies: git-up "^4.0.0" git-username@^0.5.0: version "0.5.1" - resolved "https://registry.yarnpkg.com/git-username/-/git-username-0.5.1.tgz#432a41b34a19607892354004c9893a8829ffa4f0" + resolved "https://registry.npmmirror.com/git-username/-/git-username-0.5.1.tgz#432a41b34a19607892354004c9893a8829ffa4f0" integrity sha512-xjUjrj3i4kup2A3a/ZVZB1Nt0PUX7SU7KeVqIbXPdslT7NbNfyO04JMxBv4gar77JePdS+A6f05jG1Viy6+U1w== dependencies: remote-origin-url "^0.4.0" gitconfiglocal@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" - integrity sha1-QdBF84UaXqiPA/JMocYXgRRGS5s= + resolved "https://registry.npmmirror.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" + integrity sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ== dependencies: ini "^1.3.2" -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - glob-parent@^5.1.1, glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" -glob-to-regexp@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" - integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" -glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== +glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0: + version "7.2.3" + resolved "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^3.1.1" once "^1.3.0" path-is-absolute "^1.0.0" +glob@^8.0.3, glob@^8.1.0: + version "8.1.0" + resolved "https://registry.npmmirror.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + global-dirs@^0.1.0, global-dirs@^0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" - integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= + resolved "https://registry.npmmirror.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + integrity sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg== dependencies: ini "^1.3.4" -global-dirs@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d" - integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ== - dependencies: - ini "1.3.7" - global-modules@^0.2.3: version "0.2.3" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" - integrity sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0= + resolved "https://registry.npmmirror.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" + integrity sha512-JeXuCbvYzYXcwE6acL9V2bAOeSIGl4dD+iwLY9iUx2VBJJ80R18HCn+JCwHM9Oegdfya3lEkGCdaRkSyc10hDA== dependencies: global-prefix "^0.1.4" is-windows "^0.2.0" global-prefix@^0.1.4: version "0.1.5" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f" - integrity sha1-jTvGuNo8qBEqFg2NSW/wRiv+948= + resolved "https://registry.npmmirror.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f" + integrity sha512-gOPiyxcD9dJGCEArAhF4Hd0BAqvAe/JzERP7tYumE4yIkmIedPUVXcJFWbV3/p/ovIIvKjkrTk+f1UVkq7vvbw== dependencies: homedir-polyfill "^1.0.0" ini "^1.3.4" is-windows "^0.2.0" which "^1.2.12" -global@^4.3.2: - version "4.4.0" - resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" - integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== - dependencies: - min-document "^2.19.0" - process "^0.11.10" - globals@^11.1.0: version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + resolved "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.6.0, globals@^13.9.0: - version "13.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.12.0.tgz#4d733760304230a0082ed96e21e5c565f898089e" - integrity sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg== +globals@^13.19.0: + version "13.22.0" + resolved "https://registry.npmmirror.com/globals/-/globals-13.22.0.tgz#0c9fcb9c48a2494fbb5edbfee644285543eba9d8" + integrity sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw== dependencies: type-fest "^0.20.2" -globby@^11.0.2, globby@^11.0.3: - version "11.0.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" - integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +globby@^11.0.2, globby@^11.0.4, globby@^11.1.0: + version "11.1.0" + resolved "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" slash "^3.0.0" globby@^6.1.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= + resolved "https://registry.npmmirror.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw== dependencies: array-union "^1.0.1" glob "^7.0.3" @@ -8070,36 +6745,17 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" -globby@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" - integrity sha1-+yzP+UAfhgCUXfral0QMypcrhoA= - dependencies: - array-union "^1.0.1" - dir-glob "^2.0.0" - glob "^7.1.2" - ignore "^3.3.5" - pify "^3.0.0" - slash "^1.0.0" - -globby@^9.2.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" - integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== dependencies: - "@types/glob" "^7.1.1" - array-union "^1.0.2" - dir-glob "^2.2.2" - fast-glob "^2.2.6" - glob "^7.1.3" - ignore "^4.0.3" - pify "^4.0.1" - slash "^2.0.0" + get-intrinsic "^1.1.3" got@^6.7.1: version "6.7.1" - resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" - integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= + resolved "https://registry.npmmirror.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + integrity sha512-Y/K3EDuiQN9rTZhBvPRWMLXIKdeD1Rj0nzunfoi0Yyn5WBEbzxXKU9Ub2X41oZBagVWOBU3MuDonFMgPWQFnwg== dependencies: create-error-class "^3.0.0" duplexer3 "^0.1.4" @@ -8113,36 +6769,24 @@ got@^6.7.1: unzip-response "^2.0.1" url-parse-lax "^1.0.0" -got@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.3, graceful-fs@^4.2.4: - version "4.2.8" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" - integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.3: + version "4.2.11" + resolved "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== "graceful-readlink@>= 1.0.0": version "1.0.1" - resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" - integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= + resolved "https://registry.npmmirror.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + integrity sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w== -gray-matter@^4.0.1: +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.npmmirror.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +gray-matter@^4.0.3: version "4.0.3" - resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" + resolved "https://registry.npmmirror.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== dependencies: js-yaml "^3.13.1" @@ -8150,18 +6794,13 @@ gray-matter@^4.0.1: section-matter "^1.0.0" strip-bom-string "^1.0.0" -handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" - integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== - -handlebars@^4.7.6: - version "4.7.7" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" - integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== +handlebars@^4.7.7: + version "4.7.8" + resolved "https://registry.npmmirror.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" + integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== dependencies: minimist "^1.2.5" - neo-async "^2.6.0" + neo-async "^2.6.2" source-map "^0.6.1" wordwrap "^1.0.0" optionalDependencies: @@ -8169,12 +6808,12 @@ handlebars@^4.7.6: har-schema@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + resolved "https://registry.npmmirror.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== har-validator@~5.1.3: version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + resolved "https://registry.npmmirror.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== dependencies: ajv "^6.12.3" @@ -8182,52 +6821,64 @@ har-validator@~5.1.3: hard-rejection@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" + resolved "https://registry.npmmirror.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== has-ansi@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + resolved "https://registry.npmmirror.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== dependencies: ansi-regex "^2.0.0" -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== 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= + resolved "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + resolved "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.1, has-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== has-tostringtag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + resolved "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== dependencies: has-symbols "^1.0.2" has-unicode@^2.0.0, has-unicode@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + resolved "https://registry.npmmirror.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== has-value@^0.3.1: version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + resolved "https://registry.npmmirror.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== dependencies: get-value "^2.0.3" has-values "^0.1.4" @@ -8235,8 +6886,8 @@ has-value@^0.3.1: has-value@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + resolved "https://registry.npmmirror.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== dependencies: get-value "^2.0.6" has-values "^1.0.0" @@ -8244,216 +6895,78 @@ has-value@^1.0.0: has-values@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + resolved "https://registry.npmmirror.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== has-values@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + resolved "https://registry.npmmirror.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== dependencies: is-number "^3.0.0" kind-of "^4.0.0" -has-yarn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" - integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== - -has@^1.0.0, has@^1.0.3: +has@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + resolved "https://registry.npmmirror.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash-sum@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" - integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ= - -hash.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" - -he@1.2.x, he@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - -highlight.js@^9.7.0: - version "9.18.5" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.5.tgz#d18a359867f378c138d6819edfc2a8acd5f29825" - integrity sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA== - -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" - -hogan.js@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/hogan.js/-/hogan.js-3.0.2.tgz#4cd9e1abd4294146e7679e41d7898732b02c7bfd" - integrity sha1-TNnhq9QpQUbnZ55B14mHMrAse/0= - dependencies: - mkdirp "0.3.0" - nopt "1.0.10" +hash-sum@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" + integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== homedir-polyfill@^1.0.0: version "1.0.3" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + resolved "https://registry.npmmirror.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== dependencies: parse-passwd "^1.0.0" hosted-git-info@^2.1.4, hosted-git-info@^2.4.2: version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + resolved "https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== hosted-git-info@^4.0.0, hosted-git-info@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961" - integrity sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg== + version "4.1.0" + resolved "https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== dependencies: lru-cache "^6.0.0" -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= - -html-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== +html-encoding-sniffer@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" + integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== dependencies: - whatwg-encoding "^1.0.5" - -html-entities@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" - integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== + whatwg-encoding "^2.0.0" html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -html-minifier@^3.2.3: - version "3.5.21" - resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" - integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== - dependencies: - camel-case "3.0.x" - clean-css "4.2.x" - commander "2.17.x" - he "1.2.x" - param-case "2.1.x" - relateurl "0.2.x" - uglify-js "3.4.x" - -html-tags@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-2.0.0.tgz#10b30a386085f43cede353cc8fa7cb0deeea668b" - integrity sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos= - -html-tags@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140" - integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg== - -htmlparser2@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" - integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.0.0" - domutils "^2.5.2" - entities "^2.0.0" + version "2.0.2" + resolved "https://registry.npmmirror.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-tags@^3.3.1: + version "3.3.1" + resolved "https://registry.npmmirror.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" + integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== http-cache-semantics@^3.8.0: version "3.8.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" + resolved "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== -http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= - -http-errors@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" - integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.1" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-parser-js@>=0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.5.tgz#d7c30d5d3c90d865b4a2e870181f9d6f22ac7ac5" - integrity sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA== +http-cache-semantics@^4.1.0: + version "4.1.1" + resolved "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== http-proxy-agent@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" + resolved "https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg== dependencies: agent-base "4" @@ -8461,301 +6974,216 @@ http-proxy-agent@^2.0.0: 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" + resolved "https://registry.npmmirror.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" -http-proxy-middleware@0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" - integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== - dependencies: - http-proxy "^1.17.0" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" - -http-proxy-middleware@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz#43700d6d9eecb7419bf086a128d0f7205d9eb665" - integrity sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg== - dependencies: - "@types/http-proxy" "^1.17.5" - http-proxy "^1.18.1" - is-glob "^4.0.1" - is-plain-obj "^3.0.0" - micromatch "^4.0.2" - -http-proxy@^1.17.0, http-proxy@^1.18.1: - version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== +http-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" + integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" + "@tootallnate/once" "2" + agent-base "6" + debug "4" http-signature@~1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + resolved "https://registry.npmmirror.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== dependencies: assert-plus "^1.0.0" jsprim "^1.2.2" sshpk "^1.7.0" -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - https-proxy-agent@^2.1.0: version "2.2.4" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" + resolved "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg== dependencies: agent-base "^4.3.0" debug "^3.1.0" -https-proxy-agent@^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== +https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: + version "5.0.1" + resolved "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== 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" + resolved "https://registry.npmmirror.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== human-signals@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + resolved "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== humanize-ms@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0= + resolved "https://registry.npmmirror.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== dependencies: ms "^2.0.0" humps@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/humps/-/humps-2.0.1.tgz#dd02ea6081bd0568dc5d073184463957ba9ef9aa" - integrity sha1-3QLqYIG9BWjcXQcxhEY5V7qe+ao= - -iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: - 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" + resolved "https://registry.npmmirror.com/humps/-/humps-2.0.1.tgz#dd02ea6081bd0568dc5d073184463957ba9ef9aa" + integrity sha512-E0eIbrFWUhwfXJmsbdjRQFQPrl5pTEoKlz163j1mTqqUnU9PgR4AgB8AIITzuB3vLBdxZXyZ9TDIrwB2OASz4g== -iconv-lite@^0.6.2: +iconv-lite@0.6.3, iconv-lite@^0.6.2, iconv-lite@^0.6.3: version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" +iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + icss-replace-symbols@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" - integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= - -icss-utils@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" - integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== - dependencies: - postcss "^7.0.14" + resolved "https://registry.npmmirror.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + integrity sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg== icss-utils@^5.0.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + resolved "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== -ieee754@^1.1.4: +ieee754@^1.1.13: version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + resolved "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== iferr@^0.1.5: version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + resolved "https://registry.npmmirror.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA== ignore-walk@^3.0.3: version "3.0.4" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.4.tgz#c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335" + resolved "https://registry.npmmirror.com/ignore-walk/-/ignore-walk-3.0.4.tgz#c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335" integrity sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ== dependencies: minimatch "^3.0.4" -ignore@^3.3.5: - version "3.3.10" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" - integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== - -ignore@^4.0.3, ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -ignore@^5.1.1, ignore@^5.1.4, ignore@^5.1.8: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== +ignore@^5.1.1, ignore@^5.1.4, ignore@^5.2.0: + version "5.2.4" + resolved "https://registry.npmmirror.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== image-size@0.8.3: version "0.8.3" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.8.3.tgz#f0b568857e034f29baffd37013587f2c0cad8b46" + resolved "https://registry.npmmirror.com/image-size/-/image-size-0.8.3.tgz#f0b568857e034f29baffd37013587f2c0cad8b46" integrity sha512-SMtq1AJ+aqHB45c3FsB4ERK0UCiA2d3H1uq8s+8T0Pf8A3W4teyBQyaFaktH6xvZqh+npwlKU7i4fJo0r7TYTg== dependencies: queue "6.0.1" image-size@~0.5.0: version "0.5.5" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" - integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= - -immediate@^3.2.3: - version "3.3.0" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266" - integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q== + resolved "https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" + integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== -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" +immutable@^4.0.0: + version "4.3.4" + resolved "https://registry.npmmirror.com/immutable/-/immutable-4.3.4.tgz#2e07b33837b4bb7662f288c244d1ced1ef65a78f" + integrity sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA== import-cwd@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-3.0.0.tgz#20845547718015126ea9b3676b7592fb8bd4cf92" + resolved "https://registry.npmmirror.com/import-cwd/-/import-cwd-3.0.0.tgz#20845547718015126ea9b3676b7592fb8bd4cf92" integrity sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg== dependencies: import-from "^3.0.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= + resolved "https://registry.npmmirror.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== dependencies: caller-path "^2.0.0" resolve-from "^3.0.0" import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + resolved "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha1-M1238qev/VOqpHHUuAId7ja387E= - dependencies: - resolve-from "^3.0.0" - import-from@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-3.0.0.tgz#055cfec38cd5a27d8057ca51376d7d3bf0891966" + resolved "https://registry.npmmirror.com/import-from/-/import-from-3.0.0.tgz#055cfec38cd5a27d8057ca51376d7d3bf0891966" integrity sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ== dependencies: resolve-from "^5.0.0" import-lazy@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= - -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" + resolved "https://registry.npmmirror.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A== import-local@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.3.tgz#4d51c2c495ca9393da259ec66b62e022920211e0" - integrity sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA== + version "3.1.0" + resolved "https://registry.npmmirror.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== dependencies: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + resolved "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indent-string@^3.0.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" - integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= + resolved "https://registry.npmmirror.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + integrity sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ== indent-string@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + resolved "https://registry.npmmirror.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - -infer-owner@^1.0.3, infer-owner@^1.0.4: +infer-owner@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + resolved "https://registry.npmmirror.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + resolved "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -ini@1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" - integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== - ini@^1.3.2, ini@^1.3.3, ini@^1.3.4, ini@~1.3.0: version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + resolved "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== init-package-json@^2.0.2: version "2.0.5" - resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-2.0.5.tgz#78b85f3c36014db42d8f32117252504f68022646" + resolved "https://registry.npmmirror.com/init-package-json/-/init-package-json-2.0.5.tgz#78b85f3c36014db42d8f32117252504f68022646" integrity sha512-u1uGAtEFu3VA6HNl/yUWw57jmKEMx8SKOxHhxjGnOFUiIlFnohKDFg4ZrPpv9wWqk44nDxGJAtqjdQFm+9XXQA== dependencies: npm-package-arg "^8.1.5" @@ -8768,7 +7196,7 @@ init-package-json@^2.0.2: inquirer@^6.2.2, inquirer@^6.5.2: version "6.5.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" + resolved "https://registry.npmmirror.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== dependencies: ansi-escapes "^3.2.0" @@ -8787,7 +7215,7 @@ inquirer@^6.2.2, inquirer@^6.5.2: inquirer@^7.3.3: version "7.3.3" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" + resolved "https://registry.npmmirror.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== dependencies: ansi-escapes "^4.2.1" @@ -8804,122 +7232,83 @@ inquirer@^7.3.3: strip-ansi "^6.0.0" through "^2.3.6" -internal-ip@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" - integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== - dependencies: - default-gateway "^4.2.0" - ipaddr.js "^1.9.0" - -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== +internal-slot@^1.0.5: + version "1.0.5" + resolved "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== dependencies: - get-intrinsic "^1.1.0" + get-intrinsic "^1.2.0" has "^1.0.3" side-channel "^1.0.4" -intersperse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/intersperse/-/intersperse-1.0.0.tgz#f2561fb1cfef9f5277cc3347a22886b4351a5181" - integrity sha1-8lYfsc/vn1J3zDNHoiiGtDUaUYE= - -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= - -ip@^1.1.0, ip@^1.1.4, ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= - -ipaddr.js@1.9.1, ipaddr.js@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= +ip@^1.1.4: + version "1.1.8" + resolved "https://registry.npmmirror.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" + integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== -is-absolute-url@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== +ip@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== is-accessor-descriptor@^0.1.6: version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + resolved "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A== dependencies: kind-of "^3.0.2" is-accessor-descriptor@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + resolved "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== dependencies: kind-of "^6.0.0" is-alphabetical@^1.0.0: version "1.0.4" - resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" + resolved "https://registry.npmmirror.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" + resolved "https://registry.npmmirror.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-arguments@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== dependencies: call-bind "^1.0.2" - has-tostringtag "^1.0.0" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + resolved "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-bigint@^1.0.1: version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + resolved "https://registry.npmmirror.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== dependencies: has-bigints "^1.0.1" -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + resolved "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-boolean-object@^1.1.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + resolved "https://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== dependencies: call-bind "^1.0.2" @@ -8927,81 +7316,76 @@ is-boolean-object@^1.1.0: is-buffer@^1.1.5: version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + resolved "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-buffer@^2.0.2: version "2.0.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + resolved "https://registry.npmmirror.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-callable@^1.1.4, is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== +is-builtin-module@^3.2.1: + version "3.2.1" + resolved "https://registry.npmmirror.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" + integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== + dependencies: + builtin-modules "^3.3.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== is-ci@^1.0.10: version "1.2.1" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" + resolved "https://registry.npmmirror.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== dependencies: ci-info "^1.5.0" is-ci@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + resolved "https://registry.npmmirror.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== dependencies: ci-info "^2.0.0" -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - -is-core-module@^2.2.0, is-core-module@^2.5.0, is-core-module@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" - integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== +is-core-module@^2.13.0, is-core-module@^2.5.0: + version "2.13.0" + resolved "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" + integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== dependencies: has "^1.0.3" is-data-descriptor@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + resolved "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg== dependencies: kind-of "^3.0.2" is-data-descriptor@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + resolved "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== dependencies: kind-of "^6.0.0" is-date-object@^1.0.1: version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + resolved "https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== dependencies: has-tostringtag "^1.0.0" is-decimal@^1.0.0: version "1.0.4" - resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" + resolved "https://registry.npmmirror.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== is-descriptor@^0.1.0: version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + resolved "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== dependencies: is-accessor-descriptor "^0.1.6" @@ -9010,7 +7394,7 @@ is-descriptor@^0.1.0: is-descriptor@^1.0.0, is-descriptor@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + resolved "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== dependencies: is-accessor-descriptor "^1.0.0" @@ -9019,244 +7403,207 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-directory@^0.3.1: version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + resolved "https://registry.npmmirror.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + resolved "https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== is-extendable@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + resolved "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== dependencies: is-plain-object "^2.0.4" -is-extglob@^2.1.0, is-extglob@^2.1.1: +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= + resolved "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + resolved "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + resolved "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== 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" + resolved "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + resolved "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 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" + resolved "https://registry.npmmirror.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== is-installed-globally@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" - integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= + resolved "https://registry.npmmirror.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" + integrity sha512-ERNhMg+i/XgDwPIPF3u24qpajVreaiSuvpb1Uu0jugw7KKcxGyCX8cgp8P5fwTmAuXku6beDHHECdKArjlg7tw== dependencies: global-dirs "^0.1.0" is-path-inside "^1.0.0" -is-installed-globally@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" - integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== - dependencies: - global-dirs "^2.0.1" - is-path-inside "^3.0.1" +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== is-lambda@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" - integrity sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU= - -is-mobile@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/is-mobile/-/is-mobile-2.2.2.tgz#f6c9c5d50ee01254ce05e739bdd835f1ed4e9954" - integrity sha512-wW/SXnYJkTjs++tVK5b6kVITZpAZPtUrt9SF80vvxGiF/Oywal+COk1jlRkiVq15RFNEQKQY31TkV24/1T5cVg== + resolved "https://registry.npmmirror.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== is-module@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" - integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= + resolved "https://registry.npmmirror.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== -is-negative-zero@^2.0.0, is-negative-zero@^2.0.1: +is-negative-zero@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + resolved "https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== is-npm@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" - integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= - -is-npm@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" - integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== + resolved "https://registry.npmmirror.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" + integrity sha512-9r39FIr3d+KD9SbX0sfMsHzb5PP3uimOiwr3YupUaUFG4W0l1U57Rx3utpttV7qz5U3jmrO5auUa04LU9pyHsg== is-number-object@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" - integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== + version "1.0.7" + resolved "https://registry.npmmirror.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== dependencies: has-tostringtag "^1.0.0" is-number@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + resolved "https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== dependencies: kind-of "^3.0.2" is-number@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + resolved "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-obj@^1.0.0, 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= + resolved "https://registry.npmmirror.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== is-obj@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + resolved "https://registry.npmmirror.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== is-observable@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" + resolved "https://registry.npmmirror.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== dependencies: symbol-observable "^1.1.0" is-path-cwd@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" - integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0= - -is-path-cwd@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + resolved "https://registry.npmmirror.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + integrity sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw== is-path-in-cwd@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" + resolved "https://registry.npmmirror.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" integrity sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ== dependencies: is-path-inside "^1.0.0" -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" - integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== - dependencies: - is-path-inside "^2.1.0" - is-path-inside@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= + resolved "https://registry.npmmirror.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + integrity sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g== dependencies: path-is-inside "^1.0.1" -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" - integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== - dependencies: - path-is-inside "^1.0.2" - -is-path-inside@^3.0.1: +is-path-inside@^3.0.3: version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + resolved "https://registry.npmmirror.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + resolved "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== 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" + resolved "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -is-plain-obj@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" - integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== +is-plain-object@3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-3.0.1.tgz#662d92d24c0aa4302407b0d45d21f2251c85f85b" + integrity sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g== is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + resolved "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: isobject "^3.0.1" is-plain-object@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + resolved "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== 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" + resolved "https://registry.npmmirror.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== is-promise@^2.1.0: version "2.2.2" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + resolved "https://registry.npmmirror.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== is-redirect@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" - integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= + resolved "https://registry.npmmirror.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + integrity sha512-cr/SlUEe5zOGmzvj9bUyC4LVvkNVAXu4GytXLNMr1pny+a65MpQ9IJzFHD5vi7FyJgb4qt27+eS3TuQnqB+RQw== -is-reference@^1.2.1: +is-reference@1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" + resolved "https://registry.npmmirror.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== dependencies: "@types/estree" "*" -is-regex@^1.0.4, is-regex@^1.1.4: +is-reference@^3.0.0: + version "3.0.2" + resolved "https://registry.npmmirror.com/is-reference/-/is-reference-3.0.2.tgz#154747a01f45cd962404ee89d43837af2cba247c" + integrity sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg== + dependencies: + "@types/estree" "*" + +is-regex@^1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + resolved "https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: call-bind "^1.0.2" @@ -9264,801 +7611,300 @@ is-regex@^1.0.4, is-regex@^1.1.4: 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-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + resolved "https://registry.npmmirror.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== is-retry-allowed@^1.0.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" + resolved "https://registry.npmmirror.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== -is-shared-array-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" - integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" is-ssh@^1.3.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.3.3.tgz#7f133285ccd7f2c2c7fc897b771b53d95a2b2c7e" - integrity sha512-NKzJmQzJfEEma3w5cJNcUMxoXfDjz0Zj0eyCalHn2E6VOwlzjZo0yuO2fcBSf8zhFuVCL/82/r5gRcoi6aEPVQ== + version "1.4.0" + resolved "https://registry.npmmirror.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" + integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ== dependencies: - protocols "^1.1.0" + protocols "^2.0.1" is-stream@^1.0.0, is-stream@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + resolved "https://registry.npmmirror.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== is-stream@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + resolved "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + resolved "https://registry.npmmirror.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-text-path@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" - integrity sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4= - dependencies: - text-extensions "^1.0.0" - -is-typedarray@^1.0.0, is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-weakref@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -is-what@^3.12.0: - version "3.14.1" - resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1" - integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA== - -is-whitespace@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-whitespace/-/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f" - integrity sha1-Fjnssb4DauxppUy7QBz77XEUq38= - -is-windows@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" - integrity sha1-3hqm1j6indJIc3tp8f+LgALSEIw= - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -is-yarn-global@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" - integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isarray@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -ismobilejs@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ismobilejs/-/ismobilejs-1.1.1.tgz#c56ca0ae8e52b24ca0f22ba5ef3215a2ddbbaa0e" - integrity sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw== - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-instrument@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" - integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== - dependencies: - "@babel/core" "^7.7.5" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" - -istanbul-lib-instrument@^5.0.4: - version "5.1.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" - integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.0.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.2.tgz#b80e13cbab0120e1c367ebaa099862361aed5ead" - integrity sha512-0gHxuT1NNC0aEIL1zbJ+MTgPbbHhU77eJPuU35WKA7TgXiSNlCAx4PENoMrH0Or6M2H80TaZcWKhM0IK6V8gRw== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -istextorbinary@^2.2.1: - version "2.6.0" - resolved "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-2.6.0.tgz#60776315fb0fa3999add276c02c69557b9ca28ab" - integrity sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA== - dependencies: - binaryextensions "^2.1.2" - editions "^2.2.0" - textextensions "^2.5.0" - -jake@^10.6.1: - version "10.8.2" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz#ebc9de8558160a66d82d0eadc6a2e58fbc500a7b" - integrity sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A== - dependencies: - async "0.9.x" - chalk "^2.4.2" - filelist "^1.0.1" - minimatch "^3.0.4" - -javascript-stringify@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-1.6.0.tgz#142d111f3a6e3dae8f4a9afd77d45855b5a9cce3" - integrity sha1-FC0RHzpuPa6PSpr9d9RYVbWpzOM= - -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-changed-files@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.4.2.tgz#da2547ea47c6e6a5f6ed336151bd2075736eb4a5" - integrity sha512-/9x8MjekuzUQoPjDHbBiXbNEBauhrPU2ct7m8TfCg69ywt1y/N+yYwGh3gCpnqUS3klYWDU/lSNgv+JhoD2k1A== - dependencies: - "@jest/types" "^27.4.2" - execa "^5.0.0" - throat "^6.0.1" - -jest-circus@^27.4.5: - version "27.4.5" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.4.5.tgz#70bfb78e0200cab9b84747bf274debacaa538467" - integrity sha512-eTNWa9wsvBwPykhMMShheafbwyakcdHZaEYh5iRrQ0PFJxkDP/e3U/FvzGuKWu2WpwUA3C3hPlfpuzvOdTVqnw== - dependencies: - "@jest/environment" "^27.4.4" - "@jest/test-result" "^27.4.2" - "@jest/types" "^27.4.2" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - expect "^27.4.2" - is-generator-fn "^2.0.0" - jest-each "^27.4.2" - jest-matcher-utils "^27.4.2" - jest-message-util "^27.4.2" - jest-runtime "^27.4.5" - jest-snapshot "^27.4.5" - jest-util "^27.4.2" - pretty-format "^27.4.2" - slash "^3.0.0" - stack-utils "^2.0.3" - throat "^6.0.1" - -jest-cli@^27.4.5: - version "27.4.5" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.4.5.tgz#8708f54c28d13681f3255ec9026a2b15b03d41e8" - integrity sha512-hrky3DSgE0u7sQxaCL7bdebEPHx5QzYmrGuUjaPLmPE8jx5adtvGuOlRspvMoVLTTDOHRnZDoRLYJuA+VCI7Hg== - dependencies: - "@jest/core" "^27.4.5" - "@jest/test-result" "^27.4.2" - "@jest/types" "^27.4.2" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.4" - import-local "^3.0.2" - jest-config "^27.4.5" - jest-util "^27.4.2" - jest-validate "^27.4.2" - prompts "^2.0.1" - yargs "^16.2.0" - -jest-config@^27.4.5: - version "27.4.5" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.4.5.tgz#77ed7f2ba7bcfd7d740ade711d0d13512e08a59e" - integrity sha512-t+STVJtPt+fpqQ8GBw850NtSQbnDOw/UzdPfzDaHQ48/AylQlW7LHj3dH+ndxhC1UxJ0Q3qkq7IH+nM1skwTwA== - dependencies: - "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^27.4.5" - "@jest/types" "^27.4.2" - babel-jest "^27.4.5" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.1" - graceful-fs "^4.2.4" - jest-circus "^27.4.5" - jest-environment-jsdom "^27.4.4" - jest-environment-node "^27.4.4" - jest-get-type "^27.4.0" - jest-jasmine2 "^27.4.5" - jest-regex-util "^27.4.0" - jest-resolve "^27.4.5" - jest-runner "^27.4.5" - jest-util "^27.4.2" - jest-validate "^27.4.2" - micromatch "^4.0.4" - pretty-format "^27.4.2" - slash "^3.0.0" + has-tostringtag "^1.0.0" -jest-diff@^27.0.0, jest-diff@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.4.2.tgz#786b2a5211d854f848e2dcc1e324448e9481f36f" - integrity sha512-ujc9ToyUZDh9KcqvQDkk/gkbf6zSaeEg9AiBxtttXW59H/AcqEYp1ciXAtJp+jXWva5nAf/ePtSsgWwE5mqp4Q== +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.npmmirror.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: - chalk "^4.0.0" - diff-sequences "^27.4.0" - jest-get-type "^27.4.0" - pretty-format "^27.4.2" + has-symbols "^1.0.2" -jest-docblock@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.4.0.tgz#06c78035ca93cbbb84faf8fce64deae79a59f69f" - integrity sha512-7TBazUdCKGV7svZ+gh7C8esAnweJoG+SvcF6Cjqj4l17zA2q1cMwx2JObSioubk317H+cjcHgP+7fTs60paulg== +is-text-path@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" + integrity sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w== dependencies: - detect-newline "^3.0.0" + text-extensions "^1.0.0" -jest-each@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.4.2.tgz#19364c82a692d0d26557642098d1f4619c9ee7d3" - integrity sha512-53V2MNyW28CTruB3lXaHNk6PkiIFuzdOC9gR3C6j8YE/ACfrPnz+slB0s17AgU1TtxNzLuHyvNlLJ+8QYw9nBg== +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: + version "1.1.12" + resolved "https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" + integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== dependencies: - "@jest/types" "^27.4.2" - chalk "^4.0.0" - jest-get-type "^27.4.0" - jest-util "^27.4.2" - pretty-format "^27.4.2" - -jest-environment-jsdom@^27.4.4: - version "27.4.4" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.4.4.tgz#94f738e99514d7a880e8ed8e03e3a321d43b49db" - integrity sha512-cYR3ndNfHBqQgFvS1RL7dNqSvD//K56j/q1s2ygNHcfTCAp12zfIromO1w3COmXrxS8hWAh7+CmZmGCIoqGcGA== - dependencies: - "@jest/environment" "^27.4.4" - "@jest/fake-timers" "^27.4.2" - "@jest/types" "^27.4.2" - "@types/node" "*" - jest-mock "^27.4.2" - jest-util "^27.4.2" - jsdom "^16.6.0" - -jest-environment-node@^27.4.4: - version "27.4.4" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.4.4.tgz#42fe5e3b224cb69b99811ebf6f5eaa5a59618514" - integrity sha512-D+v3lbJ2GjQTQR23TK0kY3vFVmSeea05giInI41HHOaJnAwOnmUHTZgUaZL+VxUB43pIzoa7PMwWtCVlIUoVoA== - dependencies: - "@jest/environment" "^27.4.4" - "@jest/fake-timers" "^27.4.2" - "@jest/types" "^27.4.2" - "@types/node" "*" - jest-mock "^27.4.2" - jest-util "^27.4.2" + which-typed-array "^1.1.11" -jest-get-type@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.4.0.tgz#7503d2663fffa431638337b3998d39c5e928e9b5" - integrity sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ== +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== -jest-haste-map@^27.4.5: - version "27.4.5" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.4.5.tgz#c2921224a59223f91e03ec15703905978ef0cc1a" - integrity sha512-oJm1b5qhhPs78K24EDGifWS0dELYxnoBiDhatT/FThgB9yxqUm5F6li3Pv+Q+apMBmmPNzOBnZ7ZxWMB1Leq1Q== - dependencies: - "@jest/types" "^27.4.2" - "@types/graceful-fs" "^4.1.2" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.4" - jest-regex-util "^27.4.0" - jest-serializer "^27.4.0" - jest-util "^27.4.2" - jest-worker "^27.4.5" - micromatch "^4.0.4" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.3.2" - -jest-jasmine2@^27.4.5: - version "27.4.5" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.4.5.tgz#ff79d11561679ff6c89715b0cd6b1e8c0dfbc6dc" - integrity sha512-oUnvwhJDj2LhOiUB1kdnJjkx8C5PwgUZQb9urF77mELH9DGR4e2GqpWQKBOYXWs5+uTN9BGDqRz3Aeg5Wts7aw== - dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^27.4.4" - "@jest/source-map" "^27.4.0" - "@jest/test-result" "^27.4.2" - "@jest/types" "^27.4.2" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - expect "^27.4.2" - is-generator-fn "^2.0.0" - jest-each "^27.4.2" - jest-matcher-utils "^27.4.2" - jest-message-util "^27.4.2" - jest-runtime "^27.4.5" - jest-snapshot "^27.4.5" - jest-util "^27.4.2" - pretty-format "^27.4.2" - throat "^6.0.1" - -jest-leak-detector@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.4.2.tgz#7fc3120893a7a911c553f3f2bdff9faa4454abbb" - integrity sha512-ml0KvFYZllzPBJWDei3mDzUhyp/M4ubKebX++fPaudpe8OsxUE+m+P6ciVLboQsrzOCWDjE20/eXew9QMx/VGw== - dependencies: - jest-get-type "^27.4.0" - pretty-format "^27.4.2" - -jest-matcher-utils@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.4.2.tgz#d17c5038607978a255e0a9a5c32c24e984b6c60b" - integrity sha512-jyP28er3RRtMv+fmYC/PKG8wvAmfGcSNproVTW2Y0P/OY7/hWUOmsPfxN1jOhM+0u2xU984u2yEagGivz9OBGQ== - dependencies: - chalk "^4.0.0" - jest-diff "^27.4.2" - jest-get-type "^27.4.0" - pretty-format "^27.4.2" - -jest-message-util@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.4.2.tgz#07f3f1bf207d69cf798ce830cc57f1a849f99388" - integrity sha512-OMRqRNd9E0DkBLZpFtZkAGYOXl6ZpoMtQJWTAREJKDOFa0M6ptB7L67tp+cszMBkvSgKOhNtQp2Vbcz3ZZKo/w== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^27.4.2" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.4" - micromatch "^4.0.4" - pretty-format "^27.4.2" - slash "^3.0.0" - stack-utils "^2.0.3" +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== -jest-mock@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.4.2.tgz#184ff197a25491bfe4570c286daa5d62eb760b88" - integrity sha512-PDDPuyhoukk20JrQKeofK12hqtSka7mWH0QQuxSNgrdiPsrnYYLS6wbzu/HDlxZRzji5ylLRULeuI/vmZZDrYA== +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: - "@jest/types" "^27.4.2" - "@types/node" "*" + call-bind "^1.0.2" -jest-pnp-resolver@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" - integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== +is-what@^3.14.1: + version "3.14.1" + resolved "https://registry.npmmirror.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1" + integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA== -jest-regex-util@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.4.0.tgz#e4c45b52653128843d07ad94aec34393ea14fbca" - integrity sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg== +is-windows@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" + integrity sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q== -jest-resolve-dependencies@^27.4.5: - version "27.4.5" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.5.tgz#9398af854bdb12d6a9e5a8a536ee401f889a3ecf" - integrity sha512-elEVvkvRK51y037NshtEkEnukMBWvlPzZHiL847OrIljJ8yIsujD2GXRPqDXC4rEVKbcdsy7W0FxoZb4WmEs7w== - dependencies: - "@jest/types" "^27.4.2" - jest-regex-util "^27.4.0" - jest-snapshot "^27.4.5" +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== -jest-resolve@^27.4.5: - version "27.4.5" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.4.5.tgz#8dc44f5065fb8d58944c20f932cb7b9fe9760cca" - integrity sha512-xU3z1BuOz/hUhVUL+918KqUgK+skqOuUsAi7A+iwoUldK6/+PW+utK8l8cxIWT9AW7IAhGNXjSAh1UYmjULZZw== - dependencies: - "@jest/types" "^27.4.2" - chalk "^4.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^27.4.5" - jest-pnp-resolver "^1.2.2" - jest-util "^27.4.2" - jest-validate "^27.4.2" - resolve "^1.20.0" - resolve.exports "^1.1.0" - slash "^3.0.0" +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== -jest-runner@^27.4.5: - version "27.4.5" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.4.5.tgz#daba2ba71c8f34137dc7ac45616add35370a681e" - integrity sha512-/irauncTfmY1WkTaRQGRWcyQLzK1g98GYG/8QvIPviHgO1Fqz1JYeEIsSfF+9mc/UTA6S+IIHFgKyvUrtiBIZg== - dependencies: - "@jest/console" "^27.4.2" - "@jest/environment" "^27.4.4" - "@jest/test-result" "^27.4.2" - "@jest/transform" "^27.4.5" - "@jest/types" "^27.4.2" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.8.1" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-docblock "^27.4.0" - jest-environment-jsdom "^27.4.4" - jest-environment-node "^27.4.4" - jest-haste-map "^27.4.5" - jest-leak-detector "^27.4.2" - jest-message-util "^27.4.2" - jest-resolve "^27.4.5" - jest-runtime "^27.4.5" - jest-util "^27.4.2" - jest-worker "^27.4.5" - source-map-support "^0.5.6" - throat "^6.0.1" - -jest-runtime@^27.4.5: - version "27.4.5" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.4.5.tgz#97703ad2a1799d4f50ab59049bd21a9ceaed2813" - integrity sha512-CIYqwuJQXHQtPd/idgrx4zgJ6iCb6uBjQq1RSAGQrw2S8XifDmoM1Ot8NRd80ooAm+ZNdHVwsktIMGlA1F1FAQ== - dependencies: - "@jest/console" "^27.4.2" - "@jest/environment" "^27.4.4" - "@jest/globals" "^27.4.4" - "@jest/source-map" "^27.4.0" - "@jest/test-result" "^27.4.2" - "@jest/transform" "^27.4.5" - "@jest/types" "^27.4.2" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - execa "^5.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.4" - jest-haste-map "^27.4.5" - jest-message-util "^27.4.2" - jest-mock "^27.4.2" - jest-regex-util "^27.4.0" - jest-resolve "^27.4.5" - jest-snapshot "^27.4.5" - jest-util "^27.4.2" - jest-validate "^27.4.2" - slash "^3.0.0" - strip-bom "^4.0.0" - yargs "^16.2.0" +isarray@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== -jest-serializer@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.4.0.tgz#34866586e1cae2388b7d12ffa2c7819edef5958a" - integrity sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.4" - -jest-snapshot@^27.4.5: - version "27.4.5" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.4.5.tgz#2ea909b20aac0fe62504bc161331f730b8a7ecc7" - integrity sha512-eCi/iM1YJFrJWiT9de4+RpWWWBqsHiYxFG9V9o/n0WXs6GpW4lUt4FAHAgFPTLPqCUVzrMQmSmTZSgQzwqR7IQ== - dependencies: - "@babel/core" "^7.7.2" - "@babel/generator" "^7.7.2" - "@babel/parser" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.0.0" - "@jest/transform" "^27.4.5" - "@jest/types" "^27.4.2" - "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^27.4.2" - graceful-fs "^4.2.4" - jest-diff "^27.4.2" - jest-get-type "^27.4.0" - jest-haste-map "^27.4.5" - jest-matcher-utils "^27.4.2" - jest-message-util "^27.4.2" - jest-resolve "^27.4.5" - jest-util "^27.4.2" - natural-compare "^1.4.0" - pretty-format "^27.4.2" - semver "^7.3.2" +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== -jest-util@^27.0.0, jest-util@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.4.2.tgz#ed95b05b1adfd761e2cda47e0144c6a58e05a621" - integrity sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA== - dependencies: - "@jest/types" "^27.4.2" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.4" - picomatch "^2.2.3" +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -jest-validate@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.4.2.tgz#eecfcc1b1c9429aa007da08a2bae4e32a81bbbc3" - integrity sha512-hWYsSUej+Fs8ZhOm5vhWzwSLmVaPAxRy+Mr+z5MzeaHm9AxUpXdoVMEW4R86y5gOobVfBsMFLk4Rb+QkiEpx1A== +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== dependencies: - "@jest/types" "^27.4.2" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^27.4.0" - leven "^3.1.0" - pretty-format "^27.4.2" + isarray "1.0.0" -jest-watcher@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.4.2.tgz#c9037edfd80354c9fe90de4b6f8b6e2b8e736744" - integrity sha512-NJvMVyyBeXfDezhWzUOCOYZrUmkSCiatpjpm+nFUid74OZEHk6aMLrZAukIiFDwdbqp6mTM6Ui1w4oc+8EobQg== - dependencies: - "@jest/test-result" "^27.4.2" - "@jest/types" "^27.4.2" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - jest-util "^27.4.2" - string-length "^4.0.1" +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.npmmirror.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.0" + resolved "https://registry.npmmirror.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" + integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== -jest-worker@^26.2.1: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== +istanbul-lib-report@^3.0.0: + version "3.0.1" + resolved "https://registry.npmmirror.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" + istanbul-lib-coverage "^3.0.0" + make-dir "^4.0.0" + supports-color "^7.1.0" -jest-worker@^27.4.5: - version "27.4.5" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.4.5.tgz#d696e3e46ae0f24cff3fa7195ffba22889262242" - integrity sha512-f2s8kEdy15cv9r7q4KkzGXvlY0JTcmCbMHZBfSQDwW77REr45IDWwd0lksDFeVHH2jJ5pqb90T77XscrjeGzzg== +istanbul-reports@^3.1.4: + version "3.1.6" + resolved "https://registry.npmmirror.com/istanbul-reports/-/istanbul-reports-3.1.6.tgz#2544bcab4768154281a2f0870471902704ccaa1a" + integrity sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg== dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" -jest@^27.4.5: - version "27.4.5" - resolved "https://registry.yarnpkg.com/jest/-/jest-27.4.5.tgz#66e45acba44137fac26be9d3cc5bb031e136dc0f" - integrity sha512-uT5MiVN3Jppt314kidCk47MYIRilJjA/l2mxwiuzzxGUeJIvA8/pDaJOAX5KWvjAo7SCydcW0/4WEtgbLMiJkg== +istextorbinary@^2.2.1: + version "2.6.0" + resolved "https://registry.npmmirror.com/istextorbinary/-/istextorbinary-2.6.0.tgz#60776315fb0fa3999add276c02c69557b9ca28ab" + integrity sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA== dependencies: - "@jest/core" "^27.4.5" - import-local "^3.0.2" - jest-cli "^27.4.5" + binaryextensions "^2.1.2" + editions "^2.2.0" + textextensions "^2.5.0" -js-beautify@^1.6.12: - version "1.14.0" - resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.14.0.tgz#2ce790c555d53ce1e3d7363227acf5dc69024c2d" - integrity sha512-yuck9KirNSCAwyNJbqW+BxJqJ0NLJ4PwBUzQQACl5O3qHMBXVkXb/rD0ilh/Lat/tn88zSZ+CAHOlk0DsY7GuQ== +js-beautify@1.14.9: + version "1.14.9" + resolved "https://registry.npmmirror.com/js-beautify/-/js-beautify-1.14.9.tgz#a5db728bc5a0d84d3b1a597c376b29bd4d39c8e5" + integrity sha512-coM7xq1syLcMyuVGyToxcj2AlzhkDjmfklL8r0JgJ7A76wyGMpJ1oA35mr4APdYNO/o/4YY8H54NQIJzhMbhBg== dependencies: - config-chain "^1.1.12" - editorconfig "^0.15.3" - glob "^7.1.3" - nopt "^5.0.0" + config-chain "^1.1.13" + editorconfig "^1.0.3" + glob "^8.1.0" + nopt "^6.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" + resolved "https://registry.npmmirror.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" + resolved "https://registry.npmmirror.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" +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + jsbn@~0.1.0: version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsdom@^16.6.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" + resolved "https://registry.npmmirror.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== + +jsdom@^20.0.0: + version "20.0.3" + resolved "https://registry.npmmirror.com/jsdom/-/jsdom-20.0.3.tgz#886a41ba1d4726f67a8858028c99489fed6ad4db" + integrity sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ== + dependencies: + abab "^2.0.6" + acorn "^8.8.1" + acorn-globals "^7.0.0" + cssom "^0.5.0" cssstyle "^2.3.0" - data-urls "^2.0.0" - decimal.js "^10.2.1" - domexception "^2.0.1" + data-urls "^3.0.2" + decimal.js "^10.4.2" + domexception "^4.0.0" 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" + form-data "^4.0.0" + html-encoding-sniffer "^3.0.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.1" is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "6.0.1" - saxes "^5.0.1" + nwsapi "^2.2.2" + parse5 "^7.1.1" + saxes "^6.0.0" 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" + tough-cookie "^4.1.2" + w3c-xmlserializer "^4.0.0" + webidl-conversions "^7.0.0" + whatwg-encoding "^2.0.0" + whatwg-mimetype "^3.0.0" + whatwg-url "^11.0.0" + ws "^8.11.0" + xml-name-validator "^4.0.0" jsesc@^2.5.1: version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + resolved "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== jsesc@~0.5.0: version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + resolved "https://registry.npmmirror.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== -json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: +json-parse-better-errors@^1.0.0, 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" + resolved "https://registry.npmmirror.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" + resolved "https://registry.npmmirror.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" + resolved "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - json-schema@0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + resolved "https://registry.npmmirror.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + resolved "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json2mq@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/json2mq/-/json2mq-0.2.0.tgz#b637bd3ba9eabe122c83e9720483aeb10d2c904a" - integrity sha1-tje9O6nqvhIsg+lyBIOusQ0skEo= - dependencies: - string-convert "^0.2.0" - -json3@^3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" - integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== - -json5@2.x, 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" + resolved "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== -json5@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= - -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== +json5@^1.0.1, json5@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" +json5@^2.1.2, json5@^2.2.3: + version "2.2.3" + resolved "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + jsonfile@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" - integrity sha1-pezG9l9T9mLEQVx2daAzHQmS7GY= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + resolved "https://registry.npmmirror.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" + integrity sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w== optionalDependencies: graceful-fs "^4.1.6" jsonfile@^6.0.1: version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + resolved "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== dependencies: universalify "^2.0.0" @@ -10067,12 +7913,12 @@ jsonfile@^6.0.1: jsonparse@^1.2.0, jsonparse@^1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= + resolved "https://registry.npmmirror.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== jsprim@^1.2.2: version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + resolved "https://registry.npmmirror.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== dependencies: assert-plus "1.0.0" @@ -10080,77 +7926,57 @@ jsprim@^1.2.2: json-schema "0.4.0" verror "1.10.0" -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== +keyv@^4.5.3: + version "4.5.3" + resolved "https://registry.npmmirror.com/keyv/-/keyv-4.5.3.tgz#00873d2b046df737963157bd04f294ca818c9c25" + integrity sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug== dependencies: - json-buffer "3.0.0" - -killable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" - integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== + json-buffer "3.0.1" kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + resolved "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + resolved "https://registry.npmmirror.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== dependencies: is-buffer "^1.1.5" kind-of@^5.0.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + resolved "https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + resolved "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -last-call-webpack-plugin@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" - integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== - dependencies: - lodash "^4.17.5" - webpack-sources "^1.1.0" +klona@^2.0.4: + version "2.0.6" + resolved "https://registry.npmmirror.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" + integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== latest-version@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" - integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU= + resolved "https://registry.npmmirror.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" + integrity sha512-Be1YRHWWlZaSsrz2U+VInk+tO0EwLIyV+23RhWLINJYwg/UIikxjlj3MhH37/6/EDCAusjajvMkMMUXRaMWl/w== dependencies: package-json "^4.0.0" -latest-version@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" - integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== - dependencies: - package-json "^6.3.0" - lazy-cache@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= + resolved "https://registry.npmmirror.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + integrity sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ== lerna@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/lerna/-/lerna-4.0.0.tgz#b139d685d50ea0ca1be87713a7c2f44a5b678e9e" + resolved "https://registry.npmmirror.com/lerna/-/lerna-4.0.0.tgz#b139d685d50ea0ca1be87713a7c2f44a5b678e9e" integrity sha512-DD/i1znurfOmNJb0OBw66NmNqiM8kF6uIrzrJ0wGE3VNdzeOhz9ziWLYiRaZDGGwgbcjOo6eIfcx9O5Qynz+kg== dependencies: "@lerna/add" "4.0.0" @@ -10174,7 +8000,7 @@ lerna@^4.0.0: less-loader@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-5.0.0.tgz#498dde3a6c6c4f887458ee9ed3f086a12ad1b466" + resolved "https://registry.npmmirror.com/less-loader/-/less-loader-5.0.0.tgz#498dde3a6c6c4f887458ee9ed3f086a12ad1b466" integrity sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg== dependencies: clone "^2.1.1" @@ -10183,16 +8009,16 @@ less-loader@^5.0.0: less-plugin-npm-import@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/less-plugin-npm-import/-/less-plugin-npm-import-2.1.0.tgz#823e6986c93318a98171ca858848b6bead55bf3e" - integrity sha1-gj5phskzGKmBccqFiEi2vq1Vvz4= + resolved "https://registry.npmmirror.com/less-plugin-npm-import/-/less-plugin-npm-import-2.1.0.tgz#823e6986c93318a98171ca858848b6bead55bf3e" + integrity sha512-f7pVkEooRq2/jge/M/Y+spoPXj5rRIY30q1as+3kZsDG8Rs+loNJUCVQjzXB9Ao/9FeIJULiq2zrXymv+OMTbw== dependencies: promise "~7.0.1" resolve "~1.1.6" -less@^4.1.1, less@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/less/-/less-4.1.2.tgz#6099ee584999750c2624b65f80145f8674e4b4b0" - integrity sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA== +less@^4.1.2: + version "4.2.0" + resolved "https://registry.npmmirror.com/less/-/less-4.2.0.tgz#cbefbfaa14a4cd388e2099b2b51f956e1465c450" + integrity sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA== dependencies: copy-anything "^2.0.1" parse-node-version "^1.0.1" @@ -10203,33 +8029,20 @@ less@^4.1.1, less@^4.1.2: image-size "~0.5.0" make-dir "^2.1.0" mime "^1.4.1" - needle "^2.5.2" + needle "^3.1.0" source-map "~0.6.0" -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - levn@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + resolved "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: prelude-ls "^1.2.1" type-check "~0.4.0" -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" - libnpmaccess@^4.0.1: version "4.0.3" - resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-4.0.3.tgz#dfb0e5b0a53c315a2610d300e46b4ddeb66e7eec" + resolved "https://registry.npmmirror.com/libnpmaccess/-/libnpmaccess-4.0.3.tgz#dfb0e5b0a53c315a2610d300e46b4ddeb66e7eec" integrity sha512-sPeTSNImksm8O2b6/pf3ikv4N567ERYEpeKRPSmqlNt1dTZbvgpJIzg5vAhXHpw2ISBsELFRelk0jEahj1c6nQ== dependencies: aproba "^2.0.0" @@ -10239,7 +8052,7 @@ libnpmaccess@^4.0.1: libnpmpublish@^4.0.0: version "4.0.2" - resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-4.0.2.tgz#be77e8bf5956131bcb45e3caa6b96a842dec0794" + resolved "https://registry.npmmirror.com/libnpmpublish/-/libnpmpublish-4.0.2.tgz#be77e8bf5956131bcb45e3caa6b96a842dec0794" integrity sha512-+AD7A2zbVeGRCFI2aO//oUmapCwy7GHqPXFJh3qpToSRNU+tXKJ2YFUgjt04LPPAf2dlEH95s6EhIHM1J7bmOw== dependencies: normalize-package-data "^3.0.2" @@ -10248,26 +8061,26 @@ libnpmpublish@^4.0.0: semver "^7.1.3" ssri "^8.0.1" -lilconfig@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082" - integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA== +lilconfig@^2.0.3, lilconfig@^2.0.5: + version "2.1.0" + resolved "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== lines-and-columns@^1.1.6: version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + resolved "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -linkify-it@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf" - integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw== +linkify-it@^3.0.1: + version "3.0.3" + resolved "https://registry.npmmirror.com/linkify-it/-/linkify-it-3.0.3.tgz#a98baf44ce45a550efb4d49c769d07524cc2fa2e" + integrity sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ== dependencies: uc.micro "^1.0.1" lint-staged@^8.2.1: version "8.2.1" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-8.2.1.tgz#752fcf222d9d28f323a3b80f1e668f3654ff221f" + resolved "https://registry.npmmirror.com/lint-staged/-/lint-staged-8.2.1.tgz#752fcf222d9d28f323a3b80f1e668f3654ff221f" integrity sha512-n0tDGR/rTCgQNwXnUf/eWIpPNddGWxC32ANTNYsj2k02iZb7Cz5ox2tytwBu+2r0zDXMEMKw7Y9OD/qsav561A== dependencies: chalk "^2.3.1" @@ -10297,12 +8110,12 @@ lint-staged@^8.2.1: listr-silent-renderer@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" - integrity sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4= + resolved "https://registry.npmmirror.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" + integrity sha512-L26cIFm7/oZeSNVhWB6faeorXhMg4HNlb/dS/7jHhr708jxlXrtrBWo4YUxZQkc6dGoxEAe6J/D3juTRBUzjtA== listr-update-renderer@^0.5.0: version "0.5.0" - resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" + resolved "https://registry.npmmirror.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA== dependencies: chalk "^1.1.3" @@ -10316,7 +8129,7 @@ listr-update-renderer@^0.5.0: listr-verbose-renderer@^0.5.0: version "0.5.0" - resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" + resolved "https://registry.npmmirror.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw== dependencies: chalk "^2.4.1" @@ -10326,7 +8139,7 @@ listr-verbose-renderer@^0.5.0: listr@^0.14.2: version "0.14.3" - resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" + resolved "https://registry.npmmirror.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== dependencies: "@samverschueren/stream-to-observable" "^0.3.0" @@ -10341,8 +8154,8 @@ listr@^0.14.2: load-json-file@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + resolved "https://registry.npmmirror.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== dependencies: graceful-fs "^4.1.2" parse-json "^4.0.0" @@ -10351,7 +8164,7 @@ load-json-file@^4.0.0: load-json-file@^6.2.0: version "6.2.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-6.2.0.tgz#5c7770b42cafa97074ca2848707c61662f4251a1" + resolved "https://registry.npmmirror.com/load-json-file/-/load-json-file-6.2.0.tgz#5c7770b42cafa97074ca2848707c61662f4251a1" integrity sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ== dependencies: graceful-fs "^4.1.15" @@ -10359,60 +8172,45 @@ load-json-file@^6.2.0: strip-bom "^4.0.0" type-fest "^0.6.0" -load-script@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/load-script/-/load-script-1.0.0.tgz#0491939e0bee5643ee494a7e3da3d2bac70c6ca4" - integrity sha1-BJGTngvuVkPuSUp+PaPSuscMbKQ= - -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-utils@^0.2.16: - version "0.2.17" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" - integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - object-assign "^4.0.1" - -loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== +loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: + version "1.4.2" + resolved "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" + integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== dependencies: big.js "^5.2.2" emojis-list "^3.0.0" json5 "^1.0.1" loader-utils@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129" - integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== + version "2.0.4" + resolved "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== dependencies: big.js "^5.2.2" emojis-list "^3.0.0" json5 "^2.1.2" loader-utils@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.2.0.tgz#bcecc51a7898bee7473d4bc6b845b23af8304d4f" - integrity sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ== + version "3.2.1" + resolved "https://registry.npmmirror.com/loader-utils/-/loader-utils-3.2.1.tgz#4fb104b599daafd82ef3e1a41fb9265f87e1f576" + integrity sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw== + +local-pkg@^0.4.1: + version "0.4.3" + resolved "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963" + integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== locate-path@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + resolved "https://registry.npmmirror.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== dependencies: p-locate "^2.0.0" path-exists "^3.0.0" locate-path@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + resolved "https://registry.npmmirror.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== dependencies: p-locate "^3.0.0" @@ -10420,83 +8218,78 @@ locate-path@^3.0.0: locate-path@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + resolved "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: p-locate "^4.1.0" locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + resolved "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" +lodash-es@^4.17.15, lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + lodash._baseclone@~4.5.0: version "4.5.7" - resolved "https://registry.yarnpkg.com/lodash._baseclone/-/lodash._baseclone-4.5.7.tgz#ce42ade08384ef5d62fa77c30f61a46e686f8434" - integrity sha1-zkKt4IOE711i+nfDD2GkbmhvhDQ= + resolved "https://registry.npmmirror.com/lodash._baseclone/-/lodash._baseclone-4.5.7.tgz#ce42ade08384ef5d62fa77c30f61a46e686f8434" + integrity sha512-nOtLg6tdIdD+TehqBv0WI7jbkLaohHhKSwLmS/UXSFWMWWUxdJc9EVtAfD4L0mV15vV+lZVfF4LEo363VdrMBw== lodash._reinterpolate@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= + resolved "https://registry.npmmirror.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA== lodash.camelcase@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= + resolved "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== lodash.clone@4.3.2: version "4.3.2" - resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.3.2.tgz#e56b176b6823a7dde38f7f2bf58de7d5971200e9" - integrity sha1-5WsXa2gjp93jj38r9Y3n1ZcSAOk= + resolved "https://registry.npmmirror.com/lodash.clone/-/lodash.clone-4.3.2.tgz#e56b176b6823a7dde38f7f2bf58de7d5971200e9" + integrity sha512-Yc/0UmZvWkFsbx7NB4feSX5bSX03SR0ft8CTkI8RCb3w/TzT71HXew2iNDm0aml93P49tIR/NJHOIoE+XEKz9A== dependencies: lodash._baseclone "~4.5.0" lodash.clone@4.5.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6" - integrity sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y= - -lodash.clonedeep@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + resolved "https://registry.npmmirror.com/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6" + integrity sha512-GhrVeweiTD6uTmmn5hV/lzgCQhccwReIVRLHp7LT4SopOjqEZ5BbX8b5WWEtAKasjmy8hR7ZPwsYlxRCku5odg== lodash.debounce@^4.0.8: version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + resolved "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== lodash.get@^4: version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + resolved "https://registry.npmmirror.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== lodash.ismatch@^4.4.0: version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" - integrity sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc= + resolved "https://registry.npmmirror.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" + integrity sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g== -lodash.kebabcase@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" - integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY= - -lodash.memoize@4.x, lodash.memoize@^4.1.2: +lodash.memoize@^4.1.2: version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + resolved "https://registry.npmmirror.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== lodash.merge@^4.6.2: version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + resolved "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== lodash.template@^4.5.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" + resolved "https://registry.npmmirror.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== dependencies: lodash._reinterpolate "^3.0.0" @@ -10504,86 +8297,81 @@ lodash.template@^4.5.0: lodash.templatesettings@^4.0.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" + resolved "https://registry.npmmirror.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== dependencies: lodash._reinterpolate "^3.0.0" -lodash.truncate@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= - lodash.uniq@^4.5.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + resolved "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.17.5, lodash@^4.7.0: +lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.7.0: version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + resolved "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== log-symbols@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" - integrity sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg= + resolved "https://registry.npmmirror.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + integrity sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ== dependencies: chalk "^1.0.0" log-symbols@^2.1.0, log-symbols@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + resolved "https://registry.npmmirror.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== dependencies: chalk "^2.0.1" +log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.npmmirror.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@^2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" - integrity sha1-iDKP19HOeTiykoN0bwsbwSayRwg= + resolved "https://registry.npmmirror.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" + integrity sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg== dependencies: ansi-escapes "^3.0.0" cli-cursor "^2.0.0" wrap-ansi "^3.0.1" -loglevel@^1.6.8: - version "1.8.0" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.0.tgz#e7ec73a57e1e7b419cb6c6ac06bf050b67356114" - integrity sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA== - loose-envify@^1.0.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + resolved "https://registry.npmmirror.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" -lower-case@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" - integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= +loupe@^2.3.1: + version "2.3.6" + resolved "https://registry.npmmirror.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53" + integrity sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA== + dependencies: + get-func-name "^2.0.0" lower-case@^2.0.1, lower-case@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + resolved "https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== dependencies: tslib "^2.0.3" -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: +lowercase-keys@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + resolved "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.2, lru-cache@^4.1.5: +lru-cache@^4.0.1, lru-cache@^4.1.1: version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== dependencies: pseudomap "^1.0.2" @@ -10591,40 +8379,61 @@ lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.2, lru-cache@^4.1.5: lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" lru-cache@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + resolved "https://registry.npmmirror.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= + version "1.5.0" + resolved "https://registry.npmmirror.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" + integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== magic-string@^0.25.7: - version "0.25.7" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" - integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== + version "0.25.9" + resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== dependencies: - sourcemap-codec "^1.4.4" + sourcemap-codec "^1.4.8" + +magic-string@^0.26.7: + version "0.26.7" + resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.26.7.tgz#caf7daf61b34e9982f8228c4527474dac8981d6f" + integrity sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow== + dependencies: + sourcemap-codec "^1.4.8" + +magic-string@^0.27.0: + version "0.27.0" + resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3" + integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.13" + +magic-string@^0.30.0, magic-string@^0.30.2: + version "0.30.3" + resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.3.tgz#403755dfd9d6b398dfa40635d52e96c5ac095b85" + integrity sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" make-dir@^1.0.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + resolved "https://registry.npmmirror.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== dependencies: pify "^3.0.0" make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + resolved "https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== dependencies: pify "^4.0.1" @@ -10632,19 +8441,26 @@ make-dir@^2.0.0, make-dir@^2.1.0: make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + resolved "https://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" -make-error@1.x, make-error@^1, make-error@^1.1.1: +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" + +make-error@^1, make-error@^1.1.1: version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + resolved "https://registry.npmmirror.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== make-fetch-happen@^2.4.13: version "2.6.0" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-2.6.0.tgz#8474aa52198f6b1ae4f3094c04e8370d35ea8a38" + resolved "https://registry.npmmirror.com/make-fetch-happen/-/make-fetch-happen-2.6.0.tgz#8474aa52198f6b1ae4f3094c04e8370d35ea8a38" integrity sha512-FFq0lNI0ax+n9IWzWpH8A4JdgYiAp2DDYIZ3rsaav8JDe8I+72CzK6PQW/oom15YDZpV5bYW/9INd6nIJ2ZfZw== dependencies: agentkeepalive "^3.3.0" @@ -10661,7 +8477,7 @@ make-fetch-happen@^2.4.13: make-fetch-happen@^8.0.9: version "8.0.14" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz#aaba73ae0ab5586ad8eaa68bd83332669393e222" + resolved "https://registry.npmmirror.com/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz#aaba73ae0ab5586ad8eaa68bd83332669393e222" integrity sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ== dependencies: agentkeepalive "^4.1.3" @@ -10682,7 +8498,7 @@ make-fetch-happen@^8.0.9: make-fetch-happen@^9.0.1: version "9.1.0" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968" + resolved "https://registry.npmmirror.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968" integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg== dependencies: agentkeepalive "^4.1.3" @@ -10702,102 +8518,74 @@ make-fetch-happen@^9.0.1: socks-proxy-agent "^6.0.0" ssri "^8.0.0" -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - manage-path@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/manage-path/-/manage-path-2.0.0.tgz#f4cf8457b926eeee2a83b173501414bc76eb9597" - integrity sha1-9M+EV7km7u4qg7FzUBQUvHbrlZc= + resolved "https://registry.npmmirror.com/manage-path/-/manage-path-2.0.0.tgz#f4cf8457b926eeee2a83b173501414bc76eb9597" + integrity sha512-NJhyB+PJYTpxhxZJ3lecIGgh4kwIY2RAh44XvAz9UlqthlQwtPBf62uBVR8XaD8CRuSjQ6TnZH2lNJkbLPZM2A== map-cache@^0.2.2: version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + resolved "https://registry.npmmirror.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== map-obj@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + resolved "https://registry.npmmirror.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== map-obj@^4.0.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" + resolved "https://registry.npmmirror.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== map-visit@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + resolved "https://registry.npmmirror.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== dependencies: object-visit "^1.0.0" -markdown-it-anchor@^5.0.2: - version "5.3.0" - resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz#d549acd64856a8ecd1bea58365ef385effbac744" - integrity sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA== - -markdown-it-chain@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/markdown-it-chain/-/markdown-it-chain-1.3.0.tgz#ccf6fe86c10266bafb4e547380dfd7f277cc17bc" - integrity sha512-XClV8I1TKy8L2qsT9iX3qiV+50ZtcInGXI80CA+DP62sMs7hXlyV/RM3hfwy5O3Ad0sJm9xIwQELgANfESo8mQ== - dependencies: - webpack-chain "^4.9.0" - -markdown-it-container@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/markdown-it-container/-/markdown-it-container-2.0.0.tgz#0019b43fd02eefece2f1960a2895fba81a404695" - integrity sha1-ABm0P9Au7+zi8ZYKKJX7qBpARpU= +markdown-it-anchor@^8.4.1: + version "8.6.7" + resolved "https://registry.npmmirror.com/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz#ee6926daf3ad1ed5e4e3968b1740eef1c6399634" + integrity sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA== markdown-it-container@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/markdown-it-container/-/markdown-it-container-3.0.0.tgz#1d19b06040a020f9a827577bb7dbf67aa5de9a5b" + resolved "https://registry.npmmirror.com/markdown-it-container/-/markdown-it-container-3.0.0.tgz#1d19b06040a020f9a827577bb7dbf67aa5de9a5b" integrity sha512-y6oKTq4BB9OQuY/KLfk/O3ysFhB3IMYoIWhGJEidXt1NQFocFK2sA2t0NYZAMyMShAGL6x5OPIbrmXPIqaN9rw== -markdown-it-emoji@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz#9bee0e9a990a963ba96df6980c4fddb05dfb4dcc" - integrity sha1-m+4OmpkKljupbfaYDE/dsF37Tcw= - -markdown-it-table-of-contents@^0.4.0: - version "0.4.4" - resolved "https://registry.yarnpkg.com/markdown-it-table-of-contents/-/markdown-it-table-of-contents-0.4.4.tgz#3dc7ce8b8fc17e5981c77cc398d1782319f37fbc" - integrity sha512-TAIHTHPwa9+ltKvKPWulm/beozQU41Ab+FIefRaQV1NRnpzwcV9QOe6wXQS5WLivm5Q/nlo0rl6laGkMDZE7Gw== +markdown-it-emoji@^2.0.0: + version "2.0.2" + resolved "https://registry.npmmirror.com/markdown-it-emoji/-/markdown-it-emoji-2.0.2.tgz#cd42421c2fda1537d9cc12b9923f5c8aeb9029c8" + integrity sha512-zLftSaNrKuYl0kR5zm4gxXjHaOI3FAOEaloKmRA5hijmJZvSjmxcokOLlzycb/HXlUFWzXqpIEoyEMCE4i9MvQ== -markdown-it@^8.4.1: - version "8.4.2" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.2.tgz#386f98998dc15a37722aa7722084f4020bdd9b54" - integrity sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ== +markdown-it@^12.3.2: + version "12.3.2" + resolved "https://registry.npmmirror.com/markdown-it/-/markdown-it-12.3.2.tgz#bf92ac92283fe983fe4de8ff8abfb5ad72cd0c90" + integrity sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg== dependencies: - argparse "^1.0.7" - entities "~1.1.1" - linkify-it "^2.0.0" + argparse "^2.0.1" + entities "~2.1.0" + linkify-it "^3.0.1" mdurl "^1.0.1" uc.micro "^1.0.5" matcher@^1.0.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/matcher/-/matcher-1.1.1.tgz#51d8301e138f840982b338b116bb0c09af62c1c2" + resolved "https://registry.npmmirror.com/matcher/-/matcher-1.1.1.tgz#51d8301e138f840982b338b116bb0c09af62c1c2" integrity sha512-+BmqxWIubKTRKNWx/ahnCkk3mG8m7OturVlqq6HiojGJTd5hVYbgZm6WzcYPCoB+KBT4Vd6R7WSRG2OADNaCjg== dependencies: escape-string-regexp "^1.0.4" -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" +material-colors@^1.2.6: + version "1.2.6" + resolved "https://registry.npmmirror.com/material-colors/-/material-colors-1.2.6.tgz#6d1958871126992ceecc72f4bcc4d8f010865f46" + integrity sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg== mdast-util-from-markdown@^0.8.5: version "0.8.5" - resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz#d1ef2ca42bc377ecb0463a987910dae89bd9a28c" + resolved "https://registry.npmmirror.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" @@ -10808,45 +8596,32 @@ mdast-util-from-markdown@^0.8.5: 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" + resolved "https://registry.npmmirror.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== mdn-data@2.0.14: version "2.0.14" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + resolved "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== +mdn-data@2.0.28: + version "2.0.28" + resolved "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" + integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== mdurl@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -medium-zoom@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/medium-zoom/-/medium-zoom-1.0.6.tgz#9247f21ca9313d8bbe9420aca153a410df08d027" - integrity sha512-UdiUWfvz9fZMg1pzf4dcuqA0W079o0mpqbTnOz5ip4VGYX96QjmbM+OgOU/0uOzAytxC0Ny4z+VcYQnhdifimg== + resolved "https://registry.npmmirror.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== -memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" +medium-zoom@^1.0.6: + version "1.0.8" + resolved "https://registry.npmmirror.com/medium-zoom/-/medium-zoom-1.0.8.tgz#2bd1fbcf2961fa7b0e318fe284462aa9b8608ed2" + integrity sha512-CjFVuFq/IfrdqesAXfg+hzlDKu6A2n80ZIq0Kl9kWjoHh9j1N9Uvk5X0/MmN0hOfm5F9YBswlClhcwnmtwz7gA== memory-fs@^0.5.0: version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + resolved "https://registry.npmmirror.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== dependencies: errno "^0.1.3" @@ -10854,7 +8629,7 @@ memory-fs@^0.5.0: meow@^8.0.0: version "8.1.2" - resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" + resolved "https://registry.npmmirror.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== dependencies: "@types/minimist" "^1.2.0" @@ -10869,44 +8644,27 @@ meow@^8.0.0: type-fest "^0.18.0" yargs-parser "^20.2.3" -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -merge-source-map@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" - integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== - dependencies: - source-map "^0.6.1" - merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + resolved "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.2.3, merge2@^1.3.0: +merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + resolved "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - micromark@~2.11.0: version "2.11.4" - resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.11.4.tgz#d13436138eea826383e822449c9a5c50ee44665a" + resolved "https://registry.npmmirror.com/micromark/-/micromark-2.11.4.tgz#d13436138eea826383e822449c9a5c50ee44665a" integrity sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA== dependencies: debug "^4.0.0" parse-entities "^2.0.0" -micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: +micromatch@^3.1.8: version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + resolved "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== dependencies: arr-diff "^4.0.0" @@ -10923,127 +8681,96 @@ micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== - dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== +micromatch@^4.0.0, micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" + braces "^3.0.2" + picomatch "^2.3.1" -mime-db@1.51.0, "mime-db@>= 1.43.0 < 2": - version "1.51.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" - integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.34" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" - integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== +mime-types@^2.1.12, mime-types@~2.1.19: + version "2.1.35" + resolved "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: - mime-db "1.51.0" + mime-db "1.52.0" -mime@1.6.0, mime@^1.4.1: +mime@^1.4.1: version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + resolved "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.0.3, mime@^2.4.4: - version "2.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" - integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== - mimer@1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/mimer/-/mimer-1.1.0.tgz#2cb67f7093998e772a0e62c090f77daa1b8a2dbe" + resolved "https://registry.npmmirror.com/mimer/-/mimer-1.1.0.tgz#2cb67f7093998e772a0e62c090f77daa1b8a2dbe" integrity sha512-y9dVfy2uiycQvDNiAYW6zp49ZhFlXDMr5wfdOiMbdzGM/0N5LNR6HTUn3un+WUQcM0koaw8FMTG1bt5EnHJdvQ== mimic-fn@^1.0.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + resolved "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== mimic-fn@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + resolved "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= - dependencies: - dom-walk "^0.1.0" - min-indent@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - -mini-css-extract-plugin@0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.6.0.tgz#a3f13372d6fcde912f3ee4cd039665704801e3b9" - integrity sha512-79q5P7YGI6rdnVyIAV4NXpBQJFWdkzJxCim3Kog4078fM0piAaFlwocqbejdWtLW1cEzCexPrh6EdyFsPgVdAw== - dependencies: - loader-utils "^1.1.0" - normalize-url "^2.0.1" - schema-utils "^1.0.0" - webpack-sources "^1.1.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + resolved "https://registry.npmmirror.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= +minimatch@9.0.1: + version "9.0.1" + resolved "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.1.tgz#8a555f541cf976c622daf078bb28f29fb927c253" + integrity sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w== + dependencies: + brace-expansion "^2.0.1" -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + minimist-options@4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" + resolved "https://registry.npmmirror.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== dependencies: arrify "^1.0.1" is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@^1.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== +minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== minipass-collect@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + resolved "https://registry.npmmirror.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== dependencies: minipass "^3.0.0" minipass-fetch@^1.3.0, minipass-fetch@^1.3.2: version "1.4.1" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6" + resolved "https://registry.npmmirror.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6" integrity sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw== dependencies: minipass "^3.1.0" @@ -11054,14 +8781,14 @@ minipass-fetch@^1.3.0, minipass-fetch@^1.3.2: minipass-flush@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + resolved "https://registry.npmmirror.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== dependencies: minipass "^3.0.0" minipass-json-stream@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7" + resolved "https://registry.npmmirror.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7" integrity sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg== dependencies: jsonparse "^1.3.1" @@ -11069,43 +8796,48 @@ minipass-json-stream@^1.0.1: minipass-pipeline@^1.2.2, minipass-pipeline@^1.2.4: version "1.2.4" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + resolved "https://registry.npmmirror.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== dependencies: minipass "^3.0.0" minipass-sized@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" + resolved "https://registry.npmmirror.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== dependencies: minipass "^3.0.0" minipass@^2.6.0, minipass@^2.9.0: version "2.9.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + resolved "https://registry.npmmirror.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== dependencies: safe-buffer "^5.1.2" yallist "^3.0.0" minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3: - version "3.1.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" - integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== + version "3.3.6" + resolved "https://registry.npmmirror.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== dependencies: yallist "^4.0.0" +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== + minizlib@^1.3.3: version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + resolved "https://registry.npmmirror.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== dependencies: minipass "^2.9.0" minizlib@^2.0.0, minizlib@^2.1.1: version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + resolved "https://registry.npmmirror.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== dependencies: minipass "^3.0.0" @@ -11113,7 +8845,7 @@ minizlib@^2.0.0, minizlib@^2.1.1: mississippi@^1.2.0, mississippi@^1.3.0: version "1.3.1" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-1.3.1.tgz#2a8bb465e86550ac8b36a7b6f45599171d78671e" + resolved "https://registry.npmmirror.com/mississippi/-/mississippi-1.3.1.tgz#2a8bb465e86550ac8b36a7b6f45599171d78671e" integrity sha512-/6rB8YXFbAtsUVRphIRQqB0+9c7VaPHCjVtvto+JqwVxgz8Zz+I+f68/JgQ+Pb4VlZb2svA9OtdXnHHsZz7ltg== dependencies: concat-stream "^1.5.0" @@ -11129,7 +8861,7 @@ mississippi@^1.2.0, mississippi@^1.3.0: mississippi@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" + resolved "https://registry.npmmirror.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" integrity sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw== dependencies: concat-stream "^1.5.0" @@ -11143,25 +8875,9 @@ mississippi@^2.0.0: stream-each "^1.1.0" through2 "^2.0.0" -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - mixin-deep@^1.2.0: version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + resolved "https://registry.npmmirror.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== dependencies: for-in "^1.0.2" @@ -11169,44 +8885,44 @@ mixin-deep@^1.2.0: mkdirp-infer-owner@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz#55d3b368e7d89065c38f32fd38e638f0ab61d316" + resolved "https://registry.npmmirror.com/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz#55d3b368e7d89065c38f32fd38e638f0ab61d316" integrity sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw== dependencies: chownr "^2.0.0" infer-owner "^1.0.4" mkdirp "^1.0.3" -mkdirp@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" - integrity sha1-G79asbqCevI1dRQ0kEJkVfSB/h4= - -mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== +mkdirp@^0.5.1, mkdirp@^0.5.5: + version "0.5.6" + resolved "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: - minimist "^1.2.5" + minimist "^1.2.6" -mkdirp@^1.0.3, mkdirp@^1.0.4, mkdirp@~1.0.4: +mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + resolved "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== modify-values@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" + resolved "https://registry.npmmirror.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== -moment@^2.21.0: - version "2.29.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" - integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== +moment@^2.29.3: + version "2.29.4" + resolved "https://registry.npmmirror.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" + integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== + +monaco-editor@^0.34.0: + version "0.34.1" + resolved "https://registry.npmmirror.com/monaco-editor/-/monaco-editor-0.34.1.tgz#1b75c4ad6bc4c1f9da656d740d98e0b850a22f87" + integrity sha512-FKc80TyiMaruhJKKPz5SpJPIjL+dflGvz4CpuThaPMc94AyN7SeC9HQ8hrvaxX7EyHdJcUY5i4D0gNyJj1vSZQ== move-concurrently@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + resolved "https://registry.npmmirror.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ== dependencies: aproba "^1.1.1" copy-concurrently "^1.0.0" @@ -11217,40 +8933,32 @@ move-concurrently@^1.0.1: mri@^1.1.5: version "1.2.0" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + resolved "https://registry.npmmirror.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== +mrmime@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" + integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== + ms@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + resolved "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + resolved "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3, ms@^2.0.0, ms@^2.1.1: +ms@^2.0.0, ms@^2.1.1: version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + resolved "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" - integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== - dependencies: - dns-packet "^1.3.1" - thunky "^1.0.2" - multimatch@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3" + resolved "https://registry.npmmirror.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3" integrity sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ== dependencies: "@types/minimatch" "^3.0.3" @@ -11261,7 +8969,7 @@ multimatch@^4.0.0: multimatch@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-5.0.0.tgz#932b800963cea7a31a033328fa1e0c3a1874dbe6" + resolved "https://registry.npmmirror.com/multimatch/-/multimatch-5.0.0.tgz#932b800963cea7a31a033328fa1e0c3a1874dbe6" integrity sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA== dependencies: "@types/minimatch" "^3.0.3" @@ -11270,39 +8978,29 @@ multimatch@^5.0.0: arrify "^2.0.1" minimatch "^3.0.4" -mutationobserver-shim@^0.3.2: - version "0.3.7" - resolved "https://registry.yarnpkg.com/mutationobserver-shim/-/mutationobserver-shim-0.3.7.tgz#8bf633b0c0b0291a1107255ed32c13088a8c5bf3" - integrity sha512-oRIDTyZQU96nAiz2AQyngwx1e89iApl2hN5AOYwyxLUB47UYsU3Wv9lJWqH5y/QdiYkc5HQLi23ZNB3fELdHcQ== - mute-stream@0.0.7: version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= + resolved "https://registry.npmmirror.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== mute-stream@0.0.8, mute-stream@~0.0.4: version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + resolved "https://registry.npmmirror.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -nan@^2.12.1: - version "2.15.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" - integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== - nanoid@^2.1.0: version "2.1.11" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280" + resolved "https://registry.npmmirror.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280" integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA== -nanoid@^3.1.30: - version "3.1.30" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.30.tgz#63f93cc548d2a113dc5dfbc63bfa09e2b9b64362" - integrity sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ== +nanoid@^3.3.6: + version "3.3.6" + resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== nanomatch@^1.2.9: version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + resolved "https://registry.npmmirror.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== dependencies: arr-diff "^4.0.0" @@ -11318,85 +9016,71 @@ nanomatch@^1.2.9: to-regex "^3.0.1" nanopop@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/nanopop/-/nanopop-2.1.0.tgz#23476513cee2405888afd2e8a4b54066b70b9e60" - integrity sha512-jGTwpFRexSH+fxappnGQtN9dspgE2ipa1aOjtR24igG0pv6JCxImIAmrLRHX+zUF5+1wtsFVbKyfP51kIGAVNw== + version "2.3.0" + resolved "https://registry.npmmirror.com/nanopop/-/nanopop-2.3.0.tgz#a5f672fba27d45d6ecbd0b59789c040072915123" + integrity sha512-fzN+T2K7/Ah25XU02MJkPZ5q4Tj5FpjmIYq4rvoHX4yb16HzFdCO6JxFFn5Y/oBhQ8no8fUZavnyIv9/+xkBBw== + +natural-compare-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.npmmirror.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== natural-compare@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + resolved "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -needle@^2.5.2: - version "2.9.1" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.9.1.tgz#22d1dffbe3490c2b83e301f7709b6736cd8f2684" - integrity sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ== +needle@^3.1.0: + version "3.2.0" + resolved "https://registry.npmmirror.com/needle/-/needle-3.2.0.tgz#07d240ebcabfd65c76c03afae7f6defe6469df44" + integrity sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ== dependencies: debug "^3.2.6" - iconv-lite "^0.4.4" + iconv-lite "^0.6.3" sax "^1.2.4" -negotiator@0.6.2, negotiator@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== +negotiator@^0.6.2: + version "0.6.3" + resolved "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: +neo-async@^2.6.1, neo-async@^2.6.2: version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + resolved "https://registry.npmmirror.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" + resolved "https://registry.npmmirror.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -no-case@^2.2.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" - integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== - dependencies: - lower-case "^1.1.1" - no-case@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + resolved "https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== dependencies: lower-case "^2.0.2" tslib "^2.0.3" -node-emoji@^1.10.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" - integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== - dependencies: - lodash "^4.17.21" - node-fetch-npm@^2.0.2: version "2.0.4" - resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz#6507d0e17a9ec0be3bec516958a497cec54bf5a4" + resolved "https://registry.npmmirror.com/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz#6507d0e17a9ec0be3bec516958a497cec54bf5a4" integrity sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg== dependencies: encoding "^0.1.11" json-parse-better-errors "^1.0.0" safe-buffer "^5.1.1" -node-fetch@^2.6.1: - version "2.6.6" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.6.tgz#1751a7c01834e8e1697758732e9efb6eeadfaf89" - integrity sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA== +node-fetch@^2.6.1, node-fetch@^2.6.7: + version "2.7.0" + resolved "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" -node-forge@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" - integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== - node-gyp@^5.0.2: version "5.1.1" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.1.tgz#eb915f7b631c937d282e33aed44cb7a025f62a3e" + resolved "https://registry.npmmirror.com/node-gyp/-/node-gyp-5.1.1.tgz#eb915f7b631c937d282e33aed44cb7a025f62a3e" integrity sha512-WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw== dependencies: env-paths "^2.2.0" @@ -11413,7 +9097,7 @@ node-gyp@^5.0.2: node-gyp@^7.1.0: version "7.1.2" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-7.1.2.tgz#21a810aebb187120251c3bcec979af1587b188ae" + resolved "https://registry.npmmirror.com/node-gyp/-/node-gyp-7.1.2.tgz#21a810aebb187120251c3bcec979af1587b188ae" integrity sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ== dependencies: env-paths "^2.2.0" @@ -11427,55 +9111,14 @@ node-gyp@^7.1.0: tar "^6.0.2" which "^2.0.2" -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= - -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@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" - integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== - -nopt@1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" - integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= - dependencies: - abbrev "1" +node-releases@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.0.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" + integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== nopt@^4.0.1: version "4.0.3" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" + resolved "https://registry.npmmirror.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== dependencies: abbrev "1" @@ -11483,14 +9126,21 @@ nopt@^4.0.1: nopt@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + resolved "https://registry.npmmirror.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== dependencies: abbrev "1" +nopt@^6.0.0: + version "6.0.0" + resolved "https://registry.npmmirror.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" + integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== + dependencies: + abbrev "^1.0.0" + normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.4.0, normalize-package-data@^2.5.0: version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + resolved "https://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== dependencies: hosted-git-info "^2.1.4" @@ -11500,7 +9150,7 @@ normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package- normalize-package-data@^3.0.0, normalize-package-data@^3.0.2: version "3.0.3" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" + resolved "https://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== dependencies: hosted-git-info "^4.0.1" @@ -11508,64 +9158,38 @@ normalize-package-data@^3.0.0, normalize-package-data@^3.0.2: semver "^7.3.4" validate-npm-package-license "^3.0.1" -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + resolved "https://registry.npmmirror.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@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" - integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== - dependencies: - prepend-http "^2.0.0" - query-string "^5.0.1" - sort-keys "^2.0.0" - -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -normalize-url@^4.1.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" - integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== + resolved "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== normalize-url@^6.0.1, normalize-url@^6.1.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + resolved "https://registry.npmmirror.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== npm-bundled@^1.1.1: version "1.1.2" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" + resolved "https://registry.npmmirror.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== dependencies: npm-normalize-package-bin "^1.0.1" npm-install-checks@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-4.0.0.tgz#a37facc763a2fde0497ef2c6d0ac7c3fbe00d7b4" + resolved "https://registry.npmmirror.com/npm-install-checks/-/npm-install-checks-4.0.0.tgz#a37facc763a2fde0497ef2c6d0ac7c3fbe00d7b4" integrity sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w== dependencies: semver "^7.1.1" npm-lifecycle@^3.1.5: version "3.1.5" - resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz#9882d3642b8c82c815782a12e6a1bfeed0026309" + resolved "https://registry.npmmirror.com/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz#9882d3642b8c82c815782a12e6a1bfeed0026309" integrity sha512-lDLVkjfZmvmfvpvBzA4vzee9cn+Me4orq0QF8glbswJVEbIcSNWib7qGOffolysc3teCqbbPZZkzbr3GQZTL1g== dependencies: byline "^5.0.0" @@ -11579,12 +9203,12 @@ npm-lifecycle@^3.1.5: npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" + resolved "https://registry.npmmirror.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== npm-package-arg@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-5.1.2.tgz#fb18d17bb61e60900d6312619919bd753755ab37" + resolved "https://registry.npmmirror.com/npm-package-arg/-/npm-package-arg-5.1.2.tgz#fb18d17bb61e60900d6312619919bd753755ab37" integrity sha512-wJBsrf0qpypPT7A0LART18hCdyhpCMxeTtcb0X4IZO2jsP6Om7EHN1d9KSKiqD+KVH030RVNpWS9thk+pb7wzA== dependencies: hosted-git-info "^2.4.2" @@ -11594,7 +9218,7 @@ npm-package-arg@^5.1.2: npm-package-arg@^8.0.0, npm-package-arg@^8.0.1, npm-package-arg@^8.1.0, npm-package-arg@^8.1.2, npm-package-arg@^8.1.5: version "8.1.5" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.5.tgz#3369b2d5fe8fdc674baa7f1786514ddc15466e44" + resolved "https://registry.npmmirror.com/npm-package-arg/-/npm-package-arg-8.1.5.tgz#3369b2d5fe8fdc674baa7f1786514ddc15466e44" integrity sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q== dependencies: hosted-git-info "^4.0.1" @@ -11603,7 +9227,7 @@ npm-package-arg@^8.0.0, npm-package-arg@^8.0.1, npm-package-arg@^8.1.0, npm-pack npm-packlist@^2.1.4: version "2.2.2" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-2.2.2.tgz#076b97293fa620f632833186a7a8f65aaa6148c8" + resolved "https://registry.npmmirror.com/npm-packlist/-/npm-packlist-2.2.2.tgz#076b97293fa620f632833186a7a8f65aaa6148c8" integrity sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg== dependencies: glob "^7.1.6" @@ -11613,14 +9237,14 @@ npm-packlist@^2.1.4: npm-path@^2.0.2: version "2.0.4" - resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.4.tgz#c641347a5ff9d6a09e4d9bce5580c4f505278e64" + resolved "https://registry.npmmirror.com/npm-path/-/npm-path-2.0.4.tgz#c641347a5ff9d6a09e4d9bce5580c4f505278e64" integrity sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw== dependencies: which "^1.2.10" npm-pick-manifest@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-1.0.4.tgz#a5ee6510c1fe7221c0bc0414e70924c14045f7e8" + resolved "https://registry.npmmirror.com/npm-pick-manifest/-/npm-pick-manifest-1.0.4.tgz#a5ee6510c1fe7221c0bc0414e70924c14045f7e8" integrity sha512-MKxNdeyOZysPRTTbHtW0M5Fw38Jo/3ARsoGw5qjCfS+XGjvNB/Gb4qtAZUFmKPM2mVum+eX559eHvKywU856BQ== dependencies: npm-package-arg "^5.1.2" @@ -11628,7 +9252,7 @@ npm-pick-manifest@^1.0.4: npm-pick-manifest@^6.0.0, npm-pick-manifest@^6.1.1: version "6.1.1" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz#7b5484ca2c908565f43b7f27644f36bb816f5148" + resolved "https://registry.npmmirror.com/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz#7b5484ca2c908565f43b7f27644f36bb816f5148" integrity sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA== dependencies: npm-install-checks "^4.0.0" @@ -11638,7 +9262,7 @@ npm-pick-manifest@^6.0.0, npm-pick-manifest@^6.1.1: npm-registry-fetch@^11.0.0: version "11.0.0" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz#68c1bb810c46542760d62a6a965f85a702d43a76" + resolved "https://registry.npmmirror.com/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz#68c1bb810c46542760d62a6a965f85a702d43a76" integrity sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA== dependencies: make-fetch-happen "^9.0.1" @@ -11650,7 +9274,7 @@ npm-registry-fetch@^11.0.0: npm-registry-fetch@^9.0.0: version "9.0.0" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-9.0.0.tgz#86f3feb4ce00313bc0b8f1f8f69daae6face1661" + resolved "https://registry.npmmirror.com/npm-registry-fetch/-/npm-registry-fetch-9.0.0.tgz#86f3feb4ce00313bc0b8f1f8f69daae6face1661" integrity sha512-PuFYYtnQ8IyVl6ib9d3PepeehcUeHN9IO5N/iCRhyg9tStQcqGQBRVHmfmMWPDERU3KwZoHFvbJ4FPXPspvzbA== dependencies: "@npmcli/ci-detect" "^1.0.0" @@ -11664,22 +9288,22 @@ npm-registry-fetch@^9.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= + resolved "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== dependencies: path-key "^2.0.0" npm-run-path@^4.0.0, npm-run-path@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + resolved "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" npm-which@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa" - integrity sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo= + resolved "https://registry.npmmirror.com/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa" + integrity sha512-CM8vMpeFQ7MAPin0U3wzDhSGV0hMHNwHU0wjo402IVizPDrs45jSfSuoC+wThevY88LQti8VvaAnqYAeVy3I1A== dependencies: commander "^2.9.0" npm-path "^2.0.2" @@ -11687,7 +9311,7 @@ npm-which@^3.0.1: npmlog@^4.1.2: version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + resolved "https://registry.npmmirror.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== dependencies: are-we-there-yet "~1.1.2" @@ -11697,226 +9321,171 @@ npmlog@^4.1.2: nprogress@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" - integrity sha1-y480xTIT2JVyP8urkH6UIq28r7E= + resolved "https://registry.npmmirror.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" + integrity sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA== -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -nth-check@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" - integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== +nth-check@^2.0.1, nth-check@^2.1.1: + version "2.1.1" + resolved "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: boolbase "^1.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= - number-is-nan@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + resolved "https://registry.npmmirror.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== -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== +nwsapi@^2.2.2: + version "2.2.7" + resolved "https://registry.npmmirror.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" + integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== oauth-sign@~0.9.0: version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + resolved "https://registry.npmmirror.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@4.x, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4.0.1, object-assign@^4.1.0: version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + resolved "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-copy@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + resolved "https://registry.npmmirror.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== dependencies: copy-descriptor "^0.1.0" define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.11.0, object-inspect@^1.9.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" - integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== - -object-is@^1.0.1: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" +object-inspect@^1.12.3, object-inspect@^1.9.0: + version "1.12.3" + resolved "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.0, object-keys@^1.1.1: +object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + resolved "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object-visit@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + resolved "https://registry.npmmirror.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== dependencies: isobject "^3.0.0" -object.assign@^4.1.0, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== +object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" object-keys "^1.1.1" -object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: - version "2.1.3" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz#b223cf38e17fefb97a63c10c91df72ccb386df9e" - integrity sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw== +object.fromentries@^2.0.6: + version "2.0.7" + resolved "https://registry.npmmirror.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" + integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.2.0" + es-abstract "^1.22.1" -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= +object.getownpropertydescriptors@^2.0.3: + version "2.1.7" + resolved "https://registry.npmmirror.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz#7a466a356cd7da4ba8b9e94ff6d35c3eeab5d56a" + integrity sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g== dependencies: - isobject "^3.0.1" + array.prototype.reduce "^1.0.6" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + safe-array-concat "^1.0.0" -object.values@^1.1.0, object.values@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" - integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== +object.groupby@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" + integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" -omit.js@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/omit.js/-/omit.js-1.0.2.tgz#91a14f0eba84066dfa015bf30e474c47f30bc858" - integrity sha512-/QPc6G2NS+8d4L/cQhbk6Yit1WTB6Us2g84A7A/1+w9d/eRGHyEqC5kkQtHVoHZ5NFWGG7tUGgrhVZwgZanKrQ== +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.npmmirror.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== dependencies: - babel-runtime "^6.23.0" + isobject "^3.0.1" -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= +object.values@^1.1.6: + version "1.1.7" + resolved "https://registry.npmmirror.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" + integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + resolved "https://registry.npmmirror.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" onetime@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + resolved "https://registry.npmmirror.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== dependencies: mimic-fn "^1.0.0" onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + resolved "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" open@^6.3.0: version "6.4.0" - resolved "https://registry.yarnpkg.com/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9" + resolved "https://registry.npmmirror.com/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9" integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg== dependencies: is-wsl "^1.1.0" -opencollective-postinstall@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" - integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== - -opn@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" - integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== - dependencies: - is-wsl "^1.1.0" - opt-cli@1.5.1: version "1.5.1" - resolved "https://registry.yarnpkg.com/opt-cli/-/opt-cli-1.5.1.tgz#04db447b13c96b992eb31685266f4ed0d9736dc2" - integrity sha1-BNtEexPJa5kusxaFJm9O0NlzbcI= + resolved "https://registry.npmmirror.com/opt-cli/-/opt-cli-1.5.1.tgz#04db447b13c96b992eb31685266f4ed0d9736dc2" + integrity sha512-iRFQBiQjXZ+LX/8pis04prUhS6FOYcJiZRouofN3rUJEB282b/e0s3jp9vT7aHgXY6TUpgPwu12f0i+qF40Kjw== dependencies: commander "2.9.0" lodash.clone "4.3.2" manage-path "2.0.0" spawn-command "0.0.2-1" -optimize-css-assets-webpack-plugin@^5.0.1: - version "5.0.8" - resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.8.tgz#cbccdcf5a6ef61d4f8cc78cf083a67446e5f402a" - integrity sha512-mgFS1JdOtEGzD8l+EuISqL57cKO+We9GcoiQEmdCWRqqck+FGNmYJtx9qfAPzEz+lRrlThWMuGDaRkI/yWNx/Q== - dependencies: - cssnano "^4.1.10" - last-call-webpack-plugin "^3.0.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" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== +optionator@^0.9.3: + version "0.9.3" + resolved "https://registry.npmmirror.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: + "@aashutoshrathi/word-wrap" "^1.2.3" deep-is "^0.1.3" fast-levenshtein "^2.0.6" levn "^0.4.1" prelude-ls "^1.2.1" type-check "^0.4.0" - word-wrap "^1.2.3" ora@^1.3.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-1.4.0.tgz#884458215b3a5d4097592285f93321bb7a79e2e5" + resolved "https://registry.npmmirror.com/ora/-/ora-1.4.0.tgz#884458215b3a5d4097592285f93321bb7a79e2e5" integrity sha512-iMK1DOQxzzh2MBlVsU42G80mnrvUhqsMh74phHtDlrcTZPK0pH6o7l7DRshK+0YsxDyEuaOkziVdvM3T0QTzpw== dependencies: chalk "^2.1.0" @@ -11924,125 +9493,123 @@ ora@^1.3.0: cli-spinners "^1.0.1" log-symbols "^2.1.0" -original@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" - integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== +ora@^5.4.1: + version "5.4.1" + resolved "https://registry.npmmirror.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== dependencies: - url-parse "^1.4.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= + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" os-homedir@^1.0.0, os-homedir@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + resolved "https://registry.npmmirror.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + resolved "https://registry.npmmirror.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== osenv@^0.1.4: version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + resolved "https://registry.npmmirror.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - p-finally@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + resolved "https://registry.npmmirror.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== p-limit@^1.1.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + resolved "https://registry.npmmirror.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== dependencies: p-try "^1.0.0" -p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.1: +p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + resolved "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + resolved "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-locate@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + resolved "https://registry.npmmirror.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== dependencies: p-limit "^1.1.0" p-locate@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + resolved "https://registry.npmmirror.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== dependencies: p-limit "^2.0.0" p-locate@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + resolved "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: p-limit "^2.2.0" p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + resolved "https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" p-map-series@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map-series/-/p-map-series-2.1.0.tgz#7560d4c452d9da0c07e692fdbfe6e2c81a2a91f2" + resolved "https://registry.npmmirror.com/p-map-series/-/p-map-series-2.1.0.tgz#7560d4c452d9da0c07e692fdbfe6e2c81a2a91f2" integrity sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q== p-map@^1.1.1: version "1.2.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" + resolved "https://registry.npmmirror.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA== p-map@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + resolved "https://registry.npmmirror.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== p-map@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + resolved "https://registry.npmmirror.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== dependencies: aggregate-error "^3.0.0" p-pipe@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-3.1.0.tgz#48b57c922aa2e1af6a6404cb7c6bf0eb9cc8e60e" + resolved "https://registry.npmmirror.com/p-pipe/-/p-pipe-3.1.0.tgz#48b57c922aa2e1af6a6404cb7c6bf0eb9cc8e60e" integrity sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw== p-queue@^6.6.2: version "6.6.2" - resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" + resolved "https://registry.npmmirror.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== dependencies: eventemitter3 "^4.0.4" @@ -12050,63 +9617,46 @@ p-queue@^6.6.2: p-reduce@^2.0.0, p-reduce@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-2.1.0.tgz#09408da49507c6c274faa31f28df334bc712b64a" + resolved "https://registry.npmmirror.com/p-reduce/-/p-reduce-2.1.0.tgz#09408da49507c6c274faa31f28df334bc712b64a" integrity sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw== -p-retry@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" - integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== - dependencies: - retry "^0.12.0" - p-timeout@^3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + resolved "https://registry.npmmirror.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== dependencies: p-finally "^1.0.0" p-try@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + resolved "https://registry.npmmirror.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== p-try@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + resolved "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== p-waterfall@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/p-waterfall/-/p-waterfall-2.1.1.tgz#63153a774f472ccdc4eb281cdb2967fcf158b2ee" + resolved "https://registry.npmmirror.com/p-waterfall/-/p-waterfall-2.1.1.tgz#63153a774f472ccdc4eb281cdb2967fcf158b2ee" integrity sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw== dependencies: p-reduce "^2.0.0" package-json@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" - integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0= + resolved "https://registry.npmmirror.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" + integrity sha512-q/R5GrMek0vzgoomq6rm9OX+3PQve8sLwTirmK30YB3Cu0Bbt9OX9M/SIUnroN5BGJkzwGsFwDaRGD9EwBOlCA== dependencies: got "^6.7.1" registry-auth-token "^3.0.1" registry-url "^3.0.3" semver "^5.1.0" -package-json@^6.3.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" - integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== - dependencies: - got "^9.6.0" - registry-auth-token "^4.0.0" - registry-url "^5.0.0" - semver "^6.2.0" - pacote@^11.2.6: version "11.3.5" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-11.3.5.tgz#73cf1fc3772b533f575e39efa96c50be8c3dc9d2" + resolved "https://registry.npmmirror.com/pacote/-/pacote-11.3.5.tgz#73cf1fc3772b533f575e39efa96c50be8c3dc9d2" integrity sha512-fT375Yczn4zi+6Hkk2TBe1x1sP8FgFsEIZ2/iWaXY2r/NkhDJfxbcn5paz1+RTFCyNf+dPnaoBDJoAxXSU8Bkg== dependencies: "@npmcli/git" "^2.1.0" @@ -12131,7 +9681,7 @@ pacote@^11.2.6: pacote@^2.7.36: version "2.7.38" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-2.7.38.tgz#5091f8774298c26c3eca24606037f1bb73db74c1" + resolved "https://registry.npmmirror.com/pacote/-/pacote-2.7.38.tgz#5091f8774298c26c3eca24606037f1bb73db74c1" integrity sha512-XxHUyHQB7QCVBxoXeVu0yKxT+2PvJucsc0+1E+6f95lMUxEAYERgSAc71ckYXrYr35Ew3xFU/LrhdIK21GQFFA== dependencies: bluebird "^3.5.0" @@ -12156,30 +9706,18 @@ pacote@^2.7.36: unique-filename "^1.1.0" which "^1.2.12" -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - parallel-transform@^1.1.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + resolved "https://registry.npmmirror.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== dependencies: cyclist "^1.0.1" inherits "^2.0.3" readable-stream "^2.1.5" -param-case@2.1.x: - version "2.1.1" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" - integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= - dependencies: - no-case "^2.2.0" - param-case@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + resolved "https://registry.npmmirror.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== dependencies: dot-case "^3.0.4" @@ -12187,25 +9725,14 @@ param-case@^3.0.4: parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + resolved "https://registry.npmmirror.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" + resolved "https://registry.npmmirror.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== dependencies: character-entities "^1.0.0" @@ -12217,15 +9744,15 @@ parse-entities@^2.0.0: parse-git-config@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/parse-git-config/-/parse-git-config-0.2.0.tgz#272833fdd15fea146fb75d336d236b963b6ff706" - integrity sha1-Jygz/dFf6hRvt10zbSNrljtv9wY= + resolved "https://registry.npmmirror.com/parse-git-config/-/parse-git-config-0.2.0.tgz#272833fdd15fea146fb75d336d236b963b6ff706" + integrity sha512-amapZFADOJtHvX2URcRfbzG2OFcW+UAwmdK2kht2N2vsH5Py65VxI5yZTlD2DjmxVhTz6htFoVCxROYUJaYOXQ== dependencies: ini "^1.3.3" parse-git-config@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/parse-git-config/-/parse-git-config-1.1.1.tgz#d3a9984317132f57398712bba438e129590ddf8c" - integrity sha1-06mYQxcTL1c5hxK7pDjhKVkN34w= + resolved "https://registry.npmmirror.com/parse-git-config/-/parse-git-config-1.1.1.tgz#d3a9984317132f57398712bba438e129590ddf8c" + integrity sha512-S3LGXJZVSy/hswvbSkfdbKBRVsnqKrVu6j8fcvdtJ4TxosSELyQDsJPuGPXuZ+EyuYuJd3O4uAF8gcISR0OFrQ== dependencies: extend-shallow "^2.0.1" fs-exists-sync "^0.1.0" @@ -12234,15 +9761,15 @@ parse-git-config@^1.1.1: 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= + resolved "https://registry.npmmirror.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== 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" + resolved "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== dependencies: "@babel/code-frame" "^7.0.0" @@ -12252,18 +9779,18 @@ parse-json@^5.0.0: parse-node-version@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" + resolved "https://registry.npmmirror.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== parse-passwd@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + resolved "https://registry.npmmirror.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q== parse-path@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.3.tgz#82d81ec3e071dcc4ab49aa9f2c9c0b8966bb22bf" - integrity sha512-9Cepbp2asKnWTJ9x2kpw6Fe8y9JDbqwahGCTvklzd/cEq5C5JC59x2Xb0Kx+x0QZ8bvNquGO8/BWP0cwBHzSAA== + version "4.0.4" + resolved "https://registry.npmmirror.com/parse-path/-/parse-path-4.0.4.tgz#4bf424e6b743fb080831f03b536af9fc43f0ffea" + integrity sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw== dependencies: is-ssh "^1.3.0" protocols "^1.4.0" @@ -12271,28 +9798,25 @@ parse-path@^4.0.0: query-string "^6.13.8" parse-url@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-6.0.0.tgz#f5dd262a7de9ec00914939220410b66cff09107d" - integrity sha512-cYyojeX7yIIwuJzledIHeLUBVJ6COVLeT4eF+2P6aKVzwvgKQPndCBv3+yQ7pcWjqToYwaligxzSYNNmGoMAvw== + version "6.0.5" + resolved "https://registry.npmmirror.com/parse-url/-/parse-url-6.0.5.tgz#4acab8982cef1846a0f8675fa686cef24b2f6f9b" + integrity sha512-e35AeLTSIlkw/5GFq70IN7po8fmDUjpDPY1rIK+VubRfsUvBonjQ+PBZG+vWMACnQSmNlvl524IucoDmcioMxA== dependencies: is-ssh "^1.3.0" normalize-url "^6.1.0" parse-path "^4.0.0" protocols "^1.4.0" -parse5@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== +parse5@^7.1.1: + version "7.1.2" + resolved "https://registry.npmmirror.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" + integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== + dependencies: + entities "^4.4.0" pascal-case@^3.1.1, pascal-case@^3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + resolved "https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== dependencies: no-case "^3.0.4" @@ -12300,492 +9824,277 @@ pascal-case@^3.1.1, pascal-case@^3.1.2: pascalcase@^0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + resolved "https://registry.npmmirror.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== path-exists@3.0.0, path-exists@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + resolved "https://registry.npmmirror.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + resolved "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + resolved "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-is-inside@^1.0.1, path-is-inside@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + resolved "https://registry.npmmirror.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== 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= + resolved "https://registry.npmmirror.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== 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" + resolved "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6: +path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + resolved "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - path-type@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + resolved "https://registry.npmmirror.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== dependencies: pify "^3.0.0" path-type@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + resolved "https://registry.npmmirror.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" +pathval@^1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== performance-now@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -picocolors@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" - integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== + resolved "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== picocolors@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, 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== +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pify@^2.0.0, pify@^2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + resolved "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== pify@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + resolved "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== pify@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + resolved "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== pify@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" + resolved "https://registry.npmmirror.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== pinkie-promise@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + resolved "https://registry.npmmirror.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= - -pirates@^4.0.1: - version "4.0.4" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.4.tgz#07df81e61028e402735cdd49db701e4885b4e6e6" - integrity sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw== - -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= - dependencies: - find-up "^2.1.0" + resolved "https://registry.npmmirror.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== pkg-dir@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + resolved "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== dependencies: find-up "^3.0.0" pkg-dir@^4.1.0, pkg-dir@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + resolved "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" please-upgrade-node@^3.0.2: version "3.2.0" - resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" + resolved "https://registry.npmmirror.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== dependencies: semver-compare "^1.0.0" -portal-vue@^2.1.7: - version "2.1.7" - resolved "https://registry.yarnpkg.com/portal-vue/-/portal-vue-2.1.7.tgz#ea08069b25b640ca08a5b86f67c612f15f4e4ad4" - integrity sha512-+yCno2oB3xA7irTt0EU5Ezw22L2J51uKAacE/6hMPMoO/mx3h4rXFkkBkT4GFsMDv/vEe8TNKC3ujJJ0PTwb6g== - -portfinder@^1.0.13, portfinder@^1.0.26: - version "1.0.28" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" - integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== - dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.5" - posix-character-classes@^0.1.0: version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -postcss-calc@^7.0.1: - version "7.0.5" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" - integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== - dependencies: - postcss "^7.0.27" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" - -postcss-calc@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.0.0.tgz#a05b87aacd132740a5db09462a3612453e5df90a" - integrity sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g== - dependencies: - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" + resolved "https://registry.npmmirror.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== +postcss-calc@^8.2.3: + version "8.2.4" + resolved "https://registry.npmmirror.com/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5" + integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q== dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-selector-parser "^6.0.9" + postcss-value-parser "^4.2.0" -postcss-colormin@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.2.2.tgz#019cd6912bef9e7e0924462c5e4ffae241e2f437" - integrity sha512-tSEe3NpqWARUTidDlF0LntPkdlhXqfDFuA1yslqpvvGAfpZ7oBaw+/QXd935NKm2U9p4PED0HDZlzmMk7fVC6g== +postcss-colormin@^5.3.1: + version "5.3.1" + resolved "https://registry.npmmirror.com/postcss-colormin/-/postcss-colormin-5.3.1.tgz#86c27c26ed6ba00d96c79e08f3ffb418d1d1988f" + integrity sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ== dependencies: - browserslist "^4.16.6" + browserslist "^4.21.4" caniuse-api "^3.0.0" colord "^2.9.1" postcss-value-parser "^4.2.0" -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-convert-values@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.0.2.tgz#879b849dc3677c7d6bc94b6a2c1a3f0808798059" - integrity sha512-KQ04E2yadmfa1LqXm7UIDwW1ftxU/QWZmz6NKnHnUvJ3LEYbbcX6i329f/ig+WnEByHegulocXrECaZGLpL8Zg== - dependencies: - postcss-value-parser "^4.1.0" - -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" - -postcss-discard-comments@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz#9eae4b747cf760d31f2447c27f0619d5718901fe" - integrity sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg== - -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz#68f7cc6458fe6bab2e46c9f55ae52869f680e66d" - integrity sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA== - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz#ee136c39e27d5d2ed4da0ee5ed02bc8a9f8bf6d8" - integrity sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw== - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz#454b41f707300b98109a75005ca4ab0ff2743ac6" - integrity sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q== - -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-load-config@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.0.tgz#d39c47091c4aec37f50272373a6a648ef5e97829" - integrity sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g== +postcss-convert-values@^5.1.3: + version "5.1.3" + resolved "https://registry.npmmirror.com/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz#04998bb9ba6b65aa31035d669a6af342c5f9d393" + integrity sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA== dependencies: - import-cwd "^3.0.0" - lilconfig "^2.0.3" - yaml "^1.10.2" + browserslist "^4.21.4" + postcss-value-parser "^4.2.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== +postcss-csso@^6.0.0: + version "6.0.1" + resolved "https://registry.npmmirror.com/postcss-csso/-/postcss-csso-6.0.1.tgz#6a3e812e236fde6d710a525f2b63e6d9da5a5008" + integrity sha512-ZV4yEziMrx6CEiqabGLrDva0pMD7Fbw7yP+LzJvaynM4OJgTssGN6dHiMsJMJdpmNaLJltXVLsrb/5sxbFa8sA== dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" + csso "^5.0.5" -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" +postcss-discard-comments@^5.1.2: + version "5.1.2" + resolved "https://registry.npmmirror.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz#8df5e81d2925af2780075840c1526f0660e53696" + integrity sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ== -postcss-merge-longhand@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.4.tgz#41f4f3270282ea1a145ece078b7679f0cef21c32" - integrity sha512-2lZrOVD+d81aoYkZDpWu6+3dTAAGkCKbV5DoRhnIR7KOULVrI/R7bcMjhrH9KTRy6iiHKqmtG+n/MMj1WmqHFw== - dependencies: - postcss-value-parser "^4.1.0" - stylehacks "^5.0.1" +postcss-discard-duplicates@^5.1.0: + version "5.1.0" + resolved "https://registry.npmmirror.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848" + integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw== -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" +postcss-discard-empty@^5.1.1: + version "5.1.1" + resolved "https://registry.npmmirror.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz#e57762343ff7f503fe53fca553d18d7f0c369c6c" + integrity sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A== -postcss-merge-rules@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.3.tgz#b5cae31f53129812a77e3eb1eeee448f8cf1a1db" - integrity sha512-cEKTMEbWazVa5NXd8deLdCnXl+6cYG7m2am+1HzqH0EnTdy8fRysatkaXb2dEnR+fdaDxTvuZ5zoBdv6efF6hg== - dependencies: - browserslist "^4.16.6" - caniuse-api "^3.0.0" - cssnano-utils "^2.0.1" - postcss-selector-parser "^6.0.5" +postcss-discard-overridden@^5.1.0: + version "5.1.0" + resolved "https://registry.npmmirror.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e" + integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw== -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== +postcss-load-config@^3.0.0: + version "3.1.4" + resolved "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855" + integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg== dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + lilconfig "^2.0.5" + yaml "^1.10.2" -postcss-minify-font-values@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz#a90cefbfdaa075bd3dbaa1b33588bb4dc268addf" - integrity sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA== +postcss-merge-longhand@^5.1.7: + version "5.1.7" + resolved "https://registry.npmmirror.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz#24a1bdf402d9ef0e70f568f39bdc0344d568fb16" + integrity sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ== dependencies: - postcss-value-parser "^4.1.0" + postcss-value-parser "^4.2.0" + stylehacks "^5.1.1" -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== +postcss-merge-rules@^5.1.4: + version "5.1.4" + resolved "https://registry.npmmirror.com/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz#2f26fa5cacb75b1402e213789f6766ae5e40313c" + integrity sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g== dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + browserslist "^4.21.4" + caniuse-api "^3.0.0" + cssnano-utils "^3.1.0" + postcss-selector-parser "^6.0.5" -postcss-minify-gradients@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.3.tgz#f970a11cc71e08e9095e78ec3a6b34b91c19550e" - integrity sha512-Z91Ol22nB6XJW+5oe31+YxRsYooxOdFKcbOqY/V8Fxse1Y3vqlNRpi1cxCqoACZTQEhl+xvt4hsbWiV5R+XI9Q== +postcss-minify-font-values@^5.1.0: + version "5.1.0" + resolved "https://registry.npmmirror.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz#f1df0014a726083d260d3bd85d7385fb89d1f01b" + integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA== dependencies: - colord "^2.9.1" - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" + postcss-value-parser "^4.2.0" -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== +postcss-minify-gradients@^5.1.1: + version "5.1.1" + resolved "https://registry.npmmirror.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz#f1fe1b4f498134a5068240c2f25d46fcd236ba2c" + integrity sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw== dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" - -postcss-minify-params@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.0.2.tgz#1b644da903473fbbb18fbe07b8e239883684b85c" - integrity sha512-qJAPuBzxO1yhLad7h2Dzk/F7n1vPyfHfCCh5grjGfjhi1ttCnq4ZXGIW77GSrEbh9Hus9Lc/e/+tB4vh3/GpDg== - dependencies: - alphanum-sort "^1.0.2" - browserslist "^4.16.6" - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" + colord "^2.9.1" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== +postcss-minify-params@^5.1.4: + version "5.1.4" + resolved "https://registry.npmmirror.com/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz#c06a6c787128b3208b38c9364cfc40c8aa5d7352" + integrity sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw== dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" + browserslist "^4.21.4" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" -postcss-minify-selectors@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz#4385c845d3979ff160291774523ffa54eafd5a54" - integrity sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og== +postcss-minify-selectors@^5.2.1: + version "5.2.1" + resolved "https://registry.npmmirror.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz#d4e7e6b46147b8117ea9325a915a801d5fe656c6" + integrity sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg== dependencies: - alphanum-sort "^1.0.2" postcss-selector-parser "^6.0.5" -postcss-modules-extract-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== - dependencies: - postcss "^7.0.5" - postcss-modules-extract-imports@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + resolved "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== -postcss-modules-local-by-default@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz#dd9953f6dd476b5fd1ef2d8830c8929760b56e63" - integrity sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - postcss-value-parser "^3.3.1" - postcss-modules-local-by-default@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" - integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== + version "4.0.3" + resolved "https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz#b08eb4f083050708998ba2c6061b50c2870ca524" + integrity sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA== dependencies: icss-utils "^5.0.0" postcss-selector-parser "^6.0.2" postcss-value-parser "^4.1.0" -postcss-modules-scope@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" - integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - postcss-modules-scope@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + resolved "https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== dependencies: postcss-selector-parser "^6.0.4" -postcss-modules-values@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz#479b46dc0c5ca3dc7fa5270851836b9ec7152f64" - integrity sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w== - dependencies: - icss-replace-symbols "^1.1.0" - postcss "^7.0.6" - postcss-modules-values@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + resolved "https://registry.npmmirror.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== dependencies: icss-utils "^5.0.0" postcss-modules@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-4.3.0.tgz#1cb32f16a8cfffe2b989598f8135eb6427106ec7" - integrity sha512-zoUttLDSsbWDinJM9jH37o7hulLRyEgH6fZm2PchxN7AZ8rkdWiALyNhnQ7+jg7cX9f10m6y5VhHsrjO0Mf/DA== + version "4.3.1" + resolved "https://registry.npmmirror.com/postcss-modules/-/postcss-modules-4.3.1.tgz#517c06c09eab07d133ae0effca2c510abba18048" + integrity sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q== dependencies: generic-names "^4.0.0" icss-replace-symbols "^1.1.0" @@ -12796,354 +10105,154 @@ postcss-modules@^4.0.0: postcss-modules-values "^4.0.0" string-hash "^1.1.1" -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== - dependencies: - postcss "^7.0.0" - -postcss-normalize-charset@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz#121559d1bebc55ac8d24af37f67bd4da9efd91d0" - integrity sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg== - -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-display-values@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz#62650b965981a955dffee83363453db82f6ad1fd" - integrity sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ== - dependencies: - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" - -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-positions@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz#868f6af1795fdfa86fbbe960dceb47e5f9492fe5" - integrity sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg== - dependencies: - postcss-value-parser "^4.1.0" - -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz#cbc0de1383b57f5bb61ddd6a84653b5e8665b2b5" - integrity sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w== - dependencies: - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" - -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" +postcss-normalize-charset@^5.1.0: + version "5.1.0" + resolved "https://registry.npmmirror.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed" + integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg== -postcss-normalize-string@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz#d9eafaa4df78c7a3b973ae346ef0e47c554985b0" - integrity sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA== +postcss-normalize-display-values@^5.1.0: + version "5.1.0" + resolved "https://registry.npmmirror.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz#72abbae58081960e9edd7200fcf21ab8325c3da8" + integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA== dependencies: - postcss-value-parser "^4.1.0" + postcss-value-parser "^4.2.0" -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== +postcss-normalize-positions@^5.1.1: + version "5.1.1" + resolved "https://registry.npmmirror.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz#ef97279d894087b59325b45c47f1e863daefbb92" + integrity sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg== dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-value-parser "^4.2.0" -postcss-normalize-timing-functions@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz#8ee41103b9130429c6cbba736932b75c5e2cb08c" - integrity sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q== +postcss-normalize-repeat-style@^5.1.1: + version "5.1.1" + resolved "https://registry.npmmirror.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz#e9eb96805204f4766df66fd09ed2e13545420fb2" + integrity sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g== dependencies: - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" + postcss-value-parser "^4.2.0" -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== +postcss-normalize-string@^5.1.0: + version "5.1.0" + resolved "https://registry.npmmirror.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz#411961169e07308c82c1f8c55f3e8a337757e228" + integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w== dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-value-parser "^4.2.0" -postcss-normalize-unicode@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz#82d672d648a411814aa5bf3ae565379ccd9f5e37" - integrity sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA== +postcss-normalize-timing-functions@^5.1.0: + version "5.1.0" + resolved "https://registry.npmmirror.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz#d5614410f8f0b2388e9f240aa6011ba6f52dafbb" + integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg== dependencies: - browserslist "^4.16.0" - postcss-value-parser "^4.1.0" + postcss-value-parser "^4.2.0" -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== +postcss-normalize-unicode@^5.1.1: + version "5.1.1" + resolved "https://registry.npmmirror.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz#f67297fca3fea7f17e0d2caa40769afc487aa030" + integrity sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA== dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + browserslist "^4.21.4" + postcss-value-parser "^4.2.0" -postcss-normalize-url@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.0.4.tgz#3b0322c425e31dd275174d0d5db0e466f50810fb" - integrity sha512-cNj3RzK2pgQQyNp7dzq0dqpUpQ/wYtdDZM3DepPmFjCmYIfceuD9VIAcOdvrNetjIU65g1B4uwdP/Krf6AFdXg== +postcss-normalize-url@^5.1.0: + version "5.1.0" + resolved "https://registry.npmmirror.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz#ed9d88ca82e21abef99f743457d3729a042adcdc" + integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew== dependencies: normalize-url "^6.0.1" postcss-value-parser "^4.2.0" -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-whitespace@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz#b0b40b5bcac83585ff07ead2daf2dcfbeeef8e9a" - integrity sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA== - dependencies: - postcss-value-parser "^4.1.0" - -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-ordered-values@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.0.2.tgz#1f351426977be00e0f765b3164ad753dac8ed044" - integrity sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ== +postcss-normalize-whitespace@^5.1.1: + version "5.1.1" + resolved "https://registry.npmmirror.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz#08a1a0d1ffa17a7cc6efe1e6c9da969cc4493cfa" + integrity sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA== dependencies: - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" + postcss-value-parser "^4.2.0" -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== +postcss-ordered-values@^5.1.3: + version "5.1.3" + resolved "https://registry.npmmirror.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz#b6fd2bd10f937b23d86bc829c69e7732ce76ea38" + integrity sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ== dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" -postcss-reduce-initial@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.0.2.tgz#fa424ce8aa88a89bc0b6d0f94871b24abe94c048" - integrity sha512-v/kbAAQ+S1V5v9TJvbGkV98V2ERPdU6XvMcKMjqAlYiJ2NtsHGlKYLPjWWcXlaTKNxooId7BGxeraK8qXvzKtw== +postcss-reduce-initial@^5.1.2: + version "5.1.2" + resolved "https://registry.npmmirror.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz#798cd77b3e033eae7105c18c9d371d989e1382d6" + integrity sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg== dependencies: - browserslist "^4.16.6" + browserslist "^4.21.4" caniuse-api "^3.0.0" -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-reduce-transforms@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz#93c12f6a159474aa711d5269923e2383cedcf640" - integrity sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA== - dependencies: - cssnano-utils "^2.0.1" - postcss-value-parser "^4.1.0" - -postcss-safe-parser@^4.0.1: - 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-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" - integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== +postcss-reduce-transforms@^5.1.0: + version "5.1.0" + resolved "https://registry.npmmirror.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz#333b70e7758b802f3dd0ddfe98bb1ccfef96b6e9" + integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ== dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" + postcss-value-parser "^4.2.0" -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5: - version "6.0.8" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.8.tgz#f023ed7a9ea736cd7ef70342996e8e78645a7914" - integrity sha512-D5PG53d209Z1Uhcc0qAZ5U3t5HagH3cxu+WLZ22jt3gLUpXM4eXXfiO14jiDWST3NNooX/E8wISfOhZ9eIjGTQ== +postcss-selector-parser@^6.0.13, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: + version "6.0.13" + resolved "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" + integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-svgo@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" - integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" - -postcss-svgo@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.0.3.tgz#d945185756e5dfaae07f9edb0d3cae7ff79f9b30" - integrity sha512-41XZUA1wNDAZrQ3XgWREL/M2zSw8LJPvb5ZWivljBsUQAGoEKMYm6okHsTjJxKYI4M75RQEH4KYlEM52VwdXVA== +postcss-svgo@^5.1.0: + version "5.1.0" + resolved "https://registry.npmmirror.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d" + integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA== dependencies: - postcss-value-parser "^4.1.0" + postcss-value-parser "^4.2.0" svgo "^2.7.0" -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== - dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss-unique-selectors@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.0.2.tgz#5d6893daf534ae52626708e0d62250890108c0c1" - integrity sha512-w3zBVlrtZm7loQWRPVC0yjUwwpty7OM6DnEHkxcSQXO1bMS3RJ+JUS5LFMSDZHJcvGsRwhZinCWVqn8Kej4EDA== +postcss-unique-selectors@^5.1.1: + version "5.1.1" + resolved "https://registry.npmmirror.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz#a9f273d1eacd09e9aa6088f4b0507b18b1b541b6" + integrity sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA== dependencies: - alphanum-sort "^1.0.2" postcss-selector-parser "^6.0.5" -postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: +postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + resolved "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.36, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.39" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" - integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== - dependencies: - picocolors "^0.2.1" - source-map "^0.6.1" - -postcss@^8.3.11: - version "8.4.5" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.5.tgz#bae665764dfd4c6fcc24dc0fdf7e7aa00cc77f95" - integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg== +postcss@^8.1.10, postcss@^8.4.12, postcss@^8.4.13, postcss@^8.4.27: + version "8.4.30" + resolved "https://registry.npmmirror.com/postcss/-/postcss-8.4.30.tgz#0e0648d551a606ef2192a26da4cabafcc09c1aa7" + integrity sha512-7ZEao1g4kd68l97aWG/etQKPKq07us0ieSZ2TnFDk11i0ZfDW2AwKHYU8qv4MZKqN2fdBfg+7q0ES06UA73C1g== dependencies: - nanoid "^3.1.30" + nanoid "^3.3.6" picocolors "^1.0.0" - source-map-js "^1.0.1" + source-map-js "^1.0.2" prelude-ls@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + resolved "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - prepend-http@^1.0.1: version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + resolved "https://registry.npmmirror.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg== prettier-linter-helpers@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + resolved "https://registry.npmmirror.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== dependencies: fast-diff "^1.1.2" -"prettier@^1.18.2 || ^2.0.0", prettier@^2.2.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a" - integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== - -pretty-error@^2.0.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" - integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== - dependencies: - lodash "^4.17.20" - renderkid "^2.0.4" - -pretty-format@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" - integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== - dependencies: - "@jest/types" "^26.6.2" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^17.0.1" - -pretty-format@^27.0.0, pretty-format@^27.4.2: - version "27.4.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.4.2.tgz#e4ce92ad66c3888423d332b40477c87d1dac1fb8" - integrity sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw== - dependencies: - "@jest/types" "^27.4.2" - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^17.0.1" +prettier@^2.2.1: + version "2.8.8" + resolved "https://registry.npmmirror.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== pretty-quick@^3.1.0: version "3.1.3" - resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-3.1.3.tgz#15281108c0ddf446675157ca40240099157b638e" + resolved "https://registry.npmmirror.com/pretty-quick/-/pretty-quick-3.1.3.tgz#15281108c0ddf446675157ca40240099157b638e" integrity sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA== dependencies: chalk "^3.0.0" @@ -13153,56 +10262,32 @@ pretty-quick@^3.1.0: mri "^1.1.5" multimatch "^4.0.0" -pretty-time@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" - integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== - -pretty@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pretty/-/pretty-2.0.0.tgz#adbc7960b7bbfe289a557dc5f737619a220d06a5" - integrity sha1-rbx5YLe7/iiaVX3F9zdhmiINBqU= - dependencies: - condense-newlines "^0.2.1" - extend-shallow "^2.0.1" - js-beautify "^1.6.12" - -prismjs@^1.13.0: - version "1.25.0" - resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.25.0.tgz#6f822df1bdad965734b310b315a23315cf999756" - integrity sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg== +prismjs@^1.27.0: + version "1.29.0" + resolved "https://registry.npmmirror.com/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12" + integrity sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q== 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" + resolved "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - promise-inflight@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + resolved "https://registry.npmmirror.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== promise-retry@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d" - integrity sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0= + resolved "https://registry.npmmirror.com/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d" + integrity sha512-StEy2osPr28o17bIW776GtwO6+Q+M9zPiZkYfosciUUMYqjhU/ffwRAH0zN2+uvGyUsn8/YICIHRzLbPacpZGw== dependencies: err-code "^1.0.0" retry "^0.10.0" promise-retry@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + resolved "https://registry.npmmirror.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== dependencies: err-code "^2.0.2" @@ -13210,91 +10295,68 @@ promise-retry@^2.0.1: promise.series@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/promise.series/-/promise.series-0.2.0.tgz#2cc7ebe959fc3a6619c04ab4dbdc9e452d864bbd" - integrity sha1-LMfr6Vn8OmYZwEq029yeRS2GS70= + resolved "https://registry.npmmirror.com/promise.series/-/promise.series-0.2.0.tgz#2cc7ebe959fc3a6619c04ab4dbdc9e452d864bbd" + integrity sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ== promise@~7.0.1: version "7.0.4" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.0.4.tgz#363e84a4c36c8356b890fed62c91ce85d02ed539" - integrity sha1-Nj6EpMNsg1a4kP7WLJHOhdAu1Tk= + resolved "https://registry.npmmirror.com/promise/-/promise-7.0.4.tgz#363e84a4c36c8356b890fed62c91ce85d02ed539" + integrity sha512-8z1gTSL9cMgqCx8zvMYhzT0eQURAQNSQqR8B2hGfCYkAzt1vjReVdKBv4YwGw3OXAPaxfm4aR0gLoBUon4VmmA== dependencies: asap "~2.0.3" -prompts@^2.0.1, prompts@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - promzard@^0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" - integrity sha1-JqXW7ox97kyxIggwWs+5O6OCqe4= + resolved "https://registry.npmmirror.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" + integrity sha512-JZeYqd7UAcHCwI+sTOeUDYkvEU+1bQ7iE0UT1MgB/tERkAPkesW46MrpIySzODi+owTjZtiF8Ay5j9m60KmMBw== dependencies: read "1" property-expr@^1.5.0: version "1.5.1" - resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-1.5.1.tgz#22e8706894a0c8e28d58735804f6ba3a3673314f" + resolved "https://registry.npmmirror.com/property-expr/-/property-expr-1.5.1.tgz#22e8706894a0c8e28d58735804f6ba3a3673314f" integrity sha512-CGuc0VUTGthpJXL36ydB6jnbyOf/rAHFvmVrJlH+Rg0DqqLFQGAP6hIaxD/G0OAmBJPhXDHuEJigrp0e0wFV6g== proto-list@~1.2.1: version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + resolved "https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== -protocols@^1.1.0, protocols@^1.4.0: +protocols@^1.4.0: version "1.4.8" - resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8" + resolved "https://registry.npmmirror.com/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8" integrity sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg== +protocols@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" + integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== + protoduck@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/protoduck/-/protoduck-4.0.0.tgz#fe4874d8c7913366cfd9ead12453a22cd3657f8e" - integrity sha1-/kh02MeRM2bP2erRJFOiLNNlf44= + resolved "https://registry.npmmirror.com/protoduck/-/protoduck-4.0.0.tgz#fe4874d8c7913366cfd9ead12453a22cd3657f8e" + integrity sha512-9sxuz0YTU/68O98xuDn8NBxTVH9EuMhrBTxZdiBL0/qxRmWhB/5a8MagAebDa+98vluAZTs8kMZibCdezbRCeQ== dependencies: genfun "^4.0.1" -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - 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= + resolved "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== pseudomap@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + resolved "https://registry.npmmirror.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== psl@^1.1.28, 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" + version "1.9.0" + resolved "https://registry.npmmirror.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== pump@^1.0.0: version "1.0.3" - resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" + resolved "https://registry.npmmirror.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" integrity sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw== dependencies: end-of-stream "^1.1.0" @@ -13302,7 +10364,7 @@ pump@^1.0.0: pump@^2.0.0, pump@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + resolved "https://registry.npmmirror.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== dependencies: end-of-stream "^1.1.0" @@ -13310,7 +10372,7 @@ pump@^2.0.0, pump@^2.0.1: pump@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + resolved "https://registry.npmmirror.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" @@ -13318,69 +10380,38 @@ pump@^3.0.0: pumpify@^1.3.3: version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + resolved "https://registry.npmmirror.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== dependencies: duplexify "^3.6.0" inherits "^2.0.3" pump "^2.0.0" -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - punycode@^2.1.0, 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== - -pupa@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" - integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== - dependencies: - escape-goat "^2.0.0" + version "2.3.0" + resolved "https://registry.npmmirror.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== -q@^1.1.2, q@^1.5.1: +q@^1.5.1: version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - -qs@6.9.6: - version "6.9.6" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.6.tgz#26ed3c8243a431b2924aca84cc90471f35d5a0ee" - integrity sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ== + resolved "https://registry.npmmirror.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== qs@^6.9.4: - version "6.10.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.2.tgz#c1431bea37fc5b24c5bdbafa20f16bdf2a4b9ffe" - integrity sha512-mSIdjzqznWgfd4pMii7sHtaYF8rx8861hBO80SraY5GT0XQibWZWJSid0avzHGkDIZLImux2S5mXO0Hfct2QCw== + version "6.11.2" + resolved "https://registry.npmmirror.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" + integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== dependencies: side-channel "^1.0.4" qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" + version "6.5.3" + resolved "https://registry.npmmirror.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== query-string@^6.13.8: version "6.14.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" + resolved "https://registry.npmmirror.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw== dependencies: decode-uri-component "^0.2.0" @@ -13388,86 +10419,38 @@ query-string@^6.13.8: split-on-first "^1.0.0" strict-uri-encode "^2.0.0" -querystring-es3@^0.2.0, querystring-es3@^0.2.1: - 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= - querystringify@^2.1.1: version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + resolved "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== queue-microtask@^1.2.2: version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + resolved "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== queue@6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/queue/-/queue-6.0.1.tgz#abd5a5b0376912f070a25729e0b6a7d565683791" + resolved "https://registry.npmmirror.com/queue/-/queue-6.0.1.tgz#abd5a5b0376912f070a25729e0b6a7d565683791" integrity sha512-AJBQabRCCNr9ANq8v77RJEv73DPbn55cdTb+Giq4X0AVnNVZvMHlYp7XlQiN+1npCZj1DuSmaA2hYVUUDgxFDg== dependencies: inherits "~2.0.3" quick-lru@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" + resolved "https://registry.npmmirror.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== -raf@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" - integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== - dependencies: - performance-now "^2.1.0" - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: +randombytes@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + resolved "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.2.tgz#baf3e9c21eebced59dd6533ac872b71f7b61cb32" - integrity sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ== - dependencies: - bytes "3.1.1" - http-errors "1.8.1" - iconv-lite "0.4.24" - unpipe "1.0.0" - -raw-loader@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.2.tgz#1aac6b7d1ad1501e66efdac1522c73e59a584eb6" - integrity sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - -rc@^1.0.1, rc@^1.1.6, rc@^1.2.8: +rc@^1.0.1, rc@^1.1.6: version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + resolved "https://registry.npmmirror.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== dependencies: deep-extend "^0.6.0" @@ -13475,19 +10458,14 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.2.8: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - read-cmd-shim@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz#4a50a71d6f0965364938e9038476f7eede3928d9" + resolved "https://registry.npmmirror.com/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz#4a50a71d6f0965364938e9038476f7eede3928d9" integrity sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw== read-package-json-fast@^2.0.1: version "2.0.3" - resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz#323ca529630da82cb34b36cc0b996693c98c2b83" + resolved "https://registry.npmmirror.com/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz#323ca529630da82cb34b36cc0b996693c98c2b83" integrity sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ== dependencies: json-parse-even-better-errors "^2.3.0" @@ -13495,7 +10473,7 @@ read-package-json-fast@^2.0.1: read-package-json@^2.0.0: version "2.1.2" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.1.2.tgz#6992b2b66c7177259feb8eaac73c3acd28b9222a" + resolved "https://registry.npmmirror.com/read-package-json/-/read-package-json-2.1.2.tgz#6992b2b66c7177259feb8eaac73c3acd28b9222a" integrity sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA== dependencies: glob "^7.1.1" @@ -13505,7 +10483,7 @@ read-package-json@^2.0.0: read-package-json@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-3.0.1.tgz#c7108f0b9390257b08c21e3004d2404c806744b9" + resolved "https://registry.npmmirror.com/read-package-json/-/read-package-json-3.0.1.tgz#c7108f0b9390257b08c21e3004d2404c806744b9" integrity sha512-aLcPqxovhJTVJcsnROuuzQvv6oziQx4zd3JvG0vGCL5MjTONUc4uJ90zCBC6R7W7oUKBNoR/F8pkyfVwlbxqng== dependencies: glob "^7.1.1" @@ -13514,9 +10492,9 @@ read-package-json@^3.0.0: npm-normalize-package-bin "^1.0.0" read-package-json@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-4.1.1.tgz#153be72fce801578c1c86b8ef2b21188df1b9eea" - integrity sha512-P82sbZJ3ldDrWCOSKxJT0r/CXMWR0OR3KRh55SgKo3p91GSIEEC32v3lSHAvO/UcH3/IoL7uqhOFBduAnwdldw== + version "4.1.2" + resolved "https://registry.npmmirror.com/read-package-json/-/read-package-json-4.1.2.tgz#b444d047de7c75d4a160cb056d00c0693c1df703" + integrity sha512-Dqer4pqzamDE2O4M55xp1qZMuLPqi4ldk2ya648FOMHRjwMzFhuxVrG04wd0c38IsvkVdr3vgHI6z+QTPdAjrQ== dependencies: glob "^7.1.1" json-parse-even-better-errors "^2.3.0" @@ -13525,7 +10503,7 @@ read-package-json@^4.1.1: read-package-tree@^5.3.1: version "5.3.1" - resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.3.1.tgz#a32cb64c7f31eb8a6f31ef06f9cedf74068fe636" + resolved "https://registry.npmmirror.com/read-package-tree/-/read-package-tree-5.3.1.tgz#a32cb64c7f31eb8a6f31ef06f9cedf74068fe636" integrity sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw== dependencies: read-package-json "^2.0.0" @@ -13534,15 +10512,15 @@ read-package-tree@^5.3.1: read-pkg-up@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= + resolved "https://registry.npmmirror.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw== dependencies: find-up "^2.0.0" read-pkg "^3.0.0" read-pkg-up@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + resolved "https://registry.npmmirror.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== dependencies: find-up "^4.1.0" @@ -13551,8 +10529,8 @@ read-pkg-up@^7.0.1: read-pkg@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= + resolved "https://registry.npmmirror.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== dependencies: load-json-file "^4.0.0" normalize-package-data "^2.3.2" @@ -13560,7 +10538,7 @@ read-pkg@^3.0.0: read-pkg@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + resolved "https://registry.npmmirror.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== dependencies: "@types/normalize-package-data" "^2.4.0" @@ -13570,15 +10548,15 @@ read-pkg@^5.2.0: read@1, read@~1.0.1: version "1.0.7" - resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" - integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ= + resolved "https://registry.npmmirror.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" + integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ== dependencies: mute-stream "~0.0.4" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.8" + resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -13588,10 +10566,10 @@ read@1, read@~1.0.1: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.0.6, 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== +readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" @@ -13599,7 +10577,7 @@ readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stre readdir-scoped-modules@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" + resolved "https://registry.npmmirror.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== dependencies: debuglog "^1.0.1" @@ -13607,188 +10585,133 @@ readdir-scoped-modules@^1.0.0: graceful-fs "^4.1.2" once "^1.3.0" -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + resolved "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" redent@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + resolved "https://registry.npmmirror.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== dependencies: indent-string "^4.0.0" strip-indent "^3.0.0" -reduce@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/reduce/-/reduce-1.0.2.tgz#0cd680ad3ffe0b060e57a5c68bdfce37168d361b" - integrity sha512-xX7Fxke/oHO5IfZSk77lvPa/7bjMh9BuCk4OOoX5XTXrM7s0Z+MkPfSDfz0q7r91BhhGSs8gii/VEN/7zhCPpQ== - dependencies: - object-keys "^1.1.0" - -regenerate-unicode-properties@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz#54d09c7115e1f53dc2314a974b32c1c344efe326" - integrity sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA== +regenerate-unicode-properties@^10.1.0: + version "10.1.1" + resolved "https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" + integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== dependencies: regenerate "^1.4.2" regenerate@^1.4.2: version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + resolved "https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== +regenerator-runtime@^0.13.9: + version "0.13.11" + resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== -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== +regenerator-runtime@^0.14.0: + version "0.14.0" + resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" + integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== -regenerator-transform@^0.14.2: - version "0.14.5" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" - integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== dependencies: "@babel/runtime" "^7.8.4" regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + resolved "https://registry.npmmirror.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== dependencies: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp.prototype.flags@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" - integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== +regexp.prototype.flags@^1.5.1: + version "1.5.1" + resolved "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" + integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" + define-properties "^1.2.0" + set-function-name "^2.0.0" -regexpp@^3.0.0, regexpp@^3.1.0: +regexpp@^3.0.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + resolved "https://registry.npmmirror.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -regexpu-core@^4.7.1: - version "4.8.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.8.0.tgz#e5605ba361b67b1718478501327502f4479a98f0" - integrity sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg== +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.npmmirror.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== dependencies: + "@babel/regjsgen" "^0.8.0" regenerate "^1.4.2" - regenerate-unicode-properties "^9.0.0" - regjsgen "^0.5.2" - regjsparser "^0.7.0" + regenerate-unicode-properties "^10.1.0" + regjsparser "^0.9.1" unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" registry-auth-token@^3.0.1: version "3.4.0" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" + resolved "https://registry.npmmirror.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" integrity sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A== dependencies: rc "^1.1.6" safe-buffer "^5.0.1" -registry-auth-token@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" - integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== - dependencies: - rc "^1.2.8" - registry-url@^3.0.3: version "3.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" - integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= + resolved "https://registry.npmmirror.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + integrity sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA== dependencies: rc "^1.0.1" -registry-url@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" - integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== - dependencies: - rc "^1.2.8" - -regjsgen@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" - integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== - -regjsparser@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.7.0.tgz#a6b667b54c885e18b52554cb4960ef71187e9968" - integrity sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ== +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== dependencies: jsesc "~0.5.0" -relateurl@0.2.x: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= - remote-origin-url@^0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/remote-origin-url/-/remote-origin-url-0.4.0.tgz#4d3e2902f34e2d37d1c263d87710b77eb4086a30" - integrity sha1-TT4pAvNOLTfRwmPYdxC3frQIajA= + resolved "https://registry.npmmirror.com/remote-origin-url/-/remote-origin-url-0.4.0.tgz#4d3e2902f34e2d37d1c263d87710b77eb4086a30" + integrity sha512-HYhdsT2pNd0LP4Osb0vtQ1iassxIc3Yk1oze7j8dMJFciMkW8e0rdg9E/mOunqtSVHSzvMfwLDIYzPnEDmpk6Q== dependencies: parse-git-config "^0.2.0" remote-origin-url@^0.5.1: version "0.5.3" - resolved "https://registry.yarnpkg.com/remote-origin-url/-/remote-origin-url-0.5.3.tgz#b9fc6ced2c826690d0b07218b2b8c17fcec88e87" + resolved "https://registry.npmmirror.com/remote-origin-url/-/remote-origin-url-0.5.3.tgz#b9fc6ced2c826690d0b07218b2b8c17fcec88e87" integrity sha512-crQ7Xk1m/F2IiwBx5oTqk/c0hjoumrEz+a36+ZoVupskQRE/q7pAwHKsTNeiZ31sbSTELvVlVv4h1W0Xo5szKg== dependencies: parse-git-config "^1.1.1" -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -renderkid@^2.0.4: - version "2.0.7" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" - integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== - dependencies: - css-select "^4.1.3" - dom-converter "^0.2.0" - htmlparser2 "^6.1.0" - lodash "^4.17.21" - strip-ansi "^3.0.1" - repeat-element@^1.1.2: version "1.1.4" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + resolved "https://registry.npmmirror.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== repeat-string@^1.6.1: version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + resolved "https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== -request@^2.87.0, request@^2.88.0, request@^2.88.2: +request@^2.88.0, request@^2.88.2: version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + resolved "https://registry.npmmirror.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== dependencies: aws-sign2 "~0.7.0" @@ -13812,116 +10735,93 @@ request@^2.87.0, request@^2.88.0, request@^2.88.2: tunnel-agent "^0.6.0" uuid "^3.3.2" -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== +requestidlecallback@^0.3.0: + version "0.3.0" + resolved "https://registry.npmmirror.com/requestidlecallback/-/requestidlecallback-0.3.0.tgz#6fb74e0733f90df3faa4838f9f6a2a5f9b742ac5" + integrity sha512-TWHFkT7S9p7IxLC5A1hYmAYQx2Eb9w1skrXmQ+dS1URyvR8tenMLl4lHbqEOUnpEYxNKpkVMXUgknVpBZWXXfQ== -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== requires-port@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + resolved "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== 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" + resolved "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: - resolve-from "^3.0.0" - resolve-cwd@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + resolved "https://registry.npmmirror.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== dependencies: resolve-from "^5.0.0" resolve-dir@^0.1.0: version "0.1.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e" - integrity sha1-shklmlYC+sXFxJatiUpujMQwJh4= + resolved "https://registry.npmmirror.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e" + integrity sha512-QxMPqI6le2u0dCLyiGzgy92kjkkL6zO0XyvHzjdTNH3zM6e5Hz3BwG6+aEyNgiQ5Xz6PwTwgQEj3U50dByPKIA== dependencies: expand-tilde "^1.2.2" global-modules "^0.2.3" resolve-from@5.0.0, resolve-from@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + resolved "https://registry.npmmirror.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== 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= + resolved "https://registry.npmmirror.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + resolved "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-global@1.0.0, resolve-global@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-global/-/resolve-global-1.0.0.tgz#a2a79df4af2ca3f49bf77ef9ddacd322dad19255" + resolved "https://registry.npmmirror.com/resolve-global/-/resolve-global-1.0.0.tgz#a2a79df4af2ca3f49bf77ef9ddacd322dad19255" integrity sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw== dependencies: global-dirs "^0.1.1" resolve-url@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve.exports@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" - integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== + resolved "https://registry.npmmirror.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== -resolve@1.20.0, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.2.0, resolve@^1.20.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== +resolve@^1.10.0, resolve@^1.10.1, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.22.0, resolve@^1.22.1, resolve@^1.22.4: + version "1.22.6" + resolved "https://registry.npmmirror.com/resolve/-/resolve-1.22.6.tgz#dd209739eca3aef739c626fea1b4f3c506195362" + integrity sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw== dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" resolve@~1.1.6: version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= - -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: - lowercase-keys "^1.0.0" + resolved "https://registry.npmmirror.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg== restore-cursor@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + resolved "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== dependencies: onetime "^2.0.0" signal-exit "^3.0.2" restore-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + resolved "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== dependencies: onetime "^5.1.0" @@ -13929,101 +10829,79 @@ restore-cursor@^3.1.0: ret@~0.1.10: version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + resolved "https://registry.npmmirror.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== retry@^0.10.0: version "0.10.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" - integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= + resolved "https://registry.npmmirror.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" + integrity sha512-ZXUSQYTHdl3uS7IuCehYfMzKyIDBNoAuUblvy5oGO5UJSUTmStUUVPXbA9Qxd173Bgre53yCQczQuHgRWAdvJQ== retry@^0.12.0: version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + resolved "https://registry.npmmirror.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== reusify@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + resolved "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= - rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + resolved "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" -rimraf@^3.0.0, rimraf@^3.0.2: +rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + resolved "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -rollup-plugin-dts@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/rollup-plugin-dts/-/rollup-plugin-dts-2.0.1.tgz#333f50a637e199a073d490b198746f3c6bd07701" - integrity sha512-y38NSXIY37YExCumbGBTL5dXg7pL7XD+Kbe98iEHWFN9yiKJf7t4kKBOkml5ylUDjQIXBnNClGDeRktc1T5dmA== +rollup-plugin-dts@^5.3.0: + version "5.3.1" + resolved "https://registry.npmmirror.com/rollup-plugin-dts/-/rollup-plugin-dts-5.3.1.tgz#c2841269a3a5cb986b7791b0328e6a178eba108f" + integrity sha512-gusMi+Z4gY/JaEQeXnB0RUdU82h1kF0WYzCWgVmV4p3hWXqelaKuCvcJawfeg+EKn2T1Ie+YWF2OiN1/L8bTVg== dependencies: - magic-string "^0.25.7" + magic-string "^0.30.2" optionalDependencies: - "@babel/code-frame" "^7.10.4" + "@babel/code-frame" "^7.22.5" -rollup-plugin-external-globals@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/rollup-plugin-external-globals/-/rollup-plugin-external-globals-0.6.1.tgz#861c260b5727144e0fd1b424b103f9f0282fc365" - integrity sha512-mlp3KNa5sE4Sp9UUR2rjBrxjG79OyZAh/QC18RHIjM+iYkbBwNXSo8DHRMZWtzJTrH8GxQ+SJvCTN3i14uMXIA== +rollup-plugin-external-globals@^0.7.3: + version "0.7.3" + resolved "https://registry.npmmirror.com/rollup-plugin-external-globals/-/rollup-plugin-external-globals-0.7.3.tgz#da5455fd7b26e469dc746c88549e958b8e67295c" + integrity sha512-rOxtHUyIYR06kV2H5xhxIjbmdfQ7YGw/LUPFzxi9qwUqTqnbBUbZlVpkc5hs13b8KVO20Zkb+LzT2TGpJgRaIg== dependencies: - "@rollup/pluginutils" "^4.0.0" - estree-walker "^2.0.1" - is-reference "^1.2.1" - magic-string "^0.25.7" + "@rollup/pluginutils" "^5.0.2" + estree-walker "^3.0.1" + is-reference "^3.0.0" + magic-string "^0.26.7" rollup-plugin-ignore-import@^1.3.2: version "1.3.2" - resolved "https://registry.yarnpkg.com/rollup-plugin-ignore-import/-/rollup-plugin-ignore-import-1.3.2.tgz#5379eac73d2c7e389ebeb5b3a90ae4c15c15e6c8" + resolved "https://registry.npmmirror.com/rollup-plugin-ignore-import/-/rollup-plugin-ignore-import-1.3.2.tgz#5379eac73d2c7e389ebeb5b3a90ae4c15c15e6c8" integrity sha512-q7yH2c+PKVfb61+MTXqqyBHIgflikumC7OEB+OfQWNsSmDqE5FLZLeewcBGl1VDmjDjSXuALXsaBjyIsl3oNmQ== +rollup-plugin-import-css@^3.2.1: + version "3.3.4" + resolved "https://registry.npmmirror.com/rollup-plugin-import-css/-/rollup-plugin-import-css-3.3.4.tgz#fe8ae5dc359654a9ac03948642c7becd8b04cafa" + integrity sha512-w5p1Dd1CavAht/P82zB3WX2RVy7O47MlJGSmgrWXTBPAkWHTbOBh/nUPz94IczCD0HLxpuT4AhF24cix7CpZWA== + dependencies: + "@rollup/pluginutils" "^5.0.4" + rollup-plugin-inject-process-env@^1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/rollup-plugin-inject-process-env/-/rollup-plugin-inject-process-env-1.3.1.tgz#2d7660fe76f2b221b976cb35597763ffcaad3db3" + resolved "https://registry.npmmirror.com/rollup-plugin-inject-process-env/-/rollup-plugin-inject-process-env-1.3.1.tgz#2d7660fe76f2b221b976cb35597763ffcaad3db3" integrity sha512-kKDoL30IZr0wxbNVJjq+OS92RJSKRbKV6B5eNW4q3mZTFqoWDh6lHy+mPDYuuGuERFNKXkG+AKxvYqC9+DRpKQ== dependencies: magic-string "^0.25.7" -rollup-plugin-node-resolve@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-5.2.0.tgz#730f93d10ed202473b1fb54a5997a7db8c6d8523" - integrity sha512-jUlyaDXts7TW2CqQ4GaO5VJ4PwwaV8VUGA7+km3n6k6xtOEacf61u0VXwN80phY/evMcaS+9eIeJ9MOyDxt5Zw== - dependencies: - "@types/resolve" "0.0.8" - builtin-modules "^3.1.0" - is-module "^1.0.0" - resolve "^1.11.1" - rollup-pluginutils "^2.8.1" - -rollup-plugin-postcss@^4.0.0: +rollup-plugin-postcss@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/rollup-plugin-postcss/-/rollup-plugin-postcss-4.0.2.tgz#15e9462f39475059b368ce0e49c800fa4b1f7050" + resolved "https://registry.npmmirror.com/rollup-plugin-postcss/-/rollup-plugin-postcss-4.0.2.tgz#15e9462f39475059b368ce0e49c800fa4b1f7050" integrity sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w== dependencies: chalk "^4.1.0" @@ -14040,109 +10918,154 @@ rollup-plugin-postcss@^4.0.0: safe-identifier "^0.4.2" style-inject "^0.3.0" -rollup-plugin-terser@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" - integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== - dependencies: - "@babel/code-frame" "^7.10.4" - jest-worker "^26.2.1" - serialize-javascript "^4.0.0" - terser "^5.0.0" - -rollup-plugin-typescript2@^0.30.0: - version "0.30.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.30.0.tgz#1cc99ac2309bf4b9d0a3ebdbc2002aecd56083d3" - integrity sha512-NUFszIQyhgDdhRS9ya/VEmsnpTe+GERDMmFo0Y+kf8ds51Xy57nPNGglJY+W6x1vcouA7Au7nsTgsLFj2I0PxQ== +rollup-plugin-typescript2@^0.34.1: + version "0.34.1" + resolved "https://registry.npmmirror.com/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.34.1.tgz#c457f155a71d133c142689213fce78694e30d0be" + integrity sha512-P4cHLtGikESmqi1CA+tdMDUv8WbQV48mzPYt77TSTOPJpERyZ9TXdDgjSDix8Fkqce6soYz3+fa4lrC93IEkcw== dependencies: - "@rollup/pluginutils" "^4.1.0" - find-cache-dir "^3.3.1" - fs-extra "8.1.0" - resolve "1.20.0" - tslib "2.1.0" + "@rollup/pluginutils" "^4.1.2" + find-cache-dir "^3.3.2" + fs-extra "^10.0.0" + semver "^7.3.7" + tslib "^2.4.0" -rollup-pluginutils@^2.8.1, rollup-pluginutils@^2.8.2: +rollup-pluginutils@^2.8.2: version "2.8.2" - resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" + resolved "https://registry.npmmirror.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== dependencies: estree-walker "^0.6.1" -rollup@^2.37.1: - version "2.62.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.62.0.tgz#9e640b419fc5b9e0241844f6d55258bd79986ecc" - integrity sha512-cJEQq2gwB0GWMD3rYImefQTSjrPYaC6s4J9pYqnstVLJ1CHa/aZNVkD4Epuvg4iLeMA4KRiq7UM7awKK6j7jcw== +"rollup@>=2.59.0 <2.78.0": + version "2.77.3" + resolved "https://registry.npmmirror.com/rollup/-/rollup-2.77.3.tgz#8f00418d3a2740036e15deb653bed1a90ee0cc12" + integrity sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g== + optionalDependencies: + fsevents "~2.3.2" + +rollup@^2.70.1: + version "2.79.1" + resolved "https://registry.npmmirror.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" + integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== + optionalDependencies: + fsevents "~2.3.2" + +rollup@^3.23.1, rollup@^3.27.1: + version "3.29.3" + resolved "https://registry.npmmirror.com/rollup/-/rollup-3.29.3.tgz#97769774ccaa6a3059083d4680fcabd8ead01289" + integrity sha512-T7du6Hum8jOkSWetjRgbwpM6Sy0nECYrYRSmZjayFcOddtKJWU4d17AC3HNUk7HRuqy4p+G7aEZclSHytqUmEg== optionalDependencies: fsevents "~2.3.2" run-async@^2.2.0, run-async@^2.4.0: version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + resolved "https://registry.npmmirror.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== run-parallel@^1.1.9: version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + resolved "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: queue-microtask "^1.2.2" run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + resolved "https://registry.npmmirror.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg== dependencies: aproba "^1.1.1" rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.6.0: version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + resolved "https://registry.npmmirror.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== dependencies: tslib "^1.9.0" -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +safe-array-concat@^1.0.0, safe-array-concat@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" + integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + isarray "^2.0.5" -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.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.1, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + resolved "https://registry.npmmirror.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.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + safe-identifier@^0.4.2: version "0.4.2" - resolved "https://registry.yarnpkg.com/safe-identifier/-/safe-identifier-0.4.2.tgz#cf6bfca31c2897c588092d1750d30ef501d59fcb" + resolved "https://registry.npmmirror.com/safe-identifier/-/safe-identifier-0.4.2.tgz#cf6bfca31c2897c588092d1750d30ef501d59fcb" integrity sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w== +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + safe-regex@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + resolved "https://registry.npmmirror.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@^2.1.2, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + resolved "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sax@^1.2.4, sax@~1.2.4: +sass-loader@^12.6.0: + version "12.6.0" + resolved "https://registry.npmmirror.com/sass-loader/-/sass-loader-12.6.0.tgz#5148362c8e2cdd4b950f3c63ac5d16dbfed37bcb" + integrity sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA== + dependencies: + klona "^2.0.4" + neo-async "^2.6.2" + +sass@^1.49.10: + version "1.68.0" + resolved "https://registry.npmmirror.com/sass/-/sass-1.68.0.tgz#0034b0cc9a50248b7d1702ac166fd25990023669" + integrity sha512-Lmj9lM/fef0nQswm1J2HJcEsBUba4wgNx2fea6yJHODREoMFnwRpZydBnX/RjyXw2REIwdkbqE4hrTo4qfDBUA== + dependencies: + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" + +sax@^1.2.4: + version "1.3.0" + resolved "https://registry.npmmirror.com/sax/-/sax-1.3.0.tgz#a5dbe77db3be05c9d1ee7785dbd3ea9de51593d0" + integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== + +sax@~1.2.4: version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + resolved "https://registry.npmmirror.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== +saxes@^6.0.0: + version "6.0.0" + resolved "https://registry.npmmirror.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5" + integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA== dependencies: xmlchars "^2.2.0" schema-utils@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== dependencies: ajv "^6.1.0" @@ -14151,147 +11074,88 @@ schema-utils@^1.0.0: schema-utils@^2.6.5: version "2.7.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + resolved "https://registry.npmmirror.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== +scroll-into-view-if-needed@^2.2.25: + version "2.2.31" + resolved "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz#d3c482959dc483e37962d1521254e3295d0d1587" + integrity sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA== dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" + compute-scroll-into-view "^1.0.20" section-matter@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" + resolved "https://registry.npmmirror.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== dependencies: extend-shallow "^2.0.1" kind-of "^6.0.0" -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= - -selfsigned@^1.10.8: - version "1.10.11" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.11.tgz#24929cd906fe0f44b6d01fb23999a739537acbe9" - integrity sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA== - dependencies: - node-forge "^0.10.0" - semver-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= + resolved "https://registry.npmmirror.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== semver-diff@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" - integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= + resolved "https://registry.npmmirror.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + integrity sha512-gL8F8L4ORwsS0+iQ34yCYv///jsOq0ZL7WP55d1HnJ32o7tyFYEFQZQA22mrLIacZdU6xecaBBZ+uEiffGNyXw== dependencies: semver "^5.0.3" -semver-diff@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" - integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== - dependencies: - semver "^6.3.0" - "semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + version "5.7.2" + resolved "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@7.3.5, semver@7.x, semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: +semver@7.3.5: version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + resolved "https://registry.npmmirror.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== dependencies: lru-cache "^6.0.0" -semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, 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== - -send@0.17.2: - version "0.17.2" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820" - integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "1.8.1" - mime "1.6.0" - ms "2.1.3" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serialize-javascript@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-3.1.0.tgz#8bf3a9170712664ef2561b44b691eafe399214ea" - integrity sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg== +semver@^6.0.0, semver@^6.1.0, semver@^6.3.0, semver@^6.3.1: + version "6.3.1" + resolved "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.1.1, semver@^7.1.3, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.6, semver@^7.3.7, semver@^7.5.3, semver@^7.5.4: + version "7.5.4" + resolved "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: - randombytes "^2.1.0" + lru-cache "^6.0.0" -serialize-javascript@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" - integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== +serialize-javascript@^6.0.1: + version "6.0.1" + resolved "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" + integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== dependencies: randombytes "^2.1.0" -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.14.2: - version "1.14.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.2.tgz#722d6294b1d62626d41b43a013ece4598d292bfa" - integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.2" - -set-blocking@^2.0.0, set-blocking@~2.0.0: +set-blocking@~2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + resolved "https://registry.npmmirror.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +set-function-name@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" + integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== + dependencies: + define-data-property "^1.0.1" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.0" set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + resolved "https://registry.npmmirror.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== dependencies: extend-shallow "^2.0.1" @@ -14299,167 +11163,117 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -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" + resolved "https://registry.npmmirror.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== dependencies: kind-of "^6.0.2" shallow-equal@^1.0.0: version "1.2.1" - resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" + resolved "https://registry.npmmirror.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== -shallowequal@^1.0.2: - 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= + resolved "https://registry.npmmirror.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== 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" + resolved "https://registry.npmmirror.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= + resolved "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + resolved "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shortid@^2.2.8: version "2.2.16" - resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.16.tgz#b742b8f0cb96406fd391c76bfc18a67a57fe5608" + resolved "https://registry.npmmirror.com/shortid/-/shortid-2.2.16.tgz#b742b8f0cb96406fd391c76bfc18a67a57fe5608" integrity sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g== dependencies: nanoid "^2.1.0" side-channel@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + resolved "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== dependencies: call-bind "^1.0.0" get-intrinsic "^1.0.2" object-inspect "^1.9.0" -sigmund@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" - integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= - signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: - version "3.0.6" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af" - integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== + version "3.0.7" + resolved "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== simple-git@^1.85.0: version "1.132.0" - resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-1.132.0.tgz#53ac4c5ec9e74e37c2fd461e23309f22fcdf09b1" + resolved "https://registry.npmmirror.com/simple-git/-/simple-git-1.132.0.tgz#53ac4c5ec9e74e37c2fd461e23309f22fcdf09b1" integrity sha512-xauHm1YqCTom1sC9eOjfq3/9RKiUA9iPnxBbrY2DdL8l4ADMu0jjM5l5lphQP5YWNqAL2aXC/OeuQ76vHtW5fg== dependencies: debug "^4.0.1" -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= +sirv@^2.0.2: + version "2.0.3" + resolved "https://registry.npmmirror.com/sirv/-/sirv-2.0.3.tgz#ca5868b87205a74bef62a469ed0296abceccd446" + integrity sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA== dependencies: - is-arrayish "^0.3.1" - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + "@polka/url" "^1.0.0-next.20" + mrmime "^1.0.0" + totalist "^3.0.0" slash@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + resolved "https://registry.npmmirror.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== slash@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + resolved "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== slice-ansi@0.0.4: version "0.0.4" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" - integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= - -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" + resolved "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + integrity sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw== slide@^1.1.6: version "1.1.6" - resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" - integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= + resolved "https://registry.npmmirror.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + integrity sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw== smart-buffer@^1.0.13: version "1.1.15" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16" - integrity sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY= + resolved "https://registry.npmmirror.com/smart-buffer/-/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16" + integrity sha512-1+8bxygjTsNfvQe0/0pNBesTOlSHtOeG6b6LYbvsZCCHDKYZ40zcQo6YTnZBWrBSLWOCbrHljLdEmGMYebu7aQ== -smart-buffer@^4.1.0: +smart-buffer@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + resolved "https://registry.npmmirror.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== -smoothscroll-polyfill@^0.4.3: - version "0.4.4" - resolved "https://registry.yarnpkg.com/smoothscroll-polyfill/-/smoothscroll-polyfill-0.4.4.tgz#3a259131dc6930e6ca80003e1cb03b603b69abf8" - integrity sha512-TK5ZA9U5RqCwMpfoMq/l1mrH0JAR7y7KRvOBx0n2869aLxch+gT9GhN3yUfjiw+d/DiF1mKo14+hd62JyMmoBg== +smob@^1.0.0: + version "1.4.1" + resolved "https://registry.npmmirror.com/smob/-/smob-1.4.1.tgz#66270e7df6a7527664816c5b577a23f17ba6f5b5" + integrity sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ== snapdragon-node@^2.0.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + resolved "https://registry.npmmirror.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== dependencies: define-property "^1.0.0" @@ -14468,14 +11282,14 @@ snapdragon-node@^2.0.1: snapdragon-util@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + resolved "https://registry.npmmirror.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== dependencies: kind-of "^3.2.0" snapdragon@^0.8.1: version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + resolved "https://registry.npmmirror.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== dependencies: base "^0.11.1" @@ -14487,30 +11301,9 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -sockjs-client@^1.5.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.2.tgz#4bc48c2da9ce4769f19dc723396b50f5c12330a3" - integrity sha512-ZzRxPBISQE7RpzlH4tKJMQbHM9pabHluk0WBaxAQ+wm/UieeBVBou0p4wVnSQGN9QmpAZygQ0cDIypWuqOFmFQ== - dependencies: - debug "^3.2.6" - eventsource "^1.0.7" - faye-websocket "^0.11.3" - inherits "^2.0.4" - json3 "^3.3.3" - url-parse "^1.5.3" - -sockjs@^0.3.21: - version "0.3.24" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" - integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== - dependencies: - faye-websocket "^0.11.3" - uuid "^8.3.2" - websocket-driver "^0.7.4" - socks-proxy-agent@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz#2eae7cf8e2a82d34565761539a7f9718c5617659" + resolved "https://registry.npmmirror.com/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz#2eae7cf8e2a82d34565761539a7f9718c5617659" integrity sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA== dependencies: agent-base "^4.1.0" @@ -14518,7 +11311,7 @@ socks-proxy-agent@^3.0.1: socks-proxy-agent@^5.0.0: version "5.0.1" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz#032fb583048a29ebffec2e6a73fca0761f48177e" + resolved "https://registry.npmmirror.com/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz#032fb583048a29ebffec2e6a73fca0761f48177e" integrity sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ== dependencies: agent-base "^6.0.2" @@ -14526,57 +11319,52 @@ socks-proxy-agent@^5.0.0: socks "^2.3.3" socks-proxy-agent@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz#e664e8f1aaf4e1fb3df945f09e3d94f911137f87" - integrity sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew== + version "6.2.1" + resolved "https://registry.npmmirror.com/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz#2687a31f9d7185e38d530bef1944fe1f1496d6ce" + integrity sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ== dependencies: agent-base "^6.0.2" - debug "^4.3.1" - socks "^2.6.1" + debug "^4.3.3" + socks "^2.6.2" socks@^1.1.10: version "1.1.10" - resolved "https://registry.yarnpkg.com/socks/-/socks-1.1.10.tgz#5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a" - integrity sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o= + resolved "https://registry.npmmirror.com/socks/-/socks-1.1.10.tgz#5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a" + integrity sha512-ArX4vGPULWjKDKgUnW8YzfI2uXW7kzgkJuB0GnFBA/PfT3exrrOk+7Wk2oeb894Qf20u1PWv9LEgrO0Z82qAzA== dependencies: ip "^1.1.4" smart-buffer "^1.0.13" -socks@^2.3.3, socks@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.1.tgz#989e6534a07cf337deb1b1c94aaa44296520d30e" - integrity sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA== +socks@^2.3.3, socks@^2.6.2: + version "2.7.1" + resolved "https://registry.npmmirror.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" + integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== dependencies: - ip "^1.1.5" - smart-buffer "^4.1.0" + ip "^2.0.0" + smart-buffer "^4.2.0" sort-keys@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" - integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= + resolved "https://registry.npmmirror.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" + integrity sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg== dependencies: is-plain-obj "^1.0.0" sort-keys@^4.0.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-4.2.0.tgz#6b7638cee42c506fff8c1cecde7376d21315be18" + resolved "https://registry.npmmirror.com/sort-keys/-/sort-keys-4.2.0.tgz#6b7638cee42c506fff8c1cecde7376d21315be18" integrity sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg== dependencies: is-plain-obj "^2.0.0" -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -source-map-js@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.1.tgz#a1741c131e3c77d048252adfa24e23b908670caf" - integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA== +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: +source-map-resolve@^0.5.0: version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + resolved "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== dependencies: atob "^2.1.2" @@ -14587,15 +11375,15 @@ source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: source-map-resolve@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz#3d9df87e236b53f16d01e58150fc7711138e5ed2" + resolved "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz#3d9df87e236b53f16d01e58150fc7711138e5ed2" integrity sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w== dependencies: atob "^2.1.2" decode-uri-component "^0.2.0" -source-map-support@^0.5.17, source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.20: +source-map-support@^0.5.17, source-map-support@~0.5.20: version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + resolved "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" @@ -14603,128 +11391,100 @@ source-map-support@^0.5.17, source-map-support@^0.5.6, source-map-support@~0.5.1 source-map-url@^0.4.0: version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + resolved "https://registry.npmmirror.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== -source-map@0.5.6: - version "0.5.6" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" - integrity sha1-dc449SvwczxafwwRjYEzSiu19BI= - -source-map@^0.5.0, source-map@^0.5.6: +source-map@^0.5.6: version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + resolved "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.3, source-map@~0.7.2: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== +source-map@^0.7.3: + version "0.7.4" + resolved "https://registry.npmmirror.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== -sourcemap-codec@^1.4.4: +sourcemap-codec@^1.4.8: version "1.4.8" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + resolved "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== spawn-command@0.0.2: version "0.0.2" - resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2.tgz#9544e1a43ca045f8531aac1a48cb29bdae62338e" - integrity sha1-lUThpDygRfhTGqwaSMspva5iM44= + resolved "https://registry.npmmirror.com/spawn-command/-/spawn-command-0.0.2.tgz#9544e1a43ca045f8531aac1a48cb29bdae62338e" + integrity sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ== spawn-command@0.0.2-1: version "0.0.2-1" - resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" - integrity sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A= + resolved "https://registry.npmmirror.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" + integrity sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg== spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + version "3.2.0" + resolved "https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" spdx-exceptions@^2.1.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + resolved "https://registry.npmmirror.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== spdx-expression-parse@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + resolved "https://registry.npmmirror.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== dependencies: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.11" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" - integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== - -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" - integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" + version "3.0.15" + resolved "https://registry.npmmirror.com/spdx-license-ids/-/spdx-license-ids-3.0.15.tgz#142460aabaca062bc7cd4cc87b7d50725ed6a4ba" + integrity sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ== 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" + resolved "https://registry.npmmirror.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + resolved "https://registry.npmmirror.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== dependencies: extend-shallow "^3.0.0" split2@^3.0.0: version "3.2.2" - resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" + resolved "https://registry.npmmirror.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== dependencies: readable-stream "^3.0.0" split@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" + resolved "https://registry.npmmirror.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== dependencies: through "2" sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + resolved "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + version "1.17.0" + resolved "https://registry.npmmirror.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" + integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -14738,153 +11498,88 @@ sshpk@^1.7.0: ssri@^4.1.6: version "4.1.6" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-4.1.6.tgz#0cb49b6ac84457e7bdd466cb730c3cb623e9a25b" + resolved "https://registry.npmmirror.com/ssri/-/ssri-4.1.6.tgz#0cb49b6ac84457e7bdd466cb730c3cb623e9a25b" integrity sha512-WUbCdgSAMQjTFZRWvSPpauryvREEA+Krn19rx67UlJEJx/M192ZHxMmJXjZ4tkdFm+Sb0SXGlENeQVlA5wY7kA== dependencies: safe-buffer "^5.1.0" ssri@^5.0.0, ssri@^5.2.4: version "5.3.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" + resolved "https://registry.npmmirror.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" integrity sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ== dependencies: safe-buffer "^5.1.1" -ssri@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" - integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== - dependencies: - figgy-pudding "^3.5.1" - ssri@^8.0.0, ssri@^8.0.1: version "8.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" + resolved "https://registry.npmmirror.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== dependencies: minipass "^3.1.1" stable@^0.1.8: version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + resolved "https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== -stack-utils@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b" - integrity sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ== - dependencies: - escape-string-regexp "^2.0.0" - -stack-utils@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" - integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== - dependencies: - escape-string-regexp "^2.0.0" - staged-git-files@1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-1.1.2.tgz#4326d33886dc9ecfa29a6193bf511ba90a46454b" + resolved "https://registry.npmmirror.com/staged-git-files/-/staged-git-files-1.1.2.tgz#4326d33886dc9ecfa29a6193bf511ba90a46454b" integrity sha512-0Eyrk6uXW6tg9PYkhi/V/J4zHp33aNyi2hOCmhFLqLTIhbgqWn5jlSzI+IU0VqrZq6+DbHcabQl/WP6P3BG0QA== +state-local@^1.0.6: + version "1.0.7" + resolved "https://registry.npmmirror.com/state-local/-/state-local-1.0.7.tgz#da50211d07f05748d53009bee46307a37db386d5" + integrity sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w== + static-extend@^0.1.1: version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + resolved "https://registry.npmmirror.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== dependencies: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -std-env@^2.2.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/std-env/-/std-env-2.3.1.tgz#d42271908819c243f8defc77a140fc1fcee336a1" - integrity sha512-eOsoKTWnr6C8aWrqJJ2KAReXoa7Vn5Ywyw6uCXgA/xDhxPoaIsBa5aNJmISY04dLwXPBnDHW4diGM7Sn5K4R/g== - dependencies: - ci-info "^3.1.1" - -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - stream-each@^1.1.0: version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + resolved "https://registry.npmmirror.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== dependencies: end-of-stream "^1.1.0" stream-shift "^1.0.0" -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - stream-shift@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + resolved "https://registry.npmmirror.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= - strict-uri-encode@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" - integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= + resolved "https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" + integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== string-argv@^0.0.2: version "0.0.2" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.0.2.tgz#dac30408690c21f3c3630a3ff3a05877bdcbd736" - integrity sha1-2sMECGkMIfPDYwo/86BYd73L1zY= - -string-convert@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97" - integrity sha1-aYLMMEn7tM2F+LJFaLnZvznu/5c= + resolved "https://registry.npmmirror.com/string-argv/-/string-argv-0.0.2.tgz#dac30408690c21f3c3630a3ff3a05877bdcbd736" + integrity sha512-p6/Mqq0utTQWUeGMi/m0uBtlLZEwXSY3+mXzeRRqw7fz5ezUb28Wr0R99NlfbWaMmL/jCyT9be4jpn7Yz8IO8w== string-hash@^1.1.1: version "1.1.3" - resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" - integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" + resolved "https://registry.npmmirror.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" + integrity sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A== string-width@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + resolved "https://registry.npmmirror.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + resolved "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -14893,54 +11588,56 @@ string-width@^1.0.1: string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + resolved "https://registry.npmmirror.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== +string.prototype.trim@^1.2.8: + version "1.2.8" + resolved "https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" + integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== +string.prototype.trimend@^1.0.7: + version "1.0.7" + resolved "https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" + integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" + define-properties "^1.2.0" + es-abstract "^1.22.1" -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== +string.prototype.trimstart@^1.0.7: + version "1.0.7" + resolved "https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" + integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" + define-properties "^1.2.0" + es-abstract "^1.22.1" -string_decoder@^1.0.0, string_decoder@^1.1.1: +string_decoder@^1.1.1: version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + resolved "https://registry.npmmirror.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" + resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" stringify-object@^3.2.2: version "3.3.0" - resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + resolved "https://registry.npmmirror.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== dependencies: get-own-enumerable-property-symbols "^3.0.0" @@ -14949,77 +11646,77 @@ stringify-object@^3.2.2: strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== dependencies: ansi-regex "^3.0.0" -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: +strip-ansi@^5.1.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== dependencies: ansi-regex "^4.1.0" strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-bom-string@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" - integrity sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI= + resolved "https://registry.npmmirror.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" + integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== strip-bom@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + resolved "https://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== strip-bom@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + resolved "https://registry.npmmirror.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== 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= + resolved "https://registry.npmmirror.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== 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" + resolved "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== strip-indent@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + resolved "https://registry.npmmirror.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== dependencies: min-indent "^1.0.0" -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + resolved "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== strip-json-comments@~2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + resolved "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== strong-log-transformer@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10" + resolved "https://registry.npmmirror.com/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10" integrity sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA== dependencies: duplexer "^0.1.1" @@ -15028,117 +11725,65 @@ strong-log-transformer@^2.1.0: style-inject@^0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/style-inject/-/style-inject-0.3.0.tgz#d21c477affec91811cc82355832a700d22bf8dd3" + resolved "https://registry.npmmirror.com/style-inject/-/style-inject-0.3.0.tgz#d21c477affec91811cc82355832a700d22bf8dd3" integrity sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw== -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -stylehacks@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.0.1.tgz#323ec554198520986806388c7fdaebc38d2c06fb" - integrity sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA== +stylehacks@^5.1.1: + version "5.1.1" + resolved "https://registry.npmmirror.com/stylehacks/-/stylehacks-5.1.1.tgz#7934a34eb59d7152149fa69d6e9e56f2fc34bcc9" + integrity sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw== dependencies: - browserslist "^4.16.0" + browserslist "^4.21.4" postcss-selector-parser "^6.0.4" -stylus-loader@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-3.0.2.tgz#27a706420b05a38e038e7cacb153578d450513c6" - integrity sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA== - dependencies: - loader-utils "^1.0.2" - lodash.clonedeep "^4.5.0" - when "~3.6.x" +stylis@^4.1.3: + version "4.3.0" + resolved "https://registry.npmmirror.com/stylis/-/stylis-4.3.0.tgz#abe305a669fc3d8777e10eefcfc73ad861c5588c" + integrity sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ== -stylus@^0.54.8: - version "0.54.8" - resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.54.8.tgz#3da3e65966bc567a7b044bfe0eece653e099d147" - integrity sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg== +stylus@^0.58.1: + version "0.58.1" + resolved "https://registry.npmmirror.com/stylus/-/stylus-0.58.1.tgz#7e425bb493c10dde94cf427a138d3eae875a3b44" + integrity sha512-AYiCHm5ogczdCPMfe9aeQa4NklB2gcf4D/IhzYPddJjTgPc+k4D/EVE0yfQbZD43MHP3lPy+8NZ9fcFxkrgs/w== dependencies: - css-parse "~2.0.0" - debug "~3.1.0" + css "^3.0.0" + debug "^4.3.2" glob "^7.1.6" - mkdirp "~1.0.4" - safer-buffer "^2.1.2" sax "~1.2.4" - semver "^6.3.0" source-map "^0.7.3" supports-color@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + resolved "https://registry.npmmirror.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== supports-color@^5.3.0: version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + resolved "https://registry.npmmirror.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: +supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + resolved "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== svg-tags@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" - integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= - -svgo@^1.0.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" - integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== - dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" - stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" + resolved "https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" + integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA== svgo@^2.7.0: version "2.8.0" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" + resolved "https://registry.npmmirror.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== dependencies: "@trysound/sax" "0.2.0" @@ -15151,38 +11796,27 @@ svgo@^2.7.0: symbol-observable@^1.1.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + resolved "https://registry.npmmirror.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== symbol-tree@^3.2.4: version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + resolved "https://registry.npmmirror.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== synchronous-promise@^2.0.6: - version "2.0.15" - resolved "https://registry.yarnpkg.com/synchronous-promise/-/synchronous-promise-2.0.15.tgz#07ca1822b9de0001f5ff73595f3d08c4f720eb8e" - integrity sha512-k8uzYIkIVwmT+TcglpdN50pS2y1BDcUnBPK9iJeGu0Pl1lOI8pD6wtzgw91Pjpe+RxtTncw32tLxs/R0yNL2Mg== - -table@^6.0.9: - version "6.7.5" - resolved "https://registry.yarnpkg.com/table/-/table-6.7.5.tgz#f04478c351ef3d8c7904f0e8be90a1b62417d238" - integrity sha512-LFNeryOqiQHqCVKzhkymKwt6ozeRhlm8IL1mE8rNUurkir4heF6PzMyRgaTa4tlyPTGGgXuvVOF/OLWiH09Lqw== - dependencies: - ajv "^8.0.1" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" + version "2.0.17" + resolved "https://registry.npmmirror.com/synchronous-promise/-/synchronous-promise-2.0.17.tgz#38901319632f946c982152586f2caf8ddc25c032" + integrity sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g== -tapable@^1.0.0, tapable@^1.1.3: +tapable@^1.0.0: version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + resolved "https://registry.npmmirror.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== tar-fs@^1.15.3: version "1.16.3" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509" + resolved "https://registry.npmmirror.com/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509" integrity sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw== dependencies: chownr "^1.0.1" @@ -15192,7 +11826,7 @@ tar-fs@^1.15.3: tar-stream@^1.1.2, tar-stream@^1.5.4: version "1.6.2" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" + resolved "https://registry.npmmirror.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== dependencies: bl "^1.0.0" @@ -15205,7 +11839,7 @@ tar-stream@^1.1.2, tar-stream@^1.5.4: tar@^4.4.12: version "4.4.19" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" + resolved "https://registry.npmmirror.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== dependencies: chownr "^1.1.4" @@ -15217,25 +11851,25 @@ tar@^4.4.12: yallist "^3.1.1" tar@^6.0.2, tar@^6.1.0: - version "6.1.11" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" - integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== + version "6.2.0" + resolved "https://registry.npmmirror.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73" + integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" - minipass "^3.0.0" + minipass "^5.0.0" minizlib "^2.1.1" mkdirp "^1.0.3" yallist "^4.0.0" temp-dir@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" - integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= + resolved "https://registry.npmmirror.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" + integrity sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ== temp-write@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/temp-write/-/temp-write-4.0.0.tgz#cd2e0825fc826ae72d201dc26eef3bf7e6fc9320" + resolved "https://registry.npmmirror.com/temp-write/-/temp-write-4.0.0.tgz#cd2e0825fc826ae72d201dc26eef3bf7e6fc9320" integrity sha512-HIeWmj77uOOHb0QX7siN3OtwV3CTntquin6TNVg6SHOqCP3hYKmox90eeFOGaY1MqJ9WYDDjkyZrW6qS5AWpbw== dependencies: graceful-fs "^4.1.15" @@ -15246,60 +11880,24 @@ temp-write@^4.0.0: term-size@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" - integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= + resolved "https://registry.npmmirror.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + integrity sha512-7dPUZQGy/+m3/wjVz3ZW5dobSoD/02NxJpoXUX0WIyjfVS3l0c+b/+9phIDFA7FHzkYtwtMFgeGZ/Y8jVTeqQQ== dependencies: execa "^0.7.0" -term-size@^2.1.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" - integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== - -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - -terser-webpack-plugin@^1.4.3: - version "1.4.5" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" - integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^4.0.0" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser@^4.1.2: - version "4.8.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" - integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -terser@^5.0.0: - version "5.10.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.10.0.tgz#b86390809c0389105eb0a0b62397563096ddafcc" - integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA== +terser@^5.17.4: + version "5.20.0" + resolved "https://registry.npmmirror.com/terser/-/terser-5.20.0.tgz#ea42aea62578703e33def47d5c5b93c49772423e" + integrity sha512-e56ETryaQDyebBwJIWYB2TT6f2EZ0fL0sW/JRXNMN26zZdKi2u/E/5my5lG6jNxym6qsrVXfFRmOdV42zlAgLQ== dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" commander "^2.20.0" - source-map "~0.7.2" source-map-support "~0.5.20" test-exclude@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + resolved "https://registry.npmmirror.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== dependencies: "@istanbuljs/schema" "^0.1.2" @@ -15308,27 +11906,27 @@ test-exclude@^6.0.0: text-extensions@^1.0.0: version "1.9.0" - resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" + resolved "https://registry.npmmirror.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== text-table@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + resolved "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== textextensions@^2.5.0: version "2.6.0" - resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.6.0.tgz#d7e4ab13fe54e32e08873be40d51b74229b00fc4" + resolved "https://registry.npmmirror.com/textextensions/-/textextensions-2.6.0.tgz#d7e4ab13fe54e32e08873be40d51b74229b00fc4" integrity sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ== -throat@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" - integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== +throttle-debounce@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-5.0.0.tgz#a17a4039e82a2ed38a5e7268e4132d6960d41933" + integrity sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg== through2@^2.0.0: version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + resolved "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== dependencies: readable-stream "~2.3.6" @@ -15336,105 +11934,73 @@ through2@^2.0.0: through2@^4.0.0: version "4.0.2" - resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" + resolved "https://registry.npmmirror.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== dependencies: readable-stream "3" -through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6, through@~2.3.4: +through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6: version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + resolved "https://registry.npmmirror.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== timed-out@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= - -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" + resolved "https://registry.npmmirror.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA== -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= +tinypool@^0.2.1: + version "0.2.4" + resolved "https://registry.npmmirror.com/tinypool/-/tinypool-0.2.4.tgz#4d2598c4689d1a2ce267ddf3360a9c6b3925a20c" + integrity sha512-Vs3rhkUH6Qq1t5bqtb816oT+HeJTXfwt2cbPH17sWHIYKTotQIFPk3tf2fgqRrVyMDVOc1EnPgzIxfIulXVzwQ== -tinycolor2@^1.4.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803" - integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA== +tinyspy@^0.3.3: + version "0.3.3" + resolved "https://registry.npmmirror.com/tinyspy/-/tinyspy-0.3.3.tgz#8b57f8aec7fe1bf583a3a49cb9ab30c742f69237" + integrity sha512-gRiUR8fuhUf0W9lzojPf1N1euJYA30ISebSfgca8z76FOvXtVXqd5ojEIaKLWbDQhAaC3ibxZIjqbyi4ybjcTw== tmp@^0.0.33: version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + resolved "https://registry.npmmirror.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== dependencies: os-tmpdir "~1.0.2" -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -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-buffer@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" + resolved "https://registry.npmmirror.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== -to-factory@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-factory/-/to-factory-1.0.0.tgz#8738af8bd97120ad1d4047972ada5563bf9479b1" - integrity sha1-hzivi9lxIK0dQEeXKtpVY7+UebE= - 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= + resolved "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-object-path@^0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + resolved "https://registry.npmmirror.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== dependencies: kind-of "^3.0.2" -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - to-regex-range@^2.1.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + resolved "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== dependencies: is-number "^3.0.0" repeat-string "^1.6.1" to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" to-regex@^3.0.1, to-regex@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + resolved "https://registry.npmmirror.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== dependencies: define-property "^2.0.2" @@ -15444,41 +12010,37 @@ to-regex@^3.0.1, to-regex@^3.0.2: toggle-selection@^1.0.6: version "1.0.6" - resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" - integrity sha1-bkWxJj8gF/oKzH2J14sVuL932jI= - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + resolved "https://registry.npmmirror.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" + integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ== toml@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" - integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== - -toposort@^1.0.0: - version "1.0.7" - resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" - integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk= + resolved "https://registry.npmmirror.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" + integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== toposort@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" - integrity sha1-riF2gXXRVZ1IvvNUILL0li8JwzA= + resolved "https://registry.npmmirror.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" + integrity sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg== -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== +totalist@^3.0.0: + version "3.0.1" + resolved "https://registry.npmmirror.com/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8" + integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== + +tough-cookie@^4.1.2: + version "4.1.3" + resolved "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" + integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== dependencies: psl "^1.1.33" punycode "^2.1.1" - universalify "^0.1.2" + universalify "^0.2.0" + url-parse "^1.5.3" tough-cookie@~2.5.0: version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + resolved "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== dependencies: psl "^1.1.28" @@ -15486,46 +12048,36 @@ tough-cookie@~2.5.0: tr46@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" + resolved "https://registry.npmmirror.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== dependencies: punycode "^2.1.1" +tr46@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" + integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== + dependencies: + punycode "^2.1.1" + tr46@~0.0.3: version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + resolved "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== trim-newlines@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" + resolved "https://registry.npmmirror.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== -ts-import-plugin@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/ts-import-plugin/-/ts-import-plugin-1.6.1.tgz#96477d241a154954508aa1397be03000735f98d0" - integrity sha512-aalTycdTYY0NNosJ+XqDqzzBH1wyhE9pykcXd5TjF902j+nUlhjW7uWje2Xny+lPL1w+46Uaf5TsReirI5igiA== - dependencies: - opencollective-postinstall "^2.0.2" - tslib "^1.10.0" - -ts-jest@^27.1.2: - version "27.1.2" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.1.2.tgz#5991d6eb3fd8e1a8d4b8f6de3ec0a3cc567f3151" - integrity sha512-eSOiJOWq6Hhs6Khzk5wKC5sgWIXgXqOCiIl1+3lfnearu58Hj4QpE5tUhQcA3xtZrELbcvAGCsd6HB8OsaVaTA== - dependencies: - bs-logger "0.x" - fast-json-stable-stringify "2.x" - jest-util "^27.0.0" - json5 "2.x" - lodash.memoize "4.x" - make-error "1.x" - semver "7.x" - yargs-parser "20.x" +ts-debounce@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/ts-debounce/-/ts-debounce-4.0.0.tgz#33440ef64fab53793c3d546a8ca6ae539ec15841" + integrity sha512-+1iDGY6NmOGidq7i7xZGA4cm8DAa6fqdYcvO5Z6yBevH++Bdo9Qt/mN0TzHUgcCcKv1gmh9+W5dHqz8pMWbCbg== ts-loader@^7.0.3: version "7.0.5" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-7.0.5.tgz#789338fb01cb5dc0a33c54e50558b34a73c9c4c5" + resolved "https://registry.npmmirror.com/ts-loader/-/ts-loader-7.0.5.tgz#789338fb01cb5dc0a33c54e50558b34a73c9c4c5" integrity sha512-zXypEIT6k3oTc+OZNx/cqElrsbBtYqDknf48OZos0NQ3RTt045fBIU8RRSu+suObBzYB355aIPGOe/3kj9h7Ig== dependencies: chalk "^2.3.0" @@ -15534,9 +12086,28 @@ ts-loader@^7.0.3: micromatch "^4.0.0" semver "^6.0.0" -ts-node@^9, ts-node@^9.1.1: +ts-node@^10.9.1: + version "10.9.1" + resolved "https://registry.npmmirror.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +ts-node@^9: version "9.1.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" + resolved "https://registry.npmmirror.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== dependencies: arg "^4.1.0" @@ -15546,198 +12117,204 @@ ts-node@^9, ts-node@^9.1.1: source-map-support "^0.5.17" yn "3.1.1" -tsconfig-paths@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz#19769aca6ee8f6a1a341e38c8fa45dd9fb18899b" - integrity sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg== +tsconfig-paths@^3.14.2: + version "3.14.2" + resolved "https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" + integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== dependencies: "@types/json5" "^0.0.29" - json5 "^1.0.1" - minimist "^1.2.0" + json5 "^1.0.2" + minimist "^1.2.6" strip-bom "^3.0.0" -tslib@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" - integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== - -tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0: +tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + resolved "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2, tslib@^2.0.3, tslib@^2.3.0, tslib@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== +tslib@^2, tslib@^2.0.3, tslib@^2.3.0, tslib@^2.4.0, tslib@^2.6.2: + version "2.6.2" + resolved "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== tsutils@^3.21.0: version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + resolved "https://registry.npmmirror.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== dependencies: tslib "^1.8.1" -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - tunnel-agent@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + resolved "https://registry.npmmirror.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== dependencies: safe-buffer "^5.0.1" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + resolved "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + resolved "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: prelude-ls "^1.2.1" -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -type-detect@4.0.8: +type-detect@^4.0.0, type-detect@^4.0.5: version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + resolved "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== type-fest@^0.18.0: version "0.18.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" + resolved "https://registry.npmmirror.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== type-fest@^0.20.2: version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + resolved "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== type-fest@^0.21.3: version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + resolved "https://registry.npmmirror.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== type-fest@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.4.1.tgz#8bdf77743385d8a4f13ba95f610f5ccd68c728f8" + resolved "https://registry.npmmirror.com/type-fest/-/type-fest-0.4.1.tgz#8bdf77743385d8a4f13ba95f610f5ccd68c728f8" integrity sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw== type-fest@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + resolved "https://registry.npmmirror.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== type-fest@^0.8.1: version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + resolved "https://registry.npmmirror.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== +typed-array-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" + integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-typed-array "^1.1.10" + +typed-array-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" + integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" + integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" typedarray-to-buffer@^3.1.5: version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + resolved "https://registry.npmmirror.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== dependencies: is-typedarray "^1.0.0" typedarray@^0.0.6: version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + resolved "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typescript@4.4.4: - version "4.4.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c" - integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== +typescript@^4.4.3: + version "4.9.5" + resolved "https://registry.npmmirror.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== -typescript@^4.1.5, typescript@^4.4.3: - version "4.5.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.4.tgz#a17d3a0263bf5c8723b9c52f43c5084edf13c2e8" - integrity sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg== +typescript@~5.1.6: + version "5.1.6" + resolved "https://registry.npmmirror.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274" + integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA== uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" - resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" + resolved "https://registry.npmmirror.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== -uglify-js@3.4.x: - version "3.4.10" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" - integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== - dependencies: - commander "~2.19.0" - source-map "~0.6.1" - uglify-js@^3.1.4: - version "3.14.5" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.5.tgz#cdabb7d4954231d80cb4a927654c4655e51f4859" - integrity sha512-qZukoSxOG0urUTvjc2ERMTcAy+BiFh3weWAkeurLwjrCba73poHmG3E36XEjd/JGukMzwTL7uCxZiAexj8ppvQ== + version "3.17.4" + resolved "https://registry.npmmirror.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" + integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== uid-number@0.0.6: version "0.0.6" - resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" - integrity sha1-DqEOgDXo61uOREnwbaHHMGY7qoE= + resolved "https://registry.npmmirror.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + integrity sha512-c461FXIljswCuscZn67xq9PpszkPT6RjheWFQTgCyabJrTUozElanb0YEqv2UGgk247YpcJkFBuSGNvBlpXM9w== umask@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" - integrity sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0= + resolved "https://registry.npmmirror.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" + integrity sha512-lE/rxOhmiScJu9L6RTNVgB/zZbF+vGC0/p6D3xnkAePI2o0sMyFG966iR5Ki50OI/0mNi2yaRnxfLsPmEZF/JA== -unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + resolved "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== unicode-match-property-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + resolved "https://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== dependencies: unicode-canonical-property-names-ecmascript "^2.0.0" unicode-property-aliases-ecmascript "^2.0.0" -unicode-match-property-value-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" - integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== unicode-property-aliases-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" - integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== + version "2.1.0" + resolved "https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== union-value@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + resolved "https://registry.npmmirror.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== dependencies: arr-union "^3.1.0" @@ -15745,102 +12322,83 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= - unique-filename@^1.1.0, unique-filename@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + resolved "https://registry.npmmirror.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== dependencies: unique-slug "^2.0.0" unique-slug@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + resolved "https://registry.npmmirror.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== dependencies: imurmurhash "^0.1.4" unique-string@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" - integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= + resolved "https://registry.npmmirror.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + integrity sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg== dependencies: crypto-random-string "^1.0.0" -unique-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" - integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== - dependencies: - crypto-random-string "^2.0.0" - unist-util-stringify-position@^2.0.0: version "2.0.3" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" + resolved "https://registry.npmmirror.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" universal-user-agent@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" + resolved "https://registry.npmmirror.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== -universalify@^0.1.0, universalify@^0.1.2: +universalify@^0.1.0: version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + resolved "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +universalify@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" + integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== + universalify@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + resolved "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= - unset-value@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + resolved "https://registry.npmmirror.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== dependencies: has-value "^0.3.1" isobject "^3.0.0" unzip-response@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" - integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= - -upath@^1.1.0, upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + resolved "https://registry.npmmirror.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + integrity sha512-N0XH6lqDtFH84JxptQoZYmloF4nzrQqqrAymNj+/gW60AO2AZgOcf4O/nUXJcYfyQkqvMo9lSupBZmmgvuVXlw== upath@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b" + resolved "https://registry.npmmirror.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b" integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + update-notifier@^2.2.0: version "2.5.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" + resolved "https://registry.npmmirror.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw== dependencies: boxen "^1.2.1" @@ -15854,174 +12412,79 @@ update-notifier@^2.2.0: semver-diff "^2.0.0" xdg-basedir "^3.0.0" -update-notifier@^4.0.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3" - integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== - dependencies: - boxen "^4.2.0" - chalk "^3.0.0" - configstore "^5.0.1" - has-yarn "^2.1.0" - import-lazy "^2.1.0" - is-ci "^2.0.0" - is-installed-globally "^0.3.1" - is-npm "^4.0.0" - is-yarn-global "^0.3.0" - latest-version "^5.0.0" - pupa "^2.0.1" - semver-diff "^3.1.1" - xdg-basedir "^4.0.0" - -upper-case@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" - integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= - upper-case@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-2.0.2.tgz#d89810823faab1df1549b7d97a76f8662bae6f7a" + resolved "https://registry.npmmirror.com/upper-case/-/upper-case-2.0.2.tgz#d89810823faab1df1549b7d97a76f8662bae6f7a" integrity sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg== dependencies: tslib "^2.0.3" uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + resolved "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" urix@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url-loader@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.2.tgz#b971d191b83af693c5e3fea4064be9e1f2d7f8d8" - integrity sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg== - dependencies: - loader-utils "^1.1.0" - mime "^2.0.3" - schema-utils "^1.0.0" + resolved "https://registry.npmmirror.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== url-parse-lax@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= + resolved "https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + integrity sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA== dependencies: prepend-http "^1.0.1" -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - -url-parse@^1.4.3, url-parse@^1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.3.tgz#71c1303d38fb6639ade183c2992c8cc0686df862" - integrity sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ== +url-parse@^1.5.3: + version "1.5.10" + resolved "https://registry.npmmirror.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== dependencies: querystringify "^2.1.1" requires-port "^1.0.0" -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - use@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + resolved "https://registry.npmmirror.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + resolved "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== util-promisify@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/util-promisify/-/util-promisify-2.1.0.tgz#3c2236476c4d32c5ff3c47002add7c13b9a82a53" - integrity sha1-PCI2R2xNMsX/PEcAKt18E7moKlM= - dependencies: - object.getownpropertydescriptors "^2.0.3" - -util.promisify@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" - integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + resolved "https://registry.npmmirror.com/util-promisify/-/util-promisify-2.1.0.tgz#3c2236476c4d32c5ff3c47002add7c13b9a82a53" + integrity sha512-K+5eQPYs14b3+E+hmE2J6gCZ4JmMl9DbYS6BeP2CHq6WMuNxErxf5B/n0fz85L8zUuoO6rIzNNmIQDu/j+1OcA== dependencies: - define-properties "^1.1.2" object.getownpropertydescriptors "^2.0.3" -util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -utila@~0.4: - version "0.4.0" - resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - uuid@^3.3.2: version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + resolved "https://registry.npmmirror.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-compile-cache@^2.0.3: - 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== +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== -v8-to-istanbul@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz#0aeb763894f1a0a1676adf8a8b7612a38902446c" - integrity sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA== +v8-to-istanbul@^9.0.0: + version "9.1.0" + resolved "https://registry.npmmirror.com/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz#1b83ed4e397f58c85c266a570fc2558b5feb9265" + integrity sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA== dependencies: + "@jridgewell/trace-mapping" "^0.3.12" "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" - source-map "^0.7.3" validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + resolved "https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== dependencies: spdx-correct "^3.0.0" @@ -16029,436 +12492,253 @@ validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: validate-npm-package-name@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" - integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= + resolved "https://registry.npmmirror.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + integrity sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw== dependencies: builtins "^1.0.3" -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - verror@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + resolved "https://registry.npmmirror.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" extsprintf "^1.2.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== +vite@^2.9.12, vite@~2.9.1: + version "2.9.16" + resolved "https://registry.npmmirror.com/vite/-/vite-2.9.16.tgz#daf7ba50f5cc37a7bf51b118ba06bc36e97898e9" + integrity sha512-X+6q8KPyeuBvTQV8AVSnKDvXoBMnTx8zxh54sOwmmuOdxkjMmEJXH2UEchA+vTMps1xw9vL64uwJOWryULg7nA== + dependencies: + esbuild "^0.14.27" + postcss "^8.4.13" + resolve "^1.22.0" + rollup ">=2.59.0 <2.78.0" + optionalDependencies: + fsevents "~2.3.2" -vue-demi@^0.9.0: - version "0.9.1" - resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.9.1.tgz#25d6e1ebd4d4010757ff3571e2bf6a1d7bf3de82" - integrity sha512-7s1lufRD2l369eFWPjgLvhqCRk0XzGWJsQc7K4q+0mZtixyGIvsK1Cg88P4NcaRIEiBuuN4q1NN4SZKFKwQswA== +vite@^4.3.5: + version "4.4.9" + resolved "https://registry.npmmirror.com/vite/-/vite-4.4.9.tgz#1402423f1a2f8d66fd8d15e351127c7236d29d3d" + integrity sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA== + dependencies: + esbuild "^0.18.10" + postcss "^8.4.27" + rollup "^3.27.1" + optionalDependencies: + fsevents "~2.3.2" -vue-eslint-parser@^7.10.0: - version "7.11.0" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz#214b5dea961007fcffb2ee65b8912307628d0daf" - integrity sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg== +vitest@^0.16.0: + version "0.16.0" + resolved "https://registry.npmmirror.com/vitest/-/vitest-0.16.0.tgz#6858a864b25850d28252bc480b0c89014ff48ce8" + integrity sha512-Ntp6jrM8wf2NMtamMBLkRBBdeqHkgAH/WMh5Xryts1j2ft2D8QZQbiSVFkSl4WmEQzcPP0YM069g/Ga1vtnEtg== dependencies: - debug "^4.1.1" - eslint-scope "^5.1.1" - eslint-visitor-keys "^1.1.0" - espree "^6.2.1" + "@types/chai" "^4.3.1" + "@types/chai-subset" "^1.3.3" + "@types/node" "*" + chai "^4.3.6" + debug "^4.3.4" + local-pkg "^0.4.1" + tinypool "^0.2.1" + tinyspy "^0.3.3" + vite "^2.9.12" + +vue-codemirror@^4.0.6: + version "4.0.6" + resolved "https://registry.npmmirror.com/vue-codemirror/-/vue-codemirror-4.0.6.tgz#b786bb80d8d762a93aab8e46f79a81006f0437c4" + integrity sha512-ilU7Uf0mqBNSSV3KT7FNEeRIxH4s1fmpG4TfHlzvXn0QiQAbkXS9lLfwuZpaBVEnpP5CSE62iGJjoliTuA8poQ== + dependencies: + codemirror "^5.41.0" + diff-match-patch "^1.0.0" + +vue-component-type-helpers@1.8.4: + version "1.8.4" + resolved "https://registry.npmmirror.com/vue-component-type-helpers/-/vue-component-type-helpers-1.8.4.tgz#302d85fac912519cdf0dd2fb51402e5215d85628" + integrity sha512-6bnLkn8O0JJyiFSIF0EfCogzeqNXpnjJ0vW/SZzNHfe6sPx30lTtTXlE5TFs2qhJlAtDFybStVNpL73cPe3OMQ== + +vue-demi@*: + version "0.14.6" + resolved "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.6.tgz#dc706582851dc1cdc17a0054f4fec2eb6df74c92" + integrity sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w== + +vue-demi@^0.13.6: + version "0.13.11" + resolved "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz#7d90369bdae8974d87b1973564ad390182410d99" + integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A== + +vue-eslint-parser@^9.3.1: + version "9.3.1" + resolved "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.3.1.tgz#429955e041ae5371df5f9e37ebc29ba046496182" + integrity sha512-Clr85iD2XFZ3lJ52/ppmUDG/spxQu6+MAeHXjjyI4I1NUYZ9xmenQp4N0oaHJhrA8OOxltCVxMRfANGa70vU0g== + dependencies: + debug "^4.3.4" + eslint-scope "^7.1.1" + eslint-visitor-keys "^3.3.0" + espree "^9.3.1" esquery "^1.4.0" lodash "^4.17.21" - semver "^6.3.0" + semver "^7.3.6" vue-frag@^1.1.4: - version "1.4.0" - resolved "https://registry.yarnpkg.com/vue-frag/-/vue-frag-1.4.0.tgz#eede3df860163f6c2d9b07c7d9492b2cf53de24b" - integrity sha512-S3LfATqRwSMR6O8mf92wKF3y2E/Gs/3MFJXW4CozMOLUeOopNUlkcYuhVLagw7fkNmn/Pyb1zfRY5UCwU+X6Gw== - -vue-hot-reload-api@^2.3.0: - version "2.3.4" - resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2" - integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog== - -vue-loader@^15.7.1: - version "15.9.8" - resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.8.tgz#4b0f602afaf66a996be1e534fb9609dc4ab10e61" - integrity sha512-GwSkxPrihfLR69/dSV3+5CdMQ0D+jXg8Ma1S4nQXKJAznYFX14vHdc/NetQc34Dw+rBbIJyP7JOuVb9Fhprvog== - dependencies: - "@vue/component-compiler-utils" "^3.1.0" - hash-sum "^1.0.2" - loader-utils "^1.1.0" - vue-hot-reload-api "^2.3.0" - vue-style-loader "^4.1.0" - -vue-ref@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/vue-ref/-/vue-ref-2.0.0.tgz#483084d732abed11da796778a8266a3af0ea1a9c" - integrity sha512-uKNKpFOVeWNqS2mrBZqnpLyXJo5Q+vnkex6JvpENvhXHFNBW/SJTP8vJywLuVT3DpxwXcF9N0dyIiZ4/NpTexQ== - -vue-router@^3.4.5: - version "3.5.3" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.5.3.tgz#041048053e336829d05dafacf6a8fb669a2e7999" - integrity sha512-FUlILrW3DGitS2h+Xaw8aRNvGTwtuaxrRkNSHWTizOfLUie7wuYwezeZ50iflRn8YPV5kxmU2LQuu3nM/b3Zsg== - -vue-server-renderer@^2.6.10: - version "2.6.14" - resolved "https://registry.yarnpkg.com/vue-server-renderer/-/vue-server-renderer-2.6.14.tgz#c8bffff152df6b47b858818ef8d524d2fc351654" - integrity sha512-HifYRa/LW7cKywg9gd4ZtvtRuBlstQBao5ZCWlg40fyB4OPoGfEXAzxb0emSLv4pBDOHYx0UjpqvxpiQFEuoLA== - dependencies: - chalk "^1.1.3" - hash-sum "^1.0.2" - he "^1.1.0" - lodash.template "^4.5.0" - lodash.uniq "^4.5.0" - resolve "^1.2.0" - serialize-javascript "^3.1.0" - source-map "0.5.6" - -vue-slicksort@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/vue-slicksort/-/vue-slicksort-1.2.0.tgz#2bc1da2facc4350279ebc3866acea6ee5fe681ef" - integrity sha512-k1324l+AnYy6MrpySN7PYL165z2EkvZmMe+BS7H/EugzS8IrZYRtoqa3QxSSWB34C7cplV1hj3c+7peKpxpYxg== - -vue-style-loader@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.3.tgz#6d55863a51fa757ab24e89d9371465072aa7bc35" - integrity sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg== - dependencies: - hash-sum "^1.0.2" - loader-utils "^1.0.2" + version "1.4.3" + resolved "https://registry.npmmirror.com/vue-frag/-/vue-frag-1.4.3.tgz#ae207e2f9ca05fb40786582d30705c8f840cdfb6" + integrity sha512-pQZj03f/j9LRhzz9vKaXTCXUHVYHuAXicshFv76VFqwz4MG3bcb+sPZMAbd0wmw7THjkrTPuoM0EG9TbG8CgMQ== -vue-template-compiler@^2.6.10, vue-template-compiler@^2.6.12: - version "2.6.14" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz#a2f0e7d985670d42c9c9ee0d044fed7690f4f763" - integrity sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g== +vue-router@^4.0.14: + version "4.2.5" + resolved "https://registry.npmmirror.com/vue-router/-/vue-router-4.2.5.tgz#b9e3e08f1bd9ea363fdd173032620bc50cf0e98a" + integrity sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw== dependencies: - de-indent "^1.0.2" - he "^1.1.0" - -vue-template-es2015-compiler@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" - integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== + "@vue/devtools-api" "^6.5.0" -vue@^2.6.0, vue@^2.6.10, vue@^2.6.14: - version "2.6.14" - resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.14.tgz#e51aa5250250d569a3fbad3a8a5a687d6036e235" - integrity sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ== - -vuepress-html-webpack-plugin@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/vuepress-html-webpack-plugin/-/vuepress-html-webpack-plugin-3.2.0.tgz#219be272ad510faa8750d2d4e70fd028bfd1c16e" - integrity sha512-BebAEl1BmWlro3+VyDhIOCY6Gef2MCBllEVAP3NUAtMguiyOwo/dClbwJ167WYmcxHJKLl7b0Chr9H7fpn1d0A== - dependencies: - html-minifier "^3.2.3" - loader-utils "^0.2.16" - lodash "^4.17.3" - pretty-error "^2.0.2" - tapable "^1.0.0" - toposort "^1.0.0" - util.promisify "1.0.0" +vue-slicksort@^2.0.0: + version "2.0.5" + resolved "https://registry.npmmirror.com/vue-slicksort/-/vue-slicksort-2.0.5.tgz#d080829de9d04b16e8d194ed8b4e219a501091a2" + integrity sha512-fXz1YrNjhUbJK7o0tMk27mIr4pMAZYLSYvtmLazCtfpvz+zafPCn34ILDL8B7hT7WLVZKreYs6JVe5VWymqmzA== -vuepress-plugin-container@^2.0.2: - version "2.1.5" - resolved "https://registry.yarnpkg.com/vuepress-plugin-container/-/vuepress-plugin-container-2.1.5.tgz#37fff05662fedbd63ffd3a5463b2592c7a7f3133" - integrity sha512-TQrDX/v+WHOihj3jpilVnjXu9RcTm6m8tzljNJwYhxnJUW0WWQ0hFLcDTqTBwgKIFdEiSxVOmYE+bJX/sq46MA== +vue-types@^3.0.0: + version "3.0.2" + resolved "https://registry.npmmirror.com/vue-types/-/vue-types-3.0.2.tgz#ec16e05d412c038262fc1efa4ceb9647e7fb601d" + integrity sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw== dependencies: - "@vuepress/shared-utils" "^1.2.0" - markdown-it-container "^2.0.0" + is-plain-object "3.0.1" -vuepress-plugin-smooth-scroll@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/vuepress-plugin-smooth-scroll/-/vuepress-plugin-smooth-scroll-0.0.3.tgz#6eff2d4c186cca917cc9f7df2b0af7de7c8c6438" - integrity sha512-qsQkDftLVFLe8BiviIHaLV0Ea38YLZKKonDGsNQy1IE0wllFpFIEldWD8frWZtDFdx6b/O3KDMgVQ0qp5NjJCg== +vue@^3.2.31, vue@^3.2.37, vue@^3.3.0: + version "3.3.4" + resolved "https://registry.npmmirror.com/vue/-/vue-3.3.4.tgz#8ed945d3873667df1d0fcf3b2463ada028f88bd6" + integrity sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw== dependencies: - smoothscroll-polyfill "^0.4.3" + "@vue/compiler-dom" "3.3.4" + "@vue/compiler-sfc" "3.3.4" + "@vue/runtime-dom" "3.3.4" + "@vue/server-renderer" "3.3.4" + "@vue/shared" "3.3.4" vuepress-plugin-typescript@^0.3.1: version "0.3.1" - resolved "https://registry.yarnpkg.com/vuepress-plugin-typescript/-/vuepress-plugin-typescript-0.3.1.tgz#6c9e2999e1346d9c1198f7995a0f4e46902f9472" + resolved "https://registry.npmmirror.com/vuepress-plugin-typescript/-/vuepress-plugin-typescript-0.3.1.tgz#6c9e2999e1346d9c1198f7995a0f4e46902f9472" integrity sha512-XafM0UMG0TbkAh4UgCYkPUC95SEJKI9GQHP6W685PL8H5cOTIElALRZ5zx1H7wO+i2Jy+1NyZ20vDfwqcCChgg== dependencies: cache-loader "^3.0.0" ts-loader "^7.0.3" -vuepress@^1.8.2: - version "1.9.5" - resolved "https://registry.yarnpkg.com/vuepress/-/vuepress-1.9.5.tgz#6078ee01d9b4074b93834d77e6f086dd85fbc62e" - integrity sha512-cLLCKkJSxL0PCgHZILrZ13z57Wi66zABhwe2n0JaoXq/bWXdGPfr9WoObVdQ0p186I/IKRIw4Ip22Y6qy+JA8g== - dependencies: - "@vuepress/core" "1.9.5" - "@vuepress/theme-default" "1.9.5" - "@vuepress/types" "1.9.5" - cac "^6.5.6" - envinfo "^7.2.0" - opencollective-postinstall "^2.0.2" - update-notifier "^4.0.0" - -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" - -walker@^1.0.7: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== +vuepress-theme-dumi@^0.1.1: + version "0.1.1" + resolved "https://registry.npmmirror.com/vuepress-theme-dumi/-/vuepress-theme-dumi-0.1.1.tgz#eee1abed8ce51a05c2c207aa7d808d9b66f844bf" + integrity sha512-/EYIHdu8tVvY7AG4i0eQiZ+Paa6fy8020v0cO7w3su/uk56ZfgQ8n73RNcF/HbSaVXSgpisAe+1J4eYlJp+s3A== + dependencies: + "@vuepress/client" "^2.0.0-beta.37" + "@vuepress/core" "^2.0.0-beta.37" + "@vuepress/plugin-active-header-links" "^2.0.0-beta.37" + "@vuepress/plugin-back-to-top" "^2.0.0-beta.37" + "@vuepress/plugin-container" "^2.0.0-beta.37" + "@vuepress/plugin-external-link-icon" "^2.0.0-beta.37" + "@vuepress/plugin-git" "^2.0.0-beta.37" + "@vuepress/plugin-medium-zoom" "^2.0.0-beta.37" + "@vuepress/plugin-nprogress" "^2.0.0-beta.37" + "@vuepress/plugin-prismjs" "^2.0.0-beta.37" + "@vuepress/plugin-search" "^2.0.0-beta.37" + "@vuepress/plugin-theme-data" "^2.0.0-beta.37" + "@vuepress/shared" "^2.0.0-beta.37" + "@vuepress/utils" "^2.0.0-beta.37" + "@vueuse/core" "^5.0.0" + vue "^3.2.31" + vue-router "^4.0.14" + +vuepress-vite@2.0.0-beta.38: + version "2.0.0-beta.38" + resolved "https://registry.npmmirror.com/vuepress-vite/-/vuepress-vite-2.0.0-beta.38.tgz#d1aa7badecc3686bf77ed5665614b243d8f37d6c" + integrity sha512-jta0bZx+5smMkHI2s7bq+PJdvFK2jn08UsNL81IdLPNw34zwpdRthfT2v2lqtZnJOe2/E4ktWAhzwS3Oxu2GCw== + dependencies: + "@vuepress/bundler-vite" "2.0.0-beta.38" + "@vuepress/cli" "2.0.0-beta.38" + "@vuepress/core" "2.0.0-beta.38" + "@vuepress/theme-default" "2.0.0-beta.38" + +vuepress@2.0.0-beta.38: + version "2.0.0-beta.38" + resolved "https://registry.npmmirror.com/vuepress/-/vuepress-2.0.0-beta.38.tgz#399a8f11809b27dbe6bdd0e7b20e27497a9521c9" + integrity sha512-NM6ekt5/aBsfPsp1VzuR8dEnia1nicmxFus/HMAe1x222jFGIr6XbX89jYYJuaPFMA4QwMcblY/PD6MCE65SrQ== + dependencies: + vuepress-vite "2.0.0-beta.38" + +w3c-xmlserializer@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073" + integrity sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw== dependencies: - makeerror "1.0.12" + xml-name-validator "^4.0.0" warning@^4.0.0: version "4.0.3" - resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + resolved "https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== dependencies: loose-envify "^1.0.0" -watchpack-chokidar2@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" - integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== - dependencies: - chokidar "^2.1.8" - -watchpack@^1.7.4: - version "1.7.5" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" - integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== - dependencies: - graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.1" - -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" - -wcwidth@^1.0.0: +wcwidth@^1.0.0, wcwidth@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + resolved "https://registry.npmmirror.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== dependencies: defaults "^1.0.3" webidl-conversions@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= - -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== + resolved "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== webidl-conversions@^6.1.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + resolved "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== -webpack-chain@^4.9.0: - version "4.12.1" - resolved "https://registry.yarnpkg.com/webpack-chain/-/webpack-chain-4.12.1.tgz#6c8439bbb2ab550952d60e1ea9319141906c02a6" - integrity sha512-BCfKo2YkDe2ByqkEWe1Rw+zko4LsyS75LVr29C6xIrxAg9JHJ4pl8kaIZ396SUSNp6b4815dRZPSTAS8LlURRQ== - dependencies: - deepmerge "^1.5.2" - javascript-stringify "^1.6.0" - -webpack-chain@^6.0.0: - 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" +webidl-conversions@^7.0.0: + version "7.0.0" + resolved "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" + integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== -webpack-dev-middleware@^3.7.2: - version "3.7.3" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" - integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== - dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" - range-parser "^1.2.1" - webpack-log "^2.0.0" - -webpack-dev-server@^3.5.1: - version "3.11.3" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz#8c86b9d2812bf135d3c9bce6f07b718e30f7c3d3" - integrity sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA== - dependencies: - ansi-html-community "0.0.8" - bonjour "^3.5.0" - chokidar "^2.1.8" - compression "^1.7.4" - connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" - express "^4.17.1" - html-entities "^1.3.1" - http-proxy-middleware "0.19.1" - import-local "^2.0.0" - internal-ip "^4.3.0" - ip "^1.1.5" - is-absolute-url "^3.0.3" - killable "^1.0.1" - loglevel "^1.6.8" - opn "^5.5.0" - p-retry "^3.0.1" - portfinder "^1.0.26" - schema-utils "^1.0.0" - selfsigned "^1.10.8" - semver "^6.3.0" - serve-index "^1.9.1" - sockjs "^0.3.21" - sockjs-client "^1.5.0" - spdy "^4.0.2" - strip-ansi "^3.0.1" - supports-color "^6.1.0" - url "^0.11.0" - webpack-dev-middleware "^3.7.2" - webpack-log "^2.0.0" - ws "^6.2.1" - yargs "^13.3.2" - -webpack-log@^2.0.0: +whatwg-encoding@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== - dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" - -webpack-merge@^4.1.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" - integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== - dependencies: - lodash "^4.17.15" - -webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack@^4.8.1: - version "4.46.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" - integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.5.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.7.4" - webpack-sources "^1.4.1" - -webpackbar@3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/webpackbar/-/webpackbar-3.2.0.tgz#bdaad103fad11a4e612500e72aaae98b08ba493f" - integrity sha512-PC4o+1c8gWWileUfwabe0gqptlXUDJd5E0zbpr2xHP1VSOVlZVPBZ8j6NCR8zM5zbKdxPhctHXahgpNK1qFDPw== - dependencies: - ansi-escapes "^4.1.0" - chalk "^2.4.1" - consola "^2.6.0" - figures "^3.0.0" - pretty-time "^1.1.0" - std-env "^2.2.1" - text-table "^0.2.0" - wrap-ansi "^5.1.0" - -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + resolved "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" + integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" + iconv-lite "0.6.3" -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== +whatwg-mimetype@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" + integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== -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== +whatwg-url@^11.0.0: + version "11.0.0" + resolved "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" + integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== 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== + tr46 "^3.0.0" + webidl-conversions "^7.0.0" whatwg-url@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + resolved "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" -whatwg-url@^8.0.0, whatwg-url@^8.4.0, whatwg-url@^8.5.0: +whatwg-url@^8.4.0: version "8.7.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" + resolved "https://registry.npmmirror.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" -when@~3.6.x: - version "3.6.4" - resolved "https://registry.yarnpkg.com/when/-/when-3.6.4.tgz#473b517ec159e2b85005497a13983f095412e34e" - integrity sha1-RztRfsFZ4rhQBUl6E5g/CVQS404= - which-boxed-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + resolved "https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== dependencies: is-bigint "^1.0.1" @@ -16467,83 +12747,61 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= +which-typed-array@^1.1.11: + version "1.1.11" + resolved "https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a" + integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" which@^1.2.10, which@^1.2.12, which@^1.2.9, which@^1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + resolved "https://registry.npmmirror.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" which@^2.0.1, which@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + resolved "https://registry.npmmirror.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" wide-align@^1.1.0: version "1.1.5" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + resolved "https://registry.npmmirror.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== dependencies: string-width "^1.0.2 || 2 || 3 || 4" widest-line@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" + resolved "https://registry.npmmirror.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== dependencies: string-width "^2.1.1" -widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== - dependencies: - string-width "^4.0.0" - -word-wrap@^1.2.3, word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - wordwrap@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= - -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" + resolved "https://registry.npmmirror.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== wrap-ansi@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" - integrity sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo= + resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" + integrity sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ== dependencies: string-width "^2.1.1" strip-ansi "^4.0.0" -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -16552,12 +12810,12 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + resolved "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== write-file-atomic@^2.0.0, write-file-atomic@^2.4.2: version "2.4.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" + resolved "https://registry.npmmirror.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== dependencies: graceful-fs "^4.1.11" @@ -16566,7 +12824,7 @@ write-file-atomic@^2.0.0, write-file-atomic@^2.4.2: write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + resolved "https://registry.npmmirror.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== dependencies: imurmurhash "^0.1.4" @@ -16576,7 +12834,7 @@ write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: write-json-file@^3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-3.2.0.tgz#65bbdc9ecd8a1458e15952770ccbadfcff5fe62a" + resolved "https://registry.npmmirror.com/write-json-file/-/write-json-file-3.2.0.tgz#65bbdc9ecd8a1458e15952770ccbadfcff5fe62a" integrity sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ== dependencies: detect-indent "^5.0.0" @@ -16588,7 +12846,7 @@ write-json-file@^3.2.0: write-json-file@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-4.3.0.tgz#908493d6fd23225344af324016e4ca8f702dd12d" + resolved "https://registry.npmmirror.com/write-json-file/-/write-json-file-4.3.0.tgz#908493d6fd23225344af324016e4ca8f702dd12d" integrity sha512-PxiShnxf0IlnQuMYOPPhPkhExoCQuTUNPOa/2JWCYTmBquU9njyyDuwRKN26IZBlp4yn1nt+Agh2HOOBl+55HQ== dependencies: detect-indent "^6.0.0" @@ -16600,127 +12858,91 @@ write-json-file@^4.3.0: write-pkg@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-4.0.0.tgz#675cc04ef6c11faacbbc7771b24c0abbf2a20039" + resolved "https://registry.npmmirror.com/write-pkg/-/write-pkg-4.0.0.tgz#675cc04ef6c11faacbbc7771b24c0abbf2a20039" integrity sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA== dependencies: sort-keys "^2.0.0" type-fest "^0.4.1" write-json-file "^3.2.0" -ws@^6.2.1: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" - integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== - dependencies: - async-limiter "~1.0.0" - -ws@^7.4.6: - version "7.5.6" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b" - integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== +ws@^8.11.0: + version "8.14.2" + resolved "https://registry.npmmirror.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" + integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== xdg-basedir@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" - integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= + resolved "https://registry.npmmirror.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + integrity sha512-1Dly4xqlulvPD3fZUQJLY+FUIeqN3N2MM3uqe4rCJftAvOjFa3jFGfctOgluGx4ahPbUCsZkmJILiP0Vi4T6lQ== -xdg-basedir@^4.0.0: +xml-name-validator@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" - integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== - -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== + resolved "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" + integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== xmlchars@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + resolved "https://registry.npmmirror.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== xtend@^4.0.0, xtend@~4.0.1: version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + resolved "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^3.2.1: version "3.2.2" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" + resolved "https://registry.npmmirror.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== y18n@^4.0.0: version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + resolved "https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== y18n@^5.0.5: version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + resolved "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yallist@^2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + resolved "https://registry.npmmirror.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + resolved "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yallist@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + resolved "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yaml@^1.10.0, yaml@^1.10.2: version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + resolved "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== yargs-parser@20.2.4: version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + resolved "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== -yargs-parser@20.x, yargs-parser@^20.2.2, yargs-parser@^20.2.3: +yargs-parser@^20.2.2, yargs-parser@^20.2.3, yargs-parser@^20.2.9: version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + resolved "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.0.tgz#a485d3966be4317426dd56bdb6a30131b281dc55" - integrity sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA== - -yargs@^13.3.2: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== yargs@^16.2.0: version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + resolved "https://registry.npmmirror.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== dependencies: cliui "^7.0.2" @@ -16732,31 +12954,31 @@ yargs@^16.2.0: yargs-parser "^20.2.2" yargs@^17.0.0: - version "17.3.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.3.1.tgz#da56b28f32e2fd45aefb402ed9c26f42be4c07b9" - integrity sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA== + version "17.7.2" + resolved "https://registry.npmmirror.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: - cliui "^7.0.2" + cliui "^8.0.1" escalade "^3.1.1" get-caller-file "^2.0.5" require-directory "^2.1.1" string-width "^4.2.3" y18n "^5.0.5" - yargs-parser "^21.0.0" + yargs-parser "^21.1.1" yn@3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + resolved "https://registry.npmmirror.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + resolved "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== yup@^0.27.0: version "0.27.0" - resolved "https://registry.yarnpkg.com/yup/-/yup-0.27.0.tgz#f8cb198c8e7dd2124beddc2457571329096b06e7" + resolved "https://registry.npmmirror.com/yup/-/yup-0.27.0.tgz#f8cb198c8e7dd2124beddc2457571329096b06e7" integrity sha512-v1yFnE4+u9za42gG/b/081E7uNW9mUj3qtkmelLbW5YPROZzSH/KUUyJu9Wt8vxFJcT9otL/eZopS0YK1L5yPQ== dependencies: "@babel/runtime" "^7.0.0" @@ -16765,8 +12987,3 @@ yup@^0.27.0: property-expr "^1.5.0" synchronous-promise "^2.0.6" toposort "^2.0.2" - -zepto@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/zepto/-/zepto-1.2.0.tgz#e127bd9e66fd846be5eab48c1394882f7c0e4f98" - integrity sha1-4Se9nmb9hGvl6rSME5SIL3wOT5g=