@nocobase/flow-engine 2.0.0-alpha.7 → 2.0.0-alpha.71

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 (589) hide show
  1. package/lib/BlockScopedFlowEngine.d.ts +23 -0
  2. package/lib/BlockScopedFlowEngine.js +91 -0
  3. package/lib/FlowContextProvider.d.ts +2 -2
  4. package/lib/FlowContextProvider.js +3 -3
  5. package/lib/FlowDefinition.d.ts +6 -4
  6. package/lib/JSRunner.d.ts +6 -0
  7. package/lib/JSRunner.js +27 -1
  8. package/lib/ViewScopedFlowEngine.d.ts +1 -1
  9. package/lib/ViewScopedFlowEngine.js +18 -1
  10. package/lib/acl/Acl.d.ts +12 -12
  11. package/lib/acl/Acl.js +88 -30
  12. package/lib/components/DynamicFlowsEditor.js +2 -4
  13. package/lib/components/FieldModelRenderer.js +17 -9
  14. package/lib/components/FieldSkeleton.d.ts +10 -0
  15. package/lib/components/FieldSkeleton.js +64 -0
  16. package/lib/components/FlowContextSelector.js +19 -3
  17. package/lib/components/FlowModelRenderer.d.ts +4 -6
  18. package/lib/components/FlowModelRenderer.js +35 -53
  19. package/lib/components/FormItem.js +5 -1
  20. package/lib/components/MobilePopup.d.ts +20 -0
  21. package/lib/components/MobilePopup.js +102 -0
  22. package/lib/components/MobilePopup.style.d.ts +17 -0
  23. package/lib/components/MobilePopup.style.js +186 -0
  24. package/lib/components/common/withFlowDesignMode.d.ts +1 -1
  25. package/lib/components/common/withFlowDesignMode.js +5 -5
  26. package/lib/components/dnd/gridDragPlanner.d.ts +1 -0
  27. package/lib/components/dnd/gridDragPlanner.js +53 -1
  28. package/lib/components/index.d.ts +1 -0
  29. package/lib/components/index.js +3 -1
  30. package/lib/components/settings/independents/dropdown/FlowsDropdownButton.js +71 -53
  31. package/lib/components/settings/wrappers/component/SelectWithTitle.d.ts +19 -0
  32. package/lib/components/settings/wrappers/component/SelectWithTitle.js +136 -0
  33. package/lib/components/settings/wrappers/component/SwitchWithTitle.d.ts +10 -0
  34. package/lib/components/settings/wrappers/component/SwitchWithTitle.js +111 -0
  35. package/lib/components/settings/wrappers/contextual/DefaultSettingsIcon.js +233 -97
  36. package/lib/components/settings/wrappers/contextual/FlowsContextMenu.js +71 -54
  37. package/lib/components/settings/wrappers/contextual/FlowsFloatContextMenu.d.ts +2 -2
  38. package/lib/components/settings/wrappers/contextual/FlowsFloatContextMenu.js +63 -23
  39. package/lib/components/settings/wrappers/contextual/StepSettingsDialog.js +13 -2
  40. package/lib/components/settings/wrappers/embedded/FlowSettings.js +42 -28
  41. package/lib/components/settings/wrappers/embedded/FlowsSettings.js +3 -3
  42. package/lib/components/settings/wrappers/embedded/FlowsSettingsContent.js +52 -32
  43. package/lib/components/subModel/AddSubModelButton.d.ts +7 -0
  44. package/lib/components/subModel/AddSubModelButton.js +78 -8
  45. package/lib/components/subModel/LazyDropdown.js +14 -15
  46. package/lib/components/subModel/utils.d.ts +1 -1
  47. package/lib/components/subModel/utils.js +21 -11
  48. package/lib/components/variables/VariableInput.js +26 -6
  49. package/lib/components/variables/VariableTag.js +43 -2
  50. package/lib/components/variables/types.d.ts +2 -0
  51. package/lib/components/variables/utils.js +4 -2
  52. package/lib/data-source/index.d.ts +23 -4
  53. package/lib/data-source/index.js +135 -14
  54. package/lib/data-source/jioToJoiSchema.js +1 -0
  55. package/lib/emitter.d.ts +6 -0
  56. package/lib/emitter.js +12 -0
  57. package/lib/executor/FlowExecutor.d.ts +6 -6
  58. package/lib/executor/FlowExecutor.js +302 -99
  59. package/lib/flow-registry/GlobalFlowRegistry.d.ts +1 -0
  60. package/lib/flow-registry/GlobalFlowRegistry.js +3 -0
  61. package/lib/flow-registry/InstanceFlowRegistry.d.ts +1 -0
  62. package/lib/flow-registry/InstanceFlowRegistry.js +3 -0
  63. package/lib/flowContext.d.ts +105 -6
  64. package/lib/flowContext.js +447 -139
  65. package/lib/flowEngine.d.ts +71 -1
  66. package/lib/flowEngine.js +319 -16
  67. package/lib/flowSettings.d.ts +4 -3
  68. package/lib/flowSettings.js +45 -21
  69. package/lib/hooks/useApplyAutoFlows.d.ts +1 -0
  70. package/lib/hooks/useApplyAutoFlows.js +3 -2
  71. package/lib/index.d.ts +14 -3
  72. package/lib/index.js +54 -7
  73. package/lib/locale/de-DE.json +62 -0
  74. package/lib/locale/en-US.json +57 -45
  75. package/lib/locale/es-ES.json +62 -0
  76. package/lib/locale/fr-FR.json +62 -0
  77. package/lib/locale/hu-HU.json +62 -0
  78. package/lib/locale/id-ID.json +62 -0
  79. package/lib/locale/index.d.ts +114 -90
  80. package/lib/locale/it-IT.json +62 -0
  81. package/lib/locale/ja-JP.json +62 -0
  82. package/lib/locale/ko-KR.json +62 -0
  83. package/lib/locale/nl-NL.json +62 -0
  84. package/lib/locale/pt-BR.json +62 -0
  85. package/lib/locale/ru-RU.json +62 -0
  86. package/lib/locale/tr-TR.json +62 -0
  87. package/lib/locale/uk-UA.json +62 -0
  88. package/lib/locale/vi-VN.json +62 -0
  89. package/lib/locale/zh-CN.json +58 -46
  90. package/lib/locale/zh-TW.json +62 -0
  91. package/lib/models/CollectionFieldModel.d.ts +7 -2
  92. package/lib/models/CollectionFieldModel.js +63 -16
  93. package/lib/models/flowModel.d.ts +76 -32
  94. package/lib/models/flowModel.js +300 -112
  95. package/lib/models/forkFlowModel.d.ts +8 -4
  96. package/lib/models/forkFlowModel.js +38 -8
  97. package/lib/provider.d.ts +3 -1
  98. package/lib/provider.js +14 -11
  99. package/lib/reactive/index.d.ts +10 -0
  100. package/lib/{runjs-context/snippets/global/api-request-post.snippet.js → reactive/index.js} +14 -15
  101. package/lib/reactive/observer.d.ts +19 -0
  102. package/lib/reactive/observer.js +109 -0
  103. package/lib/resources/baseRecordResource.d.ts +6 -0
  104. package/lib/resources/baseRecordResource.js +38 -3
  105. package/lib/resources/multiRecordResource.d.ts +5 -2
  106. package/lib/resources/multiRecordResource.js +26 -10
  107. package/lib/resources/singleRecordResource.js +8 -3
  108. package/lib/resources/sqlResource.d.ts +5 -3
  109. package/lib/resources/sqlResource.js +30 -28
  110. package/lib/runjs-context/contexts/FormJSFieldItemRunJSContext.d.ts +1 -6
  111. package/lib/runjs-context/contexts/FormJSFieldItemRunJSContext.js +37 -20
  112. package/lib/runjs-context/contexts/JSBlockRunJSContext.d.ts +1 -6
  113. package/lib/runjs-context/contexts/JSBlockRunJSContext.js +46 -33
  114. package/lib/runjs-context/contexts/JSCollectionActionRunJSContext.d.ts +1 -2
  115. package/lib/runjs-context/contexts/JSCollectionActionRunJSContext.js +14 -15
  116. package/lib/runjs-context/contexts/{LinkageRunJSContext.d.ts → JSColumnRunJSContext.d.ts} +6 -3
  117. package/lib/runjs-context/contexts/JSColumnRunJSContext.js +78 -0
  118. package/lib/runjs-context/contexts/JSEditableFieldRunJSContext.d.ts +16 -0
  119. package/lib/runjs-context/contexts/JSEditableFieldRunJSContext.js +125 -0
  120. package/lib/runjs-context/contexts/JSFieldRunJSContext.d.ts +1 -6
  121. package/lib/runjs-context/contexts/JSFieldRunJSContext.js +28 -24
  122. package/lib/runjs-context/contexts/JSItemRunJSContext.d.ts +1 -6
  123. package/lib/runjs-context/contexts/JSItemRunJSContext.js +34 -20
  124. package/lib/runjs-context/contexts/JSRecordActionRunJSContext.d.ts +1 -2
  125. package/lib/runjs-context/contexts/JSRecordActionRunJSContext.js +16 -17
  126. package/lib/runjs-context/contexts/base.d.ts +9 -0
  127. package/lib/runjs-context/contexts/base.js +879 -0
  128. package/lib/runjs-context/contributions.d.ts +33 -0
  129. package/lib/runjs-context/contributions.js +88 -0
  130. package/lib/runjs-context/helpers.d.ts +5 -2
  131. package/lib/runjs-context/helpers.js +36 -27
  132. package/lib/runjs-context/registry.d.ts +7 -4
  133. package/lib/runjs-context/registry.js +10 -42
  134. package/lib/runjs-context/setup.d.ts +9 -0
  135. package/lib/runjs-context/setup.js +88 -0
  136. package/lib/runjs-context/snippets/global/{copy-record-json.snippet.js → api-request.snippet.js} +25 -10
  137. package/lib/runjs-context/snippets/global/clipboard-copy-text.snippet.js +61 -0
  138. package/lib/runjs-context/snippets/global/{view-navigation-push.snippet.js → import-esm.snippet.js} +26 -12
  139. package/lib/runjs-context/snippets/global/message-error.snippet.js +6 -0
  140. package/lib/runjs-context/snippets/global/message-success.snippet.js +6 -0
  141. package/lib/runjs-context/snippets/global/notification-open.snippet.d.ts +3 -8
  142. package/lib/runjs-context/snippets/global/notification-open.snippet.js +8 -1
  143. package/lib/runjs-context/snippets/global/open-view-dialog.snippet.js +10 -3
  144. package/lib/runjs-context/snippets/global/open-view-drawer.snippet.js +10 -3
  145. package/lib/runjs-context/snippets/global/query-selector.snippet.js +53 -0
  146. package/lib/runjs-context/snippets/global/require-amd.snippet.d.ts +11 -0
  147. package/lib/runjs-context/snippets/global/{requireAsync.snippet.js → require-amd.snippet.js} +16 -13
  148. package/lib/runjs-context/snippets/global/window-open.snippet.d.ts +3 -8
  149. package/lib/runjs-context/snippets/global/window-open.snippet.js +8 -1
  150. package/lib/runjs-context/snippets/index.d.ts +24 -3
  151. package/lib/runjs-context/snippets/index.js +183 -40
  152. package/lib/runjs-context/snippets/scene/block/add-event-listener.snippet.d.ts +11 -0
  153. package/lib/runjs-context/snippets/scene/{jsblock → block}/add-event-listener.snippet.js +11 -2
  154. package/lib/runjs-context/snippets/scene/block/api-fetch-render-list.snippet.d.ts +11 -0
  155. package/lib/runjs-context/snippets/scene/block/api-fetch-render-list.snippet.js +64 -0
  156. package/lib/runjs-context/snippets/scene/block/chartjs-bar.snippet.d.ts +11 -0
  157. package/lib/runjs-context/snippets/scene/block/chartjs-bar.snippet.js +99 -0
  158. package/lib/runjs-context/snippets/{libs → scene/block}/echarts-init.snippet.js +24 -7
  159. package/lib/runjs-context/snippets/scene/block/render-antd-icons.snippet.d.ts +11 -0
  160. package/lib/runjs-context/snippets/scene/block/render-antd-icons.snippet.js +65 -0
  161. package/lib/runjs-context/snippets/scene/block/render-button-handler.snippet.d.ts +11 -0
  162. package/lib/runjs-context/snippets/scene/{jsblock → block}/render-button-handler.snippet.js +17 -9
  163. package/lib/runjs-context/snippets/scene/block/render-iframe.snippet.d.ts +11 -0
  164. package/lib/runjs-context/snippets/scene/block/render-iframe.snippet.js +57 -0
  165. package/lib/runjs-context/snippets/scene/block/render-info-card.snippet.d.ts +11 -0
  166. package/lib/runjs-context/snippets/scene/block/render-info-card.snippet.js +71 -0
  167. package/lib/runjs-context/snippets/scene/block/render-react-jsx.snippet.d.ts +11 -0
  168. package/lib/runjs-context/snippets/scene/{jsblock/render-card.snippet.js → block/render-react-jsx.snippet.js} +26 -13
  169. package/lib/runjs-context/snippets/scene/block/render-react.snippet.d.ts +11 -0
  170. package/lib/runjs-context/snippets/scene/{jsblock → block}/render-react.snippet.js +18 -17
  171. package/lib/runjs-context/snippets/scene/block/render-statistics.snippet.d.ts +11 -0
  172. package/lib/runjs-context/snippets/scene/block/render-statistics.snippet.js +95 -0
  173. package/lib/runjs-context/snippets/scene/block/render-timeline.snippet.d.ts +11 -0
  174. package/lib/runjs-context/snippets/scene/block/render-timeline.snippet.js +84 -0
  175. package/lib/runjs-context/snippets/scene/block/resource-example.snippet.d.ts +11 -0
  176. package/lib/runjs-context/snippets/scene/block/resource-example.snippet.js +60 -0
  177. package/lib/runjs-context/snippets/scene/block/three-users-orbit.snippet.d.ts +11 -0
  178. package/lib/runjs-context/snippets/scene/block/three-users-orbit.snippet.js +283 -0
  179. package/lib/runjs-context/snippets/scene/block/vue-component.snippet.d.ts +11 -0
  180. package/lib/runjs-context/snippets/scene/block/vue-component.snippet.js +124 -0
  181. package/lib/runjs-context/snippets/scene/detail/color-by-value.snippet.d.ts +11 -0
  182. package/lib/runjs-context/snippets/scene/{jsfield → detail}/color-by-value.snippet.js +13 -3
  183. package/lib/runjs-context/snippets/scene/detail/copy-to-clipboard.snippet.d.ts +11 -0
  184. package/lib/runjs-context/snippets/{global → scene/detail}/copy-to-clipboard.snippet.js +28 -6
  185. package/lib/runjs-context/snippets/scene/detail/format-number.snippet.d.ts +11 -0
  186. package/lib/runjs-context/snippets/scene/{jsfield → detail}/format-number.snippet.js +13 -3
  187. package/lib/runjs-context/snippets/scene/detail/innerHTML-value.snippet.d.ts +11 -0
  188. package/lib/runjs-context/snippets/scene/{jsfield → detail}/innerHTML-value.snippet.js +13 -3
  189. package/lib/runjs-context/snippets/scene/detail/percentage-bar.snippet.d.ts +11 -0
  190. package/lib/runjs-context/snippets/scene/detail/percentage-bar.snippet.js +82 -0
  191. package/lib/runjs-context/snippets/scene/detail/relative-time.snippet.d.ts +11 -0
  192. package/lib/runjs-context/snippets/scene/detail/relative-time.snippet.js +80 -0
  193. package/lib/runjs-context/snippets/scene/detail/status-tag.snippet.d.ts +11 -0
  194. package/lib/runjs-context/snippets/scene/detail/status-tag.snippet.js +74 -0
  195. package/lib/runjs-context/snippets/scene/form/calculate-total.snippet.d.ts +11 -0
  196. package/lib/runjs-context/snippets/scene/form/calculate-total.snippet.js +63 -0
  197. package/lib/runjs-context/snippets/scene/form/cascade-select.snippet.d.ts +11 -0
  198. package/lib/runjs-context/snippets/scene/form/cascade-select.snippet.js +81 -0
  199. package/lib/runjs-context/snippets/scene/form/conditional-required.snippet.d.ts +11 -0
  200. package/lib/runjs-context/snippets/scene/form/conditional-required.snippet.js +64 -0
  201. package/lib/runjs-context/snippets/scene/form/copy-field-values.snippet.d.ts +11 -0
  202. package/lib/runjs-context/snippets/scene/form/copy-field-values.snippet.js +74 -0
  203. package/lib/runjs-context/snippets/scene/form/render-basic.snippet.d.ts +11 -0
  204. package/lib/runjs-context/snippets/scene/{jsitem → form}/render-basic.snippet.js +11 -2
  205. package/lib/runjs-context/snippets/scene/form/set-disabled.snippet.d.ts +11 -0
  206. package/lib/runjs-context/snippets/scene/{linkage → form}/set-disabled.snippet.js +12 -3
  207. package/lib/runjs-context/snippets/scene/form/set-field-value.snippet.d.ts +11 -0
  208. package/lib/runjs-context/snippets/scene/{linkage → form}/set-field-value.snippet.js +12 -3
  209. package/lib/runjs-context/snippets/scene/form/set-required.snippet.d.ts +11 -0
  210. package/lib/runjs-context/snippets/scene/{linkage → form}/set-required.snippet.js +12 -3
  211. package/lib/runjs-context/snippets/scene/form/toggle-multiple-fields.snippet.d.ts +11 -0
  212. package/lib/runjs-context/snippets/scene/form/toggle-multiple-fields.snippet.js +67 -0
  213. package/lib/runjs-context/snippets/scene/form/toggle-visible.snippet.d.ts +11 -0
  214. package/lib/runjs-context/snippets/scene/{linkage → form}/toggle-visible.snippet.js +12 -3
  215. package/lib/runjs-context/snippets/scene/table/cell-open-dialog.snippet.d.ts +11 -0
  216. package/lib/runjs-context/snippets/scene/table/cell-open-dialog.snippet.js +64 -0
  217. package/lib/runjs-context/snippets/scene/table/collection-selected-count.snippet.d.ts +11 -0
  218. package/lib/runjs-context/snippets/scene/{actions → table}/collection-selected-count.snippet.js +11 -2
  219. package/lib/runjs-context/snippets/scene/table/concat-fields.snippet.d.ts +11 -0
  220. package/lib/runjs-context/snippets/scene/table/concat-fields.snippet.js +79 -0
  221. package/lib/runjs-context/snippets/scene/table/destroy-selected.snippet.d.ts +11 -0
  222. package/lib/runjs-context/snippets/{global/log-json-record.snippet.js → scene/table/destroy-selected.snippet.js} +24 -11
  223. package/lib/runjs-context/snippets/scene/table/export-selected-json.snippet.d.ts +11 -0
  224. package/lib/runjs-context/snippets/scene/table/export-selected-json.snippet.js +64 -0
  225. package/lib/runjs-context/snippets/scene/table/iterate-selected-rows.snippet.d.ts +11 -0
  226. package/lib/runjs-context/snippets/scene/{actions → table}/iterate-selected-rows.snippet.js +11 -2
  227. package/lib/runjs-context/snippets/types.d.ts +9 -1
  228. package/lib/runjsLibs.d.ts +28 -0
  229. package/lib/runjsLibs.js +532 -0
  230. package/lib/scheduler/ModelOperationScheduler.d.ts +53 -0
  231. package/lib/scheduler/ModelOperationScheduler.js +262 -0
  232. package/lib/types.d.ts +66 -7
  233. package/lib/types.js +4 -3
  234. package/lib/utils/associationObjectVariable.d.ts +32 -0
  235. package/lib/utils/associationObjectVariable.js +157 -0
  236. package/lib/utils/createCollectionContextMeta.d.ts +1 -1
  237. package/lib/utils/createCollectionContextMeta.js +9 -4
  238. package/lib/utils/createEphemeralContext.d.ts +13 -0
  239. package/lib/utils/createEphemeralContext.js +140 -0
  240. package/lib/utils/flows.d.ts +10 -0
  241. package/lib/{runjs-context/snippets/global/console-log-ctx.snippet.js → utils/flows.js} +21 -14
  242. package/lib/utils/index.d.ts +9 -3
  243. package/lib/utils/index.js +30 -2
  244. package/lib/utils/jsxTransform.d.ts +15 -0
  245. package/lib/utils/jsxTransform.js +68 -0
  246. package/lib/utils/params-resolvers.js +19 -12
  247. package/lib/utils/parsePathnameToViewParams.d.ts +1 -1
  248. package/lib/utils/parsePathnameToViewParams.js +41 -5
  249. package/lib/utils/pruneFilter.d.ts +21 -0
  250. package/lib/{runjs-context/snippets/global/try-catch-async.snippet.js → utils/pruneFilter.js} +24 -16
  251. package/lib/utils/resolveModuleUrl.d.ts +58 -0
  252. package/lib/utils/resolveModuleUrl.js +65 -0
  253. package/lib/utils/runjsModuleLoader.d.ts +58 -0
  254. package/lib/utils/runjsModuleLoader.js +422 -0
  255. package/lib/utils/runjsTemplateCompat.d.ts +35 -0
  256. package/lib/utils/runjsTemplateCompat.js +743 -0
  257. package/lib/utils/safeGlobals.d.ts +6 -8
  258. package/lib/utils/safeGlobals.js +169 -14
  259. package/lib/utils/schema-utils.d.ts +6 -0
  260. package/lib/utils/schema-utils.js +71 -6
  261. package/lib/utils/serverContextParams.d.ts +4 -0
  262. package/lib/utils/serverContextParams.js +2 -0
  263. package/lib/utils/translation.d.ts +4 -1
  264. package/lib/utils/translation.js +6 -2
  265. package/lib/utils/variablesParams.d.ts +22 -5
  266. package/lib/utils/variablesParams.js +141 -61
  267. package/lib/views/DialogComponent.js +1 -5
  268. package/lib/views/DrawerComponent.js +18 -9
  269. package/lib/views/PageComponent.js +5 -5
  270. package/lib/views/ViewNavigation.d.ts +11 -15
  271. package/lib/views/ViewNavigation.js +37 -19
  272. package/lib/views/createViewMeta.d.ts +27 -5
  273. package/lib/views/createViewMeta.js +338 -72
  274. package/lib/views/index.d.ts +1 -1
  275. package/lib/views/index.js +4 -0
  276. package/lib/views/useDialog.d.ts +10 -9
  277. package/lib/views/useDialog.js +46 -34
  278. package/lib/views/useDrawer.d.ts +10 -9
  279. package/lib/views/useDrawer.js +74 -48
  280. package/lib/views/usePage.d.ts +14 -9
  281. package/lib/views/usePage.js +82 -33
  282. package/lib/views/usePopover.js +4 -1
  283. package/lib/views/viewEvents.d.ts +17 -0
  284. package/lib/views/viewEvents.js +90 -0
  285. package/package.json +6 -3
  286. package/src/BlockScopedFlowEngine.ts +85 -0
  287. package/src/FlowContextProvider.tsx +4 -2
  288. package/src/JSRunner.ts +39 -1
  289. package/src/ViewScopedFlowEngine.ts +21 -1
  290. package/src/__tests__/JSRunner.test.ts +125 -52
  291. package/src/__tests__/blockScopedFlowEngine.test.ts +154 -0
  292. package/src/__tests__/createViewMeta.popup.test.ts +203 -0
  293. package/src/__tests__/flow-engine.test.ts +3 -0
  294. package/src/__tests__/flowContext.test.ts +160 -0
  295. package/src/__tests__/flowContextCreateJSRunner.test.ts +163 -0
  296. package/src/__tests__/flowEngine.dataSourceDirty.test.ts +63 -0
  297. package/src/__tests__/flowEngine.destroyModel.test.ts +74 -0
  298. package/src/__tests__/flowEngine.moveModel.test.ts +43 -0
  299. package/src/__tests__/flowEngine.removeModel.test.ts +72 -0
  300. package/src/__tests__/flowEngine.saveModel.test.ts +4 -0
  301. package/src/__tests__/flowModel.openView.navigation.test.ts +31 -2
  302. package/src/__tests__/flowRunJSContextDefine.test.ts +508 -0
  303. package/src/__tests__/flowSettings.open.test.tsx +71 -15
  304. package/src/__tests__/flowSettings.test.ts +2 -0
  305. package/src/__tests__/globalFlowRegistry.test.ts +1 -1
  306. package/src/__tests__/modelOperationScheduler.test.ts +346 -0
  307. package/src/__tests__/objectVariable.test.ts +464 -0
  308. package/src/__tests__/provider.test.tsx +0 -5
  309. package/src/__tests__/runjsContext.test.ts +219 -35
  310. package/src/__tests__/runjsContextImplementations.test.ts +217 -0
  311. package/src/__tests__/runjsContextRuntime.test.ts +269 -0
  312. package/src/__tests__/runjsEdgeCases.test.ts +281 -0
  313. package/src/__tests__/runjsExternalLibs.test.ts +242 -0
  314. package/src/__tests__/runjsLibsLazyLoading.test.ts +44 -0
  315. package/src/__tests__/runjsLocales.test.ts +39 -0
  316. package/src/__tests__/runjsPreprocessDefault.test.ts +49 -0
  317. package/src/__tests__/runjsRuntimeFeatures.test.ts +461 -0
  318. package/src/__tests__/runjsSnippets.test.ts +140 -0
  319. package/src/__tests__/viewScopedFlowEngine.test.ts +101 -3
  320. package/src/acl/Acl.tsx +85 -31
  321. package/src/acl/__tests__/Acl.test.tsx +43 -1
  322. package/src/components/DynamicFlowsEditor.tsx +0 -10
  323. package/src/components/FieldModelRenderer.tsx +22 -9
  324. package/src/components/FieldSkeleton.tsx +27 -0
  325. package/src/components/FlowContextSelector.tsx +20 -2
  326. package/src/components/FlowModelRenderer.tsx +52 -84
  327. package/src/components/FormItem.tsx +8 -1
  328. package/src/components/MobilePopup.style.ts +220 -0
  329. package/src/components/MobilePopup.tsx +86 -0
  330. package/src/components/__tests__/FlowModelRenderer.test.tsx +89 -0
  331. package/src/components/__tests__/flow-model-render-error-fallback.test.tsx +6 -6
  332. package/src/components/__tests__/gridDragPlanner.test.ts +141 -1
  333. package/src/components/common/withFlowDesignMode.tsx +5 -5
  334. package/src/components/dnd/gridDragPlanner.ts +60 -0
  335. package/src/components/index.ts +1 -0
  336. package/src/components/settings/independents/dropdown/FlowsDropdownButton.tsx +34 -17
  337. package/src/components/settings/wrappers/component/SelectWithTitle.tsx +110 -0
  338. package/src/components/settings/wrappers/component/SwitchWithTitle.tsx +83 -0
  339. package/src/components/settings/wrappers/component/__tests__/InlineControls.test.tsx +74 -0
  340. package/src/components/settings/wrappers/contextual/DefaultSettingsIcon.tsx +272 -125
  341. package/src/components/settings/wrappers/contextual/FlowsContextMenu.tsx +34 -18
  342. package/src/components/settings/wrappers/contextual/FlowsFloatContextMenu.tsx +56 -18
  343. package/src/components/settings/wrappers/contextual/StepSettings.tsx +1 -2
  344. package/src/components/settings/wrappers/contextual/StepSettingsDialog.tsx +13 -1
  345. package/src/components/settings/wrappers/contextual/__tests__/DefaultSettingsIcon.test.tsx +624 -0
  346. package/src/components/settings/wrappers/embedded/FlowSettings.tsx +47 -35
  347. package/src/components/settings/wrappers/embedded/FlowsSettings.tsx +1 -1
  348. package/src/components/settings/wrappers/embedded/FlowsSettingsContent.tsx +64 -42
  349. package/src/components/subModel/AddSubModelButton.tsx +104 -9
  350. package/src/components/subModel/LazyDropdown.tsx +14 -14
  351. package/src/components/subModel/__tests__/AddSubModelButton.test.tsx +168 -7
  352. package/src/components/subModel/__tests__/utils.test.ts +12 -12
  353. package/src/components/subModel/utils.ts +25 -6
  354. package/src/components/variables/VariableInput.tsx +32 -6
  355. package/src/components/variables/VariableTag.tsx +54 -2
  356. package/src/components/variables/types.ts +2 -0
  357. package/src/components/variables/utils.ts +7 -3
  358. package/src/data-source/index.ts +143 -12
  359. package/src/data-source/jioToJoiSchema.ts +1 -0
  360. package/src/emitter.ts +14 -0
  361. package/src/executor/FlowExecutor.ts +383 -119
  362. package/src/executor/__tests__/ctx-defs-injection.test.ts +197 -0
  363. package/src/executor/__tests__/flowExecutor.test.ts +217 -5
  364. package/src/flow-registry/GlobalFlowRegistry.ts +1 -0
  365. package/src/flow-registry/InstanceFlowRegistry.ts +1 -0
  366. package/src/flow-registry/__tests__/globalFlowRegistry.test.ts +54 -0
  367. package/src/flowContext.ts +646 -158
  368. package/src/flowEngine.ts +385 -14
  369. package/src/flowSettings.ts +59 -30
  370. package/src/hooks/useApplyAutoFlows.ts +5 -3
  371. package/src/index.ts +26 -3
  372. package/src/locale/de-DE.json +62 -0
  373. package/src/locale/en-US.json +57 -45
  374. package/src/locale/es-ES.json +62 -0
  375. package/src/locale/fr-FR.json +62 -0
  376. package/src/locale/hu-HU.json +62 -0
  377. package/src/locale/id-ID.json +62 -0
  378. package/src/locale/it-IT.json +62 -0
  379. package/src/locale/ja-JP.json +62 -0
  380. package/src/locale/ko-KR.json +62 -0
  381. package/src/locale/nl-NL.json +62 -0
  382. package/src/locale/pt-BR.json +62 -0
  383. package/src/locale/ru-RU.json +62 -0
  384. package/src/locale/tr-TR.json +62 -0
  385. package/src/locale/uk-UA.json +62 -0
  386. package/src/locale/vi-VN.json +62 -0
  387. package/src/locale/zh-CN.json +58 -46
  388. package/src/locale/zh-TW.json +62 -0
  389. package/src/models/CollectionFieldModel.tsx +82 -18
  390. package/src/models/__tests__/dispatchEvent.behavior.test.ts +169 -0
  391. package/src/models/__tests__/dispatchEvent.when.test.ts +356 -0
  392. package/src/models/__tests__/flowEngine.resolveUse.test.ts +170 -0
  393. package/src/models/__tests__/flowModel.clone.test.ts +416 -0
  394. package/src/models/__tests__/flowModel.getFlows.sort.test.ts +33 -9
  395. package/src/models/__tests__/flowModel.scheduleModelOperation.test.tsx +129 -0
  396. package/src/models/__tests__/flowModel.test.ts +296 -119
  397. package/src/models/__tests__/forkFlowModel.test.ts +40 -7
  398. package/src/models/flowModel.tsx +426 -148
  399. package/src/models/forkFlowModel.ts +48 -8
  400. package/src/provider.tsx +18 -14
  401. package/src/reactive/__tests__/observer.test.tsx +211 -0
  402. package/src/reactive/index.ts +11 -0
  403. package/src/reactive/observer.tsx +101 -0
  404. package/src/resources/__tests__/multiRecordResource.test.ts +44 -0
  405. package/src/resources/__tests__/sqlResource.test.ts +60 -0
  406. package/src/resources/baseRecordResource.ts +46 -3
  407. package/src/resources/multiRecordResource.ts +28 -12
  408. package/src/resources/singleRecordResource.ts +9 -3
  409. package/src/resources/sqlResource.ts +33 -32
  410. package/src/runjs-context/contexts/FormJSFieldItemRunJSContext.ts +38 -21
  411. package/src/runjs-context/contexts/JSBlockRunJSContext.ts +50 -34
  412. package/src/runjs-context/contexts/JSCollectionActionRunJSContext.ts +15 -16
  413. package/src/runjs-context/contexts/JSColumnRunJSContext.ts +58 -0
  414. package/src/runjs-context/contexts/JSEditableFieldRunJSContext.ts +106 -0
  415. package/src/runjs-context/contexts/JSFieldRunJSContext.ts +30 -25
  416. package/src/runjs-context/contexts/JSItemRunJSContext.ts +35 -21
  417. package/src/runjs-context/contexts/JSRecordActionRunJSContext.ts +17 -18
  418. package/src/runjs-context/contexts/base.ts +871 -0
  419. package/src/runjs-context/contributions.ts +88 -0
  420. package/src/runjs-context/helpers.ts +32 -30
  421. package/src/runjs-context/registry.ts +16 -47
  422. package/src/runjs-context/setup.ts +57 -0
  423. package/src/runjs-context/snippets/global/api-request.snippet.ts +38 -0
  424. package/src/runjs-context/snippets/global/clipboard-copy-text.snippet.ts +42 -0
  425. package/src/runjs-context/snippets/global/import-esm.snippet.ts +39 -0
  426. package/src/runjs-context/snippets/global/message-error.snippet.ts +6 -0
  427. package/src/runjs-context/snippets/global/message-success.snippet.ts +6 -0
  428. package/src/runjs-context/snippets/global/notification-open.snippet.ts +11 -1
  429. package/src/runjs-context/snippets/global/open-view-dialog.snippet.ts +10 -3
  430. package/src/runjs-context/snippets/global/open-view-drawer.snippet.ts +10 -3
  431. package/src/runjs-context/snippets/global/query-selector.snippet.ts +34 -0
  432. package/src/runjs-context/snippets/global/require-amd.snippet.ts +30 -0
  433. package/src/runjs-context/snippets/global/window-open.snippet.ts +11 -1
  434. package/src/runjs-context/snippets/index.ts +212 -39
  435. package/src/runjs-context/snippets/scene/{jsblock → block}/add-event-listener.snippet.ts +14 -2
  436. package/src/runjs-context/snippets/scene/block/api-fetch-render-list.snippet.ts +45 -0
  437. package/src/runjs-context/snippets/scene/block/chartjs-bar.snippet.ts +80 -0
  438. package/src/runjs-context/snippets/scene/block/echarts-init.snippet.ts +44 -0
  439. package/src/runjs-context/snippets/scene/block/render-antd-icons.snippet.ts +46 -0
  440. package/src/runjs-context/snippets/scene/block/render-button-handler.snippet.ts +35 -0
  441. package/src/runjs-context/snippets/scene/block/render-iframe.snippet.ts +38 -0
  442. package/src/runjs-context/snippets/scene/block/render-info-card.snippet.ts +52 -0
  443. package/src/runjs-context/snippets/scene/block/render-react-jsx.snippet.ts +39 -0
  444. package/src/runjs-context/snippets/scene/block/render-react.snippet.ts +38 -0
  445. package/src/runjs-context/snippets/scene/block/render-statistics.snippet.ts +76 -0
  446. package/src/runjs-context/snippets/scene/block/render-timeline.snippet.ts +65 -0
  447. package/src/runjs-context/snippets/scene/block/resource-example.snippet.ts +46 -0
  448. package/src/runjs-context/snippets/scene/block/three-users-orbit.snippet.ts +264 -0
  449. package/src/runjs-context/snippets/scene/block/vue-component.snippet.ts +105 -0
  450. package/src/runjs-context/snippets/scene/detail/color-by-value.snippet.ts +33 -0
  451. package/src/runjs-context/snippets/scene/detail/copy-to-clipboard.snippet.ts +45 -0
  452. package/src/runjs-context/snippets/scene/detail/format-number.snippet.ts +32 -0
  453. package/src/runjs-context/snippets/scene/detail/innerHTML-value.snippet.ts +31 -0
  454. package/src/runjs-context/snippets/scene/detail/percentage-bar.snippet.ts +63 -0
  455. package/src/runjs-context/snippets/scene/detail/relative-time.snippet.ts +61 -0
  456. package/src/runjs-context/snippets/scene/detail/status-tag.snippet.ts +55 -0
  457. package/src/runjs-context/snippets/scene/form/calculate-total.snippet.ts +44 -0
  458. package/src/runjs-context/snippets/scene/form/cascade-select.snippet.ts +62 -0
  459. package/src/runjs-context/snippets/scene/form/conditional-required.snippet.ts +45 -0
  460. package/src/runjs-context/snippets/scene/form/copy-field-values.snippet.ts +55 -0
  461. package/src/runjs-context/snippets/scene/{jsitem → form}/render-basic.snippet.ts +14 -2
  462. package/src/runjs-context/snippets/scene/{linkage → form}/set-disabled.snippet.ts +15 -3
  463. package/src/runjs-context/snippets/scene/{linkage → form}/set-field-value.snippet.ts +15 -3
  464. package/src/runjs-context/snippets/scene/{linkage → form}/set-required.snippet.ts +15 -3
  465. package/src/runjs-context/snippets/scene/form/toggle-multiple-fields.snippet.ts +48 -0
  466. package/src/runjs-context/snippets/scene/{linkage → form}/toggle-visible.snippet.ts +15 -3
  467. package/src/runjs-context/snippets/scene/table/cell-open-dialog.snippet.ts +45 -0
  468. package/src/runjs-context/snippets/scene/{actions → table}/collection-selected-count.snippet.ts +14 -2
  469. package/src/runjs-context/snippets/scene/table/concat-fields.snippet.ts +60 -0
  470. package/src/runjs-context/snippets/scene/table/destroy-selected.snippet.ts +36 -0
  471. package/src/runjs-context/snippets/scene/table/export-selected-json.snippet.ts +45 -0
  472. package/src/runjs-context/snippets/scene/{actions → table}/iterate-selected-rows.snippet.ts +14 -2
  473. package/src/runjs-context/snippets/types.ts +5 -1
  474. package/src/runjsLibs.ts +622 -0
  475. package/src/scheduler/ModelOperationScheduler.ts +306 -0
  476. package/src/types.ts +86 -5
  477. package/src/utils/__tests__/createCollectionContextMeta.test.ts +51 -0
  478. package/src/utils/__tests__/flows.test.ts +65 -0
  479. package/src/utils/__tests__/jsxTransform.test.ts +38 -0
  480. package/src/utils/__tests__/params-resolvers.test.ts +40 -0
  481. package/src/utils/__tests__/parsePathnameToViewParams.test.ts +25 -0
  482. package/src/utils/__tests__/pruneFilter.test.ts +38 -0
  483. package/src/utils/__tests__/runjsRequireAsyncAutoWhitelist.test.ts +38 -0
  484. package/src/utils/__tests__/runjsTemplateCompat.test.ts +159 -0
  485. package/src/utils/__tests__/safeGlobals.test.ts +79 -2
  486. package/src/utils/__tests__/utils.test.ts +114 -15
  487. package/src/utils/__tests__/variablesParams.test.ts +120 -0
  488. package/src/utils/associationObjectVariable.ts +180 -0
  489. package/src/utils/createCollectionContextMeta.ts +9 -3
  490. package/src/utils/createEphemeralContext.ts +142 -0
  491. package/src/utils/flows.ts +23 -0
  492. package/src/utils/index.ts +17 -3
  493. package/src/utils/jsxTransform.ts +39 -0
  494. package/src/utils/params-resolvers.ts +25 -11
  495. package/src/utils/parsePathnameToViewParams.ts +50 -6
  496. package/src/utils/pruneFilter.ts +41 -0
  497. package/src/utils/resolveModuleUrl.ts +91 -0
  498. package/src/utils/runjsModuleLoader.ts +553 -0
  499. package/src/utils/runjsTemplateCompat.ts +828 -0
  500. package/src/utils/safeGlobals.ts +181 -15
  501. package/src/utils/schema-utils.ts +81 -3
  502. package/src/utils/serverContextParams.ts +6 -0
  503. package/src/utils/translation.ts +7 -2
  504. package/src/utils/variablesParams.ts +164 -72
  505. package/src/views/DialogComponent.tsx +1 -4
  506. package/src/views/DrawerComponent.tsx +19 -7
  507. package/src/views/PageComponent.tsx +3 -5
  508. package/src/views/ViewNavigation.ts +49 -43
  509. package/src/views/__tests__/FlowView.usePage.test.tsx +186 -0
  510. package/src/views/__tests__/ViewNavigation.test.ts +54 -34
  511. package/src/views/__tests__/useDialog.closeDestroy.test.tsx +159 -0
  512. package/src/views/__tests__/viewEvents.resolveOpenerEngine.test.ts +28 -0
  513. package/src/views/createViewMeta.ts +402 -73
  514. package/src/views/index.tsx +1 -1
  515. package/src/views/useDialog.tsx +52 -31
  516. package/src/views/useDrawer.tsx +99 -55
  517. package/src/views/usePage.tsx +101 -33
  518. package/src/views/usePopover.tsx +4 -1
  519. package/src/views/viewEvents.ts +55 -0
  520. package/lib/runjs-context/contexts/FlowRunJSContext.d.ts +0 -38
  521. package/lib/runjs-context/contexts/FlowRunJSContext.js +0 -217
  522. package/lib/runjs-context/contexts/LinkageRunJSContext.js +0 -62
  523. package/lib/runjs-context/index.d.ts +0 -19
  524. package/lib/runjs-context/index.js +0 -57
  525. package/lib/runjs-context/snippets/global/api-request-get.snippet.d.ts +0 -16
  526. package/lib/runjs-context/snippets/global/api-request-get.snippet.js +0 -42
  527. package/lib/runjs-context/snippets/global/api-request-post.snippet.d.ts +0 -16
  528. package/lib/runjs-context/snippets/global/console-log-ctx.snippet.d.ts +0 -16
  529. package/lib/runjs-context/snippets/global/requireAsync.snippet.d.ts +0 -16
  530. package/lib/runjs-context/snippets/global/sleep.snippet.d.ts +0 -16
  531. package/lib/runjs-context/snippets/global/sleep.snippet.js +0 -43
  532. package/lib/runjs-context/snippets/global/try-catch-async.snippet.d.ts +0 -16
  533. package/lib/runjs-context/snippets/libs/echarts-init.snippet.d.ts +0 -15
  534. package/lib/runjs-context/snippets/scene/actions/collection-selected-count.snippet.d.ts +0 -15
  535. package/lib/runjs-context/snippets/scene/actions/iterate-selected-rows.snippet.d.ts +0 -15
  536. package/lib/runjs-context/snippets/scene/actions/record-id-message.snippet.d.ts +0 -15
  537. package/lib/runjs-context/snippets/scene/actions/record-id-message.snippet.js +0 -43
  538. package/lib/runjs-context/snippets/scene/actions/run-action-basic.snippet.d.ts +0 -15
  539. package/lib/runjs-context/snippets/scene/actions/run-action-basic.snippet.js +0 -40
  540. package/lib/runjs-context/snippets/scene/jsblock/add-event-listener.snippet.d.ts +0 -15
  541. package/lib/runjs-context/snippets/scene/jsblock/append-style.snippet.d.ts +0 -15
  542. package/lib/runjs-context/snippets/scene/jsblock/append-style.snippet.js +0 -42
  543. package/lib/runjs-context/snippets/scene/jsblock/jsx-mount.snippet.d.ts +0 -15
  544. package/lib/runjs-context/snippets/scene/jsblock/jsx-mount.snippet.js +0 -46
  545. package/lib/runjs-context/snippets/scene/jsblock/jsx-unmount.snippet.d.ts +0 -15
  546. package/lib/runjs-context/snippets/scene/jsblock/jsx-unmount.snippet.js +0 -41
  547. package/lib/runjs-context/snippets/scene/jsblock/render-basic.snippet.d.ts +0 -15
  548. package/lib/runjs-context/snippets/scene/jsblock/render-basic.snippet.js +0 -41
  549. package/lib/runjs-context/snippets/scene/jsblock/render-button-handler.snippet.d.ts +0 -15
  550. package/lib/runjs-context/snippets/scene/jsblock/render-react.snippet.d.ts +0 -15
  551. package/lib/runjs-context/snippets/scene/jsfield/color-by-value.snippet.d.ts +0 -15
  552. package/lib/runjs-context/snippets/scene/jsfield/format-number.snippet.d.ts +0 -15
  553. package/lib/runjs-context/snippets/scene/jsfield/innerHTML-value.snippet.d.ts +0 -15
  554. package/lib/runjs-context/snippets/scene/jsitem/render-basic.snippet.d.ts +0 -15
  555. package/lib/runjs-context/snippets/scene/linkage/set-disabled.snippet.d.ts +0 -15
  556. package/lib/runjs-context/snippets/scene/linkage/set-field-value.snippet.d.ts +0 -15
  557. package/lib/runjs-context/snippets/scene/linkage/set-required.snippet.d.ts +0 -15
  558. package/lib/runjs-context/snippets/scene/linkage/toggle-visible.snippet.d.ts +0 -15
  559. package/src/runjs-context/contexts/FlowRunJSContext.ts +0 -190
  560. package/src/runjs-context/contexts/LinkageRunJSContext.ts +0 -35
  561. package/src/runjs-context/index.ts +0 -20
  562. package/src/runjs-context/snippets/global/api-request-get.snippet.ts +0 -20
  563. package/src/runjs-context/snippets/global/api-request-post.snippet.ts +0 -20
  564. package/src/runjs-context/snippets/global/console-log-ctx.snippet.ts +0 -19
  565. package/src/runjs-context/snippets/global/copy-record-json.snippet.ts +0 -21
  566. package/src/runjs-context/snippets/global/copy-to-clipboard.snippet.ts +0 -21
  567. package/src/runjs-context/snippets/global/log-json-record.snippet.ts +0 -21
  568. package/src/runjs-context/snippets/global/requireAsync.snippet.ts +0 -24
  569. package/src/runjs-context/snippets/global/sleep.snippet.ts +0 -21
  570. package/src/runjs-context/snippets/global/try-catch-async.snippet.ts +0 -22
  571. package/src/runjs-context/snippets/global/view-navigation-push.snippet.ts +0 -23
  572. package/src/runjs-context/snippets/libs/echarts-init.snippet.ts +0 -24
  573. package/src/runjs-context/snippets/scene/actions/record-id-message.snippet.ts +0 -21
  574. package/src/runjs-context/snippets/scene/actions/run-action-basic.snippet.ts +0 -18
  575. package/src/runjs-context/snippets/scene/jsblock/append-style.snippet.ts +0 -20
  576. package/src/runjs-context/snippets/scene/jsblock/jsx-mount.snippet.ts +0 -24
  577. package/src/runjs-context/snippets/scene/jsblock/jsx-unmount.snippet.ts +0 -19
  578. package/src/runjs-context/snippets/scene/jsblock/render-basic.snippet.ts +0 -24
  579. package/src/runjs-context/snippets/scene/jsblock/render-button-handler.snippet.ts +0 -24
  580. package/src/runjs-context/snippets/scene/jsblock/render-card.snippet.ts +0 -30
  581. package/src/runjs-context/snippets/scene/jsblock/render-react.snippet.ts +0 -34
  582. package/src/runjs-context/snippets/scene/jsfield/color-by-value.snippet.ts +0 -20
  583. package/src/runjs-context/snippets/scene/jsfield/format-number.snippet.ts +0 -19
  584. package/src/runjs-context/snippets/scene/jsfield/innerHTML-value.snippet.ts +0 -18
  585. /package/lib/runjs-context/snippets/global/{copy-record-json.snippet.d.ts → api-request.snippet.d.ts} +0 -0
  586. /package/lib/runjs-context/snippets/global/{copy-to-clipboard.snippet.d.ts → clipboard-copy-text.snippet.d.ts} +0 -0
  587. /package/lib/runjs-context/snippets/global/{log-json-record.snippet.d.ts → import-esm.snippet.d.ts} +0 -0
  588. /package/lib/runjs-context/snippets/global/{view-navigation-push.snippet.d.ts → query-selector.snippet.d.ts} +0 -0
  589. /package/lib/runjs-context/snippets/scene/{jsblock/render-card.snippet.d.ts → block/echarts-init.snippet.d.ts} +0 -0
@@ -11,6 +11,7 @@ var __defProp = Object.defineProperty;
11
11
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
12
12
  var __getOwnPropNames = Object.getOwnPropertyNames;
13
13
  var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
14
15
  var __export = (target, all) => {
15
16
  for (var name in all)
16
17
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -24,21 +25,28 @@ var __copyProps = (to, from, except, desc) => {
24
25
  return to;
25
26
  };
26
27
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
27
- var try_catch_async_snippet_exports = {};
28
- __export(try_catch_async_snippet_exports, {
29
- default: () => try_catch_async_snippet_default
28
+ var pruneFilter_exports = {};
29
+ __export(pruneFilter_exports, {
30
+ pruneFilter: () => pruneFilter
30
31
  });
31
- module.exports = __toCommonJS(try_catch_async_snippet_exports);
32
- var try_catch_async_snippet_default = {
33
- contexts: ["*"],
34
- prefix: "sn-try",
35
- label: "Try/catch template",
36
- description: "Async try/catch template with toast message",
37
- content: `
38
- try {
39
- // await some async work
40
- } catch (e) {
41
- ctx.message.error(ctx.t('Operation failed: {{msg}}', { msg: String(e?.message || e) }));
32
+ module.exports = __toCommonJS(pruneFilter_exports);
33
+ function pruneFilter(input) {
34
+ if (Array.isArray(input)) {
35
+ const arr = input.map((v) => pruneFilter(v)).filter((v) => v !== void 0);
36
+ return arr.length ? arr : void 0;
37
+ }
38
+ if (input && typeof input === "object") {
39
+ const out = {};
40
+ Object.keys(input).forEach((k) => {
41
+ const v = pruneFilter(input[k]);
42
+ if (v !== void 0) out[k] = v;
43
+ });
44
+ return Object.keys(out).length ? out : void 0;
45
+ }
46
+ return input === null || input === void 0 || typeof input === "string" && input === "" ? void 0 : input;
42
47
  }
43
- `
44
- };
48
+ __name(pruneFilter, "pruneFilter");
49
+ // Annotate the CommonJS export names for ESM import in node:
50
+ 0 && (module.exports = {
51
+ pruneFilter
52
+ });
@@ -0,0 +1,58 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+ /**
10
+ * 解析模块 URL,将相对路径转换为完整的 CDN URL
11
+ *
12
+ * @param url - 模块地址(支持相对路径或完整 URL)
13
+ * @param options - 可选配置
14
+ * @param options.addSuffix - 是否添加 ESM_CDN_SUFFIX 后缀(如 `+esm`),默认为 `true`
15
+ * @returns 解析后的完整 URL
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * // 相对路径会被拼接上 CDN 前缀和后缀(默认添加)
20
+ * // 如果使用 esm.sh(默认),不需要后缀
21
+ * resolveModuleUrl('vue@3.4.0')
22
+ * // => 'https://esm.sh/vue@3.4.0'
23
+ *
24
+ * // 如果使用 jsdelivr,需要配置 ESM_CDN_SUFFIX='/+esm'
25
+ * // resolveModuleUrl('vue@3.4.0') => 'https://cdn.jsdelivr.net/npm/vue@3.4.0/+esm'
26
+ *
27
+ * // 不添加后缀(适用于 UMD 库或 CSS 文件)
28
+ * resolveModuleUrl('vue@3.4.0', { addSuffix: false })
29
+ * // => 'https://esm.sh/vue@3.4.0' (即使配置了 suffix 也不会添加)
30
+ *
31
+ * // 原始 URL(适用于 UMD 库)
32
+ * resolveModuleUrl('lodash@4.17.21/lodash.js', { raw: true })
33
+ * // => 'https://esm.sh/lodash@4.17.21/lodash.js?raw' (即使配置了 suffix 也不会添加)
34
+ *
35
+ * // 完整 URL 保持不变
36
+ * resolveModuleUrl('https://cdn.jsdelivr.net/npm/vue@3.4.0')
37
+ * // => 'https://cdn.jsdelivr.net/npm/vue@3.4.0'
38
+ * ```
39
+ */
40
+ export declare function resolveModuleUrl(url: string, options?: {
41
+ addSuffix?: boolean;
42
+ raw?: boolean;
43
+ }): string;
44
+ /**
45
+ * 判断 URL 是否为 CSS 文件
46
+ *
47
+ * @param url - 文件 URL(支持带 query 和 hash,如 `example.css?v=123`)
48
+ * @returns 如果是 CSS 文件返回 `true`,否则返回 `false`
49
+ *
50
+ * @example
51
+ * ```ts
52
+ * isCssFile('style.css') // => true
53
+ * isCssFile('style.css?v=123') // => true
54
+ * isCssFile('style.css#section') // => true
55
+ * isCssFile('script.js') // => false
56
+ * ```
57
+ */
58
+ export declare function isCssFile(url: string): boolean;
@@ -0,0 +1,65 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ var __defProp = Object.defineProperty;
11
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
12
+ var __getOwnPropNames = Object.getOwnPropertyNames;
13
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
15
+ var __export = (target, all) => {
16
+ for (var name in all)
17
+ __defProp(target, name, { get: all[name], enumerable: true });
18
+ };
19
+ var __copyProps = (to, from, except, desc) => {
20
+ if (from && typeof from === "object" || typeof from === "function") {
21
+ for (let key of __getOwnPropNames(from))
22
+ if (!__hasOwnProp.call(to, key) && key !== except)
23
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
24
+ }
25
+ return to;
26
+ };
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+ var resolveModuleUrl_exports = {};
29
+ __export(resolveModuleUrl_exports, {
30
+ isCssFile: () => isCssFile,
31
+ resolveModuleUrl: () => resolveModuleUrl
32
+ });
33
+ module.exports = __toCommonJS(resolveModuleUrl_exports);
34
+ function resolveModuleUrl(url, options) {
35
+ if (!url || typeof url !== "string") {
36
+ throw new Error("invalid url");
37
+ }
38
+ const u = url.trim();
39
+ if (u.startsWith("http://") || u.startsWith("https://")) {
40
+ return u;
41
+ }
42
+ const ESM_CDN_BASE_URL = window["__esm_cdn_base_url__"] || "https://esm.sh";
43
+ const ESM_CDN_SUFFIX = (options == null ? void 0 : options.addSuffix) ? window["__esm_cdn_suffix__"] || "" : "";
44
+ const base = ESM_CDN_BASE_URL.replace(/\/$/, "");
45
+ const path = u.replace(/^\//, "");
46
+ if (options == null ? void 0 : options.raw) {
47
+ const sep = path.includes("?") ? "&" : "?";
48
+ return `${base}/${path}${sep}raw`;
49
+ }
50
+ return `${base}/${path}${ESM_CDN_SUFFIX}`;
51
+ }
52
+ __name(resolveModuleUrl, "resolveModuleUrl");
53
+ function isCssFile(url) {
54
+ if (!url || typeof url !== "string") {
55
+ return false;
56
+ }
57
+ const pathPart = url.split("?")[0].split("#")[0];
58
+ return pathPart.endsWith(".css");
59
+ }
60
+ __name(isCssFile, "isCssFile");
61
+ // Annotate the CommonJS export names for ESM import in node:
62
+ 0 && (module.exports = {
63
+ isCssFile,
64
+ resolveModuleUrl
65
+ });
@@ -0,0 +1,58 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+ /**
10
+ * RunJS 外部模块加载辅助(浏览器侧)。
11
+ *
12
+ * 背景:
13
+ * - NocoBase 前端整体使用 requirejs(AMD)来加载插件与模块;
14
+ * - RunJS 场景下又需要支持 `ctx.importAsync(url)` 直接用浏览器原生 `import()` 加载远端 ESM;
15
+ * - 某些第三方库(典型:UMD/CJS 产物,例如 lodash)会在运行时探测 `define.amd`:
16
+ * - 若存在 AMD,则优先走 `define(...)` 分支;
17
+ * - 但像 esm.sh 这类 CDN 的“CJS/UMD → ESM 包装”往往依赖 `module.exports` 提取导出;
18
+ * - 当 UMD 走了 AMD 分支时,`module.exports` 不会被赋值,最终表现为 ESM 导出(default/命名导出)为 `undefined`。
19
+ *
20
+ * 这里的策略:
21
+ * 1) 全局串行锁:避免 `requireAsync` / `importAsync` 并发时互相影响(尤其是临时 patch 全局 `define.amd`)。
22
+ * 2) 尽量缩小影响窗口:先预取模块(不改全局),再等待 requirejs 空闲,最后只在真正执行 `import()` 的瞬间临时屏蔽 `define.amd`。
23
+ * 3) 所有操作均为 best-effort:内部结构变化、浏览器能力差异等情况下不会阻断正常流程。
24
+ */
25
+ type RequireJsLike = ((deps: string[], onLoad: (...args: any[]) => void, onError: (err: any) => void) => void) | undefined;
26
+ /**
27
+ * 在 RunJS 内部按 URL 通过 requirejs 加载模块:
28
+ * - 与 `runjsImportAsync` 共用同一把锁,避免并发加载期间全局 patch 互相干扰;
29
+ * - 返回 requirejs 回调的第一个模块值(与现有 `ctx.requireAsync` 行为保持一致)。
30
+ */
31
+ export declare function runjsRequireAsync(requirejs: RequireJsLike, url: string): Promise<any>;
32
+ /**
33
+ * 在 RunJS 内部按 URL 动态导入 ESM 模块(返回模块命名空间对象)。
34
+ *
35
+ * 兼容点:
36
+ * - 若检测到 `globalThis.define.amd`,则会在导入前做预取,并在真正执行 `import()` 时短暂屏蔽 `define.amd`;
37
+ * - 为了进一步降低风险,会先等待 requirejs 没有挂起加载;
38
+ * - 使用带 `@vite-ignore` / `webpackIgnore: true` 标记的 dynamic import,避免被打包器重写;
39
+ * - 若仍被拦截,再用 `eval('u => import(u)')` 兜底。
40
+ *
41
+ * 重要说明:
42
+ * - 这里不做 URL 解析(如拼 CDN base/suffix),调用方应传入“最终可 import 的 URL”;
43
+ * - 缓存通常由上层(例如 `ctx.importAsync`)按 URL 做 Map 缓存,此处只负责导入与兼容逻辑。
44
+ */
45
+ export declare function runjsImportAsync(url: string): Promise<any>;
46
+ /**
47
+ * RunJS 专用:按“用户 specifier”导入模块,并在导入 core UI libs 时自动覆盖 ctx/libs。
48
+ *
49
+ * 说明:
50
+ * - 这里负责:specifier rewrite(如 esm.sh antd bundle)、URL 解析、全局 import cache、以及 override。
51
+ * - 具体的 dynamic import 由 `options.importer` 执行(默认使用 `runjsImportAsync`)。
52
+ * 这样在测试中可注入 mock importer,避免真实网络导入。
53
+ */
54
+ export declare function runjsImportModule(ctx: any, specifier: string, options?: {
55
+ importer?: (url: string) => Promise<any>;
56
+ addSuffix?: boolean;
57
+ }): Promise<any>;
58
+ export {};
@@ -0,0 +1,422 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ var __defProp = Object.defineProperty;
11
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
12
+ var __getOwnPropNames = Object.getOwnPropertyNames;
13
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
15
+ var __export = (target, all) => {
16
+ for (var name in all)
17
+ __defProp(target, name, { get: all[name], enumerable: true });
18
+ };
19
+ var __copyProps = (to, from, except, desc) => {
20
+ if (from && typeof from === "object" || typeof from === "function") {
21
+ for (let key of __getOwnPropNames(from))
22
+ if (!__hasOwnProp.call(to, key) && key !== except)
23
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
24
+ }
25
+ return to;
26
+ };
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+ var runjsModuleLoader_exports = {};
29
+ __export(runjsModuleLoader_exports, {
30
+ runjsImportAsync: () => runjsImportAsync,
31
+ runjsImportModule: () => runjsImportModule,
32
+ runjsRequireAsync: () => runjsRequireAsync
33
+ });
34
+ module.exports = __toCommonJS(runjsModuleLoader_exports);
35
+ var import_runjsLibs = require("../runjsLibs");
36
+ var import_resolveModuleUrl = require("./resolveModuleUrl");
37
+ var import_safeGlobals = require("./safeGlobals");
38
+ function snapshotOwnKeys(obj) {
39
+ try {
40
+ if (!obj || typeof obj !== "object" && typeof obj !== "function") return [];
41
+ return Object.getOwnPropertyNames(obj);
42
+ } catch (_) {
43
+ return [];
44
+ }
45
+ }
46
+ __name(snapshotOwnKeys, "snapshotOwnKeys");
47
+ function diffAddedKeys(afterKeys, beforeKeys) {
48
+ if (!afterKeys.length) return [];
49
+ if (!beforeKeys.length) return [...afterKeys];
50
+ const beforeSet = new Set(beforeKeys);
51
+ const added = [];
52
+ for (const k of afterKeys) {
53
+ if (!beforeSet.has(k)) added.push(k);
54
+ }
55
+ return added;
56
+ }
57
+ __name(diffAddedKeys, "diffAddedKeys");
58
+ async function withRunjsModuleLoadLock(task) {
59
+ const g = globalThis;
60
+ g.__nocobaseRunjsModuleLoadLock = (g.__nocobaseRunjsModuleLoadLock || Promise.resolve()).catch(() => {
61
+ });
62
+ const prev = g.__nocobaseRunjsModuleLoadLock;
63
+ let release;
64
+ const current = new Promise((resolve) => {
65
+ release = resolve;
66
+ });
67
+ g.__nocobaseRunjsModuleLoadLock = prev.then(() => current);
68
+ await prev;
69
+ try {
70
+ return await task();
71
+ } finally {
72
+ release == null ? void 0 : release();
73
+ }
74
+ }
75
+ __name(withRunjsModuleLoadLock, "withRunjsModuleLoadLock");
76
+ function disableAmdDefineTemporarily() {
77
+ const g = globalThis;
78
+ const def = g == null ? void 0 : g.define;
79
+ const amd = def == null ? void 0 : def.amd;
80
+ if (!def || !amd) return () => {
81
+ };
82
+ const desc = Object.getOwnPropertyDescriptor(def, "amd");
83
+ const hadOwn = !!desc;
84
+ const prev = amd;
85
+ try {
86
+ if (desc == null ? void 0 : desc.writable) {
87
+ def.amd = void 0;
88
+ } else if (desc == null ? void 0 : desc.configurable) {
89
+ delete def.amd;
90
+ } else {
91
+ def.amd = void 0;
92
+ }
93
+ } catch (_) {
94
+ }
95
+ return () => {
96
+ try {
97
+ if (hadOwn && desc) {
98
+ Object.defineProperty(def, "amd", desc);
99
+ return;
100
+ }
101
+ def.amd = prev;
102
+ } catch (_) {
103
+ }
104
+ };
105
+ }
106
+ __name(disableAmdDefineTemporarily, "disableAmdDefineTemporarily");
107
+ function hasPendingRequireJsLoads() {
108
+ var _a, _b;
109
+ const g = globalThis;
110
+ const req = (_a = g == null ? void 0 : g.requirejs) == null ? void 0 : _a.requirejs;
111
+ const contexts = (_b = req == null ? void 0 : req.s) == null ? void 0 : _b.contexts;
112
+ if (!contexts || typeof contexts !== "object") return false;
113
+ for (const ctxName of Object.keys(contexts)) {
114
+ const ctx = contexts[ctxName];
115
+ const registry = ctx == null ? void 0 : ctx.registry;
116
+ if (!registry || typeof registry !== "object") continue;
117
+ for (const id of Object.keys(registry)) {
118
+ const mod = registry[id];
119
+ if (!mod || typeof mod !== "object") continue;
120
+ if (!mod.enabled) continue;
121
+ if (mod.error) continue;
122
+ const map = mod.map;
123
+ if (!map || typeof map !== "object") continue;
124
+ if (!mod.inited && mod.fetched && map.isDefine) return true;
125
+ }
126
+ }
127
+ return false;
128
+ }
129
+ __name(hasPendingRequireJsLoads, "hasPendingRequireJsLoads");
130
+ async function waitForRequireJsIdle(options) {
131
+ const timeoutMs = Math.max(0, (options == null ? void 0 : options.timeoutMs) ?? 1500);
132
+ const pollMs = Math.max(10, (options == null ? void 0 : options.pollMs) ?? 30);
133
+ if (timeoutMs === 0) return;
134
+ const start = Date.now();
135
+ while (hasPendingRequireJsLoads()) {
136
+ if (Date.now() - start >= timeoutMs) return;
137
+ await new Promise((resolve) => setTimeout(resolve, pollMs));
138
+ }
139
+ }
140
+ __name(waitForRequireJsIdle, "waitForRequireJsIdle");
141
+ async function prefetchEsmModule(url, options) {
142
+ const u = typeof url === "string" ? url.trim() : "";
143
+ if (!u) return;
144
+ const g = globalThis;
145
+ g.__nocobaseImportAsyncPrefetchCache = g.__nocobaseImportAsyncPrefetchCache || /* @__PURE__ */ new Map();
146
+ const cache = g.__nocobaseImportAsyncPrefetchCache;
147
+ if (cache.has(u)) return await cache.get(u);
148
+ const timeoutMs = Math.max(0, (options == null ? void 0 : options.timeoutMs) ?? 5e3);
149
+ const task = (async () => {
150
+ var _a;
151
+ try {
152
+ if (typeof document !== "undefined" && (document == null ? void 0 : document.createElement)) {
153
+ const href = new URL(u, ((_a = globalThis == null ? void 0 : globalThis.location) == null ? void 0 : _a.href) || void 0).toString();
154
+ const head = document.head || document.getElementsByTagName("head")[0];
155
+ if (head) {
156
+ const selector = `link[rel="modulepreload"][href="${href}"]`;
157
+ const existing = document.querySelector(selector);
158
+ if (!existing) {
159
+ const link = document.createElement("link");
160
+ link.rel = "modulepreload";
161
+ link.href = href;
162
+ link.crossOrigin = "anonymous";
163
+ const done = await new Promise((resolve) => {
164
+ let settled = false;
165
+ const finalize = /* @__PURE__ */ __name(() => {
166
+ if (settled) return;
167
+ settled = true;
168
+ link.onload = null;
169
+ link.onerror = null;
170
+ resolve();
171
+ }, "finalize");
172
+ const timer = timeoutMs > 0 ? setTimeout(() => {
173
+ finalize();
174
+ }, timeoutMs) : void 0;
175
+ link.onload = () => {
176
+ if (timer) clearTimeout(timer);
177
+ finalize();
178
+ };
179
+ link.onerror = () => {
180
+ if (timer) clearTimeout(timer);
181
+ finalize();
182
+ };
183
+ head.appendChild(link);
184
+ });
185
+ return done;
186
+ }
187
+ }
188
+ }
189
+ } catch (_) {
190
+ }
191
+ try {
192
+ if (typeof fetch !== "function") return;
193
+ const controller = typeof AbortController === "function" ? new AbortController() : void 0;
194
+ const timer = controller && timeoutMs > 0 ? setTimeout(() => {
195
+ try {
196
+ controller.abort();
197
+ } catch (_) {
198
+ }
199
+ }, timeoutMs) : void 0;
200
+ const res = await fetch(u, {
201
+ method: "GET",
202
+ mode: "cors",
203
+ credentials: "omit",
204
+ cache: "force-cache",
205
+ signal: controller == null ? void 0 : controller.signal
206
+ });
207
+ if (timer) clearTimeout(timer);
208
+ if (res && res.ok && typeof res.arrayBuffer === "function") {
209
+ try {
210
+ await res.arrayBuffer();
211
+ } catch (_) {
212
+ }
213
+ }
214
+ } catch (_) {
215
+ }
216
+ })();
217
+ const safeTask = task.catch(() => {
218
+ });
219
+ cache.set(u, safeTask);
220
+ return await safeTask;
221
+ }
222
+ __name(prefetchEsmModule, "prefetchEsmModule");
223
+ async function runjsRequireAsync(requirejs, url) {
224
+ return await withRunjsModuleLoadLock(async () => {
225
+ const beforeWinKeys = typeof window !== "undefined" ? snapshotOwnKeys(window) : [];
226
+ const beforeDocKeys = typeof document !== "undefined" ? snapshotOwnKeys(document) : [];
227
+ let result;
228
+ let error;
229
+ try {
230
+ result = await new Promise((resolve, reject) => {
231
+ if (!requirejs) {
232
+ reject(new Error("requirejs is not available"));
233
+ return;
234
+ }
235
+ requirejs(
236
+ [url],
237
+ (...args) => {
238
+ resolve(args[0]);
239
+ },
240
+ reject
241
+ );
242
+ });
243
+ } catch (e) {
244
+ error = e;
245
+ } finally {
246
+ const afterWinKeys = typeof window !== "undefined" ? snapshotOwnKeys(window) : [];
247
+ const afterDocKeys = typeof document !== "undefined" ? snapshotOwnKeys(document) : [];
248
+ const addedWinKeys = diffAddedKeys(afterWinKeys, beforeWinKeys);
249
+ const addedDocKeys = diffAddedKeys(afterDocKeys, beforeDocKeys);
250
+ (0, import_safeGlobals.registerRunJSSafeWindowGlobals)(addedWinKeys);
251
+ (0, import_safeGlobals.registerRunJSSafeDocumentGlobals)(addedDocKeys);
252
+ }
253
+ if (error) throw error;
254
+ return result;
255
+ });
256
+ }
257
+ __name(runjsRequireAsync, "runjsRequireAsync");
258
+ async function runjsImportAsync(url) {
259
+ var _a;
260
+ if (!url || typeof url !== "string") {
261
+ throw new Error("invalid url");
262
+ }
263
+ const u = url.trim();
264
+ const shouldPatchAmd = !!((_a = globalThis == null ? void 0 : globalThis.define) == null ? void 0 : _a.amd);
265
+ if (shouldPatchAmd) await prefetchEsmModule(u);
266
+ return await withRunjsModuleLoadLock(async () => {
267
+ await waitForRequireJsIdle();
268
+ const restoreAmd = shouldPatchAmd ? disableAmdDefineTemporarily() : () => {
269
+ };
270
+ try {
271
+ const nativeImport = /* @__PURE__ */ __name(() => import(
272
+ /* @vite-ignore */
273
+ /* webpackIgnore: true */
274
+ u
275
+ ), "nativeImport");
276
+ const evalImport = /* @__PURE__ */ __name(() => {
277
+ const importer = (0, eval)("u => import(u)");
278
+ return importer(u);
279
+ }, "evalImport");
280
+ try {
281
+ return await nativeImport();
282
+ } catch (err) {
283
+ try {
284
+ return await evalImport();
285
+ } catch (err2) {
286
+ throw err2 || err;
287
+ }
288
+ }
289
+ } finally {
290
+ restoreAmd();
291
+ }
292
+ });
293
+ }
294
+ __name(runjsImportAsync, "runjsImportAsync");
295
+ function stripUrlQueryAndHash(input) {
296
+ const q = input.indexOf("?");
297
+ const h = input.indexOf("#");
298
+ const cut = q >= 0 && h >= 0 ? Math.min(q, h) : q >= 0 ? q : h;
299
+ return cut >= 0 ? input.slice(0, cut) : input;
300
+ }
301
+ __name(stripUrlQueryAndHash, "stripUrlQueryAndHash");
302
+ function parsePackageSpecifier(input) {
303
+ if (!input || typeof input !== "string") return null;
304
+ const s = stripUrlQueryAndHash(input).trim();
305
+ if (!s) return null;
306
+ if (s.startsWith("http://") || s.startsWith("https://")) return null;
307
+ const pathPart = s.replace(/^\//, "");
308
+ if (!pathPart) return null;
309
+ if (pathPart.startsWith("@")) {
310
+ const m2 = pathPart.match(/^(@[^/]+\/[^/]+?)(?:@([^/]+))?(?:\/(.*))?$/);
311
+ if (!m2) return null;
312
+ return { name: m2[1], version: m2[2], subpath: m2[3] };
313
+ }
314
+ const m = pathPart.match(/^([^/]+?)(?:@([^/]+))?(?:\/(.*))?$/);
315
+ if (!m) return null;
316
+ return { name: m[1], version: m[2], subpath: m[3] };
317
+ }
318
+ __name(parsePackageSpecifier, "parsePackageSpecifier");
319
+ function appendQueryParams(specifier, params) {
320
+ if (!specifier || typeof specifier !== "string") return specifier;
321
+ const s = specifier.trim();
322
+ const hashIndex = s.indexOf("#");
323
+ const baseAndQuery = hashIndex >= 0 ? s.slice(0, hashIndex) : s;
324
+ const hash = hashIndex >= 0 ? s.slice(hashIndex) : "";
325
+ const qIndex = baseAndQuery.indexOf("?");
326
+ const base = qIndex >= 0 ? baseAndQuery.slice(0, qIndex) : baseAndQuery;
327
+ const query = qIndex >= 0 ? baseAndQuery.slice(qIndex + 1) : "";
328
+ const search = new URLSearchParams(query);
329
+ for (const [k, v] of Object.entries(params)) {
330
+ if (!k) continue;
331
+ if (search.has(k)) continue;
332
+ search.set(k, v);
333
+ }
334
+ const nextQuery = search.toString();
335
+ return nextQuery ? `${base}?${nextQuery}${hash}` : `${base}${hash}`;
336
+ }
337
+ __name(appendQueryParams, "appendQueryParams");
338
+ function getEsmCdnBaseUrl() {
339
+ const g = globalThis;
340
+ if (typeof (g == null ? void 0 : g.__esm_cdn_base_url__) === "string") return g.__esm_cdn_base_url__;
341
+ const w = typeof window !== "undefined" ? window : g == null ? void 0 : g.window;
342
+ if (typeof (w == null ? void 0 : w.__esm_cdn_base_url__) === "string") return w.__esm_cdn_base_url__;
343
+ return "https://esm.sh";
344
+ }
345
+ __name(getEsmCdnBaseUrl, "getEsmCdnBaseUrl");
346
+ function normalizeModule(mod) {
347
+ if (mod && typeof mod === "object" && "default" in mod) {
348
+ const keys = Object.keys(mod);
349
+ if (keys.length === 1 && keys[0] === "default") {
350
+ return mod.default;
351
+ }
352
+ }
353
+ return mod;
354
+ }
355
+ __name(normalizeModule, "normalizeModule");
356
+ async function runjsImportModule(ctx, specifier, options) {
357
+ if (!specifier || typeof specifier !== "string") {
358
+ throw new Error("invalid url");
359
+ }
360
+ let finalSpecifier = specifier;
361
+ const parsedForRewrite = parsePackageSpecifier(specifier);
362
+ if ((parsedForRewrite == null ? void 0 : parsedForRewrite.name) === "antd" && !parsedForRewrite.subpath) {
363
+ const baseUrl = getEsmCdnBaseUrl();
364
+ if (typeof baseUrl === "string") {
365
+ const params = { bundle: "1" };
366
+ const reactInfo = ctx == null ? void 0 : ctx.__runjsExternalReact;
367
+ const reactVersion = reactInfo == null ? void 0 : reactInfo.version;
368
+ if (reactVersion && typeof reactVersion === "string") {
369
+ params.deps = `react@${reactVersion},react-dom@${reactVersion}`;
370
+ }
371
+ finalSpecifier = appendQueryParams(finalSpecifier, params);
372
+ }
373
+ }
374
+ const resolvedUrl = (0, import_resolveModuleUrl.resolveModuleUrl)(finalSpecifier, { addSuffix: (options == null ? void 0 : options.addSuffix) ?? true });
375
+ const importer = (options == null ? void 0 : options.importer) || runjsImportAsync;
376
+ const g = globalThis;
377
+ g.__nocobaseImportAsyncCache = g.__nocobaseImportAsyncCache || /* @__PURE__ */ new Map();
378
+ const cache = g.__nocobaseImportAsyncCache;
379
+ const loadTask = cache.get(resolvedUrl) || (async () => {
380
+ const mod2 = await importer(resolvedUrl);
381
+ return normalizeModule(mod2);
382
+ })();
383
+ cache.set(resolvedUrl, loadTask);
384
+ const mod = await loadTask;
385
+ const libs = ctx == null ? void 0 : ctx.libs;
386
+ if (!libs || typeof libs !== "object") return mod;
387
+ const parsed = parsePackageSpecifier(finalSpecifier);
388
+ if (!parsed) return mod;
389
+ const subpath = parsed.subpath || "";
390
+ if (parsed.name === "react" && !subpath) {
391
+ (0, import_runjsLibs.setRunJSLibOverride)(ctx, "React", mod);
392
+ ctx.__runjsExternalReact = { specifier, version: parsed.version, url: resolvedUrl };
393
+ const domSpecifier = parsed.version ? `react-dom@${parsed.version}/client` : "react-dom/client";
394
+ try {
395
+ await ctx.importAsync(domSpecifier);
396
+ } catch (err) {
397
+ const e = new Error(
398
+ `External React has been loaded via ctx.importAsync("${specifier}"), but auto-loading "${domSpecifier}" failed.
399
+ Please run: await ctx.importAsync("${domSpecifier}") to ensure ctx.render uses a matching ReactDOM.`
400
+ );
401
+ e.cause = err;
402
+ throw e;
403
+ }
404
+ } else if (parsed.name === "react-dom" && (subpath === "client" || subpath.startsWith("client/"))) {
405
+ (0, import_runjsLibs.setRunJSLibOverride)(ctx, "ReactDOM", mod);
406
+ ctx.__runjsExternalReactDOM = { specifier, version: parsed.version, url: resolvedUrl };
407
+ } else if (parsed.name === "antd" && !subpath) {
408
+ (0, import_runjsLibs.setRunJSLibOverride)(ctx, "antd", mod);
409
+ ctx.__runjsExternalAntd = { specifier, version: parsed.version, url: resolvedUrl };
410
+ } else if (parsed.name === "@ant-design/icons" && !subpath) {
411
+ (0, import_runjsLibs.setRunJSLibOverride)(ctx, "antdIcons", mod, { topLevelKey: false });
412
+ ctx.__runjsExternalAntdIcons = { specifier, version: parsed.version, url: resolvedUrl };
413
+ }
414
+ return mod;
415
+ }
416
+ __name(runjsImportModule, "runjsImportModule");
417
+ // Annotate the CommonJS export names for ESM import in node:
418
+ 0 && (module.exports = {
419
+ runjsImportAsync,
420
+ runjsImportModule,
421
+ runjsRequireAsync
422
+ });