feat: fes-plugin-state 60%

This commit is contained in:
万纯 2020-12-11 18:43:24 +08:00
parent d263c4a8cf
commit 88971a2e29
18 changed files with 772 additions and 55 deletions

View File

@ -4,7 +4,7 @@ import { join } from 'path';
// utils must build before core
// runtime must build before renderer-react
const headPkgs = ['fes-runtime', 'fes-core', 'fes', 'fes-plugin-built-in', 'fes-plugin-request', 'fes-plugin-access', 'fes-plugin-initstate'];
const headPkgs = ['fes-runtime', 'fes-core', 'fes', 'fes-plugin-built-in', 'fes-plugin-request', 'fes-plugin-access', 'fes-plugin-state'];
const tailPkgs = [];
// const otherPkgs = readdirSync(join(__dirname, 'packages')).filter(
// (pkg) =>

View File

@ -1,21 +0,0 @@
import { readFileSync } from 'fs';
import { join } from 'path';
const namespace = 'plugin-initstate';
export default (api) => {
api.addRuntimePluginKey(() => 'initstate');
const absRuntimeFilePath = join(namespace, 'runtime.js');
api.onGenerateFiles(() => {
api.writeTmpFile({
path: absRuntimeFilePath,
content: readFileSync(join(__dirname, 'template/runtime.tpl'), 'utf-8')
});
});
api.addRuntimePlugin(() => `@@/${absRuntimeFilePath}`);
};

View File

@ -1,28 +0,0 @@
import { defineComponent } from 'vue'
export function rootContainer(childComponent, args){
console.log(childComponent, args)
const App = {
setup() {
const state = reactive({
loading: true
})
onMounted(()=>{
setTimeout(() => {
state.loading = false
}, 3000);
})
return () => {
if(state.loading){
return (
<>
<div>loading</div>
</>
)
}
return <childComponent />
}
}
}
return App
}

View File

@ -1,5 +1,5 @@
{
"name": "@webank/fes-plugin-initstate",
"name": "@webank/fes-plugin-state",
"version": "1.0.0",
"description": "",
"main": "lib/index.js",
@ -15,5 +15,8 @@
"license": "MIT",
"peerDependencies": {
"@webank/fes": "^2.0.0"
},
"dependencies": {
"@umijs/utils": "^3.2.24"
}
}

View File

@ -0,0 +1,87 @@
import { readFileSync } from 'fs';
import { join } from 'path';
import { lodash, winPath } from '@umijs/utils';
import { getModels } from './utils/getModels';
import { getTmpFile } from './utils/getTmpFile';
const namespace = 'plugin-state';
export default (api) => {
const {
paths,
utils: { Mustache }
} = api;
function getModelDir() {
return api.config.singular ? 'model' : 'models';
}
function getModelsPath() {
return join(paths.absSrcPath, getModelDir());
}
function getAllModels() {
const srcModelsPath = getModelsPath();
return lodash.uniq([
...getModels(srcModelsPath),
...getModels(
paths.absPagesPath,
`**/${getModelDir()}/**/*.{js,jsx}`,
),
...getModels(paths.absPagesPath, '**/*.model.{js,jsx}')
]);
}
const absCoreFilePath = join(namespace, 'core.js');
const absRuntimeFilePath = join(namespace, 'runtime.js');
const absInitlaStateFilePath = join(namespace, 'models/initialState.js');
api.register({
key: 'addExtraModels',
fn: () => [{
absPath: winPath(join(paths.absTmpPath, absInitlaStateFilePath)),
namespace: '@@initialState'
}]
});
api.onGenerateFiles(async () => {
const files = getAllModels();
const additionalModels = await api.applyPlugins({
key: 'addExtraModels',
type: api.ApplyPluginsType.add,
initialValue: []
});
const tmpFiles = getTmpFile(files, additionalModels, paths.absSrcPath);
console.log(tmpFiles);
api.writeTmpFile({
path: absCoreFilePath,
content: Mustache.render(readFileSync(join(__dirname, 'template/core.tpl'), 'utf-8'), {
...tmpFiles
})
});
api.writeTmpFile({
path: absRuntimeFilePath,
content: Mustache.render(readFileSync(join(__dirname, 'template/runtime.tpl'), 'utf-8'), {
})
});
api.writeTmpFile({
path: absInitlaStateFilePath,
content: Mustache.render(readFileSync(join(__dirname, 'models/initialState.tpl'), 'utf-8'), {
})
});
});
// 注册 getInitialState 方法
api.addRuntimePluginKey(() => 'getInitialState');
// 注册 initialStateConfig 方法
api.addRuntimePluginKey(() => 'initialStateConfig');
api.addRuntimePlugin(() => `@@/${absRuntimeFilePath}`);
};

View File

@ -0,0 +1,14 @@
{{{userImports}}}
{{{extraImports}}}
export const models = {
{{#extraModels}}
{{{extraModels}}},
{{/extraModels}}
{{#userModels}}
{{{userModels}}},
{{/userModels}}
}
export const useModel = ()=>{
}

View File

@ -0,0 +1,25 @@
import { defineComponent, reactive, onMounted } from "vue";
import { plugin, ApplyPluginsType } from "@@/core/coreExports";
import { useModel } from "./core.js";
export function rootContainer(childComponent, args) {
const useRuntimeConfig =
plugin.applyPlugins({
key: "initialStateConfig",
type: ApplyPluginsType.modify,
initialValue: {},
}) || {};
return () => {
const { loading = false } = useModel("@@initialState") || {};
if (loading) {
return useRuntimeConfig.loading ? (
<useRuntimeConfig.loading />
) : (
<>
<div>loading</div>
</>
);
}
return <childComponent />;
};
}

View File

@ -0,0 +1,16 @@
import { glob } from '@umijs/utils';
import { getValidFiles } from '.';
export function getModels(cwd, pattern) {
const files = glob
.sync(pattern || '**/*.{js,jsx}', {
cwd
})
.filter(
file => !file.endsWith('.d.ts')
&& !file.endsWith('.test.js')
&& !file.endsWith('.test.jsx')
);
return getValidFiles(files, cwd);
}

View File

@ -0,0 +1,53 @@
import { EOL } from 'os';
import { winPath } from '@umijs/utils';
import {
genImports, genModels, genExtraModels
} from './index';
function getModels(files, absSrcPath) {
const sortedModels = genModels(files, absSrcPath);
return sortedModels
.map(ele => `'${ele.namespace.replace(/'/g, "\\'")}': ${ele.importName}`)
.join(', ');
}
function getExtraModels(models = [], absSrcPath) {
const extraModels = genExtraModels(models, absSrcPath);
return extraModels
.map(ele => `'${ele.namespace}': ${ele.exportName || ele.importName}`)
.join(', ');
}
function getExtraImports(models = [], absSrcPath) {
const extraModels = genExtraModels(models, absSrcPath);
return extraModels
.map((ele) => {
if (ele.exportName) {
return `import { ${ele.exportName} } from '${winPath(
ele.importPath.replace(/'/g, "\\'"),
)}';`;
}
return `import ${ele.importName} from '${winPath(
ele.importPath.replace(/'/g, "\\'"),
)}';`;
})
.join(EOL);
}
export const getTmpFile = (
files,
extra = [],
absSrcPath,
) => {
const userImports = genImports(files);
const userModels = getModels(files, absSrcPath);
const extraImports = getExtraImports(extra, absSrcPath);
const extraModels = getExtraModels(extra, absSrcPath);
return {
userImports,
userModels,
extraImports,
extraModels
};
};

View File

@ -0,0 +1,225 @@
import path from 'path';
import { EOL } from 'os';
import { readFileSync } from 'fs';
import { parser, traverse, winPath } from '@umijs/utils';
const getFileName = (name) => {
const fileName = path.basename(name, path.extname(name));
if (fileName.endsWith('.model') || fileName.endsWith('.models')) {
return fileName.split('.').slice(0, -1).join('.');
}
return fileName;
};
export const getName = (absPath, absSrcPath) => {
const relativePath = path.relative(absSrcPath, absPath);
// model files with namespace
const dirList = path.dirname(relativePath).split(path.sep);
try {
const validDirs = dirList.filter(
ele => !['src', 'page', 'pages', 'model', 'models'].includes(ele)
);
if (validDirs && validDirs.length) {
return `${validDirs.join('.')}.${getFileName(relativePath)}`;
}
return getFileName(relativePath);
} catch (e) {
return getFileName(relativePath);
}
};
export const getPath = (absPath) => {
const info = path.parse(absPath);
return winPath(path.join(info.dir, info.name).replace(/'/, "'"));
};
export const genImports = imports => imports
.map(
(ele, index) => `import model${index} from "${winPath(getPath(ele))}";`
)
.join(EOL);
export const genExtraModels = (models = [], absSrcPath) => models.map((ele) => {
if (typeof ele === 'string') {
return {
importPath: getPath(ele),
importName: path.basename(ele).split('.')[0],
namespace: getName(ele, absSrcPath)
};
}
return {
importPath: getPath(ele.absPath),
importName: path.basename(ele.absPath).split('.')[0],
namespace: ele.namespace,
exportName: ele.exportName
};
});
export const sort = (ns) => {
let final = [];
ns.forEach((item, index) => {
if (item.use && item.use.length) {
const itemGroup = [...item.use, item.namespace];
const cannotUse = [item.namespace];
for (let i = 0; i <= index; i += 1) {
if (ns[i].use.filter(v => cannotUse.includes(v)).length) {
if (!cannotUse.includes(ns[i].namespace)) {
cannotUse.push(ns[i].namespace);
i = -1;
}
}
}
const errorList = item.use.filter(v => cannotUse.includes(v));
if (errorList.length) {
throw Error(
`Circular dependencies: ${
item.namespace
} can't use ${errorList.join(', ')}`
);
}
const intersection = final.filter(v => itemGroup.includes(v));
if (intersection.length) {
// first intersection
const finalIndex = final.indexOf(intersection[0]);
// replace with groupItem
final = final
.slice(0, finalIndex)
.concat(itemGroup)
.concat(final.slice(finalIndex + 1));
} else {
final.push(...itemGroup);
}
}
if (!final.includes(item.namespace)) {
// first occurance append to the end
final.push(item.namespace);
}
});
return [...new Set(final)];
};
export const genModels = (imports, absSrcPath) => {
const contents = imports.map(absPath => ({
namespace: getName(absPath, absSrcPath),
content: readFileSync(absPath).toString()
}));
const allUserModel = imports.map(absPath => getName(absPath, absSrcPath));
const checkDuplicates = list => new Set(list).size !== list.length;
const raw = contents.map((ele, index) => {
const ast = parser.parse(ele.content, {
sourceType: 'module',
plugins: ['jsx', 'typescript']
});
const use = [];
traverse.default(ast, {
enter(astPath) {
if (astPath.isIdentifier({ name: 'useModel' })) {
try {
// string literal
const ns = astPath.parentPath.node.arguments[0].value;
if (allUserModel.includes(ns)) {
use.push(ns);
}
} catch (e) {
// console.log(e)
}
}
}
});
return { namespace: ele.namespace, use, importName: `model${index}` };
});
const models = sort(raw);
if (checkDuplicates(contents.map(ele => ele.namespace))) {
throw Error('umi: models 中包含重复的 namespace');
}
return raw.sort(
(a, b) => models.indexOf(a.namespace) - models.indexOf(b.namespace)
);
};
export const isValidHook = (filePath) => {
const content = readFileSync(filePath, { encoding: 'utf-8' }).toString();
const ast = parser.parse(content, {
sourceType: 'module',
plugins: [
'classProperties',
'dynamicImport',
'exportDefaultFrom',
'exportNamespaceFrom',
'functionBind',
'nullishCoalescingOperator',
'objectRestSpread',
'optionalChaining',
'decorators-legacy'
].filter(Boolean)
});
let valid = false;
let identifierName = '';
traverse.default(ast, {
enter(p) {
if (p.isExportDefaultDeclaration()) {
const { type } = p.node.declaration;
try {
if (
type === 'ArrowFunctionExpression'
|| type === 'FunctionDeclaration'
) {
valid = true;
} else if (type === 'Identifier') {
identifierName = p.node.declaration.name;
}
} catch (e) {
console.error(e);
}
}
}
});
try {
if (identifierName) {
ast.program.body.forEach((ele) => {
if (ele.type === 'FunctionDeclaration') {
if (ele.id?.name === identifierName) {
valid = true;
}
}
if (ele.type === 'VariableDeclaration') {
if (
ele.declarations[0].id.name === identifierName
&& ele.declarations[0].init.type
=== 'ArrowFunctionExpression'
) {
valid = true;
}
}
});
}
} catch (e) {
valid = false;
}
return valid;
};
export const getValidFiles = (files, modelsDir) => files
.map((file) => {
const filePath = path.join(modelsDir, file);
const valid = isValidHook(filePath);
if (valid) {
return filePath;
}
return '';
})
.filter(ele => !!ele);

View File

@ -34,6 +34,8 @@
"dependencies": {
"vue": "^3.0.2",
"@webank/fes": "^2.0.0",
"@webank/fes-plugin-access": "^1.0.0"
"@webank/fes-plugin-access": "^1.0.0",
"@webank/fes-plugin-state": "^1.0.0",
"ant-design-vue": "2.0.0-rc.3"
}
}

View File

@ -0,0 +1,9 @@
import PageLoading from '@/components/PageLoading.vue';
/**
* 获取用户信息比较慢的时候会展示一个 loading
*/
export const initialStateConfig = {
loading: <PageLoading />
};

View File

@ -0,0 +1,29 @@
<template>
<div class="page-loading">
<Spin size="large" />
</div>
</template>
<script>
import { Spin } from 'ant-design-vue';
import 'ant-design-vue/lib/spin/style';
export default {
setup() {
return {
Spin
};
}
};
</script>
<style>
.page-loading{
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: flex;
align-items: center;
justify-content: center;
}
</style>

View File

View File

@ -15,7 +15,7 @@ export default {
const fes = ref('fes upgrade to vue3');
const accessOnepicess = useAccess('/onepiece');
onMounted(() => {
console.log('mounted!');
console.log('mounted!!!');
console.log(router);
setAccess(new Promise((resolve) => {
setTimeout(() => {

307
yarn.lock
View File

@ -2,6 +2,39 @@
# yarn lockfile v1
"@ant-design-vue/use@^0.0.1-0":
version "0.0.1-alpha.8"
resolved "https://registry.yarnpkg.com/@ant-design-vue/use/-/use-0.0.1-alpha.8.tgz#7fd8a1b8a095377fdb50cc20e1fc2f68145e49c4"
integrity sha512-E8OLKvsVZjthRfGCA1CT2s7FoWl1HcgxTJFrHTcfMSaNXVT9jZEcJNM3K454gvfpgz3Iu35hwDknSKC4+kMYpA==
dependencies:
async-validator "^3.4.0"
lodash-es "^4.17.15"
resize-observer-polyfill "^1.5.1"
vue "^3.0.0"
"@ant-design/colors@^5.0.0":
version "5.0.0"
resolved "https://registry.yarnpkg.com/@ant-design/colors/-/colors-5.0.0.tgz#46b73b4cc6935b35fc8b84555e8e42c8cfc190e6"
integrity sha512-Pe1rYorgVC1v4f+InDXvIlQH715pO1g7BsOhy/ehX/U6ebPKqojmkYJKU3lF+84Zmvyar7ngZ28hesAa1nWjLg==
dependencies:
"@ctrl/tinycolor" "^3.1.6"
"@ant-design/icons-svg@^4.0.0":
version "4.1.0"
resolved "https://registry.yarnpkg.com/@ant-design/icons-svg/-/icons-svg-4.1.0.tgz#480b025f4b20ef7fe8f47d4a4846e4fee84ea06c"
integrity sha512-Fi03PfuUqRs76aI3UWYpP864lkrfPo0hluwGqh7NJdLhvH4iRDc3jbJqZIvRDLHKbXrvAfPPV3+zjUccfFvWOQ==
"@ant-design/icons-vue@^5.1.6":
version "5.1.8"
resolved "https://registry.yarnpkg.com/@ant-design/icons-vue/-/icons-vue-5.1.8.tgz#77d75bf2f0d35af50cf8d0bf689fb13760eff2ec"
integrity sha512-Ml3/+ZQtrCNPV/S8rMKON6eLOkPQwZHwKMdxRPm93Hw3SKc/LYacGpESdTeYOlShE90iHqt+zWZxzrb28ga0sw==
dependencies:
"@ant-design/colors" "^5.0.0"
"@ant-design/icons-svg" "^4.0.0"
"@babel/runtime" "^7.10.4"
"@types/lodash" "^4.14.165"
lodash "^4.17.15"
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4":
version "7.10.4"
resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a"
@ -1411,7 +1444,7 @@
dependencies:
regenerator-runtime "^0.13.4"
"@babel/runtime@7.12.5":
"@babel/runtime@7.12.5", "@babel/runtime@^7.10.4", "@babel/runtime@^7.10.5":
version "7.12.5"
resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e"
integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==
@ -1662,6 +1695,11 @@
resolved "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7"
integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==
"@ctrl/tinycolor@^3.1.6":
version "3.2.1"
resolved "https://registry.yarnpkg.com/@ctrl/tinycolor/-/tinycolor-3.2.1.tgz#29a5a86bcfaa41555c8483a287294e520cc28cd6"
integrity sha512-WmvsSfVKQx62vLbHXJvdh4PDjSK9YU6VW9ppXTlbjgDKCYtpy2sMWbK4i9OBdxY6RRwMMVctZhWo6Y5jfMRyTg==
"@evocateur/libnpmaccess@^3.1.2":
version "3.1.2"
resolved "https://registry.npmjs.org/@evocateur/libnpmaccess/-/libnpmaccess-3.1.2.tgz#ecf7f6ce6b004e9f942b098d92200be4a4b1c845"
@ -2638,6 +2676,14 @@
resolved "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df"
integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==
"@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"
"@sindresorhus/is@^0.14.0":
version "0.14.0"
resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea"
@ -2915,6 +2961,11 @@
resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.161.tgz#a21ca0777dabc6e4f44f3d07f37b765f54188b18"
integrity sha512-EP6O3Jkr7bXvZZSZYlsgt5DIjiGr0dXP1/jVEwVLTFgg0d+3lWVQkRavYVQszV7dYUwvg0B8R0MBDpcmXg7XIA==
"@types/lodash@^4.14.165":
version "4.14.165"
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.165.tgz#74d55d947452e2de0742bad65270433b63a8c30f"
integrity sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==
"@types/marked-terminal@^3.1.1":
version "3.1.1"
resolved "https://registry.npmjs.org/@types/marked-terminal/-/marked-terminal-3.1.1.tgz#130214af1afafda611f69e8528c07230a00b32b2"
@ -3526,6 +3577,17 @@
estree-walker "^2.0.1"
source-map "^0.6.1"
"@vue/compiler-core@3.0.4":
version "3.0.4"
resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.0.4.tgz#0122aca6eada4cb28b39ed930af917444755e330"
integrity sha512-snpMICsbWTZqBFnPB03qr4DtiSxVYfDF3DvbDSkN9Z9NTM8Chl8E/lYhKBSsvauq91DAWAh8PU3lr9vrLyQsug==
dependencies:
"@babel/parser" "^7.12.0"
"@babel/types" "^7.12.0"
"@vue/shared" "3.0.4"
estree-walker "^2.0.1"
source-map "^0.6.1"
"@vue/compiler-dom@3.0.2":
version "3.0.2"
resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.2.tgz#1d40de04bcdf9aabb79fb6a802dd70a2f3c2992a"
@ -3534,6 +3596,14 @@
"@vue/compiler-core" "3.0.2"
"@vue/shared" "3.0.2"
"@vue/compiler-dom@3.0.4":
version "3.0.4"
resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.0.4.tgz#834fd4b15c5698cf9f4505c2bfbccca058a843eb"
integrity sha512-FOxbHBIkkGjYQeTz1DlXQjS1Ms8EPXQWsdTdTPeohoS0KzCz6RiOjiAG+jLtMi6Nr5GX2h0TlCvcnI8mcsicFQ==
dependencies:
"@vue/compiler-core" "3.0.4"
"@vue/shared" "3.0.4"
"@vue/compiler-sfc@^3.0.0":
version "3.0.2"
resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.0.2.tgz#22c70fed72c347a4d5fa2db2e80594b3193dce57"
@ -3571,6 +3641,13 @@
dependencies:
"@vue/shared" "3.0.2"
"@vue/reactivity@3.0.4":
version "3.0.4"
resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.0.4.tgz#b6599dd8271a745960a03f05744ccf7991ba5d8d"
integrity sha512-AFTABrLhUYZY2on3ea9FxeXal7w3f6qIp9gT+/oG93H7dFTL5LvVnxygCopv7tvkIl/GSGQb/yK1D1gmXx1Pww==
dependencies:
"@vue/shared" "3.0.4"
"@vue/runtime-core@3.0.2":
version "3.0.2"
resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.0.2.tgz#d7ed462af1cb0bf9836668e4e6fab3f2f4b1bc00"
@ -3579,6 +3656,14 @@
"@vue/reactivity" "3.0.2"
"@vue/shared" "3.0.2"
"@vue/runtime-core@3.0.4":
version "3.0.4"
resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.0.4.tgz#a5b9a001560b1fd8c01a43f68b764c555de7836c"
integrity sha512-qH9e4kqU7b3u1JewvLmGmoAGY+mnuBqz7aEKb2mhpEgwa1yFv496BRuUfMXXMCix3+TndUVMJ8jt41FSdNppwg==
dependencies:
"@vue/reactivity" "3.0.4"
"@vue/shared" "3.0.4"
"@vue/runtime-dom@3.0.2":
version "3.0.2"
resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.2.tgz#9d166d03225558025d3d80f5039b646e0051b71c"
@ -3588,11 +3673,25 @@
"@vue/shared" "3.0.2"
csstype "^2.6.8"
"@vue/runtime-dom@3.0.4":
version "3.0.4"
resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.0.4.tgz#6f81aec545f24511d2c28a315aa3391420b69c68"
integrity sha512-BGIoiTSESzWUhN0Ofi2X/q+HN8f6IUFmUEyyBGKbmx7DTAJNZhFfjqsepfXQrM5IGeTfJLB1ZEVyroDQJNXq3g==
dependencies:
"@vue/runtime-core" "3.0.4"
"@vue/shared" "3.0.4"
csstype "^2.6.8"
"@vue/shared@3.0.2":
version "3.0.2"
resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.0.2.tgz#419bd85a2ebdbd4f42963e98c5a1b103452176d9"
integrity sha512-Zx869zlNoujFOclKIoYmkh8ES2RcS/+Jn546yOiPyZ+3+Ejivnr+fb8l+DdXUEFjo+iVDNR3KyLzg03aBFfZ4Q==
"@vue/shared@3.0.4":
version "3.0.4"
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.0.4.tgz#6dc50f593bdfdeaa6183d1dbc15e2d45e7c6b8b3"
integrity sha512-Swfbz31AaMX48CpFl+YmIrqOH9MgJMTrltG9e26A4ZxYx9LjGuMV+41WnxFzS3Bc9nbrc6sDPM37G6nIT8NJSg==
"@webank/eslint-config-webank@^0.1.4", "@webank/eslint-config-webank@^0.1.7":
version "0.1.7"
resolved "https://registry.npmjs.org/@webank/eslint-config-webank/-/eslint-config-webank-0.1.7.tgz#6655b1fe344b8fa2115ab8656a75692a86712704"
@ -3825,6 +3924,13 @@ acorn@^7.1.0:
resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
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"
address@1.1.2:
version "1.1.2"
resolved "https://registry.npmjs.org/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6"
@ -4009,6 +4115,40 @@ ansicolors@~0.3.2:
resolved "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979"
integrity sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=
ant-design-vue@2.0.0-rc.3:
version "2.0.0-rc.3"
resolved "https://registry.yarnpkg.com/ant-design-vue/-/ant-design-vue-2.0.0-rc.3.tgz#22f81d0fc495d2aeff343925d5750e0e34106f86"
integrity sha512-dz7VOfxJZIHy7xCrMDBV8zYaVOyeuAFAxewWZy0StCWpbILqQWynb9sK4Nseh3N5ZMFPOD/e8FFiA9cXdNtEyw==
dependencies:
"@ant-design-vue/use" "^0.0.1-0"
"@ant-design/icons-vue" "^5.1.6"
"@babel/runtime" "^7.10.5"
"@simonwep/pickr" "~1.7.0"
add-dom-event-listener "^1.0.2"
array-tree-filter "^2.1.0"
async-validator "^3.3.0"
babel-helper-vue-jsx-merge-props "^2.0.3"
component-classes "^1.2.6"
dom-align "^1.10.4"
dom-closest "^0.2.0"
dom-scroll-into-view "^2.0.0"
intersperse "^1.0.0"
is-mobile "^2.2.1"
is-negative-zero "^2.0.0"
ismobilejs "^1.0.0"
json2mq "^0.2.0"
lodash-es "^4.17.15"
moment "^2.27.0"
node-emoji "^1.10.0"
omit.js "^2.0.0"
raf "^3.4.0"
resize-observer-polyfill "^1.5.1"
scroll-into-view-if-needed "^2.2.25"
shallow-equal "^1.0.0"
shallowequal "^1.0.2"
vue-types "^3.0.0"
warning "^4.0.0"
any-promise@^1.0.0:
version "1.3.0"
resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
@ -4129,6 +4269,11 @@ array-slice@^0.2.3:
resolved "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5"
integrity sha1-3Tz7gO15c6dRF82sabC5nshhhvU=
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"
integrity sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==
array-union@^1.0.2:
version "1.0.2"
resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
@ -4219,6 +4364,11 @@ async-each@^1.0.1:
resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==
async-validator@^3.3.0, async-validator@^3.4.0:
version "3.5.1"
resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-3.5.1.tgz#cd62b9688b2465f48420e27adb47760ab1b5559f"
integrity sha512-DDmKA7sdSAJtTVeNZHrnr2yojfFaoeW8MfQN8CeuXg8DDQHTqKk9Fdv38dSvnesHoO8MUwMI2HphOeSyIF+wmQ==
async@0.9.x:
version "0.9.2"
resolved "https://registry.npmjs.org/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
@ -4306,6 +4456,11 @@ babel-eslint@^10.0.2:
eslint-visitor-keys "^1.0.0"
resolve "^1.12.0"
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-loader@8.1.0:
version "8.1.0"
resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3"
@ -5329,11 +5484,23 @@ compare-versions@^3.6.0:
resolved "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62"
integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==
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.npmjs.org/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.npmjs.org/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba"
@ -5354,6 +5521,11 @@ compression@1.7.4:
safe-buffer "5.1.2"
vary "~1.1.2"
compute-scroll-into-view@^1.0.16:
version "1.0.16"
resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.16.tgz#5b7bf4f7127ea2c19b750353d7ce6776a90ee088"
integrity sha512-a85LHKY81oQnikatZYA90pufpZ6sQx++BoCxOEMsjpZx+ZnaKGQnCyCehTRr/1p9GBIAHTjcU9k71kSYWloLiQ==
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
@ -5616,6 +5788,11 @@ core-js@3.6.5, core-js@^3.0.0, core-js@^3.6.1:
resolved "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a"
integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==
core-js@^3.6.5:
version "3.8.1"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.8.1.tgz#f51523668ac8a294d1285c3b9db44025fda66d47"
integrity sha512-9Id2xHY1W7m8hCl8NkhQn5CufmF/WuR30BTRewvCXc1aZd3kMECwNZ69ndLbekKfakw9Rf2Xyc+QR6E7Gg+obg==
core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
@ -6237,6 +6414,18 @@ doctrine@^3.0.0:
dependencies:
esutils "^2.0.2"
dom-align@^1.10.4:
version "1.12.0"
resolved "https://registry.yarnpkg.com/dom-align/-/dom-align-1.12.0.tgz#56fb7156df0b91099830364d2d48f88963f5a29c"
integrity sha512-YkoezQuhp3SLFGdOlr5xkqZ640iXrnHAwVYcDg8ZKRUtO7mSzSC2BA5V0VuyAwPSJA4CLIc6EDDJh4bEsD2+zA==
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:
version "0.2.0"
resolved "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768"
@ -6244,6 +6433,16 @@ dom-converter@^0.2:
dependencies:
utila "~0.4"
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-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"
integrity sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==
dom-serializer@0:
version "0.2.2"
resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51"
@ -8345,6 +8544,11 @@ inquirer@6.5.2, inquirer@^6.2.0, inquirer@^6.2.2:
strip-ansi "^5.1.0"
through "^2.3.6"
intersperse@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/intersperse/-/intersperse-1.0.0.tgz#f2561fb1cfef9f5277cc3347a22886b4351a5181"
integrity sha1-8lYfsc/vn1J3zDNHoiiGtDUaUYE=
invariant@^2.2.2:
version "2.2.4"
resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
@ -8562,6 +8766,11 @@ is-installed-globally@^0.1.0:
global-dirs "^0.1.0"
is-path-inside "^1.0.0"
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==
is-module@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591"
@ -8616,6 +8825,11 @@ is-plain-obj@^1.0.0, is-plain-obj@^1.1.0:
resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4=
is-plain-object@3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-3.0.1.tgz#662d92d24c0aa4302407b0d45d21f2251c85f85b"
integrity sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==
is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4:
version "2.0.4"
resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
@ -8756,6 +8970,11 @@ isexe@^2.0.0:
resolved "https://registry.npmjs.org/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.npmjs.org/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
@ -8902,6 +9121,13 @@ json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1:
resolved "https://registry.npmjs.org/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.npmjs.org/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81"
@ -9295,6 +9521,11 @@ locate-path@^6.0.0:
dependencies:
p-locate "^5.0.0"
lodash-es@^4.17.15:
version "4.17.15"
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.15.tgz#21bd96839354412f23d7a10340e5eac6ee455d78"
integrity sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ==
lodash._reinterpolate@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
@ -9964,6 +10195,11 @@ modify-values@^1.0.0:
resolved "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022"
integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==
moment@^2.27.0:
version "2.29.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3"
integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==
move-concurrently@^1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
@ -10047,6 +10283,11 @@ nanomatch@^1.2.9:
snapdragon "^0.8.1"
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==
native-request@^1.0.5:
version "1.0.8"
resolved "https://registry.npmjs.org/native-request/-/native-request-1.0.8.tgz#8f66bf606e0f7ea27c0e5995eb2f5d03e33ae6fb"
@ -10323,7 +10564,7 @@ oauth-sign@~0.9.0:
resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
object-assign@4.x, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
version "4.1.1"
resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
@ -10408,6 +10649,11 @@ octokit-pagination-methods@^1.1.0:
resolved "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4"
integrity sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==
omit.js@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/omit.js/-/omit.js-2.0.2.tgz#dd9b8436fab947a5f3ff214cb2538631e313ec2f"
integrity sha512-hJmu9D+bNB40YpL9jYebQl4lsTW6yEHRTroJzNLqQJYHm7c+NQnJGfZmIWh8S3q3KoaxV1aLhV6B3+0N0/kyJg==
on-finished@~2.3.0:
version "2.3.0"
resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
@ -11944,6 +12190,13 @@ quick-lru@^4.0.1:
resolved "https://registry.npmjs.org/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:
version "2.1.0"
resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
@ -12375,6 +12628,11 @@ reserved-words@^0.1.2:
resolved "https://registry.npmjs.org/reserved-words/-/reserved-words-0.1.2.tgz#00a0940f98cd501aeaaac316411d9adc52b31ab1"
integrity sha1-AKCUD5jNUBrqqsMWQR2a3FKzGrE=
resize-observer-polyfill@^1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464"
integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==
resolve-cwd@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
@ -12739,6 +12997,13 @@ schema-utils@^2.6.5, schema-utils@^2.6.6, schema-utils@^2.7.0, schema-utils@^2.7
ajv "^6.12.4"
ajv-keywords "^3.5.2"
scroll-into-view-if-needed@^2.2.25:
version "2.2.26"
resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.26.tgz#e4917da0c820135ff65ad6f7e4b7d7af568c4f13"
integrity sha512-SQ6AOKfABaSchokAmmaxVnL9IArxEnLEX9j4wAZw+x4iUTb40q7irtHG3z4GtAWz5veVZcCnubXDBRyLVQaohw==
dependencies:
compute-scroll-into-view "^1.0.16"
select-hose@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
@ -12879,6 +13144,16 @@ shallow-clone@^3.0.0:
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"
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.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
@ -13296,6 +13571,11 @@ string-argv@0.3.1:
resolved "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da"
integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==
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=
string-hash@^1.1.1:
version "1.1.3"
resolved "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b"
@ -14436,6 +14716,22 @@ vue-router@^4.0.0-rc.1:
resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.0.0-rc.1.tgz#42f41315849163a1243886c9aa6d7c14f24fd003"
integrity sha512-N3SSOIiRFo1/D6EkHGuahUSuyDvFhKizN5zVXkALX7wv0hYYndV49KwzRF5lKsAIt+OlDl7y+sNmwNewb7a4iw==
vue-types@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/vue-types/-/vue-types-3.0.1.tgz#20e9baae8673de8093d0a989234695d08d544be0"
integrity sha512-UbvbzPu8DNzZRfMB1RDTFKBB6seMm80scMFdP+GkKaw00EugC3cjq9AtlS4y258vDkpAe9HfqbRO4cp63qVHXQ==
dependencies:
is-plain-object "3.0.1"
vue@^3.0.0:
version "3.0.4"
resolved "https://registry.yarnpkg.com/vue/-/vue-3.0.4.tgz#872c65c143f5717bd5387c61613d9f55f4cc0f43"
integrity sha512-2o+AiQF8sAupyhbyl3oxVCl3WCwC/n5NI7VMM+gVQ231qvSB8eI7sCBloloqDJK6yA367EEtmRSeSCf4sxCC+A==
dependencies:
"@vue/compiler-dom" "3.0.4"
"@vue/runtime-dom" "3.0.4"
"@vue/shared" "3.0.4"
vue@^3.0.2:
version "3.0.2"
resolved "https://registry.npmjs.org/vue/-/vue-3.0.2.tgz#9d5b7b2983f35e64a34d13c7c9d6831239feca3c"
@ -14445,6 +14741,13 @@ vue@^3.0.2:
"@vue/runtime-dom" "3.0.2"
"@vue/shared" "3.0.2"
warning@^4.0.0:
version "4.0.3"
resolved "https://registry.yarnpkg.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.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957"