@lcap/nasl 2.18.0-beta.7 → 2.19.0-beta.1

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 (265) hide show
  1. package/out/automate/template/myProcess.js +1 -1
  2. package/out/automate/template/myProcess.js.map +1 -1
  3. package/out/bak/translator.js +2 -1
  4. package/out/bak/translator.js.map +1 -1
  5. package/out/common/Command.d.ts +1 -0
  6. package/out/common/Command.js +5 -1
  7. package/out/common/Command.js.map +1 -1
  8. package/out/concepts/AnonymousFunction__.d.ts +1 -0
  9. package/out/concepts/AnonymousFunction__.js +40 -2
  10. package/out/concepts/AnonymousFunction__.js.map +1 -1
  11. package/out/concepts/App__.d.ts +10 -0
  12. package/out/concepts/App__.js +132 -0
  13. package/out/concepts/App__.js.map +1 -1
  14. package/out/concepts/Assignee__.js +4 -3
  15. package/out/concepts/Assignee__.js.map +1 -1
  16. package/out/concepts/BatchAssignment__.d.ts +2 -0
  17. package/out/concepts/BatchAssignment__.js +45 -1
  18. package/out/concepts/BatchAssignment__.js.map +1 -1
  19. package/out/concepts/BindAttribute__.js +8 -1
  20. package/out/concepts/BindAttribute__.js.map +1 -1
  21. package/out/concepts/CallFunction__.js +51 -18
  22. package/out/concepts/CallFunction__.js.map +1 -1
  23. package/out/concepts/CallInterface__.js +6 -4
  24. package/out/concepts/CallInterface__.js.map +1 -1
  25. package/out/concepts/CallLogic__.js +87 -15
  26. package/out/concepts/CallLogic__.js.map +1 -1
  27. package/out/concepts/CallQueryComponent__.js +4 -1
  28. package/out/concepts/CallQueryComponent__.js.map +1 -1
  29. package/out/concepts/DataSource__.d.ts +2 -0
  30. package/out/concepts/DataSource__.js +55 -1
  31. package/out/concepts/DataSource__.js.map +1 -1
  32. package/out/concepts/ForEachStatement__.js +2 -0
  33. package/out/concepts/ForEachStatement__.js.map +1 -1
  34. package/out/concepts/Identifier__.d.ts +1 -0
  35. package/out/concepts/Identifier__.js +18 -7
  36. package/out/concepts/Identifier__.js.map +1 -1
  37. package/out/concepts/LogicItem__.d.ts +1 -1
  38. package/out/concepts/LogicItem__.js.map +1 -1
  39. package/out/concepts/Logic__.d.ts +1 -0
  40. package/out/concepts/Logic__.js +27 -14
  41. package/out/concepts/Logic__.js.map +1 -1
  42. package/out/concepts/Match__.js +13 -8
  43. package/out/concepts/Match__.js.map +1 -1
  44. package/out/concepts/NewComposite__.d.ts +345 -0
  45. package/out/concepts/NewComposite__.js +1067 -0
  46. package/out/concepts/NewComposite__.js.map +1 -0
  47. package/out/concepts/NewList__.d.ts +130 -0
  48. package/out/concepts/NewList__.js +353 -0
  49. package/out/concepts/NewList__.js.map +1 -0
  50. package/out/concepts/NewMap__.d.ts +221 -0
  51. package/out/concepts/NewMap__.js +492 -0
  52. package/out/concepts/NewMap__.js.map +1 -0
  53. package/out/concepts/New__.d.ts +19 -0
  54. package/out/concepts/New__.js +66 -0
  55. package/out/concepts/New__.js.map +1 -0
  56. package/out/concepts/Param__.d.ts +2 -0
  57. package/out/concepts/Param__.js +40 -3
  58. package/out/concepts/Param__.js.map +1 -1
  59. package/out/concepts/ProcessElement__.js +31 -10
  60. package/out/concepts/ProcessElement__.js.map +1 -1
  61. package/out/concepts/ProcessOutcome__.js +1 -1
  62. package/out/concepts/ProcessOutcome__.js.map +1 -1
  63. package/out/concepts/ProcessOutcomes__.d.ts +30 -0
  64. package/out/concepts/{ConstructArgument__.js → ProcessOutcomes__.js} +27 -48
  65. package/out/concepts/ProcessOutcomes__.js.map +1 -0
  66. package/out/concepts/Return__.js +2 -1
  67. package/out/concepts/Return__.js.map +1 -1
  68. package/out/concepts/SelectMembers__.js +3 -3
  69. package/out/concepts/SelectMembers__.js.map +1 -1
  70. package/out/concepts/StringInterpolation__.js +12 -2
  71. package/out/concepts/StringInterpolation__.js.map +1 -1
  72. package/out/concepts/TypeAnnotation__.d.ts +4 -0
  73. package/out/concepts/TypeAnnotation__.js +66 -12
  74. package/out/concepts/TypeAnnotation__.js.map +1 -1
  75. package/out/concepts/ValidationRule__.js +1 -1
  76. package/out/concepts/ValidationRule__.js.map +1 -1
  77. package/out/concepts/Variable__.js +2 -1
  78. package/out/concepts/Variable__.js.map +1 -1
  79. package/out/concepts/ViewElement__.js +12 -0
  80. package/out/concepts/ViewElement__.js.map +1 -1
  81. package/out/concepts/View__.d.ts +1 -0
  82. package/out/concepts/View__.js +9 -0
  83. package/out/concepts/View__.js.map +1 -1
  84. package/out/concepts/basics/stdlib/nasl.auth.js +1 -1
  85. package/out/concepts/basics/stdlib/nasl.auth.js.map +1 -1
  86. package/out/concepts/basics/stdlib/nasl.logging.js +5 -0
  87. package/out/concepts/basics/stdlib/nasl.logging.js.map +1 -1
  88. package/out/concepts/basics/stdlib/nasl.ui.js +2 -0
  89. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  90. package/out/concepts/basics/stdlib/nasl.util.js +151 -19
  91. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  92. package/out/concepts/index__.d.ts +5 -0
  93. package/out/concepts/index__.js +5 -0
  94. package/out/concepts/index__.js.map +1 -1
  95. package/out/enums/KEYWORDS.js +1 -0
  96. package/out/enums/KEYWORDS.js.map +1 -1
  97. package/out/generator/genMetaData.js +1 -6
  98. package/out/generator/genMetaData.js.map +1 -1
  99. package/out/generator/genReleaseBody.d.ts +2 -0
  100. package/out/generator/genReleaseBody.js +18 -1
  101. package/out/generator/genReleaseBody.js.map +1 -1
  102. package/out/generator/index.d.ts +1 -0
  103. package/out/generator/index.js +1 -0
  104. package/out/generator/index.js.map +1 -1
  105. package/out/generator/permission.d.ts +9 -0
  106. package/out/generator/permission.js +235 -0
  107. package/out/generator/permission.js.map +1 -0
  108. package/out/index.d.ts +1 -1
  109. package/out/index.js +2 -1
  110. package/out/index.js.map +1 -1
  111. package/out/server/entity2LogicNamespace.js +69 -9
  112. package/out/server/entity2LogicNamespace.js.map +1 -1
  113. package/out/server/extendBaseNode.js +7 -3
  114. package/out/server/extendBaseNode.js.map +1 -1
  115. package/out/server/formatTsUtils.js +6 -0
  116. package/out/server/formatTsUtils.js.map +1 -1
  117. package/out/server/getLogics.d.ts +2 -1
  118. package/out/server/getLogics.js +11 -0
  119. package/out/server/getLogics.js.map +1 -1
  120. package/out/server/getMemberIdentifier.js +1 -1
  121. package/out/server/getMemberIdentifier.js.map +1 -1
  122. package/out/server/naslServer.d.ts +1 -1
  123. package/out/server/naslServer.js +161 -22
  124. package/out/server/naslServer.js.map +1 -1
  125. package/out/server/process2LogicNamespace.js +8 -0
  126. package/out/server/process2LogicNamespace.js.map +1 -1
  127. package/out/server/translator.js +53 -8
  128. package/out/server/translator.js.map +1 -1
  129. package/out/service/creator/add.configs.js +4 -0
  130. package/out/service/creator/add.configs.js.map +1 -1
  131. package/out/service/datasource/api.d.ts +12 -0
  132. package/out/service/datasource/api.js +14 -0
  133. package/out/service/datasource/api.js.map +1 -0
  134. package/out/service/datasource/index.d.ts +2 -0
  135. package/out/service/datasource/index.js +10 -0
  136. package/out/service/datasource/index.js.map +1 -0
  137. package/out/service/storage/init.js +8 -1
  138. package/out/service/storage/init.js.map +1 -1
  139. package/out/templator/genEditTableBlock.js +4 -5
  140. package/out/templator/genEditTableBlock.js.map +1 -1
  141. package/out/templator/genGetBlock.js +4 -3
  142. package/out/templator/genGetBlock.js.map +1 -1
  143. package/out/templator/genGridViewBlock.js +16 -14
  144. package/out/templator/genGridViewBlock.js.map +1 -1
  145. package/out/templator/genListViewBlock.js +5 -5
  146. package/out/templator/genListViewBlock.js.map +1 -1
  147. package/out/templator/genTableBlock.js +6 -10
  148. package/out/templator/genTableBlock.js.map +1 -1
  149. package/package.json +1 -1
  150. package/sandbox/stdlib/dist/nasl.util.js +0 -0
  151. package/sandbox/stdlib/nasl.auth.ts +1 -1
  152. package/sandbox/stdlib/nasl.core.ts +4 -0
  153. package/sandbox/stdlib/nasl.logging.ts +4 -4
  154. package/sandbox/stdlib/nasl.util.ts +13 -4
  155. package/src/automate/template/myProcess.js +1 -1
  156. package/src/bak/translator.js +4 -1
  157. package/src/common/Command.ts +4 -0
  158. package/src/concepts/AnonymousFunction__.ts +48 -2
  159. package/src/concepts/App__.ts +140 -41
  160. package/src/concepts/Assignee__.ts +4 -3
  161. package/src/concepts/BatchAssignment__.ts +45 -1
  162. package/src/concepts/BindAttribute__.ts +9 -2
  163. package/src/concepts/CallFunction__.ts +65 -31
  164. package/src/concepts/CallInterface__.ts +6 -22
  165. package/src/concepts/CallLogic__.ts +62 -13
  166. package/src/concepts/CallQueryComponent__.ts +4 -1
  167. package/src/concepts/DataSource__.ts +56 -1
  168. package/src/concepts/ForEachStatement__.ts +2 -0
  169. package/src/concepts/Identifier__.ts +18 -7
  170. package/src/concepts/LogicItem__.ts +1 -1
  171. package/src/concepts/Logic__.ts +48 -32
  172. package/src/concepts/Match__.ts +12 -8
  173. package/src/concepts/NewComposite__.ts +1356 -0
  174. package/src/concepts/NewList__.ts +444 -0
  175. package/src/concepts/NewMap__.ts +678 -0
  176. package/src/concepts/New__.ts +73 -0
  177. package/src/concepts/Param__.ts +238 -199
  178. package/src/concepts/ProcessElement__.ts +32 -10
  179. package/src/concepts/ProcessOutcome__.ts +1 -1
  180. package/src/concepts/ProcessOutcomes__.ts +90 -0
  181. package/src/concepts/Return__.ts +4 -1
  182. package/src/concepts/SelectMembers__.ts +3 -3
  183. package/src/concepts/StringInterpolation__.ts +21 -11
  184. package/src/concepts/TypeAnnotation__.ts +71 -50
  185. package/src/concepts/ValidationRule__.ts +19 -1
  186. package/src/concepts/Variable__.ts +4 -1
  187. package/src/concepts/ViewElement__.ts +38 -1
  188. package/src/concepts/View__.ts +12 -2
  189. package/src/concepts/basics/stdlib/dist/nasl.util.js +133 -34
  190. package/src/concepts/basics/stdlib/nasl.auth.ts +1 -1
  191. package/src/concepts/basics/stdlib/nasl.logging.ts +5 -0
  192. package/src/concepts/basics/stdlib/nasl.ui.ts +2 -0
  193. package/src/concepts/basics/stdlib/nasl.util.ts +153 -19
  194. package/src/concepts/dist/BindAttribute__.js +760 -0
  195. package/src/concepts/dist/BindEvent__.js +732 -0
  196. package/src/concepts/dist/CallFunction__.js +21 -7
  197. package/src/concepts/dist/CallLogic__.js +50 -10
  198. package/src/concepts/dist/Identifier__.js +311 -0
  199. package/src/concepts/dist/StringInterpolation__.js +231 -0
  200. package/src/concepts/dist/TypeAnnotation__.js +834 -0
  201. package/src/concepts/dist/ViewElement__.js +12 -0
  202. package/src/concepts/dist/View__.js +1601 -0
  203. package/src/concepts/index__.ts +5 -0
  204. package/src/enums/KEYWORDS.ts +1 -0
  205. package/src/generator/dist/genMetaData.js +1 -5
  206. package/src/generator/dist/permission.js +392 -0
  207. package/src/generator/genMetaData.ts +1 -6
  208. package/src/generator/genReleaseBody.ts +21 -3
  209. package/src/generator/index.ts +1 -0
  210. package/src/generator/permission.ts +271 -0
  211. package/src/index.ts +1 -1
  212. package/src/server/dist/naslServer.js +385 -269
  213. package/src/server/entity2LogicNamespace.ts +70 -10
  214. package/src/server/extendBaseNode.ts +7 -3
  215. package/src/server/formatTsUtils.ts +6 -0
  216. package/src/server/getLogics.ts +13 -1
  217. package/src/server/getMemberIdentifier.ts +1 -1
  218. package/src/server/naslServer.ts +162 -29
  219. package/src/server/process2LogicNamespace.ts +8 -0
  220. package/src/server/translator.ts +52 -9
  221. package/src/service/creator/add.configs.js +4 -0
  222. package/src/service/dataSource/api.js +11 -0
  223. package/src/service/dataSource/index.js +6 -0
  224. package/src/service/storage/dist/init.js +8 -1
  225. package/src/service/storage/init.ts +9 -2
  226. package/src/service/video/VideoTranscribe.js +1 -0
  227. package/src/templator/dist/genEditTableBlock.js +204 -0
  228. package/src/templator/dist/genGridViewBlock.js +265 -0
  229. package/src/templator/dist/genListViewBlock.js +84 -0
  230. package/src/templator/dist/genTableBlock.js +209 -0
  231. package/src/templator/dist/utils.js +527 -0
  232. package/src/templator/genEditTableBlock.ts +8 -16
  233. package/src/templator/genGetBlock.ts +18 -19
  234. package/src/templator/genGridViewBlock.ts +18 -18
  235. package/src/templator/genListViewBlock.ts +8 -11
  236. package/src/templator/genTableBlock.ts +6 -10
  237. package/ts-worker/dist/webpack.config.dev.js +1 -3
  238. package/ts-worker/lib/tsserver.js +8 -1
  239. package/out/automate/engine/2.14-components.d.ts +0 -1115
  240. package/out/automate/engine/2.14-components.js +0 -1087
  241. package/out/automate/engine/2.14-components.js.map +0 -1
  242. package/out/concepts/ConstructArgument__.d.ts +0 -40
  243. package/out/concepts/ConstructArgument__.js.map +0 -1
  244. package/out/concepts/Construct__.d.ts +0 -189
  245. package/out/concepts/Construct__.js +0 -340
  246. package/out/concepts/Construct__.js.map +0 -1
  247. package/out/concepts/MatchExpression__.d.ts +0 -97
  248. package/out/concepts/MatchExpression__.js +0 -281
  249. package/out/concepts/MatchExpression__.js.map +0 -1
  250. package/out/templator/sql-parser/index.d.ts +0 -1
  251. package/out/templator/sql-parser/index.js +0 -228
  252. package/out/templator/sql-parser/index.js.map +0 -1
  253. package/out/templator/sql-parser/parser.js +0 -26664
  254. package/out/templator/sql-parser/parser.js.map +0 -1
  255. package/src/concepts/dist/Anchor__.js +0 -179
  256. package/src/concepts/dist/Assignment__.js +0 -301
  257. package/src/concepts/dist/CallInterface__.js +0 -533
  258. package/src/concepts/dist/ForEachStatement__.js +0 -426
  259. package/src/concepts/dist/MatchCase__.js +0 -587
  260. package/src/concepts/dist/Match__.js +0 -631
  261. package/src/concepts/dist/MemberExpression__.js +0 -348
  262. package/src/concepts/dist/Param__.js +0 -538
  263. package/src/concepts/dist/Return__.js +0 -494
  264. package/src/concepts/dist/Variable__.js +0 -537
  265. package/src/server/dist/formatTsUtils.js +0 -683
@@ -0,0 +1,221 @@
1
+ import { TranslatorState } from '../translator';
2
+ import { Params } from '../common/EventEmitter';
3
+ import TypeAnnotation from './TypeAnnotation__';
4
+ import LogicItem from './LogicItem__';
5
+ /**
6
+ * map构造器
7
+ */
8
+ export declare class NewMap extends LogicItem {
9
+ /**
10
+ * 产品概念
11
+ */
12
+ concept: 'NewMap';
13
+ /**
14
+ * 类型
15
+ */
16
+ typeAnnotation: TypeAnnotation;
17
+ /**
18
+ * 键
19
+ */
20
+ keys: Array<LogicItem>;
21
+ /**
22
+ * 键对应的值
23
+ */
24
+ values: Array<LogicItem>;
25
+ /**
26
+ * @param source 需要合并的部分参数
27
+ */
28
+ constructor(source?: Partial<NewMap>);
29
+ static from(source: any, parentNode?: any, parentKey?: string): NewMap;
30
+ /**
31
+ * 设置类型
32
+ */
33
+ setTypeAnnotation(typeAnnotation: TypeAnnotation): void;
34
+ /**
35
+ * 设置键
36
+ */
37
+ setKeys(keys: Array<LogicItem>): void;
38
+ /**
39
+ * 设置键对应的值
40
+ */
41
+ setValues(values: Array<LogicItem>): void;
42
+ getItemExistingNames(excludedList?: Array<LogicItem>): string[];
43
+ getItemUniqueName(name?: string): string;
44
+ /**
45
+ * 插入逻辑项
46
+ * @internal
47
+ * @param name 逻辑项名称,如果不填会自动生成一个唯一名称
48
+ */
49
+ _insertItemInKeysAt(name: string, index: number): LogicItem;
50
+ /**
51
+ * 插入逻辑项
52
+ * @internal
53
+ * @param logicItemOptions 逻辑项参数
54
+ */
55
+ _insertItemInKeysAt(logicItemOptions: Partial<LogicItem>, index: number): LogicItem;
56
+ /**
57
+ * 插入逻辑项
58
+ * @internal
59
+ * @param logicItem 已有的逻辑项实例
60
+ */
61
+ _insertItemInKeysAt(logicItem: LogicItem, index: number): LogicItem;
62
+ /**
63
+ * 插入逻辑项
64
+ * @param name 逻辑项名称,如果不填会自动生成一个唯一名称
65
+ */
66
+ insertItemInKeysAt(name: string, index: number): LogicItem;
67
+ /**
68
+ * 插入逻辑项
69
+ * @param logicItemOptions 逻辑项参数
70
+ */
71
+ insertItemInKeysAt(logicItemOptions: Partial<LogicItem>, index: number): LogicItem;
72
+ /**
73
+ * 插入逻辑项
74
+ * @param logicItem 已有的逻辑项实例
75
+ */
76
+ insertItemInKeysAt(logicItem: LogicItem, index: number): LogicItem;
77
+ /**
78
+ * 添加逻辑项
79
+ * @internal
80
+ * @param name 逻辑项名称,如果不填会自动生成一个唯一名称
81
+ */
82
+ _addItemInKeys(name?: string): LogicItem;
83
+ /**
84
+ * 添加逻辑项
85
+ * @internal
86
+ * @param logicItemOptions 逻辑项参数
87
+ */
88
+ _addItemInKeys(logicItemOptions: Partial<LogicItem>): LogicItem;
89
+ /**
90
+ * 添加逻辑项
91
+ * @internal
92
+ * @param logicItem 已有的逻辑项实例
93
+ */
94
+ _addItemInKeys(logicItem: LogicItem): LogicItem;
95
+ /**
96
+ * 添加逻辑项
97
+ * @internal
98
+ * @param name 逻辑项名称,如果不填会自动生成一个唯一名称
99
+ */
100
+ addItemInKeys(name?: string): LogicItem;
101
+ /**
102
+ * 添加逻辑项
103
+ * @param logicItemOptions 逻辑项参数
104
+ */
105
+ addItemInKeys(logicItemOptions: Partial<LogicItem>): LogicItem;
106
+ /**
107
+ * 添加逻辑项
108
+ * @param logicItem 已有的逻辑项实例
109
+ */
110
+ addItemInKeys(logicItem: LogicItem): LogicItem;
111
+ /**
112
+ * 插入逻辑项
113
+ * @internal
114
+ * @param name 逻辑项名称,如果不填会自动生成一个唯一名称
115
+ */
116
+ _insertItemInValuesAt(name: string, index: number): LogicItem;
117
+ /**
118
+ * 插入逻辑项
119
+ * @internal
120
+ * @param logicItemOptions 逻辑项参数
121
+ */
122
+ _insertItemInValuesAt(logicItemOptions: Partial<LogicItem>, index: number): LogicItem;
123
+ /**
124
+ * 插入逻辑项
125
+ * @internal
126
+ * @param logicItem 已有的逻辑项实例
127
+ */
128
+ _insertItemInValuesAt(logicItem: LogicItem, index: number): LogicItem;
129
+ /**
130
+ * 插入逻辑项
131
+ * @param name 逻辑项名称,如果不填会自动生成一个唯一名称
132
+ */
133
+ insertItemInValuesAt(name: string, index: number): LogicItem;
134
+ /**
135
+ * 插入逻辑项
136
+ * @param logicItemOptions 逻辑项参数
137
+ */
138
+ insertItemInValuesAt(logicItemOptions: Partial<LogicItem>, index: number): LogicItem;
139
+ /**
140
+ * 插入逻辑项
141
+ * @param logicItem 已有的逻辑项实例
142
+ */
143
+ insertItemInValuesAt(logicItem: LogicItem, index: number): LogicItem;
144
+ /**
145
+ * 添加逻辑项
146
+ * @internal
147
+ * @param name 逻辑项名称,如果不填会自动生成一个唯一名称
148
+ */
149
+ _addItemInValues(name?: string): LogicItem;
150
+ /**
151
+ * 添加逻辑项
152
+ * @internal
153
+ * @param logicItemOptions 逻辑项参数
154
+ */
155
+ _addItemInValues(logicItemOptions: Partial<LogicItem>): LogicItem;
156
+ /**
157
+ * 添加逻辑项
158
+ * @internal
159
+ * @param logicItem 已有的逻辑项实例
160
+ */
161
+ _addItemInValues(logicItem: LogicItem): LogicItem;
162
+ /**
163
+ * 添加逻辑项
164
+ * @internal
165
+ * @param name 逻辑项名称,如果不填会自动生成一个唯一名称
166
+ */
167
+ addItemInValues(name?: string): LogicItem;
168
+ /**
169
+ * 添加逻辑项
170
+ * @param logicItemOptions 逻辑项参数
171
+ */
172
+ addItemInValues(logicItemOptions: Partial<LogicItem>): LogicItem;
173
+ /**
174
+ * 添加逻辑项
175
+ * @param logicItem 已有的逻辑项实例
176
+ */
177
+ addItemInValues(logicItem: LogicItem): LogicItem;
178
+ /**
179
+ * 删除类型标注
180
+ * @param name 类型标注名称
181
+ */
182
+ removeTypeAnnotation(name: string): void;
183
+ /**
184
+ * 删除类型标注
185
+ * @param typeAnnotation 已有的类型标注实例
186
+ */
187
+ removeTypeAnnotation(typeAnnotation: TypeAnnotation): void;
188
+ __removeTypeAnnotation(typeAnnotation: TypeAnnotation): Params;
189
+ /**
190
+ * 删除逻辑项
191
+ * @param name 逻辑项名称
192
+ */
193
+ removeItemInKeys(name: string): void;
194
+ /**
195
+ * 删除逻辑项
196
+ * @param logicItem 已有的逻辑项实例
197
+ */
198
+ removeItemInKeys(logicItem: LogicItem): void;
199
+ /**
200
+ * 删除逻辑项
201
+ * @param name 逻辑项名称
202
+ */
203
+ removeItemInValues(name: string): void;
204
+ /**
205
+ * 删除逻辑项
206
+ * @param logicItem 已有的逻辑项实例
207
+ */
208
+ removeItemInValues(logicItem: LogicItem): void;
209
+ __removeLogicItem(logicItem: LogicItem): Params;
210
+ getIterator(): {
211
+ key: LogicItem;
212
+ value: LogicItem;
213
+ uid: string;
214
+ }[];
215
+ addPair(): void;
216
+ removePair(idx: number): void;
217
+ toJS(state?: TranslatorState): string;
218
+ toEmbeddedTS(state?: TranslatorState): string;
219
+ getInitCode(state?: TranslatorState): string;
220
+ }
221
+ export default NewMap;
@@ -0,0 +1,492 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ 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;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ var __importDefault = (this && this.__importDefault) || function (mod) {
32
+ return (mod && mod.__esModule) ? mod : { "default": mod };
33
+ };
34
+ var NewMap_1;
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.NewMap = void 0;
37
+ const translator_1 = require("../translator");
38
+ const decorators_1 = require("../decorators");
39
+ const utils = __importStar(require("../utils"));
40
+ const uuid_1 = require("uuid");
41
+ const classMap_1 = __importDefault(require("../common/classMap"));
42
+ const LogicItem__1 = __importDefault(require("./LogicItem__"));
43
+ /**
44
+ * map构造器
45
+ */
46
+ let NewMap = NewMap_1 = class NewMap extends LogicItem__1.default {
47
+ /**
48
+ * 产品概念
49
+ */
50
+ concept = 'NewMap';
51
+ /**
52
+ * 类型
53
+ */
54
+ typeAnnotation = undefined;
55
+ /**
56
+ * 键
57
+ */
58
+ keys = [];
59
+ /**
60
+ * 键对应的值
61
+ */
62
+ values = [];
63
+ /**
64
+ * @param source 需要合并的部分参数
65
+ */
66
+ constructor(source) {
67
+ source = Object.assign({}, NewMap_1.getDefaultOptions(), source);
68
+ super(source);
69
+ super.subConstructor(source);
70
+ }
71
+ static from(source, parentNode, parentKey) {
72
+ return super.from(source, parentNode, parentKey);
73
+ }
74
+ /**
75
+ * 设置类型
76
+ */
77
+ setTypeAnnotation(typeAnnotation) {
78
+ typeAnnotation._delete();
79
+ const relationOptions = { parentNode: this, parentKey: 'typeAnnotation' };
80
+ Object.assign(typeAnnotation, relationOptions);
81
+ const object = {
82
+ typeAnnotation,
83
+ };
84
+ this.update({
85
+ ...object,
86
+ });
87
+ }
88
+ /**
89
+ * 设置键
90
+ */
91
+ setKeys(keys) {
92
+ const object = {
93
+ keys,
94
+ };
95
+ this.update({
96
+ ...object,
97
+ });
98
+ }
99
+ /**
100
+ * 设置键对应的值
101
+ */
102
+ setValues(values) {
103
+ const object = {
104
+ values,
105
+ };
106
+ this.update({
107
+ ...object,
108
+ });
109
+ }
110
+ getItemExistingNames(excludedList = []) {
111
+ const excludedSet = new Set(excludedList);
112
+ return (this.keys || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
113
+ }
114
+ getItemUniqueName(name = 'logicItem1') {
115
+ return utils.unique(name, this.getItemExistingNames(), undefined, false);
116
+ }
117
+ _insertItemInKeysAt(options, index) {
118
+ const logicItemOptions = {};
119
+ const relationOptions = { parentNode: this, parentKey: 'keys' };
120
+ let logicItem;
121
+ if (!options) {
122
+ logicItem = LogicItem__1.default.from({
123
+ ...logicItemOptions,
124
+ name: this.getItemUniqueName(),
125
+ }, this, 'keys');
126
+ }
127
+ else if (typeof options === 'string') {
128
+ logicItem = LogicItem__1.default.from({
129
+ ...logicItemOptions,
130
+ name: options,
131
+ }, this, 'keys');
132
+ }
133
+ else if (options instanceof LogicItem__1.default) {
134
+ options.ensureDelete(); // 同一实例不支持多处存在
135
+ logicItem = options;
136
+ Object.assign(logicItem, relationOptions);
137
+ }
138
+ else {
139
+ logicItem = LogicItem__1.default.from({
140
+ ...logicItemOptions,
141
+ ...options,
142
+ }, this, 'keys');
143
+ }
144
+ this.keys.splice(index, 0, logicItem);
145
+ return logicItem;
146
+ }
147
+ insertItemInKeysAt(options, index) {
148
+ const node = this._insertItemInKeysAt(options, index);
149
+ node.create({
150
+ index,
151
+ parentNode: this,
152
+ parentKey: 'keys',
153
+ });
154
+ return node;
155
+ }
156
+ _addItemInKeys(options) {
157
+ const index = this.keys.length;
158
+ return this._insertItemInKeysAt(options, index);
159
+ }
160
+ addItemInKeys(options) {
161
+ const node = this._addItemInKeys(options);
162
+ const index = this.keys.indexOf(node);
163
+ node.create({
164
+ index,
165
+ parentNode: this,
166
+ parentKey: 'keys',
167
+ });
168
+ return node;
169
+ }
170
+ _insertItemInValuesAt(options, index) {
171
+ const logicItemOptions = {};
172
+ const relationOptions = { parentNode: this, parentKey: 'values' };
173
+ let logicItem;
174
+ if (!options) {
175
+ logicItem = LogicItem__1.default.from({
176
+ ...logicItemOptions,
177
+ name: this.getItemUniqueName(),
178
+ }, this, 'values');
179
+ }
180
+ else if (typeof options === 'string') {
181
+ logicItem = LogicItem__1.default.from({
182
+ ...logicItemOptions,
183
+ name: options,
184
+ }, this, 'values');
185
+ }
186
+ else if (options instanceof LogicItem__1.default) {
187
+ options.ensureDelete(); // 同一实例不支持多处存在
188
+ logicItem = options;
189
+ Object.assign(logicItem, relationOptions);
190
+ }
191
+ else {
192
+ logicItem = LogicItem__1.default.from({
193
+ ...logicItemOptions,
194
+ ...options,
195
+ }, this, 'values');
196
+ }
197
+ this.values.splice(index, 0, logicItem);
198
+ return logicItem;
199
+ }
200
+ insertItemInValuesAt(options, index) {
201
+ const node = this._insertItemInValuesAt(options, index);
202
+ node.create({
203
+ index,
204
+ parentNode: this,
205
+ parentKey: 'values',
206
+ });
207
+ return node;
208
+ }
209
+ _addItemInValues(options) {
210
+ const index = this.values.length;
211
+ return this._insertItemInValuesAt(options, index);
212
+ }
213
+ addItemInValues(options) {
214
+ const node = this._addItemInValues(options);
215
+ const index = this.values.indexOf(node);
216
+ node.create({
217
+ index,
218
+ parentNode: this,
219
+ parentKey: 'values',
220
+ });
221
+ return node;
222
+ }
223
+ removeTypeAnnotation(options) {
224
+ let typeAnnotation;
225
+ if (typeof options === 'string') {
226
+ typeAnnotation = this.typeAnnotation;
227
+ if (!typeAnnotation) {
228
+ throw new Error('找不到类型标注 ' + options);
229
+ }
230
+ }
231
+ else {
232
+ typeAnnotation = options;
233
+ }
234
+ return typeAnnotation.delete();
235
+ }
236
+ __removeTypeAnnotation(typeAnnotation) {
237
+ const parentKey = typeAnnotation.parentKey;
238
+ const params = {
239
+ parentNode: this,
240
+ parentKey,
241
+ index: -1,
242
+ object: null,
243
+ oldObject: typeAnnotation,
244
+ };
245
+ if (parentKey) {
246
+ params.parentKey = parentKey;
247
+ if (Array.isArray(this[parentKey])) {
248
+ const index = this[parentKey].indexOf(typeAnnotation);
249
+ ~index && this[parentKey].splice(index, 1);
250
+ params.index = index;
251
+ }
252
+ else if (this[parentKey] === typeAnnotation) {
253
+ params.index = 0;
254
+ this[parentKey] = undefined;
255
+ }
256
+ }
257
+ return params;
258
+ }
259
+ removeItemInKeys(options) {
260
+ let logicItem;
261
+ if (typeof options === 'string') {
262
+ logicItem = this.keys.find((item) => item.name === options);
263
+ if (!logicItem) {
264
+ throw new Error('找不到逻辑项 ' + options);
265
+ }
266
+ }
267
+ else {
268
+ logicItem = options;
269
+ }
270
+ return logicItem.delete();
271
+ }
272
+ removeItemInValues(options) {
273
+ let logicItem;
274
+ if (typeof options === 'string') {
275
+ logicItem = this.values.find((item) => item.name === options);
276
+ if (!logicItem) {
277
+ throw new Error('找不到逻辑项 ' + options);
278
+ }
279
+ }
280
+ else {
281
+ logicItem = options;
282
+ }
283
+ return logicItem.delete();
284
+ }
285
+ __removeLogicItem(logicItem) {
286
+ const parentKey = logicItem.parentKey;
287
+ const params = {
288
+ parentNode: this,
289
+ parentKey,
290
+ index: -1,
291
+ object: null,
292
+ oldObject: logicItem,
293
+ };
294
+ if (parentKey) {
295
+ params.parentKey = parentKey;
296
+ if (Array.isArray(this[parentKey])) {
297
+ const index = this[parentKey].indexOf(logicItem);
298
+ ~index && this[parentKey].splice(index, 1);
299
+ params.index = index;
300
+ }
301
+ else if (this[parentKey] === logicItem) {
302
+ params.index = 0;
303
+ this[parentKey] = undefined;
304
+ }
305
+ }
306
+ return params;
307
+ }
308
+ //================================================================================
309
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
310
+ // 自动生成的代码已结束。下面可以手动编写。
311
+ //================================================================================
312
+ getIterator() {
313
+ return this.keys.map((k, idx) => ({
314
+ key: k,
315
+ value: this.values[idx],
316
+ uid: (0, uuid_1.v4)(),
317
+ }));
318
+ }
319
+ addPair() {
320
+ this.update({
321
+ keys: [...this.keys, undefined],
322
+ values: [...this.values, undefined],
323
+ });
324
+ }
325
+ removePair(idx) {
326
+ const k = this.keys.slice();
327
+ k.splice(idx, 1);
328
+ const v = this.values.slice();
329
+ v.splice(idx, 1);
330
+ this.update({
331
+ keys: k,
332
+ values: v,
333
+ });
334
+ }
335
+ toJS(state) {
336
+ let code = '';
337
+ code += 'await (async () => {\n';
338
+ code += 'const obj = {};\n';
339
+ code += 'let k;\n';
340
+ this.keys.forEach((item, index) => {
341
+ const key = item;
342
+ const value = this.values[index];
343
+ code += `k = `;
344
+ code += `${key ? key.toJS((0, translator_1.shiftState)(state, code, { inline: true })) : undefined};\n`;
345
+ code += 'obj[k] = ';
346
+ code += `${value ? value.toJS((0, translator_1.shiftState)(state, code, { inline: true })) : undefined};\n`;
347
+ });
348
+ code += `return obj;\n`;
349
+ code += '})()';
350
+ return code;
351
+ }
352
+ toEmbeddedTS(state) {
353
+ let code = '';
354
+ if (this.typeAnnotation) {
355
+ const newConstructor = `nasl.util.New<${this.typeAnnotation.sortedTypeKey}>()`;
356
+ code += '(() => { \n';
357
+ // 方便ts报错检查
358
+ code += 'function __newComposite() {\n';
359
+ code += '\n';
360
+ this.keys.forEach((item, index) => {
361
+ const key = item;
362
+ code += `nasl.util.MapPut(${newConstructor}, `;
363
+ code += `${key ? key.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true })) : null}`;
364
+ code += ', null)\n';
365
+ });
366
+ this.values.forEach((item, index) => {
367
+ const value = this.values[index];
368
+ code += `nasl.util.MapPut(${newConstructor}, null, `;
369
+ code += `${value ? value.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true })) : null}`;
370
+ code += ')';
371
+ code += '\n';
372
+ });
373
+ code += `return ${newConstructor};\n`;
374
+ code += '};\n';
375
+ code += 'return __newComposite();\n';
376
+ code += '})()';
377
+ }
378
+ else {
379
+ if (this.keys.some((key) => key) || this.values.some((value) => value)) {
380
+ code += '(() => { \n';
381
+ const valueTsArr = [];
382
+ let keyTs = 'null';
383
+ let valueTs = false;
384
+ let keyIndex = -1;
385
+ this.keys.forEach((key, index) => {
386
+ if (key) {
387
+ const ts = key.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
388
+ if (keyIndex === -1 && !['__IDENTIFIER__', '__IDENTIFIER__()'].includes(ts)) {
389
+ keyIndex = index;
390
+ keyTs = ts;
391
+ }
392
+ }
393
+ });
394
+ this.values.forEach((item, index) => {
395
+ if (item)
396
+ valueTs = true;
397
+ const ts = item ? item.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true })) : null;
398
+ valueTsArr.push(ts);
399
+ code += valueTsArr[index];
400
+ code += '; ';
401
+ });
402
+ code += '\n';
403
+ if (keyTs === 'null' || !valueTs) {
404
+ code += '__IDENTIFIER__;\n';
405
+ }
406
+ // 方便ts报错检查
407
+ code += 'function __newComposite() {\n';
408
+ this.keys.forEach((key) => {
409
+ if (!key)
410
+ return;
411
+ code += `nasl.core.compare2(${keyTs}, `;
412
+ code += key.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
413
+ code += ');\n';
414
+ });
415
+ code += `return nasl.util.NewMap(`;
416
+ code += `${keyIndex === -1 ? 'null' : this.keys[keyIndex].toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }))}, ...[`;
417
+ valueTsArr.forEach((ts, index) => {
418
+ code += ['__IDENTIFIER__', '__IDENTIFIER__()'].includes(ts) ? null : ts;
419
+ if (index + 1 < this.values.length)
420
+ code += ', ';
421
+ });
422
+ code += ']);\n';
423
+ code += '};\n';
424
+ code += 'return __newComposite();\n';
425
+ code += '})()';
426
+ }
427
+ else {
428
+ code += '(() => {\n';
429
+ code += '__IDENTIFIER__;\n';
430
+ code += `return nasl.util.NewMap(${null}, ${null})`;
431
+ code += '})()';
432
+ }
433
+ }
434
+ return code;
435
+ }
436
+ getInitCode(state) {
437
+ let code = '';
438
+ if (this.keys.some((key) => key) || this.values.some((value) => value)) {
439
+ let keyBol = false;
440
+ code += `nasl.util.NewMap(`;
441
+ this.keys.forEach((key) => {
442
+ if (key && !keyBol) {
443
+ const ts = key.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
444
+ if (!['__IDENTIFIER__', '__IDENTIFIER__()'].includes(ts)) {
445
+ keyBol = true;
446
+ code += ts;
447
+ }
448
+ }
449
+ });
450
+ if (!keyBol)
451
+ code += 'null';
452
+ code += `, ...[`;
453
+ this.values.forEach((item, index) => {
454
+ const ts = item ? item.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true })) : null;
455
+ code += ['__IDENTIFIER__', '__IDENTIFIER__()'].includes(ts) ? null : ts;
456
+ if (index + 1 < this.values.length)
457
+ code += ', ';
458
+ });
459
+ code += '])';
460
+ }
461
+ else {
462
+ code += `nasl.util.NewMap(${null}, ${null})`;
463
+ }
464
+ return code;
465
+ }
466
+ };
467
+ __decorate([
468
+ (0, decorators_1.property)()
469
+ ], NewMap.prototype, "concept", void 0);
470
+ __decorate([
471
+ (0, decorators_1.property)('TypeAnnotation')
472
+ ], NewMap.prototype, "typeAnnotation", void 0);
473
+ __decorate([
474
+ (0, decorators_1.property)('LogicItem')
475
+ ], NewMap.prototype, "keys", void 0);
476
+ __decorate([
477
+ (0, decorators_1.property)('LogicItem')
478
+ ], NewMap.prototype, "values", void 0);
479
+ __decorate([
480
+ (0, translator_1.withSourceMap)()
481
+ ], NewMap.prototype, "toEmbeddedTS", null);
482
+ NewMap = NewMap_1 = __decorate([
483
+ (0, decorators_1.concept)('map构造器')
484
+ ], NewMap);
485
+ exports.NewMap = NewMap;
486
+ classMap_1.default.NewMap = NewMap;
487
+ exports.default = NewMap;
488
+ //================================================================================
489
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
490
+ // 自动生成的代码已结束。下面可以手动编写。
491
+ //================================================================================
492
+ //# sourceMappingURL=NewMap__.js.map