@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.
Files changed (67) hide show
  1. package/out/common/BaseNode.d.ts +0 -1
  2. package/out/common/BaseNode.d.ts.map +1 -1
  3. package/out/common/BaseNode.js +2 -48
  4. package/out/common/BaseNode.js.map +1 -1
  5. package/out/concepts/App__.d.ts +2 -0
  6. package/out/concepts/App__.d.ts.map +1 -1
  7. package/out/concepts/App__.js +3 -0
  8. package/out/concepts/App__.js.map +1 -1
  9. package/out/concepts/CallFunction__.d.ts +13 -0
  10. package/out/concepts/CallFunction__.d.ts.map +1 -1
  11. package/out/concepts/CallFunction__.js +103 -2
  12. package/out/concepts/CallFunction__.js.map +1 -1
  13. package/out/concepts/CallQueryComponent__.d.ts +1 -0
  14. package/out/concepts/CallQueryComponent__.d.ts.map +1 -1
  15. package/out/concepts/CallQueryComponent__.js +19 -6
  16. package/out/concepts/CallQueryComponent__.js.map +1 -1
  17. package/out/concepts/DataSource__.d.ts +1 -0
  18. package/out/concepts/DataSource__.d.ts.map +1 -1
  19. package/out/concepts/DataSource__.js +5 -1
  20. package/out/concepts/DataSource__.js.map +1 -1
  21. package/out/concepts/JSBlock__.d.ts +1 -0
  22. package/out/concepts/JSBlock__.d.ts.map +1 -1
  23. package/out/concepts/JSBlock__.js +19 -1
  24. package/out/concepts/JSBlock__.js.map +1 -1
  25. package/out/concepts/LogicItem__.js +1 -1
  26. package/out/concepts/LogicItem__.js.map +1 -1
  27. package/out/concepts/Logic__.d.ts.map +1 -1
  28. package/out/concepts/Logic__.js +7 -0
  29. package/out/concepts/Logic__.js.map +1 -1
  30. package/out/concepts/MicroApp__.d.ts +1 -1
  31. package/out/concepts/MicroApp__.d.ts.map +1 -1
  32. package/out/concepts/MicroApp__.js.map +1 -1
  33. package/out/concepts/QueryAggregateExpression__.d.ts.map +1 -1
  34. package/out/concepts/QueryAggregateExpression__.js +4 -1
  35. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  36. package/out/concepts/QueryFieldExpression__.d.ts +2 -1
  37. package/out/concepts/QueryFieldExpression__.d.ts.map +1 -1
  38. package/out/concepts/QueryFieldExpression__.js +4 -0
  39. package/out/concepts/QueryFieldExpression__.js.map +1 -1
  40. package/out/concepts/QueryFromExpression__.d.ts +4 -0
  41. package/out/concepts/QueryFromExpression__.d.ts.map +1 -1
  42. package/out/concepts/QueryFromExpression__.js +6 -0
  43. package/out/concepts/QueryFromExpression__.js.map +1 -1
  44. package/out/concepts/QueryGroupByExpression__.d.ts.map +1 -1
  45. package/out/concepts/QueryGroupByExpression__.js +5 -1
  46. package/out/concepts/QueryGroupByExpression__.js.map +1 -1
  47. package/out/concepts/QueryOrderByExpression__.d.ts +53 -3
  48. package/out/concepts/QueryOrderByExpression__.d.ts.map +1 -1
  49. package/out/concepts/QueryOrderByExpression__.js +110 -16
  50. package/out/concepts/QueryOrderByExpression__.js.map +1 -1
  51. package/out/concepts/Structure__.js +1 -1
  52. package/out/concepts/Structure__.js.map +1 -1
  53. package/out/concepts/ViewElement__.d.ts +1 -0
  54. package/out/concepts/ViewElement__.d.ts.map +1 -1
  55. package/out/concepts/ViewElement__.js +13 -10
  56. package/out/concepts/ViewElement__.js.map +1 -1
  57. package/out/semantics/semanticData.d.ts +15 -2
  58. package/out/semantics/semanticData.d.ts.map +1 -1
  59. package/out/semantics/semanticData.js +241 -12
  60. package/out/semantics/semanticData.js.map +1 -1
  61. package/out/service/getMemberIdentifier.d.ts +1 -1
  62. package/out/service/getMemberIdentifier.d.ts.map +1 -1
  63. package/out/service/getMemberIdentifier.js +19 -6
  64. package/out/service/getMemberIdentifier.js.map +1 -1
  65. package/out/utils/bak-translator.js +1 -1
  66. package/out/utils/bak-translator.js.map +1 -1
  67. 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":"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"}
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
- // 非首次则清空脏 map,重新收集所需上下文
339
- if (!this.varScopeCtx.isFirstScreen) {
340
- this.tyInferCtx.inferViaAsgnMap.clear();
341
- this.tyInferCtx.inferViaFnCallMap.clear();
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":";;;AAcA,2DAAwE;AACxE,iDAA0F;AAE7E,QAAA,yBAAyB,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AA6CtD,MAAa,YAAY;IACvB;QAEA,mCAAmC;QACnC,gBAAW,GAAiB;YAC1B,aAAa,EAAE,KAAK;YACpB,kBAAkB,EAAE,IAAI,GAAG,EAAU;YACrC,kFAAkF;YAClF,wGAAwG;YACxG,gHAAgH;YAChH,gDAAgD;YAChD,iDAAiD;YAEjD,sBAAsB,EAAE,IAAI,GAAG,EAAU;YAEzC,qEAAqE;YACrE,6GAA6G;YAC7G,2EAA2E;YAE3E,sBAAsB;YACtB,cAAc,EAAE,EAAE;YAClB,eAAe;YACf,OAAO,EAAE,EAAE;YACX,cAAc,EAAE,EAAE;YAClB,YAAY,EAAE,EAAE;YAChB,eAAe,EAAE,IAAI;YACrB,qBAAqB,EAAE,IAAI;YAE3B,wDAAwD;YACxD,QAAQ,EAAE,IAAI,GAAG,EAAoB;YACrC,YAAY,EAAE,IAAI,GAAG,EAA2B;YAChD,eAAe,EAAE,IAAI,GAAG,EAAiC;YACzD,aAAa,EAAE,IAAI,GAAG,EAAyB;YAC/C,gBAAgB,EAAE,IAAI,GAAG,EAA4B;YACrD,sBAAsB,EAAE,IAAI,GAAG,EAAkC;YAEjE,mBAAmB,EAAE,KAAK;YAE1B,cAAc,EAAE,KAAK;YAErB,iBAAiB,EAAE,IAAI,GAAG,EAAiC;SAC5D,CAAC;QAEF,eAAU,GAAgB;YACxB,eAAe,EAAE,IAAI,GAAG,EAAE;YAC1B,iBAAiB,EAAE,IAAI,GAAG,EAAE;YAC5B,KAAK,EAAE,EAAE;YACT,YAAY,EAAE,IAAI,GAAG,EAAE;SACxB,CAAA;QAED,gBAAW,GAAiB;YAC1B,GAAG,EAAE,IAAI,EAAE,OAAO;YAClB,aAAa,EAAG,IAAI,GAAG,EAAY,EAAE,iDAAiD;SACvF,CAAA;QAID,0BAAqB,GAAG,CAAC,GAAQ,EAAE,EAAE;YACnC,IAAI,CAAC,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC;YACtC,MAAM,KAAK,GAAG;gBACZ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;gBAChC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;gBACtC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;gBACrC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;aAC1C,CAAC;YAEF,MAAM,QAAQ,GAAG;gBACf,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;gBACnC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;gBACzC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;aACzC,CAAC;YAEF,IAAA,6BAAgB,EAAC,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC,CAAC;YACzD,IAAA,6BAAgB,EAAC,GAAG,CAAC,kCAAkC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC5E,CAAC,CAAC;QAoSF,sBAAiB,GAAG,GAAG,EAAE;YACvB,IAAI,CAAC,WAAW,CAAC,aAAa,GAAG,KAAK,CAAC;YACvC,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;YAC5C,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC;YAChD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YACtC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YACzC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YACvC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC1C,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC;YAChD,IAAI,CAAC,WAAW,CAAC,cAAc,GAAG,EAAE,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,cAAc,GAAG,EAAE,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,YAAY,GAAG,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC;YACxC,IAAI,CAAC,WAAW,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAC9C,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;YAC1C,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;YAC3B,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YACvC,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,IAAI,CAAC;QAC9B,CAAC,CAAA;QAED,qBAAqB;QACrB,oCAAoC;QACpC,0BAAqB,GAAG,GAAG,EAAE;YAC3B,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAA;YACtE,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAA;YAC9E,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;YAClD,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAA;YACpE,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAA;YAC/D,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAA;YACnE,sBAAsB;YACtB,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;YACzD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAA;YAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YACxC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;YAC3C,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAA;YAE5D,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,iCAAyB,CAAC,KAAK,CAAC,CAAA;QAChE,CAAC,CAAA;IAvZe,CAAC;aAsDV,SAAI,GAAG,CAAI,GAAa,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,AAA5C,CAA6C;IAqBxD,CAAC,4BAA4B,CAAC,GAAQ;QACpC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE;YAC9B,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACvB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACtB,MAAM,IAAI,GAAG,qBAAqB,EAAE,CAAC,IAAI,cAAc,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;oBAClF,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClD,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,iBAAiB;IACjB,CAAC,gBAAgB,CAAC,EAAc;QAC9B,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC;YACnB,KAAK,MAAM;gBAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAAC,MAAM;YACtD,KAAK,aAAa;gBAAE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAAC,MAAM;YACpE,KAAK,mBAAmB;gBAAE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAAC,MAAM;YAC1E,KAAK,WAAW;gBAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAAC,MAAM;YAChE,KAAK,cAAc;gBAAE,IAAI,CAAC,WAAW,CAAC,eAAe,GAAG,EAAE,CAAC;gBAAC,MAAM;YAClE,KAAK,oBAAoB;gBAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,GAAG,EAAE,CAAC;gBAAC,MAAM;YAC9E,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAgB,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC/F,CAAC;gBACD,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/C,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,EAAgB,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;gBAC1G,CAAC;gBACD,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/C,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,EAAgB,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;gBAC7G,CAAC;gBACD,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7C,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,EAAgB,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;gBACzG,CAAC;gBACD,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;oBACrC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;gBAC5F,CAAC;gBACD,IAAI,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC;oBAC3C,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;gBACxG,CAAC;gBACD,aAAa;gBACb,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;oBAChB,MAAM;gBACR,CAAC;gBACD,aAAa;gBACb,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,OAAqB,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa;gBACnH,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,OAAqB,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,aAAa;gBAC9H,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,OAAqB,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,aAAa;gBACjI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,OAAqB,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,aAAa;gBAC7H,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,OAAqB,EAAE,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa;gBAChH,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC,OAAqB,EAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC,aAAa;gBAC5H,MAAM;YACR,CAAC;YACD,OAAO,CAAC,CAAC,MAAM;QACjB,CAAC;IACH,CAAC;IAED,eAAe;IACf,CAAC,mBAAmB,CAAC,EAAc;QACjC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC;YACnB,aAAa;YACb,KAAK,MAAM;gBAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;gBAAC,MAAM;YACnD,KAAK,aAAa;gBAAE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;gBAAC,MAAM;YACjE,KAAK,mBAAmB;gBAAE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;gBAAC,MAAM;YACvE,KAAK,WAAW;gBAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;gBAAC,MAAM;YAC7D,KAAK,cAAc;gBAAE,IAAI,CAAC,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC;gBAAC,MAAM;YACpE,KAAK,oBAAoB;gBAAE,IAAI,CAAC,WAAW,CAAC,qBAAqB,GAAG,IAAI,CAAC;gBAAC,MAAM;YAChF,OAAO,CAAC,CAAC,MAAM;QACjB,CAAC;IACH,CAAC;IAED,CAAC,sBAAsB,CAAC,EAAe;QACnC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC;YACnB,KAAK,OAAO,CAAC,CAAC,kBAAkB;YAChC,aAAa;YACb,iBAAiB;YACjB,KAAK,SAAS,CAAC,CAAC,kBAAkB;YAClC,KAAK,WAAW,CAAC,CAAC,kBAAkB;YACpC,KAAK,gBAAgB,CAAC,CAAC,kBAAkB;YACzC,KAAK,kBAAkB,CAAC,CAAC,kBAAkB;YAC3C,aAAa;YACb,KAAK,eAAe;gBAAE,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,EAAE,CAAC;gBAAC,MAAM;YACvD,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,QAAQ;gBACR,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;oBACzB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAc,CAAC,CAAC;oBACpD,kDAAkD;gBACpD,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,EAAc,CAAC,CAAC;gBACrD,CAAC;gBACD,MAAM;YACR,CAAC;YACD,OAAO,CAAC,CAAC,MAAM;QACjB,CAAC;IACL,CAAC;IAED,CAAC,yBAAyB,CAAC,EAAe;QACxC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC;YACnB,aAAa;YACb,iBAAiB;YACjB,KAAK,OAAO,CAAC,CAAC,kBAAkB;YAChC,KAAK,SAAS,CAAC,CAAC,kBAAkB;YAClC,KAAK,WAAW,CAAC,CAAC,kBAAkB;YACpC,KAAK,gBAAgB,CAAC,CAAC,kBAAkB;YACzC,aAAa;YACb,KAAK,kBAAkB;gBAAE,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,IAAI,CAAC;gBAAC,MAAM;YAC5D,2BAA2B;YAC3B,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzE,0CAA0C;gBAC1C,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;gBACvC,MAAM;YACR,CAAC;YACD,OAAO,CAAC,CAAC,MAAM;QACjB,CAAC;IACH,CAAC;IAED,CAAC,yBAAyB,CAAC,EAAe;QACxC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YAAC,iCAAyB,CAAC,KAAK,EAAE,CAAC;QAAC,CAAC;IACxD,CAAC;aAEM,YAAO,GAAG,CAAC,EAAoC,EAAE,CAAkC,EAAE,EAAE;QAC5F,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACb,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;gBACtB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACnB,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,AANa,CAMZ;aAEK,eAAU,GAAG,CAAC,EAAoC,EAAE,CAAkC,EAAE,EAAE;QAC/F,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IACnC,CAAC,AAFgB,CAEf;IAEF,oBAAoB;IACpB,oCAAoC;IAEpC,CAAC,qBAAqB,CAAC,GAAgB;QACrC,aAAa;QACb,IAAI,EAAE,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;QAC5B,4CAA4C;QAC5C,yBAAyB;QACzB,IAAI;QACJ,IAAI,EAAE,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC;QACzC,CAAC;QACD,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC;YACnB,KAAK,OAAO,CAAC,CAAC,kBAAkB;YAChC,KAAK,WAAW,CAAC,CAAC,kBAAkB;YACpC,KAAK,eAAe,CAAC,CAAC,kBAAkB;YACxC,KAAK,2BAA2B,CAAC,CAAC,kBAAkB;YACpD,KAAK,WAAW,CAAC,CAAC,kBAAkB;YACpC,KAAK,gBAAgB,CAAC,CAAC,kBAAkB;YACzC,KAAK,eAAe,CAAC,CAAC,kBAAkB;YACxC,KAAK,iBAAiB,CAAC,CAAC,kBAAkB;YAC1C,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,8BAA8B;gBAC9B,oEAAoE;gBACpE,kEAAkE;gBAClE,aAAa;gBACb,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC/B,MAAM;YACR,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,kBAAkB;YAC/B,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBACzB,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;gBACjE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC/B,MAAM;YACR,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACN,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;gBAClG,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,CAAC,wBAAwB,CAAC,EAAc;QACtC,IAAI,EAAE,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,cAAc,GAAG,KAAK,CAAC;QAC1C,CAAC;QACD,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC;YACnB,KAAK,OAAO,CAAC,CAAC,kBAAkB;YAChC,KAAK,WAAW,CAAC,CAAC,kBAAkB;YACpC,KAAK,eAAe,CAAC,CAAC,kBAAkB;YACxC,KAAK,2BAA2B,CAAC,CAAC,kBAAkB;YACpD,KAAK,WAAW,CAAC,CAAC,kBAAkB;YACpC,KAAK,gBAAgB,CAAC,CAAC,kBAAkB;YACzC,KAAK,eAAe,CAAC,CAAC,kBAAkB;YACxC,KAAK,iBAAiB,CAAC,CAAC,kBAAkB;YAC1C,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,uEAAuE;gBACvE,qEAAqE;gBACrE,aAAa;gBACb,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBAC5B,MAAM;YACR,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,kBAAkB;YAC/B,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBACzB,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;gBACpE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBAC5B,MAAM;YACR,CAAC;YACD,OAAO,CAAC,CAAC,MAAM;QACjB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,EAAsB;QAC5C,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,sCAAsC;IAC5D,CAAC;IAED,CAAC,mBAAmB,CAChB,YAA4E,EAC5E,cAA8D,EAC9D,IAAoB;QAEtB,wBAAwB;QACxB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;YACpC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;YAC1C,aAAa;YACb,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,kCAAkC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxJ,CAAC;QAED,aAAa;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAClF,KAAK,CAAC,OAAO,CAAC,CAAC,MAAiB,EAAE,EAAE;YAClC,MAAM,KAAK,GAAG,YAAY,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa;YAClE,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC,aAAa;gBAC5D,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA,CAAC,aAAa;YACnF,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC,aAAa;gBACrE,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;YACzE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,CAAC,WAAW,CACV,eAA+E,EAC/E,oBAAoE,EACpE,EAAc;QACd,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB;QACvE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAGD,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,EAA+C,EAAE,EAAE;YACrF,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;gBAC3E,sCAAsC;gBACtC,aAAa;mBACV,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,aAAa;mBAClF,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,YAAY,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAA;YACtD,IAAI,EAAE,CAAC,OAAO,KAAK,cAAc,EAAE,CAAC;gBAClC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBACtC,oBAAoB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBACjC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;QACH,CAAC,CAAA;QAED,IAAI,EAAE,CAAC,OAAO,KAAK,YAAY,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YACjD,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,aAAa,EAAE,CAAC;gBACxC,OAAO;YACT,CAAC;YACD,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAChC,CAAC;aAAM,IAAI,EAAE,CAAC,OAAO,KAAK,iBAAiB,EAAE,CAAC;YAC5C,KAAK,CAAC,CAAC,IAAA,mCAAsB,EAAC,EAAE,CAAC,eAAe,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE;gBAAW,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC;oBACxG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAA,4BAAU,EAAC,IAAA,qCAAmB,GAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;oBACjG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,IAAA,4BAAU,EAAC,IAAA,qCAAmB,GAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC3G,IAAA,yBAAY,EAAC,EAAE,CAAC,CAAC;gBAErC,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,EAAE,CAAC,OAAO,KAAK,cAAc,IAAI,EAAE,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC;YACzE,WAAW;YACX,MAAM,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC;YACpC,sDAAsD;YACtD,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;;AA5WH,oCAyZC"}
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;AA2GD;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAiD7F;AAgRD,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA4C3F;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"}
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
- res = [...getSlotVarsCompletionList(nd),
441
- ...getLocalVarsCompletionList(nd, ctxBindAttr ?? ctxBindDirect),
442
- ...getViewVarCompletionList(nd, ctxViewLike)];
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 = await naslServer?.getFieldKeySelectCompletion(node, '');
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 两个内置参数