@lcap/nasl-concepts 3.9.0-beta.3 → 3.9.0-beta.30
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 +21 -3
- package/out/common/BaseNode.d.ts.map +1 -1
- package/out/common/BaseNode.js +184 -37
- package/out/common/BaseNode.js.map +1 -1
- package/out/common/types.d.ts +6 -0
- package/out/common/types.d.ts.map +1 -1
- package/out/concepts/AbstractInterface__.d.ts +1 -1
- package/out/concepts/AbstractInterface__.d.ts.map +1 -1
- package/out/concepts/AbstractInterface__.js.map +1 -1
- package/out/concepts/Annotation__.d.ts.map +1 -1
- package/out/concepts/Annotation__.js +0 -3
- package/out/concepts/Annotation__.js.map +1 -1
- package/out/concepts/App__.d.ts +2 -1
- package/out/concepts/App__.d.ts.map +1 -1
- package/out/concepts/App__.js +17 -13
- package/out/concepts/App__.js.map +1 -1
- package/out/concepts/AssigneeV2__.d.ts.map +1 -1
- package/out/concepts/AssigneeV2__.js +5 -3
- package/out/concepts/AssigneeV2__.js.map +1 -1
- package/out/concepts/Assignment__.d.ts +3 -0
- package/out/concepts/Assignment__.d.ts.map +1 -1
- package/out/concepts/Assignment__.js +42 -2
- package/out/concepts/Assignment__.js.map +1 -1
- package/out/concepts/Attribute__.d.ts +1 -1
- package/out/concepts/Attribute__.d.ts.map +1 -1
- package/out/concepts/Attribute__.js +14 -12
- package/out/concepts/Attribute__.js.map +1 -1
- package/out/concepts/AuthLogicForCallInterface__.d.ts.map +1 -1
- package/out/concepts/AuthLogicForCallInterface__.js +2 -50
- package/out/concepts/AuthLogicForCallInterface__.js.map +1 -1
- package/out/concepts/BackendVariable__.d.ts.map +1 -1
- package/out/concepts/BackendVariable__.js +16 -1
- package/out/concepts/BackendVariable__.js.map +1 -1
- package/out/concepts/BaseSetter__.d.ts +1 -1
- package/out/concepts/BaseSetter__.d.ts.map +1 -1
- package/out/concepts/BaseSetter__.js.map +1 -1
- package/out/concepts/BatchAssignment__.d.ts +3 -0
- package/out/concepts/BatchAssignment__.d.ts.map +1 -1
- package/out/concepts/BatchAssignment__.js +54 -0
- package/out/concepts/BatchAssignment__.js.map +1 -1
- package/out/concepts/BindAttribute__.d.ts.map +1 -1
- package/out/concepts/BindAttribute__.js +27 -5
- package/out/concepts/BindAttribute__.js.map +1 -1
- package/out/concepts/BindDirective__.js +1 -1
- package/out/concepts/BindDirective__.js.map +1 -1
- package/out/concepts/BindEvent__.d.ts.map +1 -1
- package/out/concepts/BindEvent__.js +2 -0
- package/out/concepts/BindEvent__.js.map +1 -1
- package/out/concepts/BindStyle__.js +1 -1
- package/out/concepts/BindStyle__.js.map +1 -1
- package/out/concepts/BusinessComponent__.d.ts +12 -1
- package/out/concepts/BusinessComponent__.d.ts.map +1 -1
- package/out/concepts/BusinessComponent__.js +174 -103
- package/out/concepts/BusinessComponent__.js.map +1 -1
- package/out/concepts/BusinessLogic__.d.ts.map +1 -1
- package/out/concepts/BusinessLogic__.js +2 -50
- package/out/concepts/BusinessLogic__.js.map +1 -1
- package/out/concepts/CallFunction__.d.ts +1 -1
- package/out/concepts/CallFunction__.js +7 -7
- package/out/concepts/CallFunction__.js.map +1 -1
- package/out/concepts/CallInterface__.d.ts +6 -1
- package/out/concepts/CallInterface__.d.ts.map +1 -1
- package/out/concepts/CallInterface__.js +48 -23
- package/out/concepts/CallInterface__.js.map +1 -1
- package/out/concepts/CallLogic__.d.ts +1 -0
- package/out/concepts/CallLogic__.d.ts.map +1 -1
- package/out/concepts/CallLogic__.js +63 -19
- package/out/concepts/CallLogic__.js.map +1 -1
- package/out/concepts/CallMicroserviceInterface__.d.ts +39 -0
- package/out/concepts/CallMicroserviceInterface__.d.ts.map +1 -0
- package/out/concepts/CallMicroserviceInterface__.js +134 -0
- package/out/concepts/CallMicroserviceInterface__.js.map +1 -0
- package/out/concepts/CallQueryComponent__.d.ts +4 -2
- package/out/concepts/CallQueryComponent__.d.ts.map +1 -1
- package/out/concepts/CallQueryComponent__.js +45 -21
- package/out/concepts/CallQueryComponent__.js.map +1 -1
- package/out/concepts/ConfigProperty__.d.ts +1 -0
- package/out/concepts/ConfigProperty__.d.ts.map +1 -1
- package/out/concepts/ConfigProperty__.js +24 -1
- package/out/concepts/ConfigProperty__.js.map +1 -1
- package/out/concepts/ConnectionInfo__.d.ts +40 -0
- package/out/concepts/ConnectionInfo__.d.ts.map +1 -0
- package/out/concepts/ConnectionInfo__.js +92 -0
- package/out/concepts/ConnectionInfo__.js.map +1 -0
- package/out/concepts/ConnectorTrigger__.d.ts +1 -0
- package/out/concepts/ConnectorTrigger__.d.ts.map +1 -1
- package/out/concepts/ConnectorTrigger__.js +46 -11
- package/out/concepts/ConnectorTrigger__.js.map +1 -1
- package/out/concepts/Connector__.d.ts +4 -4
- package/out/concepts/Connector__.d.ts.map +1 -1
- package/out/concepts/Connector__.js +20 -4
- package/out/concepts/Connector__.js.map +1 -1
- package/out/concepts/Destination__.d.ts.map +1 -1
- package/out/concepts/Destination__.js +13 -8
- package/out/concepts/Destination__.js.map +1 -1
- package/out/concepts/EntityProperty__.d.ts.map +1 -1
- package/out/concepts/EntityProperty__.js +3 -2
- package/out/concepts/EntityProperty__.js.map +1 -1
- package/out/concepts/Entity__.d.ts +3 -3
- package/out/concepts/Entity__.d.ts.map +1 -1
- package/out/concepts/Entity__.js +8 -2
- package/out/concepts/Entity__.js.map +1 -1
- package/out/concepts/Event__.js +1 -1
- package/out/concepts/Event__.js.map +1 -1
- package/out/concepts/Frontend__.d.ts +2 -0
- package/out/concepts/Frontend__.d.ts.map +1 -1
- package/out/concepts/Frontend__.js +61 -50
- package/out/concepts/Frontend__.js.map +1 -1
- package/out/concepts/Identifier__.d.ts +5 -0
- package/out/concepts/Identifier__.d.ts.map +1 -1
- package/out/concepts/Identifier__.js +87 -5
- package/out/concepts/Identifier__.js.map +1 -1
- package/out/concepts/ImportedInterface__.d.ts +1 -1
- package/out/concepts/ImportedInterface__.d.ts.map +1 -1
- package/out/concepts/ImportedInterface__.js.map +1 -1
- package/out/concepts/Interface__.d.ts +12 -4
- package/out/concepts/Interface__.d.ts.map +1 -1
- package/out/concepts/Interface__.js +17 -3
- package/out/concepts/Interface__.js.map +1 -1
- package/out/concepts/LogicItem__.d.ts +14 -1
- package/out/concepts/LogicItem__.d.ts.map +1 -1
- package/out/concepts/LogicItem__.js +23 -0
- package/out/concepts/LogicItem__.js.map +1 -1
- package/out/concepts/Logic__.d.ts +2 -2
- package/out/concepts/Logic__.d.ts.map +1 -1
- package/out/concepts/Logic__.js +28 -114
- package/out/concepts/Logic__.js.map +1 -1
- package/out/concepts/MatchCase__.d.ts +28 -28
- package/out/concepts/MatchCase__.d.ts.map +1 -1
- package/out/concepts/MatchCase__.js +16 -16
- package/out/concepts/MatchCase__.js.map +1 -1
- package/out/concepts/Match__.js.map +1 -1
- package/out/concepts/MemberExpression__.d.ts +6 -2
- package/out/concepts/MemberExpression__.d.ts.map +1 -1
- package/out/concepts/MemberExpression__.js +147 -131
- package/out/concepts/MemberExpression__.js.map +1 -1
- package/out/concepts/MetadataType__.d.ts +1 -1
- package/out/concepts/MetadataType__.d.ts.map +1 -1
- package/out/concepts/MetadataType__.js +6 -2
- package/out/concepts/MetadataType__.js.map +1 -1
- package/out/concepts/MicroserviceInterface__.d.ts +117 -0
- package/out/concepts/MicroserviceInterface__.d.ts.map +1 -0
- package/out/concepts/MicroserviceInterface__.js +263 -0
- package/out/concepts/MicroserviceInterface__.js.map +1 -0
- package/out/concepts/Module__.d.ts +17 -17
- package/out/concepts/Module__.d.ts.map +1 -1
- package/out/concepts/Module__.js +71 -52
- package/out/concepts/Module__.js.map +1 -1
- package/out/concepts/NewComposite__.d.ts +2 -1
- package/out/concepts/NewComposite__.d.ts.map +1 -1
- package/out/concepts/NewComposite__.js +23 -0
- package/out/concepts/NewComposite__.js.map +1 -1
- package/out/concepts/NewStructure__.d.ts +120 -0
- package/out/concepts/NewStructure__.d.ts.map +1 -0
- package/out/concepts/NewStructure__.js +250 -0
- package/out/concepts/NewStructure__.js.map +1 -0
- package/out/concepts/OverriddenLogic__.d.ts +11 -9
- package/out/concepts/OverriddenLogic__.d.ts.map +1 -1
- package/out/concepts/OverriddenLogic__.js +31 -58
- package/out/concepts/OverriddenLogic__.js.map +1 -1
- package/out/concepts/Param__.d.ts +6 -1
- package/out/concepts/Param__.d.ts.map +1 -1
- package/out/concepts/Param__.js +35 -22
- package/out/concepts/Param__.js.map +1 -1
- package/out/concepts/ProcessDefinitionV2__.d.ts +299 -0
- package/out/concepts/ProcessDefinitionV2__.d.ts.map +1 -0
- package/out/concepts/ProcessDefinitionV2__.js +437 -0
- package/out/concepts/ProcessDefinitionV2__.js.map +1 -0
- package/out/concepts/ProcessElementV2__.d.ts +20 -5
- package/out/concepts/ProcessElementV2__.d.ts.map +1 -1
- package/out/concepts/ProcessElementV2__.js +52 -15
- package/out/concepts/ProcessElementV2__.js.map +1 -1
- package/out/concepts/ProcessElement__.d.ts +1 -0
- package/out/concepts/ProcessElement__.d.ts.map +1 -1
- package/out/concepts/ProcessElement__.js +18 -0
- package/out/concepts/ProcessElement__.js.map +1 -1
- package/out/concepts/ProcessV2__.d.ts +73 -303
- package/out/concepts/ProcessV2__.d.ts.map +1 -1
- package/out/concepts/ProcessV2__.js +240 -362
- package/out/concepts/ProcessV2__.js.map +1 -1
- package/out/concepts/Process__.d.ts +4 -1
- package/out/concepts/Process__.d.ts.map +1 -1
- package/out/concepts/Process__.js +53 -3
- package/out/concepts/Process__.js.map +1 -1
- package/out/concepts/PropertyTransformSetter__.d.ts +26 -0
- package/out/concepts/PropertyTransformSetter__.d.ts.map +1 -0
- package/out/concepts/PropertyTransformSetter__.js +55 -0
- package/out/concepts/PropertyTransformSetter__.js.map +1 -0
- package/out/concepts/QueryOrderByExpression__.d.ts +0 -1
- package/out/concepts/QueryOrderByExpression__.d.ts.map +1 -1
- package/out/concepts/QueryOrderByExpression__.js +0 -1
- package/out/concepts/QueryOrderByExpression__.js.map +1 -1
- package/out/concepts/Return__.d.ts +5 -0
- package/out/concepts/Return__.d.ts.map +1 -1
- package/out/concepts/Return__.js +8 -3
- package/out/concepts/Return__.js.map +1 -1
- package/out/concepts/StructureProperty__.d.ts.map +1 -1
- package/out/concepts/StructureProperty__.js +16 -0
- package/out/concepts/StructureProperty__.js.map +1 -1
- package/out/concepts/Structure__.d.ts.map +1 -1
- package/out/concepts/Structure__.js +6 -8
- package/out/concepts/Structure__.js.map +1 -1
- package/out/concepts/SubLogic__.d.ts +4 -3
- package/out/concepts/SubLogic__.d.ts.map +1 -1
- package/out/concepts/SubLogic__.js +182 -50
- package/out/concepts/SubLogic__.js.map +1 -1
- package/out/concepts/TriggerLauncher__.d.ts +1 -0
- package/out/concepts/TriggerLauncher__.d.ts.map +1 -1
- package/out/concepts/TriggerLauncher__.js +22 -1
- package/out/concepts/TriggerLauncher__.js.map +1 -1
- package/out/concepts/TypeAnnotation__.d.ts.map +1 -1
- package/out/concepts/TypeAnnotation__.js +6 -3
- package/out/concepts/TypeAnnotation__.js.map +1 -1
- package/out/concepts/Variable__.d.ts +5 -0
- package/out/concepts/Variable__.d.ts.map +1 -1
- package/out/concepts/Variable__.js +27 -12
- package/out/concepts/Variable__.js.map +1 -1
- package/out/concepts/ViewElement__.d.ts +3 -0
- package/out/concepts/ViewElement__.d.ts.map +1 -1
- package/out/concepts/ViewElement__.js +130 -31
- package/out/concepts/ViewElement__.js.map +1 -1
- package/out/concepts/View__.d.ts +11 -2
- package/out/concepts/View__.d.ts.map +1 -1
- package/out/concepts/View__.js +135 -96
- package/out/concepts/View__.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.processV2.d.ts.map +1 -1
- package/out/concepts/basics/stdlib/nasl.processV2.js +78 -0
- package/out/concepts/basics/stdlib/nasl.processV2.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.ui.js +40 -40
- package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.util.js +16 -16
- package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
- package/out/concepts/index.d.ts +3 -1
- package/out/concepts/index.d.ts.map +1 -1
- package/out/concepts/index.js +1 -3
- package/out/concepts/index.js.map +1 -1
- package/out/concepts/index__.d.ts +6 -0
- package/out/concepts/index__.d.ts.map +1 -1
- package/out/concepts/index__.js +6 -0
- package/out/concepts/index__.js.map +1 -1
- package/out/concepts/utils/asserts.d.ts +306 -0
- package/out/concepts/utils/asserts.d.ts.map +1 -1
- package/out/concepts/utils/asserts.js +425 -16
- package/out/concepts/utils/asserts.js.map +1 -1
- package/out/concepts/utils/types.d.ts +25 -7
- package/out/concepts/utils/types.d.ts.map +1 -1
- package/out/decorators/constant.d.ts +7 -0
- package/out/decorators/constant.d.ts.map +1 -1
- package/out/decorators/constant.js.map +1 -1
- package/out/decorators/index.d.ts +3 -2
- package/out/decorators/index.d.ts.map +1 -1
- package/out/decorators/index.js.map +1 -1
- package/out/decorators/utils.d.ts.map +1 -1
- package/out/decorators/utils.js +3 -3
- package/out/decorators/utils.js.map +1 -1
- package/out/index.d.ts +1 -0
- package/out/index.d.ts.map +1 -1
- package/out/index.js +2 -1
- package/out/index.js.map +1 -1
- package/out/semantics/semanticData.d.ts +33 -0
- package/out/semantics/semanticData.d.ts.map +1 -0
- package/out/semantics/semanticData.js +371 -0
- package/out/semantics/semanticData.js.map +1 -0
- package/out/service/annotation.d.ts +30 -0
- package/out/service/annotation.d.ts.map +1 -0
- package/out/service/{modules.js → annotation.js} +85 -3
- package/out/service/annotation.js.map +1 -0
- package/out/service/engine.d.ts.map +1 -1
- package/out/service/engine.js +8 -1
- package/out/service/engine.js.map +1 -1
- package/out/service/entity2LogicNamespace.d.ts.map +1 -1
- package/out/service/entity2LogicNamespace.js +1 -0
- package/out/service/entity2LogicNamespace.js.map +1 -1
- package/out/service/getConnector.d.ts.map +1 -1
- package/out/service/getConnector.js +3 -1
- package/out/service/getConnector.js.map +1 -1
- package/out/service/getLogics.js +13 -13
- package/out/service/getLogics.js.map +1 -1
- package/out/service/getMemberIdentifier.d.ts +8 -3
- package/out/service/getMemberIdentifier.d.ts.map +1 -1
- package/out/service/getMemberIdentifier.js +23 -26
- package/out/service/getMemberIdentifier.js.map +1 -1
- package/out/service/getProcesses.d.ts +1 -1
- package/out/service/getProcesses.d.ts.map +1 -1
- package/out/service/getProcesses.js +10 -1
- package/out/service/getProcesses.js.map +1 -1
- package/out/service/getProcessesV2.d.ts +4 -17
- package/out/service/getProcessesV2.d.ts.map +1 -1
- package/out/service/getProcessesV2.js +37 -29
- package/out/service/getProcessesV2.js.map +1 -1
- package/out/service/index.d.ts +1 -1
- package/out/service/index.d.ts.map +1 -1
- package/out/service/index.js +1 -1
- package/out/service/index.js.map +1 -1
- package/out/utils/bak-translator.d.ts.map +1 -1
- package/out/utils/bak-translator.js +44 -65
- package/out/utils/bak-translator.js.map +1 -1
- package/out/utils/utils.d.ts.map +1 -1
- package/out/utils/utils.js.map +1 -1
- package/package.json +7 -7
- package/out/concepts/types__.d.ts +0 -2
- package/out/concepts/types__.d.ts.map +0 -1
- package/out/concepts/types__.js +0 -3
- package/out/concepts/types__.js.map +0 -1
- package/out/service/modules.d.ts +0 -9
- package/out/service/modules.d.ts.map +0 -1
- package/out/service/modules.js.map +0 -1
package/out/common/BaseNode.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { EventEmitter } from './EventEmitter';
|
|
|
3
3
|
import { Diagnostic } from '@lcap/nasl-types';
|
|
4
4
|
import type { EventPayload, Params, NodePathOption } from './types';
|
|
5
5
|
import { type SyntaxNode, type App, type TypeAnnotation, type SyntaxNodeConcept, type ConceptClassMap } from '../concepts';
|
|
6
|
-
type SourceMap = Translator.SourceMap<
|
|
6
|
+
type SourceMap = Translator.SourceMap<SyntaxNode>;
|
|
7
7
|
/**
|
|
8
8
|
* 顶点类
|
|
9
9
|
* 属性均为只读,仅在初始化和 load 的情况下可以修改
|
|
@@ -136,7 +136,7 @@ export declare class BaseNode extends EventEmitter {
|
|
|
136
136
|
* 'ENABLED' ==> 启用断点
|
|
137
137
|
* 'DISABLED' ==> 禁用断点
|
|
138
138
|
*/
|
|
139
|
-
breakpoint
|
|
139
|
+
breakpoint?: 'ENABLED' | 'DISABLED' | null | undefined;
|
|
140
140
|
/**
|
|
141
141
|
* @param source 需要合并的部分参数
|
|
142
142
|
*/
|
|
@@ -180,6 +180,11 @@ export declare class BaseNode extends EventEmitter {
|
|
|
180
180
|
_delete(): Params;
|
|
181
181
|
static from(source: any, parentNode?: BaseNode, parentKey?: string): BaseNode;
|
|
182
182
|
get nodePath(): string;
|
|
183
|
+
/**
|
|
184
|
+
* 生成完整调用令牌
|
|
185
|
+
*
|
|
186
|
+
* @description 语义检查时使用
|
|
187
|
+
*/
|
|
183
188
|
getTokenKeyWithNamespace(): string;
|
|
184
189
|
getNodePath(useIndex: boolean): string;
|
|
185
190
|
getNodePath(useIndexKeys: string[]): string;
|
|
@@ -243,6 +248,13 @@ export declare class BaseNode extends EventEmitter {
|
|
|
243
248
|
* this.deepPick(result, ['id'])
|
|
244
249
|
*/
|
|
245
250
|
deepPick(source: any, keys?: Array<string>): void;
|
|
251
|
+
/**
|
|
252
|
+
* 输出全量标注的 JSON 数据
|
|
253
|
+
*
|
|
254
|
+
* @description 给全量标注的数据使用
|
|
255
|
+
* @description 会判断节点是否存在`typeAnnotation`属性,如果没有则使用`__TypeAnnotation`属性。
|
|
256
|
+
*/
|
|
257
|
+
toAnnotationJSON(): Record<string, any>;
|
|
246
258
|
/**
|
|
247
259
|
* 去除循环依赖,转为纯 JSON
|
|
248
260
|
* @param parentKey 外面的 key,提供给 JSON.stringify 使用
|
|
@@ -337,9 +349,14 @@ export declare class BaseNode extends EventEmitter {
|
|
|
337
349
|
/**
|
|
338
350
|
* 迭代所有子节点
|
|
339
351
|
*
|
|
340
|
-
* @description
|
|
352
|
+
* @description 严格迭代所有子节点!排除属性!条件满足时整个遍历全部终止!
|
|
341
353
|
*/
|
|
342
354
|
traverseStrictChildrenStopWhen(cb: (el: SyntaxNode) => void, setStopFlag: (el: SyntaxNode) => boolean, whitelist?: string[]): void;
|
|
355
|
+
/**
|
|
356
|
+
* 迭代所有子节点
|
|
357
|
+
* @description 严格迭代所有子节点,排除属性;多函数特化版本,不做额外检查
|
|
358
|
+
*/
|
|
359
|
+
traverseStrictChildrenDoMultiTasks(tasks: Array<(_: SyntaxNode) => Generator<any, any, any>>, cleanups: Array<(_: SyntaxNode) => Generator<any, any, any>>): Generator<any, any, any>;
|
|
343
360
|
/**
|
|
344
361
|
* 带剪枝的迭先序遍历
|
|
345
362
|
*
|
|
@@ -395,6 +412,7 @@ export declare class BaseNode extends EventEmitter {
|
|
|
395
412
|
* @returns 搜索到的节点
|
|
396
413
|
*/
|
|
397
414
|
findNaslNodeByBFS(input?: SyntaxNodeConcept | ((node: SyntaxNode) => boolean), containsSelf?: boolean): SyntaxNode[];
|
|
415
|
+
getEmbeddedFilePath(): string;
|
|
398
416
|
toEmbeddedTS(): Generator<any, string, any>;
|
|
399
417
|
toEmbeddedTSFile(): Embedded.TSFileGenerator<BaseNode>;
|
|
400
418
|
toEmbeddedDeclarationTSFile(): Embedded.DeclarationTSFileResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseNode.d.ts","sourceRoot":"","sources":["../../src/common/BaseNode.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"BaseNode.d.ts","sourceRoot":"","sources":["../../src/common/BaseNode.ts"],"names":[],"mappings":"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"}
|
package/out/common/BaseNode.js
CHANGED
|
@@ -41,6 +41,7 @@ const actionable_1 = require("../service/actionable");
|
|
|
41
41
|
const store_1 = require("../store");
|
|
42
42
|
const decorators_1 = require("../decorators");
|
|
43
43
|
const concepts_1 = require("../concepts");
|
|
44
|
+
const semanticData_1 = require("../semantics/semanticData");
|
|
44
45
|
const patchCompose = (node, type = 'add') => {
|
|
45
46
|
if (node?.composedBy) {
|
|
46
47
|
const app = node?.app;
|
|
@@ -85,8 +86,9 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
|
|
|
85
86
|
*/
|
|
86
87
|
this.parentNode = null;
|
|
87
88
|
this.parentKey = '';
|
|
88
|
-
if (this.hasOwnProperty('JSON_EXCLUDED_KEYS') && this.JSON_EXCLUDED_KEYS === undefined)
|
|
89
|
+
if (this.hasOwnProperty('JSON_EXCLUDED_KEYS') && this.JSON_EXCLUDED_KEYS === undefined) {
|
|
89
90
|
delete this.JSON_EXCLUDED_KEYS;
|
|
91
|
+
}
|
|
90
92
|
/**
|
|
91
93
|
* 监听action,delete,update事件
|
|
92
94
|
*/
|
|
@@ -95,17 +97,19 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
|
|
|
95
97
|
this.on('update', this.genActionListener);
|
|
96
98
|
this.on('node:Editing', this.nodeEditing);
|
|
97
99
|
/**
|
|
98
|
-
*
|
|
100
|
+
* 调试相关内容只在浏览器端有效
|
|
99
101
|
*/
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
102
|
+
if (utils.isBrowser) {
|
|
103
|
+
this.on('create', () => nasl_utils_1.breakpoint.operators.create(this));
|
|
104
|
+
this.on('delete', () => nasl_utils_1.breakpoint.operators.delete(this));
|
|
105
|
+
this.on('update', () => nasl_utils_1.breakpoint.operators.update(this));
|
|
106
|
+
}
|
|
103
107
|
}
|
|
104
108
|
subConstructor(source) {
|
|
105
109
|
const concept = this.concept || this.constructor.name;
|
|
106
110
|
const propertyMap = (0, decorators_1.getConceptPropertyMap)(concept);
|
|
107
111
|
const whitePropertyMap = (0, decorators_1.getConceptWhitePropertyMap)(concept);
|
|
108
|
-
const properties =
|
|
112
|
+
const properties = ['typeAnnotation', ...propertyMap.keys(), ...whitePropertyMap.keys()];
|
|
109
113
|
// 测试时用的标记属性
|
|
110
114
|
if (process.env.NODE_ENV === 'testing') {
|
|
111
115
|
properties.push('__$Selected', '__TypeAnnotation');
|
|
@@ -114,11 +118,22 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
|
|
|
114
118
|
if (key === 'concept') {
|
|
115
119
|
return;
|
|
116
120
|
}
|
|
121
|
+
if (source[key] === undefined) {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
117
124
|
const sourceItem = source[key] !== undefined ? source[key] : this[key];
|
|
118
125
|
let property = propertyMap.get(key);
|
|
119
126
|
let objectRefCtor;
|
|
120
|
-
|
|
121
|
-
|
|
127
|
+
if (
|
|
128
|
+
// 属性存在
|
|
129
|
+
sourceItem &&
|
|
130
|
+
(
|
|
131
|
+
// 全量标注需要的后端标注数据
|
|
132
|
+
key === 'typeAnnotation' ||
|
|
133
|
+
(
|
|
134
|
+
// 测试环境下手动添加的前端标注数据
|
|
135
|
+
process.env.NODE_ENV === 'testing' &&
|
|
136
|
+
key === '__TypeAnnotation'))) {
|
|
122
137
|
property = { objectRef: 'TypeAnnotation' };
|
|
123
138
|
}
|
|
124
139
|
try {
|
|
@@ -126,7 +141,7 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
|
|
|
126
141
|
const arr = property.objectRef.split(' | ');
|
|
127
142
|
for (let i = 0; i < arr.length; i++) {
|
|
128
143
|
objectRefCtor = (0, decorators_1.getConceptConstructor)(arr[i]);
|
|
129
|
-
if (sourceItem instanceof objectRefCtor) {
|
|
144
|
+
if (objectRefCtor && sourceItem instanceof objectRefCtor) {
|
|
130
145
|
sourceItem.parentNode = this;
|
|
131
146
|
sourceItem.parentKey = key;
|
|
132
147
|
break;
|
|
@@ -145,7 +160,9 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
|
|
|
145
160
|
throw e;
|
|
146
161
|
}
|
|
147
162
|
});
|
|
148
|
-
|
|
163
|
+
if (process.env.NODE_ENV !== 'testing') {
|
|
164
|
+
nasl_utils_1.breakpoint.operators.create(this);
|
|
165
|
+
}
|
|
149
166
|
// node 环境下需要删除当前节点的 concept 属性
|
|
150
167
|
if (utils.isNode && ('concept' in this) && !this.concept) {
|
|
151
168
|
Reflect.deleteProperty(this, 'concept');
|
|
@@ -625,7 +642,7 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
|
|
|
625
642
|
const Ctor = (0, decorators_1.getConceptConstructor)(source?.concept) || this;
|
|
626
643
|
if (Ctor && source instanceof Ctor) {
|
|
627
644
|
if (utils.isDebugMode) {
|
|
628
|
-
console.warn('传入的对象已经是一个实例,请确认逻辑是否存在问题!');
|
|
645
|
+
// console.warn('传入的对象已经是一个实例,请确认逻辑是否存在问题!');
|
|
629
646
|
}
|
|
630
647
|
if (parentNode) {
|
|
631
648
|
source.parentNode = parentNode;
|
|
@@ -663,12 +680,23 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
|
|
|
663
680
|
get nodePath() {
|
|
664
681
|
return this.getNodePath(false);
|
|
665
682
|
}
|
|
683
|
+
/**
|
|
684
|
+
* 生成完整调用令牌
|
|
685
|
+
*
|
|
686
|
+
* @description 语义检查时使用
|
|
687
|
+
*/
|
|
666
688
|
getTokenKeyWithNamespace() {
|
|
667
689
|
/**
|
|
668
690
|
* 本来想在 BaseNode 上加个 getNamespace 方法作为默认的类型的
|
|
669
691
|
* 但是没想到上层有逻辑依赖了判断节点是否有这个方法,加上这个默认方法之后有些功能挂了,所以这里不得不使用 as any
|
|
670
692
|
*/
|
|
671
|
-
|
|
693
|
+
if (typeof this.getTsNamespace === 'function') {
|
|
694
|
+
return `${this.getTsNamespace()}.${this.name}`;
|
|
695
|
+
}
|
|
696
|
+
else if (typeof this.getNamespace === 'function') {
|
|
697
|
+
return `${this.getNamespace()}.${this.name}`;
|
|
698
|
+
}
|
|
699
|
+
throw new Error(`${this.concept} 节点 getTokenKeyWithNamespace 方法未实现`);
|
|
672
700
|
}
|
|
673
701
|
getNodePath(useIndex) {
|
|
674
702
|
let node = this;
|
|
@@ -746,7 +774,7 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
|
|
|
746
774
|
return parentNode;
|
|
747
775
|
}
|
|
748
776
|
get app() {
|
|
749
|
-
return this.getAncestor('App');
|
|
777
|
+
return semanticData_1.varScopeCtx.isFirstScreen ? semanticData_1.varScopeCtx.app : this.getAncestor('App');
|
|
750
778
|
}
|
|
751
779
|
/**
|
|
752
780
|
*
|
|
@@ -796,7 +824,9 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
|
|
|
796
824
|
return instance;
|
|
797
825
|
}
|
|
798
826
|
if (Array.isArray(instance)) {
|
|
799
|
-
return instance.map((item) =>
|
|
827
|
+
return instance.map((item) => {
|
|
828
|
+
return item && item._toJSON ? item._toJSON(filerFn) : item;
|
|
829
|
+
});
|
|
800
830
|
}
|
|
801
831
|
return instance && instance._toJSON ? instance._toJSON(filerFn) : instance;
|
|
802
832
|
}
|
|
@@ -895,6 +925,46 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
|
|
|
895
925
|
target.assign ? target.assign(obj) : Object.assign(target, obj);
|
|
896
926
|
}, { node: source }, { mode: 'anyObject' });
|
|
897
927
|
}
|
|
928
|
+
/**
|
|
929
|
+
* 输出全量标注的 JSON 数据
|
|
930
|
+
*
|
|
931
|
+
* @description 给全量标注的数据使用
|
|
932
|
+
* @description 会判断节点是否存在`typeAnnotation`属性,如果没有则使用`__TypeAnnotation`属性。
|
|
933
|
+
*/
|
|
934
|
+
toAnnotationJSON() {
|
|
935
|
+
const source = {};
|
|
936
|
+
const propertyMap = (0, decorators_1.getConceptPropertyMap)(this.concept ?? this.constructor.name);
|
|
937
|
+
for (const [key, property] of propertyMap) {
|
|
938
|
+
if (!property) {
|
|
939
|
+
continue;
|
|
940
|
+
}
|
|
941
|
+
const { objectRef: propertyObjectRef } = property;
|
|
942
|
+
const sourceItem = this[key];
|
|
943
|
+
if (!propertyObjectRef) {
|
|
944
|
+
source[key] = sourceItem;
|
|
945
|
+
}
|
|
946
|
+
else if (Array.isArray(sourceItem)) {
|
|
947
|
+
source[key] = sourceItem.map((child) => {
|
|
948
|
+
return child.toAnnotationJSON?.() ?? child;
|
|
949
|
+
});
|
|
950
|
+
}
|
|
951
|
+
else {
|
|
952
|
+
source[key] = sourceItem?.toAnnotationJSON?.() ?? sourceItem;
|
|
953
|
+
}
|
|
954
|
+
}
|
|
955
|
+
// concept 在原型链上,这里需要补一下属性
|
|
956
|
+
source.concept = this.concept;
|
|
957
|
+
// 全量标注比原始属性多了个 typeAnnotation
|
|
958
|
+
if (!source.typeAnnotation && this.typeAnnotation) {
|
|
959
|
+
source.typeAnnotation = this.typeAnnotation?.toAnnotationJSON?.() ?? this.typeAnnotation;
|
|
960
|
+
}
|
|
961
|
+
// 前端标注转为后端标注
|
|
962
|
+
if (!this.typeAnnotation && this.__TypeAnnotation) {
|
|
963
|
+
source.typeAnnotation = this.__TypeAnnotation.toAnnotationJSON?.();
|
|
964
|
+
delete source.__TypeAnnotation;
|
|
965
|
+
}
|
|
966
|
+
return source;
|
|
967
|
+
}
|
|
898
968
|
/**
|
|
899
969
|
* 去除循环依赖,转为纯 JSON
|
|
900
970
|
* @param parentKey 外面的 key,提供给 JSON.stringify 使用
|
|
@@ -1123,16 +1193,28 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
|
|
|
1123
1193
|
}
|
|
1124
1194
|
}
|
|
1125
1195
|
else {
|
|
1126
|
-
const expIndex = parentNode[parentKey].findIndex((item) => item === oldNode);
|
|
1127
1196
|
const firstUpperText = parentKey[0].toUpperCase() + parentKey.slice(1, parentKey.length);
|
|
1197
|
+
const firstUpperTextWithoutSuffix = firstUpperText.slice(0, firstUpperText.length - 1);
|
|
1198
|
+
const expIndex = parentNode[parentKey].findIndex((item) => item === oldNode);
|
|
1128
1199
|
Object.assign(newNode, { offsetX, offsetY });
|
|
1129
1200
|
if (parentNode.concept === 'MatchCase') {
|
|
1130
1201
|
parentKey === 'body' ? parentNode.insertItemInBodyAt(newNode, expIndex) : parentNode.insertLogicItemInPatternsAt(newNode, expIndex);
|
|
1131
1202
|
}
|
|
1132
|
-
else if (parentNode[`insertItemIn${firstUpperText}At`])
|
|
1203
|
+
else if (parentNode[`insertItemIn${firstUpperText}At`]) {
|
|
1133
1204
|
parentNode[`insertItemIn${firstUpperText}At`](newNode, expIndex);
|
|
1134
|
-
|
|
1205
|
+
}
|
|
1206
|
+
else if (parentNode[`insert${firstUpperText}At`]) {
|
|
1207
|
+
parentNode[`insert${firstUpperText}At`](newNode, expIndex);
|
|
1208
|
+
}
|
|
1209
|
+
else if (parentNode[`insert${firstUpperTextWithoutSuffix}At`]) {
|
|
1210
|
+
parentNode[`insert${firstUpperTextWithoutSuffix}At`](newNode, expIndex);
|
|
1211
|
+
}
|
|
1212
|
+
else if (parentNode[`insert${newNode.concept}At`]) {
|
|
1213
|
+
parentNode[`insert${newNode.concept}At`](newNode, expIndex);
|
|
1214
|
+
}
|
|
1215
|
+
else {
|
|
1135
1216
|
parentNode.insertItemAt(newNode, expIndex);
|
|
1217
|
+
}
|
|
1136
1218
|
}
|
|
1137
1219
|
oldNode.delete();
|
|
1138
1220
|
app.emit('collect:end');
|
|
@@ -1188,7 +1270,7 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
|
|
|
1188
1270
|
propertyKeys.push(...whitelist);
|
|
1189
1271
|
}
|
|
1190
1272
|
for (const property of propertyKeys) {
|
|
1191
|
-
const child = node[property];
|
|
1273
|
+
const child = node?.[property];
|
|
1192
1274
|
if (!child)
|
|
1193
1275
|
continue;
|
|
1194
1276
|
else if (Array.isArray(child))
|
|
@@ -1205,11 +1287,8 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
|
|
|
1205
1287
|
* @description 与`traverseChildren`不同,此方法会过滤掉非节点值
|
|
1206
1288
|
*/
|
|
1207
1289
|
*traverseChildrenGenerator(cb) {
|
|
1208
|
-
const isNode = (node) => {
|
|
1209
|
-
return Boolean(node) && typeof node === 'object' && ('concept' in node) && typeof node.concept === 'string';
|
|
1210
|
-
};
|
|
1211
1290
|
function* traverse(node) {
|
|
1212
|
-
if (
|
|
1291
|
+
if (concepts_1.asserts.isBaseNode(node)) {
|
|
1213
1292
|
const result = cb(node);
|
|
1214
1293
|
if (utils.isGenerator(result)) {
|
|
1215
1294
|
yield* result;
|
|
@@ -1247,21 +1326,45 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
|
|
|
1247
1326
|
* @description 严格迭代所有子节点!排除属性!
|
|
1248
1327
|
*/
|
|
1249
1328
|
traverseStrictChildren(cb, whitelist) {
|
|
1250
|
-
|
|
1251
|
-
if (
|
|
1252
|
-
|
|
1329
|
+
function traverse(node) {
|
|
1330
|
+
if (!node) {
|
|
1331
|
+
return;
|
|
1253
1332
|
}
|
|
1254
|
-
|
|
1333
|
+
if (concepts_1.asserts.isBaseNode(node)) {
|
|
1334
|
+
cb(node);
|
|
1335
|
+
}
|
|
1336
|
+
const propertyMap = (0, decorators_1.getConceptPropertyMap)(node?.concept);
|
|
1337
|
+
if (!propertyMap) {
|
|
1338
|
+
return;
|
|
1339
|
+
}
|
|
1340
|
+
const keys = (whitelist && whitelist.length > 0)
|
|
1341
|
+
? Array.from(propertyMap.keys()).concat(whitelist)
|
|
1342
|
+
: propertyMap.keys();
|
|
1343
|
+
for (const property of keys) {
|
|
1344
|
+
const prop = node[property];
|
|
1345
|
+
if (!prop) {
|
|
1346
|
+
continue;
|
|
1347
|
+
}
|
|
1348
|
+
else if (Array.isArray(prop)) {
|
|
1349
|
+
for (const child of prop) {
|
|
1350
|
+
traverse(child);
|
|
1351
|
+
}
|
|
1352
|
+
}
|
|
1353
|
+
else {
|
|
1354
|
+
traverse(prop);
|
|
1355
|
+
}
|
|
1356
|
+
}
|
|
1357
|
+
}
|
|
1358
|
+
traverse(this);
|
|
1255
1359
|
}
|
|
1256
1360
|
/**
|
|
1257
1361
|
* 迭代所有子节点
|
|
1258
1362
|
*
|
|
1259
|
-
* @description
|
|
1363
|
+
* @description 严格迭代所有子节点!排除属性!条件满足时整个遍历全部终止!
|
|
1260
1364
|
*/
|
|
1261
1365
|
traverseStrictChildrenStopWhen(cb, setStopFlag, whitelist) {
|
|
1262
1366
|
let shouldStop = false;
|
|
1263
|
-
|
|
1264
|
-
function traverse(node) {
|
|
1367
|
+
function __traverse(node) {
|
|
1265
1368
|
if (concepts_1.asserts.isBaseNode(node)) {
|
|
1266
1369
|
cb(node);
|
|
1267
1370
|
}
|
|
@@ -1281,12 +1384,45 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
|
|
|
1281
1384
|
if (!child)
|
|
1282
1385
|
continue;
|
|
1283
1386
|
else if (Array.isArray(child))
|
|
1284
|
-
child?.forEach?.((node) =>
|
|
1387
|
+
child?.forEach?.((node) => __traverse(node));
|
|
1285
1388
|
else
|
|
1286
|
-
|
|
1389
|
+
__traverse(child);
|
|
1287
1390
|
}
|
|
1288
1391
|
}
|
|
1289
|
-
|
|
1392
|
+
__traverse(this);
|
|
1393
|
+
}
|
|
1394
|
+
/**
|
|
1395
|
+
* 迭代所有子节点
|
|
1396
|
+
* @description 严格迭代所有子节点,排除属性;多函数特化版本,不做额外检查
|
|
1397
|
+
*/
|
|
1398
|
+
*traverseStrictChildrenDoMultiTasks(tasks, cleanups) {
|
|
1399
|
+
function __traverse(nd) {
|
|
1400
|
+
if (!concepts_1.asserts.isBaseNode(nd)) {
|
|
1401
|
+
return;
|
|
1402
|
+
}
|
|
1403
|
+
tasks.forEach(task => utils.runGeneratorSync(task(nd)));
|
|
1404
|
+
const props = (0, decorators_1.getConceptPropertyMap)(nd?.concept)?.keys();
|
|
1405
|
+
if (!props) {
|
|
1406
|
+
cleanups.forEach(task => utils.runGeneratorSync(task(nd)));
|
|
1407
|
+
return;
|
|
1408
|
+
}
|
|
1409
|
+
for (const p of props) {
|
|
1410
|
+
const child = nd[p];
|
|
1411
|
+
if (!child) {
|
|
1412
|
+
continue;
|
|
1413
|
+
}
|
|
1414
|
+
else if (Array.isArray(child)) {
|
|
1415
|
+
child?.forEach?.((node) => {
|
|
1416
|
+
__traverse(node);
|
|
1417
|
+
});
|
|
1418
|
+
}
|
|
1419
|
+
else {
|
|
1420
|
+
__traverse(child);
|
|
1421
|
+
}
|
|
1422
|
+
}
|
|
1423
|
+
cleanups.forEach(task => utils.runGeneratorSync(task(nd)));
|
|
1424
|
+
}
|
|
1425
|
+
__traverse(this);
|
|
1290
1426
|
}
|
|
1291
1427
|
/**
|
|
1292
1428
|
* 带剪枝的迭先序遍历
|
|
@@ -1483,8 +1619,10 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
|
|
|
1483
1619
|
const queue = []; // 创建一个队列存储待遍历的节点
|
|
1484
1620
|
const results = []; // 创建一个数组存储匹配的结果
|
|
1485
1621
|
queue.push(this); // 将初始节点加入队列
|
|
1486
|
-
|
|
1487
|
-
|
|
1622
|
+
let point = 0; // 创建一个指针,指向当前遍历的节点
|
|
1623
|
+
while (queue[point]) {
|
|
1624
|
+
const node = queue[point]; // 从队列中取出一个节点
|
|
1625
|
+
point++; // 指针后移
|
|
1488
1626
|
if (node) {
|
|
1489
1627
|
let result = false;
|
|
1490
1628
|
if (!containsSelf) {
|
|
@@ -1535,14 +1673,17 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
|
|
|
1535
1673
|
}
|
|
1536
1674
|
return results; // 返回匹配的结果数组
|
|
1537
1675
|
}
|
|
1676
|
+
getEmbeddedFilePath() {
|
|
1677
|
+
throw new Error(`${this.concept} 节点方法未实现`);
|
|
1678
|
+
}
|
|
1538
1679
|
*toEmbeddedTS() {
|
|
1539
|
-
throw new Error(
|
|
1680
|
+
throw new Error(`${this.concept} 节点方法未实现`);
|
|
1540
1681
|
}
|
|
1541
1682
|
*toEmbeddedTSFile() {
|
|
1542
|
-
throw new Error(
|
|
1683
|
+
throw new Error(`${this.concept} 节点方法未实现`);
|
|
1543
1684
|
}
|
|
1544
1685
|
toEmbeddedDeclarationTSFile() {
|
|
1545
|
-
throw new Error(
|
|
1686
|
+
throw new Error(`${this.concept} 节点方法未实现`);
|
|
1546
1687
|
}
|
|
1547
1688
|
/**
|
|
1548
1689
|
* 生成自然语言 TS
|
|
@@ -1627,6 +1768,12 @@ __decorate([
|
|
|
1627
1768
|
__decorate([
|
|
1628
1769
|
(0, decorators_1.property)()
|
|
1629
1770
|
], BaseNode.prototype, "concept", null);
|
|
1771
|
+
__decorate([
|
|
1772
|
+
(0, decorators_1.property)()
|
|
1773
|
+
], BaseNode.prototype, "changedTime", void 0);
|
|
1774
|
+
__decorate([
|
|
1775
|
+
(0, decorators_1.whiteProperty)()
|
|
1776
|
+
], BaseNode.prototype, "branchName", void 0);
|
|
1630
1777
|
__decorate([
|
|
1631
1778
|
(0, decorators_1.whiteProperty)()
|
|
1632
1779
|
], BaseNode.prototype, "workingCopy", void 0);
|