@lcap/nasl 2.18.0-beta.7 → 2.20.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 (336) hide show
  1. package/out/automate/engine/index.js +3 -3
  2. package/out/automate/engine/index.js.map +1 -1
  3. package/out/bak/translator.js +85 -37
  4. package/out/bak/translator.js.map +1 -1
  5. package/out/common/BaseNode.d.ts +6 -10
  6. package/out/common/BaseNode.js +7 -53
  7. package/out/common/BaseNode.js.map +1 -1
  8. package/out/concepts/AnonymousFunction__.js.map +1 -1
  9. package/out/concepts/App__.d.ts +0 -10
  10. package/out/concepts/App__.js +0 -74
  11. package/out/concepts/App__.js.map +1 -1
  12. package/out/concepts/Assignee__.js.map +1 -1
  13. package/out/concepts/AssignmentLine__.d.ts +5 -5
  14. package/out/concepts/AssignmentLine__.js +6 -6
  15. package/out/concepts/AssignmentLine__.js.map +1 -1
  16. package/out/concepts/Assignment__.js +2 -1
  17. package/out/concepts/Assignment__.js.map +1 -1
  18. package/out/concepts/BatchAssignment__.d.ts +60 -60
  19. package/out/concepts/BatchAssignment__.js +41 -68
  20. package/out/concepts/BatchAssignment__.js.map +1 -1
  21. package/out/concepts/BindAttribute__.d.ts +0 -19
  22. package/out/concepts/BindAttribute__.js +2 -39
  23. package/out/concepts/BindAttribute__.js.map +1 -1
  24. package/out/concepts/BindEvent__.js.map +1 -1
  25. package/out/concepts/BindStyle__.d.ts +2 -2
  26. package/out/concepts/BindStyle__.js +3 -3
  27. package/out/concepts/BindStyle__.js.map +1 -1
  28. package/out/concepts/BooleanLiteral__.js +8 -0
  29. package/out/concepts/BooleanLiteral__.js.map +1 -1
  30. package/out/concepts/CallFunction__.js +25 -58
  31. package/out/concepts/CallFunction__.js.map +1 -1
  32. package/out/concepts/CallInterface__.d.ts +0 -7
  33. package/out/concepts/CallInterface__.js +7 -53
  34. package/out/concepts/CallInterface__.js.map +1 -1
  35. package/out/concepts/CallLogic__.d.ts +1 -2
  36. package/out/concepts/CallLogic__.js +25 -89
  37. package/out/concepts/CallLogic__.js.map +1 -1
  38. package/out/concepts/CallQueryComponent__.js +1 -13
  39. package/out/concepts/CallQueryComponent__.js.map +1 -1
  40. package/out/concepts/CompletionProperty__.js +0 -3
  41. package/out/concepts/CompletionProperty__.js.map +1 -1
  42. package/out/concepts/ConfigGroup__.js.map +1 -1
  43. package/out/concepts/ConfigProperty__.js.map +1 -1
  44. package/out/concepts/Configuration__.js.map +1 -1
  45. package/out/concepts/DataSource__.d.ts +0 -6
  46. package/out/concepts/DataSource__.js +0 -41
  47. package/out/concepts/DataSource__.js.map +1 -1
  48. package/out/concepts/Destination__.d.ts +2 -11
  49. package/out/concepts/Destination__.js +48 -148
  50. package/out/concepts/Destination__.js.map +1 -1
  51. package/out/concepts/EntityProperty__.d.ts +8 -21
  52. package/out/concepts/EntityProperty__.js +23 -109
  53. package/out/concepts/EntityProperty__.js.map +1 -1
  54. package/out/concepts/Entity__.d.ts +0 -32
  55. package/out/concepts/Entity__.js +2 -117
  56. package/out/concepts/Entity__.js.map +1 -1
  57. package/out/concepts/Enum__.js +4 -0
  58. package/out/concepts/Enum__.js.map +1 -1
  59. package/out/concepts/Event__.js.map +1 -1
  60. package/out/concepts/ForEachStatement__.d.ts +4 -0
  61. package/out/concepts/ForEachStatement__.js +8 -4
  62. package/out/concepts/ForEachStatement__.js.map +1 -1
  63. package/out/concepts/Function__.js.map +1 -1
  64. package/out/concepts/Identifier__.js +4 -16
  65. package/out/concepts/Identifier__.js.map +1 -1
  66. package/out/concepts/IfStatement__.d.ts +0 -8
  67. package/out/concepts/IfStatement__.js +0 -22
  68. package/out/concepts/IfStatement__.js.map +1 -1
  69. package/out/concepts/InterfaceParam__.js.map +1 -1
  70. package/out/concepts/Interface__.js.map +1 -1
  71. package/out/concepts/LogicItem__.d.ts +1 -1
  72. package/out/concepts/LogicItem__.js.map +1 -1
  73. package/out/concepts/Logic__.d.ts +1 -6
  74. package/out/concepts/Logic__.js +50 -150
  75. package/out/concepts/Logic__.js.map +1 -1
  76. package/out/concepts/MatchCase__.d.ts +1 -1
  77. package/out/concepts/MatchCase__.js +8 -15
  78. package/out/concepts/MatchCase__.js.map +1 -1
  79. package/out/concepts/Match__.d.ts +19 -21
  80. package/out/concepts/Match__.js +25 -112
  81. package/out/concepts/Match__.js.map +1 -1
  82. package/out/concepts/MemberExpression__.d.ts +1 -4
  83. package/out/concepts/MemberExpression__.js +15 -30
  84. package/out/concepts/MemberExpression__.js.map +1 -1
  85. package/out/concepts/Module__.js.map +1 -1
  86. package/out/concepts/Namespace__.js.map +1 -1
  87. package/out/concepts/NumericLiteral__.js +1 -1
  88. package/out/concepts/NumericLiteral__.js.map +1 -1
  89. package/out/concepts/OqlQueryComponent__.d.ts +3 -7
  90. package/out/concepts/OqlQueryComponent__.js +95 -56
  91. package/out/concepts/OqlQueryComponent__.js.map +1 -1
  92. package/out/concepts/Param__.d.ts +1 -1
  93. package/out/concepts/Param__.js +4 -40
  94. package/out/concepts/Param__.js.map +1 -1
  95. package/out/concepts/ProcessComponent__.js.map +1 -1
  96. package/out/concepts/ProcessElement__.js.map +1 -1
  97. package/out/concepts/Process__.js.map +1 -1
  98. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  99. package/out/concepts/QueryOrderByExpression__.d.ts +3 -3
  100. package/out/concepts/QueryOrderByExpression__.js +3 -3
  101. package/out/concepts/QueryOrderByExpression__.js.map +1 -1
  102. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  103. package/out/concepts/Return__.js +2 -38
  104. package/out/concepts/Return__.js.map +1 -1
  105. package/out/concepts/SelectMembers__.d.ts +1 -1
  106. package/out/concepts/SelectMembers__.js +2 -2
  107. package/out/concepts/SelectMembers__.js.map +1 -1
  108. package/out/concepts/SqlQueryComponent__.d.ts +4 -2
  109. package/out/concepts/SqlQueryComponent__.js +88 -9
  110. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  111. package/out/concepts/StringLiteral__.js +7 -0
  112. package/out/concepts/StringLiteral__.js.map +1 -1
  113. package/out/concepts/StructureProperty__.js.map +1 -1
  114. package/out/concepts/Structure__.js.map +1 -1
  115. package/out/concepts/TypeAnnotation__.d.ts +0 -1
  116. package/out/concepts/TypeAnnotation__.js +12 -25
  117. package/out/concepts/TypeAnnotation__.js.map +1 -1
  118. package/out/concepts/TypeParam__.d.ts +0 -1
  119. package/out/concepts/TypeParam__.js +0 -2
  120. package/out/concepts/TypeParam__.js.map +1 -1
  121. package/out/concepts/UnaryExpression__.js +9 -6
  122. package/out/concepts/UnaryExpression__.js.map +1 -1
  123. package/out/concepts/ValidationRule__.js +23 -88
  124. package/out/concepts/ValidationRule__.js.map +1 -1
  125. package/out/concepts/Variable__.js +2 -38
  126. package/out/concepts/Variable__.js.map +1 -1
  127. package/out/concepts/ViewComponent__.js.map +1 -1
  128. package/out/concepts/ViewElement__.d.ts +29 -30
  129. package/out/concepts/ViewElement__.js +52 -118
  130. package/out/concepts/ViewElement__.js.map +1 -1
  131. package/out/concepts/View__.d.ts +3 -4
  132. package/out/concepts/View__.js +83 -97
  133. package/out/concepts/View__.js.map +1 -1
  134. package/out/concepts/WhileStatement__.js +1 -1
  135. package/out/concepts/WhileStatement__.js.map +1 -1
  136. package/out/concepts/basics/stdlib/nasl.browser.js +0 -50
  137. package/out/concepts/basics/stdlib/nasl.browser.js.map +1 -1
  138. package/out/concepts/basics/stdlib/nasl.ui.js +4 -36
  139. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  140. package/out/concepts/basics/stdlib/nasl.util.js +43 -63
  141. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  142. package/out/concepts/index__.d.ts +0 -2
  143. package/out/concepts/index__.js +0 -2
  144. package/out/concepts/index__.js.map +1 -1
  145. package/out/generator/genBundleFiles.d.ts +2 -5
  146. package/out/generator/genBundleFiles.js +155 -108
  147. package/out/generator/genBundleFiles.js.map +1 -1
  148. package/out/generator/genMetaData.d.ts +10 -1
  149. package/out/generator/genMetaData.js +50 -189
  150. package/out/generator/genMetaData.js.map +1 -1
  151. package/out/generator/index.d.ts +0 -1
  152. package/out/generator/index.js +0 -1
  153. package/out/generator/index.js.map +1 -1
  154. package/out/index.d.ts +2 -3
  155. package/out/index.js +1 -5
  156. package/out/index.js.map +1 -1
  157. package/out/server/entity2LogicNamespace.js +11 -11
  158. package/out/server/entity2LogicNamespace.js.map +1 -1
  159. package/out/server/extendBaseNode.js +18 -4
  160. package/out/server/extendBaseNode.js.map +1 -1
  161. package/out/server/formatTsUtils.d.ts +2 -1
  162. package/out/server/formatTsUtils.js +64 -40
  163. package/out/server/formatTsUtils.js.map +1 -1
  164. package/out/server/getLogics.js +6 -13
  165. package/out/server/getLogics.js.map +1 -1
  166. package/out/server/getMemberIdentifier.js +7 -7
  167. package/out/server/getMemberIdentifier.js.map +1 -1
  168. package/out/server/getProcesses.d.ts +1 -1
  169. package/out/server/getProcesses.js +1 -1
  170. package/out/server/getProcesses.js.map +1 -1
  171. package/out/server/index.d.ts +1 -0
  172. package/out/server/index.js +27 -2
  173. package/out/server/index.js.map +1 -1
  174. package/out/server/naslServer.d.ts +7 -47
  175. package/out/server/naslServer.js +399 -604
  176. package/out/server/naslServer.js.map +1 -1
  177. package/out/server/naslStdlibMap.js +28 -30
  178. package/out/server/naslStdlibMap.js.map +1 -1
  179. package/out/server/translator.js +11 -59
  180. package/out/server/translator.js.map +1 -1
  181. package/out/service/storage/init.js +3 -33
  182. package/out/service/storage/init.js.map +1 -1
  183. package/out/templator/genCreateBlock.js +4 -6
  184. package/out/templator/genCreateBlock.js.map +1 -1
  185. package/out/templator/genCurdEditMultipleKeyBlock.js +4 -7
  186. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  187. package/out/templator/genCurdMultipleKeyBlock.js +5 -7
  188. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  189. package/out/templator/genEnumSelectBlock.js +2 -5
  190. package/out/templator/genEnumSelectBlock.js.map +1 -1
  191. package/out/templator/genGridViewBlock.js +2 -2
  192. package/out/templator/genGridViewBlock.js.map +1 -1
  193. package/out/templator/genListViewBlock.js +2 -2
  194. package/out/templator/genListViewBlock.js.map +1 -1
  195. package/out/templator/genQueryComponent.d.ts +2 -2
  196. package/out/templator/genQueryComponent.js +1 -4
  197. package/out/templator/genQueryComponent.js.map +1 -1
  198. package/out/templator/genTableBlock.js +2 -2
  199. package/out/templator/genTableBlock.js.map +1 -1
  200. package/out/templator/genUpdateBlock.js +3 -4
  201. package/out/templator/genUpdateBlock.js.map +1 -1
  202. package/out/templator/utils.js +1 -1
  203. package/out/templator/utils.js.map +1 -1
  204. package/out/test/integration/node-nasl-server.js +38 -10
  205. package/out/test/integration/node-nasl-server.js.map +1 -1
  206. package/out/translator/index.d.ts +0 -1
  207. package/out/translator/index.js +1 -1
  208. package/out/translator/index.js.map +1 -1
  209. package/out/utils/index.d.ts +0 -1
  210. package/out/utils/index.js +1 -38
  211. package/out/utils/index.js.map +1 -1
  212. package/out/utils/string.d.ts +2 -15
  213. package/out/utils/string.js +3 -18
  214. package/out/utils/string.js.map +1 -1
  215. package/package.json +2 -2
  216. package/sandbox/stdlib/nasl.auth.ts +1 -1
  217. package/sandbox/stdlib/nasl.core.ts +1 -0
  218. package/sandbox/stdlib/nasl.logging.ts +4 -4
  219. package/sandbox/stdlib/nasl.util.ts +8 -4
  220. package/src/automate/engine/index.js +4 -4
  221. package/src/automate/engine/uniqueName.js +3 -3
  222. package/src/automate/template/myProcess.js +1 -1
  223. package/src/automate/upgrader/2.20.js +41 -0
  224. package/src/bak/translator.js +4 -1
  225. package/src/concepts/AnonymousFunction__.ts +48 -2
  226. package/src/concepts/App__.ts +288 -615
  227. package/src/concepts/BatchAssignment__.ts +45 -1
  228. package/src/concepts/BindAttribute__.ts +18 -25
  229. package/src/concepts/BindDirective__.ts +7 -0
  230. package/src/concepts/BindEvent__.ts +7 -0
  231. package/src/concepts/BindStyle__.ts +7 -0
  232. package/src/concepts/CallFunction__.ts +34 -45
  233. package/src/concepts/CallInterface__.ts +2 -1
  234. package/src/concepts/CallLogic__.ts +61 -44
  235. package/src/concepts/CallQueryComponent__.ts +4 -1
  236. package/src/concepts/Constant__.ts +7 -0
  237. package/src/concepts/DataSource__.ts +57 -5
  238. package/src/concepts/Destination__.ts +8 -21
  239. package/src/concepts/Frontend__.ts +937 -0
  240. package/src/concepts/Identifier__.ts +18 -16
  241. package/src/concepts/LogicItem__.ts +8 -1
  242. package/src/concepts/Logic__.ts +128 -142
  243. package/src/concepts/Match__.ts +13 -29
  244. package/src/concepts/NewComposite__.ts +1357 -0
  245. package/src/concepts/NewList__.ts +440 -0
  246. package/src/concepts/NewMap__.ts +666 -0
  247. package/src/concepts/New__.ts +73 -0
  248. package/src/concepts/Param__.ts +245 -199
  249. package/src/concepts/ProcessElement__.ts +43 -36
  250. package/src/concepts/ProcessOutcomes__.ts +90 -0
  251. package/src/concepts/Process__.ts +1 -23
  252. package/src/concepts/Return__.ts +11 -1
  253. package/src/concepts/SelectMembers__.ts +3 -3
  254. package/src/concepts/Transactional__.ts +7 -0
  255. package/src/concepts/TypeAnnotation__.ts +54 -49
  256. package/src/concepts/ValidationRule__.ts +19 -1
  257. package/src/concepts/Variable__.ts +12 -6
  258. package/src/concepts/ViewElement__.ts +51 -7
  259. package/src/concepts/View__.ts +21 -25
  260. package/src/concepts/basics/stdlib/nasl.auth.ts +1 -1
  261. package/src/concepts/basics/stdlib/nasl.logging.ts +5 -0
  262. package/src/concepts/basics/stdlib/nasl.ui.ts +2 -0
  263. package/src/concepts/basics/stdlib/nasl.util.ts +153 -19
  264. package/src/concepts/index__.ts +7 -0
  265. package/src/enums/KEYWORDS.ts +9 -0
  266. package/src/generator/genBundleFiles.ts +43 -29
  267. package/src/generator/genMetaData.ts +5 -10
  268. package/src/generator/genReleaseBody.ts +77 -41
  269. package/src/generator/index.ts +1 -0
  270. package/src/generator/permission.ts +261 -0
  271. package/src/index.ts +1 -1
  272. package/src/server/entity2LogicNamespace.ts +90 -10
  273. package/src/server/extendBaseNode.ts +29 -3
  274. package/src/server/formatTsUtils.ts +6 -0
  275. package/src/server/getLogics.ts +13 -1
  276. package/src/server/getMemberIdentifier.ts +5 -5
  277. package/src/server/naslServer.ts +235 -58
  278. package/src/server/process2LogicNamespace.ts +8 -0
  279. package/src/server/translator.ts +33 -1
  280. package/src/service/creator/add.configs.js +4 -0
  281. package/src/service/datasource/api.js +11 -0
  282. package/src/service/datasource/index.js +6 -0
  283. package/src/service/storage/init.ts +12 -0
  284. package/src/service/video/VideoTranscribe.js +1 -0
  285. package/src/templator/genEditTableBlock.ts +8 -16
  286. package/src/templator/genGetBlock.ts +18 -19
  287. package/src/templator/genGridViewBlock.ts +18 -18
  288. package/src/templator/genListViewBlock.ts +8 -11
  289. package/src/templator/genTableBlock.ts +6 -10
  290. package/ts-worker/lib/tsserver.js +8 -1
  291. package/out/automate/engine/2.14-components.d.ts +0 -1115
  292. package/out/automate/engine/2.14-components.js +0 -1087
  293. package/out/automate/engine/2.14-components.js.map +0 -1
  294. package/out/concepts/ExternalDestination__.d.ts +0 -73
  295. package/out/concepts/ExternalDestination__.js +0 -264
  296. package/out/concepts/ExternalDestination__.js.map +0 -1
  297. package/out/concepts/MatchExpression__.d.ts +0 -97
  298. package/out/concepts/MatchExpression__.js +0 -281
  299. package/out/concepts/MatchExpression__.js.map +0 -1
  300. package/out/concepts/StringInterpolation__.d.ts +0 -113
  301. package/out/concepts/StringInterpolation__.js +0 -227
  302. package/out/concepts/StringInterpolation__.js.map +0 -1
  303. package/out/generator/genReleaseBody.d.ts +0 -41
  304. package/out/generator/genReleaseBody.js +0 -349
  305. package/out/generator/genReleaseBody.js.map +0 -1
  306. package/out/service/defaultErrorMessage.json +0 -97
  307. package/out/service/logic/api.d.ts +0 -9
  308. package/out/service/logic/api.js +0 -11
  309. package/out/service/logic/api.js.map +0 -1
  310. package/out/service/logic/index.d.ts +0 -2
  311. package/out/service/logic/index.js +0 -10
  312. package/out/service/logic/index.js.map +0 -1
  313. package/sandbox/stdlib/dist/nasl.logging.js +0 -0
  314. package/src/automate/engine/dist/index.dev.js +0 -517
  315. package/src/common/dist/BaseNode.js +0 -1101
  316. package/src/concepts/basics/stdlib/dist/nasl.util.js +0 -1503
  317. package/src/concepts/basics/stdlib/dist/reference2TypeAnnotationList.js +0 -24
  318. package/src/concepts/dist/Anchor__.js +0 -179
  319. package/src/concepts/dist/Assignment__.js +0 -301
  320. package/src/concepts/dist/CallFunction__.js +0 -513
  321. package/src/concepts/dist/CallInterface__.js +0 -533
  322. package/src/concepts/dist/CallLogic__.js +0 -892
  323. package/src/concepts/dist/ForEachStatement__.js +0 -426
  324. package/src/concepts/dist/MatchCase__.js +0 -587
  325. package/src/concepts/dist/Match__.js +0 -631
  326. package/src/concepts/dist/MemberExpression__.js +0 -348
  327. package/src/concepts/dist/Param__.js +0 -538
  328. package/src/concepts/dist/Return__.js +0 -494
  329. package/src/concepts/dist/Variable__.js +0 -537
  330. package/src/concepts/dist/ViewElement__.js +0 -1680
  331. package/src/generator/dist/genBundleFiles.js +0 -261
  332. package/src/generator/dist/genMetaData.js +0 -249
  333. package/src/server/dist/formatTsUtils.js +0 -683
  334. package/src/server/dist/naslServer.js +0 -3474
  335. package/src/service/storage/dist/init.js +0 -572
  336. package/ts-worker/dist/webpack.config.dev.js +0 -108
@@ -731,7 +731,7 @@ export class BatchAssignment extends LogicItem {
731
731
  }
732
732
 
733
733
  deleteAssignmentLine(assignmentLine: AssignmentLine) {
734
- const newLine = this.assignmentLines.filter((line) => line === assignmentLine);
734
+ const newLine = this.assignmentLines.filter((line) => line !== assignmentLine);
735
735
  this.update({
736
736
  assignmentLines: newLine,
737
737
  });
@@ -769,6 +769,50 @@ export class BatchAssignment extends LogicItem {
769
769
  }
770
770
  }
771
771
 
772
+ changeMembers(oldNode:any, members: MemberExpression[], keepMembers: any, expression: LogicItem) {
773
+ this.app.emit('collect:start', {
774
+ actionMsg: '批量赋值修改变量',
775
+ });
776
+ const selectMember = oldNode.parentNode;
777
+ const autoConnectionIndex = this.rights.findIndex((right) => right === selectMember);
778
+ const newSelectMember = Object.assign({}, selectMember, { expression, members });
779
+ let newLines: any = [];
780
+ // 修改连线
781
+ if (selectMember.parentKey === 'left') {
782
+ members.forEach((item: any, index: any) => {
783
+ if (keepMembers.has(item.completeName)) {
784
+ const lines = this.findlines(item, selectMember);
785
+ lines.forEach((line) => {
786
+ const newLine = Object.assign({}, line, { leftIndex: [line.leftIndex[0], index] });
787
+ newLines.push(newLine);
788
+ });
789
+ }
790
+ });
791
+ this.update({
792
+ assignmentLines: newLines,
793
+ left: newSelectMember,
794
+ });
795
+ } else {
796
+ const splitIndex = this.rights.findIndex((right) => selectMember === right);
797
+ newLines = this.assignmentLines.filter(({ rightIndex }) => rightIndex[0] !== splitIndex);
798
+ members.forEach((item, index) => {
799
+ if (keepMembers.has(item.completeName)) {
800
+ const lines = this.findlines(item, selectMember);
801
+ lines.forEach((line) => {
802
+ const newLine = Object.assign({}, line, { rightIndex: [line.rightIndex[0], index] });
803
+ newLines.push(newLine);
804
+ });
805
+ }
806
+ });
807
+ this.update({
808
+ assignmentLines: newLines,
809
+ rights: [...this.rights.slice(0, splitIndex), newSelectMember, ...this.rights.slice(splitIndex + 1, this.rights.length)],
810
+ });
811
+ }
812
+ this.autoConnection && this.batchAutoConnection(autoConnectionIndex);
813
+ this.app.emit('collect:end');
814
+ }
815
+
772
816
  findMember(arrIndex: Array<number>, place: string) {
773
817
  const [firstIndex, secondIndex] = [arrIndex[0], arrIndex[1]];
774
818
  if (place === 'left') {
@@ -22,6 +22,7 @@ import ProcessElement from './ProcessElement__';
22
22
  import View from './View__';
23
23
  import Module from './Module__';
24
24
  import App from './App__';
25
+ import Frontend from './Frontend__';
25
26
  import Process from './Process__';
26
27
 
27
28
  /**
@@ -125,6 +126,12 @@ export class BindAttribute extends BaseNode {
125
126
  get app() {
126
127
  return this.getAncestor('App') as App;
127
128
  }
129
+ /**
130
+ * 祖先 Frontend
131
+ */
132
+ get frontend() {
133
+ return this.getAncestor('Frontend') as Frontend;
134
+ }
128
135
  /**
129
136
  * 祖先 ProcessElement
130
137
  */
@@ -246,7 +253,7 @@ export class BindAttribute extends BaseNode {
246
253
  });
247
254
  }
248
255
 
249
- getValidationRuleExistingNames(excludedList: Array<ValidationRule> = []) {
256
+ getValidationRuleExistingNames(excludedList: Array<ValidationRule> = []) {
250
257
  const excludedSet = new Set(excludedList);
251
258
  return ((this.rules as ValidationRule[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
252
259
  }
@@ -387,8 +394,6 @@ export class BindAttribute extends BaseNode {
387
394
  return node;
388
395
  }
389
396
 
390
-
391
-
392
397
  /**
393
398
  * 插入逻辑项
394
399
  * @internal
@@ -421,8 +426,6 @@ export class BindAttribute extends BaseNode {
421
426
  return logicItem;
422
427
  }
423
428
 
424
-
425
-
426
429
  /**
427
430
  * 插入逻辑项
428
431
  * @param logicItemOptions 逻辑项参数
@@ -445,8 +448,6 @@ export class BindAttribute extends BaseNode {
445
448
  return node;
446
449
  }
447
450
 
448
-
449
-
450
451
  /**
451
452
  * 添加逻辑项
452
453
  * @internal
@@ -466,8 +467,6 @@ export class BindAttribute extends BaseNode {
466
467
  return this._insertItemInPlaygroundAt(options as any, index);
467
468
  }
468
469
 
469
-
470
-
471
470
  /**
472
471
  * 添加逻辑项
473
472
  * @param logicItemOptions 逻辑项参数
@@ -491,9 +490,6 @@ export class BindAttribute extends BaseNode {
491
490
  return node;
492
491
  }
493
492
 
494
-
495
-
496
-
497
493
  /**
498
494
  * 删除逻辑项
499
495
  * @param name 逻辑项名称
@@ -519,8 +515,6 @@ export class BindAttribute extends BaseNode {
519
515
  return expression.delete();
520
516
  }
521
517
 
522
-
523
-
524
518
  /**
525
519
  * 删除跳转页面
526
520
  * @param name 跳转页面名称
@@ -546,8 +540,6 @@ export class BindAttribute extends BaseNode {
546
540
  return destination.delete();
547
541
  }
548
542
 
549
-
550
-
551
543
  /**
552
544
  * 删除外部链接
553
545
  * @param name 外部链接名称
@@ -573,8 +565,6 @@ export class BindAttribute extends BaseNode {
573
565
  return externalDestination.delete();
574
566
  }
575
567
 
576
-
577
-
578
568
  /**
579
569
  * 删除验证规则
580
570
  * @param name 验证规则名称
@@ -600,8 +590,6 @@ export class BindAttribute extends BaseNode {
600
590
  return validationRule.delete();
601
591
  }
602
592
 
603
-
604
-
605
593
  /**
606
594
  * 删除经办人
607
595
  * @param name 经办人名称
@@ -627,8 +615,6 @@ export class BindAttribute extends BaseNode {
627
615
  return assignee.delete();
628
616
  }
629
617
 
630
-
631
-
632
618
  /**
633
619
  * 删除逻辑项
634
620
  * @param logicItem 已有的逻辑项实例
@@ -636,7 +622,7 @@ export class BindAttribute extends BaseNode {
636
622
  removeItemInPlayground(logicItem: LogicItem): void;
637
623
 
638
624
  removeItemInPlayground(options: LogicItem) {
639
- let logicItem: LogicItem = options;
625
+ const logicItem: LogicItem = options;
640
626
  return logicItem.delete();
641
627
  }
642
628
 
@@ -723,13 +709,20 @@ export class BindAttribute extends BaseNode {
723
709
  str += 'download="true" ';
724
710
  name = 'href';
725
711
  }
712
+ // 文本默认要经过toString转换
713
+ if (options.finalCode !== false && name === 'text' && !this.sync && this.type === 'dynamic') {
714
+ const expTypeAnnotation = (this.expression as any)?.typeAnnotation || this.expression?.__TypeAnnotation;
715
+ value = `$utils['ToString'](${value}, '${expTypeAnnotation?.sortedTypeKey}')`;
716
+ }
726
717
  if (this.type === 'string') {
727
718
  str += `${name}="${value}"`;
728
719
  } else {
729
720
  str += `:${name}${this.sync ? '.sync' : ''}="${value}"`;
730
721
  }
731
- } else if(this.type === 'string' && this.value === '')
732
- str = `${name}="${this.value}"`;
722
+ } else if (this.type === 'string' && this.value === '')
723
+ if (!['destination', 'externalDestination'].includes(this.name)) {
724
+ str = `${name}="${this.value}"`;
725
+ }
733
726
 
734
727
  return str;
735
728
  }
@@ -16,6 +16,7 @@ import ViewElement from './ViewElement__';
16
16
  import View from './View__';
17
17
  import Module from './Module__';
18
18
  import App from './App__';
19
+ import Frontend from './Frontend__';
19
20
 
20
21
  /**
21
22
  * 元素指令
@@ -100,6 +101,12 @@ export class BindDirective extends BaseNode {
100
101
  get app() {
101
102
  return this.getAncestor('App') as App;
102
103
  }
104
+ /**
105
+ * 祖先 Frontend
106
+ */
107
+ get frontend() {
108
+ return this.getAncestor('Frontend') as Frontend;
109
+ }
103
110
 
104
111
  /**
105
112
  * @param source 需要合并的部分参数
@@ -25,6 +25,7 @@ import ViewElement from './ViewElement__';
25
25
  import View from './View__';
26
26
  import Module from './Module__';
27
27
  import App from './App__';
28
+ import Frontend from './Frontend__';
28
29
 
29
30
  /**
30
31
  * 元素绑定事件
@@ -91,6 +92,12 @@ export class BindEvent extends BaseNode {
91
92
  get app() {
92
93
  return this.getAncestor('App') as App;
93
94
  }
95
+ /**
96
+ * 祖先 Frontend
97
+ */
98
+ get frontend() {
99
+ return this.getAncestor('Frontend') as Frontend;
100
+ }
94
101
 
95
102
  /**
96
103
  * @param source 需要合并的部分参数
@@ -16,6 +16,7 @@ import ViewElement from './ViewElement__';
16
16
  import View from './View__';
17
17
  import Module from './Module__';
18
18
  import App from './App__';
19
+ import Frontend from './Frontend__';
19
20
 
20
21
  /**
21
22
  * 元素绑定样式
@@ -70,6 +71,12 @@ export class BindStyle extends BaseNode {
70
71
  get app() {
71
72
  return this.getAncestor('App') as App;
72
73
  }
74
+ /**
75
+ * 祖先 Frontend
76
+ */
77
+ get frontend() {
78
+ return this.getAncestor('Frontend') as Frontend;
79
+ }
73
80
 
74
81
  /**
75
82
  * @param source 需要合并的部分参数
@@ -66,8 +66,6 @@ export class CallFunction extends LogicItem {
66
66
  @property('Argument')
67
67
  arguments: Array<Argument> = [];
68
68
 
69
-
70
-
71
69
  /**
72
70
  * @param source 需要合并的部分参数
73
71
  */
@@ -81,13 +79,6 @@ export class CallFunction extends LogicItem {
81
79
  return super.from(source, parentNode, parentKey) as CallFunction;
82
80
  }
83
81
 
84
-
85
-
86
-
87
-
88
-
89
-
90
-
91
82
  /**
92
83
  * 插入类型标注
93
84
  * @internal
@@ -120,8 +111,6 @@ export class CallFunction extends LogicItem {
120
111
  return typeAnnotation;
121
112
  }
122
113
 
123
-
124
-
125
114
  /**
126
115
  * 插入类型标注
127
116
  * @param typeAnnotationOptions 类型标注参数
@@ -144,8 +133,6 @@ export class CallFunction extends LogicItem {
144
133
  return node;
145
134
  }
146
135
 
147
-
148
-
149
136
  /**
150
137
  * 添加类型标注
151
138
  * @internal
@@ -165,8 +152,6 @@ export class CallFunction extends LogicItem {
165
152
  return this._insertTypeAnnotationAt(options as any, index);
166
153
  }
167
154
 
168
-
169
-
170
155
  /**
171
156
  * 添加类型标注
172
157
  * @param typeAnnotationOptions 类型标注参数
@@ -190,11 +175,6 @@ export class CallFunction extends LogicItem {
190
175
  return node;
191
176
  }
192
177
 
193
-
194
-
195
-
196
-
197
-
198
178
  /**
199
179
  * 插入实际参数
200
180
  * @internal
@@ -227,8 +207,6 @@ export class CallFunction extends LogicItem {
227
207
  return argument;
228
208
  }
229
209
 
230
-
231
-
232
210
  /**
233
211
  * 插入实际参数
234
212
  * @param argumentOptions 实际参数参数
@@ -251,8 +229,6 @@ export class CallFunction extends LogicItem {
251
229
  return node;
252
230
  }
253
231
 
254
-
255
-
256
232
  /**
257
233
  * 添加实际参数
258
234
  * @internal
@@ -272,8 +248,6 @@ export class CallFunction extends LogicItem {
272
248
  return this._insertArgumentAt(options as any, index);
273
249
  }
274
250
 
275
-
276
-
277
251
  /**
278
252
  * 添加实际参数
279
253
  * @param argumentOptions 实际参数参数
@@ -297,9 +271,6 @@ export class CallFunction extends LogicItem {
297
271
  return node;
298
272
  }
299
273
 
300
-
301
-
302
-
303
274
  /**
304
275
  * 删除类型标注
305
276
  * @param typeAnnotation 已有的类型标注实例
@@ -307,7 +278,7 @@ export class CallFunction extends LogicItem {
307
278
  removeTypeAnnotation(typeAnnotation: TypeAnnotation): void;
308
279
 
309
280
  removeTypeAnnotation(options: TypeAnnotation) {
310
- let typeAnnotation: TypeAnnotation = options;
281
+ const typeAnnotation: TypeAnnotation = options;
311
282
  return typeAnnotation.delete();
312
283
  }
313
284
 
@@ -334,8 +305,6 @@ export class CallFunction extends LogicItem {
334
305
  return params;
335
306
  }
336
307
 
337
-
338
-
339
308
  /**
340
309
  * 删除实际参数
341
310
  * @param argument 已有的实际参数实例
@@ -343,7 +312,7 @@ export class CallFunction extends LogicItem {
343
312
  removeArgument(argument: Argument): void;
344
313
 
345
314
  removeArgument(options: Argument) {
346
- let argument: Argument = options;
315
+ const argument: Argument = options;
347
316
  return argument.delete();
348
317
  }
349
318
 
@@ -423,23 +392,43 @@ export class CallFunction extends LogicItem {
423
392
  toJS(state?: TranslatorState): string {
424
393
  let code = `this.$utils['${this.calleeName}']`;
425
394
  code += '(';
426
- this.arguments?.forEach((arg, index) => {
427
- code += arg?.toJS(shiftState(state, code));
428
- if (index !== this.arguments?.length - 1)
429
- code += ', ';
430
- });
431
- if (this.typeArguments && this.typeArguments.length) {
432
- if (this.arguments?.length)
433
- code += ', ';
434
- this.typeArguments?.forEach((arg, index) => {
395
+ if (Array.isArray(this.arguments) && this.arguments.length) {
396
+ this.arguments.forEach((arg, index) => {
435
397
  code += arg?.toJS(shiftState(state, code));
436
- if (index !== this.typeArguments?.length - 1)
398
+ if (index !== this.arguments?.length - 1)
437
399
  code += ', ';
438
400
  });
439
401
  }
402
+ const isStringConvert = ['ToString', 'FromString'].includes(this.calleeName);
403
+ let argTypeAnnotation;
404
+ if (isStringConvert) {
405
+ if (this.calleeName === 'ToString') {
406
+ const arg = this.arguments[0];
407
+ argTypeAnnotation = (arg as any).typeAnnotation || arg.__TypeAnnotation;
408
+ } else if (this.calleeName === 'FromString') {
409
+ argTypeAnnotation = this.typeArguments?.[0];
410
+ }
411
+ }
412
+ if (argTypeAnnotation) {
413
+ code += `, '${argTypeAnnotation?.sortedTypeKey}'`;
414
+ } else {
415
+ if (Array.isArray(this.typeArguments) && this.typeArguments.length) {
416
+ if (this.arguments?.length)
417
+ code += ', ';
418
+ this.typeArguments?.forEach((arg, index) => {
419
+ code += arg?.toJS(shiftState(state, code));
420
+ if (index !== this.typeArguments?.length - 1)
421
+ code += ', ';
422
+ });
423
+ }
424
+ }
425
+
440
426
  code += ')';
441
427
  const typeAnnotation = (this as any).typeAnnotation || this.__TypeAnnotation;
442
- const needGenInitFromSchema = typeAnnotation && !['primitive', 'union'].includes(typeAnnotation.typeKind);
428
+ const needGenInitFromSchema = typeAnnotation && (
429
+ !['primitive', 'union'].includes(typeAnnotation.typeKind)
430
+ || typeAnnotation.typeName === 'DateTime'
431
+ );
443
432
  if (needGenInitFromSchema) {
444
433
  code = `this.$genInitFromSchema('${typeAnnotation?.sortedTypeKey}', ${code})`;
445
434
  }
@@ -550,7 +539,7 @@ export class CallFunction extends LogicItem {
550
539
  toEmbeddedTS(state?: TranslatorState): string {
551
540
  let code = '';
552
541
  const calleeKey = this.calleeKey;
553
- if (calleeKey === 'nasl.util.Convert') {
542
+ if (['nasl.util.Convert', 'nasl.util.FromString'].includes(calleeKey)) {
554
543
  // nasl.util.Convert(variable1)<nasl.core.String>();
555
544
  // 单独处理
556
545
 
@@ -368,7 +368,8 @@ export class CallInterface extends LogicItem {
368
368
  && this.parentNode.concept !== 'SelectMembers'
369
369
  && this.parentNode.concept !== 'BinaryExpression'
370
370
  && this.parentNode.concept !== 'MemberExpression'
371
- && this.parentNode.concept !== 'StringInterpolation') {
371
+ && this.parentNode.concept !== 'StringInterpolation'
372
+ && !['NewMap', 'NewList'].includes(this.parentNode.concept)) {
372
373
  code += ';';
373
374
  }
374
375
  code += '\n';