@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.
- package/out/automate/engine/index.js +2 -2
- package/out/automate/engine/index.js.map +1 -1
- package/out/automate/engine/viewCache.js +5 -5
- package/out/automate/engine/viewCache.js.map +1 -1
- package/out/common/BaseNode.js +3 -1
- package/out/common/BaseNode.js.map +1 -1
- package/out/concepts/AnonymousFunction__.d.ts +170 -0
- package/out/concepts/AnonymousFunction__.js +439 -0
- package/out/concepts/AnonymousFunction__.js.map +1 -0
- package/out/concepts/App__.js +7 -1
- package/out/concepts/App__.js.map +1 -1
- package/out/concepts/Assignee__.js +1 -1
- package/out/concepts/Assignee__.js.map +1 -1
- package/out/concepts/AssignmentLine__.d.ts +40 -0
- package/out/concepts/AssignmentLine__.js +109 -0
- package/out/concepts/AssignmentLine__.js.map +1 -0
- package/out/concepts/BatchAssignment__.d.ts +248 -0
- package/out/concepts/BatchAssignment__.js +742 -0
- package/out/concepts/BatchAssignment__.js.map +1 -0
- package/out/concepts/BindAttribute__.js +2 -0
- package/out/concepts/BindAttribute__.js.map +1 -1
- package/out/concepts/BindEvent__.js +9 -4
- package/out/concepts/BindEvent__.js.map +1 -1
- package/out/concepts/BindStyle__.d.ts +126 -0
- package/out/concepts/BindStyle__.js +233 -0
- package/out/concepts/BindStyle__.js.map +1 -0
- package/out/concepts/CallLogic__.js +3 -4
- package/out/concepts/CallLogic__.js.map +1 -1
- package/out/concepts/CallQueryComponent__.d.ts +1 -1
- package/out/concepts/ConstructArgument__.d.ts +40 -0
- package/out/concepts/ConstructArgument__.js +108 -0
- package/out/concepts/ConstructArgument__.js.map +1 -0
- package/out/concepts/Construct__.d.ts +189 -0
- package/out/concepts/Construct__.js +340 -0
- package/out/concepts/Construct__.js.map +1 -0
- package/out/concepts/EnumItem__.js +1 -1
- package/out/concepts/EnumItem__.js.map +1 -1
- package/out/concepts/Interface__.d.ts +1 -0
- package/out/concepts/Interface__.js +58 -0
- package/out/concepts/Interface__.js.map +1 -1
- package/out/concepts/Logic__.js +3 -3
- package/out/concepts/Logic__.js.map +1 -1
- package/out/concepts/MatchCase__.d.ts +256 -0
- package/out/concepts/MatchCase__.js +584 -0
- package/out/concepts/MatchCase__.js.map +1 -0
- package/out/concepts/Match__.d.ts +117 -0
- package/out/concepts/Match__.js +434 -0
- package/out/concepts/Match__.js.map +1 -0
- package/out/concepts/OqlQueryComponent__.d.ts +73 -0
- package/out/concepts/OqlQueryComponent__.js +395 -0
- package/out/concepts/OqlQueryComponent__.js.map +1 -0
- package/out/concepts/ProcessElement__.d.ts +2 -2
- package/out/concepts/ProcessElement__.js +30 -21
- package/out/concepts/ProcessElement__.js.map +1 -1
- package/out/concepts/Process__.d.ts +81 -0
- package/out/concepts/Process__.js +98 -2
- package/out/concepts/Process__.js.map +1 -1
- package/out/concepts/SelectMembers__.d.ts +141 -0
- package/out/concepts/SelectMembers__.js +290 -0
- package/out/concepts/SelectMembers__.js.map +1 -0
- package/out/concepts/SqlQueryComponent__.d.ts +4 -0
- package/out/concepts/SqlQueryComponent__.js +144 -2
- package/out/concepts/SqlQueryComponent__.js.map +1 -1
- package/out/concepts/Variable__.js +0 -1
- package/out/concepts/Variable__.js.map +1 -1
- package/out/concepts/ViewElement__.js +10 -1
- package/out/concepts/ViewElement__.js.map +1 -1
- package/out/concepts/View__.js +4 -1
- package/out/concepts/View__.js.map +1 -1
- package/out/concepts/basics/stdlib/index.js +2 -1
- package/out/concepts/basics/stdlib/index.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.auth.js +26 -0
- package/out/concepts/basics/stdlib/nasl.auth.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.process.js +98 -0
- package/out/concepts/basics/stdlib/nasl.process.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.ui.js +54 -0
- package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.util.js +2 -2
- package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.validation.js +4 -0
- package/out/concepts/basics/stdlib/nasl.validation.js.map +1 -1
- package/out/enums/KEYWORDS.js +1 -0
- package/out/enums/KEYWORDS.js.map +1 -1
- package/out/generator/genBundleFiles.d.ts +1 -0
- package/out/generator/genBundleFiles.js +2 -0
- package/out/generator/genBundleFiles.js.map +1 -1
- package/out/server/extendBaseNode.js +32 -4
- package/out/server/extendBaseNode.js.map +1 -1
- package/out/server/getLogics.js +42 -14
- package/out/server/getLogics.js.map +1 -1
- package/out/server/getProcesses.d.ts +2 -2
- package/out/server/getProcesses.js +47 -21
- package/out/server/getProcesses.js.map +1 -1
- package/out/server/naslServer.js +46 -19
- package/out/server/naslServer.js.map +1 -1
- package/out/server/naslStdlibMap.js +1 -0
- package/out/server/naslStdlibMap.js.map +1 -1
- package/out/server/process2LogicNamespace.js +25 -21
- package/out/server/process2LogicNamespace.js.map +1 -1
- package/out/server/translator.js +35 -8
- package/out/server/translator.js.map +1 -1
- package/out/service/logic/api.d.ts +9 -0
- package/out/service/logic/api.js +11 -0
- package/out/service/logic/api.js.map +1 -0
- package/out/service/logic/index.d.ts +2 -0
- package/out/service/logic/index.js +10 -0
- package/out/service/logic/index.js.map +1 -0
- package/out/service/storage/init.js +18 -6
- package/out/service/storage/init.js.map +1 -1
- package/out/templator/genCreateBlock.js +1 -1
- package/out/templator/genCreateBlock.js.map +1 -1
- package/out/templator/genCurdEditMultipleKeyBlock.js +4 -5
- package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
- package/out/templator/genCurdMultipleKeyBlock.js +4 -4
- package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
- package/out/templator/genEditTableBlock.js +5 -3
- package/out/templator/genEditTableBlock.js.map +1 -1
- package/out/templator/genGetBlock.js +3 -2
- package/out/templator/genGetBlock.js.map +1 -1
- package/out/templator/genTableBlock.js +4 -2
- package/out/templator/genTableBlock.js.map +1 -1
- package/out/templator/genUpdateBlock.js +1 -1
- package/out/templator/genUpdateBlock.js.map +1 -1
- package/out/templator/sql-parser/index.d.ts +1 -0
- package/out/templator/sql-parser/index.js +228 -0
- package/out/templator/sql-parser/index.js.map +1 -0
- package/out/templator/sql-parser/parser.js +26664 -0
- package/out/templator/sql-parser/parser.js.map +1 -0
- package/package.json +1 -1
- package/src/automate/engine/index.js +1 -1
- package/src/automate/engine/viewCache.js +23 -23
- package/src/automate/template/myProcess.js +12295 -0
- package/src/common/BaseNode.ts +5 -1
- package/src/concepts/App__.ts +8 -1
- package/src/concepts/Assignee__.ts +1 -1
- package/src/concepts/BindAttribute__.ts +3 -1
- package/src/concepts/BindEvent__.ts +8 -4
- package/src/concepts/CallLogic__.ts +3 -4
- package/src/concepts/EnumItem__.ts +1 -1
- package/src/concepts/Interface__.ts +66 -7
- package/src/concepts/Logic__.ts +3 -3
- package/src/concepts/ProcessElement__.ts +34 -24
- package/src/concepts/Process__.ts +98 -2
- package/src/concepts/SqlQueryComponent__.ts +143 -2
- package/src/concepts/Variable__.ts +0 -1
- package/src/concepts/ViewElement__.ts +12 -20
- package/src/concepts/View__.ts +4 -1
- package/src/concepts/basics/stdlib/index.ts +2 -1
- package/src/concepts/basics/stdlib/nasl.auth.ts +25 -0
- package/src/concepts/basics/stdlib/nasl.io.ts +48 -0
- package/src/concepts/basics/stdlib/nasl.process.ts +98 -0
- package/src/concepts/basics/stdlib/nasl.ui.ts +54 -0
- package/src/concepts/basics/stdlib/nasl.util.ts +2 -2
- package/src/concepts/basics/stdlib/nasl.validation.ts +4 -0
- package/src/enums/KEYWORDS.ts +1 -0
- package/src/generator/genBundleFiles.ts +3 -0
- package/src/server/extendBaseNode.ts +31 -4
- package/src/server/getLogics.ts +43 -14
- package/src/server/getProcesses.ts +47 -21
- package/src/server/naslServer.ts +44 -21
- package/src/server/naslStdlibMap.ts +1 -0
- package/src/server/process2LogicNamespace.ts +27 -21
- package/src/server/translator.ts +35 -8
- package/src/service/storage/init.ts +18 -6
- package/src/templator/genCreateBlock.ts +1 -1
- package/src/templator/genCurdEditMultipleKeyBlock.ts +4 -7
- package/src/templator/genCurdMultipleKeyBlock.ts +4 -4
- package/src/templator/genEditTableBlock.ts +5 -3
- package/src/templator/genGetBlock.ts +3 -2
- package/src/templator/genTableBlock.ts +4 -2
- package/src/templator/genUpdateBlock.ts +1 -1
- 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
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
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.
|
|
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.
|
|
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
|
|
1030
|
+
const logics = (0, getProcesses_1.genUserTaskLogic)(this);
|
|
1024
1031
|
// sourceMap 映射
|
|
1025
|
-
logic
|
|
1026
|
-
|
|
1027
|
-
|
|
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.
|
|
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';
|