@qwe8652591/abap-recursive-query 1.1.0

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 (210) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +223 -0
  3. package/dist/cli/consumer-cli.d.ts +8 -0
  4. package/dist/cli/consumer-cli.d.ts.map +1 -0
  5. package/dist/cli/consumer-cli.js +180 -0
  6. package/dist/cli/producer-cli.d.ts +8 -0
  7. package/dist/cli/producer-cli.d.ts.map +1 -0
  8. package/dist/cli/producer-cli.js +249 -0
  9. package/dist/cli/query-object.d.ts +3 -0
  10. package/dist/cli/query-object.d.ts.map +1 -0
  11. package/dist/cli/query-object.js +486 -0
  12. package/dist/common/FilterCache.d.ts +62 -0
  13. package/dist/common/FilterCache.d.ts.map +1 -0
  14. package/dist/common/FilterCache.js +119 -0
  15. package/dist/common/RedisQueueManager.d.ts +170 -0
  16. package/dist/common/RedisQueueManager.d.ts.map +1 -0
  17. package/dist/common/RedisQueueManager.js +663 -0
  18. package/dist/common/abapStructures.d.ts +391 -0
  19. package/dist/common/abapStructures.d.ts.map +1 -0
  20. package/dist/common/abapStructures.js +2 -0
  21. package/dist/common/config.d.ts +66 -0
  22. package/dist/common/config.d.ts.map +1 -0
  23. package/dist/common/config.js +56 -0
  24. package/dist/common/index.d.ts +13 -0
  25. package/dist/common/index.d.ts.map +1 -0
  26. package/dist/common/index.js +38 -0
  27. package/dist/common/recursiveQueryConfig.d.ts +77 -0
  28. package/dist/common/recursiveQueryConfig.d.ts.map +1 -0
  29. package/dist/common/recursiveQueryConfig.js +129 -0
  30. package/dist/common/tableStructures.d.ts +176 -0
  31. package/dist/common/tableStructures.d.ts.map +1 -0
  32. package/dist/common/tableStructures.js +10 -0
  33. package/dist/common/types.d.ts +104 -0
  34. package/dist/common/types.d.ts.map +1 -0
  35. package/dist/common/types.js +31 -0
  36. package/dist/common/utils.d.ts +57 -0
  37. package/dist/common/utils.d.ts.map +1 -0
  38. package/dist/common/utils.js +300 -0
  39. package/dist/consumer/FileDownloadConsumer.d.ts +127 -0
  40. package/dist/consumer/FileDownloadConsumer.d.ts.map +1 -0
  41. package/dist/consumer/FileDownloadConsumer.js +1003 -0
  42. package/dist/consumer/generators/baseGenerator.d.ts +38 -0
  43. package/dist/consumer/generators/baseGenerator.d.ts.map +1 -0
  44. package/dist/consumer/generators/baseGenerator.js +103 -0
  45. package/dist/consumer/generators/domainGenerator.d.ts +78 -0
  46. package/dist/consumer/generators/domainGenerator.d.ts.map +1 -0
  47. package/dist/consumer/generators/domainGenerator.js +241 -0
  48. package/dist/consumer/generators/guiStatusGenerator.d.ts +16 -0
  49. package/dist/consumer/generators/guiStatusGenerator.d.ts.map +1 -0
  50. package/dist/consumer/generators/guiStatusGenerator.js +48 -0
  51. package/dist/consumer/generators/guiTitleGenerator.d.ts +16 -0
  52. package/dist/consumer/generators/guiTitleGenerator.d.ts.map +1 -0
  53. package/dist/consumer/generators/guiTitleGenerator.js +48 -0
  54. package/dist/consumer/generators/index.d.ts +14 -0
  55. package/dist/consumer/generators/index.d.ts.map +1 -0
  56. package/dist/consumer/generators/index.js +38 -0
  57. package/dist/consumer/generators/messageGenerator.d.ts +16 -0
  58. package/dist/consumer/generators/messageGenerator.d.ts.map +1 -0
  59. package/dist/consumer/generators/messageGenerator.js +73 -0
  60. package/dist/consumer/generators/metadataGenerator.d.ts +29 -0
  61. package/dist/consumer/generators/metadataGenerator.d.ts.map +1 -0
  62. package/dist/consumer/generators/metadataGenerator.js +135 -0
  63. package/dist/consumer/generators/screenGenerator.d.ts +173 -0
  64. package/dist/consumer/generators/screenGenerator.d.ts.map +1 -0
  65. package/dist/consumer/generators/screenGenerator.js +859 -0
  66. package/dist/consumer/generators/structureGenerator.d.ts +36 -0
  67. package/dist/consumer/generators/structureGenerator.d.ts.map +1 -0
  68. package/dist/consumer/generators/structureGenerator.js +131 -0
  69. package/dist/consumer/generators/textElementGenerator.d.ts +16 -0
  70. package/dist/consumer/generators/textElementGenerator.d.ts.map +1 -0
  71. package/dist/consumer/generators/textElementGenerator.js +70 -0
  72. package/dist/consumer/handlers/handleGetClass.d.ts +8 -0
  73. package/dist/consumer/handlers/handleGetClass.d.ts.map +1 -0
  74. package/dist/consumer/handlers/handleGetClass.js +18 -0
  75. package/dist/consumer/handlers/handleGetFunction.d.ts +8 -0
  76. package/dist/consumer/handlers/handleGetFunction.d.ts.map +1 -0
  77. package/dist/consumer/handlers/handleGetFunction.js +19 -0
  78. package/dist/consumer/handlers/handleGetFunctionGroup.d.ts +8 -0
  79. package/dist/consumer/handlers/handleGetFunctionGroup.d.ts.map +1 -0
  80. package/dist/consumer/handlers/handleGetFunctionGroup.js +19 -0
  81. package/dist/consumer/handlers/handleGetInclude.d.ts +8 -0
  82. package/dist/consumer/handlers/handleGetInclude.d.ts.map +1 -0
  83. package/dist/consumer/handlers/handleGetInclude.js +18 -0
  84. package/dist/consumer/handlers/handleGetProgram.d.ts +8 -0
  85. package/dist/consumer/handlers/handleGetProgram.d.ts.map +1 -0
  86. package/dist/consumer/handlers/handleGetProgram.js +27 -0
  87. package/dist/consumer/handlers/handleZTableQuery.d.ts +8 -0
  88. package/dist/consumer/handlers/handleZTableQuery.d.ts.map +1 -0
  89. package/dist/consumer/handlers/handleZTableQuery.js +20 -0
  90. package/dist/consumer/handlers/index.d.ts +10 -0
  91. package/dist/consumer/handlers/index.d.ts.map +1 -0
  92. package/dist/consumer/handlers/index.js +27 -0
  93. package/dist/consumer/index.d.ts +9 -0
  94. package/dist/consumer/index.d.ts.map +1 -0
  95. package/dist/consumer/index.js +24 -0
  96. package/dist/consumer/utils/download.d.ts +13 -0
  97. package/dist/consumer/utils/download.d.ts.map +1 -0
  98. package/dist/consumer/utils/download.js +38 -0
  99. package/dist/consumer/utils/index.d.ts +5 -0
  100. package/dist/consumer/utils/index.d.ts.map +1 -0
  101. package/dist/consumer/utils/index.js +20 -0
  102. package/dist/handlers/handleGetClass.d.ts +8 -0
  103. package/dist/handlers/handleGetClass.d.ts.map +1 -0
  104. package/dist/handlers/handleGetClass.js +19 -0
  105. package/dist/handlers/handleGetFunction.d.ts +8 -0
  106. package/dist/handlers/handleGetFunction.d.ts.map +1 -0
  107. package/dist/handlers/handleGetFunction.js +20 -0
  108. package/dist/handlers/handleGetFunctionGroup.d.ts +8 -0
  109. package/dist/handlers/handleGetFunctionGroup.d.ts.map +1 -0
  110. package/dist/handlers/handleGetFunctionGroup.js +19 -0
  111. package/dist/handlers/handleGetInclude.d.ts +8 -0
  112. package/dist/handlers/handleGetInclude.d.ts.map +1 -0
  113. package/dist/handlers/handleGetInclude.js +19 -0
  114. package/dist/handlers/handleGetInterface.d.ts +8 -0
  115. package/dist/handlers/handleGetInterface.d.ts.map +1 -0
  116. package/dist/handlers/handleGetInterface.js +19 -0
  117. package/dist/handlers/handleGetPackage.d.ts +8 -0
  118. package/dist/handlers/handleGetPackage.d.ts.map +1 -0
  119. package/dist/handlers/handleGetPackage.js +42 -0
  120. package/dist/handlers/handleGetProgram.d.ts +8 -0
  121. package/dist/handlers/handleGetProgram.d.ts.map +1 -0
  122. package/dist/handlers/handleGetProgram.js +19 -0
  123. package/dist/handlers/handleGetStructure.d.ts +8 -0
  124. package/dist/handlers/handleGetStructure.d.ts.map +1 -0
  125. package/dist/handlers/handleGetStructure.js +19 -0
  126. package/dist/handlers/handleGetTable.d.ts +8 -0
  127. package/dist/handlers/handleGetTable.d.ts.map +1 -0
  128. package/dist/handlers/handleGetTable.js +19 -0
  129. package/dist/handlers/handleGetTableContents.d.ts +8 -0
  130. package/dist/handlers/handleGetTableContents.d.ts.map +1 -0
  131. package/dist/handlers/handleGetTableContents.js +22 -0
  132. package/dist/handlers/handleGetTransaction.d.ts +8 -0
  133. package/dist/handlers/handleGetTransaction.d.ts.map +1 -0
  134. package/dist/handlers/handleGetTransaction.js +19 -0
  135. package/dist/handlers/handleGetTypeInfo.d.ts +8 -0
  136. package/dist/handlers/handleGetTypeInfo.d.ts.map +1 -0
  137. package/dist/handlers/handleGetTypeInfo.js +32 -0
  138. package/dist/handlers/handleSearchObject.d.ts +8 -0
  139. package/dist/handlers/handleSearchObject.d.ts.map +1 -0
  140. package/dist/handlers/handleSearchObject.js +20 -0
  141. package/dist/handlers/handleZObjectQuery.d.ts +8 -0
  142. package/dist/handlers/handleZObjectQuery.d.ts.map +1 -0
  143. package/dist/handlers/handleZObjectQuery.js +25 -0
  144. package/dist/handlers/handleZTableQuery.d.ts +8 -0
  145. package/dist/handlers/handleZTableQuery.d.ts.map +1 -0
  146. package/dist/handlers/handleZTableQuery.js +20 -0
  147. package/dist/index.d.ts +17 -0
  148. package/dist/index.d.ts.map +1 -0
  149. package/dist/index.js +45 -0
  150. package/dist/lib/download.d.ts +49 -0
  151. package/dist/lib/download.d.ts.map +1 -0
  152. package/dist/lib/download.js +78 -0
  153. package/dist/lib/index.d.ts +9 -0
  154. package/dist/lib/index.d.ts.map +1 -0
  155. package/dist/lib/index.js +23 -0
  156. package/dist/lib/utils.d.ts +31 -0
  157. package/dist/lib/utils.d.ts.map +1 -0
  158. package/dist/lib/utils.js +272 -0
  159. package/dist/producer/RecursiveQueryProducer.d.ts +92 -0
  160. package/dist/producer/RecursiveQueryProducer.d.ts.map +1 -0
  161. package/dist/producer/RecursiveQueryProducer.js +496 -0
  162. package/dist/producer/handlers/handleZObjectQuery.d.ts +8 -0
  163. package/dist/producer/handlers/handleZObjectQuery.d.ts.map +1 -0
  164. package/dist/producer/handlers/handleZObjectQuery.js +24 -0
  165. package/dist/producer/handlers/index.d.ts +6 -0
  166. package/dist/producer/handlers/index.d.ts.map +1 -0
  167. package/dist/producer/handlers/index.js +21 -0
  168. package/dist/producer/index.d.ts +7 -0
  169. package/dist/producer/index.d.ts.map +1 -0
  170. package/dist/producer/index.js +22 -0
  171. package/dist/recursive/abapStructures.d.ts +377 -0
  172. package/dist/recursive/abapStructures.d.ts.map +1 -0
  173. package/dist/recursive/abapStructures.js +2 -0
  174. package/dist/recursive/generate/baseGenerator.d.ts +34 -0
  175. package/dist/recursive/generate/baseGenerator.d.ts.map +1 -0
  176. package/dist/recursive/generate/baseGenerator.js +112 -0
  177. package/dist/recursive/generate/domainGenerator.d.ts +26 -0
  178. package/dist/recursive/generate/domainGenerator.d.ts.map +1 -0
  179. package/dist/recursive/generate/domainGenerator.js +128 -0
  180. package/dist/recursive/generate/functionGroupGenerator.d.ts +30 -0
  181. package/dist/recursive/generate/functionGroupGenerator.d.ts.map +1 -0
  182. package/dist/recursive/generate/functionGroupGenerator.js +90 -0
  183. package/dist/recursive/generate/index.d.ts +12 -0
  184. package/dist/recursive/generate/index.d.ts.map +1 -0
  185. package/dist/recursive/generate/index.js +34 -0
  186. package/dist/recursive/generate/messageGenerator.d.ts +16 -0
  187. package/dist/recursive/generate/messageGenerator.d.ts.map +1 -0
  188. package/dist/recursive/generate/messageGenerator.js +73 -0
  189. package/dist/recursive/generate/screenGenerator.d.ts +173 -0
  190. package/dist/recursive/generate/screenGenerator.d.ts.map +1 -0
  191. package/dist/recursive/generate/screenGenerator.js +858 -0
  192. package/dist/recursive/generate/structureGenerator.d.ts +22 -0
  193. package/dist/recursive/generate/structureGenerator.d.ts.map +1 -0
  194. package/dist/recursive/generate/structureGenerator.js +88 -0
  195. package/dist/recursive/generate/textElementGenerator.d.ts +16 -0
  196. package/dist/recursive/generate/textElementGenerator.d.ts.map +1 -0
  197. package/dist/recursive/generate/textElementGenerator.js +68 -0
  198. package/dist/recursive/handleRecursiveObjectQuery.d.ts +94 -0
  199. package/dist/recursive/handleRecursiveObjectQuery.d.ts.map +1 -0
  200. package/dist/recursive/handleRecursiveObjectQuery.js +219 -0
  201. package/dist/recursive/recursiveObjectQuery.d.ts +159 -0
  202. package/dist/recursive/recursiveObjectQuery.d.ts.map +1 -0
  203. package/dist/recursive/recursiveObjectQuery.js +1358 -0
  204. package/dist/recursive/recursiveQueryConfig.d.ts +129 -0
  205. package/dist/recursive/recursiveQueryConfig.d.ts.map +1 -0
  206. package/dist/recursive/recursiveQueryConfig.js +133 -0
  207. package/dist/recursive/tableStructures.d.ts +196 -0
  208. package/dist/recursive/tableStructures.d.ts.map +1 -0
  209. package/dist/recursive/tableStructures.js +10 -0
  210. package/package.json +47 -0
@@ -0,0 +1,38 @@
1
+ /**
2
+ * 基础生成器类
3
+ * 提供通用的XML生成和辅助方法
4
+ */
5
+ /**
6
+ * 添加XML字段
7
+ * 只有当字段值存在且不为空时才添加,否则不添加字段
8
+ * @param xml - XML字符串
9
+ * @param xmlTagName - XML标签名
10
+ * @param fieldValue - 字段值
11
+ * @param indent - 缩进字符串
12
+ */
13
+ export declare function addXmlField(xml: string, xmlTagName: string, fieldValue: string | number | undefined | null, indent?: string): string;
14
+ /**
15
+ * 添加XML数字字段
16
+ * 只有当字段值存在时才添加(0是有效值),否则不添加字段
17
+ */
18
+ export declare function addXmlNumericField(xml: string, xmlTagName: string, fieldValue: number | undefined | null, indent?: string): string;
19
+ /**
20
+ * 生成版本控制元数据
21
+ */
22
+ export declare function generateVersionMetadata(objectName: string, objectType: string, contentType: string, subType?: string): any;
23
+ /**
24
+ * 生成校验和
25
+ */
26
+ export declare function generateChecksum(content: string): string;
27
+ /**
28
+ * 验证XML内容格式
29
+ */
30
+ export declare function validateXmlContent(xmlContent: string): {
31
+ valid: boolean;
32
+ errors: string[];
33
+ };
34
+ /**
35
+ * 生成元数据文件
36
+ */
37
+ export declare function generateMetadataFile(metadata: any, baseDir: string, objectName: string, objectType: string, contentType: string, subType?: string): void;
38
+ //# sourceMappingURL=baseGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseGenerator.d.ts","sourceRoot":"","sources":["../../../src/consumer/generators/baseGenerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACvB,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,EAC9C,MAAM,GAAE,MAAuB,GAChC,MAAM,CAOR;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAC9B,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EACrC,MAAM,GAAE,MAAuB,GAChC,MAAM,CAMR;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACnC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,GACjB,GAAG,CAUL;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CA4B3F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAChC,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,GACjB,IAAI,CAYN"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ /**
3
+ * 基础生成器类
4
+ * 提供通用的XML生成和辅助方法
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.addXmlField = addXmlField;
8
+ exports.addXmlNumericField = addXmlNumericField;
9
+ exports.generateVersionMetadata = generateVersionMetadata;
10
+ exports.generateChecksum = generateChecksum;
11
+ exports.validateXmlContent = validateXmlContent;
12
+ exports.generateMetadataFile = generateMetadataFile;
13
+ const fs_1 = require("fs");
14
+ const path_1 = require("path");
15
+ const utils_1 = require("../../common/utils");
16
+ /**
17
+ * 添加XML字段
18
+ * 只有当字段值存在且不为空时才添加,否则不添加字段
19
+ * @param xml - XML字符串
20
+ * @param xmlTagName - XML标签名
21
+ * @param fieldValue - 字段值
22
+ * @param indent - 缩进字符串
23
+ */
24
+ function addXmlField(xml, xmlTagName, fieldValue, indent = ' ') {
25
+ // 如果值为 undefined、null 或空字符串,则不添加字段
26
+ if (fieldValue === undefined || fieldValue === null || fieldValue === '') {
27
+ return xml;
28
+ }
29
+ return xml + `${indent}<${xmlTagName}>${(0, utils_1.escapeXml)(String(fieldValue))}</${xmlTagName}>\n`;
30
+ }
31
+ /**
32
+ * 添加XML数字字段
33
+ * 只有当字段值存在时才添加(0是有效值),否则不添加字段
34
+ */
35
+ function addXmlNumericField(xml, xmlTagName, fieldValue, indent = ' ') {
36
+ // 如果值为 undefined 或 null,则不添加字段(注意:0 是有效值)
37
+ if (fieldValue === undefined || fieldValue === null) {
38
+ return xml;
39
+ }
40
+ return xml + `${indent}<${xmlTagName}>${fieldValue}</${xmlTagName}>\n`;
41
+ }
42
+ /**
43
+ * 生成版本控制元数据
44
+ */
45
+ function generateVersionMetadata(objectName, objectType, contentType, subType) {
46
+ return {
47
+ objectName,
48
+ objectType,
49
+ contentType,
50
+ subType,
51
+ exportType: 'separate',
52
+ timestamp: new Date().toISOString(),
53
+ version: '1.0.0'
54
+ };
55
+ }
56
+ /**
57
+ * 生成校验和
58
+ */
59
+ function generateChecksum(content) {
60
+ const crypto = require('crypto');
61
+ return crypto.createHash('md5').update(content, 'utf8').digest('hex');
62
+ }
63
+ /**
64
+ * 验证XML内容格式
65
+ */
66
+ function validateXmlContent(xmlContent) {
67
+ const errors = [];
68
+ // 基础XML格式验证
69
+ if (!xmlContent.includes('<?xml version="1.0"')) {
70
+ errors.push('缺少XML声明');
71
+ }
72
+ if (!xmlContent.includes('<abapGit')) {
73
+ errors.push('缺少abapGit根元素');
74
+ }
75
+ if (!xmlContent.includes('</abapGit>')) {
76
+ errors.push('abapGit根元素未正确关闭');
77
+ }
78
+ // 检查标签是否匹配(简单验证)
79
+ const openTags = xmlContent.match(/<[^/][^>]*>/g) || [];
80
+ const closeTags = xmlContent.match(/<\/[^>]+>/g) || [];
81
+ if (openTags.length !== closeTags.length) {
82
+ errors.push(`开标签(${openTags.length})和闭标签(${closeTags.length})数量不匹配`);
83
+ }
84
+ return {
85
+ valid: errors.length === 0,
86
+ errors
87
+ };
88
+ }
89
+ /**
90
+ * 生成元数据文件
91
+ */
92
+ function generateMetadataFile(metadata, baseDir, objectName, objectType, contentType, subType) {
93
+ const safeObjectName = objectName.replace(/[/\\]/g, '_');
94
+ let metadataFileName = `${safeObjectName}_${objectType.toLowerCase()}_${contentType.toLowerCase()}`;
95
+ if (subType) {
96
+ metadataFileName += `_${subType.toLowerCase()}`;
97
+ }
98
+ metadataFileName += '.metadata.json';
99
+ const metadataPath = (0, path_1.join)(baseDir, metadataFileName);
100
+ metadata.checksum = generateChecksum(JSON.stringify(metadata, null, 2));
101
+ (0, fs_1.writeFileSync)(metadataPath, JSON.stringify(metadata, null, 2), 'utf-8');
102
+ console.error(`生成元数据文件: ${metadataPath}`);
103
+ }
@@ -0,0 +1,78 @@
1
+ /**
2
+ * 域生成器
3
+ * 生成ABAP域定义文件并处理表字段中的 domain 定义
4
+ */
5
+ import { TableField } from '../../common/tableStructures';
6
+ /**
7
+ * 推断域类型
8
+ */
9
+ export declare function inferDomainType(domainData: Array<{
10
+ DOMVALUE_L: string;
11
+ DOMVALUE_H?: string;
12
+ DDTEXT: string;
13
+ }>): string;
14
+ /**
15
+ * 生成常量名
16
+ */
17
+ export declare function generateConstantName(description: string): string;
18
+ /**
19
+ * 生成域文件内容 - 生成符合ABAP标准的域定义(传统ABAP语法)
20
+ */
21
+ export declare function generateDomainContent(domainName: string, domainData?: Array<{
22
+ DOMNAME: string;
23
+ DOMVALUE_L: string;
24
+ DOMVALUE_H?: string;
25
+ DDTEXT: string;
26
+ }>): string;
27
+ /**
28
+ * Domain 数据接口(内部使用)
29
+ */
30
+ interface DomainDataItem {
31
+ DOMNAME: string;
32
+ DOMVALUE_L: string;
33
+ DOMVALUE_H?: string;
34
+ DDTEXT: string;
35
+ }
36
+ /**
37
+ * Domain 处理结果
38
+ */
39
+ export interface DomainProcessResult {
40
+ totalDomains: number;
41
+ downloadedDomains: number;
42
+ errors: string[];
43
+ }
44
+ /**
45
+ * 下载文件结果(从 recursiveObjectQuery 移过来的接口)
46
+ */
47
+ export interface DownloadedFileInfo {
48
+ objectName: string;
49
+ objectType: string;
50
+ filePath: string;
51
+ success: boolean;
52
+ error?: string;
53
+ }
54
+ /**
55
+ * 处理表字段中的 domain 定义
56
+ * @param fields 表字段列表
57
+ * @param structureName 结构名
58
+ * @param downloadRootPath 下载根目录
59
+ * @param downloadedFiles 已下载文件列表(可选,用于记录)
60
+ * @returns 处理结果
61
+ */
62
+ export declare function processTableDomains(fields: TableField[], structureName: string, downloadRootPath: string, downloadedFiles?: DownloadedFileInfo[]): Promise<DomainProcessResult>;
63
+ /**
64
+ * 处理单个 domain 定义
65
+ * @param domainName Domain 名称
66
+ * @param structureName 来源结构名
67
+ * @param downloadRootPath 下载根目录
68
+ * @param domainData Domain 数据
69
+ * @param downloadedFiles 已下载文件列表(可选)
70
+ * @returns 处理结果
71
+ */
72
+ export declare function processSingleDomain(domainName: string, structureName: string, downloadRootPath: string, domainData?: DomainDataItem[], downloadedFiles?: DownloadedFileInfo[]): Promise<{
73
+ success: boolean;
74
+ filePath?: string;
75
+ error?: string;
76
+ }>;
77
+ export {};
78
+ //# sourceMappingURL=domainGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domainGenerator.d.ts","sourceRoot":"","sources":["../../../src/consumer/generators/domainGenerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG1D;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;CAAE,CAAC,GAAG,MAAM,CA2DvH;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAkBhE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACjC,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,KAAK,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAClB,CAAC,GACH,MAAM,CAiDR;AAED;;GAEG;AACH,UAAU,cAAc;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,UAAU,EAAE,EACpB,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM,EACxB,eAAe,CAAC,EAAE,kBAAkB,EAAE,GACvC,OAAO,CAAC,mBAAmB,CAAC,CA4D9B;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACrC,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM,EACxB,UAAU,CAAC,EAAE,cAAc,EAAE,EAC7B,eAAe,CAAC,EAAE,kBAAkB,EAAE,GACvC,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA+ClE"}
@@ -0,0 +1,241 @@
1
+ "use strict";
2
+ /**
3
+ * 域生成器
4
+ * 生成ABAP域定义文件并处理表字段中的 domain 定义
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.inferDomainType = inferDomainType;
8
+ exports.generateConstantName = generateConstantName;
9
+ exports.generateDomainContent = generateDomainContent;
10
+ exports.processTableDomains = processTableDomains;
11
+ exports.processSingleDomain = processSingleDomain;
12
+ const fs_1 = require("fs");
13
+ const path_1 = require("path");
14
+ const download_1 = require("../utils/download");
15
+ /**
16
+ * 推断域类型
17
+ */
18
+ function inferDomainType(domainData) {
19
+ if (!domainData || domainData.length === 0) {
20
+ return 'c LENGTH 1';
21
+ }
22
+ // 分析所有值的长度和类型
23
+ let maxLength = 0;
24
+ let hasNumeric = true;
25
+ let hasAlpha = false;
26
+ let hasDate = true;
27
+ let hasTime = true;
28
+ for (const item of domainData) {
29
+ const value = item.DOMVALUE_L || '';
30
+ maxLength = Math.max(maxLength, value.length);
31
+ // 检查是否为数字
32
+ if (!/^\d+$/.test(value)) {
33
+ hasNumeric = false;
34
+ }
35
+ // 检查是否包含字母
36
+ if (/[a-zA-Z]/.test(value)) {
37
+ hasAlpha = true;
38
+ }
39
+ // 检查是否为日期格式 (YYYYMMDD)
40
+ if (!/^\d{8}$/.test(value)) {
41
+ hasDate = false;
42
+ }
43
+ // 检查是否为时间格式 (HHMMSS)
44
+ if (!/^\d{6}$/.test(value)) {
45
+ hasTime = false;
46
+ }
47
+ }
48
+ // 根据分析结果确定类型
49
+ if (hasDate && maxLength === 8) {
50
+ return 'd';
51
+ }
52
+ if (hasTime && maxLength === 6) {
53
+ return 't';
54
+ }
55
+ if (hasNumeric && !hasAlpha) {
56
+ if (maxLength <= 3) {
57
+ return 'n LENGTH 3';
58
+ }
59
+ else {
60
+ return `n LENGTH ${maxLength}`;
61
+ }
62
+ }
63
+ if (maxLength <= 1) {
64
+ return 'c LENGTH 1';
65
+ }
66
+ else {
67
+ return `c LENGTH ${maxLength}`;
68
+ }
69
+ }
70
+ /**
71
+ * 生成常量名
72
+ */
73
+ function generateConstantName(description) {
74
+ if (!description) {
75
+ return '';
76
+ }
77
+ // 移除特殊字符,转换为大写
78
+ let name = description
79
+ .replace(/[^\w\s]/g, '')
80
+ .replace(/\s+/g, '_')
81
+ .toUpperCase()
82
+ .substring(0, 20); // SAP常量名长度限制
83
+ // 确保以字母开头
84
+ if (!/^[A-Za-z]/.test(name)) {
85
+ name = 'C_' + name;
86
+ }
87
+ return name;
88
+ }
89
+ /**
90
+ * 生成域文件内容 - 生成符合ABAP标准的域定义(传统ABAP语法)
91
+ */
92
+ function generateDomainContent(domainName, domainData) {
93
+ let content = `*----------------------------------------------------------------------*\n`;
94
+ content += `* ${domainName}\n`;
95
+ content += `*----------------------------------------------------------------------*\n`;
96
+ // 如果有固定值,创建域定义
97
+ if (domainData && domainData.length > 0) {
98
+ // 去重处理,避免重复值
99
+ const uniqueValues = new Map();
100
+ domainData.forEach(item => {
101
+ const key = item.DOMVALUE_H ? `${item.DOMVALUE_L}-${item.DOMVALUE_H}` : item.DOMVALUE_L;
102
+ if (!uniqueValues.has(key)) {
103
+ uniqueValues.set(key, item);
104
+ }
105
+ });
106
+ const uniqueDomainData = Array.from(uniqueValues.values());
107
+ content += `TYPES: ${domainName.toLowerCase()} TYPE ${inferDomainType(uniqueDomainData)}.\n\n`;
108
+ // 添加固定值定义
109
+ if (uniqueDomainData.length > 0) {
110
+ content += `CONSTANTS: BEGIN OF ${domainName.toLowerCase()}_values,\n`;
111
+ uniqueDomainData.forEach((item, index) => {
112
+ const constName = generateConstantName(item.DDTEXT) || `value_${index + 1}`;
113
+ content += ` ${constName.toLowerCase()} TYPE ${domainName.toLowerCase()}`;
114
+ if (item.DOMVALUE_H) {
115
+ content += ` VALUE '${item.DOMVALUE_L}' TO '${item.DOMVALUE_H}'`;
116
+ }
117
+ else {
118
+ content += ` VALUE '${item.DOMVALUE_L}'`;
119
+ }
120
+ if (item.DDTEXT) {
121
+ content += ` ## "${item.DDTEXT.replace(/"/g, '""')}"`;
122
+ }
123
+ content += ',\n';
124
+ });
125
+ content += ` END OF ${domainName.toLowerCase()}_values.\n`;
126
+ }
127
+ }
128
+ else {
129
+ // 没有固定值的域定义
130
+ content += `TYPES: ${domainName.toLowerCase()} TYPE c LENGTH 1.\n`;
131
+ }
132
+ return content;
133
+ }
134
+ /**
135
+ * 处理表字段中的 domain 定义
136
+ * @param fields 表字段列表
137
+ * @param structureName 结构名
138
+ * @param downloadRootPath 下载根目录
139
+ * @param downloadedFiles 已下载文件列表(可选,用于记录)
140
+ * @returns 处理结果
141
+ */
142
+ async function processTableDomains(fields, structureName, downloadRootPath, downloadedFiles) {
143
+ const result = {
144
+ totalDomains: 0,
145
+ downloadedDomains: 0,
146
+ errors: []
147
+ };
148
+ const domainsMap = new Map();
149
+ // 收集所有需要处理的domain及其数据
150
+ for (const field of fields) {
151
+ if (field.IDOMAINS && field.IDOMAINS.length > 0) {
152
+ for (const domain of field.IDOMAINS) {
153
+ if (domain.DOMNAME) {
154
+ if (!domainsMap.has(domain.DOMNAME)) {
155
+ domainsMap.set(domain.DOMNAME, []);
156
+ }
157
+ // 转换 DomainValue 到内部格式
158
+ domainsMap.get(domain.DOMNAME).push({
159
+ DOMNAME: domain.DOMNAME,
160
+ DOMVALUE_L: domain.DOMVALUE_L,
161
+ DOMVALUE_H: domain.DOMVALUE_H,
162
+ DDTEXT: domain.DDTEXT_ZH || domain.DDTEXT_EN || ''
163
+ });
164
+ }
165
+ }
166
+ }
167
+ }
168
+ if (domainsMap.size === 0) {
169
+ return result;
170
+ }
171
+ console.error(`表/结构 ${structureName} 包含 ${domainsMap.size} 个 domain 定义,开始导出...`);
172
+ result.totalDomains = domainsMap.size;
173
+ // 确保domain目录存在
174
+ const domainsDir = (0, path_1.join)(downloadRootPath, 'structures', 'domains');
175
+ if (!(0, fs_1.existsSync)(domainsDir)) {
176
+ (0, fs_1.mkdirSync)(domainsDir, { recursive: true });
177
+ }
178
+ // 处理每个domain
179
+ for (const [domainName, domainData] of domainsMap) {
180
+ const singleResult = await processSingleDomain(domainName, structureName, downloadRootPath, domainData, downloadedFiles);
181
+ if (singleResult.success) {
182
+ result.downloadedDomains++;
183
+ }
184
+ else if (singleResult.error) {
185
+ result.errors.push(singleResult.error);
186
+ }
187
+ }
188
+ return result;
189
+ }
190
+ /**
191
+ * 处理单个 domain 定义
192
+ * @param domainName Domain 名称
193
+ * @param structureName 来源结构名
194
+ * @param downloadRootPath 下载根目录
195
+ * @param domainData Domain 数据
196
+ * @param downloadedFiles 已下载文件列表(可选)
197
+ * @returns 处理结果
198
+ */
199
+ async function processSingleDomain(domainName, structureName, downloadRootPath, domainData, downloadedFiles) {
200
+ try {
201
+ console.error(`处理domain: ${domainName} (来自结构体 ${structureName})`);
202
+ // 使用 domainGenerator 生成 domain 文件内容
203
+ const domainContent = generateDomainContent(domainName, domainData);
204
+ // 生成文件路径
205
+ const sanitizedName = domainName
206
+ .replace(/[/\\]/g, '_')
207
+ .replace(/[<>]/g, '#')
208
+ .replace(/[^a-zA-Z0-9_#]/g, '_');
209
+ const domainFilePath = (0, path_1.join)(downloadRootPath, 'structures', 'domains', `${sanitizedName}.dom.abap`);
210
+ // 确保目录存在
211
+ const dirPath = (0, path_1.dirname)(domainFilePath);
212
+ if (!(0, fs_1.existsSync)(dirPath)) {
213
+ (0, fs_1.mkdirSync)(dirPath, { recursive: true });
214
+ }
215
+ // 下载 domain 文件
216
+ const downloadResult = await (0, download_1.downloadFile)(domainContent, domainFilePath, 'abap');
217
+ // 记录下载结果(如果提供了 downloadedFiles 数组)
218
+ if (downloadedFiles) {
219
+ downloadedFiles.push({
220
+ objectName: domainName,
221
+ objectType: 'DOMAIN',
222
+ filePath: domainFilePath,
223
+ success: downloadResult.success,
224
+ error: downloadResult.success ? undefined : downloadResult.message
225
+ });
226
+ }
227
+ if (downloadResult.success) {
228
+ console.error(`domain生成成功: ${domainName} (来自结构体 ${structureName}) -> ${downloadResult.filePath}`);
229
+ return { success: true, filePath: downloadResult.filePath };
230
+ }
231
+ else {
232
+ console.error(`domain生成失败: ${domainName} (来自结构体 ${structureName}) - ${downloadResult.message}`);
233
+ return { success: false, error: downloadResult.message };
234
+ }
235
+ }
236
+ catch (error) {
237
+ const errorMessage = `处理domain ${domainName} 失败: ${error instanceof Error ? error.message : String(error)}`;
238
+ console.error(errorMessage);
239
+ return { success: false, error: errorMessage };
240
+ }
241
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * GUI状态生成器
3
+ * 生成GUI状态JSON文件
4
+ */
5
+ import { GuiStatus } from '../../common/abapStructures';
6
+ /**
7
+ * 生成GUI状态JSON内容
8
+ * 按照标准JSON格式输出
9
+ */
10
+ export declare function generateGuiStatusJsonContent(guiStatuses: GuiStatus[]): string;
11
+ /**
12
+ * 生成GUI状态JSON文件
13
+ * 导出到独立的JSON文件中
14
+ */
15
+ export declare function generateGuiStatusJson(guiStatuses: GuiStatus[], programName: string, objectType: string, downloadRootPath: string, resultDownloadedFiles: any[]): Promise<void>;
16
+ //# sourceMappingURL=guiStatusGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guiStatusGenerator.d.ts","sourceRoot":"","sources":["../../../src/consumer/generators/guiStatusGenerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD;;;GAGG;AACH,wBAAgB,4BAA4B,CACxC,WAAW,EAAE,SAAS,EAAE,GACzB,MAAM,CAER;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACvC,WAAW,EAAE,SAAS,EAAE,EACxB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,EACxB,qBAAqB,EAAE,GAAG,EAAE,GAC7B,OAAO,CAAC,IAAI,CAAC,CA+Bf"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ /**
3
+ * GUI状态生成器
4
+ * 生成GUI状态JSON文件
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.generateGuiStatusJsonContent = generateGuiStatusJsonContent;
8
+ exports.generateGuiStatusJson = generateGuiStatusJson;
9
+ const fs_1 = require("fs");
10
+ const path_1 = require("path");
11
+ /**
12
+ * 生成GUI状态JSON内容
13
+ * 按照标准JSON格式输出
14
+ */
15
+ function generateGuiStatusJsonContent(guiStatuses) {
16
+ return JSON.stringify(guiStatuses, null, 2);
17
+ }
18
+ /**
19
+ * 生成GUI状态JSON文件
20
+ * 导出到独立的JSON文件中
21
+ */
22
+ async function generateGuiStatusJson(guiStatuses, programName, objectType, downloadRootPath, resultDownloadedFiles) {
23
+ const safeProgramName = programName.replace(/[/\\]/g, '_');
24
+ // GUI状态文件路径:/guiStatuses目录下
25
+ const baseDir = (0, path_1.join)(downloadRootPath, 'guiStatuses');
26
+ if (!(0, fs_1.existsSync)(baseDir)) {
27
+ (0, fs_1.mkdirSync)(baseDir, { recursive: true });
28
+ }
29
+ // 生成JSON内容
30
+ const jsonContent = generateGuiStatusJsonContent(guiStatuses);
31
+ // 文件命名:{程序名}_{对象类型}_guistatus.json
32
+ const jsonFileName = `${safeProgramName}_${objectType.toLowerCase()}_guistatus.json`;
33
+ const jsonFilePath = (0, path_1.join)(baseDir, jsonFileName);
34
+ (0, fs_1.writeFileSync)(jsonFilePath, jsonContent, 'utf-8');
35
+ console.error(`导出GUI状态 ${programName} 到: ${jsonFilePath}`);
36
+ // 记录下载统计
37
+ resultDownloadedFiles.push({
38
+ objectName: programName,
39
+ objectType: 'GUI_STATUS',
40
+ filePath: jsonFilePath,
41
+ success: true,
42
+ metadata: {
43
+ statusCount: guiStatuses.length,
44
+ exportType: 'separate',
45
+ objectType: objectType
46
+ }
47
+ });
48
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * GUI标题生成器
3
+ * 生成GUI标题JSON文件
4
+ */
5
+ import { GuiTitle } from '../../common/abapStructures';
6
+ /**
7
+ * 生成GUI标题JSON内容
8
+ * 按照标准JSON格式输出
9
+ */
10
+ export declare function generateGuiTitlesJsonContent(guiTitles: GuiTitle[]): string;
11
+ /**
12
+ * 生成GUI标题JSON文件
13
+ * 导出到独立的JSON文件中
14
+ */
15
+ export declare function generateGuiTitlesJson(guiTitles: GuiTitle[], programName: string, objectType: string, downloadRootPath: string, resultDownloadedFiles: any[]): Promise<void>;
16
+ //# sourceMappingURL=guiTitleGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guiTitleGenerator.d.ts","sourceRoot":"","sources":["../../../src/consumer/generators/guiTitleGenerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD;;;GAGG;AACH,wBAAgB,4BAA4B,CACxC,SAAS,EAAE,QAAQ,EAAE,GACtB,MAAM,CAER;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACvC,SAAS,EAAE,QAAQ,EAAE,EACrB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,EACxB,qBAAqB,EAAE,GAAG,EAAE,GAC7B,OAAO,CAAC,IAAI,CAAC,CA+Bf"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ /**
3
+ * GUI标题生成器
4
+ * 生成GUI标题JSON文件
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.generateGuiTitlesJsonContent = generateGuiTitlesJsonContent;
8
+ exports.generateGuiTitlesJson = generateGuiTitlesJson;
9
+ const fs_1 = require("fs");
10
+ const path_1 = require("path");
11
+ /**
12
+ * 生成GUI标题JSON内容
13
+ * 按照标准JSON格式输出
14
+ */
15
+ function generateGuiTitlesJsonContent(guiTitles) {
16
+ return JSON.stringify(guiTitles, null, 2);
17
+ }
18
+ /**
19
+ * 生成GUI标题JSON文件
20
+ * 导出到独立的JSON文件中
21
+ */
22
+ async function generateGuiTitlesJson(guiTitles, programName, objectType, downloadRootPath, resultDownloadedFiles) {
23
+ const safeProgramName = programName.replace(/[/\\]/g, '_');
24
+ // GUI标题文件路径:/guiTitles目录下
25
+ const baseDir = (0, path_1.join)(downloadRootPath, 'guiTitles');
26
+ if (!(0, fs_1.existsSync)(baseDir)) {
27
+ (0, fs_1.mkdirSync)(baseDir, { recursive: true });
28
+ }
29
+ // 生成JSON内容
30
+ const jsonContent = generateGuiTitlesJsonContent(guiTitles);
31
+ // 文件命名:{程序名}_{对象类型}_guititles.json
32
+ const jsonFileName = `${safeProgramName}_${objectType.toLowerCase()}_guititles.json`;
33
+ const jsonFilePath = (0, path_1.join)(baseDir, jsonFileName);
34
+ (0, fs_1.writeFileSync)(jsonFilePath, jsonContent, 'utf-8');
35
+ console.error(`导出GUI标题 ${programName} 到: ${jsonFilePath}`);
36
+ // 记录下载统计
37
+ resultDownloadedFiles.push({
38
+ objectName: programName,
39
+ objectType: 'GUI_TITLE',
40
+ filePath: jsonFilePath,
41
+ success: true,
42
+ metadata: {
43
+ titleCount: guiTitles.length,
44
+ exportType: 'separate',
45
+ objectType: objectType
46
+ }
47
+ });
48
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * 主生成器索引文件
3
+ * 导出所有生成器模块
4
+ */
5
+ export * from './baseGenerator';
6
+ export * from './screenGenerator';
7
+ export * from './structureGenerator';
8
+ export * from './domainGenerator';
9
+ export * from './messageGenerator';
10
+ export * from './textElementGenerator';
11
+ export * from './guiTitleGenerator';
12
+ export * from './guiStatusGenerator';
13
+ export * from './metadataGenerator';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/consumer/generators/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,iBAAiB,CAAC;AAGhC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ /**
3
+ * 主生成器索引文件
4
+ * 导出所有生成器模块
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ // 基础工具
22
+ __exportStar(require("./baseGenerator"), exports);
23
+ // 统一屏幕生成器(推荐使用)
24
+ __exportStar(require("./screenGenerator"), exports);
25
+ // 结构体生成器
26
+ __exportStar(require("./structureGenerator"), exports);
27
+ // 域生成器
28
+ __exportStar(require("./domainGenerator"), exports);
29
+ // 消息类生成器
30
+ __exportStar(require("./messageGenerator"), exports);
31
+ // 文本元素生成器
32
+ __exportStar(require("./textElementGenerator"), exports);
33
+ // GUI标题生成器
34
+ __exportStar(require("./guiTitleGenerator"), exports);
35
+ // GUI状态生成器
36
+ __exportStar(require("./guiStatusGenerator"), exports);
37
+ // 对象元数据生成器
38
+ __exportStar(require("./metadataGenerator"), exports);