mirror of
https://github.com/certd/certd.git
synced 2026-04-05 07:20:56 +08:00
chore: 插件编辑器
This commit is contained in:
@@ -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",
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -93,7 +93,7 @@ body a{
|
||||
}
|
||||
|
||||
span.fs-icon-svg{
|
||||
display: flex;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
|
||||
@@ -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 <fs-copyable v-model={value} />;
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
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
|
||||
</router-link>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
column: {
|
||||
width: 120,
|
||||
@@ -168,8 +168,8 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
} else {
|
||||
return <a-tag color={"blue"}>自定义CNAME</a-tag>;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
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
|
||||
<CnameTip record={row} />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
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,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
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,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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<CommPluginConfig> {
|
||||
return await request({
|
||||
url: apiPrefix + "/getCommPluginConfigs",
|
||||
method: "post"
|
||||
method: "post",
|
||||
});
|
||||
}
|
||||
|
||||
@@ -98,6 +98,6 @@ export async function SaveCommPluginConfigs(data: CommPluginConfig): Promise<voi
|
||||
return await request({
|
||||
url: apiPrefix + "/saveCommPluginConfigs",
|
||||
method: "post",
|
||||
data
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
<template>
|
||||
<div class="plugin-inputs">
|
||||
<div class="actions mb-1">
|
||||
<a-button type="primary" @click="addNewField"> 添加 </a-button>
|
||||
</div>
|
||||
|
||||
<div class="inputs">
|
||||
<div class="inputs-inner">
|
||||
<a-collapse v-model:active-key="activeKey">
|
||||
<a-collapse-panel v-for="(item, index) in inputs" :key="index">
|
||||
<template #header> {{ item.key }} : {{ item.title }} </template>
|
||||
<a-form :label-col="{ style: { width: '80px' } }">
|
||||
<a-form-item label="字段名称">
|
||||
<a-input v-model:value="item.key" />
|
||||
</a-form-item>
|
||||
<a-form-item label="字段标题">
|
||||
<a-input v-model:value="item.title" />
|
||||
</a-form-item>
|
||||
<a-form-item label="字段说明">
|
||||
<a-input v-model:value="item.helper" />
|
||||
</a-form-item>
|
||||
<a-form-item label="默认值">
|
||||
<a-input v-model:value="item.value" />
|
||||
</a-form-item>
|
||||
<a-form-item label="必填">
|
||||
<a-switch v-model:checked="item.required" />
|
||||
</a-form-item>
|
||||
<a-form-item label="组件配置">
|
||||
<fs-editor-code v-model:model-value="item.component" language="yaml" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</a-collapse-panel>
|
||||
</a-collapse>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref, Ref } from "vue";
|
||||
|
||||
const activeKey = ref([]);
|
||||
const inputs: Ref = ref([]);
|
||||
|
||||
function addNewField() {
|
||||
inputs.value.push({
|
||||
key: "newInput",
|
||||
title: "新字段",
|
||||
component: `
|
||||
name: a-input
|
||||
|
||||
`,
|
||||
helper: "",
|
||||
value: undefined,
|
||||
required: false,
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less">
|
||||
.plugin-inputs {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
.actions {
|
||||
}
|
||||
.inputs {
|
||||
flex: 1;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
.inputs-inner {
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -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 <fs-copyable model-value={`${row.author}/${row.name}`} />;
|
||||
} else {
|
||||
return <fs-copyable model-value={row.name} />;
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
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 <router-link to={`/sys/plugin/edit?id=${row.id}`}>{row.title}</router-link>;
|
||||
}
|
||||
return <div>{row.title}</div>;
|
||||
},
|
||||
},
|
||||
},
|
||||
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: {
|
||||
|
||||
110
packages/ui/certd-client/src/views/sys/plugin/edit.vue
Normal file
110
packages/ui/certd-client/src/views/sys/plugin/edit.vue
Normal file
@@ -0,0 +1,110 @@
|
||||
<template>
|
||||
<fs-page class="page-plugin-edit">
|
||||
<template #header>
|
||||
<div class="title">
|
||||
插件编辑
|
||||
<span class="sub">
|
||||
<span class="name">{{ plugin.title }} 【{{ plugin.author }}/{{ plugin.name }}】 </span>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
<div class="pi-plugin-editor">
|
||||
<div class="metadata">
|
||||
<a-tabs v-model:active-key="metadataActive" type="card">
|
||||
<a-tab-pane key="editor" tab="元数据"> </a-tab-pane>
|
||||
<a-tab-pane key="source" tab="yaml"> </a-tab-pane>
|
||||
</a-tabs>
|
||||
<div class="metadata-body">
|
||||
<a-tabs v-if="metadataActive === 'editor'" class="metadata-editor" tab-position="left" type="card">
|
||||
<a-tab-pane key="input" tab="输入">
|
||||
<plugin-input></plugin-input>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane key="output" tab="输出"></a-tab-pane>
|
||||
<a-tab-pane key="dependLibs" tab="第三方依赖"></a-tab-pane>
|
||||
<a-tab-pane key="dependPlugins" tab="插件依赖"></a-tab-pane>
|
||||
</a-tabs>
|
||||
|
||||
<div v-if="metadataActive === 'source'" class="metadata-source">
|
||||
<fs-editor-code v-model="plugin.metadata" language="yaml"></fs-editor-code>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="script">
|
||||
<a-tabs type="card">
|
||||
<a-tab-pane key="script" tab="脚本"> </a-tab-pane>
|
||||
</a-tabs>
|
||||
<fs-editor-code v-model="plugin.content" language="javascript"></fs-editor-code>
|
||||
</div>
|
||||
</div>
|
||||
</fs-page>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { onMounted, ref, watch } from "vue";
|
||||
import { useRoute } from "vue-router";
|
||||
import * as api from "./api";
|
||||
import PluginInput from "/@/views/sys/plugin/components/plugin-input.vue";
|
||||
defineOptions({
|
||||
name: "SysPluginEdit",
|
||||
});
|
||||
const route = useRoute();
|
||||
|
||||
const plugin = ref<any>({});
|
||||
|
||||
const metadataActive = ref("editor");
|
||||
async function getPlugin() {
|
||||
const id = route.query.id;
|
||||
plugin.value = await api.GetObj(id);
|
||||
}
|
||||
|
||||
onMounted(async () => {
|
||||
await getPlugin();
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="less">
|
||||
.page-plugin-edit {
|
||||
.pi-plugin-editor {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 20px;
|
||||
.fs-editor-code {
|
||||
height: 100%;
|
||||
flex: 1;
|
||||
overflow-y: hidden;
|
||||
}
|
||||
|
||||
.metadata {
|
||||
width: 500px;
|
||||
margin-right: 20px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
.metadata-body {
|
||||
height: 100%;
|
||||
flex: 1;
|
||||
overflow-y: hidden;
|
||||
}
|
||||
|
||||
.metadata-editor {
|
||||
height: 100%;
|
||||
flex: 1;
|
||||
overflow-y: hidden;
|
||||
.ant-tabs-content {
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
.metadata-source {
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
.script {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -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,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -26,6 +26,11 @@ export class PluginService extends BaseService<PluginEntity> {
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
async page(pageReq: PageReq<PluginEntity>) {
|
||||
|
||||
if(pageReq.query.type && pageReq.query.type !=='builtIn'){
|
||||
return await super.page(pageReq);
|
||||
}
|
||||
|
||||
const builtInList = await this.getBuiltInEntityList();
|
||||
return {
|
||||
records: builtInList,
|
||||
|
||||
214
pnpm-lock.yaml
generated
214
pnpm-lock.yaml
generated
@@ -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)):
|
||||
|
||||
Reference in New Issue
Block a user