@lcap/nasl 4.5.0-beta.1 → 4.5.0-beta.3

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 (286) hide show
  1. package/out/automate/upgrader/2.12.d.ts.map +1 -1
  2. package/out/automate/upgrader/2.12.js +1 -0
  3. package/out/automate/upgrader/2.12.js.map +1 -1
  4. package/out/automate/upgrader/2.14.d.ts.map +1 -1
  5. package/out/automate/upgrader/2.14.js +1 -0
  6. package/out/automate/upgrader/2.14.js.map +1 -1
  7. package/out/automate/upgrader/2.16.d.ts.map +1 -1
  8. package/out/automate/upgrader/2.16.js +1 -0
  9. package/out/automate/upgrader/2.16.js.map +1 -1
  10. package/out/automate/upgrader/2.17.d.ts.map +1 -1
  11. package/out/automate/upgrader/2.17.js +1 -0
  12. package/out/automate/upgrader/2.17.js.map +1 -1
  13. package/out/automate/upgrader/2.18.d.ts.map +1 -1
  14. package/out/automate/upgrader/2.18.js +1 -0
  15. package/out/automate/upgrader/2.18.js.map +1 -1
  16. package/out/automate/upgrader/2.20.d.ts.map +1 -1
  17. package/out/automate/upgrader/2.20.js +1 -0
  18. package/out/automate/upgrader/2.20.js.map +1 -1
  19. package/out/concepts/index.mini.d.ts +10 -0
  20. package/out/concepts/index.mini.d.ts.map +1 -0
  21. package/out/concepts/index.mini.js +26 -0
  22. package/out/concepts/index.mini.js.map +1 -0
  23. package/out/generator/genBundleFiles.d.ts.map +1 -1
  24. package/out/generator/genBundleFiles.js +161 -24
  25. package/out/generator/genBundleFiles.js.map +1 -1
  26. package/out/generator/permission.js +2 -2
  27. package/out/generator/permission.js.map +1 -1
  28. package/out/generator/release-body/utils.d.ts +1 -1
  29. package/out/generator/release-body/utils.d.ts.map +1 -1
  30. package/out/generator/release-body/utils.js +8 -6
  31. package/out/generator/release-body/utils.js.map +1 -1
  32. package/out/generator/rspack-broswer/bundle.d.ts +24 -0
  33. package/out/generator/rspack-broswer/bundle.d.ts.map +1 -0
  34. package/out/generator/rspack-broswer/bundle.js +442 -0
  35. package/out/generator/rspack-broswer/bundle.js.map +1 -0
  36. package/out/generator/rspack-broswer/container/client-lazyload-template.d.ts +9 -0
  37. package/out/generator/rspack-broswer/container/client-lazyload-template.d.ts.map +1 -0
  38. package/out/generator/rspack-broswer/container/client-lazyload-template.js +88 -0
  39. package/out/generator/rspack-broswer/container/client-lazyload-template.js.map +1 -0
  40. package/out/generator/rspack-broswer/container/file-system.d.ts +12 -0
  41. package/out/generator/rspack-broswer/container/file-system.d.ts.map +1 -0
  42. package/out/generator/rspack-broswer/container/file-system.js +58 -0
  43. package/out/generator/rspack-broswer/container/file-system.js.map +1 -0
  44. package/out/generator/rspack-broswer/container/index.d.ts +3 -0
  45. package/out/generator/rspack-broswer/container/index.d.ts.map +1 -0
  46. package/out/generator/rspack-broswer/container/index.js +15 -0
  47. package/out/generator/rspack-broswer/container/index.js.map +1 -0
  48. package/out/generator/rspack-broswer/index.d.ts +3 -0
  49. package/out/generator/rspack-broswer/index.d.ts.map +1 -0
  50. package/out/generator/rspack-broswer/index.js +19 -0
  51. package/out/generator/rspack-broswer/index.js.map +1 -0
  52. package/out/generator/rspack-broswer/loaders/vue/index.d.ts +2 -0
  53. package/out/generator/rspack-broswer/loaders/vue/index.d.ts.map +1 -0
  54. package/out/generator/rspack-broswer/loaders/vue/index.js +228 -0
  55. package/out/generator/rspack-broswer/loaders/vue/index.js.map +1 -0
  56. package/out/generator/rspack-broswer/plugins/lcap/constant.d.ts +3 -0
  57. package/out/generator/rspack-broswer/plugins/lcap/constant.d.ts.map +1 -0
  58. package/out/generator/rspack-broswer/plugins/lcap/constant.js +213 -0
  59. package/out/generator/rspack-broswer/plugins/lcap/constant.js.map +1 -0
  60. package/out/generator/rspack-broswer/plugins/lcap/index.d.ts +6 -0
  61. package/out/generator/rspack-broswer/plugins/lcap/index.d.ts.map +1 -0
  62. package/out/generator/rspack-broswer/plugins/lcap/index.js +175 -0
  63. package/out/generator/rspack-broswer/plugins/lcap/index.js.map +1 -0
  64. package/out/generator/rspack-broswer/plugins/missing-css-fallback/index.d.ts +10 -0
  65. package/out/generator/rspack-broswer/plugins/missing-css-fallback/index.d.ts.map +1 -0
  66. package/out/generator/rspack-broswer/plugins/missing-css-fallback/index.js +50 -0
  67. package/out/generator/rspack-broswer/plugins/missing-css-fallback/index.js.map +1 -0
  68. package/out/generator/ui-library-declaration/dependency.d.ts +20 -0
  69. package/out/generator/ui-library-declaration/dependency.d.ts.map +1 -1
  70. package/out/generator/ui-library-declaration/dependency.js +3 -2
  71. package/out/generator/ui-library-declaration/dependency.js.map +1 -1
  72. package/out/generator/ui-library-declaration/index.d.ts +1 -0
  73. package/out/generator/ui-library-declaration/index.d.ts.map +1 -1
  74. package/out/generator/ui-library-declaration/index.js +1 -0
  75. package/out/generator/ui-library-declaration/index.js.map +1 -1
  76. package/out/generator/ui-library-declaration/material.d.ts +2 -2
  77. package/out/generator/ui-library-declaration/material.d.ts.map +1 -1
  78. package/out/generator/ui-library-declaration/material.js +7 -3
  79. package/out/generator/ui-library-declaration/material.js.map +1 -1
  80. package/out/index.d.ts +2 -2
  81. package/out/index.d.ts.map +1 -1
  82. package/out/index.js +7 -1
  83. package/out/index.js.map +1 -1
  84. package/out/index.mini.d.ts +42 -0
  85. package/out/index.mini.d.ts.map +1 -0
  86. package/out/index.mini.js +89 -0
  87. package/out/index.mini.js.map +1 -0
  88. package/out/manager/diagnostic.d.ts +5 -5
  89. package/out/manager/diagnostic.d.ts.map +1 -1
  90. package/out/natural/exports/doctor/doctorView.d.ts +24 -0
  91. package/out/natural/exports/doctor/doctorView.d.ts.map +1 -0
  92. package/out/natural/exports/doctor/doctorView.js +351 -0
  93. package/out/natural/exports/doctor/doctorView.js.map +1 -0
  94. package/out/natural/exports/doctor/index.d.ts +4 -0
  95. package/out/natural/exports/doctor/index.d.ts.map +1 -0
  96. package/out/natural/exports/doctor/index.js +10 -0
  97. package/out/natural/exports/doctor/index.js.map +1 -0
  98. package/out/natural/exports/doctor/types.d.ts +109 -0
  99. package/out/natural/exports/doctor/types.d.ts.map +1 -0
  100. package/out/natural/exports/doctor/types.js +6 -0
  101. package/out/natural/exports/doctor/types.js.map +1 -0
  102. package/out/natural/exports/doctor/viewGraph.d.ts +20 -0
  103. package/out/natural/exports/doctor/viewGraph.d.ts.map +1 -0
  104. package/out/natural/exports/doctor/viewGraph.js +448 -0
  105. package/out/natural/exports/doctor/viewGraph.js.map +1 -0
  106. package/out/natural/exports/nasl2Files.d.ts.map +1 -1
  107. package/out/natural/exports/nasl2Files.js +113 -9
  108. package/out/natural/exports/nasl2Files.js.map +1 -1
  109. package/out/natural/exports/transform2BatchActions/apply.d.ts +11 -0
  110. package/out/natural/exports/transform2BatchActions/apply.d.ts.map +1 -0
  111. package/out/natural/exports/transform2BatchActions/apply.js +68 -0
  112. package/out/natural/exports/transform2BatchActions/apply.js.map +1 -0
  113. package/out/natural/exports/transform2BatchActions/diff/directories.d.ts +17 -0
  114. package/out/natural/exports/transform2BatchActions/diff/directories.d.ts.map +1 -0
  115. package/out/natural/exports/transform2BatchActions/diff/directories.js +215 -0
  116. package/out/natural/exports/transform2BatchActions/diff/directories.js.map +1 -0
  117. package/out/natural/exports/transform2BatchActions/diff/index.d.ts +21 -0
  118. package/out/natural/exports/transform2BatchActions/diff/index.d.ts.map +1 -0
  119. package/out/natural/exports/transform2BatchActions/diff/index.js +20 -0
  120. package/out/natural/exports/transform2BatchActions/diff/index.js.map +1 -0
  121. package/out/natural/exports/transform2BatchActions/diff/nodes.d.ts +186 -0
  122. package/out/natural/exports/transform2BatchActions/diff/nodes.d.ts.map +1 -0
  123. package/out/natural/exports/transform2BatchActions/diff/nodes.js +498 -0
  124. package/out/natural/exports/transform2BatchActions/diff/nodes.js.map +1 -0
  125. package/out/natural/exports/transform2BatchActions/diff/roles.d.ts +18 -0
  126. package/out/natural/exports/transform2BatchActions/diff/roles.d.ts.map +1 -0
  127. package/out/natural/exports/transform2BatchActions/diff/roles.js +61 -0
  128. package/out/natural/exports/transform2BatchActions/diff/roles.js.map +1 -0
  129. package/out/natural/exports/transform2BatchActions/index.d.ts +41 -0
  130. package/out/natural/exports/transform2BatchActions/index.d.ts.map +1 -0
  131. package/out/natural/exports/transform2BatchActions/index.js +61 -0
  132. package/out/natural/exports/transform2BatchActions/index.js.map +1 -0
  133. package/out/natural/exports/transform2BatchActions/parse.d.ts +24 -0
  134. package/out/natural/exports/transform2BatchActions/parse.d.ts.map +1 -0
  135. package/out/natural/exports/transform2BatchActions/parse.js +257 -0
  136. package/out/natural/exports/transform2BatchActions/parse.js.map +1 -0
  137. package/out/natural/exports/transform2BatchActions/types.d.ts +147 -0
  138. package/out/natural/exports/transform2BatchActions/types.d.ts.map +1 -0
  139. package/out/natural/exports/transform2BatchActions/types.js +7 -0
  140. package/out/natural/exports/transform2BatchActions/types.js.map +1 -0
  141. package/out/natural/index.d.ts +1 -0
  142. package/out/natural/index.d.ts.map +1 -1
  143. package/out/natural/index.js +1 -0
  144. package/out/natural/index.js.map +1 -1
  145. package/out/natural/old/parser/transformTS2UI.d.ts.map +1 -1
  146. package/out/natural/old/parser/transformTS2UI.js +4 -1
  147. package/out/natural/old/parser/transformTS2UI.js.map +1 -1
  148. package/out/natural/old/parser/transformTSCode.js +1 -1
  149. package/out/natural/old/parser/transformTSCode.js.map +1 -1
  150. package/out/natural/parser/parseNaturalTS.d.ts.map +1 -1
  151. package/out/natural/parser/parseNaturalTS.js +106 -2
  152. package/out/natural/parser/parseNaturalTS.js.map +1 -1
  153. package/out/natural/parser/parseNaturalTSXView.d.ts.map +1 -1
  154. package/out/natural/parser/parseNaturalTSXView.js +60 -7
  155. package/out/natural/parser/parseNaturalTSXView.js.map +1 -1
  156. package/out/natural/transforms/checker/checkIdentifierName.d.ts +6 -0
  157. package/out/natural/transforms/checker/checkIdentifierName.d.ts.map +1 -0
  158. package/out/natural/transforms/checker/checkIdentifierName.js +15 -0
  159. package/out/natural/transforms/checker/checkIdentifierName.js.map +1 -0
  160. package/out/natural/transforms/checker/checkKeywords.d.ts +33 -0
  161. package/out/natural/transforms/checker/checkKeywords.d.ts.map +1 -0
  162. package/out/natural/transforms/checker/checkKeywords.js +85 -0
  163. package/out/natural/transforms/checker/checkKeywords.js.map +1 -0
  164. package/out/natural/transforms/checker/checkViewElement.d.ts +10 -0
  165. package/out/natural/transforms/checker/checkViewElement.d.ts.map +1 -1
  166. package/out/natural/transforms/checker/checkViewElement.js +28 -1
  167. package/out/natural/transforms/checker/checkViewElement.js.map +1 -1
  168. package/out/natural/transforms/checker/index.d.ts +3 -1
  169. package/out/natural/transforms/checker/index.d.ts.map +1 -1
  170. package/out/natural/transforms/checker/index.js +10 -1
  171. package/out/natural/transforms/checker/index.js.map +1 -1
  172. package/out/natural/transforms/transform2AuthLogic.d.ts +4 -0
  173. package/out/natural/transforms/transform2AuthLogic.d.ts.map +1 -0
  174. package/out/natural/transforms/transform2AuthLogic.js +116 -0
  175. package/out/natural/transforms/transform2AuthLogic.js.map +1 -0
  176. package/out/natural/transforms/transform2Config.d.ts +17 -0
  177. package/out/natural/transforms/transform2Config.d.ts.map +1 -0
  178. package/out/natural/transforms/transform2Config.js +114 -0
  179. package/out/natural/transforms/transform2Config.js.map +1 -0
  180. package/out/natural/transforms/transform2Entity.d.ts +2 -2
  181. package/out/natural/transforms/transform2Entity.d.ts.map +1 -1
  182. package/out/natural/transforms/transform2Entity.js +11 -2
  183. package/out/natural/transforms/transform2Entity.js.map +1 -1
  184. package/out/natural/transforms/transform2Enum.d.ts.map +1 -1
  185. package/out/natural/transforms/transform2Enum.js +8 -1
  186. package/out/natural/transforms/transform2Enum.js.map +1 -1
  187. package/out/natural/transforms/transform2ExportInterface.d.ts +3 -0
  188. package/out/natural/transforms/transform2ExportInterface.d.ts.map +1 -0
  189. package/out/natural/transforms/transform2ExportInterface.js +96 -0
  190. package/out/natural/transforms/transform2ExportInterface.js.map +1 -0
  191. package/out/natural/transforms/transform2GlobalLogicDeclaration.d.ts.map +1 -1
  192. package/out/natural/transforms/transform2GlobalLogicDeclaration.js +4 -1
  193. package/out/natural/transforms/transform2GlobalLogicDeclaration.js.map +1 -1
  194. package/out/natural/transforms/transform2Logic.d.ts.map +1 -1
  195. package/out/natural/transforms/transform2Logic.js +8 -38
  196. package/out/natural/transforms/transform2Logic.js.map +1 -1
  197. package/out/natural/transforms/transform2LogicItem.d.ts +9 -2
  198. package/out/natural/transforms/transform2LogicItem.d.ts.map +1 -1
  199. package/out/natural/transforms/transform2LogicItem.js +169 -61
  200. package/out/natural/transforms/transform2LogicItem.js.map +1 -1
  201. package/out/natural/transforms/transform2OverriddenLogic.d.ts +3 -0
  202. package/out/natural/transforms/transform2OverriddenLogic.d.ts.map +1 -0
  203. package/out/natural/transforms/transform2OverriddenLogic.js +83 -0
  204. package/out/natural/transforms/transform2OverriddenLogic.js.map +1 -0
  205. package/out/natural/transforms/transform2Param.d.ts +1 -1
  206. package/out/natural/transforms/transform2Param.d.ts.map +1 -1
  207. package/out/natural/transforms/transform2Param.js +19 -1
  208. package/out/natural/transforms/transform2Param.js.map +1 -1
  209. package/out/natural/transforms/transform2Roles.d.ts +3 -0
  210. package/out/natural/transforms/transform2Roles.d.ts.map +1 -0
  211. package/out/natural/transforms/transform2Roles.js +34 -0
  212. package/out/natural/transforms/transform2Roles.js.map +1 -0
  213. package/out/natural/transforms/transform2Structure.d.ts.map +1 -1
  214. package/out/natural/transforms/transform2Structure.js +2 -0
  215. package/out/natural/transforms/transform2Structure.js.map +1 -1
  216. package/out/natural/transforms/transform2TypeAnnotation.d.ts.map +1 -1
  217. package/out/natural/transforms/transform2TypeAnnotation.js +8 -4
  218. package/out/natural/transforms/transform2TypeAnnotation.js.map +1 -1
  219. package/out/natural/transforms/transform2Variable.d.ts.map +1 -1
  220. package/out/natural/transforms/transform2Variable.js +4 -0
  221. package/out/natural/transforms/transform2Variable.js.map +1 -1
  222. package/out/natural/transforms/utils/createComponentLookupMap.js +3 -3
  223. package/out/natural/transforms/utils/createComponentLookupMap.js.map +1 -1
  224. package/out/natural/transforms/utils/ensureBindRoles.d.ts +9 -0
  225. package/out/natural/transforms/utils/ensureBindRoles.d.ts.map +1 -0
  226. package/out/natural/transforms/utils/ensureBindRoles.js +25 -0
  227. package/out/natural/transforms/utils/ensureBindRoles.js.map +1 -0
  228. package/out/natural/transforms/utils/flattenStatementsWithComments.d.ts +11 -0
  229. package/out/natural/transforms/utils/flattenStatementsWithComments.d.ts.map +1 -0
  230. package/out/natural/transforms/utils/flattenStatementsWithComments.js +36 -0
  231. package/out/natural/transforms/utils/flattenStatementsWithComments.js.map +1 -0
  232. package/out/natural/transforms/utils/parseDecorator.d.ts +4 -4
  233. package/out/natural/transforms/utils/parseDecorator.d.ts.map +1 -1
  234. package/out/natural/transforms/utils/parseDecorator.js +40 -24
  235. package/out/natural/transforms/utils/parseDecorator.js.map +1 -1
  236. package/out/natural/transforms/utils/parseLogicBody.d.ts +17 -0
  237. package/out/natural/transforms/utils/parseLogicBody.d.ts.map +1 -0
  238. package/out/natural/transforms/utils/parseLogicBody.js +47 -0
  239. package/out/natural/transforms/utils/parseLogicBody.js.map +1 -0
  240. package/out/natural/utils/index.d.ts +5 -0
  241. package/out/natural/utils/index.d.ts.map +1 -1
  242. package/out/natural/utils/index.js +11 -1
  243. package/out/natural/utils/index.js.map +1 -1
  244. package/out/natural/utils/nasl-file-types.d.ts +6 -1
  245. package/out/natural/utils/nasl-file-types.d.ts.map +1 -1
  246. package/out/natural/utils/nasl-file-types.js +77 -2
  247. package/out/natural/utils/nasl-file-types.js.map +1 -1
  248. package/out/server/extendBaseNode.d.ts.map +1 -1
  249. package/out/server/extendBaseNode.js +9 -3
  250. package/out/server/extendBaseNode.js.map +1 -1
  251. package/out/server/naslServer.d.ts +18 -0
  252. package/out/server/naslServer.d.ts.map +1 -1
  253. package/out/server/naslServer.js +89 -0
  254. package/out/server/naslServer.js.map +1 -1
  255. package/out/server/naslUiComponentTs.d.ts +1 -2
  256. package/out/server/naslUiComponentTs.d.ts.map +1 -1
  257. package/out/server/naslUiComponentTs.default.d.ts +47 -0
  258. package/out/server/naslUiComponentTs.js +25 -49
  259. package/out/server/naslUiComponentTs.js.map +1 -1
  260. package/out/service/autofix/types.d.ts +2 -2
  261. package/out/service/autofix/types.d.ts.map +1 -1
  262. package/out/service/instruct-ruler/ruler.d.ts +3 -1
  263. package/out/service/instruct-ruler/ruler.d.ts.map +1 -1
  264. package/out/service/instruct-ruler/ruler.js +2 -1
  265. package/out/service/instruct-ruler/ruler.js.map +1 -1
  266. package/out/service/storage/init.d.ts +6 -0
  267. package/out/service/storage/init.d.ts.map +1 -1
  268. package/out/service/storage/init.js +22 -9
  269. package/out/service/storage/init.js.map +1 -1
  270. package/out/service/storage/operation.d.ts +9 -1
  271. package/out/service/storage/operation.d.ts.map +1 -1
  272. package/out/service/storage/operation.js +220 -100
  273. package/out/service/storage/operation.js.map +1 -1
  274. package/out/service/storage/specTools.d.ts.map +1 -1
  275. package/out/service/storage/specTools.js +25 -13
  276. package/out/service/storage/specTools.js.map +1 -1
  277. package/out/templator/genQueryComponent.d.ts +13 -1
  278. package/out/templator/genQueryComponent.d.ts.map +1 -1
  279. package/out/templator/genQueryComponent.js +18 -14
  280. package/out/templator/genQueryComponent.js.map +1 -1
  281. package/package.json +16 -10
  282. package/sandbox/stdlib/nasl.util.ts +16 -15
  283. package/out/natural/exports/transform2BatchActions.d.ts +0 -114
  284. package/out/natural/exports/transform2BatchActions.d.ts.map +0 -1
  285. package/out/natural/exports/transform2BatchActions.js +0 -1233
  286. package/out/natural/exports/transform2BatchActions.js.map +0 -1
@@ -1,16 +1,15 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.transformCall2Interface = exports.transformAlert2ShowMessage = exports.transformForEach2ForEachStatement = exports.transformForOf2ForEachStatement = exports.transform2ForEachStatement = exports.transformMap2ListTransform = exports.transform2UIFunction = exports.transformCall2CallFunction = exports.transform2CallFunction = exports.transform2CallOtherNASLLogic = exports.transform2CallEventLogic = exports.transformCall2JSONFunctions = exports.transformCall2Logging = exports.transformCall2ConsoleLog = exports.transformCall2CallDataSourceLogic = exports.transformCall2CallEntityLogic = exports.transformCall2CallViewElementLogic = exports.transformCallFunctionExpression2Match = exports.transformMemberExpression = exports.transformNewExpression = exports.transform2NewRegex = exports.transform2PartialNewComposite = exports.transform2Comment = exports.transform2StringInterpolation = exports.transformReturnStatement2AssignmentOrEnd = exports.transform2NullLiteral = exports.transform2NumericLiteral = exports.transform2DirectiveLiteral = exports.transform2StringLiteral = exports.transform2BooleanLiteral = exports.transformUpdateExpression2Assignment = exports.transform2Assignment = exports.transform2AnonymousFunction = exports.transformIdentifier = exports.transformSwitchStatement2Match = exports.transform2WhileStatement = exports.transform2Break = exports.transform2Continue = exports.transform2IfStatement = exports.transform2BinaryExpression = exports.transform2VariadicExpression = exports.transformCallExpressionToBinaryExpression = exports.fixLogicNode = exports.flatIfStatementForMatch = exports.flatMatchPatternsExpression = exports.getSelectMembers = exports.unflatMemberExpression = exports.flatMemberExpression = exports.fixExpression = exports.TransformManager = void 0;
7
- exports.transform2LogicItem = exports.transform2DefaultValue = exports.transformNode2Directory = exports.transformCall2Paginate = exports.transformCall2LogicWithAuth = exports.transformCall2Logic = exports.transformCall2CallViewLogic = exports.transformCall2Extension = exports.transformCall2Connector = void 0;
3
+ exports.transformForEach2ForEachStatement = exports.transformForOf2ForEachStatement = exports.transform2ForEachStatement = exports.transformMap2ListTransform = exports.transform2UIFunction = exports.transformCall2CallFunction = exports.transform2CallFunction = exports.transform2CallOtherNASLLogic = exports.transform2CallEventLogic = exports.transformCall2JSONFunctions = exports.transformCall2Logging = exports.transformCall2ConsoleLog = exports.transformCall2CallDataSourceLogic = exports.transformCall2CallEntityLogic = exports.transformCall2CallViewElementLogic = exports.transformCallFunctionExpression2Match = exports.transformMemberExpression = exports.transformNewExpression = exports.transform2ExcelField = exports.transform2NewRegex = exports.transform2PartialNewComposite = exports.transform2Comment = exports.transform2StringInterpolation = exports.transformReturnStatement2AssignmentOrEnd = exports.transform2NullLiteral = exports.transform2NumericLiteral = exports.transform2DirectiveLiteral = exports.transform2StringLiteral = exports.transform2BooleanLiteral = exports.transformUpdateExpression2Assignment = exports.transform2Assignment = exports.transform2AnonymousFunction = exports.transformIdentifier = exports.transformSwitchStatement2Match = exports.transform2WhileStatement = exports.transform2Break = exports.transform2Continue = exports.transform2IfStatement = exports.transformArrayExpression = exports.transform2BinaryExpression = exports.transform2VariadicExpression = exports.transformCallExpressionToBinaryExpression = exports.fixLogicNode = exports.flatIfStatementForMatch = exports.flatMatchPatternsExpression = exports.getSelectMembers = exports.unflatMemberExpression = exports.flatMemberExpression = exports.fixExpression = exports.TransformManager = void 0;
4
+ exports.transform2LogicItem = exports.transform2DefaultValue = exports.transformNode2Directory = exports.transformCall2Paginate = exports.transformCall2GetCustomConfig = exports.transformCall2LogicWithAuth = exports.transformCall2Logic = exports.transformCall2CallViewLogic = exports.transformCall2Extension = exports.transformCall2Connector = exports.transformCall2Interface = exports.transformAlert2ShowMessage = void 0;
8
5
  const utils_1 = require("../utils");
9
6
  const misc_1 = require("./utils/misc");
7
+ const flattenStatementsWithComments_1 = require("./utils/flattenStatementsWithComments");
10
8
  const checkDataQueryCalleeNameOrder_1 = require("./checker/checkDataQueryCalleeNameOrder");
9
+ const checkIdentifierName_1 = require("./checker/checkIdentifierName");
11
10
  const transform2TypeAnnotation_1 = require("./transform2TypeAnnotation");
12
11
  const transform2Param_1 = require("./transform2Param");
13
- const server_1 = __importDefault(require("../../server"));
12
+ const service_1 = require("@lcap/nasl-concepts/service");
14
13
  const parseDecorator_1 = require("./utils/parseDecorator");
15
14
  ;
16
15
  class TransformManager {
@@ -66,7 +65,7 @@ exports.TransformManager = TransformManager;
66
65
  function transformTSCode2SubLogic(node, options) {
67
66
  const transformNodeFunction = options?.transformNodeFunction || transform2LogicItem;
68
67
  const logic = new utils_1.naslTypes.SubLogic();
69
- logic.name = options.transformType === 'logic' && options.logic?.getSubLogicUniqueName ? options.logic.getSubLogicUniqueName() : `subLogic_${(0, utils_1.uuidv4)().slice(0, 2)}`;
68
+ logic.name = options.transformType === 'logic' && 'getSubLogicUniqueName' in (options.logic ?? {}) && options.logic?.getSubLogicUniqueName ? options.logic.getSubLogicUniqueName() : `subLogic_${(0, utils_1.uuidv4)().slice(0, 2)}`;
70
69
  logic.body = logic.body.slice(0, 1);
71
70
  let parameters = [];
72
71
  let statements = [];
@@ -80,23 +79,13 @@ function transformTSCode2SubLogic(node, options) {
80
79
  statements = [...node?.body?.directives, ...node?.body?.body];
81
80
  }
82
81
  parameters.forEach((node) => {
83
- const param = (0, transform2Param_1.transform2Param)(node, options);
82
+ const param = (0, transform2Param_1.transform2Param)(node, options, undefined, true);
84
83
  if (param && !param?.typeAnnotation) {
85
84
  param.typeAnnotation = null;
86
85
  }
87
86
  param && logic.addParam(param);
88
87
  });
89
- const newStatements = [];
90
- statements.forEach((node, index) => {
91
- if (node?.leadingComments?.length) {
92
- newStatements.push(...node?.leadingComments);
93
- }
94
- if (node?.trailingComments?.length && index === statements.length - 1) {
95
- newStatements.push(...node?.trailingComments);
96
- }
97
- newStatements.push(node);
98
- });
99
- statements = newStatements;
88
+ statements = (0, flattenStatementsWithComments_1.flattenStatementsWithComments)(statements);
100
89
  const body = statements.map((node) => transformNodeFunction(node, {
101
90
  ...options,
102
91
  logic,
@@ -431,6 +420,9 @@ function transformConditionalExpression(node, options) {
431
420
  });
432
421
  }
433
422
  function transformArrayExpression(node, options) {
423
+ if (options?.inCallQueryComponentField) {
424
+ return (0, utils_1.throwError)(options, '数据查询中不支持使用 NewList(直接声明数组),请将对应操作放在数据查询外部进行处理', node);
425
+ }
434
426
  let typeAnnotation = options.typeAnnotation;
435
427
  delete options.typeAnnotation;
436
428
  const transformNodeFunction = options?.transformNodeFunction || transform2LogicItem;
@@ -439,7 +431,11 @@ function transformArrayExpression(node, options) {
439
431
  items: node?.elements?.map((arg) => transformNodeFunction(arg, { ...options, typeAnnotation: undefined })).filter(Boolean),
440
432
  });
441
433
  }
434
+ exports.transformArrayExpression = transformArrayExpression;
442
435
  function transform2NewAnonymousStructure(node, options) {
436
+ if (options?.inCallQueryComponentField) {
437
+ return (0, utils_1.throwError)(options, '数据查询中不支持使用 NewComposite(直接声明匿名结构),请将对应操作放在数据查询外部进行处理', node);
438
+ }
443
439
  for (let i = 0; i < node.properties.length; i++) {
444
440
  const item = node.properties[i];
445
441
  const itemValue = item?.value;
@@ -462,7 +458,7 @@ function transform2NewAnonymousStructure(node, options) {
462
458
  const structureProperties = [];
463
459
  newProperties.forEach((arg, index) => {
464
460
  structureProperties.push(new utils_1.naslTypes.StructureProperty({
465
- name: arg.key.name,
461
+ name: arg.key.name ?? arg.key.value,
466
462
  typeAnnotation: arg.naslType || null,
467
463
  }));
468
464
  });
@@ -478,6 +474,9 @@ function transform2NewStructure(namespaceAndName, objectExpression, options) {
478
474
  return newComposite;
479
475
  }
480
476
  function transform2NewExpression(calleeName, node, options) {
477
+ if (options?.inCallQueryComponentField) {
478
+ return (0, utils_1.throwError)(options, `数据查询中不支持使用 ${calleeName},请将对应操作放在数据查询外部进行处理`, node);
479
+ }
481
480
  const transformNodeFunction = options?.transformNodeFunction || transform2LogicItem;
482
481
  if (calleeName === 'NewList') {
483
482
  let typeAnnotation;
@@ -592,6 +591,7 @@ function transform2ArrayPattern(decl, options) {
592
591
  if (element.type === 'Identifier') {
593
592
  const varTypeAnnotation = element.typeAnnotation?.typeAnnotation;
594
593
  if (options.transformType === 'logic') {
594
+ (0, checkIdentifierName_1.checkIdentifierName)(element.name, '变量', options, element);
595
595
  options.logic.variables.push(new utils_1.naslTypes.Variable({
596
596
  name: element.name,
597
597
  typeAnnotation: varTypeAnnotation && (0, transform2TypeAnnotation_1.transform2TypeAnnotation)(varTypeAnnotation, options) || undefined,
@@ -636,6 +636,7 @@ function transform2VariableAndAddAssignment(node, options) {
636
636
  }
637
637
  let typeAnnotation;
638
638
  if (options.transformType === 'logic' && ![...options.logic.variables, ...options.logic.returns].some((variable) => variable.name === variableName)) {
639
+ (0, checkIdentifierName_1.checkIdentifierName)(variableName, '变量', options, decl.id);
639
640
  const varTypeAnnotation = decl.id.typeAnnotation?.typeAnnotation;
640
641
  typeAnnotation = varTypeAnnotation && (0, transform2TypeAnnotation_1.transform2TypeAnnotation)(varTypeAnnotation, options) || undefined;
641
642
  const variable = new utils_1.naslTypes.Variable({
@@ -680,15 +681,7 @@ function flatCommentWithNode(node) {
680
681
  newNodeList = [...node?.innerComments];
681
682
  }
682
683
  if (node?.body?.length) {
683
- node?.body.forEach((item, index) => {
684
- if (item?.leadingComments?.length) {
685
- newNodeList.push(...item?.leadingComments);
686
- }
687
- if (item?.trailingComments?.length && index === node?.body.length - 1) {
688
- newNodeList.push(...item?.trailingComments);
689
- }
690
- newNodeList.push(item);
691
- });
684
+ newNodeList.push(...(0, flattenStatementsWithComments_1.flattenStatementsWithComments)(node.body));
692
685
  }
693
686
  return newNodeList;
694
687
  }
@@ -1005,16 +998,24 @@ function transform2StringInterpolation(node, options) {
1005
998
  });
1006
999
  }
1007
1000
  exports.transform2StringInterpolation = transform2StringInterpolation;
1001
+ function transformRequire2JSBlock(node, calleeName, callee, options) {
1002
+ const arg0 = node.arguments[0].value;
1003
+ const filename = arg0.replace('./tmp/', '');
1004
+ return new utils_1.naslTypes.JSBlock({ code: options.externalFiles?.get(filename) ?? '' });
1005
+ }
1008
1006
  function transform2Comment(node, options) {
1009
1007
  if (node.type === 'EmptyStatement') {
1010
1008
  if (node?.leadingComments) {
1011
- const newValue = node?.leadingComments?.[0]?.value?.replace(/\n/g, '<br>');
1009
+ // trim() 防止 Babel 解析 /* ... */ 时将内侧空格存入 value
1010
+ // 导致每次 files2nasl → nasl2files 轮回后注释空格累积 +1
1011
+ const newValue = node?.leadingComments?.[0]?.value?.trim().replace(/\n/g, '<br>');
1012
1012
  return new utils_1.naslTypes.Comment({
1013
1013
  value: String(newValue),
1014
1014
  });
1015
1015
  }
1016
1016
  }
1017
- const newValue = node?.value?.replace(/\n/g, '<br>');
1017
+ // trim() 同上,防止空格在每次 prepare-src 轮回中递增
1018
+ const newValue = node?.value?.trim().replace(/\n/g, '<br>');
1018
1019
  return new utils_1.naslTypes.Comment({
1019
1020
  value: String(newValue || ''),
1020
1021
  });
@@ -1037,7 +1038,16 @@ function transform2PartialNewComposite(node, options) {
1037
1038
  const newProperties = (node?.properties || node?.arguments?.[0]?.properties);
1038
1039
  let idx = 0;
1039
1040
  newProperties?.forEach((arg, index) => {
1040
- properties.push(transformNodeFunction(arg.key, options));
1041
+ // StringLiteral 类型的键(如 JSON 格式的 "name")统一转换为 Identifier 处理,并校验命名规则
1042
+ let keyNode;
1043
+ if (arg.key?.type === 'StringLiteral') {
1044
+ (0, checkIdentifierName_1.checkIdentifierName)(arg.key.value, '属性', options, arg.key);
1045
+ keyNode = utils_1.babelTypes.identifier(arg.key.value);
1046
+ }
1047
+ else {
1048
+ keyNode = arg.key;
1049
+ }
1050
+ properties.push(transformNodeFunction(keyNode, options));
1041
1051
  const calleeName = (0, utils_1.generate)(arg.value).code;
1042
1052
  let sliceMembers = false;
1043
1053
  if (arg.value.type === 'MemberExpression') {
@@ -1103,7 +1113,7 @@ function transform2PartialNewComposite(node, options) {
1103
1113
  }
1104
1114
  }
1105
1115
  structureProperties.push(new utils_1.naslTypes.StructureProperty({
1106
- name: arg?.key?.name,
1116
+ name: arg?.key?.name ?? arg?.key?.value,
1107
1117
  typeAnnotation: null
1108
1118
  }));
1109
1119
  });
@@ -1135,6 +1145,27 @@ function transform2NewRegex(node, options) {
1135
1145
  });
1136
1146
  }
1137
1147
  exports.transform2NewRegex = transform2NewRegex;
1148
+ function transform2ExcelField(node, options) {
1149
+ const transformNodeFunction = options?.transformNodeFunction || transform2LogicItem;
1150
+ const objExpr = node.arguments[0];
1151
+ const properties = (objExpr?.properties || []).map((prop) => {
1152
+ const propName = prop.key?.name ?? prop.key?.value;
1153
+ const propValue = prop.value;
1154
+ if (propName === 'format' && (propValue.type === 'ArrowFunctionExpression' || propValue.type === 'FunctionExpression')) {
1155
+ const firstParam = propValue.params?.[0];
1156
+ if (!firstParam || !firstParam.typeAnnotation) {
1157
+ return (0, utils_1.throwError)(options, 'nasl.io.ExcelField 的 format 函数参数必须声明类型,例如:(item: app.dataSources.defaultDS.entities.MyEntity) => ...', propValue);
1158
+ }
1159
+ }
1160
+ const expression = transformNodeFunction(propValue, options);
1161
+ return new utils_1.naslTypes.StructureProperty({
1162
+ name: propName,
1163
+ defaultValue: new utils_1.naslTypes.DefaultValue({ expression }),
1164
+ });
1165
+ });
1166
+ return new utils_1.naslTypes.NewStructure({ properties });
1167
+ }
1168
+ exports.transform2ExcelField = transform2ExcelField;
1138
1169
  function transformNewExpression(node, options) {
1139
1170
  const transformNodeFunction = options?.transformNodeFunction || transform2LogicItem;
1140
1171
  const calleeName = (0, utils_1.generate)(node.callee).code;
@@ -1147,7 +1178,13 @@ function transformNewExpression(node, options) {
1147
1178
  else if (calleeName === 'RegExp') {
1148
1179
  return transform2NewRegex(node, options);
1149
1180
  }
1181
+ else if (calleeName === 'nasl.io.ExcelField') {
1182
+ return transform2ExcelField(node, options);
1183
+ }
1150
1184
  else if (calleeName.includes('.entities.') || calleeName.includes('.structures.')) {
1185
+ if (options?.inCallQueryComponentField) {
1186
+ return (0, utils_1.throwError)(options, `数据查询中不支持使用 new ${calleeName},请将对应操作放在数据查询外部进行处理`, node);
1187
+ }
1151
1188
  return transform2NewStructure(calleeName, node.arguments[0], options);
1152
1189
  }
1153
1190
  return (0, utils_1.throwError)(options, '在新建表达式中不支持节点类型', node.type, node);
@@ -1258,6 +1295,14 @@ function transformMemberExpression(node, options) {
1258
1295
  return newNode;
1259
1296
  }
1260
1297
  }
1298
+ const configPropertyRegex = /^(app|extensions\.\w+)\.configuration\.(?:groups\.)?(\w+)\.(?:properties\.)?(\w+)$/;
1299
+ if (configPropertyRegex.test(calleeName)) {
1300
+ const [, prefix, groupName, propName] = calleeName.match(configPropertyRegex);
1301
+ return new utils_1.naslTypes.Identifier({
1302
+ namespace: `${prefix}.configuration.groups.${groupName}.properties`,
1303
+ name: propName,
1304
+ });
1305
+ }
1261
1306
  if (node.property.type === 'NumericLiteral' || node?.property?.type === 'BinaryExpression') {
1262
1307
  return new utils_1.naslTypes.CallFunction({
1263
1308
  calleeNamespace: 'nasl.util',
@@ -1470,6 +1515,7 @@ function transformCall2CallDataSourceLogic(node, calleeName, callee, options) {
1470
1515
  if (newArguments?.[0])
1471
1516
  newArguments[0].keyword = 'body';
1472
1517
  if (newArguments?.[1]) {
1518
+ newArguments[1].keyword = 'properties';
1473
1519
  if (newArguments[1]?.expression.concept === 'AnonymousFunction' && newArguments[1]?.expression?.params?.[0]?.name) {
1474
1520
  newArguments[1].expression.params[0].typeAnnotation = utils_1.naslTypes.TypeAnnotation.createReference(entityName, {
1475
1521
  typeNamespace: calleeNamespace,
@@ -1497,6 +1543,7 @@ function transformCall2CallDataSourceLogic(node, calleeName, callee, options) {
1497
1543
  }
1498
1544
  const expressionJson = expression?.toJSON();
1499
1545
  const argument2 = newArguments?.[1];
1546
+ const argument3 = newArguments?.[2];
1500
1547
  newArguments = [new utils_1.naslTypes.Argument({
1501
1548
  expression: new utils_1.naslTypes.Function({
1502
1549
  name: "filter",
@@ -1523,6 +1570,10 @@ function transformCall2CallDataSourceLogic(node, calleeName, callee, options) {
1523
1570
  else {
1524
1571
  newArguments.push(new utils_1.naslTypes.Argument({}));
1525
1572
  }
1573
+ if (argument3?.expression?.concept === 'AnonymousFunction') {
1574
+ argument3.keyword = 'properties';
1575
+ newArguments.push(argument3);
1576
+ }
1526
1577
  }
1527
1578
  }
1528
1579
  return new utils_1.naslTypes.CallLogic({
@@ -1545,6 +1596,8 @@ function transformCall2OQLQuery(node, calleeName, callee, options) {
1545
1596
  return (0, utils_1.throwError)(options, 'OQL组件不支持在前端使用', node);
1546
1597
  if (options?.isRestricted)
1547
1598
  return (0, utils_1.throwError)(options, 'OQL组件不支持在组件或默认值表达式中使用', node);
1599
+ if (options?.restrictDataQuery)
1600
+ return (0, utils_1.throwError)(options, '鉴权逻辑中不支持使用数据查询', node);
1548
1601
  if (options.transformType === 'logic' && options?.logicType === 'global_logic') {
1549
1602
  // const _typeAnnotation = node?.typeParameters?.params?.length > 0 ? naslTypes.TypeAnnotation.createGeneric('List', {
1550
1603
  // typeArguments: node?.typeParameters?.params.map((curType: any) => transform2TypeAnnotation({ ...curType })),
@@ -1633,7 +1686,7 @@ function transform2CallOtherNASLLogic(node, calleeName, callee, options) {
1633
1686
  exports.transform2CallOtherNASLLogic = transform2CallOtherNASLLogic;
1634
1687
  function transform2CallFunction(node, calleeName, argument, options) {
1635
1688
  calleeName = misc_1.replaceCallFunctionMap?.[calleeName] || calleeName;
1636
- const func = server_1.default ? server_1.default.getBuildInFunction(calleeName) : null;
1689
+ const func = (0, service_1.getBuildInFunction)(calleeName);
1637
1690
  let newArguments = argument.map((arg, index) => {
1638
1691
  let supportSubLogic = false;
1639
1692
  if (arg?.type === 'FunctionExpression' || (arg?.type === 'ArrowFunctionExpression' && arg?.body?.type === 'BlockStatement')) {
@@ -1644,13 +1697,16 @@ function transform2CallFunction(node, calleeName, argument, options) {
1644
1697
  keyword: func && func?.params[index]?.name || `param${index + 1}`,
1645
1698
  });
1646
1699
  });
1647
- let newTypeArguments = node?.typeParameters?.params.map((curType) => (0, transform2TypeAnnotation_1.transform2TypeAnnotation)({ ...curType }, options)).filter(Boolean);
1700
+ let newTypeArguments = node?.typeParameters?.params?.map((curType) => (0, transform2TypeAnnotation_1.transform2TypeAnnotation)({ ...curType }, options)).filter(Boolean);
1648
1701
  // 补齐场景下补充类型参数
1649
1702
  if (options?.source !== 'creator' && calleeName === 'ListRepeat') {
1650
1703
  newTypeArguments = [
1651
1704
  new utils_1.naslTypes.TypeAnnotation()
1652
1705
  ];
1653
1706
  }
1707
+ else if (options?.source === 'creator' && calleeName === 'ListRepeat' && !newTypeArguments?.length) {
1708
+ return (0, utils_1.throwError)(options, 'ListRepeat 必须指定类型参数。函数签名: ListRepeat<T>(item: T, length: Integer): List<T>', node);
1709
+ }
1654
1710
  if (calleeName === 'Convert' && !newTypeArguments) {
1655
1711
  newTypeArguments = [
1656
1712
  new utils_1.naslTypes.TypeAnnotation()
@@ -1674,11 +1730,6 @@ function transform2CallFunction(node, calleeName, argument, options) {
1674
1730
  });
1675
1731
  }
1676
1732
  }
1677
- if (calleeName === 'Convert' && !newTypeArguments) {
1678
- newTypeArguments = [
1679
- new utils_1.naslTypes.TypeAnnotation()
1680
- ];
1681
- }
1682
1733
  if (calleeName === 'FromString') {
1683
1734
  if (newTypeArguments?.[0]?.typeName === 'Time' && newArguments?.[0]?.expression?.concept === 'StringLiteral') {
1684
1735
  const timeValue = newArguments?.[0]?.expression?.value;
@@ -1772,16 +1823,16 @@ function transform2CallFunction(node, calleeName, argument, options) {
1772
1823
  else {
1773
1824
  // 最后判断一下参数数量是否匹配
1774
1825
  // 这两个参数比较特殊,可以无限加参数,不再判断参数数量
1775
- const excludes = ['HasValue', 'ListSort'];
1776
- if (func.params?.length !== newArguments?.length && !excludes.includes(calleeName)) {
1777
- return (0, utils_1.throwError)(options, `函数${calleeName}生成不符合标准的函数调用,参数数量不匹配`, node.callee, node);
1778
- }
1779
- else {
1780
- newArguments?.forEach((arg, idx) => {
1781
- if (func?.params[idx]?.name)
1782
- arg.keyword = func?.params[idx]?.name;
1783
- });
1784
- }
1826
+ // 走LS检查,不在transform中判断了
1827
+ // const excludes = ['HasValue', 'ListSort']
1828
+ // if (func.params?.length !== newArguments?.length && !excludes.includes(calleeName)) {
1829
+ // return throwError(options, `函数${calleeName}生成不符合标准的函数调用,参数数量不匹配`, node.callee, node);
1830
+ // } else {
1831
+ // }
1832
+ newArguments?.forEach((arg, idx) => {
1833
+ if (func?.params[idx]?.name)
1834
+ arg.keyword = func?.params[idx]?.name;
1835
+ });
1785
1836
  }
1786
1837
  const nodeElement = new utils_1.naslTypes.CallFunction({
1787
1838
  calleeNamespace: 'nasl.util',
@@ -1809,7 +1860,7 @@ function transform2SqlFunction(node, calleeName, argument, options) {
1809
1860
  }
1810
1861
  const specFunList = ['COUNT', 'COUNTD', 'SUM', 'AVG', 'MAX', 'MIN'];
1811
1862
  // TODO: 先写死了 mysql,后续需要传入: 参考 requestSqlFunctions
1812
- const func = server_1.default ? server_1.default?.getSqlFunction('mysql', calleeName) : null;
1863
+ const func = (0, service_1.getSqlFunction)('mysql', calleeName);
1813
1864
  let addArguments = [];
1814
1865
  if (specFunList.includes(calleeName)) {
1815
1866
  const value = calleeName === 'COUNTD' ? 'DISTINCT' : 'ALL';
@@ -1853,8 +1904,15 @@ function transformCall2CallFunction(node, calleeName, callee, options) {
1853
1904
  return transform2CallFunction(node, curCalleeName, argument, options);
1854
1905
  }
1855
1906
  exports.transformCall2CallFunction = transformCall2CallFunction;
1907
+ const SUPPORTED_NASL_UI_FUNCTIONS = ['showMessage', 'destination', 'gotoLink'];
1856
1908
  function transform2UIFunction(node, calleeName, callee, options) {
1857
- if (callee[2].name === 'destination') {
1909
+ const uiFunctionName = callee[2].name;
1910
+ if (!SUPPORTED_NASL_UI_FUNCTIONS.includes(uiFunctionName)) {
1911
+ return (0, utils_1.throwError)(options, `nasl.ui 仅支持 ${SUPPORTED_NASL_UI_FUNCTIONS.map((f) => `nasl.ui.${f}`).join('、')},不支持 nasl.ui.${uiFunctionName}`, node);
1912
+ }
1913
+ if (uiFunctionName === 'destination') {
1914
+ if (!node.arguments[0])
1915
+ return (0, utils_1.throwError)(options, 'nasl.ui.destination 缺少目标页面参数', node);
1858
1916
  let namespaceNode = node.arguments[0];
1859
1917
  let namespace = '';
1860
1918
  if (namespaceNode.type === 'TemplateLiteral') {
@@ -1900,7 +1958,9 @@ function transform2UIFunction(node, calleeName, callee, options) {
1900
1958
  arguments: argument,
1901
1959
  });
1902
1960
  }
1903
- if (callee[2].name === 'gotoLink') {
1961
+ if (uiFunctionName === 'gotoLink') {
1962
+ if (!node.arguments[0])
1963
+ return (0, utils_1.throwError)(options, 'nasl.ui.gotoLink 缺少链接参数', node);
1904
1964
  return new utils_1.naslTypes.ExternalDestination({
1905
1965
  link: fixExpression(node?.arguments[0], options),
1906
1966
  });
@@ -1912,7 +1972,7 @@ function transform2UIFunction(node, calleeName, callee, options) {
1912
1972
  // }
1913
1973
  return new utils_1.naslTypes.CallLogic({
1914
1974
  calleeNamespace: 'nasl.ui',
1915
- calleeName: callee[2].name,
1975
+ calleeName: uiFunctionName,
1916
1976
  shortcut: true,
1917
1977
  /**
1918
1978
  * 这个函数是修复 AI 翻译出错的情况,与正常的 transform 做个区分
@@ -2047,13 +2107,33 @@ exports.transformAlert2ShowMessage = transformAlert2ShowMessage;
2047
2107
  function transformCall2Interface(node, calleeName, callee, options) {
2048
2108
  if (options?.isRestricted)
2049
2109
  return (0, utils_1.throwError)(options, '调用接口不支持在组件或默认值表达式中使用', node);
2110
+ const calleeNamespace = (0, utils_1.generate)(node.callee.object).code;
2111
+ const interfaceName = callee[callee.length - 1].name;
2112
+ const firstArg = node.arguments[0];
2113
+ const interfaceArguments = firstArg?.properties?.map((item) => new utils_1.naslTypes.Argument({
2114
+ keyword: item?.key?.name?.replace('_r_', '-'),
2115
+ expression: fixExpression(item?.value, options),
2116
+ })) || [];
2117
+ const secondArg = node.arguments[1];
2118
+ if (secondArg?.type === 'CallExpression') {
2119
+ const authCalleeName = (0, utils_1.generate)(secondArg.callee).code;
2120
+ if (authCalleeName.includes('authLogicsForCallInterface')) {
2121
+ const authArguments = secondArg.arguments[0]?.properties?.map((item) => new utils_1.naslTypes.Argument({
2122
+ keyword: item?.key?.name,
2123
+ expression: fixExpression(item?.value, options),
2124
+ })) || [];
2125
+ return new utils_1.naslTypes.CallAuthInterface({
2126
+ calleeNamespace,
2127
+ calleeName: interfaceName,
2128
+ arguments: interfaceArguments,
2129
+ authArguments,
2130
+ });
2131
+ }
2132
+ }
2050
2133
  return new utils_1.naslTypes.CallInterface({
2051
- calleeNamespace: (0, utils_1.generate)(node.callee.object).code,
2052
- calleeName: callee[callee.length - 1].name,
2053
- arguments: node?.arguments?.map((arg) => arg?.properties?.map((item) => new utils_1.naslTypes.Argument({
2054
- keyword: item?.key?.name?.replace('_r_', '-'),
2055
- expression: fixExpression(item?.value, options),
2056
- })) || []).flat() || [],
2134
+ calleeNamespace,
2135
+ calleeName: interfaceName,
2136
+ arguments: interfaceArguments,
2057
2137
  });
2058
2138
  }
2059
2139
  exports.transformCall2Interface = transformCall2Interface;
@@ -2140,7 +2220,7 @@ function transformCall2Logic(node, calleeName, callee, options) {
2140
2220
  // 未带前缀,补一下
2141
2221
  return transform2CallFunction(node, calleeName, node?.arguments || [], options);
2142
2222
  }
2143
- else if (server_1.default.getSqlFunction('mysql', calleeName) || calleeName === 'COUNTD') {
2223
+ else if ((0, service_1.getSqlFunction)('mysql', calleeName) || calleeName === 'COUNTD') {
2144
2224
  return transform2SqlFunction(node, calleeName, node?.arguments || [], options);
2145
2225
  }
2146
2226
  let newCalleeName = calleeName?.includes('__IDENTIFIER__') ? undefined : calleeName;
@@ -2171,6 +2251,30 @@ function transformCall2LogicWithAuth(node, calleeName, callee, options) {
2171
2251
  });
2172
2252
  }
2173
2253
  exports.transformCall2LogicWithAuth = transformCall2LogicWithAuth;
2254
+ function transformCall2GetCustomConfig(node, calleeName, callee, options) {
2255
+ const transformNodeFunction = options?.transformNodeFunction || transform2LogicItem;
2256
+ const arg = node.arguments?.[0];
2257
+ if (!arg || arg.type !== 'MemberExpression') {
2258
+ return (0, utils_1.throwError)(options, 'nasl.configuration.getCustomConfig 的参数必须是 {app|extensions.xxx}.configuration.{group}.{name} 形式的成员访问', node);
2259
+ }
2260
+ const flatCallee = flatMemberExpression(arg);
2261
+ const argName = flatCallee.map((n) => n.name).join('.');
2262
+ const configPropertyRegex = /^(app|extensions\.\w+)\.configuration\.(\w+)\.(\w+)$/;
2263
+ if (!configPropertyRegex.test(argName)) {
2264
+ return (0, utils_1.throwError)(options, `nasl.configuration.getCustomConfig 参数路径格式不正确,期望 {app|extensions.xxx}.configuration.{group}.{name},实际为 ${argName}`, node);
2265
+ }
2266
+ return new utils_1.naslTypes.CallLogic({
2267
+ calleeNamespace: 'nasl.configuration',
2268
+ calleeName: 'getCustomConfig',
2269
+ arguments: [
2270
+ new utils_1.naslTypes.Argument({
2271
+ keyword: 'name',
2272
+ expression: transformNodeFunction(arg, options),
2273
+ }),
2274
+ ],
2275
+ });
2276
+ }
2277
+ exports.transformCall2GetCustomConfig = transformCall2GetCustomConfig;
2174
2278
  function transformCall2Paginate(node, calleeName, callee, options) {
2175
2279
  const transformNodeFunction = options?.transformNodeFunction || transform2LogicItem;
2176
2280
  const newCallee = node.arguments || [];
@@ -2268,6 +2372,8 @@ function transformCall2DataQuery(node, calleeName, callee, options) {
2268
2372
  return (0, utils_1.throwError)(options, '数据查询组件不支持在前端使用', node);
2269
2373
  if (options?.isRestricted)
2270
2374
  return (0, utils_1.throwError)(options, '数据查询组件不支持在组件或默认值表达式中使用', node);
2375
+ if (options?.restrictDataQuery)
2376
+ return (0, utils_1.throwError)(options, '鉴权逻辑中不支持使用数据查询', node);
2271
2377
  if (options?.inCallQueryComponentField)
2272
2378
  return (0, utils_1.throwError)(options, '数据查询组件不支持嵌套使用,请将内层数据查询提取为独立的逻辑变量,再在外层查询中引用', node);
2273
2379
  const transformNodeFunction = options?.transformNodeFunction || transform2LogicItem;
@@ -2648,10 +2754,12 @@ function transform2LogicItem(node, options) {
2648
2754
  });
2649
2755
  transformManager.register('MemberExpression', transformMemberExpression);
2650
2756
  transformManager.register('OptionalMemberExpression', transformMemberExpression);
2757
+ transformManager.registerCallExpression((node, calleeName) => calleeName === 'require' && node.arguments[0]?.value?.startsWith('./tmp/'), transformRequire2JSBlock);
2651
2758
  transformManager.registerCallExpression((node, calleeName, callee) => callee.length === 1 && (node.callee.type === 'FunctionExpression' && node.callee.id?.name === 'match' || node.callee.type === 'ArrowFunctionExpression'), transformCallFunctionExpression2Match);
2652
2759
  transformManager.registerCallExpression((node, calleeName) => /^\$refs\./.test(calleeName), transformCall2CallViewElementLogic);
2653
2760
  transformManager.registerCallExpression((node, calleeName, callee) => callee.length === 2 && callee[0].type === 'Identifier' && callee[0].name.endsWith('Entity'), transformCall2CallEntityLogic);
2654
2761
  transformManager.registerCallExpression('nasl.oql.query', transformCall2OQLQuery);
2762
+ transformManager.registerCallExpression('nasl.configuration.getCustomConfig', transformCall2GetCustomConfig);
2655
2763
  transformManager.registerCallExpression('nasl.util.consoleLog', transformCall2ConsoleLog);
2656
2764
  transformManager.registerCallExpression('console.log', transformCall2ConsoleLog);
2657
2765
  transformManager.registerCallExpression((node, calleeName) => calleeName.startsWith('nasl.logging.'), transformCall2Logging);