From 59af204a4c564caf7e0bead9689f1a9f54c3fa5e Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Mon, 15 May 2023 17:41:17 +0800 Subject: [PATCH 1/2] feat(projects): integration fast-crud --- mock/api/crud/base.ts | 269 +++ mock/api/crud/index.ts | 5 + mock/api/crud/modules/demo.ts | 55 + mock/api/crud/modules/header-group.ts | 45 + mock/api/index.ts | 3 +- package.json | 5 + pnpm-lock.yaml | 2289 ++++++++++++++++++++++++- src/App.vue | 4 +- src/main.ts | 4 +- src/plugins/fast-crud/common.scss | 11 + src/plugins/fast-crud/index.tsx | 166 ++ src/plugins/fast-crud/naive.ts | 59 + src/plugins/index.ts | 2 + src/router/modules/crud.ts | 45 + src/typings/page-route.d.ts | 10 + src/views/crud/demo/api.ts | 37 + src/views/crud/demo/crud.tsx | 114 ++ src/views/crud/demo/index.vue | 28 + src/views/crud/doc/index.vue | 13 + src/views/crud/header_group/api.ts | 37 + src/views/crud/header_group/crud.tsx | 102 ++ src/views/crud/header_group/index.vue | 32 + src/views/crud/source/index.vue | 13 + src/views/index.ts | 4 + 24 files changed, 3275 insertions(+), 77 deletions(-) create mode 100644 mock/api/crud/base.ts create mode 100644 mock/api/crud/index.ts create mode 100644 mock/api/crud/modules/demo.ts create mode 100644 mock/api/crud/modules/header-group.ts create mode 100644 src/plugins/fast-crud/common.scss create mode 100644 src/plugins/fast-crud/index.tsx create mode 100644 src/plugins/fast-crud/naive.ts create mode 100644 src/router/modules/crud.ts create mode 100644 src/views/crud/demo/api.ts create mode 100644 src/views/crud/demo/crud.tsx create mode 100644 src/views/crud/demo/index.vue create mode 100644 src/views/crud/doc/index.vue create mode 100644 src/views/crud/header_group/api.ts create mode 100644 src/views/crud/header_group/crud.tsx create mode 100644 src/views/crud/header_group/index.vue create mode 100644 src/views/crud/source/index.vue diff --git a/mock/api/crud/base.ts b/mock/api/crud/base.ts new file mode 100644 index 00000000..40bb0055 --- /dev/null +++ b/mock/api/crud/base.ts @@ -0,0 +1,269 @@ +// eslint-disable-next-line max-params +function copyList(originList: any, newList: any, options: any, parentId?: number) { + for (const item of originList) { + const newItem = { ...item, parentId }; + newItem.id = options.idGenerator; + options.idGenerator += 1; + newList.push(newItem); + if (item.children) { + newItem.children = []; + copyList(item.children, newItem.children, options, newItem.id); + } + } +} + +function delById(req: any, list: any[]) { + for (let i = 0; i < list.length; i += 1) { + const item = list[i]; + if (item.id === parseInt(req.params.id, 10)) { + list.splice(i, 1); + break; + } + if (item.children && item.children.length > 0) { + delById(req, item.children); + } + } +} + +function findById(id: number, list: any[]): any { + for (const item of list) { + if (item.id === id) { + return item; + } + if (item.children && item.children.length > 0) { + const sub = findById(id, item.children); + if (sub !== null && sub !== undefined) { + return sub; + } + } + } + return null; +} +export default { + buildMock(options: { name: string; copyTimes: number; list: any[]; idGenerator: number }) { + const name = options.name; + if (!options.copyTimes) { + options.copyTimes = 29; + } + const list: any[] = []; + for (let i = 0; i < options.copyTimes; i += 1) { + copyList(options.list, list, options); + } + options.list = list; + return [ + { + path: `/mock/${name}/page`, + method: 'post', + handle(req: any) { + let data = [...list]; + let limit = 20; + let offset = 0; + for (const item of list) { + if (item.children && item.children.length === 0) { + item.hasChildren = false; + item.lazy = false; + } + } + let orderAsc: any; + let orderProp: any; + if (req && req.body) { + const { page, query, sort } = req.body; + if (page.limit) { + limit = parseInt(page.limit, 10); + } + if (page.offset) { + offset = parseInt(page.offset, 10); + } + orderProp = sort.prop; + orderAsc = sort.asc; + + if (Object.keys(query).length > 0) { + // eslint-disable-next-line complexity + data = list.filter(item => { + let allFound = true; // 是否所有条件都符合 + // eslint-disable-next-line guard-for-in + for (const key in query) { + // 判定某一个条件 + const value = query[key]; + if (value === undefined || value === null || value === '') { + // eslint-disable-next-line no-continue + continue; + } + if (value instanceof Array) { + // 如果条件中的value是数组的话,只要查到一个就行 + if (value.length === 0) { + // eslint-disable-next-line no-continue + continue; + } + let found = false; + for (const i of value) { + if (item[key] instanceof Array) { + // eslint-disable-next-line max-depth + for (const j of item[key]) { + // eslint-disable-next-line max-depth + if (i === j) { + found = true; + break; + } + } + // eslint-disable-next-line max-depth + if (found) { + break; + } + } else if (item[key] === i || (typeof item[key] === 'string' && item[key].indexOf(`${i}`) >= 0)) { + found = true; + break; + } + if (found) { + break; + } + } + if (!found) { + allFound = false; + } + } else if (value instanceof Object) { + // eslint-disable-next-line max-depth,guard-for-in + for (const key2 in value) { + const v = value[key2]; + if (v && item[key] && v !== item[key][key2]) { + return false; + } + } + } else if (item[key] !== value) { + allFound = false; + } + } + return allFound; + }); + } + } + + const start = offset; + let end = offset + limit; + if (data.length < end) { + end = data.length; + } + + if (orderProp) { + // 排序 + data.sort((a, b) => { + let ret = 0; + if (a[orderProp] > b[orderProp]) { + ret = 1; + } else { + ret = -1; + } + return orderAsc ? ret : -ret; + }); + } + + const records = data.slice(start, end); + const lastOffset = data.length - (data.length % limit); + if (offset > lastOffset) { + offset = lastOffset; + } + return { + code: 200, + message: 'success', + data: { + records, + total: data.length, + limit, + offset + } + }; + } + }, + { + path: `/mock/${name}/get`, + method: 'get', + handle(req: any) { + let id = req.params.id; + id = parseInt(id, 10); + let current = null; + for (const item of list) { + if (item.id === id) { + current = item; + break; + } + } + return { + code: 200, + message: 'success', + data: current + }; + } + }, + { + path: `/mock/${name}/add`, + method: 'post', + handle(req: any) { + req.body.id = options.idGenerator; + options.idGenerator += 1; + list.unshift(req.body); + return { + code: 200, + message: 'success', + data: req.body.id + }; + } + }, + { + path: `/mock/${name}/update`, + method: 'post', + handle(req: any) { + const item = findById(req.body.id, list); + if (item) { + Object.assign(item, req.body); + } + return { + code: 200, + message: 'success', + data: null + }; + } + }, + { + path: `/mock/${name}/delete`, + method: 'post', + handle(req: any) { + delById(req, list); + return { + code: 200, + message: 'success', + data: null + }; + } + }, + { + path: `/mock/${name}/batchDelete`, + method: 'post', + handle(req: any) { + const ids = req.body.ids; + for (let i = list.length - 1; i >= 0; i -= 1) { + const item = list[i]; + if (ids.indexOf(item.id) >= 0) { + list.splice(i, 1); + } + } + return { + code: 200, + message: 'success', + data: null + }; + } + }, + { + path: `/mock/${name}/all`, + method: 'post', + handle() { + return { + code: 200, + message: 'success', + data: list + }; + } + } + ]; + } +}; diff --git a/mock/api/crud/index.ts b/mock/api/crud/index.ts new file mode 100644 index 00000000..d87e24ad --- /dev/null +++ b/mock/api/crud/index.ts @@ -0,0 +1,5 @@ +import demo from './modules/demo'; +import headerGroup from './modules/header-group'; + +const crudApis = [...demo, ...headerGroup]; +export default crudApis; diff --git a/mock/api/crud/modules/demo.ts b/mock/api/crud/modules/demo.ts new file mode 100644 index 00000000..662b679e --- /dev/null +++ b/mock/api/crud/modules/demo.ts @@ -0,0 +1,55 @@ +import type { MethodType, MockMethod } from 'vite-plugin-mock'; +import mockBase from '../base'; + +const options: any = { + name: 'crud/demo', + idGenerator: 0 +}; +const list: any[] = [ + { + select: '1', + text: '文本测试', + copyable: '文本可复制', + avatar: 'http://greper.handsfree.work/extends/avatar.jpg', + richtext: '富文本', + datetime: '2023-01-30 11:11:11' + }, + { + select: '2' + }, + { + select: '0' + } +]; +options.list = list; +const mockedApis = mockBase.buildMock(options); + +const apis: MockMethod[] = [ + { + url: `/mock/${options.name}/dict`, + method: 'get', + response: () => { + return { + code: 200, + message: '', + data: [ + { value: '0', label: '关', color: 'warning' }, + { value: '1', label: '开', color: 'success' }, + { value: '2', label: '停' } + ] + }; + } + } +]; + +for (const mockedApi of mockedApis) { + apis.push({ + url: mockedApi.path, + method: mockedApi.method as MethodType, + response: (request: any) => { + return mockedApi.handle(request); + } + }); +} + +export default apis; diff --git a/mock/api/crud/modules/header-group.ts b/mock/api/crud/modules/header-group.ts new file mode 100644 index 00000000..15210de8 --- /dev/null +++ b/mock/api/crud/modules/header-group.ts @@ -0,0 +1,45 @@ +import type { MethodType, MockMethod } from 'vite-plugin-mock'; +import mockBase from '../base'; + +const options: any = { + name: 'crud/header-group', + idGenerator: 0 +}; +const list: any[] = [ + { + name: '张三', + age: 18, + province: '广东省', + city: '深圳市', + county: '南山区', + street: '粤海街道' + }, + { + name: '李四', + age: 26, + province: '浙江省', + city: '杭州市', + county: '西湖区', + street: '西湖街道' + }, + { + name: '王五', + age: 24 + } +]; +options.list = list; +const mockedApis = mockBase.buildMock(options); + +const apis: MockMethod[] = []; + +for (const mockedApi of mockedApis) { + apis.push({ + url: mockedApi.path, + method: mockedApi.method as MethodType, + response: (request: any) => { + return mockedApi.handle(request); + } + }); +} + +export default apis; diff --git a/mock/api/index.ts b/mock/api/index.ts index 32a3dcce..e48bb245 100644 --- a/mock/api/index.ts +++ b/mock/api/index.ts @@ -1,5 +1,6 @@ import auth from './auth'; import route from './route'; import management from './management'; +import crud from './crud'; -export default [...auth, ...route, ...management]; +export default [...auth, ...route, ...management, ...crud]; diff --git a/package.json b/package.json index d27a1b2c..81398c7d 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,11 @@ "prepare": "soy init-git-hooks" }, "dependencies": { + "@ant-design/icons-vue": "^6.1.0", + "@fast-crud/fast-crud": "^1.13.6", + "@fast-crud/fast-extends": "^1.13.6", + "@fast-crud/ui-naive": "^1.13.6", + "@fast-crud/ui-interface": "^1.13.6", "@antv/data-set": "^0.11.8", "@antv/g2": "^4.2.10", "@better-scroll/core": "^2.5.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7cbd0760..9e4d1c30 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,6 +1,9 @@ lockfileVersion: '6.0' dependencies: + '@ant-design/icons-vue': + specifier: ^6.1.0 + version: 6.1.0(vue@3.2.47) '@antv/data-set': specifier: ^0.11.8 version: 0.11.8 @@ -10,6 +13,18 @@ dependencies: '@better-scroll/core': specifier: ^2.5.1 version: 2.5.1 + '@fast-crud/fast-crud': + specifier: ^1.13.6 + version: 1.13.6(vue@3.2.47) + '@fast-crud/fast-extends': + specifier: ^1.13.6 + version: 1.13.6(vue@3.2.47) + '@fast-crud/ui-interface': + specifier: ^1.13.6 + version: 1.13.6 + '@fast-crud/ui-naive': + specifier: ^1.13.6 + version: 1.13.6 '@soybeanjs/vue-materials': specifier: ^0.1.9 version: 0.1.9(vue@3.2.47) @@ -207,6 +222,26 @@ packages: '@jridgewell/trace-mapping': 0.3.18 dev: true + /@ant-design/colors@6.0.0: + resolution: {integrity: sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==} + dependencies: + '@ctrl/tinycolor': 3.6.0 + dev: false + + /@ant-design/icons-svg@4.2.1: + resolution: {integrity: sha512-EB0iwlKDGpG93hW8f85CTJTs4SvMX7tt5ceupvhALp1IF44SeUFOMhKUOYqpsoYWQKAOuTRDMqn75rEaKDp0Xw==} + dev: false + + /@ant-design/icons-vue@6.1.0(vue@3.2.47): + resolution: {integrity: sha512-EX6bYm56V+ZrKN7+3MT/ubDkvJ5rK/O2t380WFRflDcVFgsvl3NLH7Wxeau6R8DbrO5jWR6DSTC3B6gYFp77AA==} + peerDependencies: + vue: '>=3.0.3' + dependencies: + '@ant-design/colors': 6.0.0 + '@ant-design/icons-svg': 4.2.1 + vue: 3.2.47 + dev: false + /@antfu/install-pkg@0.1.1: resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==} dependencies: @@ -424,6 +459,979 @@ packages: resolution: {integrity: sha512-aXAxapNWZwGN41P+Am/ma/2kAzKOhMNaY6YuvLkUHFv+UZkmDHD6F0fE1sQA2Up0bLjgPQa1VQzoAaii5tZWaA==} dev: true + /@aws-crypto/crc32@3.0.0: + resolution: {integrity: sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==} + dependencies: + '@aws-crypto/util': 3.0.0 + '@aws-sdk/types': 3.329.0 + tslib: 1.14.1 + dev: false + + /@aws-crypto/crc32c@3.0.0: + resolution: {integrity: sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w==} + dependencies: + '@aws-crypto/util': 3.0.0 + '@aws-sdk/types': 3.329.0 + tslib: 1.14.1 + dev: false + + /@aws-crypto/ie11-detection@3.0.0: + resolution: {integrity: sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==} + dependencies: + tslib: 1.14.1 + dev: false + + /@aws-crypto/sha1-browser@3.0.0: + resolution: {integrity: sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw==} + dependencies: + '@aws-crypto/ie11-detection': 3.0.0 + '@aws-crypto/supports-web-crypto': 3.0.0 + '@aws-crypto/util': 3.0.0 + '@aws-sdk/types': 3.329.0 + '@aws-sdk/util-locate-window': 3.310.0 + '@aws-sdk/util-utf8-browser': 3.259.0 + tslib: 1.14.1 + dev: false + + /@aws-crypto/sha256-browser@3.0.0: + resolution: {integrity: sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==} + dependencies: + '@aws-crypto/ie11-detection': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-crypto/supports-web-crypto': 3.0.0 + '@aws-crypto/util': 3.0.0 + '@aws-sdk/types': 3.329.0 + '@aws-sdk/util-locate-window': 3.310.0 + '@aws-sdk/util-utf8-browser': 3.259.0 + tslib: 1.14.1 + dev: false + + /@aws-crypto/sha256-js@3.0.0: + resolution: {integrity: sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==} + dependencies: + '@aws-crypto/util': 3.0.0 + '@aws-sdk/types': 3.329.0 + tslib: 1.14.1 + dev: false + + /@aws-crypto/supports-web-crypto@3.0.0: + resolution: {integrity: sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==} + dependencies: + tslib: 1.14.1 + dev: false + + /@aws-crypto/util@3.0.0: + resolution: {integrity: sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==} + dependencies: + '@aws-sdk/types': 3.329.0 + '@aws-sdk/util-utf8-browser': 3.259.0 + tslib: 1.14.1 + dev: false + + /@aws-sdk/abort-controller@3.329.0: + resolution: {integrity: sha512-hzrjPNQcJoSPe0oS20V5i98oiEZSM3mKNiR6P3xHTHTPI/F23lyjGZ+/CSkCmJbSWfGZ5sHZZcU6AWuS7xBdTw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/chunked-blob-reader@3.310.0: + resolution: {integrity: sha512-CrJS3exo4mWaLnWxfCH+w88Ou0IcAZSIkk4QbmxiHl/5Dq705OLoxf4385MVyExpqpeVJYOYQ2WaD8i/pQZ2fg==} + dependencies: + tslib: 2.5.0 + dev: false + + /@aws-sdk/client-s3@3.332.0: + resolution: {integrity: sha512-4AkbBPGjFkIvN15l9uDHcry3kwMknpl0b7mqFaNQqQJR2OyFJnr7US/KyeTjwijJAuU+f7lKz8QMTtBcghJm3w==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-crypto/sha1-browser': 3.0.0 + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/client-sts': 3.332.0 + '@aws-sdk/config-resolver': 3.329.0 + '@aws-sdk/credential-provider-node': 3.332.0 + '@aws-sdk/eventstream-serde-browser': 3.329.0 + '@aws-sdk/eventstream-serde-config-resolver': 3.329.0 + '@aws-sdk/eventstream-serde-node': 3.329.0 + '@aws-sdk/fetch-http-handler': 3.329.0 + '@aws-sdk/hash-blob-browser': 3.329.0 + '@aws-sdk/hash-node': 3.329.0 + '@aws-sdk/hash-stream-node': 3.329.0 + '@aws-sdk/invalid-dependency': 3.329.0 + '@aws-sdk/md5-js': 3.329.0 + '@aws-sdk/middleware-bucket-endpoint': 3.329.0 + '@aws-sdk/middleware-content-length': 3.329.0 + '@aws-sdk/middleware-endpoint': 3.329.0 + '@aws-sdk/middleware-expect-continue': 3.329.0 + '@aws-sdk/middleware-flexible-checksums': 3.331.0 + '@aws-sdk/middleware-host-header': 3.329.0 + '@aws-sdk/middleware-location-constraint': 3.329.0 + '@aws-sdk/middleware-logger': 3.329.0 + '@aws-sdk/middleware-recursion-detection': 3.329.0 + '@aws-sdk/middleware-retry': 3.329.0 + '@aws-sdk/middleware-sdk-s3': 3.329.0 + '@aws-sdk/middleware-serde': 3.329.0 + '@aws-sdk/middleware-signing': 3.329.0 + '@aws-sdk/middleware-ssec': 3.329.0 + '@aws-sdk/middleware-stack': 3.329.0 + '@aws-sdk/middleware-user-agent': 3.332.0 + '@aws-sdk/node-config-provider': 3.329.0 + '@aws-sdk/node-http-handler': 3.329.0 + '@aws-sdk/protocol-http': 3.329.0 + '@aws-sdk/signature-v4-multi-region': 3.329.0 + '@aws-sdk/smithy-client': 3.329.0 + '@aws-sdk/types': 3.329.0 + '@aws-sdk/url-parser': 3.329.0 + '@aws-sdk/util-base64': 3.310.0 + '@aws-sdk/util-body-length-browser': 3.310.0 + '@aws-sdk/util-body-length-node': 3.310.0 + '@aws-sdk/util-defaults-mode-browser': 3.329.0 + '@aws-sdk/util-defaults-mode-node': 3.329.0 + '@aws-sdk/util-endpoints': 3.332.0 + '@aws-sdk/util-retry': 3.329.0 + '@aws-sdk/util-stream-browser': 3.329.0 + '@aws-sdk/util-stream-node': 3.331.0 + '@aws-sdk/util-user-agent-browser': 3.329.0 + '@aws-sdk/util-user-agent-node': 3.329.0 + '@aws-sdk/util-utf8': 3.310.0 + '@aws-sdk/util-waiter': 3.329.0 + '@aws-sdk/xml-builder': 3.310.0 + fast-xml-parser: 4.1.2 + tslib: 2.5.0 + transitivePeerDependencies: + - '@aws-sdk/signature-v4-crt' + - aws-crt + dev: false + + /@aws-sdk/client-sso-oidc@3.332.0: + resolution: {integrity: sha512-tz8k8Yqm4TScIfit0Tum2zWAq1md+gZKr747CSixd4Zwcp7Vwh75cRoL7Rz1ZHSEn1Yo983MWREevVez3SubLw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/config-resolver': 3.329.0 + '@aws-sdk/fetch-http-handler': 3.329.0 + '@aws-sdk/hash-node': 3.329.0 + '@aws-sdk/invalid-dependency': 3.329.0 + '@aws-sdk/middleware-content-length': 3.329.0 + '@aws-sdk/middleware-endpoint': 3.329.0 + '@aws-sdk/middleware-host-header': 3.329.0 + '@aws-sdk/middleware-logger': 3.329.0 + '@aws-sdk/middleware-recursion-detection': 3.329.0 + '@aws-sdk/middleware-retry': 3.329.0 + '@aws-sdk/middleware-serde': 3.329.0 + '@aws-sdk/middleware-stack': 3.329.0 + '@aws-sdk/middleware-user-agent': 3.332.0 + '@aws-sdk/node-config-provider': 3.329.0 + '@aws-sdk/node-http-handler': 3.329.0 + '@aws-sdk/protocol-http': 3.329.0 + '@aws-sdk/smithy-client': 3.329.0 + '@aws-sdk/types': 3.329.0 + '@aws-sdk/url-parser': 3.329.0 + '@aws-sdk/util-base64': 3.310.0 + '@aws-sdk/util-body-length-browser': 3.310.0 + '@aws-sdk/util-body-length-node': 3.310.0 + '@aws-sdk/util-defaults-mode-browser': 3.329.0 + '@aws-sdk/util-defaults-mode-node': 3.329.0 + '@aws-sdk/util-endpoints': 3.332.0 + '@aws-sdk/util-retry': 3.329.0 + '@aws-sdk/util-user-agent-browser': 3.329.0 + '@aws-sdk/util-user-agent-node': 3.329.0 + '@aws-sdk/util-utf8': 3.310.0 + tslib: 2.5.0 + transitivePeerDependencies: + - aws-crt + dev: false + + /@aws-sdk/client-sso@3.332.0: + resolution: {integrity: sha512-4q1Nko8M6YVANdEiLYvdv1qb00j4xN4ppE/6d4xpGp7DxHYlm0GA762h0/TR2dun+2I+SMnwj4Fv6BxOmzBaEw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/config-resolver': 3.329.0 + '@aws-sdk/fetch-http-handler': 3.329.0 + '@aws-sdk/hash-node': 3.329.0 + '@aws-sdk/invalid-dependency': 3.329.0 + '@aws-sdk/middleware-content-length': 3.329.0 + '@aws-sdk/middleware-endpoint': 3.329.0 + '@aws-sdk/middleware-host-header': 3.329.0 + '@aws-sdk/middleware-logger': 3.329.0 + '@aws-sdk/middleware-recursion-detection': 3.329.0 + '@aws-sdk/middleware-retry': 3.329.0 + '@aws-sdk/middleware-serde': 3.329.0 + '@aws-sdk/middleware-stack': 3.329.0 + '@aws-sdk/middleware-user-agent': 3.332.0 + '@aws-sdk/node-config-provider': 3.329.0 + '@aws-sdk/node-http-handler': 3.329.0 + '@aws-sdk/protocol-http': 3.329.0 + '@aws-sdk/smithy-client': 3.329.0 + '@aws-sdk/types': 3.329.0 + '@aws-sdk/url-parser': 3.329.0 + '@aws-sdk/util-base64': 3.310.0 + '@aws-sdk/util-body-length-browser': 3.310.0 + '@aws-sdk/util-body-length-node': 3.310.0 + '@aws-sdk/util-defaults-mode-browser': 3.329.0 + '@aws-sdk/util-defaults-mode-node': 3.329.0 + '@aws-sdk/util-endpoints': 3.332.0 + '@aws-sdk/util-retry': 3.329.0 + '@aws-sdk/util-user-agent-browser': 3.329.0 + '@aws-sdk/util-user-agent-node': 3.329.0 + '@aws-sdk/util-utf8': 3.310.0 + tslib: 2.5.0 + transitivePeerDependencies: + - aws-crt + dev: false + + /@aws-sdk/client-sts@3.332.0: + resolution: {integrity: sha512-uVobnXIzMcEhwBDyk6iOt36N/TRNI8hwq7MQugjYGj7Inma9g4vnR09hXJ24HxyKCoVUoIgMbEguQ43+/+uvDQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/config-resolver': 3.329.0 + '@aws-sdk/credential-provider-node': 3.332.0 + '@aws-sdk/fetch-http-handler': 3.329.0 + '@aws-sdk/hash-node': 3.329.0 + '@aws-sdk/invalid-dependency': 3.329.0 + '@aws-sdk/middleware-content-length': 3.329.0 + '@aws-sdk/middleware-endpoint': 3.329.0 + '@aws-sdk/middleware-host-header': 3.329.0 + '@aws-sdk/middleware-logger': 3.329.0 + '@aws-sdk/middleware-recursion-detection': 3.329.0 + '@aws-sdk/middleware-retry': 3.329.0 + '@aws-sdk/middleware-sdk-sts': 3.329.0 + '@aws-sdk/middleware-serde': 3.329.0 + '@aws-sdk/middleware-signing': 3.329.0 + '@aws-sdk/middleware-stack': 3.329.0 + '@aws-sdk/middleware-user-agent': 3.332.0 + '@aws-sdk/node-config-provider': 3.329.0 + '@aws-sdk/node-http-handler': 3.329.0 + '@aws-sdk/protocol-http': 3.329.0 + '@aws-sdk/smithy-client': 3.329.0 + '@aws-sdk/types': 3.329.0 + '@aws-sdk/url-parser': 3.329.0 + '@aws-sdk/util-base64': 3.310.0 + '@aws-sdk/util-body-length-browser': 3.310.0 + '@aws-sdk/util-body-length-node': 3.310.0 + '@aws-sdk/util-defaults-mode-browser': 3.329.0 + '@aws-sdk/util-defaults-mode-node': 3.329.0 + '@aws-sdk/util-endpoints': 3.332.0 + '@aws-sdk/util-retry': 3.329.0 + '@aws-sdk/util-user-agent-browser': 3.329.0 + '@aws-sdk/util-user-agent-node': 3.329.0 + '@aws-sdk/util-utf8': 3.310.0 + fast-xml-parser: 4.1.2 + tslib: 2.5.0 + transitivePeerDependencies: + - aws-crt + dev: false + + /@aws-sdk/config-resolver@3.329.0: + resolution: {integrity: sha512-Oj6eiT3q+Jn685yvUrfRi8PhB3fb81hasJqdrsEivA8IP8qAgnVUTJzXsh8O2UX8UM2MF6A1gTgToSgneJuw2Q==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.329.0 + '@aws-sdk/util-config-provider': 3.310.0 + '@aws-sdk/util-middleware': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/credential-provider-env@3.329.0: + resolution: {integrity: sha512-B4orC9hMt9hG82vAR0TAnQqjk6cFDbO2S14RdzUj2n2NPlGWW4Blkv3NTo86K0lq011VRhtqaLcuTwn5EJD5Sg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/property-provider': 3.329.0 + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/credential-provider-imds@3.329.0: + resolution: {integrity: sha512-ggPlnd7QROPTid0CwT01TYYGvstRRTpzTGsQ/B31wkh30IrRXE81W3S4xrOYuqQD3u0RnflSxnvhs+EayJEYjg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/node-config-provider': 3.329.0 + '@aws-sdk/property-provider': 3.329.0 + '@aws-sdk/types': 3.329.0 + '@aws-sdk/url-parser': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/credential-provider-ini@3.332.0: + resolution: {integrity: sha512-DTW6d6rcqizPVyvcIrwvxecQ7e5GONtVc5Wyf0RTfqf41sDOVZYmn6G+zEFSpBLW0975uZbJS0lyLWtJe2VujQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/credential-provider-env': 3.329.0 + '@aws-sdk/credential-provider-imds': 3.329.0 + '@aws-sdk/credential-provider-process': 3.329.0 + '@aws-sdk/credential-provider-sso': 3.332.0 + '@aws-sdk/credential-provider-web-identity': 3.329.0 + '@aws-sdk/property-provider': 3.329.0 + '@aws-sdk/shared-ini-file-loader': 3.329.0 + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + transitivePeerDependencies: + - aws-crt + dev: false + + /@aws-sdk/credential-provider-node@3.332.0: + resolution: {integrity: sha512-KkBayS9k4WyJTvC86ngeRM+RmWxNCS1BHvudkR6PLXfnsNPDzxySDVY0UgxVhbNYDYsO561fXZt9ccpKyVWjgg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/credential-provider-env': 3.329.0 + '@aws-sdk/credential-provider-imds': 3.329.0 + '@aws-sdk/credential-provider-ini': 3.332.0 + '@aws-sdk/credential-provider-process': 3.329.0 + '@aws-sdk/credential-provider-sso': 3.332.0 + '@aws-sdk/credential-provider-web-identity': 3.329.0 + '@aws-sdk/property-provider': 3.329.0 + '@aws-sdk/shared-ini-file-loader': 3.329.0 + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + transitivePeerDependencies: + - aws-crt + dev: false + + /@aws-sdk/credential-provider-process@3.329.0: + resolution: {integrity: sha512-5oO220qoFc2pMdZDQa6XN/mVhp669I3+LqMbbscGtX/UgLJPSOb7YzPld9Wjv12L5rf+sD3G1PF3LZXO0vKLFA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/property-provider': 3.329.0 + '@aws-sdk/shared-ini-file-loader': 3.329.0 + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/credential-provider-sso@3.332.0: + resolution: {integrity: sha512-SaKXl48af3n6LRitcaEqbeg1YDXwQ0A5QziC1xQyYPraEIj3IZ/GyTjx04Lo2jxNYHuEOE8u4aTw1+IK1GDKbg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/client-sso': 3.332.0 + '@aws-sdk/property-provider': 3.329.0 + '@aws-sdk/shared-ini-file-loader': 3.329.0 + '@aws-sdk/token-providers': 3.332.0 + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + transitivePeerDependencies: + - aws-crt + dev: false + + /@aws-sdk/credential-provider-web-identity@3.329.0: + resolution: {integrity: sha512-lcEibZD7AlutCacpQ6DyNUqElZJDq+ylaIo5a8MH9jGh7Pg2WpDg0Sy+B6FbGCkVn4eIjdHxeX54JM245nhESg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/property-provider': 3.329.0 + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/eventstream-codec@3.329.0: + resolution: {integrity: sha512-1r+6MNfye0za35FNLxMR5V9zpKY1lyzwySyu7o7aj8lnStBaCcjOEe7iHboP/z3DH73KJbxR++O2N+UC/XHFrg==} + dependencies: + '@aws-crypto/crc32': 3.0.0 + '@aws-sdk/types': 3.329.0 + '@aws-sdk/util-hex-encoding': 3.310.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/eventstream-serde-browser@3.329.0: + resolution: {integrity: sha512-oWFSn4o6sxlbFF0AIuDJYf7N0fkiOyWvYgRW3VTX9FSbd66f/KnDspdxIasaDPDUzJl5YRMwUvQbPWw8y9ZQfQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/eventstream-serde-universal': 3.329.0 + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/eventstream-serde-config-resolver@3.329.0: + resolution: {integrity: sha512-iQguqvTtxWXAIniaWmmAO0Qy8080fqnS309p9jbYzz7KaT90sNSCX+CxGFHPy5F0QY36uklDdHn1d1fwWTZciA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/eventstream-serde-node@3.329.0: + resolution: {integrity: sha512-+DFia0wdZiHpdOKjBcl1baZjtzPKf4U4MvOpsUpC6CeW1kSy0hoikKzJstNvRb1qxrTSamElT4gKkMHxxVhPBQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/eventstream-serde-universal': 3.329.0 + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/eventstream-serde-universal@3.329.0: + resolution: {integrity: sha512-n9UzW6HKAhVD5wuz3FMC1ew3VI/vUvRSPXGUpKReMiR2z+YyjmuW8UM4nn7q6i7A/I4QHBt1TC/ax/J2yupgPg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/eventstream-codec': 3.329.0 + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/fetch-http-handler@3.329.0: + resolution: {integrity: sha512-9jfIeJhYCcTX4ScXOueRTB3S/tVce0bRsKxKDP0PnTxnGYOwKXoM9lAPmiYItzYmQ/+QzjTI8xfkA9Usz2SK/Q==} + dependencies: + '@aws-sdk/protocol-http': 3.329.0 + '@aws-sdk/querystring-builder': 3.329.0 + '@aws-sdk/types': 3.329.0 + '@aws-sdk/util-base64': 3.310.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/hash-blob-browser@3.329.0: + resolution: {integrity: sha512-F5HwXYYSpJtUJqmCRKbz/xwDdOyxKpu69TlfsliECLvAQiQGMh2GO1wGm7grolgTROVVqLYRKk2TSJl/WBg1pw==} + dependencies: + '@aws-sdk/chunked-blob-reader': 3.310.0 + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/hash-node@3.329.0: + resolution: {integrity: sha512-6RmnWXNWpi7yAs0oRDQlkMn2wfXOStr/8kTCgiAiqrk1KopGSBkC2veKiKRSfv02FTd1yV/ISqYNIRqW1VLyxg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.329.0 + '@aws-sdk/util-buffer-from': 3.310.0 + '@aws-sdk/util-utf8': 3.310.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/hash-stream-node@3.329.0: + resolution: {integrity: sha512-blSZcb/hJyw3c1bH2Hc1aRoRgruNhRK/qc2svq5kXQFW+qBI5O4fwJayKSdo62/Wh2ejR/N06teYQ9haQLVJEA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.329.0 + '@aws-sdk/util-utf8': 3.310.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/invalid-dependency@3.329.0: + resolution: {integrity: sha512-UXynGusDxN/HxLma5ByJ7u+XnuMd47NbHOjJgYsaAjb1CVZT7hEPXOB+mcZ+Ku7To5SCOKu2QbRn7m4bGespBg==} + dependencies: + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/is-array-buffer@3.310.0: + resolution: {integrity: sha512-urnbcCR+h9NWUnmOtet/s4ghvzsidFmspfhYaHAmSRdy9yDjdjBJMFjjsn85A1ODUktztm+cVncXjQ38WCMjMQ==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.5.0 + dev: false + + /@aws-sdk/md5-js@3.329.0: + resolution: {integrity: sha512-newSeHd+CO2hNmXhQOrUk5Y1hH7BsJ5J4IldcqHKY93UwWqvQNiepRowSa2bV5EuS1qx3kfXhD66PFNRprrIlQ==} + dependencies: + '@aws-sdk/types': 3.329.0 + '@aws-sdk/util-utf8': 3.310.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/middleware-bucket-endpoint@3.329.0: + resolution: {integrity: sha512-h3/JdK+FmJ/nxLcd8QciJYLy0B4QRsYqqxSffXJ7DYlDjEhUgvVpfGdVgAYHrTtOP8rHSG/K7l7iY7QqTaZpuw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/protocol-http': 3.329.0 + '@aws-sdk/types': 3.329.0 + '@aws-sdk/util-arn-parser': 3.310.0 + '@aws-sdk/util-config-provider': 3.310.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/middleware-content-length@3.329.0: + resolution: {integrity: sha512-7kCd+CvY/4KbyXB0uyL7jCwPjMi2yERMALFdEH9dsUciwmxIQT6eSc4aF6wImC4UrbafaqmXvvHErABKMVBTKA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/protocol-http': 3.329.0 + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/middleware-endpoint@3.329.0: + resolution: {integrity: sha512-hdJRoNdCM0BT4W+rrtee+kfFRgGPGXQDgtbIQlf/FuuuYz2sdef7/SYWr0mxuncnVBW5WkYSPP8h6q07whSKbg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/middleware-serde': 3.329.0 + '@aws-sdk/types': 3.329.0 + '@aws-sdk/url-parser': 3.329.0 + '@aws-sdk/util-middleware': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/middleware-expect-continue@3.329.0: + resolution: {integrity: sha512-E/Jp2KijdR/BwF4s899xcSN4/bbHqYznwmBRL5PiHI+HImA6aZ11qTP8kPt5U5p0l2j5iTmW3FpMnByQKJP5Dw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/protocol-http': 3.329.0 + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/middleware-flexible-checksums@3.331.0: + resolution: {integrity: sha512-rdRa4yvyqSQ/HDCh4p1Glv8Y/uRNuIwmOG4nDuL6/GYK1BQdpUpbgrhsszPormku10SnbAdsaWGmVhy3qlUSCQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-crypto/crc32': 3.0.0 + '@aws-crypto/crc32c': 3.0.0 + '@aws-sdk/is-array-buffer': 3.310.0 + '@aws-sdk/protocol-http': 3.329.0 + '@aws-sdk/types': 3.329.0 + '@aws-sdk/util-utf8': 3.310.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/middleware-host-header@3.329.0: + resolution: {integrity: sha512-JrHeUdTIpTCfXDo9JpbAbZTS1x4mt63CCytJRq0mpWp+FlP9hjckBcNxWdR/wSKEzP9pDRnTri638BOwWH7O8w==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/protocol-http': 3.329.0 + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/middleware-location-constraint@3.329.0: + resolution: {integrity: sha512-iUTkyXyhchqoEPkdMZSkHhRQmXe0El1+r9oOw8y9JN6IY0T1bnaqUlerGXzb/tQUeENk9OXYuvDHExegHjEWug==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/middleware-logger@3.329.0: + resolution: {integrity: sha512-lKeeTXsYC1NiwmxrXsZepcwNXPoQxTNNbeD1qaCELPGK2cJlrGoeAP2YRWzpwO2kNZWrDLaGAPT/EUEhqw+d1w==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/middleware-recursion-detection@3.329.0: + resolution: {integrity: sha512-0/TYOJwrj1Z8s+Y7thibD23hggBq/K/01NwPk32CwWG/G+1vWozs5DefknEl++w0vuV+39pkY4KHI8m/+wOCpg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/protocol-http': 3.329.0 + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/middleware-retry@3.329.0: + resolution: {integrity: sha512-cB3D7GlhHUcHGOlygOYxD9cPhwsTYEAMcohK38An8+RHNp6VQEWezzLFCmHVKUSeCQ+wkjZfPA40jOG0rbjSgQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/protocol-http': 3.329.0 + '@aws-sdk/service-error-classification': 3.329.0 + '@aws-sdk/types': 3.329.0 + '@aws-sdk/util-middleware': 3.329.0 + '@aws-sdk/util-retry': 3.329.0 + tslib: 2.5.0 + uuid: 8.3.2 + dev: false + + /@aws-sdk/middleware-sdk-s3@3.329.0: + resolution: {integrity: sha512-Uo8dLXLDpOb3BnLVl0mkTPiVXlNzNGOXOVtpihvYhF2Z+hGFJW1Ro3aUDbVEsFHu753r2Lss4dLiq1fzREeBKA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/protocol-http': 3.329.0 + '@aws-sdk/types': 3.329.0 + '@aws-sdk/util-arn-parser': 3.310.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/middleware-sdk-sts@3.329.0: + resolution: {integrity: sha512-bqtZuhkH8pANb2Gb4FEM1p27o+BoDBmVhEWm8sWH+APsyOor3jc6eUG2GxkfoO6D5tGNIuyCC/GuvW9XDIe4Kg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/middleware-signing': 3.329.0 + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/middleware-serde@3.329.0: + resolution: {integrity: sha512-tvM9NdPuRPCozPjTGNOeYZeLlyx3BcEyajrkRorCRf1YzG/mXdB6I1stote7i4q1doFtYTz0sYL8bqW3LUPn9A==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/middleware-signing@3.329.0: + resolution: {integrity: sha512-bL1nI+EUcF5B1ipwDXxiKL+Uw02Mbt/TNX54PbzunBGZIyO6DZG/H+M3U296bYbvPlwlZhp26O830g6K7VEWsA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/property-provider': 3.329.0 + '@aws-sdk/protocol-http': 3.329.0 + '@aws-sdk/signature-v4': 3.329.0 + '@aws-sdk/types': 3.329.0 + '@aws-sdk/util-middleware': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/middleware-ssec@3.329.0: + resolution: {integrity: sha512-XtDA/P2Sf79scu4a7tG77QC3VLtAGq/pit73x+qwctnI4gBgZlQ+FpE15d89ulntd7rIaD4v6tVU0bAg/L3PIQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/middleware-stack@3.329.0: + resolution: {integrity: sha512-2huFLhJ45td2nuiIOjpc9JKJbFNn5CYmw9U8YDITTcydpteRN62CzCpeqroDvF89VOLWxh0ZFtuLCGUr7liSWQ==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.5.0 + dev: false + + /@aws-sdk/middleware-user-agent@3.332.0: + resolution: {integrity: sha512-rSL1xP4QmcMOsunN1p5ZDR9GT3vvoSCnYa4iPvMSjP8Jx7l4ff/aVctwfZkMs/up12+68Jqwj4TvtaCvCFXdUA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/protocol-http': 3.329.0 + '@aws-sdk/types': 3.329.0 + '@aws-sdk/util-endpoints': 3.332.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/node-config-provider@3.329.0: + resolution: {integrity: sha512-hg9rGNlkzh8aeR/sQbijrkFx2BIO53j4Z6qDxPNWwSGpl05jri1VHxHx2HZMwgbY6Zy/DSguETN/BL8vdFqyLg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/property-provider': 3.329.0 + '@aws-sdk/shared-ini-file-loader': 3.329.0 + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/node-http-handler@3.329.0: + resolution: {integrity: sha512-OrjaHjU2ZTPfoHa5DruRvTIbeHH/cc0wvh4ml+FwDpWaPaBpOhLiluhZ3anqX1l5QjrXNiQnL8FxSM5OV/zVCA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/abort-controller': 3.329.0 + '@aws-sdk/protocol-http': 3.329.0 + '@aws-sdk/querystring-builder': 3.329.0 + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/property-provider@3.329.0: + resolution: {integrity: sha512-1cHLTV6yyMGaMSWWDW/p4vTkJ1cc5BOEO+A0eHuAcoSOk+LDe9IKhUG3/ZOvvYKQYcqIj5jjGSni/noXNCl/qw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/protocol-http@3.329.0: + resolution: {integrity: sha512-0rLEHY6QTHTUUcVxzGbPUSmCKlXWplxT/fcYRh0bcc5MBK4naKfcQft1O6Ajp8uqs/9YPZ7XCVCn90pDeJfeaw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/querystring-builder@3.329.0: + resolution: {integrity: sha512-UWgMKkS5trliaDJG4nPv3onu8Y0aBuwRo7RdIgggguOiU8pU6pq1I113nH2FBNWy+Me1bwf+bcviJh0pCo6bEg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.329.0 + '@aws-sdk/util-uri-escape': 3.310.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/querystring-parser@3.329.0: + resolution: {integrity: sha512-9mkK+FB7snJ2G7H3CqtprDwYIRhzm6jEezffCwUWrC+lbqHBbErbhE9IeU/MKxILmf0RbC2riXEY1MHGspjRrQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/s3-request-presigner@3.332.0: + resolution: {integrity: sha512-+gqb/Ce9LNCdwsUvZYyge382WX+l4qUPRmOiEx6tSorKcfHSA8259AN5obeg/6b+YjUhqQaQlB85ed8kd9m6zQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/middleware-endpoint': 3.329.0 + '@aws-sdk/protocol-http': 3.329.0 + '@aws-sdk/signature-v4-multi-region': 3.329.0 + '@aws-sdk/smithy-client': 3.329.0 + '@aws-sdk/types': 3.329.0 + '@aws-sdk/util-format-url': 3.329.0 + tslib: 2.5.0 + transitivePeerDependencies: + - '@aws-sdk/signature-v4-crt' + dev: false + + /@aws-sdk/service-error-classification@3.329.0: + resolution: {integrity: sha512-TSNr0flOcCLe71aPp7MjblKNGsmxpTU4xR5772MDX9Cz9GUTNZCPFtvrcqd+wzEPP/AC7XwNXe8KjoXooZImUQ==} + engines: {node: '>=14.0.0'} + dev: false + + /@aws-sdk/shared-ini-file-loader@3.329.0: + resolution: {integrity: sha512-e0hyd75fbjMd4aCoRwpP2/HR+0oScwogErVArIkq3F42c/hyNCQP3sph4JImuXIjuo6HNnpKpf20CEPPhNna8A==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/signature-v4-multi-region@3.329.0: + resolution: {integrity: sha512-SiK1ez8Ns61ulDm0MJsTOSGNJNOMNoPgfA9i+Uu/VMCBkotZASuxrcSWW8seQnLEynWLerjUF9CYpCQuCqKn9w==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@aws-sdk/signature-v4-crt': ^3.118.0 + peerDependenciesMeta: + '@aws-sdk/signature-v4-crt': + optional: true + dependencies: + '@aws-sdk/protocol-http': 3.329.0 + '@aws-sdk/signature-v4': 3.329.0 + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/signature-v4@3.329.0: + resolution: {integrity: sha512-9EnLoyOD5nFtCRAp+QRllDgQASCfY7jLHVhwht7jzwE80wE65Z9Ym5Z/mwTd4IyTz/xXfCvcE2VwClsBt0Ybdw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/is-array-buffer': 3.310.0 + '@aws-sdk/types': 3.329.0 + '@aws-sdk/util-hex-encoding': 3.310.0 + '@aws-sdk/util-middleware': 3.329.0 + '@aws-sdk/util-uri-escape': 3.310.0 + '@aws-sdk/util-utf8': 3.310.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/smithy-client@3.329.0: + resolution: {integrity: sha512-7E0fGpBKxwFqHHAOqNbgNsHSEmCZLuvmU9yvG9DXKVzrS4P48O/PfOro123WpcFZs3STyOVgH8wjUPftHAVKmg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/middleware-stack': 3.329.0 + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/token-providers@3.332.0: + resolution: {integrity: sha512-fccbg6OSl0l658pxl2p1MoU9gEePo5B361+JNaN0zfRMu7c5HBXCpdl4djlFxAHjltrX9f1+BKqfGHYgI3h8SQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/client-sso-oidc': 3.332.0 + '@aws-sdk/property-provider': 3.329.0 + '@aws-sdk/shared-ini-file-loader': 3.329.0 + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + transitivePeerDependencies: + - aws-crt + dev: false + + /@aws-sdk/types@3.329.0: + resolution: {integrity: sha512-wFBW4yciDfzQBSFmWNaEvHShnSGLMxSu9Lls6EUf6xDMavxSB36bsrVRX6CyAo/W0NeIIyEOW1LclGPgJV1okg==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.5.0 + dev: false + + /@aws-sdk/url-parser@3.329.0: + resolution: {integrity: sha512-/VcfL7vNJKJGSjYYHVQF3bYCDFs4fSzB7j5qeVDwRdWr870gE7O1Dar+sLWBRKFF3AX+4VzplqzUfpu9t44JVA==} + dependencies: + '@aws-sdk/querystring-parser': 3.329.0 + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/util-arn-parser@3.310.0: + resolution: {integrity: sha512-jL8509owp/xB9+Or0pvn3Fe+b94qfklc2yPowZZIFAkFcCSIdkIglz18cPDWnYAcy9JGewpMS1COXKIUhZkJsA==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.5.0 + dev: false + + /@aws-sdk/util-base64@3.310.0: + resolution: {integrity: sha512-v3+HBKQvqgdzcbL+pFswlx5HQsd9L6ZTlyPVL2LS9nNXnCcR3XgGz9jRskikRUuUvUXtkSG1J88GAOnJ/apTPg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/util-buffer-from': 3.310.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/util-body-length-browser@3.310.0: + resolution: {integrity: sha512-sxsC3lPBGfpHtNTUoGXMQXLwjmR0zVpx0rSvzTPAuoVILVsp5AU/w5FphNPxD5OVIjNbZv9KsKTuvNTiZjDp9g==} + dependencies: + tslib: 2.5.0 + dev: false + + /@aws-sdk/util-body-length-node@3.310.0: + resolution: {integrity: sha512-2tqGXdyKhyA6w4zz7UPoS8Ip+7sayOg9BwHNidiGm2ikbDxm1YrCfYXvCBdwaJxa4hJfRVz+aL9e+d3GqPI9pQ==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.5.0 + dev: false + + /@aws-sdk/util-buffer-from@3.310.0: + resolution: {integrity: sha512-i6LVeXFtGih5Zs8enLrt+ExXY92QV25jtEnTKHsmlFqFAuL3VBeod6boeMXkN2p9lbSVVQ1sAOOYZOHYbYkntw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/is-array-buffer': 3.310.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/util-config-provider@3.310.0: + resolution: {integrity: sha512-xIBaYo8dwiojCw8vnUcIL4Z5tyfb1v3yjqyJKJWV/dqKUFOOS0U591plmXbM+M/QkXyML3ypon1f8+BoaDExrg==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.5.0 + dev: false + + /@aws-sdk/util-defaults-mode-browser@3.329.0: + resolution: {integrity: sha512-2iSiy/pzX3OXMhtSxtAzOiEFr3viQEFnYOTeZuiheuyS+cea2L79F6SlZ1110b/nOIU/UOrxxtz83HVad8YFMQ==} + engines: {node: '>= 10.0.0'} + dependencies: + '@aws-sdk/property-provider': 3.329.0 + '@aws-sdk/types': 3.329.0 + bowser: 2.11.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/util-defaults-mode-node@3.329.0: + resolution: {integrity: sha512-7A6C7YKjkZtmKtH29isYEtOCbhd7IcXPP8lftN8WAWlLOiZE4gV7PHveagUj7QserJzgRKGwwTQbBj53n18HYg==} + engines: {node: '>= 10.0.0'} + dependencies: + '@aws-sdk/config-resolver': 3.329.0 + '@aws-sdk/credential-provider-imds': 3.329.0 + '@aws-sdk/node-config-provider': 3.329.0 + '@aws-sdk/property-provider': 3.329.0 + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/util-endpoints@3.332.0: + resolution: {integrity: sha512-nQx7AiOroMU2hj6h+umWOSZ+WECwxupaxFUK/PPKGW6NY/VdQE6LluYnXOtF5awlr8w1nPksT0Lq05PZutMDLA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/util-format-url@3.329.0: + resolution: {integrity: sha512-FMokjI10Vzpfb+jeJ0y6TnutPcyessdEz6aKMwn5Ee8etnHaEVDXf5tp8bPZ5ii5WRWwgNNrAa+IkJ2KH4E43g==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/querystring-builder': 3.329.0 + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/util-hex-encoding@3.310.0: + resolution: {integrity: sha512-sVN7mcCCDSJ67pI1ZMtk84SKGqyix6/0A1Ab163YKn+lFBQRMKexleZzpYzNGxYzmQS6VanP/cfU7NiLQOaSfA==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.5.0 + dev: false + + /@aws-sdk/util-locate-window@3.310.0: + resolution: {integrity: sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.5.0 + dev: false + + /@aws-sdk/util-middleware@3.329.0: + resolution: {integrity: sha512-RhBOBaxzkTUghi4MSqr8S5qeeBCjgJ0XPJ6jIYkVkj1saCmqkuZCgl3zFaYdyhdxxPV6nflkFer+1HUoqT+Fqw==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.5.0 + dev: false + + /@aws-sdk/util-retry@3.329.0: + resolution: {integrity: sha512-+3VQ9HZLinysnmryUs9Xjt1YVh4TYYHLt30ilu4iUnIHFQoamdzIbRCWseSVFPCxGroen9M9qmAleAsytHEKuA==} + engines: {node: '>= 14.0.0'} + dependencies: + '@aws-sdk/service-error-classification': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/util-stream-browser@3.329.0: + resolution: {integrity: sha512-UF1fJNfgrdJLMxn8ZlfPkYdv7hoLvVgSk3GHgxYA4OQs5zKCzeZgVrbxtE147LxWwJbxi3Qf04vnaEHwzVESpg==} + dependencies: + '@aws-sdk/fetch-http-handler': 3.329.0 + '@aws-sdk/types': 3.329.0 + '@aws-sdk/util-base64': 3.310.0 + '@aws-sdk/util-hex-encoding': 3.310.0 + '@aws-sdk/util-utf8': 3.310.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/util-stream-node@3.331.0: + resolution: {integrity: sha512-5YUatdh4vgkv7VFY+lSkF+b+6EFkiHvy+dlucfGoJEOcEzuA/NBZYebWbcJ5TiR6z3cQdA23OTyZz3ZofZY1hw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/node-http-handler': 3.329.0 + '@aws-sdk/types': 3.329.0 + '@aws-sdk/util-buffer-from': 3.310.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/util-uri-escape@3.310.0: + resolution: {integrity: sha512-drzt+aB2qo2LgtDoiy/3sVG8w63cgLkqFIa2NFlGpUgHFWTXkqtbgf4L5QdjRGKWhmZsnqkbtL7vkSWEcYDJ4Q==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.5.0 + dev: false + + /@aws-sdk/util-user-agent-browser@3.329.0: + resolution: {integrity: sha512-8hLSmMCl8aw2++0Zuba8ELq8FkK6/VNyx470St201IpMn2GMbQMDl/rLolRKiTgji6wc+T3pOTidkJkz8/cIXA==} + dependencies: + '@aws-sdk/types': 3.329.0 + bowser: 2.11.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/util-user-agent-node@3.329.0: + resolution: {integrity: sha512-C50Zaeodc0+psEP+L4WpElrH8epuLWJPVN4hDOTORcM0cSoU2o025Ost9mbcU7UdoHNxF9vitLnzORGN9SHolg==} + engines: {node: '>=14.0.0'} + peerDependencies: + aws-crt: '>=1.0.0' + peerDependenciesMeta: + aws-crt: + optional: true + dependencies: + '@aws-sdk/node-config-provider': 3.329.0 + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/util-utf8-browser@3.259.0: + resolution: {integrity: sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==} + dependencies: + tslib: 2.5.0 + dev: false + + /@aws-sdk/util-utf8@3.310.0: + resolution: {integrity: sha512-DnLfFT8uCO22uOJc0pt0DsSNau1GTisngBCDw8jQuWT5CqogMJu4b/uXmwEqfj8B3GX6Xsz8zOd6JpRlPftQoA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/util-buffer-from': 3.310.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/util-waiter@3.329.0: + resolution: {integrity: sha512-MIGs7snNL0ZV55zo1BDVPlrmbinUGV3260hp6HrW4zUbpYVoeIOGeewtrwAsF6FJ+vpZCxljPBB0X2jYR7Q7ZQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/abort-controller': 3.329.0 + '@aws-sdk/types': 3.329.0 + tslib: 2.5.0 + dev: false + + /@aws-sdk/xml-builder@3.310.0: + resolution: {integrity: sha512-TqELu4mOuSIKQCqj63fGVs86Yh+vBx5nHRpWKNUNhB2nPTpfbziTs5c1X358be3peVWA4wPxW7Nt53KIg1tnNw==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.5.0 + dev: false + /@babel/code-frame@7.21.4: resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} engines: {node: '>=6.9.0'} @@ -1563,6 +2571,14 @@ packages: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} dev: true + /@babel/runtime-corejs2@7.21.5: + resolution: {integrity: sha512-S2tysuG+DdRT77RwSQjlQWGdPW+91F3JmVLUxo5Lggu3LmTe57NVpagpxu0UW/mzP++UQY0r38I7wnhav8X4fA==} + engines: {node: '>=6.9.0'} + dependencies: + core-js: 2.6.12 + regenerator-runtime: 0.13.11 + dev: false + /@babel/runtime-corejs3@7.21.5: resolution: {integrity: sha512-FRqFlFKNazWYykft5zvzuEl1YyTDGsIRrjV9rvxvYkUC7W/ueBng1X68Xd6uRMzAaJ0xMKn08/wem5YS1lpX8w==} engines: {node: '>=6.9.0'} @@ -1645,6 +2661,11 @@ packages: vue: 3.2.47 dev: false + /@ctrl/tinycolor@3.6.0: + resolution: {integrity: sha512-/Z3l6pXthq0JvMYdUFyX9j0MaCltlIn6mfh9jLyQwg5aPKxkyNa0PTHtU1AlFXLNk55ZuAeJRcpvq+tmLfKmaQ==} + engines: {node: '>=10'} + dev: false + /@emotion/hash@0.8.0: resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} dev: false @@ -1914,6 +2935,52 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /@fast-crud/fast-crud@1.13.6(vue@3.2.47): + resolution: {integrity: sha512-w2+z8QBTMiQ51r9fVw1c2p7t68VCfYjlJtN2W5oXRNuE/y/07taOM/Qc4n8ZJPxPU/QvnCEMdoq9jj0CII4s9g==} + dependencies: + lru-cache: 8.0.5 + vuedraggable-es: 4.1.1(vue@3.2.47) + transitivePeerDependencies: + - vue + dev: false + + /@fast-crud/fast-extends@1.13.6(vue@3.2.47): + resolution: {integrity: sha512-kOV+Dwy7+iy8Yk7nmTmR9Wlaf2pH3eu4wm5TS9nsISc3HaviMZjHD4ecjNCH0ucLAa9lBfPsRdAot5B7j/MS5g==} + dependencies: + '@aws-sdk/client-s3': 3.332.0 + '@aws-sdk/s3-request-presigner': 3.332.0 + '@soerenmartius/vue3-clipboard': 0.1.2 + '@wangeditor/editor': 5.1.23 + '@wangeditor/editor-for-vue': 5.1.12(@wangeditor/editor@5.1.23)(vue@3.2.47) + ali-oss: 6.17.1 + cos-js-sdk-v5: 1.4.17 + cropperjs: 1.5.13 + dayjs: 1.11.7 + glob: 9.3.5 + humanize-duration: 3.28.0 + jsoneditor: 9.10.2 + lodash-es: 4.17.21 + object-assign: 4.1.1 + qiniu-js: 3.4.1 + quill: 1.3.7 + vue-cropperjs: 5.0.0(vue@3.2.47) + transitivePeerDependencies: + - '@aws-sdk/signature-v4-crt' + - aws-crt + - supports-color + - vue + dev: false + + /@fast-crud/ui-interface@1.13.6: + resolution: {integrity: sha512-xUDkzXSTKXxrnJGywX4Lm5mCGewembGsbK5IoTETluiinnOe+deh7HyrHjDkydfn2Qr0P0xduPXULrMyWCIIRQ==} + dependencies: + lodash-es: 4.17.21 + dev: false + + /@fast-crud/ui-naive@1.13.6: + resolution: {integrity: sha512-afzGlcz2IxEyGK7jO/pX6E5C47hZZO58Um9mFJBCdpYvnPBWHoSVOS/Y7/kDlsVkRrH329/feodUD30aIgqO9A==} + dev: false + /@gar/promisify@1.1.3: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} dev: true @@ -2319,6 +3386,12 @@ packages: engines: {node: '>=14.16'} dev: true + /@soerenmartius/vue3-clipboard@0.1.2: + resolution: {integrity: sha512-a5er6cFGcFIQ/3qg6kWvU0yFqIz9iWoQGEVs9azjevyRyMAKvj1w3JuLH9y6+u0WhMNby3kn7nuR8nktSnDesg==} + dependencies: + clipboard: 2.0.11 + dev: false + /@soybeanjs/cli@0.1.9: resolution: {integrity: sha512-o6nSf6/yjwEsBLe9qf8enMnS2JPiOBTNS5cLQnMZRhTOXE8ykKCMpzgYHwau730tkJpy2ufNfftMQgxaJnjdMA==} hasBin: true @@ -2364,6 +3437,10 @@ packages: vue-demi: 0.13.11(vue@3.2.47) dev: false + /@sphinxxxx/color-conversion@2.2.2: + resolution: {integrity: sha512-XExJS3cLqgrmNBIP3bBw6+1oQ1ksGjFh0+oClDKFYpCCqx/hlqwWO5KO/S63fzUo67SxI9dMrF0y5T/Ey7h8Zw==} + dev: false + /@surma/rollup-plugin-off-main-thread@2.2.3: resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} dependencies: @@ -2496,11 +3573,20 @@ packages: defer-to-connect: 2.0.1 dev: true + /@tootallnate/once@1.1.2: + resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} + engines: {node: '>= 6'} + dev: false + /@tootallnate/once@2.0.0: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} dev: true + /@transloadit/prettier-bytes@0.0.7: + resolution: {integrity: sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==} + dev: false + /@trysound/sax@0.2.0: resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} @@ -2539,6 +3625,10 @@ packages: resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} dev: true + /@types/event-emitter@0.3.3: + resolution: {integrity: sha512-UfnOK1pIxO7P+EgPRZXD9jMpimd8QEFcEZ5R67R1UhGbv4zghU5+NE7U8M8G9H5Jc8FI51rqDWQs6FtUfq2e/Q==} + dev: false + /@types/http-cache-semantics@4.0.1: resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==} dev: true @@ -2887,6 +3977,47 @@ packages: - rollup dev: true + /@uppy/companion-client@2.2.2: + resolution: {integrity: sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==} + dependencies: + '@uppy/utils': 4.1.3 + namespace-emitter: 2.0.1 + dev: false + + /@uppy/core@2.3.4: + resolution: {integrity: sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ==} + dependencies: + '@transloadit/prettier-bytes': 0.0.7 + '@uppy/store-default': 2.1.1 + '@uppy/utils': 4.1.3 + lodash.throttle: 4.1.1 + mime-match: 1.0.2 + namespace-emitter: 2.0.1 + nanoid: 3.3.6 + preact: 10.14.0 + dev: false + + /@uppy/store-default@2.1.1: + resolution: {integrity: sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ==} + dev: false + + /@uppy/utils@4.1.3: + resolution: {integrity: sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==} + dependencies: + lodash.throttle: 4.1.1 + dev: false + + /@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4): + resolution: {integrity: sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==} + peerDependencies: + '@uppy/core': ^2.3.3 + dependencies: + '@uppy/companion-client': 2.2.2 + '@uppy/core': 2.3.4 + '@uppy/utils': 4.1.3 + nanoid: 3.3.6 + dev: false + /@vitejs/plugin-vue-jsx@3.0.1(vite@4.3.5)(vue@3.2.47): resolution: {integrity: sha512-+Jb7ggL48FSPS1uhPnJbJwWa9Sr90vQ+d0InW+AhBM22n+cfuYqJZDckBc+W3QSHe1WDvewMZfa4wZOtk5pRgw==} engines: {node: ^14.18.0 || >=16.0.0} @@ -3159,6 +4290,197 @@ packages: - vue dev: false + /@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.6)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==} + peerDependencies: + '@wangeditor/core': 1.x + dom7: ^3.0.0 + lodash.throttle: ^4.1.1 + nanoid: ^3.2.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.6)(slate@0.72.8)(snabbdom@3.5.1) + dom7: 3.0.0 + is-url: 1.2.4 + lodash.throttle: 4.1.1 + nanoid: 3.3.6 + slate: 0.72.8 + snabbdom: 3.5.1 + dev: false + + /@wangeditor/code-highlight@1.0.3(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==} + peerDependencies: + '@wangeditor/core': 1.x + dom7: ^3.0.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.6)(slate@0.72.8)(snabbdom@3.5.1) + dom7: 3.0.0 + prismjs: 1.29.0 + slate: 0.72.8 + snabbdom: 3.5.1 + dev: false + + /@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.6)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==} + peerDependencies: + '@uppy/core': ^2.1.1 + '@uppy/xhr-upload': ^2.0.3 + dom7: ^3.0.0 + is-hotkey: ^0.2.0 + lodash.camelcase: ^4.3.0 + lodash.clonedeep: ^4.5.0 + lodash.debounce: ^4.0.8 + lodash.foreach: ^4.5.0 + lodash.isequal: ^4.5.0 + lodash.throttle: ^4.1.1 + lodash.toarray: ^4.4.0 + nanoid: ^3.2.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@types/event-emitter': 0.3.3 + '@uppy/core': 2.3.4 + '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) + dom7: 3.0.0 + event-emitter: 0.3.5 + html-void-elements: 2.0.1 + i18next: 20.6.1 + is-hotkey: 0.2.0 + lodash.camelcase: 4.3.0 + lodash.clonedeep: 4.5.0 + lodash.debounce: 4.0.8 + lodash.foreach: 4.5.0 + lodash.isequal: 4.5.0 + lodash.throttle: 4.1.1 + lodash.toarray: 4.4.0 + nanoid: 3.3.6 + scroll-into-view-if-needed: 2.2.31 + slate: 0.72.8 + slate-history: 0.66.0(slate@0.72.8) + snabbdom: 3.5.1 + dev: false + + /@wangeditor/editor-for-vue@5.1.12(@wangeditor/editor@5.1.23)(vue@3.2.47): + resolution: {integrity: sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ==} + peerDependencies: + '@wangeditor/editor': '>=5.1.0' + vue: ^3.0.5 + dependencies: + '@wangeditor/editor': 5.1.23 + vue: 3.2.47 + dev: false + + /@wangeditor/editor@5.1.23: + resolution: {integrity: sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==} + dependencies: + '@uppy/core': 2.3.4 + '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) + '@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.6)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/code-highlight': 1.0.3(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.6)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/list-module': 1.0.5(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/table-module': 1.1.4(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.6)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/upload-image-module': 1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/basic-modules@1.1.7)(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/video-module': 1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/core@1.1.19)(dom7@3.0.0)(nanoid@3.3.6)(slate@0.72.8)(snabbdom@3.5.1) + dom7: 3.0.0 + is-hotkey: 0.2.0 + lodash.camelcase: 4.3.0 + lodash.clonedeep: 4.5.0 + lodash.debounce: 4.0.8 + lodash.foreach: 4.5.0 + lodash.isequal: 4.5.0 + lodash.throttle: 4.1.1 + lodash.toarray: 4.4.0 + nanoid: 3.3.6 + slate: 0.72.8 + snabbdom: 3.5.1 + dev: false + + /@wangeditor/list-module@1.0.5(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==} + peerDependencies: + '@wangeditor/core': 1.x + dom7: ^3.0.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.6)(slate@0.72.8)(snabbdom@3.5.1) + dom7: 3.0.0 + slate: 0.72.8 + snabbdom: 3.5.1 + dev: false + + /@wangeditor/table-module@1.1.4(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.6)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==} + peerDependencies: + '@wangeditor/core': 1.x + dom7: ^3.0.0 + lodash.isequal: ^4.5.0 + lodash.throttle: ^4.1.1 + nanoid: ^3.2.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.6)(slate@0.72.8)(snabbdom@3.5.1) + dom7: 3.0.0 + lodash.isequal: 4.5.0 + lodash.throttle: 4.1.1 + nanoid: 3.3.6 + slate: 0.72.8 + snabbdom: 3.5.1 + dev: false + + /@wangeditor/upload-image-module@1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/basic-modules@1.1.7)(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==} + peerDependencies: + '@uppy/core': ^2.0.3 + '@uppy/xhr-upload': ^2.0.3 + '@wangeditor/basic-modules': 1.x + '@wangeditor/core': 1.x + dom7: ^3.0.0 + lodash.foreach: ^4.5.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@uppy/core': 2.3.4 + '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) + '@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.6)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.6)(slate@0.72.8)(snabbdom@3.5.1) + dom7: 3.0.0 + lodash.foreach: 4.5.0 + slate: 0.72.8 + snabbdom: 3.5.1 + dev: false + + /@wangeditor/video-module@1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/core@1.1.19)(dom7@3.0.0)(nanoid@3.3.6)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==} + peerDependencies: + '@uppy/core': ^2.1.4 + '@uppy/xhr-upload': ^2.0.7 + '@wangeditor/core': 1.x + dom7: ^3.0.0 + nanoid: ^3.2.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@uppy/core': 2.3.4 + '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.6)(slate@0.72.8)(snabbdom@3.5.1) + dom7: 3.0.0 + nanoid: 3.3.6 + slate: 0.72.8 + snabbdom: 3.5.1 + dev: false + + /@xmldom/xmldom@0.8.7: + resolution: {integrity: sha512-sI1Ly2cODlWStkINzqGrZ8K6n+MTSbAeQnAipGyL+KZCXuHaRlj2gyyy8B/9MvsFFqN7XHryQnB2QwhzvJXovg==} + engines: {node: '>=10.0.0'} + dev: false + /JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -3175,6 +4497,10 @@ packages: resolution: {integrity: sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA==} dev: false + /ace-builds@1.20.0: + resolution: {integrity: sha512-JUvWbRXz7tL3EkcM5CpVyyuu9mvVRo594ZRgwHzb9arb9s2o5gTg94Lrk3zQZzM1udq6fRSDnmU2RClJPt9aNw==} + dev: false + /acorn-jsx@5.3.2(acorn@8.8.2): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -3183,16 +4509,25 @@ packages: acorn: 8.8.2 dev: true + /acorn-walk@8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + engines: {node: '>=0.4.0'} + dev: false + /acorn@8.8.2: resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} engines: {node: '>=0.4.0'} hasBin: true - dev: true /add-stream@1.0.0: resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} dev: true + /address@1.2.2: + resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} + engines: {node: '>= 10.0.0'} + dev: false + /agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} @@ -3200,7 +4535,13 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: true + + /agentkeepalive@3.5.2: + resolution: {integrity: sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==} + engines: {node: '>= 4.0.0'} + dependencies: + humanize-ms: 1.2.1 + dev: false /agentkeepalive@4.3.0: resolution: {integrity: sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==} @@ -3228,7 +4569,6 @@ packages: fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 - dev: true /ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} @@ -3239,6 +4579,38 @@ packages: uri-js: 4.4.1 dev: true + /ali-oss@6.17.1: + resolution: {integrity: sha512-v2oT3UhSJTH/LrsscVvi7iEGrnundydNaFzpYAKatqOl4JNcBV4UiwtlJU+ZHLys040JH2k+CutznA0GoE+P2w==} + engines: {node: '>=8'} + dependencies: + address: 1.2.2 + agentkeepalive: 3.5.2 + bowser: 1.9.4 + copy-to: 2.0.1 + dateformat: 2.2.0 + debug: 2.6.9 + destroy: 1.2.0 + end-or-error: 1.0.1 + get-ready: 1.0.0 + humanize-ms: 1.2.1 + is-type-of: 1.4.0 + js-base64: 2.6.4 + jstoxml: 2.2.9 + merge-descriptors: 1.0.1 + mime: 2.6.0 + mz-modules: 2.1.0 + platform: 1.3.6 + pump: 3.0.0 + sdk-base: 2.0.1 + stream-http: 2.8.2 + stream-wormhole: 1.1.0 + urllib: 2.40.0 + utility: 1.18.0 + xml2js: 0.4.23 + transitivePeerDependencies: + - supports-color + dev: false + /ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} dependencies: @@ -3296,6 +4668,10 @@ packages: engines: {node: '>=12'} dev: true + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + dev: false + /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -3407,6 +4783,13 @@ packages: engines: {node: '>=0.10.0'} dev: true + /ast-types@0.13.4: + resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} + engines: {node: '>=4'} + dependencies: + tslib: 2.5.0 + dev: false + /ast-walker-scope@0.4.1: resolution: {integrity: sha512-Ro3nmapMxi/remlJdzFH0tiA7A59KDbxVoLlKWaLDrPELiftb9b8w+CCyWRM+sXZH5KHRAgv8feedW6mihvCHA==} engines: {node: '>=14.19.0'} @@ -3522,7 +4905,6 @@ packages: /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true /base@0.11.2: resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} @@ -3568,6 +4950,14 @@ packages: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} dev: true + /bowser@1.9.4: + resolution: {integrity: sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ==} + dev: false + + /bowser@2.11.0: + resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} + dev: false + /boxen@7.0.2: resolution: {integrity: sha512-1Z4UJabXUP1/R9rLpoU3O2lEMnG3pPLAs/ZD2lF3t2q7qD5lM8rqbtnvtvm4N0wEyNlE+9yZVTVAGmd1V5jabg==} engines: {node: '>=14.16'} @@ -3594,13 +4984,11 @@ packages: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - dev: true /brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 - dev: true /braces@2.3.2: resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} @@ -3647,6 +5035,10 @@ packages: engines: {node: '>=6'} dev: true + /builtin-status-codes@3.0.0: + resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==} + dev: false + /builtins@5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: @@ -3660,6 +5052,11 @@ packages: run-applescript: 5.0.0 dev: true + /bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + dev: false + /cacache@16.1.3: resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -3918,7 +5315,6 @@ packages: /clone@2.1.2: resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} engines: {node: '>=0.8'} - dev: true /collection-visit@1.0.0: resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} @@ -3998,9 +5394,12 @@ packages: resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} dev: true + /compute-scroll-into-view@1.0.20: + resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==} + dev: false + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - dev: true /concat-stream@2.0.0: resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} @@ -4046,6 +5445,11 @@ packages: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} dev: true + /content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + dev: false + /conventional-changelog-angular@5.0.13: resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==} engines: {node: '>=10'} @@ -4220,6 +5624,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /copy-to@2.0.1: + resolution: {integrity: sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==} + dev: false + /core-js-compat@3.30.1: resolution: {integrity: sha512-d690npR7MC6P0gq4npTl5n2VQeNAmUrJ90n+MHiKS7W2+xno4o3F5GDEuylSdi6EJ3VssibSGXOa1r3YXD3Mhw==} dependencies: @@ -4231,6 +5639,12 @@ packages: requiresBuild: true dev: false + /core-js@2.6.12: + resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==} + deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. + requiresBuild: true + dev: false + /core-js@3.30.1: resolution: {integrity: sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==} requiresBuild: true @@ -4238,7 +5652,6 @@ packages: /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - dev: true /cors@2.8.5: resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} @@ -4248,6 +5661,16 @@ packages: vary: 1.1.2 dev: true + /cos-js-sdk-v5@1.4.17: + resolution: {integrity: sha512-QIHgeEhlK3JrEeBz2qHD61wcN33M4NDfok2LrVdkGkyKXX86xMsBVBGqiVB0hG2BMpmb3AK9F6aAE6zBjndIqg==} + dependencies: + '@xmldom/xmldom': 0.8.7 + dev: false + + /cropperjs@1.5.13: + resolution: {integrity: sha512-by7jKAo73y5/Do0K6sxdTKHgndY0NMjG2bEdgeJxycbcmHuCiMXqw8sxy5C5Y5WTOTcDGmbT7Sr5CgKOXR06OA==} + dev: false + /cross-env@7.0.3: resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} @@ -4475,6 +5898,11 @@ packages: engines: {node: '>=8'} dev: true + /data-uri-to-buffer@3.0.1: + resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} + engines: {node: '>= 6'} + dev: false + /date-fns-tz@1.3.8(date-fns@2.30.0): resolution: {integrity: sha512-qwNXUFtMHTTU6CFSFjoJ80W8Fzzp24LntbjFFBgL/faqds4e5mo9mftoRLgr3Vi1trISsg4awSpYVsOQCRnapQ==} peerDependencies: @@ -4490,6 +5918,10 @@ packages: '@babel/runtime': 7.21.5 dev: false + /dateformat@2.2.0: + resolution: {integrity: sha512-GODcnWq3YGoTnygPfi02ygEiRxqUxpJwuRHjdhJYuxpcZmDq4rjBiXYmbCCzStxo176ixfLT6i4NPwQooRySnw==} + dev: false + /dateformat@3.0.3: resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} dev: true @@ -4511,7 +5943,6 @@ packages: optional: true dependencies: ms: 2.0.0 - dev: true /debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} @@ -4534,7 +5965,6 @@ packages: optional: true dependencies: ms: 2.1.2 - dev: true /decamelize-keys@1.1.1: resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} @@ -4561,6 +5991,17 @@ packages: mimic-response: 3.1.0 dev: true + /deep-equal@1.1.1: + resolution: {integrity: sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==} + dependencies: + is-arguments: 1.1.1 + is-date-object: 1.0.5 + is-regex: 1.1.4 + object-is: 1.1.5 + object-keys: 1.1.1 + regexp.prototype.flags: 1.5.0 + dev: false + /deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} @@ -4568,7 +6009,6 @@ packages: /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - dev: true /deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} @@ -4593,6 +6033,13 @@ packages: titleize: 3.0.0 dev: true + /default-user-agent@1.0.0: + resolution: {integrity: sha512-bDF7bg6OSNcSwFWPu4zYKpVkJZQYVrAANMYB8bc9Szem1D0yKdm4sa/rOCs2aC9+2GMqQ7KnwtZRvDhmLF0dXw==} + engines: {node: '>= 0.10.0'} + dependencies: + os-name: 1.0.3 + dev: false + /defer-to-connect@2.0.1: resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} engines: {node: '>=10'} @@ -4614,7 +6061,6 @@ packages: dependencies: has-property-descriptors: 1.0.0 object-keys: 1.1.1 - dev: true /define-property@0.2.5: resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} @@ -4642,6 +6088,16 @@ packages: resolution: {integrity: sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==} dev: true + /degenerator@3.0.4: + resolution: {integrity: sha512-Z66uPeBfHZAHVmue3HPfyKu2Q0rC2cRxbTOsvmU/po5fvvcx27W4mIu9n0PUlQih4oUYvcG1BsbtVv8x7KDOSw==} + engines: {node: '>= 6'} + dependencies: + ast-types: 0.13.4 + escodegen: 1.14.3 + esprima: 4.0.1 + vm2: 3.9.17 + dev: false + /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -4658,7 +6114,11 @@ packages: /depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} - dev: true + + /destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dev: false /detect-browser@5.3.0: resolution: {integrity: sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==} @@ -4678,6 +6138,11 @@ packages: resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==} dev: false + /digest-header@1.1.0: + resolution: {integrity: sha512-glXVh42vz40yZb9Cq2oMOt70FIoWiv+vxNvdKdU8CwjLad25qHM3trLxhl9bVjdr6WaslIXhWpn0NO8T/67Qjg==} + engines: {node: '>= 8.0.0'} + dev: false + /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -4714,6 +6179,12 @@ packages: entities: 2.2.0 dev: true + /dom7@3.0.0: + resolution: {integrity: sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==} + dependencies: + ssr-window: 3.0.0 + dev: false + /domelementtype@1.3.1: resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} dev: true @@ -4793,7 +6264,6 @@ packages: /ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - dev: true /ejs@3.1.9: resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} @@ -4833,6 +6303,17 @@ packages: dev: true optional: true + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + dev: false + + /end-or-error@1.0.1: + resolution: {integrity: sha512-OclLMSug+k2A0JKuf494im25ANRBVW8qsjmwbgX7lQ8P82H21PQ1PWkoYwb9y5yMBS69BPlwtzdIFClo3+7kOQ==} + engines: {node: '>= 0.11.14'} + dev: false + /enquirer@2.3.6: resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} engines: {node: '>=8.6'} @@ -5203,7 +6684,6 @@ packages: /escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - dev: true /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} @@ -5215,6 +6695,19 @@ packages: engines: {node: '>=10'} dev: true + /escodegen@1.14.3: + resolution: {integrity: sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==} + engines: {node: '>=4.0'} + hasBin: true + dependencies: + esprima: 4.0.1 + estraverse: 4.3.0 + esutils: 2.0.3 + optionator: 0.8.3 + optionalDependencies: + source-map: 0.6.1 + dev: false + /eslint-config-prettier@8.8.0(eslint@8.40.0): resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} hasBin: true @@ -5640,6 +7133,12 @@ packages: eslint-visitor-keys: 3.4.1 dev: true + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: false + /esquery@1.5.0: resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} engines: {node: '>=0.10'} @@ -5657,7 +7156,6 @@ packages: /estraverse@4.3.0: resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} engines: {node: '>=4.0'} - dev: true /estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} @@ -5674,7 +7172,6 @@ packages: /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - dev: true /etag@1.8.1: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} @@ -5688,6 +7185,10 @@ packages: es5-ext: 0.10.62 dev: false + /eventemitter3@2.0.3: + resolution: {integrity: sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==} + dev: false + /eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} dev: false @@ -5752,7 +7253,6 @@ packages: engines: {node: '>=0.10.0'} dependencies: is-extendable: 0.1.1 - dev: true /extend-shallow@3.0.2: resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} @@ -5762,6 +7262,10 @@ packages: is-extendable: 1.0.1 dev: true + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: false + /extglob@2.0.4: resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} engines: {node: '>=0.10.0'} @@ -5780,7 +7284,10 @@ packages: /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: true + + /fast-diff@1.1.2: + resolution: {integrity: sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==} + dev: false /fast-diff@1.2.0: resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} @@ -5799,16 +7306,21 @@ packages: /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - dev: true /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - dev: true /fast-memoize@2.5.2: resolution: {integrity: sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==} dev: true + /fast-xml-parser@4.1.2: + resolution: {integrity: sha512-CDYeykkle1LiA/uqQyNwYpFbyF6Axec6YapmpUP+/RHWIoR1zKjocdvNaTsxCxZzQ6v9MLXaSYm9Qq0thv0DHg==} + hasBin: true + dependencies: + strnum: 1.0.5 + dev: false + /fastq@1.15.0: resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} dependencies: @@ -5833,6 +7345,11 @@ packages: flat-cache: 3.0.4 dev: true + /file-uri-to-path@2.0.0: + resolution: {integrity: sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==} + engines: {node: '>= 6'} + dev: false + /filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} dependencies: @@ -5956,6 +7473,14 @@ packages: mime-types: 2.1.35 dev: false + /formstream@1.2.0: + resolution: {integrity: sha512-ef4F+FQLnQLly1/AZ5OGNgGzzlOmp+T7+L/TaXASJ1GrETrpZb78/Mz7z+1Ra5FX3nLZE0WIOInGOoa81LxWew==} + dependencies: + destroy: 1.2.0 + mime: 2.6.0 + pause-stream: 0.0.11 + dev: false + /fp-and-or@0.1.3: resolution: {integrity: sha512-wJaE62fLaB3jCYvY2ZHjZvmKK2iiLiiehX38rz5QZxtdN8fVPJDeZUiVvJrHStdTc+23LHlyZuSEKgFc0pxi2g==} engines: {node: '>=10'} @@ -5986,6 +7511,15 @@ packages: universalify: 2.0.0 dev: true + /fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: false + /fs-extra@9.1.0: resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} engines: {node: '>=10'} @@ -6012,7 +7546,6 @@ packages: /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - dev: true /fsevents@2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} @@ -6022,6 +7555,14 @@ packages: dev: true optional: true + /ftp@0.3.10: + resolution: {integrity: sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ==} + engines: {node: '>=0.8.0'} + dependencies: + readable-stream: 1.1.14 + xregexp: 2.0.0 + dev: false + /function-bind@1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} @@ -6037,7 +7578,6 @@ packages: /functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - dev: true /gauge@4.0.4: resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} @@ -6085,6 +7625,10 @@ packages: yargs: 16.2.0 dev: true + /get-ready@1.0.0: + resolution: {integrity: sha512-mFXCZPJIlcYcth+N8267+mghfYN9h3EhsDa6JSnbA3Wrhh/XFpuowviFcsDeYZtKspQyWyJqfs4O6P8CHeTwzw==} + dev: false + /get-stdin@8.0.0: resolution: {integrity: sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==} engines: {node: '>=10'} @@ -6107,6 +7651,20 @@ packages: resolution: {integrity: sha512-MjhiaIWCJ1sAU4pIQ5i5OfOuHHxVo1oYeNsWTON7jxYkod8pHocXeh+SSbmu5OZZZK73B6cbJ2XADzXehLyovQ==} dev: true + /get-uri@3.0.2: + resolution: {integrity: sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==} + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': 1.1.2 + data-uri-to-buffer: 3.0.1 + debug: 4.3.4 + file-uri-to-path: 2.0.0 + fs-extra: 8.1.0 + ftp: 0.3.10 + transitivePeerDependencies: + - supports-color + dev: false + /get-value@2.0.6: resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} engines: {node: '>=0.10.0'} @@ -6186,7 +7744,6 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 - dev: true /glob@8.1.0: resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} @@ -6207,7 +7764,6 @@ packages: minimatch: 8.0.4 minipass: 4.2.8 path-scurry: 1.7.0 - dev: true /global-dirs@3.0.1: resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} @@ -6282,7 +7838,6 @@ packages: /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - dev: true /grapheme-splitter@1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} @@ -6349,7 +7904,6 @@ packages: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} dependencies: get-intrinsic: 1.2.0 - dev: true /has-proto@1.0.1: resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} @@ -6365,7 +7919,6 @@ packages: engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 - dev: true /has-unicode@2.0.1: resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} @@ -6453,6 +8006,10 @@ packages: engines: {node: '>=8'} dev: true + /html-void-elements@2.0.1: + resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==} + dev: false + /htmlparser2@3.10.1: resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==} dependencies: @@ -6468,6 +8025,28 @@ packages: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} dev: true + /http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + dev: false + + /http-proxy-agent@4.0.1: + resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': 1.1.2 + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + /http-proxy-agent@5.0.0: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} @@ -6495,7 +8074,6 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: true /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} @@ -6507,11 +8085,20 @@ packages: engines: {node: '>=14.18.0'} dev: true + /humanize-duration@3.28.0: + resolution: {integrity: sha512-jMAxraOOmHuPbffLVDKkEKi/NeG8dMqP8lGRd6Tbf7JgAeG33jjgPWDbXXU7ypCI0o+oNKJFgbSB9FKVdWNI2A==} + dev: false + /humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} dependencies: ms: 2.1.3 - dev: true + + /i18next@20.6.1: + resolution: {integrity: sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==} + dependencies: + '@babel/runtime': 7.21.5 + dev: false /iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} @@ -6550,6 +8137,10 @@ packages: hasBin: true dev: true + /immer@9.0.21: + resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} + dev: false + /immutable@4.3.0: resolution: {integrity: sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==} dev: true @@ -6586,11 +8177,9 @@ packages: dependencies: once: 1.4.0 wrappy: 1.0.2 - dev: true /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: true /ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} @@ -6623,9 +8212,12 @@ packages: resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} dev: false + /ip@1.1.8: + resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} + dev: false + /ip@2.0.0: resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} - dev: true /is-accessor-descriptor@0.1.6: resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==} @@ -6641,6 +8233,14 @@ packages: kind-of: 6.0.3 dev: true + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: false + /is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} dependencies: @@ -6690,6 +8290,10 @@ packages: ci-info: 3.8.0 dev: true + /is-class-hotfix@0.0.6: + resolution: {integrity: sha512-0n+pzCC6ICtVr/WXnN2f03TK/3BfXY7me4cjCAqT8TYXEl0+JBRoqBo94JJHXcyDSLUeWbNX8Fvy5g5RJdAstQ==} + dev: false + /is-core-module@2.12.0: resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==} dependencies: @@ -6715,7 +8319,6 @@ packages: engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 - dev: true /is-descriptor@0.1.6: resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==} @@ -6750,7 +8353,6 @@ packages: /is-extendable@0.1.1: resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} engines: {node: '>=0.10.0'} - dev: true /is-extendable@1.0.1: resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} @@ -6781,6 +8383,10 @@ packages: is-extglob: 2.1.1 dev: true + /is-hotkey@0.2.0: + resolution: {integrity: sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==} + dev: false + /is-html@2.0.0: resolution: {integrity: sha512-S+OpgB5i7wzIue/YSE5hg0e5ZYfG3hhpNh9KGl6ayJ38p7ED6wxQLd1TV91xHpcTvw90KMJ9EwN3F/iNflHBVg==} engines: {node: '>=8'} @@ -6868,13 +8474,17 @@ packages: isobject: 3.0.1 dev: true + /is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + dev: false + /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 - dev: true /is-regexp@1.0.0: resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} @@ -6918,6 +8528,14 @@ packages: text-extensions: 1.9.0 dev: true + /is-type-of@1.4.0: + resolution: {integrity: sha512-EddYllaovi5ysMLMEN7yzHEKh8A850cZ7pykrY1aNRQGn/CDjRDE9qEWbIdt7xGEVJmjBXzU/fNnC4ABTm8tEQ==} + dependencies: + core-util-is: 1.0.3 + is-class-hotfix: 0.0.6 + isstream: 0.1.2 + dev: false + /is-typed-array@1.1.10: resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} engines: {node: '>= 0.4'} @@ -6933,6 +8551,10 @@ packages: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} dev: true + /is-url@1.2.4: + resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==} + dev: false + /is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: @@ -6962,7 +8584,6 @@ packages: /isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - dev: true /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -6980,6 +8601,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /isstream@0.1.2: + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} + dev: false + /jackspeak@2.2.0: resolution: {integrity: sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==} engines: {node: '>=14'} @@ -7000,6 +8625,10 @@ packages: minimatch: 3.1.2 dev: true + /javascript-natural-sort@0.7.1: + resolution: {integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==} + dev: false + /jest-worker@26.6.2: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} @@ -7018,9 +8647,13 @@ packages: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} dev: true + /jmespath@0.16.0: + resolution: {integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==} + engines: {node: '>= 0.6.0'} + dev: false + /js-base64@2.6.4: resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==} - dev: true /js-sdsl@4.4.0: resolution: {integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==} @@ -7073,7 +8706,6 @@ packages: /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - dev: true /json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} @@ -7083,6 +8715,10 @@ packages: resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} dev: true + /json-source-map@0.6.1: + resolution: {integrity: sha512-1QoztHPsMQqhDq0hlXY5ZqcEdUzxQEIxgFkKl4WUp2pgShObl+9ovi4kRh2TfvAfxAoHOJ9vIMEqk3k4iex7tg==} + dev: false + /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true @@ -7114,6 +8750,26 @@ packages: semver: 7.5.0 dev: true + /jsoneditor@9.10.2: + resolution: {integrity: sha512-sT9U8T9MB7We5uyCnofugqYPJtQ5rPJngFlvpdtyFTFKFjOMnlWE1jVhFwjTXwGBoFeiLS+S6rVuhIhJ35Jutw==} + dependencies: + ace-builds: 1.20.0 + ajv: 6.12.6 + javascript-natural-sort: 0.7.1 + jmespath: 0.16.0 + json-source-map: 0.6.1 + jsonrepair: 3.1.0 + mobius1-selectr: 2.4.13 + picomodal: 3.0.0 + vanilla-picker: 2.12.1 + dev: false + + /jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + optionalDependencies: + graceful-fs: 4.2.11 + dev: false + /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: @@ -7136,6 +8792,15 @@ packages: engines: {node: '>=0.10.0'} dev: true + /jsonrepair@3.1.0: + resolution: {integrity: sha512-idqReg23J0PVRAADmZMc5xQM3xeOX5bTB6OTyMnzq33IXJXmn9iJuWIEvGmrN80rQf4d7uLTMEDwpzujNcI0Rg==} + hasBin: true + dev: false + + /jstoxml@2.2.9: + resolution: {integrity: sha512-OYWlK0j+roh+eyaMROlNbS5cd5R25Y+IUpdl7cNdB8HNrkgwQzIS7L9MegxOiWNBj9dQhA/yAxiMwCC5mwNoBw==} + dev: false + /jsx-ast-utils@3.3.3: resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==} engines: {node: '>=4.0'} @@ -7191,6 +8856,12 @@ packages: resolution: {integrity: sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==} dev: true + /ko-sleep@1.1.4: + resolution: {integrity: sha512-s05WGpvvzyTuRlRE8fM7ru2Z3O+InbJuBcckTWKg2W+2c1k6SnFa3IfiSSt0/peFrlYAXgNoxuJWWVNmWh+K/A==} + dependencies: + ms: 2.1.3 + dev: false + /kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} dev: true @@ -7207,6 +8878,14 @@ packages: engines: {node: '>=6'} dev: true + /levn@0.3.0: + resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.1.2 + type-check: 0.3.2 + dev: false + /levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -7324,9 +9003,24 @@ packages: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} dev: false + /lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + dev: false + + /lodash.clonedeep@4.5.0: + resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} + dev: false + /lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - dev: true + + /lodash.foreach@4.5.0: + resolution: {integrity: sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==} + dev: false + + /lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + dev: false /lodash.ismatch@4.4.0: resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} @@ -7340,6 +9034,14 @@ packages: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} dev: true + /lodash.throttle@4.1.1: + resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} + dev: false + + /lodash.toarray@4.4.0: + resolution: {integrity: sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==} + dev: false + /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -7369,7 +9071,6 @@ packages: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: yallist: 3.1.1 - dev: true /lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} @@ -7383,10 +9084,14 @@ packages: engines: {node: '>=12'} dev: true + /lru-cache@8.0.5: + resolution: {integrity: sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==} + engines: {node: '>=16.14'} + dev: false + /lru-cache@9.1.1: resolution: {integrity: sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==} engines: {node: 14 || >=16.14} - dev: true /magic-string-ast@0.1.2: resolution: {integrity: sha512-P53AZrzq7hclCU6HWj88xNZHmP15DKjMmK/vBytO1qnpYP3ul4IEZlyCE0aU3JRnmgWmZPmoTKj4Bls7v0pMyA==} @@ -7509,6 +9214,10 @@ packages: yargs-parser: 20.2.9 dev: true + /merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + dev: false + /merge-options@1.0.1: resolution: {integrity: sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==} engines: {node: '>=4'} @@ -7559,6 +9268,12 @@ packages: engines: {node: '>= 0.6'} dev: false + /mime-match@1.0.2: + resolution: {integrity: sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==} + dependencies: + wildcard: 1.1.2 + dev: false + /mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} @@ -7566,6 +9281,12 @@ packages: mime-db: 1.52.0 dev: false + /mime@2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} + hasBin: true + dev: false + /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -7595,7 +9316,6 @@ packages: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 - dev: true /minimatch@5.1.6: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} @@ -7616,7 +9336,6 @@ packages: engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 - dev: true /minimatch@9.0.0: resolution: {integrity: sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==} @@ -7636,7 +9355,6 @@ packages: /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - dev: true /minipass-collect@1.0.2: resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} @@ -7705,12 +9423,10 @@ packages: /minipass@4.2.8: resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} engines: {node: '>=8'} - dev: true /minipass@5.0.0: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} - dev: true /minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} @@ -7728,12 +9444,23 @@ packages: is-extendable: 1.0.1 dev: true + /mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: false + /mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} hasBin: true dev: true + /mobius1-selectr@2.4.13: + resolution: {integrity: sha512-Mk9qDrvU44UUL0EBhbAA1phfQZ7aMZPjwtL7wkpiBzGh8dETGqfsh50mWoX9EkjDlkONlErWXArHCKfoxVg0Bw==} + dev: false + /mockjs@1.1.0: resolution: {integrity: sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==} hasBin: true @@ -7753,20 +9480,36 @@ packages: /ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - dev: true /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - dev: true /ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - dev: true /muggle-string@0.2.2: resolution: {integrity: sha512-YVE1mIJ4VpUMqZObFndk9CJu6DBJR/GB13p3tXuNbwD4XExaI5EOuRl6BHeIDxIqXZVxSfAC+y6U1Z/IxCfKUg==} dev: true + /mz-modules@2.1.0: + resolution: {integrity: sha512-sjk8lcRW3vrVYnZ+W+67L/2rL+jbO5K/N6PFGIcLWTiYytNr22Ah9FDXFs+AQntTM1boZcoHi5qS+CV1seuPog==} + engines: {node: '>=6.0.0'} + dependencies: + glob: 7.2.3 + ko-sleep: 1.1.4 + mkdirp: 0.5.6 + pump: 3.0.0 + rimraf: 2.7.1 + dev: false + + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: false + /naive-ui@2.34.3(vue@3.2.47): resolution: {integrity: sha512-fUMr0dzb/iGsOTWgoblPVobY5X5dihQ1eam5dA+H74oyLYAvgX4pL96xQFPBLIYqvyRFBAsN85kHN5pLqdtpxA==} peerDependencies: @@ -7793,6 +9536,10 @@ packages: vueuc: 0.4.51(vue@3.2.47) dev: false + /namespace-emitter@2.0.1: + resolution: {integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==} + dev: false + /nanoid@3.3.6: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -7834,6 +9581,11 @@ packages: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} dev: true + /netmask@2.0.2: + resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} + engines: {node: '>= 0.4.0'} + dev: false + /next-tick@1.1.0: resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} dev: false @@ -8043,7 +9795,6 @@ packages: /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - dev: true /object-copy@0.1.0: resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} @@ -8057,10 +9808,17 @@ packages: /object-inspect@1.12.3: resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + /object-is@1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + dev: false + /object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - dev: true /object-visit@1.0.1: resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} @@ -8131,7 +9889,6 @@ packages: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 - dev: true /onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} @@ -8166,6 +9923,18 @@ packages: is-wsl: 2.2.0 dev: true + /optionator@0.8.3: + resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.3.0 + prelude-ls: 1.1.2 + type-check: 0.3.2 + word-wrap: 1.2.3 + dev: false + /optionator@0.9.1: resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} engines: {node: '>= 0.8.0'} @@ -8178,6 +9947,23 @@ packages: word-wrap: 1.2.3 dev: true + /os-name@1.0.3: + resolution: {integrity: sha512-f5estLO2KN8vgtTRaILIgEGBoBrMnZ3JQ7W9TMZCnOIGwHe8TRGSpcagnWDo+Dfhd/z08k9Xe75hvciJJ8Qaew==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + osx-release: 1.1.0 + win-release: 1.1.1 + dev: false + + /osx-release@1.1.0: + resolution: {integrity: sha512-ixCMMwnVxyHFQLQnINhmIpWqXIfS2YOXchwQrk+OFzmo6nDjQ0E4KXAyyUh0T0MZgV4bUhkRrAbVqlE4yLVq4A==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: false + /p-cancelable@3.0.0: resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} engines: {node: '>=12.20'} @@ -8249,6 +10035,32 @@ packages: engines: {node: '>=6'} dev: true + /pac-proxy-agent@5.0.0: + resolution: {integrity: sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==} + engines: {node: '>= 8'} + dependencies: + '@tootallnate/once': 1.1.2 + agent-base: 6.0.2 + debug: 4.3.4 + get-uri: 3.0.2 + http-proxy-agent: 4.0.1 + https-proxy-agent: 5.0.1 + pac-resolver: 5.0.1 + raw-body: 2.5.2 + socks-proxy-agent: 5.0.1 + transitivePeerDependencies: + - supports-color + dev: false + + /pac-resolver@5.0.1: + resolution: {integrity: sha512-cy7u00ko2KVgBAjuhevqpPeHIkCIqPe1v24cydhWjmeuzaBfmUWFCZJ1iAh5TuVzVZoUzXIW7K8sMYOZ84uZ9Q==} + engines: {node: '>= 8'} + dependencies: + degenerator: 3.0.4 + ip: 1.1.8 + netmask: 2.0.2 + dev: false + /package-json@8.1.0: resolution: {integrity: sha512-hySwcV8RAWeAfPsXb9/HGSPn8lwDnv6fabH+obUZKX169QknRkRhPxd1yMubpKDskLFATkl3jHpNtVtDPFA0Wg==} engines: {node: '>=14.16'} @@ -8287,6 +10099,10 @@ packages: - supports-color dev: true + /parchment@1.1.4: + resolution: {integrity: sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==} + dev: false + /parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -8345,7 +10161,6 @@ packages: /path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} - dev: true /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} @@ -8367,7 +10182,6 @@ packages: dependencies: lru-cache: 9.1.1 minipass: 5.0.0 - dev: true /path-to-regexp@6.2.1: resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} @@ -8393,6 +10207,12 @@ packages: resolution: {integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==} dev: true + /pause-stream@0.0.11: + resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} + dependencies: + through: 2.3.8 + dev: false + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -8401,6 +10221,10 @@ packages: engines: {node: '>=8.6'} dev: true + /picomodal@3.0.0: + resolution: {integrity: sha512-FoR3TDfuLlqUvcEeK5ifpKSVVns6B4BQvc8SDF6THVMuadya6LLtji0QgUDSStw0ZR2J7I6UGi5V2V23rnPWTw==} + dev: false + /pidtree@0.6.0: resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} engines: {node: '>=0.10'} @@ -8435,6 +10259,10 @@ packages: vue-demi: 0.14.0(vue@3.2.47) dev: false + /platform@1.3.6: + resolution: {integrity: sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==} + dev: false + /point-at-length@1.1.0: resolution: {integrity: sha512-nNHDk9rNEh/91o2Y8kHLzBLNpLf80RYd2gCun9ss+V0ytRSf6XhryBTx071fesktjbachRmGuUbId+JQmzhRXw==} dependencies: @@ -8543,6 +10371,15 @@ packages: posthtml-render: 1.4.0 dev: true + /preact@10.14.0: + resolution: {integrity: sha512-4oh2sf208mKAdL5AQtzXxE387iSGNWMX/YjwMjH6m/XROILKAmx5Pbs2FsXrW7ixoVGGjpfYSBB833vOwYxNxw==} + dev: false + + /prelude-ls@1.1.2: + resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} + engines: {node: '>= 0.8.0'} + dev: false + /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -8595,6 +10432,11 @@ packages: resolution: {integrity: sha512-BfnOIzSKbqGRtO4o0rnj/K3681BSd2QUrsIZy/+WdCIugjIswjmx3lDEZpXB2ruGf9d4b3YNINri81+J0FsBWg==} dev: false + /prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + dev: false + /proc-log@3.0.0: resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -8602,7 +10444,6 @@ packages: /process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - dev: true /progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} @@ -8646,14 +10487,36 @@ packages: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} dev: true + /proxy-agent@5.0.0: + resolution: {integrity: sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==} + engines: {node: '>= 8'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + http-proxy-agent: 4.0.1 + https-proxy-agent: 5.0.1 + lru-cache: 5.1.1 + pac-proxy-agent: 5.0.0 + proxy-from-env: 1.1.0 + socks-proxy-agent: 5.0.1 + transitivePeerDependencies: + - supports-color + dev: false + /proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} dev: false + /pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: false + /punycode@2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} - dev: true /pupa@3.1.0: resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} @@ -8667,6 +10530,14 @@ packages: engines: {node: '>=0.6.0', teleport: '>=0.2.0'} dev: true + /qiniu-js@3.4.1: + resolution: {integrity: sha512-8vxrLqDPlJUk3fUAaTozh3TAT3ww9B5KqGogmGuTiFHnewXDoMxTCSY5z8Ab5UNdrCo6ZxDM07G/o++CICRUFw==} + dependencies: + '@babel/runtime-corejs2': 7.21.5 + querystring: 0.2.1 + spark-md5: 3.0.2 + dev: false + /qs@6.11.1: resolution: {integrity: sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==} engines: {node: '>=0.6'} @@ -8682,6 +10553,12 @@ packages: strict-uri-encode: 1.1.0 dev: true + /querystring@0.2.1: + resolution: {integrity: sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==} + engines: {node: '>=0.4.x'} + deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. + dev: false + /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true @@ -8696,12 +10573,42 @@ packages: engines: {node: '>=10'} dev: true + /quill-delta@3.6.3: + resolution: {integrity: sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==} + engines: {node: '>=0.10'} + dependencies: + deep-equal: 1.1.1 + extend: 3.0.2 + fast-diff: 1.1.2 + dev: false + + /quill@1.3.7: + resolution: {integrity: sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==} + dependencies: + clone: 2.1.2 + deep-equal: 1.1.1 + eventemitter3: 2.0.3 + extend: 3.0.2 + parchment: 1.1.4 + quill-delta: 3.6.3 + dev: false + /randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: safe-buffer: 5.2.1 dev: true + /raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + dev: false + /rc-config-loader@4.1.2: resolution: {integrity: sha512-qKTnVWFl9OQYKATPzdfaZIbTxcHziQl92zYSxYC6umhOqyAsoj8H8Gq/+aFjAso68sBdjTz3A7omqeAkkF1MWg==} dependencies: @@ -8787,6 +10694,15 @@ packages: type-fest: 0.6.0 dev: true + /readable-stream@1.1.14: + resolution: {integrity: sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 0.0.1 + string_decoder: 0.10.31 + dev: false + /readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} dependencies: @@ -8797,7 +10713,6 @@ packages: safe-buffer: 5.1.2 string_decoder: 1.1.1 util-deprecate: 1.0.2 - dev: true /readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} @@ -8858,7 +10773,6 @@ packages: call-bind: 1.0.2 define-properties: 1.2.0 functions-have-names: 1.2.3 - dev: true /regexparam@1.3.0: resolution: {integrity: sha512-6IQpFBv6e5vz1QAqI+V4k8P2e/3gRrqfCJ9FI+O1FLQTO+Uz6RXZEZOPmTJ6hlGj7gkERzY5BRCv09whKP96/g==} @@ -8998,6 +10912,13 @@ packages: resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} dev: true + /rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: false + /rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true @@ -9096,7 +11017,6 @@ packages: /safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - dev: true /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} @@ -9135,6 +11055,22 @@ packages: source-map-js: 1.0.2 dev: true + /sax@1.2.4: + resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} + dev: false + + /scroll-into-view-if-needed@2.2.31: + resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==} + dependencies: + compute-scroll-into-view: 1.0.20 + dev: false + + /sdk-base@2.0.1: + resolution: {integrity: sha512-eeG26wRwhtwYuKGCDM3LixCaxY27Pa/5lK4rLKhQa7HBjJ3U3Y+f81MMZQRsDw/8SC2Dao/83yJTXJ8aULuN8Q==} + dependencies: + get-ready: 1.0.0 + dev: false + /seemly@0.3.6: resolution: {integrity: sha512-lEV5VB8BUKTo/AfktXJcy+JeXns26ylbMkIUco8CYREsQijuz4mrXres2Q+vMLdwkuLxJdIPQ8IlCIxLYm71Yw==} dev: false @@ -9157,7 +11093,6 @@ packages: /semver@5.7.1: resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} hasBin: true - dev: true /semver@6.3.0: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} @@ -9192,6 +11127,10 @@ packages: split-string: 3.1.0 dev: true + /setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + dev: false + /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -9260,6 +11199,23 @@ packages: engines: {node: '>=8'} dev: true + /slate-history@0.66.0(slate@0.72.8): + resolution: {integrity: sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==} + peerDependencies: + slate: '>=0.65.3' + dependencies: + is-plain-object: 5.0.0 + slate: 0.72.8 + dev: false + + /slate@0.72.8: + resolution: {integrity: sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==} + dependencies: + immer: 9.0.21 + is-plain-object: 5.0.0 + tiny-warning: 1.0.3 + dev: false + /slice-ansi@3.0.0: resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} engines: {node: '>=8'} @@ -9289,7 +11245,11 @@ packages: /smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - dev: true + + /snabbdom@3.5.1: + resolution: {integrity: sha512-wHMNIOjkm/YNE5EM3RCbr/+DVgPg6AqQAX1eOxO46zYNvCXjKP5Y865tqQj3EXnaMBjkxmQA5jFuDpDK/dbfiA==} + engines: {node: '>=8.3.0'} + dev: false /snapdragon-node@2.1.1: resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} @@ -9323,6 +11283,17 @@ packages: - supports-color dev: true + /socks-proxy-agent@5.0.1: + resolution: {integrity: sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==} + engines: {node: '>= 6'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + socks: 2.7.1 + transitivePeerDependencies: + - supports-color + dev: false + /socks-proxy-agent@7.0.0: resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} engines: {node: '>= 10'} @@ -9340,7 +11311,6 @@ packages: dependencies: ip: 2.0.0 smart-buffer: 4.2.0 - dev: true /sortablejs@1.14.0: resolution: {integrity: sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==} @@ -9398,6 +11368,10 @@ packages: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} deprecated: Please use @jridgewell/sourcemap-codec instead + /spark-md5@3.0.2: + resolution: {integrity: sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==} + dev: false + /spawn-please@2.0.1: resolution: {integrity: sha512-W+cFbZR2q2mMTfjz5ZGvhBAiX+e/zczFCNlbS9mxiSdYswBXwUuBUT+a0urH+xZZa8f/bs0mXHyZsZHR9hKogA==} engines: {node: '>=14'} @@ -9446,6 +11420,10 @@ packages: through: 2.3.8 dev: true + /ssr-window@3.0.0: + resolution: {integrity: sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==} + dev: false + /ssr-window@4.0.2: resolution: {integrity: sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ==} dev: false @@ -9501,7 +11479,26 @@ packages: /statuses@1.5.0: resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} engines: {node: '>= 0.6'} - dev: true + + /statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + dev: false + + /stream-http@2.8.2: + resolution: {integrity: sha512-QllfrBhqF1DPcz46WxKTs6Mz1Bpc+8Qm6vbqOpVav5odAXwbyzwnEczoWqtxrsmlO+cJqtPrp/8gWKWjaKLLlA==} + dependencies: + builtin-status-codes: 3.0.0 + inherits: 2.0.4 + readable-stream: 2.3.8 + to-arraybuffer: 1.0.1 + xtend: 4.0.2 + dev: false + + /stream-wormhole@1.1.0: + resolution: {integrity: sha512-gHFfL3px0Kctd6Po0M8TzEvt3De/xu6cnRrjlfYNhwbhLPLwigI2t1nc6jrzNuaYg5C4YF78PPFuQPzRiqn9ew==} + engines: {node: '>=4.0.0'} + dev: false /strict-uri-encode@1.1.0: resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} @@ -9569,11 +11566,14 @@ packages: es-abstract: 1.21.2 dev: true + /string_decoder@0.10.31: + resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} + dev: false + /string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: safe-buffer: 5.1.2 - dev: true /string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -9658,6 +11658,10 @@ packages: engines: {node: '>=14.16'} dev: true + /strnum@1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + dev: false + /style-to-object@0.3.0: resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==} dependencies: @@ -9821,6 +11825,19 @@ packages: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: false + + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: false + /through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} dependencies: @@ -9836,17 +11853,24 @@ packages: /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - dev: true /tiny-emitter@2.1.0: resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==} dev: false + /tiny-warning@1.0.3: + resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} + dev: false + /titleize@3.0.0: resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} engines: {node: '>=12'} dev: true + /to-arraybuffer@1.0.1: + resolution: {integrity: sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==} + dev: false + /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} @@ -9883,6 +11907,11 @@ packages: safe-regex: 1.1.0 dev: true + /toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + dev: false + /topojson-client@3.1.0: resolution: {integrity: sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==} hasBin: true @@ -9964,6 +11993,13 @@ packages: - supports-color dev: true + /type-check@0.3.2: + resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.1.2 + dev: false + /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -10071,6 +12107,13 @@ packages: jiti: 1.18.2 dev: true + /unescape@1.0.1: + resolution: {integrity: sha512-O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + dev: false + /unicode-canonical-property-names-ecmascript@2.0.0: resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} engines: {node: '>=4'} @@ -10146,6 +12189,11 @@ packages: crypto-random-string: 4.0.0 dev: true + /universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + dev: false + /universalify@2.0.0: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} @@ -10154,7 +12202,6 @@ packages: /unpipe@1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - dev: true /unplugin-icons@0.16.1: resolution: {integrity: sha512-qTunFUkpAyDnwzwV7YV1ZgCWRYfLuURcCurhhXOWMy2ipY88qx1pADvral2hJu4Xymh0X0t3Zcll3BIru2AVLQ==} @@ -10287,13 +12334,35 @@ packages: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.0 - dev: true /urix@0.1.0: resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} deprecated: Please see https://github.com/lydell/urix#deprecated dev: true + /urllib@2.40.0: + resolution: {integrity: sha512-XDZjoijtzsbkXTXgM+A/sJM002nwoYsc46YOYr6MNH2jUUw1nCBf2ywT1WaPsVEWJX4Yr+9isGmYj4+yofFn9g==} + engines: {node: '>= 0.10.0'} + dependencies: + any-promise: 1.3.0 + content-type: 1.0.5 + debug: 2.6.9 + default-user-agent: 1.0.0 + digest-header: 1.1.0 + ee-first: 1.1.1 + formstream: 1.2.0 + humanize-ms: 1.2.1 + iconv-lite: 0.4.24 + ip: 1.1.8 + proxy-agent: 5.0.0 + pump: 3.0.0 + qs: 6.11.1 + statuses: 1.5.0 + utility: 1.18.0 + transitivePeerDependencies: + - supports-color + dev: false + /use@3.1.1: resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} engines: {node: '>=0.10.0'} @@ -10301,13 +12370,28 @@ packages: /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - dev: true + + /utility@1.18.0: + resolution: {integrity: sha512-PYxZDA+6QtvRvm//++aGdmKG/cI07jNwbROz0Ql+VzFV1+Z0Dy55NI4zZ7RHc9KKpBePNFwoErqIuqQv/cjiTA==} + engines: {node: '>= 0.12.0'} + dependencies: + copy-to: 2.0.1 + escape-html: 1.0.3 + mkdirp: 0.5.6 + mz: 2.7.0 + unescape: 1.0.1 + dev: false /utils-merge@1.0.1: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} dev: true + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + dev: false + /validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: @@ -10322,6 +12406,12 @@ packages: builtins: 5.0.1 dev: true + /vanilla-picker@2.12.1: + resolution: {integrity: sha512-2qrEP9VYylKXbyzXKsbu2dferBTvqnlsr29XjHwFE+/MEp0VNj6oEUESLDtKZ7DWzGdSv1x/+ujqFZF+KsO3cg==} + dependencies: + '@sphinxxxx/color-conversion': 2.2.2 + dev: false + /vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} @@ -10459,6 +12549,15 @@ packages: fsevents: 2.3.2 dev: true + /vm2@3.9.17: + resolution: {integrity: sha512-AqwtCnZ/ERcX+AVj9vUsphY56YANXxRuqMb7GsDtAr0m0PcQX3u0Aj3KWiXM0YAHy7i6JEeHrwOnwXbGYgRpAw==} + engines: {node: '>=6.0'} + hasBin: true + dependencies: + acorn: 8.8.2 + acorn-walk: 8.2.0 + dev: false + /vooks@0.2.12(vue@3.2.47): resolution: {integrity: sha512-iox0I3RZzxtKlcgYaStQYKEzWWGAduMmq+jS7OrNdQo1FgGfPMubGL3uGHOU9n97NIvfFDBGnpSvkWyb/NSn/Q==} peerDependencies: @@ -10468,6 +12567,15 @@ packages: vue: 3.2.47 dev: false + /vue-cropperjs@5.0.0(vue@3.2.47): + resolution: {integrity: sha512-RhnC8O33uRZNkn74aiHZwNHnBJOXWlS4P6gsRI0lw4cZlWjKSCywZI9oSI9POlIPI6OYv30jvnHMXGch85tw7w==} + peerDependencies: + vue: '>=3.0.0' + dependencies: + cropperjs: 1.5.13 + vue: 3.2.47 + dev: false + /vue-demi@0.13.11(vue@3.2.47): resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} engines: {node: '>=12'} @@ -10566,6 +12674,15 @@ packages: '@vue/server-renderer': 3.2.47(vue@3.2.47) '@vue/shared': 3.2.47 + /vuedraggable-es@4.1.1(vue@3.2.47): + resolution: {integrity: sha512-F35pjSwC8HS/lnaOd+B59nYR4FZmwuhWAzccK9xftRuWds8SU1TZh5myKVM86j5dFOI7S26O64Kwe7LUHnXjlA==} + peerDependencies: + vue: ^3.2.31 + dependencies: + sortablejs: 1.14.0 + vue: 3.2.47 + dev: false + /vuedraggable@4.1.0(vue@3.2.47): resolution: {integrity: sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==} peerDependencies: @@ -10670,6 +12787,17 @@ packages: string-width: 5.1.2 dev: true + /wildcard@1.1.2: + resolution: {integrity: sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==} + dev: false + + /win-release@1.1.1: + resolution: {integrity: sha512-iCRnKVvGxOQdsKhcQId2PXV1vV3J/sDPXKA4Oe9+Eti2nb2ESEsYHRYls/UjoUW3bIc5ZDO8dTH50A/5iVN+bw==} + engines: {node: '>=0.10.0'} + dependencies: + semver: 5.7.1 + dev: false + /wolfy87-eventemitter@5.2.9: resolution: {integrity: sha512-P+6vtWyuDw+MB01X7UeF8TaHBvbCovf4HPEMF/SV7BdDc1SMTiBy13SRD71lQh4ExFTG1d/WNzDGDCyOKSMblw==} dev: false @@ -10677,7 +12805,6 @@ packages: /word-wrap@1.2.3: resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} engines: {node: '>=0.10.0'} - dev: true /wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} @@ -10858,7 +12985,6 @@ packages: /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - dev: true /write-file-atomic@3.0.3: resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} @@ -10901,10 +13027,26 @@ packages: engines: {node: '>=12'} dev: true + /xml2js@0.4.23: + resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==} + engines: {node: '>=4.0.0'} + dependencies: + sax: 1.2.4 + xmlbuilder: 11.0.1 + dev: false + + /xmlbuilder@11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + dev: false + + /xregexp@2.0.0: + resolution: {integrity: sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==} + dev: false + /xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} - dev: true /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} @@ -10913,7 +13055,6 @@ packages: /yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - dev: true /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} diff --git a/src/App.vue b/src/App.vue index 38294b4c..1b7c4969 100644 --- a/src/App.vue +++ b/src/App.vue @@ -7,7 +7,9 @@ class="h-full" > - + + + diff --git a/src/main.ts b/src/main.ts index a31616d6..d8e53389 100644 --- a/src/main.ts +++ b/src/main.ts @@ -3,7 +3,7 @@ import App from './App.vue'; import AppLoading from './components/common/app-loading.vue'; import { setupDirectives } from './directives'; import { setupRouter } from './router'; -import { setupAssets } from './plugins'; +import { setupAssets, setupFastCrud } from './plugins'; import { setupStore } from './store'; import { setupI18n } from './locales'; @@ -29,6 +29,8 @@ async function setupApp() { setupI18n(app); + setupFastCrud(app); + // mount app app.mount('#app'); } diff --git a/src/plugins/fast-crud/common.scss b/src/plugins/fast-crud/common.scss new file mode 100644 index 00000000..1fc959c0 --- /dev/null +++ b/src/plugins/fast-crud/common.scss @@ -0,0 +1,11 @@ +html:root { + --baseColor: #fff; +} +/* 深色模式 */ +html.dark:root { + --baseColor: #000; +} + +.fs-container { + background-color: var(--baseColor); +} diff --git a/src/plugins/fast-crud/index.tsx b/src/plugins/fast-crud/index.tsx new file mode 100644 index 00000000..8e3bcfff --- /dev/null +++ b/src/plugins/fast-crud/index.tsx @@ -0,0 +1,166 @@ +import type { App } from 'vue'; +import type { FsSetupOptions, PageQuery } from '@fast-crud/fast-crud'; +// eslint-disable-next-line import/order +import { FastCrud } from '@fast-crud/fast-crud'; +import '@fast-crud/fast-crud/dist/style.css'; +import './common.scss'; + +import { + FsExtendsCopyable, + FsExtendsEditor, + FsExtendsJson, + FsExtendsTime, + FsExtendsUploader +} from '@fast-crud/fast-extends'; +import '@fast-crud/fast-extends/dist/style.css'; +import UiNaive from '@fast-crud/ui-naive'; +import axios from 'axios'; +import { mockRequest, request } from '@/service/request'; +import { setupNaive } from '@/plugins/fast-crud/naive'; + +/** + * fast-crud的安装方法 + * 注意:在App.vue中,需要用fs-ui-context组件包裹RouterView,让fs-crud拥有message、notification、dialog的能力 + * @param app + * @param options + */ +function install(app: App, options: any = {}) { + // 安装naive ui 常用组件 + setupNaive(app); + app.use(UiNaive); + app.use(FastCrud, { + i18n: options.i18n, + async dictRequest(context: { url: string }) { + const url = context.url; + let res: any; + if (url && url.startsWith('/mock')) { + // 如果是crud开头的dict请求视为mock + res = await mockRequest.get(url.replace('/mock', '')); + } else { + res = await request.get(url); + } + res = res || {}; + return res.data || []; + }, + /** + * useCrud时会被执行 + * @param context,useCrud的参数 + */ + commonOptions() { + return { + table: { + size: 'small', + pagination: false + }, + search: { + options: { + size: 'medium' + } + }, + rowHandle: { + buttons: { + view: { text: null, icon: 'EyeOutlined', size: 'small' }, + edit: { text: null, icon: 'EditOutlined', size: 'small' }, + remove: { type: 'error', text: null, icon: 'DeleteOutlined', size: 'small' } + }, + dropdown: { + more: { size: 'small' } + } + }, + request: { + // 查询参数转换 + transformQuery: (query: PageQuery) => { + const { page, form, sort } = query; + const limit = page.pageSize; + const currentPage = page.currentPage ?? 1; + const offset = limit * (currentPage - 1); + + return { + page: { + limit, + offset + }, + query: form, + sort: sort || {} + }; + }, + // page请求结果转换 + transformRes: (originPageRes: { res: any; query: any }) => { + const { res } = originPageRes; + const pageSize = res.limit; + let currentPage = res.offset / pageSize; + if (res.offset % pageSize === 0) { + currentPage += 1; + } + return { currentPage, pageSize, ...res }; + } + }, + form: { + display: 'flex', // 表单布局 + labelWidth: '120px' // 表单label宽度 + } + }; + // 从 useCrud({permission}) 里获取permission参数,去设置各个按钮的权限 + // const crudPermission = useCrudPermission(context); + // return crudPermission.merge(opts); + } + } as FsSetupOptions); + + // fast-extends里面的扩展组件均为异步组件,只有在使用时才会被加载,并不会影响首页加载速度 + // 安装editor + app.use(FsExtendsEditor, { + // 编辑器的公共配置 + wangEditor: {} + }); + app.use(FsExtendsJson); + app.use(FsExtendsCopyable); + // 安装uploader 公共参数 + app.use(FsExtendsUploader, { + defaultType: 'form', + form: { + action: 'http://www.docmirror.cn:7070/api/upload/form/upload', + name: 'file', + withCredentials: false, + uploadRequest: async (props: { action: string; file: File; onProgress: (progress: any) => void }) => { + const { action, file, onProgress } = props; + const data = new FormData(); + data.append('file', file); + const res: any = await axios.post(action, data, { + headers: { + 'Content-Type': 'multipart/form-data' + }, + timeout: 60000, + onUploadProgress(progress: any) { + onProgress({ percent: Math.round((progress.loaded / progress.total) * 100) }); + } + }); + // 上传完成后的结果,一般返回个url 或者key,具体看你的后台返回啥 + return res.data.data; + }, + successHandle(ret: string) { + // 上传完成后的结果处理, 此处应转换格式为{url:xxx,key:xxx} + return { + url: `http://www.docmirror.cn:7070${ret}`, + key: ret.replace('/api/upload/form/download?key=', '') + }; + } + } + } as any); + + // 安装editor + app.use(FsExtendsEditor, { + // 编辑器的公共配置 + wangEditor: {} + }); + app.use(FsExtendsJson); + app.use(FsExtendsTime); + app.use(FsExtendsCopyable); +} + +export default { + install +}; + +export function setupFastCrud(app: App, options: any = {}) { + install(app, options); +} diff --git a/src/plugins/fast-crud/naive.ts b/src/plugins/fast-crud/naive.ts new file mode 100644 index 00000000..f3b9f07a --- /dev/null +++ b/src/plugins/fast-crud/naive.ts @@ -0,0 +1,59 @@ +import type { App } from 'vue'; +import * as NaiveUI from 'naive-ui'; + +const naive = NaiveUI.create({ + components: [ + NaiveUI.NInput, + NaiveUI.NButton, + NaiveUI.NForm, + NaiveUI.NFormItem, + NaiveUI.NCheckboxGroup, + NaiveUI.NCheckbox, + NaiveUI.NIcon, + NaiveUI.NDropdown, + NaiveUI.NTooltip, + NaiveUI.NTabs, + NaiveUI.NTabPane, + NaiveUI.NCard, + NaiveUI.NRow, + NaiveUI.NCol, + NaiveUI.NDrawer, + NaiveUI.NDrawerContent, + NaiveUI.NDivider, + NaiveUI.NSwitch, + NaiveUI.NBadge, + NaiveUI.NAlert, + NaiveUI.NTag, + NaiveUI.NProgress, + NaiveUI.NDatePicker, + NaiveUI.NGrid, + NaiveUI.NGridItem, + NaiveUI.NDataTable, + NaiveUI.NPagination, + NaiveUI.NSelect, + NaiveUI.NRadioGroup, + NaiveUI.NRadio, + NaiveUI.NInputGroup, + NaiveUI.NTable, + NaiveUI.NInputNumber, + NaiveUI.NLoadingBarProvider, + NaiveUI.NModal, + NaiveUI.NUpload, + NaiveUI.NTree, + NaiveUI.NSpin, + NaiveUI.NTimePicker, + + // add by fs + NaiveUI.NCascader, + NaiveUI.NRadioButton, + NaiveUI.NTreeSelect, + NaiveUI.NImageGroup, + NaiveUI.NImage, + NaiveUI.NCollapse, + NaiveUI.NCollapseItem + ] +}); + +export function setupNaive(app: App) { + app.use(naive); +} diff --git a/src/plugins/index.ts b/src/plugins/index.ts index 4de580b2..eb4123f6 100644 --- a/src/plugins/index.ts +++ b/src/plugins/index.ts @@ -1,3 +1,5 @@ +import { setupFastCrud } from '@/plugins/fast-crud'; import setupAssets from './assets'; +export { setupFastCrud }; export { setupAssets }; diff --git a/src/router/modules/crud.ts b/src/router/modules/crud.ts new file mode 100644 index 00000000..54966479 --- /dev/null +++ b/src/router/modules/crud.ts @@ -0,0 +1,45 @@ +const component: any = { + name: 'crud', + path: '/crud', + component: 'basic', + meta: { + title: 'CRUD示例', + requiresAuth: true, + icon: 'mdi:table-large', + order: 4 + }, + children: [ + { + name: 'crud_demo', + path: '/crud/demo', + component: 'self', + meta: { + title: '基本示例', + requiresAuth: true, + icon: 'mdi:button-cursor' + } + }, + { + name: 'crud_header_group', + path: '/crud/header_group', + component: 'self', + meta: { + title: '多级表头', + requiresAuth: true, + icon: 'mdi:button-cursor' + } + }, + { + name: 'crud_doc', + path: '/crud/doc', + component: 'self', + meta: { + title: 'FastCrud文档', + requiresAuth: true, + icon: 'logos:vue' + } + } + ] +}; + +export default component; diff --git a/src/typings/page-route.d.ts b/src/typings/page-route.d.ts index 48bdafa1..bceed0a6 100644 --- a/src/typings/page-route.d.ts +++ b/src/typings/page-route.d.ts @@ -30,6 +30,12 @@ declare namespace PageRoute { | 'component_button' | 'component_card' | 'component_table' + | 'crud' + | 'crud_demo' + | 'crud_doc' + | 'crud_header' + | 'crud_header_group' + | 'crud_source' | 'dashboard' | 'dashboard_analysis' | 'dashboard_workbench' @@ -89,6 +95,10 @@ declare namespace PageRoute { | 'component_button' | 'component_card' | 'component_table' + | 'crud_demo' + | 'crud_doc' + | 'crud_header_group' + | 'crud_source' | 'dashboard_analysis' | 'dashboard_workbench' | 'document_naive' diff --git a/src/views/crud/demo/api.ts b/src/views/crud/demo/api.ts new file mode 100644 index 00000000..e212e960 --- /dev/null +++ b/src/views/crud/demo/api.ts @@ -0,0 +1,37 @@ +import { mockRequest } from '@/service/request'; + +const request = mockRequest; +const apiPrefix = '/crud/demo'; + +function resHandle(res: any) { + return res.data; +} +export async function GetList(query: any) { + const res = await request.post(`${apiPrefix}/page`, query); + return resHandle(res); +} + +export async function AddObj(obj: any) { + const res = await request.post(`${apiPrefix}/add`, obj); + return resHandle(res); +} + +export async function UpdateObj(obj: any) { + const res = await request.post(`${apiPrefix}/update`, obj); + return resHandle(res); +} + +export async function DelObj(id: number) { + const res = await request.post(`${apiPrefix}/delete`, { id }); + return resHandle(res); +} + +export async function GetObj(id: number) { + const res = await request.get(`${apiPrefix}/info`, { params: { id } }); + return resHandle(res); +} + +export async function BatchDelete(ids: number[]) { + const res = await request.post(`${apiPrefix}/batchDelete`, { ids }); + return resHandle(res); +} diff --git a/src/views/crud/demo/crud.tsx b/src/views/crud/demo/crud.tsx new file mode 100644 index 00000000..76df52ea --- /dev/null +++ b/src/views/crud/demo/crud.tsx @@ -0,0 +1,114 @@ +import type { AddReq, CreateCrudOptionsRet, DelReq, EditReq } from '@fast-crud/fast-crud'; +import { dict } from '@fast-crud/fast-crud'; +import dayjs from 'dayjs'; +import * as api from './api'; + +export default function createCrudOptions(): CreateCrudOptionsRet { + const pageRequest = async (query: any) => { + return api.GetList(query); + }; + const editRequest = async (ctx: EditReq) => { + const { form, row } = ctx; + form.id = row.id; + return api.UpdateObj(form); + }; + const delRequest = async (ctx: DelReq) => { + const { row } = ctx; + return api.DelObj(row.id); + }; + + const addRequest = async (req: AddReq) => { + const { form } = req; + return api.AddObj(form); + }; + return { + crudOptions: { + container: { + is: 'fs-layout-card' + }, + request: { + pageRequest, + addRequest, + editRequest, + delRequest + }, + columns: { + id: { + title: 'ID', + key: 'id', + type: 'number', + column: { + width: 50 + }, + form: { + show: false + } + }, + datetime: { + title: '时间', + type: 'datetime', + // naive 默认仅支持数字类型时间戳作为日期输入与输出 + // 字符串类型的时间需要转换格式 + valueBuilder(context) { + const { value, row, key } = context; + if (value) { + // naive 默认仅支持时间戳作为日期输入与输出 + row[key] = dayjs(value).valueOf(); + } + }, + valueResolve(context) { + const { value, form, key } = context; + if (value) { + form[key] = dayjs(value).format('YYYY-MM-DD HH:mm:ss'); + } + } + }, + select: { + title: '状态', + search: { show: true }, + type: 'dict-select', + dict: dict({ + url: '/mock/crud/demo/dict' + }) + }, + text: { + title: '文本', + type: 'text', + search: { show: true } + }, + copyable: { + title: '可复制', + type: ['text', 'copyable'], + search: { show: true } + }, + avatar: { + title: '头像裁剪', + type: 'cropper-uploader' + }, + upload: { + title: '文件上传', + type: 'file-uploader' + }, + richtext: { + title: '富文本', + type: 'editor-wang5', + column: { + // cell中不显示 + show: false + }, + form: { + col: { + // 横跨两列 + span: 24 + }, + component: { + style: { + height: '300px' + } + } + } + } + } + } + }; +} diff --git a/src/views/crud/demo/index.vue b/src/views/crud/demo/index.vue new file mode 100644 index 00000000..18ef4d26 --- /dev/null +++ b/src/views/crud/demo/index.vue @@ -0,0 +1,28 @@ + + + diff --git a/src/views/crud/doc/index.vue b/src/views/crud/doc/index.vue new file mode 100644 index 00000000..1d34c90b --- /dev/null +++ b/src/views/crud/doc/index.vue @@ -0,0 +1,13 @@ + + + + + diff --git a/src/views/crud/header_group/api.ts b/src/views/crud/header_group/api.ts new file mode 100644 index 00000000..c11517d2 --- /dev/null +++ b/src/views/crud/header_group/api.ts @@ -0,0 +1,37 @@ +import { mockRequest } from '@/service/request'; + +const request = mockRequest; +const apiPrefix = '/crud/header-group'; + +function resHandle(res: any) { + return res.data; +} +export async function GetList(query: any) { + const res = await request.post(`${apiPrefix}/page`, query); + return resHandle(res); +} + +export async function AddObj(obj: any) { + const res = await request.post(`${apiPrefix}/add`, obj); + return resHandle(res); +} + +export async function UpdateObj(obj: any) { + const res = await request.post(`${apiPrefix}/update`, obj); + return resHandle(res); +} + +export async function DelObj(id: number) { + const res = await request.post(`${apiPrefix}/delete`, { id }); + return resHandle(res); +} + +export async function GetObj(id: number) { + const res = await request.get(`${apiPrefix}/info`, { params: { id } }); + return resHandle(res); +} + +export async function BatchDelete(ids: number[]) { + const res = await request.post(`${apiPrefix}/batchDelete`, { ids }); + return resHandle(res); +} diff --git a/src/views/crud/header_group/crud.tsx b/src/views/crud/header_group/crud.tsx new file mode 100644 index 00000000..e2afaf4a --- /dev/null +++ b/src/views/crud/header_group/crud.tsx @@ -0,0 +1,102 @@ +import type { CreateCrudOptionsRet } from '@fast-crud/fast-crud'; +import { dict } from '@fast-crud/fast-crud'; +import * as api from './api'; + +export default function createCrudOptions(): CreateCrudOptionsRet { + const pageRequest = async (query: any) => { + return api.GetList(query); + }; + const editRequest = async (ctx: { form: any; row: any }) => { + const { form, row } = ctx; + form.id = row.id; + return api.UpdateObj(form); + }; + const delRequest = async (ctx: { row: any }) => { + const { row } = ctx; + return api.DelObj(row.id); + }; + + const addRequest = async (ctx: { form: any }) => { + const { form } = ctx; + return api.AddObj(form); + }; + return { + crudOptions: { + container: { + // is: 'fs-layout-card' + }, + request: { + pageRequest, + addRequest, + editRequest, + delRequest + }, + form: { + layout: 'flex', + labelWidth: '100px' // 表单label宽度 + }, + table: { size: 'small' }, + columns: { + id: { + title: 'ID', + key: 'id', + type: 'number', + column: { + width: 50 + }, + form: { + show: false + } + }, + user: { + title: '用户信息', + children: { + name: { + title: '姓名', + type: 'text' + }, + age: { + title: '年龄', + type: 'number' + } + } + }, + address: { + title: '地址', + children: { + area: { + title: '地区', + children: { + province: { + title: '省', + search: { show: true }, + type: 'dict-select', + dict: dict({ + data: [ + { value: '广东省', label: '广东省' }, + { value: '浙江省', label: '浙江省' } + ] + }) + }, + city: { + title: '市', + search: { show: true }, + type: 'text' + }, + county: { + title: '区', + search: { show: true }, + type: 'text' + } + } + }, + street: { + title: '街道', + type: 'text' + } + } + } + } + } + }; +} diff --git a/src/views/crud/header_group/index.vue b/src/views/crud/header_group/index.vue new file mode 100644 index 00000000..53190cf1 --- /dev/null +++ b/src/views/crud/header_group/index.vue @@ -0,0 +1,32 @@ + + + + diff --git a/src/views/crud/source/index.vue b/src/views/crud/source/index.vue new file mode 100644 index 00000000..39daf373 --- /dev/null +++ b/src/views/crud/source/index.vue @@ -0,0 +1,13 @@ + + + + + diff --git a/src/views/index.ts b/src/views/index.ts index f4b28ffa..69a6bdcf 100644 --- a/src/views/index.ts +++ b/src/views/index.ts @@ -16,6 +16,10 @@ export const views: Record< component_button: () => import('./component/button/index.vue'), component_card: () => import('./component/card/index.vue'), component_table: () => import('./component/table/index.vue'), + crud_demo: () => import('./crud/demo/index.vue'), + crud_doc: () => import('./crud/doc/index.vue'), + crud_header_group: () => import('./crud/header_group/index.vue'), + crud_source: () => import('./crud/source/index.vue'), dashboard_analysis: () => import('./dashboard/analysis/index.vue'), dashboard_workbench: () => import('./dashboard/workbench/index.vue'), document_naive: () => import('./document/naive/index.vue'), From f7090d3dbc2978f899a557b856a143bbe6506e18 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Mon, 22 May 2023 12:12:11 +0800 Subject: [PATCH 2/2] =?UTF-8?q?perf(projects):=20=E4=BC=98=E5=8C=96any?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mock/api/crud/base.ts | 182 +++++++++++++++----------- mock/api/crud/modules/demo.ts | 41 +++--- mock/api/crud/modules/header-group.ts | 53 ++++---- src/plugins/fast-crud/index.tsx | 29 ++-- src/views/crud/demo/api.ts | 12 +- src/views/crud/demo/crud.tsx | 4 +- src/views/crud/header_group/api.ts | 12 +- src/views/crud/header_group/crud.tsx | 22 ++-- 8 files changed, 197 insertions(+), 158 deletions(-) diff --git a/mock/api/crud/base.ts b/mock/api/crud/base.ts index 40bb0055..f9937028 100644 --- a/mock/api/crud/base.ts +++ b/mock/api/crud/base.ts @@ -1,21 +1,34 @@ -// eslint-disable-next-line max-params -function copyList(originList: any, newList: any, options: any, parentId?: number) { +export type ListItem = { + id?: number; + children?: ListItem[]; + [key: string]: any; +}; +export type BaseMockOptions = { name: string; copyTimes?: number; list: ListItem[]; idGenerator: number }; +type CopyListParams = { originList: ListItem[]; newList: ListItem[]; options: BaseMockOptions; parentId?: number }; + +function copyList(props: CopyListParams) { + const { originList, newList, options, parentId } = props; for (const item of originList) { - const newItem = { ...item, parentId }; + const newItem: ListItem = { ...item, parentId }; newItem.id = options.idGenerator; options.idGenerator += 1; newList.push(newItem); if (item.children) { newItem.children = []; - copyList(item.children, newItem.children, options, newItem.id); + copyList({ + originList: item.children, + newList: newItem.children, + options, + parentId: newItem.id + }); } } } -function delById(req: any, list: any[]) { +function delById(req: Service.MockOption, list: any[]) { for (let i = 0; i < list.length; i += 1) { const item = list[i]; - if (item.id === parseInt(req.params.id, 10)) { + if (item.id === parseInt(req.query.id, 10)) { list.splice(i, 1); break; } @@ -25,7 +38,7 @@ function delById(req: any, list: any[]) { } } -function findById(id: number, list: any[]): any { +function findById(id: number, list: ListItem[]): any { for (const item of list) { if (item.id === id) { return item; @@ -39,22 +52,94 @@ function findById(id: number, list: any[]): any { } return null; } + +function matchWithArrayCondition(value: any[], item: ListItem, key: string) { + if (value.length === 0) { + return true; + } + let matched = false; + for (const i of value) { + if (item[key] instanceof Array) { + for (const j of item[key]) { + if (i === j) { + matched = true; + break; + } + } + if (matched) { + break; + } + } else if (item[key] === i || (typeof item[key] === 'string' && item[key].indexOf(`${i}`) >= 0)) { + matched = true; + break; + } + if (matched) { + break; + } + } + return matched; +} + +function matchWithObjectCondition(value: any, item: ListItem, key: string) { + let matched = true; + for (const key2 of Object.keys(value)) { + const v = value[key2]; + if (v && item[key] && v !== item[key][key2]) { + matched = false; + break; + } + } + return matched; +} + +function searchFromList(list: ListItem[], query: any) { + const filter = (item: ListItem) => { + let allFound = true; // 是否所有条件都符合 + for (const key of Object.keys(query)) { + const value = query[key]; + if (value === undefined || value === null || value === '') { + // no nothing + } else if (value instanceof Array) { + // 如果条件中的value是数组的话,只要查到一个就行 + const matched = matchWithArrayCondition(value, item, key); + if (!matched) { + allFound = false; + } + } else if (value instanceof Object) { + // 如果条件中的value是对象的话,需要每个key都匹配 + const matched = matchWithObjectCondition(value, item, key); + if (!matched) { + allFound = false; + } + } else if (item[key] !== value) { + allFound = false; + } + } + return allFound; + }; + return list.filter(filter); +} + export default { - buildMock(options: { name: string; copyTimes: number; list: any[]; idGenerator: number }) { + buildMock(options: BaseMockOptions) { const name = options.name; if (!options.copyTimes) { options.copyTimes = 29; } const list: any[] = []; for (let i = 0; i < options.copyTimes; i += 1) { - copyList(options.list, list, options); + copyList({ + originList: options.list, + newList: list, + options + }); } options.list = list; return [ { path: `/mock/${name}/page`, method: 'post', - handle(req: any) { + handle(req: Service.MockOption) { let data = [...list]; let limit = 20; let offset = 0; @@ -67,74 +152,15 @@ export default { let orderAsc: any; let orderProp: any; if (req && req.body) { - const { page, query, sort } = req.body; + const { page, query } = req.body; if (page.limit) { limit = parseInt(page.limit, 10); } if (page.offset) { offset = parseInt(page.offset, 10); } - orderProp = sort.prop; - orderAsc = sort.asc; - if (Object.keys(query).length > 0) { - // eslint-disable-next-line complexity - data = list.filter(item => { - let allFound = true; // 是否所有条件都符合 - // eslint-disable-next-line guard-for-in - for (const key in query) { - // 判定某一个条件 - const value = query[key]; - if (value === undefined || value === null || value === '') { - // eslint-disable-next-line no-continue - continue; - } - if (value instanceof Array) { - // 如果条件中的value是数组的话,只要查到一个就行 - if (value.length === 0) { - // eslint-disable-next-line no-continue - continue; - } - let found = false; - for (const i of value) { - if (item[key] instanceof Array) { - // eslint-disable-next-line max-depth - for (const j of item[key]) { - // eslint-disable-next-line max-depth - if (i === j) { - found = true; - break; - } - } - // eslint-disable-next-line max-depth - if (found) { - break; - } - } else if (item[key] === i || (typeof item[key] === 'string' && item[key].indexOf(`${i}`) >= 0)) { - found = true; - break; - } - if (found) { - break; - } - } - if (!found) { - allFound = false; - } - } else if (value instanceof Object) { - // eslint-disable-next-line max-depth,guard-for-in - for (const key2 in value) { - const v = value[key2]; - if (v && item[key] && v !== item[key][key2]) { - return false; - } - } - } else if (item[key] !== value) { - allFound = false; - } - } - return allFound; - }); + data = searchFromList(list, query); } } @@ -150,7 +176,7 @@ export default { let ret = 0; if (a[orderProp] > b[orderProp]) { ret = 1; - } else { + } else if (a[orderProp] < b[orderProp]) { ret = -1; } return orderAsc ? ret : -ret; @@ -177,8 +203,8 @@ export default { { path: `/mock/${name}/get`, method: 'get', - handle(req: any) { - let id = req.params.id; + handle(req: Service.MockOption) { + let id = req.query.id; id = parseInt(id, 10); let current = null; for (const item of list) { @@ -197,7 +223,7 @@ export default { { path: `/mock/${name}/add`, method: 'post', - handle(req: any) { + handle(req: Service.MockOption) { req.body.id = options.idGenerator; options.idGenerator += 1; list.unshift(req.body); @@ -211,7 +237,7 @@ export default { { path: `/mock/${name}/update`, method: 'post', - handle(req: any) { + handle(req: Service.MockOption) { const item = findById(req.body.id, list); if (item) { Object.assign(item, req.body); @@ -226,7 +252,7 @@ export default { { path: `/mock/${name}/delete`, method: 'post', - handle(req: any) { + handle(req: Service.MockOption) { delById(req, list); return { code: 200, @@ -238,7 +264,7 @@ export default { { path: `/mock/${name}/batchDelete`, method: 'post', - handle(req: any) { + handle(req: Service.MockOption) { const ids = req.body.ids; for (let i = list.length - 1; i >= 0; i -= 1) { const item = list[i]; diff --git a/mock/api/crud/modules/demo.ts b/mock/api/crud/modules/demo.ts index 662b679e..0f262f04 100644 --- a/mock/api/crud/modules/demo.ts +++ b/mock/api/crud/modules/demo.ts @@ -1,27 +1,28 @@ import type { MethodType, MockMethod } from 'vite-plugin-mock'; +import type { BaseMockOptions } from '../base'; import mockBase from '../base'; +import MockOption = Service.MockOption; -const options: any = { +const options: BaseMockOptions = { name: 'crud/demo', - idGenerator: 0 + idGenerator: 0, + list: [ + { + select: '1', + text: '文本测试', + copyable: '文本可复制', + avatar: 'http://greper.handsfree.work/extends/avatar.jpg', + richtext: '富文本', + datetime: '2023-01-30 11:11:11' + }, + { + select: '2' + }, + { + select: '0' + } + ] }; -const list: any[] = [ - { - select: '1', - text: '文本测试', - copyable: '文本可复制', - avatar: 'http://greper.handsfree.work/extends/avatar.jpg', - richtext: '富文本', - datetime: '2023-01-30 11:11:11' - }, - { - select: '2' - }, - { - select: '0' - } -]; -options.list = list; const mockedApis = mockBase.buildMock(options); const apis: MockMethod[] = [ @@ -46,7 +47,7 @@ for (const mockedApi of mockedApis) { apis.push({ url: mockedApi.path, method: mockedApi.method as MethodType, - response: (request: any) => { + response: (request: MockOption) => { return mockedApi.handle(request); } }); diff --git a/mock/api/crud/modules/header-group.ts b/mock/api/crud/modules/header-group.ts index 15210de8..4c6d63ff 100644 --- a/mock/api/crud/modules/header-group.ts +++ b/mock/api/crud/modules/header-group.ts @@ -1,33 +1,34 @@ import type { MethodType, MockMethod } from 'vite-plugin-mock'; +import type { BaseMockOptions } from '../base'; import mockBase from '../base'; +import MockOption = Service.MockOption; -const options: any = { +const options: BaseMockOptions = { name: 'crud/header-group', - idGenerator: 0 + idGenerator: 0, + list: [ + { + name: '张三', + age: 18, + province: '广东省', + city: '深圳市', + county: '南山区', + street: '粤海街道' + }, + { + name: '李四', + age: 26, + province: '浙江省', + city: '杭州市', + county: '西湖区', + street: '西湖街道' + }, + { + name: '王五', + age: 24 + } + ] }; -const list: any[] = [ - { - name: '张三', - age: 18, - province: '广东省', - city: '深圳市', - county: '南山区', - street: '粤海街道' - }, - { - name: '李四', - age: 26, - province: '浙江省', - city: '杭州市', - county: '西湖区', - street: '西湖街道' - }, - { - name: '王五', - age: 24 - } -]; -options.list = list; const mockedApis = mockBase.buildMock(options); const apis: MockMethod[] = []; @@ -36,7 +37,7 @@ for (const mockedApi of mockedApis) { apis.push({ url: mockedApi.path, method: mockedApi.method as MethodType, - response: (request: any) => { + response: (request: MockOption) => { return mockedApi.handle(request); } }); diff --git a/src/plugins/fast-crud/index.tsx b/src/plugins/fast-crud/index.tsx index 8e3bcfff..c15d1522 100644 --- a/src/plugins/fast-crud/index.tsx +++ b/src/plugins/fast-crud/index.tsx @@ -5,6 +5,7 @@ import { FastCrud } from '@fast-crud/fast-crud'; import '@fast-crud/fast-crud/dist/style.css'; import './common.scss'; +import type { FsUploaderOptions } from '@fast-crud/fast-extends'; import { FsExtendsCopyable, FsExtendsEditor, @@ -15,6 +16,7 @@ import { import '@fast-crud/fast-extends/dist/style.css'; import UiNaive from '@fast-crud/ui-naive'; import axios from 'axios'; +import type { VueI18n } from 'vue-i18n'; import { mockRequest, request } from '@/service/request'; import { setupNaive } from '@/plugins/fast-crud/naive'; @@ -24,7 +26,10 @@ import { setupNaive } from '@/plugins/fast-crud/naive'; * @param app * @param options */ -function install(app: App, options: any = {}) { +export type FsSetupOpts = { + i18n?: VueI18n; +}; +function install(app: App, options: FsSetupOpts = {}) { // 安装naive ui 常用组件 setupNaive(app); app.use(UiNaive); @@ -32,7 +37,7 @@ function install(app: App, options: any = {}) { i18n: options.i18n, async dictRequest(context: { url: string }) { const url = context.url; - let res: any; + let res: Service.SuccessResult | Service.FailedResult; if (url && url.startsWith('/mock')) { // 如果是crud开头的dict请求视为mock res = await mockRequest.get(url.replace('/mock', '')); @@ -44,7 +49,6 @@ function install(app: App, options: any = {}) { }, /** * useCrud时会被执行 - * @param context,useCrud的参数 */ commonOptions() { return { @@ -85,7 +89,7 @@ function install(app: App, options: any = {}) { }; }, // page请求结果转换 - transformRes: (originPageRes: { res: any; query: any }) => { + transformRes: originPageRes => { const { res } = originPageRes; const pageSize = res.limit; let currentPage = res.offset / pageSize; @@ -115,29 +119,29 @@ function install(app: App, options: any = {}) { app.use(FsExtendsJson); app.use(FsExtendsCopyable); // 安装uploader 公共参数 - app.use(FsExtendsUploader, { + const uploaderOptions: FsUploaderOptions = { defaultType: 'form', form: { action: 'http://www.docmirror.cn:7070/api/upload/form/upload', name: 'file', withCredentials: false, - uploadRequest: async (props: { action: string; file: File; onProgress: (progress: any) => void }) => { + uploadRequest: async props => { const { action, file, onProgress } = props; const data = new FormData(); data.append('file', file); - const res: any = await axios.post(action, data, { + const res = await axios.post(action, data, { headers: { 'Content-Type': 'multipart/form-data' }, timeout: 60000, - onUploadProgress(progress: any) { - onProgress({ percent: Math.round((progress.loaded / progress.total) * 100) }); + onUploadProgress(progress) { + onProgress({ percent: Math.round((progress.loaded / progress.total!) * 100) }); } }); // 上传完成后的结果,一般返回个url 或者key,具体看你的后台返回啥 return res.data.data; }, - successHandle(ret: string) { + async successHandle(ret: string) { // 上传完成后的结果处理, 此处应转换格式为{url:xxx,key:xxx} return { url: `http://www.docmirror.cn:7070${ret}`, @@ -145,7 +149,8 @@ function install(app: App, options: any = {}) { }; } } - } as any); + }; + app.use(FsExtendsUploader, uploaderOptions); // 安装editor app.use(FsExtendsEditor, { @@ -161,6 +166,6 @@ export default { install }; -export function setupFastCrud(app: App, options: any = {}) { +export function setupFastCrud(app: App, options: FsSetupOpts = {}) { install(app, options); } diff --git a/src/views/crud/demo/api.ts b/src/views/crud/demo/api.ts index e212e960..38914e25 100644 --- a/src/views/crud/demo/api.ts +++ b/src/views/crud/demo/api.ts @@ -1,22 +1,28 @@ +import type { UserPageQuery } from '@fast-crud/fast-crud'; import { mockRequest } from '@/service/request'; const request = mockRequest; const apiPrefix = '/crud/demo'; +export type DemoRecord = { + id: number; + [key: string]: any; +}; + function resHandle(res: any) { return res.data; } -export async function GetList(query: any) { +export async function GetList(query: UserPageQuery) { const res = await request.post(`${apiPrefix}/page`, query); return resHandle(res); } -export async function AddObj(obj: any) { +export async function AddObj(obj: DemoRecord) { const res = await request.post(`${apiPrefix}/add`, obj); return resHandle(res); } -export async function UpdateObj(obj: any) { +export async function UpdateObj(obj: DemoRecord) { const res = await request.post(`${apiPrefix}/update`, obj); return resHandle(res); } diff --git a/src/views/crud/demo/crud.tsx b/src/views/crud/demo/crud.tsx index 76df52ea..e3db8760 100644 --- a/src/views/crud/demo/crud.tsx +++ b/src/views/crud/demo/crud.tsx @@ -1,10 +1,10 @@ -import type { AddReq, CreateCrudOptionsRet, DelReq, EditReq } from '@fast-crud/fast-crud'; +import type { AddReq, CreateCrudOptionsRet, DelReq, EditReq, UserPageQuery, UserPageRes } from '@fast-crud/fast-crud'; import { dict } from '@fast-crud/fast-crud'; import dayjs from 'dayjs'; import * as api from './api'; export default function createCrudOptions(): CreateCrudOptionsRet { - const pageRequest = async (query: any) => { + const pageRequest = async (query: UserPageQuery): Promise => { return api.GetList(query); }; const editRequest = async (ctx: EditReq) => { diff --git a/src/views/crud/header_group/api.ts b/src/views/crud/header_group/api.ts index c11517d2..387a93f0 100644 --- a/src/views/crud/header_group/api.ts +++ b/src/views/crud/header_group/api.ts @@ -1,22 +1,28 @@ +import type { UserPageQuery } from '@fast-crud/fast-crud'; import { mockRequest } from '@/service/request'; const request = mockRequest; const apiPrefix = '/crud/header-group'; +export type HeaderGroupRecord = { + id: number; + [key: string]: any; +}; + function resHandle(res: any) { return res.data; } -export async function GetList(query: any) { +export async function GetList(query: UserPageQuery) { const res = await request.post(`${apiPrefix}/page`, query); return resHandle(res); } -export async function AddObj(obj: any) { +export async function AddObj(obj: HeaderGroupRecord) { const res = await request.post(`${apiPrefix}/add`, obj); return resHandle(res); } -export async function UpdateObj(obj: any) { +export async function UpdateObj(obj: HeaderGroupRecord) { const res = await request.post(`${apiPrefix}/update`, obj); return resHandle(res); } diff --git a/src/views/crud/header_group/crud.tsx b/src/views/crud/header_group/crud.tsx index e2afaf4a..880a4cb8 100644 --- a/src/views/crud/header_group/crud.tsx +++ b/src/views/crud/header_group/crud.tsx @@ -1,22 +1,22 @@ -import type { CreateCrudOptionsRet } from '@fast-crud/fast-crud'; -import { dict } from '@fast-crud/fast-crud'; +import type { CreateCrudOptionsRet, UserPageQuery, UserPageRes } from '@fast-crud/fast-crud'; +import type { HeaderGroupRecord } from './api'; import * as api from './api'; export default function createCrudOptions(): CreateCrudOptionsRet { - const pageRequest = async (query: any) => { + const pageRequest = async (query: UserPageQuery): Promise => { return api.GetList(query); }; - const editRequest = async (ctx: { form: any; row: any }) => { + const editRequest = async (ctx: { form: HeaderGroupRecord; row: HeaderGroupRecord }) => { const { form, row } = ctx; form.id = row.id; return api.UpdateObj(form); }; - const delRequest = async (ctx: { row: any }) => { + const delRequest = async (ctx: { row: HeaderGroupRecord }) => { const { row } = ctx; return api.DelObj(row.id); }; - const addRequest = async (ctx: { form: any }) => { + const addRequest = async (ctx: { form: HeaderGroupRecord }) => { const { form } = ctx; return api.AddObj(form); }; @@ -69,14 +69,8 @@ export default function createCrudOptions(): CreateCrudOptionsRet { children: { province: { title: '省', - search: { show: true }, - type: 'dict-select', - dict: dict({ - data: [ - { value: '广东省', label: '广东省' }, - { value: '浙江省', label: '浙江省' } - ] - }) + type: 'text', + search: { show: true } }, city: { title: '市',