-
+
@@ -42,6 +42,23 @@
+
+
+
+
+ 机器:
+
+
+
+
+
+
+
@@ -58,6 +75,7 @@
import { toRefs, reactive, watch, defineComponent, ref } from 'vue';
import { redisApi } from './api';
import { projectApi } from '../project/api.ts';
+import { machineApi } from '../machine/api.ts';
import { ElMessage } from 'element-plus';
import { RsaEncrypt } from '@/common/rsa';
@@ -83,6 +101,7 @@ export default defineComponent({
dialogVisible: false,
projects: [],
envs: [],
+ sshTunnelMachineList: [],
form: {
id: null,
name: null,
@@ -94,6 +113,8 @@ export default defineComponent({
envId: null,
env: null,
remark: '',
+ enableSshTunnel: null,
+ sshTunnelMachineId: null,
},
btnLoading: false,
rules: {
@@ -137,16 +158,27 @@ export default defineComponent({
watch(props, async (newValue) => {
state.dialogVisible = newValue.visible;
+ if (!state.dialogVisible) {
+ return;
+ }
state.projects = newValue.projects;
if (newValue.redis) {
getEnvs(newValue.redis.projectId);
state.form = { ...newValue.redis };
} else {
state.envs = [];
- state.form = { db: 0 } as any;
+ state.form = { db: 0, enableSshTunnel: -1 } as any;
}
+ getSshTunnelMachines();
});
+ const getSshTunnelMachines = async () => {
+ if (state.form.enableSshTunnel == 1 && state.sshTunnelMachineList.length == 0) {
+ const res = await machineApi.list.request({ pageNum: 1, pageSize: 100 });
+ state.sshTunnelMachineList = res.list;
+ }
+ };
+
const getEnvs = async (projectId: any) => {
state.envs = await projectApi.projectEnvs.request({ projectId });
};
@@ -201,6 +233,7 @@ export default defineComponent({
return {
...toRefs(state),
redisForm,
+ getSshTunnelMachines,
changeProject,
changeEnv,
btnOk,
diff --git a/mayfly_go_web/yarn.lock b/mayfly_go_web/yarn.lock
index 6f49c211..49db1f51 100644
--- a/mayfly_go_web/yarn.lock
+++ b/mayfly_go_web/yarn.lock
@@ -3,265 +3,254 @@
"@babel/parser@^7.16.4":
- version "7.16.6"
- resolved "https://registry.npmmirror.com/@babel/parser/download/@babel/parser-7.16.6.tgz"
- integrity sha512-Gr86ujcNuPDnNOY8mi383Hvi8IYrJVJYuf3XcuBM/Dgd+bINn/7tHqsj+tKkoreMbmGsFLsltI/JJd8fOFWGDQ==
+ "integrity" "sha512-Gr86ujcNuPDnNOY8mi383Hvi8IYrJVJYuf3XcuBM/Dgd+bINn/7tHqsj+tKkoreMbmGsFLsltI/JJd8fOFWGDQ=="
+ "resolved" "https://registry.npmmirror.com/@babel/parser/download/@babel/parser-7.16.6.tgz"
+ "version" "7.16.6"
"@ctrl/tinycolor@^3.4.1":
- version "3.4.1"
- resolved "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz"
- integrity sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==
+ "integrity" "sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw=="
+ "resolved" "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz"
+ "version" "3.4.1"
"@element-plus/icons-vue@^2.0.6":
- version "2.0.6"
- resolved "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.0.6.tgz"
- integrity sha512-lPpG8hYkjL/Z97DH5Ei6w6o22Z4YdNglWCNYOPcB33JCF2A4wye6HFgSI7hEt9zdLyxlSpiqtgf9XcYU+m5mew==
+ "integrity" "sha512-lPpG8hYkjL/Z97DH5Ei6w6o22Z4YdNglWCNYOPcB33JCF2A4wye6HFgSI7hEt9zdLyxlSpiqtgf9XcYU+m5mew=="
+ "resolved" "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.0.6.tgz"
+ "version" "2.0.6"
"@eslint/eslintrc@^1.0.5":
- version "1.0.5"
- resolved "https://registry.npmmirror.com/@eslint/eslintrc/download/@eslint/eslintrc-1.0.5.tgz"
- integrity sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==
+ "integrity" "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ=="
+ "resolved" "https://registry.npmmirror.com/@eslint/eslintrc/download/@eslint/eslintrc-1.0.5.tgz"
+ "version" "1.0.5"
dependencies:
- ajv "^6.12.4"
- debug "^4.3.2"
- espree "^9.2.0"
- globals "^13.9.0"
- ignore "^4.0.6"
- import-fresh "^3.2.1"
- js-yaml "^4.1.0"
- minimatch "^3.0.4"
- strip-json-comments "^3.1.1"
+ "ajv" "^6.12.4"
+ "debug" "^4.3.2"
+ "espree" "^9.2.0"
+ "globals" "^13.9.0"
+ "ignore" "^4.0.6"
+ "import-fresh" "^3.2.1"
+ "js-yaml" "^4.1.0"
+ "minimatch" "^3.0.4"
+ "strip-json-comments" "^3.1.1"
"@floating-ui/core@^0.7.3":
- version "0.7.3"
- resolved "https://registry.npmmirror.com/@floating-ui/core/-/core-0.7.3.tgz"
- integrity sha512-buc8BXHmG9l82+OQXOFU3Kr2XQx9ys01U/Q9HMIrZ300iLc8HLMgh7dcCqgYzAzf4BkoQvDcXf5Y+CuEZ5JBYg==
+ "integrity" "sha512-buc8BXHmG9l82+OQXOFU3Kr2XQx9ys01U/Q9HMIrZ300iLc8HLMgh7dcCqgYzAzf4BkoQvDcXf5Y+CuEZ5JBYg=="
+ "resolved" "https://registry.npmmirror.com/@floating-ui/core/-/core-0.7.3.tgz"
+ "version" "0.7.3"
"@floating-ui/dom@^0.5.4":
- version "0.5.4"
- resolved "https://registry.npmmirror.com/@floating-ui/dom/-/dom-0.5.4.tgz"
- integrity sha512-419BMceRLq0RrmTSDxn8hf9R3VCJv2K9PUfugh5JyEFmdjzDo+e8U5EdR8nzKq8Yj1htzLm3b6eQEEam3/rrtg==
+ "integrity" "sha512-419BMceRLq0RrmTSDxn8hf9R3VCJv2K9PUfugh5JyEFmdjzDo+e8U5EdR8nzKq8Yj1htzLm3b6eQEEam3/rrtg=="
+ "resolved" "https://registry.npmmirror.com/@floating-ui/dom/-/dom-0.5.4.tgz"
+ "version" "0.5.4"
dependencies:
"@floating-ui/core" "^0.7.3"
"@humanwhocodes/config-array@^0.9.2":
- version "0.9.2"
- resolved "https://registry.npmmirror.com/@humanwhocodes/config-array/download/@humanwhocodes/config-array-0.9.2.tgz"
- integrity sha1-aL5VxzcCMAnfxf4kXVEYG7ZHaRQ=
+ "integrity" "sha1-aL5VxzcCMAnfxf4kXVEYG7ZHaRQ="
+ "resolved" "https://registry.npmmirror.com/@humanwhocodes/config-array/download/@humanwhocodes/config-array-0.9.2.tgz"
+ "version" "0.9.2"
dependencies:
"@humanwhocodes/object-schema" "^1.2.1"
- debug "^4.1.1"
- minimatch "^3.0.4"
+ "debug" "^4.1.1"
+ "minimatch" "^3.0.4"
"@humanwhocodes/object-schema@^1.2.1":
- version "1.2.1"
- resolved "https://registry.npmmirror.com/@humanwhocodes/object-schema/download/@humanwhocodes/object-schema-1.2.1.tgz"
- integrity sha1-tSBSnsIdjllFoYUd/Rwy6U45/0U=
+ "integrity" "sha1-tSBSnsIdjllFoYUd/Rwy6U45/0U="
+ "resolved" "https://registry.npmmirror.com/@humanwhocodes/object-schema/download/@humanwhocodes/object-schema-1.2.1.tgz"
+ "version" "1.2.1"
"@nodelib/fs.scandir@2.1.5":
- version "2.1.5"
- resolved "https://registry.nlark.com/@nodelib/fs.scandir/download/@nodelib/fs.scandir-2.1.5.tgz?cache=0&sync_timestamp=1622792738877&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.scandir%2Fdownload%2F%40nodelib%2Ffs.scandir-2.1.5.tgz"
- integrity sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U=
+ "integrity" "sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U="
+ "resolved" "https://registry.nlark.com/@nodelib/fs.scandir/download/@nodelib/fs.scandir-2.1.5.tgz?cache=0&sync_timestamp=1622792738877&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.scandir%2Fdownload%2F%40nodelib%2Ffs.scandir-2.1.5.tgz"
+ "version" "2.1.5"
dependencies:
"@nodelib/fs.stat" "2.0.5"
- run-parallel "^1.1.9"
+ "run-parallel" "^1.1.9"
-"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
- version "2.0.5"
- resolved "https://registry.nlark.com/@nodelib/fs.stat/download/@nodelib/fs.stat-2.0.5.tgz?cache=0&sync_timestamp=1622792616417&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-2.0.5.tgz"
- integrity sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos=
+"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5":
+ "integrity" "sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos="
+ "resolved" "https://registry.nlark.com/@nodelib/fs.stat/download/@nodelib/fs.stat-2.0.5.tgz?cache=0&sync_timestamp=1622792616417&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-2.0.5.tgz"
+ "version" "2.0.5"
"@nodelib/fs.walk@^1.2.3":
- version "1.2.8"
- resolved "https://registry.nlark.com/@nodelib/fs.walk/download/@nodelib/fs.walk-1.2.8.tgz"
- integrity sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po=
+ "integrity" "sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po="
+ "resolved" "https://registry.nlark.com/@nodelib/fs.walk/download/@nodelib/fs.walk-1.2.8.tgz"
+ "version" "1.2.8"
dependencies:
"@nodelib/fs.scandir" "2.1.5"
- fastq "^1.6.0"
+ "fastq" "^1.6.0"
"@popperjs/core@npm:@sxzz/popperjs-es@^2.11.7":
- version "2.11.7"
- resolved "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz"
- integrity sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==
+ "integrity" "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
+ "resolved" "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz"
+ "version" "2.11.7"
"@sphinxxxx/color-conversion@^2.2.2":
- version "2.2.2"
- resolved "https://registry.npmmirror.com/@sphinxxxx/color-conversion/-/color-conversion-2.2.2.tgz"
- integrity sha512-XExJS3cLqgrmNBIP3bBw6+1oQ1ksGjFh0+oClDKFYpCCqx/hlqwWO5KO/S63fzUo67SxI9dMrF0y5T/Ey7h8Zw==
+ "integrity" "sha512-XExJS3cLqgrmNBIP3bBw6+1oQ1ksGjFh0+oClDKFYpCCqx/hlqwWO5KO/S63fzUo67SxI9dMrF0y5T/Ey7h8Zw=="
+ "resolved" "https://registry.npmmirror.com/@sphinxxxx/color-conversion/-/color-conversion-2.2.2.tgz"
+ "version" "2.2.2"
"@types/json-schema@^7.0.7":
- version "7.0.9"
- resolved "https://registry.npmmirror.com/@types/json-schema/download/@types/json-schema-7.0.9.tgz?cache=0&sync_timestamp=1637266073261&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.9.tgz"
- integrity sha1-l+3JA36gw4WFMgsolk3eOznkZg0=
+ "integrity" "sha1-l+3JA36gw4WFMgsolk3eOznkZg0="
+ "resolved" "https://registry.npmmirror.com/@types/json-schema/download/@types/json-schema-7.0.9.tgz?cache=0&sync_timestamp=1637266073261&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.9.tgz"
+ "version" "7.0.9"
-"@types/lodash-es@^4.17.6":
- version "4.17.6"
- resolved "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.6.tgz"
- integrity sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==
+"@types/lodash-es@*", "@types/lodash-es@^4.17.6":
+ "integrity" "sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg=="
+ "resolved" "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.6.tgz"
+ "version" "4.17.6"
dependencies:
"@types/lodash" "*"
-"@types/lodash@*", "@types/lodash@^4.14.182":
- version "4.14.182"
- resolved "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.182.tgz"
- integrity sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==
+"@types/lodash@*":
+ "integrity" "sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q=="
+ "resolved" "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.182.tgz"
+ "version" "4.14.182"
"@types/lodash@^4.14.178":
- version "4.14.178"
- resolved "https://registry.npmmirror.com/@types/lodash/download/@types/lodash-4.14.178.tgz"
- integrity sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==
+ "integrity" "sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw=="
+ "resolved" "https://registry.npmmirror.com/@types/lodash/download/@types/lodash-4.14.178.tgz"
+ "version" "4.14.178"
+
+"@types/lodash@^4.14.182":
+ "integrity" "sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q=="
+ "resolved" "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.182.tgz"
+ "version" "4.14.182"
"@types/node@^15.6.0":
- version "15.14.9"
- resolved "https://registry.npmmirror.com/@types/node/download/@types/node-15.14.9.tgz"
- integrity sha1-vEPJkMPJvnKBhou8e4/dbitXrfo=
+ "integrity" "sha1-vEPJkMPJvnKBhou8e4/dbitXrfo="
+ "resolved" "https://registry.npmmirror.com/@types/node/download/@types/node-15.14.9.tgz"
+ "version" "15.14.9"
"@types/nprogress@^0.2.0":
- version "0.2.0"
- resolved "https://registry.npmmirror.com/@types/nprogress/download/@types/nprogress-0.2.0.tgz"
- integrity sha1-hsWTaC1BmSEqBQnMPE1WK7vW5F8=
+ "integrity" "sha1-hsWTaC1BmSEqBQnMPE1WK7vW5F8="
+ "resolved" "https://registry.npmmirror.com/@types/nprogress/download/@types/nprogress-0.2.0.tgz"
+ "version" "0.2.0"
"@types/sortablejs@^1.10.6":
- version "1.10.7"
- resolved "https://registry.npmmirror.com/@types/sortablejs/download/@types/sortablejs-1.10.7.tgz"
- integrity sha1-q5A5yFQp8FFpVextvAuyATlBexU=
+ "integrity" "sha1-q5A5yFQp8FFpVextvAuyATlBexU="
+ "resolved" "https://registry.npmmirror.com/@types/sortablejs/download/@types/sortablejs-1.10.7.tgz"
+ "version" "1.10.7"
"@types/web-bluetooth@^0.0.14":
- version "0.0.14"
- resolved "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.14.tgz"
- integrity sha512-5d2RhCard1nQUC3aHcq/gHzWYO6K0WJmAbjO7mQJgCQKtZpgXxv1rOM6O/dBDhDYYVutk1sciOgNSe+5YyfM8A==
+ "integrity" "sha512-5d2RhCard1nQUC3aHcq/gHzWYO6K0WJmAbjO7mQJgCQKtZpgXxv1rOM6O/dBDhDYYVutk1sciOgNSe+5YyfM8A=="
+ "resolved" "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.14.tgz"
+ "version" "0.0.14"
"@typescript-eslint/eslint-plugin@^4.23.0":
- version "4.33.0"
- resolved "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/download/@typescript-eslint/eslint-plugin-4.33.0.tgz"
- integrity sha1-wk3HyAacdwa8QNmfb6h+3LIAUnY=
+ "integrity" "sha1-wk3HyAacdwa8QNmfb6h+3LIAUnY="
+ "resolved" "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/download/@typescript-eslint/eslint-plugin-4.33.0.tgz"
+ "version" "4.33.0"
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"
- tsutils "^3.21.0"
+ "debug" "^4.3.1"
+ "functional-red-black-tree" "^1.0.1"
+ "ignore" "^5.1.8"
+ "regexpp" "^3.1.0"
+ "semver" "^7.3.5"
+ "tsutils" "^3.21.0"
"@typescript-eslint/experimental-utils@4.33.0":
- version "4.33.0"
- resolved "https://registry.npmmirror.com/@typescript-eslint/experimental-utils/download/@typescript-eslint/experimental-utils-4.33.0.tgz"
- integrity sha1-byp4akIJ+iIimJ6TgLUzGygQ9/0=
+ "integrity" "sha1-byp4akIJ+iIimJ6TgLUzGygQ9/0="
+ "resolved" "https://registry.npmmirror.com/@typescript-eslint/experimental-utils/download/@typescript-eslint/experimental-utils-4.33.0.tgz"
+ "version" "4.33.0"
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"
- eslint-scope "^5.1.1"
- eslint-utils "^3.0.0"
+ "eslint-scope" "^5.1.1"
+ "eslint-utils" "^3.0.0"
-"@typescript-eslint/parser@^4.23.0":
- version "4.33.0"
- resolved "https://registry.npmmirror.com/@typescript-eslint/parser/download/@typescript-eslint/parser-4.33.0.tgz"
- integrity sha1-3+eXVw2WlOVgUo0Y7srYbIx0SJk=
+"@typescript-eslint/parser@^4.0.0", "@typescript-eslint/parser@^4.23.0":
+ "integrity" "sha1-3+eXVw2WlOVgUo0Y7srYbIx0SJk="
+ "resolved" "https://registry.npmmirror.com/@typescript-eslint/parser/download/@typescript-eslint/parser-4.33.0.tgz"
+ "version" "4.33.0"
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"
+ "debug" "^4.3.1"
"@typescript-eslint/scope-manager@4.33.0":
- version "4.33.0"
- resolved "https://registry.npmmirror.com/@typescript-eslint/scope-manager/download/@typescript-eslint/scope-manager-4.33.0.tgz"
- integrity sha1-045JKA2YPody4pEhz4xukiHygKM=
+ "integrity" "sha1-045JKA2YPody4pEhz4xukiHygKM="
+ "resolved" "https://registry.npmmirror.com/@typescript-eslint/scope-manager/download/@typescript-eslint/scope-manager-4.33.0.tgz"
+ "version" "4.33.0"
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.npmmirror.com/@typescript-eslint/types/download/@typescript-eslint/types-4.33.0.tgz"
- integrity sha1-oeWQNqO1OuhDDO6/KpGdx/mvbXI=
+ "integrity" "sha1-oeWQNqO1OuhDDO6/KpGdx/mvbXI="
+ "resolved" "https://registry.npmmirror.com/@typescript-eslint/types/download/@typescript-eslint/types-4.33.0.tgz"
+ "version" "4.33.0"
"@typescript-eslint/typescript-estree@4.33.0":
- version "4.33.0"
- resolved "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/download/@typescript-eslint/typescript-estree-4.33.0.tgz"
- integrity sha1-DftRwpCPaMXAjYKu/q8WahfCRgk=
+ "integrity" "sha1-DftRwpCPaMXAjYKu/q8WahfCRgk="
+ "resolved" "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/download/@typescript-eslint/typescript-estree-4.33.0.tgz"
+ "version" "4.33.0"
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"
+ "debug" "^4.3.1"
+ "globby" "^11.0.3"
+ "is-glob" "^4.0.1"
+ "semver" "^7.3.5"
+ "tsutils" "^3.21.0"
"@typescript-eslint/visitor-keys@4.33.0":
- version "4.33.0"
- resolved "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/download/@typescript-eslint/visitor-keys-4.33.0.tgz"
- integrity sha1-KiL3ekFgQom3oYZYbp7EjKku8d0=
+ "integrity" "sha1-KiL3ekFgQom3oYZYbp7EjKku8d0="
+ "resolved" "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/download/@typescript-eslint/visitor-keys-4.33.0.tgz"
+ "version" "4.33.0"
dependencies:
"@typescript-eslint/types" "4.33.0"
- eslint-visitor-keys "^2.0.0"
+ "eslint-visitor-keys" "^2.0.0"
"@vitejs/plugin-vue@^2.3.3":
- version "2.3.3"
- resolved "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-2.3.3.tgz"
- integrity sha512-SmQLDyhz+6lGJhPELsBdzXGc+AcaT8stgkbiTFGpXPe8Tl1tJaBw1A6pxDqDuRsVkD8uscrkx3hA7QDOoKYtyw==
+ "integrity" "sha512-SmQLDyhz+6lGJhPELsBdzXGc+AcaT8stgkbiTFGpXPe8Tl1tJaBw1A6pxDqDuRsVkD8uscrkx3hA7QDOoKYtyw=="
+ "resolved" "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-2.3.3.tgz"
+ "version" "2.3.3"
"@vue/compiler-core@3.2.26":
- version "3.2.26"
- resolved "https://registry.npmmirror.com/@vue/compiler-core/download/@vue/compiler-core-3.2.26.tgz"
- integrity sha512-N5XNBobZbaASdzY9Lga2D9Lul5vdCIOXvUMd6ThcN8zgqQhPKfCV+wfAJNNJKQkSHudnYRO2gEB+lp0iN3g2Tw==
+ "integrity" "sha512-N5XNBobZbaASdzY9Lga2D9Lul5vdCIOXvUMd6ThcN8zgqQhPKfCV+wfAJNNJKQkSHudnYRO2gEB+lp0iN3g2Tw=="
+ "resolved" "https://registry.npmmirror.com/@vue/compiler-core/download/@vue/compiler-core-3.2.26.tgz"
+ "version" "3.2.26"
dependencies:
"@babel/parser" "^7.16.4"
"@vue/shared" "3.2.26"
- estree-walker "^2.0.2"
- source-map "^0.6.1"
+ "estree-walker" "^2.0.2"
+ "source-map" "^0.6.1"
"@vue/compiler-core@3.2.37":
- version "3.2.37"
- resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.37.tgz"
- integrity sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==
+ "integrity" "sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg=="
+ "resolved" "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.37.tgz"
+ "version" "3.2.37"
dependencies:
"@babel/parser" "^7.16.4"
"@vue/shared" "3.2.37"
- estree-walker "^2.0.2"
- source-map "^0.6.1"
+ "estree-walker" "^2.0.2"
+ "source-map" "^0.6.1"
"@vue/compiler-dom@3.2.26":
- version "3.2.26"
- resolved "https://registry.npmmirror.com/@vue/compiler-dom/download/@vue/compiler-dom-3.2.26.tgz"
- integrity sha512-smBfaOW6mQDxcT3p9TKT6mE22vjxjJL50GFVJiI0chXYGU/xzC05QRGrW3HHVuJrmLTLx5zBhsZ2dIATERbarg==
+ "integrity" "sha512-smBfaOW6mQDxcT3p9TKT6mE22vjxjJL50GFVJiI0chXYGU/xzC05QRGrW3HHVuJrmLTLx5zBhsZ2dIATERbarg=="
+ "resolved" "https://registry.npmmirror.com/@vue/compiler-dom/download/@vue/compiler-dom-3.2.26.tgz"
+ "version" "3.2.26"
dependencies:
"@vue/compiler-core" "3.2.26"
"@vue/shared" "3.2.26"
"@vue/compiler-dom@3.2.37":
- version "3.2.37"
- resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.37.tgz"
- integrity sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==
+ "integrity" "sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ=="
+ "resolved" "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.37.tgz"
+ "version" "3.2.37"
dependencies:
"@vue/compiler-core" "3.2.37"
"@vue/shared" "3.2.37"
-"@vue/compiler-sfc@3.2.37":
- version "3.2.37"
- resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.37.tgz"
- integrity sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==
- dependencies:
- "@babel/parser" "^7.16.4"
- "@vue/compiler-core" "3.2.37"
- "@vue/compiler-dom" "3.2.37"
- "@vue/compiler-ssr" "3.2.37"
- "@vue/reactivity-transform" "3.2.37"
- "@vue/shared" "3.2.37"
- estree-walker "^2.0.2"
- magic-string "^0.25.7"
- postcss "^8.1.10"
- source-map "^0.6.1"
-
"@vue/compiler-sfc@^3.0.11":
- version "3.2.26"
- resolved "https://registry.npmmirror.com/@vue/compiler-sfc/download/@vue/compiler-sfc-3.2.26.tgz"
- integrity sha512-ePpnfktV90UcLdsDQUh2JdiTuhV0Skv2iYXxfNMOK/F3Q+2BO0AulcVcfoksOpTJGmhhfosWfMyEaEf0UaWpIw==
+ "integrity" "sha512-ePpnfktV90UcLdsDQUh2JdiTuhV0Skv2iYXxfNMOK/F3Q+2BO0AulcVcfoksOpTJGmhhfosWfMyEaEf0UaWpIw=="
+ "resolved" "https://registry.npmmirror.com/@vue/compiler-sfc/download/@vue/compiler-sfc-3.2.26.tgz"
+ "version" "3.2.26"
dependencies:
"@babel/parser" "^7.16.4"
"@vue/compiler-core" "3.2.26"
@@ -269,374 +258,390 @@
"@vue/compiler-ssr" "3.2.26"
"@vue/reactivity-transform" "3.2.26"
"@vue/shared" "3.2.26"
- estree-walker "^2.0.2"
- magic-string "^0.25.7"
- postcss "^8.1.10"
- source-map "^0.6.1"
+ "estree-walker" "^2.0.2"
+ "magic-string" "^0.25.7"
+ "postcss" "^8.1.10"
+ "source-map" "^0.6.1"
+
+"@vue/compiler-sfc@3.2.37":
+ "integrity" "sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg=="
+ "resolved" "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.37.tgz"
+ "version" "3.2.37"
+ dependencies:
+ "@babel/parser" "^7.16.4"
+ "@vue/compiler-core" "3.2.37"
+ "@vue/compiler-dom" "3.2.37"
+ "@vue/compiler-ssr" "3.2.37"
+ "@vue/reactivity-transform" "3.2.37"
+ "@vue/shared" "3.2.37"
+ "estree-walker" "^2.0.2"
+ "magic-string" "^0.25.7"
+ "postcss" "^8.1.10"
+ "source-map" "^0.6.1"
"@vue/compiler-ssr@3.2.26":
- version "3.2.26"
- resolved "https://registry.npmmirror.com/@vue/compiler-ssr/download/@vue/compiler-ssr-3.2.26.tgz"
- integrity sha512-2mywLX0ODc4Zn8qBoA2PDCsLEZfpUGZcyoFRLSOjyGGK6wDy2/5kyDOWtf0S0UvtoyVq95OTSGIALjZ4k2q/ag==
+ "integrity" "sha512-2mywLX0ODc4Zn8qBoA2PDCsLEZfpUGZcyoFRLSOjyGGK6wDy2/5kyDOWtf0S0UvtoyVq95OTSGIALjZ4k2q/ag=="
+ "resolved" "https://registry.npmmirror.com/@vue/compiler-ssr/download/@vue/compiler-ssr-3.2.26.tgz"
+ "version" "3.2.26"
dependencies:
"@vue/compiler-dom" "3.2.26"
"@vue/shared" "3.2.26"
"@vue/compiler-ssr@3.2.37":
- version "3.2.37"
- resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.37.tgz"
- integrity sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==
+ "integrity" "sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw=="
+ "resolved" "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.37.tgz"
+ "version" "3.2.37"
dependencies:
"@vue/compiler-dom" "3.2.37"
"@vue/shared" "3.2.37"
"@vue/devtools-api@^6.0.0-beta.11":
- version "6.0.0-beta.20.1"
- resolved "https://registry.npmmirror.com/@vue/devtools-api/download/@vue/devtools-api-6.0.0-beta.20.1.tgz"
- integrity sha512-R2rfiRY+kZugzWh9ZyITaovx+jpU4vgivAEAiz80kvh3yviiTU3CBuGuyWpSwGz9/C7TkSWVM/FtQRGlZ16n8Q==
+ "integrity" "sha512-R2rfiRY+kZugzWh9ZyITaovx+jpU4vgivAEAiz80kvh3yviiTU3CBuGuyWpSwGz9/C7TkSWVM/FtQRGlZ16n8Q=="
+ "resolved" "https://registry.npmmirror.com/@vue/devtools-api/download/@vue/devtools-api-6.0.0-beta.20.1.tgz"
+ "version" "6.0.0-beta.20.1"
"@vue/devtools-api@^6.1.4":
- version "6.2.1"
- resolved "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.2.1.tgz#6f2948ff002ec46df01420dfeff91de16c5b4092"
- integrity sha512-OEgAMeQXvCoJ+1x8WyQuVZzFo0wcyCmUR3baRVLmKBo1LmYZWMlRiXlux5jd0fqVJu6PfDbOrZItVqUEzLobeQ==
+ "integrity" "sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ=="
+ "resolved" "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.1.4.tgz"
+ "version" "6.1.4"
"@vue/reactivity-transform@3.2.26":
- version "3.2.26"
- resolved "https://registry.npmmirror.com/@vue/reactivity-transform/download/@vue/reactivity-transform-3.2.26.tgz"
- integrity sha512-XKMyuCmzNA7nvFlYhdKwD78rcnmPb7q46uoR00zkX6yZrUmcCQ5OikiwUEVbvNhL5hBJuvbSO95jB5zkUon+eQ==
+ "integrity" "sha512-XKMyuCmzNA7nvFlYhdKwD78rcnmPb7q46uoR00zkX6yZrUmcCQ5OikiwUEVbvNhL5hBJuvbSO95jB5zkUon+eQ=="
+ "resolved" "https://registry.npmmirror.com/@vue/reactivity-transform/download/@vue/reactivity-transform-3.2.26.tgz"
+ "version" "3.2.26"
dependencies:
"@babel/parser" "^7.16.4"
"@vue/compiler-core" "3.2.26"
"@vue/shared" "3.2.26"
- estree-walker "^2.0.2"
- magic-string "^0.25.7"
+ "estree-walker" "^2.0.2"
+ "magic-string" "^0.25.7"
"@vue/reactivity-transform@3.2.37":
- version "3.2.37"
- resolved "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.37.tgz"
- integrity sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==
+ "integrity" "sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg=="
+ "resolved" "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.37.tgz"
+ "version" "3.2.37"
dependencies:
"@babel/parser" "^7.16.4"
"@vue/compiler-core" "3.2.37"
"@vue/shared" "3.2.37"
- estree-walker "^2.0.2"
- magic-string "^0.25.7"
+ "estree-walker" "^2.0.2"
+ "magic-string" "^0.25.7"
"@vue/reactivity@3.2.37":
- version "3.2.37"
- resolved "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.37.tgz"
- integrity sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==
+ "integrity" "sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A=="
+ "resolved" "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.37.tgz"
+ "version" "3.2.37"
dependencies:
"@vue/shared" "3.2.37"
"@vue/runtime-core@3.2.37":
- version "3.2.37"
- resolved "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.37.tgz"
- integrity sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==
+ "integrity" "sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ=="
+ "resolved" "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.37.tgz"
+ "version" "3.2.37"
dependencies:
"@vue/reactivity" "3.2.37"
"@vue/shared" "3.2.37"
"@vue/runtime-dom@3.2.37":
- version "3.2.37"
- resolved "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.37.tgz"
- integrity sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==
+ "integrity" "sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw=="
+ "resolved" "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.37.tgz"
+ "version" "3.2.37"
dependencies:
"@vue/runtime-core" "3.2.37"
"@vue/shared" "3.2.37"
- csstype "^2.6.8"
+ "csstype" "^2.6.8"
"@vue/server-renderer@3.2.37":
- version "3.2.37"
- resolved "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.37.tgz"
- integrity sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==
+ "integrity" "sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA=="
+ "resolved" "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.37.tgz"
+ "version" "3.2.37"
dependencies:
"@vue/compiler-ssr" "3.2.37"
"@vue/shared" "3.2.37"
"@vue/shared@3.2.26":
- version "3.2.26"
- resolved "https://registry.npmmirror.com/@vue/shared/download/@vue/shared-3.2.26.tgz"
- integrity sha512-vPV6Cq+NIWbH5pZu+V+2QHE9y1qfuTq49uNWw4f7FDEeZaDU2H2cx5jcUZOAKW7qTrUS4k6qZPbMy1x4N96nbA==
+ "integrity" "sha512-vPV6Cq+NIWbH5pZu+V+2QHE9y1qfuTq49uNWw4f7FDEeZaDU2H2cx5jcUZOAKW7qTrUS4k6qZPbMy1x4N96nbA=="
+ "resolved" "https://registry.npmmirror.com/@vue/shared/download/@vue/shared-3.2.26.tgz"
+ "version" "3.2.26"
"@vue/shared@3.2.37":
- version "3.2.37"
- resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.37.tgz"
- integrity sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==
+ "integrity" "sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw=="
+ "resolved" "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.37.tgz"
+ "version" "3.2.37"
"@vueuse/core@^8.7.5":
- version "8.7.5"
- resolved "https://registry.npmmirror.com/@vueuse/core/-/core-8.7.5.tgz"
- integrity sha512-tqgzeZGoZcXzoit4kOGLWJibDMLp0vdm6ZO41SSUQhkhtrPhAg6dbIEPiahhUu6sZAmSYvVrZgEr5aKD51nrLA==
+ "integrity" "sha512-tqgzeZGoZcXzoit4kOGLWJibDMLp0vdm6ZO41SSUQhkhtrPhAg6dbIEPiahhUu6sZAmSYvVrZgEr5aKD51nrLA=="
+ "resolved" "https://registry.npmmirror.com/@vueuse/core/-/core-8.7.5.tgz"
+ "version" "8.7.5"
dependencies:
"@types/web-bluetooth" "^0.0.14"
"@vueuse/metadata" "8.7.5"
"@vueuse/shared" "8.7.5"
- vue-demi "*"
+ "vue-demi" "*"
"@vueuse/metadata@8.7.5":
- version "8.7.5"
- resolved "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-8.7.5.tgz"
- integrity sha512-emJZKRQSaEnVqmlu39NpNp8iaW+bPC2kWykWoWOZMSlO/0QVEmO/rt8A5VhOEJTKLX3vwTevqbiRy9WJRwVOQg==
+ "integrity" "sha512-emJZKRQSaEnVqmlu39NpNp8iaW+bPC2kWykWoWOZMSlO/0QVEmO/rt8A5VhOEJTKLX3vwTevqbiRy9WJRwVOQg=="
+ "resolved" "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-8.7.5.tgz"
+ "version" "8.7.5"
"@vueuse/shared@8.7.5":
- version "8.7.5"
- resolved "https://registry.npmmirror.com/@vueuse/shared/-/shared-8.7.5.tgz"
- integrity sha512-THXPvMBFmg6Gf6AwRn/EdTh2mhqwjGsB2Yfp374LNQSQVKRHtnJ0I42bsZTn7nuEliBxqUrGQm/lN6qUHmhJLw==
+ "integrity" "sha512-THXPvMBFmg6Gf6AwRn/EdTh2mhqwjGsB2Yfp374LNQSQVKRHtnJ0I42bsZTn7nuEliBxqUrGQm/lN6qUHmhJLw=="
+ "resolved" "https://registry.npmmirror.com/@vueuse/shared/-/shared-8.7.5.tgz"
+ "version" "8.7.5"
dependencies:
- vue-demi "*"
+ "vue-demi" "*"
-ace-builds@^1.6.0:
- version "1.7.1"
- resolved "https://registry.npmmirror.com/ace-builds/-/ace-builds-1.7.1.tgz"
- integrity sha512-1mcbP5kXvr729sJ9dA/8tul0pjuvKbma0LF/ZMRwPEwjoNWNpe/x0OXpaPJo36aRpZCjRZMl5zsME3hAKTiaNw==
+"ace-builds@^1.6.0":
+ "integrity" "sha512-1mcbP5kXvr729sJ9dA/8tul0pjuvKbma0LF/ZMRwPEwjoNWNpe/x0OXpaPJo36aRpZCjRZMl5zsME3hAKTiaNw=="
+ "resolved" "https://registry.npmmirror.com/ace-builds/-/ace-builds-1.7.1.tgz"
+ "version" "1.7.1"
-acorn-jsx@^5.3.1:
- version "5.3.2"
- resolved "https://registry.nlark.com/acorn-jsx/download/acorn-jsx-5.3.2.tgz"
- integrity sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=
+"acorn-jsx@^5.3.1":
+ "integrity" "sha1-ftW7VZCLOy8bxVxq8WU7rafweTc="
+ "resolved" "https://registry.nlark.com/acorn-jsx/download/acorn-jsx-5.3.2.tgz"
+ "version" "5.3.2"
-acorn@^8.7.0:
- version "8.7.0"
- resolved "https://registry.npmmirror.com/acorn/download/acorn-8.7.0.tgz"
- integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==
+"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^8.7.0":
+ "integrity" "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ=="
+ "resolved" "https://registry.npmmirror.com/acorn/download/acorn-8.7.0.tgz"
+ "version" "8.7.0"
-ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.6:
- version "6.12.6"
- resolved "https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1637522259668&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz"
- integrity sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=
+"ajv@^6.10.0", "ajv@^6.12.4", "ajv@^6.12.6":
+ "integrity" "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ="
+ "resolved" "https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1637522259668&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz"
+ "version" "6.12.6"
dependencies:
- fast-deep-equal "^3.1.1"
- fast-json-stable-stringify "^2.0.0"
- json-schema-traverse "^0.4.1"
- uri-js "^4.2.2"
+ "fast-deep-equal" "^3.1.1"
+ "fast-json-stable-stringify" "^2.0.0"
+ "json-schema-traverse" "^0.4.1"
+ "uri-js" "^4.2.2"
-ansi-colors@^4.1.1:
- version "4.1.1"
- resolved "https://registry.nlark.com/ansi-colors/download/ansi-colors-4.1.1.tgz"
- integrity sha1-y7muJWv3UK8eqzRPIpqif+lLo0g=
+"ansi-colors@^4.1.1":
+ "integrity" "sha1-y7muJWv3UK8eqzRPIpqif+lLo0g="
+ "resolved" "https://registry.nlark.com/ansi-colors/download/ansi-colors-4.1.1.tgz"
+ "version" "4.1.1"
-ansi-regex@^5.0.1:
- version "5.0.1"
- resolved "https://registry.nlark.com/ansi-regex/download/ansi-regex-5.0.1.tgz"
- integrity sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=
+"ansi-regex@^5.0.1":
+ "integrity" "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ="
+ "resolved" "https://registry.nlark.com/ansi-regex/download/ansi-regex-5.0.1.tgz"
+ "version" "5.0.1"
-ansi-styles@^4.1.0:
- version "4.3.0"
- resolved "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz"
- integrity sha1-7dgDYornHATIWuegkG7a00tkiTc=
+"ansi-styles@^4.1.0":
+ "integrity" "sha1-7dgDYornHATIWuegkG7a00tkiTc="
+ "resolved" "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz"
+ "version" "4.3.0"
dependencies:
- color-convert "^2.0.1"
+ "color-convert" "^2.0.1"
-anymatch@~3.1.2:
- version "3.1.2"
- resolved "https://registry.nlark.com/anymatch/download/anymatch-3.1.2.tgz"
- integrity sha1-wFV8CWrzLxBhmPT04qODU343hxY=
+"anymatch@~3.1.2":
+ "integrity" "sha1-wFV8CWrzLxBhmPT04qODU343hxY="
+ "resolved" "https://registry.nlark.com/anymatch/download/anymatch-3.1.2.tgz"
+ "version" "3.1.2"
dependencies:
- normalize-path "^3.0.0"
- picomatch "^2.0.4"
+ "normalize-path" "^3.0.0"
+ "picomatch" "^2.0.4"
-argparse@^2.0.1:
- version "2.0.1"
- resolved "https://registry.nlark.com/argparse/download/argparse-2.0.1.tgz"
- integrity sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=
+"argparse@^2.0.1":
+ "integrity" "sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg="
+ "resolved" "https://registry.nlark.com/argparse/download/argparse-2.0.1.tgz"
+ "version" "2.0.1"
-array-union@^2.1.0:
- version "2.1.0"
- resolved "https://registry.npm.taobao.org/array-union/download/array-union-2.1.0.tgz?cache=0&sync_timestamp=1614624262896&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-union%2Fdownload%2Farray-union-2.1.0.tgz"
- integrity sha1-t5hCCtvrHego2ErNii4j0+/oXo0=
+"array-union@^2.1.0":
+ "integrity" "sha1-t5hCCtvrHego2ErNii4j0+/oXo0="
+ "resolved" "https://registry.npm.taobao.org/array-union/download/array-union-2.1.0.tgz?cache=0&sync_timestamp=1614624262896&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-union%2Fdownload%2Farray-union-2.1.0.tgz"
+ "version" "2.1.0"
-async-validator@^4.2.5:
- version "4.2.5"
- resolved "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz"
- integrity sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==
+"async-validator@^4.2.5":
+ "integrity" "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg=="
+ "resolved" "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz"
+ "version" "4.2.5"
-asynckit@^0.4.0:
- version "0.4.0"
- resolved "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz"
- integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
+"asynckit@^0.4.0":
+ "integrity" "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+ "resolved" "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz"
+ "version" "0.4.0"
-axios@^0.27.2:
- version "0.27.2"
- resolved "https://registry.npmmirror.com/axios/-/axios-0.27.2.tgz"
- integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==
+"axios@^0.27.2":
+ "integrity" "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ=="
+ "resolved" "https://registry.npmmirror.com/axios/-/axios-0.27.2.tgz"
+ "version" "0.27.2"
dependencies:
- follow-redirects "^1.14.9"
- form-data "^4.0.0"
+ "follow-redirects" "^1.14.9"
+ "form-data" "^4.0.0"
-balanced-match@^1.0.0:
- version "1.0.2"
- resolved "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.2.tgz?cache=0&sync_timestamp=1617714233441&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbalanced-match%2Fdownload%2Fbalanced-match-1.0.2.tgz"
- integrity sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=
+"balanced-match@^1.0.0":
+ "integrity" "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4="
+ "resolved" "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.2.tgz?cache=0&sync_timestamp=1617714233441&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbalanced-match%2Fdownload%2Fbalanced-match-1.0.2.tgz"
+ "version" "1.0.2"
-binary-extensions@^2.0.0:
- version "2.2.0"
- resolved "https://registry.nlark.com/binary-extensions/download/binary-extensions-2.2.0.tgz"
- integrity sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=
+"binary-extensions@^2.0.0":
+ "integrity" "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0="
+ "resolved" "https://registry.nlark.com/binary-extensions/download/binary-extensions-2.2.0.tgz"
+ "version" "2.2.0"
-brace-expansion@^1.1.7:
- version "1.1.11"
- resolved "https://registry.nlark.com/brace-expansion/download/brace-expansion-1.1.11.tgz"
- integrity sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=
+"brace-expansion@^1.1.7":
+ "integrity" "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0="
+ "resolved" "https://registry.nlark.com/brace-expansion/download/brace-expansion-1.1.11.tgz"
+ "version" "1.1.11"
dependencies:
- balanced-match "^1.0.0"
- concat-map "0.0.1"
+ "balanced-match" "^1.0.0"
+ "concat-map" "0.0.1"
-braces@^3.0.1, braces@~3.0.2:
- version "3.0.2"
- resolved "https://registry.nlark.com/braces/download/braces-3.0.2.tgz"
- integrity sha1-NFThpGLujVmeI23zNs2epPiv4Qc=
+"braces@^3.0.1", "braces@~3.0.2":
+ "integrity" "sha1-NFThpGLujVmeI23zNs2epPiv4Qc="
+ "resolved" "https://registry.nlark.com/braces/download/braces-3.0.2.tgz"
+ "version" "3.0.2"
dependencies:
- fill-range "^7.0.1"
+ "fill-range" "^7.0.1"
-callsites@^3.0.0:
- version "3.1.0"
- resolved "https://registry.nlark.com/callsites/download/callsites-3.1.0.tgz"
- integrity sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=
+"callsites@^3.0.0":
+ "integrity" "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M="
+ "resolved" "https://registry.nlark.com/callsites/download/callsites-3.1.0.tgz"
+ "version" "3.1.0"
-chalk@^4.0.0:
- version "4.1.2"
- resolved "https://registry.npmmirror.com/chalk/download/chalk-4.1.2.tgz"
- integrity sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=
+"chalk@^4.0.0":
+ "integrity" "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE="
+ "resolved" "https://registry.npmmirror.com/chalk/download/chalk-4.1.2.tgz"
+ "version" "4.1.2"
dependencies:
- ansi-styles "^4.1.0"
- supports-color "^7.1.0"
+ "ansi-styles" "^4.1.0"
+ "supports-color" "^7.1.0"
"chokidar@>=3.0.0 <4.0.0":
- version "3.5.2"
- resolved "https://registry.npmmirror.com/chokidar/download/chokidar-3.5.2.tgz"
- integrity sha1-26OXb8rbAW9m/TZQIdkWANAcHnU=
+ "integrity" "sha1-26OXb8rbAW9m/TZQIdkWANAcHnU="
+ "resolved" "https://registry.npmmirror.com/chokidar/download/chokidar-3.5.2.tgz"
+ "version" "3.5.2"
dependencies:
- anymatch "~3.1.2"
- braces "~3.0.2"
- glob-parent "~5.1.2"
- is-binary-path "~2.1.0"
- is-glob "~4.0.1"
- normalize-path "~3.0.0"
- readdirp "~3.6.0"
+ "anymatch" "~3.1.2"
+ "braces" "~3.0.2"
+ "glob-parent" "~5.1.2"
+ "is-binary-path" "~2.1.0"
+ "is-glob" "~4.0.1"
+ "normalize-path" "~3.0.0"
+ "readdirp" "~3.6.0"
optionalDependencies:
- fsevents "~2.3.2"
+ "fsevents" "~2.3.2"
-clipboard@^2.0.6:
- version "2.0.10"
- resolved "https://registry.npmmirror.com/clipboard/-/clipboard-2.0.10.tgz"
- integrity sha512-cz3m2YVwFz95qSEbCDi2fzLN/epEN9zXBvfgAoGkvGOJZATMl9gtTDVOtBYkx2ODUJl2kvmud7n32sV2BpYR4g==
+"clipboard@^2.0.6":
+ "integrity" "sha512-cz3m2YVwFz95qSEbCDi2fzLN/epEN9zXBvfgAoGkvGOJZATMl9gtTDVOtBYkx2ODUJl2kvmud7n32sV2BpYR4g=="
+ "resolved" "https://registry.npmmirror.com/clipboard/-/clipboard-2.0.10.tgz"
+ "version" "2.0.10"
dependencies:
- good-listener "^1.2.2"
- select "^1.1.2"
- tiny-emitter "^2.0.0"
+ "good-listener" "^1.2.2"
+ "select" "^1.1.2"
+ "tiny-emitter" "^2.0.0"
-codemirror@^5.65.5:
- version "5.65.5"
- resolved "https://registry.npmmirror.com/codemirror/-/codemirror-5.65.5.tgz"
- integrity sha512-HNyhvGLnYz5c+kIsB9QKVitiZUevha3ovbIYaQiGzKo7ECSL/elWD9RXt3JgNr0NdnyqE9/Rc/7uLfkJQL638w==
+"codemirror@^5.65.5":
+ "integrity" "sha512-HNyhvGLnYz5c+kIsB9QKVitiZUevha3ovbIYaQiGzKo7ECSL/elWD9RXt3JgNr0NdnyqE9/Rc/7uLfkJQL638w=="
+ "resolved" "https://registry.npmmirror.com/codemirror/-/codemirror-5.65.5.tgz"
+ "version" "5.65.5"
-color-convert@^2.0.1:
- version "2.0.1"
- resolved "https://registry.nlark.com/color-convert/download/color-convert-2.0.1.tgz"
- integrity sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=
+"color-convert@^2.0.1":
+ "integrity" "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM="
+ "resolved" "https://registry.nlark.com/color-convert/download/color-convert-2.0.1.tgz"
+ "version" "2.0.1"
dependencies:
- color-name "~1.1.4"
+ "color-name" "~1.1.4"
-color-name@~1.1.4:
- version "1.1.4"
- resolved "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz"
- integrity sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=
+"color-name@~1.1.4":
+ "integrity" "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI="
+ "resolved" "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz"
+ "version" "1.1.4"
-combined-stream@^1.0.8:
- version "1.0.8"
- resolved "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz"
- integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+"combined-stream@^1.0.8":
+ "integrity" "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="
+ "resolved" "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz"
+ "version" "1.0.8"
dependencies:
- delayed-stream "~1.0.0"
+ "delayed-stream" "~1.0.0"
-concat-map@0.0.1:
- version "0.0.1"
- resolved "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz"
- integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
+"concat-map@0.0.1":
+ "integrity" "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ "resolved" "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz"
+ "version" "0.0.1"
-countup.js@^2.0.7:
- version "2.0.8"
- resolved "https://registry.nlark.com/countup.js/download/countup.js-2.0.8.tgz"
- integrity sha1-7KDDHJ2z93acuklNkxXNUtuq8bk=
+"countup.js@^2.0.7":
+ "integrity" "sha1-7KDDHJ2z93acuklNkxXNUtuq8bk="
+ "resolved" "https://registry.nlark.com/countup.js/download/countup.js-2.0.8.tgz"
+ "version" "2.0.8"
-cropperjs@^1.5.11:
- version "1.5.12"
- resolved "https://registry.nlark.com/cropperjs/download/cropperjs-1.5.12.tgz?cache=0&sync_timestamp=1623485718941&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcropperjs%2Fdownload%2Fcropperjs-1.5.12.tgz"
- integrity sha1-2cDbK/uMDXadUXOej5FrvEThD1A=
+"cropperjs@^1.5.11":
+ "integrity" "sha1-2cDbK/uMDXadUXOej5FrvEThD1A="
+ "resolved" "https://registry.nlark.com/cropperjs/download/cropperjs-1.5.12.tgz?cache=0&sync_timestamp=1623485718941&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcropperjs%2Fdownload%2Fcropperjs-1.5.12.tgz"
+ "version" "1.5.12"
-cross-spawn@^7.0.2:
- version "7.0.3"
- resolved "https://registry.nlark.com/cross-spawn/download/cross-spawn-7.0.3.tgz"
- integrity sha1-9zqFudXUHQRVUcF34ogtSshXKKY=
+"cross-spawn@^7.0.2":
+ "integrity" "sha1-9zqFudXUHQRVUcF34ogtSshXKKY="
+ "resolved" "https://registry.nlark.com/cross-spawn/download/cross-spawn-7.0.3.tgz"
+ "version" "7.0.3"
dependencies:
- path-key "^3.1.0"
- shebang-command "^2.0.0"
- which "^2.0.1"
+ "path-key" "^3.1.0"
+ "shebang-command" "^2.0.0"
+ "which" "^2.0.1"
-csstype@^2.6.8:
- version "2.6.19"
- resolved "https://registry.npmmirror.com/csstype/download/csstype-2.6.19.tgz?cache=0&sync_timestamp=1637224514674&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcsstype%2Fdownload%2Fcsstype-2.6.19.tgz"
- integrity sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ==
+"csstype@^2.6.8":
+ "integrity" "sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ=="
+ "resolved" "https://registry.npmmirror.com/csstype/download/csstype-2.6.19.tgz?cache=0&sync_timestamp=1637224514674&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcsstype%2Fdownload%2Fcsstype-2.6.19.tgz"
+ "version" "2.6.19"
-dayjs@^1.11.3:
- version "1.11.3"
- resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.3.tgz"
- integrity sha512-xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A==
+"dayjs@^1.11.3":
+ "integrity" "sha512-xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A=="
+ "resolved" "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.3.tgz"
+ "version" "1.11.3"
-debug@^4.1.1, debug@^4.3.1, debug@^4.3.2:
- version "4.3.3"
- resolved "https://registry.npmmirror.com/debug/download/debug-4.3.3.tgz"
- integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
+"debug@^4.1.1", "debug@^4.3.1", "debug@^4.3.2":
+ "integrity" "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q=="
+ "resolved" "https://registry.npmmirror.com/debug/download/debug-4.3.3.tgz"
+ "version" "4.3.3"
dependencies:
- ms "2.1.2"
+ "ms" "2.1.2"
-deep-is@^0.1.3:
- version "0.1.4"
- resolved "https://registry.nlark.com/deep-is/download/deep-is-0.1.4.tgz"
- integrity sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=
+"deep-is@^0.1.3":
+ "integrity" "sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE="
+ "resolved" "https://registry.nlark.com/deep-is/download/deep-is-0.1.4.tgz"
+ "version" "0.1.4"
-delayed-stream@~1.0.0:
- version "1.0.0"
- resolved "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz"
- integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
+"delayed-stream@~1.0.0":
+ "integrity" "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
+ "resolved" "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz"
+ "version" "1.0.0"
-delegate@^3.1.2:
- version "3.2.0"
- resolved "https://registry.nlark.com/delegate/download/delegate-3.2.0.tgz"
- integrity sha1-tmtxwxWFIuirV0T3INjKDCr1kWY=
+"delegate@^3.1.2":
+ "integrity" "sha1-tmtxwxWFIuirV0T3INjKDCr1kWY="
+ "resolved" "https://registry.nlark.com/delegate/download/delegate-3.2.0.tgz"
+ "version" "3.2.0"
-dir-glob@^3.0.1:
- version "3.0.1"
- resolved "https://registry.npm.taobao.org/dir-glob/download/dir-glob-3.0.1.tgz"
- integrity sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8=
+"dir-glob@^3.0.1":
+ "integrity" "sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8="
+ "resolved" "https://registry.npm.taobao.org/dir-glob/download/dir-glob-3.0.1.tgz"
+ "version" "3.0.1"
dependencies:
- path-type "^4.0.0"
+ "path-type" "^4.0.0"
-doctrine@^3.0.0:
- version "3.0.0"
- resolved "https://registry.nlark.com/doctrine/download/doctrine-3.0.0.tgz"
- integrity sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=
+"doctrine@^3.0.0":
+ "integrity" "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE="
+ "resolved" "https://registry.nlark.com/doctrine/download/doctrine-3.0.0.tgz"
+ "version" "3.0.0"
dependencies:
- esutils "^2.0.2"
+ "esutils" "^2.0.2"
-dotenv@^10.0.0:
- version "10.0.0"
- resolved "https://registry.nlark.com/dotenv/download/dotenv-10.0.0.tgz"
- integrity sha1-PUInuPuV+BCWzdK2ZlP7LHCFuoE=
+"dotenv@^10.0.0":
+ "integrity" "sha1-PUInuPuV+BCWzdK2ZlP7LHCFuoE="
+ "resolved" "https://registry.nlark.com/dotenv/download/dotenv-10.0.0.tgz"
+ "version" "10.0.0"
-echarts@^5.3.3:
- version "5.3.3"
- resolved "https://registry.npmmirror.com/echarts/-/echarts-5.3.3.tgz"
- integrity sha512-BRw2serInRwO5SIwRviZ6Xgm5Lb7irgz+sLiFMmy/HOaf4SQ+7oYqxKzRHAKp4xHQ05AuHw1xvoQWJjDQq/FGw==
+"echarts@^5.3.3":
+ "integrity" "sha512-BRw2serInRwO5SIwRviZ6Xgm5Lb7irgz+sLiFMmy/HOaf4SQ+7oYqxKzRHAKp4xHQ05AuHw1xvoQWJjDQq/FGw=="
+ "resolved" "https://registry.npmmirror.com/echarts/-/echarts-5.3.3.tgz"
+ "version" "5.3.3"
dependencies:
- tslib "2.3.0"
- zrender "5.3.2"
+ "tslib" "2.3.0"
+ "zrender" "5.3.2"
-element-plus@^2.2.9:
- version "2.2.9"
- resolved "https://registry.npmmirror.com/element-plus/-/element-plus-2.2.9.tgz"
- integrity sha512-jYbL0JkCdv95rkT6trZJjCAizLPySa0qcd2cgq+57SKQnCZAcNDDq4GbTuFRnNavdoeCJnuM3HIficTIUpsMOQ==
+"element-plus@^2.2.9":
+ "integrity" "sha512-jYbL0JkCdv95rkT6trZJjCAizLPySa0qcd2cgq+57SKQnCZAcNDDq4GbTuFRnNavdoeCJnuM3HIficTIUpsMOQ=="
+ "resolved" "https://registry.npmmirror.com/element-plus/-/element-plus-2.2.9.tgz"
+ "version" "2.2.9"
dependencies:
"@ctrl/tinycolor" "^3.4.1"
"@element-plus/icons-vue" "^2.0.6"
@@ -645,1103 +650,1013 @@ element-plus@^2.2.9:
"@types/lodash" "^4.14.182"
"@types/lodash-es" "^4.17.6"
"@vueuse/core" "^8.7.5"
- async-validator "^4.2.5"
- dayjs "^1.11.3"
- escape-html "^1.0.3"
- lodash "^4.17.21"
- lodash-es "^4.17.21"
- lodash-unified "^1.0.2"
- memoize-one "^6.0.0"
- normalize-wheel-es "^1.1.2"
+ "async-validator" "^4.2.5"
+ "dayjs" "^1.11.3"
+ "escape-html" "^1.0.3"
+ "lodash" "^4.17.21"
+ "lodash-es" "^4.17.21"
+ "lodash-unified" "^1.0.2"
+ "memoize-one" "^6.0.0"
+ "normalize-wheel-es" "^1.1.2"
-enquirer@^2.3.5:
- version "2.3.6"
- resolved "https://registry.npm.taobao.org/enquirer/download/enquirer-2.3.6.tgz"
- integrity sha1-Kn/l3WNKHkElqXXsmU/1RW3Dc00=
+"enquirer@^2.3.5":
+ "integrity" "sha1-Kn/l3WNKHkElqXXsmU/1RW3Dc00="
+ "resolved" "https://registry.npm.taobao.org/enquirer/download/enquirer-2.3.6.tgz"
+ "version" "2.3.6"
dependencies:
- ansi-colors "^4.1.1"
+ "ansi-colors" "^4.1.1"
-esbuild-android-64@0.14.38:
- version "0.14.38"
- resolved "https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.38.tgz#5b94a1306df31d55055f64a62ff6b763a47b7f64"
- integrity sha512-aRFxR3scRKkbmNuGAK+Gee3+yFxkTJO/cx83Dkyzo4CnQl/2zVSurtG6+G86EQIZ+w+VYngVyK7P3HyTBKu3nw==
+"esbuild-darwin-64@0.14.38":
+ "integrity" "sha512-5JJvgXkX87Pd1Og0u/NJuO7TSqAikAcQQ74gyJ87bqWRVeouky84ICoV4sN6VV53aTW+NE87qLdGY4QA2S7KNA=="
+ "resolved" "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.38.tgz"
+ "version" "0.14.38"
-esbuild-android-arm64@0.14.38:
- version "0.14.38"
- resolved "https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.38.tgz#78acc80773d16007de5219ccce544c036abd50b8"
- integrity sha512-L2NgQRWuHFI89IIZIlpAcINy9FvBk6xFVZ7xGdOwIm8VyhX1vNCEqUJO3DPSSy945Gzdg98cxtNt8Grv1CsyhA==
-
-esbuild-darwin-64@0.14.38:
- version "0.14.38"
- resolved "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.38.tgz"
- integrity sha512-5JJvgXkX87Pd1Og0u/NJuO7TSqAikAcQQ74gyJ87bqWRVeouky84ICoV4sN6VV53aTW+NE87qLdGY4QA2S7KNA==
-
-esbuild-darwin-arm64@0.14.38:
- version "0.14.38"
- resolved "https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.38.tgz#01eb6650ec010b18c990e443a6abcca1d71290a9"
- integrity sha512-eqF+OejMI3mC5Dlo9Kdq/Ilbki9sQBw3QlHW3wjLmsLh+quNfHmGMp3Ly1eWm981iGBMdbtSS9+LRvR2T8B3eQ==
-
-esbuild-freebsd-64@0.14.38:
- version "0.14.38"
- resolved "https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.38.tgz#790b8786729d4aac7be17648f9ea8e0e16475b5e"
- integrity sha512-epnPbhZUt93xV5cgeY36ZxPXDsQeO55DppzsIgWM8vgiG/Rz+qYDLmh5ts3e+Ln1wA9dQ+nZmVHw+RjaW3I5Ig==
-
-esbuild-freebsd-arm64@0.14.38:
- version "0.14.38"
- resolved "https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.38.tgz#b66340ab28c09c1098e6d9d8ff656db47d7211e6"
- integrity sha512-/9icXUYJWherhk+y5fjPI5yNUdFPtXHQlwP7/K/zg8t8lQdHVj20SqU9/udQmeUo5pDFHMYzcEFfJqgOVeKNNQ==
-
-esbuild-linux-32@0.14.38:
- version "0.14.38"
- resolved "https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.38.tgz#7927f950986fd39f0ff319e92839455912b67f70"
- integrity sha512-QfgfeNHRFvr2XeHFzP8kOZVnal3QvST3A0cgq32ZrHjSMFTdgXhMhmWdKzRXP/PKcfv3e2OW9tT9PpcjNvaq6g==
-
-esbuild-linux-64@0.14.38:
- version "0.14.38"
- resolved "https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.38.tgz#4893d07b229d9cfe34a2b3ce586399e73c3ac519"
- integrity sha512-uuZHNmqcs+Bj1qiW9k/HZU3FtIHmYiuxZ/6Aa+/KHb/pFKr7R3aVqvxlAudYI9Fw3St0VCPfv7QBpUITSmBR1Q==
-
-esbuild-linux-arm64@0.14.38:
- version "0.14.38"
- resolved "https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.38.tgz#8442402e37d0b8ae946ac616784d9c1a2041056a"
- integrity sha512-HlMGZTEsBrXrivr64eZ/EO0NQM8H8DuSENRok9d+Jtvq8hOLzrxfsAT9U94K3KOGk2XgCmkaI2KD8hX7F97lvA==
-
-esbuild-linux-arm@0.14.38:
- version "0.14.38"
- resolved "https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.38.tgz#d5dbf32d38b7f79be0ec6b5fb2f9251fd9066986"
- integrity sha512-FiFvQe8J3VKTDXG01JbvoVRXQ0x6UZwyrU4IaLBZeq39Bsbatd94Fuc3F1RGqPF5RbIWW7RvkVQjn79ejzysnA==
-
-esbuild-linux-mips64le@0.14.38:
- version "0.14.38"
- resolved "https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.38.tgz#95081e42f698bbe35d8ccee0e3a237594b337eb5"
- integrity sha512-qd1dLf2v7QBiI5wwfil9j0HG/5YMFBAmMVmdeokbNAMbcg49p25t6IlJFXAeLzogv1AvgaXRXvgFNhScYEUXGQ==
-
-esbuild-linux-ppc64le@0.14.38:
- version "0.14.38"
- resolved "https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.38.tgz#dceb0a1b186f5df679618882a7990bd422089b47"
- integrity sha512-mnbEm7o69gTl60jSuK+nn+pRsRHGtDPfzhrqEUXyCl7CTOCLtWN2bhK8bgsdp6J/2NyS/wHBjs1x8aBWwP2X9Q==
-
-esbuild-linux-riscv64@0.14.38:
- version "0.14.38"
- resolved "https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.38.tgz#61fb8edb75f475f9208c4a93ab2bfab63821afd2"
- integrity sha512-+p6YKYbuV72uikChRk14FSyNJZ4WfYkffj6Af0/Tw63/6TJX6TnIKE+6D3xtEc7DeDth1fjUOEqm+ApKFXbbVQ==
-
-esbuild-linux-s390x@0.14.38:
- version "0.14.38"
- resolved "https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.38.tgz#34c7126a4937406bf6a5e69100185fd702d12fe0"
- integrity sha512-0zUsiDkGJiMHxBQ7JDU8jbaanUY975CdOW1YDrurjrM0vWHfjv9tLQsW9GSyEb/heSK1L5gaweRjzfUVBFoybQ==
-
-esbuild-netbsd-64@0.14.38:
- version "0.14.38"
- resolved "https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.38.tgz#322ea9937d9e529183ee281c7996b93eb38a5d95"
- integrity sha512-cljBAApVwkpnJZfnRVThpRBGzCi+a+V9Ofb1fVkKhtrPLDYlHLrSYGtmnoTVWDQdU516qYI8+wOgcGZ4XIZh0Q==
-
-esbuild-openbsd-64@0.14.38:
- version "0.14.38"
- resolved "https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.38.tgz#1ca29bb7a2bf09592dcc26afdb45108f08a2cdbd"
- integrity sha512-CDswYr2PWPGEPpLDUO50mL3WO/07EMjnZDNKpmaxUPsrW+kVM3LoAqr/CE8UbzugpEiflYqJsGPLirThRB18IQ==
-
-esbuild-sunos-64@0.14.38:
- version "0.14.38"
- resolved "https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.38.tgz#c9446f7d8ebf45093e7bb0e7045506a88540019b"
- integrity sha512-2mfIoYW58gKcC3bck0j7lD3RZkqYA7MmujFYmSn9l6TiIcAMpuEvqksO+ntBgbLep/eyjpgdplF7b+4T9VJGOA==
-
-esbuild-windows-32@0.14.38:
- version "0.14.38"
- resolved "https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.38.tgz#f8e9b4602fd0ccbd48e5c8d117ec0ba4040f2ad1"
- integrity sha512-L2BmEeFZATAvU+FJzJiRLFUP+d9RHN+QXpgaOrs2klshoAm1AE6Us4X6fS9k33Uy5SzScn2TpcgecbqJza1Hjw==
-
-esbuild-windows-64@0.14.38:
- version "0.14.38"
- resolved "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.38.tgz#280f58e69f78535f470905ce3e43db1746518107"
- integrity sha512-Khy4wVmebnzue8aeSXLC+6clo/hRYeNIm0DyikoEqX+3w3rcvrhzpoix0S+MF9vzh6JFskkIGD7Zx47ODJNyCw==
-
-esbuild-windows-arm64@0.14.38:
- version "0.14.38"
- resolved "https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.38.tgz#d97e9ac0f95a4c236d9173fa9f86c983d6a53f54"
- integrity sha512-k3FGCNmHBkqdJXuJszdWciAH77PukEyDsdIryEHn9cKLQFxzhT39dSumeTuggaQcXY57UlmLGIkklWZo2qzHpw==
-
-esbuild@^0.14.27:
- version "0.14.38"
- resolved "https://registry.npmmirror.com/esbuild/-/esbuild-0.14.38.tgz"
- integrity sha512-12fzJ0fsm7gVZX1YQ1InkOE5f9Tl7cgf6JPYXRJtPIoE0zkWAbHdPHVPPaLi9tYAcEBqheGzqLn/3RdTOyBfcA==
+"esbuild@^0.14.27":
+ "integrity" "sha512-12fzJ0fsm7gVZX1YQ1InkOE5f9Tl7cgf6JPYXRJtPIoE0zkWAbHdPHVPPaLi9tYAcEBqheGzqLn/3RdTOyBfcA=="
+ "resolved" "https://registry.npmmirror.com/esbuild/-/esbuild-0.14.38.tgz"
+ "version" "0.14.38"
optionalDependencies:
- esbuild-android-64 "0.14.38"
- esbuild-android-arm64 "0.14.38"
- esbuild-darwin-64 "0.14.38"
- esbuild-darwin-arm64 "0.14.38"
- esbuild-freebsd-64 "0.14.38"
- esbuild-freebsd-arm64 "0.14.38"
- esbuild-linux-32 "0.14.38"
- esbuild-linux-64 "0.14.38"
- esbuild-linux-arm "0.14.38"
- esbuild-linux-arm64 "0.14.38"
- esbuild-linux-mips64le "0.14.38"
- esbuild-linux-ppc64le "0.14.38"
- esbuild-linux-riscv64 "0.14.38"
- esbuild-linux-s390x "0.14.38"
- esbuild-netbsd-64 "0.14.38"
- esbuild-openbsd-64 "0.14.38"
- esbuild-sunos-64 "0.14.38"
- esbuild-windows-32 "0.14.38"
- esbuild-windows-64 "0.14.38"
- esbuild-windows-arm64 "0.14.38"
+ "esbuild-android-64" "0.14.38"
+ "esbuild-android-arm64" "0.14.38"
+ "esbuild-darwin-64" "0.14.38"
+ "esbuild-darwin-arm64" "0.14.38"
+ "esbuild-freebsd-64" "0.14.38"
+ "esbuild-freebsd-arm64" "0.14.38"
+ "esbuild-linux-32" "0.14.38"
+ "esbuild-linux-64" "0.14.38"
+ "esbuild-linux-arm" "0.14.38"
+ "esbuild-linux-arm64" "0.14.38"
+ "esbuild-linux-mips64le" "0.14.38"
+ "esbuild-linux-ppc64le" "0.14.38"
+ "esbuild-linux-riscv64" "0.14.38"
+ "esbuild-linux-s390x" "0.14.38"
+ "esbuild-netbsd-64" "0.14.38"
+ "esbuild-openbsd-64" "0.14.38"
+ "esbuild-sunos-64" "0.14.38"
+ "esbuild-windows-32" "0.14.38"
+ "esbuild-windows-64" "0.14.38"
+ "esbuild-windows-arm64" "0.14.38"
-escape-html@^1.0.3:
- version "1.0.3"
- resolved "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz"
- integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
+"escape-html@^1.0.3":
+ "integrity" "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+ "resolved" "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz"
+ "version" "1.0.3"
-escape-string-regexp@^4.0.0:
- version "4.0.0"
- resolved "https://registry.nlark.com/escape-string-regexp/download/escape-string-regexp-4.0.0.tgz"
- integrity sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=
+"escape-string-regexp@^4.0.0":
+ "integrity" "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ="
+ "resolved" "https://registry.nlark.com/escape-string-regexp/download/escape-string-regexp-4.0.0.tgz"
+ "version" "4.0.0"
-eslint-plugin-vue@^8.2.0:
- version "8.3.0"
- resolved "https://registry.npmmirror.com/eslint-plugin-vue/download/eslint-plugin-vue-8.3.0.tgz"
- integrity sha512-IIuLHw4vQxGlHcoP2dG6t/2OVdQf2qoyAzEGAxreU1afZOHGA7y3TWq8I+r3ZA6Wjs6xpeUWGHlT31QGr9Rb5g==
+"eslint-plugin-vue@^8.2.0":
+ "integrity" "sha512-IIuLHw4vQxGlHcoP2dG6t/2OVdQf2qoyAzEGAxreU1afZOHGA7y3TWq8I+r3ZA6Wjs6xpeUWGHlT31QGr9Rb5g=="
+ "resolved" "https://registry.npmmirror.com/eslint-plugin-vue/download/eslint-plugin-vue-8.3.0.tgz"
+ "version" "8.3.0"
dependencies:
- eslint-utils "^3.0.0"
- natural-compare "^1.4.0"
- semver "^7.3.5"
- vue-eslint-parser "^8.0.1"
+ "eslint-utils" "^3.0.0"
+ "natural-compare" "^1.4.0"
+ "semver" "^7.3.5"
+ "vue-eslint-parser" "^8.0.1"
-eslint-scope@^5.1.1:
- version "5.1.1"
- resolved "https://registry.npmmirror.com/eslint-scope/download/eslint-scope-5.1.1.tgz?cache=0&sync_timestamp=1637466913662&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-scope%2Fdownload%2Feslint-scope-5.1.1.tgz"
- integrity sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=
+"eslint-scope@^5.1.1":
+ "integrity" "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw="
+ "resolved" "https://registry.npmmirror.com/eslint-scope/download/eslint-scope-5.1.1.tgz?cache=0&sync_timestamp=1637466913662&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-scope%2Fdownload%2Feslint-scope-5.1.1.tgz"
+ "version" "5.1.1"
dependencies:
- esrecurse "^4.3.0"
- estraverse "^4.1.1"
+ "esrecurse" "^4.3.0"
+ "estraverse" "^4.1.1"
-eslint-scope@^6.0.0:
- version "6.0.0"
- resolved "https://registry.npmmirror.com/eslint-scope/download/eslint-scope-6.0.0.tgz?cache=0&sync_timestamp=1637466831846&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-scope%2Fdownload%2Feslint-scope-6.0.0.tgz"
- integrity sha1-nPRbE8Wsjz1MUPRqUSH2Gz4xiXg=
+"eslint-scope@^6.0.0":
+ "integrity" "sha1-nPRbE8Wsjz1MUPRqUSH2Gz4xiXg="
+ "resolved" "https://registry.npmmirror.com/eslint-scope/download/eslint-scope-6.0.0.tgz?cache=0&sync_timestamp=1637466831846&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-scope%2Fdownload%2Feslint-scope-6.0.0.tgz"
+ "version" "6.0.0"
dependencies:
- esrecurse "^4.3.0"
- estraverse "^5.2.0"
+ "esrecurse" "^4.3.0"
+ "estraverse" "^5.2.0"
-eslint-scope@^7.1.0:
- version "7.1.0"
- resolved "https://registry.npmmirror.com/eslint-scope/download/eslint-scope-7.1.0.tgz?cache=0&sync_timestamp=1637466831846&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-scope%2Fdownload%2Feslint-scope-7.1.0.tgz"
- integrity sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==
+"eslint-scope@^7.1.0":
+ "integrity" "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg=="
+ "resolved" "https://registry.npmmirror.com/eslint-scope/download/eslint-scope-7.1.0.tgz?cache=0&sync_timestamp=1637466831846&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-scope%2Fdownload%2Feslint-scope-7.1.0.tgz"
+ "version" "7.1.0"
dependencies:
- esrecurse "^4.3.0"
- estraverse "^5.2.0"
+ "esrecurse" "^4.3.0"
+ "estraverse" "^5.2.0"
-eslint-utils@^3.0.0:
- version "3.0.0"
- resolved "https://registry.nlark.com/eslint-utils/download/eslint-utils-3.0.0.tgz"
- integrity sha1-iuuvrOc0W7M1WdsKHxOh0tSMNnI=
+"eslint-utils@^3.0.0":
+ "integrity" "sha1-iuuvrOc0W7M1WdsKHxOh0tSMNnI="
+ "resolved" "https://registry.nlark.com/eslint-utils/download/eslint-utils-3.0.0.tgz"
+ "version" "3.0.0"
dependencies:
- eslint-visitor-keys "^2.0.0"
+ "eslint-visitor-keys" "^2.0.0"
-eslint-visitor-keys@^2.0.0:
- version "2.1.0"
- resolved "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-2.1.0.tgz?cache=0&sync_timestamp=1636378510206&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-2.1.0.tgz"
- integrity sha1-9lMoJZMFknOSyTjtROsKXJsr0wM=
+"eslint-visitor-keys@^2.0.0":
+ "integrity" "sha1-9lMoJZMFknOSyTjtROsKXJsr0wM="
+ "resolved" "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-2.1.0.tgz?cache=0&sync_timestamp=1636378510206&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-2.1.0.tgz"
+ "version" "2.1.0"
-eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.1.0:
- version "3.1.0"
- resolved "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-3.1.0.tgz?cache=0&sync_timestamp=1636378395014&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-3.1.0.tgz"
- integrity sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==
+"eslint-visitor-keys@^3.0.0", "eslint-visitor-keys@^3.1.0":
+ "integrity" "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA=="
+ "resolved" "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-3.1.0.tgz?cache=0&sync_timestamp=1636378395014&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-3.1.0.tgz"
+ "version" "3.1.0"
-eslint@^8.5.0:
- version "8.6.0"
- resolved "https://registry.npmmirror.com/eslint/download/eslint-8.6.0.tgz"
- integrity sha512-UvxdOJ7mXFlw7iuHZA4jmzPaUqIw54mZrv+XPYKNbKdLR0et4rf60lIZUU9kiNtnzzMzGWxMV+tQ7uG7JG8DPw==
+"eslint@*", "eslint@^5.0.0 || ^6.0.0 || ^7.0.0", "eslint@^6.2.0 || ^7.0.0 || ^8.0.0", "eslint@^8.5.0", "eslint@>=5", "eslint@>=6.0.0":
+ "integrity" "sha512-UvxdOJ7mXFlw7iuHZA4jmzPaUqIw54mZrv+XPYKNbKdLR0et4rf60lIZUU9kiNtnzzMzGWxMV+tQ7uG7JG8DPw=="
+ "resolved" "https://registry.npmmirror.com/eslint/download/eslint-8.6.0.tgz"
+ "version" "8.6.0"
dependencies:
"@eslint/eslintrc" "^1.0.5"
"@humanwhocodes/config-array" "^0.9.2"
- ajv "^6.10.0"
- chalk "^4.0.0"
- cross-spawn "^7.0.2"
- debug "^4.3.2"
- doctrine "^3.0.0"
- enquirer "^2.3.5"
- escape-string-regexp "^4.0.0"
- eslint-scope "^7.1.0"
- eslint-utils "^3.0.0"
- eslint-visitor-keys "^3.1.0"
- espree "^9.3.0"
- esquery "^1.4.0"
- esutils "^2.0.2"
- fast-deep-equal "^3.1.3"
- file-entry-cache "^6.0.1"
- functional-red-black-tree "^1.0.1"
- glob-parent "^6.0.1"
- globals "^13.6.0"
- ignore "^4.0.6"
- import-fresh "^3.0.0"
- imurmurhash "^0.1.4"
- is-glob "^4.0.0"
- 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"
- natural-compare "^1.4.0"
- optionator "^0.9.1"
- progress "^2.0.0"
- regexpp "^3.2.0"
- semver "^7.2.1"
- strip-ansi "^6.0.1"
- strip-json-comments "^3.1.0"
- text-table "^0.2.0"
- v8-compile-cache "^2.0.3"
+ "ajv" "^6.10.0"
+ "chalk" "^4.0.0"
+ "cross-spawn" "^7.0.2"
+ "debug" "^4.3.2"
+ "doctrine" "^3.0.0"
+ "enquirer" "^2.3.5"
+ "escape-string-regexp" "^4.0.0"
+ "eslint-scope" "^7.1.0"
+ "eslint-utils" "^3.0.0"
+ "eslint-visitor-keys" "^3.1.0"
+ "espree" "^9.3.0"
+ "esquery" "^1.4.0"
+ "esutils" "^2.0.2"
+ "fast-deep-equal" "^3.1.3"
+ "file-entry-cache" "^6.0.1"
+ "functional-red-black-tree" "^1.0.1"
+ "glob-parent" "^6.0.1"
+ "globals" "^13.6.0"
+ "ignore" "^4.0.6"
+ "import-fresh" "^3.0.0"
+ "imurmurhash" "^0.1.4"
+ "is-glob" "^4.0.0"
+ "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"
+ "natural-compare" "^1.4.0"
+ "optionator" "^0.9.1"
+ "progress" "^2.0.0"
+ "regexpp" "^3.2.0"
+ "semver" "^7.2.1"
+ "strip-ansi" "^6.0.1"
+ "strip-json-comments" "^3.1.0"
+ "text-table" "^0.2.0"
+ "v8-compile-cache" "^2.0.3"
-espree@^9.0.0, espree@^9.2.0, espree@^9.3.0:
- version "9.3.0"
- resolved "https://registry.npmmirror.com/espree/download/espree-9.3.0.tgz"
- integrity sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==
+"espree@^9.0.0", "espree@^9.2.0", "espree@^9.3.0":
+ "integrity" "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ=="
+ "resolved" "https://registry.npmmirror.com/espree/download/espree-9.3.0.tgz"
+ "version" "9.3.0"
dependencies:
- acorn "^8.7.0"
- acorn-jsx "^5.3.1"
- eslint-visitor-keys "^3.1.0"
+ "acorn" "^8.7.0"
+ "acorn-jsx" "^5.3.1"
+ "eslint-visitor-keys" "^3.1.0"
-esquery@^1.4.0:
- version "1.4.0"
- resolved "https://registry.nlark.com/esquery/download/esquery-1.4.0.tgz"
- integrity sha1-IUj/w4uC6McFff7UhCWz5h8PJKU=
+"esquery@^1.4.0":
+ "integrity" "sha1-IUj/w4uC6McFff7UhCWz5h8PJKU="
+ "resolved" "https://registry.nlark.com/esquery/download/esquery-1.4.0.tgz"
+ "version" "1.4.0"
dependencies:
- estraverse "^5.1.0"
+ "estraverse" "^5.1.0"
-esrecurse@^4.3.0:
- version "4.3.0"
- resolved "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.3.0.tgz"
- integrity sha1-eteWTWeauyi+5yzsY3WLHF0smSE=
+"esrecurse@^4.3.0":
+ "integrity" "sha1-eteWTWeauyi+5yzsY3WLHF0smSE="
+ "resolved" "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.3.0.tgz"
+ "version" "4.3.0"
dependencies:
- estraverse "^5.2.0"
+ "estraverse" "^5.2.0"
-estraverse@^4.1.1:
- version "4.3.0"
- resolved "https://registry.npmmirror.com/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1635237716974&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz"
- integrity sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=
+"estraverse@^4.1.1":
+ "integrity" "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0="
+ "resolved" "https://registry.npmmirror.com/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1635237716974&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz"
+ "version" "4.3.0"
-estraverse@^5.1.0, estraverse@^5.2.0:
- version "5.3.0"
- resolved "https://registry.npmmirror.com/estraverse/download/estraverse-5.3.0.tgz?cache=0&sync_timestamp=1635237716974&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Festraverse%2Fdownload%2Festraverse-5.3.0.tgz"
- integrity sha1-LupSkHAvJquP5TcDcP+GyWXSESM=
+"estraverse@^5.1.0", "estraverse@^5.2.0":
+ "integrity" "sha1-LupSkHAvJquP5TcDcP+GyWXSESM="
+ "resolved" "https://registry.npmmirror.com/estraverse/download/estraverse-5.3.0.tgz?cache=0&sync_timestamp=1635237716974&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Festraverse%2Fdownload%2Festraverse-5.3.0.tgz"
+ "version" "5.3.0"
-estree-walker@^2.0.2:
- version "2.0.2"
- resolved "https://registry.npm.taobao.org/estree-walker/download/estree-walker-2.0.2.tgz"
- integrity sha1-UvAQF4wqTBF6d1fP6UKtt9LaTKw=
+"estree-walker@^2.0.2":
+ "integrity" "sha1-UvAQF4wqTBF6d1fP6UKtt9LaTKw="
+ "resolved" "https://registry.npm.taobao.org/estree-walker/download/estree-walker-2.0.2.tgz"
+ "version" "2.0.2"
-esutils@^2.0.2:
- version "2.0.3"
- resolved "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz"
- integrity sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=
+"esutils@^2.0.2":
+ "integrity" "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q="
+ "resolved" "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz"
+ "version" "2.0.3"
-fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
- version "3.1.3"
- resolved "https://registry.nlark.com/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz"
- integrity sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=
+"fast-deep-equal@^3.1.1", "fast-deep-equal@^3.1.3":
+ "integrity" "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU="
+ "resolved" "https://registry.nlark.com/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz"
+ "version" "3.1.3"
-fast-glob@^3.1.1:
- version "3.2.7"
- resolved "https://registry.nlark.com/fast-glob/download/fast-glob-3.2.7.tgz"
- integrity sha1-/Wy3otfpqnp4RhEehaGW1rL3ZqE=
+"fast-glob@^3.1.1":
+ "integrity" "sha1-/Wy3otfpqnp4RhEehaGW1rL3ZqE="
+ "resolved" "https://registry.nlark.com/fast-glob/download/fast-glob-3.2.7.tgz"
+ "version" "3.2.7"
dependencies:
"@nodelib/fs.stat" "^2.0.2"
"@nodelib/fs.walk" "^1.2.3"
- glob-parent "^5.1.2"
- merge2 "^1.3.0"
- micromatch "^4.0.4"
+ "glob-parent" "^5.1.2"
+ "merge2" "^1.3.0"
+ "micromatch" "^4.0.4"
-fast-json-stable-stringify@^2.0.0:
- version "2.1.0"
- resolved "https://registry.nlark.com/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz"
- integrity sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=
+"fast-json-stable-stringify@^2.0.0":
+ "integrity" "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM="
+ "resolved" "https://registry.nlark.com/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz"
+ "version" "2.1.0"
-fast-levenshtein@^2.0.6:
- version "2.0.6"
- resolved "https://registry.nlark.com/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz"
- integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
+"fast-levenshtein@^2.0.6":
+ "integrity" "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
+ "resolved" "https://registry.nlark.com/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz"
+ "version" "2.0.6"
-fastq@^1.6.0:
- version "1.13.0"
- resolved "https://registry.nlark.com/fastq/download/fastq-1.13.0.tgz"
- integrity sha1-YWdg+Ip1Jr38WWt8q4wYk4w2uYw=
+"fastq@^1.6.0":
+ "integrity" "sha1-YWdg+Ip1Jr38WWt8q4wYk4w2uYw="
+ "resolved" "https://registry.nlark.com/fastq/download/fastq-1.13.0.tgz"
+ "version" "1.13.0"
dependencies:
- reusify "^1.0.4"
+ "reusify" "^1.0.4"
-file-entry-cache@^6.0.1:
- version "6.0.1"
- resolved "https://registry.nlark.com/file-entry-cache/download/file-entry-cache-6.0.1.tgz"
- integrity sha1-IRst2WWcsDlLBz5zI6w8kz1SICc=
+"file-entry-cache@^6.0.1":
+ "integrity" "sha1-IRst2WWcsDlLBz5zI6w8kz1SICc="
+ "resolved" "https://registry.nlark.com/file-entry-cache/download/file-entry-cache-6.0.1.tgz"
+ "version" "6.0.1"
dependencies:
- flat-cache "^3.0.4"
+ "flat-cache" "^3.0.4"
-fill-range@^7.0.1:
- version "7.0.1"
- resolved "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz"
- integrity sha1-GRmmp8df44ssfHflGYU12prN2kA=
+"fill-range@^7.0.1":
+ "integrity" "sha1-GRmmp8df44ssfHflGYU12prN2kA="
+ "resolved" "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz"
+ "version" "7.0.1"
dependencies:
- to-regex-range "^5.0.1"
+ "to-regex-range" "^5.0.1"
-flat-cache@^3.0.4:
- version "3.0.4"
- resolved "https://registry.nlark.com/flat-cache/download/flat-cache-3.0.4.tgz"
- integrity sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE=
+"flat-cache@^3.0.4":
+ "integrity" "sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE="
+ "resolved" "https://registry.nlark.com/flat-cache/download/flat-cache-3.0.4.tgz"
+ "version" "3.0.4"
dependencies:
- flatted "^3.1.0"
- rimraf "^3.0.2"
+ "flatted" "^3.1.0"
+ "rimraf" "^3.0.2"
-flatted@^3.1.0:
- version "3.2.4"
- resolved "https://registry.npmmirror.com/flatted/download/flatted-3.2.4.tgz"
- integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==
+"flatted@^3.1.0":
+ "integrity" "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw=="
+ "resolved" "https://registry.npmmirror.com/flatted/download/flatted-3.2.4.tgz"
+ "version" "3.2.4"
-follow-redirects@^1.14.9:
- version "1.15.1"
- resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.1.tgz"
- integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==
+"follow-redirects@^1.14.9":
+ "integrity" "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA=="
+ "resolved" "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.1.tgz"
+ "version" "1.15.1"
-form-data@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz"
- integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
+"form-data@^4.0.0":
+ "integrity" "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww=="
+ "resolved" "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz"
+ "version" "4.0.0"
dependencies:
- asynckit "^0.4.0"
- combined-stream "^1.0.8"
- mime-types "^2.1.12"
+ "asynckit" "^0.4.0"
+ "combined-stream" "^1.0.8"
+ "mime-types" "^2.1.12"
-fs.realpath@^1.0.0:
- version "1.0.0"
- resolved "https://registry.nlark.com/fs.realpath/download/fs.realpath-1.0.0.tgz"
- integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
+"fs.realpath@^1.0.0":
+ "integrity" "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ "resolved" "https://registry.nlark.com/fs.realpath/download/fs.realpath-1.0.0.tgz"
+ "version" "1.0.0"
-fsevents@~2.3.2:
- version "2.3.2"
- resolved "https://registry.npmmirror.com/fsevents/download/fsevents-2.3.2.tgz"
- integrity sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=
+"fsevents@~2.3.2":
+ "integrity" "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro="
+ "resolved" "https://registry.npmmirror.com/fsevents/download/fsevents-2.3.2.tgz"
+ "version" "2.3.2"
-function-bind@^1.1.1:
- version "1.1.1"
- resolved "https://registry.nlark.com/function-bind/download/function-bind-1.1.1.tgz"
- integrity sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=
+"function-bind@^1.1.1":
+ "integrity" "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0="
+ "resolved" "https://registry.nlark.com/function-bind/download/function-bind-1.1.1.tgz"
+ "version" "1.1.1"
-functional-red-black-tree@^1.0.1:
- version "1.0.1"
- resolved "https://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz?cache=0&sync_timestamp=1577806294691&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunctional-red-black-tree%2Fdownload%2Ffunctional-red-black-tree-1.0.1.tgz"
- integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
+"functional-red-black-tree@^1.0.1":
+ "integrity" "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc="
+ "resolved" "https://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz?cache=0&sync_timestamp=1577806294691&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunctional-red-black-tree%2Fdownload%2Ffunctional-red-black-tree-1.0.1.tgz"
+ "version" "1.0.1"
-glob-parent@^5.1.2, glob-parent@~5.1.2:
- version "5.1.2"
- resolved "https://registry.npmmirror.com/glob-parent/download/glob-parent-5.1.2.tgz"
- integrity sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=
+"glob-parent@^5.1.2", "glob-parent@~5.1.2":
+ "integrity" "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ="
+ "resolved" "https://registry.npmmirror.com/glob-parent/download/glob-parent-5.1.2.tgz"
+ "version" "5.1.2"
dependencies:
- is-glob "^4.0.1"
+ "is-glob" "^4.0.1"
-glob-parent@^6.0.1:
- version "6.0.2"
- resolved "https://registry.npmmirror.com/glob-parent/download/glob-parent-6.0.2.tgz?cache=0&sync_timestamp=1632953697891&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglob-parent%2Fdownload%2Fglob-parent-6.0.2.tgz"
- integrity sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM=
+"glob-parent@^6.0.1":
+ "integrity" "sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM="
+ "resolved" "https://registry.npmmirror.com/glob-parent/download/glob-parent-6.0.2.tgz?cache=0&sync_timestamp=1632953697891&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglob-parent%2Fdownload%2Fglob-parent-6.0.2.tgz"
+ "version" "6.0.2"
dependencies:
- is-glob "^4.0.3"
+ "is-glob" "^4.0.3"
-glob@^7.1.3:
- version "7.2.0"
- resolved "https://registry.npmmirror.com/glob/download/glob-7.2.0.tgz"
- integrity sha1-0VU1r3cy4C6Uj0xBYovZECk/YCM=
+"glob@^7.1.3":
+ "integrity" "sha1-0VU1r3cy4C6Uj0xBYovZECk/YCM="
+ "resolved" "https://registry.npmmirror.com/glob/download/glob-7.2.0.tgz"
+ "version" "7.2.0"
dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.0.4"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
+ "fs.realpath" "^1.0.0"
+ "inflight" "^1.0.4"
+ "inherits" "2"
+ "minimatch" "^3.0.4"
+ "once" "^1.3.0"
+ "path-is-absolute" "^1.0.0"
-globals@^13.6.0, globals@^13.9.0:
- version "13.12.0"
- resolved "https://registry.npmmirror.com/globals/download/globals-13.12.0.tgz"
- integrity sha1-TXM3YDBCMKAILtluIeXFZfiYCJ4=
+"globals@^13.6.0", "globals@^13.9.0":
+ "integrity" "sha1-TXM3YDBCMKAILtluIeXFZfiYCJ4="
+ "resolved" "https://registry.npmmirror.com/globals/download/globals-13.12.0.tgz"
+ "version" "13.12.0"
dependencies:
- type-fest "^0.20.2"
+ "type-fest" "^0.20.2"
-globby@^11.0.3:
- version "11.0.4"
- resolved "https://registry.nlark.com/globby/download/globby-11.0.4.tgz"
- integrity sha1-LLr/d8Lypi5x6bKBOme5ejowAaU=
+"globby@^11.0.3":
+ "integrity" "sha1-LLr/d8Lypi5x6bKBOme5ejowAaU="
+ "resolved" "https://registry.nlark.com/globby/download/globby-11.0.4.tgz"
+ "version" "11.0.4"
dependencies:
- array-union "^2.1.0"
- dir-glob "^3.0.1"
- fast-glob "^3.1.1"
- ignore "^5.1.4"
- merge2 "^1.3.0"
- slash "^3.0.0"
+ "array-union" "^2.1.0"
+ "dir-glob" "^3.0.1"
+ "fast-glob" "^3.1.1"
+ "ignore" "^5.1.4"
+ "merge2" "^1.3.0"
+ "slash" "^3.0.0"
-good-listener@^1.2.2:
- version "1.2.2"
- resolved "https://registry.nlark.com/good-listener/download/good-listener-1.2.2.tgz"
- integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=
+"good-listener@^1.2.2":
+ "integrity" "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA="
+ "resolved" "https://registry.nlark.com/good-listener/download/good-listener-1.2.2.tgz"
+ "version" "1.2.2"
dependencies:
- delegate "^3.1.2"
+ "delegate" "^3.1.2"
-has-flag@^4.0.0:
- version "4.0.0"
- resolved "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz"
- integrity sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=
+"has-flag@^4.0.0":
+ "integrity" "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s="
+ "resolved" "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1626715907927&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz"
+ "version" "4.0.0"
-has@^1.0.3:
- version "1.0.3"
- resolved "https://registry.nlark.com/has/download/has-1.0.3.tgz"
- integrity sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=
+"has@^1.0.3":
+ "integrity" "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y="
+ "resolved" "https://registry.nlark.com/has/download/has-1.0.3.tgz"
+ "version" "1.0.3"
dependencies:
- function-bind "^1.1.1"
+ "function-bind" "^1.1.1"
-ignore@^4.0.6:
- version "4.0.6"
- resolved "https://registry.npmmirror.com/ignore/download/ignore-4.0.6.tgz?cache=0&sync_timestamp=1635926740448&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fignore%2Fdownload%2Fignore-4.0.6.tgz"
- integrity sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=
+"ignore@^4.0.6":
+ "integrity" "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw="
+ "resolved" "https://registry.npmmirror.com/ignore/download/ignore-4.0.6.tgz?cache=0&sync_timestamp=1635926740448&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fignore%2Fdownload%2Fignore-4.0.6.tgz"
+ "version" "4.0.6"
-ignore@^5.1.4, ignore@^5.1.8:
- version "5.1.9"
- resolved "https://registry.npmmirror.com/ignore/download/ignore-5.1.9.tgz?cache=0&sync_timestamp=1635926740448&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fignore%2Fdownload%2Fignore-5.1.9.tgz"
- integrity sha1-nsGly+jhRG7GDUQgBg1Dqm5zgvs=
+"ignore@^5.1.4":
+ "integrity" "sha1-nsGly+jhRG7GDUQgBg1Dqm5zgvs="
+ "resolved" "https://registry.npmmirror.com/ignore/download/ignore-5.1.9.tgz?cache=0&sync_timestamp=1635926740448&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fignore%2Fdownload%2Fignore-5.1.9.tgz"
+ "version" "5.1.9"
-immutable@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmmirror.com/immutable/download/immutable-4.0.0.tgz?cache=0&sync_timestamp=1633650644342&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fimmutable%2Fdownload%2Fimmutable-4.0.0.tgz"
- integrity sha1-uG943mre82CDle+yaakUYnl+LCM=
+"ignore@^5.1.8":
+ "integrity" "sha1-nsGly+jhRG7GDUQgBg1Dqm5zgvs="
+ "resolved" "https://registry.npmmirror.com/ignore/download/ignore-5.1.9.tgz?cache=0&sync_timestamp=1635926740448&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fignore%2Fdownload%2Fignore-5.1.9.tgz"
+ "version" "5.1.9"
-import-fresh@^3.0.0, import-fresh@^3.2.1:
- version "3.3.0"
- resolved "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.3.0.tgz?cache=0&sync_timestamp=1608469579940&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.3.0.tgz"
- integrity sha1-NxYsJfy566oublPVtNiM4X2eDCs=
+"immutable@^4.0.0":
+ "integrity" "sha1-uG943mre82CDle+yaakUYnl+LCM="
+ "resolved" "https://registry.npmmirror.com/immutable/download/immutable-4.0.0.tgz?cache=0&sync_timestamp=1633650644342&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fimmutable%2Fdownload%2Fimmutable-4.0.0.tgz"
+ "version" "4.0.0"
+
+"import-fresh@^3.0.0", "import-fresh@^3.2.1":
+ "integrity" "sha1-NxYsJfy566oublPVtNiM4X2eDCs="
+ "resolved" "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.3.0.tgz?cache=0&sync_timestamp=1608469579940&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.3.0.tgz"
+ "version" "3.3.0"
dependencies:
- parent-module "^1.0.0"
- resolve-from "^4.0.0"
+ "parent-module" "^1.0.0"
+ "resolve-from" "^4.0.0"
-imurmurhash@^0.1.4:
- version "0.1.4"
- resolved "https://registry.nlark.com/imurmurhash/download/imurmurhash-0.1.4.tgz"
- integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
+"imurmurhash@^0.1.4":
+ "integrity" "sha1-khi5srkoojixPcT7a21XbyMUU+o="
+ "resolved" "https://registry.nlark.com/imurmurhash/download/imurmurhash-0.1.4.tgz"
+ "version" "0.1.4"
-inflight@^1.0.4:
- version "1.0.6"
- resolved "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz"
- integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
+"inflight@^1.0.4":
+ "integrity" "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk="
+ "resolved" "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz"
+ "version" "1.0.6"
dependencies:
- once "^1.3.0"
- wrappy "1"
+ "once" "^1.3.0"
+ "wrappy" "1"
-inherits@2:
- version "2.0.4"
- resolved "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz"
- integrity sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=
+"inherits@2":
+ "integrity" "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w="
+ "resolved" "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz"
+ "version" "2.0.4"
-is-binary-path@~2.1.0:
- version "2.1.0"
- resolved "https://registry.nlark.com/is-binary-path/download/is-binary-path-2.1.0.tgz"
- integrity sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=
+"is-binary-path@~2.1.0":
+ "integrity" "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk="
+ "resolved" "https://registry.nlark.com/is-binary-path/download/is-binary-path-2.1.0.tgz"
+ "version" "2.1.0"
dependencies:
- binary-extensions "^2.0.0"
+ "binary-extensions" "^2.0.0"
-is-core-module@^2.8.1:
- version "2.9.0"
- resolved "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.9.0.tgz"
- integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==
+"is-core-module@^2.8.1":
+ "integrity" "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A=="
+ "resolved" "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.9.0.tgz"
+ "version" "2.9.0"
dependencies:
- has "^1.0.3"
+ "has" "^1.0.3"
-is-extglob@^2.1.1:
- version "2.1.1"
- resolved "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz"
- integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
+"is-extglob@^2.1.1":
+ "integrity" "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
+ "resolved" "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz"
+ "version" "2.1.1"
-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.npmmirror.com/is-glob/download/is-glob-4.0.3.tgz"
- integrity sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=
+"is-glob@^4.0.0", "is-glob@^4.0.1", "is-glob@^4.0.3", "is-glob@~4.0.1":
+ "integrity" "sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ="
+ "resolved" "https://registry.npmmirror.com/is-glob/download/is-glob-4.0.3.tgz"
+ "version" "4.0.3"
dependencies:
- is-extglob "^2.1.1"
+ "is-extglob" "^2.1.1"
-is-number@^7.0.0:
- version "7.0.0"
- resolved "https://registry.nlark.com/is-number/download/is-number-7.0.0.tgz"
- integrity sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=
+"is-number@^7.0.0":
+ "integrity" "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss="
+ "resolved" "https://registry.nlark.com/is-number/download/is-number-7.0.0.tgz"
+ "version" "7.0.0"
-isexe@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz"
- integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
+"isexe@^2.0.0":
+ "integrity" "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
+ "resolved" "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz"
+ "version" "2.0.0"
-javascript-natural-sort@^0.7.1:
- version "0.7.1"
- resolved "https://registry.npmmirror.com/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz"
- integrity sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==
+"javascript-natural-sort@^0.7.1":
+ "integrity" "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw=="
+ "resolved" "https://registry.npmmirror.com/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz"
+ "version" "0.7.1"
-jmespath@^0.16.0:
- version "0.16.0"
- resolved "https://registry.npmmirror.com/jmespath/-/jmespath-0.16.0.tgz"
- integrity sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==
+"jmespath@^0.16.0":
+ "integrity" "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw=="
+ "resolved" "https://registry.npmmirror.com/jmespath/-/jmespath-0.16.0.tgz"
+ "version" "0.16.0"
-js-yaml@^4.1.0:
- version "4.1.0"
- resolved "https://registry.npmmirror.com/js-yaml/download/js-yaml-4.1.0.tgz"
- integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
+"js-yaml@^4.1.0":
+ "integrity" "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="
+ "resolved" "https://registry.npmmirror.com/js-yaml/download/js-yaml-4.1.0.tgz"
+ "version" "4.1.0"
dependencies:
- argparse "^2.0.1"
+ "argparse" "^2.0.1"
-jsencrypt@^3.2.1:
- version "3.2.1"
- resolved "https://registry.npmmirror.com/jsencrypt/-/jsencrypt-3.2.1.tgz#09766983cc760088ff26b12fe7e574252af97727"
- integrity sha512-k1sD5QV0KPn+D8uG9AdGzTQuamt82QZ3A3l6f7TRwMU6Oi2Vg0BsL+wZIQBONcraO1pc78ExMdvmBBJ8WhNYUA==
+"jsencrypt@^3.2.1":
+ "integrity" "sha512-k1sD5QV0KPn+D8uG9AdGzTQuamt82QZ3A3l6f7TRwMU6Oi2Vg0BsL+wZIQBONcraO1pc78ExMdvmBBJ8WhNYUA=="
+ "resolved" "https://registry.npmmirror.com/jsencrypt/-/jsencrypt-3.2.1.tgz"
+ "version" "3.2.1"
-json-schema-traverse@^0.4.1:
- version "0.4.1"
- resolved "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz"
- integrity sha1-afaofZUTq4u4/mO9sJecRI5oRmA=
+"json-schema-traverse@^0.4.1":
+ "integrity" "sha1-afaofZUTq4u4/mO9sJecRI5oRmA="
+ "resolved" "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz"
+ "version" "0.4.1"
-json-source-map@^0.6.1:
- version "0.6.1"
- resolved "https://registry.npmmirror.com/json-source-map/-/json-source-map-0.6.1.tgz"
- integrity sha512-1QoztHPsMQqhDq0hlXY5ZqcEdUzxQEIxgFkKl4WUp2pgShObl+9ovi4kRh2TfvAfxAoHOJ9vIMEqk3k4iex7tg==
+"json-source-map@^0.6.1":
+ "integrity" "sha512-1QoztHPsMQqhDq0hlXY5ZqcEdUzxQEIxgFkKl4WUp2pgShObl+9ovi4kRh2TfvAfxAoHOJ9vIMEqk3k4iex7tg=="
+ "resolved" "https://registry.npmmirror.com/json-source-map/-/json-source-map-0.6.1.tgz"
+ "version" "0.6.1"
-json-stable-stringify-without-jsonify@^1.0.1:
- version "1.0.1"
- resolved "https://registry.nlark.com/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz"
- integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
+"json-stable-stringify-without-jsonify@^1.0.1":
+ "integrity" "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
+ "resolved" "https://registry.nlark.com/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz"
+ "version" "1.0.1"
-jsoneditor@^9.9.0:
- version "9.9.0"
- resolved "https://registry.npmmirror.com/jsoneditor/-/jsoneditor-9.9.0.tgz"
- integrity sha512-NHJhyaqcc5U33ah6dEcd0S9b14Auocpe9nydvC9ui7Uq/vjEFnsd7ot6O9Jqwv53B7DmHFUWq5cT4qeWh4MEoA==
+"jsoneditor@^9.9.0":
+ "integrity" "sha512-NHJhyaqcc5U33ah6dEcd0S9b14Auocpe9nydvC9ui7Uq/vjEFnsd7ot6O9Jqwv53B7DmHFUWq5cT4qeWh4MEoA=="
+ "resolved" "https://registry.npmmirror.com/jsoneditor/-/jsoneditor-9.9.0.tgz"
+ "version" "9.9.0"
dependencies:
- ace-builds "^1.6.0"
- ajv "^6.12.6"
- javascript-natural-sort "^0.7.1"
- jmespath "^0.16.0"
- json-source-map "^0.6.1"
- jsonrepair "^2.2.1"
- mobius1-selectr "^2.4.13"
- picomodal "^3.0.0"
- vanilla-picker "^2.12.1"
+ "ace-builds" "^1.6.0"
+ "ajv" "^6.12.6"
+ "javascript-natural-sort" "^0.7.1"
+ "jmespath" "^0.16.0"
+ "json-source-map" "^0.6.1"
+ "jsonrepair" "^2.2.1"
+ "mobius1-selectr" "^2.4.13"
+ "picomodal" "^3.0.0"
+ "vanilla-picker" "^2.12.1"
-jsonrepair@^2.2.1:
- version "2.2.1"
- resolved "https://registry.npmmirror.com/jsonrepair/-/jsonrepair-2.2.1.tgz"
- integrity sha512-o9Je8TceILo872uQC9fIBJm957j1Io7z8Ca1iWIqY6S5S65HGE9XN7XEEw7+tUviB9Vq4sygV89MVTxl+rhZyg==
+"jsonrepair@^2.2.1":
+ "integrity" "sha512-o9Je8TceILo872uQC9fIBJm957j1Io7z8Ca1iWIqY6S5S65HGE9XN7XEEw7+tUviB9Vq4sygV89MVTxl+rhZyg=="
+ "resolved" "https://registry.npmmirror.com/jsonrepair/-/jsonrepair-2.2.1.tgz"
+ "version" "2.2.1"
-klona@^2.0.4:
- version "2.0.5"
- resolved "https://registry.npmmirror.com/klona/download/klona-2.0.5.tgz"
- integrity sha1-0WZXTZAHY5XZljqnqSj6u412r7w=
+"klona@^2.0.4":
+ "integrity" "sha1-0WZXTZAHY5XZljqnqSj6u412r7w="
+ "resolved" "https://registry.npmmirror.com/klona/download/klona-2.0.5.tgz"
+ "version" "2.0.5"
-levn@^0.4.1:
- version "0.4.1"
- resolved "https://registry.nlark.com/levn/download/levn-0.4.1.tgz"
- integrity sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=
+"levn@^0.4.1":
+ "integrity" "sha1-rkViwAdHO5MqYgDUAyaN0v/8at4="
+ "resolved" "https://registry.nlark.com/levn/download/levn-0.4.1.tgz"
+ "version" "0.4.1"
dependencies:
- prelude-ls "^1.2.1"
- type-check "~0.4.0"
+ "prelude-ls" "^1.2.1"
+ "type-check" "~0.4.0"
-lodash-es@^4.17.21:
- version "4.17.21"
- resolved "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz"
- integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
+"lodash-es@*", "lodash-es@^4.17.21":
+ "integrity" "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
+ "resolved" "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz"
+ "version" "4.17.21"
-lodash-unified@^1.0.2:
- version "1.0.2"
- resolved "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.2.tgz"
- integrity sha512-OGbEy+1P+UT26CYi4opY4gebD8cWRDxAT6MAObIVQMiqYdxZr1g3QHWCToVsm31x2NkLS4K3+MC2qInaRMa39g==
+"lodash-unified@^1.0.2":
+ "integrity" "sha512-OGbEy+1P+UT26CYi4opY4gebD8cWRDxAT6MAObIVQMiqYdxZr1g3QHWCToVsm31x2NkLS4K3+MC2qInaRMa39g=="
+ "resolved" "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.2.tgz"
+ "version" "1.0.2"
-lodash.merge@^4.6.2:
- version "4.6.2"
- resolved "https://registry.npm.taobao.org/lodash.merge/download/lodash.merge-4.6.2.tgz"
- integrity sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=
+"lodash.merge@^4.6.2":
+ "integrity" "sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo="
+ "resolved" "https://registry.npm.taobao.org/lodash.merge/download/lodash.merge-4.6.2.tgz"
+ "version" "4.6.2"
-lodash@^4.17.21:
- version "4.17.21"
- resolved "https://registry.nlark.com/lodash/download/lodash-4.17.21.tgz?cache=0&sync_timestamp=1618847150612&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flodash%2Fdownload%2Flodash-4.17.21.tgz"
- integrity sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=
+"lodash@*", "lodash@^4.17.21":
+ "integrity" "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw="
+ "resolved" "https://registry.nlark.com/lodash/download/lodash-4.17.21.tgz?cache=0&sync_timestamp=1618847150612&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flodash%2Fdownload%2Flodash-4.17.21.tgz"
+ "version" "4.17.21"
-lru-cache@^6.0.0:
- version "6.0.0"
- resolved "https://registry.npm.taobao.org/lru-cache/download/lru-cache-6.0.0.tgz"
- integrity sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=
+"lru-cache@^6.0.0":
+ "integrity" "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ="
+ "resolved" "https://registry.npm.taobao.org/lru-cache/download/lru-cache-6.0.0.tgz"
+ "version" "6.0.0"
dependencies:
- yallist "^4.0.0"
+ "yallist" "^4.0.0"
-magic-string@^0.25.7:
- version "0.25.7"
- resolved "https://registry.npm.taobao.org/magic-string/download/magic-string-0.25.7.tgz"
- integrity sha1-P0l9b9NMZpxnmNy4IfLvMfVEUFE=
+"magic-string@^0.25.7":
+ "integrity" "sha1-P0l9b9NMZpxnmNy4IfLvMfVEUFE="
+ "resolved" "https://registry.npm.taobao.org/magic-string/download/magic-string-0.25.7.tgz"
+ "version" "0.25.7"
dependencies:
- sourcemap-codec "^1.4.4"
+ "sourcemap-codec" "^1.4.4"
-memoize-one@^6.0.0:
- version "6.0.0"
- resolved "https://registry.npmmirror.com/memoize-one/download/memoize-one-6.0.0.tgz?cache=0&sync_timestamp=1634697208428&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmemoize-one%2Fdownload%2Fmemoize-one-6.0.0.tgz"
- integrity sha1-slkbhx7YKUiu5HJ9xqvO7qyMEEU=
+"memoize-one@^6.0.0":
+ "integrity" "sha1-slkbhx7YKUiu5HJ9xqvO7qyMEEU="
+ "resolved" "https://registry.npmmirror.com/memoize-one/download/memoize-one-6.0.0.tgz?cache=0&sync_timestamp=1634697208428&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmemoize-one%2Fdownload%2Fmemoize-one-6.0.0.tgz"
+ "version" "6.0.0"
-merge2@^1.3.0:
- version "1.4.1"
- resolved "https://registry.npm.taobao.org/merge2/download/merge2-1.4.1.tgz"
- integrity sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=
+"merge2@^1.3.0":
+ "integrity" "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4="
+ "resolved" "https://registry.npm.taobao.org/merge2/download/merge2-1.4.1.tgz"
+ "version" "1.4.1"
-micromatch@^4.0.4:
- version "4.0.4"
- resolved "https://registry.nlark.com/micromatch/download/micromatch-4.0.4.tgz"
- integrity sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k=
+"micromatch@^4.0.4":
+ "integrity" "sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k="
+ "resolved" "https://registry.nlark.com/micromatch/download/micromatch-4.0.4.tgz"
+ "version" "4.0.4"
dependencies:
- braces "^3.0.1"
- picomatch "^2.2.3"
+ "braces" "^3.0.1"
+ "picomatch" "^2.2.3"
-mime-db@1.52.0:
- version "1.52.0"
- resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz"
- integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
+"mime-db@1.52.0":
+ "integrity" "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+ "resolved" "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz"
+ "version" "1.52.0"
-mime-types@^2.1.12:
- version "2.1.35"
- resolved "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz"
- integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
+"mime-types@^2.1.12":
+ "integrity" "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="
+ "resolved" "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz"
+ "version" "2.1.35"
dependencies:
- mime-db "1.52.0"
+ "mime-db" "1.52.0"
-minimatch@^3.0.4:
- version "3.0.4"
- resolved "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz"
- integrity sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=
+"minimatch@^3.0.4":
+ "integrity" "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM="
+ "resolved" "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz"
+ "version" "3.0.4"
dependencies:
- brace-expansion "^1.1.7"
+ "brace-expansion" "^1.1.7"
-mitt@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmmirror.com/mitt/download/mitt-3.0.0.tgz"
- integrity sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==
+"mitt@^3.0.0":
+ "integrity" "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ=="
+ "resolved" "https://registry.npmmirror.com/mitt/download/mitt-3.0.0.tgz"
+ "version" "3.0.0"
-mobius1-selectr@^2.4.13:
- version "2.4.13"
- resolved "https://registry.npmmirror.com/mobius1-selectr/-/mobius1-selectr-2.4.13.tgz"
- integrity sha512-Mk9qDrvU44UUL0EBhbAA1phfQZ7aMZPjwtL7wkpiBzGh8dETGqfsh50mWoX9EkjDlkONlErWXArHCKfoxVg0Bw==
+"mobius1-selectr@^2.4.13":
+ "integrity" "sha512-Mk9qDrvU44UUL0EBhbAA1phfQZ7aMZPjwtL7wkpiBzGh8dETGqfsh50mWoX9EkjDlkONlErWXArHCKfoxVg0Bw=="
+ "resolved" "https://registry.npmmirror.com/mobius1-selectr/-/mobius1-selectr-2.4.13.tgz"
+ "version" "2.4.13"
-ms@2.1.2:
- version "2.1.2"
- resolved "https://registry.npmmirror.com/ms/download/ms-2.1.2.tgz"
- integrity sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=
+"ms@2.1.2":
+ "integrity" "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk="
+ "resolved" "https://registry.npmmirror.com/ms/download/ms-2.1.2.tgz"
+ "version" "2.1.2"
-nanoid@^3.1.30:
- version "3.1.30"
- resolved "https://registry.npmmirror.com/nanoid/download/nanoid-3.1.30.tgz"
- integrity sha1-Y/k8xUjSoRPcXfvGO/oJ4rm2Q2I=
+"nanoid@^3.1.30":
+ "integrity" "sha1-Y/k8xUjSoRPcXfvGO/oJ4rm2Q2I="
+ "resolved" "https://registry.npmmirror.com/nanoid/download/nanoid-3.1.30.tgz"
+ "version" "3.1.30"
-nanoid@^3.3.4:
- version "3.3.4"
- resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz"
- integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
+"nanoid@^3.3.4":
+ "integrity" "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
+ "resolved" "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz"
+ "version" "3.3.4"
-natural-compare@^1.4.0:
- version "1.4.0"
- resolved "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz"
- integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
+"natural-compare@^1.4.0":
+ "integrity" "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc="
+ "resolved" "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz"
+ "version" "1.4.0"
-neo-async@^2.6.2:
- version "2.6.2"
- resolved "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.2.tgz"
- integrity sha1-tKr7k+OustgXTKU88WOrfXMIMF8=
+"neo-async@^2.6.2":
+ "integrity" "sha1-tKr7k+OustgXTKU88WOrfXMIMF8="
+ "resolved" "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.2.tgz"
+ "version" "2.6.2"
-normalize-path@^3.0.0, normalize-path@~3.0.0:
- version "3.0.0"
- resolved "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz"
- integrity sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=
+"normalize-path@^3.0.0", "normalize-path@~3.0.0":
+ "integrity" "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU="
+ "resolved" "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz"
+ "version" "3.0.0"
-normalize-wheel-es@^1.1.2:
- version "1.1.2"
- resolved "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.1.2.tgz"
- integrity sha512-scX83plWJXYH1J4+BhAuIHadROzxX0UBF3+HuZNY2Ks8BciE7tSTQ+5JhTsvzjaO0/EJdm4JBGrfObKxFf3Png==
+"normalize-wheel-es@^1.1.2":
+ "integrity" "sha512-scX83plWJXYH1J4+BhAuIHadROzxX0UBF3+HuZNY2Ks8BciE7tSTQ+5JhTsvzjaO0/EJdm4JBGrfObKxFf3Png=="
+ "resolved" "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.1.2.tgz"
+ "version" "1.1.2"
-nprogress@^0.2.0:
- version "0.2.0"
- resolved "https://registry.npm.taobao.org/nprogress/download/nprogress-0.2.0.tgz"
- integrity sha1-y480xTIT2JVyP8urkH6UIq28r7E=
+"nprogress@^0.2.0":
+ "integrity" "sha1-y480xTIT2JVyP8urkH6UIq28r7E="
+ "resolved" "https://registry.npm.taobao.org/nprogress/download/nprogress-0.2.0.tgz"
+ "version" "0.2.0"
-once@^1.3.0:
- version "1.4.0"
- resolved "https://registry.nlark.com/once/download/once-1.4.0.tgz"
- integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
+"once@^1.3.0":
+ "integrity" "sha1-WDsap3WWHUsROsF9nFC6753Xa9E="
+ "resolved" "https://registry.nlark.com/once/download/once-1.4.0.tgz"
+ "version" "1.4.0"
dependencies:
- wrappy "1"
+ "wrappy" "1"
-optionator@^0.9.1:
- version "0.9.1"
- resolved "https://registry.npm.taobao.org/optionator/download/optionator-0.9.1.tgz"
- integrity sha1-TyNqY3Pa4FZqbUPhMmZ09QwpFJk=
+"optionator@^0.9.1":
+ "integrity" "sha1-TyNqY3Pa4FZqbUPhMmZ09QwpFJk="
+ "resolved" "https://registry.npm.taobao.org/optionator/download/optionator-0.9.1.tgz"
+ "version" "0.9.1"
dependencies:
- deep-is "^0.1.3"
- fast-levenshtein "^2.0.6"
- levn "^0.4.1"
- prelude-ls "^1.2.1"
- type-check "^0.4.0"
- word-wrap "^1.2.3"
+ "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"
-parent-module@^1.0.0:
- version "1.0.1"
- resolved "https://registry.npmmirror.com/parent-module/download/parent-module-1.0.1.tgz"
- integrity sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=
+"parent-module@^1.0.0":
+ "integrity" "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI="
+ "resolved" "https://registry.npmmirror.com/parent-module/download/parent-module-1.0.1.tgz"
+ "version" "1.0.1"
dependencies:
- callsites "^3.0.0"
+ "callsites" "^3.0.0"
-path-is-absolute@^1.0.0:
- version "1.0.1"
- resolved "https://registry.nlark.com/path-is-absolute/download/path-is-absolute-1.0.1.tgz"
- integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
+"path-is-absolute@^1.0.0":
+ "integrity" "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ "resolved" "https://registry.nlark.com/path-is-absolute/download/path-is-absolute-1.0.1.tgz"
+ "version" "1.0.1"
-path-key@^3.1.0:
- version "3.1.1"
- resolved "https://registry.nlark.com/path-key/download/path-key-3.1.1.tgz"
- integrity sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=
+"path-key@^3.1.0":
+ "integrity" "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U="
+ "resolved" "https://registry.nlark.com/path-key/download/path-key-3.1.1.tgz"
+ "version" "3.1.1"
-path-parse@^1.0.7:
- version "1.0.7"
- resolved "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz"
- integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
+"path-parse@^1.0.7":
+ "integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
+ "resolved" "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz"
+ "version" "1.0.7"
-path-type@^4.0.0:
- version "4.0.0"
- resolved "https://registry.nlark.com/path-type/download/path-type-4.0.0.tgz"
- integrity sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=
+"path-type@^4.0.0":
+ "integrity" "sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs="
+ "resolved" "https://registry.nlark.com/path-type/download/path-type-4.0.0.tgz"
+ "version" "4.0.0"
-picocolors@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmmirror.com/picocolors/download/picocolors-1.0.0.tgz?cache=0&sync_timestamp=1634093378416&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpicocolors%2Fdownload%2Fpicocolors-1.0.0.tgz"
- integrity sha1-y1vcdP8/UYkiNur3nWi8RFZKuBw=
+"picocolors@^1.0.0":
+ "integrity" "sha1-y1vcdP8/UYkiNur3nWi8RFZKuBw="
+ "resolved" "https://registry.npmmirror.com/picocolors/download/picocolors-1.0.0.tgz?cache=0&sync_timestamp=1634093378416&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpicocolors%2Fdownload%2Fpicocolors-1.0.0.tgz"
+ "version" "1.0.0"
-picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:
- version "2.3.0"
- resolved "https://registry.nlark.com/picomatch/download/picomatch-2.3.0.tgz?cache=0&sync_timestamp=1621648246651&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpicomatch%2Fdownload%2Fpicomatch-2.3.0.tgz"
- integrity sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=
+"picomatch@^2.0.4", "picomatch@^2.2.1", "picomatch@^2.2.3":
+ "integrity" "sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI="
+ "resolved" "https://registry.nlark.com/picomatch/download/picomatch-2.3.0.tgz?cache=0&sync_timestamp=1621648246651&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpicomatch%2Fdownload%2Fpicomatch-2.3.0.tgz"
+ "version" "2.3.0"
-picomodal@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmmirror.com/picomodal/-/picomodal-3.0.0.tgz"
- integrity sha512-FoR3TDfuLlqUvcEeK5ifpKSVVns6B4BQvc8SDF6THVMuadya6LLtji0QgUDSStw0ZR2J7I6UGi5V2V23rnPWTw==
+"picomodal@^3.0.0":
+ "integrity" "sha512-FoR3TDfuLlqUvcEeK5ifpKSVVns6B4BQvc8SDF6THVMuadya6LLtji0QgUDSStw0ZR2J7I6UGi5V2V23rnPWTw=="
+ "resolved" "https://registry.npmmirror.com/picomodal/-/picomodal-3.0.0.tgz"
+ "version" "3.0.0"
-postcss@^8.1.10:
- version "8.4.5"
- resolved "https://registry.npmmirror.com/postcss/download/postcss-8.4.5.tgz"
- integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==
+"postcss@^8.1.10":
+ "integrity" "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg=="
+ "resolved" "https://registry.npmmirror.com/postcss/download/postcss-8.4.5.tgz"
+ "version" "8.4.5"
dependencies:
- nanoid "^3.1.30"
- picocolors "^1.0.0"
- source-map-js "^1.0.1"
+ "nanoid" "^3.1.30"
+ "picocolors" "^1.0.0"
+ "source-map-js" "^1.0.1"
-postcss@^8.4.13:
- version "8.4.14"
- resolved "https://registry.npmmirror.com/postcss/-/postcss-8.4.14.tgz"
- integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==
+"postcss@^8.4.13":
+ "integrity" "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig=="
+ "resolved" "https://registry.npmmirror.com/postcss/-/postcss-8.4.14.tgz"
+ "version" "8.4.14"
dependencies:
- nanoid "^3.3.4"
- picocolors "^1.0.0"
- source-map-js "^1.0.2"
+ "nanoid" "^3.3.4"
+ "picocolors" "^1.0.0"
+ "source-map-js" "^1.0.2"
-prelude-ls@^1.2.1:
- version "1.2.1"
- resolved "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.2.1.tgz"
- integrity sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=
+"prelude-ls@^1.2.1":
+ "integrity" "sha1-3rxkidem5rDnYRiIzsiAM30xY5Y="
+ "resolved" "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.2.1.tgz"
+ "version" "1.2.1"
-prettier@^2.3.0:
- version "2.5.1"
- resolved "https://registry.npmmirror.com/prettier/download/prettier-2.5.1.tgz"
- integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==
+"prettier@^2.3.0":
+ "integrity" "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg=="
+ "resolved" "https://registry.npmmirror.com/prettier/download/prettier-2.5.1.tgz"
+ "version" "2.5.1"
-progress@^2.0.0:
- version "2.0.3"
- resolved "https://registry.nlark.com/progress/download/progress-2.0.3.tgz"
- integrity sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=
+"progress@^2.0.0":
+ "integrity" "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg="
+ "resolved" "https://registry.nlark.com/progress/download/progress-2.0.3.tgz"
+ "version" "2.0.3"
-punycode@^2.1.0:
- version "2.1.1"
- resolved "https://registry.nlark.com/punycode/download/punycode-2.1.1.tgz"
- integrity sha1-tYsBCsQMIsVldhbI0sLALHv0eew=
+"punycode@^2.1.0":
+ "integrity" "sha1-tYsBCsQMIsVldhbI0sLALHv0eew="
+ "resolved" "https://registry.nlark.com/punycode/download/punycode-2.1.1.tgz"
+ "version" "2.1.1"
-queue-microtask@^1.2.2:
- version "1.2.3"
- resolved "https://registry.nlark.com/queue-microtask/download/queue-microtask-1.2.3.tgz"
- integrity sha1-SSkii7xyTfrEPg77BYyve2z7YkM=
+"queue-microtask@^1.2.2":
+ "integrity" "sha1-SSkii7xyTfrEPg77BYyve2z7YkM="
+ "resolved" "https://registry.nlark.com/queue-microtask/download/queue-microtask-1.2.3.tgz"
+ "version" "1.2.3"
-readdirp@~3.6.0:
- version "3.6.0"
- resolved "https://registry.npm.taobao.org/readdirp/download/readdirp-3.6.0.tgz"
- integrity sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc=
+"readdirp@~3.6.0":
+ "integrity" "sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc="
+ "resolved" "https://registry.npm.taobao.org/readdirp/download/readdirp-3.6.0.tgz"
+ "version" "3.6.0"
dependencies:
- picomatch "^2.2.1"
+ "picomatch" "^2.2.1"
-regexpp@^3.1.0, regexpp@^3.2.0:
- version "3.2.0"
- resolved "https://registry.nlark.com/regexpp/download/regexpp-3.2.0.tgz?cache=0&sync_timestamp=1623668872577&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregexpp%2Fdownload%2Fregexpp-3.2.0.tgz"
- integrity sha1-BCWido2PI7rXDKS5BGH6LxIT4bI=
+"regexpp@^3.1.0", "regexpp@^3.2.0":
+ "integrity" "sha1-BCWido2PI7rXDKS5BGH6LxIT4bI="
+ "resolved" "https://registry.nlark.com/regexpp/download/regexpp-3.2.0.tgz?cache=0&sync_timestamp=1623668872577&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregexpp%2Fdownload%2Fregexpp-3.2.0.tgz"
+ "version" "3.2.0"
-resolve-from@^4.0.0:
- version "4.0.0"
- resolved "https://registry.nlark.com/resolve-from/download/resolve-from-4.0.0.tgz"
- integrity sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=
+"resolve-from@^4.0.0":
+ "integrity" "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY="
+ "resolved" "https://registry.nlark.com/resolve-from/download/resolve-from-4.0.0.tgz"
+ "version" "4.0.0"
-resolve@^1.22.0:
- version "1.22.0"
- resolved "https://registry.npmmirror.com/resolve/-/resolve-1.22.0.tgz"
- integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==
+"resolve@^1.22.0":
+ "integrity" "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw=="
+ "resolved" "https://registry.npmmirror.com/resolve/-/resolve-1.22.0.tgz"
+ "version" "1.22.0"
dependencies:
- is-core-module "^2.8.1"
- path-parse "^1.0.7"
- supports-preserve-symlinks-flag "^1.0.0"
+ "is-core-module" "^2.8.1"
+ "path-parse" "^1.0.7"
+ "supports-preserve-symlinks-flag" "^1.0.0"
-reusify@^1.0.4:
- version "1.0.4"
- resolved "https://registry.npm.taobao.org/reusify/download/reusify-1.0.4.tgz"
- integrity sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY=
+"reusify@^1.0.4":
+ "integrity" "sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY="
+ "resolved" "https://registry.npm.taobao.org/reusify/download/reusify-1.0.4.tgz"
+ "version" "1.0.4"
-rimraf@^3.0.2:
- version "3.0.2"
- resolved "https://registry.npm.taobao.org/rimraf/download/rimraf-3.0.2.tgz"
- integrity sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=
+"rimraf@^3.0.2":
+ "integrity" "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho="
+ "resolved" "https://registry.npm.taobao.org/rimraf/download/rimraf-3.0.2.tgz"
+ "version" "3.0.2"
dependencies:
- glob "^7.1.3"
+ "glob" "^7.1.3"
-rollup@^2.59.0:
- version "2.61.1"
- resolved "https://registry.npmmirror.com/rollup/download/rollup-2.61.1.tgz"
- integrity sha512-BbTXlEvB8d+XFbK/7E5doIcRtxWPRiqr0eb5vQ0+2paMM04Ye4PZY5nHOQef2ix24l/L0SpLd5hwcH15QHPdvA==
+"rollup@^2.59.0":
+ "integrity" "sha512-BbTXlEvB8d+XFbK/7E5doIcRtxWPRiqr0eb5vQ0+2paMM04Ye4PZY5nHOQef2ix24l/L0SpLd5hwcH15QHPdvA=="
+ "resolved" "https://registry.npmmirror.com/rollup/download/rollup-2.61.1.tgz"
+ "version" "2.61.1"
optionalDependencies:
- fsevents "~2.3.2"
+ "fsevents" "~2.3.2"
-run-parallel@^1.1.9:
- version "1.2.0"
- resolved "https://registry.nlark.com/run-parallel/download/run-parallel-1.2.0.tgz"
- integrity sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=
+"run-parallel@^1.1.9":
+ "integrity" "sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4="
+ "resolved" "https://registry.nlark.com/run-parallel/download/run-parallel-1.2.0.tgz"
+ "version" "1.2.0"
dependencies:
- queue-microtask "^1.2.2"
+ "queue-microtask" "^1.2.2"
-sass-loader@^12.4.0:
- version "12.4.0"
- resolved "https://registry.npmmirror.com/sass-loader/download/sass-loader-12.4.0.tgz"
- integrity sha512-7xN+8khDIzym1oL9XyS6zP6Ges+Bo2B2xbPrjdMHEYyV3AQYhd/wXeru++3ODHF0zMjYmVadblSKrPrjEkL8mg==
+"sass-loader@^12.4.0":
+ "integrity" "sha512-7xN+8khDIzym1oL9XyS6zP6Ges+Bo2B2xbPrjdMHEYyV3AQYhd/wXeru++3ODHF0zMjYmVadblSKrPrjEkL8mg=="
+ "resolved" "https://registry.npmmirror.com/sass-loader/download/sass-loader-12.4.0.tgz"
+ "version" "12.4.0"
dependencies:
- klona "^2.0.4"
- neo-async "^2.6.2"
+ "klona" "^2.0.4"
+ "neo-async" "^2.6.2"
-sass@^1.45.1:
- version "1.48.0"
- resolved "https://registry.npmmirror.com/sass/download/sass-1.48.0.tgz"
- integrity sha512-hQi5g4DcfjcipotoHZ80l7GNJHGqQS5LwMBjVYB/TaT0vcSSpbgM8Ad7cgfsB2M0MinbkEQQPO9+sjjSiwxqmw==
+"sass@*", "sass@^1.3.0", "sass@^1.45.1":
+ "integrity" "sha512-hQi5g4DcfjcipotoHZ80l7GNJHGqQS5LwMBjVYB/TaT0vcSSpbgM8Ad7cgfsB2M0MinbkEQQPO9+sjjSiwxqmw=="
+ "resolved" "https://registry.npmmirror.com/sass/download/sass-1.48.0.tgz"
+ "version" "1.48.0"
dependencies:
- chokidar ">=3.0.0 <4.0.0"
- immutable "^4.0.0"
- source-map-js ">=0.6.2 <2.0.0"
+ "chokidar" ">=3.0.0 <4.0.0"
+ "immutable" "^4.0.0"
+ "source-map-js" ">=0.6.2 <2.0.0"
-screenfull@^5.1.0:
- version "5.2.0"
- resolved "https://registry.npmmirror.com/screenfull/download/screenfull-5.2.0.tgz?cache=0&sync_timestamp=1635923453416&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fscreenfull%2Fdownload%2Fscreenfull-5.2.0.tgz"
- integrity sha1-ZTPVJNMGIfwSg7lpIUbz8TqT0bo=
+"screenfull@^5.1.0":
+ "integrity" "sha1-ZTPVJNMGIfwSg7lpIUbz8TqT0bo="
+ "resolved" "https://registry.npmmirror.com/screenfull/download/screenfull-5.2.0.tgz?cache=0&sync_timestamp=1635923453416&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fscreenfull%2Fdownload%2Fscreenfull-5.2.0.tgz"
+ "version" "5.2.0"
-select@^1.1.2:
- version "1.1.2"
- resolved "https://registry.nlark.com/select/download/select-1.1.2.tgz"
- integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=
+"select@^1.1.2":
+ "integrity" "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0="
+ "resolved" "https://registry.nlark.com/select/download/select-1.1.2.tgz"
+ "version" "1.1.2"
-semver@^7.2.1, semver@^7.3.5:
- version "7.3.5"
- resolved "https://registry.nlark.com/semver/download/semver-7.3.5.tgz?cache=0&sync_timestamp=1618846864940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsemver%2Fdownload%2Fsemver-7.3.5.tgz"
- integrity sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=
+"semver@^7.2.1", "semver@^7.3.5":
+ "integrity" "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc="
+ "resolved" "https://registry.nlark.com/semver/download/semver-7.3.5.tgz?cache=0&sync_timestamp=1618846864940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsemver%2Fdownload%2Fsemver-7.3.5.tgz"
+ "version" "7.3.5"
dependencies:
- lru-cache "^6.0.0"
+ "lru-cache" "^6.0.0"
-shebang-command@^2.0.0:
- version "2.0.0"
- resolved "https://registry.nlark.com/shebang-command/download/shebang-command-2.0.0.tgz"
- integrity sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=
+"shebang-command@^2.0.0":
+ "integrity" "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo="
+ "resolved" "https://registry.nlark.com/shebang-command/download/shebang-command-2.0.0.tgz"
+ "version" "2.0.0"
dependencies:
- shebang-regex "^3.0.0"
+ "shebang-regex" "^3.0.0"
-shebang-regex@^3.0.0:
- version "3.0.0"
- resolved "https://registry.nlark.com/shebang-regex/download/shebang-regex-3.0.0.tgz"
- integrity sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=
+"shebang-regex@^3.0.0":
+ "integrity" "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI="
+ "resolved" "https://registry.nlark.com/shebang-regex/download/shebang-regex-3.0.0.tgz"
+ "version" "3.0.0"
-slash@^3.0.0:
- version "3.0.0"
- resolved "https://registry.nlark.com/slash/download/slash-3.0.0.tgz"
- integrity sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=
+"slash@^3.0.0":
+ "integrity" "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ="
+ "resolved" "https://registry.nlark.com/slash/download/slash-3.0.0.tgz"
+ "version" "3.0.0"
-sortablejs@^1.13.0:
- version "1.14.0"
- resolved "https://registry.nlark.com/sortablejs/download/sortablejs-1.14.0.tgz?cache=0&sync_timestamp=1625423971526&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsortablejs%2Fdownload%2Fsortablejs-1.14.0.tgz"
- integrity sha1-bS4XzL2yX0ZHNN9iHU811Ks1s9g=
+"sortablejs@^1.13.0":
+ "integrity" "sha1-bS4XzL2yX0ZHNN9iHU811Ks1s9g="
+ "resolved" "https://registry.nlark.com/sortablejs/download/sortablejs-1.14.0.tgz?cache=0&sync_timestamp=1625423971526&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsortablejs%2Fdownload%2Fsortablejs-1.14.0.tgz"
+ "version" "1.14.0"
-"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1:
- version "1.0.1"
- resolved "https://registry.npmmirror.com/source-map-js/download/source-map-js-1.0.1.tgz?cache=0&sync_timestamp=1636400753943&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsource-map-js%2Fdownload%2Fsource-map-js-1.0.1.tgz"
- integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==
+"source-map-js@^1.0.1", "source-map-js@>=0.6.2 <2.0.0":
+ "integrity" "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA=="
+ "resolved" "https://registry.npmmirror.com/source-map-js/download/source-map-js-1.0.1.tgz?cache=0&sync_timestamp=1636400753943&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsource-map-js%2Fdownload%2Fsource-map-js-1.0.1.tgz"
+ "version" "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"
- integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
+"source-map-js@^1.0.2":
+ "integrity" "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
+ "resolved" "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz"
+ "version" "1.0.2"
-source-map@^0.6.1:
- version "0.6.1"
- resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz"
- integrity sha1-dHIq8y6WFOnCh6jQu95IteLxomM=
+"source-map@^0.6.1":
+ "integrity" "sha1-dHIq8y6WFOnCh6jQu95IteLxomM="
+ "resolved" "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz"
+ "version" "0.6.1"
-sourcemap-codec@^1.4.4:
- version "1.4.8"
- resolved "https://registry.npm.taobao.org/sourcemap-codec/download/sourcemap-codec-1.4.8.tgz"
- integrity sha1-6oBL2UhXQC5pktBaOO8a41qatMQ=
+"sourcemap-codec@^1.4.4":
+ "integrity" "sha1-6oBL2UhXQC5pktBaOO8a41qatMQ="
+ "resolved" "https://registry.npm.taobao.org/sourcemap-codec/download/sourcemap-codec-1.4.8.tgz"
+ "version" "1.4.8"
-sql-formatter@^7.0.3:
- version "7.0.3"
- resolved "https://registry.npmmirror.com/sql-formatter/-/sql-formatter-7.0.3.tgz"
- integrity sha512-E9zotLB0dy9ZZhs1sY4ZqzSzJGF2uC4Vzj0mEzXJC9rlE+Jjmz6t64qT2dzm/IPQosYvZknDbBOrWkygIJz67A==
+"sql-formatter@^7.0.3":
+ "integrity" "sha512-E9zotLB0dy9ZZhs1sY4ZqzSzJGF2uC4Vzj0mEzXJC9rlE+Jjmz6t64qT2dzm/IPQosYvZknDbBOrWkygIJz67A=="
+ "resolved" "https://registry.npmmirror.com/sql-formatter/-/sql-formatter-7.0.3.tgz"
+ "version" "7.0.3"
dependencies:
- argparse "^2.0.1"
+ "argparse" "^2.0.1"
-strip-ansi@^6.0.1:
- version "6.0.1"
- resolved "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-6.0.1.tgz"
- integrity sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=
+"strip-ansi@^6.0.1":
+ "integrity" "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk="
+ "resolved" "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-6.0.1.tgz"
+ "version" "6.0.1"
dependencies:
- ansi-regex "^5.0.1"
+ "ansi-regex" "^5.0.1"
-strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
- version "3.1.1"
- resolved "https://registry.nlark.com/strip-json-comments/download/strip-json-comments-3.1.1.tgz"
- integrity sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=
+"strip-json-comments@^3.1.0", "strip-json-comments@^3.1.1":
+ "integrity" "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY="
+ "resolved" "https://registry.nlark.com/strip-json-comments/download/strip-json-comments-3.1.1.tgz"
+ "version" "3.1.1"
-supports-color@^7.1.0:
- version "7.2.0"
- resolved "https://registry.npmmirror.com/supports-color/download/supports-color-7.2.0.tgz"
- integrity sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=
+"supports-color@^7.1.0":
+ "integrity" "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo="
+ "resolved" "https://registry.npmmirror.com/supports-color/download/supports-color-7.2.0.tgz"
+ "version" "7.2.0"
dependencies:
- has-flag "^4.0.0"
+ "has-flag" "^4.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"
- integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+"supports-preserve-symlinks-flag@^1.0.0":
+ "integrity" "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
+ "resolved" "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
+ "version" "1.0.0"
-text-table@^0.2.0:
- version "0.2.0"
- resolved "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz"
- integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
+"text-table@^0.2.0":
+ "integrity" "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
+ "resolved" "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz"
+ "version" "0.2.0"
-tiny-emitter@^2.0.0:
- version "2.1.0"
- resolved "https://registry.npm.taobao.org/tiny-emitter/download/tiny-emitter-2.1.0.tgz"
- integrity sha1-HRpW7fxRxD6GPLtTgqcjMONVVCM=
+"tiny-emitter@^2.0.0":
+ "integrity" "sha1-HRpW7fxRxD6GPLtTgqcjMONVVCM="
+ "resolved" "https://registry.npm.taobao.org/tiny-emitter/download/tiny-emitter-2.1.0.tgz"
+ "version" "2.1.0"
-to-regex-range@^5.0.1:
- version "5.0.1"
- resolved "https://registry.nlark.com/to-regex-range/download/to-regex-range-5.0.1.tgz"
- integrity sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=
+"to-regex-range@^5.0.1":
+ "integrity" "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ="
+ "resolved" "https://registry.nlark.com/to-regex-range/download/to-regex-range-5.0.1.tgz"
+ "version" "5.0.1"
dependencies:
- is-number "^7.0.0"
+ "is-number" "^7.0.0"
-tslib@2.3.0:
- version "2.3.0"
- resolved "https://registry.nlark.com/tslib/download/tslib-2.3.0.tgz"
- integrity sha1-gDuM2rPhK6WBpMpByIObuw2ssJ4=
+"tslib@^1.8.1":
+ "integrity" "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA="
+ "resolved" "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz"
+ "version" "1.14.1"
-tslib@^1.8.1:
- version "1.14.1"
- resolved "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz"
- integrity sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=
+"tslib@2.3.0":
+ "integrity" "sha1-gDuM2rPhK6WBpMpByIObuw2ssJ4="
+ "resolved" "https://registry.nlark.com/tslib/download/tslib-2.3.0.tgz"
+ "version" "2.3.0"
-tsutils@^3.21.0:
- version "3.21.0"
- resolved "https://registry.npm.taobao.org/tsutils/download/tsutils-3.21.0.tgz"
- integrity sha1-tIcX05TOpsHglpg+7Vjp1hcVtiM=
+"tsutils@^3.21.0":
+ "integrity" "sha1-tIcX05TOpsHglpg+7Vjp1hcVtiM="
+ "resolved" "https://registry.npm.taobao.org/tsutils/download/tsutils-3.21.0.tgz"
+ "version" "3.21.0"
dependencies:
- tslib "^1.8.1"
+ "tslib" "^1.8.1"
-type-check@^0.4.0, type-check@~0.4.0:
- version "0.4.0"
- resolved "https://registry.nlark.com/type-check/download/type-check-0.4.0.tgz"
- integrity sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=
+"type-check@^0.4.0", "type-check@~0.4.0":
+ "integrity" "sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE="
+ "resolved" "https://registry.nlark.com/type-check/download/type-check-0.4.0.tgz"
+ "version" "0.4.0"
dependencies:
- prelude-ls "^1.2.1"
+ "prelude-ls" "^1.2.1"
-type-fest@^0.20.2:
- version "0.20.2"
- resolved "https://registry.npmmirror.com/type-fest/download/type-fest-0.20.2.tgz"
- integrity sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=
+"type-fest@^0.20.2":
+ "integrity" "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ="
+ "resolved" "https://registry.npmmirror.com/type-fest/download/type-fest-0.20.2.tgz"
+ "version" "0.20.2"
-typescript@^4.7.4:
- version "4.7.4"
- resolved "https://registry.npmmirror.com/typescript/-/typescript-4.7.4.tgz"
- integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==
+"typescript@^4.7.4", "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta":
+ "integrity" "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ=="
+ "resolved" "https://registry.npmmirror.com/typescript/-/typescript-4.7.4.tgz"
+ "version" "4.7.4"
-uri-js@^4.2.2:
- version "4.4.1"
- resolved "https://registry.npm.taobao.org/uri-js/download/uri-js-4.4.1.tgz?cache=0&sync_timestamp=1610237641463&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furi-js%2Fdownload%2Furi-js-4.4.1.tgz"
- integrity sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=
+"uri-js@^4.2.2":
+ "integrity" "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34="
+ "resolved" "https://registry.npm.taobao.org/uri-js/download/uri-js-4.4.1.tgz?cache=0&sync_timestamp=1610237641463&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furi-js%2Fdownload%2Furi-js-4.4.1.tgz"
+ "version" "4.4.1"
dependencies:
- punycode "^2.1.0"
+ "punycode" "^2.1.0"
-v8-compile-cache@^2.0.3:
- version "2.3.0"
- resolved "https://registry.nlark.com/v8-compile-cache/download/v8-compile-cache-2.3.0.tgz"
- integrity sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4=
+"v8-compile-cache@^2.0.3":
+ "integrity" "sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4="
+ "resolved" "https://registry.nlark.com/v8-compile-cache/download/v8-compile-cache-2.3.0.tgz"
+ "version" "2.3.0"
-vanilla-picker@^2.12.1:
- version "2.12.1"
- resolved "https://registry.npmmirror.com/vanilla-picker/-/vanilla-picker-2.12.1.tgz"
- integrity sha512-2qrEP9VYylKXbyzXKsbu2dferBTvqnlsr29XjHwFE+/MEp0VNj6oEUESLDtKZ7DWzGdSv1x/+ujqFZF+KsO3cg==
+"vanilla-picker@^2.12.1":
+ "integrity" "sha512-2qrEP9VYylKXbyzXKsbu2dferBTvqnlsr29XjHwFE+/MEp0VNj6oEUESLDtKZ7DWzGdSv1x/+ujqFZF+KsO3cg=="
+ "resolved" "https://registry.npmmirror.com/vanilla-picker/-/vanilla-picker-2.12.1.tgz"
+ "version" "2.12.1"
dependencies:
"@sphinxxxx/color-conversion" "^2.2.2"
-vite@^2.9.13:
- version "2.9.13"
- resolved "https://registry.npmmirror.com/vite/-/vite-2.9.13.tgz"
- integrity sha512-AsOBAaT0AD7Mhe8DuK+/kE4aWYFMx/i0ZNi98hJclxb4e0OhQcZYUrvLjIaQ8e59Ui7txcvKMiJC1yftqpQoDw==
+"vite@^2.5.10", "vite@^2.9.13":
+ "integrity" "sha512-AsOBAaT0AD7Mhe8DuK+/kE4aWYFMx/i0ZNi98hJclxb4e0OhQcZYUrvLjIaQ8e59Ui7txcvKMiJC1yftqpQoDw=="
+ "resolved" "https://registry.npmmirror.com/vite/-/vite-2.9.13.tgz"
+ "version" "2.9.13"
dependencies:
- esbuild "^0.14.27"
- postcss "^8.4.13"
- resolve "^1.22.0"
- rollup "^2.59.0"
+ "esbuild" "^0.14.27"
+ "postcss" "^8.4.13"
+ "resolve" "^1.22.0"
+ "rollup" "^2.59.0"
optionalDependencies:
- fsevents "~2.3.2"
+ "fsevents" "~2.3.2"
-vue-clipboard3@^1.0.1:
- version "1.0.1"
- resolved "https://registry.npmmirror.com/vue-clipboard3/-/vue-clipboard3-1.0.1.tgz"
- integrity sha512-iJ2vrizowfA73W3pcxMAKhYSvfekJrQ3FhbveVe9esS1Vfu+xW3Fgc0UKE8N4Q6DyRtcAoNlef8txmD8tK8dIg==
+"vue-clipboard3@^1.0.1":
+ "integrity" "sha512-iJ2vrizowfA73W3pcxMAKhYSvfekJrQ3FhbveVe9esS1Vfu+xW3Fgc0UKE8N4Q6DyRtcAoNlef8txmD8tK8dIg=="
+ "resolved" "https://registry.npmmirror.com/vue-clipboard3/-/vue-clipboard3-1.0.1.tgz"
+ "version" "1.0.1"
dependencies:
- clipboard "^2.0.6"
+ "clipboard" "^2.0.6"
-vue-demi@*:
- version "0.12.1"
- resolved "https://registry.npmmirror.com/vue-demi/download/vue-demi-0.12.1.tgz"
- integrity sha1-9+GO++z/0RqwadFHLXoG4xm0F0w=
+"vue-demi@*":
+ "integrity" "sha1-9+GO++z/0RqwadFHLXoG4xm0F0w="
+ "resolved" "https://registry.npmmirror.com/vue-demi/download/vue-demi-0.12.1.tgz"
+ "version" "0.12.1"
-vue-eslint-parser@^8.0.1:
- version "8.0.1"
- resolved "https://registry.npmmirror.com/vue-eslint-parser/download/vue-eslint-parser-8.0.1.tgz"
- integrity sha1-JeCLIKQUVRUx8+GfmZkC4ez0XxM=
+"vue-eslint-parser@^8.0.1":
+ "integrity" "sha1-JeCLIKQUVRUx8+GfmZkC4ez0XxM="
+ "resolved" "https://registry.npmmirror.com/vue-eslint-parser/download/vue-eslint-parser-8.0.1.tgz"
+ "version" "8.0.1"
dependencies:
- debug "^4.3.2"
- eslint-scope "^6.0.0"
- eslint-visitor-keys "^3.0.0"
- espree "^9.0.0"
- esquery "^1.4.0"
- lodash "^4.17.21"
- semver "^7.3.5"
+ "debug" "^4.3.2"
+ "eslint-scope" "^6.0.0"
+ "eslint-visitor-keys" "^3.0.0"
+ "espree" "^9.0.0"
+ "esquery" "^1.4.0"
+ "lodash" "^4.17.21"
+ "semver" "^7.3.5"
-vue-router@^4.1.2:
- version "4.1.2"
- resolved "https://registry.npmmirror.com/vue-router/-/vue-router-4.1.2.tgz#ae08f63c9610afa6bff6743e8f128b7054d4c9f5"
- integrity sha512-5BP1qXFncVRwgV/XnqzsKApdMjQPqWIpoUBdL1ynz8HyLxIX/UDAx7Ql2BjmA5CXT/p61JfZvkpiFWFpaqcfag==
+"vue-router@^4.1.2":
+ "integrity" "sha512-5BP1qXFncVRwgV/XnqzsKApdMjQPqWIpoUBdL1ynz8HyLxIX/UDAx7Ql2BjmA5CXT/p61JfZvkpiFWFpaqcfag=="
+ "resolved" "https://registry.npmmirror.com/vue-router/-/vue-router-4.1.2.tgz"
+ "version" "4.1.2"
dependencies:
"@vue/devtools-api" "^6.1.4"
-vue@^3.2.37:
- version "3.2.37"
- resolved "https://registry.npmmirror.com/vue/-/vue-3.2.37.tgz"
- integrity sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==
+"vue@^2.6.0 || ^3.2.0", "vue@^3.0.0-0 || ^2.6.0", "vue@^3.0.2", "vue@^3.2.0", "vue@^3.2.25", "vue@^3.2.37", "vue@3.2.37":
+ "integrity" "sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ=="
+ "resolved" "https://registry.npmmirror.com/vue/-/vue-3.2.37.tgz"
+ "version" "3.2.37"
dependencies:
"@vue/compiler-dom" "3.2.37"
"@vue/compiler-sfc" "3.2.37"
@@ -1749,48 +1664,48 @@ vue@^3.2.37:
"@vue/server-renderer" "3.2.37"
"@vue/shared" "3.2.37"
-vuex@^4.0.2:
- version "4.0.2"
- resolved "https://registry.npmmirror.com/vuex/download/vuex-4.0.2.tgz"
- integrity sha512-M6r8uxELjZIK8kTKDGgZTYX/ahzblnzC4isU1tpmEuOIIKmV+TRdc+H4s8ds2NuZ7wpUTdGRzJRtoj+lI+pc0Q==
+"vuex@^4.0.2":
+ "integrity" "sha512-M6r8uxELjZIK8kTKDGgZTYX/ahzblnzC4isU1tpmEuOIIKmV+TRdc+H4s8ds2NuZ7wpUTdGRzJRtoj+lI+pc0Q=="
+ "resolved" "https://registry.npmmirror.com/vuex/download/vuex-4.0.2.tgz"
+ "version" "4.0.2"
dependencies:
"@vue/devtools-api" "^6.0.0-beta.11"
-which@^2.0.1:
- version "2.0.2"
- resolved "https://registry.nlark.com/which/download/which-2.0.2.tgz"
- integrity sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=
+"which@^2.0.1":
+ "integrity" "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE="
+ "resolved" "https://registry.nlark.com/which/download/which-2.0.2.tgz"
+ "version" "2.0.2"
dependencies:
- isexe "^2.0.0"
+ "isexe" "^2.0.0"
-word-wrap@^1.2.3:
- version "1.2.3"
- resolved "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz"
- integrity sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=
+"word-wrap@^1.2.3":
+ "integrity" "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w="
+ "resolved" "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz"
+ "version" "1.2.3"
-wrappy@1:
- version "1.0.2"
- resolved "https://registry.nlark.com/wrappy/download/wrappy-1.0.2.tgz?cache=0&sync_timestamp=1619133505879&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz"
- integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
+"wrappy@1":
+ "integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ "resolved" "https://registry.nlark.com/wrappy/download/wrappy-1.0.2.tgz?cache=0&sync_timestamp=1619133505879&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz"
+ "version" "1.0.2"
-xterm-addon-fit@^0.5.0:
- version "0.5.0"
- resolved "https://registry.npmmirror.com/xterm-addon-fit/download/xterm-addon-fit-0.5.0.tgz"
- integrity sha1-LVG5g7eGqX3NbN6AXnAMf5E7xZY=
+"xterm-addon-fit@^0.5.0":
+ "integrity" "sha1-LVG5g7eGqX3NbN6AXnAMf5E7xZY="
+ "resolved" "https://registry.npmmirror.com/xterm-addon-fit/download/xterm-addon-fit-0.5.0.tgz"
+ "version" "0.5.0"
-xterm@^4.19.0:
- version "4.19.0"
- resolved "https://registry.npmmirror.com/xterm/-/xterm-4.19.0.tgz"
- integrity sha512-c3Cp4eOVsYY5Q839dR5IejghRPpxciGmLWWaP9g+ppfMeBChMeLa1DCA+pmX/jyDZ+zxFOmlJL/82qVdayVoGQ==
+"xterm@^4.0.0", "xterm@^4.19.0":
+ "integrity" "sha512-c3Cp4eOVsYY5Q839dR5IejghRPpxciGmLWWaP9g+ppfMeBChMeLa1DCA+pmX/jyDZ+zxFOmlJL/82qVdayVoGQ=="
+ "resolved" "https://registry.npmmirror.com/xterm/-/xterm-4.19.0.tgz"
+ "version" "4.19.0"
-yallist@^4.0.0:
- version "4.0.0"
- resolved "https://registry.nlark.com/yallist/download/yallist-4.0.0.tgz"
- integrity sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=
+"yallist@^4.0.0":
+ "integrity" "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI="
+ "resolved" "https://registry.nlark.com/yallist/download/yallist-4.0.0.tgz"
+ "version" "4.0.0"
-zrender@5.3.2:
- version "5.3.2"
- resolved "https://registry.npmmirror.com/zrender/-/zrender-5.3.2.tgz"
- integrity sha512-8IiYdfwHj2rx0UeIGZGGU4WEVSDEdeVCaIg/fomejg1Xu6OifAL1GVzIPHg2D+MyUkbNgPWji90t0a8IDk+39w==
+"zrender@5.3.2":
+ "integrity" "sha512-8IiYdfwHj2rx0UeIGZGGU4WEVSDEdeVCaIg/fomejg1Xu6OifAL1GVzIPHg2D+MyUkbNgPWji90t0a8IDk+39w=="
+ "resolved" "https://registry.npmmirror.com/zrender/-/zrender-5.3.2.tgz"
+ "version" "5.3.2"
dependencies:
- tslib "2.3.0"
+ "tslib" "2.3.0"
diff --git a/server/config.yml b/server/config.yml
index 17fd6778..557f2931 100644
--- a/server/config.yml
+++ b/server/config.yml
@@ -1,6 +1,6 @@
app:
name: mayfly-go
- version: 1.2.0
+ version: 1.2.3
server:
# debug release test
diff --git a/server/go.mod b/server/go.mod
index d774863c..2e05a017 100644
--- a/server/go.mod
+++ b/server/go.mod
@@ -6,6 +6,7 @@ require (
github.com/dgrijalva/jwt-go v3.2.0+incompatible // jwt
github.com/gin-gonic/gin v1.8.1
github.com/go-redis/redis/v8 v8.11.5
+ github.com/go-sql-driver/mysql v1.6.0
github.com/gorilla/websocket v1.5.0
github.com/lib/pq v1.10.6
github.com/mojocn/base64Captcha v1.3.5 // 验证码
@@ -28,7 +29,6 @@ require (
github.com/go-playground/locales v0.14.0 // indirect
github.com/go-playground/universal-translator v0.18.0 // indirect
github.com/go-playground/validator/v10 v10.10.1 // indirect
- github.com/go-sql-driver/mysql v1.6.0 // indirect
github.com/go-stack/stack v1.8.0 // indirect
github.com/goccy/go-json v0.9.7 // indirect
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
diff --git a/server/internal/devops/api/db.go b/server/internal/devops/api/db.go
index dda454e2..5f22845d 100644
--- a/server/internal/devops/api/db.go
+++ b/server/internal/devops/api/db.go
@@ -56,13 +56,13 @@ func (d *Db) Save(rc *ctx.ReqCtx) {
// 密码脱敏记录日志
form.Password = "****"
- if form.Type == "mysql" && form.EnableSSH == 1 {
- originSSHPwd, err := utils.DefaultRsaDecrypt(form.SSHPass, true)
- biz.ErrIsNilAppendErr(err, "解密密码错误: %s")
- db.SSHPass = originSSHPwd
- // 密码脱敏记录日志
- form.SSHPass = "****"
- }
+ // if form.Type == "mysql" && form.EnableSSH == 1 {
+ // // originSSHPwd, err := utils.DefaultRsaDecrypt(form.SSHPass, true)
+ // biz.ErrIsNilAppendErr(err, "解密密码错误: %s")
+ // // db.SSHPass = originSSHPwd
+ // // 密码脱敏记录日志
+ // form.SSHPass = "****"
+ // }
rc.ReqParam = form
diff --git a/server/internal/devops/api/form/db.go b/server/internal/devops/api/form/db.go
index 74abd25a..bf1b2d69 100644
--- a/server/internal/devops/api/form/db.go
+++ b/server/internal/devops/api/form/db.go
@@ -15,11 +15,8 @@ type DbForm struct {
Env string `json:"env"`
EnvId uint64 `binding:"required" json:"envId"`
- EnableSSH int `json:"enable_ssh"`
- SSHHost string `json:"ssh_host"`
- SSHPort int `json:"ssh_port"`
- SSHUser string `json:"ssh_user"`
- SSHPass string `json:"ssh_pass"`
+ EnableSshTunnel int8 `json:"enableSshTunnel"`
+ SshTunnelMachineId uint64 `json:"sshTunnelMachineId"`
}
type DbSqlSaveForm struct {
diff --git a/server/internal/devops/api/form/machine.go b/server/internal/devops/api/form/machine.go
index fac2342a..b4bd258a 100644
--- a/server/internal/devops/api/form/machine.go
+++ b/server/internal/devops/api/form/machine.go
@@ -5,14 +5,12 @@ type MachineForm struct {
ProjectId uint64 `json:"projectId"`
ProjectName string `json:"projectName"`
Name string `json:"name" binding:"required"`
- // IP地址
- Ip string `json:"ip" binding:"required"`
- // 用户名
- Username string `json:"username" binding:"required"`
- Password string `json:"password"`
- // 端口号
- Port int `json:"port" binding:"required"`
- Remark string `json:"remark"`
+ Ip string `json:"ip" binding:"required"` // IP地址
+ Username string `json:"username" binding:"required"` // 用户名
+ AuthMethod int8 `json:"authMethod" binding:"required"`
+ Password string `json:"password"`
+ Port int `json:"port" binding:"required"` // 端口号
+ Remark string `json:"remark"`
}
type MachineRunForm struct {
diff --git a/server/internal/devops/api/form/mongo.go b/server/internal/devops/api/form/mongo.go
index ab8e4a94..35409858 100644
--- a/server/internal/devops/api/form/mongo.go
+++ b/server/internal/devops/api/form/mongo.go
@@ -1,13 +1,15 @@
package form
type Mongo struct {
- Id uint64
- Uri string `binding:"required" json:"uri"`
- Name string `binding:"required" json:"name"`
- ProjectId uint64 `binding:"required" json:"projectId"`
- Project string `json:"project"`
- Env string `json:"env"`
- EnvId uint64 `binding:"required" json:"envId"`
+ Id uint64
+ Uri string `binding:"required" json:"uri"`
+ EnableSshTunnel int8 `json:"enableSshTunnel"` // 是否启用ssh隧道
+ SshTunnelMachineId uint64 `json:"sshTunnelMachineId"` // ssh隧道机器id
+ Name string `binding:"required" json:"name"`
+ ProjectId uint64 `binding:"required" json:"projectId"`
+ Project string `json:"project"`
+ Env string `json:"env"`
+ EnvId uint64 `binding:"required" json:"envId"`
}
type MongoCommand struct {
diff --git a/server/internal/devops/api/form/redis.go b/server/internal/devops/api/form/redis.go
index f6e88dd8..ce1f4981 100644
--- a/server/internal/devops/api/form/redis.go
+++ b/server/internal/devops/api/form/redis.go
@@ -1,16 +1,18 @@
package form
type Redis struct {
- Id uint64
- Host string `binding:"required" json:"host"`
- Password string `json:"password"`
- Mode string `json:"mode"`
- Db int `json:"db"`
- ProjectId uint64 `binding:"required" json:"projectId"`
- Project string `json:"project"`
- Env string `json:"env"`
- EnvId uint64 `binding:"required" json:"envId"`
- Remark string `json:"remark"`
+ Id uint64
+ Host string `binding:"required" json:"host"`
+ Password string `json:"password"`
+ Mode string `json:"mode"`
+ Db int `json:"db"`
+ EnableSshTunnel int8 `json:"enableSshTunnel"` // 是否启用ssh隧道
+ SshTunnelMachineId uint64 `json:"sshTunnelMachineId"` // ssh隧道机器id
+ ProjectId uint64 `binding:"required" json:"projectId"`
+ Project string `json:"project"`
+ Env string `json:"env"`
+ EnvId uint64 `binding:"required" json:"envId"`
+ Remark string `json:"remark"`
}
type KeyInfo struct {
diff --git a/server/internal/devops/api/machine.go b/server/internal/devops/api/machine.go
index 400fc3b7..877e6ed2 100644
--- a/server/internal/devops/api/machine.go
+++ b/server/internal/devops/api/machine.go
@@ -54,20 +54,22 @@ func (m *Machine) SaveMachine(rc *ctx.ReqCtx) {
machineForm := new(form.MachineForm)
ginx.BindJsonAndValid(g, machineForm)
- entity := new(entity.Machine)
- utils.Copy(entity, machineForm)
+ me := new(entity.Machine)
+ utils.Copy(me, machineForm)
- // 密码解密,并使用解密后的赋值
- originPwd, err := utils.DefaultRsaDecrypt(machineForm.Password, true)
- biz.ErrIsNilAppendErr(err, "解密密码错误: %s")
- entity.Password = originPwd
+ if me.AuthMethod == entity.MachineAuthMethodPassword {
+ // 密码解密,并使用解密后的赋值
+ originPwd, err := utils.DefaultRsaDecrypt(machineForm.Password, true)
+ biz.ErrIsNilAppendErr(err, "解密密码错误: %s")
+ me.Password = originPwd
+ }
// 密码脱敏记录日志
machineForm.Password = "****"
rc.ReqParam = machineForm
- entity.SetBaseInfo(rc.LoginAccount)
- m.MachineApp.Save(entity)
+ me.SetBaseInfo(rc.LoginAccount)
+ m.MachineApp.Save(me)
}
func (m *Machine) ChangeStatus(rc *ctx.ReqCtx) {
diff --git a/server/internal/devops/api/vo/db.go b/server/internal/devops/api/vo/db.go
index 79c1466f..c0845f37 100644
--- a/server/internal/devops/api/vo/db.go
+++ b/server/internal/devops/api/vo/db.go
@@ -20,8 +20,6 @@ type SelectDataDbVO struct {
Creator *string `json:"creator"`
CreatorId *int64 `json:"creatorId"`
- EnableSSH *int `json:"enable_ssh"`
- SSHHost *string `json:"ssh_host"`
- SSHPort *int `json:"ssh_port"`
- SSHUser *string `json:"ssh_user"`
+ EnableSshTunnel *int8 `json:"enableSshTunnel"`
+ SshTunnelMachineId *uint64 `json:"sshTunnelMachineId"`
}
diff --git a/server/internal/devops/api/vo/redis.go b/server/internal/devops/api/vo/redis.go
index 97fe33e3..cf113400 100644
--- a/server/internal/devops/api/vo/redis.go
+++ b/server/internal/devops/api/vo/redis.go
@@ -5,17 +5,19 @@ import "time"
type Redis struct {
Id *int64 `json:"id"`
// Name *string `json:"name"`
- Host *string `json:"host"`
- Db int `json:"db"`
- ProjectId *int64 `json:"projectId"`
- Project *string `json:"project"`
- Mode *string `json:"mode"`
- Remark *string `json:"remark"`
- Env *string `json:"env"`
- EnvId *int64 `json:"envId"`
- CreateTime *time.Time `json:"createTime"`
- Creator *string `json:"creator"`
- CreatorId *int64 `json:"creatorId"`
+ Host *string `json:"host"`
+ Db int `json:"db"`
+ ProjectId *int64 `json:"projectId"`
+ Project *string `json:"project"`
+ Mode *string `json:"mode"`
+ EnableSshTunnel *int8 `orm:"column(enable_ssh_tunnel)" json:"enableSshTunnel"` // 是否启用ssh隧道
+ SshTunnelMachineId *uint64 `orm:"column(ssh_tunnel_machine_id)" json:"sshTunnelMachineId"` // ssh隧道机器id
+ Remark *string `json:"remark"`
+ Env *string `json:"env"`
+ EnvId *int64 `json:"envId"`
+ CreateTime *time.Time `json:"createTime"`
+ Creator *string `json:"creator"`
+ CreatorId *int64 `json:"creatorId"`
}
type Keys struct {
diff --git a/server/internal/devops/api/vo/vo.go b/server/internal/devops/api/vo/vo.go
index 04753bb4..e44ead76 100644
--- a/server/internal/devops/api/vo/vo.go
+++ b/server/internal/devops/api/vo/vo.go
@@ -22,6 +22,7 @@ type MachineVO struct {
Username *string `json:"username"`
Ip *string `json:"ip"`
Port *int `json:"port"`
+ AuthMethod *int8 `json:"authMethod"`
Status *int8 `json:"status"`
CreateTime *time.Time `json:"createTime"`
Creator *string `json:"creator"`
diff --git a/server/internal/devops/application/db_app.go b/server/internal/devops/application/db_app.go
index b97da572..86bc9e39 100644
--- a/server/internal/devops/application/db_app.go
+++ b/server/internal/devops/application/db_app.go
@@ -1,11 +1,13 @@
package application
import (
+ "context"
"database/sql"
"errors"
"fmt"
"mayfly-go/internal/devops/domain/entity"
"mayfly-go/internal/devops/domain/repository"
+ "mayfly-go/internal/devops/infrastructure/machine"
"mayfly-go/internal/devops/infrastructure/persistence"
"mayfly-go/pkg/biz"
"mayfly-go/pkg/cache"
@@ -20,7 +22,8 @@ import (
"time"
"github.com/go-sql-driver/mysql"
- _ "github.com/lib/pq"
+ "github.com/lib/pq"
+ "golang.org/x/crypto/ssh"
)
type Db interface {
@@ -77,15 +80,11 @@ func (d *dbAppImpl) GetById(id uint64, cols ...string) *entity.Db {
func (d *dbAppImpl) Save(dbEntity *entity.Db) {
// 默认tcp连接
- if dbEntity.Type == "mysql" && dbEntity.EnableSSH == 1 {
- dbEntity.Network = "mysql+ssh"
- } else {
- dbEntity.Network = "tcp"
- }
+ dbEntity.Network = dbEntity.GetNetwork()
// 测试连接
if dbEntity.Password != "" {
- TestConnection(*dbEntity)
+ TestConnection(dbEntity)
}
// 查找是否存在该库
@@ -109,6 +108,8 @@ func (d *dbAppImpl) Save(dbEntity *entity.Db) {
var oldDbs []interface{}
for _, v := range strings.Split(old.Database, " ") {
+ // 关闭数据库连接
+ CloseDb(dbEntity.Id, v)
oldDbs = append(oldDbs, v)
}
@@ -121,14 +122,11 @@ func (d *dbAppImpl) Save(dbEntity *entity.Db) {
return i1.(string) == i2.(string)
})
for _, v := range delDb {
- // 先关闭数据库连接
- CloseDb(dbEntity.Id, v.(string))
// 删除该库关联的所有sql记录
d.dbSqlRepo.DeleteBy(&entity.DbSql{DbId: dbId, Db: v.(string)})
}
d.dbRepo.Update(dbEntity)
-
}
func (d *dbAppImpl) Delete(id uint64) {
@@ -160,28 +158,43 @@ func (da *dbAppImpl) GetDbInstance(id uint64, db string) *DbInstance {
d := da.GetById(id)
biz.NotNil(d, "数据库信息不存在")
biz.IsTrue(strings.Contains(d.Database, db), "未配置该库的操作权限")
- global.Log.Infof("连接db: %s:%d/%s", d.Host, d.Port, db)
+
+ cacheKey := GetDbCacheKey(id, db)
+ dbi := &DbInstance{Id: cacheKey, Type: d.Type, ProjectId: d.ProjectId}
//SSH Conect
- if d.Type == "mysql" && d.EnableSSH == 1 {
- sshClient, err := utils.SSHConnect(d.SSHUser, d.SSHPass, d.SSHHost, "", d.SSHPort)
- if err != nil {
- global.Log.Errorf("ssh连接失败: %s@%s:%d", d.SSHUser, d.SSHHost, d.SSHPort)
- panic(biz.NewBizErr(fmt.Sprintf("ssh连接失败: %s", err.Error())))
+ if d.EnableSshTunnel == 1 && d.SshTunnelMachineId != 0 {
+ me := MachineApp.GetById(d.SshTunnelMachineId)
+ biz.NotNil(me, "隧道机器信息不存在")
+ sshClient, err := machine.GetSshClient(me)
+ biz.ErrIsNilAppendErr(err, "ssh隧道连接失败: %s")
+ dbi.sshTunnel = sshClient
+
+ if d.Type == entity.DbTypeMysql {
+ mysql.RegisterDialContext(d.Network, func(ctx context.Context, addr string) (net.Conn, error) {
+ return sshClient.Dial("tcp", addr)
+ })
+ } else if d.Type == entity.DbTypePostgres {
+ _, err := pq.DialOpen(&PqSqlDialer{sshTunnel: sshClient}, getDsn(d))
+ if err != nil {
+ dbi.Close()
+ panic(biz.NewBizErr(fmt.Sprintf("postgres隧道连接失败: %s", err.Error())))
+ }
}
- mysql.RegisterDial("mysql+ssh", func(addr string) (net.Conn, error) {
- return sshClient.Dial("tcp", addr)
- })
}
// 将数据库替换为要访问的数据库,原本数据库为空格拼接的所有库
d.Database = db
DB, err := sql.Open(d.Type, getDsn(d))
- biz.ErrIsNil(err, fmt.Sprintf("Open %s failed, err:%v\n", d.Type, err))
- perr := DB.Ping()
- if perr != nil {
+ if err != nil {
+ dbi.Close()
+ panic(biz.NewBizErr(fmt.Sprintf("Open %s failed, err:%v\n", d.Type, err)))
+ }
+ err = DB.Ping()
+ if err != nil {
+ dbi.Close()
global.Log.Errorf("连接db失败: %s:%d/%s", d.Host, d.Port, db)
- panic(biz.NewBizErr(fmt.Sprintf("数据库连接失败: %s", perr.Error())))
+ panic(biz.NewBizErr(fmt.Sprintf("数据库连接失败: %s", err.Error())))
}
// 最大连接周期,超过时间的连接就close
@@ -191,14 +204,30 @@ func (da *dbAppImpl) GetDbInstance(id uint64, db string) *DbInstance {
// 设置闲置连接数
DB.SetMaxIdleConns(1)
- cacheKey := GetDbCacheKey(id, db)
- dbi := &DbInstance{Id: cacheKey, Type: d.Type, ProjectId: d.ProjectId, db: DB}
+ dbi.db = DB
+ global.Log.Infof("连接db: %s:%d/%s", d.Host, d.Port, db)
if needCache {
dbCache.Put(cacheKey, dbi)
}
return dbi
}
+type PqSqlDialer struct {
+ sshTunnel *ssh.Client
+}
+
+func (pd *PqSqlDialer) Dial(network, address string) (net.Conn, error) {
+ if sshConn, err := pd.sshTunnel.Dial(network, address); err == nil {
+ // 将ssh conn包装,否则redis内部设置超时会报错,ssh conn不支持设置超时会返回错误: ssh: tcpChan: deadline not supported
+ return &utils.WrapSshConn{Conn: sshConn}, nil
+ } else {
+ return nil, err
+ }
+}
+func (pd *PqSqlDialer) DialTimeout(network, address string, timeout time.Duration) (net.Conn, error) {
+ return pd.Dial(network, address)
+}
+
//------------------------------------------------------------------------------
// 客户端连接缓存,30分钟内没有访问则会被关闭, key为数据库实例id:数据库
@@ -220,22 +249,28 @@ func GetDbInstanceByCache(id string) *DbInstance {
return nil
}
-func TestConnection(d entity.Db) {
+func TestConnection(d *entity.Db) {
//SSH Conect
- if d.Type == "mysql" && d.EnableSSH == 1 {
- sshClient, err := utils.SSHConnect(d.SSHUser, d.SSHPass, d.SSHHost, "", d.SSHPort)
- if err != nil {
- global.Log.Errorf("ssh连接失败: %s@%s:%d", d.SSHUser, d.SSHHost, d.SSHPort)
- panic(biz.NewBizErr(fmt.Sprintf("ssh连接失败: %s", err.Error())))
+ if d.EnableSshTunnel == 1 && d.SshTunnelMachineId != 0 {
+ me := MachineApp.GetById(d.SshTunnelMachineId)
+ sshClient, err := machine.GetSshClient(me)
+ biz.ErrIsNilAppendErr(err, "ssh隧道连接失败: %s")
+ defer sshClient.Close()
+ if d.Type == entity.DbTypeMysql {
+ mysql.RegisterDialContext(d.Network, func(ctx context.Context, addr string) (net.Conn, error) {
+ return sshClient.Dial("tcp", addr)
+ })
+ } else if d.Type == entity.DbTypePostgres {
+ _, err := pq.DialOpen(&PqSqlDialer{sshTunnel: sshClient}, getDsn(d))
+ if err != nil {
+ panic(biz.NewBizErr(fmt.Sprintf("postgres隧道连接失败: %s", err.Error())))
+ }
}
- mysql.RegisterDial("mysql+ssh", func(addr string) (net.Conn, error) {
- return sshClient.Dial("tcp", addr)
- })
}
// 验证第一个库是否可以连接即可
d.Database = strings.Split(d.Database, " ")[0]
- DB, err := sql.Open(d.Type, getDsn(&d))
+ DB, err := sql.Open(d.Type, getDsn(d))
biz.ErrIsNil(err, "Open %s failed, err:%v\n", d.Type, err)
defer DB.Close()
perr := DB.Ping()
@@ -248,6 +283,7 @@ type DbInstance struct {
Type string
ProjectId uint64
db *sql.DB
+ sshTunnel *ssh.Client
}
// 执行查询语句
@@ -359,13 +395,22 @@ func (d *DbInstance) Exec(sql string) (int64, error) {
// 关闭连接
func (d *DbInstance) Close() {
- d.db.Close()
+ if d.db != nil {
+ if err := d.db.Close(); err != nil {
+ global.Log.Errorf("关闭数据库实例[%s]连接失败: %s", d.Id, err.Error())
+ }
+ }
+ if d.sshTunnel != nil {
+ if err := d.sshTunnel.Close(); err != nil {
+ global.Log.Errorf("关闭数据库实例[%s]的ssh隧道失败: %s", d.Id, err.Error())
+ }
+ }
}
// 获取dataSourceName
func getDsn(d *entity.Db) string {
var dsn string
- if d.Type == "mysql" {
+ if d.Type == entity.DbTypeMysql {
dsn = fmt.Sprintf("%s:%s@%s(%s:%d)/%s?timeout=8s", d.Username, d.Password, d.Network, d.Host, d.Port, d.Database)
if d.Params != "" {
dsn = fmt.Sprintf("%s&%s", dsn, d.Params)
@@ -373,7 +418,7 @@ func getDsn(d *entity.Db) string {
return dsn
}
- if d.Type == "postgres" {
+ if d.Type == entity.DbTypePostgres {
dsn = fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=disable", d.Host, d.Port, d.Username, d.Password, d.Database)
if d.Params != "" {
dsn = fmt.Sprintf("%s %s", dsn, strings.Join(strings.Split(d.Params, "&"), " "))
@@ -469,7 +514,7 @@ const (
func (d *DbInstance) GetTableMetedatas() []map[string]interface{} {
var sql string
- if d.Type == "mysql" {
+ if d.Type == entity.DbTypeMysql {
sql = MYSQL_TABLE_MA
} else if d.Type == "postgres" {
sql = PGSQL_TABLE_MA
@@ -489,10 +534,10 @@ func (d *DbInstance) GetColumnMetadatas(tableNames ...string) []map[string]inter
var countSqlTmp string
var sqlTmp string
- if d.Type == "mysql" {
+ if d.Type == entity.DbTypeMysql {
countSqlTmp = MYSQL_COLOUMN_MA_COUNT
sqlTmp = MYSQL_COLUMN_MA
- } else if d.Type == "postgres" {
+ } else if d.Type == entity.DbTypePostgres {
countSqlTmp = PGSQL_COLUMN_MA_COUNT
sqlTmp = PGSQL_COLUMN_MA
}
@@ -524,9 +569,9 @@ func (d *DbInstance) GetPrimaryKey(tablename string) string {
func (d *DbInstance) GetTableInfos() []map[string]interface{} {
var sql string
- if d.Type == "mysql" {
+ if d.Type == entity.DbTypeMysql {
sql = MYSQL_TABLE_INFO
- } else if d.Type == "postgres" {
+ } else if d.Type == entity.DbTypePostgres {
sql = PGSQL_TABLE_INFO
}
_, res, _ := d.SelectData(sql)
@@ -535,9 +580,9 @@ func (d *DbInstance) GetTableInfos() []map[string]interface{} {
func (d *DbInstance) GetTableIndex(tableName string) []map[string]interface{} {
var sql string
- if d.Type == "mysql" {
+ if d.Type == entity.DbTypeMysql {
sql = fmt.Sprintf(MYSQL_INDEX_INFO, tableName)
- } else if d.Type == "postgres" {
+ } else if d.Type == entity.DbTypePostgres {
sql = fmt.Sprintf(PGSQL_INDEX_INFO, tableName)
}
_, res, _ := d.SelectData(sql)
@@ -546,7 +591,7 @@ func (d *DbInstance) GetTableIndex(tableName string) []map[string]interface{} {
func (d *DbInstance) GetCreateTableDdl(tableName string) []map[string]interface{} {
var sql string
- if d.Type == "mysql" {
+ if d.Type == entity.DbTypeMysql {
sql = fmt.Sprintf("show create table %s ", tableName)
}
_, res, _ := d.SelectData(sql)
diff --git a/server/internal/devops/application/mongo_app.go b/server/internal/devops/application/mongo_app.go
index 32d2df58..38abc55e 100644
--- a/server/internal/devops/application/mongo_app.go
+++ b/server/internal/devops/application/mongo_app.go
@@ -4,15 +4,19 @@ import (
"context"
"mayfly-go/internal/devops/domain/entity"
"mayfly-go/internal/devops/domain/repository"
+ "mayfly-go/internal/devops/infrastructure/machine"
"mayfly-go/internal/devops/infrastructure/persistence"
"mayfly-go/pkg/biz"
"mayfly-go/pkg/cache"
"mayfly-go/pkg/global"
"mayfly-go/pkg/model"
+ "mayfly-go/pkg/utils"
+ "net"
"time"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
+ "golang.org/x/crypto/ssh"
)
type Mongo interface {
@@ -80,13 +84,13 @@ func (d *mongoAppImpl) Save(m *entity.Mongo) {
}
func (d *mongoAppImpl) GetMongoCli(id uint64) *mongo.Client {
- cli, err := GetMongoCli(id, func(u uint64) string {
- mongo := d.GetById(id)
+ mongoInstance, err := GetMongoInstance(id, func(u uint64) *entity.Mongo {
+ mongo := d.GetById(u)
biz.NotNil(mongo, "mongo信息不存在")
- return mongo.Uri
+ return mongo
})
biz.ErrIsNilAppendErr(err, "连接mongo失败: %s")
- return cli
+ return mongoInstance.Cli
}
// -----------------------------------------------------------
@@ -95,21 +99,22 @@ func (d *mongoAppImpl) GetMongoCli(id uint64) *mongo.Client {
var mongoCliCache = cache.NewTimedCache(30*time.Minute, 5*time.Second).
WithUpdateAccessTime(true).
OnEvicted(func(key interface{}, value interface{}) {
- global.Log.Info("关闭mongo连接: id = ", key)
- value.(*mongo.Client).Disconnect(context.TODO())
+ global.Log.Info("删除mongo连接缓存: id = ", key)
+ value.(*MongoInstance).Close()
})
-func GetMongoCli(mongoId uint64, getMongoUri func(uint64) string) (*mongo.Client, error) {
- cli, err := mongoCliCache.ComputeIfAbsent(mongoId, func(key interface{}) (interface{}, error) {
- c, err := connect(getMongoUri(mongoId))
+// 获取mongo的连接实例
+func GetMongoInstance(mongoId uint64, getMongoEntity func(uint64) *entity.Mongo) (*MongoInstance, error) {
+ mi, err := mongoCliCache.ComputeIfAbsent(mongoId, func(_ interface{}) (interface{}, error) {
+ c, err := connect(getMongoEntity(mongoId))
if err != nil {
return nil, err
}
return c, nil
})
- if cli != nil {
- return cli.(*mongo.Client), err
+ if mi != nil {
+ return mi.(*MongoInstance), err
}
return nil, err
}
@@ -118,16 +123,67 @@ func DeleteMongoCache(mongoId uint64) {
mongoCliCache.Delete(mongoId)
}
+type MongoInstance struct {
+ Id uint64
+ ProjectId uint64
+ Cli *mongo.Client
+ sshTunnel *ssh.Client
+}
+
+func (mi *MongoInstance) Close() {
+ if mi.Cli != nil {
+ if err := mi.Cli.Disconnect(context.Background()); err != nil {
+ global.Log.Errorf("关闭mongo实例[%d]连接失败: %s", mi.Id, err)
+ }
+ }
+ if mi.sshTunnel != nil {
+ if err := mi.sshTunnel.Close(); err != nil {
+ global.Log.Errorf("关闭mongo实例[%d]的ssh隧道失败: %s", mi.Id, err.Error())
+ }
+ }
+}
+
// 连接mongo,并返回client
-func connect(uri string) (*mongo.Client, error) {
- ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second)
+func connect(me *entity.Mongo) (*MongoInstance, error) {
+ ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
- client, err := mongo.Connect(ctx, options.Client().ApplyURI(uri).SetMaxPoolSize(2))
+
+ mongoInstance := &MongoInstance{Id: me.Id, ProjectId: me.ProjectId}
+
+ mongoOptions := options.Client().ApplyURI(me.Uri).
+ SetMaxPoolSize(1)
+ // 启用ssh隧道则连接隧道机器
+ if me.EnableSshTunnel == 1 {
+ machineEntity := MachineApp.GetById(4)
+ sshClient, err := machine.GetSshClient(machineEntity)
+ biz.ErrIsNilAppendErr(err, "ssh隧道连接失败: %s")
+ mongoInstance.sshTunnel = sshClient
+
+ mongoOptions.SetDialer(&MongoSshDialer{sshTunnel: sshClient})
+ }
+
+ client, err := mongo.Connect(ctx, mongoOptions)
if err != nil {
return nil, err
}
if err = client.Ping(context.TODO(), nil); err != nil {
return nil, err
}
- return client, err
+
+ global.Log.Infof("连接mongo: %s", me.Uri)
+ mongoInstance.Cli = client
+ return mongoInstance, err
+}
+
+type MongoSshDialer struct {
+ sshTunnel *ssh.Client
+}
+
+func (sd *MongoSshDialer) DialContext(ctx context.Context, network, address string) (net.Conn, error) {
+ if sshConn, err := sd.sshTunnel.Dial(network, address); err == nil {
+ // 将ssh conn包装,否则内部部设置超时会报错,ssh conn不支持设置超时会返回错误: ssh: tcpChan: deadline not supported
+ return &utils.WrapSshConn{Conn: sshConn}, nil
+ } else {
+ return nil, err
+ }
}
diff --git a/server/internal/devops/application/redis_app.go b/server/internal/devops/application/redis_app.go
index a13c3109..954d1e3b 100644
--- a/server/internal/devops/application/redis_app.go
+++ b/server/internal/devops/application/redis_app.go
@@ -5,15 +5,19 @@ import (
"fmt"
"mayfly-go/internal/devops/domain/entity"
"mayfly-go/internal/devops/domain/repository"
+ "mayfly-go/internal/devops/infrastructure/machine"
"mayfly-go/internal/devops/infrastructure/persistence"
"mayfly-go/pkg/biz"
"mayfly-go/pkg/cache"
"mayfly-go/pkg/global"
"mayfly-go/pkg/model"
+ "mayfly-go/pkg/utils"
+ "net"
"strings"
"time"
"github.com/go-redis/redis/v8"
+ "golang.org/x/crypto/ssh"
)
type Redis interface {
@@ -109,25 +113,23 @@ func (r *redisAppImpl) GetRedisInstance(id uint64) *RedisInstance {
biz.NotNil(re, "redis信息不存在")
redisMode := re.Mode
- ri := &RedisInstance{Id: id, ProjectId: re.ProjectId, Mode: redisMode}
+ var ri *RedisInstance
if redisMode == "" || redisMode == entity.RedisModeStandalone {
- rcli := getRedisCient(re)
+ ri = getRedisCient(re)
// 测试连接
- _, e := rcli.Ping(context.Background()).Result()
+ _, e := ri.Cli.Ping(context.Background()).Result()
if e != nil {
- rcli.Close()
+ ri.Close()
panic(biz.NewBizErr(fmt.Sprintf("redis连接失败: %s", e.Error())))
}
- ri.Cli = rcli
} else if redisMode == entity.RedisModeCluster {
- ccli := getRedisClusterClient(re)
+ ri = getRedisClusterClient(re)
// 测试连接
- _, e := ccli.Ping(context.Background()).Result()
+ _, e := ri.ClusterCli.Ping(context.Background()).Result()
if e != nil {
- ccli.Close()
+ ri.Close()
panic(biz.NewBizErr(fmt.Sprintf("redis集群连接失败: %s", e.Error())))
}
- ri.ClusterCli = ccli
}
global.Log.Infof("连接redis: %s", re.Host)
@@ -137,21 +139,56 @@ func (r *redisAppImpl) GetRedisInstance(id uint64) *RedisInstance {
return ri
}
-func getRedisCient(re *entity.Redis) *redis.Client {
- return redis.NewClient(&redis.Options{
- Addr: re.Host,
- Password: re.Password, // no password set
- DB: re.Db, // use default DB
- DialTimeout: 8 * time.Second,
- })
+func getRedisCient(re *entity.Redis) *RedisInstance {
+ ri := &RedisInstance{Id: re.Id, ProjectId: re.ProjectId, Mode: re.Mode}
+
+ redisOptions := &redis.Options{
+ Addr: re.Host,
+ Password: re.Password, // no password set
+ DB: re.Db, // use default DB
+ DialTimeout: 8 * time.Second,
+ ReadTimeout: -1, // Disable timeouts, because SSH does not support deadlines.
+ WriteTimeout: -1,
+ }
+ if re.EnableSshTunnel == 1 {
+ sshClient, dialerFunc := getRedisDialer(re.SshTunnelMachineId)
+ ri.sshTunnel = sshClient
+ redisOptions.Dialer = dialerFunc
+ }
+ ri.Cli = redis.NewClient(redisOptions)
+ return ri
}
-func getRedisClusterClient(re *entity.Redis) *redis.ClusterClient {
- return redis.NewClusterClient(&redis.ClusterOptions{
+func getRedisClusterClient(re *entity.Redis) *RedisInstance {
+ ri := &RedisInstance{Id: re.Id, ProjectId: re.ProjectId, Mode: re.Mode}
+
+ redisClusterOptions := &redis.ClusterOptions{
Addrs: strings.Split(re.Host, ","),
Password: re.Password,
DialTimeout: 8 * time.Second,
- })
+ }
+ if re.EnableSshTunnel == 1 {
+ sshClient, dialerFunc := getRedisDialer(re.SshTunnelMachineId)
+ ri.sshTunnel = sshClient
+ redisClusterOptions.Dialer = dialerFunc
+ }
+ ri.ClusterCli = redis.NewClusterClient(redisClusterOptions)
+ return ri
+}
+
+func getRedisDialer(machineId uint64) (*ssh.Client, func(ctx context.Context, network, addr string) (net.Conn, error)) {
+ me := MachineApp.GetById(machineId)
+ sshClient, err := machine.GetSshClient(me)
+ biz.ErrIsNilAppendErr(err, "ssh隧道连接失败: %s")
+
+ return sshClient, func(_ context.Context, network, addr string) (net.Conn, error) {
+ if sshConn, err := sshClient.Dial(network, addr); err == nil {
+ // 将ssh conn包装,否则redis内部设置超时会报错,ssh conn不支持设置超时会返回错误: ssh: tcpChan: deadline not supported
+ return &utils.WrapSshConn{Conn: sshConn}, nil
+ } else {
+ return nil, err
+ }
+ }
}
//------------------------------------------------------------------------------
@@ -174,11 +211,11 @@ func TestRedisConnection(re *entity.Redis) {
if re.Mode == "" || re.Mode == entity.RedisModeStandalone {
rcli := getRedisCient(re)
defer rcli.Close()
- cmd = rcli
+ cmd = rcli.Cli
} else if re.Mode == entity.RedisModeCluster {
ccli := getRedisClusterClient(re)
defer ccli.Close()
- cmd = ccli
+ cmd = ccli.ClusterCli
}
// 测试连接
@@ -193,6 +230,7 @@ type RedisInstance struct {
Mode string
Cli *redis.Client
ClusterCli *redis.ClusterClient
+ sshTunnel *ssh.Client
}
// 获取命令执行接口的具体实现
@@ -215,10 +253,18 @@ func (r *RedisInstance) Scan(cursor uint64, match string, count int64) ([]string
func (r *RedisInstance) Close() {
if r.Mode == entity.RedisModeStandalone {
- r.Cli.Close()
- return
+ if err := r.Cli.Close(); err != nil {
+ global.Log.Errorf("关闭redis单机实例[%d]连接失败: %s", r.Id, err.Error())
+ }
}
if r.Mode == entity.RedisModeCluster {
- r.ClusterCli.Close()
+ if err := r.ClusterCli.Close(); err != nil {
+ global.Log.Errorf("关闭redis集群实例[%d]连接失败: %s", r.Id, err.Error())
+ }
+ }
+ if r.sshTunnel != nil {
+ if err := r.sshTunnel.Close(); err != nil {
+ global.Log.Errorf("关闭redis实例[%d]的ssh隧道失败: %s", r.Id, err.Error())
+ }
}
}
diff --git a/server/internal/devops/domain/entity/db.go b/server/internal/devops/domain/entity/db.go
index 0ad70fa5..1a7415e4 100644
--- a/server/internal/devops/domain/entity/db.go
+++ b/server/internal/devops/domain/entity/db.go
@@ -1,6 +1,7 @@
package entity
import (
+ "fmt"
"mayfly-go/pkg/model"
)
@@ -21,9 +22,24 @@ type Db struct {
EnvId uint64
Env string
- EnableSSH int `orm:"column(enable_ssh)" json:"enable_ssh"`
- SSHHost string `orm:"column(ssh_host)" json:"ssh_host"`
- SSHPort int `orm:"column(ssh_port)" json:"ssh_port"`
- SSHUser string `orm:"column(ssh_user)" json:"ssh_user"`
- SSHPass string `orm:"column(ssh_pass)" json:"-"`
+ EnableSshTunnel int8 `orm:"column(enable_ssh_tunnel)" json:"enableSshTunnel"` // 是否启用ssh隧道
+ SshTunnelMachineId uint64 `orm:"column(ssh_tunnel_machine_id)" json:"sshTunnelMachineId"` // ssh隧道机器id
}
+
+// 获取数据库连接网络, 若没有使用ssh隧道,则直接返回。否则返回拼接的网络需要注册至指定dial
+func (d Db) GetNetwork() string {
+ network := d.Network
+ if d.EnableSshTunnel == -1 {
+ if network == "" {
+ return "tcp"
+ } else {
+ return network
+ }
+ }
+ return fmt.Sprintf("%s+ssh:%d", d.Type, d.SshTunnelMachineId)
+}
+
+const (
+ DbTypeMysql = "mysql"
+ DbTypePostgres = "postgres"
+)
diff --git a/server/internal/devops/domain/entity/machine.go b/server/internal/devops/domain/entity/machine.go
index 6e9436c7..21ac2d27 100644
--- a/server/internal/devops/domain/entity/machine.go
+++ b/server/internal/devops/domain/entity/machine.go
@@ -9,8 +9,9 @@ type Machine struct {
ProjectId uint64 `json:"projectId"`
ProjectName string `json:"projectName"`
Name string `json:"name"`
- Ip string `json:"ip"` // IP地址
- Username string `json:"username"` // 用户名
+ Ip string `json:"ip"` // IP地址
+ Username string `json:"username"` // 用户名
+ AuthMethod int8 `json:"authMethod"` // 授权认证方式
Password string `json:"-"`
Port int `json:"port"` // 端口号
Status int8 `json:"status"` // 状态 1:启用;2:停用
@@ -18,6 +19,8 @@ type Machine struct {
}
const (
- MachineStatusEnable int8 = 1 // 启用状态
- MachineStatusDisable int8 = -1 // 禁用状态
+ MachineStatusEnable int8 = 1 // 启用状态
+ MachineStatusDisable int8 = -1 // 禁用状态
+ MachineAuthMethodPassword int8 = 1 // 密码登录
+ MachineAuthMethodPublicKey int8 = 2 // 公钥免密登录
)
diff --git a/server/internal/devops/domain/entity/mongo.go b/server/internal/devops/domain/entity/mongo.go
index d6f29be6..3efe41f4 100644
--- a/server/internal/devops/domain/entity/mongo.go
+++ b/server/internal/devops/domain/entity/mongo.go
@@ -5,10 +5,12 @@ import "mayfly-go/pkg/model"
type Mongo struct {
model.Model
- Name string `orm:"column(name)" json:"name"`
- Uri string `orm:"column(uri)" json:"uri"`
- ProjectId uint64 `json:"projectId"`
- Project string `json:"project"`
- EnvId uint64 `json:"envId"`
- Env string `json:"env"`
+ Name string `orm:"column(name)" json:"name"`
+ Uri string `orm:"column(uri)" json:"uri"`
+ EnableSshTunnel int8 `orm:"column(enable_ssh_tunnel)" json:"enableSshTunnel"` // 是否启用ssh隧道
+ SshTunnelMachineId uint64 `orm:"column(ssh_tunnel_machine_id)" json:"sshTunnelMachineId"` // ssh隧道机器id
+ ProjectId uint64 `json:"projectId"`
+ Project string `json:"project"`
+ EnvId uint64 `json:"envId"`
+ Env string `json:"env"`
}
diff --git a/server/internal/devops/domain/entity/redis.go b/server/internal/devops/domain/entity/redis.go
index f58ff93f..5e060a63 100644
--- a/server/internal/devops/domain/entity/redis.go
+++ b/server/internal/devops/domain/entity/redis.go
@@ -7,15 +7,17 @@ import (
type Redis struct {
model.Model
- Host string `orm:"column(host)" json:"host"`
- Mode string `json:"mode"`
- Password string `orm:"column(password)" json:"-"`
- Db int `orm:"column(database)" json:"db"`
- Remark string
- ProjectId uint64
- Project string
- EnvId uint64
- Env string
+ Host string `orm:"column(host)" json:"host"`
+ Mode string `json:"mode"`
+ Password string `orm:"column(password)" json:"-"`
+ Db int `orm:"column(database)" json:"db"`
+ EnableSshTunnel int8 `orm:"column(enable_ssh_tunnel)" json:"enableSshTunnel"` // 是否启用ssh隧道
+ SshTunnelMachineId uint64 `orm:"column(ssh_tunnel_machine_id)" json:"sshTunnelMachineId"` // ssh隧道机器id
+ Remark string
+ ProjectId uint64
+ Project string
+ EnvId uint64
+ Env string
}
const (
diff --git a/server/internal/devops/infrastructure/machine/machine.go b/server/internal/devops/infrastructure/machine/machine.go
index 3dfc0cdc..cb97b76a 100644
--- a/server/internal/devops/infrastructure/machine/machine.go
+++ b/server/internal/devops/infrastructure/machine/machine.go
@@ -24,58 +24,6 @@ type Cli struct {
sftpClient *sftp.Client
}
-// 机器客户端连接缓存,45分钟内没有访问则会被关闭
-var cliCache = cache.NewTimedCache(45*time.Minute, 5*time.Second).
- WithUpdateAccessTime(true).
- OnEvicted(func(key interface{}, value interface{}) {
- value.(*Cli).Close()
- })
-
-// 是否存在指定id的客户端连接
-func HasCli(machineId uint64) bool {
- if _, ok := cliCache.Get(machineId); ok {
- return true
- }
- return false
-}
-
-// 删除指定机器客户端,并关闭客户端连接
-func DeleteCli(id uint64) {
- cliCache.Delete(id)
-}
-
-// 从缓存中获取客户端信息,不存在则回调获取机器信息函数,并新建
-func GetCli(machineId uint64, getMachine func(uint64) *entity.Machine) (*Cli, error) {
- cli, err := cliCache.ComputeIfAbsent(machineId, func(key interface{}) (interface{}, error) {
- c, err := newClient(getMachine(machineId))
- if err != nil {
- return nil, err
- }
- return c, nil
- })
-
- if cli != nil {
- return cli.(*Cli), err
- }
- return nil, err
-}
-
-//根据机器信息创建客户端对象
-func newClient(machine *entity.Machine) (*Cli, error) {
- if machine == nil {
- return nil, errors.New("机器不存在")
- }
-
- global.Log.Infof("[%s]机器连接:%s:%d", machine.Name, machine.Ip, machine.Port)
- cli := new(Cli)
- cli.machine = machine
- err := cli.connect()
- if err != nil {
- return nil, err
- }
- return cli, nil
-}
-
//连接
func (c *Cli) connect() error {
// 如果已经有client则直接返回
@@ -83,16 +31,7 @@ func (c *Cli) connect() error {
return nil
}
m := c.machine
- config := ssh.ClientConfig{
- User: m.Username,
- Auth: []ssh.AuthMethod{ssh.Password(m.Password)},
- HostKeyCallback: func(hostname string, remote net.Addr, key ssh.PublicKey) error {
- return nil
- },
- Timeout: 5 * time.Second,
- }
- addr := fmt.Sprintf("%s:%d", m.Ip, m.Port)
- sshClient, err := ssh.Dial("tcp", addr, &config)
+ sshClient, err := GetSshClient(m)
if err != nil {
return err
}
@@ -100,25 +39,6 @@ func (c *Cli) connect() error {
return nil
}
-// 测试连接
-func TestConn(m *entity.Machine) error {
- config := ssh.ClientConfig{
- User: m.Username,
- Auth: []ssh.AuthMethod{ssh.Password(m.Password)},
- HostKeyCallback: func(hostname string, remote net.Addr, key ssh.PublicKey) error {
- return nil
- },
- Timeout: 5 * time.Second,
- }
- addr := fmt.Sprintf("%s:%d", m.Ip, m.Port)
- sshClient, err := ssh.Dial("tcp", addr, &config)
- if err != nil {
- return err
- }
- defer sshClient.Close()
- return nil
-}
-
// 关闭client和并从缓存中移除
func (c *Cli) Close() {
m := c.machine
@@ -184,3 +104,91 @@ func (c *Cli) Run(shell string) (*string, error) {
func (c *Cli) GetMachine() *entity.Machine {
return c.machine
}
+
+// 机器客户端连接缓存,45分钟内没有访问则会被关闭
+var cliCache = cache.NewTimedCache(45*time.Minute, 5*time.Second).
+ WithUpdateAccessTime(true).
+ OnEvicted(func(_, value interface{}) {
+ value.(*Cli).Close()
+ })
+
+// 是否存在指定id的客户端连接
+func HasCli(machineId uint64) bool {
+ if _, ok := cliCache.Get(machineId); ok {
+ return true
+ }
+ return false
+}
+
+// 删除指定机器客户端,并关闭客户端连接
+func DeleteCli(id uint64) {
+ cliCache.Delete(id)
+}
+
+// 从缓存中获取客户端信息,不存在则回调获取机器信息函数,并新建
+func GetCli(machineId uint64, getMachine func(uint64) *entity.Machine) (*Cli, error) {
+ cli, err := cliCache.ComputeIfAbsent(machineId, func(_ interface{}) (interface{}, error) {
+ c, err := newClient(getMachine(machineId))
+ if err != nil {
+ return nil, err
+ }
+ return c, nil
+ })
+
+ if cli != nil {
+ return cli.(*Cli), err
+ }
+ return nil, err
+}
+
+// 测试连接
+func TestConn(m *entity.Machine) error {
+ sshClient, err := GetSshClient(m)
+ if err != nil {
+ return err
+ }
+ defer sshClient.Close()
+ return nil
+}
+
+func GetSshClient(m *entity.Machine) (*ssh.Client, error) {
+ config := ssh.ClientConfig{
+ User: m.Username,
+ HostKeyCallback: func(hostname string, remote net.Addr, key ssh.PublicKey) error {
+ return nil
+ },
+ Timeout: 5 * time.Second,
+ }
+ if m.AuthMethod == entity.MachineAuthMethodPassword {
+ config.Auth = []ssh.AuthMethod{ssh.Password(m.Password)}
+ } else if m.AuthMethod == entity.MachineAuthMethodPublicKey {
+ if signer, err := ssh.ParsePrivateKey([]byte(m.Password)); err != nil {
+ return nil, err
+ } else {
+ config.Auth = []ssh.AuthMethod{ssh.PublicKeys(signer)}
+ }
+ }
+
+ addr := fmt.Sprintf("%s:%d", m.Ip, m.Port)
+ sshClient, err := ssh.Dial("tcp", addr, &config)
+ if err != nil {
+ return nil, err
+ }
+ return sshClient, nil
+}
+
+//根据机器信息创建客户端对象
+func newClient(machine *entity.Machine) (*Cli, error) {
+ if machine == nil {
+ return nil, errors.New("机器不存在")
+ }
+
+ global.Log.Infof("[%s]机器连接:%s:%d", machine.Name, machine.Ip, machine.Port)
+ cli := new(Cli)
+ cli.machine = machine
+ err := cli.connect()
+ if err != nil {
+ return nil, err
+ }
+ return cli, nil
+}
diff --git a/server/mayfly-go.sql b/server/mayfly-go.sql
index 82605103..f2dbaab9 100644
--- a/server/mayfly-go.sql
+++ b/server/mayfly-go.sql
@@ -30,6 +30,8 @@ CREATE TABLE `t_db` (
`database` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '数据库,空格分割多个数据库',
`params` varchar(125) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '其他连接参数',
`network` varchar(20) COLLATE utf8mb4_bin DEFAULT NULL,
+ `enableSshTunnel` tinyint(2) DEFAULT NULL COMMENT '是否启用ssh隧道',
+ `sshTunnelMachineId` bigint(20) DEFAULT NULL COMMENT 'ssh隧道的机器id',
`project_id` bigint(20) DEFAULT NULL,
`project` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL,
`env_id` bigint(20) DEFAULT NULL COMMENT '环境id',
@@ -41,11 +43,6 @@ CREATE TABLE `t_db` (
`update_time` datetime DEFAULT NULL,
`modifier_id` bigint(20) DEFAULT NULL,
`modifier` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL,
- `enable_ssh` tinyint(1) unsigned NOT NULL DEFAULT '0',
- `ssh_host` varchar(50) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
- `ssh_port` int(8) NOT NULL,
- `ssh_user` varchar(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
- `ssh_pass` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='数据库资源信息表';
@@ -112,7 +109,8 @@ CREATE TABLE `t_machine` (
`ip` varchar(36) COLLATE utf8mb4_bin NOT NULL,
`port` int(12) NOT NULL,
`username` varchar(12) COLLATE utf8mb4_bin NOT NULL,
- `password` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL,
+ `auth_method` tinyint(2) NULL DEFAULT NULL COMMENT '1.密码登录2.publickey登录',
+ `password` varchar(3200) COLLATE utf8mb4_bin DEFAULT NULL,
`status` tinyint(2) NOT NULL COMMENT '状态: 1:启用; -1:禁用',
`remark` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
`need_monitor` tinyint(2) DEFAULT NULL,
@@ -263,6 +261,8 @@ CREATE TABLE `t_redis` (
`password` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL,
`db` int(32) DEFAULT NULL,
`mode` varchar(32) DEFAULT NULL,
+ `enableSshTunnel` tinyint(2) DEFAULT NULL COMMENT '是否启用ssh隧道',
+ `sshTunnelMachineId` bigint(20) DEFAULT NULL COMMENT 'ssh隧道的机器id',
`remark` varchar(125) DEFAULT NULL,
`project_id` bigint(20) DEFAULT NULL,
`project` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL,
@@ -668,6 +668,8 @@ CREATE TABLE `t_mongo` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(36) COLLATE utf8mb4_bin NOT NULL COMMENT '名称',
`uri` varchar(255) COLLATE utf8mb4_bin NOT NULL COMMENT '连接uri',
+ `enableSshTunnel` tinyint(2) DEFAULT NULL COMMENT '是否启用ssh隧道',
+ `sshTunnelMachineId` bigint(20) DEFAULT NULL COMMENT 'ssh隧道的机器id',
`project_id` bigint(20) NOT NULL,
`project` varchar(36) COLLATE utf8mb4_bin DEFAULT NULL,
`env_id` bigint(20) DEFAULT NULL,
diff --git a/server/pkg/utils/ssh_conn_wrap.go b/server/pkg/utils/ssh_conn_wrap.go
new file mode 100644
index 00000000..1135fcfe
--- /dev/null
+++ b/server/pkg/utils/ssh_conn_wrap.go
@@ -0,0 +1,36 @@
+package utils
+
+import (
+ "net"
+ "time"
+)
+
+type WrapSshConn struct {
+ Conn net.Conn
+}
+
+func (c *WrapSshConn) Read(b []byte) (n int, err error) {
+ return c.Conn.Read(b)
+}
+
+func (c *WrapSshConn) Write(b []byte) (n int, err error) {
+ return c.Conn.Write(b)
+}
+func (c *WrapSshConn) Close() error {
+ return c.Conn.Close()
+}
+func (c *WrapSshConn) LocalAddr() net.Addr {
+ return c.Conn.LocalAddr()
+}
+func (c *WrapSshConn) RemoteAddr() net.Addr {
+ return c.Conn.RemoteAddr()
+}
+func (c *WrapSshConn) SetDeadline(t time.Time) error {
+ return c.Conn.SetDeadline(t)
+}
+func (c *WrapSshConn) SetReadDeadline(t time.Time) error {
+ return nil
+}
+func (c *WrapSshConn) SetWriteDeadline(t time.Time) error {
+ return nil
+}