@next-core/runtime 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/dist/cjs/CustomProcessors.js +29 -0
  2. package/dist/cjs/CustomProcessors.js.map +1 -0
  3. package/dist/cjs/CustomTemplates.js +179 -0
  4. package/dist/cjs/CustomTemplates.js.map +1 -0
  5. package/dist/cjs/StoryboardFunctionRegistry.js +118 -0
  6. package/dist/cjs/StoryboardFunctionRegistry.js.map +1 -0
  7. package/dist/cjs/auth.js +67 -0
  8. package/dist/cjs/auth.js.map +1 -0
  9. package/dist/cjs/fetchByProvider.js +13 -0
  10. package/dist/cjs/fetchByProvider.js.map +1 -0
  11. package/dist/cjs/getBasePath.js +15 -0
  12. package/dist/cjs/getBasePath.js.map +1 -0
  13. package/dist/cjs/getPageInfo.js +45 -0
  14. package/dist/cjs/getPageInfo.js.map +1 -0
  15. package/dist/cjs/handleHttpError.js +97 -0
  16. package/dist/cjs/handleHttpError.js.map +1 -0
  17. package/dist/cjs/history.js +27 -0
  18. package/dist/cjs/history.js.map +1 -0
  19. package/dist/cjs/index.js +199 -0
  20. package/dist/cjs/index.js.map +1 -0
  21. package/dist/cjs/internal/CustomTemplates/bindTemplateProxy.js +72 -0
  22. package/dist/cjs/internal/CustomTemplates/bindTemplateProxy.js.map +1 -0
  23. package/dist/cjs/internal/CustomTemplates/constants.js +13 -0
  24. package/dist/cjs/internal/CustomTemplates/constants.js.map +1 -0
  25. package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js +122 -0
  26. package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js.map +1 -0
  27. package/dist/cjs/internal/CustomTemplates/setupTemplateProxy.js +113 -0
  28. package/dist/cjs/internal/CustomTemplates/setupTemplateProxy.js.map +1 -0
  29. package/dist/cjs/internal/CustomTemplates/setupUseBrickInTemplate.js +44 -0
  30. package/dist/cjs/internal/CustomTemplates/setupUseBrickInTemplate.js.map +1 -0
  31. package/dist/cjs/internal/CustomTemplates/utils.js +44 -0
  32. package/dist/cjs/internal/CustomTemplates/utils.js.map +1 -0
  33. package/dist/cjs/internal/Renderer.js +392 -0
  34. package/dist/cjs/internal/Renderer.js.map +1 -0
  35. package/dist/cjs/internal/RendererContext.js +433 -0
  36. package/dist/cjs/internal/RendererContext.js.map +1 -0
  37. package/dist/cjs/internal/Router.js +448 -0
  38. package/dist/cjs/internal/Router.js.map +1 -0
  39. package/dist/cjs/internal/Runtime.js +140 -0
  40. package/dist/cjs/internal/Runtime.js.map +1 -0
  41. package/dist/cjs/internal/abortController.js +32 -0
  42. package/dist/cjs/internal/abortController.js.map +1 -0
  43. package/dist/cjs/internal/bindListeners.js +433 -0
  44. package/dist/cjs/internal/bindListeners.js.map +1 -0
  45. package/dist/cjs/internal/checkInstalledApps.js +105 -0
  46. package/dist/cjs/internal/checkInstalledApps.js.map +1 -0
  47. package/dist/cjs/internal/checkPermissions.js +102 -0
  48. package/dist/cjs/internal/checkPermissions.js.map +1 -0
  49. package/dist/cjs/internal/compute/StoryboardFunctions.js +16 -0
  50. package/dist/cjs/internal/compute/StoryboardFunctions.js.map +1 -0
  51. package/dist/cjs/internal/compute/WidgetFunctions.js +31 -0
  52. package/dist/cjs/internal/compute/WidgetFunctions.js.map +1 -0
  53. package/dist/cjs/internal/compute/WidgetI18n.js +21 -0
  54. package/dist/cjs/internal/compute/WidgetI18n.js.map +1 -0
  55. package/dist/cjs/internal/compute/checkIf.js +36 -0
  56. package/dist/cjs/internal/compute/checkIf.js.map +1 -0
  57. package/dist/cjs/internal/compute/collectMemberCallUsage.js +30 -0
  58. package/dist/cjs/internal/compute/collectMemberCallUsage.js.map +1 -0
  59. package/dist/cjs/internal/compute/computeRealProperties.js +80 -0
  60. package/dist/cjs/internal/compute/computeRealProperties.js.map +1 -0
  61. package/dist/cjs/internal/compute/computeRealValue.js +78 -0
  62. package/dist/cjs/internal/compute/computeRealValue.js.map +1 -0
  63. package/dist/cjs/internal/compute/evaluate.js +390 -0
  64. package/dist/cjs/internal/compute/evaluate.js.map +1 -0
  65. package/dist/cjs/internal/compute/getGeneralGlobals.js +87 -0
  66. package/dist/cjs/internal/compute/getGeneralGlobals.js.map +1 -0
  67. package/dist/cjs/internal/compute/getNextStateOfUseBrick.js +87 -0
  68. package/dist/cjs/internal/compute/getNextStateOfUseBrick.js.map +1 -0
  69. package/dist/cjs/internal/compute/getStorageItem.js +14 -0
  70. package/dist/cjs/internal/compute/getStorageItem.js.map +1 -0
  71. package/dist/cjs/internal/compute/getTracks.js +26 -0
  72. package/dist/cjs/internal/compute/getTracks.js.map +1 -0
  73. package/dist/cjs/internal/compute/images.js +23 -0
  74. package/dist/cjs/internal/compute/images.js.map +1 -0
  75. package/dist/cjs/internal/compute/listenOnTrackingContext.js +40 -0
  76. package/dist/cjs/internal/compute/listenOnTrackingContext.js.map +1 -0
  77. package/dist/cjs/internal/compute/markAsComputed.js +36 -0
  78. package/dist/cjs/internal/compute/markAsComputed.js.map +1 -0
  79. package/dist/cjs/internal/compute/setProperties.js +18 -0
  80. package/dist/cjs/internal/compute/setProperties.js.map +1 -0
  81. package/dist/cjs/internal/compute/setRealProperties.js +29 -0
  82. package/dist/cjs/internal/compute/setRealProperties.js.map +1 -0
  83. package/dist/cjs/internal/data/CollectContracts.js +29 -0
  84. package/dist/cjs/internal/data/CollectContracts.js.map +1 -0
  85. package/dist/cjs/internal/data/DataStore.js +190 -0
  86. package/dist/cjs/internal/data/DataStore.js.map +1 -0
  87. package/dist/cjs/internal/data/FlowApi.js +150 -0
  88. package/dist/cjs/internal/data/FlowApi.js.map +1 -0
  89. package/dist/cjs/internal/data/FlowApiProvider.js +122 -0
  90. package/dist/cjs/internal/data/FlowApiProvider.js.map +1 -0
  91. package/dist/cjs/internal/data/getProviderBrick.js +32 -0
  92. package/dist/cjs/internal/data/getProviderBrick.js.map +1 -0
  93. package/dist/cjs/internal/data/resolveData.js +96 -0
  94. package/dist/cjs/internal/data/resolveData.js.map +1 -0
  95. package/dist/cjs/internal/data/resolveDataStore.js +127 -0
  96. package/dist/cjs/internal/data/resolveDataStore.js.map +1 -0
  97. package/dist/cjs/internal/devtools.js +10 -0
  98. package/dist/cjs/internal/devtools.js.map +1 -0
  99. package/dist/cjs/internal/enums.js +13 -0
  100. package/dist/cjs/internal/enums.js.map +1 -0
  101. package/dist/cjs/internal/historyExtended.js +140 -0
  102. package/dist/cjs/internal/historyExtended.js.map +1 -0
  103. package/dist/cjs/internal/interfaces.js +6 -0
  104. package/dist/cjs/internal/interfaces.js.map +1 -0
  105. package/dist/cjs/internal/loadBootstrapData.js +227 -0
  106. package/dist/cjs/internal/loadBootstrapData.js.map +1 -0
  107. package/dist/cjs/internal/loadCheckLogin.js +17 -0
  108. package/dist/cjs/internal/loadCheckLogin.js.map +1 -0
  109. package/dist/cjs/internal/matchPath.js +88 -0
  110. package/dist/cjs/internal/matchPath.js.map +1 -0
  111. package/dist/cjs/internal/matchRoutes.js +34 -0
  112. package/dist/cjs/internal/matchRoutes.js.map +1 -0
  113. package/dist/cjs/internal/matchStoryboard.js +40 -0
  114. package/dist/cjs/internal/matchStoryboard.js.map +1 -0
  115. package/dist/cjs/internal/mediaQuery.js +55 -0
  116. package/dist/cjs/internal/mediaQuery.js.map +1 -0
  117. package/dist/cjs/internal/menu/computeMenuData.js +37 -0
  118. package/dist/cjs/internal/menu/computeMenuData.js.map +1 -0
  119. package/dist/cjs/internal/menu/constants.js +13 -0
  120. package/dist/cjs/internal/menu/constants.js.map +1 -0
  121. package/dist/cjs/internal/menu/fetchMenuById.js +102 -0
  122. package/dist/cjs/internal/menu/fetchMenuById.js.map +1 -0
  123. package/dist/cjs/internal/menu/fetchMenuTitle.js +37 -0
  124. package/dist/cjs/internal/menu/fetchMenuTitle.js.map +1 -0
  125. package/dist/cjs/internal/menu/getMenusOfStandaloneApp.js +27 -0
  126. package/dist/cjs/internal/menu/getMenusOfStandaloneApp.js.map +1 -0
  127. package/dist/cjs/internal/menu/interfaces.js +4 -0
  128. package/dist/cjs/internal/menu/interfaces.js.map +1 -0
  129. package/dist/cjs/internal/menu/loadDynamicMenuItems.js +28 -0
  130. package/dist/cjs/internal/menu/loadDynamicMenuItems.js.map +1 -0
  131. package/dist/cjs/internal/menu/mergeMenu.js +74 -0
  132. package/dist/cjs/internal/menu/mergeMenu.js.map +1 -0
  133. package/dist/cjs/internal/menu/reorderMenuItems.js +20 -0
  134. package/dist/cjs/internal/menu/reorderMenuItems.js.map +1 -0
  135. package/dist/cjs/internal/mount.js +90 -0
  136. package/dist/cjs/internal/mount.js.map +1 -0
  137. package/dist/cjs/internal/poll.js +83 -0
  138. package/dist/cjs/internal/poll.js.map +1 -0
  139. package/dist/cjs/internal/proxyFactories.js +39 -0
  140. package/dist/cjs/internal/proxyFactories.js.map +1 -0
  141. package/dist/cjs/internal/registerAppI18n.js +25 -0
  142. package/dist/cjs/internal/registerAppI18n.js.map +1 -0
  143. package/dist/cjs/internal/registerCustomTemplates.js +22 -0
  144. package/dist/cjs/internal/registerCustomTemplates.js.map +1 -0
  145. package/dist/cjs/internal/secret_internals.js +140 -0
  146. package/dist/cjs/internal/secret_internals.js.map +1 -0
  147. package/dist/cjs/themeAndMode.js +97 -0
  148. package/dist/cjs/themeAndMode.js.map +1 -0
  149. package/dist/esm/CustomProcessors.js +30 -0
  150. package/dist/esm/CustomProcessors.js.map +1 -0
  151. package/dist/esm/CustomTemplates.js +187 -0
  152. package/dist/esm/CustomTemplates.js.map +1 -0
  153. package/dist/esm/StoryboardFunctionRegistry.js +116 -0
  154. package/dist/esm/StoryboardFunctionRegistry.js.map +1 -0
  155. package/dist/esm/auth.js +57 -0
  156. package/dist/esm/auth.js.map +1 -0
  157. package/dist/esm/fetchByProvider.js +14 -0
  158. package/dist/esm/fetchByProvider.js.map +1 -0
  159. package/dist/esm/getBasePath.js +9 -0
  160. package/dist/esm/getBasePath.js.map +1 -0
  161. package/dist/esm/getPageInfo.js +39 -0
  162. package/dist/esm/getPageInfo.js.map +1 -0
  163. package/dist/esm/handleHttpError.js +90 -0
  164. package/dist/esm/handleHttpError.js.map +1 -0
  165. package/dist/esm/history.js +20 -0
  166. package/dist/esm/history.js.map +1 -0
  167. package/dist/esm/index.js +17 -0
  168. package/dist/esm/index.js.map +1 -0
  169. package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js +68 -0
  170. package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js.map +1 -0
  171. package/dist/esm/internal/CustomTemplates/constants.js +4 -0
  172. package/dist/esm/internal/CustomTemplates/constants.js.map +1 -0
  173. package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js +117 -0
  174. package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js.map +1 -0
  175. package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js +110 -0
  176. package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js.map +1 -0
  177. package/dist/esm/internal/CustomTemplates/setupUseBrickInTemplate.js +43 -0
  178. package/dist/esm/internal/CustomTemplates/setupUseBrickInTemplate.js.map +1 -0
  179. package/dist/esm/internal/CustomTemplates/utils.js +37 -0
  180. package/dist/esm/internal/CustomTemplates/utils.js.map +1 -0
  181. package/dist/esm/internal/Renderer.js +427 -0
  182. package/dist/esm/internal/Renderer.js.map +1 -0
  183. package/dist/esm/internal/RendererContext.js +425 -0
  184. package/dist/esm/internal/RendererContext.js.map +1 -0
  185. package/dist/esm/internal/Router.js +445 -0
  186. package/dist/esm/internal/Router.js.map +1 -0
  187. package/dist/esm/internal/Runtime.js +116 -0
  188. package/dist/esm/internal/Runtime.js.map +1 -0
  189. package/dist/esm/internal/abortController.js +24 -0
  190. package/dist/esm/internal/abortController.js.map +1 -0
  191. package/dist/esm/internal/bindListeners.js +434 -0
  192. package/dist/esm/internal/bindListeners.js.map +1 -0
  193. package/dist/esm/internal/checkInstalledApps.js +100 -0
  194. package/dist/esm/internal/checkInstalledApps.js.map +1 -0
  195. package/dist/esm/internal/checkPermissions.js +107 -0
  196. package/dist/esm/internal/checkPermissions.js.map +1 -0
  197. package/dist/esm/internal/compute/StoryboardFunctions.js +7 -0
  198. package/dist/esm/internal/compute/StoryboardFunctions.js.map +1 -0
  199. package/dist/esm/internal/compute/WidgetFunctions.js +23 -0
  200. package/dist/esm/internal/compute/WidgetFunctions.js.map +1 -0
  201. package/dist/esm/internal/compute/WidgetI18n.js +14 -0
  202. package/dist/esm/internal/compute/WidgetI18n.js.map +1 -0
  203. package/dist/esm/internal/compute/checkIf.js +39 -0
  204. package/dist/esm/internal/compute/checkIf.js.map +1 -0
  205. package/dist/esm/internal/compute/collectMemberCallUsage.js +22 -0
  206. package/dist/esm/internal/compute/collectMemberCallUsage.js.map +1 -0
  207. package/dist/esm/internal/compute/computeRealProperties.js +87 -0
  208. package/dist/esm/internal/compute/computeRealProperties.js.map +1 -0
  209. package/dist/esm/internal/compute/computeRealValue.js +86 -0
  210. package/dist/esm/internal/compute/computeRealValue.js.map +1 -0
  211. package/dist/esm/internal/compute/evaluate.js +387 -0
  212. package/dist/esm/internal/compute/evaluate.js.map +1 -0
  213. package/dist/esm/internal/compute/getGeneralGlobals.js +82 -0
  214. package/dist/esm/internal/compute/getGeneralGlobals.js.map +1 -0
  215. package/dist/esm/internal/compute/getNextStateOfUseBrick.js +78 -0
  216. package/dist/esm/internal/compute/getNextStateOfUseBrick.js.map +1 -0
  217. package/dist/esm/internal/compute/getStorageItem.js +8 -0
  218. package/dist/esm/internal/compute/getStorageItem.js.map +1 -0
  219. package/dist/esm/internal/compute/getTracks.js +20 -0
  220. package/dist/esm/internal/compute/getTracks.js.map +1 -0
  221. package/dist/esm/internal/compute/images.js +16 -0
  222. package/dist/esm/internal/compute/images.js.map +1 -0
  223. package/dist/esm/internal/compute/listenOnTrackingContext.js +37 -0
  224. package/dist/esm/internal/compute/listenOnTrackingContext.js.map +1 -0
  225. package/dist/esm/internal/compute/markAsComputed.js +28 -0
  226. package/dist/esm/internal/compute/markAsComputed.js.map +1 -0
  227. package/dist/esm/internal/compute/setProperties.js +12 -0
  228. package/dist/esm/internal/compute/setProperties.js.map +1 -0
  229. package/dist/esm/internal/compute/setRealProperties.js +23 -0
  230. package/dist/esm/internal/compute/setRealProperties.js.map +1 -0
  231. package/dist/esm/internal/data/CollectContracts.js +20 -0
  232. package/dist/esm/internal/data/CollectContracts.js.map +1 -0
  233. package/dist/esm/internal/data/DataStore.js +203 -0
  234. package/dist/esm/internal/data/DataStore.js.map +1 -0
  235. package/dist/esm/internal/data/FlowApi.js +156 -0
  236. package/dist/esm/internal/data/FlowApi.js.map +1 -0
  237. package/dist/esm/internal/data/FlowApiProvider.js +122 -0
  238. package/dist/esm/internal/data/FlowApiProvider.js.map +1 -0
  239. package/dist/esm/internal/data/getProviderBrick.js +33 -0
  240. package/dist/esm/internal/data/getProviderBrick.js.map +1 -0
  241. package/dist/esm/internal/data/resolveData.js +101 -0
  242. package/dist/esm/internal/data/resolveData.js.map +1 -0
  243. package/dist/esm/internal/data/resolveDataStore.js +134 -0
  244. package/dist/esm/internal/data/resolveDataStore.js.map +1 -0
  245. package/dist/esm/internal/devtools.js +4 -0
  246. package/dist/esm/internal/devtools.js.map +1 -0
  247. package/dist/esm/internal/enums.js +6 -0
  248. package/dist/esm/internal/enums.js.map +1 -0
  249. package/dist/esm/internal/historyExtended.js +132 -0
  250. package/dist/esm/internal/historyExtended.js.map +1 -0
  251. package/dist/esm/internal/interfaces.js +2 -0
  252. package/dist/esm/internal/interfaces.js.map +1 -0
  253. package/dist/esm/internal/loadBootstrapData.js +243 -0
  254. package/dist/esm/internal/loadBootstrapData.js.map +1 -0
  255. package/dist/esm/internal/loadCheckLogin.js +18 -0
  256. package/dist/esm/internal/loadCheckLogin.js.map +1 -0
  257. package/dist/esm/internal/matchPath.js +81 -0
  258. package/dist/esm/internal/matchPath.js.map +1 -0
  259. package/dist/esm/internal/matchRoutes.js +35 -0
  260. package/dist/esm/internal/matchRoutes.js.map +1 -0
  261. package/dist/esm/internal/matchStoryboard.js +33 -0
  262. package/dist/esm/internal/matchStoryboard.js.map +1 -0
  263. package/dist/esm/internal/mediaQuery.js +44 -0
  264. package/dist/esm/internal/mediaQuery.js.map +1 -0
  265. package/dist/esm/internal/menu/computeMenuData.js +38 -0
  266. package/dist/esm/internal/menu/computeMenuData.js.map +1 -0
  267. package/dist/esm/internal/menu/constants.js +4 -0
  268. package/dist/esm/internal/menu/constants.js.map +1 -0
  269. package/dist/esm/internal/menu/fetchMenuById.js +104 -0
  270. package/dist/esm/internal/menu/fetchMenuById.js.map +1 -0
  271. package/dist/esm/internal/menu/fetchMenuTitle.js +38 -0
  272. package/dist/esm/internal/menu/fetchMenuTitle.js.map +1 -0
  273. package/dist/esm/internal/menu/getMenusOfStandaloneApp.js +19 -0
  274. package/dist/esm/internal/menu/getMenusOfStandaloneApp.js.map +1 -0
  275. package/dist/esm/internal/menu/interfaces.js +4 -0
  276. package/dist/esm/internal/menu/interfaces.js.map +1 -0
  277. package/dist/esm/internal/menu/loadDynamicMenuItems.js +28 -0
  278. package/dist/esm/internal/menu/loadDynamicMenuItems.js.map +1 -0
  279. package/dist/esm/internal/menu/mergeMenu.js +77 -0
  280. package/dist/esm/internal/menu/mergeMenu.js.map +1 -0
  281. package/dist/esm/internal/menu/reorderMenuItems.js +14 -0
  282. package/dist/esm/internal/menu/reorderMenuItems.js.map +1 -0
  283. package/dist/esm/internal/mount.js +83 -0
  284. package/dist/esm/internal/mount.js.map +1 -0
  285. package/dist/esm/internal/poll.js +85 -0
  286. package/dist/esm/internal/poll.js.map +1 -0
  287. package/dist/esm/internal/proxyFactories.js +34 -0
  288. package/dist/esm/internal/proxyFactories.js.map +1 -0
  289. package/dist/esm/internal/registerAppI18n.js +20 -0
  290. package/dist/esm/internal/registerAppI18n.js.map +1 -0
  291. package/dist/esm/internal/registerCustomTemplates.js +16 -0
  292. package/dist/esm/internal/registerCustomTemplates.js.map +1 -0
  293. package/dist/esm/internal/secret_internals.js +145 -0
  294. package/dist/esm/internal/secret_internals.js.map +1 -0
  295. package/dist/esm/themeAndMode.js +80 -0
  296. package/dist/esm/themeAndMode.js.map +1 -0
  297. package/dist/types/CustomProcessors.d.ts +7 -0
  298. package/dist/types/CustomTemplates.d.ts +8 -0
  299. package/dist/types/StoryboardFunctionRegistry.d.ts +44 -0
  300. package/dist/types/auth.d.ts +19 -0
  301. package/dist/types/fetchByProvider.d.ts +2 -0
  302. package/dist/types/getBasePath.d.ts +4 -0
  303. package/dist/types/getPageInfo.d.ts +14 -0
  304. package/dist/types/handleHttpError.d.ts +19 -0
  305. package/dist/types/history.d.ts +7 -0
  306. package/dist/types/index.d.ts +15 -0
  307. package/dist/types/internal/CustomTemplates/bindTemplateProxy.d.ts +3 -0
  308. package/dist/types/internal/CustomTemplates/constants.d.ts +11 -0
  309. package/dist/types/internal/CustomTemplates/expandCustomTemplate.d.ts +3 -0
  310. package/dist/types/internal/CustomTemplates/setupTemplateProxy.d.ts +7 -0
  311. package/dist/types/internal/CustomTemplates/setupUseBrickInTemplate.d.ts +2 -0
  312. package/dist/types/internal/CustomTemplates/utils.d.ts +7 -0
  313. package/dist/types/internal/Renderer.d.ts +21 -0
  314. package/dist/types/internal/RendererContext.d.ts +25 -0
  315. package/dist/types/internal/Router.d.ts +16 -0
  316. package/dist/types/internal/Runtime.d.ts +35 -0
  317. package/dist/types/internal/abortController.d.ts +2 -0
  318. package/dist/types/internal/bindListeners.d.ts +11 -0
  319. package/dist/types/internal/checkInstalledApps.d.ts +6 -0
  320. package/dist/types/internal/checkPermissions.d.ts +17 -0
  321. package/dist/types/internal/compute/StoryboardFunctions.d.ts +1 -0
  322. package/dist/types/internal/compute/WidgetFunctions.d.ts +3 -0
  323. package/dist/types/internal/compute/WidgetI18n.d.ts +3 -0
  324. package/dist/types/internal/compute/checkIf.d.ts +23 -0
  325. package/dist/types/internal/compute/collectMemberCallUsage.d.ts +8 -0
  326. package/dist/types/internal/compute/computeRealProperties.d.ts +4 -0
  327. package/dist/types/internal/compute/computeRealValue.d.ts +9 -0
  328. package/dist/types/internal/compute/evaluate.d.ts +21 -0
  329. package/dist/types/internal/compute/getGeneralGlobals.d.ts +12 -0
  330. package/dist/types/internal/compute/getNextStateOfUseBrick.d.ts +16 -0
  331. package/dist/types/internal/compute/getStorageItem.d.ts +1 -0
  332. package/dist/types/internal/compute/getTracks.d.ts +5 -0
  333. package/dist/types/internal/compute/images.d.ts +5 -0
  334. package/dist/types/internal/compute/listenOnTrackingContext.d.ts +9 -0
  335. package/dist/types/internal/compute/markAsComputed.d.ts +3 -0
  336. package/dist/types/internal/compute/setProperties.d.ts +2 -0
  337. package/dist/types/internal/compute/setRealProperties.d.ts +1 -0
  338. package/dist/types/internal/data/CollectContracts.d.ts +5 -0
  339. package/dist/types/internal/data/DataStore.d.ts +26 -0
  340. package/dist/types/internal/data/FlowApi.d.ts +30 -0
  341. package/dist/types/internal/data/FlowApiProvider.d.ts +20 -0
  342. package/dist/types/internal/data/getProviderBrick.d.ts +1 -0
  343. package/dist/types/internal/data/resolveData.d.ts +16 -0
  344. package/dist/types/internal/data/resolveDataStore.d.ts +11 -0
  345. package/dist/types/internal/devtools.d.ts +6 -0
  346. package/dist/types/internal/enums.d.ts +4 -0
  347. package/dist/types/internal/historyExtended.d.ts +58 -0
  348. package/dist/types/internal/interfaces.d.ts +92 -0
  349. package/dist/types/internal/loadBootstrapData.d.ts +10 -0
  350. package/dist/types/internal/loadCheckLogin.d.ts +1 -0
  351. package/dist/types/internal/matchPath.d.ts +18 -0
  352. package/dist/types/internal/matchRoutes.d.ts +9 -0
  353. package/dist/types/internal/matchStoryboard.d.ts +10 -0
  354. package/dist/types/internal/mediaQuery.d.ts +14 -0
  355. package/dist/types/internal/menu/computeMenuData.d.ts +7 -0
  356. package/dist/types/internal/menu/constants.d.ts +3 -0
  357. package/dist/types/internal/menu/fetchMenuById.d.ts +3 -0
  358. package/dist/types/internal/menu/fetchMenuTitle.d.ts +2 -0
  359. package/dist/types/internal/menu/getMenusOfStandaloneApp.d.ts +2 -0
  360. package/dist/types/internal/menu/interfaces.d.ts +74 -0
  361. package/dist/types/internal/menu/loadDynamicMenuItems.d.ts +3 -0
  362. package/dist/types/internal/menu/mergeMenu.d.ts +3 -0
  363. package/dist/types/internal/menu/reorderMenuItems.d.ts +2 -0
  364. package/dist/types/internal/mount.d.ts +3 -0
  365. package/dist/types/internal/poll.d.ts +10 -0
  366. package/dist/types/internal/proxyFactories.d.ts +2 -0
  367. package/dist/types/internal/registerAppI18n.d.ts +3 -0
  368. package/dist/types/internal/registerCustomTemplates.d.ts +2 -0
  369. package/dist/types/internal/secret_internals.d.ts +21 -0
  370. package/dist/types/themeAndMode.d.ts +16 -0
  371. package/package.json +67 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlowApi.js","names":["_jsYaml","_interopRequireDefault","require","_apiGatewaySdk","_CollectContracts","flowApiDefinitionPromiseMap","Map","isFlowApiProvider","provider","includes","getArgsOfFlowApi","originalArgs","method","Error","apiDefinition","fetchFlowApiDefinition","apiProfile","getApiProfileFromApiDefinition","getApiArgsFromApiProfile","uri","apiMethod","ext_fields","name","namespace","serviceName","responseWrapper","version","isFileType","request","isDownload","fileName","shift","url","args","getTransformedUriAndRestArgs","originalUri","prefix","restArgs","slice","transformedUri","replace","api","_contract$endpoint","_contract$response","contract","yaml","safeLoad","schema","JSON_SCHEMA","json","endpoint","response","wrapper","toLowerCase","type","promise","get","_fetchFlowApiDefinition","set","namespaceName","nameWithVersion","split","getContract","namespaceId","contractData","ContractApi_searchSingleContract","contractName","_contractData$namespa","_contractData$namespa2"],"sources":["../../../../src/internal/data/FlowApi.ts"],"sourcesContent":["import yaml from \"js-yaml\";\nimport { ContractApi_searchSingleContract } from \"@next-api-sdk/api-gateway-sdk\";\nimport { ContractRequest, ContractResponse, ExtField } from \"@next-core/types\";\nimport { getContract } from \"./CollectContracts.js\";\n\nconst flowApiDefinitionPromiseMap = new Map<\n string,\n Promise<CustomApiDefinition | undefined>\n>();\n\n// Legacy Custom API: `${namespace}@${name}`\n// Flow API: `${namespace}@${name}:${version}`\nexport function isFlowApiProvider(provider: string): boolean {\n return provider.includes(\"@\");\n}\n\nexport async function getArgsOfFlowApi(\n provider: string,\n originalArgs: unknown[],\n method?: string\n): Promise<unknown[]> {\n if (!isFlowApiProvider(provider)) {\n return originalArgs;\n }\n\n if (!provider.includes(\":\")) {\n throw new Error(\n `You're using legacy Custom API \"${provider}\" which is not supported in v3, please use Flow API instead`\n );\n }\n\n const apiDefinition = await fetchFlowApiDefinition(provider);\n\n if (!apiDefinition) {\n throw new Error(`Flow API not found: \"${provider}\"`);\n }\n\n const apiProfile = getApiProfileFromApiDefinition(provider, apiDefinition);\n\n return getApiArgsFromApiProfile(apiProfile, originalArgs, method);\n}\n\nfunction getApiArgsFromApiProfile(\n {\n uri,\n method: apiMethod,\n ext_fields,\n name,\n namespace,\n serviceName,\n responseWrapper,\n version,\n isFileType,\n request,\n }: CustomApiProfile,\n originalArgs: unknown[],\n method?: string\n): unknown[] {\n const isDownload = isFileType && method === \"saveAs\";\n let fileName: string | undefined;\n if (isDownload) {\n fileName = originalArgs.shift() as string;\n }\n\n const { url, args } = getTransformedUriAndRestArgs(\n uri,\n originalArgs,\n name,\n namespace,\n serviceName,\n version\n );\n\n return [\n ...(isDownload ? [fileName] : []),\n {\n url,\n originalUri: uri,\n method: apiMethod,\n ext_fields,\n responseWrapper,\n request,\n isFileType,\n },\n ...args,\n ];\n}\n\nfunction getTransformedUriAndRestArgs(\n uri: string,\n originalArgs: unknown[],\n name: string,\n namespace: string,\n serviceName: string | undefined,\n version?: string\n): { url: string; args: unknown[] } {\n const prefix = version\n ? serviceName\n ? `api/gateway/${serviceName}`\n : `api/gateway/${namespace}.${name}@${version}`\n : `api/gateway/api_service.${namespace}.${name}`;\n const restArgs = originalArgs.slice();\n const transformedUri = uri.replace(\n /:([^/]+)/g,\n () => restArgs.shift() as string\n );\n return {\n url: prefix + transformedUri,\n args: restArgs,\n };\n}\n\nfunction getApiProfileFromApiDefinition(\n provider: string,\n api: CustomApiDefinition\n): CustomApiProfile {\n const contract: CustomApiDefinition[\"contract\"] =\n typeof api.contract === \"string\"\n ? (yaml.safeLoad(api.contract, {\n schema: yaml.JSON_SCHEMA,\n json: true,\n }) as CustomApiDefinition[\"contract\"])\n : api.contract;\n const { uri, method = \"GET\", ext_fields } = contract?.endpoint ?? {};\n const responseWrapper = contract?.response\n ? contract.response.wrapper !== false\n : false;\n if (!uri) {\n throw new Error(\n `Missing endpoint.uri in contract of provider \"${provider}\"`\n );\n }\n return {\n uri,\n method: method.toLowerCase() === \"list\" ? \"get\" : method,\n ext_fields,\n name: api.name,\n namespace: api.namespace,\n serviceName: api.serviceName,\n version: api.version,\n isFileType: contract?.response?.type === \"file\",\n responseWrapper,\n request: contract?.request,\n };\n}\n\nfunction fetchFlowApiDefinition(\n provider: string\n): Promise<CustomApiDefinition | undefined> {\n let promise = flowApiDefinitionPromiseMap.get(provider);\n if (!promise) {\n promise = _fetchFlowApiDefinition(provider);\n flowApiDefinitionPromiseMap.set(provider, promise);\n }\n return promise;\n}\n\nasync function _fetchFlowApiDefinition(\n provider: string\n): Promise<CustomApiDefinition | undefined> {\n const [namespaceName, nameWithVersion] = provider.split(\"@\");\n const [name, version] = nameWithVersion.split(\":\");\n\n const contract = getContract(`${namespaceName}.${name}`);\n if (contract) {\n return {\n name: contract.name,\n namespace: contract.namespaceId,\n serviceName: contract.serviceName,\n version: contract.version,\n contract: {\n endpoint: contract.endpoint,\n response: contract.response,\n request: contract.request,\n },\n };\n } else {\n const { contractData } = await ContractApi_searchSingleContract({\n contractName: `${namespaceName}.${name}`,\n version,\n });\n\n // return undefined if don't found contract\n if (contractData) {\n return {\n name: contractData.name,\n namespace: contractData.namespace?.[0]?.name,\n serviceName: contractData.serviceName,\n version: contractData.version,\n contract: {\n endpoint: contractData.endpoint,\n response: contractData.response,\n request: contractData.request,\n },\n };\n }\n }\n}\n\nexport interface CustomApiDefinition {\n name: string;\n namespace: string;\n version?: string;\n serviceName?: string;\n contract?: {\n endpoint: {\n ext_fields?: ExtField[];\n uri: string;\n method:\n | \"POST\"\n | \"post\"\n | \"PUT\"\n | \"put\"\n | \"GET\"\n | \"get\"\n | \"DELETE\"\n | \"delete\"\n | \"LIST\"\n | \"list\"\n | \"PATCH\"\n | \"patch\"\n | \"HEAD\"\n | \"head\";\n };\n request?: ContractRequest;\n response?: ContractResponse;\n };\n}\n\nexport interface CustomApiProfile {\n uri: string;\n method: string;\n name: string;\n namespace: string;\n serviceName?: string;\n responseWrapper: boolean;\n version?: string;\n isFileType?: boolean;\n ext_fields?: ExtField[];\n request?: ContractRequest;\n}\n"],"mappings":"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"}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.FLOW_API_PROVIDER = void 0;
7
+ exports.callFlowApi = callFlowApi;
8
+ exports.hasFileType = hasFileType;
9
+ exports.processExtFields = processExtFields;
10
+ exports.registerFlowApiProvider = registerFlowApiProvider;
11
+ exports.transformFormData = transformFormData;
12
+ var _storyboard = require("@next-core/utils/storyboard");
13
+ var _http = require("@next-core/http");
14
+ var _lodash = require("lodash");
15
+ const FLOW_API_PROVIDER = "core.provider-flow-api";
16
+ exports.FLOW_API_PROVIDER = FLOW_API_PROVIDER;
17
+ function hasFields(ext_fields, type) {
18
+ return ext_fields.some(item => item.source === type);
19
+ }
20
+ function processExtFields(ext_fields, ...args) {
21
+ const hasQueryParams = hasFields(ext_fields, "query");
22
+ const hasBodyParams = hasFields(ext_fields, "body");
23
+ if (hasQueryParams) {
24
+ if (hasBodyParams) {
25
+ const [data, params, options] = args;
26
+ return {
27
+ data: data,
28
+ options: {
29
+ params: params,
30
+ ...options
31
+ }
32
+ };
33
+ }
34
+ const [params, options] = args;
35
+ return {
36
+ data: {},
37
+ options: {
38
+ params: params,
39
+ ...options
40
+ }
41
+ };
42
+ }
43
+
44
+ // only hasBodyParams or default
45
+ const [data, options] = args;
46
+ return {
47
+ data,
48
+ options: options
49
+ };
50
+ }
51
+ function hasFileType(request) {
52
+ if (!request || request.type !== "object") {
53
+ return false;
54
+ }
55
+ const processFields = fields => {
56
+ return !(0, _lodash.isEmpty)(fields) && fields.some(field => ["file", "file[]"].includes(field.type) || processFields(field.fields));
57
+ };
58
+ return processFields(request.fields);
59
+ }
60
+ function transformFormData(data) {
61
+ if (data instanceof FormData) {
62
+ return data;
63
+ }
64
+ const formData = new FormData();
65
+ for (const [key, value] of Object.entries(data)) {
66
+ if (Array.isArray(value)) {
67
+ value.forEach(v => {
68
+ formData.append(key, v);
69
+ });
70
+ } else if ((0, _lodash.isObject)(value) && !(value instanceof Blob) && !(value instanceof Date)) {
71
+ Object.entries(value).forEach(([k, v]) => {
72
+ formData.append(`${key}[${k}]`, v);
73
+ });
74
+ } else {
75
+ formData.append(key, value);
76
+ }
77
+ }
78
+ return formData;
79
+ }
80
+ async function callFlowApi({
81
+ url,
82
+ originalUri,
83
+ method = "GET",
84
+ responseWrapper = true,
85
+ ext_fields = [],
86
+ request,
87
+ isFileType
88
+ }, ...args) {
89
+ const isSimpleRequest = ["get", "delete", "head"].includes(method.toLowerCase());
90
+ const defaultOptions = isFileType ? {
91
+ responseType: "blob"
92
+ } : {};
93
+ let response;
94
+ if (isSimpleRequest) {
95
+ var _originalUri$match$le, _originalUri$match, _request$fields$lengt, _request$fields;
96
+ const noParams = originalUri && (request === null || request === void 0 ? void 0 : request.type) === "object" ? ((_originalUri$match$le = (_originalUri$match = originalUri.match(/:([^/]+)/g)) === null || _originalUri$match === void 0 ? void 0 : _originalUri$match.length) !== null && _originalUri$match$le !== void 0 ? _originalUri$match$le : 0) === ((_request$fields$lengt = (_request$fields = request.fields) === null || _request$fields === void 0 ? void 0 : _request$fields.length) !== null && _request$fields$lengt !== void 0 ? _request$fields$lengt : 0) : false;
97
+ let params;
98
+ let options;
99
+ if (noParams) {
100
+ [options] = args;
101
+ } else {
102
+ [params, options] = args;
103
+ }
104
+ response = await _http.http.simpleRequest(method, url, {
105
+ params,
106
+ ...defaultOptions,
107
+ ...options
108
+ });
109
+ } else {
110
+ const isUploadType = hasFileType(request);
111
+ const result = processExtFields(ext_fields, ...args);
112
+ response = await _http.http.requestWithBody(method, url, isUploadType ? transformFormData(result.data) : result.data, {
113
+ ...defaultOptions,
114
+ ...result.options
115
+ });
116
+ }
117
+ return (isFileType ? false : responseWrapper) ? response.data : response;
118
+ }
119
+ function registerFlowApiProvider() {
120
+ customElements.define(FLOW_API_PROVIDER, (0, _storyboard.createProviderClass)(callFlowApi));
121
+ }
122
+ //# sourceMappingURL=FlowApiProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlowApiProvider.js","names":["_storyboard","require","_http","_lodash","FLOW_API_PROVIDER","exports","hasFields","ext_fields","type","some","item","source","processExtFields","args","hasQueryParams","hasBodyParams","data","params","options","hasFileType","request","processFields","fields","isEmpty","field","includes","transformFormData","FormData","formData","key","value","Object","entries","Array","isArray","forEach","v","append","isObject","Blob","Date","k","callFlowApi","url","originalUri","method","responseWrapper","isFileType","isSimpleRequest","toLowerCase","defaultOptions","responseType","response","_originalUri$match$le","_originalUri$match","_request$fields$lengt","_request$fields","noParams","match","length","http","simpleRequest","isUploadType","result","requestWithBody","registerFlowApiProvider","customElements","define","createProviderClass"],"sources":["../../../../src/internal/data/FlowApiProvider.ts"],"sourcesContent":["import { createProviderClass } from \"@next-core/utils/storyboard\";\nimport {\n ExtField,\n ContractRequest,\n ContractField,\n ContractFieldItem,\n} from \"@next-core/types\";\nimport { http, HttpOptions, HttpParams } from \"@next-core/http\";\nimport { isEmpty, isObject } from \"lodash\";\n\nexport const FLOW_API_PROVIDER = \"core.provider-flow-api\";\n\nexport interface CustomApiParams {\n url: string;\n originalUri?: string;\n method?: string;\n responseWrapper?: boolean;\n ext_fields?: ExtField[];\n request?: ContractRequest;\n isFileType?: boolean;\n}\nfunction hasFields(ext_fields: ExtField[], type: \"query\" | \"body\"): boolean {\n return ext_fields.some((item) => item.source === type);\n}\n\nexport function processExtFields(\n ext_fields: ExtField[],\n ...args: unknown[]\n): { data: unknown; options: HttpOptions } {\n const hasQueryParams = hasFields(ext_fields, \"query\");\n const hasBodyParams = hasFields(ext_fields, \"body\");\n\n if (hasQueryParams) {\n if (hasBodyParams) {\n const [data, params, options] = args;\n return {\n data: data,\n options: {\n params: params as HttpParams,\n ...(options as HttpOptions),\n },\n };\n }\n\n const [params, options] = args;\n return {\n data: {},\n options: {\n params: params as HttpParams,\n ...(options as HttpOptions),\n },\n };\n }\n\n // only hasBodyParams or default\n const [data, options] = args;\n return {\n data,\n options: options as HttpOptions,\n };\n}\n\nexport function hasFileType(request: ContractRequest | undefined): boolean {\n if (!request || request.type !== \"object\") {\n return false;\n }\n\n const processFields = (fields: ContractField[] | undefined): boolean => {\n return (\n !isEmpty(fields) &&\n fields!.some(\n (field) =>\n [\"file\", \"file[]\"].includes((field as ContractFieldItem).type) ||\n processFields((field as ContractFieldItem).fields)\n )\n );\n };\n\n return processFields(request.fields);\n}\n\nexport function transformFormData(\n data: Record<string, unknown> | FormData\n): FormData {\n if (data instanceof FormData) {\n return data;\n }\n\n const formData = new FormData();\n for (const [key, value] of Object.entries(data)) {\n if (Array.isArray(value)) {\n value.forEach((v) => {\n formData.append(key, v);\n });\n } else if (\n isObject(value) &&\n !(value instanceof Blob) &&\n !(value instanceof Date)\n ) {\n Object.entries(value).forEach(([k, v]) => {\n formData.append(`${key}[${k}]`, v);\n });\n } else {\n formData.append(key, value as string);\n }\n }\n\n return formData;\n}\n\nexport async function callFlowApi(\n {\n url,\n originalUri,\n method = \"GET\",\n responseWrapper = true,\n ext_fields = [],\n request,\n isFileType,\n }: CustomApiParams,\n ...args: unknown[]\n): Promise<unknown> {\n const isSimpleRequest = [\"get\", \"delete\", \"head\"].includes(\n method.toLowerCase()\n );\n const defaultOptions: HttpOptions = isFileType\n ? { responseType: \"blob\" }\n : {};\n let response: { data?: unknown };\n\n if (isSimpleRequest) {\n const noParams =\n originalUri && request?.type === \"object\"\n ? (originalUri.match(/:([^/]+)/g)?.length ?? 0) ===\n (request.fields?.length ?? 0)\n : false;\n let params: HttpParams | undefined;\n let options: HttpOptions | undefined;\n\n if (noParams) {\n [options] = args as [HttpOptions?];\n } else {\n [params, options] = args as [HttpParams?, HttpOptions?];\n }\n\n response = await http.simpleRequest(method, url, {\n params,\n ...defaultOptions,\n ...(options as HttpOptions),\n });\n } else {\n const isUploadType = hasFileType(request);\n const result = processExtFields(ext_fields, ...args);\n\n response = await http.requestWithBody(\n method,\n url,\n isUploadType ? transformFormData(result.data as any) : result.data,\n { ...defaultOptions, ...result.options }\n );\n }\n\n return (isFileType ? false : responseWrapper) ? response.data : response;\n}\n\nexport function registerFlowApiProvider(): void {\n customElements.define(FLOW_API_PROVIDER, createProviderClass(callFlowApi));\n}\n"],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getProviderBrick = getProviderBrick;
7
+ var _loader = require("@next-core/loader");
8
+ var _FlowApi = require("./FlowApi.js");
9
+ var _FlowApiProvider = require("./FlowApiProvider.js");
10
+ var _Runtime = require("../Runtime.js");
11
+ const pool = new Map();
12
+ async function getProviderBrick(provider) {
13
+ if ((0, _FlowApi.isFlowApiProvider)(provider)) {
14
+ provider = _FlowApiProvider.FLOW_API_PROVIDER;
15
+ }
16
+ let brick = pool.get(provider);
17
+ if (brick) {
18
+ return brick;
19
+ }
20
+ if (provider === _FlowApiProvider.FLOW_API_PROVIDER && !customElements.get(provider)) {
21
+ (0, _FlowApiProvider.registerFlowApiProvider)();
22
+ } else {
23
+ await (0, _loader.loadBricksImperatively)([provider], (0, _Runtime.getBrickPackages)());
24
+ if (!customElements.get(provider)) {
25
+ throw new Error(`Provider not defined: "${provider}".`);
26
+ }
27
+ }
28
+ brick = document.createElement(provider);
29
+ pool.set(provider, brick);
30
+ return brick;
31
+ }
32
+ //# sourceMappingURL=getProviderBrick.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getProviderBrick.js","names":["_loader","require","_FlowApi","_FlowApiProvider","_Runtime","pool","Map","getProviderBrick","provider","isFlowApiProvider","FLOW_API_PROVIDER","brick","get","customElements","registerFlowApiProvider","loadBricksImperatively","getBrickPackages","Error","document","createElement","set"],"sources":["../../../../src/internal/data/getProviderBrick.ts"],"sourcesContent":["import { loadBricksImperatively } from \"@next-core/loader\";\nimport { isFlowApiProvider } from \"./FlowApi.js\";\nimport {\n FLOW_API_PROVIDER,\n registerFlowApiProvider,\n} from \"./FlowApiProvider.js\";\nimport { getBrickPackages } from \"../Runtime.js\";\n\nconst pool = new Map<string, HTMLElement>();\nexport async function getProviderBrick(provider: string): Promise<HTMLElement> {\n if (isFlowApiProvider(provider)) {\n provider = FLOW_API_PROVIDER;\n }\n\n let brick = pool.get(provider);\n if (brick) {\n return brick;\n }\n\n if (provider === FLOW_API_PROVIDER && !customElements.get(provider)) {\n registerFlowApiProvider();\n } else {\n await loadBricksImperatively([provider], getBrickPackages());\n\n if (!customElements.get(provider)) {\n throw new Error(`Provider not defined: \"${provider}\".`);\n }\n }\n\n brick = document.createElement(provider);\n pool.set(provider, brick);\n return brick;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AAIA,IAAAG,QAAA,GAAAH,OAAA;AAEA,MAAMI,IAAI,GAAG,IAAIC,GAAG,EAAuB;AACpC,eAAeC,gBAAgBA,CAACC,QAAgB,EAAwB;EAC7E,IAAI,IAAAC,0BAAiB,EAACD,QAAQ,CAAC,EAAE;IAC/BA,QAAQ,GAAGE,kCAAiB;EAC9B;EAEA,IAAIC,KAAK,GAAGN,IAAI,CAACO,GAAG,CAACJ,QAAQ,CAAC;EAC9B,IAAIG,KAAK,EAAE;IACT,OAAOA,KAAK;EACd;EAEA,IAAIH,QAAQ,KAAKE,kCAAiB,IAAI,CAACG,cAAc,CAACD,GAAG,CAACJ,QAAQ,CAAC,EAAE;IACnE,IAAAM,wCAAuB,GAAE;EAC3B,CAAC,MAAM;IACL,MAAM,IAAAC,8BAAsB,EAAC,CAACP,QAAQ,CAAC,EAAE,IAAAQ,yBAAgB,GAAE,CAAC;IAE5D,IAAI,CAACH,cAAc,CAACD,GAAG,CAACJ,QAAQ,CAAC,EAAE;MACjC,MAAM,IAAIS,KAAK,CAAE,0BAAyBT,QAAS,IAAG,CAAC;IACzD;EACF;EAEAG,KAAK,GAAGO,QAAQ,CAACC,aAAa,CAACX,QAAQ,CAAC;EACxCH,IAAI,CAACe,GAAG,CAACZ,QAAQ,EAAEG,KAAK,CAAC;EACzB,OAAOA,KAAK;AACd"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.clearResolveCache = clearResolveCache;
7
+ exports.resolveByProvider = resolveByProvider;
8
+ exports.resolveData = resolveData;
9
+ var _computeRealValue = require("../compute/computeRealValue.js");
10
+ var _getProviderBrick = require("./getProviderBrick.js");
11
+ var _FlowApi = require("./FlowApi.js");
12
+ const cache = new Map();
13
+ async function resolveData(resolveConf, runtimeContext, options) {
14
+ const {
15
+ useProvider,
16
+ method = "resolve",
17
+ args = [],
18
+ onReject
19
+ } = resolveConf;
20
+ const legacyProvider = resolveConf.provider;
21
+ if (legacyProvider && !useProvider) {
22
+ throw new Error(`You're using "provider: ${legacyProvider}" which is not supported in v3, please use "useProvider" instead`);
23
+ }
24
+ const [providerBrick, actualArgs] = await Promise.all([(0, _getProviderBrick.getProviderBrick)(useProvider), (0, _computeRealValue.asyncComputeRealValue)(args, runtimeContext)]);
25
+ const promise = resolveByProvider(providerBrick, useProvider, method, actualArgs, options, args);
26
+ let {
27
+ transform
28
+ } = resolveConf;
29
+ let data;
30
+ try {
31
+ data = await promise;
32
+ // The fetched data and its inner objects should never be *injected* again.
33
+ // recursiveMarkAsInjected(data);
34
+ } catch (error) {
35
+ if (isHandleRejectByTransform(onReject)) {
36
+ transform = onReject.transform;
37
+ data = error;
38
+ } else {
39
+ throw error;
40
+ }
41
+ }
42
+ if (!transform) {
43
+ return data;
44
+ }
45
+
46
+ // Keep backward compatibility of string transform.
47
+ if (typeof transform === "string") {
48
+ return {
49
+ [transform]: data
50
+ };
51
+ }
52
+ return (0, _computeRealValue.asyncComputeRealValue)(transform, {
53
+ ...runtimeContext,
54
+ data
55
+ });
56
+ }
57
+ function clearResolveCache() {
58
+ cache.clear();
59
+ }
60
+ async function resolveByProvider(brick, useProvider, method, args, options, originalArgs) {
61
+ let cacheKey;
62
+ try {
63
+ // `args` may contain circular references, which makes
64
+ // JSON stringify failed, thus we fallback to original args.
65
+ cacheKey = JSON.stringify({
66
+ useProvider,
67
+ method,
68
+ args
69
+ });
70
+ } catch (e) {
71
+ if (!originalArgs) {
72
+ throw e;
73
+ }
74
+ cacheKey = JSON.stringify({
75
+ useProvider,
76
+ method,
77
+ originalArgs
78
+ });
79
+ }
80
+ let promise;
81
+ if ((options === null || options === void 0 ? void 0 : options.cache) !== "reload") {
82
+ promise = cache.get(cacheKey);
83
+ }
84
+ if (!promise) {
85
+ promise = (async () => {
86
+ const finalArgs = await (0, _FlowApi.getArgsOfFlowApi)(useProvider, args, method);
87
+ return brick.resolve(...finalArgs);
88
+ })();
89
+ cache.set(cacheKey, promise);
90
+ }
91
+ return promise;
92
+ }
93
+ function isHandleRejectByTransform(onReject) {
94
+ return !!(onReject !== null && onReject !== void 0 && onReject.transform);
95
+ }
96
+ //# sourceMappingURL=resolveData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveData.js","names":["_computeRealValue","require","_getProviderBrick","_FlowApi","cache","Map","resolveData","resolveConf","runtimeContext","options","useProvider","method","args","onReject","legacyProvider","provider","Error","providerBrick","actualArgs","Promise","all","getProviderBrick","asyncComputeRealValue","promise","resolveByProvider","transform","data","error","isHandleRejectByTransform","clearResolveCache","clear","brick","originalArgs","cacheKey","JSON","stringify","e","get","finalArgs","getArgsOfFlowApi","resolve","set"],"sources":["../../../../src/internal/data/resolveData.ts"],"sourcesContent":["import type {\n HandleReject,\n HandleRejectByTransform,\n ResolveConf,\n} from \"@next-core/types\";\nimport { asyncComputeRealValue } from \"../compute/computeRealValue.js\";\nimport { getProviderBrick } from \"./getProviderBrick.js\";\nimport type { RuntimeContext } from \"../interfaces.js\";\nimport { getArgsOfFlowApi } from \"./FlowApi.js\";\n\nconst cache = new Map<string, Promise<unknown>>();\n\nexport interface ResolveOptions {\n /**\n * Cache mode of resolve.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/Request/cache\n *\n * - `default`: Looks for a matching cache.\n * - `reload`: Without looking for a matching cache.\n */\n cache?: \"default\" | \"reload\";\n}\n\nexport async function resolveData(\n resolveConf: ResolveConf,\n runtimeContext: RuntimeContext,\n options?: ResolveOptions\n) {\n const { useProvider, method = \"resolve\", args = [], onReject } = resolveConf;\n\n const legacyProvider = (resolveConf as { provider?: string }).provider;\n if (legacyProvider && !useProvider) {\n throw new Error(\n `You're using \"provider: ${legacyProvider}\" which is not supported in v3, please use \"useProvider\" instead`\n );\n }\n\n const [providerBrick, actualArgs] = await Promise.all([\n getProviderBrick(useProvider) as unknown as Promise<\n Record<string, Function>\n >,\n asyncComputeRealValue(args, runtimeContext) as Promise<unknown[]>,\n ]);\n\n const promise = resolveByProvider(\n providerBrick,\n useProvider,\n method,\n actualArgs,\n options,\n args\n );\n\n let { transform } = resolveConf;\n let data: unknown;\n\n try {\n data = await promise;\n // The fetched data and its inner objects should never be *injected* again.\n // recursiveMarkAsInjected(data);\n } catch (error) {\n if (isHandleRejectByTransform(onReject)) {\n transform = onReject.transform;\n data = error;\n } else {\n throw error;\n }\n }\n\n if (!transform) {\n return data;\n }\n\n // Keep backward compatibility of string transform.\n if (typeof transform === \"string\") {\n return { [transform]: data };\n }\n\n return asyncComputeRealValue(transform, { ...runtimeContext, data });\n}\n\nexport function clearResolveCache() {\n cache.clear();\n}\n\nexport async function resolveByProvider(\n brick: Record<string, Function>,\n useProvider: string,\n method: string,\n args: unknown[],\n options?: ResolveOptions,\n originalArgs?: unknown[]\n) {\n let cacheKey: string;\n try {\n // `args` may contain circular references, which makes\n // JSON stringify failed, thus we fallback to original args.\n cacheKey = JSON.stringify({\n useProvider,\n method,\n args,\n });\n } catch (e) {\n if (!originalArgs) {\n throw e;\n }\n cacheKey = JSON.stringify({\n useProvider,\n method,\n originalArgs,\n });\n }\n\n let promise: Promise<unknown> | undefined;\n if (options?.cache !== \"reload\") {\n promise = cache.get(cacheKey);\n }\n if (!promise) {\n promise = (async () => {\n const finalArgs = await getArgsOfFlowApi(useProvider, args, method);\n return brick.resolve(...finalArgs);\n })();\n\n cache.set(cacheKey, promise);\n }\n\n return promise;\n}\n\nfunction isHandleRejectByTransform(\n onReject: HandleReject | undefined\n): onReject is HandleRejectByTransform {\n return !!(onReject as HandleRejectByTransform)?.transform;\n}\n"],"mappings":"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"}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getDependencyMapOfContext = getDependencyMapOfContext;
7
+ exports.resolveDataStore = resolveDataStore;
8
+ var _storyboard = require("@next-core/utils/storyboard");
9
+ function resolveDataStore(contextConfs, resolveContext, keyword = "CTX") {
10
+ const dependencyMap = getDependencyMapOfContext(contextConfs, keyword);
11
+ // There maybe multiple context confs for a specific name, since there are conditional contexts.
12
+ // This is a map of how many pending context confs for each context name.
13
+ const pendingDeps = new Map();
14
+ for (const contextName of Array.from(dependencyMap.keys()).map(contextConf => contextConf.name)) {
15
+ var _pendingDeps$get;
16
+ pendingDeps.set(contextName, ((_pendingDeps$get = pendingDeps.get(contextName)) !== null && _pendingDeps$get !== void 0 ? _pendingDeps$get : 0) + 1);
17
+ }
18
+ const hasNonStaticUsage = Array.from(dependencyMap.values()).some(stats => stats.hasNonStaticUsage);
19
+ const processed = new WeakSet();
20
+ const deferredContexts = new Map();
21
+ const pendingContexts = new Map([...new Set(contextConfs.map(contextConf => contextConf.name))].map(contextName => [contextName, new Promise((resolve, reject) => {
22
+ deferredContexts.set(contextName, {
23
+ resolve,
24
+ reject
25
+ });
26
+ })]));
27
+ const wrapResolve = async contextConf => {
28
+ var _pendingDeps$get2;
29
+ processed.add(contextConf);
30
+ const resolved = await resolveContext(contextConf);
31
+ dependencyMap.delete(contextConf);
32
+ const left = (_pendingDeps$get2 = pendingDeps.get(contextConf.name)) !== null && _pendingDeps$get2 !== void 0 ? _pendingDeps$get2 : 0;
33
+ if (resolved) {
34
+ // Assert: contextConf.name exists in deferredContexts
35
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
36
+ deferredContexts.get(contextConf.name).resolve();
37
+ pendingDeps.delete(contextConf.name);
38
+ if (left === 0) {
39
+ throw new Error(`Duplicated context defined: ${contextConf.name}`);
40
+ }
41
+ } else {
42
+ // Assert: left >= 1
43
+ if (left === 1) {
44
+ // Assert: contextConf.name exists in deferredContexts
45
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
46
+ deferredContexts.get(contextConf.name).resolve();
47
+ pendingDeps.delete(contextConf.name);
48
+ } else {
49
+ pendingDeps.set(contextConf.name, left - 1);
50
+ }
51
+ }
52
+ await scheduleNext();
53
+ };
54
+ let scheduleAsSerial = hasNonStaticUsage;
55
+ async function scheduleNext() {
56
+ const readyContexts = Array.from(dependencyMap.entries()).filter(predicateNextResolveFactory(pendingDeps, scheduleAsSerial)).map(entry => entry[0]).filter(contextConf => !processed.has(contextConf));
57
+ await Promise.all(readyContexts.map(wrapResolve));
58
+ }
59
+ const pendingResult = scheduleNext().then(async () => {
60
+ // If there are still contexts left, it implies one of these situations:
61
+ // - Circular contexts.
62
+ // Such as: a depends on b, while b depends on a.
63
+ // - Related contexts are all ignored.
64
+ // Such as: a depends on b,
65
+ // while both them are ignore by a falsy result of `if`.
66
+ if (dependencyMap.size > 0) {
67
+ // This will throw if circular contexts detected.
68
+ detectCircularContexts(dependencyMap, keyword);
69
+ scheduleAsSerial = true;
70
+ await scheduleNext();
71
+ }
72
+ // There maybe ignored contexts which are still not fulfilled.
73
+ // We treat them as RESOLVED.
74
+ for (const deferred of deferredContexts.values()) {
75
+ deferred.resolve();
76
+ }
77
+ }).catch(error => {
78
+ // There maybe contexts left not fulfilled, when an error occurred.
79
+ // We treat them as REJECTED.
80
+ for (const deferred of deferredContexts.values()) {
81
+ deferred.reject(error);
82
+ }
83
+ throw error;
84
+ });
85
+ return {
86
+ pendingResult,
87
+ pendingContexts
88
+ };
89
+ }
90
+ function predicateNextResolveFactory(pendingDeps, scheduleAsSerial) {
91
+ return (entry, index) =>
92
+ // When contexts contain computed CTX accesses, it implies a dynamic dependency map.
93
+ // So make them process sequentially, keep the same behavior as before.
94
+ scheduleAsSerial ? index === 0 :
95
+ // A context is ready when it has no pending dependencies.
96
+ ![...entry[1].usedProperties].some(dep => pendingDeps.has(dep));
97
+ }
98
+ function getDependencyMapOfContext(contextConfs, keyword = "CTX") {
99
+ const depsMap = new Map();
100
+ for (const contextConf of contextConfs) {
101
+ const stats = (0, _storyboard.collectMemberUsage)([contextConf.if, contextConf.value, contextConf.resolve], keyword);
102
+ depsMap.set(contextConf, stats);
103
+ }
104
+ return depsMap;
105
+ }
106
+ function detectCircularContexts(dependencyMap, keyword) {
107
+ const duplicatedMap = new Map(dependencyMap);
108
+ const pendingDeps = new Set(Array.from(duplicatedMap.keys()).map(contextConf => contextConf.name));
109
+ const next = () => {
110
+ let processedAtLeastOne = false;
111
+ for (const [contextConf, stats] of duplicatedMap.entries()) {
112
+ if (![...stats.usedProperties].some(dep => pendingDeps.has(dep))) {
113
+ duplicatedMap.delete(contextConf);
114
+ pendingDeps.delete(contextConf.name);
115
+ processedAtLeastOne = true;
116
+ }
117
+ }
118
+ if (processedAtLeastOne) {
119
+ next();
120
+ }
121
+ };
122
+ next();
123
+ if (duplicatedMap.size > 0) {
124
+ throw new ReferenceError(`Circular ${keyword} detected: ${Array.from(duplicatedMap.keys()).map(contextConf => contextConf.name).join(", ")}`);
125
+ }
126
+ }
127
+ //# sourceMappingURL=resolveDataStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveDataStore.js","names":["_storyboard","require","resolveDataStore","contextConfs","resolveContext","keyword","dependencyMap","getDependencyMapOfContext","pendingDeps","Map","contextName","Array","from","keys","map","contextConf","name","_pendingDeps$get","set","get","hasNonStaticUsage","values","some","stats","processed","WeakSet","deferredContexts","pendingContexts","Set","Promise","resolve","reject","wrapResolve","_pendingDeps$get2","add","resolved","delete","left","Error","scheduleNext","scheduleAsSerial","readyContexts","entries","filter","predicateNextResolveFactory","entry","has","all","pendingResult","then","size","detectCircularContexts","deferred","catch","error","index","usedProperties","dep","depsMap","collectMemberUsage","if","value","duplicatedMap","next","processedAtLeastOne","ReferenceError","join"],"sources":["../../../../src/internal/data/resolveDataStore.ts"],"sourcesContent":["import { ContextConf } from \"@next-core/types\";\nimport { collectMemberUsage, MemberUsage } from \"@next-core/utils/storyboard\";\n\nexport interface DeferredContext {\n resolve(): void;\n reject(e: unknown): void;\n}\n\nexport function resolveDataStore(\n contextConfs: ContextConf[],\n resolveContext: (contextConf: ContextConf) => Promise<boolean>,\n keyword = \"CTX\"\n): {\n pendingResult: Promise<void>;\n pendingContexts: Map<string, Promise<void>>;\n} {\n const dependencyMap = getDependencyMapOfContext(contextConfs, keyword);\n // There maybe multiple context confs for a specific name, since there are conditional contexts.\n // This is a map of how many pending context confs for each context name.\n const pendingDeps = new Map<string, number>();\n for (const contextName of Array.from(dependencyMap.keys()).map(\n (contextConf) => contextConf.name\n )) {\n pendingDeps.set(contextName, (pendingDeps.get(contextName) ?? 0) + 1);\n }\n const hasNonStaticUsage = Array.from(dependencyMap.values()).some(\n (stats) => stats.hasNonStaticUsage\n );\n const processed = new WeakSet<ContextConf>();\n\n const deferredContexts = new Map<string, DeferredContext>();\n const pendingContexts = new Map(\n [...new Set(contextConfs.map((contextConf) => contextConf.name))].map(\n (contextName) => [\n contextName,\n new Promise<void>((resolve, reject) => {\n deferredContexts.set(contextName, { resolve, reject });\n }),\n ]\n )\n );\n\n const wrapResolve = async (contextConf: ContextConf): Promise<void> => {\n processed.add(contextConf);\n const resolved = await resolveContext(contextConf);\n dependencyMap.delete(contextConf);\n const left = pendingDeps.get(contextConf.name) ?? 0;\n if (resolved) {\n // Assert: contextConf.name exists in deferredContexts\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n deferredContexts.get(contextConf.name)!.resolve();\n pendingDeps.delete(contextConf.name);\n if (left === 0) {\n throw new Error(`Duplicated context defined: ${contextConf.name}`);\n }\n } else {\n // Assert: left >= 1\n if (left === 1) {\n // Assert: contextConf.name exists in deferredContexts\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n deferredContexts.get(contextConf.name)!.resolve();\n pendingDeps.delete(contextConf.name);\n } else {\n pendingDeps.set(contextConf.name, left - 1);\n }\n }\n await scheduleNext();\n };\n\n let scheduleAsSerial = hasNonStaticUsage;\n\n async function scheduleNext(): Promise<void> {\n const readyContexts = Array.from(dependencyMap.entries())\n .filter(predicateNextResolveFactory(pendingDeps, scheduleAsSerial))\n .map((entry) => entry[0])\n .filter((contextConf) => !processed.has(contextConf));\n await Promise.all(readyContexts.map(wrapResolve));\n }\n\n const pendingResult = scheduleNext()\n .then(async () => {\n // If there are still contexts left, it implies one of these situations:\n // - Circular contexts.\n // Such as: a depends on b, while b depends on a.\n // - Related contexts are all ignored.\n // Such as: a depends on b,\n // while both them are ignore by a falsy result of `if`.\n if (dependencyMap.size > 0) {\n // This will throw if circular contexts detected.\n detectCircularContexts(dependencyMap, keyword);\n scheduleAsSerial = true;\n await scheduleNext();\n }\n // There maybe ignored contexts which are still not fulfilled.\n // We treat them as RESOLVED.\n for (const deferred of deferredContexts.values()) {\n deferred.resolve();\n }\n })\n .catch((error) => {\n // There maybe contexts left not fulfilled, when an error occurred.\n // We treat them as REJECTED.\n for (const deferred of deferredContexts.values()) {\n deferred.reject(error);\n }\n throw error;\n });\n return { pendingResult, pendingContexts };\n}\n\nfunction predicateNextResolveFactory(\n pendingDeps: Map<string, number>,\n scheduleAsSerial: boolean\n): (entry: [ContextConf, MemberUsage], index: number) => boolean {\n return (entry, index) =>\n // When contexts contain computed CTX accesses, it implies a dynamic dependency map.\n // So make them process sequentially, keep the same behavior as before.\n scheduleAsSerial\n ? index === 0\n : // A context is ready when it has no pending dependencies.\n ![...entry[1].usedProperties].some((dep) => pendingDeps.has(dep));\n}\n\nexport function getDependencyMapOfContext(\n contextConfs: ContextConf[],\n keyword = \"CTX\"\n): Map<ContextConf, MemberUsage> {\n const depsMap = new Map<ContextConf, MemberUsage>();\n for (const contextConf of contextConfs) {\n const stats = collectMemberUsage(\n [contextConf.if, contextConf.value, contextConf.resolve],\n keyword\n );\n depsMap.set(contextConf, stats);\n }\n return depsMap;\n}\n\nfunction detectCircularContexts(\n dependencyMap: Map<ContextConf, MemberUsage>,\n keyword: string\n): void {\n const duplicatedMap = new Map(dependencyMap);\n const pendingDeps = new Set<string>(\n Array.from(duplicatedMap.keys()).map((contextConf) => contextConf.name)\n );\n const next = (): void => {\n let processedAtLeastOne = false;\n for (const [contextConf, stats] of duplicatedMap.entries()) {\n if (![...stats.usedProperties].some((dep) => pendingDeps.has(dep))) {\n duplicatedMap.delete(contextConf);\n pendingDeps.delete(contextConf.name);\n processedAtLeastOne = true;\n }\n }\n if (processedAtLeastOne) {\n next();\n }\n };\n next();\n\n if (duplicatedMap.size > 0) {\n throw new ReferenceError(\n `Circular ${keyword} detected: ${Array.from(duplicatedMap.keys())\n .map((contextConf) => contextConf.name)\n .join(\", \")}`\n );\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getDevHook = getDevHook;
7
+ function getDevHook() {
8
+ return window.__BRICK_NEXT_DEVTOOLS_HOOK__;
9
+ }
10
+ //# sourceMappingURL=devtools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devtools.js","names":["getDevHook","window","__BRICK_NEXT_DEVTOOLS_HOOK__"],"sources":["../../../src/internal/devtools.ts"],"sourcesContent":["interface DevtoolsHookContainer {\n __BRICK_NEXT_DEVTOOLS_HOOK__?: DevtoolsHook;\n}\n\ninterface DevtoolsHook {\n emit: (message: unknown) => void;\n restoreDehydrated: (value: unknown) => unknown;\n}\n\nexport function getDevHook(): DevtoolsHook | undefined {\n return (window as DevtoolsHookContainer).__BRICK_NEXT_DEVTOOLS_HOOK__;\n}\n"],"mappings":";;;;;;AASO,SAASA,UAAUA,CAAA,EAA6B;EACrD,OAAQC,MAAM,CAA2BC,4BAA4B;AACvE"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.RenderTag = void 0;
7
+ let RenderTag;
8
+ exports.RenderTag = RenderTag;
9
+ (function (RenderTag) {
10
+ RenderTag[RenderTag["ROOT"] = 1] = "ROOT";
11
+ RenderTag[RenderTag["BRICK"] = 2] = "BRICK";
12
+ })(RenderTag || (exports.RenderTag = RenderTag = {}));
13
+ //# sourceMappingURL=enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.js","names":["RenderTag","exports"],"sources":["../../../src/internal/enums.ts"],"sourcesContent":["export enum RenderTag {\n ROOT = 1,\n BRICK = 2,\n}\n"],"mappings":";;;;;;IAAYA,SAAS;AAAAC,OAAA,CAAAD,SAAA,GAAAA,SAAA;AAAA,WAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;AAAA,GAATA,SAAS,KAAAC,OAAA,CAAAD,SAAA,GAATA,SAAS"}
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getUserConfirmation = getUserConfirmation;
7
+ exports.historyExtended = historyExtended;
8
+ var _history = require("history");
9
+ var _getBasePath = require("../getBasePath.js");
10
+ var _Runtime = require("./Runtime.js");
11
+ var _matchStoryboard = require("./matchStoryboard.js");
12
+ let blocked = false;
13
+ function getUserConfirmation(message, callback) {
14
+ blocked = !confirm(message);
15
+ callback(!blocked);
16
+ }
17
+ function historyExtended(browserHistory) {
18
+ const {
19
+ push: originalPush,
20
+ replace: originalReplace
21
+ } = browserHistory;
22
+ function push(location, state, callback) {
23
+ blocked = false;
24
+ originalPush(location, state);
25
+ callback === null || callback === void 0 ? void 0 : callback(blocked);
26
+ }
27
+ function replace(location, state, callback) {
28
+ blocked = false;
29
+ originalReplace(location, state);
30
+ callback === null || callback === void 0 ? void 0 : callback(blocked);
31
+ }
32
+ function updateQueryFactory(method) {
33
+ return function updateQuery(query, options = {}, callback) {
34
+ const {
35
+ extraQuery,
36
+ clear,
37
+ keepHash,
38
+ ...state
39
+ } = options;
40
+ const urlSearchParams = new URLSearchParams(clear ? "" : browserHistory.location.search);
41
+ const params = {};
42
+ Object.assign(params, query, extraQuery);
43
+ for (const [key, value] of Object.entries(params)) {
44
+ if (Array.isArray(value)) {
45
+ urlSearchParams.delete(key);
46
+ for (const item of value) {
47
+ urlSearchParams.append(key, item);
48
+ }
49
+ } else if (value === undefined || value === null || value === "") {
50
+ urlSearchParams.delete(key);
51
+ } else {
52
+ urlSearchParams.set(key, value);
53
+ }
54
+ }
55
+ (method === "push" ? push : replace)(`?${urlSearchParams.toString()}${keepHash ? browserHistory.location.hash : ""}`, state, callback);
56
+ };
57
+ }
58
+ function pushAnchor(hash, state, callback) {
59
+ push({
60
+ ...browserHistory.location,
61
+ key: undefined,
62
+ hash,
63
+ state: {
64
+ // The default notify is false
65
+ notify: false,
66
+ ...state
67
+ }
68
+ }, undefined, callback);
69
+ }
70
+ function reload(callback) {
71
+ replace({
72
+ ...browserHistory.location,
73
+ state: {
74
+ ...browserHistory.location.state,
75
+ // Always notify
76
+ notify: true
77
+ }
78
+ }, undefined, callback);
79
+ }
80
+ let blockMessage;
81
+ function setBlockMessage(message) {
82
+ blockMessage = message;
83
+ }
84
+ function getBlockMessage() {
85
+ return blockMessage;
86
+ }
87
+ function unblock() {
88
+ blockMessage = undefined;
89
+ }
90
+ return {
91
+ pushQuery: updateQueryFactory("push"),
92
+ replaceQuery: updateQueryFactory("replace"),
93
+ pushAnchor: pushAnchor,
94
+ reload,
95
+ setBlockMessage,
96
+ getBlockMessage,
97
+ unblock,
98
+ ...historyOverridden({
99
+ ...browserHistory,
100
+ push,
101
+ replace
102
+ })
103
+ };
104
+ }
105
+
106
+ /**
107
+ * Override history for standalone micro apps.
108
+ *
109
+ * when `push` or `replace` to other apps, force page refresh.
110
+ */
111
+ function historyOverridden(browserHistory) {
112
+ const {
113
+ push: originalPush,
114
+ replace: originalReplace
115
+ } = browserHistory;
116
+ function updateFactory(method) {
117
+ return function update(path, state, callback) {
118
+ let pathname;
119
+ const pathIsString = typeof path === "string";
120
+ if (pathIsString) {
121
+ pathname = (0, _history.parsePath)(path).pathname;
122
+ } else {
123
+ pathname = path.pathname;
124
+ }
125
+
126
+ // When history.push or history.replace is performing with an absolute pathname,
127
+ // force load the target page when it is a page of an outside app.
128
+ if (typeof pathname === "string" && pathname.startsWith("/") && (0, _matchStoryboard.isOutsideApp)((0, _Runtime._internalApiMatchStoryboard)(pathname))) {
129
+ // Going to outside apps.
130
+ return location[method === "push" ? "assign" : "replace"](pathIsString ? (0, _getBasePath.getBasePath)() + path.substring(1) : browserHistory.createHref(path));
131
+ }
132
+ return (method === "push" ? originalPush : originalReplace)(path, state, callback);
133
+ };
134
+ }
135
+ return {
136
+ push: updateFactory("push"),
137
+ replace: updateFactory("replace")
138
+ };
139
+ }
140
+ //# sourceMappingURL=historyExtended.js.map