@lcap/nasl 2.14.0-beta.5 → 2.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/out/automate/template/process.js +10298 -9487
  2. package/out/automate/template/process.js.map +1 -1
  3. package/out/concepts/AnonymousFunction__.d.ts +170 -0
  4. package/out/concepts/AnonymousFunction__.js +439 -0
  5. package/out/concepts/AnonymousFunction__.js.map +1 -0
  6. package/out/concepts/AssignmentLine__.d.ts +40 -0
  7. package/out/concepts/AssignmentLine__.js +109 -0
  8. package/out/concepts/AssignmentLine__.js.map +1 -0
  9. package/out/concepts/BatchAssignment__.d.ts +248 -0
  10. package/out/concepts/BatchAssignment__.js +742 -0
  11. package/out/concepts/BatchAssignment__.js.map +1 -0
  12. package/out/concepts/BindDirective__.js +2 -2
  13. package/out/concepts/BindDirective__.js.map +1 -1
  14. package/out/concepts/BindStyle__.d.ts +126 -0
  15. package/out/concepts/BindStyle__.js +233 -0
  16. package/out/concepts/BindStyle__.js.map +1 -0
  17. package/out/concepts/ConstructArgument__.d.ts +40 -0
  18. package/out/concepts/ConstructArgument__.js +108 -0
  19. package/out/concepts/ConstructArgument__.js.map +1 -0
  20. package/out/concepts/Construct__.d.ts +189 -0
  21. package/out/concepts/Construct__.js +340 -0
  22. package/out/concepts/Construct__.js.map +1 -0
  23. package/out/concepts/Interface__.d.ts +1 -0
  24. package/out/concepts/Interface__.js +17 -5
  25. package/out/concepts/Interface__.js.map +1 -1
  26. package/out/concepts/MatchCase__.d.ts +256 -0
  27. package/out/concepts/MatchCase__.js +584 -0
  28. package/out/concepts/MatchCase__.js.map +1 -0
  29. package/out/concepts/Match__.d.ts +117 -0
  30. package/out/concepts/Match__.js +434 -0
  31. package/out/concepts/Match__.js.map +1 -0
  32. package/out/concepts/OqlQueryComponent__.d.ts +73 -0
  33. package/out/concepts/OqlQueryComponent__.js +395 -0
  34. package/out/concepts/OqlQueryComponent__.js.map +1 -0
  35. package/out/concepts/ProcessElement__.js +6 -4
  36. package/out/concepts/ProcessElement__.js.map +1 -1
  37. package/out/concepts/SelectMembers__.d.ts +141 -0
  38. package/out/concepts/SelectMembers__.js +290 -0
  39. package/out/concepts/SelectMembers__.js.map +1 -0
  40. package/out/concepts/SqlQueryComponent__.d.ts +4 -0
  41. package/out/concepts/SqlQueryComponent__.js +144 -2
  42. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  43. package/out/concepts/Variable__.js +0 -1
  44. package/out/concepts/Variable__.js.map +1 -1
  45. package/out/concepts/ViewElement__.js +10 -1
  46. package/out/concepts/ViewElement__.js.map +1 -1
  47. package/out/generator/genMetaData.d.ts +10 -1
  48. package/out/generator/genMetaData.js +28 -34
  49. package/out/generator/genMetaData.js.map +1 -1
  50. package/out/server/extendBaseNode.js +17 -4
  51. package/out/server/extendBaseNode.js.map +1 -1
  52. package/out/server/naslServer.js +14 -0
  53. package/out/server/naslServer.js.map +1 -1
  54. package/out/server/stdlib/nasl.annotation.d.ts +4 -0
  55. package/out/server/stdlib/nasl.annotation.js +1 -0
  56. package/out/server/stdlib/nasl.annotation.js.map +1 -0
  57. package/out/server/stdlib/nasl.auth.d.ts +30 -0
  58. package/out/server/stdlib/nasl.auth.js +1 -0
  59. package/out/server/stdlib/nasl.auth.js.map +1 -0
  60. package/out/server/stdlib/nasl.browser.d.ts +5 -0
  61. package/out/server/stdlib/nasl.browser.js +1 -0
  62. package/out/server/stdlib/nasl.browser.js.map +1 -0
  63. package/out/server/stdlib/nasl.collection.d.ts +22 -0
  64. package/out/server/stdlib/nasl.collection.js +1 -0
  65. package/out/server/stdlib/nasl.collection.js.map +1 -0
  66. package/out/server/stdlib/nasl.configuration.d.ts +3 -0
  67. package/out/server/stdlib/nasl.configuration.js +1 -0
  68. package/out/server/stdlib/nasl.configuration.js.map +1 -0
  69. package/out/server/stdlib/nasl.core.d.ts +104 -0
  70. package/out/server/stdlib/nasl.core.js +1 -0
  71. package/out/server/stdlib/nasl.core.js.map +1 -0
  72. package/out/server/stdlib/nasl.interface.d.ts +7 -0
  73. package/out/server/stdlib/nasl.interface.js +1 -0
  74. package/out/server/stdlib/nasl.interface.js.map +1 -0
  75. package/out/server/stdlib/nasl.langUtil.d.ts +28 -0
  76. package/out/server/stdlib/nasl.langUtil.js +1 -0
  77. package/out/server/stdlib/nasl.langUtil.js.map +1 -0
  78. package/out/server/stdlib/nasl.process.d.ts +50 -0
  79. package/out/server/stdlib/nasl.process.js +1 -0
  80. package/out/server/stdlib/nasl.process.js.map +1 -0
  81. package/out/server/stdlib/nasl.ui.d.ts +186 -0
  82. package/out/server/stdlib/nasl.ui.definition.d.ts +1072 -0
  83. package/out/server/stdlib/nasl.ui.definition.js +632 -0
  84. package/out/server/stdlib/nasl.ui.definition.js.map +1 -0
  85. package/out/server/stdlib/nasl.ui.js +1 -0
  86. package/out/server/stdlib/nasl.ui.js.map +1 -0
  87. package/out/server/stdlib/nasl.util.d.ts +74 -0
  88. package/out/server/stdlib/nasl.util.js +4 -0
  89. package/out/server/stdlib/nasl.util.js.map +1 -0
  90. package/out/server/stdlib/nasl.validation.d.ts +32 -0
  91. package/out/server/stdlib/nasl.validation.js +1 -0
  92. package/out/server/stdlib/nasl.validation.js.map +1 -0
  93. package/out/server/translator.js +4 -0
  94. package/out/server/translator.js.map +1 -1
  95. package/out/service/logic/api.d.ts +9 -0
  96. package/out/service/logic/api.js +11 -0
  97. package/out/service/logic/api.js.map +1 -0
  98. package/out/service/logic/index.d.ts +2 -0
  99. package/out/service/logic/index.js +10 -0
  100. package/out/service/logic/index.js.map +1 -0
  101. package/out/templator/genCreateBlock.js +1 -1
  102. package/out/templator/genCreateBlock.js.map +1 -1
  103. package/out/templator/genCurdEditMultipleKeyBlock.js +4 -5
  104. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  105. package/out/templator/genCurdMultipleKeyBlock.js +4 -4
  106. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  107. package/out/templator/genEditTableBlock.js +5 -3
  108. package/out/templator/genEditTableBlock.js.map +1 -1
  109. package/out/templator/genGetBlock.js +3 -2
  110. package/out/templator/genGetBlock.js.map +1 -1
  111. package/out/templator/genTableBlock.js +4 -2
  112. package/out/templator/genTableBlock.js.map +1 -1
  113. package/out/templator/genUpdateBlock.js +1 -1
  114. package/out/templator/genUpdateBlock.js.map +1 -1
  115. package/out/templator/sql-parser/index.d.ts +1 -0
  116. package/out/templator/sql-parser/index.js +228 -0
  117. package/out/templator/sql-parser/index.js.map +1 -0
  118. package/out/templator/sql-parser/parser.js +26664 -0
  119. package/out/templator/sql-parser/parser.js.map +1 -0
  120. package/package.json +1 -1
  121. package/src/concepts/BindDirective__.ts +2 -17
  122. package/src/concepts/Interface__.ts +31 -16
  123. package/src/concepts/ProcessElement__.ts +8 -6
  124. package/src/concepts/SqlQueryComponent__.ts +143 -2
  125. package/src/concepts/Variable__.ts +0 -1
  126. package/src/concepts/ViewElement__.ts +12 -20
  127. package/src/generator/genMetaData.ts +55 -37
  128. package/src/server/extendBaseNode.ts +16 -4
  129. package/src/server/naslServer.ts +14 -0
  130. package/src/server/translator.ts +4 -0
  131. package/src/templator/genCreateBlock.ts +1 -1
  132. package/src/templator/genCurdEditMultipleKeyBlock.ts +4 -7
  133. package/src/templator/genCurdMultipleKeyBlock.ts +4 -4
  134. package/src/templator/genEditTableBlock.ts +5 -3
  135. package/src/templator/genGetBlock.ts +3 -2
  136. package/src/templator/genTableBlock.ts +4 -2
  137. package/src/templator/genUpdateBlock.ts +1 -1
@@ -0,0 +1,117 @@
1
+ import { TranslatorState } from '../translator';
2
+ import TypeAnnotation from './TypeAnnotation__';
3
+ import { EventPayload, Params } from '../common/EventEmitter';
4
+ import LogicItem from './LogicItem__';
5
+ import MatchCase from './MatchCase__';
6
+ /**
7
+ * 匹配
8
+ */
9
+ export declare class Match extends LogicItem {
10
+ /**
11
+ * 产品概念
12
+ */
13
+ concept: 'Match';
14
+ /**
15
+ * 逻辑项
16
+ */
17
+ expression: LogicItem;
18
+ /**
19
+ * 是否表达式形态
20
+ */
21
+ isExpression: boolean;
22
+ /**
23
+ * 匹配分支情况列表
24
+ */
25
+ cases: Array<MatchCase>;
26
+ /**
27
+ * @param source 需要合并的部分参数
28
+ */
29
+ constructor(source?: Partial<Match>);
30
+ static from(source: any, parentNode?: any, parentKey?: string): Match;
31
+ /**
32
+ * 插入匹配分支情况
33
+ * @internal
34
+ * @param matchCaseOptions 匹配分支情况参数
35
+ */
36
+ _insertMatchCaseAt(matchCaseOptions: Partial<MatchCase>, index: number): MatchCase;
37
+ /**
38
+ * 插入匹配分支情况
39
+ * @internal
40
+ * @param matchCase 已有的匹配分支情况实例
41
+ */
42
+ _insertMatchCaseAt(matchCase: MatchCase, index: number): MatchCase;
43
+ /**
44
+ * 插入匹配分支情况
45
+ * @param matchCaseOptions 匹配分支情况参数
46
+ */
47
+ insertMatchCaseAt(matchCaseOptions: Partial<MatchCase>, index: number): MatchCase;
48
+ /**
49
+ * 插入匹配分支情况
50
+ * @param matchCase 已有的匹配分支情况实例
51
+ */
52
+ insertMatchCaseAt(matchCase: MatchCase, index: number): MatchCase;
53
+ /**
54
+ * 添加匹配分支情况
55
+ * @internal
56
+ * @param matchCaseOptions 匹配分支情况参数
57
+ */
58
+ _addMatchCase(matchCaseOptions: Partial<MatchCase>): MatchCase;
59
+ /**
60
+ * 添加匹配分支情况
61
+ * @internal
62
+ * @param matchCase 已有的匹配分支情况实例
63
+ */
64
+ _addMatchCase(matchCase: MatchCase): MatchCase;
65
+ /**
66
+ * 添加匹配分支情况
67
+ * @param matchCaseOptions 匹配分支情况参数
68
+ */
69
+ addMatchCase(matchCaseOptions: Partial<MatchCase>): MatchCase;
70
+ /**
71
+ * 添加匹配分支情况
72
+ * @param matchCase 已有的匹配分支情况实例
73
+ */
74
+ addMatchCase(matchCase: MatchCase): MatchCase;
75
+ /**
76
+ * 删除逻辑项
77
+ * @param name 逻辑项名称
78
+ */
79
+ removeExpression(name: string): void;
80
+ /**
81
+ * 删除逻辑项
82
+ * @param expression 已有的逻辑项实例
83
+ */
84
+ removeExpression(expression: LogicItem): void;
85
+ /**
86
+ * 删除匹配分支情况
87
+ * @param matchCase 已有的匹配分支情况实例
88
+ */
89
+ removeMatchCaseInCases(matchCase: MatchCase): void;
90
+ __removeLogicItem(logicItem: LogicItem): Params;
91
+ enumerableItems: Array<LogicItem | TypeAnnotation>;
92
+ get isEnumerable(): boolean;
93
+ cacheStatus(): Promise<void>;
94
+ /**
95
+ * 是否允许新建case
96
+ */
97
+ get canAddCase(): boolean;
98
+ getEnumerableItems(typeAnnotation?: TypeAnnotation): Promise<TypeAnnotation[] | LogicItem[]>;
99
+ /**
100
+ * 设置逻辑项
101
+ */
102
+ setExpression(expression: LogicItem): void;
103
+ setExpressionWitchCase(expression: LogicItem): Promise<void>;
104
+ static getDefaultOptions(): {
105
+ label: string;
106
+ };
107
+ isTypeMatching(): Promise<boolean>;
108
+ get inViewName(): string;
109
+ getViewMatchExpressionBuilder(): string;
110
+ getInViewMethod(state?: TranslatorState): string;
111
+ onChange($event?: EventPayload): void;
112
+ toVue(state?: TranslatorState): string;
113
+ toUI(state?: TranslatorState): string;
114
+ toJS(state?: TranslatorState): string;
115
+ toEmbeddedTS(state?: TranslatorState): string;
116
+ }
117
+ export default Match;
@@ -0,0 +1,434 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ var Match_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.Match = void 0;
14
+ const translator_1 = require("../translator");
15
+ const TypeAnnotation__1 = __importDefault(require("./TypeAnnotation__"));
16
+ const BooleanLiteral__1 = __importDefault(require("./BooleanLiteral__"));
17
+ const MemberExpression__1 = __importDefault(require("./MemberExpression__"));
18
+ const getMemberIdentifier_1 = require("../server/getMemberIdentifier");
19
+ const decorators_1 = require("../decorators");
20
+ const classMap_1 = __importDefault(require("../common/classMap"));
21
+ const LogicItem__1 = __importDefault(require("./LogicItem__"));
22
+ const MatchCase__1 = __importDefault(require("./MatchCase__"));
23
+ /**
24
+ * 匹配
25
+ */
26
+ let Match = Match_1 = class Match extends LogicItem__1.default {
27
+ /**
28
+ * 产品概念
29
+ */
30
+ concept = 'Match';
31
+ /**
32
+ * 逻辑项
33
+ */
34
+ expression = undefined;
35
+ /**
36
+ * 是否表达式形态
37
+ */
38
+ isExpression = false;
39
+ /**
40
+ * 匹配分支情况列表
41
+ */
42
+ cases = [];
43
+ /**
44
+ * @param source 需要合并的部分参数
45
+ */
46
+ constructor(source) {
47
+ source = Object.assign({}, Match_1.getDefaultOptions(), source);
48
+ super(source);
49
+ super.subConstructor(source);
50
+ }
51
+ static from(source, parentNode, parentKey) {
52
+ return super.from(source, parentNode, parentKey);
53
+ }
54
+ _insertMatchCaseAt(options, index) {
55
+ const matchCaseOptions = {};
56
+ const relationOptions = { parentNode: this, parentKey: 'cases' };
57
+ let matchCase;
58
+ if (options instanceof MatchCase__1.default) {
59
+ options.ensureDelete(); // 同一实例不支持多处存在
60
+ matchCase = options;
61
+ Object.assign(matchCase, relationOptions);
62
+ }
63
+ else {
64
+ matchCase = MatchCase__1.default.from({
65
+ ...matchCaseOptions,
66
+ ...options,
67
+ }, this, 'cases');
68
+ }
69
+ this.cases.splice(index, 0, matchCase);
70
+ return matchCase;
71
+ }
72
+ insertMatchCaseAt(options, index) {
73
+ const node = this._insertMatchCaseAt(options, index);
74
+ node.create({
75
+ index,
76
+ parentNode: this,
77
+ parentKey: 'cases',
78
+ });
79
+ return node;
80
+ }
81
+ _addMatchCase(options) {
82
+ const index = this.cases.length;
83
+ return this._insertMatchCaseAt(options, index);
84
+ }
85
+ addMatchCase(options) {
86
+ const node = this._addMatchCase(options);
87
+ const index = this.cases.indexOf(node);
88
+ node.create({
89
+ index,
90
+ parentNode: this,
91
+ parentKey: 'cases',
92
+ });
93
+ return node;
94
+ }
95
+ removeExpression(options) {
96
+ let expression;
97
+ if (typeof options === 'string') {
98
+ expression = this.expression;
99
+ if (!expression) {
100
+ throw new Error('找不到逻辑项 ' + options);
101
+ }
102
+ }
103
+ else {
104
+ expression = options;
105
+ }
106
+ return expression.delete();
107
+ }
108
+ removeMatchCaseInCases(options) {
109
+ const matchCase = options;
110
+ return matchCase.delete();
111
+ }
112
+ __removeLogicItem(logicItem) {
113
+ const parentKey = logicItem.parentKey;
114
+ const params = {
115
+ parentNode: this,
116
+ parentKey,
117
+ index: -1,
118
+ object: null,
119
+ oldObject: logicItem,
120
+ };
121
+ if (parentKey) {
122
+ params.parentKey = parentKey;
123
+ if (Array.isArray(this[parentKey])) {
124
+ const index = this[parentKey].indexOf(logicItem);
125
+ ~index && this[parentKey].splice(index, 1);
126
+ params.index = index;
127
+ }
128
+ else if (this[parentKey] === logicItem) {
129
+ params.index = 0;
130
+ this[parentKey] = undefined;
131
+ }
132
+ }
133
+ return params;
134
+ }
135
+ //================================================================================
136
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
137
+ // 自动生成的代码已结束。下面可以手动编写。
138
+ //================================================================================
139
+ enumerableItems;
140
+ get isEnumerable() {
141
+ return !!this.enumerableItems?.length;
142
+ }
143
+ async cacheStatus() {
144
+ this.enumerableItems = await this.getEnumerableItems();
145
+ }
146
+ /**
147
+ * 是否允许新建case
148
+ */
149
+ get canAddCase() {
150
+ const cases = this?.cases;
151
+ if (Array.isArray(cases) && cases.length > 1) {
152
+ const enumerableItems = this.enumerableItems;
153
+ if (Array.isArray(enumerableItems)) {
154
+ const map = {};
155
+ cases.forEach((caseItem) => {
156
+ const { patterns } = caseItem || {};
157
+ if (Array.isArray(patterns)) {
158
+ patterns.forEach((pattern) => {
159
+ if (pattern instanceof TypeAnnotation__1.default) {
160
+ const patternTypeKey = pattern.typeKey;
161
+ map[patternTypeKey] = true;
162
+ }
163
+ else if (pattern instanceof MemberExpression__1.default || pattern instanceof BooleanLiteral__1.default) {
164
+ const patternValue = pattern.getValue();
165
+ map[patternValue] = true;
166
+ }
167
+ });
168
+ }
169
+ });
170
+ const enumerableKeys = Object.keys(map);
171
+ if (enumerableKeys.length === enumerableItems.length) {
172
+ return false;
173
+ }
174
+ }
175
+ }
176
+ return true;
177
+ }
178
+ // 获取可枚举项
179
+ async getEnumerableItems(typeAnnotation) {
180
+ const expression = this.expression;
181
+ let currTypeAnnotation = typeAnnotation;
182
+ if (!currTypeAnnotation) {
183
+ currTypeAnnotation = await expression?.getCurrentTypeAnnotation();
184
+ }
185
+ const { typeKind, typeNamespace, typeName, typeArguments } = currTypeAnnotation || {};
186
+ if (typeKind === 'union' && Array.isArray(typeArguments)) {
187
+ return typeArguments.map((typeArg) => {
188
+ let typeArgJson = typeArg;
189
+ if (typeArg instanceof TypeAnnotation__1.default) {
190
+ typeArgJson = typeArg.toJSON();
191
+ }
192
+ return new TypeAnnotation__1.default(typeArgJson);
193
+ });
194
+ }
195
+ else if (typeKind === 'reference') {
196
+ const nameArr = [typeName];
197
+ if (typeNamespace) {
198
+ nameArr.unshift(typeNamespace);
199
+ }
200
+ const typeNode = this.app.findNodeByCompleteName(nameArr.join('.')) || {};
201
+ if (typeNode.concept === 'Enum') {
202
+ const enums = (0, getMemberIdentifier_1.formatEnums)([typeNode]);
203
+ const { children } = enums?.[0] || {};
204
+ if (Array.isArray(children)) {
205
+ return children.map((child) => child?.expression);
206
+ }
207
+ }
208
+ }
209
+ else if (typeKind === 'primitive' && typeNamespace === 'nasl.core' && typeName === 'Boolean') {
210
+ return [
211
+ new BooleanLiteral__1.default({
212
+ value: 'true',
213
+ }),
214
+ new BooleanLiteral__1.default({
215
+ value: 'false',
216
+ }),
217
+ ];
218
+ }
219
+ }
220
+ /**
221
+ * 设置逻辑项
222
+ */
223
+ setExpression(expression) {
224
+ if (expression) {
225
+ expression._delete();
226
+ const relationOptions = { parentNode: this, parentKey: 'expression' };
227
+ Object.assign(expression, relationOptions);
228
+ }
229
+ const object = {
230
+ expression,
231
+ };
232
+ this.update({
233
+ ...object,
234
+ });
235
+ }
236
+ // 设置 expression ,如果 expression 是可枚举类型,加上默认匹配条件
237
+ async setExpressionWitchCase(expression) {
238
+ this.app.emit('collect:start', {
239
+ actionMsg: `修改${this?.name || this?.label || this?.constructor?.nodeTitle}`,
240
+ });
241
+ this.setExpression(expression);
242
+ let cases = [];
243
+ let isMatchedTypeEnumable = false;
244
+ if (expression) {
245
+ cases = [new MatchCase__1.default()];
246
+ const enumerableItems = await this.getEnumerableItems();
247
+ if (Array.isArray(enumerableItems) && enumerableItems.length) {
248
+ isMatchedTypeEnumable = true;
249
+ cases = enumerableItems.map((enumerableItem) => new MatchCase__1.default({
250
+ patterns: [enumerableItem],
251
+ isMatchedTypeEnumable,
252
+ }));
253
+ }
254
+ }
255
+ const bodys = [];
256
+ if (Array.isArray(this.cases) && this.cases.length) {
257
+ this.cases.forEach((caseItem) => {
258
+ const { body } = caseItem || {};
259
+ if (Array.isArray(body) && body.length) {
260
+ bodys.push({
261
+ body,
262
+ isMatchedTypeEnumable: expression ? isMatchedTypeEnumable : true,
263
+ });
264
+ }
265
+ });
266
+ bodys.forEach(({ body, isMatchedTypeEnumable }, index) => {
267
+ let caseItem = cases[index];
268
+ if (!caseItem) {
269
+ caseItem = new MatchCase__1.default({
270
+ isMatchedTypeEnumable,
271
+ });
272
+ cases.push(caseItem);
273
+ }
274
+ caseItem.update({
275
+ body,
276
+ });
277
+ });
278
+ }
279
+ if (cases.length) {
280
+ cases.push(new MatchCase__1.default());
281
+ }
282
+ this.update({
283
+ cases,
284
+ });
285
+ this.app.emit('collect:end');
286
+ }
287
+ static getDefaultOptions() {
288
+ return {
289
+ label: '匹配',
290
+ };
291
+ }
292
+ async isTypeMatching() {
293
+ if (this.expression) {
294
+ const typeAnnotation = await this.expression.getCurrentTypeAnnotation();
295
+ const { typeKind, typeArguments } = typeAnnotation || {};
296
+ if (typeKind === 'union' && Array.isArray(typeArguments)) {
297
+ return true;
298
+ }
299
+ }
300
+ return false;
301
+ }
302
+ // 获取在页面中的名字
303
+ get inViewName() {
304
+ const nameList = [];
305
+ let node = this;
306
+ while (node) {
307
+ if (node === this) {
308
+ nameList.unshift('viewMatchExpression');
309
+ }
310
+ else {
311
+ nameList.unshift(node.name);
312
+ }
313
+ if (node.concept === 'ViewElement') {
314
+ node = null;
315
+ }
316
+ else {
317
+ nameList.unshift(node.parentKey);
318
+ node = node.parentNode;
319
+ }
320
+ }
321
+ return nameList.join('_');
322
+ }
323
+ getViewMatchExpressionBuilder() {
324
+ return `gen${this.inViewName}`;
325
+ }
326
+ getInViewMethod(state) {
327
+ let code = '';
328
+ code += `async ${this.getViewMatchExpressionBuilder()} () {\n`;
329
+ code += `this.${this.inViewName} = `;
330
+ code += this.toJS(state);
331
+ code += `;\n`;
332
+ code += '}';
333
+ return code;
334
+ }
335
+ onChange($event) {
336
+ const { action, object, eventList } = $event || {};
337
+ // expression修改时,通知tsserver,让tsserver重新生成ts文件,为了后续能获取expression的类型
338
+ if (action === 'update' && object.hasOwnProperty('expression')) {
339
+ translator_1.embeddedTSEmitter.emit('change', {
340
+ value: eventList,
341
+ });
342
+ }
343
+ this.emit('change', $event);
344
+ }
345
+ toVue(state) {
346
+ if (state?.finalCode === false) {
347
+ return this.toUI();
348
+ }
349
+ else {
350
+ return this.inViewName;
351
+ }
352
+ }
353
+ toUI(state) {
354
+ let code = '匹配 ';
355
+ if (this.expression) {
356
+ code += this.expression.toUI?.();
357
+ }
358
+ if (Array.isArray(this.cases)) {
359
+ code += ' { ';
360
+ this.cases.forEach((item, index) => {
361
+ code += item?.toUI?.();
362
+ });
363
+ code += '}';
364
+ }
365
+ return code;
366
+ }
367
+ toJS(state) {
368
+ let code = 'await (async () => {\n';
369
+ if (this.expression && Array.isArray(this.cases)) {
370
+ this.cases.forEach((item, index) => {
371
+ code += item?.toJS?.(this.expression, index, this.cases.length);
372
+ });
373
+ }
374
+ code += `})()`;
375
+ return code;
376
+ }
377
+ toEmbeddedTS(state) {
378
+ let code = '';
379
+ if (this.parentNode.concept === 'Logic') {
380
+ code += '\n';
381
+ }
382
+ code += (0, translator_1.indent)((state?.tabSize || 0));
383
+ code += '(() => { \n';
384
+ let parentCode;
385
+ if (this.expression) {
386
+ code += (0, translator_1.indent)((state?.tabSize || 0));
387
+ code += parentCode = this.expression.toEmbeddedTS((0, translator_1.shiftState)(state, code));
388
+ code += ';\n';
389
+ }
390
+ else {
391
+ code += '__IDENTIFIER__;\n';
392
+ }
393
+ code += (0, translator_1.indent)((state?.tabSize + 1 || 0));
394
+ code += ' function __MatchExpressionFuntion() {\n';
395
+ // 最后一项是else
396
+ this.cases.forEach((item, index) => {
397
+ // 如果是最后一项
398
+ code += item.toEmbeddedTS((0, translator_1.shiftState)(state, code, { tabSize: (state?.tabSize || 0) }), index, parentCode);
399
+ });
400
+ code += (0, translator_1.indent)((state?.tabSize || 0));
401
+ code += '};\n';
402
+ code += (0, translator_1.indent)((state?.tabSize || 0));
403
+ code += 'return __MatchExpressionFuntion();\n';
404
+ code += (0, translator_1.indent)((state?.tabSize || 0));
405
+ code += '})();\n';
406
+ return code;
407
+ }
408
+ };
409
+ __decorate([
410
+ (0, decorators_1.property)()
411
+ ], Match.prototype, "concept", void 0);
412
+ __decorate([
413
+ (0, decorators_1.property)('LogicItem')
414
+ ], Match.prototype, "expression", void 0);
415
+ __decorate([
416
+ (0, decorators_1.property)()
417
+ ], Match.prototype, "isExpression", void 0);
418
+ __decorate([
419
+ (0, decorators_1.property)('MatchCase')
420
+ ], Match.prototype, "cases", void 0);
421
+ __decorate([
422
+ (0, translator_1.withSourceMap)()
423
+ ], Match.prototype, "toEmbeddedTS", null);
424
+ Match = Match_1 = __decorate([
425
+ (0, decorators_1.concept)('匹配')
426
+ ], Match);
427
+ exports.Match = Match;
428
+ classMap_1.default.Match = Match;
429
+ exports.default = Match;
430
+ //================================================================================
431
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
432
+ // 自动生成的代码已结束。下面可以手动编写。
433
+ //================================================================================
434
+ //# sourceMappingURL=Match__.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Match__.js","sourceRoot":"","sources":["../../src/concepts/Match__.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ import { TranslatorState } from '../translator';
2
+ import Identifier from './Identifier__';
3
+ import MemberExpression from './MemberExpression__';
4
+ import { Params } from '../common/EventEmitter';
5
+ import TypeAnnotation from './TypeAnnotation__';
6
+ import LogicItem from './LogicItem__';
7
+ /**
8
+ * SQL 查询
9
+ */
10
+ export declare class OqlQueryComponent extends LogicItem {
11
+ /**
12
+ * 产品概念
13
+ */
14
+ concept: 'OqlQueryComponent';
15
+ /**
16
+ * SQL 查询标题
17
+ */
18
+ label: string;
19
+ /**
20
+ * SQL 查询
21
+ */
22
+ code: string;
23
+ /**
24
+ * 相关类型
25
+ */
26
+ typeAnnotation: TypeAnnotation;
27
+ /**
28
+ * 数据源
29
+ */
30
+ dataSource: string;
31
+ /**
32
+ * @param source 需要合并的部分参数
33
+ */
34
+ constructor(source?: Partial<OqlQueryComponent>);
35
+ static from(source: any, parentNode?: any, parentKey?: string): OqlQueryComponent;
36
+ /**
37
+ * 设置SQL 查询
38
+ */
39
+ setCode(code: string): void;
40
+ /**
41
+ * 删除类型标注
42
+ * @param name 类型标注名称
43
+ */
44
+ removeTypeAnnotation(name: string): void;
45
+ /**
46
+ * 删除类型标注
47
+ * @param typeAnnotation 已有的类型标注实例
48
+ */
49
+ removeTypeAnnotation(typeAnnotation: TypeAnnotation): void;
50
+ __removeTypeAnnotation(typeAnnotation: TypeAnnotation): Params;
51
+ /**
52
+ * APP数据源重命名时,同步OQL数据源;此方法仅提供给APP重命名时使用
53
+ */
54
+ renameDataSource(dataSource: string): void;
55
+ /**
56
+ * 设置OQL数据源
57
+ */
58
+ setDataSource(dataSource: string): void;
59
+ getCodeContentVariable(sqlParser: any, state?: TranslatorState): string;
60
+ getTextVariables(): void;
61
+ getTypeBanError(): boolean;
62
+ getQueryComponentTsCode(state?: TranslatorState): string;
63
+ getSelectRef(newTypeAnnotation: TypeAnnotation): any;
64
+ toEmbeddedTS(state?: TranslatorState): string;
65
+ /**
66
+ * 获取添加时的默认选项
67
+ * @returns
68
+ */
69
+ static getDefaultOptions(): any;
70
+ _TsVariables: Array<Identifier | MemberExpression>;
71
+ codeSourceMap: any;
72
+ }
73
+ export default OqlQueryComponent;