@lcap/nasl-language-server-core 4.3.0-rc.5 → 4.3.0-rc.6

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 (47) hide show
  1. package/out/checker.d.ts +1 -1
  2. package/out/checker.d.ts.map +1 -1
  3. package/out/checker.js +32 -4
  4. package/out/checker.js.map +1 -1
  5. package/out/reference-manager/collect-q-name.d.ts.map +1 -1
  6. package/out/reference-manager/collect-q-name.js +6 -3
  7. package/out/reference-manager/collect-q-name.js.map +1 -1
  8. package/out/typer/component-def-manager/component-def-manager.js +1 -1
  9. package/out/typer/component-def-manager/component-def-manager.js.map +1 -1
  10. package/out/typer/dispatch-call.d.ts.map +1 -1
  11. package/out/typer/dispatch-call.js +6 -0
  12. package/out/typer/dispatch-call.js.map +1 -1
  13. package/out/typer/dispatch-expr.d.ts.map +1 -1
  14. package/out/typer/dispatch-expr.js +73 -18
  15. package/out/typer/dispatch-expr.js.map +1 -1
  16. package/out/typer/dispatch-stmt.d.ts.map +1 -1
  17. package/out/typer/dispatch-stmt.js +10 -5
  18. package/out/typer/dispatch-stmt.js.map +1 -1
  19. package/out/typer/dispatch-view.d.ts.map +1 -1
  20. package/out/typer/dispatch-view.js +7 -5
  21. package/out/typer/dispatch-view.js.map +1 -1
  22. package/out/typer/oql-checker/chain-call-transformer.d.ts.map +1 -1
  23. package/out/typer/oql-checker/chain-call-transformer.js +17 -4
  24. package/out/typer/oql-checker/chain-call-transformer.js.map +1 -1
  25. package/out/typer/oql-checker/ts-parser.d.ts.map +1 -1
  26. package/out/typer/oql-checker/ts-parser.js +173 -23
  27. package/out/typer/oql-checker/ts-parser.js.map +1 -1
  28. package/out/typer/overload-helper.d.ts.map +1 -1
  29. package/out/typer/overload-helper.js +12 -15
  30. package/out/typer/overload-helper.js.map +1 -1
  31. package/out/typer/subster.d.ts +1 -1
  32. package/out/typer/subster.d.ts.map +1 -1
  33. package/out/typer/subster.js +7 -3
  34. package/out/typer/subster.js.map +1 -1
  35. package/out/typer/type-predicate.d.ts.map +1 -1
  36. package/out/typer/type-predicate.js +38 -2
  37. package/out/typer/type-predicate.js.map +1 -1
  38. package/out/typer/typer.d.ts +18 -1
  39. package/out/typer/typer.d.ts.map +1 -1
  40. package/out/typer/typer.js +95 -13
  41. package/out/typer/typer.js.map +1 -1
  42. package/out/typer/unifier.js +2 -2
  43. package/out/typer/unifier.js.map +1 -1
  44. package/out/utils/parseTsClassType.d.ts.map +1 -1
  45. package/out/utils/parseTsClassType.js +0 -2
  46. package/out/utils/parseTsClassType.js.map +1 -1
  47. package/package.json +5 -5
package/out/checker.d.ts CHANGED
@@ -42,7 +42,7 @@ export declare function createErrorDiagnoser(context: DiagnoseContext): {
42
42
  clearDiagnostics: (node?: SyntaxNode) => void;
43
43
  getDiagnostics: (node: SyntaxNode) => NodeDiagnosticsMap | undefined;
44
44
  getAllDiagnostics: () => FileDiagnosticsMap;
45
- getDebugDiagnostics: () => {
45
+ getDebugDiagnostics: (normalize?: boolean) => {
46
46
  message: string;
47
47
  severity: string;
48
48
  nodePath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../src/checker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EAU2G,GAAG,EAMxH,QAAQ,EAET,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACgE,cAAc,EAGpF,MAAM,qBAAqB,CAAC;AAS7B,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAK5C,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAMpE,oBAAY,QAAQ;IAClB,IAAI,YAAY;IAChB,KAAK,UAAU;CAChB;AAED,MAAM,MAAM,UAAU,GAAG,kBAAkB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAEnE,KAAK,YAAY,GAAG;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC;AAMF,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;AAEpE,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;AAMrE,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAqBF,KAAK,eAAe,GAAG;IACrB,GAAG,EAAE,GAAG,CAAC;IACT,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,yBAAyB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC;AA4OF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe;oCA+xIpB,OAAO;sDAPW,gBAAgB,EAAE;;;;sBAhBjD,UAAU,GAAG,SAAS;;;8BA4Df,UAAU;2BAuBb,UAAU;;;iBAW3B,MAAM;kBACL,MAAM;kBACN,MAAM;qBACH,MAAM;;kBAhzIF,UAAU,WAAW,MAAM,YAAY,YAAY;EAk1IzE;AAGD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IAEX,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACrC,mBAAmB,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACvC,qBAAqB,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;CAC1C;AAMD,eAAO,MAAM,6BAA6B,aAC9B,UAAU,+DAGnB,MAAM,gBAAgB,CAyCxB,CAAC;AAMF,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
1
+ {"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../src/checker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EAU2G,GAAG,EAMxH,QAAQ,EAET,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACgE,cAAc,EAGpF,MAAM,qBAAqB,CAAC;AAS7B,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAK5C,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAMpE,oBAAY,QAAQ;IAClB,IAAI,YAAY;IAChB,KAAK,UAAU;CAChB;AAED,MAAM,MAAM,UAAU,GAAG,kBAAkB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAEnE,KAAK,YAAY,GAAG;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC;AAMF,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;AAEpE,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;AAMrE,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAqBF,KAAK,eAAe,GAAG;IACrB,GAAG,EAAE,GAAG,CAAC;IACT,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,yBAAyB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC;AA4OF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe;oCA2zIpB,OAAO;sDAPW,gBAAgB,EAAE;;;;sBAhBjD,UAAU,GAAG,SAAS;;;8BA4Df,UAAU;2BAuBb,UAAU;;;iBAW3B,MAAM;kBACL,MAAM;kBACN,MAAM;qBACH,MAAM;;kBA50IF,UAAU,WAAW,MAAM,YAAY,YAAY;EA+2IzE;AAGD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IAEX,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACrC,mBAAmB,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACvC,qBAAqB,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;CAC1C;AAMD,eAAO,MAAM,6BAA6B,aAC9B,UAAU,+DAGnB,MAAM,gBAAgB,CAyCxB,CAAC;AAMF,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
package/out/checker.js CHANGED
@@ -1970,6 +1970,17 @@ function createErrorDiagnoser(context) {
1970
1970
  */
1971
1971
  function* checkBusinessComponent(node) {
1972
1972
  env.enterScope(node);
1973
+ if (node.params?.length) {
1974
+ yield* checkParams(node.params);
1975
+ yield* (0, nasl_utils_1.wrapForEachToGenerator)(node.params, function* (node) {
1976
+ yield* checkNode(node);
1977
+ });
1978
+ }
1979
+ if (node.variables?.length) {
1980
+ yield* (0, nasl_utils_1.wrapForEachToGenerator)(node.variables, function* (node) {
1981
+ yield* checkNode(node);
1982
+ });
1983
+ }
1973
1984
  // 组件元素
1974
1985
  if (node.elements?.length) {
1975
1986
  yield* (0, nasl_utils_1.wrapForEachToGenerator)(node.elements, function* (node) {
@@ -2929,15 +2940,27 @@ function createErrorDiagnoser(context) {
2929
2940
  }
2930
2941
  return type;
2931
2942
  function checkListSort(nd) {
2943
+ const parTy = env.getType(nd.arguments?.[0]);
2944
+ let paramType = '未知类型';
2945
+ if (parTy?.typeName === 'List') {
2946
+ paramType = (0, type_manager_1.showUserLevelType)(parTy.typeArguments?.[0] || type_manager_1.naslAnyTy);
2947
+ }
2948
+ const expectTy = `{ by: (item: ${paramType}) => 未知类型, asc: 布尔值 }`;
2932
2949
  for (let i = 1; i < nd.arguments.length; i++) {
2933
2950
  const expr = nd.arguments[i].expression;
2934
2951
  let resTy;
2935
2952
  if (expr?.concept === 'AnonymousFunction') {
2936
2953
  resTy = env.getType(expr.body);
2954
+ if (!nasl_concepts_1.asserts.isNewComposite(expr.body)) {
2955
+ error(nd.arguments[i], (0, sem_diag_1.mkIncompatibleTyErr)(env, env.getType(expr) || type_manager_1.naslAnyTy, expectTy));
2956
+ }
2937
2957
  }
2938
2958
  else if (expr?.concept === 'SubLogic') {
2939
2959
  resTy = env.getType(expr.returns?.[0]);
2940
2960
  }
2961
+ else {
2962
+ error(nd.arguments[i], (0, sem_diag_1.mkIncompatibleTyErr)(env, env.getType(expr) || type_manager_1.naslAnyTy, expectTy));
2963
+ }
2941
2964
  const byTy = resTy?.properties?.find((prop) => prop.name === 'by')?.typeAnnotation;
2942
2965
  if (byTy?.typeKind === 'union') {
2943
2966
  // 这里使用 node.arguments[i] 则无红框,猜测是 ListSort 的特殊交互导致的问题
@@ -3851,7 +3874,9 @@ function createErrorDiagnoser(context) {
3851
3874
  * @param node
3852
3875
  */
3853
3876
  function* checkQueryOrderByExpression(node) {
3854
- yield* checkNode(node.orderElement);
3877
+ if (ensureNodeKeyExists(node, 'orderElement')) {
3878
+ yield* checkNode(node.orderElement);
3879
+ }
3855
3880
  yield* checkPlayground(node.orderElementPlayground);
3856
3881
  }
3857
3882
  /**
@@ -4180,6 +4205,8 @@ function createErrorDiagnoser(context) {
4180
4205
  return yield* checkBackendVariable(node);
4181
4206
  case 'Param':
4182
4207
  return yield* checkParam(node);
4208
+ case 'ParamWithGroup':
4209
+ return yield* checkParam(node);
4183
4210
  case 'Return':
4184
4211
  return yield* checkReturn(node);
4185
4212
  case 'DefaultValue':
@@ -4504,7 +4531,7 @@ function createErrorDiagnoser(context) {
4504
4531
  function getAllDiagnostics() {
4505
4532
  return diagnosticMap;
4506
4533
  }
4507
- function getDebugDiagnostics() {
4534
+ function getDebugDiagnostics(normalize = false) {
4508
4535
  const diagMap = getAllDiagnostics();
4509
4536
  const flattenedDiags = [];
4510
4537
  diagMap.forEach((item) => {
@@ -4513,11 +4540,12 @@ function createErrorDiagnoser(context) {
4513
4540
  if (!x.message || !x.severity) {
4514
4541
  return [];
4515
4542
  }
4543
+ const msg = normalize ? (0, lodash_1.sortBy)(x.message).join('') : x.message;
4516
4544
  return [{
4517
- message: x.message,
4545
+ message: msg,
4518
4546
  severity: x.severity,
4519
4547
  nodePath: node.nodePath,
4520
- nodeConcept: node.concept,
4548
+ nodeConcept: node.concept
4521
4549
  }];
4522
4550
  });
4523
4551
  })));