@lcap/nasl-language-server-core 4.4.2-rc.5 → 4.5.0-beta.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.
- package/out/checker.d.ts.map +1 -1
- package/out/checker.js +29 -15
- package/out/checker.js.map +1 -1
- package/out/reference-manager/reference-manager.d.ts.map +1 -1
- package/out/reference-manager/reference-manager.js +14 -0
- package/out/reference-manager/reference-manager.js.map +1 -1
- package/out/typer/collectGlobalDefs.d.ts.map +1 -1
- package/out/typer/collectGlobalDefs.js +55 -7
- package/out/typer/collectGlobalDefs.js.map +1 -1
- package/out/typer/component-def-manager/component-def-manager.d.ts +65 -7
- package/out/typer/component-def-manager/component-def-manager.d.ts.map +1 -1
- package/out/typer/component-def-manager/component-def-manager.js +400 -8
- package/out/typer/component-def-manager/component-def-manager.js.map +1 -1
- package/out/typer/dispatch-call.d.ts.map +1 -1
- package/out/typer/dispatch-call.js +7 -0
- package/out/typer/dispatch-call.js.map +1 -1
- package/out/typer/dispatch-view.d.ts.map +1 -1
- package/out/typer/dispatch-view.js +335 -141
- package/out/typer/dispatch-view.js.map +1 -1
- package/out/typer/overload-helper.d.ts.map +1 -1
- package/out/typer/overload-helper.js +0 -3
- package/out/typer/overload-helper.js.map +1 -1
- package/out/typer/subster.d.ts.map +1 -1
- package/out/typer/subster.js +54 -35
- package/out/typer/subster.js.map +1 -1
- package/out/typer/type-predicate.d.ts +14 -1
- package/out/typer/type-predicate.d.ts.map +1 -1
- package/out/typer/type-predicate.js +303 -3
- package/out/typer/type-predicate.js.map +1 -1
- package/out/typer/typer.d.ts +1 -0
- package/out/typer/typer.d.ts.map +1 -1
- package/out/typer/typer.js.map +1 -1
- package/out/typer/unifier.d.ts +8 -0
- package/out/typer/unifier.d.ts.map +1 -1
- package/out/typer/unifier.js +32 -0
- package/out/typer/unifier.js.map +1 -1
- package/out/utils/file-node-cache.d.ts.map +1 -1
- package/out/utils/file-node-cache.js +5 -4
- package/out/utils/file-node-cache.js.map +1 -1
- package/package.json +6 -6
package/out/checker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../src/checker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EAC4C,QAAQ,EAC5B,IAAI,EAQ+E,GAAG,EAMxH,QAAQ,EAGT,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;AAYpE,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;AAOF,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;AAmPF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe;
|
|
1
|
+
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../src/checker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EAC4C,QAAQ,EAC5B,IAAI,EAQ+E,GAAG,EAMxH,QAAQ,EAGT,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;AAYpE,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;AAOF,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;AAmPF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe;oCAspKpB,OAAO;sDAPW,gBAAgB,EAAE;;;;sBAhBjD,UAAU,GAAG,SAAS;;;8BA4Df,UAAU;2BAyBb,UAAU;;iDA7uFY,GAAG,KAAG,IAAI;;iBAwvFjD,MAAM;kBACL,MAAM;kBACN,MAAM;qBACH,MAAM;;kBAlqKF,UAAU,WAAW,MAAM,YAAY,YAAY;sCAg5D/B,IAAI,GAAG,QAAQ;2CAqzGxC,UAAU,gBACV,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,gBAC/C,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,qBACvB,MAAM,EAAE,oBACT,CAAC,YAAY,EAAE,UAAU,KAAK,UAAU,EAAE,KAC3D,kBAAkB,GAAG,IAAI;EAwF7B;AAqED,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
|
@@ -794,24 +794,27 @@ function createErrorDiagnoser(context) {
|
|
|
794
794
|
return false;
|
|
795
795
|
}
|
|
796
796
|
/**
|
|
797
|
-
* 获取 ViewElement
|
|
798
|
-
*
|
|
797
|
+
* 获取 ViewElement 的数据源类型
|
|
798
|
+
* 基于 __ViewElementTV 中存储的 role === 'dataItem' 查找,优先返回有自有数据源的 dataItem。
|
|
799
799
|
*/
|
|
800
800
|
function getDataSourceTypeAnnotation(viewElement) {
|
|
801
|
-
// 向上查找定义了数据源类型的祖先组件
|
|
802
801
|
let currentNode = viewElement;
|
|
803
802
|
let depth = 0;
|
|
804
803
|
const maxSearchDepth = 5;
|
|
805
804
|
while (currentNode?.concept === 'ViewElement' && depth <= maxSearchDepth) {
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
805
|
+
if (currentNode.__ViewElementTV?.length) {
|
|
806
|
+
// 优先查找有自有数据源的 dataItem(如动态列的 T1)
|
|
807
|
+
for (const tv of currentNode.__ViewElementTV) {
|
|
808
|
+
if (tv.role === 'dataItem' && tv.hasOwnDataSource && tv.renamed) {
|
|
809
|
+
return tv.renamed;
|
|
810
|
+
}
|
|
811
|
+
}
|
|
812
|
+
// 兜底查找无自有数据源的 dataItem(如子组件继承的 T)
|
|
813
|
+
for (const tv of currentNode.__ViewElementTV) {
|
|
814
|
+
if (tv.role === 'dataItem' && tv.renamed) {
|
|
815
|
+
return tv.renamed;
|
|
816
|
+
}
|
|
817
|
+
}
|
|
815
818
|
}
|
|
816
819
|
currentNode = currentNode.parentNode;
|
|
817
820
|
depth++;
|
|
@@ -3535,10 +3538,11 @@ function createErrorDiagnoser(context) {
|
|
|
3535
3538
|
backend: {
|
|
3536
3539
|
scope: '服务端',
|
|
3537
3540
|
forbiddenScope: '前端',
|
|
3538
|
-
forbiddenCalleeNamespaces: ['nasl.browser', 'nasl.io'],
|
|
3541
|
+
forbiddenCalleeNamespaces: ['nasl.browser', 'nasl.io', 'nasl.ui'],
|
|
3539
3542
|
forbiddenCalleeNamesMap: {
|
|
3540
3543
|
'nasl.auth': ['decryptByAES', 'encryptByAES', 'logout', 'hasAuth'],
|
|
3541
3544
|
'nasl.configuration': ['getCurrentIp', 'getUserLanguage', 'getI18nList', 'setI18nLocale'],
|
|
3545
|
+
'nasl.ui': ['showMessage'],
|
|
3542
3546
|
},
|
|
3543
3547
|
},
|
|
3544
3548
|
};
|
|
@@ -4535,8 +4539,18 @@ function createErrorDiagnoser(context) {
|
|
|
4535
4539
|
const type = env.getType(variable);
|
|
4536
4540
|
// 如果是复杂数据结构
|
|
4537
4541
|
if (type?.isComplexType()) {
|
|
4538
|
-
if (type?.typeName === 'List'
|
|
4539
|
-
|
|
4542
|
+
if (type?.typeName === 'List') {
|
|
4543
|
+
const typeArgument = type?.typeArguments?.[0];
|
|
4544
|
+
if (typeArgument?.typeKind === 'primitive') {
|
|
4545
|
+
return;
|
|
4546
|
+
}
|
|
4547
|
+
const { parentKey, parentNode } = variable;
|
|
4548
|
+
if (parentKey === 'right' && parentNode?.concept === 'BinaryExpression' && parentNode?.operator === 'in') {
|
|
4549
|
+
const ref = env.resolveRef(typeArgument);
|
|
4550
|
+
if (ref?.concept === 'Enum') {
|
|
4551
|
+
return;
|
|
4552
|
+
}
|
|
4553
|
+
}
|
|
4540
4554
|
}
|
|
4541
4555
|
error(node, `数据查询中不可以使用复杂类型!当前类型:${type?.typeChineseTitle}。`, {
|
|
4542
4556
|
severity: Severity.WARN,
|