cloudcc-cli 2.2.2 → 2.2.4
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/.vscode/settings.json +3 -0
- package/README.md +47 -0
- package/bin/cc.js +11 -35
- package/bin/index.js +33 -0
- package/bin/mcp-svc.js +13 -0
- package/bin/mcp.js +18 -0
- package/java/com/cloudcc/core/TriggerInvoker.java +17 -1
- package/package.json +16 -7
- package/pom.xml +1 -0
- package/prompt/DevelopmentEnvironmentConstruction.ts +133 -0
- package/prompt/ccdk.ts +1190 -0
- package/prompt/ccprompt.ts +8 -0
- package/prompt/cloudccdev.ts +109 -0
- package/prompt/index.ts +52 -0
- package/prompt/objectInfo.ts +94 -0
- package/prompt/objectList.ts +25 -0
- package/prompt/openapi.ts +310 -0
- package/prompt/system.ts +14 -0
- package/prompt/vscodeExtension.ts +27 -0
- package/src/approval/approve.js +105 -0
- package/src/approval/get.js +245 -0
- package/src/approval/index.js +11 -0
- package/src/approval/reject.js +105 -0
- package/src/brief/get.js +51 -0
- package/src/brief/index.js +7 -0
- package/src/config/get.js +1 -1
- package/src/fields/create.js +204 -0
- package/src/fields/fields/A.js +23 -0
- package/src/fields/fields/AD.js +25 -0
- package/src/fields/fields/B.js +28 -0
- package/src/fields/fields/C.js +28 -0
- package/src/fields/fields/D.js +27 -0
- package/src/fields/fields/E.js +28 -0
- package/src/fields/fields/ENC.js +28 -0
- package/src/fields/fields/ENCD.js +28 -0
- package/src/fields/fields/F.js +27 -0
- package/src/fields/fields/FL.js +25 -0
- package/src/fields/fields/H.js +27 -0
- package/src/fields/fields/IMG.js +27 -0
- package/src/fields/fields/J.js +26 -0
- package/src/fields/fields/L.js +32 -0
- package/src/fields/fields/LT.js +28 -0
- package/src/fields/fields/M.js +29 -0
- package/src/fields/fields/MR.js +24 -0
- package/src/fields/fields/N.js +30 -0
- package/src/fields/fields/P.js +28 -0
- package/src/fields/fields/Q.js +35 -0
- package/src/fields/fields/S.js +30 -0
- package/src/fields/fields/SCORE.js +24 -0
- package/src/fields/fields/T.js +27 -0
- package/src/fields/fields/U.js +28 -0
- package/src/fields/fields/X.js +28 -0
- package/src/fields/fields/Y.js +33 -0
- package/src/fields/get.js +36 -0
- package/src/fields/index.js +9 -0
- package/src/mcp/MCP/345/234/272/346/231/257/346/250/241/346/213/237.md +8 -0
- package/src/mcp/index-sse-svc.js +126 -0
- package/src/mcp/index-streamable-svc.js +180 -0
- package/src/mcp/index.js +631 -0
- package/src/mcp/readme.md +137 -0
- package/src/mcp/tools/Approval/handler.js +349 -0
- package/src/mcp/tools/Class Creator/handler.js +37 -0
- package/src/mcp/tools/Class Detail Retriever/handler.js +33 -0
- package/src/mcp/tools/Class Detail Retriever/prompt.js +37 -0
- package/src/mcp/tools/Class Editor Guide/handler.js +72 -0
- package/src/mcp/tools/Class Editor Guide/prompt.js +468 -0
- package/src/mcp/tools/Class List Retriever/handler.js +36 -0
- package/src/mcp/tools/Class Publisher/handler.js +29 -0
- package/src/mcp/tools/Class Publisher/prompt.js +40 -0
- package/src/mcp/tools/Class Puller/handler.js +86 -0
- package/src/mcp/tools/Class Puller/prompt.js +49 -0
- package/src/mcp/tools/Client Script Creator/handler.js +179 -0
- package/src/mcp/tools/Client Script Detail Retriever/handler.js +53 -0
- package/src/mcp/tools/Client Script Editor Guide/handler.js +633 -0
- package/src/mcp/tools/Client Script List Retriever/handler.js +68 -0
- package/src/mcp/tools/Client Script Publisher/handler.js +54 -0
- package/src/mcp/tools/Client Script Puller/handler.js +73 -0
- package/src/mcp/tools/CloudCC Development Overview/handler.js +48 -0
- package/src/mcp/tools/CloudCC Development Overview/prompt.js +870 -0
- package/src/mcp/tools/Component Creator/handler.js +44 -0
- package/src/mcp/tools/Component Detail Retriever/handler.js +38 -0
- package/src/mcp/tools/Component Editor Guide/handler.js +76 -0
- package/src/mcp/tools/Component Editor Guide/prompt.js +519 -0
- package/src/mcp/tools/Component List Retriever/handler.js +43 -0
- package/src/mcp/tools/Component Publisher/handler.js +18 -0
- package/src/mcp/tools/Component Publisher/prompt.js +659 -0
- package/src/mcp/tools/Component Puller/handler.js +63 -0
- package/src/mcp/tools/Dev Environment Creator/fetcher.js +500 -0
- package/src/mcp/tools/Dev Environment Creator/handler.js +92 -0
- package/src/mcp/tools/Dev Environment Creator/prompt.js +273 -0
- package/src/mcp/tools/Dev Environment Validator/handler.js +88 -0
- package/src/mcp/tools/Dev Environment Validator/prompt.js +193 -0
- package/src/mcp/tools/Developer Key Setup Guide/fetcher.js +278 -0
- package/src/mcp/tools/Developer Key Setup Guide/handler.js +43 -0
- package/src/mcp/tools/Developer Key Setup Guide/prompt.js +71 -0
- package/src/mcp/tools/Object Creator/handler.js +34 -0
- package/src/mcp/tools/Object Fields Creator/handler.js +64 -0
- package/src/mcp/tools/Object Fields Retriever/handler.js +37 -0
- package/src/mcp/tools/Object Fields Retriever/prompt.js +10 -0
- package/src/mcp/tools/Object List Retriever/handler.js +43 -0
- package/src/mcp/tools/Object List Retriever/prompt.js +10 -0
- package/src/mcp/tools/Scheduled Class Creator/handler.js +37 -0
- package/src/mcp/tools/Scheduled Class Detail Retriever/handler.js +34 -0
- package/src/mcp/tools/Scheduled Class List Retriever/handler.js +52 -0
- package/src/mcp/tools/Scheduled Class Publisher/handler.js +30 -0
- package/src/mcp/tools/Scheduled Class Puller/handler.js +92 -0
- package/src/mcp/tools/Trigger Creator/handler.js +53 -0
- package/src/mcp/tools/Trigger Detail Retriever/handler.js +33 -0
- package/src/mcp/tools/Trigger Editor Guide/handler.js +58 -0
- package/src/mcp/tools/Trigger List Retriever/handler.js +49 -0
- package/src/mcp/tools/Trigger Publisher/handler.js +34 -0
- package/src/mcp/tools/Trigger Puller/handler.js +40 -0
- package/src/mcp/tools/ccdk/fetcher.js +18 -0
- package/src/mcp/tools/ccdk/handler.js +98 -0
- package/src/mcp/tools/ccdk/prompt.js +453 -0
- package/src/mcp/tools/index.js +23 -0
- package/src/object/create.js +105 -0
- package/src/object/get.js +43 -4
- package/src/object/index.js +2 -1
- package/src/plugin/create.js +1 -2
- package/src/plugin/create1.js +9 -9
- package/src/plugin/detail.js +91 -0
- package/src/plugin/get.js +79 -0
- package/src/plugin/index.js +4 -1
- package/src/plugin/publish.js +13 -13
- package/src/plugin/publish1.js +33 -24
- package/src/plugin/pull.js +173 -0
- package/src/project/create.js +9 -9
- package/src/project/create1.js +31 -17
- package/src/recordType/get.js +4 -2
- package/src/script/create.js +7 -7
- package/src/script/detail.js +95 -0
- package/src/script/get.js +4 -2
- package/src/script/index.js +1 -0
- package/src/script/publish.js +14 -14
- package/src/script/pull.js +12 -12
- package/src/script/pullList.js +5 -3
- package/src/timer/create.js +7 -7
- package/src/timer/detail.js +84 -0
- package/src/timer/get.js +6 -3
- package/src/timer/publish.js +7 -7
- package/src/timer/pull.js +8 -8
- package/src/timer/pullList.js +5 -3
- package/src/token/get.js +1 -1
- package/src/triggers/create.js +7 -7
- package/src/triggers/detail.js +90 -0
- package/src/triggers/get.js +4 -2
- package/src/triggers/index.js +1 -0
- package/src/triggers/publish.js +7 -7
- package/src/triggers/pull.js +8 -8
- package/src/triggers/pullList.js +5 -3
- package/src/version/get.js +3 -3
- package/target/ccopenapi-0.0.3-classes.jar +0 -0
- package/target/ccopenapi-0.0.3.jar +0 -0
- package/target/maven-archiver/pom.properties +3 -0
- package/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +18 -0
- package/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +19 -0
- package/template/Appvue +452 -12
- package/template/index.js +30 -19
- package/tool/branch/index.js +1 -1
- package/tool/checkLange/checkLang.js +6 -6
- package/tool/checkLange/clearLang.js +1 -1
- package/utils/accessClass.js +23 -0
- package/utils/checkVersion.js +22 -20
- package/utils/config.js +18 -3
- package/utils/http.js +10 -10
- package/utils/utils.js +128 -40
- package/java/com/cloudcc/core/CCTriggerDemo.java +0 -25
- package/src/classes/create.js +0 -65
- package/src/classes/get.js +0 -21
- package/src/classes/index.js +0 -11
- package/src/classes/publish.js +0 -50
- package/src/classes/pull.js +0 -54
- package/src/classes/pullList.js +0 -44
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
const fs = require("fs");
|
|
2
|
+
const path = require("path")
|
|
3
|
+
|
|
4
|
+
const { getPackageJson } = require("../../utils/config")
|
|
5
|
+
const { postClass } = require("../../utils/http")
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* 获取定时类详细信息
|
|
9
|
+
* @param {string} name - 定时类名称(优先从本地查询)
|
|
10
|
+
* @param {string} id - 定时类ID(当没有name时从服务器查询)
|
|
11
|
+
* @returns {Object} 定时类详细信息
|
|
12
|
+
*/
|
|
13
|
+
async function detail(name, id) {
|
|
14
|
+
// 如果有 name,优先查询本地
|
|
15
|
+
if (name && name !== '') {
|
|
16
|
+
const schedulePath = path.join(process.cwd(), `schedule/${name}/`);
|
|
17
|
+
const configPath = schedulePath + "config.json";
|
|
18
|
+
const javaFilePath = schedulePath + `${name}.java`;
|
|
19
|
+
|
|
20
|
+
// 先尝试从本地文件获取详情
|
|
21
|
+
if (fs.existsSync(configPath) && fs.existsSync(javaFilePath)) {
|
|
22
|
+
let configContent = JSON.parse(fs.readFileSync(configPath, 'utf8'));
|
|
23
|
+
let javaContent = fs.readFileSync(javaFilePath, 'utf8');
|
|
24
|
+
return {
|
|
25
|
+
name: configContent.name,
|
|
26
|
+
version: configContent.version,
|
|
27
|
+
id: configContent.id || null,
|
|
28
|
+
source: javaContent,
|
|
29
|
+
published: !!configContent.id,
|
|
30
|
+
fromLocal: true
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// 本地文件不完整,从服务器拉取
|
|
35
|
+
if (!fs.existsSync(configPath)) {
|
|
36
|
+
throw new Error('Schedule not found in local directory: ' + schedulePath);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
let configContent = JSON.parse(fs.readFileSync(configPath, 'utf8'));
|
|
40
|
+
|
|
41
|
+
if (!configContent.id) {
|
|
42
|
+
throw new Error('Schedule has not been published. Please publish first to fetch details from server.');
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// 使用本地 config 中的 id 从服务器获取详细信息
|
|
46
|
+
let body = {
|
|
47
|
+
"id": configContent.id,
|
|
48
|
+
}
|
|
49
|
+
let config = await getPackageJson();
|
|
50
|
+
let res = await postClass(config.setupSvc + "/api/ccPeak/detail", body, config.accessToken)
|
|
51
|
+
|
|
52
|
+
if (res.result) {
|
|
53
|
+
return {
|
|
54
|
+
...res.data.trigger,
|
|
55
|
+
fromLocal: false
|
|
56
|
+
};
|
|
57
|
+
} else {
|
|
58
|
+
throw new Error('Get Schedule Details Failed: ' + res.returnInfo);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// 如果没有 name,用 id 从服务器查询
|
|
63
|
+
if (id && id !== '') {
|
|
64
|
+
let body = {
|
|
65
|
+
"id": id,
|
|
66
|
+
}
|
|
67
|
+
let config = await getPackageJson();
|
|
68
|
+
let res = await postClass(config.setupSvc + "/api/ccPeak/detail", body, config.accessToken)
|
|
69
|
+
|
|
70
|
+
if (res.result) {
|
|
71
|
+
return {
|
|
72
|
+
...res.data.trigger,
|
|
73
|
+
fromLocal: false
|
|
74
|
+
};
|
|
75
|
+
} else {
|
|
76
|
+
throw new Error('Get Schedule Details Failed: ' + res.returnInfo);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// 既没有 name 也没有 id,报错
|
|
81
|
+
throw new Error('Either schedule name or id must be provided');
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
module.exports = detail;
|
package/src/timer/get.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
const { getPackageJson } = require("../../utils/config")
|
|
2
2
|
const { postClass } = require("../../utils/http")
|
|
3
3
|
|
|
4
|
-
async function get(arg1, arg2) {
|
|
5
|
-
let body = JSON.parse(decodeURI(arg1))
|
|
4
|
+
async function get(arg1, arg2, isMcp = false) {
|
|
5
|
+
let body = arg1 != null && arg1 != '' ? JSON.parse(decodeURI(arg1)) : { shownum: "2000", showpage: "1", fid: "", sname: '', rptcond: '', rptorder: '' }
|
|
6
6
|
let config = await getPackageJson(arg2);
|
|
7
7
|
let res = await postClass(config.setupSvc + "/api/ccPeak/list", body, config.accessToken)
|
|
8
8
|
if (res.result) {
|
|
@@ -11,10 +11,13 @@ async function get(arg1, arg2) {
|
|
|
11
11
|
id: item.id,
|
|
12
12
|
name: item.name
|
|
13
13
|
}))
|
|
14
|
-
|
|
14
|
+
if (!isMcp) {
|
|
15
|
+
console.log(JSON.stringify(simpleList))
|
|
16
|
+
}
|
|
15
17
|
return simpleList
|
|
16
18
|
} else {
|
|
17
19
|
console.error('error:', res.message);
|
|
20
|
+
throw new Error('Get Schedule Failed: ' + res.message);
|
|
18
21
|
}
|
|
19
22
|
}
|
|
20
23
|
|
package/src/timer/publish.js
CHANGED
|
@@ -10,12 +10,12 @@ const { postClass } = require("../../utils/http")
|
|
|
10
10
|
async function publish(name) {
|
|
11
11
|
let res = await checkUpdate();
|
|
12
12
|
if (!res) {
|
|
13
|
-
console.
|
|
13
|
+
console.error();
|
|
14
14
|
const now = new Date();
|
|
15
15
|
const timeStr = now.getFullYear() + '-' + String(now.getMonth() + 1).padStart(2, '0') + '-' + String(now.getDate()).padStart(2, '0') + ' ' + String(now.getHours()).padStart(2, '0') + ':' + String(now.getMinutes()).padStart(2, '0') + ':' + String(now.getSeconds()).padStart(2, '0');
|
|
16
|
-
console.
|
|
17
|
-
console.
|
|
18
|
-
console.
|
|
16
|
+
console.error(chalk.green(timeStr));
|
|
17
|
+
console.error(chalk.green('Posting, please wait...'));
|
|
18
|
+
console.error();
|
|
19
19
|
const timerPath = path.join(process.cwd(), `schedule/${name}/`);
|
|
20
20
|
let fullContent = fs.readFileSync(timerPath + `${name}.java`, 'utf8');
|
|
21
21
|
|
|
@@ -35,15 +35,15 @@ async function publish(name) {
|
|
|
35
35
|
let config = await getPackageJson();
|
|
36
36
|
let res = await postClass(config.setupSvc + "/api/ccPeak/save", body, config.accessToken)
|
|
37
37
|
if (res.result) {
|
|
38
|
-
console.
|
|
39
|
-
console.
|
|
38
|
+
console.error(chalk.green('Success!'));
|
|
39
|
+
console.error();
|
|
40
40
|
|
|
41
41
|
if (!configContent.id) {
|
|
42
42
|
configContent.id = res.data
|
|
43
43
|
fs.writeFileSync(path.join(timerPath, "config.json"), JSON.stringify(configContent))
|
|
44
44
|
}
|
|
45
45
|
} else {
|
|
46
|
-
console.
|
|
46
|
+
console.error(chalk.red('Publish Schedule Failed' + res.returnInfo));
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
}
|
package/src/timer/pull.js
CHANGED
|
@@ -11,16 +11,16 @@ const { postClass } = require("../../utils/http")
|
|
|
11
11
|
async function pull(name) {
|
|
12
12
|
let res = await checkUpdate();
|
|
13
13
|
if (!res) {
|
|
14
|
-
console.
|
|
14
|
+
console.error();
|
|
15
15
|
const now = new Date();
|
|
16
16
|
const timeStr = now.getFullYear() + '-' + String(now.getMonth() + 1).padStart(2, '0') + '-' + String(now.getDate()).padStart(2, '0') + ' ' + String(now.getHours()).padStart(2, '0') + ':' + String(now.getMinutes()).padStart(2, '0') + ':' + String(now.getSeconds()).padStart(2, '0');
|
|
17
|
-
console.
|
|
18
|
-
console.
|
|
19
|
-
console.
|
|
17
|
+
console.error(chalk.green(timeStr));
|
|
18
|
+
console.error(chalk.green('Pulling, please wait...'));
|
|
19
|
+
console.error();
|
|
20
20
|
const timerPath = path.join(process.cwd(), `schedule/${name}/`);
|
|
21
21
|
let configContent = JSON.parse(fs.readFileSync(timerPath + "config.json", 'utf8'));
|
|
22
22
|
if (!configContent.id) {
|
|
23
|
-
console.
|
|
23
|
+
console.error(chalk.red('Schedule ID is not exist, please publish first!'));
|
|
24
24
|
return;
|
|
25
25
|
}
|
|
26
26
|
let body = {
|
|
@@ -29,8 +29,8 @@ async function pull(name) {
|
|
|
29
29
|
let config = await getPackageJson();
|
|
30
30
|
let res = await postClass(config.setupSvc + "/api/ccPeak/detail", body, config.accessToken)
|
|
31
31
|
if (res.result) {
|
|
32
|
-
console.
|
|
33
|
-
console.
|
|
32
|
+
console.error(chalk.green('Success!'));
|
|
33
|
+
console.error
|
|
34
34
|
let fullContent = fs.readFileSync(timerPath + `${name}.java`, 'utf8');
|
|
35
35
|
|
|
36
36
|
let newContent = '';
|
|
@@ -46,7 +46,7 @@ async function pull(name) {
|
|
|
46
46
|
fs.writeFileSync(timerPath + `${name}.java`, newContent, 'utf8');
|
|
47
47
|
|
|
48
48
|
} else {
|
|
49
|
-
console.
|
|
49
|
+
console.error(chalk.red('Pull Schedule Failed:' + res.returnInfo));
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
}
|
package/src/timer/pullList.js
CHANGED
|
@@ -7,7 +7,7 @@ const { postClass } = require("../../utils/http");
|
|
|
7
7
|
* 批量拉取定时器详情并生成本地文件
|
|
8
8
|
* @param timer id
|
|
9
9
|
*/
|
|
10
|
-
async function pullList(arg1, arg2) {
|
|
10
|
+
async function pullList(arg1, arg2, isMcp = false) {
|
|
11
11
|
const body = { id: arg1 };
|
|
12
12
|
let config = await getPackageJson(arg2);
|
|
13
13
|
const res = await postClass(config.setupSvc + "/api/ccPeak/detail", body, config.accessToken);
|
|
@@ -29,9 +29,11 @@ async function pullList(arg1, arg2) {
|
|
|
29
29
|
version: "2"
|
|
30
30
|
};
|
|
31
31
|
fs.writeFileSync(path.join(folderPath, "config.json"), JSON.stringify(configJson, null, 4), "utf8");
|
|
32
|
-
|
|
32
|
+
if (!isMcp) {
|
|
33
|
+
console.log("true");
|
|
34
|
+
}
|
|
33
35
|
} catch (e) {
|
|
34
|
-
console.
|
|
36
|
+
console.error(`Error occurred while processing timer id: ${args[2]}, message: ${e.message}${JSON.stringify(res)}}`);
|
|
35
37
|
}
|
|
36
38
|
}
|
|
37
39
|
|
package/src/token/get.js
CHANGED
package/src/triggers/create.js
CHANGED
|
@@ -7,6 +7,7 @@ const { getPackageJson } = require("../../utils/config.js")
|
|
|
7
7
|
async function create(argvs) {
|
|
8
8
|
let res = await checkUpdate();
|
|
9
9
|
if (!res) {
|
|
10
|
+
let config = await getPackageJson();
|
|
10
11
|
let body = JSON.parse(decodeURI(argvs[2]))
|
|
11
12
|
const baseTriggersPath = path.join(process.cwd(), "triggers");
|
|
12
13
|
const objectFolderPath = path.join(baseTriggersPath, `${body.schemetableName.toLowerCase()}`);
|
|
@@ -31,17 +32,16 @@ public class ${body.name} extends CCTrigger {
|
|
|
31
32
|
}`
|
|
32
33
|
|
|
33
34
|
fs.writeFileSync(path.join(triggersPath, body.name + ".java"), javaTmp);
|
|
34
|
-
let config = await getPackageJson();
|
|
35
35
|
body.version = config.extandVersion || "2";
|
|
36
36
|
body.isactive = true;
|
|
37
37
|
fs.writeFileSync(path.join(triggersPath, "config.json"), JSON.stringify(body));
|
|
38
|
-
console.
|
|
39
|
-
console.
|
|
40
|
-
console.
|
|
38
|
+
console.error();
|
|
39
|
+
console.error(chalk.green("Successfully Created:" + body.name));
|
|
40
|
+
console.error();
|
|
41
41
|
} catch (e) {
|
|
42
|
-
console.
|
|
43
|
-
console.
|
|
44
|
-
console.
|
|
42
|
+
console.error()
|
|
43
|
+
console.error(chalk.red("Creation Trigger Failed:" + e))
|
|
44
|
+
console.error()
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
const fs = require("fs");
|
|
2
|
+
const path = require("path")
|
|
3
|
+
|
|
4
|
+
const { getPackageJson } = require("../../utils/config")
|
|
5
|
+
const { postClass } = require("../../utils/http")
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* 获取触发器详细信息
|
|
9
|
+
* @param {string} namePath - 触发器路径 "objectName/triggerName"(优先从本地查询)
|
|
10
|
+
* @param {string} id - 触发器ID(当没有namePath时从服务器查询)
|
|
11
|
+
* @returns {Object} 触发器详细信息
|
|
12
|
+
*/
|
|
13
|
+
async function detail(namePath, id) {
|
|
14
|
+
// 如果有 namePath,优先查询本地
|
|
15
|
+
if (namePath && namePath !== '') {
|
|
16
|
+
const triggerPath = path.join(process.cwd(), `triggers/${namePath}/`);
|
|
17
|
+
const configPath = triggerPath + "config.json";
|
|
18
|
+
const triggerName = namePath.split("/")[1];
|
|
19
|
+
const javaFilePath = triggerPath + `${triggerName}.java`;
|
|
20
|
+
|
|
21
|
+
// 先尝试从本地文件获取详情
|
|
22
|
+
if (fs.existsSync(configPath) && fs.existsSync(javaFilePath)) {
|
|
23
|
+
let configContent = JSON.parse(fs.readFileSync(configPath, 'utf8'));
|
|
24
|
+
let javaContent = fs.readFileSync(javaFilePath, 'utf8');
|
|
25
|
+
return {
|
|
26
|
+
name: configContent.name,
|
|
27
|
+
apiname: configContent.apiname,
|
|
28
|
+
schemetableName: configContent.schemetableName,
|
|
29
|
+
targetObjectId: configContent.targetObjectId,
|
|
30
|
+
triggerTime: configContent.triggerTime,
|
|
31
|
+
version: configContent.version,
|
|
32
|
+
isactive: configContent.isactive,
|
|
33
|
+
id: configContent.id || null,
|
|
34
|
+
source: javaContent,
|
|
35
|
+
published: !!configContent.id,
|
|
36
|
+
fromLocal: true
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// 本地文件不完整,从服务器拉取
|
|
41
|
+
if (!fs.existsSync(configPath)) {
|
|
42
|
+
throw new Error('Trigger not found in local directory: ' + triggerPath);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
let configContent = JSON.parse(fs.readFileSync(configPath, 'utf8'));
|
|
46
|
+
|
|
47
|
+
if (!configContent.id) {
|
|
48
|
+
throw new Error('Trigger has not been published. Please publish first to fetch details from server.');
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// 使用本地 config 中的 id 从服务器获取详细信息
|
|
52
|
+
let body = {
|
|
53
|
+
"id": configContent.id,
|
|
54
|
+
}
|
|
55
|
+
let config = await getPackageJson();
|
|
56
|
+
let res = await postClass(config.setupSvc + "/api/trigger/newobjtrigger", body, config.accessToken)
|
|
57
|
+
|
|
58
|
+
if (res.result) {
|
|
59
|
+
return {
|
|
60
|
+
...res.data.trigger,
|
|
61
|
+
fromLocal: false
|
|
62
|
+
};
|
|
63
|
+
} else {
|
|
64
|
+
throw new Error('Get Trigger Details Failed: ' + res.returnInfo);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// 如果没有 namePath,用 id 从服务器查询
|
|
69
|
+
if (id && id !== '') {
|
|
70
|
+
let body = {
|
|
71
|
+
"id": id,
|
|
72
|
+
}
|
|
73
|
+
let config = await getPackageJson();
|
|
74
|
+
let res = await postClass(config.setupSvc + "/api/trigger/newobjtrigger", body, config.accessToken)
|
|
75
|
+
|
|
76
|
+
if (res.result) {
|
|
77
|
+
return {
|
|
78
|
+
...res.data.trigger,
|
|
79
|
+
fromLocal: false
|
|
80
|
+
};
|
|
81
|
+
} else {
|
|
82
|
+
throw new Error('Get Trigger Details Failed: ' + res.returnInfo);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// 既没有 namePath 也没有 id,报错
|
|
87
|
+
throw new Error('Either trigger path or id must be provided');
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
module.exports = detail;
|
package/src/triggers/get.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const { getPackageJson } = require("../../utils/config")
|
|
2
2
|
const { postClass } = require("../../utils/http")
|
|
3
3
|
|
|
4
|
-
async function get(args) {
|
|
4
|
+
async function get(args, isMcp = false) {
|
|
5
5
|
let body = JSON.parse(decodeURI(args[2]))
|
|
6
6
|
let config = await getPackageJson(args[3]);
|
|
7
7
|
let res = await postClass(config.setupSvc + "/api/triggerSetup/getTriggerByCondition", body, config.accessToken)
|
|
@@ -11,7 +11,9 @@ async function get(args) {
|
|
|
11
11
|
id: item.id,
|
|
12
12
|
name: item.name
|
|
13
13
|
}))
|
|
14
|
-
|
|
14
|
+
if (!isMcp) {
|
|
15
|
+
console.log(JSON.stringify(simpleList))
|
|
16
|
+
}
|
|
15
17
|
return simpleList
|
|
16
18
|
} else {
|
|
17
19
|
console.error('error:', res.message);
|
package/src/triggers/index.js
CHANGED
package/src/triggers/publish.js
CHANGED
|
@@ -11,12 +11,12 @@ async function publish(argvs) {
|
|
|
11
11
|
let name = namePath.split("/")[1]
|
|
12
12
|
let res = await checkUpdate();
|
|
13
13
|
if (!res) {
|
|
14
|
-
console.
|
|
14
|
+
console.error();
|
|
15
15
|
const now = new Date();
|
|
16
16
|
const timeStr = now.getFullYear() + '-' + String(now.getMonth() + 1).padStart(2, '0') + '-' + String(now.getDate()).padStart(2, '0') + ' ' + String(now.getHours()).padStart(2, '0') + ':' + String(now.getMinutes()).padStart(2, '0') + ':' + String(now.getSeconds()).padStart(2, '0');
|
|
17
|
-
console.
|
|
18
|
-
console.
|
|
19
|
-
console.
|
|
17
|
+
console.error(chalk.green(timeStr));
|
|
18
|
+
console.error(chalk.green('Posting, please wait...'));
|
|
19
|
+
console.error();
|
|
20
20
|
const triggersPath = path.join(process.cwd(), `triggers/${namePath}/`);
|
|
21
21
|
let fullContent = fs.readFileSync(triggersPath + `${name}.java`, 'utf8');
|
|
22
22
|
|
|
@@ -39,8 +39,8 @@ async function publish(argvs) {
|
|
|
39
39
|
let config = await getPackageJson();
|
|
40
40
|
let res = await postClass(config.setupSvc + "/api/triggerSetup/saveTrigger", body, config.accessToken)
|
|
41
41
|
if (res.result) {
|
|
42
|
-
console.
|
|
43
|
-
console.
|
|
42
|
+
console.error(chalk.green('Success!'));
|
|
43
|
+
console.error();
|
|
44
44
|
|
|
45
45
|
if (!configContent.id) {
|
|
46
46
|
configContent.id = res.data.id
|
|
@@ -48,7 +48,7 @@ async function publish(argvs) {
|
|
|
48
48
|
fs.writeFileSync(path.join(triggersPath, "config.json"), JSON.stringify(configContent))
|
|
49
49
|
}
|
|
50
50
|
} else {
|
|
51
|
-
console.
|
|
51
|
+
console.error(chalk.red('Publish Trigger Failed:' + res.returnInfo));
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
}
|
package/src/triggers/pull.js
CHANGED
|
@@ -10,16 +10,16 @@ async function pull(argvs) {
|
|
|
10
10
|
let name = namePath.split("/")[1]
|
|
11
11
|
let res = await checkUpdate();
|
|
12
12
|
if (!res) {
|
|
13
|
-
console.
|
|
13
|
+
console.error();
|
|
14
14
|
const now = new Date();
|
|
15
15
|
const timeStr = now.getFullYear() + '-' + String(now.getMonth() + 1).padStart(2, '0') + '-' + String(now.getDate()).padStart(2, '0') + ' ' + String(now.getHours()).padStart(2, '0') + ':' + String(now.getMinutes()).padStart(2, '0') + ':' + String(now.getSeconds()).padStart(2, '0');
|
|
16
|
-
console.
|
|
17
|
-
console.
|
|
18
|
-
console.
|
|
16
|
+
console.error(chalk.green(timeStr));
|
|
17
|
+
console.error(chalk.green('Pulling, please wait...'));
|
|
18
|
+
console.error();
|
|
19
19
|
const triggersPath = path.join(process.cwd(), `triggers/${namePath}/`);
|
|
20
20
|
let configContent = JSON.parse(fs.readFileSync(triggersPath + "config.json", 'utf8'));
|
|
21
21
|
if (!configContent.id) {
|
|
22
|
-
console.
|
|
22
|
+
console.error(chalk.red('Trigger ID is not exist, please publish first!'));
|
|
23
23
|
return;
|
|
24
24
|
}
|
|
25
25
|
let body = {
|
|
@@ -28,8 +28,8 @@ async function pull(argvs) {
|
|
|
28
28
|
let config = await getPackageJson();
|
|
29
29
|
let res = await postClass(config.setupSvc + "/api/trigger/newobjtrigger", body, config.accessToken)
|
|
30
30
|
if (res.result) {
|
|
31
|
-
console.
|
|
32
|
-
console.
|
|
31
|
+
console.error(chalk.green('Success!'));
|
|
32
|
+
console.error();
|
|
33
33
|
|
|
34
34
|
let fullContent = fs.readFileSync(triggersPath + `${name}.java`, 'utf8');
|
|
35
35
|
let newContent = '';
|
|
@@ -45,7 +45,7 @@ async function pull(argvs) {
|
|
|
45
45
|
fs.writeFileSync(triggersPath + `${name}.java`, newContent);
|
|
46
46
|
|
|
47
47
|
} else {
|
|
48
|
-
console.
|
|
48
|
+
console.error(chalk.red('Pull Trigger Failed:' + res.returnInfo));
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
}
|
package/src/triggers/pullList.js
CHANGED
|
@@ -7,7 +7,7 @@ const { postClass } = require("../../utils/http");
|
|
|
7
7
|
* 批量拉取触发器详情并生成本地文件
|
|
8
8
|
* @param trigger id
|
|
9
9
|
*/
|
|
10
|
-
async function pullList(args) {
|
|
10
|
+
async function pullList(args, isMcp = false) {
|
|
11
11
|
const body = { id: args[2] };
|
|
12
12
|
let config = await getPackageJson(args[3]);
|
|
13
13
|
const res = await postClass(config.setupSvc + "/api/trigger/newobjtrigger", body, config.accessToken);
|
|
@@ -34,9 +34,11 @@ async function pullList(args) {
|
|
|
34
34
|
isactive: typeof trigger.isactive === 'boolean' ? trigger.isactive : true
|
|
35
35
|
};
|
|
36
36
|
fs.writeFileSync(path.join(folderPath, "config.json"), JSON.stringify(configJson, null, 4), "utf8");
|
|
37
|
-
|
|
37
|
+
if (!isMcp) {
|
|
38
|
+
console.log("true");
|
|
39
|
+
}
|
|
38
40
|
} catch (e) {
|
|
39
|
-
console.
|
|
41
|
+
console.error(`Error occurred while processing trigger id: ${args[2]}, message: ${e.message}${JSON.stringify(res)}}`);
|
|
40
42
|
}
|
|
41
43
|
}
|
|
42
44
|
|
package/src/version/get.js
CHANGED
|
@@ -2,9 +2,9 @@ const chalk = require("chalk")
|
|
|
2
2
|
const pkg = require("../../package.json")
|
|
3
3
|
|
|
4
4
|
function get() {
|
|
5
|
-
console.
|
|
6
|
-
console.
|
|
7
|
-
console.
|
|
5
|
+
console.error()
|
|
6
|
+
console.error(chalk.green(`cloudcc-cli version: ${pkg.version}`));
|
|
7
|
+
console.error()
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
module.exports = get;
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
com/cloudcc/core/CCObject.class
|
|
2
|
+
com/cloudcc/core/TriggerTimeEnum.class
|
|
3
|
+
com/cloudcc/core/UserInfo.class
|
|
4
|
+
com/cloudcc/core/SendEmail.class
|
|
5
|
+
com/cloudcc/core/PeakInterf.class
|
|
6
|
+
com/cloudcc/core/TimeUtil.class
|
|
7
|
+
com/cloudcc/core/CCTriggerHandler.class
|
|
8
|
+
com/cloudcc/core/Tool.class
|
|
9
|
+
com/cloudcc/core/TriggerInvoker.class
|
|
10
|
+
com/cloudcc/core/CCSchedule.class
|
|
11
|
+
com/cloudcc/core/OperatationEnum.class
|
|
12
|
+
com/cloudcc/core/TriggerMethod.class
|
|
13
|
+
com/cloudcc/core/ServiceResult.class
|
|
14
|
+
com/cloudcc/core/DevLogger.class
|
|
15
|
+
com/cloudcc/core/CCService.class
|
|
16
|
+
com/cloudcc/core/CCTrigger.class
|
|
17
|
+
com/cloudcc/core/CCTriggerDemo.class
|
|
18
|
+
com/cloudcc/core/Tool$1.class
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/Users/xuhm/Documents/cloudcc-cli/java/com/cloudcc/core/ServiceResult.java
|
|
2
|
+
/Users/xuhm/Documents/cloudcc-cli/java/com/cloudcc/core/TriggerInvoker.java
|
|
3
|
+
/Users/xuhm/Documents/cloudcc-cli/java/com/cloudcc/core/UserInfo.java
|
|
4
|
+
/Users/xuhm/Documents/cloudcc-cli/java/com/cloudcc/core/Tool.java
|
|
5
|
+
/Users/xuhm/Documents/cloudcc-cli/classes/TestDtt/TestDttTest.java
|
|
6
|
+
/Users/xuhm/Documents/cloudcc-cli/java/com/cloudcc/core/CCService.java
|
|
7
|
+
/Users/xuhm/Documents/cloudcc-cli/java/com/cloudcc/core/CCSchedule.java
|
|
8
|
+
/Users/xuhm/Documents/cloudcc-cli/java/com/cloudcc/core/SendEmail.java
|
|
9
|
+
/Users/xuhm/Documents/cloudcc-cli/java/com/cloudcc/core/OperatationEnum.java
|
|
10
|
+
/Users/xuhm/Documents/cloudcc-cli/java/com/cloudcc/core/CCTriggerHandler.java
|
|
11
|
+
/Users/xuhm/Documents/cloudcc-cli/java/com/cloudcc/core/TriggerMethod.java
|
|
12
|
+
/Users/xuhm/Documents/cloudcc-cli/java/com/cloudcc/core/CCTriggerDemo.java
|
|
13
|
+
/Users/xuhm/Documents/cloudcc-cli/java/com/cloudcc/core/TriggerTimeEnum.java
|
|
14
|
+
/Users/xuhm/Documents/cloudcc-cli/java/com/cloudcc/core/CCTrigger.java
|
|
15
|
+
/Users/xuhm/Documents/cloudcc-cli/java/com/cloudcc/core/DevLogger.java
|
|
16
|
+
/Users/xuhm/Documents/cloudcc-cli/java/com/cloudcc/core/PeakInterf.java
|
|
17
|
+
/Users/xuhm/Documents/cloudcc-cli/java/com/cloudcc/core/TimeUtil.java
|
|
18
|
+
/Users/xuhm/Documents/cloudcc-cli/java/com/cloudcc/core/CCObject.java
|
|
19
|
+
/Users/xuhm/Documents/cloudcc-cli/classes/TestDtt/TestDtt.java
|