@lcap/nasl 2.20.0-beta.2 → 2.20.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 (323) hide show
  1. package/out/automate/engine/index.d.ts +1 -1
  2. package/out/automate/engine/index.js +2 -3
  3. package/out/automate/engine/index.js.map +1 -1
  4. package/out/automate/engine/uniqueName.d.ts +1 -1
  5. package/out/automate/engine/uniqueName.js +2 -2
  6. package/out/automate/engine/uniqueName.js.map +1 -1
  7. package/out/automate/engine/utils.js +4 -1
  8. package/out/automate/engine/utils.js.map +1 -1
  9. package/out/automate/template/myProcess.d.ts +1 -1
  10. package/out/automate/template/myProcess.js +2 -2
  11. package/out/automate/template/myProcess.js.map +1 -1
  12. package/out/bak/translator.js +14 -22
  13. package/out/bak/translator.js.map +1 -1
  14. package/out/common/BaseNode.js +4 -1
  15. package/out/common/BaseNode.js.map +1 -1
  16. package/out/common/Command.d.ts +1 -0
  17. package/out/common/Command.js +5 -1
  18. package/out/common/Command.js.map +1 -1
  19. package/out/concepts/App__.d.ts +4 -0
  20. package/out/concepts/App__.js +30 -6
  21. package/out/concepts/App__.js.map +1 -1
  22. package/out/concepts/Assignee__.js +4 -3
  23. package/out/concepts/Assignee__.js.map +1 -1
  24. package/out/concepts/BatchAssignment__.js +3 -3
  25. package/out/concepts/BatchAssignment__.js.map +1 -1
  26. package/out/concepts/BindAttribute__.d.ts +7 -0
  27. package/out/concepts/BindAttribute__.js +270 -39
  28. package/out/concepts/BindAttribute__.js.map +1 -1
  29. package/out/concepts/BindDirective__.d.ts +7 -0
  30. package/out/concepts/BindDirective__.js +215 -17
  31. package/out/concepts/BindDirective__.js.map +1 -1
  32. package/out/concepts/BindStyle__.d.ts +7 -0
  33. package/out/concepts/BindStyle__.js +194 -4
  34. package/out/concepts/BindStyle__.js.map +1 -1
  35. package/out/concepts/CallFunction__.js +22 -8
  36. package/out/concepts/CallFunction__.js.map +1 -1
  37. package/out/concepts/CallInterface__.js +3 -2
  38. package/out/concepts/CallInterface__.js.map +1 -1
  39. package/out/concepts/CallLogic__.d.ts +3 -0
  40. package/out/concepts/CallLogic__.js +78 -89
  41. package/out/concepts/CallLogic__.js.map +1 -1
  42. package/out/concepts/CallQueryComponent__.js +20 -3
  43. package/out/concepts/CallQueryComponent__.js.map +1 -1
  44. package/out/concepts/ConfigGroup__.d.ts +1 -0
  45. package/out/concepts/ConfigGroup__.js +13 -0
  46. package/out/concepts/ConfigGroup__.js.map +1 -1
  47. package/out/concepts/ConfigProperty__.d.ts +19 -0
  48. package/out/concepts/ConfigProperty__.js +61 -0
  49. package/out/concepts/ConfigProperty__.js.map +1 -1
  50. package/out/concepts/Configuration__.d.ts +1 -0
  51. package/out/concepts/Configuration__.js +13 -0
  52. package/out/concepts/Configuration__.js.map +1 -1
  53. package/out/concepts/DataSource__.js.map +1 -1
  54. package/out/concepts/Destination__.d.ts +1 -0
  55. package/out/concepts/Destination__.js +61 -7
  56. package/out/concepts/Destination__.js.map +1 -1
  57. package/out/concepts/EntityProperty__.js +9 -1
  58. package/out/concepts/EntityProperty__.js.map +1 -1
  59. package/out/concepts/EnumItem__.d.ts +5 -5
  60. package/out/concepts/EnumItem__.js +6 -6
  61. package/out/concepts/Enum__.d.ts +20 -19
  62. package/out/concepts/Enum__.js +28 -1
  63. package/out/concepts/Enum__.js.map +1 -1
  64. package/out/concepts/ExternalDestination__.d.ts +1 -0
  65. package/out/concepts/ExternalDestination__.js +21 -3
  66. package/out/concepts/ExternalDestination__.js.map +1 -1
  67. package/out/concepts/ForEachStatement__.js +2 -0
  68. package/out/concepts/ForEachStatement__.js.map +1 -1
  69. package/out/concepts/Frontend__.d.ts +2 -1
  70. package/out/concepts/Frontend__.js.map +1 -1
  71. package/out/concepts/Identifier__.js +16 -5
  72. package/out/concepts/Identifier__.js.map +1 -1
  73. package/out/concepts/InterfaceParam__.js +9 -1
  74. package/out/concepts/InterfaceParam__.js.map +1 -1
  75. package/out/concepts/JSBlock__.js +5 -1
  76. package/out/concepts/JSBlock__.js.map +1 -1
  77. package/out/concepts/Logic__.d.ts +79 -79
  78. package/out/concepts/Logic__.js +16 -3
  79. package/out/concepts/Logic__.js.map +1 -1
  80. package/out/concepts/Match__.d.ts +0 -3
  81. package/out/concepts/Match__.js +11 -66
  82. package/out/concepts/Match__.js.map +1 -1
  83. package/out/concepts/MemberExpression__.js +9 -0
  84. package/out/concepts/MemberExpression__.js.map +1 -1
  85. package/out/concepts/Module__.d.ts +16 -0
  86. package/out/concepts/Module__.js +43 -0
  87. package/out/concepts/Module__.js.map +1 -1
  88. package/out/concepts/NewComposite__.d.ts +2 -4
  89. package/out/concepts/NewComposite__.js +91 -126
  90. package/out/concepts/NewComposite__.js.map +1 -1
  91. package/out/concepts/NewList__.d.ts +1 -0
  92. package/out/concepts/NewList__.js +22 -2
  93. package/out/concepts/NewList__.js.map +1 -1
  94. package/out/concepts/NewMap__.d.ts +1 -0
  95. package/out/concepts/NewMap__.js +43 -11
  96. package/out/concepts/NewMap__.js.map +1 -1
  97. package/out/concepts/OqlQueryComponent__.js +40 -12
  98. package/out/concepts/OqlQueryComponent__.js.map +1 -1
  99. package/out/concepts/Param__.js +10 -2
  100. package/out/concepts/Param__.js.map +1 -1
  101. package/out/concepts/ProcessElement__.js +2 -1
  102. package/out/concepts/ProcessElement__.js.map +1 -1
  103. package/out/concepts/ProcessOutcome__.js +1 -1
  104. package/out/concepts/ProcessOutcome__.js.map +1 -1
  105. package/out/concepts/ProcessOutcomes__.js +1 -1
  106. package/out/concepts/ProcessOutcomes__.js.map +1 -1
  107. package/out/concepts/Process__.js +1 -0
  108. package/out/concepts/Process__.js.map +1 -1
  109. package/out/concepts/Return__.js +10 -2
  110. package/out/concepts/Return__.js.map +1 -1
  111. package/out/concepts/StringInterpolation__.js +14 -2
  112. package/out/concepts/StringInterpolation__.js.map +1 -1
  113. package/out/concepts/StringLiteral__.js +6 -6
  114. package/out/concepts/StringLiteral__.js.map +1 -1
  115. package/out/concepts/StructureProperty__.js +9 -1
  116. package/out/concepts/StructureProperty__.js.map +1 -1
  117. package/out/concepts/TypeAnnotation__.d.ts +6 -3
  118. package/out/concepts/TypeAnnotation__.js +67 -13
  119. package/out/concepts/TypeAnnotation__.js.map +1 -1
  120. package/out/concepts/ValidationRule__.d.ts +1 -0
  121. package/out/concepts/ValidationRule__.js +53 -0
  122. package/out/concepts/ValidationRule__.js.map +1 -1
  123. package/out/concepts/Variable__.js +9 -1
  124. package/out/concepts/Variable__.js.map +1 -1
  125. package/out/concepts/ViewElement__.js +17 -1
  126. package/out/concepts/ViewElement__.js.map +1 -1
  127. package/out/concepts/View__.d.ts +1 -3
  128. package/out/concepts/View__.js +22 -11
  129. package/out/concepts/View__.js.map +1 -1
  130. package/out/concepts/basics/stdlib/nasl.collection.js +6 -1
  131. package/out/concepts/basics/stdlib/nasl.collection.js.map +1 -1
  132. package/out/concepts/basics/stdlib/nasl.configuration.js +3 -0
  133. package/out/concepts/basics/stdlib/nasl.configuration.js.map +1 -1
  134. package/out/concepts/basics/stdlib/nasl.core.d.ts +2 -0
  135. package/out/concepts/basics/stdlib/nasl.core.js +34 -0
  136. package/out/concepts/basics/stdlib/nasl.core.js.map +1 -1
  137. package/out/concepts/basics/stdlib/nasl.util.js +4 -2
  138. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  139. package/out/concepts/basics/types/index.d.ts +1 -0
  140. package/out/concepts/basics/types/index.js +3 -1
  141. package/out/concepts/basics/types/index.js.map +1 -1
  142. package/out/concepts/index__.d.ts +0 -1
  143. package/out/concepts/index__.js +0 -1
  144. package/out/concepts/index__.js.map +1 -1
  145. package/out/enums/KEYWORDS.js +8 -0
  146. package/out/enums/KEYWORDS.js.map +1 -1
  147. package/out/generator/genBundleFiles.js +24 -5
  148. package/out/generator/genBundleFiles.js.map +1 -1
  149. package/out/generator/genReleaseBody.d.ts +2 -3
  150. package/out/generator/genReleaseBody.js +97 -23
  151. package/out/generator/genReleaseBody.js.map +1 -1
  152. package/out/generator/permission.d.ts +2 -10
  153. package/out/generator/permission.js +27 -14
  154. package/out/generator/permission.js.map +1 -1
  155. package/out/server/entity2LogicNamespace.js +2 -20
  156. package/out/server/entity2LogicNamespace.js.map +1 -1
  157. package/out/server/extendBaseNode.js +16 -5
  158. package/out/server/extendBaseNode.js.map +1 -1
  159. package/out/server/formatTsUtils.d.ts +2 -1
  160. package/out/server/formatTsUtils.js +40 -10
  161. package/out/server/formatTsUtils.js.map +1 -1
  162. package/out/server/getLogics.d.ts +2 -2
  163. package/out/server/getLogics.js +3 -3
  164. package/out/server/getLogics.js.map +1 -1
  165. package/out/server/getMemberIdentifier.d.ts +1 -0
  166. package/out/server/getMemberIdentifier.js +27 -1
  167. package/out/server/getMemberIdentifier.js.map +1 -1
  168. package/out/server/index.js +1 -0
  169. package/out/server/index.js.map +1 -1
  170. package/out/server/naslServer.d.ts +7 -1
  171. package/out/server/naslServer.js +519 -46
  172. package/out/server/naslServer.js.map +1 -1
  173. package/out/server/translator.js +109 -33
  174. package/out/server/translator.js.map +1 -1
  175. package/out/service/storage/init.js +21 -1
  176. package/out/service/storage/init.js.map +1 -1
  177. package/out/templator/genCreateBlock.js +1 -3
  178. package/out/templator/genCreateBlock.js.map +1 -1
  179. package/out/templator/genCurdEditMultipleKeyBlock.js +1 -3
  180. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  181. package/out/templator/genCurdMultipleKeyBlock.js +2 -4
  182. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  183. package/out/templator/genGetBlock.js +1 -1
  184. package/out/templator/genGetBlock.js.map +1 -1
  185. package/out/templator/genGridViewBlock.js +2 -2
  186. package/out/templator/genGridViewBlock.js.map +1 -1
  187. package/out/templator/genListViewBlock.js +7 -1
  188. package/out/templator/genListViewBlock.js.map +1 -1
  189. package/out/templator/genSelectBlock.js +1 -1
  190. package/out/templator/genSelectBlock.js.map +1 -1
  191. package/out/templator/genTableBlock.js +2 -2
  192. package/out/templator/genTableBlock.js.map +1 -1
  193. package/out/templator/genUpdateBlock.js +2 -3
  194. package/out/templator/genUpdateBlock.js.map +1 -1
  195. package/out/utils/traverse.js +8 -2
  196. package/out/utils/traverse.js.map +1 -1
  197. package/package.json +2 -2
  198. package/sandbox/stdlib/dist/nasl.logging.js +0 -0
  199. package/sandbox/stdlib/dist/nasl.util.js +0 -0
  200. package/sandbox/stdlib/nasl.collection.ts +1 -0
  201. package/sandbox/stdlib/nasl.core.ts +34 -0
  202. package/sandbox/stdlib/nasl.oql.ts +71 -15
  203. package/sandbox/stdlib/nasl.util.ts +9 -3
  204. package/src/automate/engine/dist/index.dev.js +517 -0
  205. package/src/automate/engine/index.js +2 -3
  206. package/src/automate/engine/uniqueName.js +2 -2
  207. package/src/automate/engine/utils.js +4 -2
  208. package/src/automate/template/myProcess.js +2 -2
  209. package/src/bak/translator.js +16 -25
  210. package/src/common/BaseNode.ts +3 -1
  211. package/src/common/Command.ts +4 -0
  212. package/src/common/dist/BaseNode.js +1101 -0
  213. package/src/concepts/App__.ts +36 -7
  214. package/src/concepts/Assignee__.ts +4 -3
  215. package/src/concepts/BatchAssignment__.ts +3 -3
  216. package/src/concepts/BindAttribute__.ts +299 -38
  217. package/src/concepts/BindDirective__.ts +204 -31
  218. package/src/concepts/BindStyle__.ts +187 -24
  219. package/src/concepts/CallFunction__.ts +55 -10
  220. package/src/concepts/CallInterface__.ts +3 -2
  221. package/src/concepts/CallLogic__.ts +110 -90
  222. package/src/concepts/CallQueryComponent__.ts +18 -3
  223. package/src/concepts/ConfigGroup__.ts +17 -4
  224. package/src/concepts/ConfigProperty__.ts +70 -4
  225. package/src/concepts/Configuration__.ts +14 -5
  226. package/src/concepts/DataSource__.ts +4 -1
  227. package/src/concepts/Destination__.ts +61 -7
  228. package/src/concepts/EntityProperty__.ts +7 -1
  229. package/src/concepts/EnumItem__.ts +6 -6
  230. package/src/concepts/Enum__.ts +22 -19
  231. package/src/concepts/ExternalDestination__.ts +28 -8
  232. package/src/concepts/ForEachStatement__.ts +2 -0
  233. package/src/concepts/Frontend__.ts +2 -1
  234. package/src/concepts/Identifier__.ts +16 -5
  235. package/src/concepts/InterfaceParam__.ts +7 -1
  236. package/src/concepts/JSBlock__.ts +3 -2
  237. package/src/concepts/Logic__.ts +95 -83
  238. package/src/concepts/Match__.ts +31 -67
  239. package/src/concepts/MemberExpression__.ts +6 -0
  240. package/src/concepts/Module__.ts +57 -0
  241. package/src/concepts/NewComposite__.ts +95 -140
  242. package/src/concepts/NewList__.ts +23 -2
  243. package/src/concepts/NewMap__.ts +48 -24
  244. package/src/concepts/OqlQueryComponent__.ts +40 -20
  245. package/src/concepts/Param__.ts +178 -176
  246. package/src/concepts/ProcessElement__.ts +2 -1
  247. package/src/concepts/ProcessOutcome__.ts +1 -1
  248. package/src/concepts/ProcessOutcomes__.ts +1 -1
  249. package/src/concepts/Process__.ts +1 -0
  250. package/src/concepts/Return__.ts +8 -2
  251. package/src/concepts/StringInterpolation__.ts +19 -7
  252. package/src/concepts/StringLiteral__.ts +7 -6
  253. package/src/concepts/StructureProperty__.ts +7 -1
  254. package/src/concepts/TypeAnnotation__.ts +101 -14
  255. package/src/concepts/ValidationRule__.ts +58 -9
  256. package/src/concepts/Variable__.ts +11 -1
  257. package/src/concepts/ViewElement__.ts +39 -2
  258. package/src/concepts/View__.ts +26 -14
  259. package/src/concepts/basics/stdlib/dist/nasl.util.js +1602 -0
  260. package/src/concepts/basics/stdlib/dist/reference2TypeAnnotationList.js +24 -0
  261. package/src/concepts/basics/stdlib/nasl.collection.ts +6 -1
  262. package/src/concepts/basics/stdlib/nasl.configuration.ts +3 -0
  263. package/src/concepts/basics/stdlib/nasl.core.ts +33 -2
  264. package/src/concepts/basics/stdlib/nasl.util.ts +4 -2
  265. package/src/concepts/basics/types/index.ts +1 -0
  266. package/src/concepts/dist/BindAttribute__.js +795 -0
  267. package/src/concepts/dist/BindEvent__.js +732 -0
  268. package/src/concepts/dist/CallFunction__.js +527 -0
  269. package/src/concepts/dist/CallLogic__.js +932 -0
  270. package/src/concepts/dist/Destination__.js +708 -0
  271. package/src/concepts/dist/ExternalDestination__.js +298 -0
  272. package/src/concepts/dist/Identifier__.js +311 -0
  273. package/src/concepts/dist/StringInterpolation__.js +231 -0
  274. package/src/concepts/dist/TypeAnnotation__.js +834 -0
  275. package/src/concepts/dist/ViewElement__.js +1692 -0
  276. package/src/concepts/dist/View__.js +1601 -0
  277. package/src/concepts/index__.ts +0 -1
  278. package/src/enums/KEYWORDS.ts +8 -0
  279. package/src/generator/dist/genBundleFiles.js +261 -0
  280. package/src/generator/dist/genMetaData.js +245 -0
  281. package/src/generator/dist/permission.js +405 -0
  282. package/src/generator/genBundleFiles.ts +24 -5
  283. package/src/generator/genReleaseBody.ts +75 -30
  284. package/src/generator/permission.ts +31 -15
  285. package/src/server/entity2LogicNamespace.ts +2 -20
  286. package/src/server/extendBaseNode.ts +15 -5
  287. package/src/server/formatTsUtils.ts +41 -10
  288. package/src/server/getLogics.ts +4 -4
  289. package/src/server/getMemberIdentifier.ts +27 -1
  290. package/src/server/index.ts +2 -0
  291. package/src/server/naslServer.ts +520 -48
  292. package/src/server/translator.ts +96 -34
  293. package/src/service/storage/dist/init.js +579 -0
  294. package/src/service/storage/init.ts +22 -2
  295. package/src/templator/dist/genEditTableBlock.js +204 -0
  296. package/src/templator/dist/genGridViewBlock.js +265 -0
  297. package/src/templator/dist/genListViewBlock.js +84 -0
  298. package/src/templator/dist/genTableBlock.js +209 -0
  299. package/src/templator/dist/utils.js +527 -0
  300. package/src/templator/genCreateBlock.ts +1 -3
  301. package/src/templator/genCurdEditMultipleKeyBlock.ts +1 -3
  302. package/src/templator/genCurdMultipleKeyBlock.ts +2 -4
  303. package/src/templator/genGetBlock.ts +1 -1
  304. package/src/templator/genGridViewBlock.ts +3 -4
  305. package/src/templator/genListViewBlock.ts +9 -3
  306. package/src/templator/genSelectBlock.ts +1 -1
  307. package/src/templator/genTableBlock.ts +3 -3
  308. package/src/templator/genUpdateBlock.ts +2 -3
  309. package/src/utils/traverse.ts +10 -2
  310. package/ts-worker/lib/tsserver.js +10 -2
  311. package/ts-worker/package.json +1 -0
  312. package/ts-worker/webpack.config.js +11 -2
  313. package/out/concepts/ConstructArgument__.d.ts +0 -40
  314. package/out/concepts/ConstructArgument__.js +0 -108
  315. package/out/concepts/ConstructArgument__.js.map +0 -1
  316. package/out/concepts/Construct__.d.ts +0 -189
  317. package/out/concepts/Construct__.js +0 -340
  318. package/out/concepts/Construct__.js.map +0 -1
  319. package/out/templator/sql-parser/index.d.ts +0 -1
  320. package/out/templator/sql-parser/index.js +0 -228
  321. package/out/templator/sql-parser/index.js.map +0 -1
  322. package/out/templator/sql-parser/parser.js +0 -26664
  323. package/out/templator/sql-parser/parser.js.map +0 -1
@@ -0,0 +1,834 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ extendStatics(d, b);
11
+ function __() { this.constructor = d; }
12
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
+ };
14
+ })();
15
+ var __assign = (this && this.__assign) || function () {
16
+ __assign = Object.assign || function(t) {
17
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
18
+ s = arguments[i];
19
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20
+ t[p] = s[p];
21
+ }
22
+ return t;
23
+ };
24
+ return __assign.apply(this, arguments);
25
+ };
26
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
27
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
28
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
29
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
30
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
31
+ };
32
+ var __spreadArrays = (this && this.__spreadArrays) || function () {
33
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
34
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
35
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
36
+ r[k] = a[j];
37
+ return r;
38
+ };
39
+ exports.__esModule = true;
40
+ exports.TypeAnnotation = exports.isUnion = exports.PRIMITIVE_TITLE = exports.PRIMITIVE_TYPE = void 0;
41
+ var translator_1 = require("../translator");
42
+ var generator_1 = require("../generator");
43
+ var PRIMITIVE_TYPE;
44
+ (function (PRIMITIVE_TYPE) {
45
+ PRIMITIVE_TYPE["Boolean"] = "Boolean";
46
+ PRIMITIVE_TYPE["Integer"] = "Integer";
47
+ PRIMITIVE_TYPE["Long"] = "Long";
48
+ PRIMITIVE_TYPE["Double"] = "Double";
49
+ PRIMITIVE_TYPE["Decimal"] = "Decimal";
50
+ PRIMITIVE_TYPE["String"] = "String";
51
+ PRIMITIVE_TYPE["Text"] = "Text";
52
+ PRIMITIVE_TYPE["Binary"] = "Binary";
53
+ PRIMITIVE_TYPE["Date"] = "Date";
54
+ PRIMITIVE_TYPE["Time"] = "Time";
55
+ PRIMITIVE_TYPE["DateTime"] = "DateTime";
56
+ PRIMITIVE_TYPE["Email"] = "Email";
57
+ PRIMITIVE_TYPE["Union"] = "Union";
58
+ PRIMITIVE_TYPE["Null"] = "Null";
59
+ })(PRIMITIVE_TYPE = exports.PRIMITIVE_TYPE || (exports.PRIMITIVE_TYPE = {}));
60
+ exports.PRIMITIVE_TITLE = {
61
+ Boolean: '布尔值',
62
+ Integer: '整数',
63
+ Long: '长整数',
64
+ Double: '小数',
65
+ Decimal: '精确小数',
66
+ String: '字符串',
67
+ Text: '长文本',
68
+ Binary: '二进制流',
69
+ Date: '日期',
70
+ Time: '时间',
71
+ DateTime: '日期时间',
72
+ Email: '电子邮箱',
73
+ Union: '联合类型'
74
+ };
75
+ /**
76
+ * 判断是否是联合类型
77
+ * @param typeAnnotation
78
+ * @returns
79
+ */
80
+ function isUnion(typeAnnotation) {
81
+ return typeAnnotation
82
+ && typeAnnotation.typeKind === 'union'
83
+ && typeAnnotation.typeNamespace === 'nasl.core'
84
+ && typeAnnotation.typeName === 'Union';
85
+ }
86
+ exports.isUnion = isUnion;
87
+ var decorators_1 = require("../decorators");
88
+ var BaseNode_1 = require("../common/BaseNode");
89
+ var classMap_1 = require("../common/classMap");
90
+ var StructureProperty__1 = require("./StructureProperty__");
91
+ /**
92
+ * 类型标注
93
+ */
94
+ var TypeAnnotation = /** @class */ (function (_super) {
95
+ __extends(TypeAnnotation, _super);
96
+ /**
97
+ * @param source 需要合并的部分参数
98
+ */
99
+ function TypeAnnotation(source) {
100
+ var _this = this;
101
+ source = Object.assign({}, TypeAnnotation_1.getDefaultOptions(), source);
102
+ _this = _super.call(this, source) || this;
103
+ /**
104
+ * 产品概念
105
+ */
106
+ _this.concept = 'TypeAnnotation';
107
+ /**
108
+ * 类型种类
109
+ */
110
+ _this.typeKind = undefined;
111
+ /**
112
+ * 类型命名空间
113
+ */
114
+ _this.typeNamespace = undefined;
115
+ /**
116
+ * 类型名称
117
+ */
118
+ _this.typeName = undefined;
119
+ /**
120
+ * 类型参数
121
+ */
122
+ _this.typeArguments = null;
123
+ /**
124
+ * 返回类型
125
+ */
126
+ _this.returnType = null;
127
+ /**
128
+ * 是否是推断出来的
129
+ */
130
+ _this.inferred = undefined;
131
+ /**
132
+ * 匿名数据结构属性
133
+ */
134
+ _this.properties = null;
135
+ /**
136
+ * 规则对象
137
+ */
138
+ _this.ruleMap = undefined;
139
+ _super.prototype.subConstructor.call(_this, source);
140
+ return _this;
141
+ }
142
+ TypeAnnotation_1 = TypeAnnotation;
143
+ TypeAnnotation.from = function (source, parentNode, parentKey) {
144
+ return _super.from.call(this, source, parentNode, parentKey);
145
+ };
146
+ /**
147
+ * 从父级删除该节点
148
+ * @internal
149
+ */
150
+ TypeAnnotation.prototype._delete = function () {
151
+ var _a, _b;
152
+ var params = null;
153
+ if (this.parentNode) {
154
+ params = (_b = (_a = this.parentNode) === null || _a === void 0 ? void 0 : _a.__removeTypeAnnotation) === null || _b === void 0 ? void 0 : _b.call(_a, this);
155
+ }
156
+ return params;
157
+ };
158
+ /**
159
+ * 设置规则对象
160
+ */
161
+ TypeAnnotation.prototype.setRuleMap = function (ruleMap) {
162
+ var object = {
163
+ ruleMap: ruleMap
164
+ };
165
+ this.update(__assign({}, object));
166
+ };
167
+ TypeAnnotation.prototype._insertTypeAnnotationInTypeArgumentsAt = function (options, index) {
168
+ var typeAnnotationOptions = {};
169
+ var relationOptions = { parentNode: this, parentKey: 'typeArguments' };
170
+ var typeAnnotation;
171
+ if (options instanceof TypeAnnotation_1) {
172
+ options.ensureDelete(); // 同一实例不支持多处存在
173
+ typeAnnotation = options;
174
+ Object.assign(typeAnnotation, relationOptions);
175
+ }
176
+ else {
177
+ typeAnnotation = TypeAnnotation_1.from(__assign(__assign({}, typeAnnotationOptions), options), this, 'typeArguments');
178
+ }
179
+ this.typeArguments.splice(index, 0, typeAnnotation);
180
+ return typeAnnotation;
181
+ };
182
+ TypeAnnotation.prototype.insertTypeAnnotationInTypeArgumentsAt = function (options, index) {
183
+ var node = this._insertTypeAnnotationInTypeArgumentsAt(options, index);
184
+ node.create({
185
+ index: index,
186
+ parentNode: this,
187
+ parentKey: 'typeArguments'
188
+ });
189
+ return node;
190
+ };
191
+ TypeAnnotation.prototype._addTypeAnnotationInTypeArguments = function (options) {
192
+ var index = this.typeArguments.length;
193
+ return this._insertTypeAnnotationInTypeArgumentsAt(options, index);
194
+ };
195
+ TypeAnnotation.prototype.addTypeAnnotationInTypeArguments = function (options) {
196
+ var node = this._addTypeAnnotationInTypeArguments(options);
197
+ var index = this.typeArguments.indexOf(node);
198
+ node.create({
199
+ index: index,
200
+ parentNode: this,
201
+ parentKey: 'typeArguments'
202
+ });
203
+ return node;
204
+ };
205
+ TypeAnnotation.prototype._insertTypeAnnotationInReturnTypeAt = function (options, index) {
206
+ var typeAnnotationOptions = {};
207
+ var relationOptions = { parentNode: this, parentKey: 'returnType' };
208
+ var typeAnnotation;
209
+ if (options instanceof TypeAnnotation_1) {
210
+ options.ensureDelete(); // 同一实例不支持多处存在
211
+ typeAnnotation = options;
212
+ Object.assign(typeAnnotation, relationOptions);
213
+ }
214
+ else {
215
+ typeAnnotation = TypeAnnotation_1.from(__assign(__assign({}, typeAnnotationOptions), options), this, 'returnType');
216
+ }
217
+ this.returnType.splice(index, 0, typeAnnotation);
218
+ return typeAnnotation;
219
+ };
220
+ TypeAnnotation.prototype.insertTypeAnnotationInReturnTypeAt = function (options, index) {
221
+ var node = this._insertTypeAnnotationInReturnTypeAt(options, index);
222
+ node.create({
223
+ index: index,
224
+ parentNode: this,
225
+ parentKey: 'returnType'
226
+ });
227
+ return node;
228
+ };
229
+ TypeAnnotation.prototype._addTypeAnnotationInReturnType = function (options) {
230
+ var index = this.returnType.length;
231
+ return this._insertTypeAnnotationInReturnTypeAt(options, index);
232
+ };
233
+ TypeAnnotation.prototype.addTypeAnnotationInReturnType = function (options) {
234
+ var node = this._addTypeAnnotationInReturnType(options);
235
+ var index = this.returnType.indexOf(node);
236
+ node.create({
237
+ index: index,
238
+ parentNode: this,
239
+ parentKey: 'returnType'
240
+ });
241
+ return node;
242
+ };
243
+ TypeAnnotation.prototype._insertStructurePropertyAt = function (options, index) {
244
+ var structurePropertyOptions = {};
245
+ var relationOptions = { parentNode: this, parentKey: 'properties' };
246
+ var structureProperty;
247
+ if (options instanceof StructureProperty__1["default"]) {
248
+ options.ensureDelete(); // 同一实例不支持多处存在
249
+ structureProperty = options;
250
+ Object.assign(structureProperty, relationOptions);
251
+ }
252
+ else {
253
+ structureProperty = StructureProperty__1["default"].from(__assign(__assign({}, structurePropertyOptions), options), this, 'properties');
254
+ }
255
+ this.properties.splice(index, 0, structureProperty);
256
+ return structureProperty;
257
+ };
258
+ TypeAnnotation.prototype.insertStructurePropertyAt = function (options, index) {
259
+ var node = this._insertStructurePropertyAt(options, index);
260
+ node.create({
261
+ index: index,
262
+ parentNode: this,
263
+ parentKey: 'properties'
264
+ });
265
+ return node;
266
+ };
267
+ TypeAnnotation.prototype._addStructureProperty = function (options) {
268
+ var index = this.properties.length;
269
+ return this._insertStructurePropertyAt(options, index);
270
+ };
271
+ TypeAnnotation.prototype.addStructureProperty = function (options) {
272
+ var node = this._addStructureProperty(options);
273
+ var index = this.properties.indexOf(node);
274
+ node.create({
275
+ index: index,
276
+ parentNode: this,
277
+ parentKey: 'properties'
278
+ });
279
+ return node;
280
+ };
281
+ TypeAnnotation.prototype.removeTypeAnnotationInTypeArguments = function (options) {
282
+ var typeAnnotation = options;
283
+ return typeAnnotation["delete"]();
284
+ };
285
+ TypeAnnotation.prototype.removeTypeAnnotationInReturnType = function (options) {
286
+ var typeAnnotation = options;
287
+ return typeAnnotation["delete"]();
288
+ };
289
+ TypeAnnotation.prototype.__removeTypeAnnotation = function (typeAnnotation) {
290
+ var parentKey = typeAnnotation.parentKey;
291
+ var params = {
292
+ parentNode: this,
293
+ parentKey: parentKey,
294
+ index: -1,
295
+ object: null,
296
+ oldObject: typeAnnotation
297
+ };
298
+ if (parentKey) {
299
+ params.parentKey = parentKey;
300
+ if (Array.isArray(this[parentKey])) {
301
+ var index = this[parentKey].indexOf(typeAnnotation);
302
+ ~index && this[parentKey].splice(index, 1);
303
+ params.index = index;
304
+ }
305
+ else if (this[parentKey] === typeAnnotation) {
306
+ params.index = 0;
307
+ this[parentKey] = undefined;
308
+ }
309
+ }
310
+ return params;
311
+ };
312
+ TypeAnnotation.prototype.removeStructureProperty = function (options) {
313
+ var structureProperty = options;
314
+ return structureProperty["delete"]();
315
+ };
316
+ TypeAnnotation.prototype.__removeStructureProperty = function (structureProperty) {
317
+ var parentKey = structureProperty.parentKey;
318
+ var params = {
319
+ parentNode: this,
320
+ parentKey: parentKey,
321
+ index: -1,
322
+ object: null,
323
+ oldObject: structureProperty
324
+ };
325
+ if (parentKey) {
326
+ params.parentKey = parentKey;
327
+ if (Array.isArray(this[parentKey])) {
328
+ var index = this[parentKey].indexOf(structureProperty);
329
+ ~index && this[parentKey].splice(index, 1);
330
+ params.index = index;
331
+ }
332
+ else if (this[parentKey] === structureProperty) {
333
+ params.index = 0;
334
+ this[parentKey] = undefined;
335
+ }
336
+ }
337
+ return params;
338
+ };
339
+ //================================================================================
340
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
341
+ // 自动生成的代码已结束。下面可以手动编写。
342
+ //================================================================================
343
+ TypeAnnotation.prototype.toUI = function (state) {
344
+ return this.headTitle;
345
+ };
346
+ TypeAnnotation.prototype.traverse = function (callback, enter, leave, onJoin) {
347
+ var _this = this;
348
+ enter(this);
349
+ callback(this);
350
+ if (this.typeArguments && ['generic', 'union'].includes(this.typeKind)) {
351
+ var l_1 = this.typeArguments.length;
352
+ this.typeArguments.forEach(function (arg, idx) {
353
+ arg.traverse(callback, enter, leave, onJoin);
354
+ if (idx < l_1 - 1) {
355
+ onJoin(_this, arg);
356
+ }
357
+ });
358
+ }
359
+ leave(this);
360
+ };
361
+ Object.defineProperty(TypeAnnotation.prototype, "typeKey", {
362
+ get: function () {
363
+ if (this.typeKind === 'primitive' || this.typeKind === 'reference') {
364
+ return this.typeNamespace + "." + this.typeName;
365
+ }
366
+ else if (this.typeKind === 'generic') {
367
+ return this.typeNamespace + "." + this.typeName + "<" + (this.typeArguments || []).map(function (arg) { return arg.typeKey; }) + ">";
368
+ }
369
+ else if (this.typeKind === 'anonymousStructure') {
370
+ return "{ " + this.properties.map(function (_a) {
371
+ var name = _a.name, typeAnnotation = _a.typeAnnotation;
372
+ return (name + ": " + (typeAnnotation ? typeAnnotation.typeKey : 'any'));
373
+ }).join(', ') + " }";
374
+ }
375
+ else if (this.typeKind === 'union') {
376
+ return "" + this.typeArguments.map(function (arg) { return arg.typeKey; }).join(' | ');
377
+ }
378
+ else {
379
+ return this.typeName;
380
+ }
381
+ },
382
+ enumerable: false,
383
+ configurable: true
384
+ });
385
+ Object.defineProperty(TypeAnnotation.prototype, "sortedTypeKey", {
386
+ // 排过序的类型标识
387
+ get: function () {
388
+ if (this.typeKind === 'anonymousStructure') {
389
+ // 按匿名数据结构的key排序
390
+ return "{" + this.properties.sort(function (_a, _b) {
391
+ var name1 = _a.name;
392
+ var name2 = _b.name;
393
+ return name1 > name2 ? 1 : -1;
394
+ }).map(function (_a) {
395
+ var name = _a.name, typeAnnotation = _a.typeAnnotation;
396
+ return (name + ": " + (typeAnnotation ? typeAnnotation.sortedTypeKey : 'any'));
397
+ }).join(', ') + "}";
398
+ }
399
+ else if (this.typeKind === 'union') {
400
+ // 按返回的每个具体项排序
401
+ return "" + this.typeArguments.map(function (arg) { return arg.sortedTypeKey; }).sort(function (name1, name2) { return name1 > name2 ? 1 : -1; }).join(' | ');
402
+ }
403
+ var typeArr = [];
404
+ if (this.typeNamespace) {
405
+ typeArr.push(this.typeNamespace);
406
+ }
407
+ if (this.typeName) {
408
+ typeArr.push(this.typeName);
409
+ }
410
+ var typeKey = typeArr.join('.');
411
+ if (this.typeKind === 'generic') {
412
+ var code = typeKey;
413
+ code += '<';
414
+ if (Array.isArray(this.typeArguments) && this.typeArguments.length) {
415
+ // 必须按typeArguments定义的顺序,否则实参位置不对
416
+ code += "" + (this.typeArguments || []).map(function (arg) { return arg.sortedTypeKey; }).join(', ');
417
+ }
418
+ code += '>';
419
+ return code;
420
+ }
421
+ return typeKey;
422
+ },
423
+ enumerable: false,
424
+ configurable: true
425
+ });
426
+ Object.defineProperty(TypeAnnotation.prototype, "headTitle", {
427
+ /**
428
+ * 用于展示的 type 标题
429
+ */
430
+ get: function () {
431
+ var _a, _b, _c, _d;
432
+ if (this.typeKind === 'primitive') {
433
+ return this.typeName + " " + (exports.PRIMITIVE_TITLE[this.typeName] || '');
434
+ }
435
+ else if (this.typeKind === 'reference') {
436
+ var typeNamespace = this === null || this === void 0 ? void 0 : this.typeNamespace;
437
+ var typeTitle = this.typeName;
438
+ if (typeNamespace && this.rootNode) {
439
+ var entity = (_b = (_a = this.rootNode).findNodeByCompleteName) === null || _b === void 0 ? void 0 : _b.call(_a, [typeNamespace, this === null || this === void 0 ? void 0 : this.typeName].join('.'));
440
+ if ((entity === null || entity === void 0 ? void 0 : entity.concept) === 'Entity') {
441
+ var dataSourceName = (_c = entity.dataSource) === null || _c === void 0 ? void 0 : _c.name;
442
+ if (dataSourceName) {
443
+ typeTitle += "\uFF08" + dataSourceName + "\uFF09";
444
+ }
445
+ }
446
+ }
447
+ return typeTitle;
448
+ }
449
+ else if (this.typeKind === 'generic') {
450
+ if (this.typeArguments && this.typeArguments.length)
451
+ return this.typeName + "<" + (this.typeArguments || []).map(function (arg) { return arg.headTitle || arg.name || 'T'; }).join(', ') + ">";
452
+ else
453
+ return this.typeName;
454
+ }
455
+ else if (this.typeKind === 'anonymousStructure') {
456
+ return "{ " + ((_d = this.properties) === null || _d === void 0 ? void 0 : _d.map(function (_a) {
457
+ var name = _a.name, typeAnnotation = _a.typeAnnotation;
458
+ return (name + ": " + typeAnnotation.headTitle);
459
+ }).join(', ')) + " }";
460
+ }
461
+ else if (this.typeKind === 'union') {
462
+ return "" + this.typeArguments.map(function (arg) { return arg.typeTitle || arg.name; }).join(' 或 ');
463
+ }
464
+ else {
465
+ return this.typeName;
466
+ }
467
+ },
468
+ enumerable: false,
469
+ configurable: true
470
+ });
471
+ Object.defineProperty(TypeAnnotation.prototype, "typeTitle", {
472
+ /**
473
+ * 用于展示的 type 标题
474
+ */
475
+ get: function () {
476
+ var _a;
477
+ if (this.typeKind === 'primitive') {
478
+ return this.typeName + " " + (exports.PRIMITIVE_TITLE[this.typeName] || '');
479
+ }
480
+ else if (this.typeKind === 'reference') {
481
+ return this.typeName;
482
+ }
483
+ else if (this.typeKind === 'generic') {
484
+ return this.typeName + "<" + this.typeArguments.map(function (arg) { return arg.typeTitle || arg.name || 'T'; }).join(', ') + ">";
485
+ }
486
+ else if (this.typeKind === 'anonymousStructure') {
487
+ return "{ " + ((_a = this.properties) === null || _a === void 0 ? void 0 : _a.map(function (_a) {
488
+ var name = _a.name, typeAnnotation = _a.typeAnnotation;
489
+ return (name + ": " + (typeAnnotation ? typeAnnotation.typeTitle : 'any'));
490
+ }).join(', ')) + " }";
491
+ }
492
+ else if (this.typeKind === 'union') {
493
+ return "" + this.typeArguments.map(function (arg) { return arg.typeTitle || arg.name; }).join(' 或 ');
494
+ }
495
+ else {
496
+ return this.typeName;
497
+ }
498
+ },
499
+ enumerable: false,
500
+ configurable: true
501
+ });
502
+ Object.defineProperty(TypeAnnotation.prototype, "typeTitleList", {
503
+ get: function () {
504
+ var _a, _b;
505
+ var typeTitleList = [];
506
+ if (this.typeKind === 'anonymousStructure') {
507
+ typeTitleList.push({ key: '{' });
508
+ var length_1 = (_a = this.properties) === null || _a === void 0 ? void 0 : _a.length;
509
+ (_b = this.properties) === null || _b === void 0 ? void 0 : _b.forEach(function (_a, index) {
510
+ var name = _a.name, typeAnnotation = _a.typeAnnotation;
511
+ if (index === length_1 - 1) {
512
+ typeTitleList.push({ key: name, value: "" + (typeAnnotation ? typeAnnotation.typeTitle : 'any') });
513
+ }
514
+ else {
515
+ typeTitleList.push({ key: name, value: "" + (typeAnnotation ? typeAnnotation.typeTitle : 'any'), dot: ',' });
516
+ }
517
+ });
518
+ typeTitleList.push({ key: '}' });
519
+ }
520
+ else {
521
+ typeTitleList.push({ key: this.typeTitle });
522
+ }
523
+ return typeTitleList;
524
+ },
525
+ enumerable: false,
526
+ configurable: true
527
+ });
528
+ TypeAnnotation.createPrimitive = function (typeName, source) {
529
+ if (PRIMITIVE_TYPE[typeName]) {
530
+ return this.from(Object.assign({
531
+ typeKind: typeName === 'Union' ? 'union' : 'primitive',
532
+ typeName: typeName,
533
+ typeNamespace: 'nasl.core'
534
+ }, source));
535
+ }
536
+ };
537
+ TypeAnnotation.createReference = function (typeName, source) {
538
+ return this.from(Object.assign({
539
+ typeKind: 'reference',
540
+ typeName: typeName,
541
+ typeNamespace: 'nasl.core'
542
+ }, source));
543
+ };
544
+ TypeAnnotation.createGeneric = function (typeName, source) {
545
+ return this.from(Object.assign({
546
+ typeKind: 'generic',
547
+ typeName: typeName,
548
+ typeNamespace: 'nasl.collection'
549
+ }, source));
550
+ };
551
+ TypeAnnotation.createTypeParam = function (typeName, source) {
552
+ return this.from(Object.assign({
553
+ typeKind: 'typeParam',
554
+ typeName: typeName
555
+ }, source));
556
+ };
557
+ TypeAnnotation.createTypeAnonymousStructure = function (properties, source) {
558
+ return this.from(Object.assign({
559
+ typeKind: 'anonymousStructure',
560
+ properties: properties
561
+ }, source));
562
+ };
563
+ /**
564
+ * 设置类型属性名称
565
+ */
566
+ TypeAnnotation.prototype.setTypeName = function (typeName) {
567
+ var object = {
568
+ typeName: typeName
569
+ };
570
+ this.update(__assign({}, object));
571
+ };
572
+ /**
573
+ * 设置类型属性名称
574
+ */
575
+ TypeAnnotation.prototype.setTypeNamespace = function (typeNamespace) {
576
+ var object = {
577
+ typeNamespace: typeNamespace
578
+ };
579
+ this.update(__assign({}, object));
580
+ };
581
+ Object.defineProperty(TypeAnnotation.prototype, "tsCalleeNamespace", {
582
+ get: function () {
583
+ if (this.typeNamespace) {
584
+ var tsCalleeNamespace = this.typeNamespace;
585
+ tsCalleeNamespace = tsCalleeNamespace.replace(/\.[0-9]/g, function (m) { return m.replace('.', '.$'); });
586
+ tsCalleeNamespace = tsCalleeNamespace.replace(/-/g, '_');
587
+ return tsCalleeNamespace;
588
+ }
589
+ return '';
590
+ },
591
+ enumerable: false,
592
+ configurable: true
593
+ });
594
+ TypeAnnotation.prototype.toVue = function (state) {
595
+ return JSON.stringify(this);
596
+ };
597
+ TypeAnnotation.prototype.toJS = function (state) {
598
+ return JSON.stringify(this);
599
+ };
600
+ TypeAnnotation.prototype.toEmbeddedTS = function (state) {
601
+ var _this = this;
602
+ if (this.typeKind === 'primitive' || this.typeKind === 'reference') {
603
+ if (this.typeKind === 'reference' && this.typeNamespace && this.typeNamespace.endsWith('enums')) {
604
+ return this.tsCalleeNamespace + "." + this.typeName;
605
+ }
606
+ return this.tsCalleeNamespace + "." + this.typeName;
607
+ }
608
+ else if (this.typeKind === 'generic') {
609
+ var code_1 = this.tsCalleeNamespace + "." + this.typeName + "<";
610
+ (this.typeArguments || []).forEach(function (arg, index) {
611
+ code_1 += arg.toEmbeddedTS(translator_1.shiftState(state, code_1, { inline: true }));
612
+ if (index !== _this.typeArguments.length - 1)
613
+ code_1 += ', ';
614
+ });
615
+ code_1 += '>';
616
+ return code_1;
617
+ }
618
+ else if (this.typeKind === 'union') {
619
+ var code_2 = '';
620
+ (this.typeArguments || []).forEach(function (arg, index) {
621
+ code_2 += arg.toEmbeddedTS(translator_1.shiftState(state, code_2, { inline: true }));
622
+ if (index !== _this.typeArguments.length - 1)
623
+ code_2 += ' | ';
624
+ });
625
+ return code_2;
626
+ }
627
+ else if (this.typeKind === 'anonymousStructure') {
628
+ var code_3 = "{ __name: \"AStructure_" + this.hash + "\", ";
629
+ (this.properties || []).forEach(function (property, i) {
630
+ var _a;
631
+ code_3 += property.name + ": ";
632
+ code_3 += "" + (property.typeAnnotation ? property.typeAnnotation.toEmbeddedTS(translator_1.shiftState(state, code_3, { inline: true, tabSize: ((state === null || state === void 0 ? void 0 : state.tabSize) || 0) + 1 })) : 'any');
633
+ code_3 += i < ((_a = _this.properties) === null || _a === void 0 ? void 0 : _a.length) - 1 ? ', ' : ' }';
634
+ });
635
+ return code_3;
636
+ }
637
+ else {
638
+ if (this.tsCalleeNamespace && this.typeName) {
639
+ return this.tsCalleeNamespace + "." + this.typeName;
640
+ }
641
+ else if (this.typeName) {
642
+ return this.typeName;
643
+ }
644
+ else {
645
+ return '__IDENTIFIER__';
646
+ }
647
+ }
648
+ };
649
+ Object.defineProperty(TypeAnnotation.prototype, "anonymousStructureTypeDesc", {
650
+ /**
651
+ * 用于标准化数据结构,便于计算 anonymousStructure 的 __name
652
+ */
653
+ get: function () {
654
+ if (this.typeKind === 'generic') {
655
+ return this.typeName + "<" + this.typeArguments.map(function (arg) { return arg.anonymousStructureTypeDesc || arg.name || 'T'; }).join(', ') + ">";
656
+ }
657
+ else if (this.typeKind === 'anonymousStructure') {
658
+ return "{ " + __spreadArrays(this.properties).sort(function (_a, _b) {
659
+ var aName = _a.name;
660
+ var bName = _b.name;
661
+ if (aName > bName)
662
+ return 1;
663
+ return aName < bName ? -1 : 0;
664
+ }).map(function (_a) {
665
+ var name = _a.name, typeAnnotation = _a.typeAnnotation;
666
+ return (name + ": " + (typeAnnotation ? typeAnnotation.anonymousStructureTypeDesc : 'any'));
667
+ }).join(', ') + " }";
668
+ }
669
+ else {
670
+ return this.typeName;
671
+ }
672
+ },
673
+ enumerable: false,
674
+ configurable: true
675
+ });
676
+ Object.defineProperty(TypeAnnotation.prototype, "hash", {
677
+ /**
678
+ * hash 用于比较 anonymousStructure 是否相同
679
+ */
680
+ get: function () {
681
+ return generator_1.genHash(this.anonymousStructureTypeDesc);
682
+ },
683
+ enumerable: false,
684
+ configurable: true
685
+ });
686
+ TypeAnnotation.prototype.getDefaultValue = function (value) {
687
+ var code = '';
688
+ if (this.typeKind === 'primitive') {
689
+ if (this.typeName === 'String') {
690
+ code = " \"" + value + "\" ";
691
+ }
692
+ else {
693
+ if (['Text'].includes(this.typeName)) {
694
+ code = " new " + this.typeNamespace + "." + this.typeName + "(\"" + value + "\")";
695
+ }
696
+ else if (['Boolean'].includes(this.typeName)) {
697
+ code = value;
698
+ }
699
+ else {
700
+ code = " new " + this.typeNamespace + "." + this.typeName + "(" + value + ")";
701
+ }
702
+ }
703
+ }
704
+ else {
705
+ code = " " + this.typeNamespace + "." + this.typeName + "['" + value + "']";
706
+ }
707
+ return code;
708
+ };
709
+ /**
710
+ *
711
+ * @param code 233
712
+ *
713
+ */
714
+ TypeAnnotation.recognize = function (code) {
715
+ if (typeof code === 'string') {
716
+ var EmailReg = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
717
+ var TimeReg = /^(\d{1,2})(:\d{1,2})?:(\d{1,2})$/;
718
+ var DateReg = /^\d{1,4}(\/|-)\d{1,2}(\/|-)\d{1,2}$/;
719
+ var DateTimeReg = /^\d{1,4}(\/|-)\d{1,2}(\/|-)\d{1,2}\s(\d{1,2})(:\d{1,2})?:(\d{1,2})$/;
720
+ var BooleanReg = /(false|true|\u662f|\u5426)/i;
721
+ if (EmailReg.test(code)) {
722
+ return this.createPrimitive('Email');
723
+ }
724
+ else if (TimeReg.test(code)) {
725
+ return this.createPrimitive('Time');
726
+ }
727
+ else if (BooleanReg.test(code)) {
728
+ return this.createPrimitive('Boolean');
729
+ }
730
+ else if (DateReg.test(code)) {
731
+ return this.createPrimitive('Date');
732
+ }
733
+ else if (DateTimeReg.test(code)) {
734
+ return this.createPrimitive('DateTime');
735
+ }
736
+ else if (!isNaN(Number(code))) {
737
+ if (code.indexOf('.') !== -1) {
738
+ return this.createPrimitive('Double');
739
+ // return this.createPrimitive('Decimal');
740
+ }
741
+ if (code.length > 8) {
742
+ return this.createPrimitive('Long');
743
+ }
744
+ return this.createPrimitive('Integer');
745
+ }
746
+ else if (code.length > 255) {
747
+ return this.createPrimitive('Text');
748
+ }
749
+ return this.createPrimitive('String');
750
+ }
751
+ else {
752
+ return this.createPrimitive('Integer');
753
+ }
754
+ };
755
+ // 增加插入泛型子类型
756
+ TypeAnnotation.prototype.typeArgumentsPush = function (typeItem) {
757
+ if (typeItem instanceof TypeAnnotation_1) {
758
+ this.typeArguments.push(TypeAnnotation_1.from(typeItem, {
759
+ parentNode: this,
760
+ parentKey: 'typeArguments'
761
+ }));
762
+ }
763
+ };
764
+ // 是否是复合类型 List|Map|entities|structures
765
+ TypeAnnotation.prototype.isComplexType = function () {
766
+ var namespaceType = this.typeNamespace.split('.').pop();
767
+ return ['Map', 'List'].includes(this.typeName) || (this.typeKind === 'reference' && ['entities', 'structures'].includes(namespaceType));
768
+ };
769
+ Object.defineProperty(TypeAnnotation.prototype, "sign", {
770
+ /* 类型签名 */
771
+ get: function () {
772
+ var _this = this;
773
+ var str = '';
774
+ if (['Map', 'List'].includes(this.typeName)) {
775
+ str += this.typeName + '<';
776
+ (this.typeArguments || []).forEach(function (item, index) {
777
+ str += item.sign;
778
+ if (index + 1 !== _this.typeArguments.length) {
779
+ str += ',';
780
+ }
781
+ });
782
+ str += '>';
783
+ }
784
+ else {
785
+ str += this.typeName;
786
+ }
787
+ return str;
788
+ },
789
+ enumerable: false,
790
+ configurable: true
791
+ });
792
+ var TypeAnnotation_1;
793
+ __decorate([
794
+ decorators_1.property()
795
+ ], TypeAnnotation.prototype, "concept");
796
+ __decorate([
797
+ decorators_1.property()
798
+ ], TypeAnnotation.prototype, "typeKind");
799
+ __decorate([
800
+ decorators_1.property()
801
+ ], TypeAnnotation.prototype, "typeNamespace");
802
+ __decorate([
803
+ decorators_1.property()
804
+ ], TypeAnnotation.prototype, "typeName");
805
+ __decorate([
806
+ decorators_1.property('TypeAnnotation')
807
+ ], TypeAnnotation.prototype, "typeArguments");
808
+ __decorate([
809
+ decorators_1.property('TypeAnnotation')
810
+ ], TypeAnnotation.prototype, "returnType");
811
+ __decorate([
812
+ decorators_1.property()
813
+ ], TypeAnnotation.prototype, "inferred");
814
+ __decorate([
815
+ decorators_1.property('StructureProperty')
816
+ ], TypeAnnotation.prototype, "properties");
817
+ __decorate([
818
+ decorators_1.property()
819
+ ], TypeAnnotation.prototype, "ruleMap");
820
+ __decorate([
821
+ translator_1.withSourceMap()
822
+ ], TypeAnnotation.prototype, "toEmbeddedTS");
823
+ TypeAnnotation = TypeAnnotation_1 = __decorate([
824
+ decorators_1.concept('类型标注')
825
+ ], TypeAnnotation);
826
+ return TypeAnnotation;
827
+ }(BaseNode_1["default"]));
828
+ exports.TypeAnnotation = TypeAnnotation;
829
+ classMap_1["default"].TypeAnnotation = TypeAnnotation;
830
+ exports["default"] = TypeAnnotation;
831
+ //================================================================================
832
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
833
+ // 自动生成的代码已结束。下面可以手动编写。
834
+ //================================================================================