@lcap/nasl 4.4.0-beta.9 → 4.4.0-rc.2

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 (204) hide show
  1. package/out/generator/genBundleFiles.d.ts.map +1 -1
  2. package/out/generator/genBundleFiles.js +32 -3
  3. package/out/generator/genBundleFiles.js.map +1 -1
  4. package/out/generator/qiankun.d.ts +1 -1
  5. package/out/generator/qiankun.d.ts.map +1 -1
  6. package/out/generator/qiankun.js +4 -0
  7. package/out/generator/qiankun.js.map +1 -1
  8. package/out/generator/release-body/body.d.ts +0 -1
  9. package/out/generator/release-body/body.d.ts.map +1 -1
  10. package/out/generator/release-body/body.js +1 -390
  11. package/out/generator/release-body/body.js.map +1 -1
  12. package/out/generator/release-body/data.d.ts.map +1 -1
  13. package/out/generator/release-body/data.js +1 -10
  14. package/out/generator/release-body/data.js.map +1 -1
  15. package/out/generator/release-body/share-content.js.map +1 -1
  16. package/out/generator/release-body/types.d.ts +1 -0
  17. package/out/generator/release-body/types.d.ts.map +1 -1
  18. package/out/generator/templates/chunk.js +1 -1
  19. package/out/generator/templates/runtime.js +2 -2
  20. package/out/natural/exports/nasl2Files.d.ts.map +1 -0
  21. package/out/natural/{getContext → exports}/nasl2Files.js +4 -4
  22. package/out/natural/exports/nasl2Files.js.map +1 -0
  23. package/out/natural/{transform2BatchActions.d.ts → exports/transform2BatchActions.d.ts} +1 -1
  24. package/out/natural/exports/transform2BatchActions.d.ts.map +1 -0
  25. package/out/natural/{transform2BatchActions.js → exports/transform2BatchActions.js} +68 -19
  26. package/out/natural/exports/transform2BatchActions.js.map +1 -0
  27. package/out/natural/index.d.ts +12 -12
  28. package/out/natural/index.d.ts.map +1 -1
  29. package/out/natural/index.js +12 -14
  30. package/out/natural/index.js.map +1 -1
  31. package/out/natural/{genNaturalTS.d.ts → old/getContext/genNaturalTS.d.ts} +12 -12
  32. package/out/natural/old/getContext/genNaturalTS.d.ts.map +1 -0
  33. package/out/natural/{genNaturalTS.js → old/getContext/genNaturalTS.js} +65 -65
  34. package/out/natural/old/getContext/genNaturalTS.js.map +1 -0
  35. package/out/natural/old/getContext/genTextualNASL.d.ts.map +1 -0
  36. package/out/natural/old/getContext/genTextualNASL.js.map +1 -0
  37. package/out/natural/{getContext → old/getContext}/getUILib.d.ts +1 -1
  38. package/out/natural/old/getContext/getUILib.d.ts.map +1 -0
  39. package/out/natural/{getContext → old/getContext}/getUILib.js +14 -14
  40. package/out/natural/old/getContext/getUILib.js.map +1 -0
  41. package/out/natural/{getContext → old/getContext}/index.d.ts +3 -3
  42. package/out/natural/old/getContext/index.d.ts.map +1 -0
  43. package/out/natural/{getContext → old/getContext}/index.js +4 -4
  44. package/out/natural/old/getContext/index.js.map +1 -0
  45. package/out/natural/old/getContext/naslStdlibMap.d.ts.map +1 -0
  46. package/out/natural/{getContext → old/getContext}/naslStdlibMap.js +10 -10
  47. package/out/natural/old/getContext/naslStdlibMap.js.map +1 -0
  48. package/out/natural/{transformTS2UI.d.ts → old/parser/transformTS2UI.d.ts} +2 -2
  49. package/out/natural/old/parser/transformTS2UI.d.ts.map +1 -0
  50. package/out/natural/{transformTS2UI.js → old/parser/transformTS2UI.js} +12 -13
  51. package/out/natural/old/parser/transformTS2UI.js.map +1 -0
  52. package/out/natural/{transformTSCode.d.ts → old/parser/transformTSCode.d.ts} +1 -1
  53. package/out/natural/old/parser/transformTSCode.d.ts.map +1 -0
  54. package/out/natural/{transformTSCode.js → old/parser/transformTSCode.js} +6 -6
  55. package/out/natural/old/parser/transformTSCode.js.map +1 -0
  56. package/out/natural/{tools.d.ts → old/tools.d.ts} +0 -4
  57. package/out/natural/old/tools.d.ts.map +1 -0
  58. package/out/natural/{tools.js → old/tools.js} +7 -25
  59. package/out/natural/old/tools.js.map +1 -0
  60. package/out/natural/{parseNaturalTS.d.ts → parser/parseNaturalTS.d.ts} +1 -1
  61. package/out/natural/parser/parseNaturalTS.d.ts.map +1 -0
  62. package/out/natural/{parseNaturalTS.js → parser/parseNaturalTS.js} +14 -10
  63. package/out/natural/parser/parseNaturalTS.js.map +1 -0
  64. package/out/natural/{parseNaturalTSXView.d.ts → parser/parseNaturalTSXView.d.ts} +1 -2
  65. package/out/natural/parser/parseNaturalTSXView.d.ts.map +1 -0
  66. package/out/natural/{parseNaturalTSXView.js → parser/parseNaturalTSXView.js} +51 -58
  67. package/out/natural/parser/parseNaturalTSXView.js.map +1 -0
  68. package/out/natural/transforms/checker/checkDataQueryCalleeNameOrder.d.ts +7 -0
  69. package/out/natural/transforms/checker/checkDataQueryCalleeNameOrder.d.ts.map +1 -0
  70. package/out/natural/transforms/checker/checkDataQueryCalleeNameOrder.js +38 -0
  71. package/out/natural/transforms/checker/checkDataQueryCalleeNameOrder.js.map +1 -0
  72. package/out/natural/transforms/checker/checkDefaultValue.d.ts +13 -0
  73. package/out/natural/transforms/checker/checkDefaultValue.d.ts.map +1 -0
  74. package/out/natural/transforms/checker/checkDefaultValue.js +33 -0
  75. package/out/natural/transforms/checker/checkDefaultValue.js.map +1 -0
  76. package/out/natural/transforms/checker/checkViewElement.d.ts +29 -0
  77. package/out/natural/transforms/checker/checkViewElement.d.ts.map +1 -0
  78. package/out/natural/transforms/checker/checkViewElement.js +422 -0
  79. package/out/natural/transforms/checker/checkViewElement.js.map +1 -0
  80. package/out/natural/transforms/checker/index.d.ts +17 -0
  81. package/out/natural/transforms/checker/index.d.ts.map +1 -0
  82. package/out/natural/transforms/checker/index.js +26 -0
  83. package/out/natural/transforms/checker/index.js.map +1 -0
  84. package/out/natural/transforms/transform2Entity.d.ts +8 -1
  85. package/out/natural/transforms/transform2Entity.d.ts.map +1 -1
  86. package/out/natural/transforms/transform2Entity.js +88 -18
  87. package/out/natural/transforms/transform2Entity.js.map +1 -1
  88. package/out/natural/transforms/transform2Enum.d.ts +1 -1
  89. package/out/natural/transforms/transform2Enum.d.ts.map +1 -1
  90. package/out/natural/transforms/transform2Enum.js +5 -1
  91. package/out/natural/transforms/transform2Enum.js.map +1 -1
  92. package/out/natural/transforms/transform2GlobalLogicDeclaration.d.ts +1 -1
  93. package/out/natural/transforms/transform2GlobalLogicDeclaration.d.ts.map +1 -1
  94. package/out/natural/transforms/transform2GlobalLogicDeclaration.js +3 -3
  95. package/out/natural/transforms/transform2GlobalLogicDeclaration.js.map +1 -1
  96. package/out/natural/transforms/transform2Logic.d.ts +1 -1
  97. package/out/natural/transforms/transform2Logic.d.ts.map +1 -1
  98. package/out/natural/transforms/transform2Logic.js +4 -4
  99. package/out/natural/transforms/transform2Logic.js.map +1 -1
  100. package/out/natural/transforms/transform2LogicItem.d.ts +6 -3
  101. package/out/natural/transforms/transform2LogicItem.d.ts.map +1 -1
  102. package/out/natural/transforms/transform2LogicItem.js +99 -110
  103. package/out/natural/transforms/transform2LogicItem.js.map +1 -1
  104. package/out/natural/transforms/transform2MetadataType.d.ts +1 -1
  105. package/out/natural/transforms/transform2MetadataType.d.ts.map +1 -1
  106. package/out/natural/transforms/transform2MetadataType.js +1 -1
  107. package/out/natural/transforms/transform2MetadataType.js.map +1 -1
  108. package/out/natural/transforms/transform2Param.d.ts +4 -0
  109. package/out/natural/transforms/transform2Param.d.ts.map +1 -0
  110. package/out/natural/transforms/transform2Param.js +114 -0
  111. package/out/natural/transforms/transform2Param.js.map +1 -0
  112. package/out/natural/transforms/transform2Structure.d.ts +1 -1
  113. package/out/natural/transforms/transform2Structure.d.ts.map +1 -1
  114. package/out/natural/transforms/transform2Structure.js +13 -2
  115. package/out/natural/transforms/transform2Structure.js.map +1 -1
  116. package/out/natural/transforms/transform2TypeAnnotation.d.ts +1 -1
  117. package/out/natural/transforms/transform2TypeAnnotation.d.ts.map +1 -1
  118. package/out/natural/transforms/transform2TypeAnnotation.js +2 -2
  119. package/out/natural/transforms/transform2TypeAnnotation.js.map +1 -1
  120. package/out/natural/transforms/transform2ValidationRule.d.ts +1 -1
  121. package/out/natural/transforms/transform2ValidationRule.d.ts.map +1 -1
  122. package/out/natural/transforms/transform2ValidationRule.js +1 -1
  123. package/out/natural/transforms/transform2ValidationRule.js.map +1 -1
  124. package/out/natural/transforms/transform2Variable.d.ts +2 -1
  125. package/out/natural/transforms/transform2Variable.d.ts.map +1 -1
  126. package/out/natural/transforms/transform2Variable.js +22 -2
  127. package/out/natural/transforms/transform2Variable.js.map +1 -1
  128. package/out/natural/transforms/transformThemeAndStyle.d.ts +1 -1
  129. package/out/natural/transforms/transformThemeAndStyle.d.ts.map +1 -1
  130. package/out/natural/transforms/transformThemeAndStyle.js +1 -1
  131. package/out/natural/transforms/transformThemeAndStyle.js.map +1 -1
  132. package/out/natural/transforms/utils/fetchFromComments.d.ts +3 -0
  133. package/out/natural/transforms/utils/fetchFromComments.d.ts.map +1 -0
  134. package/out/natural/transforms/utils/fetchFromComments.js +10 -0
  135. package/out/natural/transforms/utils/fetchFromComments.js.map +1 -0
  136. package/out/natural/transforms/utils/misc.d.ts +16 -0
  137. package/out/natural/transforms/utils/misc.d.ts.map +1 -0
  138. package/out/natural/transforms/utils/misc.js +240 -0
  139. package/out/natural/transforms/utils/misc.js.map +1 -0
  140. package/out/natural/transforms/utils/parseDecorator.d.ts +46 -0
  141. package/out/natural/transforms/utils/parseDecorator.d.ts.map +1 -0
  142. package/out/natural/transforms/utils/parseDecorator.js +180 -0
  143. package/out/natural/transforms/utils/parseDecorator.js.map +1 -0
  144. package/out/natural/utils/index.d.ts +59 -0
  145. package/out/natural/utils/index.d.ts.map +1 -0
  146. package/out/natural/utils/index.js +168 -0
  147. package/out/natural/utils/index.js.map +1 -0
  148. package/out/server/extendBaseNode.js +14 -0
  149. package/out/server/extendBaseNode.js.map +1 -1
  150. package/out/server/findReference.js +1 -1
  151. package/out/server/findReference.js.map +1 -1
  152. package/out/server/naslServer.d.ts.map +1 -1
  153. package/out/server/naslServer.js +33 -17
  154. package/out/server/naslServer.js.map +1 -1
  155. package/out/server/translator.js.map +1 -1
  156. package/out/service/autofix/rules/rule-convert-incompatible-assignment-to-union.js.map +1 -1
  157. package/out/service/storage/init.d.ts.map +1 -1
  158. package/out/service/storage/init.js +9 -2
  159. package/out/service/storage/init.js.map +1 -1
  160. package/out/templator/block2nasl/transformBlock2Nasl.js +2 -2
  161. package/out/templator/block2nasl/transformBlock2Nasl.js.map +1 -1
  162. package/out/utils/can-i-use.d.ts.map +1 -1
  163. package/out/utils/can-i-use.js +1 -0
  164. package/out/utils/can-i-use.js.map +1 -1
  165. package/package.json +9 -9
  166. package/sandbox/stdlib/nasl.core.ts +2 -0
  167. package/sandbox/stdlib/nasl.io.ts +1 -1
  168. package/sandbox/stdlib/nasl.oql.ts +2 -0
  169. package/out/natural/genNaturalTS.d.ts.map +0 -1
  170. package/out/natural/genNaturalTS.js.map +0 -1
  171. package/out/natural/genTextualNASL.d.ts.map +0 -1
  172. package/out/natural/genTextualNASL.js.map +0 -1
  173. package/out/natural/getContext/getUILib.d.ts.map +0 -1
  174. package/out/natural/getContext/getUILib.js.map +0 -1
  175. package/out/natural/getContext/index.d.ts.map +0 -1
  176. package/out/natural/getContext/index.js.map +0 -1
  177. package/out/natural/getContext/nasl2Files.d.ts.map +0 -1
  178. package/out/natural/getContext/nasl2Files.js.map +0 -1
  179. package/out/natural/getContext/naslStdlibMap.d.ts.map +0 -1
  180. package/out/natural/getContext/naslStdlibMap.js.map +0 -1
  181. package/out/natural/parseNaturalTS.d.ts.map +0 -1
  182. package/out/natural/parseNaturalTS.js.map +0 -1
  183. package/out/natural/parseNaturalTSXView.d.ts.map +0 -1
  184. package/out/natural/parseNaturalTSXView.js.map +0 -1
  185. package/out/natural/tools.d.ts.map +0 -1
  186. package/out/natural/tools.js.map +0 -1
  187. package/out/natural/transform2BatchActions.d.ts.map +0 -1
  188. package/out/natural/transform2BatchActions.js.map +0 -1
  189. package/out/natural/transformTS2UI.d.ts.map +0 -1
  190. package/out/natural/transformTS2UI.js.map +0 -1
  191. package/out/natural/transformTSCode.d.ts.map +0 -1
  192. package/out/natural/transformTSCode.js.map +0 -1
  193. package/out/natural/transforms/checkViewElement.d.ts +0 -12
  194. package/out/natural/transforms/checkViewElement.d.ts.map +0 -1
  195. package/out/natural/transforms/checkViewElement.js +0 -143
  196. package/out/natural/transforms/checkViewElement.js.map +0 -1
  197. package/out/natural/transforms/utils.d.ts +0 -137
  198. package/out/natural/transforms/utils.d.ts.map +0 -1
  199. package/out/natural/transforms/utils.js +0 -714
  200. package/out/natural/transforms/utils.js.map +0 -1
  201. /package/out/natural/{getContext → exports}/nasl2Files.d.ts +0 -0
  202. /package/out/natural/{genTextualNASL.d.ts → old/getContext/genTextualNASL.d.ts} +0 -0
  203. /package/out/natural/{genTextualNASL.js → old/getContext/genTextualNASL.js} +0 -0
  204. /package/out/natural/{getContext → old/getContext}/naslStdlibMap.d.ts +0 -0
@@ -3,11 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- 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.transform2Param = exports.fixLogicNode = exports.flatIfStatementForMatch = exports.flatMatchPatternsExpression = exports.getSelectMembers = exports.unflatMemberExpression = exports.flatMemberExpression = exports.fixExpression = exports.TransformManager = void 0;
7
- exports.transform2LogicItem = exports.transformNode2Directory = exports.transformCall2Paginate = exports.transformCall2LogicWithAuth = exports.transformCall2Logic = exports.transformCall2CallViewLogic = exports.transformCall2Extension = exports.transformCall2Connector = exports.transformCall2Interface = void 0;
8
- const utils_1 = require("./utils");
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;
8
+ const utils_1 = require("../utils");
9
+ const misc_1 = require("./utils/misc");
10
+ const checkDataQueryCalleeNameOrder_1 = require("./checker/checkDataQueryCalleeNameOrder");
9
11
  const transform2TypeAnnotation_1 = require("./transform2TypeAnnotation");
10
- const utils_2 = require("../../utils");
12
+ const transform2Param_1 = require("./transform2Param");
11
13
  const server_1 = __importDefault(require("../../server"));
12
14
  ;
13
15
  class TransformManager {
@@ -63,7 +65,7 @@ exports.TransformManager = TransformManager;
63
65
  function transformTSCode2SubLogic(node, options) {
64
66
  const transformNodeFunction = options?.transformNodeFunction || transform2LogicItem;
65
67
  const logic = new utils_1.naslTypes.SubLogic();
66
- logic.name = options.transformType === 'logic' && options.logic?.getSubLogicUniqueName ? options.logic.getSubLogicUniqueName() : `subLogic_${(0, utils_2.uuidv4)().slice(0, 2)}`;
68
+ logic.name = options.transformType === 'logic' && options.logic?.getSubLogicUniqueName ? options.logic.getSubLogicUniqueName() : `subLogic_${(0, utils_1.uuidv4)().slice(0, 2)}`;
67
69
  logic.body = logic.body.slice(0, 1);
68
70
  let parameters = [];
69
71
  let statements = [];
@@ -77,7 +79,7 @@ function transformTSCode2SubLogic(node, options) {
77
79
  statements = [...node?.body?.directives, ...node?.body?.body];
78
80
  }
79
81
  parameters.forEach((node) => {
80
- const param = transform2Param(node, options);
82
+ const param = (0, transform2Param_1.transform2Param)(node, options);
81
83
  if (param && !param?.typeAnnotation) {
82
84
  param.typeAnnotation = null;
83
85
  }
@@ -281,79 +283,6 @@ function fixLogicNode(node) {
281
283
  }
282
284
  }
283
285
  exports.fixLogicNode = fixLogicNode;
284
- function transform2Param(node, options) {
285
- const exclude = ['event'];
286
- if (node.type === 'ObjectProperty') {
287
- const typeAnnotation = node?.value?.name ? utils_1.naslTypes.TypeAnnotation.createPrimitive((node?.value).name) : null;
288
- const name = node.key.name;
289
- if (exclude.includes(name))
290
- return null;
291
- let defaultValueExpression = node.key.optional ? { type: 'NullLiteral' } : undefined;
292
- return new utils_1.naslTypes.Param({
293
- name,
294
- typeAnnotation,
295
- defaultValue: defaultValueExpression && new utils_1.naslTypes.DefaultValue({
296
- expression: transform2LogicItem(defaultValueExpression, { ...options, transformType: 'attr', isRestricted: true }),
297
- }),
298
- });
299
- }
300
- else if (node.type === 'TSPropertySignature') {
301
- const typeAnnotation = node.typeAnnotation?.typeAnnotation;
302
- const name = node.key.name;
303
- if (exclude.includes(name))
304
- return null;
305
- let defaultValueExpression = node.optional ? { type: 'NullLiteral' } : undefined;
306
- return new utils_1.naslTypes.Param({
307
- name,
308
- typeAnnotation: typeAnnotation && (0, transform2TypeAnnotation_1.transform2TypeAnnotation)(typeAnnotation, options) || undefined,
309
- defaultValue: defaultValueExpression && new utils_1.naslTypes.DefaultValue({
310
- expression: transform2LogicItem(defaultValueExpression, { ...options, transformType: 'attr', isRestricted: true }),
311
- }),
312
- });
313
- }
314
- else if (node.type === 'Identifier') {
315
- const typeAnnotation = node.typeAnnotation?.typeAnnotation;
316
- const name = node.name;
317
- if (exclude.includes(name))
318
- return null;
319
- let defaultValueExpression = node.optional ? { type: 'NullLiteral' } : undefined;
320
- return new utils_1.naslTypes.Param({
321
- name,
322
- required: !node.optional,
323
- typeAnnotation: typeAnnotation && (0, transform2TypeAnnotation_1.transform2TypeAnnotation)(typeAnnotation, options) || undefined,
324
- defaultValue: defaultValueExpression && new utils_1.naslTypes.DefaultValue({
325
- expression: transform2LogicItem(defaultValueExpression, { ...options, transformType: 'attr', isRestricted: true }),
326
- }),
327
- });
328
- }
329
- else if (node.type === 'AssignmentPattern') {
330
- const identifier = node.left;
331
- const typeAnnotation = identifier.typeAnnotation?.typeAnnotation;
332
- let defaultValueExpression;
333
- if (node.type === 'AssignmentPattern') {
334
- if (node.right)
335
- defaultValueExpression = node.right;
336
- else if (identifier.optional) {
337
- defaultValueExpression = { type: 'NullLiteral' };
338
- }
339
- }
340
- const exclude = ['event'];
341
- const name = identifier.name;
342
- if (exclude.includes(name))
343
- return null;
344
- return new utils_1.naslTypes.Param({
345
- name,
346
- typeAnnotation: typeAnnotation && (0, transform2TypeAnnotation_1.transform2TypeAnnotation)(typeAnnotation, options) || undefined,
347
- defaultValue: defaultValueExpression && new utils_1.naslTypes.DefaultValue({
348
- expression: transform2LogicItem(defaultValueExpression, { ...options, transformType: 'attr', isRestricted: true }),
349
- }),
350
- });
351
- }
352
- else {
353
- return (0, utils_1.throwError)(options, '在输入参数中不支持节点类型', node);
354
- }
355
- }
356
- exports.transform2Param = transform2Param;
357
286
  function transformCallExpressionToBinaryExpression(node, calleeName, callee, options) {
358
287
  const transformNodeFunction = options?.transformNodeFunction || transform2LogicItem;
359
288
  const argument = node?.arguments;
@@ -369,10 +298,11 @@ function transformCallExpressionToBinaryExpression(node, calleeName, callee, opt
369
298
  IN: 'in',
370
299
  IS_NULL: 'isNull',
371
300
  };
372
- const limitMap = ['STARTS_WITH', 'ENDS_WITH', 'LIKE', 'IN', 'IS_NULL'];
373
- if (limitMap.includes(calleeName) && options.transformType === 'logic' && !options.inCallQueryComponentField) {
374
- return (0, utils_1.throwError)(options, `${calleeName} 仅支持在数据查询中使用`, node);
375
- }
301
+ // 4.4版本支持使用: https://projectmanage.netease-official.lcap.163yun.com/dashboard/FeatureDetail?id=2903738850213120
302
+ // const limitMap = ['STARTS_WITH', 'ENDS_WITH', 'LIKE', 'IN', 'IS_NULL'];
303
+ // if (limitMap.includes(calleeName) && options.transformType === 'logic' && !options.inCallQueryComponentField) {
304
+ // return throwError(options, `${calleeName} 仅支持在数据查询中使用`, node);
305
+ // }
376
306
  if (calleeName === 'IS_NULL') {
377
307
  return new utils_1.naslTypes.UnaryExpression({
378
308
  operator: 'isNull',
@@ -412,6 +342,13 @@ function collectExpressions(node, operator, expressions, options) {
412
342
  }
413
343
  }
414
344
  }
345
+ /**
346
+ * 检查节点是否为 null 或 undefined
347
+ */
348
+ function isNullOrUndefined(node) {
349
+ return (node?.type === 'NullLiteral' ||
350
+ (node?.type === 'Identifier' && node.name === 'undefined'));
351
+ }
415
352
  function transform2VariadicExpression(node, options) {
416
353
  // 创建一个新的 VariadicExpression
417
354
  const result = {
@@ -430,13 +367,13 @@ function transform2BinaryExpression(node, options) {
430
367
  node.operator = '==';
431
368
  if (node.operator === '!==')
432
369
  node.operator = '!=';
433
- if (node.operator === '==' && node.right?.type === 'NullLiteral' && options?.inCallQueryComponentField) {
370
+ if (node.operator === '==' && isNullOrUndefined(node.right) && options?.inCallQueryComponentField) {
434
371
  return new utils_1.naslTypes.UnaryExpression({
435
372
  operator: 'isNull',
436
373
  argument: transformNodeFunction(node.left, options),
437
374
  });
438
375
  }
439
- if (node.operator === '!=' && node.right?.type === 'NullLiteral' && options?.inCallQueryComponentField) {
376
+ if (node.operator === '!=' && isNullOrUndefined(node.right) && options?.inCallQueryComponentField) {
440
377
  return new utils_1.naslTypes.UnaryExpression({
441
378
  operator: '!',
442
379
  argument: new utils_1.naslTypes.UnaryExpression({
@@ -623,7 +560,7 @@ function transform2ArrayPattern(decl, options) {
623
560
  }
624
561
  else {
625
562
  getVariableNode = new utils_1.naslTypes.Identifier({
626
- name: `temp_${(0, utils_2.uuidv4)().slice(0, 4)}`,
563
+ name: `temp_${(0, utils_1.uuidv4)().slice(0, 4)}`,
627
564
  });
628
565
  logicItems.push(new utils_1.naslTypes.Assignment({
629
566
  left: getVariableNode,
@@ -839,13 +776,13 @@ function transform2SelectQueryFieldExpression(node, options) {
839
776
  let expression = node.value;
840
777
  let asNameNode = node.key;
841
778
  if (expression.type === 'Identifier') {
842
- const isSameName = (0, utils_2.firstUpperCase)(asNameNode.name) === expression.name;
779
+ const isSameName = (0, utils_1.firstUpperCase)(asNameNode.name) === expression.name;
843
780
  if (!isSameName) {
844
- return (0, utils_1.throwError)(options, `字段名需为 ${(0, utils_2.firstLowerCase)(expression.name)}, 目前为: ${asNameNode.name}, 相关代码如下`, node);
781
+ return (0, utils_1.throwError)(options, `字段名需为 ${(0, utils_1.firstLowerCase)(expression.name)}, 目前为: ${asNameNode.name}, 相关代码如下`, node);
845
782
  }
846
783
  return new utils_1.naslTypes.QueryFieldExpression({
847
784
  isDotStar: true,
848
- asName: (0, utils_2.firstUpperCase)(asNameNode.name) === expression.name ? undefined : asNameNode.name,
785
+ asName: (0, utils_1.firstUpperCase)(asNameNode.name) === expression.name ? undefined : asNameNode.name,
849
786
  entityAsName: expression.name,
850
787
  propertyName: '',
851
788
  });
@@ -853,7 +790,7 @@ function transform2SelectQueryFieldExpression(node, options) {
853
790
  else if (expression.type === 'MemberExpression') {
854
791
  return new utils_1.naslTypes.QueryFieldExpression({
855
792
  isDotStar: false,
856
- asName: (0, utils_2.firstUpperCase)(asNameNode.name) === expression.property.name ? undefined : asNameNode.name,
793
+ asName: (0, utils_1.firstUpperCase)(asNameNode.name) === expression.property.name ? undefined : asNameNode.name,
857
794
  entityAsName: expression.object.name,
858
795
  propertyName: expression.property.name,
859
796
  });
@@ -887,7 +824,7 @@ function transform2AnonymousFunction(node, options) {
887
824
  return (0, utils_1.throwError)(options, 'Anonymous function with block statement is not supported', node);
888
825
  const transformNodeFunction = options?.transformNodeFunction || transform2LogicItem;
889
826
  return new utils_1.naslTypes.AnonymousFunction({
890
- params: node.params.map((param) => transform2Param(param, options)).filter(Boolean),
827
+ params: node.params.map((param) => (0, transform2Param_1.transform2Param)(param, options)).filter(Boolean),
891
828
  body: transformNodeFunction(node.body, options),
892
829
  });
893
830
  }
@@ -1024,6 +961,22 @@ function transform2StringInterpolation(node, options) {
1024
961
  end: element.end,
1025
962
  }))];
1026
963
  expressions.sort((a, b) => a.start - b.start);
964
+ // 在数据查询组件字段中,将模板字符串转换为 SQL CONCAT 函数
965
+ if (options?.inCallQueryComponentField) {
966
+ const transformedExpressions = expressions
967
+ // 过滤掉空字符串
968
+ .filter((item) => !(item.type === 'StringLiteral' && item.value === ''))
969
+ .map((item) => transformNodeFunction(item, options))
970
+ .filter(Boolean);
971
+ return new utils_1.naslTypes.CallFunction({
972
+ calleeNamespace: 'nasl.sqlFunction',
973
+ calleeName: 'CONCAT',
974
+ arguments: transformedExpressions.map((expr, index) => new utils_1.naslTypes.Argument({
975
+ expression: expr,
976
+ keyword: `param${index + 1}`,
977
+ })),
978
+ });
979
+ }
1027
980
  return new utils_1.naslTypes.StringInterpolation({
1028
981
  expressions: expressions.map((item) => transformNodeFunction(item, options))?.filter(Boolean),
1029
982
  });
@@ -1357,7 +1310,7 @@ function transformCallFunctionExpression2Match(node, calleeName, callee, options
1357
1310
  return (0, utils_1.throwError)(options, 'Match Case 的 if 中只能写一个 return 语句', _case.consequent);
1358
1311
  }
1359
1312
  }
1360
- let bodyNode = transformNodeFunction(argument, options);
1313
+ let bodyNode = argument ? transformNodeFunction(argument, options) : undefined;
1361
1314
  let body = [];
1362
1315
  if (bodyNode) {
1363
1316
  body = [bodyNode];
@@ -1616,7 +1569,7 @@ function transform2CallOtherNASLLogic(node, calleeName, callee, options) {
1616
1569
  }
1617
1570
  exports.transform2CallOtherNASLLogic = transform2CallOtherNASLLogic;
1618
1571
  function transform2CallFunction(node, calleeName, argument, options) {
1619
- calleeName = utils_1.replaceCallFunctionMap?.[calleeName] || calleeName;
1572
+ calleeName = misc_1.replaceCallFunctionMap?.[calleeName] || calleeName;
1620
1573
  const func = server_1.default ? server_1.default.getBuildInFunction(calleeName) : null;
1621
1574
  let newArguments = argument.map((arg, index) => {
1622
1575
  let supportSubLogic = false;
@@ -1663,6 +1616,16 @@ function transform2CallFunction(node, calleeName, argument, options) {
1663
1616
  new utils_1.naslTypes.TypeAnnotation()
1664
1617
  ];
1665
1618
  }
1619
+ if (calleeName === 'FromString') {
1620
+ if (newTypeArguments?.[0]?.typeName === 'Time' && newArguments?.[0]?.expression?.concept === 'StringLiteral') {
1621
+ const timeValue = newArguments?.[0]?.expression?.value;
1622
+ // 验证时分秒格式:严格的 HH:mm:ss (两位数字)
1623
+ const timeRegex = /^([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/;
1624
+ if (timeValue && !timeRegex.test(timeValue)) {
1625
+ return (0, utils_1.throwError)(options, `FromString<Time> 的参数值 "${timeValue}" 不符合时分秒格式,必须为 HH:mm:ss 格式`, node);
1626
+ }
1627
+ }
1628
+ }
1666
1629
  if (func) {
1667
1630
  const needTypeMap = [
1668
1631
  'ListDistinctBy',
@@ -1709,6 +1672,14 @@ function transform2CallFunction(node, calleeName, argument, options) {
1709
1672
  expression: utils_1.naslTypes.BaseNode.from(p.defaultExpression.toJSON()),
1710
1673
  }));
1711
1674
  }
1675
+ if (np && p?.defaultExpression?.concept === 'AnonymousFunction' && p?.name === 'by' && p?.parentKey === 'params') {
1676
+ // 特殊处理下,因为 Params 中有默认行为,需要占个位
1677
+ if (np.expression?.params) {
1678
+ np.expression.params.forEach((param) => {
1679
+ param.typeAnnotation = null;
1680
+ });
1681
+ }
1682
+ }
1712
1683
  // 类型不匹配时,使用默认值
1713
1684
  if (calleeName === "GetDateCount" && idx === func.params?.length - 1 && np?.expression?.concept !== 'StringLiteral') {
1714
1685
  np &&
@@ -1751,13 +1722,13 @@ function transform2CallFunction(node, calleeName, argument, options) {
1751
1722
  }
1752
1723
  const nodeElement = new utils_1.naslTypes.CallFunction({
1753
1724
  calleeNamespace: 'nasl.util',
1754
- calleeName: utils_1.replaceCallFunctionMap?.[calleeName] || calleeName,
1725
+ calleeName: misc_1.replaceCallFunctionMap?.[calleeName] || calleeName,
1755
1726
  arguments: newArguments,
1756
1727
  typeArguments: newTypeArguments
1757
1728
  // typeArguments: node?.typeParameters?.params.map((curType: any) => transform2TypeAnnotation({ ...curType, typeNamespace })),
1758
1729
  });
1759
1730
  if (calleeName === 'ListSort') {
1760
- const handledNode = (0, utils_1.handleListSort)(nodeElement?.toJSON(), options);
1731
+ const handledNode = (0, misc_1.handleListSort)(nodeElement?.toJSON(), options);
1761
1732
  if (handledNode === null) {
1762
1733
  return (0, utils_1.throwError)(options, 'ListSort 函数使用错误,ListSort 定义如下:export function ListSort<T>(list: List<T>, ...fns: ((item: T) => { asc: Boolean, by: Boolean | Long | Decimal | String | Date | Time | DateTime; })[]): List<T>;', node);
1763
1734
  }
@@ -1792,7 +1763,7 @@ function transform2SqlFunction(node, calleeName, argument, options) {
1792
1763
  }));
1793
1764
  const nodeElement = new utils_1.naslTypes.CallFunction({
1794
1765
  calleeNamespace: 'nasl.sqlFunction',
1795
- calleeName: utils_1.replaceCallFunctionMap?.[calleeName] || calleeName,
1766
+ calleeName: misc_1.replaceCallFunctionMap?.[calleeName] || calleeName,
1796
1767
  arguments: [...addArguments, ...newArguments],
1797
1768
  typeArguments: node?.typeParameters?.params.map((curType) => (0, transform2TypeAnnotation_1.transform2TypeAnnotation)({ ...curType }, options)).filter(Boolean),
1798
1769
  // typeArguments: node?.typeParameters?.params.map((curType: any) => transform2TypeAnnotation({ ...curType, typeNamespace })),
@@ -1912,12 +1883,12 @@ function transform2ForEachStatement(node, calleeName, callee, options) {
1912
1883
  each: transformNodeFunction(newCallee[0], options),
1913
1884
  start: transformNodeFunction(newCallee[1], options),
1914
1885
  end: newCallee[2]?.name === '__IDENTIFIER__' ? undefined : transformNodeFunction(newCallee[2], options),
1915
- item: arrowFunction?.params?.[0] ? transform2Param(arrowFunction.params[0], options) || undefined : new utils_1.naslTypes.Param({
1886
+ item: arrowFunction?.params?.[0] ? (0, transform2Param_1.transform2Param)(arrowFunction.params[0], options, true) || undefined : new utils_1.naslTypes.Param({
1916
1887
  name: 'item',
1917
1888
  typeAnnotation: undefined,
1918
1889
  }),
1919
- index: arrowFunction?.params?.[1] ? transform2Param(arrowFunction.params[1], options) || undefined : new utils_1.naslTypes.Param({
1920
- name: `index_${(0, utils_2.uuidv4)().slice(0, 4)}`,
1890
+ index: arrowFunction?.params?.[1] ? (0, transform2Param_1.transform2Param)(arrowFunction.params[1], options, true) || undefined : new utils_1.naslTypes.Param({
1891
+ name: `index_${(0, utils_1.uuidv4)().slice(0, 4)}`,
1921
1892
  typeAnnotation: utils_1.naslTypes.TypeAnnotation.createPrimitive('Long'),
1922
1893
  }),
1923
1894
  body: transformBlockBody(body, options),
@@ -1960,12 +1931,12 @@ function transformForOf2ForEachStatement(node, options) {
1960
1931
  typeAnnotation: utils_1.naslTypes.TypeAnnotation.createPrimitive('Long'),
1961
1932
  }),
1962
1933
  end: endNode?.name === '__IDENTIFIER__' ? undefined : endNode ? transformNodeFunction(endNode, options) : undefined,
1963
- item: itemNode ? transform2Param(itemNode, options) || undefined : new utils_1.naslTypes.Param({
1934
+ item: itemNode ? (0, transform2Param_1.transform2Param)(itemNode, options, true) || undefined : new utils_1.naslTypes.Param({
1964
1935
  name: 'item',
1965
1936
  typeAnnotation: undefined,
1966
1937
  }),
1967
- index: indexNode ? transform2Param(indexNode, options) || undefined : new utils_1.naslTypes.Param({
1968
- name: `index_${(0, utils_2.uuidv4)().slice(0, 2)}`,
1938
+ index: indexNode ? (0, transform2Param_1.transform2Param)(indexNode, options, true) || undefined : new utils_1.naslTypes.Param({
1939
+ name: `index_${(0, utils_1.uuidv4)().slice(0, 2)}`,
1969
1940
  typeAnnotation: utils_1.naslTypes.TypeAnnotation.createPrimitive('Long'),
1970
1941
  }),
1971
1942
  body: transformBlockBody(body, options),
@@ -1984,9 +1955,9 @@ function transformForEach2ForEachStatement(node, calleeName, callee, options) {
1984
1955
  value: '0',
1985
1956
  typeAnnotation: utils_1.naslTypes.TypeAnnotation.createPrimitive('Long'),
1986
1957
  }),
1987
- item: transform2Param(arrowFunction.params[0], options) || undefined,
1988
- index: arrowFunction.params[1] ? transform2Param(arrowFunction.params[1], options) || undefined : new utils_1.naslTypes.Param({
1989
- name: `index_${(0, utils_2.uuidv4)().slice(0, 2)}`,
1958
+ item: (0, transform2Param_1.transform2Param)(arrowFunction.params[0], options) || undefined,
1959
+ index: arrowFunction.params[1] ? (0, transform2Param_1.transform2Param)(arrowFunction.params[1], options) || undefined : new utils_1.naslTypes.Param({
1960
+ name: `index_${(0, utils_1.uuidv4)().slice(0, 2)}`,
1990
1961
  typeAnnotation: utils_1.naslTypes.TypeAnnotation.createPrimitive('Long'),
1991
1962
  }),
1992
1963
  body: transformBlockBody(body, options),
@@ -2103,7 +2074,7 @@ exports.transformCall2CallViewLogic = transformCall2CallViewLogic;
2103
2074
  function transformCall2Logic(node, calleeName, callee, options) {
2104
2075
  if (options?.isRestricted)
2105
2076
  return (0, utils_1.throwError)(options, '调用逻辑不支持在组件或默认值表达式中使用,请尝试单独赋值', node);
2106
- if (utils_1.callFunctionMap.includes(calleeName)) {
2077
+ if (misc_1.callFunctionMap.includes(calleeName)) {
2107
2078
  // 未带前缀,补一下
2108
2079
  return transform2CallFunction(node, calleeName, node?.arguments || [], options);
2109
2080
  }
@@ -2247,7 +2218,7 @@ function transformCall2DataQuery(node, calleeName, callee, options) {
2247
2218
  if (!flatted)
2248
2219
  return;
2249
2220
  const calleeNames = flatted && flatted.map((item) => item?.calleeName).filter((name) => name !== '$');
2250
- const isOrderCorrect = (0, utils_1.checkOQLCalleeNameOrder)(calleeNames);
2221
+ const isOrderCorrect = (0, checkDataQueryCalleeNameOrder_1.checkDataQueryCalleeNameOrder)(calleeNames);
2251
2222
  if (!isOrderCorrect) {
2252
2223
  return (0, utils_1.throwError)(options, '调用顺序错误,期望的调用顺序为 FROM -> JOIN -> WHERE -> GROUP_BY -> SELECT/AGGR_SELECT -> HAVING -> ORDER_BY。其中,FROM在最外层,FROM内部是零到多层JOIN嵌套调用,在最内层的JOIN内部是 WHERE -> GROUP_BY -> SELECT/AGGR_SELECT -> HAVING -> ORDER_BY 的调用顺序。', node);
2253
2224
  }
@@ -2381,11 +2352,11 @@ function transformCall2DataQuery(node, calleeName, callee, options) {
2381
2352
  }
2382
2353
  const originName = arg.key?.name || '';
2383
2354
  if (originName && originName.charAt(0) === originName.charAt(0).toUpperCase()) {
2384
- const needName = (0, utils_2.firstLowerCase)(originName);
2355
+ const needName = (0, utils_1.firstLowerCase)(originName);
2385
2356
  return (0, utils_1.throwError)(options, `SELECT 局部列第一层命名不符合规范, 应为${needName}, 但实际为${originName}`, node);
2386
2357
  }
2387
- const entityName = (0, utils_2.firstUpperCase)(originName);
2388
- const needNameList = entityAsNames.map(item => (0, utils_2.firstLowerCase)(item))?.join('或');
2358
+ const entityName = (0, utils_1.firstUpperCase)(originName);
2359
+ const needNameList = entityAsNames.map(item => (0, utils_1.firstLowerCase)(item))?.join('或');
2389
2360
  if (!entityAsNames.includes(entityName)) {
2390
2361
  return (0, utils_1.throwError)(options, `SELECT 局部列第一层命名不符合规范, 应为${needNameList}, 但实际为${originName}`, node);
2391
2362
  }
@@ -2535,6 +2506,24 @@ function transformNode2Directory(node) {
2535
2506
  return newNode;
2536
2507
  }
2537
2508
  exports.transformNode2Directory = transformNode2Directory;
2509
+ /**
2510
+ * 将默认值表达式转换为 NASL DefaultValue 对象
2511
+ */
2512
+ function transform2DefaultValue(node, options) {
2513
+ const defaultValue = new utils_1.naslTypes.DefaultValue();
2514
+ try {
2515
+ const expression = transform2LogicItem(node, options);
2516
+ if (expression) {
2517
+ defaultValue.expression = expression;
2518
+ return defaultValue;
2519
+ }
2520
+ }
2521
+ catch (error) {
2522
+ return (0, utils_1.throwError)(options, `默认值解析失败: ${error.message}`, node);
2523
+ }
2524
+ return undefined;
2525
+ }
2526
+ exports.transform2DefaultValue = transform2DefaultValue;
2538
2527
  function transform2LogicItem(node, options) {
2539
2528
  fixLogicNode(node);
2540
2529
  const transformNodeFunction = options?.transformNodeFunction || transform2LogicItem;