zero-ai 0.3.27 → 0.3.30

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.
Files changed (36) hide show
  1. package/document/doc-web/E.html +2 -5
  2. package/document/doc-web/index.html +131 -32
  3. package/document/doc-web/module-__epic.html +156 -0
  4. package/document/doc-web/module-ai.html +373 -194
  5. package/document/doc-web/module-aj.html +253 -436
  6. package/document/doc-web/module-art.html +621 -0
  7. package/{run-doc.sh → k-doc.sh} +4 -3
  8. package/package.json +1 -1
  9. package/src/cab/resource/resource.xlsx +0 -0
  10. package/src/commander/ai.zero +1 -1
  11. package/src/commander-ai/fn.csv.js +13 -13
  12. package/src/commander-ai/fn.data.js +14 -14
  13. package/src/commander-ai/fn.init.js +11 -11
  14. package/src/commander-ai/fn.key.js +12 -12
  15. package/src/commander-ai/fn.md5.js +11 -11
  16. package/src/commander-ai/fn.random.js +12 -12
  17. package/src/commander-ai/fn.sync.js +115 -8
  18. package/src/commander-ai/fn.uk.js +12 -12
  19. package/src/commander-ai/fn.uuid.js +11 -11
  20. package/src/commander-ai/index.js +64 -1
  21. package/src/commander-aj/fn.i.mod.js +42 -1
  22. package/src/commander-aj/fn.i.resource.js +69 -1
  23. package/src/commander-aj/fn.j.bundle.js +11 -15
  24. package/src/commander-aj/fn.j.init.js +12 -12
  25. package/src/commander-aj/fn.j.permission.js +12 -16
  26. package/src/commander-aj/fn.j.plugin.js +13 -17
  27. package/src/commander-aj/index.js +26 -2
  28. package/src/commander-ar/fn.i.complex.js +16 -20
  29. package/src/commander-ar/fn.i.form.js +17 -28
  30. package/src/commander-ar/index.js +77 -1
  31. package/src/epic/ai.economy.impl.fn.excel.js +21 -1
  32. package/src/epic/ai.unified.fn.fn.error.code.js +0 -6
  33. package/src/epic/index.js +52 -159
  34. package/document/doc-web/module-_debug.html +0 -1104
  35. package/document/doc-web/module-_epic.html +0 -1631
  36. package/src/commander-aj/fn.j.row.js +0 -5
@@ -54,17 +54,21 @@ module.exports = () => {
54
54
  *
55
55
  * ### 1. 命令
56
56
  *
57
- * 使用该命令生成一个 OSGI Bundle 专用的目录结构
57
+ * ```shell
58
+ * aj bundle -p <path>
59
+ * ```
58
60
  *
59
- * ### 2. 执行
61
+ * |短参|全参|类型|默认|含义|
62
+ * |---|---|---|---|:---|
63
+ * |-p|--path|String|无|生成目录规范的主目录。|
60
64
  *
61
- * #### 2.1. 基本介绍
65
+ * ### 2. 介绍
62
66
  *
63
- * ```shell
64
- * # 2.1.1. 命令语法
65
- * aj bundle -p <path>
67
+ * 使用该命令生成一个 OSGI Bundle 专用的目录结构
68
+ *
69
+ * ### 3. 执行
66
70
  *
67
- * # 2.1.2. 执行测试
71
+ * ```shell
68
72
  * ai bundle -p <path>
69
73
  *
70
74
  * [Zero AI] Zero Ecotope AI工具项 : <专用工具>
@@ -81,14 +85,6 @@ module.exports = () => {
81
85
  * [Zero AI] (Async)成功将数据写入到文件:./specification.txt!
82
86
  * ```
83
87
  *
84
- * ### 3. 选项
85
- *
86
- * #### 3.1. 基本说明
87
- *
88
- * |短参|全参|类型|默认|含义|
89
- * |---|---|---|---|:---|
90
- * |-p|--path|String|无|生成目录规范的主目录。|
91
- *
92
88
  * @memberOf module:aj
93
89
  * @method bundle
94
90
  **/
@@ -30,15 +30,21 @@ module.exports = () => {
30
30
  *
31
31
  * ### 1. 命令
32
32
  *
33
- * vertx-zero-scaffold项目脚手架初始化专用命令。
34
- *
35
- * ### 2. 执行
36
- *
37
33
  * ```shell
38
- * # 2.1. 命令语法
39
34
  * aj init -name <name>
35
+ * ```
36
+ *
37
+ * |短参|全参|类型|默认|含义|
38
+ * |---|---|---|---|:---|
39
+ * |-n|--name|String|(无)|项目名称以及目录名称。|
40
+ *
41
+ * ### 2. 介绍
40
42
  *
41
- * # 2.2. 执行测试
43
+ * zero-scaffold项目脚手架初始化专用命令。
44
+ *
45
+ * ### 3. 执行
46
+ *
47
+ * ```shell
42
48
  * aj init -name test-demo-api
43
49
  * [Zero AI] Zero AI 代码生成工具 : <标准工具>
44
50
  * [Zero AI] HomePage : http://www.vertxai.cn
@@ -61,12 +67,6 @@ module.exports = () => {
61
67
  * [Zero AI] 工程初始化完成:test-demo-api,您可以开始您的Zero Api之行了!
62
68
  * ```
63
69
  *
64
- * ### 3. 选项
65
- *
66
- * |短参|全参|类型|默认|含义|
67
- * |---|---|---|---|:---|
68
- * |-n|--name|String|(无)|项目名称以及目录名称。|
69
- *
70
70
  * @memberOf module:aj
71
71
  * @method init
72
72
  */
@@ -30,32 +30,28 @@ module.exports = () => {
30
30
  *
31
31
  * ### 1. 命令
32
32
  *
33
- * 使用该命令生成某个角色的专用权限文件目录(内置所有Zero Extension标准权限)
33
+ * ```shell
34
+ * aj perm -r <role> -i <input>
35
+ * ```
34
36
  *
35
- * ### 2. 执行
37
+ * |短参|全参|类型|默认|含义|
38
+ * |---|---|---|---|:---|
39
+ * |-r|--role|String|无|系统中角色的UUID。|
40
+ * |-i|--input|String|无|另外一个目录,用来合并新权限。|
36
41
  *
37
- * #### 2.1. 基本介绍
42
+ * ### 2. 介绍
38
43
  *
39
- * ```shell
40
- * # 2.1.1. 命令语法
41
- * aj perm -r <role> -i <input>
44
+ * 使用该命令生成某个角色的专用权限文件目录(内置所有Zero Extension标准权限),此命令会直接从单个角色中拷贝
42
45
  *
43
- * # 2.1.2. 执行测试
46
+ * ### 3. 执行
47
+ *
48
+ * ```shell
44
49
  * ai perm -r ccc -i input
45
50
  *
46
51
  * [Zero AI] Zero AI 1. 准备生成角色对应权限:ID = "ccc" ...
47
52
  * [Zero AI] Zero AI 2. 生成 Zero Extension 权限...
48
53
  * ```
49
54
  *
50
- * ### 3. 选项
51
- *
52
- * #### 3.1. 基本说明
53
- *
54
- * |短参|全参|类型|默认|含义|
55
- * |---|---|---|---|:---|
56
- * |-c|--role|String|无|系统中角色的UUID。|
57
- * |-i|--input|String|无|另外一个目录,用来合并新权限。|
58
- *
59
55
  * @memberOf module:aj
60
56
  * @method perm
61
57
  **/
@@ -31,17 +31,23 @@ module.exports = () => {
31
31
  *
32
32
  * ### 1. 命令
33
33
  *
34
- * 使用该命令执行插件项目初始化,设置第三方集成项目模板专用。
34
+ * ```shell
35
+ * aj plugin -m pbc
36
+ * ```
35
37
  *
36
- * ### 2. 执行
38
+ * |短参|全参|类型|默认|含义|
39
+ * |---|---|---|---|:---|
40
+ * |-p|--path|String|无|根据传入路径设置,如果是`.`则是当前目录,如果不传则从`workspace.json`中读取。|
41
+ * |-m|--module|String|无|模块名称,通常是`infix-xxx`中的`xxx`名称。|
42
+ * |-c|--config|String|`workspace.json`|配置文件路径。|
37
43
  *
38
- * #### 2.1. 基本介绍
44
+ * ### 2. 介绍
39
45
  *
40
- * ```shell
41
- * # 2.1.1. 命令语法
42
- * aj plugin -m pbc
46
+ * 使用该命令执行插件项目初始化,设置第三方集成项目模板专用。
47
+ *
48
+ * ### 3. 执行
43
49
  *
44
- * # 2.1.2. 执行测试
50
+ * ```shell
45
51
  * aj plugin -m pbc
46
52
  * # ...省略部分...
47
53
  * [Zero AI] Zero AI 系统启动......
@@ -105,16 +111,6 @@ module.exports = () => {
105
111
  * [Zero AI] Zero AI 3. 执行完成......
106
112
  * ```
107
113
  *
108
- * ### 3. 选项
109
- *
110
- * #### 3.1. 基本说明
111
- *
112
- * |短参|全参|类型|默认|含义|
113
- * |---|---|---|---|:---|
114
- * |-p|--path|String|无|根据传入路径设置,如果是`.`则是当前目录,如果不传则从`workspace.json`中读取。|
115
- * |-m|--module|String|无|模块名称,通常是`infix-xxx`中的`xxx`名称。|
116
- * |-c|--config|String|`workspace.json`|配置文件路径。|
117
- *
118
114
  * @memberOf module:aj
119
115
  * @method plugin
120
116
  **/
@@ -1,4 +1,3 @@
1
-
2
1
  const javaPermission = require('./fn.j.permission');
3
2
  const javaResource = require('./fn.i.resource');
4
3
  const javaPlugin = require('./fn.j.plugin');
@@ -13,4 +12,29 @@ const exported = {
13
12
  javaInit, // aj jinit
14
13
  javaBundle,
15
14
  };
16
- module.exports = exported;
15
+ module.exports = exported;
16
+
17
+ /**
18
+ * ## aj命令
19
+ *
20
+ * ### 1. 基本使用
21
+ *
22
+ * aj命令的专用语法如下:
23
+ *
24
+ * ```shell
25
+ * aj <command> [options1|options2|options3...]
26
+ * ```
27
+ *
28
+ * ### 2. 命令列表
29
+ *
30
+ * |命令执行|含义|
31
+ * |---|:---|
32
+ * |aj perm|生成某个角色的权限专用Excel数据文件|
33
+ * |aj rs|为某个接口直接生成系统所需的权限文件,只针对超级管理员(key = `e501b47a-c08b-4c83-b12b-95ad82873e96`),<br/>若存在其他额外角色可以继续使用命令 `aj perm` 从超级管理员中拷贝。|
34
+ * |aj plugin|「工程命令」生成第三方插件专用初始化命令,可为某个 Maven 插件实现初始化流程,包括代码生成。|
35
+ * |aj mod|模块化专用命令,根据当前环境中的 __路由规划器__ 和 __模块规划器__ 自动化重写模块化专用配置文件。|
36
+ * |aj init|「工程命令」根据后端脚手架初始化Zero后端工程命令。|
37
+ * |aj bundle|OSGI目录初始化专用命令,可以为某个 OSGI 的 Bundle 按相关规范生成目录结构。|
38
+ *
39
+ * @module aj
40
+ */
@@ -28,22 +28,26 @@ module.exports = () => {
28
28
  if (configuration) Ec.reactRun(configuration);
29
29
  }
30
30
  /**
31
- * ## `aj icomplex`
31
+ * ## `art complex`
32
32
  *
33
33
  * ### 1. 命令
34
34
  *
35
- * 使用该命令生成完整的`ExListComplex`完整组件页。
35
+ * ```shell
36
+ * art complex
37
+ * ```
36
38
  *
37
- * ### 2. 执行
39
+ * |短参|全参|类型|默认|含义|
40
+ * |---|---|---|---|:---|
41
+ * |-c|--config|String|`ui.json`|配置文件路径。|
38
42
  *
39
- * #### 2.1. 基本介绍
43
+ * ### 2. 介绍
40
44
  *
41
- * ```shell
42
- * # 2.1.1. 命令语法
43
- * aj icomplex
45
+ * 使用该命令生成完整的`ExListComplex`完整组件页。
44
46
  *
45
- * # 2.1.2. 执行测试
46
- * aj icomplex
47
+ * ### 3. 执行
48
+ *
49
+ * ```shell
50
+ * art complex
47
51
  * # ...省略部分...
48
52
  * [Zero AI] Zero AI 系统启动......
49
53
  * [Zero AI] Zero AI 加载输入参数:
@@ -86,7 +90,7 @@ module.exports = () => {
86
90
  * * 执行位置可以是当前项目中的任意一个路径,脚本会自己计算当前项目的根目录(Zero UI专用)。
87
91
  * * 该命令执行时模板文件位置位于`src/cab/list`目录中,且模板文件以`tpl`结尾。
88
92
  *
89
- * #### 2.2. 生成的文件说明
93
+ * ### 4. 生成的文件说明
90
94
  *
91
95
  * |文件名|模板|含义|
92
96
  * |:---|:---|:---|
@@ -99,14 +103,6 @@ module.exports = () => {
99
103
  * |Op.js|Op.js.tpl|Action/Callback专用Js事件脚本。|
100
104
  * |UI.Form.js|UI.Form.js.tpl|三个表单合一的专用Js脚本。|
101
105
  *
102
- * ### 3. 选项
103
- *
104
- * #### 3.1. 基本说明
105
- *
106
- * |短参|全参|类型|默认|含义|
107
- * |---|---|---|---|:---|
108
- * |-c|--config|String|`ui.json`|配置文件路径。|
109
- *
110
- * @memberOf module:aj
111
- * @method icomplex
106
+ * @memberOf module:art
107
+ * @method complex
112
108
  */
@@ -22,22 +22,27 @@ module.exports = () => {
22
22
  if (configuration) Ec.reactRun(configuration);
23
23
  }
24
24
  /**
25
- * ## `aj iform`
25
+ * ## `art form`
26
26
  *
27
27
  * ### 1. 命令
28
28
  *
29
- * 使用该命令生成完整的`ExForm`完整表单组件页。
29
+ * ```shell
30
+ * art form -u <ui>
31
+ * ```
32
+ *
33
+ * |短参|全参|类型|默认|含义|
34
+ * |---|---|---|---|:---|
35
+ * |-u|--ui|String|无|生成的文件名,最终生成`<Name>.json/<Name>.js`|
36
+ * |-c|--config|String|`ui.json`|配置文件路径。|
30
37
  *
31
- * ### 2. 执行
38
+ * ### 2. 介绍
32
39
  *
33
- * #### 2.1. 基本介绍
40
+ * 使用该命令生成完整的`ExForm`完整表单组件页。
34
41
  *
35
- * ```shell
36
- * # 2.1.1. 命令语法
37
- * ai iform -u <ui>
42
+ * ### 3. 执行
38
43
  *
39
- * # 2.1.2. 执行测试
40
- * aj iform -u UI.Basic
44
+ * ```shell
45
+ * art form -u UI.Basic
41
46
  * # ...省略部分...
42
47
  * [Zero AI] Zero AI 系统启动......
43
48
  * [Zero AI] Zero AI 加载输入参数:
@@ -68,24 +73,8 @@ module.exports = () => {
68
73
  * * 该命令执行时模板文件位置位于`src/cab/form`目录中,且模板文件以`tpl`结尾。
69
74
  * * 生成的`UI.js`的按钮部分直接位于当前文件中,并且默认包含了`ADD, EDIT, DELETE`三个核心按钮。
70
75
  *
71
- * #### 2.2. 生成的文件说明
72
- *
73
- * |文件名|模板|含义|
74
- * |:---|:---|:---|
75
- * |Cab.json|无|名空间关联文件,计算得来。|
76
- * |`<Name>.json`|UI.json.tpl|当前表单专用资源文件。|
77
- * |`<Name>.js`|UI.js.tpl|当前表单源代码专用文件。|
78
- *
79
- *
80
- * ### 3. 选项
81
- *
82
- * #### 3.1. 基本说明
83
- *
84
- * |短参|全参|类型|默认|含义|
85
- * |---|---|---|---|:---|
86
- * |-u|--ui|String|无|生成的文件名,最终生成`<Name>.json/<Name>.js`|
87
- * |-c|--config|String|`ui.json`|配置文件路径。|
76
+ * ### 4. 生成的文件说明
88
77
  *
89
- * @memberOf module:aj
90
- * @method iform
78
+ * @memberOf module:art
79
+ * @method form
91
80
  */
@@ -4,4 +4,80 @@ const exported = {
4
4
  reactComplex,
5
5
  reactForm,
6
6
  }
7
- module.exports = exported;
7
+ module.exports = exported;
8
+
9
+ /**
10
+ * ## art命令
11
+ *
12
+ * ### 1. 基本使用
13
+ *
14
+ * art命令的专用语法如下:
15
+ *
16
+ * ```shell
17
+ * art <command> [options1|options2|options3...]
18
+ * ```
19
+ *
20
+ * ### 2. 命令列表
21
+ *
22
+ * |命令执行|含义|
23
+ * |---|:---|
24
+ * |art complex|「模块」生成`ExListComplex`专用模块。|
25
+ * |art form|「组件」生成`ExForm`专用组件。|
26
+ *
27
+ * ### 3. 标准化配置
28
+ *
29
+ * ```js
30
+ * {
31
+ * module: 'ZT环境变量设置的模块',
32
+ * language: 'Z_LANGUAGE语言环境变量设置,默认「cn」',
33
+ * pathRoot: '系统根据执行目录计算的当前项目根目录',
34
+ * pathResource: '资源目录',
35
+ * pathUi: '生成代码目录',
36
+ * namespace: 'Cab.json中所需的名空间值',
37
+ * input: {
38
+ * params: {
39
+ * MODULE: '当前模块的文字描述名称',
40
+ * API: '构造标准接口`/api/xxx`的RESTful接口专用路径替换部分。',
41
+ * IDENTIFIER: '模型的统一标识符,最终会绑定到identifier中。'
42
+ * },
43
+ * tpl: {
44
+ * type: '使用的模板tpl文件目录,cab/下的目录名',
45
+ * source: '「单文件」单文件的拷贝源',
46
+ * target: '「单文件」单文件的目标拷贝文件'
47
+ * }
48
+ * },
49
+ * runtime: {
50
+ * namespaceFile: 'Cab.json文件生成路径',
51
+ * resource: '资源文件的根目录',
52
+ * resourceFiles: {
53
+ * 'fileName1': '资源文件地址,json后缀,模板则是fileName1.tpl文件',
54
+ * 'fileName2': '......'
55
+ * },
56
+ * ui: '代码文件根目录',
57
+ * uiFiles: {
58
+ * 'fileName1': '代码文件地址,js后缀,模板则是fileName1.tpl文件',
59
+ * 'fileName2': '......'
60
+ * }
61
+ * }
62
+ * }
63
+ * ```
64
+ *
65
+ *
66
+ * ### 4. 标准化模板参数
67
+ *
68
+ * > `tpl`文件中替换的部分会使用配置文件中的参数来替换。
69
+ *
70
+ * |参数|替换部分|含义|
71
+ * |:---|---|:---|
72
+ * |MODULE|`#MODULE#`|当前模块的文字描述名称。|
73
+ * |API|`#API#`|构造标准接口`/api/xxx`的RESTful接口专用路径替换部分。|
74
+ * |IDENTIFIER|`#IDENTIFIER#`|模型的统一标识符,最终会绑定到identifier中。|
75
+ * |NAME|`#NAME#`|绑定文件设定,直接赋值`input.params.NAME = tpl.target`生成单文件专用。|
76
+ * |SIGMA|`#SIGMA`|SIGMA统一标识符,用于标识租户、应用。|
77
+ * |ROLE_ID|`#ROLE_ID#`|操作的角色ID。|
78
+ * |PREFIX|无|生成文件专用参数,不在模板中。|
79
+ * |SHEET|无|工作专用的Sheet名,不在模板中。|
80
+ *
81
+ *
82
+ * @module art
83
+ */
@@ -60,6 +60,7 @@ const excelResource = async (config = {}, parameters = {}, pid = [], sheetName =
60
60
  const maxRow = worksheetRef['_rows'].length;
61
61
  const maxColumn = worksheetRef['_columns'].length;
62
62
  __LOG.info(`Zero AI `.cyan + ` 2.2. 分析结果:最大行 - ${maxRow.toString().blue},最大列 - ${maxColumn.toString().blue}。`);
63
+
63
64
  const pidSet = new Set();
64
65
  const generate = 0 === pid.length
65
66
  worksheetRef.eachRow((rowRef, rowNumber) => {
@@ -90,7 +91,26 @@ const excelResource = async (config = {}, parameters = {}, pid = [], sheetName =
90
91
  }
91
92
  })
92
93
  });
93
- __LOG.info(`Zero AI `.cyan + ` 1.3. 创建新数据文件......`.rainbow);
94
+ __LOG.info(`Zero AI `.cyan + ` 2.3. 正在解析表达式......`);
95
+ worksheetRef.eachRow((rowRef, rowNumber) => {
96
+ rowRef.eachCell((cellRef, cellNumber) => {
97
+ const original = cellRef.value;
98
+ if (original?.sharedFormula || original?.formula) {
99
+ let formula;
100
+ if (original.sharedFormula) {
101
+ formula = original.sharedFormula;
102
+ } else if (original.formula) {
103
+ formula = original.formula;
104
+ }
105
+ const cell = worksheetRef.getCell(formula);
106
+ if ("string" === typeof cell?.value) {
107
+ original.result = cell.value;
108
+ cellRef.value = original;
109
+ }
110
+ }
111
+ })
112
+ });
113
+ __LOG.info(`Zero AI `.cyan + ` 2.4. 创建新数据文件......`.rainbow);
94
114
  const targetFile = `./${config.identifier}.xlsx`;
95
115
  __LOG.info(`Zero AI `.cyan + ` 执行Worksheet:${targetFile.blue}。`);
96
116
  await workbook.xlsx.writeFile(targetFile);
@@ -57,12 +57,6 @@
57
57
  * |10033|`path`|当前路径不符合Zero专用规范(基础Java/Maven规范)。|
58
58
  * |10034|`path`|当前路径不符合Ox平台专用规范。|
59
59
  *
60
- * ### 3. 规范
61
- *
62
- * #### 3.1. Zero规范
63
- *
64
- * #### 3.2. Ox规范
65
- *
66
60
  * @class E
67
61
  */
68
62
  module.exports = {