@lcap/nasl 3.3.2-beta.2 → 3.3.2-beta.4

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 (51) hide show
  1. package/out/bak/translator.js +31 -8
  2. package/out/bak/translator.js.map +1 -1
  3. package/out/common/BaseNode.js +2 -1
  4. package/out/common/BaseNode.js.map +1 -1
  5. package/out/concepts/CallFunction__.js +1 -1
  6. package/out/concepts/CallFunction__.js.map +1 -1
  7. package/out/concepts/CallLogic__.js +2 -46
  8. package/out/concepts/CallLogic__.js.map +1 -1
  9. package/out/concepts/MemberExpression__.js +2 -2
  10. package/out/concepts/MemberExpression__.js.map +1 -1
  11. package/out/concepts/TypeAnnotation__.js +21 -21
  12. package/out/concepts/TypeAnnotation__.js.map +1 -1
  13. package/out/concepts/ViewElement__.js +9 -5
  14. package/out/concepts/ViewElement__.js.map +1 -1
  15. package/out/concepts/View__.d.ts +1 -0
  16. package/out/concepts/View__.js +15 -0
  17. package/out/concepts/View__.js.map +1 -1
  18. package/out/index.d.ts +1 -1
  19. package/out/index.js +5 -1
  20. package/out/index.js.map +1 -1
  21. package/out/natural/transformTSCode.js +27 -5
  22. package/out/natural/transformTSCode.js.map +1 -1
  23. package/out/server/createUiTs.js +1 -1
  24. package/out/server/createUiTs.js.map +1 -1
  25. package/out/service/creator/add.configs.js +3 -0
  26. package/out/service/creator/add.configs.js.map +1 -1
  27. package/out/service/storage/init.d.ts +20 -0
  28. package/out/service/storage/init.js +284 -9
  29. package/out/service/storage/init.js.map +1 -1
  30. package/out/utils/index.d.ts +1 -0
  31. package/out/utils/index.js +14 -1
  32. package/out/utils/index.js.map +1 -1
  33. package/package.json +7 -7
  34. package/sandbox-natural/stdlib/nasl.util.ts +1 -0
  35. package/src/bak/translator.js +42 -21
  36. package/src/common/BaseNode.ts +2 -1
  37. package/src/concepts/CallFunction__.ts +1 -1
  38. package/src/concepts/CallLogic__.ts +3 -48
  39. package/src/concepts/MemberExpression__.ts +2 -2
  40. package/src/concepts/TypeAnnotation__.ts +21 -21
  41. package/src/concepts/ViewElement__.ts +9 -6
  42. package/src/concepts/View__.ts +16 -0
  43. package/src/index.ts +1 -1
  44. package/src/natural/transformTSCode.ts +26 -6
  45. package/src/server/createUiTs.ts +1 -1
  46. package/src/service/creator/add.configs.js +6 -0
  47. package/src/service/storage/init.ts +292 -10
  48. package/src/utils/index.ts +13 -0
  49. package/test/concepts/member-expression/__snapshots__/toJS.spec.ts.snap +1 -1
  50. package/test/concepts/member-expression/__snapshots__/toVue.spec.ts.snap +1 -1
  51. package/test/concepts/view-element/__snapshots__/toVue.spec.ts.snap +1 -22
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lcap/nasl",
3
3
  "description": "NetEase Application Specific Language",
4
- "version": "3.3.2-beta.2",
4
+ "version": "3.3.2-beta.4",
5
5
  "author": "Forrest <rainforest92@126.com>",
6
6
  "scripts": {
7
7
  "clear": "rimraf ./out",
@@ -33,11 +33,11 @@
33
33
  "dsl"
34
34
  ],
35
35
  "dependencies": {
36
- "@babel/core": "^7.22.19",
37
- "@babel/generator": "^7.22.15",
38
- "@babel/parser": "7.13.13",
39
- "@babel/preset-typescript": "^7.22.15",
40
- "axios": "^0.21.4",
36
+ "@babel/core": "7.22.15",
37
+ "@babel/generator": "7.22.15",
38
+ "@babel/parser": "7.22.15",
39
+ "@babel/preset-typescript": "7.22.15",
40
+ "axios": "0.21.4",
41
41
  "compare-versions": "4.1.3",
42
42
  "date-fns": "2.6.0",
43
43
  "decimal.js": "10.4.3",
@@ -46,7 +46,7 @@
46
46
  "json5": "2.2.3",
47
47
  "lodash": "4.17.21",
48
48
  "postcss": "8.4.14",
49
- "qs": "^6.11.2",
49
+ "qs": "6.11.2",
50
50
  "request-pre": "0.4.3",
51
51
  "socket.io-client": "2.4.0",
52
52
  "uglify-js-export": "3.17.4",
@@ -85,6 +85,7 @@ declare namespace nasl.util {
85
85
  export function Clear<T>(struct: T): T;
86
86
  export function Clone<T>(struct: T): T;
87
87
  export function HasValue(...args: Any[]): Boolean;
88
+ // RandomInt 生成的数字为整数,如果需要指定位数的随机数,需要在数字前按照位数要求补 0
88
89
  export function RandomInt(start: Integer, end: Integer): Integer;
89
90
 
90
91
  // New 系列函数使用
@@ -1,5 +1,5 @@
1
1
  import { PAGE_COMPONENT_INCLUDE_TAG_MAP } from '..'
2
-
2
+ import { attrConvertCamelCase } from '../utils/index'
3
3
  function safeCodeAsKey(name) {
4
4
  return `['${name}']`;
5
5
  }
@@ -74,28 +74,49 @@ export default function (definition) {
74
74
  */
75
75
  const viewComputedData = []
76
76
  const viewMethodData = []
77
+ definition.elementsAll.forEach(el => {
78
+ el.bindAttrs.forEach(attr => {
79
+ let variable = '';
80
+ if (attr.expression) {
81
+ variable += `${attr.expression?.toJS()}`
82
+ } else if (attr.type === 'static') {
83
+ variable = `${attr.value}`
84
+ }
85
+ if (attr.expression?.concept === 'CallLogic' && attr.name === 'data-source') {
86
+ const codeLoad = `async '__${el.name}_dataSourceLoad'(params) {
87
+ this['__${el.name}_params'] = {...params};
88
+ return ${variable}
89
+ }`
90
+ viewMethodData.push(codeLoad)
91
+ }
92
+ })
93
+ })
77
94
  definition.elements.forEach(element => {
78
95
  element.bindAttrs.filter((attr) => PAGE_COMPONENT_INCLUDE_TAG_MAP[element.tag]?.[attr.name]).forEach(attr => {
79
- let variable = ''
80
- if (attr.expression) {
81
- variable += `${attr.expression.toJS()}`
82
- // attrsData.push(code)
83
- } else if (attr.type === 'static') {
84
- variable = `${attr.value}`
85
- // attrsData.push(code)
86
- }
87
- if (attr.name === 'data-source' && attr.expression && variable.includes('await')) {
88
- const code = `async '__${element.name}_${attr.name}'() {
89
- const params = {}
90
- return ${variable}
91
- }`
92
- viewMethodData.push(code)
93
- } else {
94
- const code = `'__${element.name}_${attr.name}'(${variable.includes('(current || {}).item') ? 'current' : ''}) {
95
- return ${variable?.trim()?.length > 0 ? variable : undefined}
96
- }`
97
- viewMethodData.push(code)
98
- }
96
+ let variable = '';
97
+ if (attr.expression) {
98
+ variable += `${attr.expression.toJS()}`
99
+ // attrsData.push(code)
100
+ } else if (attr.type === 'static') {
101
+ variable = `${attr.value}`
102
+ // attrsData.push(code)
103
+ }
104
+ if (attr.expression?.concept === 'CallLogic' && attr.name === 'data-source') {
105
+ const codeLoad = `async '__${element.name}_dataSourceLoad'(params) {
106
+ this['__${element.name}_params'] = {...params};
107
+ return ${variable}
108
+ }`
109
+ viewMethodData.push(codeLoad)
110
+ const code = `async '__${element.name}_dataSource'(params) {
111
+ return ${variable}
112
+ }`
113
+ viewMethodData.push(code)
114
+ } else {
115
+ const code = `'__${element.name}_${attrConvertCamelCase(attr.name)}'(${variable.includes('(current || {}).item') ? 'current' : ''}) {
116
+ return ${variable?.trim()?.length > 0 ? variable : undefined}
117
+ }`
118
+ viewMethodData.push(code)
119
+ }
99
120
  })
100
121
  viewVariablesData.push(`['__${element.name}_params']: {}`);
101
122
  // if (['u-select', 'van-pickerson'].includes(element.tag)) {
@@ -1186,7 +1186,8 @@ export class BaseNode extends EventEmitter {
1186
1186
  this.concept === 'Param' ||
1187
1187
  this.concept === 'Return' ||
1188
1188
  this.concept === 'StructureProperty' ||
1189
- this.concept === 'Variable'
1189
+ this.concept === 'Variable' ||
1190
+ this.concept === 'FrontendVariable'
1190
1191
  ) {
1191
1192
  if ((this as any).typeAnnotation || (this.__TypeAnnotation && this.parentKey === 'virtualParams')) {
1192
1193
  return !this.hasChildren;
@@ -375,7 +375,7 @@ export class CallFunction extends LogicItem {
375
375
  const argTypeAnnotation = arg.typeAnnotation || arg.__TypeAnnotation;
376
376
 
377
377
  if (needToString) {
378
- argStr = `$utils['ToString']('${argTypeAnnotation?.sortedTypeKey}', ${argStr})`;
378
+ argStr = `$utils['ToString'](${argStr}, '${argTypeAnnotation?.sortedTypeKey}')`;
379
379
  } else if (['HasValue'].includes(this.calleeName)) {
380
380
  argStr = `{ type: '${argTypeAnnotation?.sortedTypeKey}', value: ${argStr} }`;
381
381
  }
@@ -713,54 +713,8 @@ export class CallLogic extends LogicItem {
713
713
  if (this.concept === 'CallLogic' && this.getAncestor('BindAttribute')?.name === 'data-source') {
714
714
  if (this.calleeNamespace) {
715
715
  const currentElement = this.getAncestor('ViewElement') as ViewElement;
716
- code += '(params) => {\n';
717
- code += `this['__${currentElement.name}_params'] = {...params};\n`;
718
- code += `return this.$logics['${
719
- this.calleeNamespace ? `${this.calleeNamespace}.${this.calleeName}` : this.calleeName
720
- }']`;
721
- code += `({
722
- config: {
723
- download: false,
724
- },
725
- query: {},`;
726
- code += `
727
- headers: {
728
- "lcap-calllogic-uuid": "${this.uuid}",
729
- },
730
- `;
731
- code += `path: {},
732
- body: {`;
733
- const logic = getNodeByNodeCallee(this.app, this.calleewholeKey, (key: string, tempPoint: any) => {
734
- // 处理 NASL 中未定义的假的节点
735
- if (key === tempPoint?.name) {
736
- return {
737
- tempPoint,
738
- state: 1,
739
- };
740
- }
741
- const t = tempPoint?.[key];
742
- return {
743
- tempPoint: t,
744
- state: Array.isArray(t) ? 2 : 1,
745
- };
746
- });
747
- const args = logic?.params || [];
748
- const argsStr = args
749
- .map((arg: any, index: number) => {
750
- const actualArg = completeArguments[index];
751
- return {
752
- keyword: arg?.name,
753
- arg: actualArg,
754
- };
755
- })
756
- .map((obj: any) => `\n${obj?.keyword}: ${obj?.arg?.toVue(options)}`)
757
- .join(', ');
758
- code += argsStr;
759
- if (Array.isArray(this.typeArguments) && this.typeArguments.length) {
760
- code += `,\n__typeArguments: ${JSON5.stringify(this.typeArguments)}`;
761
- }
762
- code += '\n}';
763
- code += '}';
716
+ code += `__${currentElement.name}_dataSourceLoad`;
717
+ return code
764
718
  } else {
765
719
  // 前端逻辑的calleeNamespace一直为空字符串
766
720
  code += this.calleeName;
@@ -879,6 +833,7 @@ export class CallLogic extends LogicItem {
879
833
  const logic = this.getCallNode();
880
834
  const args = logic?.params || [];
881
835
  const keywordEntitiesIndex = findConceptKeyWordIndexFromNamespace(this.calleeNamespace, 'entities');
836
+
882
837
  code += `this.$logics['${
883
838
  this.calleeNamespace ? `${this.calleeNamespace}.${this.calleeName}` : this.calleeName
884
839
  }']`;
@@ -187,7 +187,7 @@ export class MemberExpression extends LogicItem {
187
187
  propertyName = namespaceList[0];
188
188
  subProperty = namespaceList?.[1] ? `?.()['${namespaceList?.[1]}']` : '';
189
189
  }
190
- return `this['__${elementName}_${propertyName}']${subProperty}`;
190
+ return `__${elementName}_${attrConvertCamelCase(propertyName)}${subProperty}`;
191
191
  } else if (
192
192
  this.object instanceof MemberExpression &&
193
193
  this.object?.object?.name === 'elements' &&
@@ -283,7 +283,7 @@ export class MemberExpression extends LogicItem {
283
283
  propertyName = namespaceList[0];
284
284
  subProperty = namespaceList?.[1] ? `?.()['${namespaceList?.[1]}']` : '';
285
285
  }
286
- return `this['__${elementName}_${propertyName}']${subProperty}`;
286
+ return `this['__${elementName}_${attrConvertCamelCase(propertyName)}']${subProperty}`;
287
287
  } else if (
288
288
  this.object instanceof MemberExpression &&
289
289
  this.object?.object?.name === 'elements' &&
@@ -619,13 +619,13 @@ export class TypeAnnotation extends BaseNode {
619
619
  if (this.typeKind === 'primitive' || this.typeKind === 'reference') {
620
620
  return `${this.typeNamespace}.${this.typeName}`;
621
621
  } else if (this.typeKind === 'generic') {
622
- return `${this.typeNamespace}.${this.typeName}<${(this.typeArguments || []).map((arg) => arg.typeKey)}>`;
622
+ return `${this.typeNamespace}.${this.typeName}<${(this.typeArguments || []).map((arg) => arg?.typeKey)}>`;
623
623
  } else if (this.typeKind === 'anonymousStructure') {
624
624
  return `{ ${this.properties
625
- .map(({ name, typeAnnotation }) => `${name}: ${typeAnnotation ? typeAnnotation.typeKey : '未知'}`)
625
+ .map(({ name, typeAnnotation }) => `${name}: ${typeAnnotation ? typeAnnotation?.typeKey : '未知'}`)
626
626
  .join(', ')} }`;
627
627
  } else if (this.typeKind === 'union') {
628
- return `${this.typeArguments.map((arg) => arg.typeKey).join(' | ')}`;
628
+ return `${this.typeArguments.map((arg) => arg?.typeKey).join(' | ')}`;
629
629
  } else {
630
630
  return this.typeName;
631
631
  }
@@ -637,12 +637,12 @@ export class TypeAnnotation extends BaseNode {
637
637
  // 按匿名数据结构的key排序
638
638
  return `{${[...this.properties]
639
639
  .sort(({ name: name1 }, { name: name2 }) => (name1 > name2 ? 1 : -1))
640
- .map(({ name, typeAnnotation }) => `${name}: ${typeAnnotation ? typeAnnotation.sortedTypeKey : '未知'}`)
640
+ .map(({ name, typeAnnotation }) => `${name}: ${typeAnnotation ? typeAnnotation?.sortedTypeKey : '未知'}`)
641
641
  .join(', ')}}`;
642
642
  } else if (this.typeKind === 'union') {
643
643
  // 按返回的每个具体项排序
644
644
  return `${this.typeArguments
645
- .map((arg) => arg.sortedTypeKey)
645
+ .map((arg) => arg?.sortedTypeKey)
646
646
  .sort((name1, name2) => (name1 > name2 ? 1 : -1))
647
647
  .join(' | ')}`;
648
648
  }
@@ -659,7 +659,7 @@ export class TypeAnnotation extends BaseNode {
659
659
  code += '<';
660
660
  if (Array.isArray(this.typeArguments) && this.typeArguments.length) {
661
661
  // 必须按typeArguments定义的顺序,否则实参位置不对
662
- code += `${(this.typeArguments || []).map((arg) => arg.sortedTypeKey).join(', ')}`;
662
+ code += `${(this.typeArguments || []).map((arg) => arg?.sortedTypeKey).join(', ')}`;
663
663
  }
664
664
  code += '>';
665
665
  return code;
@@ -720,14 +720,14 @@ export class TypeAnnotation extends BaseNode {
720
720
  return this.typeName;
721
721
  } else if (this.typeKind === 'generic') {
722
722
  return `${this.typeName}<${
723
- !this.typeArguments.length ? 'T' : this.typeArguments.map((arg) => arg.typeTitle || arg.name || 'T').join(', ')
723
+ !this.typeArguments.length ? 'T' : this.typeArguments.map((arg) => arg?.typeTitle || arg?.name || 'T').join(', ')
724
724
  }>`;
725
725
  } else if (this.typeKind === 'anonymousStructure') {
726
726
  return `{ ${this.properties
727
- ?.map(({ name, typeAnnotation }) => `${name}: ${typeAnnotation ? typeAnnotation.typeTitle : '未知'}`)
727
+ ?.map(({ name, typeAnnotation }) => `${name}: ${typeAnnotation ? typeAnnotation?.typeTitle : '未知'}`)
728
728
  .join(', ')} }`;
729
729
  } else if (this.typeKind === 'union') {
730
- return `${this.typeArguments.map((arg) => arg.typeTitle || arg.name).join(' 或 ')}`;
730
+ return `${this.typeArguments.map((arg) => arg?.typeTitle || arg?.name).join(' 或 ')}`;
731
731
  } else {
732
732
  return this.typeName;
733
733
  }
@@ -748,14 +748,14 @@ export class TypeAnnotation extends BaseNode {
748
748
  return `${this.typeName}<${
749
749
  !this.typeArguments.length
750
750
  ? 'T'
751
- : this.typeArguments.map((arg) => arg.typeInlineTitle || arg.name || 'T').join(', ')
751
+ : this.typeArguments.map((arg) => arg?.typeInlineTitle || arg?.name || 'T').join(', ')
752
752
  }>`;
753
753
  } else if (this.typeKind === 'anonymousStructure') {
754
754
  return `{ ${this.properties
755
- ?.map(({ name, typeAnnotation }) => `${name}: ${typeAnnotation ? typeAnnotation.typeInlineTitle : '未知'}`)
755
+ ?.map(({ name, typeAnnotation }) => `${name}: ${typeAnnotation ? typeAnnotation?.typeInlineTitle : '未知'}`)
756
756
  .join(', ')} }`;
757
757
  } else if (this.typeKind === 'union') {
758
- return `${this.typeArguments.map((arg) => arg.typeInlineTitle || arg.name).join(' 或 ')}`;
758
+ return `${this.typeArguments.map((arg) => arg?.typeInlineTitle || arg?.name).join(' 或 ')}`;
759
759
  } else {
760
760
  return this.typeName;
761
761
  }
@@ -770,13 +770,13 @@ export class TypeAnnotation extends BaseNode {
770
770
  } else if (this.typeKind === 'reference') {
771
771
  return this.typeName;
772
772
  } else if (this.typeKind === 'generic') {
773
- return `${this.typeName}<${this.typeArguments.map((arg) => arg.typeChineseTitle || arg.name || 'T').join(', ')}>`;
773
+ return `${this.typeName}<${this.typeArguments.map((arg) => arg?.typeChineseTitle || arg?.name || 'T').join(', ')}>`;
774
774
  } else if (this.typeKind === 'anonymousStructure') {
775
775
  return `{ ${this.properties
776
776
  ?.map(({ name, typeAnnotation }) => `${name}: ${typeAnnotation ? typeAnnotation.typeChineseTitle : '未知'}`)
777
777
  .join(', ')} }`;
778
778
  } else if (this.typeKind === 'union') {
779
- return `${this.typeArguments.map((arg) => arg.typeChineseTitle || arg.name).join(' 或 ')}`;
779
+ return `${this.typeArguments.map((arg) => arg?.typeChineseTitle || arg?.name).join(' 或 ')}`;
780
780
  } else {
781
781
  return this.typeName;
782
782
  }
@@ -934,7 +934,7 @@ export class TypeAnnotation extends BaseNode {
934
934
  } else if (this.typeKind === 'generic') {
935
935
  let code = `${this.tsCalleeNamespace}.${this.typeName}<`;
936
936
  (this.typeArguments || []).forEach((arg, index) => {
937
- code += arg.toEmbeddedTS(shiftState(state, code, { inline: true }));
937
+ code += arg?.toEmbeddedTS(shiftState(state, code, { inline: true }));
938
938
  if (index !== this.typeArguments.length - 1) code += ', ';
939
939
  });
940
940
  code += '>';
@@ -942,7 +942,7 @@ export class TypeAnnotation extends BaseNode {
942
942
  } else if (this.typeKind === 'union') {
943
943
  let code = '';
944
944
  (this.typeArguments || []).forEach((arg, index) => {
945
- code += arg.toEmbeddedTS(shiftState(state, code, { inline: true }));
945
+ code += arg?.toEmbeddedTS(shiftState(state, code, { inline: true }));
946
946
  if (index !== this.typeArguments.length - 1) code += ' | ';
947
947
  });
948
948
  return code;
@@ -952,7 +952,7 @@ export class TypeAnnotation extends BaseNode {
952
952
  code += `${property.name}: `;
953
953
  code += `${
954
954
  property.typeAnnotation
955
- ? property.typeAnnotation.toEmbeddedTS(
955
+ ? property.typeAnnotation?.toEmbeddedTS(
956
956
  shiftState(state, code, { inline: true, tabSize: (state?.tabSize || 0) + 1 }),
957
957
  )
958
958
  : '`未知`'
@@ -984,7 +984,7 @@ export class TypeAnnotation extends BaseNode {
984
984
  if (this.typeKind === 'generic') {
985
985
  let code = `${this.typeName}<`;
986
986
  (this.typeArguments || []).forEach((arg, index) => {
987
- code += arg.toNaturalTS(shiftState(state, code, { inline: true }));
987
+ code += arg?.toNaturalTS(shiftState(state, code, { inline: true }));
988
988
  if (index !== this.typeArguments.length - 1)
989
989
  code += ', ';
990
990
  });
@@ -994,7 +994,7 @@ export class TypeAnnotation extends BaseNode {
994
994
  if (this.typeKind === 'union') {
995
995
  let code = '';
996
996
  (this.typeArguments || []).forEach((arg, index) => {
997
- code += arg.toNaturalTS(shiftState(state, code, { inline: true }));
997
+ code += arg?.toNaturalTS(shiftState(state, code, { inline: true }));
998
998
  if (index !== this.typeArguments.length - 1)
999
999
  code += ' | ';
1000
1000
  });
@@ -1004,7 +1004,7 @@ export class TypeAnnotation extends BaseNode {
1004
1004
  let code = `{ `;
1005
1005
  (this.properties || []).forEach((property, i) => {
1006
1006
  code += `${property.name}: `;
1007
- code += `${property.typeAnnotation.toNaturalTS(shiftState(state, code, { inline: true, tabSize: state.tabSize + 1 }))}`;
1007
+ code += `${property.typeAnnotation?.toNaturalTS(shiftState(state, code, { inline: true, tabSize: state.tabSize + 1 }))}`;
1008
1008
  code += i < this.properties?.length - 1 ? ', ' : ' }';
1009
1009
  });
1010
1010
  return code;
@@ -1156,7 +1156,7 @@ export class TypeAnnotation extends BaseNode {
1156
1156
  typeAnnotation1.typeArguments = this.sortedTypeKey;
1157
1157
  }
1158
1158
  if (typeAnnotation2.typeArguments) {
1159
- typeAnnotation2.typeArguments = typeAnnotation.sortedTypeKey;
1159
+ typeAnnotation2.typeArguments = typeAnnotation?.sortedTypeKey;
1160
1160
  }
1161
1161
  return JSON.stringify(typeAnnotation1) === JSON.stringify(typeAnnotation2);
1162
1162
  }
@@ -1558,7 +1558,7 @@ export class ViewElement extends BaseNode {
1558
1558
  currentLevel,
1559
1559
  );
1560
1560
  });
1561
-
1561
+
1562
1562
  if (['u-select', 'van-pickerson'].includes(this.tag)) {
1563
1563
  code += indent((state?.tabSize || 0) + 3);
1564
1564
  code += `pageNumber: nasl.core.Long\n`;
@@ -2006,11 +2006,14 @@ export class ViewElement extends BaseNode {
2006
2006
  utils.traverse(
2007
2007
  (current) => {
2008
2008
  const node = current.node as any;
2009
- if (node.concept === 'CallLogic' && /elements.(.+).logics/.test(node.calleeNamespace)) {
2010
- const oldName = node.calleeNamespace.split('.')[1];
2011
- if (nameMap.has(oldName)) {
2012
- const newName = nameMap.get(oldName);
2013
- node.calleeNamespace = `elements.${newName}.logics`;
2009
+ if (node.concept === 'CallLogic') {
2010
+ node.uuid = uuidv4().replace(/-/g, '');
2011
+ if (/elements.(.+).logics/.test(node.calleeNamespace)) {
2012
+ const oldName = node.calleeNamespace.split('.')[1];
2013
+ if (nameMap.has(oldName)) {
2014
+ const newName = nameMap.get(oldName);
2015
+ node.calleeNamespace = `elements.${newName}.logics`
2016
+ }
2014
2017
  }
2015
2018
  }
2016
2019
  },
@@ -1753,7 +1753,9 @@ export class View extends BaseNode {
1753
1753
  */
1754
1754
  genScript() {
1755
1755
  const componentList: Array<ViewElement> = [];
1756
+ const componentListExtra: Array<ViewElement> = [];
1756
1757
  this.elementsAttrs(this.elements, componentList);
1758
+ this.elementsAttrsAll(this.elements, componentListExtra)
1757
1759
  const definition = {
1758
1760
  params: this.params,
1759
1761
  variables: this.variables,
@@ -1766,6 +1768,7 @@ export class View extends BaseNode {
1766
1768
  viewBindEvents: this.getViewBindEvents(),
1767
1769
  viewExpressions: this.getViewExpressions(),
1768
1770
  elements: componentList,
1771
+ elementsAll: componentListExtra
1769
1772
  };
1770
1773
  let code = '';
1771
1774
  let mixin = '';
@@ -1931,6 +1934,19 @@ export class View extends BaseNode {
1931
1934
  }
1932
1935
  }
1933
1936
 
1937
+ elementsAttrsAll(elements: Array<ViewElement>, componentListExtra: Array<ViewElement>) {
1938
+ if (elements) {
1939
+ elements.forEach((item: ViewElement) => {
1940
+ if (!PAGE_COMPONENT_INCLUDE_TAG_MAP?.[item.tag]) {
1941
+ componentListExtra.push(item);
1942
+ }
1943
+ if (item.children.length > 0) {
1944
+ this.elementsAttrsAll(item.children, componentListExtra);
1945
+ }
1946
+ });
1947
+ }
1948
+ }
1949
+
1934
1950
  @withSourceMap()
1935
1951
  toEmbeddedTS(state = createCompilerState()): string {
1936
1952
  function chineseTsName(name: string) {
package/src/index.ts CHANGED
@@ -8,6 +8,6 @@ export * as utils from './utils';
8
8
  export * from './config';
9
9
  export * from './eventBus';
10
10
  export * as breakpoint from './breakpoint';
11
- export { loadApp, loadAppSync, handleApp, batchAction, batchQuery, mountDatabaseTypes } from './service/storage/init';
11
+ export { operationRecordInfoMap, doOperationRecord, operationRecordQuery, operationRecordPlayback, loadApp, loadAppSync, handleApp, batchAction, batchQuery, mountDatabaseTypes } from './service/storage/init';
12
12
  export { createService } from './service/creator';
13
13
  export * from './natural';
@@ -224,7 +224,7 @@ export function transformTSCode(tsCode: string, contextLogicName: string, type?:
224
224
  }
225
225
 
226
226
  function isPageLogic(logicName: string) {
227
- return logicName.includes('on_') || logicName.includes('viewLogic_')
227
+ return logicName.includes('on_') || logicName.includes('viewLogic_');
228
228
  }
229
229
 
230
230
  function transformLogicNode(node: babelTypes.Node, typeAnnotation?: naslTypes.TypeAnnotation): naslTypes.LogicItem {
@@ -232,6 +232,7 @@ export function transformTSCode(tsCode: string, contextLogicName: string, type?:
232
232
  // console.log('lemon ~~~ node--1:', node);
233
233
  if (node.type === 'VariableDeclaration') { // 拆成局部变量和赋值
234
234
  const declList = node?.declarations || [];
235
+ let newNode;
235
236
  declList?.forEach((decl) => {
236
237
  const variableName = (decl.id as babelTypes.Identifier).name;
237
238
  if (!logic.variables.find((variable) => variable.name === variableName)) {
@@ -246,16 +247,16 @@ export function transformTSCode(tsCode: string, contextLogicName: string, type?:
246
247
  if (type === 'expression') {
247
248
  return transformLogicNode(decl.init);
248
249
  }
249
- const item = new naslTypes.Assignment({
250
+ newNode = new naslTypes.Assignment({
250
251
  left: new naslTypes.Identifier({
251
252
  name: variableName,
252
253
  }),
253
254
  right: transformLogicNode(decl.init),
254
255
  });
255
- item && logic.body.push(item);
256
256
  }
257
257
  }
258
258
  });
259
+ if (newNode) return newNode;
259
260
  } else if (node.type === 'CallExpression') {
260
261
  const callee = flatMemberExpression(node.callee);
261
262
  const calleeName = generate(node.callee as any).code;
@@ -332,9 +333,9 @@ export function transformTSCode(tsCode: string, contextLogicName: string, type?:
332
333
  }
333
334
 
334
335
  let typeNamespace: string;
335
- if (argument?.[argument.length - 1]?.type === 'ObjectExpression') {
336
- typeNamespace = argument.splice(-1)[0].properties[0].value.value;
337
- }
336
+ // if (argument?.[argument.length - 1]?.type === 'ObjectExpression') {
337
+ // typeNamespace = argument.splice(-1)[0].properties[0].value.value;
338
+ // }
338
339
  const nodeElement = new naslTypes.CallFunction({
339
340
  calleeNamespace: 'nasl.util',
340
341
  calleeName: curCalleeName,
@@ -736,6 +737,25 @@ export function transformTSCode(tsCode: string, contextLogicName: string, type?:
736
737
  });
737
738
  } else if (node.type === 'BlockStatement') {
738
739
  return transformLogicNode(node?.body?.[0]);
740
+ } else if (node.type === 'ObjectExpression' && node?.properties?.length > 0) {
741
+ const properties: any = [];
742
+ const rights: any = [];
743
+ const structureProperties: any = [];
744
+ node?.properties?.forEach((arg: any) => {
745
+ properties.push(transformLogicNode(arg.key));
746
+ rights.push(new naslTypes.SelectMembers({
747
+ expression: transformLogicNode(arg.value)
748
+ }));
749
+ structureProperties.push(new naslTypes.StructureProperty({
750
+ name: arg?.key?.name,
751
+ typeAnnotation: null
752
+ }));
753
+ });
754
+ return new naslTypes.NewComposite({
755
+ typeAnnotation: naslTypes.TypeAnnotation.createTypeAnonymousStructure(structureProperties),
756
+ properties,
757
+ rights,
758
+ });
739
759
  } else {
740
760
  console.error(node);
741
761
  if (debug) {
@@ -267,7 +267,7 @@ export default function formatUiTs(allComponent: any) {
267
267
  value += '}\n';
268
268
  }
269
269
  value += '}\n';
270
- console.log('组件ts', value);
270
+ // console.log('组件ts', value);
271
271
  // console.log(elementsLogic);
272
272
  // const elementsEventsMap = getAllComponentEventMap(allComponent);
273
273
  return {
@@ -7,6 +7,7 @@ const isPromise = function (func) {
7
7
 
8
8
  function httpCode(response, params, requestInfo) {
9
9
  const data = response.data;
10
+
10
11
  if ((data.code === undefined) || (data.code + '').startsWith('2')) {
11
12
  return response;
12
13
  }
@@ -19,6 +20,11 @@ function httpCode(response, params, requestInfo) {
19
20
  window.location.href = '/login';
20
21
  }
21
22
  }
23
+
24
+ if (data) {
25
+ data.request = response?.request;
26
+ }
27
+
22
28
  return Promise.reject(data);
23
29
  }
24
30