@lcap/nasl-language-server-core 4.1.0-rc.7 → 4.1.0-rc.9
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 +1 -1
- package/out/checker.d.ts.map +1 -1
- package/out/checker.js +87 -121
- package/out/checker.js.map +1 -1
- package/out/index.d.ts +2 -2
- package/out/index.d.ts.map +1 -1
- package/out/index.js +4 -3
- package/out/index.js.map +1 -1
- package/out/reference-manager/builtin-q-name.d.ts +1 -2
- package/out/reference-manager/builtin-q-name.d.ts.map +1 -1
- package/out/reference-manager/builtin-q-name.js +1 -5
- package/out/reference-manager/builtin-q-name.js.map +1 -1
- package/out/reference-manager/collect-q-name.d.ts.map +1 -1
- package/out/reference-manager/collect-q-name.js +8 -7
- package/out/reference-manager/collect-q-name.js.map +1 -1
- package/out/reference-manager/helper.d.ts +1 -1
- package/out/reference-manager/helper.d.ts.map +1 -1
- package/out/reference-manager/helper.js +11 -1
- package/out/reference-manager/helper.js.map +1 -1
- package/out/reference-manager/reference-manager.d.ts +64 -7
- package/out/reference-manager/reference-manager.d.ts.map +1 -1
- package/out/reference-manager/reference-manager.js +198 -56
- package/out/reference-manager/reference-manager.js.map +1 -1
- package/out/reference-manager/remove-q-name.js +8 -8
- package/out/reference-manager/remove-q-name.js.map +1 -1
- package/out/reference-manager/rename-q-name.d.ts.map +1 -1
- package/out/reference-manager/rename-q-name.js +6 -6
- package/out/reference-manager/rename-q-name.js.map +1 -1
- package/out/reference-manager/update-nasl-fragment.d.ts +0 -1
- package/out/reference-manager/update-nasl-fragment.d.ts.map +1 -1
- package/out/reference-manager/update-nasl-fragment.js +2 -33
- package/out/reference-manager/update-nasl-fragment.js.map +1 -1
- package/out/typer/component-def-manager/utils.js +1 -1
- package/out/typer/component-def-manager/utils.js.map +1 -1
- package/out/typer/dispatch-all.d.ts +10 -3
- package/out/typer/dispatch-all.d.ts.map +1 -1
- package/out/typer/dispatch-all.js +44 -7
- package/out/typer/dispatch-all.js.map +1 -1
- package/out/typer/dispatch-call.d.ts +14 -0
- package/out/typer/dispatch-call.d.ts.map +1 -0
- package/out/typer/dispatch-call.js +637 -0
- package/out/typer/dispatch-call.js.map +1 -0
- package/out/typer/dispatch-def.d.ts +9 -3
- package/out/typer/dispatch-def.d.ts.map +1 -1
- package/out/typer/dispatch-def.js +101 -91
- package/out/typer/dispatch-def.js.map +1 -1
- package/out/typer/dispatch-expr.d.ts +3 -15
- package/out/typer/dispatch-expr.d.ts.map +1 -1
- package/out/typer/dispatch-expr.js +94 -677
- package/out/typer/dispatch-expr.js.map +1 -1
- package/out/typer/dispatch-process.d.ts.map +1 -1
- package/out/typer/dispatch-process.js +28 -11
- package/out/typer/dispatch-process.js.map +1 -1
- package/out/typer/dispatch-stmt.d.ts.map +1 -1
- package/out/typer/dispatch-stmt.js +39 -38
- package/out/typer/dispatch-stmt.js.map +1 -1
- package/out/typer/dispatch-view.d.ts.map +1 -1
- package/out/typer/dispatch-view.js +22 -16
- package/out/typer/dispatch-view.js.map +1 -1
- package/out/typer/get-oql-files.d.ts +13 -0
- package/out/typer/get-oql-files.d.ts.map +1 -0
- package/out/typer/get-oql-files.js +136 -0
- package/out/typer/get-oql-files.js.map +1 -0
- package/out/typer/helper.d.ts +2 -2
- package/out/typer/helper.d.ts.map +1 -1
- package/out/typer/helper.js +5 -5
- package/out/typer/helper.js.map +1 -1
- package/out/typer/incremental-update.d.ts +0 -12
- package/out/typer/incremental-update.d.ts.map +1 -1
- package/out/typer/incremental-update.js +99 -193
- package/out/typer/incremental-update.js.map +1 -1
- package/out/typer/index.d.ts +6 -4
- package/out/typer/index.d.ts.map +1 -1
- package/out/typer/index.js +9 -10
- package/out/typer/index.js.map +1 -1
- package/out/typer/subster.d.ts +0 -1
- package/out/typer/subster.d.ts.map +1 -1
- package/out/typer/subster.js +3 -23
- package/out/typer/subster.js.map +1 -1
- package/out/typer/topo-sort.d.ts +4 -4
- package/out/typer/topo-sort.d.ts.map +1 -1
- package/out/typer/topo-sort.js +5 -1
- package/out/typer/topo-sort.js.map +1 -1
- package/out/typer/type-manager.d.ts +2 -2
- package/out/typer/type-manager.d.ts.map +1 -1
- package/out/typer/type-manager.js +32 -9
- package/out/typer/type-manager.js.map +1 -1
- package/out/typer/type-predicate.d.ts +6 -1
- package/out/typer/type-predicate.d.ts.map +1 -1
- package/out/typer/type-predicate.js +22 -4
- package/out/typer/type-predicate.js.map +1 -1
- package/out/typer/typer.d.ts +27 -6
- package/out/typer/typer.d.ts.map +1 -1
- package/out/typer/typer.js +69 -18
- package/out/typer/typer.js.map +1 -1
- package/out/typer/unifier.d.ts +1 -1
- package/out/typer/unifier.d.ts.map +1 -1
- package/out/typer/unifier.js +48 -69
- package/out/typer/unifier.js.map +1 -1
- package/out/utils/string.d.ts.map +1 -1
- package/out/utils/string.js +1 -0
- package/out/utils/string.js.map +1 -1
- package/package.json +5 -5
- package/out/typer/nasl-predicate.d.ts +0 -8
- package/out/typer/nasl-predicate.d.ts.map +0 -1
- package/out/typer/nasl-predicate.js +0 -25
- package/out/typer/nasl-predicate.js.map +0 -1
package/out/typer/unifier.js
CHANGED
|
@@ -71,16 +71,16 @@ class Unifier {
|
|
|
71
71
|
this.unify(subPropTy, supProp.typeAnnotation);
|
|
72
72
|
}
|
|
73
73
|
else {
|
|
74
|
-
//
|
|
75
|
-
|
|
74
|
+
// Only add to missing props if the property is not optional
|
|
75
|
+
const isOptional = (0, type_predicate_1.isOptionalStructureProperty)(supProp);
|
|
76
|
+
!isOptional && missingProps.push(supProp.name);
|
|
76
77
|
}
|
|
77
78
|
}
|
|
78
79
|
// Check for extra properties in ty1 (sub type) that are not in ty2 (super type)
|
|
79
80
|
for (const subProp of sortedProps1) {
|
|
80
81
|
const supPropExists = sortedProps2.find(x => x.name === subProp.name);
|
|
81
82
|
if (!supPropExists) {
|
|
82
|
-
|
|
83
|
-
!ty1.ignored && !ty2.ignored && extraProps.push(subProp.name);
|
|
83
|
+
extraProps.push(subProp.name);
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
if (missingProps.length > 0 || extraProps.length > 0) {
|
|
@@ -121,8 +121,8 @@ class Unifier {
|
|
|
121
121
|
else if (this.env.typeHintManager.isDataSourceTy(sup)) {
|
|
122
122
|
this.uSupAsDataSource(sub, sup);
|
|
123
123
|
}
|
|
124
|
-
else if ((0, index_1.isUnionTy)(sub)
|
|
125
|
-
this.
|
|
124
|
+
else if ((0, index_1.isUnionTy)(sub)) {
|
|
125
|
+
this.uUnionDist(sub, sup);
|
|
126
126
|
}
|
|
127
127
|
else if (!(0, index_1.isUnionTy)(sub) && (0, index_1.isUnionTy)(sup) && this.assumeAtMostOneTyParam(sup)) {
|
|
128
128
|
this.uRUnion(sub, sup);
|
|
@@ -194,7 +194,8 @@ class Unifier {
|
|
|
194
194
|
this.unify(valueSub, valueSup);
|
|
195
195
|
const keySub = nasl_concepts_1.TypeAnnotation.createGeneric('DeMapKey', { typeArguments: [sub] });
|
|
196
196
|
const keySup = sup.typeArguments?.[0];
|
|
197
|
-
|
|
197
|
+
// HACK: 感觉 Unify 机制有问题,这里需要特殊调换一下位置。可以使用竞越应用验证。
|
|
198
|
+
this.unify(keySup, keySub);
|
|
198
199
|
return;
|
|
199
200
|
}
|
|
200
201
|
mkUnificationPostErr(this.env, sub, sup, this.isUnifyContravariant);
|
|
@@ -203,15 +204,6 @@ class Unifier {
|
|
|
203
204
|
(0, assertion_1.assertTrusy)(sub.objectType);
|
|
204
205
|
(0, assertion_1.assertTrusy)(sub.indexType);
|
|
205
206
|
if (sub.indexType.typeKind === 'literal') {
|
|
206
|
-
// const newTy = TypeAnnotation.createProtoTypeOnly({
|
|
207
|
-
// typeKind: 'anonymousStructure',
|
|
208
|
-
// properties: [StructureProperty.createProtoTypeOnly({
|
|
209
|
-
// name: String(sub.indexType.literal),
|
|
210
|
-
// typeAnnotation: sup
|
|
211
|
-
// })]
|
|
212
|
-
// });
|
|
213
|
-
// newTy.ignored = true;
|
|
214
|
-
// this.unify(sub.objectType, newTy);
|
|
215
207
|
if ((0, type_predicate_2.isListTy)(sup)) {
|
|
216
208
|
this.uRGeneric(sub, sup);
|
|
217
209
|
}
|
|
@@ -230,17 +222,6 @@ class Unifier {
|
|
|
230
222
|
(0, assertion_1.assertTrusy)(sup.indexType);
|
|
231
223
|
if (sup.indexType.typeKind === 'literal') {
|
|
232
224
|
mkUnificationPostErr(this.env, sub, sup, this.isUnifyContravariant);
|
|
233
|
-
// const newTy = TypeAnnotation.createProtoTypeOnly({
|
|
234
|
-
// typeKind: 'anonymousStructure',
|
|
235
|
-
// properties: [
|
|
236
|
-
// StructureProperty.createProtoTypeOnly({
|
|
237
|
-
// name: String(sup.indexType.literal),
|
|
238
|
-
// typeAnnotation: sub,
|
|
239
|
-
// }),
|
|
240
|
-
// ],
|
|
241
|
-
// });
|
|
242
|
-
// newTy.ignored = true;
|
|
243
|
-
// this.unify(sup.objectType, newTy);
|
|
244
225
|
}
|
|
245
226
|
else {
|
|
246
227
|
// 非literal type,无法求解
|
|
@@ -321,40 +302,44 @@ class Unifier {
|
|
|
321
302
|
mkUnificationPostErr(this.env, ty1, ty2, this.isUnifyContravariant);
|
|
322
303
|
}
|
|
323
304
|
};
|
|
324
|
-
|
|
305
|
+
// 将 A | B <: T 分派为 A <: T 且 B <: T
|
|
306
|
+
this.uUnionDist = (ty1, ty2) => {
|
|
325
307
|
(0, assertion_1.assertTrusy)(ty1.typeArguments);
|
|
326
|
-
|
|
327
|
-
const
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
//
|
|
331
|
-
arg1Copy
|
|
332
|
-
arg2Copy
|
|
333
|
-
//
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
if (
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
308
|
+
// assertTrusy(ty2.typeArguments);
|
|
309
|
+
for (const t1 of ty1.typeArguments) {
|
|
310
|
+
this.unify(t1, ty2);
|
|
311
|
+
}
|
|
312
|
+
// const arg1Length = this.normalizeUnion(ty1.typeArguments).length; // should normalize union types
|
|
313
|
+
// const arg1Copy = [...ty1.typeArguments];
|
|
314
|
+
// const arg2Copy = [...ty2.typeArguments];
|
|
315
|
+
// // sort the two copied args
|
|
316
|
+
// arg1Copy.sort((a, b) =>
|
|
317
|
+
// `${a.typeKind}${a.typeName}`.localeCompare(`${b.typeKind}${b.typeName}`)); // todo: typeNamespace if necessary
|
|
318
|
+
// arg2Copy.sort((a, b) =>
|
|
319
|
+
// `${a.typeKind}${a.typeName}`.localeCompare(`${b.typeKind}${b.typeName}`)); // todo: typeNamespace if necessary
|
|
320
|
+
// // delete same components
|
|
321
|
+
// for (let i = arg1Length - 1; i >= 0 ; i--) {
|
|
322
|
+
// const sameArgIdx = findIndexBy(arg2Copy, arg => isEqualTy(this.env, arg1Copy[i], arg)) ?? -1;
|
|
323
|
+
// if (sameArgIdx >= 0) {
|
|
324
|
+
// arg1Copy.splice(i, 1);
|
|
325
|
+
// arg2Copy.splice(sameArgIdx, 1);
|
|
326
|
+
// }
|
|
327
|
+
// }
|
|
328
|
+
// if (arg1Copy.length === 0) {
|
|
329
|
+
// return;
|
|
330
|
+
// } else {
|
|
331
|
+
// const tvs = arg1Copy.filter(isTyAnnTyParam);
|
|
332
|
+
// if (tvs.length > 1) {
|
|
333
|
+
// // throw new Error('unify: union 尚未处理这种复杂情形 1' + showType(ty1) + '\n' + showType(ty2));
|
|
334
|
+
// console.warn('unify: union 尚未处理这种复杂情形,不报错但忽略对约束集的贡献', showType(ty1), showType(ty2));
|
|
335
|
+
// } else {
|
|
336
|
+
// const tv = tvs[0];
|
|
337
|
+
// // 暂时取消 assertTruthy(tv.typeName) 看看为啥
|
|
338
|
+
// if (tv?.typeName) {
|
|
339
|
+
// this.pushToUb(this.cs, tv.typeName, createUnionTyAnn(arg2Copy));
|
|
340
|
+
// }
|
|
341
|
+
// }
|
|
342
|
+
// }
|
|
358
343
|
};
|
|
359
344
|
// dataSource 的 union 里含有泛型类型变元,先特殊处理一下
|
|
360
345
|
this.uSupAsDataSource = (ty1, ty2) => {
|
|
@@ -570,19 +555,13 @@ class Unifier {
|
|
|
570
555
|
}
|
|
571
556
|
}
|
|
572
557
|
exports.Unifier = Unifier;
|
|
573
|
-
/**
|
|
574
|
-
* @deprecated 可以去掉 ignored 这个字段了,它没有用了
|
|
575
|
-
*/
|
|
576
558
|
const isIgnored = (sub, sup) => {
|
|
577
559
|
return (
|
|
578
|
-
//
|
|
579
|
-
sub.
|
|
580
|
-
// @ts-expect-error
|
|
581
|
-
sup.ignored ||
|
|
582
|
-
// HACK 扩展库中使用了名为 Object 的类型。忽略和它相关的错误。
|
|
583
|
-
(sub.typeKind === 'reference' && sub.typeName === 'Object') ||
|
|
560
|
+
// HACK 扩展库中使用了名为 Object 的类型。忽略和它相关的错误。
|
|
561
|
+
(sub.typeKind === 'reference' && sub.typeName === 'Object') ||
|
|
584
562
|
(sup.typeKind === 'reference' && sup.typeName === 'Object'));
|
|
585
563
|
};
|
|
564
|
+
// 需要检查子类型关系,但是当下无法检查,需要等到求解后的后置校验
|
|
586
565
|
const mkUnificationPostErr = (env, sub, sup, isContravariant = false) => {
|
|
587
566
|
if (!env.errBoundary) {
|
|
588
567
|
return;
|
package/out/typer/unifier.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unifier.js","sourceRoot":"","sources":["../../src/typer/unifier.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"unifier.js","sourceRoot":"","sources":["../../src/typer/unifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../src/utils/string.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,kBAAkB,SAAU,MAAM,GAAG,SAAS,QAAQ,MAAM,WAQxE,CAAA;
|
|
1
|
+
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../src/utils/string.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,kBAAkB,SAAU,MAAM,GAAG,SAAS,QAAQ,MAAM,WAQxE,CAAA;AAGD,eAAO,MAAM,YAAY,YAAa,MAAM,YAAY,MAAM,WAAW,WAAW,GAAG,QAAQ,GAAG,MAAM,KAAG,MAK1G,CAAA;AAGD,eAAO,MAAM,kBAAkB,QAAS,MAAM,WAK7C,CAAA"}
|
package/out/utils/string.js
CHANGED
|
@@ -12,6 +12,7 @@ const prependNonEmptyStr = (str1, str2) => {
|
|
|
12
12
|
return str2;
|
|
13
13
|
};
|
|
14
14
|
exports.prependNonEmptyStr = prependNonEmptyStr;
|
|
15
|
+
// 都用这个方法,安全些
|
|
15
16
|
const getPropQName = (nspName, propName, concept) => {
|
|
16
17
|
if (concept === 'Entity' || concept === 'Structure' || concept === 'Enum') {
|
|
17
18
|
return `${nspName}.properties.${propName}`;
|
package/out/utils/string.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/utils/string.ts"],"names":[],"mappings":";;;AAAA,mBAAmB;AACZ,MAAM,kBAAkB,GAAG,CAAC,IAAwB,EAAE,IAAY,EAAE,EAAE;IACzE,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAA;AARY,QAAA,kBAAkB,sBAQ9B;
|
|
1
|
+
{"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/utils/string.ts"],"names":[],"mappings":";;;AAAA,mBAAmB;AACZ,MAAM,kBAAkB,GAAG,CAAC,IAAwB,EAAE,IAAY,EAAE,EAAE;IACzE,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAA;AARY,QAAA,kBAAkB,sBAQ9B;AAED,aAAa;AACN,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,QAAgB,EAAE,OAAwC,EAAU,EAAE;IAChH,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACxE,OAAO,GAAG,OAAO,eAAe,QAAQ,EAAE,CAAC;IAC/C,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,+CAA+C,OAAO,EAAE,CAAC,CAAC;AAC9E,CAAC,CAAA;AALY,QAAA,YAAY,gBAKxB;AAGM,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAE,EAAE;IAC9C,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,GAAG,CAAC,CAAC,+CAA+C;IAC/D,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC,CAAA;AALY,QAAA,kBAAkB,sBAK9B"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lcap/nasl-language-server-core",
|
|
3
3
|
"description": "NetEase Application Specific Language",
|
|
4
|
-
"version": "4.1.0-rc.
|
|
4
|
+
"version": "4.1.0-rc.9",
|
|
5
5
|
"main": "./out",
|
|
6
6
|
"types": "./out",
|
|
7
7
|
"source": "./src",
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
"json5": "2.2.3",
|
|
17
17
|
"lodash": "4.17.21",
|
|
18
18
|
"mnemonist": "^0.40.3",
|
|
19
|
-
"@lcap/nasl-concepts": "4.1.0-rc.
|
|
20
|
-
"@lcap/nasl-types": "4.1.0-rc.
|
|
21
|
-
"@lcap/nasl-utils": "4.1.0-rc.
|
|
19
|
+
"@lcap/nasl-concepts": "4.1.0-rc.9",
|
|
20
|
+
"@lcap/nasl-types": "4.1.0-rc.9",
|
|
21
|
+
"@lcap/nasl-utils": "4.1.0-rc.9"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"@types/lodash": "4.17.0",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"vite": "6.3.5",
|
|
35
35
|
"vitest": "3.2.4",
|
|
36
36
|
"@lcap/nasl-test-toolkit": "1.0.0",
|
|
37
|
-
"@lcap/nasl-translator": "4.1.0-rc.
|
|
37
|
+
"@lcap/nasl-translator": "4.1.0-rc.9",
|
|
38
38
|
"@lcap/nasl-tsconfig": "1.0.1"
|
|
39
39
|
},
|
|
40
40
|
"scripts": {
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { AuthLogic, AuthLogicForCallInterface, ConnectorLogic, Logic, OverriddenLogic, SyntaxNode, Variable, Return, Param, BaseNode, BusinessLogic, Interface, AuthInterface, MicroserviceInterface, GatewayInterface } from '@lcap/nasl-concepts';
|
|
2
|
-
export type TypeInferConcept = Variable | Return | Param;
|
|
3
|
-
export declare const isTypeInferConcept: (def: SyntaxNode) => def is TypeInferConcept;
|
|
4
|
-
export type CallableNaslLogic = Logic | OverriddenLogic | AuthLogic | AuthLogicForCallInterface | ConnectorLogic | BusinessLogic;
|
|
5
|
-
export type CallableNaslInterface = Interface | AuthInterface | MicroserviceInterface | GatewayInterface;
|
|
6
|
-
export declare const isCallableNaslInterface: (nd: BaseNode) => nd is CallableNaslInterface;
|
|
7
|
-
export declare const isNaslCallExpr: (node: SyntaxNode) => boolean;
|
|
8
|
-
//# sourceMappingURL=nasl-predicate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nasl-predicate.d.ts","sourceRoot":"","sources":["../../src/typer/nasl-predicate.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EACT,yBAAyB,EACzB,cAAc,EACd,KAAK,EACL,eAAe,EACf,UAAU,EACV,QAAQ,EACR,MAAM,EACN,KAAK,EACL,QAAQ,EACR,aAAa,EACb,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EACnB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;AACzD,eAAO,MAAM,kBAAkB,QAAS,UAAU,4BAId,CAAC;AAErC,MAAM,MAAM,iBAAiB,GACzB,KAAK,GAAG,eAAe,GAAG,SAAS,GAAG,yBAAyB,GAAG,cAAc,GAAG,aAAa,CAAC;AAErG,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GAAG,aAAa,GAAG,qBAAqB,GAAG,gBAAgB,CAAC;AAEzE,eAAO,MAAM,uBAAuB,OAC3B,QAAQ,gCAAkI,CAAC;AAgBpJ,eAAO,MAAM,cAAc,SAAU,UAAU,YACkG,CAAC"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isNaslCallExpr = exports.isCallableNaslInterface = exports.isTypeInferConcept = void 0;
|
|
4
|
-
const isTypeInferConcept = (def) => def.concept === 'Variable' ||
|
|
5
|
-
def.concept === 'Return' ||
|
|
6
|
-
def.concept === 'Param' ||
|
|
7
|
-
def.concept === 'ParamWithGroup';
|
|
8
|
-
exports.isTypeInferConcept = isTypeInferConcept;
|
|
9
|
-
const isCallableNaslInterface = (nd) => ['Interface', 'AuthInterface', 'MicroServiceInterface', 'GatewayInterface'].includes(nd.concept);
|
|
10
|
-
exports.isCallableNaslInterface = isCallableNaslInterface;
|
|
11
|
-
// fast cheap unsafe checks
|
|
12
|
-
// 不判断空指针让它更快
|
|
13
|
-
const isCallFunction = (node) => node.concept === 'CallFunction';
|
|
14
|
-
const isCallLogic = (node) => node.concept === 'CallLogic' || node.concept === 'CallConnector';
|
|
15
|
-
const isCallInterface = (node) => node.concept === 'CallInterface' ||
|
|
16
|
-
node.concept === 'CallAuthInterface' ||
|
|
17
|
-
node.concept === 'CallMicroserviceInterface' ||
|
|
18
|
-
node.concept === 'CallGatewayInterface';
|
|
19
|
-
const isCallAuthInterface = (node) => node.concept === 'CallAuthInterface';
|
|
20
|
-
const isCallConnector = (node) => node.concept === 'CallConnector';
|
|
21
|
-
const isCallEvent = (node) => node.concept === 'CallEvent';
|
|
22
|
-
// order matters as for speed
|
|
23
|
-
const isNaslCallExpr = (node) => isCallLogic(node) || isCallFunction(node) || isCallEvent(node) || isCallInterface(node) || isCallAuthInterface(node) || isCallConnector(node);
|
|
24
|
-
exports.isNaslCallExpr = isNaslCallExpr;
|
|
25
|
-
//# sourceMappingURL=nasl-predicate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nasl-predicate.js","sourceRoot":"","sources":["../../src/typer/nasl-predicate.ts"],"names":[],"mappings":";;;AAmBO,MAAM,kBAAkB,GAAG,CAAC,GAAe,EAA2B,EAAE,CAC3E,GAAG,CAAC,OAAO,KAAK,UAAU;IAC1B,GAAG,CAAC,OAAO,KAAK,QAAQ;IACxB,GAAG,CAAC,OAAO,KAAK,OAAO;IACvB,GAAG,CAAC,OAAO,KAAK,gBAAgB,CAAC;AAJxB,QAAA,kBAAkB,sBAIM;AAQ9B,MAAM,uBAAuB,GAChC,CAAC,EAAY,EAA+B,EAAE,CAAC,CAAC,WAAW,EAAE,eAAe,EAAE,uBAAuB,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AADvI,QAAA,uBAAuB,2BACgH;AAGpJ,2BAA2B;AAC3B,aAAa;AACb,MAAM,cAAc,GAAG,CAAC,IAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,cAAc,CAAC;AAC7E,MAAM,WAAW,GAAG,CAAC,IAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,WAAW,IAAI,IAAI,CAAC,OAAO,KAAK,eAAe,CAAC;AAC3G,MAAM,eAAe,GAAG,CAAC,IAAgB,EAAE,EAAE,CACzC,IAAI,CAAC,OAAO,KAAK,eAAe;IAChC,IAAI,CAAC,OAAO,KAAK,mBAAmB;IACpC,IAAI,CAAC,OAAO,KAAK,2BAA2B;IAC5C,IAAI,CAAC,OAAO,KAAK,sBAAsB,CAAC;AAC5C,MAAM,mBAAmB,GAAG,CAAC,IAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,mBAAmB,CAAC;AACvF,MAAM,eAAe,GAAG,CAAC,IAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,eAAe,CAAC;AAC/E,MAAM,WAAW,GAAG,CAAC,IAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC;AACvE,6BAA6B;AACtB,MAAM,cAAc,GAAG,CAAC,IAAgB,EAAE,EAAE,CAC/C,WAAW,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;AADrI,QAAA,cAAc,kBACuH"}
|