diff --git a/src/dashboard-front/package.json b/src/dashboard-front/package.json index 71a80028f..ad9a87a37 100644 --- a/src/dashboard-front/package.json +++ b/src/dashboard-front/package.json @@ -28,18 +28,20 @@ "@blueking/platform-config": "^1.0.3", "@blueking/release-note": "0.0.1-beta.14", "@vueuse/core": "^11.0.3", + "@vueuse/integrations": "^11.0.3", "art-template": "^4.13.2", "bkui-vue": "1.0.3-beta.58", + "change-case": "^5", "connect-history-api-fallback": "^2.0.0", "cookie": "^0.5.0", "cookie-parser": "^1.4.5", "cross-env": "^7.0.3", - "dayjs": "^1.11.2", + "dayjs": "^1.11.12", "echarts": "^4.6.0", "eslint": "~7.30.0", - "express": "^4.18.2", + "express": "^4.19.2", "express-art-template": "^1.0.1", - "highlight.js": "^11.9.0", + "highlight.js": "^11.10.0", "js-cookie": "^3.0.5", "js-yaml": "^4.1.0", "jsonpath-plus": "^9.0.0", @@ -50,13 +52,13 @@ "moment": "^2.29.4", "monaco-editor": "^0.44.0", "monaco-editor-webpack-plugin": "^7.0.0", - "pinia": "^2.0.23", + "pinia": "^2.2.2", "request": "^2.88.2", - "semver": "^7.6.0", + "semver": "^7.6.3", "transliteration": "^2.3.5", - "vue": "^3.4.27", - "vue-i18n": "^9.5.0", - "vue-router": "^4.1.6" + "vue": "^3.4.38", + "vue-i18n": "^9.14.0", + "vue-router": "^4.4.3" }, "devDependencies": { "@blueking/babel-preset-bk": "2.1.0-beta.10", @@ -67,29 +69,29 @@ "@types/echarts": "^4.9.22", "@types/js-cookie": "^3.0.6", "@types/js-yaml": "^4.0.9", - "@types/lodash": "^4.14.201", + "@types/lodash": "^4.17.7", "@types/markdown-it": "^13.0.7", "@types/node": "^20.6.3", "@typescript-eslint/eslint-plugin": "^6.19.1", "@typescript-eslint/parser": "^6.20.0", - "enhanced-resolve": "^5.10.0", + "enhanced-resolve": "^5.17.1", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-vue": "^9.20.1", + "eslint-plugin-vue": "^9.27.0", "less": "^4.2.0", "less-loader": "^12.2.0", - "postcss": "~8.4.16", + "postcss": "^8.4.41", "postcss-import": "^15.0.0", "postcss-mixins": "^9.0.4", - "postcss-nested": "^6.0.0", + "postcss-nested": "^6.2.0", "postcss-nested-ancestors": "^3.0.0", "postcss-preset-env": "^7.8.2", "postcss-simple-vars": "^7.0.0", "postcss-url": "^10.1.3", - "sass": "^1.52.3", + "sass": "^1.77.8", "sass-loader": "^13.0.0", "ts-loader": "^9.5.1", - "typescript": "5.4.5", - "vue-eslint-parser": "^9.4.2" + "typescript": "^5.5.4", + "vue-eslint-parser": "^9.4.3" }, "engines": { "node": ">= 14.16.1", diff --git a/src/dashboard-front/src/app.vue b/src/dashboard-front/src/app.vue index b05cd3958..c9f285cd7 100644 --- a/src/dashboard-front/src/app.vue +++ b/src/dashboard-front/src/app.vue @@ -184,39 +184,46 @@ const headerList = computed(() => ([ link: '', }, { - name: t('网关API文档'), + name: t('API 文档'), id: 3, - url: 'apigwDoc', + url: 'apiDocs', enabled: true, link: '', }, - { - name: t('组件API文档'), - id: 4, - url: 'componentDoc', - enabled: user.featureFlags?.MENU_ITEM_ESB_API_DOC, - link: '', - }, - { - name: t('网关API SDK'), - id: 5, - params: { - type: 'apigateway', - }, - url: 'apigwSDK', - enabled: user.featureFlags?.ENABLE_SDK, - link: '', - }, - { - name: t('组件API SDK'), - id: 6, - params: { - type: 'esb', - }, - url: 'esbSDK', - enabled: user.featureFlags?.ENABLE_SDK, - link: '', - }, + // { + // name: t('网关API文档'), + // id: 3, + // url: 'apigwDoc', + // enabled: true, + // link: '', + // }, + // { + // name: t('组件API文档'), + // id: 4, + // url: 'componentDoc', + // enabled: user.featureFlags?.MENU_ITEM_ESB_API_DOC, + // link: '', + // }, + // { + // name: t('网关API SDK'), + // id: 5, + // params: { + // type: 'apigateway', + // }, + // url: 'apigwSDK', + // enabled: user.featureFlags?.ENABLE_SDK, + // link: '', + // }, + // { + // name: t('组件API SDK'), + // id: 6, + // params: { + // type: 'esb', + // }, + // url: 'esbSDK', + // enabled: user.featureFlags?.ENABLE_SDK, + // link: '', + // }, ])); const systemCls = ref('mac'); @@ -339,7 +346,7 @@ const goPage = (routeName: string) => { router.push({ name: routeName, params: { - id: ['home', 'apigwDoc'].includes(routeName) ? '' : apigwId.value, + id: ['home', 'apigwDoc', 'apiDocs'].includes(routeName) ? '' : apigwId.value, }, }); } diff --git a/src/dashboard-front/src/css/common.css b/src/dashboard-front/src/css/common.css index 7a3b62d29..113626bce 100644 --- a/src/dashboard-front/src/css/common.css +++ b/src/dashboard-front/src/css/common.css @@ -193,6 +193,9 @@ .mb20 { margin-bottom: 20px !important; } +.mb24 { + margin-bottom: 24px !important; +} .mb25 { margin-bottom: 25px !important; } @@ -214,6 +217,9 @@ .ml0 { margin-left: 0px !important; } +.ml4 { + margin-left: 4px !important; +} .ml5 { margin-left: 5px !important; } @@ -229,6 +235,9 @@ .ml20 { margin-left: 20px !important; } +.ml24 { + margin-left: 24px !important; +} .ml25 { margin-left: 25px !important; } @@ -268,6 +277,9 @@ .mr20 { margin-right: 20px !important; } +.mr24 { + margin-right: 24px !important; +} .mr25 { margin-right: 25px !important; } @@ -394,6 +406,9 @@ .pl5 { padding-left: 5px !important; } +.pl8 { + padding-left: 8px !important; +} .pl10 { padding-left: 10px !important; } @@ -427,6 +442,9 @@ .pr5 { padding-right: 5px !important; } +.pr8 { + padding-right: 8px !important; +} .pr10 { padding-right: 10px !important; } @@ -492,6 +510,10 @@ width: 700px !important; } +.fw-normal { + font-weight: normal; +} + .fw700{ font-weight: 700; } diff --git a/src/dashboard-front/src/hooks/use-max-table-limit.ts b/src/dashboard-front/src/hooks/use-max-table-limit.ts new file mode 100644 index 000000000..7eb13ebb7 --- /dev/null +++ b/src/dashboard-front/src/hooks/use-max-table-limit.ts @@ -0,0 +1,15 @@ +/** + * @description 获取表格最大显示行数 + * @param {Number} heightTaken 已被占用不能用来展示表格行的高度,单位 px + * @param {Number} lineHeight 单行表格高度,单位 px + * @returns {Number} 最大显示行数, 最小为 1 + */ +import { useWindowSize } from '@vueuse/core'; +import { toValue } from 'vue'; + +export default function useMaxTableLimit(heightTaken = 347, lineHeight = 42) { + const viewportHeight = toValue(useWindowSize().height); + const heightToUse = viewportHeight - heightTaken; + const limit = Math.floor(heightToUse / lineHeight); + return limit > 0 ? limit : 1; +} diff --git a/src/dashboard-front/src/language/lang.ts b/src/dashboard-front/src/language/lang.ts index d53081e05..21e8ce52d 100644 --- a/src/dashboard-front/src/language/lang.ts +++ b/src/dashboard-front/src/language/lang.ts @@ -690,7 +690,9 @@ const lang: ILANG = { '发布状态': ['Release Status'], '查看资源': ['View'], '克隆': ['Clone'], - '删除资源后,需要生成新的版本,并发布到目标环境才能生效': ['After deletion, a new version needs to be generated and released to the target stage to take effect'], + // 以下行有重复,暂时注释掉 + // '删除资源后,需要生成新的版本,并发布到目标环境才能生效': + // ['After deletion, a new version needs to be generated and released to the target stage to take effect'], '请选择导出的格式': ['Select export format'], '选择全部资源': ['Select all resources'], '已选择全部资源': ['Selected all resources'], @@ -1140,6 +1142,14 @@ const lang: ILANG = { '网关API文档': ['Gateway API Doc'], '组件API SDK': ['Component API SDK'], '网关API SDK': ['Gateway API SDK'], + '组件 API 文档': ['Component API Doc'], + '网关 API 文档': ['Gateway API Doc'], + '没有对应文档': ['No Doc'], + '组件 API SDK': ['Component API SDK'], + '网关 API SDK': ['Gateway API SDK'], + '网关 API SDK: {name}': ['Gateway API SDK: {name}'], + '查看 SDK': ['Check SDK'], + '下载 SDK': ['Download SDK'], '上下结构无侧栏导航': ['Top-down Structure Without Sidebar Navigation'], '跳转到 PC 端': ['Switch to PC Version'], '跳转到移动端': ['Switch to Mobile Version'], @@ -1163,6 +1173,7 @@ const lang: ILANG = { '返回首页': ['Back to home'], '默认': ['Default'], '应用访问该网关API时,是否需提供应用认证信息': ['Whether the app needs to provide app authentication when accessing the API'], + '应用访问该网关API时,是否需要提供用户认证信息': ['Whether the app needs to provide user authentication when accessing the API'], '应用访问该组件API时,是否需要提供用户认证信息': ['Whether the app needs to provide user authentication when accessing the API'], '是否需申请权限': ['Permission Required'], '应用访问该网关API前,是否需要在开发者中心申请该网关API权限': ['Whether the app needs to apply for API permission in the Developer Center before accessing the API'], @@ -1179,6 +1190,8 @@ const lang: ILANG = { '查看': ['View'], '未生成-doc': ['No SDK'], '若资源版本对应的SDK未生成,可联系网关负责人生成SDK': ['If the SDK corresponding to the resource version is not generated, you can contact the gateway maintainers to generate the SDK'], + 'SDK未生成,可联系负责人生成SDK': ['SDK not generated, contact maintainers to generate it'], + '{lang} SDK未生成,可联系负责人生成SDK': ['{lang} SDK not generated, contact maintainers to generate it'], '网关API资源版本对应的SDK': ['The SDK corresponding to the resource version'], '所有系统': ['All Systems'], 'API 列表': ['APIs'], @@ -1192,8 +1205,11 @@ const lang: ILANG = { '网关最新SDK,对应已生成SDK的最新资源版本': ['The latest SDK of the gateway, corresponding to the latest resource version of the generated SDK'], 'SDK版本': ['Version'], 'SDK地址': ['URL'], - '在{resourceLength}个资源中搜索...': ['Search in {resourceLength} resources'], + '在{resourceLength}个{type}中搜索...': ['Search in {resourceLength} {type}'], 'SDK使用样例': ['SDK Usage Sample'], + 'SDK 使用说明': ['SDK Usage'], + 'SDK 包名称': ['SDK Package Name'], + 'SDK 最新版本': ['SDK Latest Version'], '网关当前环境【{curStageText}】对应的资源版本未生成 SDK,可联系网关负责人生成 SDK': ['Gateway resource version corresponding to the stage [{curStageText}] does not generate SDK, you can contact the gateway maintainers to generate SDK'], 'SDK及示例': ['SDK & Sample'], 'SDK信息-doc': ['SDK'], diff --git a/src/dashboard-front/src/router/index.ts b/src/dashboard-front/src/router/index.ts index f8566e63b..45fe17283 100644 --- a/src/dashboard-front/src/router/index.ts +++ b/src/dashboard-front/src/router/index.ts @@ -8,6 +8,8 @@ import globalConfig from '@/constant/config'; const { t } = i18n.global; const Home = () => import(/* webpackChunkName: "Home" */ '@/views/home.vue'); +const ApiDocs = () => import(/* webpackChunkName: "ApiDocs" */ '@/views/apiDocs/index.vue'); +const APIDocDetail = () => import(/* webpackChunkName: "ApiDocDetail" */ '@/views/apiDocs/doc-detail.vue'); const ApigwDocs = () => import(/* webpackChunkName: "ApigwDocs" */ '@/views/apigwDocs/index.vue'); const ApigwAPIDetail = () => import(/* webpackChunkName: "apigw-doc" */ '@/views/apigwDocs/components/detail.vue'); const ApigwAPIDetailIntro = () => import(/* webpackChunkName: "apigw-doc" */ '@/views/apigwDocs/components/intro.vue'); @@ -319,6 +321,27 @@ const routes: RouteRecordRaw[] = [ name: 'docsMain', component: docsComponent, children: [ + { + path: 'apigw-api/:curTab?', + name: 'apiDocs', + component: ApiDocs, + meta: { + matchRoute: 'apiDocs', + topMenu: 'apiDocs', + notAppHeader: true, + isDocRouter: true, + isMenu: false, // 是否作为侧边栏菜单 + }, + }, + { + path: ':curTab/:targetName/:componentName?', + name: 'apiDocDetail', + component: APIDocDetail, + meta: { + matchRoute: 'apiDocDetail', + topMenu: 'apiDocs', + }, + }, { path: 'apigw-api', name: 'apigwDoc', diff --git a/src/dashboard-front/src/views/apiDocs/components/component-searcher.vue b/src/dashboard-front/src/views/apiDocs/components/component-searcher.vue new file mode 100644 index 000000000..285b7e0d9 --- /dev/null +++ b/src/dashboard-front/src/views/apiDocs/components/component-searcher.vue @@ -0,0 +1,345 @@ + + + + + diff --git a/src/dashboard-front/src/views/apiDocs/components/doc-detail-main-content.vue b/src/dashboard-front/src/views/apiDocs/components/doc-detail-main-content.vue new file mode 100644 index 000000000..8509af190 --- /dev/null +++ b/src/dashboard-front/src/views/apiDocs/components/doc-detail-main-content.vue @@ -0,0 +1,493 @@ + + + + + diff --git a/src/dashboard-front/src/views/apiDocs/components/doc-detail-side-content.vue b/src/dashboard-front/src/views/apiDocs/components/doc-detail-side-content.vue new file mode 100644 index 000000000..d1efb84d1 --- /dev/null +++ b/src/dashboard-front/src/views/apiDocs/components/doc-detail-side-content.vue @@ -0,0 +1,222 @@ + + + + + diff --git a/src/dashboard-front/src/views/apiDocs/components/doc-detail-side-nav.vue b/src/dashboard-front/src/views/apiDocs/components/doc-detail-side-nav.vue new file mode 100644 index 000000000..37d191ccb --- /dev/null +++ b/src/dashboard-front/src/views/apiDocs/components/doc-detail-side-nav.vue @@ -0,0 +1,79 @@ + + + + + diff --git a/src/dashboard-front/src/views/apiDocs/components/lang-selector.vue b/src/dashboard-front/src/views/apiDocs/components/lang-selector.vue new file mode 100644 index 000000000..b954ebfd0 --- /dev/null +++ b/src/dashboard-front/src/views/apiDocs/components/lang-selector.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/src/dashboard-front/src/views/apiDocs/components/sdk-detail-dialog.vue b/src/dashboard-front/src/views/apiDocs/components/sdk-detail-dialog.vue new file mode 100644 index 000000000..c8e3d760b --- /dev/null +++ b/src/dashboard-front/src/views/apiDocs/components/sdk-detail-dialog.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/dashboard-front/src/views/apiDocs/components/sdk-detail.vue b/src/dashboard-front/src/views/apiDocs/components/sdk-detail.vue new file mode 100644 index 000000000..2d66582f5 --- /dev/null +++ b/src/dashboard-front/src/views/apiDocs/components/sdk-detail.vue @@ -0,0 +1,197 @@ + + + + + diff --git a/src/dashboard-front/src/views/apiDocs/components/sdk-instruction-content.vue b/src/dashboard-front/src/views/apiDocs/components/sdk-instruction-content.vue new file mode 100644 index 000000000..63318d321 --- /dev/null +++ b/src/dashboard-front/src/views/apiDocs/components/sdk-instruction-content.vue @@ -0,0 +1,368 @@ + + + + + diff --git a/src/dashboard-front/src/views/apiDocs/components/sdk-instruction-slider.vue b/src/dashboard-front/src/views/apiDocs/components/sdk-instruction-slider.vue new file mode 100644 index 000000000..68be16fa7 --- /dev/null +++ b/src/dashboard-front/src/views/apiDocs/components/sdk-instruction-slider.vue @@ -0,0 +1,39 @@ + + + + + diff --git a/src/dashboard-front/src/views/apiDocs/doc-detail.vue b/src/dashboard-front/src/views/apiDocs/doc-detail.vue new file mode 100644 index 000000000..c1da755c9 --- /dev/null +++ b/src/dashboard-front/src/views/apiDocs/doc-detail.vue @@ -0,0 +1,675 @@ + + + + + diff --git a/src/dashboard-front/src/views/apiDocs/index.vue b/src/dashboard-front/src/views/apiDocs/index.vue new file mode 100644 index 000000000..1a77f84be --- /dev/null +++ b/src/dashboard-front/src/views/apiDocs/index.vue @@ -0,0 +1,656 @@ + + + + + diff --git a/src/dashboard-front/src/views/apiDocs/types.d.ts b/src/dashboard-front/src/views/apiDocs/types.d.ts new file mode 100644 index 000000000..ef3ea0771 --- /dev/null +++ b/src/dashboard-front/src/views/apiDocs/types.d.ts @@ -0,0 +1,129 @@ +type TabType = 'apigw' | 'component'; +type LanguageType = 'python' | 'java'; + +interface INavItem { + id: number | string; + name: string; +} + +// 网关类型 + +interface IApiGatewayBasics { + id: number; + name: string; + description: string; + maintainers: string[]; + is_official: boolean; + api_url: string; + sdks?: IApiGatewaySdk[]; +} + +interface IApiGatewaySdkDoc { + language: LanguageType; + resource_version: IResourceVersion; + sdk: IApiGatewaySdk; + stage: { id: number, name: string } +} + +interface IApiGatewaySdk { + language: LanguageType; + name: string; + version: string; + url: string; + install_command: string; +} + +interface IResourceVersion { + id: number; + version: string; +} + +interface IResource { + id: number; + name: string; + description: string; + method: string; + path: string; + verified_user_required: boolean; + verified_app_required: boolean; + resource_perm_required: boolean; + allow_apply_permission: boolean; + labels: string[]; +} + +interface IStage { + id: number; + name: string; + description: string; +} + +// 组件类型 + +interface IBoard { + board: string; + board_label: string; + categories: ICategory[]; + sdk?: IComponentSdk; +} + +interface ICategory { + id: string; + name: string; + systems: ISystem[]; + _navId?: string; +} + +interface ISystem { + name: string; + description: string; +} + +interface ISystemBasics { + name: string; + description: string; + comment: string; + maintainers: string[]; +} + +interface IComponent { + id: number; + name: string; + description: string; + verified_app_required: boolean; + verified_user_required: boolean; + component_permission_required: boolean; +} + +interface IComponentSdk { + board_label: string; + sdk_name: string; + sdk_description: string; + sdk_version_number: string; + sdk_download_url: string; + sdk_install_command: string; + language: LanguageType; +} + +// 其他 + +interface ISdk extends Partial, Partial { +} + +export { + IApiGatewayBasics, + IApiGatewaySdk, + IApiGatewaySdkDoc, + IBoard, + ICategory, + IComponent, + IComponentSdk, + INavItem, + IResource, + IResourceVersion, + ISdk, + IStage, + ISystem, + ISystemBasics, + LanguageType, + TabType, +}; diff --git a/src/dashboard-front/src/views/apigwDocs/components/doc.vue b/src/dashboard-front/src/views/apigwDocs/components/doc.vue index 3503c9d4a..ce461a933 100644 --- a/src/dashboard-front/src/views/apigwDocs/components/doc.vue +++ b/src/dashboard-front/src/views/apigwDocs/components/doc.vue @@ -63,7 +63,7 @@ : -
{{curComponent.resource_perm_required ? $t('是') : $t('否')}}
+
{{curComponent.allow_apply_permission ? $t('是') : $t('否')}}
diff --git a/src/dashboard-front/src/views/resource/setting/index.vue b/src/dashboard-front/src/views/resource/setting/index.vue index 9d379f183..1efba5aea 100644 --- a/src/dashboard-front/src/views/resource/setting/index.vue +++ b/src/dashboard-front/src/views/resource/setting/index.vue @@ -504,6 +504,7 @@ import { IDialog, IDropList, MethodsEnum } from '@/types'; import { is24HoursAgo } from '@/common/util'; import { useCommon, useResourceVersion } from '@/store'; import ResourceDocSideSlider from '@/views/components/resource-doc-slider/index.vue'; +import useMaxTableLimit from '@/hooks/use-max-table-limit'; const props = defineProps({ apigwId: { @@ -766,16 +767,7 @@ const labelsList = computed(() => { // 当前视口高度能展示最多多少条表格数据 const maxTableLimit = ref(10); - -// 计算当前视口高度下能展示多少表格行 -const calcMaxTableLimit = (lineHeight = 42, heightTaken = 347) => { - const viewportHeight = window.innerHeight; - const heightToUse = viewportHeight - heightTaken; - const limit = Math.floor(heightToUse / lineHeight); - return limit > 0 ? limit : 1; -}; - -maxTableLimit.value = calcMaxTableLimit(); +maxTableLimit.value = useMaxTableLimit(); // 列表hooks const { diff --git a/src/dashboard-front/src/views/resource/version/components/createSdk.vue b/src/dashboard-front/src/views/resource/version/components/createSdk.vue index ebe91f601..898c3df41 100644 --- a/src/dashboard-front/src/views/resource/version/components/createSdk.vue +++ b/src/dashboard-front/src/views/resource/version/components/createSdk.vue @@ -37,7 +37,7 @@ Python - Golang + Java diff --git a/src/dashboard-front/yarn.lock b/src/dashboard-front/yarn.lock index 961f5dae7..457b2f752 100644 --- a/src/dashboard-front/yarn.lock +++ b/src/dashboard-front/yarn.lock @@ -236,11 +236,21 @@ resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz" integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== +"@babel/helper-string-parser@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d" + integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== + "@babel/helper-validator-identifier@^7.22.20": version "7.22.20" resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== +"@babel/helper-validator-identifier@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== + "@babel/helper-validator-option@^7.23.5": version "7.23.5" resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz" @@ -278,6 +288,13 @@ resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.24.6.tgz" integrity sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q== +"@babel/parser@^7.24.7": + version "7.25.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.3.tgz#91fb126768d944966263f0657ab222a642b82065" + integrity sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw== + dependencies: + "@babel/types" "^7.25.2" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": version "7.23.3" resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz" @@ -1008,6 +1025,15 @@ "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" +"@babel/types@^7.25.2": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.2.tgz#55fb231f7dc958cd69ea141a4c2997e819646125" + integrity sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q== + dependencies: + "@babel/helper-string-parser" "^7.24.8" + "@babel/helper-validator-identifier" "^7.24.7" + to-fast-properties "^2.0.0" + "@blueking/babel-preset-bk@2.1.0-beta.10": version "2.1.0-beta.10" resolved "https://registry.npmjs.org/@blueking/babel-preset-bk/-/babel-preset-bk-2.1.0-beta.10.tgz" @@ -1475,26 +1501,26 @@ resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz" integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== -"@intlify/core-base@9.9.1": - version "9.9.1" - resolved "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.9.1.tgz" - integrity sha512-qsV15dg7jNX2faBRyKMgZS8UcFJViWEUPLdzZ9UR0kQZpFVeIpc0AG7ZOfeP7pX2T9SQ5jSiorq/tii9nkkafA== +"@intlify/core-base@9.14.0": + version "9.14.0" + resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.14.0.tgz#63ce687a6560c0af6a16cb567d9d8a1ea1a5a65e" + integrity sha512-zJn0imh9HIsZZUtt9v8T16PeVstPv6bP2YzlrYJwoF8F30gs4brZBwW2KK6EI5WYKFi3NeqX6+UU4gniz5TkGg== dependencies: - "@intlify/message-compiler" "9.9.1" - "@intlify/shared" "9.9.1" + "@intlify/message-compiler" "9.14.0" + "@intlify/shared" "9.14.0" -"@intlify/message-compiler@9.9.1": - version "9.9.1" - resolved "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.9.1.tgz" - integrity sha512-zTvP6X6HeumHOXuAE1CMMsV6tTX+opKMOxO1OHTCg5N5Sm/F7d8o2jdT6W6L5oHUsJ/vvkGefHIs7Q3hfowmsA== +"@intlify/message-compiler@9.14.0": + version "9.14.0" + resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.14.0.tgz#e767141dd12862b3c1bf02ab5fc4852792812381" + integrity sha512-sXNsoMI0YsipSXW8SR75drmVK56tnJHoYbPXUv2Cf9lz6FzvwsosFm6JtC1oQZI/kU+n7qx0qRrEWkeYFTgETA== dependencies: - "@intlify/shared" "9.9.1" + "@intlify/shared" "9.14.0" source-map-js "^1.0.2" -"@intlify/shared@9.9.1": - version "9.9.1" - resolved "https://registry.npmjs.org/@intlify/shared/-/shared-9.9.1.tgz" - integrity sha512-b3Pta1nwkz5rGq434v0psHwEwHGy1pYCttfcM22IE//K9owbpkEvFptx9VcuRAxjQdrO2If249cmDDjBu5wMDA== +"@intlify/shared@9.14.0": + version "9.14.0" + resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.14.0.tgz#e8fb3693ad4171442cbe6cb8922a9b5a22ffb4ef" + integrity sha512-r+N8KRQL7LgN1TMTs1A2svfuAU0J94Wu9wWdJVJqYsoMMLIeJxrPjazihfHpmJqfgZq0ah3Y9Q4pgWV2O90Fyg== "@jest/schemas@^29.6.3": version "29.6.3" @@ -1779,10 +1805,10 @@ resolved "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.5.tgz" integrity sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw== -"@types/lodash@^4.14.201": - version "4.14.202" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz" - integrity sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ== +"@types/lodash@^4.17.7": + version "4.17.7" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.7.tgz#2f776bcb53adc9e13b2c0dfd493dfcbd7de43612" + integrity sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA== "@types/markdown-it@^13.0.7": version "13.0.7" @@ -2126,6 +2152,17 @@ estree-walker "^2.0.2" source-map-js "^1.2.0" +"@vue/compiler-core@3.4.38": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.38.tgz#326dfe3c92fa2b0f1dc9b39a948a231980253496" + integrity sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A== + dependencies: + "@babel/parser" "^7.24.7" + "@vue/shared" "3.4.38" + entities "^4.5.0" + estree-walker "^2.0.2" + source-map-js "^1.2.0" + "@vue/compiler-dom@3.4.27": version "3.4.27" resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz" @@ -2134,7 +2171,30 @@ "@vue/compiler-core" "3.4.27" "@vue/shared" "3.4.27" -"@vue/compiler-sfc@3.4.27", "@vue/compiler-sfc@^3.4.15": +"@vue/compiler-dom@3.4.38": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.38.tgz#90348fac1130e0bbd408b650635cb626b3b9df06" + integrity sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ== + dependencies: + "@vue/compiler-core" "3.4.38" + "@vue/shared" "3.4.38" + +"@vue/compiler-sfc@3.4.38": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.38.tgz#954c3f6777bbbcca28771ba59b795f12f76ef188" + integrity sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ== + dependencies: + "@babel/parser" "^7.24.7" + "@vue/compiler-core" "3.4.38" + "@vue/compiler-dom" "3.4.38" + "@vue/compiler-ssr" "3.4.38" + "@vue/shared" "3.4.38" + estree-walker "^2.0.2" + magic-string "^0.30.10" + postcss "^8.4.40" + source-map-js "^1.2.0" + +"@vue/compiler-sfc@^3.4.15": version "3.4.27" resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.27.tgz" integrity sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA== @@ -2157,6 +2217,14 @@ "@vue/compiler-dom" "3.4.27" "@vue/shared" "3.4.27" +"@vue/compiler-ssr@3.4.38": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.38.tgz#9ded18f6d9c8b2440039a58492cfff36fa1a7774" + integrity sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw== + dependencies: + "@vue/compiler-dom" "3.4.38" + "@vue/shared" "3.4.38" + "@vue/component-compiler-utils@^3.1.0": version "3.3.0" resolved "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz" @@ -2173,11 +2241,16 @@ optionalDependencies: prettier "^1.18.2 || ^2.0.0" -"@vue/devtools-api@^6.5.0", "@vue/devtools-api@^6.5.1": +"@vue/devtools-api@^6.5.0": version "6.6.1" resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.1.tgz" integrity sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA== +"@vue/devtools-api@^6.6.3": + version "6.6.3" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.6.3.tgz#b23a588154cba8986bba82b6e1d0248bde3fd1a0" + integrity sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw== + "@vue/eslint-config-standard@^8.0.1": version "8.0.1" resolved "https://registry.npmjs.org/@vue/eslint-config-standard/-/eslint-config-standard-8.0.1.tgz" @@ -2199,44 +2272,50 @@ "@typescript-eslint/parser" "^6.7.0" vue-eslint-parser "^9.3.1" -"@vue/reactivity@3.4.27": - version "3.4.27" - resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.27.tgz" - integrity sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA== +"@vue/reactivity@3.4.38": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.38.tgz#ec2d549f4b831cd03d0baabf7d77e840b8536000" + integrity sha512-4vl4wMMVniLsSYYeldAKzbk72+D3hUnkw9z8lDeJacTxAkXeDAP1uE9xr2+aKIN0ipOL8EG2GPouVTH6yF7Gnw== dependencies: - "@vue/shared" "3.4.27" + "@vue/shared" "3.4.38" -"@vue/runtime-core@3.4.27": - version "3.4.27" - resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.27.tgz" - integrity sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA== +"@vue/runtime-core@3.4.38": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.38.tgz#bead9085e9a1c5a446e27d74ffb450f9261cf097" + integrity sha512-21z3wA99EABtuf+O3IhdxP0iHgkBs1vuoCAsCKLVJPEjpVqvblwBnTj42vzHRlWDCyxu9ptDm7sI2ZMcWrQqlA== dependencies: - "@vue/reactivity" "3.4.27" - "@vue/shared" "3.4.27" + "@vue/reactivity" "3.4.38" + "@vue/shared" "3.4.38" -"@vue/runtime-dom@3.4.27": - version "3.4.27" - resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.27.tgz" - integrity sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q== +"@vue/runtime-dom@3.4.38": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.38.tgz#52678ba0b85f94400a0a9c8dd23ddef4dd65657d" + integrity sha512-afZzmUreU7vKwKsV17H1NDThEEmdYI+GCAK/KY1U957Ig2NATPVjCROv61R19fjZNzMmiU03n79OMnXyJVN0UA== dependencies: - "@vue/runtime-core" "3.4.27" - "@vue/shared" "3.4.27" + "@vue/reactivity" "3.4.38" + "@vue/runtime-core" "3.4.38" + "@vue/shared" "3.4.38" csstype "^3.1.3" -"@vue/server-renderer@3.4.27": - version "3.4.27" - resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.27.tgz" - integrity sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA== +"@vue/server-renderer@3.4.38": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.38.tgz#457401ef2b0f969156702061e56915acecc9fe2c" + integrity sha512-NggOTr82FbPEkkUvBm4fTGcwUY8UuTsnWC/L2YZBmvaQ4C4Jl/Ao4HHTB+l7WnFCt5M/dN3l0XLuyjzswGYVCA== dependencies: - "@vue/compiler-ssr" "3.4.27" - "@vue/shared" "3.4.27" + "@vue/compiler-ssr" "3.4.38" + "@vue/shared" "3.4.38" "@vue/shared@3.4.27": version "3.4.27" resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.4.27.tgz" integrity sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA== -"@vueuse/core@^11.0.3": +"@vue/shared@3.4.38": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.38.tgz#552a6770098bfd556fa3e2c686c9d3b4f4cd94c2" + integrity sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw== + +"@vueuse/core@11.0.3", "@vueuse/core@^11.0.3": version "11.0.3" resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-11.0.3.tgz#e5fb5aa6580c6e505cecea43518fcb66cb56a3ef" integrity sha512-RENlh64+SYA9XMExmmH1a3TPqeIuJBNNB/63GT35MZI+zpru3oMRUA6cEFr9HmGqEgUisurwGwnIieF6qu3aXw== @@ -2246,6 +2325,15 @@ "@vueuse/shared" "11.0.3" vue-demi ">=0.14.10" +"@vueuse/integrations@^11.0.3": + version "11.0.3" + resolved "https://registry.yarnpkg.com/@vueuse/integrations/-/integrations-11.0.3.tgz#38c91fe555175a382d43548138fca615fc42a4bf" + integrity sha512-w6CDisaxs19S5Fd+NPPLFaA3GoX5gxuxrbTTBu0EYap7oH13w75L6C/+7e9mcoF9akhcR6GyYajwVMQEjdapJg== + dependencies: + "@vueuse/core" "11.0.3" + "@vueuse/shared" "11.0.3" + vue-demi ">=0.14.10" + "@vueuse/metadata@11.0.3": version "11.0.3" resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-11.0.3.tgz#f3f20066fb5217df24614de92162b65c24475e1b" @@ -2790,6 +2878,24 @@ body-parser@1.20.1: type-is "~1.6.18" unpipe "1.0.0" +body-parser@1.20.2: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + bonjour-service@^1.0.11: version "1.2.1" resolved "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz" @@ -2932,9 +3038,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001578, caniuse-lite@^1.0.30001587: - version "1.0.30001591" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001591.tgz" - integrity sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ== + version "1.0.30001651" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz" + integrity sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -2963,6 +3069,11 @@ chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" +change-case@^5: + version "5.4.4" + resolved "https://registry.yarnpkg.com/change-case/-/change-case-5.4.4.tgz#0d52b507d8fb8f204343432381d1a6d7bff97a02" + integrity sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w== + "chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.3: version "3.6.0" resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" @@ -3157,7 +3268,7 @@ content-disposition@0.5.4: dependencies: safe-buffer "5.2.1" -content-type@~1.0.4: +content-type@~1.0.4, content-type@~1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== @@ -3190,6 +3301,11 @@ cookie@0.5.0, cookie@^0.5.0: resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== + copy-anything@^2.0.1: version "2.0.6" resolved "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz" @@ -3455,10 +3571,10 @@ date-fns@~2.30.0: dependencies: "@babel/runtime" "^7.21.0" -dayjs@^1.11.2: - version "1.11.10" - resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz" - integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ== +dayjs@^1.11.12: + version "1.11.12" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.12.tgz#5245226cc7f40a15bf52e0b99fd2a04669ccac1d" + integrity sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg== debounce@^1.2.1: version "1.2.1" @@ -3729,7 +3845,7 @@ encodeurl@~1.0.2: resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -enhanced-resolve@^5.0.0, enhanced-resolve@^5.10.0, enhanced-resolve@^5.15.0, enhanced-resolve@^5.7.0: +enhanced-resolve@^5.0.0, enhanced-resolve@^5.15.0, enhanced-resolve@^5.7.0: version "5.15.1" resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.1.tgz" integrity sha512-3d3JRbwsCLJsYgvb6NuWEG44jjPSOMuS73L/6+7BZuoKm3W+qXnSoIYVHi8dG7Qcg4inAY4jbzkZ7MnskePeDg== @@ -3737,6 +3853,14 @@ enhanced-resolve@^5.0.0, enhanced-resolve@^5.10.0, enhanced-resolve@^5.15.0, enh graceful-fs "^4.2.4" tapable "^2.2.0" +enhanced-resolve@^5.17.1: + version "5.17.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15" + integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + enquirer@^2.3.5: version "2.4.1" resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz" @@ -4043,7 +4167,7 @@ eslint-plugin-standard@~5.0.0: resolved "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-5.0.0.tgz" integrity sha512-eSIXPc9wBM4BrniMzJRBm2uoVuXz2EPa+NXPk2+itrVt+r5SbKFERx/IgrK/HmfjddyKVz2f+j+7gBRvu19xLg== -eslint-plugin-vue@^9.16.1, eslint-plugin-vue@^9.20.1: +eslint-plugin-vue@^9.16.1: version "9.22.0" resolved "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.22.0.tgz" integrity sha512-7wCXv5zuVnBtZE/74z4yZ0CM8AjH6bk4MQGm7hZjUC2DBppKU5ioeOk5LGSg/s9a1ZJnIsdPLJpXnu1Rc+cVHg== @@ -4056,6 +4180,20 @@ eslint-plugin-vue@^9.16.1, eslint-plugin-vue@^9.20.1: vue-eslint-parser "^9.4.2" xml-name-validator "^4.0.0" +eslint-plugin-vue@^9.27.0: + version "9.27.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.27.0.tgz#c22dae704a03d9ecefa81364ff89f60ce0481f94" + integrity sha512-5Dw3yxEyuBSXTzT5/Ge1X5kIkRTQ3nvBn/VwPwInNiZBSJOO/timWMUaflONnFBzU6NhB68lxnCda7ULV5N7LA== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + globals "^13.24.0" + natural-compare "^1.4.0" + nth-check "^2.1.1" + postcss-selector-parser "^6.0.15" + semver "^7.6.0" + vue-eslint-parser "^9.4.3" + xml-name-validator "^4.0.0" + eslint-scope@5.1.1, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" @@ -4294,7 +4432,7 @@ express-art-template@^1.0.1: resolved "https://registry.npmjs.org/express-art-template/-/express-art-template-1.0.1.tgz" integrity sha512-uHzOOO2uNHelEI520KBvGw0c7Lu4opa7iczkYgHe5AcN1MYEh1ovmis7BMwjyRiJIv2Zt3ovTMko5FiDb/ydWg== -express@^4.17.3, express@^4.18.2: +express@^4.17.3: version "4.18.2" resolved "https://registry.npmjs.org/express/-/express-4.18.2.tgz" integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== @@ -4331,6 +4469,43 @@ express@^4.17.3, express@^4.18.2: utils-merge "1.0.1" vary "~1.1.2" +express@^4.19.2: + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.2" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.6.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + extend@~3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" @@ -4673,7 +4848,7 @@ globals@^11.1.0: resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.19.0, globals@^13.6.0, globals@^13.9.0: +globals@^13.19.0, globals@^13.24.0, globals@^13.6.0, globals@^13.9.0: version "13.24.0" resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== @@ -4823,10 +4998,10 @@ he@1.2.x, he@^1.2.0: resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -highlight.js@^11.9.0: - version "11.9.0" - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-11.9.0.tgz" - integrity sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw== +highlight.js@^11.10.0: + version "11.10.0" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-11.10.0.tgz#6e3600dc4b33d6dc23d5bd94fbf72405f5892b92" + integrity sha512-SYVnVFswQER+zu1laSya563s+F8VDGt7o35d4utbamowvUNLLMovFqwCLSocpZTz3MgaSRA1IbqRWZv97dtErQ== hosted-git-info@^2.1.4: version "2.8.9" @@ -6379,6 +6554,11 @@ picocolors@^1.0.0: resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== +picocolors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== + picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" @@ -6394,13 +6574,13 @@ pify@^4.0.1: resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== -pinia@^2.0.23: - version "2.1.7" - resolved "https://registry.npmjs.org/pinia/-/pinia-2.1.7.tgz" - integrity sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ== +pinia@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/pinia/-/pinia-2.2.2.tgz#dcf576c9a778187d1542c5e6a9f8b8cd5b6aea14" + integrity sha512-ja2XqFWZC36mupU4z1ZzxeTApV7DOw44cV4dhQ9sGwun+N89v/XP7+j7q6TanS1u1tdbK4r+1BUx7heMaIdagA== dependencies: - "@vue/devtools-api" "^6.5.0" - vue-demi ">=0.14.5" + "@vue/devtools-api" "^6.6.3" + vue-demi "^0.14.10" pkg-dir@^7.0.0: version "7.0.0" @@ -6718,12 +6898,12 @@ postcss-nested-ancestors@^3.0.0: escape-string-regexp "^4.0.0" postcss-resolve-nested-selector "^0.1.1" -postcss-nested@^6.0.0: - version "6.0.1" - resolved "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz" - integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== +postcss-nested@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.2.0.tgz#4c2d22ab5f20b9cb61e2c5c5915950784d068131" + integrity sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ== dependencies: - postcss-selector-parser "^6.0.11" + postcss-selector-parser "^6.1.1" postcss-nesting@^10.2.0: version "10.2.0" @@ -6939,6 +7119,14 @@ postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.11, postcss-select cssesc "^3.0.0" util-deprecate "^1.0.2" +postcss-selector-parser@^6.1.1: + version "6.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" + integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + postcss-simple-vars@^7.0.0: version "7.0.1" resolved "https://registry.npmjs.org/postcss-simple-vars/-/postcss-simple-vars-7.0.1.tgz" @@ -6987,7 +7175,7 @@ postcss@^7.0.36: picocolors "^0.2.1" source-map "^0.6.1" -postcss@^8.3.11, postcss@^8.4.19, postcss@^8.4.24, postcss@^8.4.33, postcss@^8.4.38, postcss@~8.4.16: +postcss@^8.3.11, postcss@^8.4.19, postcss@^8.4.24, postcss@^8.4.33, postcss@^8.4.38: version "8.4.38" resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz" integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== @@ -6996,6 +7184,15 @@ postcss@^8.3.11, postcss@^8.4.19, postcss@^8.4.24, postcss@^8.4.33, postcss@^8.4 picocolors "^1.0.0" source-map-js "^1.2.0" +postcss@^8.4.40, postcss@^8.4.41: + version "8.4.41" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.41.tgz#d6104d3ba272d882fe18fc07d15dc2da62fa2681" + integrity sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.1" + source-map-js "^1.2.0" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" @@ -7101,6 +7298,16 @@ raw-body@2.5.1: iconv-lite "0.4.24" unpipe "1.0.0" +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + read-cache@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz" @@ -7376,10 +7583,10 @@ sass-loader@^13.0.0, sass-loader@^13.0.2: dependencies: neo-async "^2.6.2" -sass@^1.52.3: - version "1.71.1" - resolved "https://registry.npmjs.org/sass/-/sass-1.71.1.tgz" - integrity sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg== +sass@^1.77.8: + version "1.77.8" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.77.8.tgz#9f18b449ea401759ef7ec1752a16373e296b52bd" + integrity sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -7439,6 +7646,11 @@ semver@^7.0.0, semver@^7.2.1, semver@^7.3.4, semver@^7.3.5, semver@^7.3.6, semve dependencies: lru-cache "^6.0.0" +semver@^7.6.3: + version "7.6.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + send@0.18.0: version "0.18.0" resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" @@ -8207,11 +8419,16 @@ typed-array-length@^1.0.4: is-typed-array "^1.1.13" possible-typed-array-names "^1.0.0" -typescript@5.4.5, typescript@^5.1.6, typescript@^5.3.2: +typescript@^5.1.6, typescript@^5.3.2: version "5.4.5" resolved "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz" integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== +typescript@^5.5.4: + version "5.5.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" + integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== + uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz" @@ -8345,16 +8562,11 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vue-demi@>=0.14.10: +vue-demi@>=0.14.10, vue-demi@^0.14.10: version "0.14.10" resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.10.tgz#afc78de3d6f9e11bf78c55e8510ee12814522f04" integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg== -vue-demi@>=0.14.5: - version "0.14.7" - resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.7.tgz" - integrity sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA== - vue-eslint-parser@^9.3.1, vue-eslint-parser@^9.4.2: version "9.4.2" resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz" @@ -8368,18 +8580,31 @@ vue-eslint-parser@^9.3.1, vue-eslint-parser@^9.4.2: lodash "^4.17.21" semver "^7.3.6" +vue-eslint-parser@^9.4.3: + version "9.4.3" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz#9b04b22c71401f1e8bca9be7c3e3416a4bde76a8" + integrity sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg== + dependencies: + debug "^4.3.4" + eslint-scope "^7.1.1" + eslint-visitor-keys "^3.3.0" + espree "^9.3.1" + esquery "^1.4.0" + lodash "^4.17.21" + semver "^7.3.6" + vue-hot-reload-api@^2.3.0: version "2.3.4" resolved "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz" integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog== -vue-i18n@^9.5.0: - version "9.9.1" - resolved "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.9.1.tgz" - integrity sha512-xyQ4VspLdNSPTKBFBPWa1tvtj+9HuockZwgFeD2OhxxXuC2CWeNvV4seu2o9+vbQOyQbhAM5Ez56oxUrrnTWdw== +vue-i18n@^9.14.0: + version "9.14.0" + resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.14.0.tgz#d6f1b3d95bfc4f40e630ff9456c78ab5becfd933" + integrity sha512-LxmpRuCt2rI8gqU+kxeflRZMQn4D5+4M3oP3PWZdowW/ePJraHqhF7p4CuaME52mUxdw3Mmy2yAUKgfZYgCRjA== dependencies: - "@intlify/core-base" "9.9.1" - "@intlify/shared" "9.9.1" + "@intlify/core-base" "9.14.0" + "@intlify/shared" "9.14.0" "@vue/devtools-api" "^6.5.0" vue-loader-bk@^15.10.0: @@ -8409,12 +8634,12 @@ vue-loader@^17.3.1: hash-sum "^2.0.0" watchpack "^2.4.0" -vue-router@^4.1.6: - version "4.3.0" - resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.3.0.tgz" - integrity sha512-dqUcs8tUeG+ssgWhcPbjHvazML16Oga5w34uCUmsk7i0BcnskoLGwjpa15fqMr2Fa5JgVBrdL2MEgqz6XZ/6IQ== +vue-router@^4.4.3: + version "4.4.3" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.4.3.tgz#58a39dc804632bfb6d26f052aa8f6718bd130299" + integrity sha512-sv6wmNKx2j3aqJQDMxLFzs/u/mjA9Z5LCgy6BE0f7yFWMjrPLnS/sPNn8ARY/FXw6byV18EFutn5lTO6+UsV5A== dependencies: - "@vue/devtools-api" "^6.5.1" + "@vue/devtools-api" "^6.6.3" vue-style-loader@^4.1.0, vue-style-loader@^4.1.3: version "4.1.3" @@ -8436,16 +8661,16 @@ vue-types@~4.1.1: dependencies: is-plain-object "5.0.0" -vue@^3.4.27: - version "3.4.27" - resolved "https://registry.npmjs.org/vue/-/vue-3.4.27.tgz" - integrity sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA== - dependencies: - "@vue/compiler-dom" "3.4.27" - "@vue/compiler-sfc" "3.4.27" - "@vue/runtime-dom" "3.4.27" - "@vue/server-renderer" "3.4.27" - "@vue/shared" "3.4.27" +vue@^3.4.38: + version "3.4.38" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.38.tgz#0ccbb64ed03ef3c4ab73e540793290b18e7c4236" + integrity sha512-f0ZgN+mZ5KFgVv9wz0f4OgVKukoXtS3nwET4c2vLBGQR50aI8G0cqbFtLlX9Yiyg3LFGBitruPHt2PxwTduJEw== + dependencies: + "@vue/compiler-dom" "3.4.38" + "@vue/compiler-sfc" "3.4.38" + "@vue/runtime-dom" "3.4.38" + "@vue/server-renderer" "3.4.38" + "@vue/shared" "3.4.38" watchpack@^2.4.0: version "2.4.0"