@lcap/nasl 2.14.0 → 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 (172) hide show
  1. package/out/automate/engine/index.js +2 -2
  2. package/out/automate/engine/index.js.map +1 -1
  3. package/out/automate/engine/viewCache.js +5 -5
  4. package/out/automate/engine/viewCache.js.map +1 -1
  5. package/out/common/BaseNode.js +3 -1
  6. package/out/common/BaseNode.js.map +1 -1
  7. package/out/concepts/AnonymousFunction__.d.ts +170 -0
  8. package/out/concepts/AnonymousFunction__.js +439 -0
  9. package/out/concepts/AnonymousFunction__.js.map +1 -0
  10. package/out/concepts/App__.js +7 -1
  11. package/out/concepts/App__.js.map +1 -1
  12. package/out/concepts/Assignee__.js +1 -1
  13. package/out/concepts/Assignee__.js.map +1 -1
  14. package/out/concepts/AssignmentLine__.d.ts +40 -0
  15. package/out/concepts/AssignmentLine__.js +109 -0
  16. package/out/concepts/AssignmentLine__.js.map +1 -0
  17. package/out/concepts/BatchAssignment__.d.ts +248 -0
  18. package/out/concepts/BatchAssignment__.js +742 -0
  19. package/out/concepts/BatchAssignment__.js.map +1 -0
  20. package/out/concepts/BindAttribute__.js +2 -0
  21. package/out/concepts/BindAttribute__.js.map +1 -1
  22. package/out/concepts/BindEvent__.js +9 -4
  23. package/out/concepts/BindEvent__.js.map +1 -1
  24. package/out/concepts/BindStyle__.d.ts +126 -0
  25. package/out/concepts/BindStyle__.js +233 -0
  26. package/out/concepts/BindStyle__.js.map +1 -0
  27. package/out/concepts/CallLogic__.js +3 -4
  28. package/out/concepts/CallLogic__.js.map +1 -1
  29. package/out/concepts/CallQueryComponent__.d.ts +1 -1
  30. package/out/concepts/ConstructArgument__.d.ts +40 -0
  31. package/out/concepts/ConstructArgument__.js +108 -0
  32. package/out/concepts/ConstructArgument__.js.map +1 -0
  33. package/out/concepts/Construct__.d.ts +189 -0
  34. package/out/concepts/Construct__.js +340 -0
  35. package/out/concepts/Construct__.js.map +1 -0
  36. package/out/concepts/EnumItem__.js +1 -1
  37. package/out/concepts/EnumItem__.js.map +1 -1
  38. package/out/concepts/Interface__.d.ts +1 -0
  39. package/out/concepts/Interface__.js +58 -0
  40. package/out/concepts/Interface__.js.map +1 -1
  41. package/out/concepts/Logic__.js +3 -3
  42. package/out/concepts/Logic__.js.map +1 -1
  43. package/out/concepts/MatchCase__.d.ts +256 -0
  44. package/out/concepts/MatchCase__.js +584 -0
  45. package/out/concepts/MatchCase__.js.map +1 -0
  46. package/out/concepts/Match__.d.ts +117 -0
  47. package/out/concepts/Match__.js +434 -0
  48. package/out/concepts/Match__.js.map +1 -0
  49. package/out/concepts/OqlQueryComponent__.d.ts +73 -0
  50. package/out/concepts/OqlQueryComponent__.js +395 -0
  51. package/out/concepts/OqlQueryComponent__.js.map +1 -0
  52. package/out/concepts/ProcessElement__.d.ts +2 -2
  53. package/out/concepts/ProcessElement__.js +30 -21
  54. package/out/concepts/ProcessElement__.js.map +1 -1
  55. package/out/concepts/Process__.d.ts +81 -0
  56. package/out/concepts/Process__.js +98 -2
  57. package/out/concepts/Process__.js.map +1 -1
  58. package/out/concepts/SelectMembers__.d.ts +141 -0
  59. package/out/concepts/SelectMembers__.js +290 -0
  60. package/out/concepts/SelectMembers__.js.map +1 -0
  61. package/out/concepts/SqlQueryComponent__.d.ts +4 -0
  62. package/out/concepts/SqlQueryComponent__.js +144 -2
  63. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  64. package/out/concepts/Variable__.js +0 -1
  65. package/out/concepts/Variable__.js.map +1 -1
  66. package/out/concepts/ViewElement__.js +10 -1
  67. package/out/concepts/ViewElement__.js.map +1 -1
  68. package/out/concepts/View__.js +4 -1
  69. package/out/concepts/View__.js.map +1 -1
  70. package/out/concepts/basics/stdlib/index.js +2 -1
  71. package/out/concepts/basics/stdlib/index.js.map +1 -1
  72. package/out/concepts/basics/stdlib/nasl.auth.js +26 -0
  73. package/out/concepts/basics/stdlib/nasl.auth.js.map +1 -1
  74. package/out/concepts/basics/stdlib/nasl.process.js +98 -0
  75. package/out/concepts/basics/stdlib/nasl.process.js.map +1 -1
  76. package/out/concepts/basics/stdlib/nasl.ui.js +54 -0
  77. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  78. package/out/concepts/basics/stdlib/nasl.util.js +2 -2
  79. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  80. package/out/concepts/basics/stdlib/nasl.validation.js +4 -0
  81. package/out/concepts/basics/stdlib/nasl.validation.js.map +1 -1
  82. package/out/enums/KEYWORDS.js +1 -0
  83. package/out/enums/KEYWORDS.js.map +1 -1
  84. package/out/generator/genBundleFiles.d.ts +1 -0
  85. package/out/generator/genBundleFiles.js +2 -0
  86. package/out/generator/genBundleFiles.js.map +1 -1
  87. package/out/server/extendBaseNode.js +32 -4
  88. package/out/server/extendBaseNode.js.map +1 -1
  89. package/out/server/getLogics.js +42 -14
  90. package/out/server/getLogics.js.map +1 -1
  91. package/out/server/getProcesses.d.ts +2 -2
  92. package/out/server/getProcesses.js +47 -21
  93. package/out/server/getProcesses.js.map +1 -1
  94. package/out/server/naslServer.js +46 -19
  95. package/out/server/naslServer.js.map +1 -1
  96. package/out/server/naslStdlibMap.js +1 -0
  97. package/out/server/naslStdlibMap.js.map +1 -1
  98. package/out/server/process2LogicNamespace.js +25 -21
  99. package/out/server/process2LogicNamespace.js.map +1 -1
  100. package/out/server/translator.js +35 -8
  101. package/out/server/translator.js.map +1 -1
  102. package/out/service/logic/api.d.ts +9 -0
  103. package/out/service/logic/api.js +11 -0
  104. package/out/service/logic/api.js.map +1 -0
  105. package/out/service/logic/index.d.ts +2 -0
  106. package/out/service/logic/index.js +10 -0
  107. package/out/service/logic/index.js.map +1 -0
  108. package/out/service/storage/init.js +18 -6
  109. package/out/service/storage/init.js.map +1 -1
  110. package/out/templator/genCreateBlock.js +1 -1
  111. package/out/templator/genCreateBlock.js.map +1 -1
  112. package/out/templator/genCurdEditMultipleKeyBlock.js +4 -5
  113. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  114. package/out/templator/genCurdMultipleKeyBlock.js +4 -4
  115. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  116. package/out/templator/genEditTableBlock.js +5 -3
  117. package/out/templator/genEditTableBlock.js.map +1 -1
  118. package/out/templator/genGetBlock.js +3 -2
  119. package/out/templator/genGetBlock.js.map +1 -1
  120. package/out/templator/genTableBlock.js +4 -2
  121. package/out/templator/genTableBlock.js.map +1 -1
  122. package/out/templator/genUpdateBlock.js +1 -1
  123. package/out/templator/genUpdateBlock.js.map +1 -1
  124. package/out/templator/sql-parser/index.d.ts +1 -0
  125. package/out/templator/sql-parser/index.js +228 -0
  126. package/out/templator/sql-parser/index.js.map +1 -0
  127. package/out/templator/sql-parser/parser.js +26664 -0
  128. package/out/templator/sql-parser/parser.js.map +1 -0
  129. package/package.json +1 -1
  130. package/src/automate/engine/index.js +1 -1
  131. package/src/automate/engine/viewCache.js +23 -23
  132. package/src/automate/template/myProcess.js +12295 -0
  133. package/src/common/BaseNode.ts +5 -1
  134. package/src/concepts/App__.ts +8 -1
  135. package/src/concepts/Assignee__.ts +1 -1
  136. package/src/concepts/BindAttribute__.ts +3 -1
  137. package/src/concepts/BindEvent__.ts +8 -4
  138. package/src/concepts/CallLogic__.ts +3 -4
  139. package/src/concepts/EnumItem__.ts +1 -1
  140. package/src/concepts/Interface__.ts +66 -7
  141. package/src/concepts/Logic__.ts +3 -3
  142. package/src/concepts/ProcessElement__.ts +34 -24
  143. package/src/concepts/Process__.ts +98 -2
  144. package/src/concepts/SqlQueryComponent__.ts +143 -2
  145. package/src/concepts/Variable__.ts +0 -1
  146. package/src/concepts/ViewElement__.ts +12 -20
  147. package/src/concepts/View__.ts +4 -1
  148. package/src/concepts/basics/stdlib/index.ts +2 -1
  149. package/src/concepts/basics/stdlib/nasl.auth.ts +25 -0
  150. package/src/concepts/basics/stdlib/nasl.io.ts +48 -0
  151. package/src/concepts/basics/stdlib/nasl.process.ts +98 -0
  152. package/src/concepts/basics/stdlib/nasl.ui.ts +54 -0
  153. package/src/concepts/basics/stdlib/nasl.util.ts +2 -2
  154. package/src/concepts/basics/stdlib/nasl.validation.ts +4 -0
  155. package/src/enums/KEYWORDS.ts +1 -0
  156. package/src/generator/genBundleFiles.ts +3 -0
  157. package/src/server/extendBaseNode.ts +31 -4
  158. package/src/server/getLogics.ts +43 -14
  159. package/src/server/getProcesses.ts +47 -21
  160. package/src/server/naslServer.ts +44 -21
  161. package/src/server/naslStdlibMap.ts +1 -0
  162. package/src/server/process2LogicNamespace.ts +27 -21
  163. package/src/server/translator.ts +35 -8
  164. package/src/service/storage/init.ts +18 -6
  165. package/src/templator/genCreateBlock.ts +1 -1
  166. package/src/templator/genCurdEditMultipleKeyBlock.ts +4 -7
  167. package/src/templator/genCurdMultipleKeyBlock.ts +4 -4
  168. package/src/templator/genEditTableBlock.ts +5 -3
  169. package/src/templator/genGetBlock.ts +3 -2
  170. package/src/templator/genTableBlock.ts +4 -2
  171. package/src/templator/genUpdateBlock.ts +1 -1
  172. package/src/automate/template/process.js +0 -11810
@@ -0,0 +1,395 @@
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 OqlQueryComponent_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.OqlQueryComponent = void 0;
14
+ const translator_1 = require("../translator");
15
+ const utils_1 = require("../automate/engine/utils");
16
+ const StructureProperty__1 = __importDefault(require("./StructureProperty__"));
17
+ const Identifier__1 = __importDefault(require("./Identifier__"));
18
+ const MemberExpression__1 = __importDefault(require("./MemberExpression__"));
19
+ const decorators_1 = require("../decorators");
20
+ const classMap_1 = __importDefault(require("../common/classMap"));
21
+ const LogicItem__1 = __importDefault(require("./LogicItem__"));
22
+ /**
23
+ * SQL 查询
24
+ */
25
+ let OqlQueryComponent = OqlQueryComponent_1 = class OqlQueryComponent extends LogicItem__1.default {
26
+ /**
27
+ * 产品概念
28
+ */
29
+ concept = 'OqlQueryComponent';
30
+ /**
31
+ * SQL 查询标题
32
+ */
33
+ label = 'SQL 查询';
34
+ /**
35
+ * SQL 查询
36
+ */
37
+ code = undefined;
38
+ /**
39
+ * 相关类型
40
+ */
41
+ typeAnnotation = undefined;
42
+ /**
43
+ * 数据源
44
+ */
45
+ dataSource = undefined;
46
+ /**
47
+ * @param source 需要合并的部分参数
48
+ */
49
+ constructor(source) {
50
+ source = Object.assign({}, OqlQueryComponent_1.getDefaultOptions(), source);
51
+ super(source);
52
+ super.subConstructor(source);
53
+ }
54
+ static from(source, parentNode, parentKey) {
55
+ return super.from(source, parentNode, parentKey);
56
+ }
57
+ /**
58
+ * 设置SQL 查询
59
+ */
60
+ setCode(code) {
61
+ this.codeSourceMap = null;
62
+ this.update({
63
+ code,
64
+ });
65
+ }
66
+ removeTypeAnnotation(options) {
67
+ let typeAnnotation;
68
+ if (typeof options === 'string') {
69
+ typeAnnotation = this.typeAnnotation;
70
+ if (!typeAnnotation) {
71
+ throw new Error('找不到类型标注 ' + options);
72
+ }
73
+ }
74
+ else {
75
+ typeAnnotation = options;
76
+ }
77
+ return typeAnnotation.delete();
78
+ }
79
+ __removeTypeAnnotation(typeAnnotation) {
80
+ const parentKey = typeAnnotation.parentKey;
81
+ const params = {
82
+ parentNode: this,
83
+ parentKey,
84
+ index: -1,
85
+ object: null,
86
+ oldObject: typeAnnotation,
87
+ };
88
+ if (parentKey) {
89
+ params.parentKey = parentKey;
90
+ if (Array.isArray(this[parentKey])) {
91
+ const index = this[parentKey].indexOf(typeAnnotation);
92
+ ~index && this[parentKey].splice(index, 1);
93
+ params.index = index;
94
+ }
95
+ else if (this[parentKey] === typeAnnotation) {
96
+ params.index = 0;
97
+ this[parentKey] = undefined;
98
+ }
99
+ }
100
+ return params;
101
+ }
102
+ //================================================================================
103
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
104
+ // 自动生成的代码已结束。下面可以手动编写。
105
+ //================================================================================
106
+ /**
107
+ * APP数据源重命名时,同步OQL数据源;此方法仅提供给APP重命名时使用
108
+ */
109
+ renameDataSource(dataSource) {
110
+ // 此参数dataSource不带命名空间
111
+ // 考虑到扩展模块不允许重命名,所以拼接app.dataSources
112
+ this.setDataSource(`app.dataSources.${dataSource}`);
113
+ }
114
+ /**
115
+ * 设置OQL数据源
116
+ */
117
+ setDataSource(dataSource) {
118
+ this.codeSourceMap = null;
119
+ this.update({
120
+ dataSource,
121
+ });
122
+ }
123
+ // 获取内部的使用到的变量
124
+ getCodeContentVariable(sqlParser, state) {
125
+ const { columnList = [], tableList = [] } = sqlParser;
126
+ let code = '';
127
+ function formatVariable(item) {
128
+ if (item === 'select::null::(.*)')
129
+ return;
130
+ /**
131
+ "select::null::Student"
132
+ "select::null::school"
133
+ "select::null::(.*)"
134
+ "select::null::__NASL__SQL__variable12323_asdasdasd_asdasd_asdasd"
135
+ "select::null::variable2123213"
136
+ "select::student::age1"
137
+ "select::student::null"
138
+ */
139
+ let variableCode = item.replace('select::null::', '').replace('select::', '').replaceAll('::', '.');
140
+ // 处理内部变量
141
+ if (variableCode.startsWith('__NASL__SQL__')) {
142
+ variableCode = variableCode.replace('__NASL__SQL__', '').replaceAll('_', '.');
143
+ }
144
+ return variableCode;
145
+ }
146
+ code += (0, translator_1.indent)((state?.tabSize || 0) + 1) + 'function SqlQueryComponent(';
147
+ tableList.forEach((item, index) => {
148
+ const tableVariable = formatVariable(item);
149
+ code += tableVariable + `: ${this.dataSource || 'app.dataSources.defaultDS'}.entities.${tableVariable}`;
150
+ if (index !== tableList.length - 1)
151
+ code += ', ';
152
+ });
153
+ code += ') {';
154
+ columnList.forEach((item) => {
155
+ code += (0, translator_1.indent)((state?.tabSize || 0) + 2);
156
+ code += formatVariable(item) + ';\n';
157
+ });
158
+ code += (0, translator_1.indent)((state?.tabSize || 0) + 1) + '}';
159
+ return code;
160
+ }
161
+ getTextVariables() {
162
+ this._TsVariables = [];
163
+ const str = this.code;
164
+ const variables = new Set();
165
+ let temp;
166
+ const re = /\{(.+?)\}/g;
167
+ while (temp = re.exec(str)) {
168
+ let variable = temp[1];
169
+ variable = variable.replaceAll(' ', '');
170
+ variables.add(variable);
171
+ }
172
+ for (const variable of variables) { // 遍历Set
173
+ let newVariable;
174
+ if (variable.includes('.')) {
175
+ const arr = variable.split('.');
176
+ for (let i = 0; i < arr.length; i++) {
177
+ if (!newVariable) {
178
+ // value需要拼接生成
179
+ newVariable = new Identifier__1.default({ name: arr[i] });
180
+ }
181
+ else {
182
+ newVariable = new MemberExpression__1.default({
183
+ object: newVariable,
184
+ property: new Identifier__1.default({ name: arr[i] }),
185
+ });
186
+ }
187
+ }
188
+ }
189
+ else {
190
+ newVariable = new Identifier__1.default({ name: variable });
191
+ }
192
+ newVariable.parentNode = this;
193
+ newVariable.parentKey = '_TsVariables';
194
+ this._TsVariables.push(newVariable);
195
+ }
196
+ }
197
+ getTypeBanError() {
198
+ let sqlTypeBan = false;
199
+ if (this.typeAnnotation) {
200
+ const getSqlTypeBan = (typeAnnotation) => {
201
+ const ref = this.getSelectRef(typeAnnotation);
202
+ if (ref?.length) {
203
+ ref.forEach((item) => {
204
+ // 如果有类型但是类型不是基本类型,就需要打开开关,注入变量
205
+ if (item?.typeAnnotation && item.typeAnnotation.typeNamespace !== 'nasl.core' && !(item.typeAnnotation.typeNamespace.endsWith('.enums'))) {
206
+ sqlTypeBan = true;
207
+ }
208
+ });
209
+ }
210
+ };
211
+ if (this.typeAnnotation.typeArguments?.length) {
212
+ // list 就去校验一下内部的类型
213
+ if (this.typeAnnotation.typeName === 'List') {
214
+ this.typeAnnotation.typeArguments.forEach((item) => {
215
+ getSqlTypeBan(item);
216
+ });
217
+ }
218
+ else {
219
+ // 别的都不放开
220
+ sqlTypeBan = true;
221
+ }
222
+ }
223
+ else {
224
+ getSqlTypeBan(this.typeAnnotation);
225
+ }
226
+ }
227
+ return sqlTypeBan;
228
+ }
229
+ getQueryComponentTsCode(state) {
230
+ let tsCode = '';
231
+ // let sqlParser: null | any = null;
232
+ // let sqlParserErr: null | any = null;
233
+ if (!this.code)
234
+ return tsCode;
235
+ /**
236
+ * 处理变量,因为解析code,因为sql中不支持
237
+ * #{变量}这种写法
238
+ * 而且不支持a.b.c这种写法保留前两个,翻译的时候补上去
239
+ * 如果是多个.链接的变量就转换成nasl变量,让他可以翻译,等后面在把值换回来
240
+ */
241
+ /**
242
+ try {
243
+ const newCode = this.code.replace(/\#|\$\{(.+?)\}/g, (value, content) => {
244
+ console.log(content)
245
+ const len = content.split('.').length;
246
+ console.log(len, content, content.split('.'), content, content.split('.').length)
247
+ if (len > 2) {
248
+ return '__NASL__SQL__' + content.replaceAll('.', '_');
249
+ }
250
+ return content;
251
+ });
252
+ console.log(newCode);
253
+ // 生成对应的sqlts 和 产生sourceMap对应
254
+ sqlParser = SQLParser(newCode || '', 0, this.dataSource);
255
+ } catch (err) {
256
+ sqlParserErr = err;
257
+ }
258
+ console.log(sqlParser, sqlParserErr);
259
+ if (sqlParserErr) {
260
+ tsCode += '__SQL_GRAMMAR_ERROR__';
261
+ } else if (sqlParser) {
262
+ // 解析内部变量,先看是不是未知变量
263
+ // 使用 tableList 和 columnList
264
+ tsCode += this.getCodeContentVariable(sqlParser, state);
265
+ }
266
+ */
267
+ try {
268
+ tsCode += this.getVariableTs(state);
269
+ }
270
+ catch (err) {
271
+ console.log(err);
272
+ }
273
+ return tsCode;
274
+ }
275
+ getSelectRef(newTypeAnnotation) {
276
+ try {
277
+ const { typeName, typeKind, typeNamespace } = newTypeAnnotation || this.typeAnnotation;
278
+ let completionChildren;
279
+ if (typeKind === 'reference') {
280
+ if (typeNamespace === 'nasl.ui' || typeNamespace === 'nasl.process') {
281
+ const node = (0, utils_1.getNaslNodeByNodeCallee)(typeNamespace, typeName);
282
+ const properties = node?.properties || [];
283
+ completionChildren = properties;
284
+ }
285
+ else if (typeNamespace.endsWith('.enums')) {
286
+ completionChildren = [];
287
+ }
288
+ else {
289
+ const node = (0, utils_1.getNodeByNodeCallee)(this.app, typeNamespace + '.' + typeName);
290
+ const properties = node?.properties || [];
291
+ completionChildren = properties;
292
+ }
293
+ }
294
+ else if (typeKind === 'generic') {
295
+ // if (typeNamespace === 'nasl.collection' || typeNamespace === 'nasl.ui' || typeNamespace === 'nasl.interface') {
296
+ // }
297
+ const node = (0, utils_1.getNaslNodeByNodeCallee)(typeNamespace, typeName);
298
+ const properties = (node?.properties && [...node?.properties]) || [];
299
+ for (let i = 0; i < properties.length; i++) {
300
+ const item = properties[i];
301
+ if (item?.typeAnnotation?.typeKind === 'typeParam') {
302
+ const newItem = StructureProperty__1.default.from(item.toJSON());
303
+ newItem.typeAnnotation = this?.typeAnnotation?.typeArguments[0];
304
+ newItem.parentNode = this;
305
+ properties[i] = newItem;
306
+ }
307
+ }
308
+ completionChildren = properties;
309
+ }
310
+ else {
311
+ completionChildren = [];
312
+ }
313
+ return completionChildren;
314
+ }
315
+ catch (err) {
316
+ console.log(err);
317
+ }
318
+ }
319
+ toEmbeddedTS(state) {
320
+ let code;
321
+ code = `(function(): `;
322
+ code += `${this.typeAnnotation ? this.typeAnnotation.toEmbeddedTS((0, translator_1.shiftState)(state, code)) : '__IDENTIFIER__'} {\n`;
323
+ // app.dataSources.defaultDS;
324
+ if (this.dataSource) {
325
+ code += (0, translator_1.indent)((state?.tabSize || 0) + 1);
326
+ code += `const dataSource = ${this.dataSource || 'app.dataSources.defaultDS'};\n`;
327
+ }
328
+ // 生成内部的ts内容
329
+ // code += this.getQueryComponentTsCode(state);
330
+ if (this.codeSourceMap) {
331
+ code += this.codeSourceMap.typescript || '';
332
+ if (!this.code) {
333
+ // SQL 为空
334
+ code += '__OQL_EMPTY_ERROR__;';
335
+ }
336
+ else if (this.codeSourceMap.lexicalErrorCode === 1001) {
337
+ // SQL 语法错误
338
+ code += '__OQL_GRAMMAR_ERROR__;';
339
+ }
340
+ }
341
+ // 临时方案拼接字符串
342
+ this.getTextVariables();
343
+ // 翻译字段
344
+ code += '\n';
345
+ this._TsVariables.forEach((variable) => {
346
+ code += variable.toEmbeddedTS((0, translator_1.shiftState)(state, code));
347
+ code += ';\n';
348
+ });
349
+ code += '\n';
350
+ code += (0, translator_1.indent)((state?.tabSize || 0) + 1) + 'return;\n';
351
+ code += (0, translator_1.indent)((state?.tabSize || 0)) + '})()';
352
+ return code;
353
+ }
354
+ /**
355
+ * 获取添加时的默认选项
356
+ * @returns
357
+ */
358
+ static getDefaultOptions() {
359
+ return {
360
+ dataSource: 'app.dataSources.defaultDS',
361
+ };
362
+ }
363
+ _TsVariables = [];
364
+ // 节点的sourcemap
365
+ codeSourceMap = undefined;
366
+ };
367
+ __decorate([
368
+ (0, decorators_1.property)()
369
+ ], OqlQueryComponent.prototype, "concept", void 0);
370
+ __decorate([
371
+ (0, decorators_1.property)()
372
+ ], OqlQueryComponent.prototype, "label", void 0);
373
+ __decorate([
374
+ (0, decorators_1.property)()
375
+ ], OqlQueryComponent.prototype, "code", void 0);
376
+ __decorate([
377
+ (0, decorators_1.property)('TypeAnnotation')
378
+ ], OqlQueryComponent.prototype, "typeAnnotation", void 0);
379
+ __decorate([
380
+ (0, decorators_1.property)()
381
+ ], OqlQueryComponent.prototype, "dataSource", void 0);
382
+ __decorate([
383
+ (0, translator_1.withSourceMap)()
384
+ ], OqlQueryComponent.prototype, "toEmbeddedTS", null);
385
+ OqlQueryComponent = OqlQueryComponent_1 = __decorate([
386
+ (0, decorators_1.concept)('SQL 查询')
387
+ ], OqlQueryComponent);
388
+ exports.OqlQueryComponent = OqlQueryComponent;
389
+ classMap_1.default.OqlQueryComponent = OqlQueryComponent;
390
+ exports.default = OqlQueryComponent;
391
+ //================================================================================
392
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
393
+ // 自动生成的代码已结束。下面可以手动编写。
394
+ //================================================================================
395
+ //# sourceMappingURL=OqlQueryComponent__.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OqlQueryComponent__.js","sourceRoot":"","sources":["../../src/concepts/OqlQueryComponent__.ts"],"names":[],"mappings":"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"}
@@ -634,11 +634,11 @@ export declare class ProcessElement extends BaseNode {
634
634
  removeBindAttribute(bindAttribute: BindAttribute): void;
635
635
  __removeBindAttribute(bindAttribute: BindAttribute): Params;
636
636
  getVarExistingNames(excludedList?: Array<Variable | Return | Constant>): string[];
637
+ get isUserTask(): boolean;
637
638
  get logics(): Logic[];
638
639
  get assigneeLogics(): Logic[];
639
640
  getNamespace(ns: string): string;
640
- cancelBindDelete(): void;
641
- cancelBind(view: View): Promise<void>;
641
+ cancelBindDelete(processDelete: boolean): Promise<void>;
642
642
  uniqueTaskId(view: View): string;
643
643
  toEmbeddedTS(state?: TranslatorState): string;
644
644
  }
@@ -891,8 +891,11 @@ let ProcessElement = ProcessElement_1 = class ProcessElement extends BaseNode_1.
891
891
  const excludedSet = new Set(excludedList);
892
892
  return [...this.variables, ...this.returns, ...this.constants].filter((item) => !excludedSet.has(item)).map((item) => item.name);
893
893
  }
894
+ get isUserTask() {
895
+ return this.type === 'UserTask' || this.type === 'ApprovalTask' || this.type === 'InitiateTask';
896
+ }
894
897
  get logics() {
895
- return [(0, getProcesses_1.genUserTaskLogic)(this)];
898
+ return [...(0, getProcesses_1.genUserTaskLogic)(this)];
896
899
  // const ns = entity2LogicNamespace(this);
897
900
  // ns.path = this.getNamespace() + '.' + ns.name;
898
901
  // return ns;
@@ -919,19 +922,23 @@ let ProcessElement = ProcessElement_1 = class ProcessElement extends BaseNode_1.
919
922
  else
920
923
  throw new Error('无法获取命名空间,请设置 parentNode!');
921
924
  }
922
- cancelBindDelete() {
923
- this.delete();
924
- this.bindAttrs.forEach(({ destination }) => {
925
- if (destination && destination.viewNode)
926
- this.cancelBind(destination.viewNode);
927
- });
928
- }
929
- async cancelBind(view) {
930
- const name = this.uniqueTaskId(view);
931
- const node = view.params.find((param) => param.name === name);
932
- const UsageMap = await node.findUsage();
933
- if (!UsageMap.size)
934
- view.removeParam(name);
925
+ async cancelBindDelete(processDelete) {
926
+ if (!processDelete)
927
+ this.delete();
928
+ await Promise.all(this.bindAttrs.map(async ({ destination }) => {
929
+ if (destination && destination.viewNode) {
930
+ const view = destination.viewNode;
931
+ const name = this.uniqueTaskId(view);
932
+ const node = view.params.find((param) => param.name === name);
933
+ if (!node)
934
+ return;
935
+ const UsageMap = await node.findUsage();
936
+ const usageNodes = UsageMap.get(this.process);
937
+ // console.log(UsageMap, usageNodes)
938
+ if (!UsageMap.size || (UsageMap.size === 1 && usageNodes && (!usageNodes.children || usageNodes.children.length === 1)))
939
+ view.removeParam(name);
940
+ }
941
+ }));
935
942
  }
936
943
  //获取当前页面类型为String的taskId参数
937
944
  uniqueTaskId(view) {
@@ -973,7 +980,7 @@ let ProcessElement = ProcessElement_1 = class ProcessElement extends BaseNode_1.
973
980
  });
974
981
  const afterLinks = (0, getProcesses_1.getFlowAfterElements)(this);
975
982
  const beforeLinks = (0, getProcesses_1.getFlowBeforeElements)(this);
976
- if (this.type === 'UserTask'
983
+ if (this.isUserTask
977
984
  || this.type === 'ExclusiveGateway'
978
985
  || this.type === 'AutoTask') {
979
986
  const prevTasks = (0, getProcesses_1.getPreviousTask)(this);
@@ -991,7 +998,7 @@ let ProcessElement = ProcessElement_1 = class ProcessElement extends BaseNode_1.
991
998
  // prevCode += `${tab4}elements: {\n`
992
999
  prevCode += prevTasks.map((t) => `${tab5}${t.name}: elements.${t.name},\n`).join(``);
993
1000
  // prevCode += `${tab4}}\n`
994
- if (this.type === 'UserTask') {
1001
+ if (this.isUserTask) {
995
1002
  //任务完成时可以拿到输出参数,prevCodeClose包含输出参数
996
1003
  let prevCodeClose = prevCode + `\n${tab5}${this.name}: { \n${this.constants.map((c) => `${tab6}${c.toEmbeddedTSInProcess((0, translator_1.shiftState)(state, code, { inline: true }))},`).join('\n')}`;
997
1004
  prevCodeClose += ` \n${this.returns.map((c) => `${tab6}${c.toEmbeddedTSInProcess((0, translator_1.shiftState)(state, code, { inline: true }))},`).join('\n')} \n${tab5}}\n`;
@@ -1020,11 +1027,13 @@ let ProcessElement = ProcessElement_1 = class ProcessElement extends BaseNode_1.
1020
1027
  code += `${tab3}},\n`;
1021
1028
  }
1022
1029
  });
1023
- const logic = (0, getProcesses_1.genUserTaskLogic)(this);
1030
+ const logics = (0, getProcesses_1.genUserTaskLogic)(this);
1024
1031
  // sourceMap 映射
1025
- logic.parentNode = this.process;
1026
- code += logic.toEmbeddedTSInProcess((0, translator_1.shiftState)(state, code, { tabSize: (state?.tabSize || 0) + 3 }));
1027
- code += ',\n';
1032
+ logics.forEach((logic) => {
1033
+ logic.parentNode = this.process;
1034
+ code += logic.toEmbeddedTSInProcess((0, translator_1.shiftState)(state, code, { tabSize: (state?.tabSize || 0) + 3 }));
1035
+ code += ',\n';
1036
+ });
1028
1037
  code += `${tab1}},\n`;
1029
1038
  }
1030
1039
  if (this.type === 'ExclusiveGateway' || this.type === 'AutoTask') {
@@ -1034,7 +1043,7 @@ let ProcessElement = ProcessElement_1 = class ProcessElement extends BaseNode_1.
1034
1043
  code += `${this.logic.toEmbeddedTSInProcess((0, translator_1.shiftState)(state, code, { tabSize: (state?.tabSize || 0) + 3 }), prevCode, true)},\n`;
1035
1044
  }
1036
1045
  }
1037
- if (this.type === 'UserTask' || this.type === 'AutoTask' || this.type === 'StartNoneEvent') {
1046
+ if (this.isUserTask || this.type === 'AutoTask' || this.type === 'StartNoneEvent') {
1038
1047
  code += '_constraints: function() {\n';
1039
1048
  code += `${tab1}nasl.process.oneOutcomeFlow(${afterLinks.map((l) => `'${l.name}'`).join(',')})\n`;
1040
1049
  code += '},\n';