@lcap/nasl 3.5.0-beta.4 → 3.6.0-alpha.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 (238) hide show
  1. package/out/bak/translator.js +39 -119
  2. package/out/bak/translator.js.map +1 -1
  3. package/out/breakpoint/generator/BreakpointNode.d.ts +0 -3
  4. package/out/breakpoint/generator/BreakpointNode.js +0 -9
  5. package/out/breakpoint/generator/BreakpointNode.js.map +1 -1
  6. package/out/breakpoint/shared/constants.js +0 -1
  7. package/out/breakpoint/shared/constants.js.map +1 -1
  8. package/out/breakpoint/shared/utils.js +7 -31
  9. package/out/breakpoint/shared/utils.js.map +1 -1
  10. package/out/common/BaseNode.d.ts +13 -1
  11. package/out/common/BaseNode.js +52 -23
  12. package/out/common/BaseNode.js.map +1 -1
  13. package/out/common/Command.js +1 -0
  14. package/out/common/Command.js.map +1 -1
  15. package/out/common/EventEmitter.d.ts +1 -1
  16. package/out/common/EventEmitter.js +0 -4
  17. package/out/common/EventEmitter.js.map +1 -1
  18. package/out/concepts/App__.d.ts +76 -51
  19. package/out/concepts/App__.js +190 -87
  20. package/out/concepts/App__.js.map +1 -1
  21. package/out/concepts/BackendVariable__.js +2 -10
  22. package/out/concepts/BackendVariable__.js.map +1 -1
  23. package/out/concepts/BindAttribute__.js +6 -16
  24. package/out/concepts/BindAttribute__.js.map +1 -1
  25. package/out/concepts/BindDirective__.d.ts +0 -1
  26. package/out/concepts/BindDirective__.js +4 -19
  27. package/out/concepts/BindDirective__.js.map +1 -1
  28. package/out/concepts/BindEvent__.d.ts +1 -3
  29. package/out/concepts/BindEvent__.js +13 -38
  30. package/out/concepts/BindEvent__.js.map +1 -1
  31. package/out/concepts/CallFunction__.js +2 -10
  32. package/out/concepts/CallFunction__.js.map +1 -1
  33. package/out/concepts/CallLogic__.d.ts +0 -2
  34. package/out/concepts/CallLogic__.js +27 -38
  35. package/out/concepts/CallLogic__.js.map +1 -1
  36. package/out/concepts/Constant__.js +6 -7
  37. package/out/concepts/Constant__.js.map +1 -1
  38. package/out/concepts/Destination__.d.ts +1 -1
  39. package/out/concepts/Destination__.js +4 -6
  40. package/out/concepts/Destination__.js.map +1 -1
  41. package/out/concepts/End__.js +1 -2
  42. package/out/concepts/End__.js.map +1 -1
  43. package/out/concepts/Entity__.d.ts +1 -1
  44. package/out/concepts/Entity__.js +2 -0
  45. package/out/concepts/Entity__.js.map +1 -1
  46. package/out/concepts/Event__.d.ts +0 -14
  47. package/out/concepts/Event__.js +0 -61
  48. package/out/concepts/Event__.js.map +1 -1
  49. package/out/concepts/Frontend__.d.ts +88 -0
  50. package/out/concepts/Frontend__.js +143 -1
  51. package/out/concepts/Frontend__.js.map +1 -1
  52. package/out/concepts/Identifier__.d.ts +0 -5
  53. package/out/concepts/Identifier__.js +9 -19
  54. package/out/concepts/Identifier__.js.map +1 -1
  55. package/out/concepts/LogicItem__.d.ts +1 -1
  56. package/out/concepts/LogicItem__.js.map +1 -1
  57. package/out/concepts/Logic__.d.ts +1 -3
  58. package/out/concepts/Logic__.js +13 -16
  59. package/out/concepts/Logic__.js.map +1 -1
  60. package/out/concepts/MemberExpression__.d.ts +1 -1
  61. package/out/concepts/MemberExpression__.js +3 -3
  62. package/out/concepts/MemberExpression__.js.map +1 -1
  63. package/out/concepts/NewComposite__.js.map +1 -1
  64. package/out/concepts/Param__.js +3 -11
  65. package/out/concepts/Param__.js.map +1 -1
  66. package/out/concepts/ProcessElement__.js +1 -9
  67. package/out/concepts/ProcessElement__.js.map +1 -1
  68. package/out/concepts/Return__.js +9 -17
  69. package/out/concepts/Return__.js.map +1 -1
  70. package/out/concepts/Variable__.js +8 -17
  71. package/out/concepts/Variable__.js.map +1 -1
  72. package/out/concepts/ViewElement__.d.ts +2 -17
  73. package/out/concepts/ViewElement__.js +31 -143
  74. package/out/concepts/ViewElement__.js.map +1 -1
  75. package/out/concepts/View__.js +6 -6
  76. package/out/concepts/View__.js.map +1 -1
  77. package/out/concepts/index__.d.ts +0 -5
  78. package/out/concepts/index__.js +0 -5
  79. package/out/concepts/index__.js.map +1 -1
  80. package/out/concepts/utils/asserts.d.ts +3 -258
  81. package/out/concepts/utils/asserts.js +13 -351
  82. package/out/concepts/utils/asserts.js.map +1 -1
  83. package/out/concepts/utils/types.d.ts +3 -20
  84. package/out/generator/genBundleFiles.js +11 -25
  85. package/out/generator/genBundleFiles.js.map +1 -1
  86. package/out/generator/genReleaseBody.js +3 -12
  87. package/out/generator/genReleaseBody.js.map +1 -1
  88. package/out/generator/permission.js +3 -3
  89. package/out/generator/permission.js.map +1 -1
  90. package/out/natural/transformTSCode.js +1 -1
  91. package/out/natural/transformTSCode.js.map +1 -1
  92. package/out/server/extendBaseNode.js +22 -6
  93. package/out/server/extendBaseNode.js.map +1 -1
  94. package/out/server/getLogics.js +27 -62
  95. package/out/server/getLogics.js.map +1 -1
  96. package/out/server/getMemberIdentifier.js +1 -6
  97. package/out/server/getMemberIdentifier.js.map +1 -1
  98. package/out/server/naslServer.js +11 -28
  99. package/out/server/naslServer.js.map +1 -1
  100. package/out/server/translator.js +1 -6
  101. package/out/server/translator.js.map +1 -1
  102. package/out/service/storage/init.js +26 -2
  103. package/out/service/storage/init.js.map +1 -1
  104. package/out/templator/genCreateBlock.js +6 -6
  105. package/out/templator/genCreateBlock.js.map +1 -1
  106. package/out/templator/genCurdEditMultipleKeyBlock.js +16 -16
  107. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  108. package/out/templator/genCurdMultipleKeyBlock.d.ts +27 -0
  109. package/out/templator/genCurdMultipleKeyBlock.js +709 -37
  110. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  111. package/out/templator/genGetBlock.js +4 -4
  112. package/out/templator/genGetBlock.js.map +1 -1
  113. package/out/templator/genGridViewBlock.js +12 -12
  114. package/out/templator/genGridViewBlock.js.map +1 -1
  115. package/out/templator/genListViewBlock.js +4 -4
  116. package/out/templator/genListViewBlock.js.map +1 -1
  117. package/out/templator/genSelectBlock.js +3 -3
  118. package/out/templator/genSelectBlock.js.map +1 -1
  119. package/out/templator/genTableBlock.d.ts +2 -0
  120. package/out/templator/genTableBlock.js +124 -11
  121. package/out/templator/genTableBlock.js.map +1 -1
  122. package/out/templator/genUpdateBlock.js +8 -8
  123. package/out/templator/genUpdateBlock.js.map +1 -1
  124. package/out/templator/utils.d.ts +2 -2
  125. package/out/templator/utils.js.map +1 -1
  126. package/out/translator/utils.js +18 -0
  127. package/out/translator/utils.js.map +1 -1
  128. package/out/utils/i18nInfo.js +2 -7
  129. package/out/utils/i18nInfo.js.map +1 -1
  130. package/package.json +2 -2
  131. package/src/bak/translator.js +43 -121
  132. package/src/breakpoint/generator/BreakpointNode.ts +0 -12
  133. package/src/breakpoint/shared/constants.ts +0 -1
  134. package/src/breakpoint/shared/utils.ts +10 -37
  135. package/src/common/BaseNode.ts +60 -22
  136. package/src/common/Command.ts +1 -0
  137. package/src/common/EventEmitter.ts +1 -6
  138. package/src/concepts/App__.ts +251 -139
  139. package/src/concepts/BackendVariable__.ts +2 -10
  140. package/src/concepts/BindAttribute__.ts +6 -15
  141. package/src/concepts/BindDirective__.ts +4 -19
  142. package/src/concepts/BindEvent__.ts +12 -40
  143. package/src/concepts/CallFunction__.ts +2 -10
  144. package/src/concepts/CallLogic__.ts +32 -45
  145. package/src/concepts/Constant__.ts +7 -5
  146. package/src/concepts/Destination__.ts +4 -6
  147. package/src/concepts/End__.ts +0 -1
  148. package/src/concepts/Entity__.ts +3 -1
  149. package/src/concepts/Event__.ts +0 -70
  150. package/src/concepts/Frontend__.ts +251 -3
  151. package/src/concepts/Identifier__.ts +13 -29
  152. package/src/concepts/LogicItem__.ts +0 -1
  153. package/src/concepts/Logic__.ts +14 -21
  154. package/src/concepts/MemberExpression__.ts +3 -3
  155. package/src/concepts/NewComposite__.ts +6 -4
  156. package/src/concepts/Param__.ts +3 -11
  157. package/src/concepts/ProcessElement__.ts +1 -8
  158. package/src/concepts/Return__.ts +12 -15
  159. package/src/concepts/Variable__.ts +9 -17
  160. package/src/concepts/ViewElement__.ts +54 -166
  161. package/src/concepts/View__.ts +6 -8
  162. package/src/concepts/index__.ts +0 -5
  163. package/src/concepts/utils/asserts.ts +4 -367
  164. package/src/concepts/utils/types.ts +0 -28
  165. package/src/generator/genBundleFiles.ts +15 -33
  166. package/src/generator/genReleaseBody.ts +3 -14
  167. package/src/generator/permission.ts +6 -8
  168. package/src/natural/transformTSCode.ts +1 -1
  169. package/src/server/extendBaseNode.ts +41 -22
  170. package/src/server/getLogics.ts +41 -79
  171. package/src/server/getMemberIdentifier.ts +1 -7
  172. package/src/server/naslServer.ts +12 -30
  173. package/src/server/translator.ts +1 -7
  174. package/src/service/storage/init.ts +33 -2
  175. package/src/templator/genCreateBlock.ts +6 -6
  176. package/src/templator/genCurdEditMultipleKeyBlock.ts +16 -16
  177. package/src/templator/genCurdMultipleKeyBlock.ts +817 -93
  178. package/src/templator/genGetBlock.ts +4 -4
  179. package/src/templator/genGridViewBlock.ts +12 -12
  180. package/src/templator/genListViewBlock.ts +4 -4
  181. package/src/templator/genSelectBlock.ts +3 -3
  182. package/src/templator/genTableBlock.ts +137 -12
  183. package/src/templator/genUpdateBlock.ts +8 -8
  184. package/src/templator/utils.ts +2 -2
  185. package/src/translator/utils.ts +20 -0
  186. package/src/utils/i18nInfo.ts +2 -7
  187. package/test/concepts/call-function/fixtures/from-string.json +59 -68
  188. package/test/concepts/call-function/fixtures/to-string-global-tz.json +58 -67
  189. package/test/concepts/call-function/fixtures/to-string-no-tz.json +48 -57
  190. package/test/concepts/call-function/fixtures/to-string-user-tz.json +60 -69
  191. package/test/concepts/call-function/fixtures/to-string-utc-tz.json +60 -69
  192. package/test/concepts/call-interface/fixtures/only-interface.json +72 -81
  193. package/test/concepts/call-interface/fixtures/with-body-complex-argument.json +214 -223
  194. package/test/concepts/call-interface/fixtures/with-body-no-argument.json +76 -85
  195. package/test/concepts/call-interface/fixtures/with-body-simple-argument.json +91 -100
  196. package/test/concepts/call-interface/fixtures/with-headers-no-argument.json +79 -88
  197. package/test/concepts/call-interface/fixtures/with-headers.json +81 -90
  198. package/test/concepts/call-interface/fixtures/with-query-no-argument.json +79 -88
  199. package/test/concepts/call-interface/fixtures/with-query.json +81 -90
  200. package/test/concepts/call-logic/__snapshots__/getQuickInfoOffset.spec.ts.snap +2 -4
  201. package/test/concepts/call-logic/fixtures/entries-get-with-arguments.json +95 -104
  202. package/test/concepts/call-logic/fixtures/entries-update-with-arguments.json +200 -209
  203. package/test/concepts/call-logic/fixtures/global-logic-argument-no-expression.json +88 -97
  204. package/test/concepts/call-logic/fixtures/global-logic-argument-some-expression.json +115 -124
  205. package/test/concepts/call-logic/fixtures/json-deserialize.json +111 -120
  206. package/test/concepts/call-logic/fixtures/json-serialize-with-string.json +115 -124
  207. package/test/concepts/call-logic/fixtures/json-serialize.json +115 -124
  208. package/test/concepts/call-logic/fixtures/view-buildin-logic-with-argument.json +82 -91
  209. package/test/concepts/call-logic/fixtures/view-component-logic-no-argument.json +79 -88
  210. package/test/concepts/call-logic/fixtures/view-component-with-validation.json +135 -144
  211. package/test/concepts/identifier/fixtures/view-variable.json +136 -145
  212. package/test/concepts/view-element/__snapshots__/toVue.spec.ts.snap +1 -1
  213. package/test/concepts/view-element/fixtures/default-login.json +212 -221
  214. package/test/concepts/view-element/fixtures/default-not-found.json +174 -183
  215. package/test/concepts/view-element/fixtures/with-role-auth.json +82 -91
  216. package/test/concepts/view-element/fixtures/with-table.json +1834 -1843
  217. package/test/concepts/view-element/toVue.spec.ts +0 -1
  218. package/ts-worker/package.json +1 -1
  219. package/out/concepts/BusinessComponent__.d.ts +0 -641
  220. package/out/concepts/BusinessComponent__.js +0 -1901
  221. package/out/concepts/BusinessComponent__.js.map +0 -1
  222. package/out/concepts/BusinessLogic__.d.ts +0 -38
  223. package/out/concepts/BusinessLogic__.js +0 -358
  224. package/out/concepts/BusinessLogic__.js.map +0 -1
  225. package/out/concepts/CallEvent__.d.ts +0 -97
  226. package/out/concepts/CallEvent__.js +0 -263
  227. package/out/concepts/CallEvent__.js.map +0 -1
  228. package/out/concepts/FrontendType__.d.ts +0 -308
  229. package/out/concepts/FrontendType__.js +0 -605
  230. package/out/concepts/FrontendType__.js.map +0 -1
  231. package/out/concepts/ParamWithGroup__.d.ts +0 -39
  232. package/out/concepts/ParamWithGroup__.js +0 -85
  233. package/out/concepts/ParamWithGroup__.js.map +0 -1
  234. package/src/concepts/BusinessComponent__.ts +0 -2669
  235. package/src/concepts/BusinessLogic__.ts +0 -376
  236. package/src/concepts/CallEvent__.ts +0 -334
  237. package/src/concepts/FrontendType__.ts +0 -919
  238. package/src/concepts/ParamWithGroup__.ts +0 -101
@@ -78,9 +78,9 @@ let App = App_1 = class App extends BaseNode_1.default {
78
78
  */
79
79
  this.interfaces = [];
80
80
  /**
81
- * 端类型列表
81
+ * 前端列表
82
82
  */
83
- this.frontendTypes = [];
83
+ this.frontends = [];
84
84
  /**
85
85
  * 后端
86
86
  */
@@ -165,6 +165,10 @@ let App = App_1 = class App extends BaseNode_1.default {
165
165
  * 全局设置
166
166
  */
167
167
  this.preferenceMap = {};
168
+ /**
169
+ * 组合节点缓存
170
+ */
171
+ this.composeCache = {};
168
172
  this.packageInfos = [];
169
173
  /**
170
174
  * 当前正在发布的环境,临时状态
@@ -621,66 +625,64 @@ let App = App_1 = class App extends BaseNode_1.default {
621
625
  getAbstractInterfaceUniqueName(name = 'Interface1') {
622
626
  return utils.unique(name, this.getAbstractInterfaceExistingNames(), undefined, true);
623
627
  }
624
- getFrontendTypeExistingNames(excludedList = []) {
628
+ getFrontendExistingNames(excludedList = []) {
625
629
  const excludedSet = new Set(excludedList);
626
- return (this.frontendTypes || [])
627
- .filter((item) => !excludedSet.has(item))
628
- .map((item) => item?.name);
630
+ return (this.frontends || []).filter((item) => !excludedSet.has(item)).map((item) => item?.name);
629
631
  }
630
- getFrontendTypeUniqueName(name = 'frontendType1') {
631
- return utils.unique(name, this.getFrontendTypeExistingNames(), undefined, true);
632
+ getFrontendUniqueName(name = 'frontend1') {
633
+ return utils.unique(name, this.getFrontendExistingNames(), undefined, true);
632
634
  }
633
- _insertFrontendTypeAt(options, index) {
634
- const frontendTypeOptions = {};
635
- const relationOptions = { parentNode: this, parentKey: 'frontendTypes' };
636
- const FrontendType = (0, decorators_1.getConceptConstructor)('FrontendType');
637
- let frontendType;
635
+ _insertFrontendAt(options, index) {
636
+ const frontendOptions = {};
637
+ const relationOptions = { parentNode: this, parentKey: 'frontends' };
638
+ const Frontend = (0, decorators_1.getConceptConstructor)('Frontend');
639
+ let frontend;
638
640
  if (!options) {
639
- frontendType = FrontendType.from({
640
- ...frontendTypeOptions,
641
- name: this.getFrontendTypeUniqueName(),
642
- }, this, 'frontendTypes');
641
+ frontend = Frontend.from({
642
+ ...frontendOptions,
643
+ name: this.getFrontendUniqueName(),
644
+ }, this, 'frontends');
643
645
  }
644
646
  else if (typeof options === 'string') {
645
- frontendType = FrontendType.from({
646
- ...frontendTypeOptions,
647
+ frontend = Frontend.from({
648
+ ...frontendOptions,
647
649
  name: options,
648
- }, this, 'frontendTypes');
650
+ }, this, 'frontends');
649
651
  }
650
- else if (asserts.isFrontendType(options)) {
652
+ else if (asserts.isFrontend(options)) {
651
653
  options.ensureDelete(); // 同一实例不支持多处存在
652
- frontendType = options;
653
- Object.assign(frontendType, relationOptions);
654
+ frontend = options;
655
+ Object.assign(frontend, relationOptions);
654
656
  }
655
657
  else {
656
- frontendType = FrontendType.from({
657
- ...frontendTypeOptions,
658
+ frontend = Frontend.from({
659
+ ...frontendOptions,
658
660
  ...options,
659
- }, this, 'frontendTypes');
661
+ }, this, 'frontends');
660
662
  }
661
- this.frontendTypes.splice(index, 0, frontendType);
662
- return frontendType;
663
+ this.frontends.splice(index, 0, frontend);
664
+ return frontend;
663
665
  }
664
- insertFrontendTypeAt(options, index) {
665
- const node = this._insertFrontendTypeAt(options, index);
666
+ insertFrontendAt(options, index) {
667
+ const node = this._insertFrontendAt(options, index);
666
668
  node.create({
667
669
  index,
668
670
  parentNode: this,
669
- parentKey: 'frontendTypes',
671
+ parentKey: 'frontends',
670
672
  });
671
673
  return node;
672
674
  }
673
- _addFrontendType(options) {
674
- const index = this.frontendTypes.length;
675
- return this._insertFrontendTypeAt(options, index);
675
+ _addFrontend(options) {
676
+ const index = this.frontends.length;
677
+ return this._insertFrontendAt(options, index);
676
678
  }
677
- addFrontendType(options) {
678
- const node = this._addFrontendType(options);
679
- const index = this.frontendTypes.indexOf(node);
679
+ addFrontend(options) {
680
+ const node = this._addFrontend(options);
681
+ const index = this.frontends.indexOf(node);
680
682
  node.create({
681
683
  index,
682
684
  parentNode: this,
683
- parentKey: 'frontendTypes',
685
+ parentKey: 'frontends',
684
686
  });
685
687
  return node;
686
688
  }
@@ -1454,34 +1456,34 @@ let App = App_1 = class App extends BaseNode_1.default {
1454
1456
  }
1455
1457
  return params;
1456
1458
  }
1457
- removeFrontendType(options) {
1458
- let frontendType;
1459
+ removeFrontend(options) {
1460
+ let frontend;
1459
1461
  if (typeof options === 'string') {
1460
- frontendType = this.frontendTypes.find((item) => item.name === options);
1461
- if (!frontendType) {
1462
- throw new Error('找不到端类型 ' + options);
1462
+ frontend = this.frontends.find((item) => item.name === options);
1463
+ if (!frontend) {
1464
+ throw new Error('找不到前端 ' + options);
1463
1465
  }
1464
1466
  }
1465
1467
  else {
1466
- frontendType = options;
1468
+ frontend = options;
1467
1469
  }
1468
- return frontendType.delete();
1470
+ return frontend.delete();
1469
1471
  }
1470
- __removeFrontendType(frontendType) {
1471
- const parentKey = frontendType.parentKey;
1472
+ __removeFrontend(frontend) {
1473
+ const parentKey = frontend.parentKey;
1472
1474
  const params = {
1473
1475
  parentNode: this,
1474
1476
  parentKey,
1475
1477
  index: -1,
1476
1478
  object: null,
1477
- oldObject: frontendType,
1479
+ oldObject: frontend,
1478
1480
  };
1479
1481
  if (parentKey) {
1480
1482
  params.parentKey = parentKey;
1481
1483
  // @ts-ignore
1482
1484
  const t = this.__v_raw || this;
1483
1485
  // @ts-ignore
1484
- const n = frontendType.__v_raw || frontendType;
1486
+ const n = frontend.__v_raw || frontend;
1485
1487
  if (Array.isArray(t[parentKey])) {
1486
1488
  // @ts-ignore
1487
1489
  const index = t[parentKey].findIndex((el) => (el.__v_raw || el) === n);
@@ -1939,6 +1941,100 @@ let App = App_1 = class App extends BaseNode_1.default {
1939
1941
  findLogicByName(name) {
1940
1942
  return this.logics.find((logic) => logic.name === name);
1941
1943
  }
1944
+ /**
1945
+ * 获取组合节点
1946
+ */
1947
+ getComposeNodes(path) {
1948
+ let compose = this.composeCache;
1949
+ path.forEach((key) => {
1950
+ compose = compose?.[key];
1951
+ });
1952
+ return compose?.nodes || [];
1953
+ }
1954
+ /**
1955
+ * 往组合内添加节点
1956
+ */
1957
+ addComposeNodes(path, node) {
1958
+ let compose = this.composeCache;
1959
+ path.forEach((key, index) => {
1960
+ if (index === path.length - 1) {
1961
+ if (compose?.[key]?.nodes) {
1962
+ if (Array.isArray(node)) {
1963
+ compose[key].nodes.push(...node);
1964
+ }
1965
+ else {
1966
+ compose[key].nodes.push(node);
1967
+ }
1968
+ }
1969
+ else {
1970
+ if (!compose?.[key]) {
1971
+ compose[key] = {};
1972
+ }
1973
+ compose[key].nodes = Array.isArray(node) ? node : [node];
1974
+ }
1975
+ }
1976
+ else {
1977
+ if (!compose?.[key]) {
1978
+ compose[key] = {};
1979
+ }
1980
+ compose = compose[key];
1981
+ }
1982
+ });
1983
+ }
1984
+ /**
1985
+ * 删除分组, 包括子集
1986
+ */
1987
+ deleteCompose(path) {
1988
+ if (!Array.isArray(path))
1989
+ return;
1990
+ let compose = this.composeCache;
1991
+ const delNodes = (_compose) => {
1992
+ if (_compose?.nodes) {
1993
+ for (let key in _compose) {
1994
+ if (key !== 'nodes') {
1995
+ delNodes(_compose[key]);
1996
+ }
1997
+ }
1998
+ _compose.nodes.forEach((node) => {
1999
+ node.delete();
2000
+ });
2001
+ _compose.nodes = [];
2002
+ }
2003
+ };
2004
+ this.emit('collect:start', {
2005
+ actionMsg: '删除同一分组节点',
2006
+ });
2007
+ path.forEach((key, index) => {
2008
+ if (index === path.length - 1) {
2009
+ delNodes(compose?.[key]);
2010
+ }
2011
+ else {
2012
+ compose = compose[key];
2013
+ }
2014
+ });
2015
+ this.emit('collect:end');
2016
+ }
2017
+ /**
2018
+ * 释放分组内所有节点
2019
+ */
2020
+ releaseComposeNode(path) {
2021
+ if (!Array.isArray(path))
2022
+ return;
2023
+ let compose = this.composeCache;
2024
+ path.forEach((key, index) => {
2025
+ if (index === path.length - 1) {
2026
+ const nodes = compose?.[key]?.nodes || [];
2027
+ nodes.forEach((node) => {
2028
+ node.update({
2029
+ composedBy: [],
2030
+ });
2031
+ });
2032
+ }
2033
+ else {
2034
+ compose = compose[key];
2035
+ }
2036
+ });
2037
+ }
1942
2038
  /**
1943
2039
  * 获取命名空间
1944
2040
  */
@@ -2008,20 +2104,19 @@ let App = App_1 = class App extends BaseNode_1.default {
2008
2104
  this.envList = ['dev', 'online'];
2009
2105
  }
2010
2106
  loadPackageInfo(scope) {
2011
- const dependencyMap = window.globalData.ideVersionDetail.dependencies;
2107
+ const materialConfig = window.globalData.materialConfig || {};
2108
+ const { framework, ui } = materialConfig;
2012
2109
  const packageInfo = {
2013
2110
  template: { name: '', version: '', scope },
2014
2111
  ui: { name: '', version: '', scope },
2015
2112
  scope,
2016
2113
  };
2017
- packageInfo.template.name = scope === 'h5' ? '@lcap/mobile-template' : 'lcap-pc-template';
2018
- packageInfo.template.version =
2019
- scope === 'h5' ? dependencyMap.FrontendArchH5.version : dependencyMap.FrontendArchPC.version;
2020
- packageInfo.ui.name = scope === 'h5' ? '@lcap/mobile-ui' : 'cloud-ui.vusion';
2021
- packageInfo.ui.version =
2022
- scope === 'h5'
2023
- ? dependencyMap.FrontendComponentLibraryH5.version
2024
- : dependencyMap.FrontendComponentLibraryPC.version;
2114
+ packageInfo.template.name = scope === 'h5' ? framework.h5 : framework.pc;
2115
+ packageInfo.template.version = framework.version;
2116
+ packageInfo.ui.name = scope === 'h5' ? ui.h5.name : ui.pc.name;
2117
+ packageInfo.ui.version = scope === 'h5'
2118
+ ? ui.h5.version
2119
+ : ui.pc.version;
2025
2120
  return packageInfo;
2026
2121
  }
2027
2122
  loadPackageInfos() {
@@ -2044,20 +2139,12 @@ let App = App_1 = class App extends BaseNode_1.default {
2044
2139
  js: [
2045
2140
  `${prefix}/packages/vue@2/dist/vue.min.js`,
2046
2141
  // `${prefix}/packages/vue-router@3/dist/vue-router.min.js`,
2047
- scope === 'h5'
2048
- ? `${prefix}/packages/@lcap/mobile-ui@${packageInfo.ui.version}/dist-theme/index.js`
2049
- : `${prefix}/packages/cloud-ui.vusion@${packageInfo.ui.version}/dist-theme/index.js`,
2050
- scope === 'h5'
2051
- ? `${prefix}/packages/@lcap/mobile-template@${packageInfo.template.version}/cloudAdminDesigner.umd.min.js`
2052
- : `${prefix}/packages/lcap-pc-template@${packageInfo.template.version}/cloudAdminDesigner.umd.min.js`,
2142
+ `${prefix}/packages/${packageInfo.ui.name}@${packageInfo.ui.version}/dist-theme/index.js`,
2143
+ `${prefix}/packages/${packageInfo.template.name}@${packageInfo.template.version}/cloudAdminDesigner.umd.min.js`,
2053
2144
  ],
2054
2145
  css: [
2055
- scope === 'h5'
2056
- ? `${prefix}/packages/@lcap/mobile-ui@${packageInfo.ui.version}/dist-theme/index.css`
2057
- : `${prefix}/packages/cloud-ui.vusion@${packageInfo.ui.version}/dist-theme/index.css`,
2058
- scope === 'h5'
2059
- ? `${prefix}/packages/@lcap/mobile-template@${packageInfo.template.version}/cloudAdminDesigner.css`
2060
- : `${prefix}/packages/lcap-pc-template@${packageInfo.template.version}/cloudAdminDesigner.css`,
2146
+ `${prefix}/packages/${packageInfo.ui.name}@${packageInfo.ui.version}/dist-theme/index.css`,
2147
+ `${prefix}/packages/${packageInfo.template.name}@${packageInfo.template.version}/cloudAdminDesigner.css`,
2061
2148
  ],
2062
2149
  },
2063
2150
  custom: {
@@ -2066,10 +2153,10 @@ let App = App_1 = class App extends BaseNode_1.default {
2066
2153
  names: [],
2067
2154
  },
2068
2155
  };
2069
- const frontendTypes = this.frontendTypes.filter((frontendType) => frontendType.kind === scope);
2156
+ const frontends = this.frontends.filter((frontend) => frontend.type === scope);
2070
2157
  const existingSet = new Set();
2071
- frontendTypes.forEach((frontendType) => {
2072
- frontendType.componentDependencies.forEach((dep) => {
2158
+ frontends.forEach((frontend) => {
2159
+ frontend.componentDependencies.forEach((dep) => {
2073
2160
  const { name, version } = dep;
2074
2161
  const jsName = `${prefix}/packages/${name}@${version}/dist-theme/index.js`;
2075
2162
  if (!existingSet.has(jsName)) {
@@ -2169,7 +2256,7 @@ let App = App_1 = class App extends BaseNode_1.default {
2169
2256
  structureCount: this.structures.length,
2170
2257
  enumCount: this.enums.length,
2171
2258
  logicCount: this.logics.length,
2172
- viewCount: sum(this.frontendTypes.map((frontendType) => sum(frontendType.frontends.map((frontend) => countView(frontend.views))))),
2259
+ viewCount: sum(this.frontends.map((frontend) => countView(frontend.views))),
2173
2260
  processCount: this.processes.length,
2174
2261
  };
2175
2262
  }
@@ -2339,18 +2426,33 @@ let App = App_1 = class App extends BaseNode_1.default {
2339
2426
  });
2340
2427
  return errorList;
2341
2428
  }
2429
+ addFrontendForType(options) {
2430
+ let insertIndex = -1;
2431
+ this.frontends.forEach((frontend, index) => {
2432
+ if (frontend.type === options.type) {
2433
+ insertIndex = index;
2434
+ }
2435
+ });
2436
+ if (options.type === 'h5' && insertIndex === -1) {
2437
+ insertIndex = this.frontends.length;
2438
+ }
2439
+ const node = this._insertFrontendAt(options, insertIndex + 1);
2440
+ const index = this.frontends.indexOf(node);
2441
+ node.create({
2442
+ index,
2443
+ parentNode: this,
2444
+ parentKey: 'frontends',
2445
+ });
2446
+ return node;
2447
+ }
2342
2448
  getFrontendExistingTitles(excludedList = []) {
2343
2449
  const excludedSet = new Set(excludedList);
2344
- return (this.frontendTypes || [])
2345
- .map((frontendType) => frontendType.frontends?.filter((item) => !excludedSet.has(item)).map((item) => item.title))
2346
- .flat(2);
2450
+ return (this.frontends || []).filter((item) => !excludedSet.has(item)).map((item) => item.title);
2347
2451
  }
2348
2452
  getExtensionsCallbackLogics() {
2349
2453
  let resultLogics = [];
2350
- this.frontendTypes.forEach((frontendType) => {
2351
- frontendType?.frontends?.forEach((frontend) => {
2352
- resultLogics = [...resultLogics, ...frontend.getExtensionsCallbackLogics()];
2353
- });
2454
+ this.frontends.forEach((frontend) => {
2455
+ resultLogics = [...resultLogics, ...frontend.getExtensionsCallbackLogics()];
2354
2456
  });
2355
2457
  return Array.from(new Set(resultLogics));
2356
2458
  }
@@ -2361,17 +2463,18 @@ let App = App_1 = class App extends BaseNode_1.default {
2361
2463
  return `${utils.unique(name, this.getLogicExistingNames(), undefined, true)}Service`;
2362
2464
  }
2363
2465
  genAllCustomComponents() {
2466
+ const { frontends } = this;
2364
2467
  const compMap = {
2365
2468
  pc: [],
2366
2469
  h5: [],
2367
2470
  };
2368
2471
  const existingSet = new Set();
2369
- this.frontendTypes.forEach((frontendType) => {
2370
- if (frontendType.componentDependencies) {
2371
- frontendType.componentDependencies.forEach((dep) => {
2472
+ frontends.forEach((frontend) => {
2473
+ if (frontend.componentDependencies) {
2474
+ frontend.componentDependencies.forEach((dep) => {
2372
2475
  const { name } = dep;
2373
2476
  if (!existingSet.has(name)) {
2374
- compMap[frontendType.kind].push(dep);
2477
+ compMap[frontend.type].push(dep);
2375
2478
  }
2376
2479
  });
2377
2480
  }
@@ -2667,11 +2770,11 @@ __decorate([
2667
2770
  ], App.prototype, "interfaces", void 0);
2668
2771
  __decorate([
2669
2772
  (0, decorators_1.property)({
2670
- objectRef: 'FrontendType',
2773
+ objectRef: 'Frontend',
2671
2774
  isArray: true,
2672
2775
  defaultValue: [],
2673
2776
  })
2674
- ], App.prototype, "frontendTypes", void 0);
2777
+ ], App.prototype, "frontends", void 0);
2675
2778
  __decorate([
2676
2779
  (0, decorators_1.property)({
2677
2780
  objectRef: 'Backend',