@lcap/nasl-language-server-core 3.9.0-beta.1
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/README.md +3 -0
- package/out/index.d.ts +3 -0
- package/out/index.d.ts.map +1 -0
- package/out/index.js +19 -0
- package/out/index.js.map +1 -0
- package/out/module/dependency.d.ts +9 -0
- package/out/module/dependency.d.ts.map +1 -0
- package/out/module/dependency.js +17 -0
- package/out/module/dependency.js.map +1 -0
- package/out/module/graph.d.ts +19 -0
- package/out/module/graph.d.ts.map +1 -0
- package/out/module/graph.js +99 -0
- package/out/module/graph.js.map +1 -0
- package/out/module/index.d.ts +4 -0
- package/out/module/index.d.ts.map +1 -0
- package/out/module/index.js +20 -0
- package/out/module/index.js.map +1 -0
- package/out/module/module.d.ts +18 -0
- package/out/module/module.d.ts.map +1 -0
- package/out/module/module.js +41 -0
- package/out/module/module.js.map +1 -0
- package/out/symbol/graph.d.ts +18 -0
- package/out/symbol/graph.d.ts.map +1 -0
- package/out/symbol/graph.js +67 -0
- package/out/symbol/graph.js.map +1 -0
- package/out/symbol/index.d.ts +4 -0
- package/out/symbol/index.d.ts.map +1 -0
- package/out/symbol/index.js +20 -0
- package/out/symbol/index.js.map +1 -0
- package/out/symbol/namespace.d.ts +30 -0
- package/out/symbol/namespace.d.ts.map +1 -0
- package/out/symbol/namespace.js +134 -0
- package/out/symbol/namespace.js.map +1 -0
- package/out/symbol/symbol.d.ts +18 -0
- package/out/symbol/symbol.d.ts.map +1 -0
- package/out/symbol/symbol.js +26 -0
- package/out/symbol/symbol.js.map +1 -0
- package/out/symbol/traverse/concepts/anchor.d.ts +7 -0
- package/out/symbol/traverse/concepts/anchor.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/anchor.js +14 -0
- package/out/symbol/traverse/concepts/anchor.js.map +1 -0
- package/out/symbol/traverse/concepts/anonymous-function.d.ts +7 -0
- package/out/symbol/traverse/concepts/anonymous-function.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/anonymous-function.js +19 -0
- package/out/symbol/traverse/concepts/anonymous-function.js.map +1 -0
- package/out/symbol/traverse/concepts/app.d.ts +11 -0
- package/out/symbol/traverse/concepts/app.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/app.js +115 -0
- package/out/symbol/traverse/concepts/app.js.map +1 -0
- package/out/symbol/traverse/concepts/argument.d.ts +7 -0
- package/out/symbol/traverse/concepts/argument.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/argument.js +14 -0
- package/out/symbol/traverse/concepts/argument.js.map +1 -0
- package/out/symbol/traverse/concepts/assignment.d.ts +7 -0
- package/out/symbol/traverse/concepts/assignment.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/assignment.js +42 -0
- package/out/symbol/traverse/concepts/assignment.js.map +1 -0
- package/out/symbol/traverse/concepts/auth-logic.d.ts +11 -0
- package/out/symbol/traverse/concepts/auth-logic.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/auth-logic.js +17 -0
- package/out/symbol/traverse/concepts/auth-logic.js.map +1 -0
- package/out/symbol/traverse/concepts/backend.d.ts +15 -0
- package/out/symbol/traverse/concepts/backend.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/backend.js +46 -0
- package/out/symbol/traverse/concepts/backend.js.map +1 -0
- package/out/symbol/traverse/concepts/batch-assignment.d.ts +7 -0
- package/out/symbol/traverse/concepts/batch-assignment.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/batch-assignment.js +15 -0
- package/out/symbol/traverse/concepts/batch-assignment.js.map +1 -0
- package/out/symbol/traverse/concepts/binary-expression.d.ts +7 -0
- package/out/symbol/traverse/concepts/binary-expression.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/binary-expression.js +13 -0
- package/out/symbol/traverse/concepts/binary-expression.js.map +1 -0
- package/out/symbol/traverse/concepts/bind-attr.d.ts +7 -0
- package/out/symbol/traverse/concepts/bind-attr.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/bind-attr.js +26 -0
- package/out/symbol/traverse/concepts/bind-attr.js.map +1 -0
- package/out/symbol/traverse/concepts/bind-directive.d.ts +7 -0
- package/out/symbol/traverse/concepts/bind-directive.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/bind-directive.js +14 -0
- package/out/symbol/traverse/concepts/bind-directive.js.map +1 -0
- package/out/symbol/traverse/concepts/bind-event.d.ts +7 -0
- package/out/symbol/traverse/concepts/bind-event.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/bind-event.js +14 -0
- package/out/symbol/traverse/concepts/bind-event.js.map +1 -0
- package/out/symbol/traverse/concepts/bind-style.d.ts +7 -0
- package/out/symbol/traverse/concepts/bind-style.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/bind-style.js +14 -0
- package/out/symbol/traverse/concepts/bind-style.js.map +1 -0
- package/out/symbol/traverse/concepts/block.d.ts +7 -0
- package/out/symbol/traverse/concepts/block.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/block.js +16 -0
- package/out/symbol/traverse/concepts/block.js.map +1 -0
- package/out/symbol/traverse/concepts/call-connector.d.ts +7 -0
- package/out/symbol/traverse/concepts/call-connector.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/call-connector.js +11 -0
- package/out/symbol/traverse/concepts/call-connector.js.map +1 -0
- package/out/symbol/traverse/concepts/call-function.d.ts +7 -0
- package/out/symbol/traverse/concepts/call-function.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/call-function.js +11 -0
- package/out/symbol/traverse/concepts/call-function.js.map +1 -0
- package/out/symbol/traverse/concepts/call-interface.d.ts +7 -0
- package/out/symbol/traverse/concepts/call-interface.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/call-interface.js +13 -0
- package/out/symbol/traverse/concepts/call-interface.js.map +1 -0
- package/out/symbol/traverse/concepts/call-logic.d.ts +7 -0
- package/out/symbol/traverse/concepts/call-logic.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/call-logic.js +30 -0
- package/out/symbol/traverse/concepts/call-logic.js.map +1 -0
- package/out/symbol/traverse/concepts/call-query-component.d.ts +11 -0
- package/out/symbol/traverse/concepts/call-query-component.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/call-query-component.js +19 -0
- package/out/symbol/traverse/concepts/call-query-component.js.map +1 -0
- package/out/symbol/traverse/concepts/default-value.d.ts +7 -0
- package/out/symbol/traverse/concepts/default-value.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/default-value.js +14 -0
- package/out/symbol/traverse/concepts/default-value.js.map +1 -0
- package/out/symbol/traverse/concepts/destination.d.ts +7 -0
- package/out/symbol/traverse/concepts/destination.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/destination.js +13 -0
- package/out/symbol/traverse/concepts/destination.js.map +1 -0
- package/out/symbol/traverse/concepts/entity.d.ts +11 -0
- package/out/symbol/traverse/concepts/entity.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/entity.js +38 -0
- package/out/symbol/traverse/concepts/entity.js.map +1 -0
- package/out/symbol/traverse/concepts/enum.d.ts +11 -0
- package/out/symbol/traverse/concepts/enum.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/enum.js +25 -0
- package/out/symbol/traverse/concepts/enum.js.map +1 -0
- package/out/symbol/traverse/concepts/expression.d.ts +7 -0
- package/out/symbol/traverse/concepts/expression.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/expression.js +126 -0
- package/out/symbol/traverse/concepts/expression.js.map +1 -0
- package/out/symbol/traverse/concepts/external-destination.d.ts +7 -0
- package/out/symbol/traverse/concepts/external-destination.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/external-destination.js +18 -0
- package/out/symbol/traverse/concepts/external-destination.js.map +1 -0
- package/out/symbol/traverse/concepts/for-each-statement.d.ts +7 -0
- package/out/symbol/traverse/concepts/for-each-statement.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/for-each-statement.js +31 -0
- package/out/symbol/traverse/concepts/for-each-statement.js.map +1 -0
- package/out/symbol/traverse/concepts/frontend-type.d.ts +7 -0
- package/out/symbol/traverse/concepts/frontend-type.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/frontend-type.js +32 -0
- package/out/symbol/traverse/concepts/frontend-type.js.map +1 -0
- package/out/symbol/traverse/concepts/frontend.d.ts +7 -0
- package/out/symbol/traverse/concepts/frontend.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/frontend.js +40 -0
- package/out/symbol/traverse/concepts/frontend.js.map +1 -0
- package/out/symbol/traverse/concepts/function.d.ts +7 -0
- package/out/symbol/traverse/concepts/function.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/function.js +29 -0
- package/out/symbol/traverse/concepts/function.js.map +1 -0
- package/out/symbol/traverse/concepts/identifier.d.ts +7 -0
- package/out/symbol/traverse/concepts/identifier.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/identifier.js +12 -0
- package/out/symbol/traverse/concepts/identifier.js.map +1 -0
- package/out/symbol/traverse/concepts/if-statement.d.ts +7 -0
- package/out/symbol/traverse/concepts/if-statement.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/if-statement.js +19 -0
- package/out/symbol/traverse/concepts/if-statement.js.map +1 -0
- package/out/symbol/traverse/concepts/index.d.ts +2 -0
- package/out/symbol/traverse/concepts/index.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/index.js +10 -0
- package/out/symbol/traverse/concepts/index.js.map +1 -0
- package/out/symbol/traverse/concepts/interface.d.ts +7 -0
- package/out/symbol/traverse/concepts/interface.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/interface.js +18 -0
- package/out/symbol/traverse/concepts/interface.js.map +1 -0
- package/out/symbol/traverse/concepts/logic.d.ts +7 -0
- package/out/symbol/traverse/concepts/logic.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/logic.js +29 -0
- package/out/symbol/traverse/concepts/logic.js.map +1 -0
- package/out/symbol/traverse/concepts/match-statement.d.ts +7 -0
- package/out/symbol/traverse/concepts/match-statement.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/match-statement.js +28 -0
- package/out/symbol/traverse/concepts/match-statement.js.map +1 -0
- package/out/symbol/traverse/concepts/member-expression.d.ts +7 -0
- package/out/symbol/traverse/concepts/member-expression.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/member-expression.js +12 -0
- package/out/symbol/traverse/concepts/member-expression.js.map +1 -0
- package/out/symbol/traverse/concepts/module.d.ts +15 -0
- package/out/symbol/traverse/concepts/module.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/module.js +32 -0
- package/out/symbol/traverse/concepts/module.js.map +1 -0
- package/out/symbol/traverse/concepts/namespace.d.ts +9 -0
- package/out/symbol/traverse/concepts/namespace.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/namespace.js +48 -0
- package/out/symbol/traverse/concepts/namespace.js.map +1 -0
- package/out/symbol/traverse/concepts/new-list.d.ts +7 -0
- package/out/symbol/traverse/concepts/new-list.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/new-list.js +18 -0
- package/out/symbol/traverse/concepts/new-list.js.map +1 -0
- package/out/symbol/traverse/concepts/oql-query-component.d.ts +7 -0
- package/out/symbol/traverse/concepts/oql-query-component.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/oql-query-component.js +33 -0
- package/out/symbol/traverse/concepts/oql-query-component.js.map +1 -0
- package/out/symbol/traverse/concepts/paginate.d.ts +7 -0
- package/out/symbol/traverse/concepts/paginate.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/paginate.js +14 -0
- package/out/symbol/traverse/concepts/paginate.js.map +1 -0
- package/out/symbol/traverse/concepts/select-members.d.ts +7 -0
- package/out/symbol/traverse/concepts/select-members.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/select-members.js +16 -0
- package/out/symbol/traverse/concepts/select-members.js.map +1 -0
- package/out/symbol/traverse/concepts/statement.d.ts +7 -0
- package/out/symbol/traverse/concepts/statement.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/statement.js +66 -0
- package/out/symbol/traverse/concepts/statement.js.map +1 -0
- package/out/symbol/traverse/concepts/string-interpolation.d.ts +7 -0
- package/out/symbol/traverse/concepts/string-interpolation.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/string-interpolation.js +14 -0
- package/out/symbol/traverse/concepts/string-interpolation.js.map +1 -0
- package/out/symbol/traverse/concepts/structure.d.ts +11 -0
- package/out/symbol/traverse/concepts/structure.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/structure.js +34 -0
- package/out/symbol/traverse/concepts/structure.js.map +1 -0
- package/out/symbol/traverse/concepts/switch-statement.d.ts +7 -0
- package/out/symbol/traverse/concepts/switch-statement.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/switch-statement.js +20 -0
- package/out/symbol/traverse/concepts/switch-statement.js.map +1 -0
- package/out/symbol/traverse/concepts/type-annotation.d.ts +7 -0
- package/out/symbol/traverse/concepts/type-annotation.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/type-annotation.js +65 -0
- package/out/symbol/traverse/concepts/type-annotation.js.map +1 -0
- package/out/symbol/traverse/concepts/unary-expression.d.ts +7 -0
- package/out/symbol/traverse/concepts/unary-expression.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/unary-expression.js +12 -0
- package/out/symbol/traverse/concepts/unary-expression.js.map +1 -0
- package/out/symbol/traverse/concepts/utils.d.ts +16 -0
- package/out/symbol/traverse/concepts/utils.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/utils.js +33 -0
- package/out/symbol/traverse/concepts/utils.js.map +1 -0
- package/out/symbol/traverse/concepts/variable.d.ts +9 -0
- package/out/symbol/traverse/concepts/variable.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/variable.js +27 -0
- package/out/symbol/traverse/concepts/variable.js.map +1 -0
- package/out/symbol/traverse/concepts/view-element.d.ts +7 -0
- package/out/symbol/traverse/concepts/view-element.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/view-element.js +45 -0
- package/out/symbol/traverse/concepts/view-element.js.map +1 -0
- package/out/symbol/traverse/concepts/view.d.ts +7 -0
- package/out/symbol/traverse/concepts/view.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/view.js +45 -0
- package/out/symbol/traverse/concepts/view.js.map +1 -0
- package/out/symbol/traverse/concepts/while-statement.d.ts +7 -0
- package/out/symbol/traverse/concepts/while-statement.d.ts.map +1 -0
- package/out/symbol/traverse/concepts/while-statement.js +16 -0
- package/out/symbol/traverse/concepts/while-statement.js.map +1 -0
- package/out/symbol/traverse/index.d.ts +2 -0
- package/out/symbol/traverse/index.d.ts.map +1 -0
- package/out/symbol/traverse/index.js +6 -0
- package/out/symbol/traverse/index.js.map +1 -0
- package/out/symbol/traverse/traverse.d.ts +4 -0
- package/out/symbol/traverse/traverse.d.ts.map +1 -0
- package/out/symbol/traverse/traverse.js +70 -0
- package/out/symbol/traverse/traverse.js.map +1 -0
- package/out/symbol/traverse/types.d.ts +30 -0
- package/out/symbol/traverse/types.d.ts.map +1 -0
- package/out/symbol/traverse/types.js +3 -0
- package/out/symbol/traverse/types.js.map +1 -0
- package/package.json +39 -0
package/README.md
ADDED
package/out/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC"}
|
package/out/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./module"), exports);
|
|
18
|
+
__exportStar(require("./symbol"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
package/out/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,2CAAyB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Module as Type } from '@lcap/nasl-types';
|
|
2
|
+
import type { Module } from './module';
|
|
3
|
+
export declare class ModuleDependency implements Type.ModuleDependency {
|
|
4
|
+
readonly module: Module;
|
|
5
|
+
readonly dependency: Module;
|
|
6
|
+
constructor(module: Module, dependency: Module);
|
|
7
|
+
toData(): Type.ModuleDependencyData;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=dependency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency.d.ts","sourceRoot":"","sources":["../../src/module/dependency.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,qBAAa,gBAAiB,YAAW,IAAI,CAAC,gBAAgB;IAC5D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAK9C,MAAM,IAAI,IAAI,CAAC,oBAAoB;CAMpC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ModuleDependency = void 0;
|
|
4
|
+
class ModuleDependency {
|
|
5
|
+
constructor(module, dependency) {
|
|
6
|
+
this.module = module;
|
|
7
|
+
this.dependency = dependency;
|
|
8
|
+
}
|
|
9
|
+
toData() {
|
|
10
|
+
return {
|
|
11
|
+
module: this.module.node.nodePath,
|
|
12
|
+
dependency: this.dependency.node.nodePath,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.ModuleDependency = ModuleDependency;
|
|
17
|
+
//# sourceMappingURL=dependency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency.js","sourceRoot":"","sources":["../../src/module/dependency.ts"],"names":[],"mappings":";;;AAGA,MAAa,gBAAgB;IAI3B,YAAY,MAAc,EAAE,UAAkB;QAC5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ;YACjC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ;SAC1C,CAAC;IACJ,CAAC;CACF;AAfD,4CAeC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Module as Type } from '@lcap/nasl-types';
|
|
2
|
+
import { type SyntaxNode } from '@lcap/nasl-concepts';
|
|
3
|
+
import { SymbolGraph, Symbol } from '../symbol';
|
|
4
|
+
import { Module } from './module';
|
|
5
|
+
export declare class ModuleGraph implements Type.ModuleGraph {
|
|
6
|
+
static from(data: object): ModuleGraph;
|
|
7
|
+
readonly createTime: number;
|
|
8
|
+
private symbolGraph;
|
|
9
|
+
private moduleMap;
|
|
10
|
+
constructor(symbolGraph: SymbolGraph);
|
|
11
|
+
private get app();
|
|
12
|
+
private init;
|
|
13
|
+
getModuleByNode(node: SyntaxNode): Module;
|
|
14
|
+
getModuleMapBySymbol(symbol: Symbol): void;
|
|
15
|
+
getModules(): Module[];
|
|
16
|
+
diffByModuleGraph(old: ModuleGraph): Module[];
|
|
17
|
+
toData(): Type.ModuleGraphData;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/module/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAO,KAAK,UAAU,EAAW,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,WAAY,YAAW,IAAI,CAAC,WAAW;IAClD,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM;IAOxB,QAAQ,CAAC,UAAU,SAAc;IACjC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,SAAS,CAA+B;gBAEpC,WAAW,EAAE,WAAW;IAKpC,OAAO,KAAK,GAAG,GAEd;IAED,OAAO,CAAC,IAAI;IAuCZ,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;IAezC,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAgB1C,UAAU;IAIV,iBAAiB,CAAC,GAAG,EAAE,WAAW;IAIlC,MAAM,IAAI,IAAI,CAAC,eAAe;CAc/B"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ModuleGraph = void 0;
|
|
4
|
+
const nasl_concepts_1 = require("@lcap/nasl-concepts");
|
|
5
|
+
const symbol_1 = require("../symbol");
|
|
6
|
+
const module_1 = require("./module");
|
|
7
|
+
class ModuleGraph {
|
|
8
|
+
static from(data) {
|
|
9
|
+
const app = new nasl_concepts_1.App(data);
|
|
10
|
+
const symbolGraph = new symbol_1.SymbolGraph(app);
|
|
11
|
+
const moduleGraph = new ModuleGraph(symbolGraph);
|
|
12
|
+
return moduleGraph;
|
|
13
|
+
}
|
|
14
|
+
constructor(symbolGraph) {
|
|
15
|
+
this.createTime = Date.now();
|
|
16
|
+
this.moduleMap = new Map;
|
|
17
|
+
this.symbolGraph = symbolGraph;
|
|
18
|
+
this.init();
|
|
19
|
+
}
|
|
20
|
+
get app() {
|
|
21
|
+
return this.symbolGraph.app;
|
|
22
|
+
}
|
|
23
|
+
init() {
|
|
24
|
+
const { app, moduleMap } = this;
|
|
25
|
+
const moduleConcepts = nasl_concepts_1.service.getFileNodesByNasl(app);
|
|
26
|
+
const cacheMap = new Map();
|
|
27
|
+
// 记录所有模块
|
|
28
|
+
moduleConcepts.forEach((mod) => moduleMap.set(mod, new module_1.Module(mod)));
|
|
29
|
+
// 计算所有模块最后修改时间
|
|
30
|
+
moduleConcepts.forEach((modNode => {
|
|
31
|
+
const mod = moduleMap.get(modNode);
|
|
32
|
+
modNode.traverseStrictChildrenWithPruning((child) => {
|
|
33
|
+
// 子节点是别的模块,则剪枝+跳过
|
|
34
|
+
if (child !== modNode && moduleMap.has(child)) {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
if (cacheMap.has(child)) {
|
|
38
|
+
cacheMap.set(child, cacheMap.get(child) + 1);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
cacheMap.set(child, 0);
|
|
42
|
+
}
|
|
43
|
+
if (child.changedTime && child.changedTime > mod.lastModifyTime) {
|
|
44
|
+
mod.lastModifyTime = child.changedTime;
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}));
|
|
48
|
+
// debugger;
|
|
49
|
+
// TODO: 模块图暂时忽略
|
|
50
|
+
// const symbols = this.symbolGraph.getSymbols()
|
|
51
|
+
// .filter((item) => item.isUsed && item.declaration);
|
|
52
|
+
// for (const symbol of symbols) {
|
|
53
|
+
// this.getModuleMapBySymbol(symbol);
|
|
54
|
+
// }
|
|
55
|
+
}
|
|
56
|
+
getModuleByNode(node) {
|
|
57
|
+
let currentNode = node;
|
|
58
|
+
while (currentNode.parentNode) {
|
|
59
|
+
if (this.moduleMap.has(currentNode)) {
|
|
60
|
+
return this.moduleMap.get(currentNode);
|
|
61
|
+
}
|
|
62
|
+
currentNode = currentNode.parentNode;
|
|
63
|
+
}
|
|
64
|
+
// 兜底返回 App 的模块
|
|
65
|
+
return this.moduleMap.get(node.app);
|
|
66
|
+
}
|
|
67
|
+
getModuleMapBySymbol(symbol) {
|
|
68
|
+
if (!symbol.declaration) {
|
|
69
|
+
throw new Error(`未找到此符号的声明语句: ${symbol.name}`);
|
|
70
|
+
}
|
|
71
|
+
const current = this.getModuleByNode(symbol.declaration);
|
|
72
|
+
for (const refNode of symbol.references) {
|
|
73
|
+
const refModule = this.getModuleByNode(refNode);
|
|
74
|
+
if (refModule !== current) {
|
|
75
|
+
refModule.addDependency(current);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
getModules() {
|
|
80
|
+
return Array.from(this.moduleMap.values());
|
|
81
|
+
}
|
|
82
|
+
diffByModuleGraph(old) {
|
|
83
|
+
return [];
|
|
84
|
+
}
|
|
85
|
+
toData() {
|
|
86
|
+
const result = {
|
|
87
|
+
appId: this.symbolGraph.appId,
|
|
88
|
+
createdTime: this.createTime,
|
|
89
|
+
modules: {},
|
|
90
|
+
};
|
|
91
|
+
const modules = this.getModules().map((mod) => mod.toData());
|
|
92
|
+
for (const { node, ...module } of modules) {
|
|
93
|
+
result.modules[node] = module;
|
|
94
|
+
}
|
|
95
|
+
return result;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.ModuleGraph = ModuleGraph;
|
|
99
|
+
//# sourceMappingURL=graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/module/graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/module/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./dependency"), exports);
|
|
18
|
+
__exportStar(require("./graph"), exports);
|
|
19
|
+
__exportStar(require("./module"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/module/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,0CAAwB;AACxB,2CAAyB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Module as Type } from '@lcap/nasl-types';
|
|
2
|
+
import type { SyntaxNode } from '@lcap/nasl-concepts';
|
|
3
|
+
import { ModuleDependency } from './dependency';
|
|
4
|
+
export declare class Module implements Type.Module {
|
|
5
|
+
readonly node: SyntaxNode;
|
|
6
|
+
private readonly imported;
|
|
7
|
+
private readonly dependencyModules;
|
|
8
|
+
lastModifyTime: number;
|
|
9
|
+
lastSignatureTime: number;
|
|
10
|
+
signature: string;
|
|
11
|
+
constructor(node: SyntaxNode);
|
|
12
|
+
get name(): string;
|
|
13
|
+
toData(): Type.ModuleData;
|
|
14
|
+
addDependency(dependency: Module): void;
|
|
15
|
+
getImported(): Module[];
|
|
16
|
+
getDependencyModules(): ModuleDependency[];
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/module/module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhD,qBAAa,MAAO,YAAW,IAAI,CAAC,MAAM;IACxC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAE1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA0B;IAE5D,cAAc,SAAK;IAEnB,iBAAiB,SAAK;IAEtB,SAAS,SAAM;gBAEH,IAAI,EAAE,UAAU;IAI5B,IAAI,IAAI,WAEP;IAED,MAAM,IAAI,IAAI,CAAC,UAAU;IAUzB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAOvC,WAAW,IAAI,MAAM,EAAE;IAIvB,oBAAoB,IAAI,gBAAgB,EAAE;CAG3C"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Module = void 0;
|
|
4
|
+
const dependency_1 = require("./dependency");
|
|
5
|
+
const lodash_1 = require("lodash");
|
|
6
|
+
class Module {
|
|
7
|
+
constructor(node) {
|
|
8
|
+
this.imported = [];
|
|
9
|
+
this.dependencyModules = [];
|
|
10
|
+
this.lastModifyTime = 0;
|
|
11
|
+
this.lastSignatureTime = 0;
|
|
12
|
+
this.signature = '';
|
|
13
|
+
this.node = node;
|
|
14
|
+
}
|
|
15
|
+
get name() {
|
|
16
|
+
return this.node.nodePath;
|
|
17
|
+
}
|
|
18
|
+
toData() {
|
|
19
|
+
return {
|
|
20
|
+
node: this.node.nodePath,
|
|
21
|
+
imported: (0, lodash_1.union)(this.imported.map(({ node }) => node.nodePath)),
|
|
22
|
+
lastModifyTime: this.lastModifyTime,
|
|
23
|
+
lastSignatureTime: this.lastSignatureTime,
|
|
24
|
+
signature: this.signature,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
addDependency(dependency) {
|
|
28
|
+
if (this.dependencyModules.every(({ dependency: item }) => dependency !== item)) {
|
|
29
|
+
this.dependencyModules.push(new dependency_1.ModuleDependency(this, dependency));
|
|
30
|
+
dependency.imported.push(this);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
getImported() {
|
|
34
|
+
return [];
|
|
35
|
+
}
|
|
36
|
+
getDependencyModules() {
|
|
37
|
+
return this.dependencyModules.slice();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.Module = Module;
|
|
41
|
+
//# sourceMappingURL=module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module/module.ts"],"names":[],"mappings":";;;AAEA,6CAAgD;AAChD,mCAA+B;AAE/B,MAAa,MAAM;IAYjB,YAAY,IAAgB;QATX,aAAQ,GAAa,EAAE,CAAC;QACxB,sBAAiB,GAAuB,EAAE,CAAC;QAE5D,mBAAc,GAAG,CAAC,CAAC;QAEnB,sBAAiB,GAAG,CAAC,CAAC;QAEtB,cAAS,GAAG,EAAE,CAAC;QAGb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC5B,CAAC;IAED,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;YACxB,QAAQ,EAAE,IAAA,cAAK,EAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/D,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,UAAkB;QAC9B,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC,EAAE,CAAC;YAChF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,6BAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;YACpE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,WAAW;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;IACxC,CAAC;CACF;AA5CD,wBA4CC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Symbol as Type } from '@lcap/nasl-types';
|
|
2
|
+
import { Symbol } from './symbol';
|
|
3
|
+
import { Namespace } from './namespace';
|
|
4
|
+
import { SyntaxNode } from '@lcap/nasl-concepts';
|
|
5
|
+
export declare class SymbolGraph implements Type.SymbolGraph {
|
|
6
|
+
constructor(app: SyntaxNode);
|
|
7
|
+
/** Nasl AST */
|
|
8
|
+
readonly app: SyntaxNode;
|
|
9
|
+
/** 作用域数据 */
|
|
10
|
+
private readonly namespaces;
|
|
11
|
+
get appId(): string;
|
|
12
|
+
addNamespace(...namespaces: Namespace[]): void;
|
|
13
|
+
getSymbols(): Symbol[];
|
|
14
|
+
getNamespaces(): Namespace[];
|
|
15
|
+
getNamespaceByNode(node: SyntaxNode): Namespace | undefined;
|
|
16
|
+
getSymbolByNode(node: SyntaxNode, namespaces?: Namespace): Symbol | undefined;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/symbol/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,qBAAa,WAAY,YAAW,IAAI,CAAC,WAAW;gBACtC,GAAG,EAAE,UAAU;IAK3B,eAAe;IACf,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IAEzB,YAAY;IACZ,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAE9C,IAAI,KAAK,WAER;IAED,YAAY,CAAC,GAAG,UAAU,EAAE,SAAS,EAAE;IAQvC,UAAU;IAKV,aAAa;IAIb,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS;IAkC3D,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS;CAe9E"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SymbolGraph = void 0;
|
|
4
|
+
class SymbolGraph {
|
|
5
|
+
constructor(app) {
|
|
6
|
+
/** 作用域数据 */
|
|
7
|
+
this.namespaces = [];
|
|
8
|
+
this.app = app;
|
|
9
|
+
// traverse(app, this);
|
|
10
|
+
}
|
|
11
|
+
get appId() {
|
|
12
|
+
return this.app.id;
|
|
13
|
+
}
|
|
14
|
+
addNamespace(...namespaces) {
|
|
15
|
+
for (const item of namespaces) {
|
|
16
|
+
if (this.namespaces.every((it) => it.node !== item.node || it.parent !== item.parent)) {
|
|
17
|
+
this.namespaces.push(item);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
getSymbols() {
|
|
22
|
+
return this.getNamespaces()
|
|
23
|
+
.reduce(((ans, item) => ans.concat(Array.from(item.getStrictLocalSymbols().values()))), []);
|
|
24
|
+
}
|
|
25
|
+
getNamespaces() {
|
|
26
|
+
return this.namespaces.slice();
|
|
27
|
+
}
|
|
28
|
+
getNamespaceByNode(node) {
|
|
29
|
+
if (!node) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const rootScope = this.namespaces.find((item) => item.isRoot);
|
|
33
|
+
if (node === this.app) {
|
|
34
|
+
return rootScope;
|
|
35
|
+
}
|
|
36
|
+
let maxLen = 0;
|
|
37
|
+
let result = undefined;
|
|
38
|
+
const nodePath = node.nodePath;
|
|
39
|
+
// 搜索接近的作用域
|
|
40
|
+
rootScope.traverse((namespace) => {
|
|
41
|
+
const insidePath = namespace.node.nodePath;
|
|
42
|
+
// 过滤子节点
|
|
43
|
+
if (!nodePath.startsWith(insidePath)) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
if (insidePath.length > maxLen) {
|
|
47
|
+
maxLen = insidePath.length;
|
|
48
|
+
result = namespace;
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
return result;
|
|
52
|
+
}
|
|
53
|
+
getSymbolByNode(node, namespaces) {
|
|
54
|
+
if (!node?.name) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
if (!namespaces) {
|
|
58
|
+
namespaces = this.getNamespaceByNode(node);
|
|
59
|
+
}
|
|
60
|
+
if (!namespaces) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
return namespaces.getSymbolByToken(node.name);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.SymbolGraph = SymbolGraph;
|
|
67
|
+
//# sourceMappingURL=graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/symbol/graph.ts"],"names":[],"mappings":";;;AAMA,MAAa,WAAW;IACtB,YAAY,GAAe;QAQ3B,YAAY;QACK,eAAU,GAAgB,EAAE,CAAC;QAR5C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,uBAAuB;IACzB,CAAC;IAQD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACrB,CAAC;IAED,YAAY,CAAC,GAAG,UAAuB;QACrC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,aAAa,EAAE;aACxB,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAc,CAAC,CAAC;IAC5G,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,kBAAkB,CAAC,IAAgB;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC;QAE/D,IAAI,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,MAAM,GAA0B,SAAS,CAAC;QAE9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE/B,WAAW;QACX,SAAS,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;YAC/B,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;YAE3C,QAAQ;YACR,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,UAAU,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;gBAC/B,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;gBAC3B,MAAM,GAAG,SAAS,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,eAAe,CAAC,IAAgB,EAAE,UAAsB;QACtD,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,OAAO,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;CACF;AAlFD,kCAkFC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/symbol/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./graph"), exports);
|
|
18
|
+
__exportStar(require("./namespace"), exports);
|
|
19
|
+
__exportStar(require("./symbol"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/symbol/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,8CAA4B;AAC5B,2CAAyB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { Symbol as Type } from '@lcap/nasl-types';
|
|
2
|
+
import type { SyntaxNode } from '@lcap/nasl-concepts';
|
|
3
|
+
import { Symbol } from './symbol';
|
|
4
|
+
import { SymbolGraph } from './graph';
|
|
5
|
+
export declare class Namespace implements Type.Namespace {
|
|
6
|
+
readonly graph: SymbolGraph;
|
|
7
|
+
readonly node: SyntaxNode;
|
|
8
|
+
readonly defaultExport?: Symbol | undefined;
|
|
9
|
+
readonly parent?: Namespace | undefined;
|
|
10
|
+
readonly isExport: boolean;
|
|
11
|
+
readonly children: Namespace[];
|
|
12
|
+
/** 本地符号集合 */
|
|
13
|
+
private readonly localSymbols;
|
|
14
|
+
/** 当前可用符号 */
|
|
15
|
+
private readonly namespaceSymbols;
|
|
16
|
+
constructor(graph: SymbolGraph, node: SyntaxNode, defaultExport?: Symbol | undefined, parent?: Namespace | undefined, isExport?: boolean);
|
|
17
|
+
get isRoot(): boolean;
|
|
18
|
+
get isVirtual(): boolean;
|
|
19
|
+
get root(): Namespace;
|
|
20
|
+
isChild(namespace: Namespace): boolean;
|
|
21
|
+
addSymbol(symbol: Symbol): void;
|
|
22
|
+
getExportTopNamespace(): Namespace;
|
|
23
|
+
getParentNamespace(cb: (namespace: Namespace) => boolean): Namespace | undefined;
|
|
24
|
+
getSymbolByToken(token: string): Symbol | undefined;
|
|
25
|
+
getNamespaceSymbols(): Map<string, Symbol>;
|
|
26
|
+
getLocalSymbols(): Map<string, Symbol>;
|
|
27
|
+
getStrictLocalSymbols(): Map<string, Symbol>;
|
|
28
|
+
traverse(cb: (namespace: Namespace) => boolean | undefined | void): Namespace | undefined;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=namespace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/symbol/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,qBAAa,SAAU,YAAW,IAAI,CAAC,SAAS;IAQ5C,QAAQ,CAAC,KAAK,EAAE,WAAW;IAC3B,QAAQ,CAAC,IAAI,EAAE,UAAU;IACzB,QAAQ,CAAC,aAAa,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC;IAChB,QAAQ,CAAC,QAAQ;IAXnB,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAM;IACpC,aAAa;IACb,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,aAAa;IACb,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA6B;gBAGnD,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,UAAU,EAChB,aAAa,CAAC,oBAAQ,EACtB,MAAM,CAAC,uBAAW,EAClB,QAAQ,UAAO;IAe1B,IAAI,MAAM,YAET;IAED,IAAI,SAAS,YAEZ;IAED,IAAI,IAAI,cAQP;IAED,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;IAUtC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAc/B,qBAAqB,IAAI,SAAS;IAMlC,kBAAkB,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,OAAO,GAAG,SAAS,GAAG,SAAS;IAgBhF,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IA4BnD,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAI1C,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAqBtC,qBAAqB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAI5C,QAAQ,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS;CAkB1F"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Namespace = void 0;
|
|
4
|
+
class Namespace {
|
|
5
|
+
constructor(graph, node, defaultExport, parent, isExport = true) {
|
|
6
|
+
this.graph = graph;
|
|
7
|
+
this.node = node;
|
|
8
|
+
this.defaultExport = defaultExport;
|
|
9
|
+
this.parent = parent;
|
|
10
|
+
this.isExport = isExport;
|
|
11
|
+
this.children = [];
|
|
12
|
+
/** 本地符号集合 */
|
|
13
|
+
this.localSymbols = new Map();
|
|
14
|
+
/** 当前可用符号 */
|
|
15
|
+
this.namespaceSymbols = new Map();
|
|
16
|
+
graph.addNamespace(this);
|
|
17
|
+
if (defaultExport) {
|
|
18
|
+
// @ts-ignore
|
|
19
|
+
this.defaultExport.bindNamespace = this;
|
|
20
|
+
}
|
|
21
|
+
if (parent) {
|
|
22
|
+
parent.children.push(this);
|
|
23
|
+
this.parent = parent;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
get isRoot() {
|
|
27
|
+
return !this.parent && this.node.nodePath === 'app';
|
|
28
|
+
}
|
|
29
|
+
get isVirtual() {
|
|
30
|
+
return !this.node;
|
|
31
|
+
}
|
|
32
|
+
get root() {
|
|
33
|
+
let root = this;
|
|
34
|
+
while (!root.isRoot && root.parent) {
|
|
35
|
+
root = root.parent;
|
|
36
|
+
}
|
|
37
|
+
return root;
|
|
38
|
+
}
|
|
39
|
+
isChild(namespace) {
|
|
40
|
+
let current = this;
|
|
41
|
+
while (current.parent && current !== namespace) {
|
|
42
|
+
current = current.parent;
|
|
43
|
+
}
|
|
44
|
+
return current === namespace;
|
|
45
|
+
}
|
|
46
|
+
addSymbol(symbol) {
|
|
47
|
+
if (this.localSymbols.has(symbol.name)) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
this.localSymbols.set(symbol.name, symbol);
|
|
51
|
+
if (!symbol.isExport || !symbol.semanticName) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
this.getExportTopNamespace().namespaceSymbols.set(symbol.semanticName, symbol);
|
|
55
|
+
}
|
|
56
|
+
getExportTopNamespace() {
|
|
57
|
+
return this.getParentNamespace((ns) => {
|
|
58
|
+
return !ns.isExport || ns.isRoot;
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
getParentNamespace(cb) {
|
|
62
|
+
let current = this;
|
|
63
|
+
while (!current.isRoot) {
|
|
64
|
+
if (cb(current)) {
|
|
65
|
+
return current;
|
|
66
|
+
}
|
|
67
|
+
current = current.parent;
|
|
68
|
+
}
|
|
69
|
+
if (cb(current)) {
|
|
70
|
+
return current;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
getSymbolByToken(token) {
|
|
74
|
+
if (!token) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
// 含有`'.'`符号时表示是命名空间引用
|
|
78
|
+
const isNamespaceRef = token.includes('.');
|
|
79
|
+
let result;
|
|
80
|
+
if (isNamespaceRef) {
|
|
81
|
+
return this.getNamespaceSymbols().get(token);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
result = this.getStrictLocalSymbols().get(token);
|
|
85
|
+
if (result) {
|
|
86
|
+
return result;
|
|
87
|
+
}
|
|
88
|
+
result = this.getLocalSymbols().get(token);
|
|
89
|
+
if (result) {
|
|
90
|
+
return result;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
getNamespaceSymbols() {
|
|
95
|
+
return new Map(this.getExportTopNamespace().namespaceSymbols);
|
|
96
|
+
}
|
|
97
|
+
getLocalSymbols() {
|
|
98
|
+
const result = this.getStrictLocalSymbols();
|
|
99
|
+
const recordSymbol = (space) => {
|
|
100
|
+
for (const [key, val] of current.localSymbols) {
|
|
101
|
+
if (!result.has(key)) {
|
|
102
|
+
result.set(key, val);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
let current = this.parent ?? this;
|
|
107
|
+
while (!current.isRoot) {
|
|
108
|
+
recordSymbol(current);
|
|
109
|
+
current = current.parent;
|
|
110
|
+
}
|
|
111
|
+
recordSymbol(current);
|
|
112
|
+
return result;
|
|
113
|
+
}
|
|
114
|
+
getStrictLocalSymbols() {
|
|
115
|
+
return new Map(this.localSymbols);
|
|
116
|
+
}
|
|
117
|
+
traverse(cb) {
|
|
118
|
+
const resultSelf = cb(this);
|
|
119
|
+
if (resultSelf) {
|
|
120
|
+
return this;
|
|
121
|
+
}
|
|
122
|
+
else if (resultSelf === false) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
for (const child of this.children) {
|
|
126
|
+
let result = child.traverse(cb);
|
|
127
|
+
if (result) {
|
|
128
|
+
return result;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
exports.Namespace = Namespace;
|
|
134
|
+
//# sourceMappingURL=namespace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/symbol/namespace.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Symbol as SymbolType } from '@lcap/nasl-types';
|
|
2
|
+
import type { SyntaxNode } from '@lcap/nasl-concepts';
|
|
3
|
+
import { Namespace } from './namespace';
|
|
4
|
+
import { SymbolGraph } from './graph';
|
|
5
|
+
export declare class Symbol implements SymbolType.Symbol {
|
|
6
|
+
readonly graph: SymbolGraph;
|
|
7
|
+
readonly name: string;
|
|
8
|
+
readonly namespace: Namespace;
|
|
9
|
+
readonly declaration?: SyntaxNode | undefined;
|
|
10
|
+
readonly isVirtual: boolean;
|
|
11
|
+
readonly isExport: boolean;
|
|
12
|
+
readonly references: SyntaxNode[];
|
|
13
|
+
readonly naslName?: string;
|
|
14
|
+
readonly semanticName?: string;
|
|
15
|
+
constructor(graph: SymbolGraph, name: string, namespace: Namespace, declaration?: SyntaxNode | undefined, isVirtual?: boolean, isExport?: boolean);
|
|
16
|
+
get isUsed(): boolean;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=symbol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbol.d.ts","sourceRoot":"","sources":["../../src/symbol/symbol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,qBAAa,MAAO,YAAW,UAAU,CAAC,MAAM;aAM5B,KAAK,EAAE,WAAW;aAClB,IAAI,EAAE,MAAM;aACZ,SAAS,EAAE,SAAS;aACpB,WAAW,CAAC;aACZ,SAAS;aACT,QAAQ;IAV1B,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,CAAM;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;gBAGb,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,EACpB,WAAW,CAAC,wBAAY,EACxB,SAAS,UAAQ,EACjB,QAAQ,UAAO;IAajC,IAAI,MAAM,YAET;CACF"}
|