@lcap/nasl 4.4.0-beta.18 → 4.4.0-beta.20
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/natural/exports/nasl2Files.d.ts.map +1 -1
- package/out/natural/exports/nasl2Files.js +98 -1
- package/out/natural/exports/nasl2Files.js.map +1 -1
- package/out/natural/exports/transform2BatchActions.d.ts +2 -0
- package/out/natural/exports/transform2BatchActions.d.ts.map +1 -1
- package/out/natural/exports/transform2BatchActions.js +740 -87
- package/out/natural/exports/transform2BatchActions.js.map +1 -1
- package/out/natural/parser/parseNaturalTS.d.ts.map +1 -1
- package/out/natural/parser/parseNaturalTS.js +81 -24
- package/out/natural/parser/parseNaturalTS.js.map +1 -1
- package/out/natural/parser/parseNaturalTSXView.d.ts.map +1 -1
- package/out/natural/parser/parseNaturalTSXView.js +32 -77
- package/out/natural/parser/parseNaturalTSXView.js.map +1 -1
- package/out/natural/transforms/checker/checkLcapEntity.d.ts +16 -0
- package/out/natural/transforms/checker/checkLcapEntity.d.ts.map +1 -0
- package/out/natural/transforms/checker/checkLcapEntity.js +334 -0
- package/out/natural/transforms/checker/checkLcapEntity.js.map +1 -0
- package/out/natural/transforms/checker/checkValidationCalleeName.d.ts +3 -0
- package/out/natural/transforms/checker/checkValidationCalleeName.d.ts.map +1 -0
- package/out/natural/transforms/checker/checkValidationCalleeName.js +88 -0
- package/out/natural/transforms/checker/checkValidationCalleeName.js.map +1 -0
- package/out/natural/transforms/checker/index.d.ts +2 -0
- package/out/natural/transforms/checker/index.d.ts.map +1 -1
- package/out/natural/transforms/checker/index.js +5 -1
- package/out/natural/transforms/checker/index.js.map +1 -1
- package/out/natural/transforms/transform2Entity.d.ts.map +1 -1
- package/out/natural/transforms/transform2Entity.js +3 -2
- package/out/natural/transforms/transform2Entity.js.map +1 -1
- package/out/natural/transforms/transform2GlobalLogicDeclaration.d.ts +1 -1
- package/out/natural/transforms/transform2GlobalLogicDeclaration.d.ts.map +1 -1
- package/out/natural/transforms/transform2GlobalLogicDeclaration.js +15 -1
- package/out/natural/transforms/transform2GlobalLogicDeclaration.js.map +1 -1
- package/out/natural/transforms/transform2Logic.d.ts +3 -3
- package/out/natural/transforms/transform2Logic.d.ts.map +1 -1
- package/out/natural/transforms/transform2Logic.js +34 -7
- package/out/natural/transforms/transform2Logic.js.map +1 -1
- package/out/natural/transforms/transform2LogicItem.d.ts +4 -0
- package/out/natural/transforms/transform2LogicItem.d.ts.map +1 -1
- package/out/natural/transforms/transform2LogicItem.js +11 -2
- package/out/natural/transforms/transform2LogicItem.js.map +1 -1
- package/out/natural/transforms/transform2ValidationRule.d.ts.map +1 -1
- package/out/natural/transforms/transform2ValidationRule.js +2 -3
- package/out/natural/transforms/transform2ValidationRule.js.map +1 -1
- package/out/natural/transforms/transform2Variable.d.ts +3 -3
- package/out/natural/transforms/transform2Variable.d.ts.map +1 -1
- package/out/natural/transforms/transform2Variable.js +32 -5
- package/out/natural/transforms/transform2Variable.js.map +1 -1
- package/out/natural/transforms/utils/parseDecorator.d.ts +27 -3
- package/out/natural/transforms/utils/parseDecorator.d.ts.map +1 -1
- package/out/natural/transforms/utils/parseDecorator.js +61 -6
- package/out/natural/transforms/utils/parseDecorator.js.map +1 -1
- package/out/natural/transforms/utils/transform2Directory.d.ts +59 -0
- package/out/natural/transforms/utils/transform2Directory.d.ts.map +1 -0
- package/out/natural/transforms/utils/transform2Directory.js +229 -0
- package/out/natural/transforms/utils/transform2Directory.js.map +1 -0
- package/out/natural/utils/index.d.ts +16 -0
- package/out/natural/utils/index.d.ts.map +1 -1
- package/out/natural/utils/index.js +26 -1
- package/out/natural/utils/index.js.map +1 -1
- package/out/natural/utils/nasl-file-types.d.ts +1 -1
- package/out/natural/utils/nasl-file-types.d.ts.map +1 -1
- package/out/natural/utils/nasl-file-types.js +7 -0
- package/out/natural/utils/nasl-file-types.js.map +1 -1
- package/out/server/extendBaseNode.d.ts.map +1 -1
- package/out/server/extendBaseNode.js +3 -0
- package/out/server/extendBaseNode.js.map +1 -1
- package/out/server/naslServer.d.ts.map +1 -1
- package/out/server/naslServer.js +7 -4
- package/out/server/naslServer.js.map +1 -1
- package/package.json +9 -9
|
@@ -4,7 +4,8 @@ exports.transform2FrontendVariable = exports.transform2BackendVariable = exports
|
|
|
4
4
|
const utils_1 = require("../utils");
|
|
5
5
|
const transform2TypeAnnotation_1 = require("./transform2TypeAnnotation");
|
|
6
6
|
const transform2LogicItem_1 = require("./transform2LogicItem");
|
|
7
|
-
|
|
7
|
+
const parseDecorator_1 = require("./utils/parseDecorator");
|
|
8
|
+
function transform2Variables(node, decorator, options) {
|
|
8
9
|
const variables = [];
|
|
9
10
|
const declList = node?.declarations || [];
|
|
10
11
|
declList.forEach((decl) => {
|
|
@@ -19,12 +20,22 @@ function transform2Variables(node, options) {
|
|
|
19
20
|
expression: (0, transform2LogicItem_1.transform2LogicItem)(decl.init, { ...options, transformType: 'attr', typeAnnotation, isRestricted: true, isInFrontend: true }),
|
|
20
21
|
});
|
|
21
22
|
}
|
|
23
|
+
// 处理 $Variable 装饰器
|
|
24
|
+
if (decorator && decorator.arguments[0]?.type === 'ObjectExpression') {
|
|
25
|
+
const variableMetadata = (0, parseDecorator_1.pickDecoratorObject)(decorator.arguments[0], parseDecorator_1.VIEW_VARIABLE_DECORATOR.allowedKeys, parseDecorator_1.VIEW_VARIABLE_DECORATOR.mappings || {}, options);
|
|
26
|
+
if (variableMetadata.description) {
|
|
27
|
+
variable.description = variableMetadata.description;
|
|
28
|
+
}
|
|
29
|
+
if (variableMetadata.directory !== undefined) {
|
|
30
|
+
variable._directoryInfo = variableMetadata.directory;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
22
33
|
variables.push(variable);
|
|
23
34
|
});
|
|
24
35
|
return variables;
|
|
25
36
|
}
|
|
26
37
|
exports.transform2Variables = transform2Variables;
|
|
27
|
-
function transform2BackendVariable(node, parseState) {
|
|
38
|
+
function transform2BackendVariable(node, decorator, parseState) {
|
|
28
39
|
if (node.declarations.length !== 1)
|
|
29
40
|
return (0, utils_1.throwError)(parseState, `VariableDeclaration should have only one declaration`);
|
|
30
41
|
const declarator = node.declarations[0];
|
|
@@ -35,7 +46,13 @@ function transform2BackendVariable(node, parseState) {
|
|
|
35
46
|
scope: 'request',
|
|
36
47
|
});
|
|
37
48
|
variable.name = id.name;
|
|
38
|
-
|
|
49
|
+
// 处理装饰器中的 description
|
|
50
|
+
if (decorator && decorator.arguments[0]?.type === 'ObjectExpression') {
|
|
51
|
+
const metadata = (0, parseDecorator_1.pickDecoratorObject)(decorator.arguments[0], parseDecorator_1.BACKEND_VARIABLE_DECORATOR.allowedKeys, parseDecorator_1.BACKEND_VARIABLE_DECORATOR.mappings || {}, parseState);
|
|
52
|
+
if (metadata.description) {
|
|
53
|
+
variable.description = metadata.description;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
39
56
|
const typeAnnotation = id.typeAnnotation?.typeAnnotation;
|
|
40
57
|
if (typeAnnotation) {
|
|
41
58
|
variable.typeAnnotation = (0, transform2TypeAnnotation_1.transform2TypeAnnotation)(typeAnnotation, parseState) || undefined;
|
|
@@ -48,7 +65,7 @@ function transform2BackendVariable(node, parseState) {
|
|
|
48
65
|
return variable;
|
|
49
66
|
}
|
|
50
67
|
exports.transform2BackendVariable = transform2BackendVariable;
|
|
51
|
-
function transform2FrontendVariable(node, parseState) {
|
|
68
|
+
function transform2FrontendVariable(node, decorator, parseState) {
|
|
52
69
|
if (node.declarations.length !== 1)
|
|
53
70
|
return (0, utils_1.throwError)(parseState, `VariableDeclaration should have only one declaration`);
|
|
54
71
|
const declarator = node.declarations[0];
|
|
@@ -59,7 +76,17 @@ function transform2FrontendVariable(node, parseState) {
|
|
|
59
76
|
localCache: false,
|
|
60
77
|
});
|
|
61
78
|
variable.name = id.name;
|
|
62
|
-
|
|
79
|
+
// 处理装饰器中的 description 和 localStorage (映射到 localCache)
|
|
80
|
+
if (decorator && decorator.arguments[0]?.type === 'ObjectExpression') {
|
|
81
|
+
const metadata = (0, parseDecorator_1.pickDecoratorObject)(decorator.arguments[0], parseDecorator_1.FRONTEND_VARIABLE_DECORATOR.allowedKeys, parseDecorator_1.FRONTEND_VARIABLE_DECORATOR.mappings || {}, parseState);
|
|
82
|
+
if (metadata.description) {
|
|
83
|
+
variable.description = metadata.description;
|
|
84
|
+
}
|
|
85
|
+
// metadata.localCache 是从装饰器的 localStorage 映射过来的
|
|
86
|
+
if (metadata.localCache !== undefined) {
|
|
87
|
+
variable.localCache = metadata.localCache;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
63
90
|
const typeAnnotation = id.typeAnnotation?.typeAnnotation;
|
|
64
91
|
if (typeAnnotation) {
|
|
65
92
|
variable.typeAnnotation = (0, transform2TypeAnnotation_1.transform2TypeAnnotation)(typeAnnotation, parseState) || undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform2Variable.js","sourceRoot":"","sources":["../../../src/natural/transforms/transform2Variable.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"transform2Variable.js","sourceRoot":"","sources":["../../../src/natural/transforms/transform2Variable.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ export interface DecoratorHandler<K extends string = never> {
|
|
|
17
17
|
/**
|
|
18
18
|
* Entity 装饰器处理器配置
|
|
19
19
|
*/
|
|
20
|
-
export declare const ENTITY_DECORATOR: DecoratorHandler<'title' | 'uuid' | 'tableName' | 'origin'>;
|
|
20
|
+
export declare const ENTITY_DECORATOR: DecoratorHandler<'title' | 'uuid' | 'tableName' | 'origin' | 'directory'>;
|
|
21
21
|
/**
|
|
22
22
|
* EntityProperty 装饰器处理器配置
|
|
23
23
|
*/
|
|
@@ -29,11 +29,35 @@ export declare const ENTITY_RELATION_DECORATOR: DecoratorHandler;
|
|
|
29
29
|
/**
|
|
30
30
|
* Enum 装饰器处理器配置
|
|
31
31
|
*/
|
|
32
|
-
export declare const ENUM_DECORATOR: DecoratorHandler<'title' | 'description'>;
|
|
32
|
+
export declare const ENUM_DECORATOR: DecoratorHandler<'title' | 'description' | 'directory'>;
|
|
33
33
|
/**
|
|
34
34
|
* Structure 装饰器处理器配置
|
|
35
35
|
*/
|
|
36
|
-
export declare const STRUCTURE_DECORATOR: DecoratorHandler<'title'>;
|
|
36
|
+
export declare const STRUCTURE_DECORATOR: DecoratorHandler<'title' | 'directory'>;
|
|
37
|
+
/**
|
|
38
|
+
* Logic 装饰器处理器配置(服务端全局逻辑)
|
|
39
|
+
*/
|
|
40
|
+
export declare const LOGIC_DECORATOR: DecoratorHandler<'description' | 'transactional' | 'directory'>;
|
|
41
|
+
/**
|
|
42
|
+
* Logic 装饰器处理器配置(View 中的前端逻辑)
|
|
43
|
+
*/
|
|
44
|
+
export declare const VIEW_LOGIC_DECORATOR: DecoratorHandler<'description' | 'directory'>;
|
|
45
|
+
/**
|
|
46
|
+
* Variable 装饰器处理器配置(普通变量)
|
|
47
|
+
*/
|
|
48
|
+
export declare const VARIABLE_DECORATOR: DecoratorHandler<'description'>;
|
|
49
|
+
/**
|
|
50
|
+
* BackendVariable 装饰器处理器配置(后端全局变量)
|
|
51
|
+
*/
|
|
52
|
+
export declare const BACKEND_VARIABLE_DECORATOR: DecoratorHandler<'description'>;
|
|
53
|
+
/**
|
|
54
|
+
* FrontendVariable 装饰器处理器配置(前端全局变量)
|
|
55
|
+
*/
|
|
56
|
+
export declare const FRONTEND_VARIABLE_DECORATOR: DecoratorHandler<'description' | 'localStorage'>;
|
|
57
|
+
/**
|
|
58
|
+
* Variable 装饰器处理器配置(View 中的变量)
|
|
59
|
+
*/
|
|
60
|
+
export declare const VIEW_VARIABLE_DECORATOR: DecoratorHandler<'description' | 'directory'>;
|
|
37
61
|
/**
|
|
38
62
|
* StructureProperty 装饰器处理器配置
|
|
39
63
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseDecorator.d.ts","sourceRoot":"","sources":["../../../../src/natural/transforms/utils/parseDecorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAY,SAAS,EAAc,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"parseDecorator.d.ts","sourceRoot":"","sources":["../../../../src/natural/transforms/utils/parseDecorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAY,SAAS,EAAc,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAIpG;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,EAAE,mBAAmB,uBAoCtK;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK;IACtD,IAAI,EAAE,MAAM,CAAC;IAEb,WAAW,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAErB,QAAQ,CAAC,EAAE;SAAG,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM;KAAE,CAAC;IAEnC,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAC1H;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAMtG,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,gBAAgB,CAAC,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,YAAY,GAAG,gBAAgB,GAAG,UAAU,CAgBnK,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,gBA0BvC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,gBAAgB,CAAC,OAAO,GAAG,aAAa,GAAG,WAAW,CAMlF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,gBAAgB,CAAC,OAAO,GAAG,WAAW,CAMvE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,gBAAgB,CAAC,aAAa,GAAG,eAAe,GAAG,WAAW,CAG3F,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,gBAAgB,CAAC,aAAa,GAAG,WAAW,CAG9E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,gBAAgB,CAAC,aAAa,CAG9D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,gBAAgB,CAAC,aAAa,CAGtE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,gBAAgB,CAAC,aAAa,GAAG,cAAc,CAMxF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,gBAAgB,CAAC,aAAa,GAAG,WAAW,CAGjF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,gBAAgB,CAAC,OAAO,GAAG,aAAa,GAAG,UAAU,CAM/F,CAAC;AAEF;;;GAGG;AACH,wBAAgB,yBAAyB,CACrC,UAAU,EAAE,UAAU,CAAC,SAAS,EAAE,GAAG,SAAS,EAC9C,QAAQ,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,EACpC,MAAM,EAAE,SAAS,CAAC,QAAQ,EAC1B,UAAU,EAAE,mBAAmB,GAChC,IAAI,CAmCN"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.processDecoratorsByConfig = exports.STRUCTURE_PROPERTY_DECORATOR = exports.STRUCTURE_DECORATOR = exports.ENUM_DECORATOR = exports.ENTITY_RELATION_DECORATOR = exports.ENTITY_PROPERTY_DECORATOR = exports.ENTITY_DECORATOR = exports.pickDecoratorObject = void 0;
|
|
3
|
+
exports.processDecoratorsByConfig = exports.STRUCTURE_PROPERTY_DECORATOR = exports.VIEW_VARIABLE_DECORATOR = exports.FRONTEND_VARIABLE_DECORATOR = exports.BACKEND_VARIABLE_DECORATOR = exports.VARIABLE_DECORATOR = exports.VIEW_LOGIC_DECORATOR = exports.LOGIC_DECORATOR = exports.STRUCTURE_DECORATOR = exports.ENUM_DECORATOR = exports.ENTITY_RELATION_DECORATOR = exports.ENTITY_PROPERTY_DECORATOR = exports.ENTITY_DECORATOR = exports.pickDecoratorObject = void 0;
|
|
4
4
|
const utils_1 = require("../../utils");
|
|
5
5
|
const transform2Entity_1 = require("../transform2Entity");
|
|
6
|
+
const transform2Directory_1 = require("./transform2Directory");
|
|
6
7
|
/**
|
|
7
8
|
* 从装饰器对象表达式中提取指定的属性
|
|
8
9
|
*/
|
|
@@ -19,7 +20,14 @@ function pickDecoratorObject(objectExpression, keys, mappings, parseState) {
|
|
|
19
20
|
value = item.value.value;
|
|
20
21
|
}
|
|
21
22
|
else if (item.value.type === 'StringLiteral') {
|
|
22
|
-
|
|
23
|
+
// directory 字段需要特殊处理
|
|
24
|
+
if (item.key.name === 'directory') {
|
|
25
|
+
const directoryInfo = (0, transform2Directory_1.parseDirectoryValue)(item.value.value, parseState);
|
|
26
|
+
value = directoryInfo;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
value = item.value.value;
|
|
30
|
+
}
|
|
23
31
|
}
|
|
24
32
|
else if (item.value.type === 'NumericLiteral') {
|
|
25
33
|
value = item.value.value;
|
|
@@ -50,7 +58,7 @@ exports.pickDecoratorObject = pickDecoratorObject;
|
|
|
50
58
|
*/
|
|
51
59
|
exports.ENTITY_DECORATOR = {
|
|
52
60
|
name: 'Entity',
|
|
53
|
-
allowedKeys: new Set(['title', 'uuid', 'tableName', 'origin']),
|
|
61
|
+
allowedKeys: new Set(['title', 'uuid', 'tableName', 'origin', 'directory']),
|
|
54
62
|
mappings: {
|
|
55
63
|
title: 'description',
|
|
56
64
|
},
|
|
@@ -112,7 +120,7 @@ exports.ENTITY_RELATION_DECORATOR = {
|
|
|
112
120
|
*/
|
|
113
121
|
exports.ENUM_DECORATOR = {
|
|
114
122
|
name: 'Enum',
|
|
115
|
-
allowedKeys: new Set(['title', 'description']),
|
|
123
|
+
allowedKeys: new Set(['title', 'description', 'directory']),
|
|
116
124
|
mappings: {
|
|
117
125
|
title: 'description',
|
|
118
126
|
},
|
|
@@ -122,11 +130,56 @@ exports.ENUM_DECORATOR = {
|
|
|
122
130
|
*/
|
|
123
131
|
exports.STRUCTURE_DECORATOR = {
|
|
124
132
|
name: 'Structure',
|
|
125
|
-
allowedKeys: new Set(['title']),
|
|
133
|
+
allowedKeys: new Set(['title', 'directory']),
|
|
126
134
|
mappings: {
|
|
127
135
|
title: 'description',
|
|
128
136
|
},
|
|
129
137
|
};
|
|
138
|
+
/**
|
|
139
|
+
* Logic 装饰器处理器配置(服务端全局逻辑)
|
|
140
|
+
*/
|
|
141
|
+
exports.LOGIC_DECORATOR = {
|
|
142
|
+
name: 'Logic',
|
|
143
|
+
allowedKeys: new Set(['description', 'transactional', 'directory']),
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* Logic 装饰器处理器配置(View 中的前端逻辑)
|
|
147
|
+
*/
|
|
148
|
+
exports.VIEW_LOGIC_DECORATOR = {
|
|
149
|
+
name: 'Logic',
|
|
150
|
+
allowedKeys: new Set(['description', 'directory']),
|
|
151
|
+
};
|
|
152
|
+
/**
|
|
153
|
+
* Variable 装饰器处理器配置(普通变量)
|
|
154
|
+
*/
|
|
155
|
+
exports.VARIABLE_DECORATOR = {
|
|
156
|
+
name: 'Variable',
|
|
157
|
+
allowedKeys: new Set(['description']),
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* BackendVariable 装饰器处理器配置(后端全局变量)
|
|
161
|
+
*/
|
|
162
|
+
exports.BACKEND_VARIABLE_DECORATOR = {
|
|
163
|
+
name: 'BackendVariable',
|
|
164
|
+
allowedKeys: new Set(['description']),
|
|
165
|
+
};
|
|
166
|
+
/**
|
|
167
|
+
* FrontendVariable 装饰器处理器配置(前端全局变量)
|
|
168
|
+
*/
|
|
169
|
+
exports.FRONTEND_VARIABLE_DECORATOR = {
|
|
170
|
+
name: 'FrontendVariable',
|
|
171
|
+
allowedKeys: new Set(['description', 'localStorage']),
|
|
172
|
+
mappings: {
|
|
173
|
+
localStorage: 'localCache',
|
|
174
|
+
},
|
|
175
|
+
};
|
|
176
|
+
/**
|
|
177
|
+
* Variable 装饰器处理器配置(View 中的变量)
|
|
178
|
+
*/
|
|
179
|
+
exports.VIEW_VARIABLE_DECORATOR = {
|
|
180
|
+
name: 'Variable',
|
|
181
|
+
allowedKeys: new Set(['description', 'directory']),
|
|
182
|
+
};
|
|
130
183
|
/**
|
|
131
184
|
* StructureProperty 装饰器处理器配置
|
|
132
185
|
*/
|
|
@@ -162,7 +215,9 @@ function processDecoratorsByConfig(decorators, handlers, target, parseState) {
|
|
|
162
215
|
const decoratorProps = pickDecoratorObject(decoratorArgs, handler.allowedKeys, handler.mappings, parseState);
|
|
163
216
|
Object.keys(decoratorProps).forEach(key => {
|
|
164
217
|
if (decoratorProps[key] !== undefined) {
|
|
165
|
-
|
|
218
|
+
// directory 属性使用临时属性名,避免与只读 getter 冲突
|
|
219
|
+
const propName = key === 'directory' ? '_directoryInfo' : key;
|
|
220
|
+
target[propName] = decoratorProps[key];
|
|
166
221
|
}
|
|
167
222
|
});
|
|
168
223
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseDecorator.js","sourceRoot":"","sources":["../../../../src/natural/transforms/utils/parseDecorator.ts"],"names":[],"mappings":";;;AAAA,uCAAoG;AACpG,0DAAuE;
|
|
1
|
+
{"version":3,"file":"parseDecorator.js","sourceRoot":"","sources":["../../../../src/natural/transforms/utils/parseDecorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { naslTypes, type ParseNaturalTSState } from '../../utils';
|
|
2
|
+
/**
|
|
3
|
+
* 解析的目录信息
|
|
4
|
+
*/
|
|
5
|
+
export interface DirectoryInfo {
|
|
6
|
+
name: string;
|
|
7
|
+
title?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* 目录范围类型,根据装饰器名称决定
|
|
11
|
+
*/
|
|
12
|
+
export type DirectoryScope = 'Logic' | 'Enum' | 'Structure' | 'Entity' | 'View';
|
|
13
|
+
/**
|
|
14
|
+
* 从字符串解析目录信息
|
|
15
|
+
* 支持格式:
|
|
16
|
+
* - name(title) - 包含标题的格式
|
|
17
|
+
* - name - 纯名称格式
|
|
18
|
+
*
|
|
19
|
+
* name 必须以小写字母开头,由小写字母、数字或下划线组成
|
|
20
|
+
*
|
|
21
|
+
* @param directoryValue - 目录字符串值
|
|
22
|
+
* @param parseState - 解析状态
|
|
23
|
+
* @returns 解析后的目录信息
|
|
24
|
+
*/
|
|
25
|
+
export declare function parseDirectoryValue(directoryValue: string, parseState: ParseNaturalTSState): DirectoryInfo;
|
|
26
|
+
/**
|
|
27
|
+
* 根据装饰器名称获取目录范围
|
|
28
|
+
* @param decoratorName - 装饰器名称(Logic、Enum、Structure、Entity)
|
|
29
|
+
* @returns 目录范围
|
|
30
|
+
*/
|
|
31
|
+
export declare function getDirectoryScopeFromDecorator(decoratorName: string): DirectoryScope;
|
|
32
|
+
/**
|
|
33
|
+
* 查找或创建目录(统一方法)
|
|
34
|
+
* 根据 directory 信息和范围类型,在对应的父节点中查找或创建目录
|
|
35
|
+
*
|
|
36
|
+
* @param appOrView - NASL 应用实例或 View 实例
|
|
37
|
+
* @param directoryInfo - 目录信息
|
|
38
|
+
* @param scope - 目录范围(Logic、Enum、Structure、Entity、View)
|
|
39
|
+
* @returns 找到或创建的目录实例
|
|
40
|
+
*/
|
|
41
|
+
export declare function findOrCreateDirectory(appOrView: naslTypes.App | naslTypes.View, directoryInfo: DirectoryInfo, scope: DirectoryScope): naslTypes.Directory;
|
|
42
|
+
/**
|
|
43
|
+
* 将节点添加到指定目录(统一方法)
|
|
44
|
+
* @param directory - 目标目录
|
|
45
|
+
* @param node - 要添加的节点
|
|
46
|
+
* @param scope - 目录范围,用于确定正确的 namespace
|
|
47
|
+
* @param dataSourceName - 数据源名称(仅 Entity 类型需要)
|
|
48
|
+
*/
|
|
49
|
+
export declare function addNodeToDirectory(directory: naslTypes.Directory, node: naslTypes.Entity | naslTypes.Logic | naslTypes.Enum | naslTypes.Structure | naslTypes.Variable, scope: DirectoryScope, dataSourceName?: string): void;
|
|
50
|
+
/**
|
|
51
|
+
* 处理节点的 directory 信息(统一方法)
|
|
52
|
+
* 如果节点有 _directoryInfo 临时属性,则在对应的父目录中创建或查找目录,并添加引用
|
|
53
|
+
*
|
|
54
|
+
* @param appOrView - NASL 应用实例或 View 实例
|
|
55
|
+
* @param node - 要处理的节点
|
|
56
|
+
* @param scope - 目录范围(Logic、Enum、Structure、Entity、View)
|
|
57
|
+
*/
|
|
58
|
+
export declare function handleDirectory(appOrView: naslTypes.App | naslTypes.View, node: naslTypes.Entity | naslTypes.Logic | naslTypes.Enum | naslTypes.Structure | naslTypes.Variable, scope: DirectoryScope): void;
|
|
59
|
+
//# sourceMappingURL=transform2Directory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform2Directory.d.ts","sourceRoot":"","sources":["../../../../src/natural/transforms/utils/transform2Directory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAc,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEhF;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,mBAAmB,GAC9B,aAAa,CAyBf;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc,CAMpF;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,IAAI,EACzC,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,cAAc,GACpB,SAAS,CAAC,SAAS,CAiGrB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,CAAC,SAAS,EAC9B,IAAI,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,QAAQ,EACpG,KAAK,EAAE,cAAc,EACrB,cAAc,CAAC,EAAE,MAAM,GACtB,IAAI,CA2CN;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,IAAI,EACzC,IAAI,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,QAAQ,EACpG,KAAK,EAAE,cAAc,GACpB,IAAI,CAeN"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleDirectory = exports.addNodeToDirectory = exports.findOrCreateDirectory = exports.getDirectoryScopeFromDecorator = exports.parseDirectoryValue = void 0;
|
|
4
|
+
const utils_1 = require("../../utils");
|
|
5
|
+
/**
|
|
6
|
+
* 从字符串解析目录信息
|
|
7
|
+
* 支持格式:
|
|
8
|
+
* - name(title) - 包含标题的格式
|
|
9
|
+
* - name - 纯名称格式
|
|
10
|
+
*
|
|
11
|
+
* name 必须以小写字母开头,由小写字母、数字或下划线组成
|
|
12
|
+
*
|
|
13
|
+
* @param directoryValue - 目录字符串值
|
|
14
|
+
* @param parseState - 解析状态
|
|
15
|
+
* @returns 解析后的目录信息
|
|
16
|
+
*/
|
|
17
|
+
function parseDirectoryValue(directoryValue, parseState) {
|
|
18
|
+
// 验证格式: name(title) 或 name
|
|
19
|
+
// name 必须以小写字母开头,由小写字母、数字或下划线组成
|
|
20
|
+
const nameRegex = /^[a-z][a-z0-9_]*$/;
|
|
21
|
+
const nameWithTitleRegex = /^([a-z][a-z0-9_]*)\((.+)\)$/;
|
|
22
|
+
let name;
|
|
23
|
+
let title;
|
|
24
|
+
// 尝试匹配 name(title) 格式
|
|
25
|
+
const matchWithTitle = directoryValue.match(nameWithTitleRegex);
|
|
26
|
+
if (matchWithTitle) {
|
|
27
|
+
name = matchWithTitle[1];
|
|
28
|
+
title = matchWithTitle[2];
|
|
29
|
+
}
|
|
30
|
+
else if (nameRegex.test(directoryValue)) {
|
|
31
|
+
// 匹配纯 name 格式
|
|
32
|
+
name = directoryValue;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
return (0, utils_1.throwError)(parseState, `directory 格式不正确:"${directoryValue}"。正确格式为 "name(title)" 或 "name",其中 name 必须以小写字母开头,由小写字母、数字或下划线组成`);
|
|
36
|
+
}
|
|
37
|
+
return { name, title };
|
|
38
|
+
}
|
|
39
|
+
exports.parseDirectoryValue = parseDirectoryValue;
|
|
40
|
+
/**
|
|
41
|
+
* 根据装饰器名称获取目录范围
|
|
42
|
+
* @param decoratorName - 装饰器名称(Logic、Enum、Structure、Entity)
|
|
43
|
+
* @returns 目录范围
|
|
44
|
+
*/
|
|
45
|
+
function getDirectoryScopeFromDecorator(decoratorName) {
|
|
46
|
+
const validScopes = ['Logic', 'Enum', 'Structure', 'Entity'];
|
|
47
|
+
if (validScopes.includes(decoratorName)) {
|
|
48
|
+
return decoratorName;
|
|
49
|
+
}
|
|
50
|
+
throw new Error(`不支持的装饰器类型:${decoratorName}`);
|
|
51
|
+
}
|
|
52
|
+
exports.getDirectoryScopeFromDecorator = getDirectoryScopeFromDecorator;
|
|
53
|
+
/**
|
|
54
|
+
* 查找或创建目录(统一方法)
|
|
55
|
+
* 根据 directory 信息和范围类型,在对应的父节点中查找或创建目录
|
|
56
|
+
*
|
|
57
|
+
* @param appOrView - NASL 应用实例或 View 实例
|
|
58
|
+
* @param directoryInfo - 目录信息
|
|
59
|
+
* @param scope - 目录范围(Logic、Enum、Structure、Entity、View)
|
|
60
|
+
* @returns 找到或创建的目录实例
|
|
61
|
+
*/
|
|
62
|
+
function findOrCreateDirectory(appOrView, directoryInfo, scope) {
|
|
63
|
+
let parentDirectories;
|
|
64
|
+
let parentNode;
|
|
65
|
+
let rootDirectoryName;
|
|
66
|
+
// 根据范围确定父目录列表和父节点
|
|
67
|
+
if (scope === 'View') {
|
|
68
|
+
// View:目录直接存储在 view.directories 中
|
|
69
|
+
const view = appOrView;
|
|
70
|
+
parentDirectories = view.directories || [];
|
|
71
|
+
parentNode = view;
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
// App 类型的处理
|
|
75
|
+
const app = appOrView;
|
|
76
|
+
switch (scope) {
|
|
77
|
+
case 'Logic':
|
|
78
|
+
// 逻辑目录存储在 app.directories 中,需要找到名为 'LOGICS' 的目录
|
|
79
|
+
rootDirectoryName = 'LOGICS';
|
|
80
|
+
parentDirectories = app.directories.filter((dir) => dir.name === 'LOGICS');
|
|
81
|
+
parentNode = app;
|
|
82
|
+
break;
|
|
83
|
+
case 'Enum':
|
|
84
|
+
// 枚举目录存储在 app.directories 中,需要找到名为 'ENUMS' 的目录
|
|
85
|
+
rootDirectoryName = 'ENUMS';
|
|
86
|
+
parentDirectories = app.directories.filter((dir) => dir.name === 'ENUMS');
|
|
87
|
+
parentNode = app;
|
|
88
|
+
break;
|
|
89
|
+
case 'Structure':
|
|
90
|
+
// 结构目录存储在 app.directories 中,需要找到名为 'STRUCTURES' 的目录
|
|
91
|
+
rootDirectoryName = 'STRUCTURES';
|
|
92
|
+
parentDirectories = app.directories.filter((dir) => dir.name === 'STRUCTURES');
|
|
93
|
+
parentNode = app;
|
|
94
|
+
break;
|
|
95
|
+
case 'Entity':
|
|
96
|
+
// 实体目录存储在数据源的 directories 中
|
|
97
|
+
if (app.dataSources && app.dataSources.length > 0) {
|
|
98
|
+
parentDirectories = app.dataSources[0].directories || [];
|
|
99
|
+
parentNode = app.dataSources[0];
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
throw new Error('找不到数据源,无法创建实体目录');
|
|
103
|
+
}
|
|
104
|
+
break;
|
|
105
|
+
default:
|
|
106
|
+
throw new Error(`不支持的目录范围:${scope}`);
|
|
107
|
+
}
|
|
108
|
+
// 如果没有找到根目录(Logic、Enum、Structure),使用 App 的 addDirectory 方法创建根目录
|
|
109
|
+
if (rootDirectoryName && parentDirectories.length === 0) {
|
|
110
|
+
const rootDirectory = app.addDirectory({
|
|
111
|
+
name: rootDirectoryName,
|
|
112
|
+
});
|
|
113
|
+
parentDirectories = [rootDirectory];
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// 在父目录列表中查找匹配的目录
|
|
117
|
+
let targetDirectory;
|
|
118
|
+
if (scope === 'View' || scope === 'Entity') {
|
|
119
|
+
// View 和 Entity:直接在 parentDirectories 中查找
|
|
120
|
+
targetDirectory = parentDirectories.find((dir) => dir.name === directoryInfo.name);
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
// Logic、Enum、Structure:在父目录的 children 中查找
|
|
124
|
+
for (const parent of parentDirectories) {
|
|
125
|
+
if (parent.children) {
|
|
126
|
+
targetDirectory = parent.children.find((child) => child.name === directoryInfo.name);
|
|
127
|
+
if (targetDirectory) {
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// 如果找不到,创建新目录
|
|
134
|
+
if (!targetDirectory) {
|
|
135
|
+
if (scope === 'View' || scope === 'Entity') {
|
|
136
|
+
// View 和 Entity:直接在父节点下创建
|
|
137
|
+
targetDirectory = parentNode.addDirectory({
|
|
138
|
+
name: directoryInfo.name,
|
|
139
|
+
title: directoryInfo.title,
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
else if (parentDirectories.length > 0) {
|
|
143
|
+
// Logic、Enum、Structure:在父目录的 children 中创建
|
|
144
|
+
const parent = parentDirectories[0];
|
|
145
|
+
targetDirectory = parent.addDirectory({
|
|
146
|
+
name: directoryInfo.name,
|
|
147
|
+
title: directoryInfo.title,
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return targetDirectory;
|
|
152
|
+
}
|
|
153
|
+
exports.findOrCreateDirectory = findOrCreateDirectory;
|
|
154
|
+
/**
|
|
155
|
+
* 将节点添加到指定目录(统一方法)
|
|
156
|
+
* @param directory - 目标目录
|
|
157
|
+
* @param node - 要添加的节点
|
|
158
|
+
* @param scope - 目录范围,用于确定正确的 namespace
|
|
159
|
+
* @param dataSourceName - 数据源名称(仅 Entity 类型需要)
|
|
160
|
+
*/
|
|
161
|
+
function addNodeToDirectory(directory, node, scope, dataSourceName) {
|
|
162
|
+
// 根据 scope 确定正确的 namespace
|
|
163
|
+
let namespace;
|
|
164
|
+
switch (scope) {
|
|
165
|
+
case 'Logic':
|
|
166
|
+
namespace = 'app.logics';
|
|
167
|
+
break;
|
|
168
|
+
case 'Enum':
|
|
169
|
+
namespace = 'app.enums';
|
|
170
|
+
break;
|
|
171
|
+
case 'Structure':
|
|
172
|
+
namespace = 'app.structures';
|
|
173
|
+
break;
|
|
174
|
+
case 'Entity':
|
|
175
|
+
// Entity 的 namespace 需要包含数据源名称
|
|
176
|
+
const dsName = dataSourceName || node.dataSource?.name || 'defaultDS';
|
|
177
|
+
namespace = `app.dataSources.${dsName}.entities`;
|
|
178
|
+
break;
|
|
179
|
+
case 'View':
|
|
180
|
+
// View 中的变量和逻辑,namespace 为空
|
|
181
|
+
namespace = '';
|
|
182
|
+
break;
|
|
183
|
+
default:
|
|
184
|
+
namespace = '';
|
|
185
|
+
}
|
|
186
|
+
// 检查是否已存在同名引用
|
|
187
|
+
const existingDef = directory.definitions?.find((def) => def.name === node.name && (scope === 'View' ? def.referredConcept === node.concept : true));
|
|
188
|
+
if (existingDef) {
|
|
189
|
+
// 更新现有引用的属性
|
|
190
|
+
existingDef.referredConcept = node.concept;
|
|
191
|
+
existingDef.namespace = namespace;
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
// 使用 Directory 的 addReferredDefinition 方法添加新引用
|
|
195
|
+
directory.addReferredDefinition({
|
|
196
|
+
name: node.name,
|
|
197
|
+
referredConcept: node.concept,
|
|
198
|
+
namespace: namespace,
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
exports.addNodeToDirectory = addNodeToDirectory;
|
|
203
|
+
/**
|
|
204
|
+
* 处理节点的 directory 信息(统一方法)
|
|
205
|
+
* 如果节点有 _directoryInfo 临时属性,则在对应的父目录中创建或查找目录,并添加引用
|
|
206
|
+
*
|
|
207
|
+
* @param appOrView - NASL 应用实例或 View 实例
|
|
208
|
+
* @param node - 要处理的节点
|
|
209
|
+
* @param scope - 目录范围(Logic、Enum、Structure、Entity、View)
|
|
210
|
+
*/
|
|
211
|
+
function handleDirectory(appOrView, node, scope) {
|
|
212
|
+
// 从临时属性 _directoryInfo 读取 directory 信息
|
|
213
|
+
const directoryInfo = node._directoryInfo;
|
|
214
|
+
if (directoryInfo) {
|
|
215
|
+
try {
|
|
216
|
+
const directory = findOrCreateDirectory(appOrView, directoryInfo, scope);
|
|
217
|
+
addNodeToDirectory(directory, node, scope);
|
|
218
|
+
// 处理完后删除节点上的临时属性,避免序列化时包含
|
|
219
|
+
delete node._directoryInfo;
|
|
220
|
+
}
|
|
221
|
+
catch (error) {
|
|
222
|
+
// 目录处理失败时记录错误但不中断流程
|
|
223
|
+
const scopeDesc = scope === 'View' ? 'View directory' : 'directory';
|
|
224
|
+
console.warn(`处理 ${scopeDesc} 失败: ${error.message}`, node.name);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
exports.handleDirectory = handleDirectory;
|
|
229
|
+
//# sourceMappingURL=transform2Directory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform2Directory.js","sourceRoot":"","sources":["../../../../src/natural/transforms/utils/transform2Directory.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,6 +43,22 @@ export interface ParseViewState extends ParseLogicState {
|
|
|
43
43
|
* @param babelNode2 babel节点,用于便捷生成代码片段信息
|
|
44
44
|
*/
|
|
45
45
|
export declare function throwError(state: ParseNaturalTSState, message: string, babelNode?: babelTypes.Node | string, babelNode2?: babelTypes.Node | string): undefined;
|
|
46
|
+
/**
|
|
47
|
+
* 检查语句是否是指定名称的 $ 调用表达式(装饰器调用)
|
|
48
|
+
* @param statement - 要检查的语句
|
|
49
|
+
* @param decoratorName - 装饰器名称,如 'Logic', 'View', 'Variable'
|
|
50
|
+
* @returns 如果匹配返回 CallExpression,否则返回 undefined
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* // 检查是否是 $Logic 调用
|
|
55
|
+
* const decorator = getDecoratorCall(prevStatement, 'Logic');
|
|
56
|
+
* if (decorator) {
|
|
57
|
+
* // 处理装饰器
|
|
58
|
+
* }
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export declare function getDecoratorCall(statement: babelTypes.Statement | undefined, decoratorName: string): babelTypes.CallExpression | undefined;
|
|
46
62
|
/**
|
|
47
63
|
* 抛出警告,在 DEBUG 模式下不抛出这类错误
|
|
48
64
|
* @param message 错误信息
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/natural/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAI5C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AAG3C,OAAO,EACL,OAAO,EACP,MAAM,EACN,cAAc,EACd,cAAc,EACd,SAAS,EACV,MAAM,aAAa,CAAC;AAGrB,wBAAgB,KAAK,YAEpB;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM,CAAC;AAExE,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAGD,MAAM,MAAM,aAAa,GAAG,GAAG,CAC7B,MAAM,EACN;IACE,SAAS,EAAE,GAAG,CAAC;IACf,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC5B,CACF,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,IAAI,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;IAC1D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,cAAc,GAAG,YAAY,GAAG,aAAa,CAAC;IAC1D,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;CAClC;AAED,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,IAAI,GAAG,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,IAAI,GAAG,MAAM,GAAG,SAAS,CAwC9J;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,IAAI,GAAG,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,IAAI,GAAG,MAAM,QAYxH;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,yDAWxC;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,UAc/F;AAID,eAAO,MAAM,QAAQ,SAAU,GAAG,aAAa,MAAM,QAAQ,MAAM;;;CAoBlE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/natural/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAI5C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AAG3C,OAAO,EACL,OAAO,EACP,MAAM,EACN,cAAc,EACd,cAAc,EACd,SAAS,EACV,MAAM,aAAa,CAAC;AAGrB,wBAAgB,KAAK,YAEpB;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM,CAAC;AAExE,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAGD,MAAM,MAAM,aAAa,GAAG,GAAG,CAC7B,MAAM,EACN;IACE,SAAS,EAAE,GAAG,CAAC;IACf,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC5B,CACF,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,IAAI,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;IAC1D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,cAAc,GAAG,YAAY,GAAG,aAAa,CAAC;IAC1D,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;CAClC;AAED,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,IAAI,GAAG,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,IAAI,GAAG,MAAM,GAAG,SAAS,CAwC9J;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,UAAU,CAAC,SAAS,GAAG,SAAS,EAC3C,aAAa,EAAE,MAAM,GACpB,UAAU,CAAC,cAAc,GAAG,SAAS,CAQvC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,IAAI,GAAG,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,IAAI,GAAG,MAAM,QAYxH;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,yDAWxC;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,UAc/F;AAID,eAAO,MAAM,QAAQ,SAAU,GAAG,aAAa,MAAM,QAAQ,MAAM;;;CAoBlE,CAAC"}
|