@lcap/nasl-concepts 3.12.0-rc.6 → 3.13.0-alpha.microapp-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/out/common/BaseNode.d.ts +0 -1
- package/out/common/BaseNode.d.ts.map +1 -1
- package/out/common/BaseNode.js +2 -48
- package/out/common/BaseNode.js.map +1 -1
- package/out/concepts/App__.d.ts +2 -0
- package/out/concepts/App__.d.ts.map +1 -1
- package/out/concepts/App__.js +3 -0
- package/out/concepts/App__.js.map +1 -1
- package/out/concepts/CallFunction__.d.ts +13 -0
- package/out/concepts/CallFunction__.d.ts.map +1 -1
- package/out/concepts/CallFunction__.js +103 -2
- package/out/concepts/CallFunction__.js.map +1 -1
- package/out/concepts/CallQueryComponent__.d.ts +1 -0
- package/out/concepts/CallQueryComponent__.d.ts.map +1 -1
- package/out/concepts/CallQueryComponent__.js +19 -6
- package/out/concepts/CallQueryComponent__.js.map +1 -1
- package/out/concepts/DataSource__.d.ts +1 -0
- package/out/concepts/DataSource__.d.ts.map +1 -1
- package/out/concepts/DataSource__.js +5 -1
- package/out/concepts/DataSource__.js.map +1 -1
- package/out/concepts/JSBlock__.d.ts +1 -0
- package/out/concepts/JSBlock__.d.ts.map +1 -1
- package/out/concepts/JSBlock__.js +19 -1
- package/out/concepts/JSBlock__.js.map +1 -1
- package/out/concepts/LogicItem__.js +1 -1
- package/out/concepts/LogicItem__.js.map +1 -1
- package/out/concepts/Logic__.d.ts.map +1 -1
- package/out/concepts/Logic__.js +7 -0
- package/out/concepts/Logic__.js.map +1 -1
- package/out/concepts/MicroApp__.d.ts +1 -1
- package/out/concepts/MicroApp__.d.ts.map +1 -1
- package/out/concepts/MicroApp__.js.map +1 -1
- package/out/concepts/QueryAggregateExpression__.d.ts.map +1 -1
- package/out/concepts/QueryAggregateExpression__.js +4 -1
- package/out/concepts/QueryAggregateExpression__.js.map +1 -1
- package/out/concepts/QueryFieldExpression__.d.ts +2 -1
- package/out/concepts/QueryFieldExpression__.d.ts.map +1 -1
- package/out/concepts/QueryFieldExpression__.js +4 -0
- package/out/concepts/QueryFieldExpression__.js.map +1 -1
- package/out/concepts/QueryFromExpression__.d.ts +4 -0
- package/out/concepts/QueryFromExpression__.d.ts.map +1 -1
- package/out/concepts/QueryFromExpression__.js +6 -0
- package/out/concepts/QueryFromExpression__.js.map +1 -1
- package/out/concepts/QueryGroupByExpression__.d.ts.map +1 -1
- package/out/concepts/QueryGroupByExpression__.js +5 -1
- package/out/concepts/QueryGroupByExpression__.js.map +1 -1
- package/out/concepts/QueryOrderByExpression__.d.ts +53 -3
- package/out/concepts/QueryOrderByExpression__.d.ts.map +1 -1
- package/out/concepts/QueryOrderByExpression__.js +110 -16
- package/out/concepts/QueryOrderByExpression__.js.map +1 -1
- package/out/concepts/Structure__.js +1 -1
- package/out/concepts/Structure__.js.map +1 -1
- package/out/concepts/ViewElement__.d.ts +1 -0
- package/out/concepts/ViewElement__.d.ts.map +1 -1
- package/out/concepts/ViewElement__.js +13 -10
- package/out/concepts/ViewElement__.js.map +1 -1
- package/out/semantics/semanticData.d.ts +15 -2
- package/out/semantics/semanticData.d.ts.map +1 -1
- package/out/semantics/semanticData.js +241 -12
- package/out/semantics/semanticData.js.map +1 -1
- package/out/service/getMemberIdentifier.d.ts +1 -1
- package/out/service/getMemberIdentifier.d.ts.map +1 -1
- package/out/service/getMemberIdentifier.js +19 -6
- package/out/service/getMemberIdentifier.js.map +1 -1
- package/out/utils/bak-translator.js +1 -1
- package/out/utils/bak-translator.js.map +1 -1
- package/package.json +7 -7
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { App, Identifier, MemberExpression, View, ViewElement, Return, Variable, Assignment, BatchAssignment, CallFunction, AuthLogicForCallInterface, BusinessComponent, BusinessLogic, Logic, OverriddenLogic, SubLogic, Process, ProcessV2, ProcessElement, ProcessElementV2, CallLogic, FrontendType, CallQueryComponent } from '../index';
|
|
1
|
+
import { App, Identifier, MemberExpression, View, ViewElement, BaseNode, Return, Variable, Assignment, BatchAssignment, CallFunction, AuthLogicForCallInterface, BusinessComponent, BusinessLogic, Logic, OverriddenLogic, SubLogic, Process, ProcessV2, ProcessElement, ProcessElementV2, CallLogic, FrontendType, CallQueryComponent } from '../index';
|
|
2
2
|
import { SyntaxNode } from '../concepts/utils/types';
|
|
3
3
|
export declare const firstScreenNaslNodesCount: {
|
|
4
4
|
count: number;
|
|
5
5
|
};
|
|
6
6
|
export type VarScopeCtx = {
|
|
7
|
-
isFirstScreen: boolean;
|
|
8
7
|
frontendGlobalVars: Set<string>;
|
|
9
8
|
logicInViewOrComponent: Set<string>;
|
|
10
9
|
ctxBsComponent: Array<BusinessComponent>;
|
|
@@ -23,6 +22,7 @@ export type VarScopeCtx = {
|
|
|
23
22
|
idToFrontendType: Map<Identifier, FrontendType>;
|
|
24
23
|
idToCallQueryComponent: Map<Identifier, CallQueryComponent>;
|
|
25
24
|
};
|
|
25
|
+
export type LogicIndirectDependencies = Map<Logic, Set<Logic>>;
|
|
26
26
|
export type TyInferCtx = {
|
|
27
27
|
inferViaAsgnMap: Map<string, [Variable | Return, Assignment | BatchAssignment]>;
|
|
28
28
|
inferViaFnCallMap: Map<string, [Variable | Return, CallFunction]>;
|
|
@@ -38,9 +38,20 @@ export declare class SemanticData {
|
|
|
38
38
|
constructor();
|
|
39
39
|
varScopeCtx: VarScopeCtx;
|
|
40
40
|
tyInferCtx: TyInferCtx;
|
|
41
|
+
calcIndRetDepMap: (fns: Logic[]) => LogicIndirectDependencies;
|
|
42
|
+
calcIndRetDepRevMap: (m: LogicIndirectDependencies) => LogicIndirectDependencies;
|
|
43
|
+
printIndRetDepMap: (indRetDepMap: LogicIndirectDependencies) => void;
|
|
44
|
+
updateDirtyIndRetDeps: (nd: Logic) => void;
|
|
45
|
+
calcAndSaveIndRetDepAndRevMap: (fns: Logic[]) => void;
|
|
46
|
+
indRetDepMap: Map<Logic, Set<Logic>>;
|
|
47
|
+
indRetDepRevMap: Map<Logic, Set<Logic>>;
|
|
48
|
+
dirtyIndRetDeps: Set<Logic>;
|
|
49
|
+
replaceAndUpdateAllIndirectDependencies: (m: LogicIndirectDependencies) => void;
|
|
41
50
|
subLogicCtx: SubLogicCtx;
|
|
51
|
+
dirtyViewId: string;
|
|
42
52
|
static last: <T>(arr: Array<T>) => T;
|
|
43
53
|
collectAllSemanticCtx: (app: App) => void;
|
|
54
|
+
updateSemanticCtxAsPer(nd: BaseNode): Generator<any, void, any>;
|
|
44
55
|
collectFrontendVariablesTask(app: App): Generator<never, void, unknown>;
|
|
45
56
|
collectIdCtxTask(nd: SyntaxNode): Generator<never, void, unknown>;
|
|
46
57
|
collectIdCtxCleanup(nd: SyntaxNode): Generator<never, void, unknown>;
|
|
@@ -55,6 +66,8 @@ export declare class SemanticData {
|
|
|
55
66
|
reCollectTyInferCtx(inferViaAsgn: Map<string, [Variable | Return, Assignment | BatchAssignment]>, inferViaFnCall: Map<string, [Variable | Return, CallFunction]>, self: LogicContainer): Generator<any, void, any>;
|
|
56
67
|
collectAsgn(inferViaAsgnMap: Map<string, [Variable | Return, Assignment | BatchAssignment]>, inferViaBuiltinFnMap: Map<string, [Variable | Return, CallFunction]>, nd: SyntaxNode): Generator<any, void, any>;
|
|
57
68
|
clearSemanticData: () => void;
|
|
69
|
+
redirectSlowGetters(app: App, varScopeCtx: VarScopeCtx): void;
|
|
70
|
+
recoverSlowGetters(): void;
|
|
58
71
|
printSemanticDataInfo: () => void;
|
|
59
72
|
}
|
|
60
73
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semanticData.d.ts","sourceRoot":"","sources":["../../src/semantics/semanticData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"semanticData.d.ts","sourceRoot":"","sources":["../../src/semantics/semanticData.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SemanticData = exports.firstScreenNaslNodesCount = void 0;
|
|
4
|
+
const index_1 = require("../index");
|
|
4
5
|
const nasl_translator_1 = require("@lcap/nasl-translator");
|
|
5
6
|
const nasl_utils_1 = require("@lcap/nasl-utils");
|
|
6
7
|
exports.firstScreenNaslNodesCount = { count: 0 };
|
|
@@ -8,7 +9,6 @@ class SemanticData {
|
|
|
8
9
|
constructor() {
|
|
9
10
|
// 前端全局变量很少,一般就十个以内,所以 map 大小可以忽略不计
|
|
10
11
|
this.varScopeCtx = {
|
|
11
|
-
isFirstScreen: false,
|
|
12
12
|
frontendGlobalVars: new Set(),
|
|
13
13
|
// Collect all params, (local) variables, and logic names under business component
|
|
14
14
|
// Note that within a business component, one can only refer to the above variables, and cannot refer to
|
|
@@ -44,12 +44,155 @@ class SemanticData {
|
|
|
44
44
|
scope: [],
|
|
45
45
|
capturedVars: new Map(),
|
|
46
46
|
};
|
|
47
|
+
/*
|
|
48
|
+
返回类型依赖的计算方式:
|
|
49
|
+
logicA body:
|
|
50
|
+
calls logicB &&
|
|
51
|
+
logicB.return && !logicB.return.typeAnnotation &&
|
|
52
|
+
logicB calls logicC logicD ...
|
|
53
|
+
|
|
54
|
+
then build map:
|
|
55
|
+
|
|
56
|
+
logicA -> [logicC, logicD]
|
|
57
|
+
|
|
58
|
+
hints: logicB 的返回类型由某些复杂的传递关系算出,可能会涉及到 logicC、logicD 的返回类型,如 x = logicC(); result = x
|
|
59
|
+
就不做更细致的分析了
|
|
60
|
+
*/
|
|
61
|
+
this.calcIndRetDepMap = (fns) => {
|
|
62
|
+
// 存储直接依赖关系
|
|
63
|
+
const directDeps = new Map();
|
|
64
|
+
const getCallNodes = (fn) => {
|
|
65
|
+
const calls = new Set();
|
|
66
|
+
fn.body.forEach((nd) => {
|
|
67
|
+
nd.traverseStrictChildren((child) => {
|
|
68
|
+
if (child.concept === 'CallLogic' &&
|
|
69
|
+
!(['jsonSerialize', 'jsonDeserialize'].includes(child.calleeName))) {
|
|
70
|
+
const calledFn = child.getCallNode();
|
|
71
|
+
if (calledFn) {
|
|
72
|
+
calls.add(calledFn);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
return calls;
|
|
78
|
+
};
|
|
79
|
+
// 第一步:仅建立第一层间接依赖关系(间接依赖的直接依赖)
|
|
80
|
+
for (const fn of fns) {
|
|
81
|
+
const deps = new Set();
|
|
82
|
+
// 遍历函数体找到所有调用
|
|
83
|
+
fn.body.forEach(node => {
|
|
84
|
+
node.traverseStrictChildren(nd => {
|
|
85
|
+
if (nd.concept === 'CallLogic') {
|
|
86
|
+
const calledFn = nd.getCallNode();
|
|
87
|
+
if (calledFn) {
|
|
88
|
+
if (!calledFn.returns?.[0]) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
// 被调用函数是否有显式返回类型,则不考虑
|
|
92
|
+
if (calledFn.returns[0].typeAnnotation) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
// 被调用函数中的(二级)函数调用
|
|
96
|
+
const callNodes = getCallNodes(calledFn);
|
|
97
|
+
callNodes.forEach(c => c !== calledFn && deps.add(c));
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
if (deps.size > 0) {
|
|
103
|
+
directDeps.set(fn, deps);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
// 结果Map
|
|
107
|
+
const result = new Map();
|
|
108
|
+
// 初始化结果集
|
|
109
|
+
for (const [fn, deps] of directDeps) {
|
|
110
|
+
const allDeps = new Set();
|
|
111
|
+
// 添加直接依赖
|
|
112
|
+
for (const dep of deps) {
|
|
113
|
+
if (!dep.returns?.[0]) {
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
// if (!dep.returns[0].typeAnnotation) {
|
|
117
|
+
allDeps.add(dep);
|
|
118
|
+
// }
|
|
119
|
+
}
|
|
120
|
+
allDeps.size > 0 && result.set(fn, allDeps);
|
|
121
|
+
}
|
|
122
|
+
// Floyd-Warshall 算法计算传递闭包
|
|
123
|
+
for (const fn of fns) {
|
|
124
|
+
if (!fn.returns?.[0]) {
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
if (fn.returns[0].typeAnnotation) { // 只考虑返回类型是推导的函数
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
for (const [lgc, iDeps] of result) {
|
|
131
|
+
if (!iDeps.has(fn)) {
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
const kDeps = getCallNodes(fn);
|
|
135
|
+
if (kDeps.size > 0) {
|
|
136
|
+
for (const dep of kDeps) {
|
|
137
|
+
if (!dep.returns?.[0]) {
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
if (!dep.returns[0].typeAnnotation) {
|
|
141
|
+
dep !== lgc && iDeps.add(dep);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return result;
|
|
148
|
+
};
|
|
149
|
+
// 我被改了后,我影响谁
|
|
150
|
+
this.calcIndRetDepRevMap = (m) => {
|
|
151
|
+
const result = new Map();
|
|
152
|
+
for (const [fn, deps] of m) {
|
|
153
|
+
for (const dep of deps) {
|
|
154
|
+
if (!result.has(dep)) {
|
|
155
|
+
result.set(dep, new Set());
|
|
156
|
+
}
|
|
157
|
+
result.get(dep)?.add(fn);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return result;
|
|
161
|
+
};
|
|
162
|
+
this.printIndRetDepMap = (indRetDepMap) => {
|
|
163
|
+
indRetDepMap.forEach((deps, fn) => {
|
|
164
|
+
console.log(`Function ${fn.name} depends on:`);
|
|
165
|
+
deps.forEach(dep => console.log(` ${dep.name}`));
|
|
166
|
+
});
|
|
167
|
+
};
|
|
168
|
+
this.updateDirtyIndRetDeps = (nd) => {
|
|
169
|
+
this.dirtyIndRetDeps.delete(nd);
|
|
170
|
+
this.indRetDepRevMap.get(nd)?.forEach(dep => this.dirtyIndRetDeps.add(dep));
|
|
171
|
+
};
|
|
172
|
+
this.calcAndSaveIndRetDepAndRevMap = (fns) => {
|
|
173
|
+
nasl_utils_1.isDebugMode && console.time('扫描返回类型间接依赖');
|
|
174
|
+
// @ts-ignore
|
|
175
|
+
this.indRetDepMap = this.calcIndRetDepMap(fns);
|
|
176
|
+
this.indRetDepRevMap = this.calcIndRetDepRevMap(this.indRetDepMap);
|
|
177
|
+
nasl_utils_1.isDebugMode && console.timeEnd('扫描返回类型间接依赖');
|
|
178
|
+
nasl_utils_1.isDebugMode && (this.printIndRetDepMap(this.indRetDepMap));
|
|
179
|
+
};
|
|
180
|
+
this.indRetDepMap = new Map();
|
|
181
|
+
this.indRetDepRevMap = new Map();
|
|
182
|
+
this.dirtyIndRetDeps = new Set();
|
|
183
|
+
this.replaceAndUpdateAllIndirectDependencies = (m) => {
|
|
184
|
+
nasl_utils_1.isDebugMode && console.time('更新返回类型间接依赖');
|
|
185
|
+
this.indRetDepMap = m;
|
|
186
|
+
this.indRetDepRevMap = this.calcIndRetDepRevMap(m);
|
|
187
|
+
this.dirtyIndRetDeps.clear();
|
|
188
|
+
nasl_utils_1.isDebugMode && console.timeEnd('更新返回类型间接依赖');
|
|
189
|
+
};
|
|
47
190
|
this.subLogicCtx = {
|
|
48
191
|
ctx: null, // 当前逻辑
|
|
49
192
|
viewSubLogics: new Set(), // 隶属于 view 的 SubLogic,需要排除掉隶属于 Logic 的 SubLogic。
|
|
50
193
|
};
|
|
194
|
+
this.dirtyViewId = null;
|
|
51
195
|
this.collectAllSemanticCtx = (app) => {
|
|
52
|
-
this.varScopeCtx.isFirstScreen = true;
|
|
53
196
|
const tasks = [
|
|
54
197
|
this.collectIdCtxTask.bind(this),
|
|
55
198
|
this.collectSubLogicCtxTask.bind(this),
|
|
@@ -65,7 +208,6 @@ class SemanticData {
|
|
|
65
208
|
(0, nasl_utils_1.runGeneratorSync)(app.traverseStrictChildrenDoMultiTasks(tasks, cleanups));
|
|
66
209
|
};
|
|
67
210
|
this.clearSemanticData = () => {
|
|
68
|
-
this.varScopeCtx.isFirstScreen = false;
|
|
69
211
|
this.varScopeCtx.frontendGlobalVars.clear();
|
|
70
212
|
this.varScopeCtx.logicInViewOrComponent.clear();
|
|
71
213
|
this.varScopeCtx.idToView.clear();
|
|
@@ -97,16 +239,29 @@ class SemanticData {
|
|
|
97
239
|
console.log('memExprToViewElem', this.varScopeCtx.memExprToViewElem);
|
|
98
240
|
console.log('inferViaAsgnMap', this.tyInferCtx.inferViaAsgnMap);
|
|
99
241
|
console.log('inferViaFnCallMap', this.tyInferCtx.inferViaFnCallMap);
|
|
100
|
-
// console.log(oqlSet)
|
|
242
|
+
// console.log(oqlSet);
|
|
101
243
|
console.log('capturedVars', this.tyInferCtx.capturedVars);
|
|
102
244
|
console.log('viewSubLogics', this.subLogicCtx.viewSubLogics);
|
|
103
245
|
console.log('ctx', this.subLogicCtx.ctx);
|
|
104
246
|
console.log('scope', this.tyInferCtx.scope);
|
|
105
|
-
console.log('isFirstScreen', this.varScopeCtx.isFirstScreen);
|
|
106
247
|
console.log('naslNodesCount', exports.firstScreenNaslNodesCount.count);
|
|
107
248
|
};
|
|
108
249
|
}
|
|
109
250
|
static { this.last = (arr) => arr[arr.length - 1]; }
|
|
251
|
+
*updateSemanticCtxAsPer(nd) {
|
|
252
|
+
const tasks = [
|
|
253
|
+
this.collectIdCtxTask.bind(this),
|
|
254
|
+
this.collectSubLogicCtxTask.bind(this),
|
|
255
|
+
// this.collectTyInferCtxTask.bind(this) // 这里触发的话内存地址好像有点问题,几万个报错。先由各 concept.ts 文件里对 reCollectTyInferCtx 的调用触发
|
|
256
|
+
];
|
|
257
|
+
const cleanups = [
|
|
258
|
+
this.collectIdCtxCleanup.bind(this),
|
|
259
|
+
this.collectSubLogicCtxCleanup.bind(this),
|
|
260
|
+
// this.collectTyInferCtxCleanup.bind(this)
|
|
261
|
+
];
|
|
262
|
+
yield* this.collectFrontendVariablesTask(nd.getAncestorRaw('App'));
|
|
263
|
+
yield* nd.traverseStrictChildrenDoMultiTasks(tasks, cleanups);
|
|
264
|
+
}
|
|
110
265
|
*collectFrontendVariablesTask(app) {
|
|
111
266
|
app.frontendTypes?.forEach(ft => {
|
|
112
267
|
ft.frontends.forEach(f => {
|
|
@@ -335,13 +490,10 @@ class SemanticData {
|
|
|
335
490
|
return nd.nodePath; // 未来会有其他的速度更快的处理方式,现在 nodePath 比较稳妥……
|
|
336
491
|
}
|
|
337
492
|
*reCollectTyInferCtx(inferViaAsgn, inferViaFnCall, self) {
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
// @ts-ignore
|
|
343
|
-
yield* (self.__v_raw ?? self).traverseStrictChildrenDoMultiTasks([this.collectTyInferCtxTask.bind(this)], [this.collectTyInferCtxCleanup.bind(this)]);
|
|
344
|
-
}
|
|
493
|
+
this.tyInferCtx.inferViaAsgnMap.clear();
|
|
494
|
+
this.tyInferCtx.inferViaFnCallMap.clear();
|
|
495
|
+
// @ts-ignore
|
|
496
|
+
yield* (self.__v_raw ?? self).traverseStrictChildrenDoMultiTasks([this.collectTyInferCtxTask.bind(this)], [this.collectTyInferCtxCleanup.bind(this)]);
|
|
345
497
|
// @ts-ignore
|
|
346
498
|
const nodes = self.returns ? self.variables.concat(self.returns) : self.variables;
|
|
347
499
|
nodes.forEach((locVar) => {
|
|
@@ -405,6 +557,83 @@ class SemanticData {
|
|
|
405
557
|
processNode(expr?.name, nd);
|
|
406
558
|
}
|
|
407
559
|
}
|
|
560
|
+
redirectSlowGetters(app, varScopeCtx) {
|
|
561
|
+
Object.defineProperty(index_1.BaseNode.prototype, 'app', {
|
|
562
|
+
get() { return app; },
|
|
563
|
+
configurable: true,
|
|
564
|
+
});
|
|
565
|
+
Object.defineProperties(index_1.Identifier.prototype, {
|
|
566
|
+
isFrontendVariables: {
|
|
567
|
+
get() { return varScopeCtx.frontendGlobalVars.has(`${this.namespace}.${this.name}`); },
|
|
568
|
+
configurable: true,
|
|
569
|
+
},
|
|
570
|
+
view: {
|
|
571
|
+
get() { return varScopeCtx.idToView.get(this); },
|
|
572
|
+
configurable: true,
|
|
573
|
+
},
|
|
574
|
+
viewElement: {
|
|
575
|
+
get() { return varScopeCtx.idToViewElem.get(this); },
|
|
576
|
+
configurable: true,
|
|
577
|
+
},
|
|
578
|
+
businessComponent: {
|
|
579
|
+
get() { return varScopeCtx.idToBsComponent.get(this); },
|
|
580
|
+
configurable: true,
|
|
581
|
+
},
|
|
582
|
+
callLogic: {
|
|
583
|
+
get() { return varScopeCtx.idToCallLogic.get(this); },
|
|
584
|
+
configurable: true,
|
|
585
|
+
},
|
|
586
|
+
frontendType: {
|
|
587
|
+
get() { return varScopeCtx.idToFrontendType.get(this); },
|
|
588
|
+
configurable: true,
|
|
589
|
+
},
|
|
590
|
+
callQueryComponent: {
|
|
591
|
+
get() { return varScopeCtx.idToCallQueryComponent.get(this); },
|
|
592
|
+
configurable: true,
|
|
593
|
+
},
|
|
594
|
+
});
|
|
595
|
+
}
|
|
596
|
+
recoverSlowGetters() {
|
|
597
|
+
Object.defineProperty(index_1.BaseNode.prototype, 'app', {
|
|
598
|
+
get() { return this.getAncestor('App'); },
|
|
599
|
+
configurable: true,
|
|
600
|
+
});
|
|
601
|
+
Object.defineProperties(index_1.Identifier.prototype, {
|
|
602
|
+
isFrontendVariables: {
|
|
603
|
+
get() {
|
|
604
|
+
const self = this.__v_raw ?? this;
|
|
605
|
+
const frontendType = self.getAncestor('FrontendType');
|
|
606
|
+
return (self.namespace?.startsWith(`app.frontendTypes.${frontendType?.kind}.frontends`) &&
|
|
607
|
+
self.namespace?.endsWith('variables'));
|
|
608
|
+
},
|
|
609
|
+
configurable: true,
|
|
610
|
+
},
|
|
611
|
+
view: {
|
|
612
|
+
get() { return this.getAncestor('View'); },
|
|
613
|
+
configurable: true,
|
|
614
|
+
},
|
|
615
|
+
viewElement: {
|
|
616
|
+
get() { return this.getAncestor('ViewElement'); },
|
|
617
|
+
configurable: true,
|
|
618
|
+
},
|
|
619
|
+
businessComponent: {
|
|
620
|
+
get() { return this.getAncestor('BusinessComponent'); },
|
|
621
|
+
configurable: true,
|
|
622
|
+
},
|
|
623
|
+
callLogic: {
|
|
624
|
+
get() { return this.getAncestor('CallLogic'); },
|
|
625
|
+
configurable: true,
|
|
626
|
+
},
|
|
627
|
+
frontendType: {
|
|
628
|
+
get() { return this.getAncestor('FrontendType'); },
|
|
629
|
+
configurable: true,
|
|
630
|
+
},
|
|
631
|
+
callQueryComponent: {
|
|
632
|
+
get() { return this.getAncestor('CallQueryComponent'); },
|
|
633
|
+
configurable: true,
|
|
634
|
+
},
|
|
635
|
+
});
|
|
636
|
+
}
|
|
408
637
|
}
|
|
409
638
|
exports.SemanticData = SemanticData;
|
|
410
639
|
//# sourceMappingURL=semanticData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semanticData.js","sourceRoot":"","sources":["../../src/semantics/semanticData.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"semanticData.js","sourceRoot":"","sources":["../../src/semantics/semanticData.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@ export declare function getBackendVariablesIdentifier(node: SyntaxNode): Complet
|
|
|
25
25
|
* 所以前端的右上角变量框是不可能看到 AnonymousFunction 入参的,需要手动塞进去。 并且要避免 Identifier 中的 current、item、file 等被重复塞一次。
|
|
26
26
|
*/
|
|
27
27
|
export declare function getVarCompletionList(nd: SyntaxNode): Promise<Array<CompletionProperty>>;
|
|
28
|
-
export declare function getVariableIdentifier(node: SyntaxNode): Promise<CompletionProperty[]>;
|
|
28
|
+
export declare function getVariableIdentifier(node: SyntaxNode, onlyCurrent?: boolean): Promise<CompletionProperty[]>;
|
|
29
29
|
export declare function getCommonVariableIdentifier(node: SyntaxNode): CompletionProperty[];
|
|
30
30
|
export declare function getSelectNextCompletionData(node: Identifier, completionProperty?: CompletionProperty): Promise<CompletionProperty[]>;
|
|
31
31
|
export declare function getConfigsIdentifier(node: BaseNode): CompletionProperty[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMemberIdentifier.d.ts","sourceRoot":"","sources":["../../src/service/getMemberIdentifier.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAElB,UAAU,EAEV,IAAI,EAQJ,UAAU,EA6BX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAarC,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,wBA+B7C;AAoLD,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,kBAAkB,GAAG,UAAU,CAAA;CAAE;;;;;KA0CrH;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,QAAQ,wBAK5D;AAGD,wBAAgB,qBAAqB,IAAI,kBAAkB,EAAE,CAE5D;AAGD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,kBAAkB,EAAE,CA8BzE;AAID,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,UAAU,GAAG,kBAAkB,EAAE,CAMpF;
|
|
1
|
+
{"version":3,"file":"getMemberIdentifier.d.ts","sourceRoot":"","sources":["../../src/service/getMemberIdentifier.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAElB,UAAU,EAEV,IAAI,EAQJ,UAAU,EA6BX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAarC,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,wBA+B7C;AAoLD,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,kBAAkB,GAAG,UAAU,CAAA;CAAE;;;;;KA0CrH;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,QAAQ,wBAK5D;AAGD,wBAAgB,qBAAqB,IAAI,kBAAkB,EAAE,CAE5D;AAGD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,kBAAkB,EAAE,CA8BzE;AAID,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,UAAU,GAAG,kBAAkB,EAAE,CAMpF;AA4GD;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CA4D7F;AAgRD,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,UAAQ,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA8ChH;AAGD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,UAAU,GAAG,kBAAkB,EAAE,CAOlF;AAED,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,UAAU,EAAE,kBAAkB,CAAC,EAAE,kBAAkB,iCAe1G;AAGD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,GAAG,kBAAkB,EAAE,CA6BzE;AAkFD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE;IACpE,WAAW,CAAC,EAAE,kBAAkB,GAAG,UAAU,CAAA;CAC9C,GAAG,kBAAkB,EAAE,CAWvB"}
|
|
@@ -388,6 +388,7 @@ const getViewVarCompletionList = (nd, ctxViewLike) => {
|
|
|
388
388
|
return visibleVars.map(refineUnionType(nd)).map((0, formatTsUtils_1.genIdentSelectorNodeData)(undefined));
|
|
389
389
|
};
|
|
390
390
|
// 插槽变量
|
|
391
|
+
// 暂时不用,先保留下
|
|
391
392
|
const getSlotVarsCompletionList = (nd) => genSlotVars(nd)
|
|
392
393
|
.map(refineUnionType(nd))
|
|
393
394
|
.map((0, formatTsUtils_1.genIdentSelectorNodeData)(undefined));
|
|
@@ -420,7 +421,7 @@ async function getVarCompletionList(nd) {
|
|
|
420
421
|
const ctxBindDirect = (nd.concept === 'BindDirective' ? nd : nd.getAncestor('BindDirective'));
|
|
421
422
|
let res = [];
|
|
422
423
|
if (ctxCallLogic && ctxBindAttr?.name === 'rules') {
|
|
423
|
-
//
|
|
424
|
+
// 服务端 CallLogic 的验证规则只能使用入参
|
|
424
425
|
const def = ctxCallLogic.getCallNode();
|
|
425
426
|
res = def?.params.map(refineUnionType(nd)).map((0, formatTsUtils_1.genIdentSelectorNodeData)(undefined));
|
|
426
427
|
}
|
|
@@ -437,9 +438,19 @@ async function getVarCompletionList(nd) {
|
|
|
437
438
|
res = nd.expression.params.map(refineUnionType(nd)).map((0, formatTsUtils_1.genIdentSelectorNodeData)(ctxLogicLike));
|
|
438
439
|
}
|
|
439
440
|
else {
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
441
|
+
utils_1.isDebugMode && console.time('variable selector calculation time');
|
|
442
|
+
const promiseCurrents = getVariableIdentifier(nd, true);
|
|
443
|
+
const hasCurrents = getSlotVarsCompletionList(nd).length > 0;
|
|
444
|
+
const localVars = getLocalVarsCompletionList(nd, ctxBindAttr ?? ctxBindDirect);
|
|
445
|
+
const viewVars = getViewVarCompletionList(nd, ctxViewLike);
|
|
446
|
+
if (hasCurrents) { // 有 currents 再从语言服务拿
|
|
447
|
+
const currents = await promiseCurrents ?? []; // 不知道为什么页面验证规则,这个地方会进入 4 次,前几次没有 currentSource 所以返回了 undefined
|
|
448
|
+
res = [...currents, ...localVars, ...viewVars];
|
|
449
|
+
}
|
|
450
|
+
else {
|
|
451
|
+
res = [...localVars, ...viewVars];
|
|
452
|
+
}
|
|
453
|
+
utils_1.isDebugMode && console.timeEnd('variable selector calculation time');
|
|
443
454
|
}
|
|
444
455
|
}
|
|
445
456
|
else {
|
|
@@ -705,12 +716,14 @@ function genSlotVars(start) {
|
|
|
705
716
|
return res;
|
|
706
717
|
}
|
|
707
718
|
// 获取变量
|
|
708
|
-
async function getVariableIdentifier(node) {
|
|
719
|
+
async function getVariableIdentifier(node, onlyCurrent = false) {
|
|
709
720
|
let completionData = [new concepts_1.CompletionProperty({})];
|
|
710
721
|
// 只获取第一层内容
|
|
711
722
|
const app = node?.getAncestor('App');
|
|
712
723
|
const { naslServer } = app;
|
|
713
|
-
let nextCompletion =
|
|
724
|
+
let nextCompletion = onlyCurrent
|
|
725
|
+
? await naslServer?.getSlotCurrentCompletion(node) // 新增的,只获取 current
|
|
726
|
+
: await naslServer?.getFieldKeySelectCompletion(node, '');
|
|
714
727
|
const logic = node?.getAncestor('AuthLogic');
|
|
715
728
|
if (logic) {
|
|
716
729
|
// 祖先节点是 AuthLogic | AuthLogicForCallInterface 时,需要过滤掉 api 以及 ${logicName}Result 两个内置参数
|