cloudcc-cli 2.3.4 → 2.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.json +22 -1
- package/.cursor/skills/cloudcc-cli-dev/SKILL.md +175 -0
- package/.cursor/skills/cloudcc-dev-skill/SKILL.md +71 -0
- package/README.md +81 -6
- package/bin/cc.js +106 -28
- package/bin/index.js +54 -55
- package/mcp/cliRunner.js +11 -4
- package/mcp/index.js +12 -2
- package/mcp/tools/Application Creator/handler.js +1 -1
- package/mcp/tools/Approval/handler.js +3 -3
- package/mcp/tools/Class Creator/handler.js +2 -2
- package/mcp/tools/Class Detail Retriever/handler.js +1 -1
- package/mcp/tools/Class Editor Guide/handler.js +1 -1
- package/mcp/tools/Class List Retriever/handler.js +1 -1
- package/mcp/tools/Class Publisher/handler.js +1 -1
- package/mcp/tools/Class Puller/handler.js +1 -1
- package/mcp/tools/Client Script Detail Retriever/handler.js +1 -1
- package/mcp/tools/Client Script Editor Guide/handler.js +1 -1
- package/mcp/tools/Client Script List Retriever/handler.js +1 -1
- package/mcp/tools/Client Script Publisher/handler.js +1 -1
- package/mcp/tools/Client Script Puller/handler.js +2 -2
- package/mcp/tools/CloudCC Development Overview/handler.js +2 -2
- package/mcp/tools/Component Creator/handler.js +1 -1
- package/mcp/tools/Component Detail Retriever/handler.js +1 -1
- package/mcp/tools/Component Editor Guide/handler.js +1 -1
- package/mcp/tools/Component List Retriever/handler.js +1 -1
- package/mcp/tools/Component Publisher/handler.js +2 -2
- package/mcp/tools/Component Puller/handler.js +1 -1
- package/mcp/tools/Dev Environment Creator/handler.js +1 -1
- package/mcp/tools/Dev Environment Validator/handler.js +1 -1
- package/mcp/tools/Developer Key Setup Guide/handler.js +1 -1
- package/mcp/tools/JSP Migrator/handler.js +46 -0
- package/mcp/tools/Menu Creator/handler.js +1 -1
- package/mcp/tools/Object Creator/handler.js +2 -2
- package/mcp/tools/Object Fields Creator/handler.js +1 -1
- package/mcp/tools/Object Fields Retriever/handler.js +1 -1
- package/mcp/tools/Object List Retriever/handler.js +1 -1
- package/mcp/tools/Scheduled Class Creator/handler.js +1 -1
- package/mcp/tools/Scheduled Class Detail Retriever/handler.js +1 -1
- package/mcp/tools/Scheduled Class List Retriever/handler.js +1 -1
- package/mcp/tools/Scheduled Class Publisher/handler.js +1 -1
- package/mcp/tools/Scheduled Class Puller/handler.js +1 -1
- package/mcp/tools/Trigger Creator/handler.js +1 -1
- package/mcp/tools/Trigger Detail Retriever/handler.js +1 -1
- package/mcp/tools/Trigger Editor Guide/handler.js +1 -1
- package/mcp/tools/Trigger List Retriever/handler.js +1 -1
- package/mcp/tools/Trigger Publisher/handler.js +1 -1
- package/mcp/tools/Trigger Puller/handler.js +1 -1
- package/package.json +3 -3
- package/src/application/create.js +2 -2
- package/src/application/delete.js +2 -2
- package/src/application/doc.js +2 -2
- package/src/application/docs/devguide.md +25 -25
- package/src/application/docs/introduction.md +2 -2
- package/src/button/create.js +169 -0
- package/src/button/delete.js +35 -0
- package/src/button/doc.js +36 -0
- package/src/button/docs/devguide.md +133 -0
- package/src/button/docs/introduction.md +60 -0
- package/src/button/get.js +60 -0
- package/src/button/index.js +20 -0
- package/src/classes/create.js +1 -1
- package/src/classes/delete.js +1 -1
- package/src/classes/detail.js +1 -1
- package/src/classes/doc.js +2 -2
- package/src/classes/docs/devguide.md +21 -21
- package/src/classes/docs/introduction.md +0 -20
- package/src/classes/get.js +1 -1
- package/src/classes/publish.js +1 -1
- package/src/classes/pull.js +1 -1
- package/src/classes/pullList.js +1 -1
- package/src/config/doc.js +2 -2
- package/src/config/docs/devguide.md +15 -15
- package/src/customPage/create.js +2 -2
- package/src/customPage/delete.js +2 -2
- package/src/customPage/doc.js +2 -2
- package/src/customPage/docs/devguide.md +27 -27
- package/src/customPage/get.js +1 -1
- package/src/customSetting/create.js +1 -1
- package/src/customSetting/delete.js +1 -1
- package/src/customSetting/deleteCustomSettingField.js +1 -1
- package/src/customSetting/detail.js +1 -1
- package/src/customSetting/docs/devguide.md +9 -9
- package/src/customSetting/editCustomSettingField.js +1 -1
- package/src/customSetting/get.js +1 -1
- package/src/customSetting/modify.js +1 -1
- package/src/customSetting/saveCustomSettingField.js +1 -1
- package/src/fields/delete.js +2 -2
- package/src/fields/docs/devguide.md +14 -14
- package/src/fields/docs/introduction.md +3 -3
- package/src/globalSelectList/create.js +1 -1
- package/src/globalSelectList/delete.js +1 -1
- package/src/globalSelectList/detail.js +1 -1
- package/src/globalSelectList/doc.js +2 -2
- package/src/globalSelectList/docs/devguide.md +7 -7
- package/src/globalSelectList/get.js +1 -1
- package/src/identityProvider/create.js +78 -0
- package/src/identityProvider/delete.js +61 -0
- package/src/identityProvider/doc.js +46 -0
- package/src/identityProvider/docs/devguide.md +107 -0
- package/src/identityProvider/docs/introduction.md +31 -0
- package/src/identityProvider/download.js +105 -0
- package/src/identityProvider/get.js +70 -0
- package/src/identityProvider/index.js +12 -0
- package/src/menu/create-object.js +2 -2
- package/src/menu/create-page.js +2 -2
- package/src/menu/create-script.js +2 -2
- package/src/menu/create-site.js +2 -2
- package/src/menu/create.js +11 -11
- package/src/menu/delete.js +2 -2
- package/src/menu/doc.js +2 -2
- package/src/menu/docs/devguide.md +13 -13
- package/src/menu/docs/introduction.md +3 -3
- package/src/menu/get.js +1 -1
- package/src/object/create.js +2 -2
- package/src/object/delete.js +2 -2
- package/src/object/docs/devguide.md +11 -11
- package/src/pagelayout/create.js +6 -6
- package/src/pagelayout/delete.js +4 -4
- package/src/pagelayout/doc.js +2 -2
- package/src/pagelayout/docs/devguide.md +9 -9
- package/src/pagelayout/docs/introduction.md +1 -1
- package/src/pagelayout/get.js +4 -4
- package/src/permission/add.js +164 -0
- package/src/permission/assign.js +84 -0
- package/src/permission/docs/devguide.md +238 -0
- package/src/permission/docs/introduction.md +200 -0
- package/src/permission/get.js +107 -0
- package/src/permission/index.js +10 -0
- package/src/permission/remove.js +145 -0
- package/src/plugin/delete.js +2 -2
- package/src/plugin/doc.js +2 -2
- package/src/plugin/docs/devguide.md +29 -29
- package/src/profile/create.js +5 -5
- package/src/profile/delete.js +2 -2
- package/src/profile/doc.js +2 -2
- package/src/profile/docs/devguide.md +8 -8
- package/src/profile/docs/introduction.md +12 -12
- package/src/profile/get.js +1 -1
- package/src/project/docs/devguide.md +9 -8
- package/src/recordType/create.js +1 -1
- package/src/recordType/delete.js +1 -1
- package/src/recordType/doc.js +2 -2
- package/src/recordType/docs/devguide.md +10 -10
- package/src/recordType/editInfo.js +1 -1
- package/src/recordType/editSave.js +1 -1
- package/src/recordType/getList.js +1 -1
- package/src/recordType/newInfo.js +1 -1
- package/src/recordType/validDelete.js +1 -1
- package/src/res.md +1 -1
- package/src/role/create.js +6 -6
- package/src/role/delete.js +2 -2
- package/src/role/doc.js +2 -2
- package/src/role/docs/devguide.md +9 -9
- package/src/role/docs/introduction.md +13 -13
- package/src/role/get.js +1 -1
- package/src/scheduleJob/doc.js +1 -1
- package/src/scheduleJob/docs/devguide.md +6 -6
- package/src/scheduleJob/docs/introduction.md +6 -6
- package/src/script/docs/devguide.md +18 -18
- package/src/singleSignOn/delete.js +61 -0
- package/src/singleSignOn/doc.js +46 -0
- package/src/singleSignOn/docs/devguide.md +61 -0
- package/src/singleSignOn/docs/introduction.md +3 -0
- package/src/singleSignOn/get.js +70 -0
- package/src/singleSignOn/index.js +10 -0
- package/src/staticResource/count.js +1 -1
- package/src/staticResource/create.js +1 -1
- package/src/staticResource/delete.js +1 -1
- package/src/staticResource/detail.js +1 -1
- package/src/staticResource/docs/devguide.md +11 -11
- package/src/staticResource/docs/introduction.md +44 -1
- package/src/staticResource/get.js +1 -1
- package/src/timer/create.js +1 -1
- package/src/timer/delete.js +1 -1
- package/src/timer/detail.js +1 -1
- package/src/timer/doc.js +2 -2
- package/src/timer/docs/devguide.md +19 -19
- package/src/timer/get.js +1 -1
- package/src/timer/publish.js +1 -1
- package/src/timer/pull.js +1 -1
- package/src/timer/pullList.js +1 -1
- package/src/triggers/detail.js +1 -1
- package/src/triggers/doc.js +2 -2
- package/src/triggers/docs/devguide.md +23 -23
- package/src/triggers/get.js +1 -1
- package/src/triggers/pullList.js +1 -1
- package/src/user/create.js +2 -2
- package/src/user/delete.js +2 -2
- package/src/user/doc.js +2 -2
- package/src/user/docs/devguide.md +13 -13
- package/src/user/docs/introduction.md +12 -12
- package/src/user/get.js +1 -1
- package/src/user/update.js +3 -3
- package/src/user/view.js +2 -2
- package/src/validationRule/create.js +7 -7
- package/src/validationRule/delete.js +2 -2
- package/src/validationRule/doc.js +2 -2
- package/src/validationRule/docs/devguide.md +7 -7
- package/src/validationRule/docs/introduction.md +11 -11
- package/src/validationRule/get.js +1 -1
- package/src/version/actionHelp.js +25 -0
- package/src/version/docs.js +26 -0
- package/src/version/doctor.js +25 -0
- package/src/version/get.js +1 -1
- package/src/version/help.js +48 -0
- package/src/version/index.js +9 -2
- package/src/version/initHelp.js +13 -0
- package/src/version/listModuleCommands.js +241 -0
- package/src/version/stats.js +44 -0
- package/src/version/uninstall.js +30 -0
- package/src/version/update.js +13 -0
- package/test/application.cli.test.js +1 -1
- package/test/classes.cli.test.js +1 -1
- package/test/customSetting.cli.test.js +1 -1
- package/test/fields.cli.test.js +2 -2
- package/test/globalSelectList.cli.test.js +1 -1
- package/test/menu-script.cli.test.js +1 -1
- package/test/menu.cli.test.js +1 -1
- package/test/object.cli.test.js +1 -1
- package/test/plugin.cli.test.js +1 -1
- package/test/scheduleJob.cli.test.js +1 -1
- package/test/script.cli.test.js +1 -1
- package/test/staticResource.cli.test.js +1 -1
- package/test/timer.cli.test.js +1 -1
- package/test/trigger.cli.test.js +1 -1
- package/utils/checkVersion.js +27 -2
- package/utils/commandStats.js +94 -0
- package/utils/formatReleaseNotes.js +312 -0
- package/utils/readmeReleases.js +69 -0
- package/.cloudcc-cache.json +0 -54
- package/.cursor/skills/cloudcc-cli-dev.zip +0 -0
- package/.cursor/skills/cloudcc-dev-usage/SKILL.md +0 -68
- package/build/component-cc-cc-dd.common.js +0 -831
- package/build/component-cc-cc-dd.common.js.map +0 -1
- package/build/component-cc-cc-dd.css +0 -1
- package/build/component-cc-cc-dd.umd.js +0 -874
- package/build/component-cc-cc-dd.umd.js.map +0 -1
- package/build/component-cc-cc-dd.umd.min.js +0 -8
- package/build/component-cc-cc-dd.umd.min.js.map +0 -1
- package/build/demo.html +0 -1
- package/plugins/cc-cc-dd/cc-cc-dd.vue +0 -32
- package/plugins/cc-cc-dd/components/HelloWorld.vue +0 -11
- package/plugins/cc-cc-dd/config.json +0 -6
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
const { getPackageJson } = require("../../utils/config");
|
|
2
|
+
const { postClass } = require("../../utils/http");
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* cloudcc get button <projectPath> <prefix>
|
|
6
|
+
* 查询对象的标准按钮和自定义按钮列表
|
|
7
|
+
*
|
|
8
|
+
* @param {string} projectPath
|
|
9
|
+
* @param {string} prefix 对象 prefix(如 "a75")
|
|
10
|
+
* @param {boolean} isMcp
|
|
11
|
+
*/
|
|
12
|
+
async function get(projectPath = process.cwd(), prefix, isMcp = false) {
|
|
13
|
+
if (!prefix) {
|
|
14
|
+
throw new Error("Get Button List Failed: prefix is required");
|
|
15
|
+
}
|
|
16
|
+
const config = await getPackageJson(projectPath);
|
|
17
|
+
const res = await postClass(
|
|
18
|
+
config.setupSvc + "/api/buttonlink/listButton",
|
|
19
|
+
{ prefix },
|
|
20
|
+
config.accessToken
|
|
21
|
+
);
|
|
22
|
+
if (res && res.result) {
|
|
23
|
+
const data = res.data || {};
|
|
24
|
+
const result = {
|
|
25
|
+
objname: data.objname || "",
|
|
26
|
+
objid: data.objid || "",
|
|
27
|
+
standbutton: (data.standbutton || []).map(btn => ({
|
|
28
|
+
id: btn.id,
|
|
29
|
+
label: btn.label,
|
|
30
|
+
name: btn.name,
|
|
31
|
+
btnType: btn.btnType,
|
|
32
|
+
category: btn.category,
|
|
33
|
+
event: btn.event,
|
|
34
|
+
behavior: btn.behavior,
|
|
35
|
+
url: btn.url || null,
|
|
36
|
+
functionCode: btn.functionCode || null,
|
|
37
|
+
mobileurl: btn.mobileurl || ""
|
|
38
|
+
})),
|
|
39
|
+
custbutton: (data.custbutton || []).map(btn => ({
|
|
40
|
+
id: btn.id,
|
|
41
|
+
label: btn.label,
|
|
42
|
+
name: btn.name,
|
|
43
|
+
btnType: btn.btnType,
|
|
44
|
+
category: btn.category,
|
|
45
|
+
event: btn.event,
|
|
46
|
+
behavior: btn.behavior,
|
|
47
|
+
url: btn.url || null,
|
|
48
|
+
functionCode: btn.functionCode || null,
|
|
49
|
+
mobileurl: btn.mobileurl || ""
|
|
50
|
+
}))
|
|
51
|
+
};
|
|
52
|
+
if (!isMcp) {
|
|
53
|
+
console.log(JSON.stringify(result));
|
|
54
|
+
}
|
|
55
|
+
return result;
|
|
56
|
+
}
|
|
57
|
+
throw new Error("Get Button List Failed: " + (res?.returnInfo || res?.message || "Unknown error"));
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
module.exports = get;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const cc = {};
|
|
2
|
+
cc.doc = require("./doc");
|
|
3
|
+
cc.get = require("./get");
|
|
4
|
+
cc.create = require("./create");
|
|
5
|
+
cc.delete = require("./delete");
|
|
6
|
+
|
|
7
|
+
function Button(action, argvs) {
|
|
8
|
+
if (action === "doc") {
|
|
9
|
+
cc.doc(argvs);
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
if (action === "create") {
|
|
13
|
+
// cloudcc create button <projectPath> <objid> <label> [name] [btnType] [event]
|
|
14
|
+
cc.create(argvs[2], argvs[3], argvs[4], argvs[5], argvs[6], argvs[7]);
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
cc[action](argvs[2], argvs[3], argvs[4]);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
module.exports = Button;
|
package/src/classes/create.js
CHANGED
package/src/classes/delete.js
CHANGED
|
@@ -5,7 +5,7 @@ const { getPackageJson } = require("../../utils/config");
|
|
|
5
5
|
const { postClass } = require("../../utils/http");
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* cloudcc delete classes <nameOrId> [projectPath]
|
|
9
9
|
* @param {string[]} argvs [action, type, nameOrId, projectPath?]
|
|
10
10
|
*/
|
|
11
11
|
async function remove(argvs) {
|
package/src/classes/detail.js
CHANGED
package/src/classes/doc.js
CHANGED
|
@@ -38,14 +38,14 @@ function getDevGuideDoc() {
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
/**
|
|
41
|
-
*
|
|
41
|
+
* cloudcc doc classes <introduction|devguide>
|
|
42
42
|
* @param {string[]} argvs [doc, type, introduction|devguide, ...]
|
|
43
43
|
*/
|
|
44
44
|
function doc(argvs) {
|
|
45
45
|
const subType = argvs[2]
|
|
46
46
|
const key = String(subType || "").trim().toLowerCase();
|
|
47
47
|
if (!key) {
|
|
48
|
-
throw new Error("
|
|
48
|
+
throw new Error("cloudcc doc classes 需要子命令:introduction 或 devguide");
|
|
49
49
|
}
|
|
50
50
|
if (key === "introduction") {
|
|
51
51
|
const content = getIntroductionDoc();
|
|
@@ -20,21 +20,21 @@
|
|
|
20
20
|
**允许的做法**:在 CLI 已生成的主类 `*.java` 中,仅在上述 SOURCE
|
|
21
21
|
标记之间编写与修改业务代码;其余与平台同步相关的操作一律走命令。
|
|
22
22
|
|
|
23
|
-
执行命令前请确认:已完成 `
|
|
23
|
+
执行命令前请确认:已完成 `cloudcc doc project devguide`
|
|
24
24
|
中的环境初始化,项目根目录配置可用且包含 `accessToken`。
|
|
25
25
|
|
|
26
26
|
### 0.1 命令总览(以代码实现为准)
|
|
27
27
|
|
|
28
28
|
```bash
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
29
|
+
cloudcc create classes <name>
|
|
30
|
+
cloudcc publish classes <name>
|
|
31
|
+
cloudcc pull classes <name>
|
|
32
|
+
cloudcc get classes [listQueryJson] [projectPath]
|
|
33
|
+
cloudcc detail classes <name>
|
|
34
|
+
cloudcc detail classes "" <id>
|
|
35
|
+
cloudcc pullList classes <id> <projectPath>
|
|
36
|
+
cloudcc delete classes <nameOrId> [projectPath]
|
|
37
|
+
cloudcc doc classes <introduction|devguide>
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
参数约定:
|
|
@@ -44,7 +44,7 @@ cc doc classes <introduction|devguide>
|
|
|
44
44
|
编码后传入。不传时使用默认分页参数。
|
|
45
45
|
- `projectPath`:项目根路径,可选;不传则使用当前工作目录。
|
|
46
46
|
- `id`:线上类 ID。`detail`
|
|
47
|
-
在仅查服务器时可将类名置空:`
|
|
47
|
+
在仅查服务器时可将类名置空:`cloudcc detail classes "" <id>`。`pullList` 用 ID
|
|
48
48
|
将线上类落到指定项目的 `classes/` 下。
|
|
49
49
|
- `nameOrId`:本地目录名,或类 ID。若本地存在 `config.json` 且含
|
|
50
50
|
`id`,删除时会优先用其中的服务器 ID。
|
|
@@ -66,29 +66,29 @@ cc doc classes <introduction|devguide>
|
|
|
66
66
|
|
|
67
67
|
```bash
|
|
68
68
|
# 1) 查看线上已有类(可选,避免重名或确认 ID)
|
|
69
|
-
|
|
69
|
+
cloudcc get classes
|
|
70
70
|
|
|
71
71
|
# 2) 新建类(仅通过 create 生成目录与文件)
|
|
72
|
-
|
|
72
|
+
cloudcc create classes MyClass
|
|
73
73
|
|
|
74
74
|
# 3) 编辑 classes/MyClass/MyClass.java 中 SOURCE 区域后发布
|
|
75
|
-
|
|
75
|
+
cloudcc publish classes MyClass
|
|
76
76
|
|
|
77
77
|
# 4) 需要与服务器对齐时,拉取覆盖本地 SOURCE 区域
|
|
78
|
-
|
|
78
|
+
cloudcc pull classes MyClass
|
|
79
79
|
|
|
80
80
|
# 5) 按已知线上类 ID 拉到指定项目(迁移、批量)
|
|
81
|
-
|
|
81
|
+
cloudcc pullList classes <线上类ID> <projectPath>
|
|
82
82
|
|
|
83
83
|
# 6) 不再使用时删除线上类
|
|
84
|
-
|
|
84
|
+
cloudcc delete classes MyClass
|
|
85
85
|
```
|
|
86
86
|
|
|
87
87
|
### 0.4 文档子命令
|
|
88
88
|
|
|
89
89
|
```bash
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
cloudcc doc classes introduction
|
|
91
|
+
cloudcc doc classes devguide
|
|
92
92
|
```
|
|
93
93
|
|
|
94
94
|
仅支持 `introduction` 与 `devguide`,其他子命令会报错。
|
|
@@ -525,8 +525,8 @@ new PageClsInvoker(userInfo).invoker("Hello", "test3", null, arglist);
|
|
|
525
525
|
|
|
526
526
|
## 6. 自定义类开发 Checklist
|
|
527
527
|
|
|
528
|
-
- [ ] 类目录与平台同步仅通过 `
|
|
529
|
-
`
|
|
528
|
+
- [ ] 类目录与平台同步仅通过 `cloudcc create` / `cloudcc pull` / `cloudcc pullList` /
|
|
529
|
+
`cloudcc publish` / `cloudcc delete` 等命令操作,不手工造目录或改 `config.json` 的
|
|
530
530
|
`id`
|
|
531
531
|
- [ ] 类名、方法名与调用方(按钮/触发器/组件/定时作业)约定一致
|
|
532
532
|
- [ ] 构造函数正确接收 `UserInfo` 并实例化 `CCService` 等依赖
|
|
@@ -232,26 +232,6 @@
|
|
|
232
232
|
|
|
233
233
|
---
|
|
234
234
|
|
|
235
|
-
## 11. 线上现状观察(来自当前环境)
|
|
236
|
-
|
|
237
|
-
线上共 87 个自定义类,命名与职责呈现明显分层趋势:
|
|
238
|
-
|
|
239
|
-
- `Controller` 类:承接流程入口与动作编排
|
|
240
|
-
- `Util` 类:沉淀通用方法与查询能力
|
|
241
|
-
- `Service` 类:承担外部集成与业务服务
|
|
242
|
-
- `Handler` 类:承接触发器下沉逻辑
|
|
243
|
-
- `Bot` 类:承载智能助手相关业务
|
|
244
|
-
|
|
245
|
-
从源码统计看,当前环境中大量类已在使用:
|
|
246
|
-
|
|
247
|
-
- `CCService`(数据 CRUD 与查询)
|
|
248
|
-
- JSON 处理能力
|
|
249
|
-
- 异常机制(`Exception` 相关)
|
|
250
|
-
|
|
251
|
-
这说明自定义类已成为该环境中“复杂逻辑与复用能力”的核心载体。
|
|
252
|
-
|
|
253
|
-
---
|
|
254
|
-
|
|
255
235
|
## 12. 一句话结论
|
|
256
236
|
|
|
257
237
|
当业务进入“多对象、复杂规则、跨系统、可复用、可治理”阶段时,CloudCC 自定义类是最关键的后端实现手段:它不仅能实现功能,更能提升系统长期可维护性与稳定性。
|
package/src/classes/get.js
CHANGED
|
@@ -2,7 +2,7 @@ const { getPackageJson } = require("../../utils/config")
|
|
|
2
2
|
const { postClass } = require("../../utils/http")
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* cloudcc get classes [listQueryJson] [projectPath]
|
|
6
6
|
* @param {string[]} argvs [action, type, listQuery?, projectPath?, isMcp?]
|
|
7
7
|
*/
|
|
8
8
|
async function get(argvs) {
|
package/src/classes/publish.js
CHANGED
|
@@ -10,7 +10,7 @@ const { javaContentRegular } = require("../../utils/utils")
|
|
|
10
10
|
const { getPackageJson } = require("../../utils/config")
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
13
|
+
* cloudcc publish classes <name>
|
|
14
14
|
* @param {string[]} argvs [action, type, name, ...]
|
|
15
15
|
*/
|
|
16
16
|
async function publish(argvs) {
|
package/src/classes/pull.js
CHANGED
|
@@ -9,7 +9,7 @@ const { getPackageJson } = require("../../utils/config")
|
|
|
9
9
|
const { postClass } = require("../../utils/http")
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
12
|
+
* cloudcc pull classes <name>
|
|
13
13
|
* @param {string[]} argvs [action, type, name, ...]
|
|
14
14
|
*/
|
|
15
15
|
async function pull(argvs) {
|
package/src/classes/pullList.js
CHANGED
|
@@ -4,7 +4,7 @@ const { getPackageJson } = require("../../utils/config");
|
|
|
4
4
|
const { postClass } = require("../../utils/http");
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* cloudcc pullList classes <id> <projectPath>
|
|
8
8
|
* @param {string[]} argvs [action, type, id, projectPath?, isMcp?]
|
|
9
9
|
*/
|
|
10
10
|
async function pullList(argvs) {
|
package/src/config/doc.js
CHANGED
|
@@ -11,14 +11,14 @@ function getDevGuideDoc() {
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
14
|
+
* cloudcc doc config devguide
|
|
15
15
|
* @param {string[]} argvs [doc, config, devguide, ...]
|
|
16
16
|
*/
|
|
17
17
|
function doc(argvs) {
|
|
18
18
|
const subType = argvs[2];
|
|
19
19
|
const key = String(subType || "").trim().toLowerCase();
|
|
20
20
|
if (!key) {
|
|
21
|
-
throw new Error("
|
|
21
|
+
throw new Error("cloudcc doc config 需要子命令:devguide");
|
|
22
22
|
}
|
|
23
23
|
if (key === "devguide") {
|
|
24
24
|
const content = getDevGuideDoc();
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
当前支持:
|
|
8
8
|
|
|
9
|
-
- 切换当前环境:`
|
|
10
|
-
- 查看当前配置:`
|
|
11
|
-
- 查看开发文档:`
|
|
9
|
+
- 切换当前环境:`cloudcc use config <env> [projectPath]`
|
|
10
|
+
- 查看当前配置:`cloudcc get config [projectPath]`
|
|
11
|
+
- 查看开发文档:`cloudcc doc config devguide`
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
执行命令前请确认:
|
|
18
18
|
|
|
19
|
-
- 已完成 `
|
|
19
|
+
- 已完成 `cloudcc doc project devguide` 的初始化流程
|
|
20
20
|
- 项目根目录存在 `cloudcc-cli.config.js`
|
|
21
21
|
- `cloudcc-cli.config.js` 中包含可切换的环境配置(如 `test`、`prod`)
|
|
22
22
|
|
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
## 3. 命令总览(以当前实现为准)
|
|
26
26
|
|
|
27
27
|
```bash
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
cloudcc use config <env> [projectPath]
|
|
29
|
+
cloudcc get config [projectPath]
|
|
30
|
+
cloudcc doc config devguide
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
参数约定:
|
|
@@ -40,7 +40,7 @@ cc doc config devguide
|
|
|
40
40
|
## 4. 切换环境
|
|
41
41
|
|
|
42
42
|
```bash
|
|
43
|
-
|
|
43
|
+
cloudcc use config <env> [projectPath]
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
说明:
|
|
@@ -53,7 +53,7 @@ cc use config <env> [projectPath]
|
|
|
53
53
|
|
|
54
54
|
```bash
|
|
55
55
|
# 在当前目录切换到 test 环境
|
|
56
|
-
|
|
56
|
+
cloudcc use config test .
|
|
57
57
|
```
|
|
58
58
|
|
|
59
59
|
---
|
|
@@ -61,7 +61,7 @@ cc use config test .
|
|
|
61
61
|
## 5. 查看配置
|
|
62
62
|
|
|
63
63
|
```bash
|
|
64
|
-
|
|
64
|
+
cloudcc get config [projectPath]
|
|
65
65
|
```
|
|
66
66
|
|
|
67
67
|
说明:
|
|
@@ -73,7 +73,7 @@ cc get config [projectPath]
|
|
|
73
73
|
|
|
74
74
|
```bash
|
|
75
75
|
# 查看当前目录配置
|
|
76
|
-
|
|
76
|
+
cloudcc get config .
|
|
77
77
|
```
|
|
78
78
|
|
|
79
79
|
---
|
|
@@ -82,7 +82,7 @@ cc get config .
|
|
|
82
82
|
|
|
83
83
|
- 执行路径错误会导致找不到 `cloudcc-cli.config.js`
|
|
84
84
|
- `env` 必须是配置中可识别的环境名称,否则后续命令可能读取失败
|
|
85
|
-
- 切换环境后建议立即执行一次 `
|
|
85
|
+
- 切换环境后建议立即执行一次 `cloudcc get config .` 进行确认
|
|
86
86
|
|
|
87
87
|
---
|
|
88
88
|
|
|
@@ -90,11 +90,11 @@ cc get config .
|
|
|
90
90
|
|
|
91
91
|
```bash
|
|
92
92
|
# 1) 查看当前配置
|
|
93
|
-
|
|
93
|
+
cloudcc get config .
|
|
94
94
|
|
|
95
95
|
# 2) 切换到目标环境
|
|
96
|
-
|
|
96
|
+
cloudcc use config test .
|
|
97
97
|
|
|
98
98
|
# 3) 再次查看,确认已生效
|
|
99
|
-
|
|
99
|
+
cloudcc get config .
|
|
100
100
|
```
|
package/src/customPage/create.js
CHANGED
|
@@ -11,7 +11,7 @@ function isEmptyArg(v) {
|
|
|
11
11
|
* 新建自定义页面
|
|
12
12
|
*
|
|
13
13
|
* 用法:
|
|
14
|
-
*
|
|
14
|
+
* cloudcc create customPage <pageLabel> <pageApi> <pluginId|compLabel> [projectPath]
|
|
15
15
|
* 无参数(仅 create customPage)时:拉取自定义组件列表,使用第一个组件,并自动生成 pageLabel / pageApi。
|
|
16
16
|
*/
|
|
17
17
|
async function createCustomPage(argvs) {
|
|
@@ -26,7 +26,7 @@ async function createCustomPage(argvs) {
|
|
|
26
26
|
if (!noPageArgs && (isEmptyArg(pageLabel) || isEmptyArg(pageApi) || isEmptyArg(pluginIdentifier))) {
|
|
27
27
|
console.error();
|
|
28
28
|
console.error(chalk.red('Error: pageLabel、pageApi、pluginId/compLabel 需同时提供,或全部省略以使用第一个自定义组件'));
|
|
29
|
-
console.error(chalk.yellow('Usage:
|
|
29
|
+
console.error(chalk.yellow('Usage: cloudcc create customPage [<pageLabel> <pageApi> <pluginId|compLabel>] [projectPath]'));
|
|
30
30
|
console.error();
|
|
31
31
|
return;
|
|
32
32
|
}
|
package/src/customPage/delete.js
CHANGED
|
@@ -6,7 +6,7 @@ const BaseUrl = 'https://developer.apis.cloudcc.cn';
|
|
|
6
6
|
/**
|
|
7
7
|
* 删除自定义页面
|
|
8
8
|
*
|
|
9
|
-
* 用法:
|
|
9
|
+
* 用法:cloudcc delete customPage <id> [projectPath]
|
|
10
10
|
*/
|
|
11
11
|
async function deleteCustomPage(argvs) {
|
|
12
12
|
const id = argvs[2];
|
|
@@ -15,7 +15,7 @@ async function deleteCustomPage(argvs) {
|
|
|
15
15
|
if (!id) {
|
|
16
16
|
console.error();
|
|
17
17
|
console.error(chalk.red('Error: Custom page ID is required'));
|
|
18
|
-
console.error(chalk.yellow('Usage:
|
|
18
|
+
console.error(chalk.yellow('Usage: cloudcc delete customPage <id> [projectPath]'));
|
|
19
19
|
console.error();
|
|
20
20
|
return;
|
|
21
21
|
}
|
package/src/customPage/doc.js
CHANGED
|
@@ -21,14 +21,14 @@ function getDevGuideDoc() {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
|
-
*
|
|
24
|
+
* cloudcc doc customPage <introduction|devguide>
|
|
25
25
|
* @param {string[]} argvs [doc, type, introduction|devguide, ...]
|
|
26
26
|
*/
|
|
27
27
|
function doc(argvs) {
|
|
28
28
|
const subType = argvs[2];
|
|
29
29
|
const key = String(subType || "").trim().toLowerCase();
|
|
30
30
|
if (!key) {
|
|
31
|
-
throw new Error("
|
|
31
|
+
throw new Error("cloudcc doc customPage 需要子命令:introduction 或 devguide");
|
|
32
32
|
}
|
|
33
33
|
if (key === "introduction") {
|
|
34
34
|
const content = getIntroductionDoc();
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
`customPage` 模块用于通过 CLI 管理自定义页面,当前提供:
|
|
6
6
|
|
|
7
|
-
- 创建页面:`
|
|
8
|
-
- 查询页面:`
|
|
9
|
-
- 删除页面:`
|
|
10
|
-
- 文档查看:`
|
|
7
|
+
- 创建页面:`cloudcc create customPage ...`
|
|
8
|
+
- 查询页面:`cloudcc get customPage ...`
|
|
9
|
+
- 删除页面:`cloudcc delete customPage ...`
|
|
10
|
+
- 文档查看:`cloudcc doc customPage introduction|devguide`
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
执行命令前请确认:
|
|
17
17
|
|
|
18
|
-
- 已完成 `
|
|
18
|
+
- 已完成 `cloudcc doc project devguide` 的环境准备
|
|
19
19
|
- 项目路径下存在可用配置,且包含 `accessToken`
|
|
20
20
|
- 当前组织已存在至少一个自定义组件(创建页面时会依赖组件列表)
|
|
21
21
|
|
|
@@ -30,10 +30,10 @@ Error: Configuration not found or accessToken is missing
|
|
|
30
30
|
## 3. 命令总览(以代码实现为准)
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
cloudcc create customPage [<pageLabel> <pageApi> <pluginId|compLabel>] [projectPath]
|
|
34
|
+
cloudcc get customPage [pageNo] [pageSize] [projectPath]
|
|
35
|
+
cloudcc delete customPage <id> [projectPath]
|
|
36
|
+
cloudcc doc customPage <introduction|devguide>
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
---
|
|
@@ -43,7 +43,7 @@ cc doc customPage <introduction|devguide>
|
|
|
43
43
|
## 4.1 标准创建模式
|
|
44
44
|
|
|
45
45
|
```bash
|
|
46
|
-
|
|
46
|
+
cloudcc create customPage <pageLabel> <pageApi> <pluginId|compLabel> [projectPath]
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
参数说明:
|
|
@@ -59,14 +59,14 @@ cc create customPage <pageLabel> <pageApi> <pluginId|compLabel> [projectPath]
|
|
|
59
59
|
示例:
|
|
60
60
|
|
|
61
61
|
```bash
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
cloudcc create customPage "合同助手页面" contract_assistant_page 2f9d0d6d2a ./
|
|
63
|
+
cloudcc create customPage "合同助手页面" contract_assistant_page 合同助手组件
|
|
64
64
|
```
|
|
65
65
|
|
|
66
66
|
## 4.2 自动创建模式(无参数)
|
|
67
67
|
|
|
68
68
|
```bash
|
|
69
|
-
|
|
69
|
+
cloudcc create customPage
|
|
70
70
|
```
|
|
71
71
|
|
|
72
72
|
当不传 `pageLabel/pageApi/plugin` 三个参数时,CLI 会自动:
|
|
@@ -85,7 +85,7 @@ cc create customPage
|
|
|
85
85
|
|
|
86
86
|
```text
|
|
87
87
|
Error: pageLabel、pageApi、pluginId/compLabel 需同时提供,或全部省略以使用第一个自定义组件
|
|
88
|
-
Usage:
|
|
88
|
+
Usage: cloudcc create customPage [<pageLabel> <pageApi> <pluginId|compLabel>] [projectPath]
|
|
89
89
|
```
|
|
90
90
|
|
|
91
91
|
## 4.4 创建过程说明
|
|
@@ -109,7 +109,7 @@ Usage: cc create customPage [<pageLabel> <pageApi> <pluginId|compLabel>] [projec
|
|
|
109
109
|
## 5. 查询自定义页面
|
|
110
110
|
|
|
111
111
|
```bash
|
|
112
|
-
|
|
112
|
+
cloudcc get customPage [pageNo] [pageSize] [projectPath]
|
|
113
113
|
```
|
|
114
114
|
|
|
115
115
|
参数说明:
|
|
@@ -121,8 +121,8 @@ cc get customPage [pageNo] [pageSize] [projectPath]
|
|
|
121
121
|
示例:
|
|
122
122
|
|
|
123
123
|
```bash
|
|
124
|
-
|
|
125
|
-
|
|
124
|
+
cloudcc get customPage
|
|
125
|
+
cloudcc get customPage 1 50 ./
|
|
126
126
|
```
|
|
127
127
|
|
|
128
128
|
执行成功后会输出总数,并逐条打印页面:
|
|
@@ -136,7 +136,7 @@ cc get customPage 1 50 ./
|
|
|
136
136
|
## 6. 删除自定义页面
|
|
137
137
|
|
|
138
138
|
```bash
|
|
139
|
-
|
|
139
|
+
cloudcc delete customPage <id> [projectPath]
|
|
140
140
|
```
|
|
141
141
|
|
|
142
142
|
参数说明:
|
|
@@ -147,15 +147,15 @@ cc delete customPage <id> [projectPath]
|
|
|
147
147
|
示例:
|
|
148
148
|
|
|
149
149
|
```bash
|
|
150
|
-
|
|
151
|
-
|
|
150
|
+
cloudcc delete customPage 2f9d0d6d2a
|
|
151
|
+
cloudcc delete customPage 2f9d0d6d2a ./
|
|
152
152
|
```
|
|
153
153
|
|
|
154
154
|
若缺少 `id`,会报错:
|
|
155
155
|
|
|
156
156
|
```text
|
|
157
157
|
Error: Custom page ID is required
|
|
158
|
-
Usage:
|
|
158
|
+
Usage: cloudcc delete customPage <id> [projectPath]
|
|
159
159
|
```
|
|
160
160
|
|
|
161
161
|
---
|
|
@@ -163,8 +163,8 @@ Usage: cc delete customPage <id> [projectPath]
|
|
|
163
163
|
## 7. 文档命令
|
|
164
164
|
|
|
165
165
|
```bash
|
|
166
|
-
|
|
167
|
-
|
|
166
|
+
cloudcc doc customPage introduction
|
|
167
|
+
cloudcc doc customPage devguide
|
|
168
168
|
```
|
|
169
169
|
|
|
170
170
|
说明:
|
|
@@ -178,16 +178,16 @@ cc doc customPage devguide
|
|
|
178
178
|
|
|
179
179
|
```bash
|
|
180
180
|
# 1) 先查列表,确认现有页面
|
|
181
|
-
|
|
181
|
+
cloudcc get customPage
|
|
182
182
|
|
|
183
183
|
# 2) 创建页面(标准模式)
|
|
184
|
-
|
|
184
|
+
cloudcc create customPage "合同助手页面" contract_assistant_page 2f9d0d6d2a
|
|
185
185
|
|
|
186
186
|
# 3) 再查列表,确认创建成功并记录 ID
|
|
187
|
-
|
|
187
|
+
cloudcc get customPage
|
|
188
188
|
|
|
189
189
|
# 4) 如需回滚,按 ID 删除
|
|
190
|
-
|
|
190
|
+
cloudcc delete customPage <id>
|
|
191
191
|
```
|
|
192
192
|
|
|
193
193
|
---
|
package/src/customPage/get.js
CHANGED
|
@@ -6,7 +6,7 @@ const BaseUrl = 'https://developer.apis.cloudcc.cn';
|
|
|
6
6
|
/**
|
|
7
7
|
* 获取自定义页面列表
|
|
8
8
|
*
|
|
9
|
-
* 用法:
|
|
9
|
+
* 用法:cloudcc get customPage [pageNo] [pageSize] [projectPath]
|
|
10
10
|
*/
|
|
11
11
|
async function listCustomPage(argvs) {
|
|
12
12
|
const pageNo = parseInt(argvs[2], 10) || 1;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 自定义设置 - 新建/更新(保存主对象)
|
|
3
3
|
* API: POST {setupSvc}/api/customsetting/save
|
|
4
|
-
* CLI:
|
|
4
|
+
* CLI: cloudcc create customSetting <projectPath> <encodedBodyJson>
|
|
5
5
|
* 参数说明:
|
|
6
6
|
* - projectPath: 项目根目录
|
|
7
7
|
* - encodedBodyJson: encodeURI(JSON.stringify(body))
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 自定义设置 - 删除主对象
|
|
3
3
|
* API: POST {setupSvc}/api/customsetting/deleteobj
|
|
4
|
-
* CLI:
|
|
4
|
+
* CLI: cloudcc delete customSetting <projectPath> <settingId>
|
|
5
5
|
* 参数说明:
|
|
6
6
|
* - projectPath: 项目根目录
|
|
7
7
|
* - id(命令参数名 settingId): 自定义设置 id
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 自定义设置字段 - 删除字段
|
|
3
3
|
* API: POST {setupSvc}/api/customsetting/deletefield
|
|
4
|
-
* CLI:
|
|
4
|
+
* CLI: cloudcc deleteCustomSettingField customSetting <projectPath> <fieldId> <settingId>
|
|
5
5
|
* 参数说明:
|
|
6
6
|
* - projectPath: 项目根目录
|
|
7
7
|
* - id(命令参数名 fieldId): 字段 id
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 自定义设置 - 详情(含字段列表)
|
|
3
3
|
* API: POST {setupSvc}/api/customsetting/detail
|
|
4
|
-
* CLI:
|
|
4
|
+
* CLI: cloudcc detail customSetting <projectPath> <settingId>
|
|
5
5
|
* 参数说明:
|
|
6
6
|
* - projectPath: 项目根目录
|
|
7
7
|
* - id(命令参数名 settingId): 自定义设置 id
|