From 840a7b7c73e5a802f5538fdc0285b67790a932c7 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Sun, 6 Apr 2025 18:06:21 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E6=8F=92=E4=BB=B6=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/ui/certd-client/package.json | 12 +- .../src/router/source/modules/certd.ts | 80 +++---- .../src/router/source/modules/sys.ts | 93 ++++---- packages/ui/certd-client/src/style/certd.less | 2 +- .../src/views/certd/cname/record/crud.tsx | 86 +++---- .../src/views/certd/open/openkey/crud.tsx | 76 +++---- .../certd-client/src/views/sys/plugin/api.ts | 20 +- .../sys/plugin/components/plugin-input.vue | 77 +++++++ .../src/views/sys/plugin/crud.tsx | 141 +++++++++++- .../src/views/sys/plugin/edit.vue | 110 +++++++++ .../src/views/sys/suite/trade/crud.tsx | 104 ++++----- .../user/pipeline/plugin-controller.ts | 16 ++ .../modules/plugin/service/plugin-service.ts | 5 + pnpm-lock.yaml | 214 +++++++++++++----- 14 files changed, 731 insertions(+), 305 deletions(-) create mode 100644 packages/ui/certd-client/src/views/sys/plugin/components/plugin-input.vue create mode 100644 packages/ui/certd-client/src/views/sys/plugin/edit.vue diff --git a/packages/ui/certd-client/package.json b/packages/ui/certd-client/package.json index 36cb3f183..b25b8c22b 100644 --- a/packages/ui/certd-client/package.json +++ b/packages/ui/certd-client/package.json @@ -29,10 +29,10 @@ "@aws-sdk/client-s3": "^3.535.0", "@aws-sdk/s3-request-presigner": "^3.535.0", "@ctrl/tinycolor": "^4.1.0", - "@fast-crud/fast-crud": "^1.25.4", - "@fast-crud/fast-extends": "^1.25.4", - "@fast-crud/ui-antdv4": "^1.25.4", - "@fast-crud/ui-interface": "^1.25.4", + "@fast-crud/fast-crud": "^1.25.7", + "@fast-crud/fast-extends": "^1.25.7", + "@fast-crud/ui-antdv4": "^1.25.7", + "@fast-crud/ui-interface": "^1.25.7", "@iconify/tailwind": "^1.2.0", "@iconify/vue": "^4.1.1", "@manypkg/get-packages": "^2.2.2", @@ -93,7 +93,9 @@ "vuedraggable": "^4.1.0", "watermark-js-plus": "^1.5.8", "zod": "^3.24.2", - "zod-defaults": "^0.1.3" + "zod-defaults": "^0.1.3", + "monaco-editor": "^0.52.2", + "monaco-yaml": "^5.3.1" }, "devDependencies": { "@certd/lib-iframe": "^1.32.0", diff --git a/packages/ui/certd-client/src/router/source/modules/certd.ts b/packages/ui/certd-client/src/router/source/modules/certd.ts index 080409129..7722544ff 100644 --- a/packages/ui/certd-client/src/router/source/modules/certd.ts +++ b/packages/ui/certd-client/src/router/source/modules/certd.ts @@ -10,7 +10,7 @@ export const certdResources = [ meta: { icon: "ion:key-outline", auth: true, - order: 0 + order: 0, }, children: [ { @@ -20,8 +20,8 @@ export const certdResources = [ component: "/certd/pipeline/index.vue", meta: { icon: "ion:analytics-sharp", - cache: true - } + cache: true, + }, }, { title: "编辑流水线", @@ -29,8 +29,8 @@ export const certdResources = [ path: "/certd/pipeline/detail", component: "/certd/pipeline/detail.vue", meta: { - isMenu: false - } + isMenu: false, + }, }, { title: "执行历史记录", @@ -39,8 +39,8 @@ export const certdResources = [ component: "/certd/history/index.vue", meta: { icon: "ion:timer-outline", - cache: true - } + cache: true, + }, }, { title: "证书仓库", @@ -50,8 +50,8 @@ export const certdResources = [ meta: { icon: "ion:shield-checkmark-outline", auth: true, - isMenu: true - } + isMenu: true, + }, }, { title: "站点证书监控", @@ -60,8 +60,8 @@ export const certdResources = [ component: "/certd/monitor/site/index.vue", meta: { icon: "ion:videocam-outline", - auth: true - } + auth: true, + }, }, { title: "设置", @@ -71,7 +71,7 @@ export const certdResources = [ meta: { icon: "ion:settings-outline", auth: true, - cache: true + cache: true, }, children: [ { @@ -82,8 +82,8 @@ export const certdResources = [ meta: { icon: "ion:disc-outline", auth: true, - cache: true - } + cache: true, + }, }, { title: "CNAME记录管理", @@ -92,8 +92,8 @@ export const certdResources = [ component: "/certd/cname/record/index.vue", meta: { icon: "ion:link-outline", - auth: true - } + auth: true, + }, }, { title: "流水线分组管理", @@ -102,8 +102,8 @@ export const certdResources = [ component: "/certd/pipeline/group/index.vue", meta: { icon: "mdi:format-list-group", - auth: true - } + auth: true, + }, }, { @@ -114,8 +114,8 @@ export const certdResources = [ meta: { icon: "hugeicons:api", auth: true, - cache: true - } + cache: true, + }, }, { title: "通知设置", @@ -125,8 +125,8 @@ export const certdResources = [ meta: { icon: "ion:megaphone-outline", auth: true, - cache: true - } + cache: true, + }, }, { title: "账号信息", @@ -136,10 +136,10 @@ export const certdResources = [ meta: { icon: "ion:person-outline", auth: true, - isMenu: false - } - } - ] + isMenu: false, + }, + }, + ], }, { @@ -153,7 +153,7 @@ export const certdResources = [ return settingStore.isComm && settingStore.isSuiteEnabled; }, icon: "ion:cart-outline", - auth: true + auth: true, }, children: [ { @@ -167,8 +167,8 @@ export const certdResources = [ return settingStore.isComm; }, icon: "ion:gift-outline", - auth: true - } + auth: true, + }, }, { title: "套餐购买", @@ -181,8 +181,8 @@ export const certdResources = [ return settingStore.isComm; }, icon: "ion:cart-outline", - auth: true - } + auth: true, + }, }, { title: "我的订单", @@ -195,8 +195,8 @@ export const certdResources = [ return settingStore.isComm; }, icon: "ion:bag-check-outline", - auth: true - } + auth: true, + }, }, { title: "支付返回", @@ -206,11 +206,11 @@ export const certdResources = [ meta: { icon: "ant-design:pay-circle-outlined", auth: false, - isMenu: false - } - } - ] - } + isMenu: false, + }, + }, + ], + }, // { // title: "邮箱设置", @@ -222,8 +222,8 @@ export const certdResources = [ // auth: true // } // }, - ] - } + ], + }, ]; export default certdResources; diff --git a/packages/ui/certd-client/src/router/source/modules/sys.ts b/packages/ui/certd-client/src/router/source/modules/sys.ts index 924567c34..aeca062f6 100644 --- a/packages/ui/certd-client/src/router/source/modules/sys.ts +++ b/packages/ui/certd-client/src/router/source/modules/sys.ts @@ -11,7 +11,7 @@ export const sysResources = [ meta: { icon: "ion:settings-outline", permission: "sys:settings:view", - order: 10 + order: 10, }, children: [ { @@ -25,8 +25,8 @@ export const sysResources = [ return settingStore.isComm; }, icon: "ion:speedometer-outline", - permission: "sys:auth:user:view" - } + permission: "sys:auth:user:view", + }, }, { @@ -36,8 +36,8 @@ export const sysResources = [ component: "/sys/settings/index.vue", meta: { icon: "ion:settings-outline", - permission: "sys:settings:view" - } + permission: "sys:settings:view", + }, }, { title: "CNAME服务设置", @@ -46,8 +46,8 @@ export const sysResources = [ component: "/sys/cname/provider/index.vue", meta: { icon: "ion:earth-outline", - permission: "sys:settings:view" - } + permission: "sys:settings:view", + }, }, { title: "邮件服务器设置", @@ -57,8 +57,8 @@ export const sysResources = [ meta: { permission: "sys:settings:view", icon: "ion:mail-outline", - auth: true - } + auth: true, + }, }, { title: "站点个性化", @@ -71,8 +71,8 @@ export const sysResources = [ return settingStore.isComm; }, icon: "ion:document-text-outline", - permission: "sys:settings:view" - } + permission: "sys:settings:view", + }, }, { title: "顶部菜单设置", @@ -85,8 +85,8 @@ export const sysResources = [ return settingStore.isComm; }, icon: "ion:menu", - permission: "sys:settings:view" - } + permission: "sys:settings:view", + }, }, { title: "系统级授权", @@ -99,8 +99,8 @@ export const sysResources = [ return settingStore.isComm; }, icon: "ion:disc-outline", - permission: "sys:settings:view" - } + permission: "sys:settings:view", + }, }, { title: "插件管理", @@ -108,13 +108,20 @@ export const sysResources = [ path: "/sys/plugin", component: "/sys/plugin/index.vue", meta: { - show: () => { - const settingStore = useSettingStore(); - return settingStore.isComm; - }, icon: "ion:extension-puzzle-outline", - permission: "sys:settings:view" - } + permission: "sys:settings:view", + }, + }, + { + title: "编辑插件", + name: "SysPluginEdit", + path: "/sys/plugin/edit", + component: "/sys/plugin/edit.vue", + meta: { + isMenu: false, + icon: "ion:extension-puzzle", + permission: "sys:settings:view", + }, }, { title: "证书插件配置", @@ -127,8 +134,8 @@ export const sysResources = [ return settingStore.isComm; }, icon: "ion:extension-puzzle", - permission: "sys:settings:view" - } + permission: "sys:settings:view", + }, }, { title: "账号绑定", @@ -137,8 +144,8 @@ export const sysResources = [ component: "/sys/account/index.vue", meta: { icon: "ion:golf-outline", - permission: "sys:settings:view" - } + permission: "sys:settings:view", + }, }, { title: "权限管理", @@ -148,8 +155,8 @@ export const sysResources = [ meta: { icon: "ion:list-outline", //需要校验权限 - permission: "sys:auth:per:view" - } + permission: "sys:auth:per:view", + }, }, { title: "角色管理", @@ -158,8 +165,8 @@ export const sysResources = [ component: "/sys/authority/role/index.vue", meta: { icon: "ion:people-outline", - permission: "sys:auth:role:view" - } + permission: "sys:auth:role:view", + }, }, { title: "用户管理", @@ -168,8 +175,8 @@ export const sysResources = [ component: "/sys/authority/user/index.vue", meta: { icon: "ion:person-outline", - permission: "sys:auth:user:view" - } + permission: "sys:auth:user:view", + }, }, { @@ -183,7 +190,7 @@ export const sysResources = [ show: () => { const settingStore = useSettingStore(); return settingStore.isComm; - } + }, }, children: [ { @@ -197,8 +204,8 @@ export const sysResources = [ return settingStore.isComm; }, icon: "ion:cart", - permission: "sys:settings:edit" - } + permission: "sys:settings:edit", + }, }, { title: "订单管理", @@ -211,8 +218,8 @@ export const sysResources = [ return settingStore.isComm; }, icon: "ion:bag-check", - permission: "sys:settings:edit" - } + permission: "sys:settings:edit", + }, }, { title: "用户套餐", @@ -225,13 +232,13 @@ export const sysResources = [ return settingStore.isComm; }, icon: "ion:gift-outline", - auth: true - } - } - ] - } - ] - } + auth: true, + }, + }, + ], + }, + ], + }, ]; export default sysResources; diff --git a/packages/ui/certd-client/src/style/certd.less b/packages/ui/certd-client/src/style/certd.less index 003f19573..cb824c59f 100644 --- a/packages/ui/certd-client/src/style/certd.less +++ b/packages/ui/certd-client/src/style/certd.less @@ -93,7 +93,7 @@ body a{ } span.fs-icon-svg{ - display: flex; + display: inline-flex; align-items: center; } diff --git a/packages/ui/certd-client/src/views/certd/cname/record/crud.tsx b/packages/ui/certd-client/src/views/certd/cname/record/crud.tsx index 5204128c3..6342adbf8 100644 --- a/packages/ui/certd-client/src/views/certd/cname/record/crud.tsx +++ b/packages/ui/certd-client/src/views/certd/cname/record/crud.tsx @@ -45,24 +45,24 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat props: { multiple: true, crossPage: true, - selectedRowKeys - } - } - } + selectedRowKeys, + }, + }, + }, }, request: { pageRequest, addRequest, editRequest, - delRequest + delRequest, }, tabs: { name: "status", - show: true + show: true, }, rowHandle: { minWidth: 200, - fixed: "right" + fixed: "right", }, columns: { id: { @@ -70,46 +70,46 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat key: "id", type: "number", column: { - width: 80 + width: 80, }, form: { - show: false - } + show: false, + }, }, domain: { title: "被代理域名", type: "text", search: { - show: true + show: true, }, editForm: { component: { - disabled: true - } - } + disabled: true, + }, + }, }, hostRecord: { title: "主机记录", type: "text", form: { - show: false + show: false, }, column: { width: 250, cellRender: ({ value }) => { return ; - } - } + }, + }, }, recordValue: { title: "请设置CNAME", type: "copyable", form: { - show: false + show: false, }, column: { - width: 500 - } + width: 500, + }, }, cnameProviderId: { title: "CNAME服务", @@ -117,7 +117,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat dict: dict({ url: "/cname/provider/list", value: "id", - label: "domain" + label: "domain", }), form: { component: { @@ -141,7 +141,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat } else { return item.domain; } - } + }, }, helper: { render() { @@ -156,8 +156,8 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat ); - } - } + }, + }, }, column: { width: 120, @@ -168,8 +168,8 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat } else { return 自定义CNAME; } - } - } + }, + }, }, status: { title: "状态", @@ -180,22 +180,22 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat { label: "验证中", value: "validating", color: "blue" }, { label: "验证成功", value: "valid", color: "green" }, { label: "验证失败", value: "failed", color: "red" }, - { label: "验证超时", value: "timeout", color: "red" } - ] + { label: "验证超时", value: "timeout", color: "red" }, + ], }), addForm: { - show: false + show: false, }, column: { width: 120, - align: "center" - } + align: "center", + }, }, triggerValidate: { title: "验证", type: "text", form: { - show: false + show: false, }, column: { conditionalRenderDisabled: true, @@ -235,32 +235,32 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat ); - } - } + }, + }, }, createTime: { title: "创建时间", type: "datetime", form: { - show: false + show: false, }, column: { sorter: true, width: 160, - align: "center" - } + align: "center", + }, }, updateTime: { title: "更新时间", type: "datetime", form: { - show: false + show: false, }, column: { - show: true - } - } - } - } + show: true, + }, + }, + }, + }, }; } diff --git a/packages/ui/certd-client/src/views/certd/open/openkey/crud.tsx b/packages/ui/certd-client/src/views/certd/open/openkey/crud.tsx index 7ec908b7b..040624e08 100644 --- a/packages/ui/certd-client/src/views/certd/open/openkey/crud.tsx +++ b/packages/ui/certd-client/src/views/certd/open/openkey/crud.tsx @@ -33,32 +33,32 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat pageRequest, addRequest, editRequest, - delRequest + delRequest, }, search: { - show: false + show: false, }, form: { labelCol: { //固定label宽度 span: null, style: { - width: "100px" - } + width: "100px", + }, }, col: { - span: 22 + span: 22, }, wrapper: { - width: 600 - } + width: 600, + }, }, actionbar: { buttons: { add: { - text: "生成新的Key" - } - } + text: "生成新的Key", + }, + }, }, rowHandle: { width: 300, @@ -96,11 +96,11 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat ); - } + }, }); - } - } - } + }, + }, + }, }, columns: { id: { @@ -108,42 +108,42 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat key: "id", type: "number", search: { - show: false + show: false, }, column: { width: 100, editable: { - disabled: true - } + disabled: true, + }, }, form: { - show: false - } + show: false, + }, }, keyId: { title: "KeyId", type: ["text", "copyable"], search: { - show: true + show: true, }, form: { - show: false + show: false, }, column: { width: 250, - sorter: true - } + sorter: true, + }, }, keySecret: { title: "KeySecret", type: ["text", "copyable"], form: { - show: false + show: false, }, column: { width: 580, - sorter: true - } + sorter: true, + }, }, scope: { title: "权限范围", @@ -151,8 +151,8 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat dict: dict({ data: [ { label: "仅开放接口", value: "open", color: "blue" }, - { label: "账户所有权限", value: "user", color: "red" } - ] + { label: "账户所有权限", value: "user", color: "red" }, + ], }), form: { value: "open", @@ -160,26 +160,26 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat rules: [{ required: true, message: "此项必填" }], helper: "仅开放接口只可以访问开放接口,账户所有权限可以访问所有接口", component: { - vModel: "value" - } + vModel: "value", + }, }, column: { width: 120, align: "center", - sorter: true - } + sorter: true, + }, }, createTime: { title: "创建时间", type: "datetime", search: { - show: false + show: false, }, form: { - show: false - } - } - } - } + show: false, + }, + }, + }, + }, }; } diff --git a/packages/ui/certd-client/src/views/sys/plugin/api.ts b/packages/ui/certd-client/src/views/sys/plugin/api.ts index 2f481ee19..91efcf59a 100644 --- a/packages/ui/certd-client/src/views/sys/plugin/api.ts +++ b/packages/ui/certd-client/src/views/sys/plugin/api.ts @@ -6,7 +6,7 @@ export async function GetList(query: any) { return await request({ url: apiPrefix + "/page", method: "post", - data: query + data: query, }); } @@ -14,7 +14,7 @@ export async function AddObj(obj: any) { return await request({ url: apiPrefix + "/add", method: "post", - data: obj + data: obj, }); } @@ -22,7 +22,7 @@ export async function UpdateObj(obj: any) { return await request({ url: apiPrefix + "/update", method: "post", - data: obj + data: obj, }); } @@ -30,7 +30,7 @@ export async function DelObj(id: any) { return await request({ url: apiPrefix + "/delete", method: "post", - params: { id } + params: { id }, }); } @@ -38,7 +38,7 @@ export async function GetObj(id: any) { return await request({ url: apiPrefix + "/info", method: "post", - params: { id } + params: { id }, }); } @@ -46,7 +46,7 @@ export async function GetDetail(id: any) { return await request({ url: apiPrefix + "/detail", method: "post", - params: { id } + params: { id }, }); } @@ -54,7 +54,7 @@ export async function DeleteBatch(ids: any[]) { return await request({ url: apiPrefix + "/deleteByIds", method: "post", - data: { ids } + data: { ids }, }); } @@ -62,7 +62,7 @@ export async function SetDisabled(data: { id?: number; name?: string; type?: str return await request({ url: apiPrefix + "/setDisabled", method: "post", - data: data + data: data, }); } @@ -90,7 +90,7 @@ export type CommPluginConfig = { export async function GetCommPluginConfigs(): Promise { return await request({ url: apiPrefix + "/getCommPluginConfigs", - method: "post" + method: "post", }); } @@ -98,6 +98,6 @@ export async function SaveCommPluginConfigs(data: CommPluginConfig): Promise +
+
+ 添加 +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + diff --git a/packages/ui/certd-client/src/views/sys/plugin/crud.tsx b/packages/ui/certd-client/src/views/sys/plugin/crud.tsx index 7895a1d92..6c32bc487 100644 --- a/packages/ui/certd-client/src/views/sys/plugin/crud.tsx +++ b/packages/ui/certd-client/src/views/sys/plugin/crud.tsx @@ -2,7 +2,7 @@ import * as api from "./api"; import { useI18n } from "vue-i18n"; import { computed, Ref, ref } from "vue"; import { useRouter } from "vue-router"; -import { AddReq, CreateCrudOptionsProps, CreateCrudOptionsRet, DelReq, dict, EditReq, UserPageQuery, UserPageRes, utils } from "@fast-crud/fast-crud"; +import { AddReq, compute, CreateCrudOptionsProps, CreateCrudOptionsRet, DelReq, dict, EditReq, UserPageQuery, UserPageRes, utils } from "@fast-crud/fast-crud"; import { useUserStore } from "/src/store/modules/user"; import { useSettingStore } from "/src/store/modules/settings"; import { Modal } from "ant-design-vue"; @@ -59,29 +59,43 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat actionbar: { buttons: { add: { - show: false, + show: true, + text: "自定义插件", }, }, }, rowHandle: { - show: false, + show: true, minWidth: 200, fixed: "right", buttons: { edit: { - show: false, + show: compute(({ row }) => { + return row.type === "custom"; + }), }, copy: { - show: false, + show: compute(({ row }) => { + return row.type === "custom"; + }), }, remove: { - show: false, + show: compute(({ row }) => { + return row.type === "custom"; + }), }, }, }, table: { rowKey: "name", }, + tabs: { + name: "type", + show: true, + defaultOption: { + show: false, + }, + }, columns: { // id: { // title: "ID", @@ -101,20 +115,47 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat show: true, }, form: { - show: false, + show: true, + order: 0, + helper: "必须为英文,驼峰命名,类型作为前缀\n例如AliyunDeployToCDN", + rules: [{ required: true }], + }, + column: { + width: 250, + cellRender({ row }) { + if (row.author) { + return ; + } else { + return ; + } + }, + }, + }, + author: { + title: "作者", + type: "text", + search: { + show: true, + }, + form: { + show: true, + order: 0, + helper: "上传到应用商店时,将作为插件名称前缀,例如:greper/pluginName", + rules: [{ required: true }], }, column: { width: 200, + show: false, }, }, icon: { title: "图标", - type: "text", + type: "icon", form: { - show: false, + rules: [{ required: true }], }, column: { - width: 100, + width: 70, align: "center", component: { name: "fs-icon", @@ -125,26 +166,102 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat }, }, }, + title: { title: "标题", type: "text", + form: { + order: 0, + helper: "插件中文名称", + rules: [{ required: true }], + }, column: { width: 300, + cellRender({ row }) { + if (row.type === "custom") { + return {row.title}; + } + return
{row.title}
; + }, }, }, desc: { title: "描述", type: "text", + helper: "插件的描述", column: { width: 300, + show: false, + }, + }, + type: { + title: "来源", + type: "dict-select", + search: { + show: true, + }, + form: { + value: "custom", + component: { + disabled: true, + }, + }, + dict: dict({ + data: [ + { label: "内置", value: "builtIn" }, + { label: "自建", value: "custom" }, + { label: "商店", value: "store" }, + ], + }), + column: { + width: 70, + align: "center", + component: { + color: "auto", + }, + }, + }, + pluginType: { + title: "插件类型", + type: "dict-select", + search: { + show: true, + }, + form: { + rules: [{ required: true }], + }, + dict: dict({ + data: [ + { label: "授权", value: "access" }, + { label: "DNS", value: "dnsProvider" }, + { label: "部署插件", value: "plugin" }, + ], + }), + column: { + width: 100, + align: "center", + component: { + color: "auto", + }, }, }, group: { title: "分组", - type: "text", + type: "dict-select", + dict: dict({ + url: "/pi/plugin/groupsList", + label: "title", + value: "key", + }), + form: { + rules: [{ required: true }], + }, column: { width: 100, - align: "center", + align: "left", + component: { + color: "auto", + }, }, }, disabled: { diff --git a/packages/ui/certd-client/src/views/sys/plugin/edit.vue b/packages/ui/certd-client/src/views/sys/plugin/edit.vue new file mode 100644 index 000000000..cc6f9fa1c --- /dev/null +++ b/packages/ui/certd-client/src/views/sys/plugin/edit.vue @@ -0,0 +1,110 @@ + + + + diff --git a/packages/ui/certd-client/src/views/sys/suite/trade/crud.tsx b/packages/ui/certd-client/src/views/sys/suite/trade/crud.tsx index 42e689824..d95bb47a6 100644 --- a/packages/ui/certd-client/src/views/sys/suite/trade/crud.tsx +++ b/packages/ui/certd-client/src/views/sys/suite/trade/crud.tsx @@ -47,23 +47,23 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat props: { multiple: true, crossPage: true, - selectedRowKeys - } - } - } + selectedRowKeys, + }, + }, + }, }, request: { pageRequest, addRequest, editRequest, - delRequest + delRequest, }, actionbar: { buttons: { add: { - show: false - } - } + show: false, + }, + }, }, toolbar: { show: false }, rowHandle: { @@ -71,13 +71,13 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat fixed: "right", buttons: { view: { - show: false + show: false, }, copy: { - show: false + show: false, }, edit: { - show: false + show: false, }, syncStatus: { show: compute(({ row }) => { @@ -92,9 +92,9 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat onOk: async () => { await api.SyncStatus(row.id); await crudExpose.doRefresh(); - } + }, }); - } + }, }, updatePaid: { show: compute(({ row }) => { @@ -109,15 +109,15 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat onOk: async () => { await api.UpdatePaid(row.id); await crudExpose.doRefresh(); - } + }, }); - } - } - } + }, + }, + }, }, tabs: { name: "status", - show: true + show: true, }, columns: { id: { @@ -125,30 +125,30 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat key: "id", type: "number", column: { - width: 100 + width: 100, }, form: { - show: false - } + show: false, + }, }, tradeNo: { title: "订单号", type: "text", search: { show: true }, form: { - show: false + show: false, }, column: { - width: 250 - } + width: 250, + }, }, title: { title: "商品名称", type: "text", search: { show: true }, column: { - width: 150 - } + width: 150, + }, }, duration: { title: "时长", @@ -157,10 +157,10 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat width: 100, component: { name: DurationValue, - vModel: "modelValue" + vModel: "modelValue", }, - align: "center" - } + align: "center", + }, }, amount: { title: "金额", @@ -170,9 +170,9 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat component: { name: PriceInput, vModel: "modelValue", - edit: false - } - } + edit: false, + }, + }, }, status: { title: "状态", @@ -182,13 +182,13 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat data: [ { label: "待支付", value: "wait_pay", color: "warning" }, { label: "已支付", value: "paid", color: "success" }, - { label: "已关闭", value: "closed", color: "error" } - ] + { label: "已关闭", value: "closed", color: "error" }, + ], }), column: { width: 100, - align: "center" - } + align: "center", + }, }, payType: { title: "支付方式", @@ -199,48 +199,48 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat { label: "聚合支付", value: "yizhifu" }, { label: "支付宝", value: "alipay" }, { label: "微信", value: "wxpay" }, - { label: "免费", value: "free" } - ] + { label: "免费", value: "free" }, + ], }), column: { width: 100, component: { - color: "auto" + color: "auto", }, - align: "center" - } + align: "center", + }, }, payTime: { title: "支付时间", type: "datetime", column: { - width: 160 - } + width: 160, + }, }, createTime: { title: "创建时间", type: "datetime", form: { - show: false + show: false, }, column: { sorter: true, width: 160, - align: "center" - } + align: "center", + }, }, updateTime: { title: "更新时间", type: "datetime", form: { - show: false + show: false, }, column: { show: true, - width: 160 - } - } - } - } + width: 160, + }, + }, + }, + }, }; } diff --git a/packages/ui/certd-server/src/controller/user/pipeline/plugin-controller.ts b/packages/ui/certd-server/src/controller/user/pipeline/plugin-controller.ts index 5e5f4f324..ceba8864c 100644 --- a/packages/ui/certd-server/src/controller/user/pipeline/plugin-controller.ts +++ b/packages/ui/certd-server/src/controller/user/pipeline/plugin-controller.ts @@ -2,6 +2,7 @@ import { ALL, Body, Controller, Inject, Post, Provide, Query } from '@midwayjs/c import { BaseController, Constants } from '@certd/lib-server'; import { PluginService } from '../../../modules/plugin/service/plugin-service.js'; import { PluginConfigService } from '../../../modules/plugin/service/plugin-config-service.js'; +import {pluginGroups} from "@certd/pipeline"; /** * 插件 @@ -29,6 +30,21 @@ export class PluginController extends BaseController { return this.ok(group); } + @Post('/groupsList', { summary: Constants.per.authOnly }) + async groupsList(@Query(ALL) query: any) { + query.userId = this.getUserId(); + const groups = pluginGroups + const groupsList:any = [] + for (const key in groups) { + const group = { + ...groups[key] + } + delete group.plugins + groupsList.push(group) + } + return this.ok(groupsList); + } + @Post('/getDefineByType', { summary: Constants.per.authOnly }) async getDefineByType(@Body('type') type: string) { const define = await this.service.getDefineByType(type); diff --git a/packages/ui/certd-server/src/modules/plugin/service/plugin-service.ts b/packages/ui/certd-server/src/modules/plugin/service/plugin-service.ts index 62257e93d..a9886180e 100644 --- a/packages/ui/certd-server/src/modules/plugin/service/plugin-service.ts +++ b/packages/ui/certd-server/src/modules/plugin/service/plugin-service.ts @@ -26,6 +26,11 @@ export class PluginService extends BaseService { // eslint-disable-next-line @typescript-eslint/no-unused-vars async page(pageReq: PageReq) { + + if(pageReq.query.type && pageReq.query.type !=='builtIn'){ + return await super.page(pageReq); + } + const builtInList = await this.getBuiltInEntityList(); return { records: builtInList, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 524a73b45..4794b0c45 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -46,7 +46,7 @@ importers: packages/core/acme-client: dependencies: '@certd/basic': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../basic '@peculiar/x509': specifier: ^1.11.0 @@ -204,10 +204,10 @@ importers: packages/core/pipeline: dependencies: '@certd/basic': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../basic '@certd/plus-core': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../pro/plus-core dayjs: specifier: ^1.11.7 @@ -412,7 +412,7 @@ importers: packages/libs/lib-k8s: dependencies: '@certd/basic': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../core/basic '@kubernetes/client-node': specifier: 0.21.0 @@ -452,16 +452,16 @@ importers: packages/libs/lib-server: dependencies: '@certd/acme-client': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../core/acme-client '@certd/basic': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../core/basic '@certd/pipeline': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../core/pipeline '@certd/plus-core': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../pro/plus-core '@midwayjs/cache': specifier: ~3.14.0 @@ -604,16 +604,16 @@ importers: packages/plugins/plugin-cert: dependencies: '@certd/acme-client': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../core/acme-client '@certd/basic': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../core/basic '@certd/pipeline': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../core/pipeline '@certd/plugin-lib': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../plugin-lib '@google-cloud/publicca': specifier: ^1.3.0 @@ -680,10 +680,10 @@ importers: specifier: ^1.7.10 version: 1.8.0 '@certd/basic': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../core/basic '@certd/pipeline': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../core/pipeline '@kubernetes/client-node': specifier: 0.21.0 @@ -771,19 +771,19 @@ importers: packages/pro/commercial-core: dependencies: '@certd/basic': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../core/basic '@certd/lib-server': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../libs/lib-server '@certd/pipeline': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../core/pipeline '@certd/plugin-plus': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../plugin-plus '@certd/plus-core': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../plus-core '@midwayjs/core': specifier: ~3.20.3 @@ -868,22 +868,22 @@ importers: specifier: ^1.0.2 version: 1.0.2 '@certd/basic': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../core/basic '@certd/lib-k8s': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../libs/lib-k8s '@certd/pipeline': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../core/pipeline '@certd/plugin-cert': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../plugins/plugin-cert '@certd/plugin-lib': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../plugins/plugin-lib '@certd/plus-core': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../plus-core ali-oss: specifier: ^6.21.0 @@ -980,7 +980,7 @@ importers: packages/pro/plus-core: dependencies: '@certd/basic': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../core/basic dayjs: specifier: ^1.11.7 @@ -1059,17 +1059,17 @@ importers: specifier: ^4.1.0 version: 4.1.0 '@fast-crud/fast-crud': - specifier: ^1.25.4 - version: 1.25.4(vue@3.5.13(typescript@5.8.2)) + specifier: ^1.25.7 + version: 1.25.7(vue@3.5.13(typescript@5.8.2)) '@fast-crud/fast-extends': - specifier: ^1.25.4 - version: 1.25.4(aws-crt@1.25.3)(vue@3.5.13(typescript@5.8.2)) + specifier: ^1.25.7 + version: 1.25.7(aws-crt@1.25.3)(vue@3.5.13(typescript@5.8.2)) '@fast-crud/ui-antdv4': - specifier: ^1.25.4 - version: 1.25.4 + specifier: ^1.25.7 + version: 1.25.7 '@fast-crud/ui-interface': - specifier: ^1.25.4 - version: 1.25.4 + specifier: ^1.25.7 + version: 1.25.7 '@iconify/tailwind': specifier: ^1.2.0 version: 1.2.0 @@ -1169,6 +1169,12 @@ importers: mitt: specifier: ^3.0.1 version: 3.0.1 + monaco-editor: + specifier: ^0.52.2 + version: 0.52.2 + monaco-yaml: + specifier: ^5.3.1 + version: 5.3.1(monaco-editor@0.52.2) nanoid: specifier: ^4.0.0 version: 4.0.2 @@ -1255,10 +1261,10 @@ importers: version: 0.1.3(zod@3.24.2) devDependencies: '@certd/lib-iframe': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../libs/lib-iframe '@certd/pipeline': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../core/pipeline '@rollup/plugin-commonjs': specifier: ^25.0.7 @@ -1438,43 +1444,43 @@ importers: specifier: ^3.705.0 version: 3.758.0(aws-crt@1.25.3) '@certd/acme-client': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../core/acme-client '@certd/basic': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../core/basic '@certd/commercial-core': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../pro/commercial-core '@certd/jdcloud': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../libs/lib-jdcloud '@certd/lib-huawei': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../libs/lib-huawei '@certd/lib-k8s': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../libs/lib-k8s '@certd/lib-server': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../libs/lib-server '@certd/midway-flyway-js': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../libs/midway-flyway-js '@certd/pipeline': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../core/pipeline '@certd/plugin-cert': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../plugins/plugin-cert '@certd/plugin-lib': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../plugins/plugin-lib '@certd/plugin-plus': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../pro/plugin-plus '@certd/plus-core': - specifier: ^1.31.10 + specifier: ^1.32.0 version: link:../../pro/plus-core '@corsinvest/cv4pve-api-javascript': specifier: ^8.3.0 @@ -3241,17 +3247,17 @@ packages: resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@fast-crud/fast-crud@1.25.4': - resolution: {integrity: sha512-j68rVoBLiiLRcZ/gSRz+hK9W1XHaQk9onqwHcxZxdIwH1QBTkLygTWZC0DuItWGWdkNbCF518WX5l/cllltorg==} + '@fast-crud/fast-crud@1.25.7': + resolution: {integrity: sha512-dq5ijw6PU/FQBTP+ZwBezMHqAEZDbAoShHGNIkCK9a0vOqL5MhBnOzq5DPRz6yFUNnJEFX8kYB7N7A00Qnw5Zg==} - '@fast-crud/fast-extends@1.25.4': - resolution: {integrity: sha512-WQVkvEbPucHCvQqafTfDXIzSplA5hdgUFCUBZkdjvFkK+qVrRcj8kYnwya3Ac5AeqBiNQGGeSmV4bLlp/NxbVg==} + '@fast-crud/fast-extends@1.25.7': + resolution: {integrity: sha512-vZu6CGXvacgnZI4d78qEc0X1xrdylJjABapU1O60xwwDx+CIcJfH6N+Q4ku/12YdTTeJAsYDnsSFzNEDtzQpwQ==} - '@fast-crud/ui-antdv4@1.25.4': - resolution: {integrity: sha512-g6gX5XE7/CTyvHXZai9KdGhkjDG4clrGQkJhHNWcONSWWIrOt0ydiT+D9ecu/nAY7hB1vX7GWtoMpGEmCpmyOQ==} + '@fast-crud/ui-antdv4@1.25.7': + resolution: {integrity: sha512-T95LiMO2WV6XcnLyALLRB59xmi43eWHxIeABeZBeDD5Y2nmXR3ceQj63VBo4SJMDNEu49MKabQpOa/A2X6Rmwg==} - '@fast-crud/ui-interface@1.25.4': - resolution: {integrity: sha512-sGNrgEDaZ5AGvG7U9YDlfQhB3HZyVofSZK8/GtEezfUR5BziycdF895/JJP06o/bL/xZ8Zn1xeBGHCd9ESnUYA==} + '@fast-crud/ui-interface@1.25.7': + resolution: {integrity: sha512-JrP2/dm1Sco0UdSYhIMkf9tdynYURHlO1qyDHmssF1lqo9+PrU1kwuizaK1soG+myHiYznbBiXo1+GIly/MU+A==} '@fidm/asn1@1.0.4': resolution: {integrity: sha512-esd1jyNvRb2HVaQGq2Gg8Z0kbQPXzV9Tq5Z14KNIov6KfFD6PTaRIO8UpcsYiTNzOqJpmyzWgVTrUwFV3UF4TQ==} @@ -8724,6 +8730,9 @@ packages: engines: {node: '>=6'} hasBin: true + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + jsoneditor@9.10.5: resolution: {integrity: sha512-fVZ0NMt+zm4rqTKBv2x7zPdLeaRyKo1EjJkaR1QjK4gEM1rMwICILYSW1OPxSc1qqyAoDaA/eeNrluKoxOocCA==} @@ -9431,6 +9440,25 @@ packages: monaco-editor@0.52.2: resolution: {integrity: sha512-GEQWEZmfkOGLdd3XK8ryrfWz3AIP8YymVXiPHEdewrUq7mh0qrKrfHLNCXcbB6sTnMLnOZ3ztSiKcciFUkIJwQ==} + monaco-languageserver-types@0.4.0: + resolution: {integrity: sha512-QQ3BZiU5LYkJElGncSNb5AKoJ/LCs6YBMCJMAz9EA7v+JaOdn3kx2cXpPTcZfKA5AEsR0vc97sAw+5mdNhVBmw==} + + monaco-marker-data-provider@1.2.4: + resolution: {integrity: sha512-4DsPgsAqpTyUDs3humXRBPUJoihTv+L6v9aupQWD80X2YXaCXUd11mWYeSCYHuPgdUmjFaNWCEOjQ6ewf/QA1Q==} + + monaco-types@0.1.0: + resolution: {integrity: sha512-aWK7SN9hAqNYi0WosPoMjenMeXJjwCxDibOqWffyQ/qXdzB/86xshGQobRferfmNz7BSNQ8GB0MD0oby9/5fTQ==} + + monaco-worker-manager@2.0.1: + resolution: {integrity: sha512-kdPL0yvg5qjhKPNVjJoym331PY/5JC11aPJXtCZNwWRvBr6jhkIamvYAyiY5P1AWFmNOy0aRDRoMdZfa71h8kg==} + peerDependencies: + monaco-editor: '>=0.30.0' + + monaco-yaml@5.3.1: + resolution: {integrity: sha512-1MN8i1Tnc8d8RugQGqv5jp+Ce2xtNhrnbm0ZZbe5ceExj9C2PkKZfHJhY9kbdUS4G7xSVwKlVdMTmLlStepOtw==} + peerDependencies: + monaco-editor: '>=0.36' + mqtt-packet@6.10.0: resolution: {integrity: sha512-ja8+mFKIHdB1Tpl6vac+sktqy3gA8t9Mduom1BA75cI+R9AHnZOiaBQwpGiWnaVJLDGRdNhQmFaAqd7tkKSMGA==} @@ -12693,6 +12721,22 @@ packages: webdriverio: optional: true + vscode-jsonrpc@8.2.0: + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} + + vscode-languageserver-protocol@3.17.5: + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + + vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + + vscode-uri@3.1.0: + resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} + vue-component-type-helpers@2.2.8: resolution: {integrity: sha512-4bjIsC284coDO9om4HPA62M7wfsTvcmZyzdfR0aUlFXqq4tXxM1APyXpNVxPC8QazKw9OhmZNHBVDA6ODaZsrA==} @@ -15227,7 +15271,7 @@ snapshots: '@eslint/js@8.57.0': {} - '@fast-crud/fast-crud@1.25.4(vue@3.5.13(typescript@5.8.2))': + '@fast-crud/fast-crud@1.25.7(vue@3.5.13(typescript@5.8.2))': dependencies: '@iconify/types': 2.0.0 file-saver: 2.0.5 @@ -15237,7 +15281,7 @@ snapshots: transitivePeerDependencies: - vue - '@fast-crud/fast-extends@1.25.4(aws-crt@1.25.3)(vue@3.5.13(typescript@5.8.2))': + '@fast-crud/fast-extends@1.25.7(aws-crt@1.25.3)(vue@3.5.13(typescript@5.8.2))': dependencies: '@aws-sdk/client-s3': 3.758.0(aws-crt@1.25.3) '@aws-sdk/s3-request-presigner': 3.758.0 @@ -15251,9 +15295,11 @@ snapshots: dayjs: 1.11.13 glob: 10.4.5 humanize-duration: 3.32.1 + js-yaml: 4.1.0 jsoneditor: 9.10.5 lodash-es: 4.17.21 monaco-editor: 0.52.2 + monaco-yaml: 5.3.1(monaco-editor@0.52.2) object-assign: 4.1.1 qiniu-js: 3.4.1 quill: 1.3.7 @@ -15267,9 +15313,9 @@ snapshots: - utf-8-validate - vue - '@fast-crud/ui-antdv4@1.25.4': {} + '@fast-crud/ui-antdv4@1.25.7': {} - '@fast-crud/ui-interface@1.25.4': + '@fast-crud/ui-interface@1.25.7': dependencies: lodash-es: 4.17.21 @@ -22334,6 +22380,8 @@ snapshots: json5@2.2.3: {} + jsonc-parser@3.3.1: {} + jsoneditor@9.10.5: dependencies: ace-builds: 1.39.0 @@ -23159,6 +23207,37 @@ snapshots: monaco-editor@0.52.2: {} + monaco-languageserver-types@0.4.0: + dependencies: + monaco-types: 0.1.0 + vscode-languageserver-protocol: 3.17.5 + vscode-uri: 3.1.0 + + monaco-marker-data-provider@1.2.4: + dependencies: + monaco-types: 0.1.0 + + monaco-types@0.1.0: {} + + monaco-worker-manager@2.0.1(monaco-editor@0.52.2): + dependencies: + monaco-editor: 0.52.2 + + monaco-yaml@5.3.1(monaco-editor@0.52.2): + dependencies: + jsonc-parser: 3.3.1 + monaco-editor: 0.52.2 + monaco-languageserver-types: 0.4.0 + monaco-marker-data-provider: 1.2.4 + monaco-types: 0.1.0 + monaco-worker-manager: 2.0.1(monaco-editor@0.52.2) + path-browserify: 1.0.1 + prettier: 3.3.3 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.1.0 + yaml: 2.7.0 + mqtt-packet@6.10.0: dependencies: bl: 4.1.0 @@ -26862,6 +26941,19 @@ snapshots: - supports-color - terser + vscode-jsonrpc@8.2.0: {} + + vscode-languageserver-protocol@3.17.5: + dependencies: + vscode-jsonrpc: 8.2.0 + vscode-languageserver-types: 3.17.5 + + vscode-languageserver-textdocument@1.0.12: {} + + vscode-languageserver-types@3.17.5: {} + + vscode-uri@3.1.0: {} + vue-component-type-helpers@2.2.8: {} vue-cropperjs@5.0.0(vue@3.5.13(typescript@5.8.2)):