@lcap/nasl 3.6.0-alpha.1 → 3.6.0-alpha.2

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 (245) hide show
  1. package/out/bak/translator.js +119 -39
  2. package/out/bak/translator.js.map +1 -1
  3. package/out/breakpoint/generator/BreakpointNode.d.ts +3 -0
  4. package/out/breakpoint/generator/BreakpointNode.js +9 -0
  5. package/out/breakpoint/generator/BreakpointNode.js.map +1 -1
  6. package/out/breakpoint/shared/constants.js +1 -0
  7. package/out/breakpoint/shared/constants.js.map +1 -1
  8. package/out/breakpoint/shared/utils.js +12 -6
  9. package/out/breakpoint/shared/utils.js.map +1 -1
  10. package/out/breakpoint/store/core.js +1 -1
  11. package/out/breakpoint/store/core.js.map +1 -1
  12. package/out/common/BaseNode.d.ts +1 -4
  13. package/out/common/BaseNode.js +23 -37
  14. package/out/common/BaseNode.js.map +1 -1
  15. package/out/concepts/AnonymousFunction__.d.ts +6 -1
  16. package/out/concepts/AnonymousFunction__.js +34 -16
  17. package/out/concepts/AnonymousFunction__.js.map +1 -1
  18. package/out/concepts/App__.d.ts +55 -51
  19. package/out/concepts/App__.js +76 -80
  20. package/out/concepts/App__.js.map +1 -1
  21. package/out/concepts/BackendVariable__.js +10 -2
  22. package/out/concepts/BackendVariable__.js.map +1 -1
  23. package/out/concepts/BindAttribute__.js +16 -6
  24. package/out/concepts/BindAttribute__.js.map +1 -1
  25. package/out/concepts/BindDirective__.d.ts +1 -0
  26. package/out/concepts/BindDirective__.js +19 -4
  27. package/out/concepts/BindDirective__.js.map +1 -1
  28. package/out/concepts/BindEvent__.d.ts +3 -1
  29. package/out/concepts/BindEvent__.js +39 -14
  30. package/out/concepts/BindEvent__.js.map +1 -1
  31. package/out/concepts/BusinessComponent__.d.ts +641 -0
  32. package/out/concepts/BusinessComponent__.js +1921 -0
  33. package/out/concepts/BusinessComponent__.js.map +1 -0
  34. package/out/concepts/BusinessLogic__.d.ts +38 -0
  35. package/out/concepts/BusinessLogic__.js +358 -0
  36. package/out/concepts/BusinessLogic__.js.map +1 -0
  37. package/out/concepts/CallEvent__.d.ts +101 -0
  38. package/out/concepts/CallEvent__.js +280 -0
  39. package/out/concepts/CallEvent__.js.map +1 -0
  40. package/out/concepts/CallFunction__.d.ts +0 -1
  41. package/out/concepts/CallFunction__.js +10 -10
  42. package/out/concepts/CallFunction__.js.map +1 -1
  43. package/out/concepts/CallLogic__.d.ts +2 -0
  44. package/out/concepts/CallLogic__.js +38 -27
  45. package/out/concepts/CallLogic__.js.map +1 -1
  46. package/out/concepts/Constant__.js +7 -6
  47. package/out/concepts/Constant__.js.map +1 -1
  48. package/out/concepts/Destination__.d.ts +1 -1
  49. package/out/concepts/Destination__.js +7 -5
  50. package/out/concepts/Destination__.js.map +1 -1
  51. package/out/concepts/End__.js +2 -1
  52. package/out/concepts/End__.js.map +1 -1
  53. package/out/concepts/Event__.d.ts +14 -0
  54. package/out/concepts/Event__.js +61 -0
  55. package/out/concepts/Event__.js.map +1 -1
  56. package/out/concepts/FrontendType__.d.ts +308 -0
  57. package/out/concepts/FrontendType__.js +605 -0
  58. package/out/concepts/FrontendType__.js.map +1 -0
  59. package/out/concepts/Frontend__.d.ts +0 -88
  60. package/out/concepts/Frontend__.js +1 -143
  61. package/out/concepts/Frontend__.js.map +1 -1
  62. package/out/concepts/Identifier__.d.ts +5 -0
  63. package/out/concepts/Identifier__.js +19 -9
  64. package/out/concepts/Identifier__.js.map +1 -1
  65. package/out/concepts/LogicItem__.d.ts +1 -1
  66. package/out/concepts/LogicItem__.js.map +1 -1
  67. package/out/concepts/Logic__.d.ts +3 -1
  68. package/out/concepts/Logic__.js +31 -21
  69. package/out/concepts/Logic__.js.map +1 -1
  70. package/out/concepts/Match__.d.ts +1 -1
  71. package/out/concepts/MemberExpression__.d.ts +1 -1
  72. package/out/concepts/MemberExpression__.js +3 -3
  73. package/out/concepts/MemberExpression__.js.map +1 -1
  74. package/out/concepts/NewComposite__.js.map +1 -1
  75. package/out/concepts/ParamWithGroup__.d.ts +39 -0
  76. package/out/concepts/ParamWithGroup__.js +85 -0
  77. package/out/concepts/ParamWithGroup__.js.map +1 -0
  78. package/out/concepts/Param__.js +11 -3
  79. package/out/concepts/Param__.js.map +1 -1
  80. package/out/concepts/ProcessElement__.js +9 -1
  81. package/out/concepts/ProcessElement__.js.map +1 -1
  82. package/out/concepts/Return__.js +17 -9
  83. package/out/concepts/Return__.js.map +1 -1
  84. package/out/concepts/ValidationRule__.js +2 -1
  85. package/out/concepts/ValidationRule__.js.map +1 -1
  86. package/out/concepts/Variable__.js +17 -8
  87. package/out/concepts/Variable__.js.map +1 -1
  88. package/out/concepts/ViewElement__.d.ts +17 -1
  89. package/out/concepts/ViewElement__.js +145 -16
  90. package/out/concepts/ViewElement__.js.map +1 -1
  91. package/out/concepts/View__.js +21 -20
  92. package/out/concepts/View__.js.map +1 -1
  93. package/out/concepts/index__.d.ts +5 -0
  94. package/out/concepts/index__.js +5 -0
  95. package/out/concepts/index__.js.map +1 -1
  96. package/out/concepts/utils/asserts.d.ts +258 -3
  97. package/out/concepts/utils/asserts.js +351 -13
  98. package/out/concepts/utils/asserts.js.map +1 -1
  99. package/out/concepts/utils/types.d.ts +20 -3
  100. package/out/generator/genBundleFiles.js +25 -11
  101. package/out/generator/genBundleFiles.js.map +1 -1
  102. package/out/generator/genReleaseBody.js +12 -3
  103. package/out/generator/genReleaseBody.js.map +1 -1
  104. package/out/generator/permission.js +3 -3
  105. package/out/generator/permission.js.map +1 -1
  106. package/out/natural/transformTSCode.js +1 -1
  107. package/out/natural/transformTSCode.js.map +1 -1
  108. package/out/server/extendBaseNode.js +6 -4
  109. package/out/server/extendBaseNode.js.map +1 -1
  110. package/out/server/getLogics.js +62 -27
  111. package/out/server/getLogics.js.map +1 -1
  112. package/out/server/getMemberIdentifier.js +6 -1
  113. package/out/server/getMemberIdentifier.js.map +1 -1
  114. package/out/server/getProcesses.js +3 -3
  115. package/out/server/getProcesses.js.map +1 -1
  116. package/out/server/naslServer.js +40 -19
  117. package/out/server/naslServer.js.map +1 -1
  118. package/out/server/translator.js +6 -1
  119. package/out/server/translator.js.map +1 -1
  120. package/out/service/storage/init.js +1 -2
  121. package/out/service/storage/init.js.map +1 -1
  122. package/out/templator/genCreateBlock.js +6 -6
  123. package/out/templator/genCreateBlock.js.map +1 -1
  124. package/out/templator/genCurdEditMultipleKeyBlock.js +16 -16
  125. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  126. package/out/templator/genCurdMultipleKeyBlock.js +36 -36
  127. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  128. package/out/templator/genGetBlock.js +6 -5
  129. package/out/templator/genGetBlock.js.map +1 -1
  130. package/out/templator/genGridViewBlock.js +12 -12
  131. package/out/templator/genGridViewBlock.js.map +1 -1
  132. package/out/templator/genListViewBlock.js +4 -4
  133. package/out/templator/genListViewBlock.js.map +1 -1
  134. package/out/templator/genSelectBlock.js +3 -3
  135. package/out/templator/genSelectBlock.js.map +1 -1
  136. package/out/templator/genTableBlock.js +10 -10
  137. package/out/templator/genTableBlock.js.map +1 -1
  138. package/out/templator/genUpdateBlock.js +10 -9
  139. package/out/templator/genUpdateBlock.js.map +1 -1
  140. package/out/templator/utils.d.ts +2 -2
  141. package/out/templator/utils.js.map +1 -1
  142. package/out/translator/utils.js +12 -1
  143. package/out/translator/utils.js.map +1 -1
  144. package/out/utils/i18nInfo.js +7 -2
  145. package/out/utils/i18nInfo.js.map +1 -1
  146. package/out/utils/index.d.ts +17 -0
  147. package/out/utils/index.js +184 -1
  148. package/out/utils/index.js.map +1 -1
  149. package/package.json +2 -2
  150. package/src/bak/translator.js +121 -43
  151. package/src/breakpoint/generator/BreakpointNode.ts +12 -0
  152. package/src/breakpoint/shared/constants.ts +1 -0
  153. package/src/breakpoint/shared/utils.ts +13 -8
  154. package/src/breakpoint/store/core.ts +1 -1
  155. package/src/common/BaseNode.ts +22 -41
  156. package/src/concepts/AnonymousFunction__.ts +36 -18
  157. package/src/concepts/App__.ts +129 -130
  158. package/src/concepts/BackendVariable__.ts +10 -2
  159. package/src/concepts/BindAttribute__.ts +14 -6
  160. package/src/concepts/BindDirective__.ts +19 -4
  161. package/src/concepts/BindEvent__.ts +41 -13
  162. package/src/concepts/BusinessComponent__.ts +2693 -0
  163. package/src/concepts/BusinessLogic__.ts +376 -0
  164. package/src/concepts/CallEvent__.ts +351 -0
  165. package/src/concepts/CallFunction__.ts +10 -13
  166. package/src/concepts/CallLogic__.ts +45 -32
  167. package/src/concepts/Constant__.ts +5 -7
  168. package/src/concepts/Destination__.ts +7 -5
  169. package/src/concepts/End__.ts +1 -0
  170. package/src/concepts/Event__.ts +70 -0
  171. package/src/concepts/FrontendType__.ts +919 -0
  172. package/src/concepts/Frontend__.ts +3 -251
  173. package/src/concepts/Identifier__.ts +29 -13
  174. package/src/concepts/LogicItem__.ts +1 -0
  175. package/src/concepts/Logic__.ts +36 -23
  176. package/src/concepts/MemberExpression__.ts +3 -3
  177. package/src/concepts/NewComposite__.ts +4 -6
  178. package/src/concepts/ParamWithGroup__.ts +101 -0
  179. package/src/concepts/Param__.ts +11 -3
  180. package/src/concepts/ProcessElement__.ts +8 -1
  181. package/src/concepts/Return__.ts +15 -12
  182. package/src/concepts/ValidationRule__.ts +6 -1
  183. package/src/concepts/Variable__.ts +17 -9
  184. package/src/concepts/ViewElement__.ts +168 -33
  185. package/src/concepts/View__.ts +23 -20
  186. package/src/concepts/index__.ts +5 -0
  187. package/src/concepts/utils/asserts.ts +367 -4
  188. package/src/concepts/utils/types.ts +28 -0
  189. package/src/generator/genBundleFiles.ts +33 -15
  190. package/src/generator/genReleaseBody.ts +14 -3
  191. package/src/generator/permission.ts +8 -6
  192. package/src/natural/transformTSCode.ts +1 -1
  193. package/src/server/extendBaseNode.ts +22 -20
  194. package/src/server/getLogics.ts +79 -41
  195. package/src/server/getMemberIdentifier.ts +7 -1
  196. package/src/server/getProcesses.ts +3 -3
  197. package/src/server/naslServer.ts +44 -20
  198. package/src/server/translator.ts +7 -1
  199. package/src/service/storage/init.ts +1 -2
  200. package/src/templator/genCreateBlock.ts +6 -6
  201. package/src/templator/genCurdEditMultipleKeyBlock.ts +16 -16
  202. package/src/templator/genCurdMultipleKeyBlock.ts +36 -36
  203. package/src/templator/genGetBlock.ts +6 -5
  204. package/src/templator/genGridViewBlock.ts +12 -12
  205. package/src/templator/genListViewBlock.ts +4 -4
  206. package/src/templator/genSelectBlock.ts +3 -3
  207. package/src/templator/genTableBlock.ts +10 -10
  208. package/src/templator/genUpdateBlock.ts +10 -9
  209. package/src/templator/utils.ts +2 -2
  210. package/src/translator/utils.ts +12 -1
  211. package/src/utils/i18nInfo.ts +7 -2
  212. package/src/utils/index.ts +211 -1
  213. package/test/concepts/call-function/fixtures/from-string.json +68 -59
  214. package/test/concepts/call-function/fixtures/to-string-global-tz.json +67 -58
  215. package/test/concepts/call-function/fixtures/to-string-no-tz.json +57 -48
  216. package/test/concepts/call-function/fixtures/to-string-user-tz.json +69 -60
  217. package/test/concepts/call-function/fixtures/to-string-utc-tz.json +69 -60
  218. package/test/concepts/call-interface/fixtures/only-interface.json +81 -72
  219. package/test/concepts/call-interface/fixtures/with-body-complex-argument.json +223 -214
  220. package/test/concepts/call-interface/fixtures/with-body-no-argument.json +85 -76
  221. package/test/concepts/call-interface/fixtures/with-body-simple-argument.json +100 -91
  222. package/test/concepts/call-interface/fixtures/with-headers-no-argument.json +88 -79
  223. package/test/concepts/call-interface/fixtures/with-headers.json +90 -81
  224. package/test/concepts/call-interface/fixtures/with-query-no-argument.json +88 -79
  225. package/test/concepts/call-interface/fixtures/with-query.json +90 -81
  226. package/test/concepts/call-logic/__snapshots__/getQuickInfoOffset.spec.ts.snap +4 -2
  227. package/test/concepts/call-logic/fixtures/entries-get-with-arguments.json +104 -95
  228. package/test/concepts/call-logic/fixtures/entries-update-with-arguments.json +209 -200
  229. package/test/concepts/call-logic/fixtures/global-logic-argument-no-expression.json +97 -88
  230. package/test/concepts/call-logic/fixtures/global-logic-argument-some-expression.json +124 -115
  231. package/test/concepts/call-logic/fixtures/json-deserialize.json +120 -111
  232. package/test/concepts/call-logic/fixtures/json-serialize-with-string.json +124 -115
  233. package/test/concepts/call-logic/fixtures/json-serialize.json +124 -115
  234. package/test/concepts/call-logic/fixtures/view-buildin-logic-with-argument.json +91 -82
  235. package/test/concepts/call-logic/fixtures/view-component-logic-no-argument.json +88 -79
  236. package/test/concepts/call-logic/fixtures/view-component-with-validation.json +144 -135
  237. package/test/concepts/identifier/fixtures/view-variable.json +145 -136
  238. package/test/concepts/view-element/__snapshots__/toVue.spec.ts.snap +1 -1
  239. package/test/concepts/view-element/fixtures/default-login.json +221 -212
  240. package/test/concepts/view-element/fixtures/default-not-found.json +183 -174
  241. package/test/concepts/view-element/fixtures/with-role-auth.json +91 -82
  242. package/test/concepts/view-element/fixtures/with-table.json +1894 -1885
  243. package/test/concepts/view-element/toVue.spec.ts +1 -0
  244. package/ts-worker/package.json +1 -1
  245. package/ts-worker/src/index.js +1 -0
@@ -16,6 +16,7 @@ import { elementsEventsMap } from '../server/createUiTs';
16
16
  import type Param from './Param__';
17
17
  import type TypeAnnotation from './TypeAnnotation__';
18
18
  import type Process from './Process__';
19
+ import type BusinessComponent from './BusinessComponent__';
19
20
 
20
21
  //================================================================================
21
22
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
@@ -606,7 +607,7 @@ export class BindEvent extends BaseNode {
606
607
  if (isPageCycle) {
607
608
  if (['keydown', 'keyup'].includes(self.name)) {
608
609
  code = `const ${self.toHump(self.name) || '__IDENTIFIER__'} = (event: `;
609
- code += self.getEventTypeString();
610
+ code += yield* self.getEventTypeString(state);
610
611
  code += ') => [\n';
611
612
  yield* wrapForEach(self.logics, function* warpForEachGenerator(logic) {
612
613
  // 一些默认的逻辑不翻译 排除掉
@@ -645,7 +646,7 @@ export class BindEvent extends BaseNode {
645
646
  } else {
646
647
  yield* wrapForEach(self.logics, function* warpForEachGenerator(logic, index) {
647
648
  const logicName = logic.name;
648
- logic.name = logic.view.name + logic.name + index;
649
+ logic.name = logic.likeComponent.name + logic.name + index;
649
650
  code += yield* logic.toEmbeddedTS(
650
651
  shiftState(state, code, {
651
652
  tabSize: (state?.tabSize || 0) + 2,
@@ -661,7 +662,7 @@ export class BindEvent extends BaseNode {
661
662
  }
662
663
  code = `${self.toHump(self.name) || '__IDENTIFIER__'}: (event: `;
663
664
  // event的类型
664
- code += self.getEventTypeString();
665
+ code += yield* self.getEventTypeString(state);
665
666
  code += ') => [\n';
666
667
  yield* wrapForEach(self.logics, function* warpForEachGenerator(logic) {
667
668
  // 一些默认的逻辑不翻译 排除掉
@@ -696,7 +697,7 @@ export class BindEvent extends BaseNode {
696
697
  code += indent(state?.tabSize || 0);
697
698
  code += ',\n';
698
699
  });
699
- if (self.view) code += '],\n';
700
+ if (self.view || self.getAncestor('BusinessComponent')) code += '],\n';
700
701
  else code += ']\n';
701
702
  return code;
702
703
  }
@@ -769,9 +770,11 @@ export class BindEvent extends BaseNode {
769
770
  return code;
770
771
  }
771
772
 
772
- getEventTypeString() {
773
+ *getEventTypeString(state = createCompilerState()) {
773
774
  let code = '';
774
775
  if (!Object.keys(elementsEventsMap).length) return;
776
+ // 业务组件
777
+ const businessComponent = this.element?.correspondingBusinessComponent;
775
778
  // 已有的点击事件,已知类型的,就直接取值
776
779
  if (
777
780
  [
@@ -792,6 +795,20 @@ export class BindEvent extends BaseNode {
792
795
  const ref = eventInfo.params[0].schema.$ref;
793
796
  const type = ref.replace('#/systemTypes/', 'nasl.ui.');
794
797
  code = `${type}`;
798
+ } else if (businessComponent) {
799
+ code = '{\n';
800
+ // 目标事件
801
+ const targetEvent = businessComponent.events?.find((event) => {
802
+ return event.name === this.name;
803
+ });
804
+ if (Array.isArray(targetEvent?.params)) {
805
+ yield* wrapForEach(targetEvent.params, function* warpForEachGenerator(param, index) {
806
+ code += `${param.name}?: `;
807
+ code += yield* param.typeAnnotation.toEmbeddedTS(shiftState(state, code));
808
+ code += ',\n';
809
+ });
810
+ }
811
+ code += '\n}';
795
812
  } else {
796
813
  code = 'nasl.ui.BaseEvent';
797
814
  }
@@ -848,8 +865,13 @@ export class BindEvent extends BaseNode {
848
865
  });
849
866
  }
850
867
 
868
+ get likeComponent(): View | BusinessComponent {
869
+ return this.view || (this?.getAncestor('BusinessComponent') as BusinessComponent);
870
+ }
871
+
851
872
  getNamespace(ns: string) {
852
- if (this.view) return `${this.view.getNamespace()}.${this.view.name}.bindEvents.${this.name}.logics`;
873
+ if (this.likeComponent)
874
+ return `${this.likeComponent.getNamespace()}.${this.likeComponent.name}.bindEvents.${this.name}.logics`;
853
875
  if (this.parentNode && (this.parentNode as Namespace).getNamespace) {
854
876
  const parentNamespace = (this.parentNode as Namespace).getNamespace();
855
877
  const parentName = this.parentNode.name;
@@ -961,16 +983,21 @@ export class BindEvent extends BaseNode {
961
983
  getPageViewEventChineseName() {
962
984
  const parent = this.parentNode;
963
985
  const suffixRE = /时|前|后$/;
964
- if (asserts.isView(parent)) {
986
+ if (asserts.isView(parent) || asserts.isBusinessComponent(parent)) {
987
+ const conceptTitleMap = {
988
+ View: '页面',
989
+ BusinessComponent: '业务组件',
990
+ };
991
+ const conceptTitle = conceptTitleMap[parent.concept];
965
992
  const event = elementsEventsMap[this.name];
966
993
 
967
994
  if (['keydown', 'keyup'].includes(event.name)) {
968
- return `“${parent.title || parent.name}”页面${event.title}`;
995
+ return `“${parent.title || parent.name}”${conceptTitle}${event.title}`;
969
996
  }
970
997
 
971
998
  const cap = suffixRE.exec(event?.title);
972
- if (cap) return `${event.title.replace(suffixRE, '')}“${parent.title || parent.name}”页面${cap[0]}`;
973
- else return `${event.title}“${parent.title || parent.name}”页面`;
999
+ if (cap) return `${event.title.replace(suffixRE, '')}“${parent.title || parent.name}”${conceptTitle}${cap[0]}`;
1000
+ else return `${event.title}“${parent.title || parent.name}”${conceptTitle}`;
974
1001
  } else if (asserts.isViewElement(parent)) {
975
1002
  const eventName = `${parent.tag}-${this.name}`;
976
1003
  if (elementsEventsMap[eventName]) {
@@ -1065,8 +1092,8 @@ export class BindEvent extends BaseNode {
1065
1092
  const newName = this.name.replace(/-/g, '');
1066
1093
  if (asserts.isViewElement(parentNode)) {
1067
1094
  return `${parentNode.name}_${newName}`;
1068
- } else if (asserts.isView(parentNode)) {
1069
- return `${this.view.name}_${newName}`;
1095
+ } else if (asserts.isView(parentNode) || asserts.isBusinessComponent(parentNode)) {
1096
+ return `${this.likeComponent.name}_${newName}`;
1070
1097
  } else {
1071
1098
  // 这里编译成这个名字了 后续pctemplate 里也得按这个调用?
1072
1099
  // 或者说因为会编译在不同的端里 直接 name好了
@@ -1135,7 +1162,8 @@ export class BindEvent extends BaseNode {
1135
1162
  parent = parent.parentNode;
1136
1163
  }
1137
1164
  }
1138
- return `/embedded/${this.app.name}/frontends/${this.frontend.name}/bindEvents/${pathName}.ts`;
1165
+ return `/embedded/${this.getAncestor('App')?.name}/frontends/${this.getAncestor('FrontendType')?.name
1166
+ }/bindEvents/${pathName}.ts`;
1139
1167
  }
1140
1168
 
1141
1169
  //================================================================================