cloudcc-cli 2.1.2 → 2.1.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/README.md CHANGED
@@ -1,3 +1,19 @@
1
+ # ReleaseV2.1.4
2
+ #### Release Date: 2025-7-2
3
+ #### Release Scope: Full
4
+ #### Release Content
5
+ * Optimization
6
+ * delete dead code
7
+
8
+ # ReleaseV2.1.3
9
+ #### Release Date: 2025-7-2
10
+ #### Release Scope: Full
11
+ #### Release Content
12
+ * Optimization
13
+ * add pull all trggers
14
+ * add pull all timer
15
+ * add pull all script
16
+
1
17
  # ReleaseV2.1.2
2
18
  #### Release Date: 2025-7-1
3
19
  #### Release Scope: Full
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cloudcc-cli",
3
- "version": "2.1.2",
3
+ "version": "2.1.4",
4
4
  "description": "cloudcc-cli",
5
5
  "keywords": [
6
6
  "cloudcc",
@@ -6,7 +6,12 @@ async function get(arg, path) {
6
6
  let config = await getPackageJson(path);
7
7
  let res = await postClass(config.setupSvc + "/api/ccfag/list", body, config.accessToken)
8
8
  if (res.result) {
9
- console.log(JSON.stringify(res.data.list))
9
+ const simpleList = (res.data.list || []).map(item => ({
10
+ apiname: item.apiname,
11
+ id: item.id,
12
+ name: item.name
13
+ }))
14
+ console.log(JSON.stringify(simpleList))
10
15
  return res.data.list
11
16
  } else {
12
17
  console.error('error:', res.message);
@@ -11,7 +11,6 @@ async function pullList(id, url) {
11
11
  let config = await getPackageJson(url);
12
12
  const body = { id };
13
13
  const res = await postClass(config.setupSvc + "/api/ccfag/detail", body, config.accessToken);
14
- console.log("id", id)
15
14
  try {
16
15
  const data = res.data;
17
16
  const trigger = data.trigger;
@@ -36,7 +35,7 @@ async function pullList(id, url) {
36
35
  const testClassName = `${className}Test`;
37
36
  const testContent = `package classes.${className};\n\nimport com.cloudcc.core.*;\n\npublic class ${testClassName} {\n public static void main(String[] args) {\n System.out.println(\"name:\");\n }\n}\n`;
38
37
  fs.writeFileSync(path.join(folderPath, `${testClassName}.java`), testContent, "utf8");
39
- console.log("Pull and generate class " + className + " successfully!");
38
+ console.log("true");
40
39
  } catch (e) {
41
40
  console.log(`Error occurred while processing class id: ${id}, message: ${e.message}`);
42
41
  }
@@ -8,7 +8,7 @@ async function create(argvs) {
8
8
  if (!res) {
9
9
  let body = JSON.parse(decodeURI(argvs[2]))
10
10
  const baseScriptPath = path.join(process.cwd(), "script");
11
- const objectFolderPath = path.join(baseScriptPath, body.schemetableName.toLowerCase());
11
+ const objectFolderPath = path.join(baseScriptPath, body.objName);
12
12
  const filePath = path.join(objectFolderPath, body.scriptName);
13
13
 
14
14
  try {
@@ -0,0 +1,24 @@
1
+
2
+ const { post } = require("../../utils/http.js")
3
+ const { getPackageJson } = require("../../utils/config.js")
4
+ const BaseUrl = "https://developer.apis.cloudcc.cn"
5
+
6
+
7
+ async function get(argvs) {
8
+ let configContent = JSON.parse(decodeURI(argvs[2]))
9
+ let devConsoleConfig = await getPackageJson(argvs[3]);
10
+ let res = await post((devConsoleConfig.baseUrl || BaseUrl) + "/devconsole/script/pageClientScript", configContent, devConsoleConfig)
11
+ if (res.result) {
12
+ const simpleList = (res.data.list || []).map(item => ({
13
+ apiname: item.pageLabel,
14
+ id: item.id,
15
+ name: item.scriptName
16
+ }))
17
+ console.log(JSON.stringify(simpleList))
18
+ return simpleList
19
+ } else {
20
+ console.error('error:', res.message);
21
+ }
22
+ }
23
+
24
+ module.exports = get;
@@ -2,6 +2,8 @@ const cc = {}
2
2
  cc.create = require("./create")
3
3
  cc.publish = require("./publish")
4
4
  cc.pull = require("./pull")
5
+ cc.get = require("./get")
6
+ cc.pullList = require("./pullList")
5
7
  function main(action, argvs) {
6
8
  cc[action](argvs)
7
9
  }
@@ -31,7 +31,7 @@ async function pull(argvs) {
31
31
  "objName": ""
32
32
  }
33
33
  }
34
- let res = await post((devConsoleConfig.baseUrl || BaseUrl) + "/devconsoleone/script/pageClientScript", configContent, devConsoleConfig)
34
+ let res = await post((devConsoleConfig.baseUrl || BaseUrl) + "/devconsole/script/pageClientScript", configContent, devConsoleConfig)
35
35
  if (res.result) {
36
36
  console.log();
37
37
  console.log(chalk.green('Success!'));
@@ -0,0 +1,65 @@
1
+ const { post } = require("../../utils/http.js")
2
+ const { getPackageJson } = require("../../utils/config.js")
3
+ const BaseUrl = "https://developer.apis.cloudcc.cn"
4
+ const fs = require('fs');
5
+ const path = require('path');
6
+
7
+
8
+ async function pullList(argvs) {
9
+ let devConsoleConfig = await getPackageJson(argvs[3]);
10
+ let body = {
11
+ "pageSize": 20,
12
+ "pageNo": 1,
13
+ "condition": {
14
+ "id": argvs[2],
15
+ }
16
+ }
17
+
18
+ let res = await post((devConsoleConfig.baseUrl || BaseUrl) + "/devconsole/script/pageClientScript", body, devConsoleConfig)
19
+ if (res.result) {
20
+ try {
21
+
22
+ const data = res.data.list[0]
23
+ // 自动生成目录和文件
24
+ if (data) {
25
+ const dirPath = path.join(argvs[3], "script", data.objName, data.scriptName);
26
+ fs.mkdirSync(dirPath, { recursive: true });
27
+ // 去除不需要的字段,仅保留指定字段
28
+ const configFields = [
29
+ "scriptName",
30
+ "scriptDesc",
31
+ "objId",
32
+ "objName",
33
+ "recordTypeId",
34
+ "recordTypeName",
35
+ "pageId",
36
+ "eventType",
37
+ "event",
38
+ "fieldId",
39
+ "schemetableName",
40
+ "usageScenario",
41
+ "id"
42
+ ];
43
+ const configData = {};
44
+ configFields.forEach(key => {
45
+ if (data.hasOwnProperty(key)) {
46
+ configData[key] = data[key];
47
+ } else {
48
+ configData[key] = "";
49
+ }
50
+ });
51
+ const configPath = path.join(dirPath, 'config.json');
52
+ fs.writeFileSync(configPath, JSON.stringify(configData, null, 2), 'utf-8');
53
+ // 写入脚本内容,使用模板包裹
54
+ const scriptPath = path.join(dirPath, `${data.scriptName}.js`);
55
+ const scriptTemplate = `function main($CCDK, obj) {\n${data.scriptContent || ''}\n}`;
56
+ fs.writeFileSync(scriptPath, scriptTemplate, 'utf-8');
57
+ console.log("true");
58
+ }
59
+ } catch (e) {
60
+ console.log(`Error occurred while processing timer id: ${argvs[2]}, message: ${e.message}${JSON.stringify(res)}}`);
61
+ }
62
+ }
63
+ }
64
+
65
+ module.exports = pullList;
@@ -0,0 +1,21 @@
1
+ const { getPackageJson } = require("../../utils/config")
2
+ const { postClass } = require("../../utils/http")
3
+
4
+ async function get(arg1, arg2) {
5
+ let body = JSON.parse(decodeURI(arg1))
6
+ let config = await getPackageJson(arg2);
7
+ let res = await postClass(config.setupSvc + "/api/ccPeak/list", body, config.accessToken)
8
+ if (res.result) {
9
+ const simpleList = (res.data.list || []).map(item => ({
10
+ apiname: item.apiname,
11
+ id: item.id,
12
+ name: item.name
13
+ }))
14
+ console.log(JSON.stringify(simpleList))
15
+ return simpleList
16
+ } else {
17
+ console.error('error:', res.message);
18
+ }
19
+ }
20
+
21
+ module.exports = get;
@@ -2,8 +2,10 @@ const cc = {}
2
2
  cc.create = require("./create")
3
3
  cc.publish = require("./publish")
4
4
  cc.pull = require("./pull")
5
+ cc.get = require("./get")
6
+ cc.pullList = require("./pullList")
5
7
  function Timer(action, argvs) {
6
- cc[action](argvs[2])
8
+ cc[action](argvs[2], argvs[3])
7
9
  }
8
10
 
9
11
  module.exports = Timer;
@@ -0,0 +1,41 @@
1
+ const fs = require("fs");
2
+ const path = require("path")
3
+ const { getPackageJson } = require("../../utils/config");
4
+ const { postClass } = require("../../utils/http");
5
+
6
+ /**
7
+ * 批量拉取定时器详情并生成本地文件
8
+ * @param timer id
9
+ */
10
+ async function pullList(arg1, arg2) {
11
+ const body = { id: arg1 };
12
+ let config = await getPackageJson(arg2);
13
+ const res = await postClass(config.setupSvc + "/api/ccPeak/detail", body, config.accessToken);
14
+ try {
15
+ const trigger = res.data.trigger;
16
+ if (!trigger) throw new Error('No trigger detail found');
17
+ // 判断trigger.name是否全为英文
18
+ let timerName = trigger.apiname;
19
+ if (/^[A-Za-z0-9_]+$/.test(trigger.name)) {
20
+ timerName = trigger.name;
21
+ }
22
+ const folderPath = path.join(arg2, `schedule/${timerName}`);
23
+ if (!fs.existsSync(folderPath)) {
24
+ fs.mkdirSync(folderPath, { recursive: true });
25
+ }
26
+ const javaFile = path.join(folderPath, `${timerName}.java`);
27
+ const javaContent = `package schedule.${timerName};\n\nimport com.cloudcc.core.*;\n\npublic class ${timerName} extends CCSchedule {\n public ${timerName}() {\n // @SOURCE_CONTENT_START\n${trigger.source}\n // @SOURCE_CONTENT_END\n }\n}\n`;
28
+ fs.writeFileSync(javaFile, javaContent, "utf8");
29
+ const configJson = {
30
+ id: trigger.id,
31
+ name: trigger.name,
32
+ version: "2"
33
+ };
34
+ fs.writeFileSync(path.join(folderPath, "config.json"), JSON.stringify(configJson, null, 4), "utf8");
35
+ console.log("true");
36
+ } catch (e) {
37
+ console.log(`Error occurred while processing timer id: ${args[2]}, message: ${e.message}${JSON.stringify(res)}}`);
38
+ }
39
+ }
40
+
41
+ module.exports = pullList;
@@ -0,0 +1,21 @@
1
+ const { getPackageJson } = require("../../utils/config")
2
+ const { postClass } = require("../../utils/http")
3
+
4
+ async function get(args) {
5
+ let body = JSON.parse(decodeURI(args[2]))
6
+ let config = await getPackageJson(args[3]);
7
+ let res = await postClass(config.setupSvc + "/api/triggerSetup/getTriggerByCondition", body, config.accessToken)
8
+ if (res.result) {
9
+ const simpleList = (res.data.list || []).map(item => ({
10
+ apiname: item.apiname,
11
+ id: item.id,
12
+ name: item.name
13
+ }))
14
+ console.log(JSON.stringify(simpleList))
15
+ return simpleList
16
+ } else {
17
+ console.error('error:', res.message);
18
+ }
19
+ }
20
+
21
+ module.exports = get;
@@ -2,6 +2,8 @@ const cc = {}
2
2
  cc.create = require("./create")
3
3
  cc.publish = require("./publish")
4
4
  cc.pull = require("./pull")
5
+ cc.get = require("./get")
6
+ cc.pullList = require("./pullList")
5
7
  function Classes(action, argvs) {
6
8
  cc[action](argvs)
7
9
  }
@@ -0,0 +1,43 @@
1
+ const fs = require("fs");
2
+ const path = require("path")
3
+ const { getPackageJson } = require("../../utils/config");
4
+ const { postClass } = require("../../utils/http");
5
+
6
+ /**
7
+ * 批量拉取触发器详情并生成本地文件
8
+ * @param trigger id
9
+ */
10
+ async function pullList(args) {
11
+ const body = { id: args[2] };
12
+ let config = await getPackageJson(args[3]);
13
+ const res = await postClass(config.setupSvc + "/api/trigger/newobjtrigger", body, config.accessToken);
14
+ try {
15
+ const data = res.data;
16
+ const targetObj = data.targetObj;
17
+ const trigger = data.trigger;
18
+ const triggerName = trigger.apiname;
19
+ const folderPath = path.join(args[3], `triggers/${targetObj.schemetableName.toLowerCase()}/${triggerName}`);
20
+ if (!fs.existsSync(folderPath)) {
21
+ fs.mkdirSync(folderPath, { recursive: true });
22
+ }
23
+ const javaFile = path.join(folderPath, `${triggerName}.java`);
24
+ const javaContent = `package triggers.${targetObj.schemetableName.toLowerCase()}.${triggerName};\n\nimport com.cloudcc.core.*;\n\npublic class ${triggerName} extends CCTrigger {\n public ${triggerName}() {\n super(userInfo);\n // @SOURCE_CONTENT_START\n${trigger.triggerSource}\n // @SOURCE_CONTENT_END\n }\n}\n`;
25
+ fs.writeFileSync(javaFile, javaContent, "utf8");
26
+ const configJson = {
27
+ id: trigger.id,
28
+ name: trigger.name,
29
+ apiname: trigger.apiname,
30
+ targetObjectId: trigger.targetObjectId || '',
31
+ schemetableName: targetObj.schemetableName || '',
32
+ triggerTime: trigger.triggerTime || '',
33
+ version: "2",
34
+ isactive: typeof trigger.isactive === 'boolean' ? trigger.isactive : true
35
+ };
36
+ fs.writeFileSync(path.join(folderPath, "config.json"), JSON.stringify(configJson, null, 4), "utf8");
37
+ console.log("true");
38
+ } catch (e) {
39
+ console.log(`Error occurred while processing trigger id: ${args[2]}, message: ${e.message}${JSON.stringify(res)}}`);
40
+ }
41
+ }
42
+
43
+ module.exports = pullList;