@lcap/nasl 0.3.13-beta → 0.3.14-beta.0

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 (60) hide show
  1. package/out/service/logic/logic.d.ts +9 -0
  2. package/out/service/logic/logic.js +7 -0
  3. package/out/service/logic/logic.js.map +1 -1
  4. package/out/types/app/Service.js +9 -1
  5. package/out/types/app/Service.js.map +1 -1
  6. package/out/types/config.d.ts +1 -0
  7. package/out/types/config.js +1 -0
  8. package/out/types/config.js.map +1 -1
  9. package/out/types/data/Entity.d.ts +5 -1
  10. package/out/types/data/Entity.js +10 -2
  11. package/out/types/data/Entity.js.map +1 -1
  12. package/out/types/data/EntityProperty.d.ts +4 -0
  13. package/out/types/data/EntityProperty.js +7 -0
  14. package/out/types/data/EntityProperty.js.map +1 -1
  15. package/out/types/data/Interface.js +2 -1
  16. package/out/types/data/Interface.js.map +1 -1
  17. package/out/types/data/Structure.d.ts +4 -0
  18. package/out/types/data/Structure.js +12 -0
  19. package/out/types/data/Structure.js.map +1 -1
  20. package/out/types/data/genBlock/genCreateBlock.js +4 -5
  21. package/out/types/data/genBlock/genCreateBlock.js.map +1 -1
  22. package/out/types/data/genBlock/genListViewBlock.js +1 -1
  23. package/out/types/data/genBlock/genListViewBlock.js.map +1 -1
  24. package/out/types/data/genBlock/genTableBlock.js +2 -2
  25. package/out/types/data/genBlock/genTableBlock.js.map +1 -1
  26. package/out/types/data/genBlock/genUpdateBlock.js +4 -5
  27. package/out/types/data/genBlock/genUpdateBlock.js.map +1 -1
  28. package/out/types/logic/Logic.d.ts +16 -0
  29. package/out/types/logic/Logic.js +39 -0
  30. package/out/types/logic/Logic.js.map +1 -1
  31. package/out/types/logic/LogicItem.d.ts +2 -2
  32. package/out/types/logic/LogicItem.js +93 -36
  33. package/out/types/logic/LogicItem.js.map +1 -1
  34. package/out/types/logic/translator.js +66 -50
  35. package/out/types/logic/translator.js.map +1 -1
  36. package/out/types/page/Element.js +21 -9
  37. package/out/types/page/Element.js.map +1 -1
  38. package/out/types/page/View.js +1 -1
  39. package/out/types/page/View.js.map +1 -1
  40. package/out/types/typeCheck.js +5 -0
  41. package/out/types/typeCheck.js.map +1 -1
  42. package/package.json +1 -1
  43. package/src/service/config/api.js +1 -1
  44. package/src/service/logic/logic.js +7 -0
  45. package/src/types/app/Service.ts +9 -1
  46. package/src/types/config.ts +1 -0
  47. package/src/types/data/Entity.ts +10 -3
  48. package/src/types/data/EntityProperty.ts +5 -0
  49. package/src/types/data/Interface.ts +3 -1
  50. package/src/types/data/Structure.ts +10 -0
  51. package/src/types/data/genBlock/genCreateBlock.ts +4 -5
  52. package/src/types/data/genBlock/genListViewBlock.ts +1 -1
  53. package/src/types/data/genBlock/genTableBlock.ts +2 -2
  54. package/src/types/data/genBlock/genUpdateBlock.ts +4 -6
  55. package/src/types/logic/Logic.ts +35 -0
  56. package/src/types/logic/LogicItem.ts +306 -217
  57. package/src/types/logic/translator.js +64 -50
  58. package/src/types/page/Element.ts +20 -9
  59. package/src/types/page/View.ts +1 -1
  60. package/src/types/typeCheck.ts +6 -0
@@ -205,35 +205,42 @@ export default function (source) {
205
205
  if (node.type === 'CallLogic') {
206
206
  if (node.calleeCode.startsWith('callInterface_')) {
207
207
  const getParams = (key) => {
208
- // 过滤掉 null 的 param
209
- const nodeParams = (node.params || []).filter((param) => param !== null && param !== 'null' && param !== '');
210
- if (key === 'body') {
211
- let inBody = '';
212
- const bodyStr = [];
213
- nodeParams.filter((t) => t.callInterParamValue)
214
- .forEach((b) => {
215
- const refTarget = Vertex.getVertexByRef(b.callInterParam);
216
- if (refTarget.in === 'body') {
217
- inBody = generateNode(b.callInterParamValue);
218
- } else if (refTarget.in === '') {
219
- bodyStr.push(`["${refTarget.name}"]: ${generateNode(b.callInterParamValue)}`);
220
- }
221
- });
222
-
223
- return inBody || `{${bodyStr.join(',')}}`;
224
- } else {
225
- return nodeParams
226
- .filter((param) => {
227
- const refTarget = Vertex.getVertexByRef(param.callInterParam);
228
- return refTarget && refTarget.in === key;
229
- })
230
- .map((param) => {
231
- const refTarget = Vertex.getVertexByRef(param.callInterParam);
232
- const callInterParamValue = nameToCodeForMemberExpression(param.callInterParamValue);
233
- const value = generateNode(callInterParamValue);
234
-
235
- return `${safeCodeAsKey(refTarget)}: ${value}`;
236
- });
208
+ // 增加参数拼接日志信息
209
+ try {
210
+ // 过滤掉 null param
211
+ const nodeParams = (node.params || []).filter((param) => param !== null && param !== 'null' && param !== '');
212
+ if (key === 'body') {
213
+ let inBody = '';
214
+ const bodyStr = [];
215
+ nodeParams.filter((t) => t.callInterParamValue)
216
+ .forEach((b) => {
217
+ const refTarget = Vertex.getVertexByRef(b.callInterParam);
218
+ if (refTarget.in === 'body') {
219
+ inBody = generateNode(b.callInterParamValue);
220
+ } else if (refTarget.in === '') {
221
+ bodyStr.push(`["${refTarget.name}"]: ${generateNode(b.callInterParamValue)}`);
222
+ }
223
+ });
224
+
225
+ return inBody || `{${bodyStr.join(',')}}`;
226
+ } else {
227
+ return nodeParams
228
+ .filter((param) => {
229
+ const refTarget = Vertex.getVertexByRef(param.callInterParam);
230
+ return refTarget && refTarget.in === key;
231
+ })
232
+ .map((param) => {
233
+ const refTarget = Vertex.getVertexByRef(param.callInterParam);
234
+ const callInterParamValue = nameToCodeForMemberExpression(param.callInterParamValue);
235
+ const value = generateNode(callInterParamValue);
236
+
237
+ return `${safeCodeAsKey(refTarget)}: ${value}`;
238
+ });
239
+ }
240
+ } catch (error) {
241
+ console.log('CallLogic calleeCode: ', node.calleeCode);
242
+ console.log('params type: ', key);
243
+ throw error;
237
244
  }
238
245
  };
239
246
  const key = node.interfaceKey || node.callee || '';
@@ -264,30 +271,37 @@ export default function (source) {
264
271
  const key = node.interfaceKey || '';
265
272
  const arr = key.split('/');
266
273
  const getParams = (key) => {
267
- // 过滤掉 null 的 param
268
- const nodeParams = (node.params || []).filter((param) => param !== null && param !== 'null' && param !== '');
269
- if (key === 'body') {
270
- const body = (nodeParams || []).find((param) => {
271
- const refTarget = Vertex.getVertexByRef(param.callInterParam);
272
- return refTarget && refTarget.in === key;
273
- });
274
- if (body) {
275
- return generateNode(body.callInterParamValue);
276
- }
277
- return '{}';
278
- } else {
279
- return nodeParams
280
- .filter((param) => {
274
+ // 增加参数拼接日志信息
275
+ try {
276
+ // 过滤掉 null param
277
+ const nodeParams = (node.params || []).filter((param) => param !== null && param !== 'null' && param !== '');
278
+ if (key === 'body') {
279
+ const body = (nodeParams || []).find((param) => {
281
280
  const refTarget = Vertex.getVertexByRef(param.callInterParam);
282
281
  return refTarget && refTarget.in === key;
283
- })
284
- .map((param) => {
285
- const refTarget = Vertex.getVertexByRef(param.callInterParam);
286
- const callInterParamValue = nameToCodeForMemberExpression(param.callInterParamValue);
287
- const value = generateNode(callInterParamValue);
288
-
289
- return `${safeCodeAsKey(refTarget)}: ${value}`;
290
282
  });
283
+ if (body) {
284
+ return generateNode(body.callInterParamValue);
285
+ }
286
+ return '{}';
287
+ } else {
288
+ return nodeParams
289
+ .filter((param) => {
290
+ const refTarget = Vertex.getVertexByRef(param.callInterParam);
291
+ return refTarget && refTarget.in === key;
292
+ })
293
+ .map((param) => {
294
+ const refTarget = Vertex.getVertexByRef(param.callInterParam);
295
+ const callInterParamValue = nameToCodeForMemberExpression(param.callInterParamValue);
296
+ const value = generateNode(callInterParamValue);
297
+
298
+ return `${safeCodeAsKey(refTarget)}: ${value}`;
299
+ });
300
+ }
301
+ } catch (error) {
302
+ console.log('CallInterface interfaceKey: ', node.interfaceKey);
303
+ console.log('params type: ', key);
304
+ throw error;
291
305
  }
292
306
  };
293
307
 
@@ -1036,15 +1036,26 @@ export class Element extends Vertex {
1036
1036
  }
1037
1037
  } else {
1038
1038
  const expression = <ExpressionNode> this._parseExpression(directive.value, context);
1039
- element.directiveList.push(Directive.from({
1040
- type: expression ? 'string' : 'dynamic',
1041
- name: directive.name,
1042
- rawName: directive.rawName,
1043
- value: expression ? '' : directive.value,
1044
- expression,
1045
- arg: directive.arg,
1046
- modifiers: directive.modifiers,
1047
- }, element));
1039
+ if(!expression || expression.type === 'StringLiteral') { // 处理类似情况:v-auth="''",v-tooltip="''"
1040
+ element.directiveList.push(Directive.from({
1041
+ type: 'string',
1042
+ name: directive.name,
1043
+ rawName: directive.rawName,
1044
+ value: directive.value && directive.value.replace(/'/g, ''),
1045
+ arg: directive.arg,
1046
+ modifiers: directive.modifiers,
1047
+ }, element));
1048
+ } else {
1049
+ element.directiveList.push(Directive.from({
1050
+ type: 'dynamic',
1051
+ name: directive.name,
1052
+ rawName: directive.rawName,
1053
+ value: '',
1054
+ expression,
1055
+ arg: directive.arg,
1056
+ modifiers: directive.modifiers,
1057
+ }, element));
1058
+ }
1048
1059
  }
1049
1060
  });
1050
1061
 
@@ -365,7 +365,7 @@ export class View extends Block {
365
365
  operationAction: actionOptions?.actionName || 'View.create',
366
366
  operationDesc: actionOptions?.actionDesc || `添加子页面"${this.name}${this.title ? `(${this.title})` : ''}"`,
367
367
  headers: {
368
- 'request-lcpAppId': this.page.service.appId,
368
+ 'request-lcpAppId': this.page ? this.page.service.appId : this.parent.page.service.appId,
369
369
  },
370
370
  },
371
371
  body,
@@ -102,9 +102,15 @@ export default {
102
102
  if ((record as any)['cases']) {
103
103
  for (const rec of (record as any)['cases']) {
104
104
  this.pushAll(rec.consequent, { processComponentId, logicId });
105
+ if(rec.test && rec.test.id)
106
+ this.pushAll([rec.test], { processComponentId, logicId });
105
107
  }
106
108
  }
107
109
 
110
+ if ((record as any)['test']) {
111
+ this.pushAll([(record as any)['test']], { processComponentId, logicId });
112
+ }
113
+
108
114
  if ((record as any)['right'] &&
109
115
  (record as any)['right'].level === 'logicNode') {
110
116
  this.pushAll([(record as any)['right']], { processComponentId, logicId });