@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.
Files changed (70) hide show
  1. package/out/natural/exports/nasl2Files.d.ts.map +1 -1
  2. package/out/natural/exports/nasl2Files.js +98 -1
  3. package/out/natural/exports/nasl2Files.js.map +1 -1
  4. package/out/natural/exports/transform2BatchActions.d.ts +2 -0
  5. package/out/natural/exports/transform2BatchActions.d.ts.map +1 -1
  6. package/out/natural/exports/transform2BatchActions.js +740 -87
  7. package/out/natural/exports/transform2BatchActions.js.map +1 -1
  8. package/out/natural/parser/parseNaturalTS.d.ts.map +1 -1
  9. package/out/natural/parser/parseNaturalTS.js +81 -24
  10. package/out/natural/parser/parseNaturalTS.js.map +1 -1
  11. package/out/natural/parser/parseNaturalTSXView.d.ts.map +1 -1
  12. package/out/natural/parser/parseNaturalTSXView.js +32 -77
  13. package/out/natural/parser/parseNaturalTSXView.js.map +1 -1
  14. package/out/natural/transforms/checker/checkLcapEntity.d.ts +16 -0
  15. package/out/natural/transforms/checker/checkLcapEntity.d.ts.map +1 -0
  16. package/out/natural/transforms/checker/checkLcapEntity.js +334 -0
  17. package/out/natural/transforms/checker/checkLcapEntity.js.map +1 -0
  18. package/out/natural/transforms/checker/checkValidationCalleeName.d.ts +3 -0
  19. package/out/natural/transforms/checker/checkValidationCalleeName.d.ts.map +1 -0
  20. package/out/natural/transforms/checker/checkValidationCalleeName.js +88 -0
  21. package/out/natural/transforms/checker/checkValidationCalleeName.js.map +1 -0
  22. package/out/natural/transforms/checker/index.d.ts +2 -0
  23. package/out/natural/transforms/checker/index.d.ts.map +1 -1
  24. package/out/natural/transforms/checker/index.js +5 -1
  25. package/out/natural/transforms/checker/index.js.map +1 -1
  26. package/out/natural/transforms/transform2Entity.d.ts.map +1 -1
  27. package/out/natural/transforms/transform2Entity.js +3 -2
  28. package/out/natural/transforms/transform2Entity.js.map +1 -1
  29. package/out/natural/transforms/transform2GlobalLogicDeclaration.d.ts +1 -1
  30. package/out/natural/transforms/transform2GlobalLogicDeclaration.d.ts.map +1 -1
  31. package/out/natural/transforms/transform2GlobalLogicDeclaration.js +15 -1
  32. package/out/natural/transforms/transform2GlobalLogicDeclaration.js.map +1 -1
  33. package/out/natural/transforms/transform2Logic.d.ts +3 -3
  34. package/out/natural/transforms/transform2Logic.d.ts.map +1 -1
  35. package/out/natural/transforms/transform2Logic.js +34 -7
  36. package/out/natural/transforms/transform2Logic.js.map +1 -1
  37. package/out/natural/transforms/transform2LogicItem.d.ts +4 -0
  38. package/out/natural/transforms/transform2LogicItem.d.ts.map +1 -1
  39. package/out/natural/transforms/transform2LogicItem.js +11 -2
  40. package/out/natural/transforms/transform2LogicItem.js.map +1 -1
  41. package/out/natural/transforms/transform2ValidationRule.d.ts.map +1 -1
  42. package/out/natural/transforms/transform2ValidationRule.js +2 -3
  43. package/out/natural/transforms/transform2ValidationRule.js.map +1 -1
  44. package/out/natural/transforms/transform2Variable.d.ts +3 -3
  45. package/out/natural/transforms/transform2Variable.d.ts.map +1 -1
  46. package/out/natural/transforms/transform2Variable.js +32 -5
  47. package/out/natural/transforms/transform2Variable.js.map +1 -1
  48. package/out/natural/transforms/utils/parseDecorator.d.ts +27 -3
  49. package/out/natural/transforms/utils/parseDecorator.d.ts.map +1 -1
  50. package/out/natural/transforms/utils/parseDecorator.js +61 -6
  51. package/out/natural/transforms/utils/parseDecorator.js.map +1 -1
  52. package/out/natural/transforms/utils/transform2Directory.d.ts +59 -0
  53. package/out/natural/transforms/utils/transform2Directory.d.ts.map +1 -0
  54. package/out/natural/transforms/utils/transform2Directory.js +229 -0
  55. package/out/natural/transforms/utils/transform2Directory.js.map +1 -0
  56. package/out/natural/utils/index.d.ts +16 -0
  57. package/out/natural/utils/index.d.ts.map +1 -1
  58. package/out/natural/utils/index.js +26 -1
  59. package/out/natural/utils/index.js.map +1 -1
  60. package/out/natural/utils/nasl-file-types.d.ts +1 -1
  61. package/out/natural/utils/nasl-file-types.d.ts.map +1 -1
  62. package/out/natural/utils/nasl-file-types.js +7 -0
  63. package/out/natural/utils/nasl-file-types.js.map +1 -1
  64. package/out/server/extendBaseNode.d.ts.map +1 -1
  65. package/out/server/extendBaseNode.js +3 -0
  66. package/out/server/extendBaseNode.js.map +1 -1
  67. package/out/server/naslServer.d.ts.map +1 -1
  68. package/out/server/naslServer.js +7 -4
  69. package/out/server/naslServer.js.map +1 -1
  70. 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
- function transform2Variables(node, options) {
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
- variable.description = (0, utils_1.fetchFromComments)(node.leadingComments);
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
- variable.description = (0, utils_1.fetchFromComments)(node.leadingComments);
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":"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"}
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;AAGpG;;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,uBA8BtK;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,CAMxF,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,CAMpE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,gBAAgB,CAAC,OAAO,CAMzD,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,CAiCN"}
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
- value = item.value.value;
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
- target[key] = decoratorProps[key];
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":"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"}
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"}