@lcap/nasl 1.0.1 → 2.12.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 (364) hide show
  1. package/out/automate/engine/index.d.ts +1 -0
  2. package/out/automate/engine/index.js +34 -12
  3. package/out/automate/engine/index.js.map +1 -1
  4. package/out/automate/engine/operators.d.ts +10 -2
  5. package/out/automate/engine/operators.js +105 -7
  6. package/out/automate/engine/operators.js.map +1 -1
  7. package/out/automate/engine/uniqueName.d.ts +8 -2
  8. package/out/automate/engine/uniqueName.js +72 -4
  9. package/out/automate/engine/uniqueName.js.map +1 -1
  10. package/out/automate/engine/utils.d.ts +1 -0
  11. package/out/automate/engine/utils.js +108 -67
  12. package/out/automate/engine/utils.js.map +1 -1
  13. package/out/automate/template/process.d.ts +9 -0
  14. package/out/automate/template/process.js +10976 -0
  15. package/out/automate/template/process.js.map +1 -0
  16. package/out/bak/translator.js +1 -0
  17. package/out/bak/translator.js.map +1 -1
  18. package/out/common/BaseNode.d.ts +6 -1
  19. package/out/common/BaseNode.js +37 -6
  20. package/out/common/BaseNode.js.map +1 -1
  21. package/out/concepts/App__.d.ts +52 -49
  22. package/out/concepts/App__.js +89 -53
  23. package/out/concepts/App__.js.map +1 -1
  24. package/out/concepts/Assignee__.d.ts +11 -0
  25. package/out/concepts/Assignee__.js +34 -0
  26. package/out/concepts/Assignee__.js.map +1 -1
  27. package/out/concepts/BindAttribute__.js +2 -2
  28. package/out/concepts/BindAttribute__.js.map +1 -1
  29. package/out/concepts/BindDirective__.js +10 -3
  30. package/out/concepts/BindDirective__.js.map +1 -1
  31. package/out/concepts/BindEvent__.js +15 -6
  32. package/out/concepts/BindEvent__.js.map +1 -1
  33. package/out/concepts/BooleanLiteral__.d.ts +4 -0
  34. package/out/concepts/BooleanLiteral__.js +11 -0
  35. package/out/concepts/BooleanLiteral__.js.map +1 -1
  36. package/out/concepts/CallFunction__.js +9 -4
  37. package/out/concepts/CallFunction__.js.map +1 -1
  38. package/out/concepts/CallLogic__.js +48 -30
  39. package/out/concepts/CallLogic__.js.map +1 -1
  40. package/out/concepts/CallQueryComponent__.d.ts +34 -4
  41. package/out/concepts/CallQueryComponent__.js +340 -95
  42. package/out/concepts/CallQueryComponent__.js.map +1 -1
  43. package/out/concepts/Comment__.js +1 -1
  44. package/out/concepts/Comment__.js.map +1 -1
  45. package/out/concepts/ConfigGroup__.d.ts +1 -0
  46. package/out/concepts/ConfigGroup__.js +7 -0
  47. package/out/concepts/ConfigGroup__.js.map +1 -1
  48. package/out/concepts/ConfigProperty__.d.ts +1 -0
  49. package/out/concepts/ConfigProperty__.js +3 -0
  50. package/out/concepts/ConfigProperty__.js.map +1 -1
  51. package/out/concepts/Configuration__.d.ts +1 -0
  52. package/out/concepts/Configuration__.js +3 -0
  53. package/out/concepts/Configuration__.js.map +1 -1
  54. package/out/concepts/Constant__.js +6 -6
  55. package/out/concepts/Constant__.js.map +1 -1
  56. package/out/concepts/DataSource__.d.ts +143 -0
  57. package/out/concepts/DataSource__.js +318 -0
  58. package/out/concepts/DataSource__.js.map +1 -0
  59. package/out/concepts/Destination__.js +22 -8
  60. package/out/concepts/Destination__.js.map +1 -1
  61. package/out/concepts/End__.js +2 -2
  62. package/out/concepts/End__.js.map +1 -1
  63. package/out/concepts/EntityIndex__.d.ts +5 -0
  64. package/out/concepts/EntityIndex__.js +10 -2
  65. package/out/concepts/EntityIndex__.js.map +1 -1
  66. package/out/concepts/EntityProperty__.d.ts +9 -0
  67. package/out/concepts/EntityProperty__.js +22 -7
  68. package/out/concepts/EntityProperty__.js.map +1 -1
  69. package/out/concepts/Entity__.d.ts +6 -0
  70. package/out/concepts/Entity__.js +27 -11
  71. package/out/concepts/Entity__.js.map +1 -1
  72. package/out/concepts/Enum__.d.ts +1 -0
  73. package/out/concepts/Enum__.js +14 -4
  74. package/out/concepts/Enum__.js.map +1 -1
  75. package/out/concepts/ForEachStatement__.js +2 -2
  76. package/out/concepts/ForEachStatement__.js.map +1 -1
  77. package/out/concepts/Function__.d.ts +18 -0
  78. package/out/concepts/Function__.js +96 -1
  79. package/out/concepts/Function__.js.map +1 -1
  80. package/out/concepts/Identifier__.js +5 -14
  81. package/out/concepts/Identifier__.js.map +1 -1
  82. package/out/concepts/IfStatement__.js +8 -8
  83. package/out/concepts/IfStatement__.js.map +1 -1
  84. package/out/concepts/InterfaceParam__.js +9 -4
  85. package/out/concepts/InterfaceParam__.js.map +1 -1
  86. package/out/concepts/Interface__.js +19 -12
  87. package/out/concepts/Interface__.js.map +1 -1
  88. package/out/concepts/JSBlock__.js +3 -5
  89. package/out/concepts/JSBlock__.js.map +1 -1
  90. package/out/concepts/Logic__.js +44 -44
  91. package/out/concepts/Logic__.js.map +1 -1
  92. package/out/concepts/Module__.d.ts +116 -194
  93. package/out/concepts/Module__.js +31 -114
  94. package/out/concepts/Module__.js.map +1 -1
  95. package/out/concepts/Namespace__.d.ts +0 -86
  96. package/out/concepts/Namespace__.js +1 -108
  97. package/out/concepts/Namespace__.js.map +1 -1
  98. package/out/concepts/Param__.d.ts +3 -2
  99. package/out/concepts/Param__.js +15 -8
  100. package/out/concepts/Param__.js.map +1 -1
  101. package/out/concepts/ProcessElement__.js +38 -12
  102. package/out/concepts/ProcessElement__.js.map +1 -1
  103. package/out/concepts/Process__.d.ts +1 -1
  104. package/out/concepts/Process__.js +17 -10
  105. package/out/concepts/Process__.js.map +1 -1
  106. package/out/concepts/QueryAggregateExpression__.js +1 -1
  107. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  108. package/out/concepts/QueryFieldExpression__.d.ts +1 -0
  109. package/out/concepts/QueryFieldExpression__.js +11 -1
  110. package/out/concepts/QueryFieldExpression__.js.map +1 -1
  111. package/out/concepts/QueryFromExpression__.d.ts +4 -0
  112. package/out/concepts/QueryFromExpression__.js +13 -2
  113. package/out/concepts/QueryFromExpression__.js.map +1 -1
  114. package/out/concepts/QueryGroupByExpression__.d.ts +3 -0
  115. package/out/concepts/QueryGroupByExpression__.js +20 -0
  116. package/out/concepts/QueryGroupByExpression__.js.map +1 -1
  117. package/out/concepts/QueryJoinExpression__.d.ts +4 -0
  118. package/out/concepts/QueryJoinExpression__.js +14 -3
  119. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  120. package/out/concepts/Return__.d.ts +1 -1
  121. package/out/concepts/Return__.js +16 -11
  122. package/out/concepts/Return__.js.map +1 -1
  123. package/out/concepts/Role__.js +10 -3
  124. package/out/concepts/Role__.js.map +1 -1
  125. package/out/concepts/SqlQueryComponent__.d.ts +14 -0
  126. package/out/concepts/SqlQueryComponent__.js +48 -5
  127. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  128. package/out/concepts/StringLiteral__.d.ts +1 -1
  129. package/out/concepts/StringLiteral__.js +2 -9
  130. package/out/concepts/StringLiteral__.js.map +1 -1
  131. package/out/concepts/StructureProperty__.js +11 -10
  132. package/out/concepts/StructureProperty__.js.map +1 -1
  133. package/out/concepts/Structure__.js +19 -12
  134. package/out/concepts/Structure__.js.map +1 -1
  135. package/out/concepts/SwitchCase__.d.ts +1 -1
  136. package/out/concepts/SwitchCase__.js +23 -25
  137. package/out/concepts/SwitchCase__.js.map +1 -1
  138. package/out/concepts/SwitchStatement__.js +1 -6
  139. package/out/concepts/SwitchStatement__.js.map +1 -1
  140. package/out/concepts/TypeAnnotation__.d.ts +8 -0
  141. package/out/concepts/TypeAnnotation__.js +53 -3
  142. package/out/concepts/TypeAnnotation__.js.map +1 -1
  143. package/out/concepts/Variable__.d.ts +1 -1
  144. package/out/concepts/Variable__.js +16 -11
  145. package/out/concepts/Variable__.js.map +1 -1
  146. package/out/concepts/ViewElement__.js +25 -20
  147. package/out/concepts/ViewElement__.js.map +1 -1
  148. package/out/concepts/View__.d.ts +1 -3
  149. package/out/concepts/View__.js +42 -36
  150. package/out/concepts/View__.js.map +1 -1
  151. package/out/concepts/WhileStatement__.js +4 -4
  152. package/out/concepts/WhileStatement__.js.map +1 -1
  153. package/out/concepts/basics/stdlib/nasl.auth.js +20 -0
  154. package/out/concepts/basics/stdlib/nasl.auth.js.map +1 -1
  155. package/out/concepts/basics/stdlib/nasl.configuration.js +1 -1
  156. package/out/concepts/basics/stdlib/nasl.configuration.js.map +1 -1
  157. package/out/concepts/basics/stdlib/nasl.interface.d.ts +2 -0
  158. package/out/concepts/basics/stdlib/nasl.interface.js +4 -4
  159. package/out/concepts/basics/stdlib/nasl.interface.js.map +1 -1
  160. package/out/concepts/basics/stdlib/nasl.process.d.ts +4 -0
  161. package/out/concepts/basics/stdlib/nasl.process.js +410 -0
  162. package/out/concepts/basics/stdlib/nasl.process.js.map +1 -1
  163. package/out/concepts/basics/stdlib/nasl.ui.js +1 -11
  164. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  165. package/out/concepts/basics/stdlib/nasl.util.js +270 -8
  166. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  167. package/out/concepts/basics/stdlib/reference2TypeAnnotationList.js +1 -1
  168. package/out/concepts/basics/stdlib/reference2TypeAnnotationList.js.map +1 -1
  169. package/out/concepts/basics/types/index.d.ts +2 -0
  170. package/out/concepts/basics/types/index.js +6 -1
  171. package/out/concepts/basics/types/index.js.map +1 -1
  172. package/out/concepts/index__.d.ts +1 -0
  173. package/out/concepts/index__.js +1 -0
  174. package/out/concepts/index__.js.map +1 -1
  175. package/out/enums/KEYWORDS.js +0 -7
  176. package/out/enums/KEYWORDS.js.map +1 -1
  177. package/out/generator/genBundleFiles.d.ts +3 -1
  178. package/out/generator/genBundleFiles.js +23 -5
  179. package/out/generator/genBundleFiles.js.map +1 -1
  180. package/out/generator/genMetaData.d.ts +1 -0
  181. package/out/generator/genMetaData.js +20 -12
  182. package/out/generator/genMetaData.js.map +1 -1
  183. package/out/index.d.ts +1 -1
  184. package/out/index.js +2 -1
  185. package/out/index.js.map +1 -1
  186. package/out/manager/diagnostic.d.ts +1 -1
  187. package/out/server/createUiTs.js +1 -0
  188. package/out/server/createUiTs.js.map +1 -1
  189. package/out/{test/integration/connect-file copy.d.ts → server/extendBaseNode.d.ts} +0 -0
  190. package/out/server/extendBaseNode.js +323 -0
  191. package/out/server/extendBaseNode.js.map +1 -0
  192. package/out/server/getLogics.js +49 -2
  193. package/out/server/getLogics.js.map +1 -1
  194. package/out/server/getMemberIdentifier.js +52 -2
  195. package/out/server/getMemberIdentifier.js.map +1 -1
  196. package/out/server/getProcesses.d.ts +8 -2
  197. package/out/server/getProcesses.js +228 -20
  198. package/out/server/getProcesses.js.map +1 -1
  199. package/out/server/getScope.d.ts +1 -0
  200. package/out/server/getScope.js +4 -0
  201. package/out/server/getScope.js.map +1 -1
  202. package/out/server/index.d.ts +1 -0
  203. package/out/server/index.js +1 -0
  204. package/out/server/index.js.map +1 -1
  205. package/out/server/naslServer.d.ts +8 -5
  206. package/out/server/naslServer.js +314 -383
  207. package/out/server/naslServer.js.map +1 -1
  208. package/out/server/process2LogicNamespace.js +10 -1
  209. package/out/server/process2LogicNamespace.js.map +1 -1
  210. package/out/server/translator.d.ts +1 -1
  211. package/out/server/translator.js +40 -2
  212. package/out/server/translator.js.map +1 -1
  213. package/out/service/creator/errHandles.js +5 -0
  214. package/out/service/creator/errHandles.js.map +1 -1
  215. package/out/service/storage/init.d.ts +1 -0
  216. package/out/service/storage/init.js +113 -94
  217. package/out/service/storage/init.js.map +1 -1
  218. package/out/templator/genCreateBlock.js +34 -24
  219. package/out/templator/genCreateBlock.js.map +1 -1
  220. package/out/templator/genCurdEditMultipleKeyBlock.js +28 -18
  221. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  222. package/out/templator/genCurdMultipleKeyBlock.js +45 -29
  223. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  224. package/out/templator/genEditTableBlock.js +15 -13
  225. package/out/templator/genEditTableBlock.js.map +1 -1
  226. package/out/templator/genEnumSelectBlock.js +1 -1
  227. package/out/templator/genEnumSelectBlock.js.map +1 -1
  228. package/out/templator/genGetBlock.js +1 -1
  229. package/out/templator/genGetBlock.js.map +1 -1
  230. package/out/templator/genGridViewBlock.js +29 -24
  231. package/out/templator/genGridViewBlock.js.map +1 -1
  232. package/out/templator/genListViewBlock.js +7 -5
  233. package/out/templator/genListViewBlock.js.map +1 -1
  234. package/out/templator/genQueryComponent.js +31 -29
  235. package/out/templator/genQueryComponent.js.map +1 -1
  236. package/out/templator/genSelectBlock.js +13 -22
  237. package/out/templator/genSelectBlock.js.map +1 -1
  238. package/out/templator/genTableBlock.js +31 -21
  239. package/out/templator/genTableBlock.js.map +1 -1
  240. package/out/templator/genUpdateBlock.js +35 -25
  241. package/out/templator/genUpdateBlock.js.map +1 -1
  242. package/out/templator/utils.d.ts +5 -3
  243. package/out/templator/utils.js +2 -1
  244. package/out/templator/utils.js.map +1 -1
  245. package/out/test/integration/connect-file.js +6 -6
  246. package/out/test/integration/connect-file.js.map +1 -1
  247. package/out/translator/index.js +1 -1
  248. package/out/translator/index.js.map +1 -1
  249. package/out/utils/index.d.ts +5 -0
  250. package/out/utils/index.js +50 -1
  251. package/out/utils/index.js.map +1 -1
  252. package/package.json +1 -2
  253. package/src/automate/engine/index.js +33 -8
  254. package/src/automate/engine/operators.js +114 -17
  255. package/src/automate/engine/uniqueName.js +77 -9
  256. package/src/automate/engine/utils.js +110 -69
  257. package/src/automate/template/process.js +10999 -0
  258. package/src/bak/translator.js +1 -0
  259. package/src/common/BaseNode.ts +35 -7
  260. package/src/concepts/App__.ts +132 -131
  261. package/src/concepts/Assignee__.ts +30 -0
  262. package/src/concepts/BindAttribute__.ts +2 -2
  263. package/src/concepts/BindDirective__.ts +9 -7
  264. package/src/concepts/BindEvent__.ts +14 -6
  265. package/src/concepts/BooleanLiteral__.ts +12 -0
  266. package/src/concepts/CallFunction__.ts +7 -4
  267. package/src/concepts/CallLogic__.ts +47 -32
  268. package/src/concepts/CallQueryComponent__.ts +352 -101
  269. package/src/concepts/Comment__.ts +1 -1
  270. package/src/concepts/ConfigGroup__.ts +3 -1
  271. package/src/concepts/ConfigProperty__.ts +4 -0
  272. package/src/concepts/Configuration__.ts +3 -0
  273. package/src/concepts/Constant__.ts +6 -6
  274. package/src/concepts/DataSource__.ts +391 -0
  275. package/src/concepts/Destination__.ts +22 -8
  276. package/src/concepts/End__.ts +2 -2
  277. package/src/concepts/EntityIndex__.ts +11 -2
  278. package/src/concepts/EntityProperty__.ts +23 -7
  279. package/src/concepts/Entity__.ts +38 -14
  280. package/src/concepts/Enum__.ts +15 -4
  281. package/src/concepts/ForEachStatement__.ts +2 -2
  282. package/src/concepts/Function__.ts +95 -1
  283. package/src/concepts/Identifier__.ts +5 -14
  284. package/src/concepts/IfStatement__.ts +9 -9
  285. package/src/concepts/InterfaceParam__.ts +9 -4
  286. package/src/concepts/Interface__.ts +20 -12
  287. package/src/concepts/JSBlock__.ts +3 -12
  288. package/src/concepts/Logic__.ts +45 -79
  289. package/src/concepts/Module__.ts +141 -342
  290. package/src/concepts/Namespace__.ts +1 -204
  291. package/src/concepts/Param__.ts +17 -9
  292. package/src/concepts/ProcessElement__.ts +42 -15
  293. package/src/concepts/Process__.ts +18 -12
  294. package/src/concepts/QueryAggregateExpression__.ts +1 -1
  295. package/src/concepts/QueryFieldExpression__.ts +13 -1
  296. package/src/concepts/QueryFromExpression__.ts +13 -2
  297. package/src/concepts/QueryGroupByExpression__.ts +23 -0
  298. package/src/concepts/QueryJoinExpression__.ts +14 -3
  299. package/src/concepts/Return__.ts +16 -11
  300. package/src/concepts/Role__.ts +10 -4
  301. package/src/concepts/SqlQueryComponent__.ts +47 -11
  302. package/src/concepts/StringLiteral__.ts +2 -9
  303. package/src/concepts/StructureProperty__.ts +11 -14
  304. package/src/concepts/Structure__.ts +19 -11
  305. package/src/concepts/SwitchCase__.ts +23 -27
  306. package/src/concepts/SwitchStatement__.ts +1 -5
  307. package/src/concepts/TypeAnnotation__.ts +52 -3
  308. package/src/concepts/Variable__.ts +16 -11
  309. package/src/concepts/ViewElement__.ts +26 -39
  310. package/src/concepts/View__.ts +45 -38
  311. package/src/concepts/WhileStatement__.ts +4 -4
  312. package/src/concepts/basics/stdlib/nasl.auth.ts +20 -0
  313. package/src/concepts/basics/stdlib/nasl.configuration.ts +1 -1
  314. package/src/concepts/basics/stdlib/nasl.interface.ts +1 -1
  315. package/src/concepts/basics/stdlib/nasl.process.ts +406 -0
  316. package/src/concepts/basics/stdlib/nasl.ui.ts +1 -11
  317. package/src/concepts/basics/stdlib/nasl.util.ts +271 -8
  318. package/src/concepts/basics/stdlib/reference2TypeAnnotationList.ts +1 -1
  319. package/src/concepts/basics/types/index.ts +2 -0
  320. package/src/concepts/index__.ts +1 -0
  321. package/src/enums/KEYWORDS.ts +0 -7
  322. package/src/generator/genBundleFiles.ts +28 -7
  323. package/src/generator/genMetaData.ts +22 -13
  324. package/src/index.ts +1 -1
  325. package/src/manager/diagnostic.ts +1 -1
  326. package/src/server/createUiTs.ts +1 -0
  327. package/src/server/extendBaseNode.ts +318 -0
  328. package/src/server/getLogics.ts +51 -5
  329. package/src/server/getMemberIdentifier.ts +53 -2
  330. package/src/server/getProcesses.ts +238 -21
  331. package/src/server/getScope.ts +5 -0
  332. package/src/server/index.ts +1 -0
  333. package/src/server/naslServer.ts +322 -380
  334. package/src/server/process2LogicNamespace.ts +29 -19
  335. package/src/server/translator.ts +42 -2
  336. package/src/service/creator/errHandles.js +6 -0
  337. package/src/service/storage/init.ts +115 -97
  338. package/src/templator/genCreateBlock.ts +35 -26
  339. package/src/templator/genCurdEditMultipleKeyBlock.ts +29 -21
  340. package/src/templator/genCurdMultipleKeyBlock.ts +46 -31
  341. package/src/templator/genEditTableBlock.ts +17 -14
  342. package/src/templator/genEnumSelectBlock.ts +1 -1
  343. package/src/templator/genGetBlock.ts +1 -1
  344. package/src/templator/genGridViewBlock.ts +30 -25
  345. package/src/templator/genListViewBlock.ts +10 -7
  346. package/src/templator/genQueryComponent.ts +34 -30
  347. package/src/templator/genSelectBlock.ts +14 -23
  348. package/src/templator/genTableBlock.ts +32 -23
  349. package/src/templator/genUpdateBlock.ts +36 -26
  350. package/src/templator/utils.ts +5 -2
  351. package/src/test/integration/connect-file.ts +6 -6
  352. package/src/translator/index.ts +1 -1
  353. package/src/utils/index.ts +51 -0
  354. package/out/concepts/basics/stdlib/nasl.browser copy.d.ts +0 -3
  355. package/out/concepts/basics/stdlib/nasl.browser copy.js +0 -70
  356. package/out/concepts/basics/stdlib/nasl.browser copy.js.map +0 -1
  357. package/out/terms/LEVEL_NAME_MAP.d.ts +0 -26
  358. package/out/terms/LEVEL_NAME_MAP.js +0 -30
  359. package/out/terms/LEVEL_NAME_MAP.js.map +0 -1
  360. package/out/test/integration/connect-file copy.js +0 -50
  361. package/out/test/integration/connect-file copy.js.map +0 -1
  362. package/out/test/integration/node-nasl-server.d.ts +0 -1
  363. package/out/test/integration/node-nasl-server.js +0 -41
  364. package/out/test/integration/node-nasl-server.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import Constant from '@nasl/concepts/Constant__';
2
- import { CompletionProperty, Process, ProcessElement, Namespace, Logic, TypeAnnotation, Return, Variable, StructureProperty, Param, Identifier, MemberExpression, LogicItem } from '..';
2
+ import { CompletionProperty, Process, ProcessElement, Namespace, Logic, TypeAnnotation, Return, Variable, StructureProperty, Param, Identifier, MemberExpression, LogicItem, App, BaseNode, Structure, Entity, EntityProperty } from '..';
3
3
  import { getNodeByNodeCallee } from '../automate/engine/utils';
4
4
  function alphaUpper(name: string) {
5
5
  if (!name) {
@@ -156,16 +156,25 @@ export function syncMemberExpression(elem: ProcessElement | Process, callback: (
156
156
  attr.destination.arguments.forEach((arg) => {
157
157
  travelDown(arg.expression, (node) => {
158
158
  if (node instanceof MemberExpression) {
159
- console.log('UserTask', node.getValue());
159
+ // console.log('UserTask destination', node.getValue());
160
+ callback(node);
161
+ }
162
+ });
163
+ });
164
+ }
165
+ if (attr.name === 'assignee') {
166
+ attr.assignee.dynamicUsers.forEach((dy) => {
167
+ travelDown(dy, (node) => {
168
+ if (node instanceof MemberExpression) {
169
+ // console.log('UserTask assignee', node.getValue());
160
170
  callback(node);
161
- // if(node.property.name === oldName) {}
162
171
  }
163
172
  });
164
173
  });
165
174
  }
166
175
  });
167
176
  }
168
- if (el.type === 'ExclusiveGateway') {
177
+ if (el.type === 'ExclusiveGateway' || el.type === 'AutoTask') {
169
178
  travelDown(el.logic, (node) => {
170
179
  if (node instanceof MemberExpression) {
171
180
  console.log('ExclusiveGateway', node.getValue());
@@ -175,8 +184,38 @@ export function syncMemberExpression(elem: ProcessElement | Process, callback: (
175
184
  }
176
185
  });
177
186
  }
187
+ // a.b.c => MemberExpression
188
+ export function genMemberExpression(path: string) {
189
+ const arr = path.split('.');
190
+ let m: MemberExpression;
191
+ while(arr.length) {
192
+ const ns = arr.shift();
193
+ const cv = new Identifier({ name: ns });
194
+ if (!m) {
195
+ m = new MemberExpression({
196
+ object: cv,
197
+ });
198
+ cv.parentNode = m;
199
+ } else {
200
+ m.property = cv;
201
+ if(arr.length) {
202
+ const tm = new MemberExpression({
203
+ object: m,
204
+ });
205
+ m.parentKey = 'object';
206
+ m.parentNode = tm;
207
+ cv.parentKey = 'property';
208
+ cv.parentNode = tm;
209
+ m = tm;
210
+ }
211
+ }
212
+ }
213
+
214
+ return m;
215
+ }
216
+
178
217
  // ['a','b','c'] => a.b.c
179
- export function genCompletionProperty(prefix: string[] = []):(v: Variable | Param | Return | Constant) => CompletionProperty {
218
+ export function genCompletionProperty(prefix: string[] = []):(v: Variable | Param | Return | Constant | EntityProperty| StructureProperty) => CompletionProperty {
180
219
  return (v) => {
181
220
  let m: MemberExpression;
182
221
  const p = new Identifier({ name: v.name });
@@ -238,7 +277,7 @@ export function getPreviousTask(node: ProcessElement) {
238
277
  if (visitedMap.has(processElem)) {
239
278
  return;
240
279
  }
241
- if (processElem !== node && (processElem.type === 'UserTask')) {
280
+ if (processElem !== node && (processElem.type === 'UserTask' || processElem.type === 'AutoTask')) {
242
281
  elements.push(processElem);
243
282
  }
244
283
  visitedMap.set(processElem, true);
@@ -316,21 +355,21 @@ export function getProcessVariableSuggestions(node: Logic, abandonConstant: bool
316
355
  scopeVariable.icon = processElem.type;
317
356
  processVariables.children.push(scopeVariable);
318
357
  }
319
- // if(processElem.type === 'AutoTask') {
320
- // const scopeVariable = new CompletionProperty({
321
- // name: processElem.name,
322
- // value: processElem.name,
323
- // icon: processElem.type,
324
- // noFurther: true,
325
- // children: [
326
- // ...processElem.variables.map(genCompletionProperty([process.name, processElem.name])),
327
- // ...processElem.returns.map(genCompletionProperty([process.name, processElem.name])),
328
- // ]
329
- // });
330
- // scopeVariable.isProcess = true;
331
- // scopeVariable.icon = processElem.type;
332
- // processVariables.children.push(scopeVariable);
333
- // }
358
+ if(processElem.type === 'AutoTask') {
359
+ const scopeVariable = new CompletionProperty({
360
+ name: processElem.name,
361
+ value: processElem.name,
362
+ icon: processElem.type,
363
+ noFurther: true,
364
+ children: [
365
+ ...processElem.variables.map(genCompletionProperty([process.name, processElem.name])),
366
+ ...processElem.returns.map(genCompletionProperty([process.name, processElem.name])),
367
+ ]
368
+ });
369
+ scopeVariable.isProcess = true;
370
+ scopeVariable.icon = processElem.type;
371
+ processVariables.children.push(scopeVariable);
372
+ }
334
373
  return processVariables;
335
374
  }
336
375
 
@@ -378,3 +417,181 @@ export function getProcessVaraibleSelections(node: Logic, list: VariableSuggesti
378
417
 
379
418
  list.splice(varidx, 1, data);
380
419
  }
420
+
421
+ function deduceTypeAnnotation(
422
+ app: App,
423
+ node: Variable | Param | Return | Constant | EntityProperty| StructureProperty,
424
+ typeA: TypeAnnotation,
425
+ prefix: string[],
426
+ records: BaseNode[],
427
+ ) {
428
+ const ns = typeA.typeNamespace;
429
+ const name = typeA.typeName;
430
+ const completion = genCompletionProperty(prefix)(node)
431
+ if(ns.startsWith('nasl')) {
432
+ return completion;
433
+ }
434
+ const nsPath = `${ns}.${name}`;
435
+
436
+ const typeNode = getNodeByNodeCallee(app, nsPath);
437
+ if(records.includes(typeNode)){
438
+ return null;
439
+ }
440
+ if(typeNode) {
441
+ records.push(typeNode)
442
+ const children = typeNode.properties.map((p: EntityProperty| StructureProperty) => {
443
+ return deduceTypeAnnotation(app, p, p.typeAnnotation, prefix.concat([node.name]), records.slice())
444
+ }).filter((q: CompletionProperty | null) => !!q);
445
+ completion.children = children;
446
+ completion.expanded = true;
447
+ return completion;
448
+ }
449
+ }
450
+
451
+ export function getProcessVariableSuggestionsAll(node: ProcessElement) {
452
+ const processElem = node;
453
+ const process = node.process;
454
+ const app = node.app;
455
+ const elements: ProcessElement[] = getPreviousTask(processElem);
456
+ const prevtasks = elements.map((us) => {
457
+ const cp = new CompletionProperty({
458
+ name: us.name,
459
+ value: us.name,
460
+ noFurther: true,
461
+ children: [
462
+ ...us.returns.map(node => deduceTypeAnnotation(app, node, node.typeAnnotation, [process.name, us.name], [])),
463
+ ...us.constants.map(node => deduceTypeAnnotation(app, node, node.typeAnnotation, [process.name, us.name], [])),
464
+ ],
465
+ });
466
+ cp.expanded = true;
467
+ cp.icon = us.type;
468
+ cp.isProcess = true;
469
+ return cp;
470
+ });
471
+
472
+ const processVariables = new CompletionProperty({
473
+ name: process.name,
474
+ value: process.name,
475
+ noFurther: true,
476
+ children: [
477
+ ...process.params.map(node => deduceTypeAnnotation(app, node, node.typeAnnotation, [process.name], [])),
478
+ ...process.returns.map(node => deduceTypeAnnotation(app, node, node.typeAnnotation, [process.name], [])),
479
+ ...process.constants.map(node => deduceTypeAnnotation(app, node, node.typeAnnotation, [process.name], [])),
480
+ ...prevtasks,
481
+ ],
482
+ });
483
+ processVariables.expanded = true;
484
+ processVariables.icon = 'Process';
485
+ if (processElem.type === 'ExclusiveGateway') {
486
+ const scopeVariable = new CompletionProperty({
487
+ name: processElem.name,
488
+ value: processElem.name,
489
+ icon: processElem.type,
490
+ noFurther: true,
491
+ children: processElem.variables.map(node => deduceTypeAnnotation(app, node, node.typeAnnotation, [process.name, processElem.name], [])),
492
+ });
493
+ scopeVariable.expanded = true;
494
+ scopeVariable.isProcess = true;
495
+ scopeVariable.icon = processElem.type;
496
+ processVariables.children.push(scopeVariable);
497
+ }
498
+
499
+ if (processElem.type === 'UserTask') {
500
+ const scopeVariable = new CompletionProperty({
501
+ name: processElem.name,
502
+ value: processElem.name,
503
+ icon: processElem.type,
504
+ noFurther: true,
505
+ children: processElem.constants.map(node => deduceTypeAnnotation(app, node, node.typeAnnotation, [process.name, processElem.name], [])),
506
+ });
507
+ scopeVariable.expanded = true;
508
+ scopeVariable.isProcess = true;
509
+ scopeVariable.icon = processElem.type;
510
+ processVariables.children.push(scopeVariable);
511
+ }
512
+ if(processElem.type === 'AutoTask') {
513
+ const scopeVariable = new CompletionProperty({
514
+ name: processElem.name,
515
+ value: processElem.name,
516
+ icon: processElem.type,
517
+ noFurther: true,
518
+ children: [
519
+ ...processElem.variables.map(node => deduceTypeAnnotation(app, node, node.typeAnnotation, [process.name, processElem.name], [])),
520
+ ...processElem.returns.map(node => deduceTypeAnnotation(app, node, node.typeAnnotation, [process.name, processElem.name], [])),
521
+ ]
522
+ });
523
+ scopeVariable.expanded = true;
524
+ scopeVariable.isProcess = true;
525
+ scopeVariable.icon = processElem.type;
526
+ processVariables.children.push(scopeVariable);
527
+ }
528
+ return processVariables;
529
+ }
530
+
531
+
532
+ export function getFlowAfterElements(el: ProcessElement) {
533
+ const process = el.process;
534
+ const processname = el.name;
535
+ const elems = process.elements;
536
+ const links = elems.filter(e => e.type === 'SequenceFlow' && e.sourceRef === processname);
537
+ return links;
538
+ }
539
+ export function getFlowBeforeElements(el: ProcessElement) {
540
+ const process = el.process;
541
+ const processname = el.name;
542
+ const elems = process.elements;
543
+ const links = elems.filter(e => e.type === 'SequenceFlow' && e.targetRef === processname);
544
+ return links;
545
+ }
546
+
547
+ export function isFromStartNode(el: ProcessElement) {
548
+ const process = el.process;
549
+ // const processname = el.name;
550
+ const elems = process.elements;
551
+ const set = new WeakSet();
552
+ const stack = [el];
553
+ while(stack.length){
554
+ let t = stack.shift();
555
+ let name = t.name;
556
+ if(t.type === 'StartNoneEvent') {
557
+ return true;
558
+ }
559
+ elems.forEach(e => {
560
+ if(e.type === 'SequenceFlow'
561
+ && e.targetRef === name
562
+ && !set.has(e)) {
563
+ set.add(e);
564
+ const sourcename = e.sourceRef;
565
+ const source = elems.find(e => e.name === sourcename);
566
+ stack.push(source);
567
+ }
568
+ });
569
+ }
570
+ return false;
571
+ }
572
+
573
+ export function findNodeAfterNodeInFlow(el: ProcessElement) {
574
+ const process = el.process;
575
+ const elems = process.elements;
576
+ const set = new WeakSet();
577
+ const nodeSet = new Set();
578
+ const stack = [el];
579
+ while(stack.length){
580
+ let t = stack.shift();
581
+ if(el !== t) {
582
+ nodeSet.add(t);
583
+ }
584
+ const name = t.name;
585
+ elems.forEach(e => {
586
+ if(e.type === 'SequenceFlow'
587
+ && e.sourceRef === name
588
+ && !set.has(e)) {
589
+ set.add(e);
590
+ const targetname = e.targetRef;
591
+ const source = elems.find(e => e.name === targetname);
592
+ stack.push(source);
593
+ }
594
+ });
595
+ }
596
+ return Array.from(nodeSet);
597
+ }
@@ -5,6 +5,7 @@ type wordScope = {
5
5
  Return?: string[]
6
6
  Variable?: string[]
7
7
  Constant?: string[]
8
+ Logic?: string[]
8
9
  }
9
10
 
10
11
  export function getLogicScopeWords(logic: Logic): wordScope {
@@ -13,6 +14,7 @@ export function getLogicScopeWords(logic: Logic): wordScope {
13
14
  Return: logic.returns.map((p) => p.name),
14
15
  Variable: logic.variables.map((p) => p.name),
15
16
  Constant: [],
17
+ Logic: []
16
18
  };
17
19
  return scope;
18
20
  }
@@ -23,6 +25,7 @@ export function getViewScopeWords(view: View): wordScope {
23
25
  Variable: view.variables.map((p) => p.name),
24
26
  Return: [],
25
27
  Constant: [],
28
+ Logic: view.logics.map(l => l.name),
26
29
  };
27
30
  return scope;
28
31
  }
@@ -34,6 +37,7 @@ export function getProcessScopeWords(process: Process): wordScope {
34
37
  Return: process.returns.map((p) => `${processName}.${p.name}`),
35
38
  Constant: process.constants.map((p) => `${processName}.${p.name}`),
36
39
  Variable: [],
40
+ Logic: []
37
41
  };
38
42
 
39
43
  process.elements.forEach((el) => {
@@ -57,6 +61,7 @@ export function combineScope(a: wordScope, b: wordScope) : wordScope {
57
61
  Return: [...a.Return, ...b.Return],
58
62
  Constant: [...a.Constant, ...b.Constant],
59
63
  Variable: [...a.Variable, ...b.Variable],
64
+ Logic: [...a.Logic, ...b.Logic],
60
65
  };
61
66
  return scope;
62
67
  }
@@ -12,6 +12,7 @@ import {
12
12
  getSelectNextCompletionData,
13
13
  } from './getMemberIdentifier';
14
14
  import naslServer from './naslServer';
15
+ import './extendBaseNode';
15
16
 
16
17
  const server: any = {
17
18
  ...naslServer,