@cloudbase/cals 1.1.14 → 1.2.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 (378) hide show
  1. package/lib/{parser → cjs/parser}/cals/index.d.ts +1 -1
  2. package/lib/cjs/parser/cals/index.d.ts.map +1 -0
  3. package/lib/{parser → cjs/parser}/cals/index.js +2 -1
  4. package/lib/cjs/parser/cals/utils/block/helpers/get-component-namespace.d.ts.map +1 -0
  5. package/lib/cjs/parser/cals/utils/block/helpers/merge-dataset.d.ts.map +1 -0
  6. package/lib/cjs/parser/cals/utils/block/helpers/merge-listeners.d.ts.map +1 -0
  7. package/lib/cjs/parser/cals/utils/block/helpers/merge-resources.d.ts.map +1 -0
  8. package/lib/{parser → cjs/parser}/cals/utils/block/helpers/remap-component-ids.d.ts +2 -2
  9. package/lib/cjs/parser/cals/utils/block/helpers/remap-component-ids.d.ts.map +1 -0
  10. package/lib/cjs/parser/cals/utils/block/helpers/renew-id-in-code.d.ts.map +1 -0
  11. package/lib/cjs/parser/cals/utils/block/helpers/renew-id-in-expr.d.ts.map +1 -0
  12. package/lib/cjs/parser/cals/utils/block/helpers/renew-id-in-resource.d.ts.map +1 -0
  13. package/lib/cjs/parser/cals/utils/block/helpers/resolve-new-id.d.ts.map +1 -0
  14. package/lib/{parser → cjs/parser}/cals/utils/block/index.d.ts +2 -2
  15. package/lib/cjs/parser/cals/utils/block/index.d.ts.map +1 -0
  16. package/lib/cjs/parser/cals/utils/code/index.d.ts.map +1 -0
  17. package/lib/{parser → cjs/parser}/cals/utils/common.d.ts +1 -1
  18. package/lib/cjs/parser/cals/utils/common.d.ts.map +1 -0
  19. package/lib/cjs/parser/cals/utils/getUsedReference.d.ts.map +1 -0
  20. package/lib/cjs/parser/cals/utils/getUsedResources.d.ts.map +1 -0
  21. package/lib/cjs/parser/cals/utils/runtime.d.ts.map +1 -0
  22. package/lib/cjs/parser/cals/utils/spinoff/index.d.ts.map +1 -0
  23. package/lib/cjs/parser/cals/utils/style.d.ts.map +1 -0
  24. package/lib/cjs/parser/cals/utils/template.d.ts.map +1 -0
  25. package/lib/{parser → cjs/parser}/cals/utils/template.js +2 -0
  26. package/lib/cjs/parser/cals/utils/version/common.d.ts.map +1 -0
  27. package/lib/cjs/parser/cals/utils/version/config.d.ts.map +1 -0
  28. package/lib/cjs/parser/cals/utils/version/index.d.ts.map +1 -0
  29. package/lib/cjs/parser/cals/utils/version/parses.d.ts.map +1 -0
  30. package/lib/cjs/parser/cals/utils/version/utils.d.ts.map +1 -0
  31. package/lib/cjs/parser/dependiencies/index.d.ts.map +1 -0
  32. package/lib/cjs/parser/expression/index.d.ts.map +1 -0
  33. package/lib/cjs/parser/index.d.ts.map +1 -0
  34. package/lib/cjs/parser/plugins/postcss-rpx2clac.d.ts.map +1 -0
  35. package/lib/cjs/types/basic/app.d.ts.map +1 -0
  36. package/lib/cjs/types/basic/common.d.ts.map +1 -0
  37. package/lib/cjs/types/basic/component.d.ts.map +1 -0
  38. package/lib/cjs/types/basic/datasource.d.ts.map +1 -0
  39. package/lib/{types → cjs/types}/index.d.ts +1 -1
  40. package/lib/cjs/types/index.d.ts.map +1 -0
  41. package/lib/{types → cjs/types}/index.js +2 -13
  42. package/lib/cjs/types/lcds.d.ts +612 -0
  43. package/lib/cjs/types/lcds.d.ts.map +1 -0
  44. package/lib/cjs/types/lcds.js +34 -0
  45. package/lib/{types → cjs/types}/platform/app.d.ts +4 -2
  46. package/lib/cjs/types/platform/app.d.ts.map +1 -0
  47. package/lib/cjs/types/platform/common.d.ts.map +1 -0
  48. package/lib/{types → cjs/types}/platform/component.d.ts +1 -1
  49. package/lib/cjs/types/platform/component.d.ts.map +1 -0
  50. package/lib/{types → cjs/types}/platform/datasource.d.ts +4 -4
  51. package/lib/cjs/types/platform/datasource.d.ts.map +1 -0
  52. package/lib/cjs/types/platform/eventFlow.d.ts.map +1 -0
  53. package/lib/cjs/types/platform/query.d.ts.map +1 -0
  54. package/lib/{types → cjs/types}/platform/theme.d.ts +5 -5
  55. package/lib/cjs/types/platform/theme.d.ts.map +1 -0
  56. package/lib/cjs/utils/CSSProperty.d.ts.map +1 -0
  57. package/lib/cjs/utils/color-generator/core.d.ts.map +1 -0
  58. package/lib/cjs/utils/color-generator/generate.d.ts.map +1 -0
  59. package/lib/cjs/utils/color-generator/utils.d.ts.map +1 -0
  60. package/lib/cjs/utils/constant.d.ts.map +1 -0
  61. package/lib/cjs/utils/dts/auto-generated.d.ts +2 -0
  62. package/lib/cjs/utils/dts/auto-generated.d.ts.map +1 -0
  63. package/lib/{utils → cjs/utils}/dts/auto-generated.js +113 -0
  64. package/lib/{utils → cjs/utils}/dts/build.d.ts.map +1 -1
  65. package/lib/cjs/utils/dts/index.d.ts.map +1 -0
  66. package/lib/cjs/utils/index.d.ts.map +1 -0
  67. package/lib/cjs/utils/version/common.d.ts.map +1 -0
  68. package/lib/cjs/utils/version/featureChecker.d.ts.map +1 -0
  69. package/lib/cjs/utils/version/migrations/version4.d.ts.map +1 -0
  70. package/lib/esm/parser/cals/index.d.ts +625 -0
  71. package/lib/esm/parser/cals/index.d.ts.map +1 -0
  72. package/lib/esm/parser/cals/index.js +1549 -0
  73. package/lib/esm/parser/cals/utils/block/helpers/get-component-namespace.d.ts +2 -0
  74. package/lib/esm/parser/cals/utils/block/helpers/get-component-namespace.d.ts.map +1 -0
  75. package/lib/esm/parser/cals/utils/block/helpers/get-component-namespace.js +5 -0
  76. package/lib/esm/parser/cals/utils/block/helpers/merge-dataset.d.ts +6 -0
  77. package/lib/esm/parser/cals/utils/block/helpers/merge-dataset.d.ts.map +1 -0
  78. package/lib/esm/parser/cals/utils/block/helpers/merge-dataset.js +13 -0
  79. package/lib/esm/parser/cals/utils/block/helpers/merge-listeners.d.ts +6 -0
  80. package/lib/esm/parser/cals/utils/block/helpers/merge-listeners.d.ts.map +1 -0
  81. package/lib/esm/parser/cals/utils/block/helpers/merge-listeners.js +10 -0
  82. package/lib/esm/parser/cals/utils/block/helpers/merge-resources.d.ts +6 -0
  83. package/lib/esm/parser/cals/utils/block/helpers/merge-resources.d.ts.map +1 -0
  84. package/lib/esm/parser/cals/utils/block/helpers/merge-resources.js +25 -0
  85. package/lib/esm/parser/cals/utils/block/helpers/remap-component-ids.d.ts +30 -0
  86. package/lib/esm/parser/cals/utils/block/helpers/remap-component-ids.d.ts.map +1 -0
  87. package/lib/esm/parser/cals/utils/block/helpers/remap-component-ids.js +125 -0
  88. package/lib/esm/parser/cals/utils/block/helpers/renew-id-in-code.d.ts +7 -0
  89. package/lib/esm/parser/cals/utils/block/helpers/renew-id-in-code.d.ts.map +1 -0
  90. package/lib/esm/parser/cals/utils/block/helpers/renew-id-in-code.js +9 -0
  91. package/lib/esm/parser/cals/utils/block/helpers/renew-id-in-expr.d.ts +8 -0
  92. package/lib/esm/parser/cals/utils/block/helpers/renew-id-in-expr.d.ts.map +1 -0
  93. package/lib/esm/parser/cals/utils/block/helpers/renew-id-in-expr.js +56 -0
  94. package/lib/esm/parser/cals/utils/block/helpers/renew-id-in-resource.d.ts +15 -0
  95. package/lib/esm/parser/cals/utils/block/helpers/renew-id-in-resource.d.ts.map +1 -0
  96. package/lib/esm/parser/cals/utils/block/helpers/renew-id-in-resource.js +13 -0
  97. package/lib/esm/parser/cals/utils/block/helpers/resolve-new-id.d.ts +7 -0
  98. package/lib/esm/parser/cals/utils/block/helpers/resolve-new-id.d.ts.map +1 -0
  99. package/lib/esm/parser/cals/utils/block/helpers/resolve-new-id.js +17 -0
  100. package/lib/esm/parser/cals/utils/block/index.d.ts +67 -0
  101. package/lib/esm/parser/cals/utils/block/index.d.ts.map +1 -0
  102. package/lib/esm/parser/cals/utils/block/index.js +451 -0
  103. package/lib/esm/parser/cals/utils/code/index.d.ts +36 -0
  104. package/lib/esm/parser/cals/utils/code/index.d.ts.map +1 -0
  105. package/lib/esm/parser/cals/utils/code/index.js +401 -0
  106. package/lib/esm/parser/cals/utils/common.d.ts +35 -0
  107. package/lib/esm/parser/cals/utils/common.d.ts.map +1 -0
  108. package/lib/esm/parser/cals/utils/common.js +301 -0
  109. package/lib/esm/parser/cals/utils/getUsedReference.d.ts +8 -0
  110. package/lib/esm/parser/cals/utils/getUsedReference.d.ts.map +1 -0
  111. package/lib/esm/parser/cals/utils/getUsedReference.js +54 -0
  112. package/lib/esm/parser/cals/utils/getUsedResources.d.ts +10 -0
  113. package/lib/esm/parser/cals/utils/getUsedResources.d.ts.map +1 -0
  114. package/lib/esm/parser/cals/utils/getUsedResources.js +132 -0
  115. package/lib/esm/parser/cals/utils/runtime.d.ts +14 -0
  116. package/lib/esm/parser/cals/utils/runtime.d.ts.map +1 -0
  117. package/lib/esm/parser/cals/utils/runtime.js +254 -0
  118. package/lib/esm/parser/cals/utils/spinoff/index.d.ts +10 -0
  119. package/lib/esm/parser/cals/utils/spinoff/index.d.ts.map +1 -0
  120. package/lib/esm/parser/cals/utils/spinoff/index.js +95 -0
  121. package/lib/esm/parser/cals/utils/style.d.ts +43 -0
  122. package/lib/esm/parser/cals/utils/style.d.ts.map +1 -0
  123. package/lib/esm/parser/cals/utils/style.js +463 -0
  124. package/lib/esm/parser/cals/utils/template.d.ts +6 -0
  125. package/lib/esm/parser/cals/utils/template.d.ts.map +1 -0
  126. package/lib/esm/parser/cals/utils/template.js +223 -0
  127. package/lib/esm/parser/cals/utils/version/common.d.ts +5 -0
  128. package/lib/esm/parser/cals/utils/version/common.d.ts.map +1 -0
  129. package/lib/esm/parser/cals/utils/version/common.js +375 -0
  130. package/lib/esm/parser/cals/utils/version/config.d.ts +16 -0
  131. package/lib/esm/parser/cals/utils/version/config.d.ts.map +1 -0
  132. package/lib/esm/parser/cals/utils/version/config.js +241 -0
  133. package/lib/esm/parser/cals/utils/version/index.d.ts +3 -0
  134. package/lib/esm/parser/cals/utils/version/index.d.ts.map +1 -0
  135. package/lib/esm/parser/cals/utils/version/index.js +68 -0
  136. package/lib/esm/parser/cals/utils/version/parses.d.ts +16 -0
  137. package/lib/esm/parser/cals/utils/version/parses.d.ts.map +1 -0
  138. package/lib/esm/parser/cals/utils/version/parses.js +560 -0
  139. package/lib/esm/parser/cals/utils/version/utils.d.ts +14 -0
  140. package/lib/esm/parser/cals/utils/version/utils.d.ts.map +1 -0
  141. package/lib/esm/parser/cals/utils/version/utils.js +129 -0
  142. package/lib/esm/parser/dependiencies/index.d.ts +143 -0
  143. package/lib/esm/parser/dependiencies/index.d.ts.map +1 -0
  144. package/lib/esm/parser/dependiencies/index.js +684 -0
  145. package/lib/esm/parser/expression/index.d.ts +123 -0
  146. package/lib/esm/parser/expression/index.d.ts.map +1 -0
  147. package/lib/esm/parser/expression/index.js +296 -0
  148. package/lib/esm/parser/index.d.ts +13 -0
  149. package/lib/esm/parser/index.d.ts.map +1 -0
  150. package/lib/esm/parser/index.js +12 -0
  151. package/lib/esm/parser/plugins/postcss-rpx2clac.d.ts +18 -0
  152. package/lib/esm/parser/plugins/postcss-rpx2clac.d.ts.map +1 -0
  153. package/lib/esm/parser/plugins/postcss-rpx2clac.js +67 -0
  154. package/lib/esm/types/basic/app.d.ts +76 -0
  155. package/lib/esm/types/basic/app.d.ts.map +1 -0
  156. package/lib/esm/types/basic/app.js +1 -0
  157. package/lib/esm/types/basic/common.d.ts +125 -0
  158. package/lib/esm/types/basic/common.d.ts.map +1 -0
  159. package/lib/esm/types/basic/common.js +1 -0
  160. package/lib/esm/types/basic/component.d.ts +212 -0
  161. package/lib/esm/types/basic/component.d.ts.map +1 -0
  162. package/lib/esm/types/basic/component.js +1 -0
  163. package/lib/esm/types/basic/datasource.d.ts +50 -0
  164. package/lib/esm/types/basic/datasource.d.ts.map +1 -0
  165. package/lib/esm/types/basic/datasource.js +1 -0
  166. package/lib/esm/types/index.d.ts +12 -0
  167. package/lib/esm/types/index.d.ts.map +1 -0
  168. package/lib/esm/types/index.js +14 -0
  169. package/lib/esm/types/lcds.d.ts +612 -0
  170. package/lib/esm/types/lcds.d.ts.map +1 -0
  171. package/lib/esm/types/lcds.js +31 -0
  172. package/lib/esm/types/platform/app.d.ts +278 -0
  173. package/lib/esm/types/platform/app.d.ts.map +1 -0
  174. package/lib/esm/types/platform/app.js +8 -0
  175. package/lib/esm/types/platform/common.d.ts +190 -0
  176. package/lib/esm/types/platform/common.d.ts.map +1 -0
  177. package/lib/esm/types/platform/common.js +84 -0
  178. package/lib/esm/types/platform/component.d.ts +166 -0
  179. package/lib/esm/types/platform/component.d.ts.map +1 -0
  180. package/lib/esm/types/platform/component.js +8 -0
  181. package/lib/esm/types/platform/datasource.d.ts +500 -0
  182. package/lib/esm/types/platform/datasource.d.ts.map +1 -0
  183. package/lib/esm/types/platform/datasource.js +6 -0
  184. package/lib/esm/types/platform/eventFlow.d.ts +20 -0
  185. package/lib/esm/types/platform/eventFlow.d.ts.map +1 -0
  186. package/lib/esm/types/platform/eventFlow.js +1 -0
  187. package/lib/esm/types/platform/query.d.ts +78 -0
  188. package/lib/esm/types/platform/query.d.ts.map +1 -0
  189. package/lib/esm/types/platform/query.js +12 -0
  190. package/lib/esm/types/platform/theme.d.ts +47 -0
  191. package/lib/esm/types/platform/theme.d.ts.map +1 -0
  192. package/lib/esm/types/platform/theme.js +1 -0
  193. package/lib/esm/utils/CSSProperty.d.ts +64 -0
  194. package/lib/esm/utils/CSSProperty.d.ts.map +1 -0
  195. package/lib/esm/utils/CSSProperty.js +86 -0
  196. package/lib/esm/utils/color-generator/core.d.ts +52 -0
  197. package/lib/esm/utils/color-generator/core.d.ts.map +1 -0
  198. package/lib/esm/utils/color-generator/core.js +57 -0
  199. package/lib/esm/utils/color-generator/generate.d.ts +67 -0
  200. package/lib/esm/utils/color-generator/generate.d.ts.map +1 -0
  201. package/lib/esm/utils/color-generator/generate.js +92 -0
  202. package/lib/esm/utils/color-generator/utils.d.ts +15 -0
  203. package/lib/esm/utils/color-generator/utils.d.ts.map +1 -0
  204. package/lib/esm/utils/color-generator/utils.js +30 -0
  205. package/lib/esm/utils/constant.d.ts +65 -0
  206. package/lib/esm/utils/constant.d.ts.map +1 -0
  207. package/lib/esm/utils/constant.js +69 -0
  208. package/lib/esm/utils/dts/auto-generated.d.ts +2 -0
  209. package/lib/esm/utils/dts/auto-generated.d.ts.map +1 -0
  210. package/lib/esm/utils/dts/auto-generated.js +1909 -0
  211. package/lib/esm/utils/dts/build.d.ts +2 -0
  212. package/lib/esm/utils/dts/build.d.ts.map +1 -0
  213. package/lib/esm/utils/dts/build.js +147 -0
  214. package/lib/esm/utils/dts/index.d.ts +141 -0
  215. package/lib/esm/utils/dts/index.d.ts.map +1 -0
  216. package/lib/esm/utils/dts/index.js +1071 -0
  217. package/lib/esm/utils/index.d.ts +9 -0
  218. package/lib/esm/utils/index.d.ts.map +1 -0
  219. package/lib/esm/utils/index.js +8 -0
  220. package/lib/esm/utils/version/common.d.ts +3 -0
  221. package/lib/esm/utils/version/common.d.ts.map +1 -0
  222. package/lib/esm/utils/version/common.js +22 -0
  223. package/lib/esm/utils/version/featureChecker.d.ts +5 -0
  224. package/lib/esm/utils/version/featureChecker.d.ts.map +1 -0
  225. package/lib/esm/utils/version/featureChecker.js +32 -0
  226. package/lib/esm/utils/version/migrations/version4.d.ts +3 -0
  227. package/lib/esm/utils/version/migrations/version4.d.ts.map +1 -0
  228. package/lib/esm/utils/version/migrations/version4.js +192 -0
  229. package/lib/schema/lcds_component.json +1 -1
  230. package/lib/schema/platform_application.json +1 -1
  231. package/lib/schema/platform_template.json +1 -1
  232. package/lib/tsconfig.tsbuildinfo +1 -0
  233. package/package.json +7 -5
  234. package/lib/parser/cals/index.d.ts.map +0 -1
  235. package/lib/parser/cals/utils/block/helpers/get-component-namespace.d.ts.map +0 -1
  236. package/lib/parser/cals/utils/block/helpers/merge-dataset.d.ts.map +0 -1
  237. package/lib/parser/cals/utils/block/helpers/merge-listeners.d.ts.map +0 -1
  238. package/lib/parser/cals/utils/block/helpers/merge-resources.d.ts.map +0 -1
  239. package/lib/parser/cals/utils/block/helpers/remap-component-ids.d.ts.map +0 -1
  240. package/lib/parser/cals/utils/block/helpers/renew-id-in-code.d.ts.map +0 -1
  241. package/lib/parser/cals/utils/block/helpers/renew-id-in-expr.d.ts.map +0 -1
  242. package/lib/parser/cals/utils/block/helpers/renew-id-in-resource.d.ts.map +0 -1
  243. package/lib/parser/cals/utils/block/helpers/resolve-new-id.d.ts.map +0 -1
  244. package/lib/parser/cals/utils/block/index.d.ts.map +0 -1
  245. package/lib/parser/cals/utils/code/index.d.ts.map +0 -1
  246. package/lib/parser/cals/utils/common.d.ts.map +0 -1
  247. package/lib/parser/cals/utils/getUsedReference.d.ts.map +0 -1
  248. package/lib/parser/cals/utils/getUsedResources.d.ts.map +0 -1
  249. package/lib/parser/cals/utils/runtime.d.ts.map +0 -1
  250. package/lib/parser/cals/utils/spinoff/index.d.ts.map +0 -1
  251. package/lib/parser/cals/utils/style.d.ts.map +0 -1
  252. package/lib/parser/cals/utils/template.d.ts.map +0 -1
  253. package/lib/parser/cals/utils/version/common.d.ts.map +0 -1
  254. package/lib/parser/cals/utils/version/config.d.ts.map +0 -1
  255. package/lib/parser/cals/utils/version/index.d.ts.map +0 -1
  256. package/lib/parser/cals/utils/version/parses.d.ts.map +0 -1
  257. package/lib/parser/cals/utils/version/utils.d.ts.map +0 -1
  258. package/lib/parser/dependiencies/index.d.ts.map +0 -1
  259. package/lib/parser/expression/index.d.ts.map +0 -1
  260. package/lib/parser/index.d.ts.map +0 -1
  261. package/lib/parser/plugins/postcss-rpx2clac.d.ts.map +0 -1
  262. package/lib/types/basic/app.d.ts.map +0 -1
  263. package/lib/types/basic/common.d.ts.map +0 -1
  264. package/lib/types/basic/component.d.ts.map +0 -1
  265. package/lib/types/basic/datasource.d.ts.map +0 -1
  266. package/lib/types/index.d.ts.map +0 -1
  267. package/lib/types/lcds.d.ts +0 -610
  268. package/lib/types/lcds.d.ts.map +0 -1
  269. package/lib/types/lcds.js +0 -25
  270. package/lib/types/platform/app.d.ts.map +0 -1
  271. package/lib/types/platform/common.d.ts.map +0 -1
  272. package/lib/types/platform/component.d.ts.map +0 -1
  273. package/lib/types/platform/datasource.d.ts.map +0 -1
  274. package/lib/types/platform/eventFlow.d.ts.map +0 -1
  275. package/lib/types/platform/query.d.ts.map +0 -1
  276. package/lib/types/platform/theme.d.ts.map +0 -1
  277. package/lib/utils/CSSProperty.d.ts.map +0 -1
  278. package/lib/utils/color-generator/core.d.ts.map +0 -1
  279. package/lib/utils/color-generator/generate.d.ts.map +0 -1
  280. package/lib/utils/color-generator/utils.d.ts.map +0 -1
  281. package/lib/utils/constant.d.ts.map +0 -1
  282. package/lib/utils/dts/auto-generated.d.ts +0 -2
  283. package/lib/utils/dts/auto-generated.d.ts.map +0 -1
  284. package/lib/utils/dts/index.d.ts.map +0 -1
  285. package/lib/utils/index.d.ts.map +0 -1
  286. package/lib/utils/version/common.d.ts.map +0 -1
  287. package/lib/utils/version/featureChecker.d.ts.map +0 -1
  288. package/lib/utils/version/migrations/version4.d.ts.map +0 -1
  289. /package/lib/{parser → cjs/parser}/cals/utils/block/helpers/get-component-namespace.d.ts +0 -0
  290. /package/lib/{parser → cjs/parser}/cals/utils/block/helpers/get-component-namespace.js +0 -0
  291. /package/lib/{parser → cjs/parser}/cals/utils/block/helpers/merge-dataset.d.ts +0 -0
  292. /package/lib/{parser → cjs/parser}/cals/utils/block/helpers/merge-dataset.js +0 -0
  293. /package/lib/{parser → cjs/parser}/cals/utils/block/helpers/merge-listeners.d.ts +0 -0
  294. /package/lib/{parser → cjs/parser}/cals/utils/block/helpers/merge-listeners.js +0 -0
  295. /package/lib/{parser → cjs/parser}/cals/utils/block/helpers/merge-resources.d.ts +0 -0
  296. /package/lib/{parser → cjs/parser}/cals/utils/block/helpers/merge-resources.js +0 -0
  297. /package/lib/{parser → cjs/parser}/cals/utils/block/helpers/remap-component-ids.js +0 -0
  298. /package/lib/{parser → cjs/parser}/cals/utils/block/helpers/renew-id-in-code.d.ts +0 -0
  299. /package/lib/{parser → cjs/parser}/cals/utils/block/helpers/renew-id-in-code.js +0 -0
  300. /package/lib/{parser → cjs/parser}/cals/utils/block/helpers/renew-id-in-expr.d.ts +0 -0
  301. /package/lib/{parser → cjs/parser}/cals/utils/block/helpers/renew-id-in-expr.js +0 -0
  302. /package/lib/{parser → cjs/parser}/cals/utils/block/helpers/renew-id-in-resource.d.ts +0 -0
  303. /package/lib/{parser → cjs/parser}/cals/utils/block/helpers/renew-id-in-resource.js +0 -0
  304. /package/lib/{parser → cjs/parser}/cals/utils/block/helpers/resolve-new-id.d.ts +0 -0
  305. /package/lib/{parser → cjs/parser}/cals/utils/block/helpers/resolve-new-id.js +0 -0
  306. /package/lib/{parser → cjs/parser}/cals/utils/block/index.js +0 -0
  307. /package/lib/{parser → cjs/parser}/cals/utils/code/index.d.ts +0 -0
  308. /package/lib/{parser → cjs/parser}/cals/utils/code/index.js +0 -0
  309. /package/lib/{parser → cjs/parser}/cals/utils/common.js +0 -0
  310. /package/lib/{parser → cjs/parser}/cals/utils/getUsedReference.d.ts +0 -0
  311. /package/lib/{parser → cjs/parser}/cals/utils/getUsedReference.js +0 -0
  312. /package/lib/{parser → cjs/parser}/cals/utils/getUsedResources.d.ts +0 -0
  313. /package/lib/{parser → cjs/parser}/cals/utils/getUsedResources.js +0 -0
  314. /package/lib/{parser → cjs/parser}/cals/utils/runtime.d.ts +0 -0
  315. /package/lib/{parser → cjs/parser}/cals/utils/runtime.js +0 -0
  316. /package/lib/{parser → cjs/parser}/cals/utils/spinoff/index.d.ts +0 -0
  317. /package/lib/{parser → cjs/parser}/cals/utils/spinoff/index.js +0 -0
  318. /package/lib/{parser → cjs/parser}/cals/utils/style.d.ts +0 -0
  319. /package/lib/{parser → cjs/parser}/cals/utils/style.js +0 -0
  320. /package/lib/{parser → cjs/parser}/cals/utils/template.d.ts +0 -0
  321. /package/lib/{parser → cjs/parser}/cals/utils/version/common.d.ts +0 -0
  322. /package/lib/{parser → cjs/parser}/cals/utils/version/common.js +0 -0
  323. /package/lib/{parser → cjs/parser}/cals/utils/version/config.d.ts +0 -0
  324. /package/lib/{parser → cjs/parser}/cals/utils/version/config.js +0 -0
  325. /package/lib/{parser → cjs/parser}/cals/utils/version/index.d.ts +0 -0
  326. /package/lib/{parser → cjs/parser}/cals/utils/version/index.js +0 -0
  327. /package/lib/{parser → cjs/parser}/cals/utils/version/parses.d.ts +0 -0
  328. /package/lib/{parser → cjs/parser}/cals/utils/version/parses.js +0 -0
  329. /package/lib/{parser → cjs/parser}/cals/utils/version/utils.d.ts +0 -0
  330. /package/lib/{parser → cjs/parser}/cals/utils/version/utils.js +0 -0
  331. /package/lib/{parser → cjs/parser}/dependiencies/index.d.ts +0 -0
  332. /package/lib/{parser → cjs/parser}/dependiencies/index.js +0 -0
  333. /package/lib/{parser → cjs/parser}/expression/index.d.ts +0 -0
  334. /package/lib/{parser → cjs/parser}/expression/index.js +0 -0
  335. /package/lib/{parser → cjs/parser}/index.d.ts +0 -0
  336. /package/lib/{parser → cjs/parser}/index.js +0 -0
  337. /package/lib/{parser → cjs/parser}/plugins/postcss-rpx2clac.d.ts +0 -0
  338. /package/lib/{parser → cjs/parser}/plugins/postcss-rpx2clac.js +0 -0
  339. /package/lib/{types → cjs/types}/basic/app.d.ts +0 -0
  340. /package/lib/{types → cjs/types}/basic/app.js +0 -0
  341. /package/lib/{types → cjs/types}/basic/common.d.ts +0 -0
  342. /package/lib/{types → cjs/types}/basic/common.js +0 -0
  343. /package/lib/{types → cjs/types}/basic/component.d.ts +0 -0
  344. /package/lib/{types → cjs/types}/basic/component.js +0 -0
  345. /package/lib/{types → cjs/types}/basic/datasource.d.ts +0 -0
  346. /package/lib/{types → cjs/types}/basic/datasource.js +0 -0
  347. /package/lib/{types → cjs/types}/platform/app.js +0 -0
  348. /package/lib/{types → cjs/types}/platform/common.d.ts +0 -0
  349. /package/lib/{types → cjs/types}/platform/common.js +0 -0
  350. /package/lib/{types → cjs/types}/platform/component.js +0 -0
  351. /package/lib/{types → cjs/types}/platform/datasource.js +0 -0
  352. /package/lib/{types → cjs/types}/platform/eventFlow.d.ts +0 -0
  353. /package/lib/{types → cjs/types}/platform/eventFlow.js +0 -0
  354. /package/lib/{types → cjs/types}/platform/query.d.ts +0 -0
  355. /package/lib/{types → cjs/types}/platform/query.js +0 -0
  356. /package/lib/{types → cjs/types}/platform/theme.js +0 -0
  357. /package/lib/{utils → cjs/utils}/CSSProperty.d.ts +0 -0
  358. /package/lib/{utils → cjs/utils}/CSSProperty.js +0 -0
  359. /package/lib/{utils → cjs/utils}/color-generator/core.d.ts +0 -0
  360. /package/lib/{utils → cjs/utils}/color-generator/core.js +0 -0
  361. /package/lib/{utils → cjs/utils}/color-generator/generate.d.ts +0 -0
  362. /package/lib/{utils → cjs/utils}/color-generator/generate.js +0 -0
  363. /package/lib/{utils → cjs/utils}/color-generator/utils.d.ts +0 -0
  364. /package/lib/{utils → cjs/utils}/color-generator/utils.js +0 -0
  365. /package/lib/{utils → cjs/utils}/constant.d.ts +0 -0
  366. /package/lib/{utils → cjs/utils}/constant.js +0 -0
  367. /package/lib/{utils → cjs/utils}/dts/build.d.ts +0 -0
  368. /package/lib/{utils → cjs/utils}/dts/build.js +0 -0
  369. /package/lib/{utils → cjs/utils}/dts/index.d.ts +0 -0
  370. /package/lib/{utils → cjs/utils}/dts/index.js +0 -0
  371. /package/lib/{utils → cjs/utils}/index.d.ts +0 -0
  372. /package/lib/{utils → cjs/utils}/index.js +0 -0
  373. /package/lib/{utils → cjs/utils}/version/common.d.ts +0 -0
  374. /package/lib/{utils → cjs/utils}/version/common.js +0 -0
  375. /package/lib/{utils → cjs/utils}/version/featureChecker.d.ts +0 -0
  376. /package/lib/{utils → cjs/utils}/version/featureChecker.js +0 -0
  377. /package/lib/{utils → cjs/utils}/version/migrations/version4.d.ts +0 -0
  378. /package/lib/{utils → cjs/utils}/version/migrations/version4.js +0 -0
@@ -0,0 +1,1071 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import cloneDeep from 'lodash/cloneDeep';
11
+ import pick from 'lodash/pick';
12
+ import set from 'lodash/set';
13
+ import JSONEasyFilter from 'json-easy-filter';
14
+ import { wedaDTS } from './auto-generated';
15
+ export var IInputDataType;
16
+ (function (IInputDataType) {
17
+ IInputDataType["globalState"] = "globalState";
18
+ IInputDataType["globalQuery"] = "globalQuery";
19
+ IInputDataType["pageState"] = "pageState";
20
+ IInputDataType["pageQuery"] = "pageQuery";
21
+ IInputDataType["compState"] = "compState";
22
+ IInputDataType["pageParams"] = "pageParams";
23
+ IInputDataType["pageEventFlow"] = "pageEventFlow";
24
+ IInputDataType["forState"] = "forState";
25
+ IInputDataType["globalCommonCodes"] = "globalCommonCodes";
26
+ IInputDataType["pageHandlerCodes"] = "pageHandlerCodes";
27
+ IInputDataType["compHandlerCodes"] = "compHandlerCodes";
28
+ IInputDataType["compPropData"] = "compPropData";
29
+ IInputDataType["compPropEvents"] = "compPropEvents";
30
+ IInputDataType["usedComponents"] = "usedComponents";
31
+ IInputDataType["usedWidgets"] = "usedWidgets";
32
+ IInputDataType["repeaterScope"] = "repeaterScope";
33
+ IInputDataType["redefineAnyType"] = "redefineAnyType";
34
+ IInputDataType["serverSideSate"] = "serverSideSate";
35
+ IInputDataType["dtsString"] = "dtsString";
36
+ })(IInputDataType || (IInputDataType = {}));
37
+ const DtsPlaceholder = {
38
+ [IInputDataType.globalState]: "// Global State 全局变量 - Don't touch me",
39
+ [IInputDataType.globalQuery]: "// Global Query 全局查询 - Don't touch me",
40
+ [IInputDataType.pageState]: "// Page State 页面变量 - Don't touch me",
41
+ [IInputDataType.pageQuery]: "// Page Query 页面查询 - Don't touch me",
42
+ [IInputDataType.pageEventFlow]: "// EventFlow 事件流 - Don't touch me",
43
+ [IInputDataType.compState]: "// Comp State 组件变量 - Don't touch me",
44
+ [IInputDataType.pageParams]: "// Page Param 页面参数 - Don't touch me",
45
+ [IInputDataType.forState]: "// For 循环变量 - Don't touch me",
46
+ [IInputDataType.globalCommonCodes]: "// Global Common 全局方法 - Don't touch me",
47
+ [IInputDataType.pageHandlerCodes]: "// Page Handler 页面方法 - Don't touch me",
48
+ [IInputDataType.compHandlerCodes]: "// Comp Handler 组件方法 - Don't touch me",
49
+ [IInputDataType.compPropData]: "// Comp Prop Data 组件属性 - Don't touch me",
50
+ [IInputDataType.compPropEvents]: "// Comp Prop Events 组件事件 - Don't touch me",
51
+ [IInputDataType.usedComponents]: "// Used Components - Don't touch me",
52
+ [IInputDataType.usedWidgets]: "// used widgets - Don't touch me",
53
+ [IInputDataType.repeaterScope]: "// repeater scope - Don't touch me",
54
+ [IInputDataType.redefineAnyType]: "// Redefine Any Type - Don't touch me",
55
+ [IInputDataType.serverSideSate]: "// Server side state - Don't touch me",
56
+ [IInputDataType.dtsString]: "// DTS String - Don't touch me",
57
+ };
58
+ const DtsInnerSign = {
59
+ [IInputDataType.globalState]: 'Global State Inner',
60
+ [IInputDataType.globalQuery]: 'Global Query Inner',
61
+ [IInputDataType.pageState]: 'Page State Inner',
62
+ [IInputDataType.pageQuery]: 'Page Query Inner',
63
+ [IInputDataType.pageEventFlow]: 'Page EventFlow Inner',
64
+ [IInputDataType.compState]: 'Comp State Inner',
65
+ [IInputDataType.pageParams]: 'Page Param Inner',
66
+ [IInputDataType.forState]: 'Global For Inner',
67
+ [IInputDataType.globalCommonCodes]: 'Global Common Inner',
68
+ [IInputDataType.pageHandlerCodes]: 'Page Handler Inner',
69
+ [IInputDataType.compHandlerCodes]: 'Comp Handler Inner',
70
+ [IInputDataType.compPropData]: 'Comp Prop Data Inner',
71
+ [IInputDataType.compPropEvents]: 'Comp Prop Events Inner',
72
+ [IInputDataType.usedComponents]: 'Used Components Inner',
73
+ [IInputDataType.usedWidgets]: 'used widgets Inner',
74
+ [IInputDataType.repeaterScope]: 'repeater scope Inner',
75
+ [IInputDataType.redefineAnyType]: 'Redefine Any Type Inner',
76
+ [IInputDataType.serverSideSate]: 'Server side state Inner',
77
+ [IInputDataType.dtsString]: 'DTS String Inner',
78
+ };
79
+ var GroupEnum;
80
+ (function (GroupEnum) {
81
+ GroupEnum["GLOBAL_VAR"] = "globalVar";
82
+ GroupEnum["PAGE_VAR"] = "pageVar";
83
+ GroupEnum["GLOBAL_QUERY"] = "globalQuery";
84
+ GroupEnum["PAGE_QUERY"] = "pageQuery";
85
+ GroupEnum["PAGE_EVENTFLOW"] = "pageEventFlow";
86
+ GroupEnum["PAGE_PARAM"] = "pageParam";
87
+ GroupEnum["COMPONENT"] = "component";
88
+ GroupEnum["REPEATER"] = "repeater";
89
+ GroupEnum["DATA_FIELD"] = "dataField";
90
+ })(GroupEnum || (GroupEnum = {}));
91
+ /**
92
+ * 通过该类可以共享同个dts。
93
+ * 场景:在 weda 中,低代码的变更会通知更改 dts,而低码编辑器和表达式编辑器对 dts 的需求是不一样的,这样不同的 dts 共享的是同一份全的 dts。如果直接调用 generateWeDaAppDTS 会导致 dts 重复地解析
94
+ */
95
+ export class WeDaDTS {
96
+ /**
97
+ * 全部更新
98
+ */
99
+ static updateDTS(inputData = {}, options = { isCompMode: false }) {
100
+ return __awaiter(this, void 0, void 0, function* () {
101
+ WeDaDTS._dts = yield generateWeDaAppDTS(inputData, Object.assign(Object.assign({}, options), { needGlobalFormula: true, needGlobalFor: true }));
102
+ });
103
+ }
104
+ /**
105
+ * 部分更新 - 只更新一种类型
106
+ */
107
+ static updateDTSPartial(inputData, itemType, options = { setEmptyIfError: false }) {
108
+ return __awaiter(this, void 0, void 0, function* () {
109
+ try {
110
+ const [dts, replaceRules] = yield _generateOneItemDTS(inputData, itemType);
111
+ replaceRules.forEach((rule) => {
112
+ WeDaDTS._dts = WeDaDTS._dts.replace(rule.from, rule.to);
113
+ });
114
+ WeDaDTS._dts = WeDaDTS._dts.replace(new RegExp(`^(\\s*\\/\\/ ${DtsInnerSign[itemType]} Begin)[\\s\\S]*(^\\s*\\/\\/ ${DtsInnerSign[itemType]} End)`, 'm'), `$1\n${dts}\n$2`);
115
+ }
116
+ catch (e) {
117
+ if (options.setEmptyIfError) {
118
+ WeDaDTS._dts = WeDaDTS._dts.replace(new RegExp(`^(\\s*\\/\\/ ${DtsInnerSign[itemType]} Begin)[\\s\\S]*(^\\s*\\/\\/ ${DtsInnerSign[itemType]} End)`, 'm'), `$1\n${''}\n$2`);
119
+ }
120
+ }
121
+ });
122
+ }
123
+ static getDTS(options = {
124
+ needGlobalFormula: false,
125
+ needGlobalFor: false,
126
+ scope: 'component',
127
+ }) {
128
+ let resultDts = WeDaDTS._dts;
129
+ let regexArray = [];
130
+ const { scope = 'component' } = options;
131
+ if (!options.needGlobalFormula) {
132
+ resultDts = resultDts.replace(/^\/\/ Global Formula Begin[\s\S]*^\/\/ Global Formula End$/m, '');
133
+ }
134
+ if (!options.needGlobalFor) {
135
+ resultDts = resultDts.replace(/^\/\/ Global For Begin[\s\S]*^\/\/ Global For End$/m, '');
136
+ }
137
+ switch (scope) {
138
+ case 'component':
139
+ break;
140
+ case 'page':
141
+ regexArray = [
142
+ // 屏蔽组件级别 - 循环作用域
143
+ /\/\/ repeater scope Inner Begin[\s\S]*\/\/ repeater scope Inner End$/m,
144
+ ];
145
+ break;
146
+ case 'global':
147
+ regexArray = [
148
+ // 屏蔽 $page
149
+ /\/\/ \$page Begin[\s\S]*\/\/ \$page End$/m,
150
+ // 屏蔽 $w.page
151
+ /\/\/ Widget Page Begin[\s\S]*\/\/ Widget Page End$/m,
152
+ // 屏蔽页面 page query
153
+ /\/\/ Page Query Inner Begin[\s\S]*\/\/ Page Query Inner End$/m,
154
+ // 屏蔽页面事件流
155
+ /\/\/ Page EventFlow Inner Begin[\s\S]*\/\/ Page EventFlow Inner End$/m,
156
+ // 屏蔽组件 api
157
+ /\/\/ used widgets Inner Begin[\s\S]*\/\/ used widgets Inner End$/m,
158
+ // 屏蔽页面参数
159
+ /\/\/ Page Param Inner Begin[\s\S]*\/\/ Page Param Inner Begind$/m,
160
+ // 屏蔽组件级别 - 循环作用域
161
+ /\/\/ repeater scope Inner Begin[\s\S]*\/\/ repeater scope Inner End$/m,
162
+ ];
163
+ break;
164
+ }
165
+ resultDts = regexArray.reduce((acc, regex) => acc.replace(regex, ''), resultDts);
166
+ return resultDts;
167
+ }
168
+ }
169
+ WeDaDTS._dts = '';
170
+ /**
171
+ * 生成 WeDa 应用的低码代码提示的 dts 类型声明内容
172
+ */
173
+ export function generateWeDaAppDTS(inputData = {}, options = { isCompMode: false, needGlobalFormula: false, needGlobalFor: false }) {
174
+ return __awaiter(this, void 0, void 0, function* () {
175
+ let resultDts = wedaDTS;
176
+ yield Promise.all(Object.keys(inputData).map((key) => __awaiter(this, void 0, void 0, function* () {
177
+ const placeholder = DtsPlaceholder[key];
178
+ if (placeholder) {
179
+ // 防止某项错误导致全部都错误
180
+ try {
181
+ const [dts, replaceRules] = yield _generateOneItemDTS(inputData[key], key);
182
+ replaceRules.forEach((rule) => {
183
+ resultDts = resultDts.replace(rule.from, rule.to);
184
+ });
185
+ resultDts = resultDts.replace(placeholder, `${dts}\n${placeholder}`);
186
+ }
187
+ catch (e) {
188
+ console.error(e);
189
+ }
190
+ }
191
+ })));
192
+ // 根据是否组件模式删除一些类型定义
193
+ if (options === null || options === void 0 ? void 0 : options.isCompMode) {
194
+ resultDts = resultDts.replace(/^\/\/ \$page Begin[\s\S]*^\/\/ \$page End$/m, '');
195
+ }
196
+ else {
197
+ resultDts = resultDts.replace(/^\/\/ \$comp Begin[\s\S]*^\/\/ \$comp End$/m, '');
198
+ }
199
+ // 根据是否需要全局提示函数公式删除一些类型定义
200
+ if (!(options === null || options === void 0 ? void 0 : options.needGlobalFormula)) {
201
+ resultDts = resultDts.replace(/^\/\/ Global Formula Begin[\s\S]*^\/\/ Global Formula End$/m, '');
202
+ }
203
+ // 根据是否需要全局 $for 来删除一些类型定义
204
+ if (!(options === null || options === void 0 ? void 0 : options.needGlobalFor)) {
205
+ resultDts = resultDts.replace(/^\/\/ Global For Begin[\s\S]*^\/\/ Global For End$/m, '');
206
+ }
207
+ return resultDts;
208
+ });
209
+ }
210
+ /**
211
+ * 生成 weda 专有的注释信息
212
+ */
213
+ function genWeDaCodeComment({ fieldName, title, description, type, dataFieldInfo, group, schema, subGroup, baseClass, datasource, }) {
214
+ const desc = title || fieldName ? `${title || fieldName}\n${description || ''}` : '';
215
+ return `${desc}\n@privateForWeDa\n${JSON.stringify({
216
+ group,
217
+ displayType: type,
218
+ displayName: title || '',
219
+ description: description || '',
220
+ schema,
221
+ subGroup,
222
+ baseClass,
223
+ datasource,
224
+ dataFieldInfo,
225
+ })}`;
226
+ }
227
+ /**
228
+ * 生成指定类型的 DTS
229
+ */
230
+ function _generateOneItemDTS(inputData, itemType) {
231
+ return __awaiter(this, void 0, void 0, function* () {
232
+ const replaceRules = [];
233
+ /**
234
+ * 获取数据字段的类型
235
+ */
236
+ function getDataFieldDisplayType(format) {
237
+ const nameMap = {
238
+ email: 'email',
239
+ url: 'url',
240
+ tel: 'tel',
241
+ phone: 'phone',
242
+ 'x-image': 'image',
243
+ 'x-rtf': 'rtf',
244
+ datetime: 'datetime',
245
+ date: 'date',
246
+ time: 'time',
247
+ 'x-enum': 'enum',
248
+ 'x-location': 'location',
249
+ 'x-file': 'file',
250
+ related: 'related',
251
+ 'father-son': 'father-son',
252
+ 'x-autonumber': 'autonumber',
253
+ 'x-area-code': 'area-code',
254
+ function: 'function',
255
+ 'one-one': 'one-one',
256
+ 'one-many': 'one-many',
257
+ 'many-one': 'many-one',
258
+ 'many-many': 'many-many',
259
+ };
260
+ return nameMap[format];
261
+ }
262
+ /**
263
+ * 处理注释信息
264
+ */
265
+ function _handleComment(inputData, group, needKeepSchema) {
266
+ const _inputData = cloneDeep(inputData);
267
+ JSONEasyFilter.traverse(_inputData, (key, value, path) => {
268
+ var _a;
269
+ if ((value === null || value === void 0 ? void 0 : value.type) && !((_a = value === null || value === void 0 ? void 0 : value.type) === null || _a === void 0 ? void 0 : _a.type)) {
270
+ // value?.type?.type 有值,则证明 type 是自定义的字段,而非 JSONSchema 中的 type
271
+ let schema = null;
272
+ if (needKeepSchema) {
273
+ const isFirstLevel = path.length === 2 && (path === null || path === void 0 ? void 0 : path[0]) === 'properties';
274
+ if (isFirstLevel) {
275
+ // 只需要第一级属性需要保存,且只保存子信息(对象或数组的子项)
276
+ schema = value.properties || value.items ? value : null;
277
+ }
278
+ }
279
+ // 特殊处理数据字段的类型
280
+ let { type } = value;
281
+ if (group === GroupEnum.DATA_FIELD) {
282
+ type = getDataFieldDisplayType(value.format) || type;
283
+ }
284
+ value.description = genWeDaCodeComment({
285
+ fieldName: key,
286
+ title: value.title,
287
+ description: value.description,
288
+ group,
289
+ type,
290
+ dataFieldInfo: pick(value, ['type', 'format', 'x-system']),
291
+ schema,
292
+ });
293
+ }
294
+ });
295
+ _inputData.description = ''; // 避免第一层出现注释
296
+ return _inputData;
297
+ }
298
+ /**
299
+ * 获取用于显示的数据类型(仅有 number, string , boolean, array, object 等内置基础类型)
300
+ */
301
+ function getDisplayReturnType(typeStr) {
302
+ var _a, _b;
303
+ let displayType = typeStr.trim();
304
+ if ((_a = displayType === null || displayType === void 0 ? void 0 : displayType.endsWith) === null || _a === void 0 ? void 0 : _a.call(displayType, '[]')) {
305
+ displayType = 'array';
306
+ }
307
+ else if ((_b = displayType === null || displayType === void 0 ? void 0 : displayType.endsWith) === null || _b === void 0 ? void 0 : _b.call(displayType, '}')) {
308
+ displayType = 'object';
309
+ }
310
+ return displayType;
311
+ }
312
+ /**
313
+ * 获取组件接口定义名称
314
+ */
315
+ function _genCompInterfaceName(module, component) {
316
+ return `${module.replace(/-/g, '_')}_${component}`;
317
+ }
318
+ function _compile(jsonschema, isObjNeedWrapper = false) {
319
+ return __awaiter(this, void 0, void 0, function* () {
320
+ try {
321
+ let dts = yield compileJSONToDTS(jsonschema);
322
+ if (dts.search(/^export interface IWeDa/) >= 0) {
323
+ dts = dts.replace(/^export interface.*$/m, '');
324
+ dts = dts.substring(0, dts.length - 2);
325
+ if (isObjNeedWrapper) {
326
+ dts = `{${dts}}`;
327
+ }
328
+ }
329
+ else {
330
+ dts = dts.replace(/^export type IWeDa =/m, '');
331
+ }
332
+ return dts;
333
+ }
334
+ catch (e) {
335
+ console.error('_compile error:', e);
336
+ return '';
337
+ }
338
+ });
339
+ }
340
+ function handleQuery(inputData, group) {
341
+ return __awaiter(this, void 0, void 0, function* () {
342
+ const dts = yield Promise.all(Object.keys(inputData === null || inputData === void 0 ? void 0 : inputData.properties).map((queryName) => __awaiter(this, void 0, void 0, function* () {
343
+ const description = inputData === null || inputData === void 0 ? void 0 : inputData.properties[queryName].description;
344
+ inputData === null || inputData === void 0 ? true : delete inputData.properties[queryName].description;
345
+ const handledInputData = _handleComment(inputData === null || inputData === void 0 ? void 0 : inputData.properties[queryName], group, false);
346
+ const _dts = yield _compile(handledInputData, true);
347
+ return `
348
+ /**
349
+ ${genWeDaCodeComment({
350
+ fieldName: queryName,
351
+ title: queryName,
352
+ description,
353
+ group,
354
+ type: 'query',
355
+ schema: {
356
+ type: 'object',
357
+ properties: {
358
+ isFetching: {
359
+ type: 'boolean',
360
+ title: '加载状态',
361
+ },
362
+ error: {
363
+ type: 'object',
364
+ title: '错误对象',
365
+ properties: {},
366
+ },
367
+ data: Object.assign(Object.assign({}, inputData === null || inputData === void 0 ? void 0 : inputData.properties[queryName]), { title: '查询结果数据' }),
368
+ },
369
+ },
370
+ })
371
+ .split('\n')
372
+ .map((item) => `* ${item}`)
373
+ .join('\n')}
374
+ */
375
+ const ${queryName}: {
376
+ /**
377
+ ${genWeDaCodeComment({
378
+ type: 'function',
379
+ title: '触发查询',
380
+ })
381
+ .split('\n')
382
+ .map((item) => `* ${item}`)
383
+ .join('\n')}
384
+ */
385
+ trigger: (data?: any) => {}
386
+ /**
387
+ ${genWeDaCodeComment({
388
+ type: 'function',
389
+ title: '清空查询数据',
390
+ })
391
+ .split('\n')
392
+ .map((item) => `* ${item}`)
393
+ .join('\n')}
394
+ */
395
+ reset: () => {}
396
+ /**
397
+ ${genWeDaCodeComment({
398
+ type: 'object',
399
+ title: '错误对象',
400
+ })
401
+ .split('\n')
402
+ .map((item) => `* ${item}`)
403
+ .join('\n')}
404
+ */
405
+ error: Error
406
+ /**
407
+ ${genWeDaCodeComment({
408
+ type: 'object',
409
+ title: '查询结果数据',
410
+ })
411
+ .split('\n')
412
+ .map((item) => `* ${item}`)
413
+ .join('\n')}
414
+ */
415
+ data: ${_dts}
416
+ /**
417
+ ${genWeDaCodeComment({
418
+ type: 'boolean',
419
+ title: '加载状态',
420
+ })
421
+ .split('\n')
422
+ .map((item) => `* ${item}`)
423
+ .join('\n')}
424
+ */
425
+ isFetching: boolean
426
+ /**
427
+ ${genWeDaCodeComment({
428
+ type: 'string',
429
+ title: 'ID',
430
+ })
431
+ .split('\n')
432
+ .map((item) => `* ${item}`)
433
+ .join('\n')}
434
+ */
435
+ id: string
436
+ /**
437
+ ${genWeDaCodeComment({
438
+ type: 'string',
439
+ title: '名称',
440
+ })
441
+ .split('\n')
442
+ .map((item) => `* ${item}`)
443
+ .join('\n')}
444
+ */
445
+ label: string
446
+ /**
447
+ ${genWeDaCodeComment({
448
+ type: 'string',
449
+ title: '详细描述',
450
+ })
451
+ .split('\n')
452
+ .map((item) => `* ${item}`)
453
+ .join('\n')}
454
+ */
455
+ description: string
456
+ }
457
+ `;
458
+ })));
459
+ return dts.join('\n');
460
+ });
461
+ }
462
+ function handlerEventFlow(inputData, group) {
463
+ return __awaiter(this, void 0, void 0, function* () {
464
+ const dts = yield Promise.all(Object.keys(inputData === null || inputData === void 0 ? void 0 : inputData.properties).map((id) => __awaiter(this, void 0, void 0, function* () {
465
+ return `
466
+ /**
467
+ ${genWeDaCodeComment({
468
+ fieldName: id,
469
+ title: id,
470
+ description: inputData === null || inputData === void 0 ? void 0 : inputData.properties[id].description,
471
+ group,
472
+ type: 'eventFlow',
473
+ schema: {
474
+ type: 'object',
475
+ properties: {},
476
+ },
477
+ })
478
+ .split('\n')
479
+ .map((item) => `* ${item}`)
480
+ .join('\n')}
481
+ */
482
+ const ${id}: {
483
+ /**
484
+ ${genWeDaCodeComment({
485
+ type: 'function',
486
+ title: '触发事件流',
487
+ })
488
+ .split('\n')
489
+ .map((item) => `* ${item}`)
490
+ .join('\n')}
491
+ */
492
+ trigger: (data?: any) => {}
493
+ /**
494
+ ${genWeDaCodeComment({
495
+ type: 'string',
496
+ title: 'ID',
497
+ })
498
+ .split('\n')
499
+ .map((item) => `* ${item}`)
500
+ .join('\n')}
501
+ */
502
+ id: string
503
+ /**
504
+ ${genWeDaCodeComment({
505
+ type: 'string',
506
+ title: '详细描述',
507
+ })
508
+ .split('\n')
509
+ .map((item) => `* ${item}`)
510
+ .join('\n')}
511
+ */
512
+ description: string
513
+ }
514
+ `;
515
+ })));
516
+ return dts.join('\n');
517
+ });
518
+ }
519
+ const hanlderMap = {
520
+ [IInputDataType.globalState](inputData) {
521
+ return __awaiter(this, void 0, void 0, function* () {
522
+ // 完善注释信息
523
+ const handledInputData = _handleComment(inputData, GroupEnum.GLOBAL_VAR, true);
524
+ return yield _compile(handledInputData);
525
+ });
526
+ },
527
+ [IInputDataType.globalQuery](inputData) {
528
+ return __awaiter(this, void 0, void 0, function* () {
529
+ return handleQuery(inputData, GroupEnum.GLOBAL_QUERY);
530
+ });
531
+ },
532
+ [IInputDataType.pageState](inputData) {
533
+ return __awaiter(this, void 0, void 0, function* () {
534
+ // 完善注释信息
535
+ const handledInputData = _handleComment(inputData, GroupEnum.PAGE_VAR, true);
536
+ return yield _compile(handledInputData);
537
+ });
538
+ },
539
+ [IInputDataType.pageQuery](inputData) {
540
+ return __awaiter(this, void 0, void 0, function* () {
541
+ return handleQuery(inputData, GroupEnum.PAGE_QUERY);
542
+ });
543
+ },
544
+ [IInputDataType.pageEventFlow]: (inputData) => __awaiter(this, void 0, void 0, function* () {
545
+ return handlerEventFlow(inputData, GroupEnum.PAGE_EVENTFLOW);
546
+ }),
547
+ [IInputDataType.pageParams](inputData) {
548
+ return __awaiter(this, void 0, void 0, function* () {
549
+ // 完善注释信息
550
+ const handledInputData = _handleComment(inputData, GroupEnum.PAGE_PARAM);
551
+ return yield _compile(handledInputData);
552
+ });
553
+ },
554
+ [IInputDataType.globalCommonCodes](inputData) {
555
+ return __awaiter(this, void 0, void 0, function* () {
556
+ const dts = yield Promise.all(inputData.map((item) => __awaiter(this, void 0, void 0, function* () {
557
+ var _a;
558
+ const code = item.code.replace(/^\s*export(?!\s+default\b)/gm, ''); // 将 export 去掉,因为 common 代码当前只认 export default
559
+ let dts = yield transpileToDTS(code);
560
+ let resultDts = '';
561
+ if (dts.search(/^\s*export default function/m) >= 0) {
562
+ // 类似 export default function (): number; 或 export default function fnName(): number;
563
+ resultDts = dts.replace(/^\s*export default/m, '').replace(/(function )(.*?)(\()/, `$1${item.name}$3`);
564
+ }
565
+ else {
566
+ // 类似
567
+ // declare function fnName(): boolean;
568
+ // export default fnName;
569
+ const exportName = (_a = dts.match(/export default (.*?);/)) === null || _a === void 0 ? void 0 : _a[1];
570
+ resultDts = dts
571
+ .replace(exportName, item.name)
572
+ .replace(/^\s*export default.*/m, '')
573
+ .replace(/^\s*declare/m, '');
574
+ }
575
+ return resultDts;
576
+ })));
577
+ return dts.join('\n');
578
+ });
579
+ },
580
+ [IInputDataType.pageHandlerCodes](inputData) {
581
+ return __awaiter(this, void 0, void 0, function* () {
582
+ const IParams = `{
583
+ data?: {
584
+ target?: {
585
+ [key: string]: any
586
+ }
587
+ },
588
+ event?: {
589
+ target?: EventTarget
590
+ currentTarget?: EventTarget
591
+ detail?: {
592
+ detail?: {
593
+ [key: string]: any
594
+ }
595
+ }
596
+ }
597
+ forItems?: {
598
+ [key: string]: any
599
+ }
600
+ }`;
601
+ const dts = yield Promise.all(inputData.map((item) => __awaiter(this, void 0, void 0, function* () {
602
+ const dts = yield transpileToDTS(item.code);
603
+ // 将 export default function() 替换成类似 export function onClick
604
+ return dts.replace(/default function\s*\([\s\S]*?\)/, `function ${item.name} (params: ${IParams})`);
605
+ })));
606
+ return dts.join('\n');
607
+ });
608
+ },
609
+ [IInputDataType.compHandlerCodes](inputData) {
610
+ return this.pageHandlerCodes(inputData);
611
+ },
612
+ [IInputDataType.compPropEvents](inputData) {
613
+ const IData = `any`;
614
+ return inputData
615
+ .map((eventName) => {
616
+ return `function ${eventName}(data?: ${IData}): void`;
617
+ })
618
+ .join('\n');
619
+ },
620
+ [IInputDataType.usedComponents](inputData) {
621
+ return __awaiter(this, void 0, void 0, function* () {
622
+ // 组件系统属性(在 framework/weda-framework.d.ts 的 UserWidget 中筛选一部分)
623
+ const commonProperties = {
624
+ id: {
625
+ type: 'string',
626
+ title: '组件 ID',
627
+ describe: '组件 ID,微搭中一般由编辑器生成',
628
+ },
629
+ module: {
630
+ type: 'string',
631
+ title: '组件库名',
632
+ },
633
+ component: {
634
+ type: 'string',
635
+ title: '组件名',
636
+ },
637
+ };
638
+ const results = yield Promise.all(inputData.map((item) => __awaiter(this, void 0, void 0, function* () {
639
+ // 属性
640
+ let exportPropertiesDTS = '';
641
+ if (item.exportProperties) {
642
+ const handledProperties = _handleComment(item.exportProperties);
643
+ exportPropertiesDTS = yield _compile(handledProperties);
644
+ }
645
+ // 方法
646
+ let exportMethodsDTS = '';
647
+ if (item.exportMethods) {
648
+ const results = yield Promise.all(item.exportMethods.map((item) => __awaiter(this, void 0, void 0, function* () {
649
+ let inputDTS = '';
650
+ let inputDTSCompatible = '';
651
+ if (item.input) {
652
+ inputDTS = yield _compile(item.input, true);
653
+ if (item.input.properties) {
654
+ inputDTSCompatible = yield _compile(item.input);
655
+ }
656
+ }
657
+ let outputDTS = 'void';
658
+ if (item.output) {
659
+ outputDTS = yield _compile(item.output, true);
660
+ }
661
+ // 第一个版本是兼容版本,是将 input.properties 的字段展开当多个参数
662
+ // 第二个版本是直接将 input 当参数,所以只能有一个入参
663
+ return `
664
+ /**
665
+ *
666
+ */
667
+ ${item.name} (${inputDTS ? `param: ${inputDTS.trim()}` : ''}): ${outputDTS}
668
+ ${inputDTSCompatible
669
+ ? `
670
+ /**
671
+ *
672
+ */
673
+ ${item.name} (${inputDTSCompatible.trim().replace(/\n/g, ',')}): ${outputDTS}
674
+ `
675
+ : ''}
676
+ `;
677
+ })));
678
+ exportMethodsDTS = results.join('\n');
679
+ }
680
+ // FIXME: 等确定要对外暴露 UserWidge 所有定义时
681
+ // return `
682
+ // declare class ${_genCompInterfaceName(item.module, item.component)} extends UserWidget {
683
+ // get custom(): {
684
+ // ${exportPropertiesDTS}
685
+ // ${exportMethodsDTS}
686
+ // };
687
+ // ${exportPropertiesDTS}
688
+ // ${exportMethodsDTS}
689
+ // }
690
+ // `
691
+ const interfaceName = _genCompInterfaceName(item.module, item.component);
692
+ if (!item.exportProperties) {
693
+ item.exportProperties = {
694
+ type: 'object',
695
+ properties: {},
696
+ };
697
+ }
698
+ item.exportProperties.properties = Object.assign({}, commonProperties, item.exportProperties.properties);
699
+ return `
700
+ /**
701
+ ${genWeDaCodeComment({
702
+ fieldName: interfaceName,
703
+ schema: item.exportProperties,
704
+ })
705
+ .split('\n')
706
+ .map((item) => `* ${item}`)
707
+ .join('\n')}
708
+ */
709
+ declare class ${interfaceName} extends UserWidget {
710
+
711
+ ${exportPropertiesDTS}
712
+
713
+ ${exportMethodsDTS}
714
+ }
715
+ `;
716
+ })));
717
+ return results.join('\n');
718
+ });
719
+ },
720
+ [IInputDataType.usedWidgets](inputData) {
721
+ return inputData
722
+ .map((item) => {
723
+ if (item.idList && item.idList.length > 0) {
724
+ const interfaceName = _genCompInterfaceName(item.module, item.component);
725
+ return item.idList
726
+ .map((id) => `
727
+ /**
728
+ ${genWeDaCodeComment({
729
+ fieldName: id,
730
+ title: '',
731
+ description: '',
732
+ group: GroupEnum.COMPONENT,
733
+ type: 'component',
734
+ baseClass: interfaceName,
735
+ datasource: `$${id}_start$ $${id}_end$`,
736
+ })
737
+ .split('\n')
738
+ .map((item) => `* ${item}`)
739
+ .join('\n')}
740
+ */
741
+ const ${id}: ${interfaceName}`)
742
+ .join('\n');
743
+ }
744
+ return '';
745
+ })
746
+ .join('\n');
747
+ },
748
+ [IInputDataType.repeaterScope](inputData) {
749
+ return __awaiter(this, void 0, void 0, function* () {
750
+ const results = yield Promise.all(inputData.map((item) => __awaiter(this, void 0, void 0, function* () {
751
+ let itemDataDTS = '';
752
+ if (item.itemData.title) {
753
+ // 特殊场景:数据字段
754
+ const handledInputData = _handleComment(item.itemData, GroupEnum.DATA_FIELD);
755
+ itemDataDTS = yield _compile(handledInputData, true);
756
+ }
757
+ else {
758
+ // 普通的循环项数据
759
+ itemDataDTS = yield _compile(item.itemData, true);
760
+ }
761
+ return `
762
+ /**
763
+ ${genWeDaCodeComment({
764
+ fieldName: item.currentItemAlias,
765
+ title: '当前项值',
766
+ description: '',
767
+ group: GroupEnum.REPEATER,
768
+ type: getDisplayReturnType(itemDataDTS),
769
+ schema: item.itemData,
770
+ subGroup: item.widgetId,
771
+ })
772
+ .split('\n')
773
+ .map((item) => `* ${item}`)
774
+ .join('\n')}
775
+ */
776
+ const ${item.currentItemAlias}: ${itemDataDTS}
777
+ /**
778
+ ${genWeDaCodeComment({
779
+ fieldName: item.currentIndexAlias,
780
+ title: '当前下标',
781
+ description: '',
782
+ group: GroupEnum.REPEATER,
783
+ type: 'number',
784
+ subGroup: item.widgetId,
785
+ })
786
+ .split('\n')
787
+ .map((item) => `* ${item}`)
788
+ .join('\n')}
789
+ */
790
+ const ${item.currentIndexAlias}: number
791
+ `;
792
+ })));
793
+ return results.join('\n');
794
+ });
795
+ },
796
+ [IInputDataType.redefineAnyType](inputData) {
797
+ return __awaiter(this, void 0, void 0, function* () {
798
+ const results = yield Promise.all(inputData.map((item) => __awaiter(this, void 0, void 0, function* () {
799
+ const compInterfaceName = _genCompInterfaceName(item.module, item.component);
800
+ const widgetInterfaceName = `${item.widgetId}_${compInterfaceName}`;
801
+ /**
802
+ * 更新 widget 的类型名
803
+ */
804
+ replaceRules.push({
805
+ from: new RegExp(`(const ${item.widgetId}): .*`),
806
+ to: `$1: ${widgetInterfaceName}`,
807
+ });
808
+ /**
809
+ * 增加类
810
+ */
811
+ const datasources = {};
812
+ const propDefinitions = yield Promise.all(item.updateProps.map((prop) => __awaiter(this, void 0, void 0, function* () {
813
+ const properties = _handleComment(prop.widgetPropTypeSchema, GroupEnum.DATA_FIELD);
814
+ const widgetPropTypeDTS = yield _compile(Object.assign(Object.assign({}, prop.widgetPropTypeSchema), properties), true);
815
+ // 同个数据源,有可能是数组类型,所以需要区分开
816
+ const id = `${prop.datasource.name}_${prop.widgetPropTypeSchema.type}`;
817
+ if (!datasources[id]) {
818
+ datasources[id] = {
819
+ fields: [{ name: prop.widgetPropName, title: prop.widgetPropTitle }],
820
+ schema: prop.widgetPropTypeSchema,
821
+ name: prop.datasource.name,
822
+ title: prop.datasource.title,
823
+ id: prop.datasource.id,
824
+ type: prop.datasource.type,
825
+ };
826
+ }
827
+ else {
828
+ datasources[id].fields.push({ name: prop.widgetPropName, title: prop.widgetPropTitle });
829
+ }
830
+ // 是否是多层级字段,如 "a.b"
831
+ // FIXME: 当前只支持 a.b 这种形式,不支持 a[].b
832
+ const multiLevelField = prop.widgetPropName.includes('.');
833
+ let multiLevelFields = [];
834
+ let multiLevelFieldObj = {};
835
+ let firstField = '';
836
+ let othersFields = [];
837
+ if (multiLevelField) {
838
+ multiLevelFields = prop.widgetPropName.split('.');
839
+ set(multiLevelFieldObj, prop.widgetPropName, '$$schema$$');
840
+ const [_firstField, ..._othersFields] = multiLevelFields;
841
+ firstField = _firstField;
842
+ othersFields = _othersFields;
843
+ }
844
+ return `
845
+ /**
846
+ ${genWeDaCodeComment({
847
+ fieldName: prop.widgetPropName,
848
+ title: prop.widgetPropTypeSchema.title,
849
+ description: prop.widgetPropTypeSchema.description,
850
+ group: undefined,
851
+ type: getDisplayReturnType(widgetPropTypeDTS),
852
+ })
853
+ .split('\n')
854
+ .map((item) => `* ${item}`)
855
+ .join('\n')}
856
+ */
857
+ ${multiLevelField
858
+ ? `${firstField}: Omit<${compInterfaceName}['${firstField}'], '${othersFields.join('.')}'> & ${JSON.stringify(multiLevelFieldObj[firstField]).replace('"$$schema$$"', widgetPropTypeDTS)}`
859
+ : `${prop.widgetPropName}: ${widgetPropTypeDTS}`}
860
+ `;
861
+ })));
862
+ /**
863
+ * 更新数据源信息
864
+ */
865
+ const datasourceInfoList = Object.values(datasources);
866
+ if (datasourceInfoList.length > 0) {
867
+ replaceRules.push({
868
+ from: new RegExp(`(\\$${item.widgetId}_start\\$).*(\\$${item.widgetId}_end\\$)`),
869
+ // encodeURIComponent 是为了能正常 parse 成 JSON
870
+ to: `$1${encodeURIComponent(JSON.stringify(datasourceInfoList))}$2`,
871
+ });
872
+ }
873
+ return `
874
+ declare class ${widgetInterfaceName} extends ${compInterfaceName} {
875
+ ${propDefinitions.join('\n')}
876
+ }
877
+ `;
878
+ })));
879
+ return results.join('\n');
880
+ });
881
+ },
882
+ [IInputDataType.serverSideSate](inputData) {
883
+ return __awaiter(this, void 0, void 0, function* () {
884
+ return inputData
885
+ ? `/**
886
+ ${genWeDaCodeComment({
887
+ type: 'string',
888
+ title: '用户id',
889
+ })
890
+ .split('\n')
891
+ .map((item) => `* ${item}`)
892
+ .join('\n')}
893
+ */
894
+ const USERID: string`
895
+ : '';
896
+ });
897
+ },
898
+ [IInputDataType.dtsString](inputData) {
899
+ return __awaiter(this, void 0, void 0, function* () {
900
+ return inputData;
901
+ });
902
+ },
903
+ };
904
+ let dts = '';
905
+ if (!inputData)
906
+ return [dts, replaceRules];
907
+ const handler = hanlderMap[itemType];
908
+ // 优先判断是否有独立的处理逻辑
909
+ if (handler) {
910
+ dts = yield handler.call(hanlderMap, inputData);
911
+ }
912
+ dts = dts || (yield _compile(inputData));
913
+ return [dts, replaceRules];
914
+ });
915
+ }
916
+ // 仅仅为了与 unittest 共享,外部请不要使用
917
+ export const workerCode = `
918
+ importScripts('https://qbase.cdn-go.cn/lcap/lcap-resource-cdngo/-/release/_url/devtools/typescriptServices.min.js');
919
+ importScripts('https://qbase.cdn-go.cn/lcap/lcap-resource-cdngo/-/release/_url/devtools/ts-lib.min.js');
920
+
921
+ const files = {
922
+ "foo.ts": '',
923
+ "lib.d.ts": libFileMap['lib.es5.d.ts']
924
+ };
925
+
926
+ function createLanguageService() {
927
+ return ts.createLanguageService({
928
+ getCompilationSettings() {
929
+ return {};
930
+ },
931
+ getScriptFileNames() {
932
+ return ["foo.ts", "lib.d.ts"];
933
+ },
934
+ getScriptVersion(_fileName) {
935
+ // 这样可避免使用缓存
936
+ if (_fileName === 'foo.ts')
937
+ return 'v_' + Math.random();
938
+ return ''
939
+ },
940
+ getScriptSnapshot(fileName) {
941
+ if (fileName === ".ts") {
942
+ return ts.ScriptSnapshot.fromString("");
943
+ }
944
+ return ts.ScriptSnapshot.fromString(files[fileName] || "");
945
+ },
946
+ getCurrentDirectory: () => ".",
947
+ getDefaultLibFileName(options) {
948
+ return 'lib.d.ts'
949
+ },
950
+ fileExists: name => !!files[name],
951
+ readFile: name => {
952
+ return files[name]
953
+ }
954
+ });
955
+ }
956
+ const languageService = createLanguageService();
957
+
958
+ function transpile(code) {
959
+ files["foo.ts"] = code
960
+ const result = languageService.getEmitOutput(
961
+ "foo.ts",
962
+ /*emitOnlyDtsFiles*/ true,
963
+ /*forceDtsEmit*/ true
964
+ )
965
+ return result.outputFiles[0].text.trim()
966
+ }
967
+
968
+ addEventListener('message', (message) => {
969
+ const {action, data: {id, code}} = message.data
970
+ switch(action) {
971
+ case 'dts':
972
+ const dts = transpile(code)
973
+ postMessage({action: 'dts_back', data: {id, dts}})
974
+ break
975
+ default:
976
+ break
977
+ }
978
+ })
979
+ `;
980
+ function TypescriptWorker(workerId, workerCode) {
981
+ let typescriptWorkerMap = {};
982
+ return function getInstance() {
983
+ var _a;
984
+ let typescriptWorker = (_a = typescriptWorkerMap[workerId]) === null || _a === void 0 ? void 0 : _a.typescriptWorker;
985
+ if (!typescriptWorker) {
986
+ const sendMessageCallbackFn = {};
987
+ const workerURL = URL.createObjectURL(new Blob([workerCode]));
988
+ // 在 node 环境 unittest 时增加 name 参数用于辨别是哪个 worker
989
+ typescriptWorker = new Worker(workerURL + (workerURL.search('blob:http://localhost') === 0 ? `?name=${workerId}` : ''));
990
+ typescriptWorker.onmessage = function (event) {
991
+ var _a;
992
+ const { action } = event.data;
993
+ if (action === 'dts_back') {
994
+ const { data: { id, dts }, } = event.data;
995
+ (_a = sendMessageCallbackFn[id]) === null || _a === void 0 ? void 0 : _a.call(sendMessageCallbackFn, dts);
996
+ delete sendMessageCallbackFn[id];
997
+ }
998
+ };
999
+ typescriptWorkerMap[workerId] = {
1000
+ typescriptWorker,
1001
+ sendMessageCallbackFn,
1002
+ };
1003
+ }
1004
+ function sendMessage(msgData, callbackFn) {
1005
+ const { typescriptWorker, sendMessageCallbackFn } = typescriptWorkerMap[workerId];
1006
+ const id = Math.random().toString(36).substring(2, 5);
1007
+ msgData.data.id = id;
1008
+ sendMessageCallbackFn[id] = callbackFn;
1009
+ typescriptWorker.postMessage(msgData);
1010
+ }
1011
+ return { sendMessage };
1012
+ };
1013
+ }
1014
+ /**
1015
+ * 使用:
1016
+ * const typescriptWorker = getTypescriptWorker();
1017
+ * typescriptWorker.sendMessage({ action: 'dts', data: { code } }, dts => {
1018
+ *
1019
+ * })
1020
+ * // 以下暂未实现
1021
+ * typescriptWorker.sendMessage({ action: 'ts', data: { code } }, ts => {
1022
+ *
1023
+ * })
1024
+ */
1025
+ const getTypescriptWorker = TypescriptWorker('transpileToDTS', workerCode);
1026
+ /**
1027
+ * 通过 js/ts 代码生成 dts
1028
+ */
1029
+ export function transpileToDTS(code) {
1030
+ return new Promise((resolve) => {
1031
+ const typescriptWorker = getTypescriptWorker();
1032
+ typescriptWorker.sendMessage({ action: 'dts', data: { code } }, (dts) => {
1033
+ resolve(dts);
1034
+ });
1035
+ });
1036
+ }
1037
+ export const jsonToDTSWorkerCode = `
1038
+ importScripts('https://qbase.cdn-go.cn/lcap/lcap-resource-cdngo/-/release/_url/devtools/json-schema-to-typescript-for-browser.min-11.0.5.js');
1039
+
1040
+ function transpile(jsonschema) {
1041
+ return jstt.compile(jsonschema, 'IWeDa', { additionalProperties: true, bannerComment: '', format: false, unknownAny: false })
1042
+ }
1043
+
1044
+ addEventListener('message', (message) => {
1045
+ const {action, data: {id, jsonschema}} = message.data
1046
+ switch(action) {
1047
+ case 'dts':
1048
+ transpile(jsonschema).then(dts => {
1049
+ postMessage({action: 'dts_back', data: {id, dts}})
1050
+ }).catch(err => postMessage({action: 'dts_back', data: {id, dts: 'Parse error:' + err.message}}))
1051
+ break
1052
+ default:
1053
+ break
1054
+ }
1055
+ })
1056
+ `;
1057
+ const getCompileJSONToDTSWorker = TypescriptWorker('compileJSONToDTS', jsonToDTSWorkerCode);
1058
+ /**
1059
+ * Webworker 版本的 JSON to DTS
1060
+ */
1061
+ export function compileJSONToDTS(jsonschema) {
1062
+ return new Promise((resolve, reject) => {
1063
+ const worker = getCompileJSONToDTSWorker();
1064
+ worker.sendMessage({ action: 'dts', data: { jsonschema } }, (dts) => {
1065
+ if (dts.search('Parse error:') === 0)
1066
+ reject(dts);
1067
+ else
1068
+ resolve(dts);
1069
+ });
1070
+ });
1071
+ }