@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,105 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.hasInstalledApp = hasInstalledApp;
7
+ exports.preCheckInstalledApps = preCheckInstalledApps;
8
+ exports.waitForCheckingApps = waitForCheckingApps;
9
+ var _storyboard = require("@next-core/utils/storyboard");
10
+ var _microAppStandaloneSdk = require("@next-api-sdk/micro-app-standalone-sdk");
11
+ var _compareVersions = require("compare-versions");
12
+ var _collectMemberCallUsage = require("./compute/collectMemberCallUsage.js");
13
+ var _Runtime = require("./Runtime.js");
14
+ const checkingApps = new Map();
15
+ const checkedApps = new Map();
16
+ function preCheckInstalledApps(storyboard) {
17
+ if (window.STANDALONE_MICRO_APPS && !window.NO_AUTH_GUARD) {
18
+ const appIds = scanInstalledAppsUsage(storyboard);
19
+ const searchIds = [];
20
+ for (const appId of appIds) {
21
+ // Do not check these apps already checking or in bootstrap.
22
+ if (!checkingApps.has(appId) && !(0, _Runtime._internalApiGetAppInBootstrapData)(appId)) {
23
+ searchIds.push(appId);
24
+ }
25
+ }
26
+ if (searchIds.length === 0) {
27
+ return;
28
+ }
29
+ const promise = (0, _microAppStandaloneSdk.RuntimeApi_searchMicroAppStandalone)({
30
+ query: {
31
+ appId: {
32
+ $in: searchIds
33
+ }
34
+ },
35
+ fields: ["appId", "currentVersion", "installStatus"]
36
+ }).catch(error => {
37
+ // Allow search micro app to fail, and
38
+ // make it not crash when the backend service is not updated.
39
+ // eslint-disable-next-line no-console
40
+ console.error("Get off site standalone micro-apps failed", error);
41
+ });
42
+ for (const appId of searchIds) {
43
+ checkingApps.set(appId, promise.then(result => {
44
+ var _result$list;
45
+ const app = result === null || result === void 0 ? void 0 : (_result$list = result.list) === null || _result$list === void 0 ? void 0 : _result$list.find(item => item.appId === appId);
46
+ const checkedApp = app ? {
47
+ ...app,
48
+ id: appId
49
+ } : undefined;
50
+ checkedApps.set(appId, checkedApp);
51
+ return checkedApp;
52
+ }));
53
+ }
54
+ }
55
+ }
56
+ function waitForCheckingApps(appIds) {
57
+ return Promise.all(appIds.map(appId => checkingApps.get(appId)));
58
+ }
59
+ function hasInstalledApp(appId, matchVersion) {
60
+ // First, check whether the app is in bootstrap already.
61
+ let app = (0, _Runtime._internalApiGetAppInBootstrapData)(appId);
62
+ if (!app && window.STANDALONE_MICRO_APPS) {
63
+ app = checkedApps.get(appId);
64
+ }
65
+ if (!app || app.installStatus === "running") {
66
+ return false;
67
+ }
68
+ // Todo: `currentVersion` maybe `""`
69
+ if (!matchVersion || !app.currentVersion) {
70
+ return true;
71
+ }
72
+ // Valid `matchVersion`:
73
+ // >=1.2.3
74
+ // >1.2.3
75
+ // =1.2.3
76
+ // <=1.2.3
77
+ // <1.2.3
78
+ const matches = matchVersion.match(/^([><]=?|=)(.*)$/);
79
+ try {
80
+ if (!matches) {
81
+ throw new TypeError(`Invalid match version: ${matchVersion}`);
82
+ }
83
+ return (0, _compareVersions.compare)(app.currentVersion, matches[2], matches[1]);
84
+ } catch (error) {
85
+ // eslint-disable-next-line no-console
86
+ console.error(error);
87
+ }
88
+ return false;
89
+ }
90
+ function scanInstalledAppsUsage(storyboard) {
91
+ var _storyboard$meta;
92
+ const usage = {
93
+ usedArgs: new Set()
94
+ };
95
+ // `INSTALLED_APPS.has(...)` is not available in storyboard functions
96
+ const {
97
+ customTemplates,
98
+ menus
99
+ } = (_storyboard$meta = storyboard.meta) !== null && _storyboard$meta !== void 0 ? _storyboard$meta : {};
100
+ (0, _storyboard.traverseStoryboardExpressions)([storyboard.routes, customTemplates, menus], (node, parent) => {
101
+ (0, _collectMemberCallUsage.collectInstalledAppsHasUsage)(usage, node, parent);
102
+ }, "INSTALLED_APPS");
103
+ return [...usage.usedArgs];
104
+ }
105
+ //# sourceMappingURL=checkInstalledApps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkInstalledApps.js","names":["_storyboard","require","_microAppStandaloneSdk","_compareVersions","_collectMemberCallUsage","_Runtime","checkingApps","Map","checkedApps","preCheckInstalledApps","storyboard","window","STANDALONE_MICRO_APPS","NO_AUTH_GUARD","appIds","scanInstalledAppsUsage","searchIds","appId","has","_internalApiGetAppInBootstrapData","push","length","promise","RuntimeApi_searchMicroAppStandalone","query","$in","fields","catch","error","console","set","then","result","_result$list","app","list","find","item","checkedApp","id","undefined","waitForCheckingApps","Promise","all","map","get","hasInstalledApp","matchVersion","installStatus","currentVersion","matches","match","TypeError","compare","_storyboard$meta","usage","usedArgs","Set","customTemplates","menus","meta","traverseStoryboardExpressions","routes","node","parent","collectInstalledAppsHasUsage"],"sources":["../../../src/internal/checkInstalledApps.ts"],"sourcesContent":["import type { MicroApp, Storyboard } from \"@next-core/types\";\nimport { traverseStoryboardExpressions } from \"@next-core/utils/storyboard\";\nimport { RuntimeApi_searchMicroAppStandalone } from \"@next-api-sdk/micro-app-standalone-sdk\";\nimport { type CompareOperator, compare } from \"compare-versions\";\nimport {\n MemberCallUsage,\n collectInstalledAppsHasUsage,\n} from \"./compute/collectMemberCallUsage.js\";\nimport { _internalApiGetAppInBootstrapData } from \"./Runtime.js\";\n\ntype AppForCheck = Pick<MicroApp, \"id\" | \"currentVersion\" | \"installStatus\">;\n\nconst checkingApps = new Map<string, Promise<AppForCheck | undefined>>();\nconst checkedApps = new Map<string, AppForCheck | undefined>();\n\nexport function preCheckInstalledApps(storyboard: Storyboard) {\n if (window.STANDALONE_MICRO_APPS && !window.NO_AUTH_GUARD) {\n const appIds = scanInstalledAppsUsage(storyboard);\n const searchIds: string[] = [];\n for (const appId of appIds) {\n // Do not check these apps already checking or in bootstrap.\n if (\n !checkingApps.has(appId) &&\n !_internalApiGetAppInBootstrapData(appId)\n ) {\n searchIds.push(appId);\n }\n }\n if (searchIds.length === 0) {\n return;\n }\n const promise = RuntimeApi_searchMicroAppStandalone({\n query: { appId: { $in: searchIds } },\n fields: [\"appId\", \"currentVersion\", \"installStatus\"],\n }).catch((error) => {\n // Allow search micro app to fail, and\n // make it not crash when the backend service is not updated.\n // eslint-disable-next-line no-console\n console.error(\"Get off site standalone micro-apps failed\", error);\n });\n for (const appId of searchIds) {\n checkingApps.set(\n appId,\n promise.then((result) => {\n const app = result?.list?.find((item) => item.appId === appId);\n const checkedApp = app\n ? {\n ...app,\n id: appId,\n }\n : undefined;\n checkedApps.set(appId, checkedApp);\n return checkedApp;\n })\n );\n }\n }\n}\n\nexport function waitForCheckingApps(appIds: string[]) {\n return Promise.all(appIds.map((appId) => checkingApps.get(appId)));\n}\n\nexport function hasInstalledApp(appId: string, matchVersion?: string): boolean {\n // First, check whether the app is in bootstrap already.\n let app = _internalApiGetAppInBootstrapData(appId) as AppForCheck | undefined;\n if (!app && window.STANDALONE_MICRO_APPS) {\n app = checkedApps.get(appId);\n }\n if (!app || app.installStatus === \"running\") {\n return false;\n }\n // Todo: `currentVersion` maybe `\"\"`\n if (!matchVersion || !app.currentVersion) {\n return true;\n }\n // Valid `matchVersion`:\n // >=1.2.3\n // >1.2.3\n // =1.2.3\n // <=1.2.3\n // <1.2.3\n const matches = matchVersion.match(/^([><]=?|=)(.*)$/);\n try {\n if (!matches) {\n throw new TypeError(`Invalid match version: ${matchVersion}`);\n }\n return compare(\n app.currentVersion,\n matches[2],\n matches[1] as CompareOperator\n );\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n }\n return false;\n}\n\nfunction scanInstalledAppsUsage(storyboard: Storyboard) {\n const usage: MemberCallUsage = {\n usedArgs: new Set(),\n };\n // `INSTALLED_APPS.has(...)` is not available in storyboard functions\n const { customTemplates, menus } = storyboard.meta ?? {};\n traverseStoryboardExpressions(\n [storyboard.routes, customTemplates, menus],\n (node, parent) => {\n collectInstalledAppsHasUsage(usage, node, parent);\n },\n \"INSTALLED_APPS\"\n );\n return [...usage.usedArgs];\n}\n"],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.checkPermissions = checkPermissions;
7
+ exports.preCheckPermissions = preCheckPermissions;
8
+ exports.preCheckPermissionsForAny = preCheckPermissionsForAny;
9
+ exports.preCheckPermissionsForBrickOrRoute = preCheckPermissionsForBrickOrRoute;
10
+ exports.resetPermissionPreChecks = resetPermissionPreChecks;
11
+ exports.validatePermissions = validatePermissions;
12
+ var _lodash = require("lodash");
13
+ var _storyboard = require("@next-core/utils/storyboard");
14
+ var _microAppSdk = require("@next-api-sdk/micro-app-sdk");
15
+ var _auth = require("../auth.js");
16
+ var _computeRealValue = require("./compute/computeRealValue.js");
17
+ const checkedPermissions = [];
18
+ const permissionMap = new Map();
19
+ function preCheckPermissions(storyboard) {
20
+ if ((0, _auth.isLoggedIn)() && !(0, _auth.getAuth)().isAdmin) {
21
+ const usedActions = (0, _storyboard.scanPermissionActionsInStoryboard)(storyboard);
22
+ return validatePermissions(usedActions);
23
+ }
24
+ }
25
+ async function preCheckPermissionsForBrickOrRoute(container, runtimeContext) {
26
+ if ((0, _auth.isLoggedIn)() && !(0, _auth.getAuth)().isAdmin && Array.isArray(container.permissionsPreCheck)) {
27
+ const actions = await (0, _computeRealValue.asyncComputeRealValue)(container.permissionsPreCheck, runtimeContext);
28
+ return validatePermissions(actions);
29
+ }
30
+ }
31
+ function preCheckPermissionsForAny(data) {
32
+ if ((0, _auth.isLoggedIn)() && !(0, _auth.getAuth)().isAdmin) {
33
+ const usedActions = (0, _storyboard.scanPermissionActionsInAny)(data);
34
+ return validatePermissions(usedActions);
35
+ }
36
+ }
37
+ async function validatePermissions(usedActions) {
38
+ // Do not request known actions.
39
+ const actions = (0, _lodash.difference)(usedActions, [...checkedPermissions]);
40
+ if (actions.length === 0) {
41
+ return;
42
+ }
43
+ checkedPermissions.push(...actions);
44
+ try {
45
+ const result = await (0, _microAppSdk.PermissionApi_validatePermissions)({
46
+ actions
47
+ });
48
+ for (const item of result.actions) {
49
+ permissionMap.set(item.action, item.authorizationStatus);
50
+ if (item.authorizationStatus === "undefined") {
51
+ // eslint-disable-next-line no-console
52
+ console.error(`Undefined permission action: "${item.action}"`);
53
+ }
54
+ }
55
+ } catch (error) {
56
+ // Allow pre-check to fail, and
57
+ // make it not crash when the backend service is not updated.
58
+ // eslint-disable-next-line no-console
59
+ console.error("Pre-check permissions failed", error);
60
+ }
61
+ }
62
+
63
+ /**
64
+ * Check the current logged-in user whether to have all
65
+ * permissions of actions passed to it.
66
+ *
67
+ * @param actions - Required permission actions.
68
+ */
69
+ function checkPermissions(...actions) {
70
+ if (!(0, _auth.isLoggedIn)()) {
71
+ return false;
72
+ }
73
+ if ((0, _auth.getAuth)().isAdmin) {
74
+ return true;
75
+ }
76
+ for (const action of actions) {
77
+ // Only **exclusively authorized** permissions are ok.
78
+ // Those scenarios below will fail:
79
+ // - unauthorized actions (pre-check results)
80
+ // - undefined actions (pre-check results)
81
+ // - Un-pre-checked or pre-check failed
82
+ switch (permissionMap.get(action)) {
83
+ case "unauthorized":
84
+ case "undefined":
85
+ return false;
86
+ case undefined:
87
+ // eslint-disable-next-line no-console
88
+ console.error(`Un-checked permission action: "${action}", please make sure the permission to check is defined in permissionsPreCheck.`);
89
+ return false;
90
+ }
91
+ }
92
+ return true;
93
+ }
94
+
95
+ /**
96
+ * Reset permission pre-checks after logged-out.
97
+ */
98
+ function resetPermissionPreChecks() {
99
+ checkedPermissions.length = 0;
100
+ permissionMap.clear();
101
+ }
102
+ //# sourceMappingURL=checkPermissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkPermissions.js","names":["_lodash","require","_storyboard","_microAppSdk","_auth","_computeRealValue","checkedPermissions","permissionMap","Map","preCheckPermissions","storyboard","isLoggedIn","getAuth","isAdmin","usedActions","scanPermissionActionsInStoryboard","validatePermissions","preCheckPermissionsForBrickOrRoute","container","runtimeContext","Array","isArray","permissionsPreCheck","actions","asyncComputeRealValue","preCheckPermissionsForAny","data","scanPermissionActionsInAny","difference","length","push","result","PermissionApi_validatePermissions","item","set","action","authorizationStatus","console","error","checkPermissions","get","undefined","resetPermissionPreChecks","clear"],"sources":["../../../src/internal/checkPermissions.ts"],"sourcesContent":["import { difference } from \"lodash\";\nimport {\n scanPermissionActionsInAny,\n scanPermissionActionsInStoryboard,\n} from \"@next-core/utils/storyboard\";\nimport type { BrickConf, RouteConf, Storyboard } from \"@next-core/types\";\nimport { PermissionApi_validatePermissions } from \"@next-api-sdk/micro-app-sdk\";\nimport { getAuth, isLoggedIn } from \"../auth.js\";\nimport type { RuntimeContext } from \"./interfaces.js\";\nimport { asyncComputeRealValue } from \"./compute/computeRealValue.js\";\n\ntype PermissionStatus = \"authorized\" | \"unauthorized\" | \"undefined\";\n\nconst checkedPermissions: string[] = [];\nconst permissionMap = new Map<string, PermissionStatus>();\n\nexport function preCheckPermissions(\n storyboard: Storyboard\n): Promise<void> | undefined {\n if (isLoggedIn() && !getAuth().isAdmin) {\n const usedActions = scanPermissionActionsInStoryboard(storyboard);\n return validatePermissions(usedActions);\n }\n}\n\nexport async function preCheckPermissionsForBrickOrRoute(\n container: BrickConf | RouteConf,\n runtimeContext: RuntimeContext\n) {\n if (\n isLoggedIn() &&\n !getAuth().isAdmin &&\n Array.isArray(container.permissionsPreCheck)\n ) {\n const actions = (await asyncComputeRealValue(\n container.permissionsPreCheck,\n runtimeContext\n )) as string[];\n return validatePermissions(actions);\n }\n}\n\nexport function preCheckPermissionsForAny(\n data: unknown\n): Promise<void> | undefined {\n if (isLoggedIn() && !getAuth().isAdmin) {\n const usedActions = scanPermissionActionsInAny(data);\n return validatePermissions(usedActions);\n }\n}\n\nexport async function validatePermissions(\n usedActions: string[]\n): Promise<void> {\n // Do not request known actions.\n const actions = difference(usedActions, [...checkedPermissions]);\n if (actions.length === 0) {\n return;\n }\n checkedPermissions.push(...actions);\n try {\n const result = await PermissionApi_validatePermissions({ actions });\n for (const item of result.actions!) {\n permissionMap.set(item.action!, item.authorizationStatus!);\n if (item.authorizationStatus === \"undefined\") {\n // eslint-disable-next-line no-console\n console.error(`Undefined permission action: \"${item.action}\"`);\n }\n }\n } catch (error) {\n // Allow pre-check to fail, and\n // make it not crash when the backend service is not updated.\n // eslint-disable-next-line no-console\n console.error(\"Pre-check permissions failed\", error);\n }\n}\n\n/**\n * Check the current logged-in user whether to have all\n * permissions of actions passed to it.\n *\n * @param actions - Required permission actions.\n */\nexport function checkPermissions(...actions: string[]): boolean {\n if (!isLoggedIn()) {\n return false;\n }\n\n if (getAuth().isAdmin) {\n return true;\n }\n\n for (const action of actions) {\n // Only **exclusively authorized** permissions are ok.\n // Those scenarios below will fail:\n // - unauthorized actions (pre-check results)\n // - undefined actions (pre-check results)\n // - Un-pre-checked or pre-check failed\n switch (permissionMap.get(action)) {\n case \"unauthorized\":\n case \"undefined\":\n return false;\n case undefined:\n // eslint-disable-next-line no-console\n console.error(\n `Un-checked permission action: \"${action}\", please make sure the permission to check is defined in permissionsPreCheck.`\n );\n return false;\n }\n }\n return true;\n}\n\n/**\n * Reset permission pre-checks after logged-out.\n */\nexport function resetPermissionPreChecks(): void {\n checkedPermissions.length = 0;\n permissionMap.clear();\n}\n"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.storyboardFunctions = exports.registerStoryboardFunctions = exports.checkPermissionsUsage = void 0;
7
+ var _StoryboardFunctionRegistry = require("../../StoryboardFunctionRegistry.js");
8
+ const {
9
+ storyboardFunctions,
10
+ registerStoryboardFunctions,
11
+ checkPermissionsUsage
12
+ } = (0, _StoryboardFunctionRegistry.StoryboardFunctionRegistryFactory)();
13
+ exports.checkPermissionsUsage = checkPermissionsUsage;
14
+ exports.registerStoryboardFunctions = registerStoryboardFunctions;
15
+ exports.storyboardFunctions = storyboardFunctions;
16
+ //# sourceMappingURL=StoryboardFunctions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StoryboardFunctions.js","names":["_StoryboardFunctionRegistry","require","storyboardFunctions","registerStoryboardFunctions","checkPermissionsUsage","StoryboardFunctionRegistryFactory","exports"],"sources":["../../../../src/internal/compute/StoryboardFunctions.ts"],"sourcesContent":["import { StoryboardFunctionRegistryFactory } from \"../../StoryboardFunctionRegistry.js\";\n\nexport const {\n storyboardFunctions,\n registerStoryboardFunctions,\n checkPermissionsUsage,\n} = StoryboardFunctionRegistryFactory();\n"],"mappings":";;;;;;AAAA,IAAAA,2BAAA,GAAAC,OAAA;AAEO,MAAM;EACXC,mBAAmB;EACnBC,2BAA2B;EAC3BC;AACF,CAAC,GAAG,IAAAC,6DAAiC,GAAE;AAACC,OAAA,CAAAF,qBAAA,GAAAA,qBAAA;AAAAE,OAAA,CAAAH,2BAAA,GAAAA,2BAAA;AAAAG,OAAA,CAAAJ,mBAAA,GAAAA,mBAAA"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.registerWidgetFunctions = registerWidgetFunctions;
7
+ exports.widgetFunctions = void 0;
8
+ var _StoryboardFunctionRegistry = require("../../StoryboardFunctionRegistry.js");
9
+ const widgetFunctionRegistry = new Map();
10
+ const widgetFunctions = new Proxy(Object.freeze({}), {
11
+ get(target, key) {
12
+ return widgetFunctionRegistry.get(key);
13
+ }
14
+ });
15
+ exports.widgetFunctions = widgetFunctions;
16
+ function registerWidgetFunctions(widgetId, functions, widgetVersion) {
17
+ if (widgetFunctionRegistry.has(widgetId)) {
18
+ // eslint-disable-next-line no-console
19
+ throw new Error(`Widget functions of "${widgetId}" already registered`);
20
+ }
21
+ const {
22
+ storyboardFunctions,
23
+ registerStoryboardFunctions
24
+ } = (0, _StoryboardFunctionRegistry.StoryboardFunctionRegistryFactory)({
25
+ widgetId,
26
+ widgetVersion
27
+ });
28
+ widgetFunctionRegistry.set(widgetId, storyboardFunctions);
29
+ registerStoryboardFunctions(functions);
30
+ }
31
+ //# sourceMappingURL=WidgetFunctions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidgetFunctions.js","names":["_StoryboardFunctionRegistry","require","widgetFunctionRegistry","Map","widgetFunctions","Proxy","Object","freeze","get","target","key","exports","registerWidgetFunctions","widgetId","functions","widgetVersion","has","Error","storyboardFunctions","registerStoryboardFunctions","StoryboardFunctionRegistryFactory","set"],"sources":["../../../../src/internal/compute/WidgetFunctions.ts"],"sourcesContent":["import { StoryboardFunction } from \"@next-core/types\";\nimport {\n ReadonlyStoryboardFunctions,\n StoryboardFunctionRegistryFactory,\n} from \"../../StoryboardFunctionRegistry.js\";\n\nconst widgetFunctionRegistry = new Map<string, ReadonlyStoryboardFunctions>();\n\nexport const widgetFunctions = new Proxy(Object.freeze({}), {\n get(target, key: string) {\n return widgetFunctionRegistry.get(key);\n },\n}) as Readonly<Record<string, ReadonlyStoryboardFunctions>>;\n\nexport function registerWidgetFunctions(\n widgetId: string,\n functions: StoryboardFunction[],\n widgetVersion?: string\n): void {\n if (widgetFunctionRegistry.has(widgetId)) {\n // eslint-disable-next-line no-console\n throw new Error(`Widget functions of \"${widgetId}\" already registered`);\n }\n const { storyboardFunctions, registerStoryboardFunctions } =\n StoryboardFunctionRegistryFactory({ widgetId, widgetVersion });\n widgetFunctionRegistry.set(widgetId, storyboardFunctions);\n registerStoryboardFunctions(functions);\n}\n"],"mappings":";;;;;;;AACA,IAAAA,2BAAA,GAAAC,OAAA;AAKA,MAAMC,sBAAsB,GAAG,IAAIC,GAAG,EAAuC;AAEtE,MAAMC,eAAe,GAAG,IAAIC,KAAK,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;EAC1DC,GAAGA,CAACC,MAAM,EAAEC,GAAW,EAAE;IACvB,OAAOR,sBAAsB,CAACM,GAAG,CAACE,GAAG,CAAC;EACxC;AACF,CAAC,CAA0D;AAACC,OAAA,CAAAP,eAAA,GAAAA,eAAA;AAErD,SAASQ,uBAAuBA,CACrCC,QAAgB,EAChBC,SAA+B,EAC/BC,aAAsB,EAChB;EACN,IAAIb,sBAAsB,CAACc,GAAG,CAACH,QAAQ,CAAC,EAAE;IACxC;IACA,MAAM,IAAII,KAAK,CAAE,wBAAuBJ,QAAS,sBAAqB,CAAC;EACzE;EACA,MAAM;IAAEK,mBAAmB;IAAEC;EAA4B,CAAC,GACxD,IAAAC,6DAAiC,EAAC;IAAEP,QAAQ;IAAEE;EAAc,CAAC,CAAC;EAChEb,sBAAsB,CAACmB,GAAG,CAACR,QAAQ,EAAEK,mBAAmB,CAAC;EACzDC,2BAA2B,CAACL,SAAS,CAAC;AACxC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.registerWidgetI18n = registerWidgetI18n;
7
+ exports.widgetI18nFactory = widgetI18nFactory;
8
+ var _i18n = require("@next-core/i18n");
9
+ var _registerAppI18n = require("../registerAppI18n.js");
10
+ // import i18next, { getFixedT, TFunction } from "i18next";
11
+
12
+ function registerWidgetI18n(widgetId, i18nData) {
13
+ const ns = (0, _registerAppI18n.getI18nNamespace)("widget", widgetId);
14
+ Object.entries(i18nData).forEach(([lang, resources]) => {
15
+ _i18n.i18n.addResourceBundle(lang, ns, resources);
16
+ });
17
+ }
18
+ function widgetI18nFactory(widgetId) {
19
+ return _i18n.i18n.getFixedT(null, (0, _registerAppI18n.getI18nNamespace)("widget", widgetId));
20
+ }
21
+ //# sourceMappingURL=WidgetI18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidgetI18n.js","names":["_i18n","require","_registerAppI18n","registerWidgetI18n","widgetId","i18nData","ns","getI18nNamespace","Object","entries","forEach","lang","resources","i18n","addResourceBundle","widgetI18nFactory","getFixedT"],"sources":["../../../../src/internal/compute/WidgetI18n.ts"],"sourcesContent":["// import i18next, { getFixedT, TFunction } from \"i18next\";\nimport { i18n } from \"@next-core/i18n\";\nimport type { MetaI18n } from \"@next-core/types\";\nimport { getI18nNamespace } from \"../registerAppI18n.js\";\n\nexport function registerWidgetI18n(widgetId: string, i18nData: MetaI18n): void {\n const ns = getI18nNamespace(\"widget\", widgetId);\n Object.entries(i18nData).forEach(([lang, resources]) => {\n i18n.addResourceBundle(lang, ns, resources);\n });\n}\n\nexport function widgetI18nFactory(widgetId: string) {\n return i18n.getFixedT(null, getI18nNamespace(\"widget\", widgetId));\n}\n"],"mappings":";;;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,gBAAA,GAAAD,OAAA;AAHA;;AAKO,SAASE,kBAAkBA,CAACC,QAAgB,EAAEC,QAAkB,EAAQ;EAC7E,MAAMC,EAAE,GAAG,IAAAC,iCAAgB,EAAC,QAAQ,EAAEH,QAAQ,CAAC;EAC/CI,MAAM,CAACC,OAAO,CAACJ,QAAQ,CAAC,CAACK,OAAO,CAAC,CAAC,CAACC,IAAI,EAAEC,SAAS,CAAC,KAAK;IACtDC,UAAI,CAACC,iBAAiB,CAACH,IAAI,EAAEL,EAAE,EAAEM,SAAS,CAAC;EAC7C,CAAC,CAAC;AACJ;AAEO,SAASG,iBAAiBA,CAACX,QAAgB,EAAE;EAClD,OAAOS,UAAI,CAACG,SAAS,CAAC,IAAI,EAAE,IAAAT,iCAAgB,EAAC,QAAQ,EAAEH,QAAQ,CAAC,CAAC;AACnE"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.asyncCheckBrickIf = asyncCheckBrickIf;
7
+ exports.asyncCheckIf = asyncCheckIf;
8
+ exports.checkIf = checkIf;
9
+ exports.checkIfByTransform = checkIfByTransform;
10
+ exports.checkIfOfComputed = checkIfOfComputed;
11
+ var _general = require("@next-core/utils/general");
12
+ var _computeRealValue = require("./computeRealValue.js");
13
+ var _evaluate = require("./evaluate.js");
14
+ var _resolveData = require("../data/resolveData.js");
15
+ async function asyncCheckIf(ifContainer, runtimeContext) {
16
+ return !(0, _general.hasOwnProperty)(ifContainer, "if") || !!(typeof ifContainer.if === "string" || (0, _evaluate.isPreEvaluated)(ifContainer.if) ? await (0, _computeRealValue.asyncComputeRealValue)(ifContainer.if, runtimeContext) : ifContainer.if);
17
+ }
18
+ function checkIf(ifContainer, runtimeContext) {
19
+ return !(0, _general.hasOwnProperty)(ifContainer, "if") || !!(typeof ifContainer.if === "string" || (0, _evaluate.isPreEvaluated)(ifContainer.if) ? (0, _computeRealValue.computeRealValue)(ifContainer.if, runtimeContext) : ifContainer.if);
20
+ }
21
+ function checkIfOfComputed(ifContainer) {
22
+ return !(0, _general.hasOwnProperty)(ifContainer, "if") || !!ifContainer.if;
23
+ }
24
+ async function asyncCheckBrickIf(brickConf, runtimeContext) {
25
+ if ((0, _general.isObject)(brickConf.if) && !(0, _evaluate.isPreEvaluated)(brickConf.if)) {
26
+ const resolved = await (0, _resolveData.resolveData)(brickConf.if, runtimeContext);
27
+ return checkIfOfComputed(resolved);
28
+ }
29
+ return asyncCheckIf(brickConf, runtimeContext);
30
+ }
31
+ function checkIfByTransform(ifContainer, data) {
32
+ return checkIf(ifContainer, {
33
+ data
34
+ });
35
+ }
36
+ //# sourceMappingURL=checkIf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkIf.js","names":["_general","require","_computeRealValue","_evaluate","_resolveData","asyncCheckIf","ifContainer","runtimeContext","hasOwnProperty","if","isPreEvaluated","asyncComputeRealValue","checkIf","computeRealValue","checkIfOfComputed","asyncCheckBrickIf","brickConf","isObject","resolved","resolveData","checkIfByTransform","data"],"sources":["../../../../src/internal/compute/checkIf.ts"],"sourcesContent":["import { hasOwnProperty, isObject } from \"@next-core/utils/general\";\nimport type { BrickConf, ResolveConf } from \"@next-core/types\";\nimport { asyncComputeRealValue, computeRealValue } from \"./computeRealValue.js\";\nimport { isPreEvaluated } from \"./evaluate.js\";\nimport { resolveData } from \"../data/resolveData.js\";\nimport type { RuntimeContext } from \"../interfaces.js\";\n\n/**\n * 包含 `if` 条件判断的对象。\n */\nexport interface IfContainer {\n /**\n * 条件判断,可以为表达式字符串。\n *\n * @example\n *\n * ```yaml\n * - brick: your.any-brick\n * if: '<% FLAGS[\"your-feature-flag\"] %>'\n * ```\n */\n if?: unknown;\n}\n\nexport async function asyncCheckIf(\n ifContainer: IfContainer,\n runtimeContext: RuntimeContext\n): Promise<boolean> {\n return (\n !hasOwnProperty(ifContainer, \"if\") ||\n !!(typeof ifContainer.if === \"string\" || isPreEvaluated(ifContainer.if)\n ? await asyncComputeRealValue(ifContainer.if, runtimeContext)\n : ifContainer.if)\n );\n}\n\nexport function checkIf(\n ifContainer: IfContainer,\n runtimeContext: RuntimeContext\n): boolean {\n return (\n !hasOwnProperty(ifContainer, \"if\") ||\n !!(typeof ifContainer.if === \"string\" || isPreEvaluated(ifContainer.if)\n ? computeRealValue(ifContainer.if, runtimeContext)\n : ifContainer.if)\n );\n}\n\nexport function checkIfOfComputed(ifContainer: IfContainer): boolean {\n return !hasOwnProperty(ifContainer, \"if\") || !!ifContainer.if;\n}\n\nexport async function asyncCheckBrickIf(\n brickConf: BrickConf,\n runtimeContext: RuntimeContext\n): Promise<boolean> {\n if (isObject(brickConf.if) && !isPreEvaluated(brickConf.if)) {\n const resolved = (await resolveData(\n brickConf.if as ResolveConf,\n runtimeContext\n )) as { if?: unknown };\n return checkIfOfComputed(resolved);\n }\n return asyncCheckIf(brickConf, runtimeContext);\n}\n\nexport function checkIfByTransform(ifContainer: IfContainer, data: unknown) {\n return checkIf(ifContainer, { data } as RuntimeContext);\n}\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAoBO,eAAeI,YAAYA,CAChCC,WAAwB,EACxBC,cAA8B,EACZ;EAClB,OACE,CAAC,IAAAC,uBAAc,EAACF,WAAW,EAAE,IAAI,CAAC,IAClC,CAAC,EAAE,OAAOA,WAAW,CAACG,EAAE,KAAK,QAAQ,IAAI,IAAAC,wBAAc,EAACJ,WAAW,CAACG,EAAE,CAAC,GACnE,MAAM,IAAAE,uCAAqB,EAACL,WAAW,CAACG,EAAE,EAAEF,cAAc,CAAC,GAC3DD,WAAW,CAACG,EAAE,CAAC;AAEvB;AAEO,SAASG,OAAOA,CACrBN,WAAwB,EACxBC,cAA8B,EACrB;EACT,OACE,CAAC,IAAAC,uBAAc,EAACF,WAAW,EAAE,IAAI,CAAC,IAClC,CAAC,EAAE,OAAOA,WAAW,CAACG,EAAE,KAAK,QAAQ,IAAI,IAAAC,wBAAc,EAACJ,WAAW,CAACG,EAAE,CAAC,GACnE,IAAAI,kCAAgB,EAACP,WAAW,CAACG,EAAE,EAAEF,cAAc,CAAC,GAChDD,WAAW,CAACG,EAAE,CAAC;AAEvB;AAEO,SAASK,iBAAiBA,CAACR,WAAwB,EAAW;EACnE,OAAO,CAAC,IAAAE,uBAAc,EAACF,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAACA,WAAW,CAACG,EAAE;AAC/D;AAEO,eAAeM,iBAAiBA,CACrCC,SAAoB,EACpBT,cAA8B,EACZ;EAClB,IAAI,IAAAU,iBAAQ,EAACD,SAAS,CAACP,EAAE,CAAC,IAAI,CAAC,IAAAC,wBAAc,EAACM,SAAS,CAACP,EAAE,CAAC,EAAE;IAC3D,MAAMS,QAAQ,GAAI,MAAM,IAAAC,wBAAW,EACjCH,SAAS,CAACP,EAAE,EACZF,cAAc,CACM;IACtB,OAAOO,iBAAiB,CAACI,QAAQ,CAAC;EACpC;EACA,OAAOb,YAAY,CAACW,SAAS,EAAET,cAAc,CAAC;AAChD;AAEO,SAASa,kBAAkBA,CAACd,WAAwB,EAAEe,IAAa,EAAE;EAC1E,OAAOT,OAAO,CAACN,WAAW,EAAE;IAAEe;EAAK,CAAC,CAAmB;AACzD"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.collectInstalledAppsHasUsage = exports.collectAppGetMenuUsage = void 0;
7
+ function collectMemberCallUsageFactory(object, property) {
8
+ return function collectMemberCallUsage(usage, node, parent) {
9
+ if (node.name === object) {
10
+ const memberParent = parent[parent.length - 1];
11
+ const callParent = parent[parent.length - 2];
12
+ if ((callParent === null || callParent === void 0 ? void 0 : callParent.node.type) === "CallExpression" && (callParent === null || callParent === void 0 ? void 0 : callParent.key) === "callee" && (memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === "MemberExpression" && memberParent.key === "object" && (memberParent.node.computed ? memberParent.node.property.type === "Literal" && memberParent.node.property.value === property : memberParent.node.property.type === "Identifier" && memberParent.node.property.name === property)) {
13
+ const args = callParent.node.arguments;
14
+ if (args.length > 0) {
15
+ const firstArg = args[0];
16
+ if (firstArg.type === "Literal" && typeof firstArg.value === "string") {
17
+ usage.usedArgs.add(firstArg.value);
18
+ } else {
19
+ usage.hasNonStaticUsage = true;
20
+ }
21
+ }
22
+ }
23
+ }
24
+ };
25
+ }
26
+ const collectAppGetMenuUsage = collectMemberCallUsageFactory("APP", "getMenu");
27
+ exports.collectAppGetMenuUsage = collectAppGetMenuUsage;
28
+ const collectInstalledAppsHasUsage = collectMemberCallUsageFactory("INSTALLED_APPS", "has");
29
+ exports.collectInstalledAppsHasUsage = collectInstalledAppsHasUsage;
30
+ //# sourceMappingURL=collectMemberCallUsage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collectMemberCallUsage.js","names":["collectMemberCallUsageFactory","object","property","collectMemberCallUsage","usage","node","parent","name","memberParent","length","callParent","type","key","computed","value","args","arguments","firstArg","usedArgs","add","hasNonStaticUsage","collectAppGetMenuUsage","exports","collectInstalledAppsHasUsage"],"sources":["../../../../src/internal/compute/collectMemberCallUsage.ts"],"sourcesContent":["import type { Identifier } from \"@babel/types\";\nimport type { EstreeLiteral, EstreeParent } from \"@next-core/cook\";\n\nexport interface MemberCallUsage {\n usedArgs: Set<string>;\n hasNonStaticUsage?: boolean;\n}\n\nfunction collectMemberCallUsageFactory(object: string, property: string) {\n return function collectMemberCallUsage(\n usage: MemberCallUsage,\n node: Identifier,\n parent: EstreeParent\n ) {\n if (node.name === object) {\n const memberParent = parent[parent.length - 1];\n const callParent = parent[parent.length - 2];\n if (\n callParent?.node.type === \"CallExpression\" &&\n callParent?.key === \"callee\" &&\n memberParent?.node.type === \"MemberExpression\" &&\n memberParent.key === \"object\" &&\n (memberParent.node.computed\n ? (memberParent.node.property as any).type === \"Literal\" &&\n (memberParent.node.property as any).value === property\n : memberParent.node.property.type === \"Identifier\" &&\n memberParent.node.property.name === property)\n ) {\n const args = callParent.node.arguments as unknown as EstreeLiteral[];\n if (args.length > 0) {\n const firstArg = args[0];\n if (\n firstArg.type === \"Literal\" &&\n typeof firstArg.value === \"string\"\n ) {\n usage.usedArgs.add(firstArg.value);\n } else {\n usage.hasNonStaticUsage = true;\n }\n }\n }\n }\n };\n}\n\nexport const collectAppGetMenuUsage = collectMemberCallUsageFactory(\n \"APP\",\n \"getMenu\"\n);\n\nexport const collectInstalledAppsHasUsage = collectMemberCallUsageFactory(\n \"INSTALLED_APPS\",\n \"has\"\n);\n"],"mappings":";;;;;;AAQA,SAASA,6BAA6BA,CAACC,MAAc,EAAEC,QAAgB,EAAE;EACvE,OAAO,SAASC,sBAAsBA,CACpCC,KAAsB,EACtBC,IAAgB,EAChBC,MAAoB,EACpB;IACA,IAAID,IAAI,CAACE,IAAI,KAAKN,MAAM,EAAE;MACxB,MAAMO,YAAY,GAAGF,MAAM,CAACA,MAAM,CAACG,MAAM,GAAG,CAAC,CAAC;MAC9C,MAAMC,UAAU,GAAGJ,MAAM,CAACA,MAAM,CAACG,MAAM,GAAG,CAAC,CAAC;MAC5C,IACE,CAAAC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEL,IAAI,CAACM,IAAI,MAAK,gBAAgB,IAC1C,CAAAD,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEE,GAAG,MAAK,QAAQ,IAC5B,CAAAJ,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEH,IAAI,CAACM,IAAI,MAAK,kBAAkB,IAC9CH,YAAY,CAACI,GAAG,KAAK,QAAQ,KAC5BJ,YAAY,CAACH,IAAI,CAACQ,QAAQ,GACtBL,YAAY,CAACH,IAAI,CAACH,QAAQ,CAASS,IAAI,KAAK,SAAS,IACrDH,YAAY,CAACH,IAAI,CAACH,QAAQ,CAASY,KAAK,KAAKZ,QAAQ,GACtDM,YAAY,CAACH,IAAI,CAACH,QAAQ,CAACS,IAAI,KAAK,YAAY,IAChDH,YAAY,CAACH,IAAI,CAACH,QAAQ,CAACK,IAAI,KAAKL,QAAQ,CAAC,EACjD;QACA,MAAMa,IAAI,GAAGL,UAAU,CAACL,IAAI,CAACW,SAAuC;QACpE,IAAID,IAAI,CAACN,MAAM,GAAG,CAAC,EAAE;UACnB,MAAMQ,QAAQ,GAAGF,IAAI,CAAC,CAAC,CAAC;UACxB,IACEE,QAAQ,CAACN,IAAI,KAAK,SAAS,IAC3B,OAAOM,QAAQ,CAACH,KAAK,KAAK,QAAQ,EAClC;YACAV,KAAK,CAACc,QAAQ,CAACC,GAAG,CAACF,QAAQ,CAACH,KAAK,CAAC;UACpC,CAAC,MAAM;YACLV,KAAK,CAACgB,iBAAiB,GAAG,IAAI;UAChC;QACF;MACF;IACF;EACF,CAAC;AACH;AAEO,MAAMC,sBAAsB,GAAGrB,6BAA6B,CACjE,KAAK,EACL,SAAS,CACV;AAACsB,OAAA,CAAAD,sBAAA,GAAAA,sBAAA;AAEK,MAAME,4BAA4B,GAAGvB,6BAA6B,CACvE,gBAAgB,EAChB,KAAK,CACN;AAACsB,OAAA,CAAAC,4BAAA,GAAAA,4BAAA"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.asyncComputeRealProperties = asyncComputeRealProperties;
7
+ exports.computeRealProperties = computeRealProperties;
8
+ var _general = require("@next-core/utils/general");
9
+ var _computeRealValue = require("./computeRealValue.js");
10
+ var _getNextStateOfUseBrick = require("./getNextStateOfUseBrick.js");
11
+ var _getTracks = require("./getTracks.js");
12
+ async function asyncComputeRealProperties(properties, runtimeContext, trackingContextList) {
13
+ if ((0, _general.isObject)(properties)) {
14
+ return Object.fromEntries((await Promise.all(Object.entries(properties).map(async ([propName, propValue]) => {
15
+ if (Array.isArray(trackingContextList)) {
16
+ const {
17
+ contextNames,
18
+ stateNames,
19
+ formStateNames
20
+ } = (0, _getTracks.getTracks)(propValue);
21
+ if (contextNames || stateNames || formStateNames) {
22
+ trackingContextList.push({
23
+ contextNames,
24
+ stateNames,
25
+ formStateNames,
26
+ propName,
27
+ propValue
28
+ });
29
+ }
30
+ }
31
+ // Related: https://github.com/facebook/react/issues/11347
32
+ const realValue = await (0, _computeRealValue.asyncComputeRealValue)(propValue, runtimeContext, {
33
+ $$lazyForUseBrick: true,
34
+ $$stateOfUseBrick: propName === "useBrick" ? _getNextStateOfUseBrick.StateOfUseBrick.USE_BRICK : _getNextStateOfUseBrick.StateOfUseBrick.INITIAL
35
+ });
36
+ if (realValue !== undefined) {
37
+ // For `style` and `dataset`, only object is acceptable.
38
+ if (propName !== "style" && propName !== "dataset" || (0, _general.isObject)(realValue)) {
39
+ return [propName, realValue];
40
+ }
41
+ }
42
+ }))).filter(Boolean));
43
+ }
44
+ return {};
45
+ }
46
+ function computeRealProperties(properties, runtimeContext, trackingContextList) {
47
+ if ((0, _general.isObject)(properties)) {
48
+ return Object.fromEntries(Object.entries(properties).map(([propName, propValue]) => {
49
+ if (Array.isArray(trackingContextList)) {
50
+ const {
51
+ contextNames,
52
+ stateNames,
53
+ formStateNames
54
+ } = (0, _getTracks.getTracks)(propValue);
55
+ if (contextNames || stateNames || formStateNames) {
56
+ trackingContextList.push({
57
+ contextNames,
58
+ stateNames,
59
+ formStateNames,
60
+ propName,
61
+ propValue
62
+ });
63
+ }
64
+ }
65
+ // Related: https://github.com/facebook/react/issues/11347
66
+ const realValue = (0, _computeRealValue.computeRealValue)(propValue, runtimeContext, {
67
+ $$lazyForUseBrick: true,
68
+ $$stateOfUseBrick: propName === "useBrick" ? _getNextStateOfUseBrick.StateOfUseBrick.USE_BRICK : _getNextStateOfUseBrick.StateOfUseBrick.INITIAL
69
+ });
70
+ if (realValue !== undefined) {
71
+ // For `style` and `dataset`, only object is acceptable.
72
+ if (propName !== "style" && propName !== "dataset" || (0, _general.isObject)(realValue)) {
73
+ return [propName, realValue];
74
+ }
75
+ }
76
+ }).filter(Boolean));
77
+ }
78
+ return {};
79
+ }
80
+ //# sourceMappingURL=computeRealProperties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computeRealProperties.js","names":["_general","require","_computeRealValue","_getNextStateOfUseBrick","_getTracks","asyncComputeRealProperties","properties","runtimeContext","trackingContextList","isObject","Object","fromEntries","Promise","all","entries","map","propName","propValue","Array","isArray","contextNames","stateNames","formStateNames","getTracks","push","realValue","asyncComputeRealValue","$$lazyForUseBrick","$$stateOfUseBrick","StateOfUseBrick","USE_BRICK","INITIAL","undefined","filter","Boolean","computeRealProperties","computeRealValue"],"sources":["../../../../src/internal/compute/computeRealProperties.ts"],"sourcesContent":["import { isObject } from \"@next-core/utils/general\";\nimport { asyncComputeRealValue, computeRealValue } from \"./computeRealValue.js\";\nimport { TrackingContextItem } from \"./listenOnTrackingContext.js\";\nimport type { RuntimeContext } from \"../interfaces.js\";\nimport { StateOfUseBrick } from \"./getNextStateOfUseBrick.js\";\nimport { getTracks } from \"./getTracks.js\";\n\nexport async function asyncComputeRealProperties(\n properties: Record<string, unknown> | undefined,\n runtimeContext: RuntimeContext,\n trackingContextList?: TrackingContextItem[]\n): Promise<Record<string, unknown>> {\n if (isObject(properties)) {\n return Object.fromEntries(\n (\n await Promise.all(\n Object.entries(properties).map<\n Promise<[string, unknown] | undefined>\n >(async ([propName, propValue]) => {\n if (Array.isArray(trackingContextList)) {\n const { contextNames, stateNames, formStateNames } =\n getTracks(propValue);\n if (contextNames || stateNames || formStateNames) {\n trackingContextList.push({\n contextNames,\n stateNames,\n formStateNames,\n propName,\n propValue,\n });\n }\n }\n // Related: https://github.com/facebook/react/issues/11347\n const realValue = await asyncComputeRealValue(\n propValue,\n runtimeContext,\n {\n $$lazyForUseBrick: true,\n $$stateOfUseBrick:\n propName === \"useBrick\"\n ? StateOfUseBrick.USE_BRICK\n : StateOfUseBrick.INITIAL,\n }\n );\n if (realValue !== undefined) {\n // For `style` and `dataset`, only object is acceptable.\n if (\n (propName !== \"style\" && propName !== \"dataset\") ||\n isObject(realValue)\n ) {\n return [propName, realValue];\n }\n }\n })\n )\n ).filter(Boolean) as [string, unknown][]\n );\n }\n\n return {};\n}\n\nexport function computeRealProperties(\n properties: Record<string, unknown> | undefined,\n runtimeContext: RuntimeContext,\n trackingContextList?: TrackingContextItem[]\n): Record<string, unknown> {\n if (isObject(properties)) {\n return Object.fromEntries(\n Object.entries(properties)\n .map<[string, unknown] | undefined>(([propName, propValue]) => {\n if (Array.isArray(trackingContextList)) {\n const { contextNames, stateNames, formStateNames } =\n getTracks(propValue);\n if (contextNames || stateNames || formStateNames) {\n trackingContextList.push({\n contextNames,\n stateNames,\n formStateNames,\n propName,\n propValue,\n });\n }\n }\n // Related: https://github.com/facebook/react/issues/11347\n const realValue = computeRealValue(propValue, runtimeContext, {\n $$lazyForUseBrick: true,\n $$stateOfUseBrick:\n propName === \"useBrick\"\n ? StateOfUseBrick.USE_BRICK\n : StateOfUseBrick.INITIAL,\n });\n if (realValue !== undefined) {\n // For `style` and `dataset`, only object is acceptable.\n if (\n (propName !== \"style\" && propName !== \"dataset\") ||\n isObject(realValue)\n ) {\n return [propName, realValue];\n }\n }\n })\n .filter(Boolean) as [string, unknown][]\n );\n }\n\n return {};\n}\n"],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.asyncComputeRealValue = asyncComputeRealValue;
7
+ exports.computeRealValue = computeRealValue;
8
+ var _cook = require("@next-core/cook");
9
+ var _general = require("@next-core/utils/general");
10
+ var _inject = require("@next-core/inject");
11
+ var _evaluate = require("./evaluate.js");
12
+ var _getNextStateOfUseBrick = require("./getNextStateOfUseBrick.js");
13
+ var _markAsComputed = require("./markAsComputed.js");
14
+ async function asyncComputeRealValue(value, runtimeContext, internalOptions = {}) {
15
+ const preEvaluated = (0, _evaluate.isPreEvaluated)(value);
16
+ if (preEvaluated || typeof value === "string") {
17
+ // For `useBrick`, some fields such as `properties`/`transform`/`events`/`if`,
18
+ // are kept and to be evaluated later.
19
+ const lazy = internalOptions.$$lazyForUseBrick && (0, _getNextStateOfUseBrick.isLazyContentInUseBrick)(internalOptions.$$stateOfUseBrick);
20
+ let result;
21
+ let dismissMarkingComputed = lazy;
22
+ if (preEvaluated || (0, _cook.isEvaluable)(value)) {
23
+ result = await (0, _evaluate.asyncEvaluate)(value, runtimeContext, {
24
+ lazy
25
+ });
26
+ dismissMarkingComputed = (0, _evaluate.shouldDismissMarkingComputed)(value);
27
+ } else {
28
+ result = lazy ? value : (0, _inject.transformAndInject)(value, runtimeContext);
29
+ }
30
+ if (!dismissMarkingComputed) {
31
+ (0, _markAsComputed.markAsComputed)(result);
32
+ }
33
+ return result;
34
+ }
35
+ if (!(0, _general.isObject)(value) || (0, _markAsComputed.hasBeenComputed)(value)) {
36
+ return value;
37
+ }
38
+ if (Array.isArray(value)) {
39
+ const nextOptions = getNextComputeOptions(internalOptions, true);
40
+ return Promise.all(value.map(v => asyncComputeRealValue(v, runtimeContext, nextOptions)));
41
+ }
42
+ return Object.fromEntries((await Promise.all(Object.entries(value).map(([k, v]) => Promise.all([asyncComputeRealValue(k, runtimeContext), asyncComputeRealValue(v, runtimeContext, getNextComputeOptions(internalOptions, false, k))])))).concat(internalOptions.ignoreSymbols ? [] : Object.getOwnPropertySymbols(value).map(k => [k, value[k]])));
43
+ }
44
+ function computeRealValue(value, runtimeContext, internalOptions = {}) {
45
+ const preEvaluated = (0, _evaluate.isPreEvaluated)(value);
46
+ if (preEvaluated || typeof value === "string") {
47
+ // For `useBrick`, some fields such as `properties`/`transform`/`events`/`if`,
48
+ // are kept and to be evaluated later.
49
+ const lazy = internalOptions.$$lazyForUseBrick && (0, _getNextStateOfUseBrick.isLazyContentInUseBrick)(internalOptions.$$stateOfUseBrick);
50
+ let result;
51
+ let dismissMarkingComputed = lazy;
52
+ if (preEvaluated || (0, _cook.isEvaluable)(value)) {
53
+ result = (0, _evaluate.evaluate)(value, runtimeContext);
54
+ dismissMarkingComputed = (0, _evaluate.shouldDismissMarkingComputed)(value);
55
+ } else {
56
+ result = lazy ? value : (0, _inject.transformAndInject)(value, runtimeContext);
57
+ }
58
+ if (!dismissMarkingComputed) {
59
+ (0, _markAsComputed.markAsComputed)(result);
60
+ }
61
+ return result;
62
+ }
63
+ if (!(0, _general.isObject)(value) || (0, _markAsComputed.hasBeenComputed)(value)) {
64
+ return value;
65
+ }
66
+ if (Array.isArray(value)) {
67
+ const nextOptions = getNextComputeOptions(internalOptions, true);
68
+ return value.map(v => computeRealValue(v, runtimeContext, nextOptions));
69
+ }
70
+ return Object.fromEntries(Object.entries(value).map(([k, v]) => [computeRealValue(k, runtimeContext), computeRealValue(v, runtimeContext, getNextComputeOptions(internalOptions, false, k))]).concat(internalOptions.ignoreSymbols ? [] : Object.getOwnPropertySymbols(value).map(k => [k, value[k]])));
71
+ }
72
+ function getNextComputeOptions(internalOptions, isArray, key) {
73
+ return internalOptions.$$lazyForUseBrick ? {
74
+ ...internalOptions,
75
+ $$stateOfUseBrick: (0, _getNextStateOfUseBrick.getNextStateOfUseBrick)(internalOptions.$$stateOfUseBrick, isArray, key)
76
+ } : internalOptions;
77
+ }
78
+ //# sourceMappingURL=computeRealValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computeRealValue.js","names":["_cook","require","_general","_inject","_evaluate","_getNextStateOfUseBrick","_markAsComputed","asyncComputeRealValue","value","runtimeContext","internalOptions","preEvaluated","isPreEvaluated","lazy","$$lazyForUseBrick","isLazyContentInUseBrick","$$stateOfUseBrick","result","dismissMarkingComputed","isEvaluable","asyncEvaluate","shouldDismissMarkingComputed","transformAndInject","markAsComputed","isObject","hasBeenComputed","Array","isArray","nextOptions","getNextComputeOptions","Promise","all","map","v","Object","fromEntries","entries","k","concat","ignoreSymbols","getOwnPropertySymbols","computeRealValue","evaluate","key","getNextStateOfUseBrick"],"sources":["../../../../src/internal/compute/computeRealValue.ts"],"sourcesContent":["import { isEvaluable } from \"@next-core/cook\";\nimport { isObject } from \"@next-core/utils/general\";\nimport { transformAndInject } from \"@next-core/inject\";\nimport {\n asyncEvaluate,\n isPreEvaluated,\n evaluate,\n shouldDismissMarkingComputed,\n} from \"./evaluate.js\";\nimport type { RuntimeContext } from \"../interfaces.js\";\nimport {\n StateOfUseBrick,\n getNextStateOfUseBrick,\n isLazyContentInUseBrick,\n} from \"./getNextStateOfUseBrick.js\";\nimport { hasBeenComputed, markAsComputed } from \"./markAsComputed.js\";\n\nexport interface ComputeOptions {\n $$lazyForUseBrick?: boolean;\n $$stateOfUseBrick?: StateOfUseBrick;\n ignoreSymbols?: boolean;\n}\n\nexport async function asyncComputeRealValue(\n value: unknown,\n runtimeContext: RuntimeContext,\n internalOptions: ComputeOptions = {}\n): Promise<unknown> {\n const preEvaluated = isPreEvaluated(value);\n\n if (preEvaluated || typeof value === \"string\") {\n // For `useBrick`, some fields such as `properties`/`transform`/`events`/`if`,\n // are kept and to be evaluated later.\n const lazy =\n internalOptions.$$lazyForUseBrick &&\n isLazyContentInUseBrick(internalOptions.$$stateOfUseBrick);\n\n let result: unknown;\n let dismissMarkingComputed = lazy;\n\n if (preEvaluated || isEvaluable(value as string)) {\n result = await asyncEvaluate(value, runtimeContext, { lazy });\n dismissMarkingComputed = shouldDismissMarkingComputed(value);\n } else {\n result = lazy ? value : transformAndInject(value, runtimeContext);\n }\n\n if (!dismissMarkingComputed) {\n markAsComputed(result);\n }\n\n return result;\n }\n\n if (!isObject(value) || hasBeenComputed(value)) {\n return value;\n }\n\n if (Array.isArray(value)) {\n const nextOptions = getNextComputeOptions(internalOptions, true);\n return Promise.all(\n value.map((v) => asyncComputeRealValue(v, runtimeContext, nextOptions))\n );\n }\n\n return Object.fromEntries(\n (\n await Promise.all(\n Object.entries(value).map(([k, v]) =>\n Promise.all([\n asyncComputeRealValue(k, runtimeContext),\n asyncComputeRealValue(\n v,\n runtimeContext,\n getNextComputeOptions(internalOptions, false, k)\n ),\n ])\n )\n )\n ).concat(\n internalOptions.ignoreSymbols\n ? []\n : Object.getOwnPropertySymbols(value).map((k) => [\n k,\n (value as Record<string | symbol, unknown>)[k],\n ])\n )\n );\n}\n\nexport function computeRealValue(\n value: unknown,\n runtimeContext: RuntimeContext,\n internalOptions: ComputeOptions = {}\n): unknown {\n const preEvaluated = isPreEvaluated(value);\n\n if (preEvaluated || typeof value === \"string\") {\n // For `useBrick`, some fields such as `properties`/`transform`/`events`/`if`,\n // are kept and to be evaluated later.\n const lazy =\n internalOptions.$$lazyForUseBrick &&\n isLazyContentInUseBrick(internalOptions.$$stateOfUseBrick);\n\n let result: unknown;\n let dismissMarkingComputed = lazy;\n\n if (preEvaluated || isEvaluable(value as string)) {\n result = evaluate(value, runtimeContext);\n dismissMarkingComputed = shouldDismissMarkingComputed(value);\n } else {\n result = lazy ? value : transformAndInject(value, runtimeContext);\n }\n\n if (!dismissMarkingComputed) {\n markAsComputed(result);\n }\n\n return result;\n }\n\n if (!isObject(value) || hasBeenComputed(value)) {\n return value;\n }\n\n if (Array.isArray(value)) {\n const nextOptions = getNextComputeOptions(internalOptions, true);\n return value.map((v) => computeRealValue(v, runtimeContext, nextOptions));\n }\n\n return Object.fromEntries(\n Object.entries(value)\n .map(([k, v]) => [\n computeRealValue(k, runtimeContext),\n computeRealValue(\n v,\n runtimeContext,\n getNextComputeOptions(internalOptions, false, k)\n ),\n ])\n .concat(\n internalOptions.ignoreSymbols\n ? []\n : Object.getOwnPropertySymbols(value).map((k) => [\n k,\n (value as Record<string | symbol, unknown>)[k],\n ])\n )\n );\n}\n\nfunction getNextComputeOptions(\n internalOptions: ComputeOptions,\n isArray: boolean,\n key?: string\n): ComputeOptions {\n return internalOptions.$$lazyForUseBrick\n ? {\n ...internalOptions,\n $$stateOfUseBrick: getNextStateOfUseBrick(\n internalOptions.$$stateOfUseBrick,\n isArray,\n key\n ),\n }\n : internalOptions;\n}\n"],"mappings":"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"}