@webiny/app 0.0.0-unstable.78f581c1d2 → 0.0.0-unstable.7be00a75a9

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 (389) hide show
  1. package/App.d.ts +25 -0
  2. package/App.js +82 -0
  3. package/App.js.map +1 -0
  4. package/AppContainer.d.ts +23 -0
  5. package/AppContainer.js +6 -0
  6. package/AppContainer.js.map +1 -0
  7. package/README.md +7 -15
  8. package/apollo-client/InMemoryCache.d.ts +3 -2
  9. package/apollo-client/InMemoryCache.js +16 -77
  10. package/apollo-client/InMemoryCache.js.map +1 -1
  11. package/apollo-client/IntrospectionFragmentMatcher.d.ts +11 -0
  12. package/apollo-client/IntrospectionFragmentMatcher.js +33 -0
  13. package/apollo-client/IntrospectionFragmentMatcher.js.map +1 -0
  14. package/components/Image.d.ts +2 -3
  15. package/components/Image.js +15 -41
  16. package/components/Image.js.map +1 -1
  17. package/components/index.d.ts +1 -2
  18. package/components/index.js +1 -21
  19. package/config/RouterConfig/Route.d.ts +29 -0
  20. package/config/RouterConfig/Route.js +28 -0
  21. package/config/RouterConfig/Route.js.map +1 -0
  22. package/config/RouterConfig.d.ts +31 -0
  23. package/config/RouterConfig.js +19 -0
  24. package/config/RouterConfig.js.map +1 -0
  25. package/config.d.ts +1 -1
  26. package/config.js +20 -29
  27. package/config.js.map +1 -1
  28. package/contexts/Ui/index.d.ts +4 -8
  29. package/contexts/Ui/index.js +27 -89
  30. package/contexts/Ui/index.js.map +1 -1
  31. package/core/Plugin.d.ts +8 -0
  32. package/core/Plugin.js +12 -0
  33. package/core/Plugin.js.map +1 -0
  34. package/core/Plugins.d.ts +15 -0
  35. package/core/Plugins.js +21 -0
  36. package/core/Plugins.js.map +1 -0
  37. package/core/Provider.d.ts +8 -0
  38. package/core/Provider.js +10 -0
  39. package/core/Provider.js.map +1 -0
  40. package/core/createProvider.d.ts +10 -0
  41. package/core/createProvider.js +6 -0
  42. package/core/createProvider.js.map +1 -0
  43. package/core/createProviderPlugin.d.ts +8 -0
  44. package/core/createProviderPlugin.js +12 -0
  45. package/core/createProviderPlugin.js.map +1 -0
  46. package/errors/AuthenticationErrorEvent.d.ts +9 -0
  47. package/errors/AuthenticationErrorEvent.js +13 -0
  48. package/errors/AuthenticationErrorEvent.js.map +1 -0
  49. package/errors/NetworkErrorEvent.d.ts +15 -0
  50. package/errors/NetworkErrorEvent.js +13 -0
  51. package/errors/NetworkErrorEvent.js.map +1 -0
  52. package/errors/abstractions.d.ts +12 -0
  53. package/errors/abstractions.js +6 -0
  54. package/errors/abstractions.js.map +1 -0
  55. package/errors/index.d.ts +6 -0
  56. package/errors/index.js +3 -0
  57. package/exports/admin/env-config.d.ts +2 -0
  58. package/exports/admin/env-config.js +2 -0
  59. package/exports/admin/graphql-client.d.ts +1 -0
  60. package/exports/admin/graphql-client.js +1 -0
  61. package/exports/admin/local-storage.d.ts +2 -0
  62. package/exports/admin/local-storage.js +2 -0
  63. package/exports/admin/router.d.ts +5 -0
  64. package/exports/admin/router.js +5 -0
  65. package/exports/admin/security.d.ts +1 -0
  66. package/exports/admin/security.js +1 -0
  67. package/exports/admin.d.ts +7 -0
  68. package/exports/admin.js +7 -0
  69. package/features/envConfig/EnvConfig.d.ts +7 -0
  70. package/features/envConfig/EnvConfig.js +16 -0
  71. package/features/envConfig/EnvConfig.js.map +1 -0
  72. package/features/envConfig/abstractions.d.ts +28 -0
  73. package/features/envConfig/abstractions.js +5 -0
  74. package/features/envConfig/abstractions.js.map +1 -0
  75. package/features/envConfig/feature.d.ts +17 -0
  76. package/features/envConfig/feature.js +15 -0
  77. package/features/envConfig/feature.js.map +1 -0
  78. package/features/envConfig/index.d.ts +1 -0
  79. package/features/envConfig/index.js +1 -0
  80. package/features/eventPublisher/EventPublisher.d.ts +8 -0
  81. package/features/eventPublisher/EventPublisher.js +19 -0
  82. package/features/eventPublisher/EventPublisher.js.map +1 -0
  83. package/features/eventPublisher/abstractions.d.ts +18 -0
  84. package/features/eventPublisher/abstractions.js +12 -0
  85. package/features/eventPublisher/abstractions.js.map +1 -0
  86. package/features/eventPublisher/feature.d.ts +3 -0
  87. package/features/eventPublisher/feature.js +17 -0
  88. package/features/eventPublisher/feature.js.map +1 -0
  89. package/features/eventPublisher/index.d.ts +3 -0
  90. package/features/eventPublisher/index.js +2 -0
  91. package/features/graphqlClient/AuthenticationErrorPublishing.d.ts +13 -0
  92. package/features/graphqlClient/AuthenticationErrorPublishing.js +35 -0
  93. package/features/graphqlClient/AuthenticationErrorPublishing.js.map +1 -0
  94. package/features/graphqlClient/BatchingGraphQLClient.d.ts +16 -0
  95. package/features/graphqlClient/BatchingGraphQLClient.js +118 -0
  96. package/features/graphqlClient/BatchingGraphQLClient.js.map +1 -0
  97. package/features/graphqlClient/FetchGraphQLClient.d.ts +7 -0
  98. package/features/graphqlClient/FetchGraphQLClient.js +51 -0
  99. package/features/graphqlClient/FetchGraphQLClient.js.map +1 -0
  100. package/features/graphqlClient/NetworkErrorPublishing.d.ts +14 -0
  101. package/features/graphqlClient/NetworkErrorPublishing.js +48 -0
  102. package/features/graphqlClient/NetworkErrorPublishing.js.map +1 -0
  103. package/features/graphqlClient/RequestValue.d.ts +21 -0
  104. package/features/graphqlClient/RequestValue.js +46 -0
  105. package/features/graphqlClient/RequestValue.js.map +1 -0
  106. package/features/graphqlClient/RetryGraphQLClient.d.ts +18 -0
  107. package/features/graphqlClient/RetryGraphQLClient.js +45 -0
  108. package/features/graphqlClient/RetryGraphQLClient.js.map +1 -0
  109. package/features/graphqlClient/__tests__/GraphQLClient.test.d.ts +1 -0
  110. package/features/graphqlClient/__tests__/GraphQLClient.test.js +397 -0
  111. package/features/graphqlClient/__tests__/GraphQLClient.test.js.map +1 -0
  112. package/features/graphqlClient/abstractions.d.ts +18 -0
  113. package/features/graphqlClient/abstractions.js +5 -0
  114. package/features/graphqlClient/abstractions.js.map +1 -0
  115. package/features/graphqlClient/feature.d.ts +6 -0
  116. package/features/graphqlClient/feature.js +25 -0
  117. package/features/graphqlClient/feature.js.map +1 -0
  118. package/features/graphqlClient/index.d.ts +1 -0
  119. package/features/graphqlClient/index.js +1 -0
  120. package/features/graphqlClient/types.d.ts +5 -0
  121. package/features/graphqlClient/types.js +0 -0
  122. package/features/localStorage/BrowserLocalStorageGateway.d.ts +9 -0
  123. package/features/localStorage/BrowserLocalStorageGateway.js +61 -0
  124. package/features/localStorage/BrowserLocalStorageGateway.js.map +1 -0
  125. package/features/localStorage/LocalStorage.d.ts +12 -0
  126. package/features/localStorage/LocalStorage.js +34 -0
  127. package/features/localStorage/LocalStorage.js.map +1 -0
  128. package/features/localStorage/LocalStorageRepository.d.ts +20 -0
  129. package/features/localStorage/LocalStorageRepository.js +82 -0
  130. package/features/localStorage/LocalStorageRepository.js.map +1 -0
  131. package/features/localStorage/abstractions.d.ts +48 -0
  132. package/features/localStorage/abstractions.js +8 -0
  133. package/features/localStorage/abstractions.js.map +1 -0
  134. package/features/localStorage/feature.d.ts +12 -0
  135. package/features/localStorage/feature.js +23 -0
  136. package/features/localStorage/feature.js.map +1 -0
  137. package/features/localStorage/index.d.ts +1 -0
  138. package/features/localStorage/index.js +1 -0
  139. package/features/mainGraphQLClient/MainGraphQLClient.d.ts +11 -0
  140. package/features/mainGraphQLClient/MainGraphQLClient.js +27 -0
  141. package/features/mainGraphQLClient/MainGraphQLClient.js.map +1 -0
  142. package/features/mainGraphQLClient/abstractions.d.ts +17 -0
  143. package/features/mainGraphQLClient/abstractions.js +5 -0
  144. package/features/mainGraphQLClient/abstractions.js.map +1 -0
  145. package/features/mainGraphQLClient/feature.d.ts +3 -0
  146. package/features/mainGraphQLClient/feature.js +17 -0
  147. package/features/mainGraphQLClient/feature.js.map +1 -0
  148. package/features/mainGraphQLClient/index.d.ts +1 -0
  149. package/features/mainGraphQLClient/index.js +1 -0
  150. package/features/router/HistoryRouterGateway.d.ts +22 -0
  151. package/features/router/HistoryRouterGateway.js +88 -0
  152. package/features/router/HistoryRouterGateway.js.map +1 -0
  153. package/features/router/HistoryRouterGateway.test.d.ts +1 -0
  154. package/features/router/HistoryRouterGateway.test.js +195 -0
  155. package/features/router/HistoryRouterGateway.test.js.map +1 -0
  156. package/features/router/Route.d.ts +19 -0
  157. package/features/router/Route.js +43 -0
  158. package/features/router/Route.js.map +1 -0
  159. package/features/router/RouteUrl.d.ts +85 -0
  160. package/features/router/RouteUrl.js +99 -0
  161. package/features/router/RouteUrl.js.map +1 -0
  162. package/features/router/Router.d.ts +45 -0
  163. package/features/router/Router.js +72 -0
  164. package/features/router/Router.js.map +1 -0
  165. package/features/router/RouterPresenter.d.ts +21 -0
  166. package/features/router/RouterPresenter.js +52 -0
  167. package/features/router/RouterPresenter.js.map +1 -0
  168. package/features/router/RouterRepository.d.ts +30 -0
  169. package/features/router/RouterRepository.js +117 -0
  170. package/features/router/RouterRepository.js.map +1 -0
  171. package/features/router/RouterRepository.test.d.ts +1 -0
  172. package/features/router/RouterRepository.test.js +138 -0
  173. package/features/router/RouterRepository.test.js.map +1 -0
  174. package/features/router/abstractions.d.ts +81 -0
  175. package/features/router/abstractions.js +7 -0
  176. package/features/router/abstractions.js.map +1 -0
  177. package/features/router/feature.d.ts +4 -0
  178. package/features/router/feature.js +19 -0
  179. package/features/router/feature.js.map +1 -0
  180. package/features/router/index.d.ts +2 -0
  181. package/features/router/index.js +1 -0
  182. package/helpers/InterfaceGenerator/date.d.ts +15 -0
  183. package/helpers/InterfaceGenerator/date.js +0 -0
  184. package/helpers/InterfaceGenerator/id.d.ts +23 -0
  185. package/helpers/InterfaceGenerator/id.js +0 -0
  186. package/helpers/InterfaceGenerator/identity.d.ts +10 -0
  187. package/helpers/InterfaceGenerator/identity.js +0 -0
  188. package/helpers/InterfaceGenerator/index.d.ts +5 -0
  189. package/helpers/InterfaceGenerator/index.js +0 -0
  190. package/helpers/InterfaceGenerator/numeric.d.ts +12 -0
  191. package/helpers/InterfaceGenerator/numeric.js +0 -0
  192. package/helpers/InterfaceGenerator/truthful.d.ts +7 -0
  193. package/helpers/InterfaceGenerator/truthful.js +0 -0
  194. package/hooks/useAutocomplete/index.d.ts +1 -1
  195. package/hooks/useAutocomplete/index.js +1 -13
  196. package/hooks/useAutocomplete/useAutocomplete.d.ts +1 -1
  197. package/hooks/useAutocomplete/useAutocomplete.js +15 -36
  198. package/hooks/useAutocomplete/useAutocomplete.js.map +1 -1
  199. package/hooks/useDataList/functions/getData.js +4 -15
  200. package/hooks/useDataList/functions/getData.js.map +1 -1
  201. package/hooks/useDataList/functions/getError.js +4 -15
  202. package/hooks/useDataList/functions/getError.js.map +1 -1
  203. package/hooks/useDataList/functions/getMeta.js +4 -15
  204. package/hooks/useDataList/functions/getMeta.js.map +1 -1
  205. package/hooks/useDataList/functions/index.d.ts +3 -3
  206. package/hooks/useDataList/functions/index.js +3 -31
  207. package/hooks/useDataList/functions/searchDataByKey.js +10 -26
  208. package/hooks/useDataList/functions/searchDataByKey.js.map +1 -1
  209. package/hooks/useDataList/index.d.ts +1 -1
  210. package/hooks/useDataList/index.js +1 -13
  211. package/hooks/useDataList/useDataList.d.ts +2 -3
  212. package/hooks/useDataList/useDataList.js +139 -205
  213. package/hooks/useDataList/useDataList.js.map +1 -1
  214. package/hooks/useDataList/utils/index.d.ts +1 -2
  215. package/hooks/useDataList/utils/index.js +1 -23
  216. package/hooks/useDataList/utils/prepareLoadListParams.d.ts +1 -2
  217. package/hooks/useDataList/utils/prepareLoadListParams.js +26 -45
  218. package/hooks/useDataList/utils/prepareLoadListParams.js.map +1 -1
  219. package/hooks/useHandler.js +14 -19
  220. package/hooks/useHandler.js.map +1 -1
  221. package/hooks/useHandlers.d.ts +3 -3
  222. package/hooks/useHandlers.js +19 -28
  223. package/hooks/useHandlers.js.map +1 -1
  224. package/hooks/useRegisterLegacyPlugin.d.ts +2 -0
  225. package/hooks/useRegisterLegacyPlugin.js +12 -0
  226. package/hooks/useRegisterLegacyPlugin.js.map +1 -0
  227. package/hooks/useUi.d.ts +1 -1
  228. package/hooks/useUi.js +5 -15
  229. package/hooks/useUi.js.map +1 -1
  230. package/i18n/i18n.js +11 -21
  231. package/i18n/i18n.js.map +1 -1
  232. package/i18n/index.d.ts +1 -1
  233. package/i18n/index.js +1 -15
  234. package/index.d.ts +25 -4
  235. package/index.js +23 -37
  236. package/package.json +38 -38
  237. package/plugins/AddQuerySelectionPlugin.d.ts +10 -3
  238. package/plugins/AddQuerySelectionPlugin.js +43 -128
  239. package/plugins/AddQuerySelectionPlugin.js.map +1 -1
  240. package/plugins/ApolloCacheObjectIdPlugin.js +15 -51
  241. package/plugins/ApolloCacheObjectIdPlugin.js.map +1 -1
  242. package/plugins/ApolloDynamicLink.d.ts +3 -2
  243. package/plugins/ApolloDynamicLink.js +24 -78
  244. package/plugins/ApolloDynamicLink.js.map +1 -1
  245. package/plugins/ApolloLinkPlugin.d.ts +1 -1
  246. package/plugins/ApolloLinkPlugin.js +21 -61
  247. package/plugins/ApolloLinkPlugin.js.map +1 -1
  248. package/plugins/ConsoleLinkPlugin.d.ts +1 -1
  249. package/plugins/ConsoleLinkPlugin.js +20 -59
  250. package/plugins/ConsoleLinkPlugin.js.map +1 -1
  251. package/plugins/NetworkErrorLinkPlugin/ErrorOverlay.d.ts +8 -13
  252. package/plugins/NetworkErrorLinkPlugin/ErrorOverlay.js +47 -95
  253. package/plugins/NetworkErrorLinkPlugin/ErrorOverlay.js.map +1 -1
  254. package/plugins/NetworkErrorLinkPlugin/GqlErrorOverlay.d.ts +14 -0
  255. package/plugins/NetworkErrorLinkPlugin/GqlErrorOverlay.js +27 -0
  256. package/plugins/NetworkErrorLinkPlugin/GqlErrorOverlay.js.map +1 -0
  257. package/plugins/NetworkErrorLinkPlugin/LocalAwsLambdaTimeoutMessage.d.ts +2 -0
  258. package/plugins/NetworkErrorLinkPlugin/LocalAwsLambdaTimeoutMessage.js +23 -0
  259. package/plugins/NetworkErrorLinkPlugin/LocalAwsLambdaTimeoutMessage.js.map +1 -0
  260. package/plugins/NetworkErrorLinkPlugin/StyledComponents.d.ts +8 -5
  261. package/plugins/NetworkErrorLinkPlugin/StyledComponents.js +68 -20
  262. package/plugins/NetworkErrorLinkPlugin/StyledComponents.js.map +1 -1
  263. package/plugins/NetworkErrorLinkPlugin/Typography.d.ts +8 -0
  264. package/plugins/NetworkErrorLinkPlugin/Typography.js +13 -0
  265. package/plugins/NetworkErrorLinkPlugin/Typography.js.map +1 -0
  266. package/plugins/NetworkErrorLinkPlugin/assets/close_24px.js +19 -0
  267. package/plugins/NetworkErrorLinkPlugin/assets/close_24px.js.map +1 -0
  268. package/plugins/NetworkErrorLinkPlugin/createErrorOverlay.d.ts +3 -3
  269. package/plugins/NetworkErrorLinkPlugin/createErrorOverlay.js +13 -36
  270. package/plugins/NetworkErrorLinkPlugin/createErrorOverlay.js.map +1 -1
  271. package/plugins/NetworkErrorLinkPlugin.d.ts +4 -1
  272. package/plugins/NetworkErrorLinkPlugin.js +51 -63
  273. package/plugins/NetworkErrorLinkPlugin.js.map +1 -1
  274. package/plugins/OmitTypenameLinkPlugin.d.ts +1 -1
  275. package/plugins/OmitTypenameLinkPlugin.js +12 -51
  276. package/plugins/OmitTypenameLinkPlugin.js.map +1 -1
  277. package/plugins/TenantHeaderLinkPlugin.d.ts +3 -8
  278. package/plugins/TenantHeaderLinkPlugin.js +25 -82
  279. package/plugins/TenantHeaderLinkPlugin.js.map +1 -1
  280. package/plugins/components/Image.d.ts +6 -0
  281. package/plugins/components/Image.js +12 -0
  282. package/plugins/components/Image.js.map +1 -0
  283. package/plugins/image.d.ts +1 -1
  284. package/plugins/image.js +97 -175
  285. package/plugins/image.js.map +1 -1
  286. package/plugins/index.d.ts +5 -5
  287. package/plugins/index.js +38 -106
  288. package/plugins/index.js.map +1 -1
  289. package/presentation/envConfig/useEnvConfig.d.ts +6 -0
  290. package/presentation/envConfig/useEnvConfig.js +9 -0
  291. package/presentation/envConfig/useEnvConfig.js.map +1 -0
  292. package/presentation/localStorage/index.d.ts +3 -0
  293. package/presentation/localStorage/index.js +3 -0
  294. package/presentation/localStorage/useLocalStorage.d.ts +6 -0
  295. package/presentation/localStorage/useLocalStorage.js +15 -0
  296. package/presentation/localStorage/useLocalStorage.js.map +1 -0
  297. package/presentation/localStorage/useLocalStorageValue.d.ts +1 -0
  298. package/presentation/localStorage/useLocalStorageValue.js +22 -0
  299. package/presentation/localStorage/useLocalStorageValue.js.map +1 -0
  300. package/presentation/localStorage/useLocalStorageValues.d.ts +5 -0
  301. package/presentation/localStorage/useLocalStorageValues.js +32 -0
  302. package/presentation/localStorage/useLocalStorageValues.js.map +1 -0
  303. package/presentation/router/RouteElementRegistry.d.ts +14 -0
  304. package/presentation/router/RouteElementRegistry.js +29 -0
  305. package/presentation/router/RouteElementRegistry.js.map +1 -0
  306. package/presentation/router/abstractions.d.ts +13 -0
  307. package/presentation/router/abstractions.js +5 -0
  308. package/presentation/router/abstractions.js.map +1 -0
  309. package/presentation/router/components/Redirect.d.ts +14 -0
  310. package/presentation/router/components/Redirect.js +13 -0
  311. package/presentation/router/components/Redirect.js.map +1 -0
  312. package/presentation/router/components/RouteContent.d.ts +2 -0
  313. package/presentation/router/components/RouteContent.js +20 -0
  314. package/presentation/router/components/RouteContent.js.map +1 -0
  315. package/presentation/router/components/RouteLink.d.ts +50 -0
  316. package/presentation/router/components/RouteLink.js +17 -0
  317. package/presentation/router/components/RouteLink.js.map +1 -0
  318. package/presentation/router/components/SimpleLink.d.ts +44 -0
  319. package/presentation/router/components/SimpleLink.js +24 -0
  320. package/presentation/router/components/SimpleLink.js.map +1 -0
  321. package/presentation/router/hooks/useRoute.d.ts +6 -0
  322. package/presentation/router/hooks/useRoute.js +22 -0
  323. package/presentation/router/hooks/useRoute.js.map +1 -0
  324. package/presentation/router/hooks/useRouter.d.ts +11 -0
  325. package/presentation/router/hooks/useRouter.js +29 -0
  326. package/presentation/router/hooks/useRouter.js.map +1 -0
  327. package/presentation/router/index.d.ts +4 -0
  328. package/presentation/router/index.js +3 -0
  329. package/presentation/router/types.d.ts +5 -0
  330. package/presentation/router/types.js +0 -0
  331. package/renderApp.d.ts +2 -0
  332. package/renderApp.js +10 -0
  333. package/renderApp.js.map +1 -0
  334. package/router.d.ts +5 -0
  335. package/router.js +5 -0
  336. package/rslib-runtime.js +14 -0
  337. package/rslib-runtime.js.map +1 -0
  338. package/shared/di/DiContainerProvider.d.ts +8 -0
  339. package/shared/di/DiContainerProvider.js +13 -0
  340. package/shared/di/DiContainerProvider.js.map +1 -0
  341. package/shared/di/createFeature.d.ts +11 -0
  342. package/shared/di/createFeature.js +10 -0
  343. package/shared/di/createFeature.js.map +1 -0
  344. package/shared/di/useFeature.d.ts +2 -0
  345. package/shared/di/useFeature.js +12 -0
  346. package/shared/di/useFeature.js.map +1 -0
  347. package/static/svg/close_24px.33adaadc.svg +1 -0
  348. package/types.d.ts +30 -30
  349. package/types.js +0 -13
  350. package/utils/createGenericContext.d.ts +13 -0
  351. package/utils/createGenericContext.js +21 -0
  352. package/utils/createGenericContext.js.map +1 -0
  353. package/utils/createHashing.d.ts +2 -0
  354. package/utils/createHashing.js +15 -0
  355. package/utils/createHashing.js.map +1 -0
  356. package/utils/index.d.ts +2 -0
  357. package/utils/index.js +2 -0
  358. package/utils/legacyPluginToReactComponent.d.ts +7 -0
  359. package/utils/legacyPluginToReactComponent.js +15 -0
  360. package/utils/legacyPluginToReactComponent.js.map +1 -0
  361. package/components/Routes.d.ts +0 -2
  362. package/components/Routes.js +0 -49
  363. package/components/Routes.js.map +0 -1
  364. package/components/View.d.ts +0 -8
  365. package/components/View.js +0 -41
  366. package/components/View.js.map +0 -1
  367. package/components/index.js.map +0 -1
  368. package/hooks/useAutocomplete/index.js.map +0 -1
  369. package/hooks/useDataList/functions/index.js.map +0 -1
  370. package/hooks/useDataList/index.js.map +0 -1
  371. package/hooks/useDataList/utils/index.js.map +0 -1
  372. package/hooks/useDataList/utils/redirectToRouteWithQueryParams.d.ts +0 -14
  373. package/hooks/useDataList/utils/redirectToRouteWithQueryParams.js +0 -31
  374. package/hooks/useDataList/utils/redirectToRouteWithQueryParams.js.map +0 -1
  375. package/hooks/useDataList/utils/types.d.ts +0 -34
  376. package/hooks/useDataList/utils/types.js +0 -5
  377. package/hooks/useDataList/utils/types.js.map +0 -1
  378. package/i18n/index.js.map +0 -1
  379. package/index.js.map +0 -1
  380. package/plugins/LocaleHeaderLinkPlugin.d.ts +0 -15
  381. package/plugins/LocaleHeaderLinkPlugin.js +0 -77
  382. package/plugins/LocaleHeaderLinkPlugin.js.map +0 -1
  383. package/plugins/RoutePlugin.d.ts +0 -12
  384. package/plugins/RoutePlugin.js +0 -53
  385. package/plugins/RoutePlugin.js.map +0 -1
  386. package/plugins/ViewPlugin.d.ts +0 -14
  387. package/plugins/ViewPlugin.js +0 -58
  388. package/plugins/ViewPlugin.js.map +0 -1
  389. package/types.js.map +0 -1
@@ -0,0 +1,22 @@
1
+ import { useEffect, useState } from "react";
2
+ import { autorun } from "mobx";
3
+ import { LocalStorageFeature } from "../../features/localStorage/feature.js";
4
+ import { useFeature } from "../../shared/di/useFeature.js";
5
+ function useLocalStorageValue(key) {
6
+ const { localStorageService } = useFeature(LocalStorageFeature);
7
+ const [value, setValue] = useState(()=>localStorageService.get(key));
8
+ useEffect(()=>{
9
+ const dispose = autorun(()=>{
10
+ const value = localStorageService.get(key);
11
+ setValue(value);
12
+ });
13
+ return ()=>dispose();
14
+ }, [
15
+ localStorageService,
16
+ key
17
+ ]);
18
+ return value;
19
+ }
20
+ export { useLocalStorageValue };
21
+
22
+ //# sourceMappingURL=useLocalStorageValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/localStorage/useLocalStorageValue.js","sources":["../../../src/presentation/localStorage/useLocalStorageValue.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { autorun } from \"mobx\";\nimport { LocalStorageFeature } from \"~/features/localStorage/feature.js\";\nimport { useFeature } from \"~/shared/di/useFeature.js\";\n\nexport function useLocalStorageValue<T = string>(key: string): T | undefined {\n const { localStorageService } = useFeature(LocalStorageFeature);\n\n const [value, setValue] = useState<T | undefined>(() => localStorageService.get<T>(key));\n\n useEffect(() => {\n const dispose = autorun(() => {\n const value = localStorageService.get<T>(key);\n setValue(value);\n });\n return () => dispose();\n }, [localStorageService, key]);\n\n return value;\n}\n"],"names":["useLocalStorageValue","key","localStorageService","useFeature","LocalStorageFeature","value","setValue","useState","useEffect","dispose","autorun"],"mappings":";;;;AAKO,SAASA,qBAAiCC,GAAW;IACxD,MAAM,EAAEC,mBAAmB,EAAE,GAAGC,WAAWC;IAE3C,MAAM,CAACC,OAAOC,SAAS,GAAGC,SAAwB,IAAML,oBAAoB,GAAG,CAAID;IAEnFO,UAAU;QACN,MAAMC,UAAUC,QAAQ;YACpB,MAAML,QAAQH,oBAAoB,GAAG,CAAID;YACzCK,SAASD;QACb;QACA,OAAO,IAAMI;IACjB,GAAG;QAACP;QAAqBD;KAAI;IAE7B,OAAOI;AACX"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Observes multiple keys in LocalStorage and returns an object of { key: value }.
3
+ * Re-renders when any of the observed keys change.
4
+ */
5
+ export declare function useLocalStorageValues<T extends Record<string, any>>(keys: (keyof T & string)[]): Partial<T>;
@@ -0,0 +1,32 @@
1
+ import { useEffect, useRef, useState } from "react";
2
+ import { autorun } from "mobx";
3
+ import isEqual from "lodash/isEqual.js";
4
+ import { LocalStorageFeature } from "../../features/localStorage/feature.js";
5
+ import { useFeature } from "../../shared/di/useFeature.js";
6
+ function useLocalStorageValues(keys) {
7
+ const { localStorageService } = useFeature(LocalStorageFeature);
8
+ const [values, setValues] = useState(()=>{
9
+ const initial = {};
10
+ for (const key of keys)initial[key] = localStorageService.get(key);
11
+ return initial;
12
+ });
13
+ const valuesRef = useRef(values);
14
+ useEffect(()=>{
15
+ const dispose = autorun(()=>{
16
+ const snapshot = {};
17
+ for (const key of keys)snapshot[key] = localStorageService.get(key);
18
+ if (!isEqual(snapshot, valuesRef.current)) {
19
+ setValues(snapshot);
20
+ valuesRef.current = snapshot;
21
+ }
22
+ });
23
+ return ()=>dispose();
24
+ }, [
25
+ localStorageService,
26
+ keys.join(",")
27
+ ]);
28
+ return values;
29
+ }
30
+ export { useLocalStorageValues };
31
+
32
+ //# sourceMappingURL=useLocalStorageValues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/localStorage/useLocalStorageValues.js","sources":["../../../src/presentation/localStorage/useLocalStorageValues.ts"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport { autorun } from \"mobx\";\nimport isEqual from \"lodash/isEqual.js\";\nimport { LocalStorageFeature } from \"~/features/localStorage/feature.js\";\nimport { useFeature } from \"~/shared/di/useFeature.js\";\n\n/**\n * Observes multiple keys in LocalStorage and returns an object of { key: value }.\n * Re-renders when any of the observed keys change.\n */\nexport function useLocalStorageValues<T extends Record<string, any>>(\n keys: (keyof T & string)[]\n): Partial<T> {\n const { localStorageService } = useFeature(LocalStorageFeature);\n\n const [values, setValues] = useState<Partial<T>>(() => {\n const initial: Partial<T> = {};\n for (const key of keys) {\n initial[key] = localStorageService.get<any>(key);\n }\n return initial;\n });\n\n const valuesRef = useRef(values);\n\n useEffect(() => {\n const dispose = autorun(() => {\n const snapshot: Partial<T> = {};\n for (const key of keys) {\n snapshot[key] = localStorageService.get<any>(key);\n }\n\n if (!isEqual(snapshot, valuesRef.current)) {\n setValues(snapshot);\n valuesRef.current = snapshot;\n }\n });\n return () => dispose();\n }, [localStorageService, keys.join(\",\")]);\n\n return values;\n}\n"],"names":["useLocalStorageValues","keys","localStorageService","useFeature","LocalStorageFeature","values","setValues","useState","initial","key","valuesRef","useRef","useEffect","dispose","autorun","snapshot","isEqual"],"mappings":";;;;;AAUO,SAASA,sBACZC,IAA0B;IAE1B,MAAM,EAAEC,mBAAmB,EAAE,GAAGC,WAAWC;IAE3C,MAAM,CAACC,QAAQC,UAAU,GAAGC,SAAqB;QAC7C,MAAMC,UAAsB,CAAC;QAC7B,KAAK,MAAMC,OAAOR,KACdO,OAAO,CAACC,IAAI,GAAGP,oBAAoB,GAAG,CAAMO;QAEhD,OAAOD;IACX;IAEA,MAAME,YAAYC,OAAON;IAEzBO,UAAU;QACN,MAAMC,UAAUC,QAAQ;YACpB,MAAMC,WAAuB,CAAC;YAC9B,KAAK,MAAMN,OAAOR,KACdc,QAAQ,CAACN,IAAI,GAAGP,oBAAoB,GAAG,CAAMO;YAGjD,IAAI,CAACO,QAAQD,UAAUL,UAAU,OAAO,GAAG;gBACvCJ,UAAUS;gBACVL,UAAU,OAAO,GAAGK;YACxB;QACJ;QACA,OAAO,IAAMF;IACjB,GAAG;QAACX;QAAqBD,KAAK,IAAI,CAAC;KAAK;IAExC,OAAOI;AACX"}
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ declare class RouteElementRegistryImplementation {
3
+ private readonly elements;
4
+ /** Register a React element for a given route. */
5
+ register(routeName: string, element: React.ReactNode): void;
6
+ /** Get the element for a matched route by name. */
7
+ getElement(routeName: string): React.ReactNode | null;
8
+ /** Clear all registered elements. Useful in tests or hot reloads. */
9
+ clear(): void;
10
+ /** List all registered route names. */
11
+ list(): string[];
12
+ }
13
+ export declare const DefaultRouteElementRegistry: import("@webiny/di").Implementation<typeof RouteElementRegistryImplementation>;
14
+ export {};
@@ -0,0 +1,29 @@
1
+ import { createImplementation } from "@webiny/di";
2
+ import { RouteElementRegistry } from "./abstractions.js";
3
+ class RouteElementRegistryImplementation {
4
+ register(routeName, element) {
5
+ this.elements.set(routeName, element);
6
+ }
7
+ getElement(routeName) {
8
+ return this.elements.get(routeName) ?? null;
9
+ }
10
+ clear() {
11
+ this.elements.clear();
12
+ }
13
+ list() {
14
+ return [
15
+ ...this.elements.keys()
16
+ ];
17
+ }
18
+ constructor(){
19
+ this.elements = new Map();
20
+ }
21
+ }
22
+ const DefaultRouteElementRegistry = createImplementation({
23
+ implementation: RouteElementRegistryImplementation,
24
+ abstraction: RouteElementRegistry,
25
+ dependencies: []
26
+ });
27
+ export { DefaultRouteElementRegistry };
28
+
29
+ //# sourceMappingURL=RouteElementRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/router/RouteElementRegistry.js","sources":["../../../src/presentation/router/RouteElementRegistry.ts"],"sourcesContent":["import React from \"react\";\nimport { createImplementation } from \"@webiny/di\";\nimport { RouteElementRegistry } from \"./abstractions.js\";\n\nclass RouteElementRegistryImplementation {\n private readonly elements = new Map<string, React.ReactNode>();\n\n /** Register a React element for a given route. */\n register(routeName: string, element: React.ReactNode): void {\n this.elements.set(routeName, element);\n }\n\n /** Get the element for a matched route by name. */\n getElement(routeName: string): React.ReactNode | null {\n return this.elements.get(routeName) ?? null;\n }\n\n /** Clear all registered elements. Useful in tests or hot reloads. */\n clear(): void {\n this.elements.clear();\n }\n\n /** List all registered route names. */\n list(): string[] {\n return [...this.elements.keys()];\n }\n}\n\nexport const DefaultRouteElementRegistry = createImplementation({\n implementation: RouteElementRegistryImplementation,\n abstraction: RouteElementRegistry,\n dependencies: []\n});\n"],"names":["RouteElementRegistryImplementation","routeName","element","Map","DefaultRouteElementRegistry","createImplementation","RouteElementRegistry"],"mappings":";;AAIA,MAAMA;IAIF,SAASC,SAAiB,EAAEC,OAAwB,EAAQ;QACxD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAACD,WAAWC;IACjC;IAGA,WAAWD,SAAiB,EAA0B;QAClD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAACA,cAAc;IAC3C;IAGA,QAAc;QACV,IAAI,CAAC,QAAQ,CAAC,KAAK;IACvB;IAGA,OAAiB;QACb,OAAO;eAAI,IAAI,CAAC,QAAQ,CAAC,IAAI;SAAG;IACpC;;aApBiB,QAAQ,GAAG,IAAIE;;AAqBpC;AAEO,MAAMC,8BAA8BC,qBAAqB;IAC5D,gBAAgBL;IAChB,aAAaM;IACb,cAAc,EAAE;AACpB"}
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ import { Abstraction } from "@webiny/di";
3
+ interface IRouteElementRegistry {
4
+ register(name: string, element: React.ReactElement): void;
5
+ getElement(routeName: string): React.ReactNode | null;
6
+ clear(): void;
7
+ list(): string[];
8
+ }
9
+ export declare const RouteElementRegistry: Abstraction<IRouteElementRegistry>;
10
+ export declare namespace RouteElementRegistry {
11
+ type Interface = IRouteElementRegistry;
12
+ }
13
+ export {};
@@ -0,0 +1,5 @@
1
+ import { Abstraction } from "@webiny/di";
2
+ const RouteElementRegistry = new Abstraction("RouteElementRegistry");
3
+ export { RouteElementRegistry };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/router/abstractions.js","sources":["../../../src/presentation/router/abstractions.ts"],"sourcesContent":["import React from \"react\";\nimport { Abstraction } from \"@webiny/di\";\n\ninterface IRouteElementRegistry {\n register(name: string, element: React.ReactElement): void;\n getElement(routeName: string): React.ReactNode | null;\n clear(): void;\n list(): string[];\n}\n\nexport const RouteElementRegistry = new Abstraction<IRouteElementRegistry>(\"RouteElementRegistry\");\n\nexport namespace RouteElementRegistry {\n export type Interface = IRouteElementRegistry;\n}\n"],"names":["RouteElementRegistry","Abstraction"],"mappings":";AAUO,MAAMA,uBAAuB,IAAIC,YAAmC"}
@@ -0,0 +1,14 @@
1
+ import type { Route, RouteParamsDefinition, RouteParamsInfer } from "../../../features/router/Route.js";
2
+ import type { RequiredKeysOf } from "type-fest";
3
+ export type RedirectProps<TParams extends RouteParamsDefinition | undefined> = [
4
+ TParams extends RouteParamsDefinition ? RequiredKeysOf<RouteParamsInfer<TParams>> extends never ? {
5
+ route: Route<TParams>;
6
+ params?: RouteParamsInfer<TParams>;
7
+ } : {
8
+ route: Route<TParams>;
9
+ params: RouteParamsInfer<TParams>;
10
+ } : {
11
+ route: Route<TParams>;
12
+ }
13
+ ][0];
14
+ export declare const RedirectComponent: <TParams extends RouteParamsDefinition | undefined>(props: RedirectProps<TParams>) => null;
@@ -0,0 +1,13 @@
1
+ import { useEffect } from "react";
2
+ import { useRouter } from "../../../router.js";
3
+ const RedirectComponent = (props)=>{
4
+ const router = useRouter();
5
+ const { route, ...rest } = props;
6
+ useEffect(()=>{
7
+ router.goToRoute(route, rest.params);
8
+ }, []);
9
+ return null;
10
+ };
11
+ export { RedirectComponent };
12
+
13
+ //# sourceMappingURL=Redirect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/router/components/Redirect.js","sources":["../../../../src/presentation/router/components/Redirect.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport type { Route, RouteParamsDefinition, RouteParamsInfer } from \"~/features/router/Route.js\";\nimport { useRouter } from \"~/router.js\";\nimport type { RequiredKeysOf } from \"type-fest\";\n\nexport type RedirectProps<TParams extends RouteParamsDefinition | undefined> = [\n TParams extends RouteParamsDefinition\n ? RequiredKeysOf<RouteParamsInfer<TParams>> extends never\n ? { route: Route<TParams>; params?: RouteParamsInfer<TParams> }\n : { route: Route<TParams>; params: RouteParamsInfer<TParams> }\n : { route: Route<TParams> }\n][0];\n\nexport const RedirectComponent = <TParams extends RouteParamsDefinition | undefined>(\n props: RedirectProps<TParams>\n) => {\n const router = useRouter();\n const { route, ...rest } = props as any;\n\n useEffect(() => {\n router.goToRoute(route, rest.params);\n }, []);\n\n return null;\n};\n"],"names":["RedirectComponent","props","router","useRouter","route","rest","useEffect"],"mappings":";;AAaO,MAAMA,oBAAoB,CAC7BC;IAEA,MAAMC,SAASC;IACf,MAAM,EAAEC,KAAK,EAAE,GAAGC,MAAM,GAAGJ;IAE3BK,UAAU;QACNJ,OAAO,SAAS,CAACE,OAAOC,KAAK,MAAM;IACvC,GAAG,EAAE;IAEL,OAAO;AACX"}
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const RouteContent: () => React.JSX.Element | null;
@@ -0,0 +1,20 @@
1
+ import react from "react";
2
+ import { DevToolsSection } from "@webiny/react-properties";
3
+ import { RouteElementRegistry, useRoute } from "../index.js";
4
+ import { useContainer } from "../../../shared/di/DiContainerProvider.js";
5
+ const RouteContent = ()=>{
6
+ const { route } = useRoute();
7
+ const container = useContainer();
8
+ const elementRegistry = container.resolve(RouteElementRegistry);
9
+ if (!route) return null;
10
+ const element = elementRegistry.getElement(route.name);
11
+ return /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(DevToolsSection, {
12
+ name: "Current Route",
13
+ group: "Router",
14
+ data: route,
15
+ views: "raw"
16
+ }), element ?? null);
17
+ };
18
+ export { RouteContent };
19
+
20
+ //# sourceMappingURL=RouteContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/router/components/RouteContent.js","sources":["../../../../src/presentation/router/components/RouteContent.tsx"],"sourcesContent":["import React from \"react\";\nimport { DevToolsSection } from \"@webiny/react-properties\";\nimport { RouteElementRegistry, useRoute } from \"~/presentation/router/index.js\";\nimport { useContainer } from \"~/shared/di/DiContainerProvider.js\";\n\nexport const RouteContent = () => {\n const { route } = useRoute();\n const container = useContainer();\n const elementRegistry = container.resolve(RouteElementRegistry);\n\n if (!route) {\n return null;\n }\n\n const element = elementRegistry.getElement(route.name);\n\n return (\n <>\n <DevToolsSection name={\"Current Route\"} group={\"Router\"} data={route} views={\"raw\"} />\n {element ?? null}\n </>\n );\n};\n"],"names":["RouteContent","route","useRoute","container","useContainer","elementRegistry","RouteElementRegistry","element","DevToolsSection"],"mappings":";;;;AAKO,MAAMA,eAAe;IACxB,MAAM,EAAEC,KAAK,EAAE,GAAGC;IAClB,MAAMC,YAAYC;IAClB,MAAMC,kBAAkBF,UAAU,OAAO,CAACG;IAE1C,IAAI,CAACL,OACD,OAAO;IAGX,MAAMM,UAAUF,gBAAgB,UAAU,CAACJ,MAAM,IAAI;IAErD,OAAO,WAAP,GACI,wDACI,oBAACO,iBAAeA;QAAC,MAAM;QAAiB,OAAO;QAAU,MAAMP;QAAO,OAAO;QAC5EM,WAAW;AAGxB"}
@@ -0,0 +1,50 @@
1
+ import React from "react";
2
+ import type { Route, RouteParamsDefinition, RouteParamsInfer } from "../../../features/router/Route.js";
3
+ type BaseAnchorAttributes = Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, "href">;
4
+ export type RouteLinkProps<TParams extends RouteParamsDefinition | undefined> = [
5
+ TParams extends RouteParamsDefinition ? {
6
+ route: Route<TParams>;
7
+ params: RouteParamsInfer<TParams>;
8
+ } : {
9
+ route: Route<TParams>;
10
+ }
11
+ ][0] & BaseAnchorAttributes;
12
+ export declare const RouteLink: (<TParams extends RouteParamsDefinition | undefined>(props: RouteLinkProps<TParams>) => React.JSX.Element) & {
13
+ original: <TParams extends RouteParamsDefinition | undefined>(props: RouteLinkProps<TParams>) => React.JSX.Element;
14
+ originalName: string;
15
+ displayName: string;
16
+ } & {
17
+ original: (<TParams extends RouteParamsDefinition | undefined>(props: RouteLinkProps<TParams>) => React.JSX.Element) & {
18
+ original: <TParams extends RouteParamsDefinition | undefined>(props: RouteLinkProps<TParams>) => React.JSX.Element;
19
+ originalName: string;
20
+ displayName: string;
21
+ };
22
+ originalName: string;
23
+ displayName: string;
24
+ } & {
25
+ createDecorator: (decorator: import("@webiny/react-composition").ComponentDecorator<(<TParams extends RouteParamsDefinition | undefined>(props: RouteLinkProps<TParams>) => React.JSX.Element) & {
26
+ original: <TParams extends RouteParamsDefinition | undefined>(props: RouteLinkProps<TParams>) => React.JSX.Element;
27
+ originalName: string;
28
+ displayName: string;
29
+ }>) => (props: unknown) => React.JSX.Element;
30
+ };
31
+ export declare const RouteLinkComponent: (<TParams extends RouteParamsDefinition | undefined>(props: RouteLinkProps<TParams>) => React.JSX.Element) & {
32
+ original: <TParams extends RouteParamsDefinition | undefined>(props: RouteLinkProps<TParams>) => React.JSX.Element;
33
+ originalName: string;
34
+ displayName: string;
35
+ } & {
36
+ original: (<TParams extends RouteParamsDefinition | undefined>(props: RouteLinkProps<TParams>) => React.JSX.Element) & {
37
+ original: <TParams extends RouteParamsDefinition | undefined>(props: RouteLinkProps<TParams>) => React.JSX.Element;
38
+ originalName: string;
39
+ displayName: string;
40
+ };
41
+ originalName: string;
42
+ displayName: string;
43
+ } & {
44
+ createDecorator: (decorator: import("@webiny/react-composition").ComponentDecorator<(<TParams extends RouteParamsDefinition | undefined>(props: RouteLinkProps<TParams>) => React.JSX.Element) & {
45
+ original: <TParams extends RouteParamsDefinition | undefined>(props: RouteLinkProps<TParams>) => React.JSX.Element;
46
+ originalName: string;
47
+ displayName: string;
48
+ }>) => (props: unknown) => React.JSX.Element;
49
+ };
50
+ export {};
@@ -0,0 +1,17 @@
1
+ import react from "react";
2
+ import { makeDecoratable } from "@webiny/react-composition";
3
+ import { SimpleLink } from "./SimpleLink.js";
4
+ import { useRouter } from "../../../router.js";
5
+ const RouteLink = makeDecoratable("RouteLink", (props)=>{
6
+ const router = useRouter();
7
+ const { children, route, ...rest } = props;
8
+ const href = rest.params ? router.getLink(route, rest.params) : router.getLink(route);
9
+ return /*#__PURE__*/ react.createElement(SimpleLink, {
10
+ to: href,
11
+ ...rest
12
+ }, children);
13
+ });
14
+ const RouteLinkComponent = RouteLink;
15
+ export { RouteLink, RouteLinkComponent };
16
+
17
+ //# sourceMappingURL=RouteLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/router/components/RouteLink.js","sources":["../../../../src/presentation/router/components/RouteLink.tsx"],"sourcesContent":["import React from \"react\";\nimport { makeDecoratable } from \"@webiny/react-composition\";\nimport type { Route, RouteParamsDefinition, RouteParamsInfer } from \"~/features/router/Route.js\";\nimport { SimpleLink } from \"./SimpleLink.js\";\nimport { useRouter } from \"~/router.js\";\n\ntype BaseAnchorAttributes = Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, \"href\">;\n\n// The props are generic over the Route's schema.\nexport type RouteLinkProps<TParams extends RouteParamsDefinition | undefined> = [\n TParams extends RouteParamsDefinition\n ? {\n route: Route<TParams>;\n params: RouteParamsInfer<TParams>;\n }\n : { route: Route<TParams> }\n][0] &\n BaseAnchorAttributes;\n\nexport const RouteLink = makeDecoratable(\n \"RouteLink\",\n <TParams extends RouteParamsDefinition | undefined>(props: RouteLinkProps<TParams>) => {\n const router = useRouter();\n\n const { children, route, ...rest } = props as any;\n\n const href = rest.params ? router.getLink(route!, rest.params) : router.getLink(route!);\n\n return (\n <SimpleLink to={href} {...rest}>\n {children}\n </SimpleLink>\n );\n }\n);\n\nexport const RouteLinkComponent = RouteLink;\n"],"names":["RouteLink","makeDecoratable","props","router","useRouter","children","route","rest","href","SimpleLink","RouteLinkComponent"],"mappings":";;;;AAmBO,MAAMA,YAAYC,gBACrB,aACA,CAAoDC;IAChD,MAAMC,SAASC;IAEf,MAAM,EAAEC,QAAQ,EAAEC,KAAK,EAAE,GAAGC,MAAM,GAAGL;IAErC,MAAMM,OAAOD,KAAK,MAAM,GAAGJ,OAAO,OAAO,CAACG,OAAQC,KAAK,MAAM,IAAIJ,OAAO,OAAO,CAACG;IAEhF,OAAO,WAAP,GACI,oBAACG,YAAUA;QAAC,IAAID;QAAO,GAAGD,IAAI;OACzBF;AAGb;AAGG,MAAMK,qBAAqBV"}
@@ -0,0 +1,44 @@
1
+ import React from "react";
2
+ type BaseAnchorAttributes = Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, "href">;
3
+ export type SimpleLinkProps = BaseAnchorAttributes & {
4
+ to: string;
5
+ };
6
+ export declare const SimpleLink: (({ children, to, ...rest }: SimpleLinkProps) => React.JSX.Element) & {
7
+ original: ({ children, to, ...rest }: SimpleLinkProps) => React.JSX.Element;
8
+ originalName: string;
9
+ displayName: string;
10
+ } & {
11
+ original: (({ children, to, ...rest }: SimpleLinkProps) => React.JSX.Element) & {
12
+ original: ({ children, to, ...rest }: SimpleLinkProps) => React.JSX.Element;
13
+ originalName: string;
14
+ displayName: string;
15
+ };
16
+ originalName: string;
17
+ displayName: string;
18
+ } & {
19
+ createDecorator: (decorator: import("@webiny/react-composition").ComponentDecorator<(({ children, to, ...rest }: SimpleLinkProps) => React.JSX.Element) & {
20
+ original: ({ children, to, ...rest }: SimpleLinkProps) => React.JSX.Element;
21
+ originalName: string;
22
+ displayName: string;
23
+ }>) => (props: unknown) => React.JSX.Element;
24
+ };
25
+ export declare const LinkComponent: (({ children, to, ...rest }: SimpleLinkProps) => React.JSX.Element) & {
26
+ original: ({ children, to, ...rest }: SimpleLinkProps) => React.JSX.Element;
27
+ originalName: string;
28
+ displayName: string;
29
+ } & {
30
+ original: (({ children, to, ...rest }: SimpleLinkProps) => React.JSX.Element) & {
31
+ original: ({ children, to, ...rest }: SimpleLinkProps) => React.JSX.Element;
32
+ originalName: string;
33
+ displayName: string;
34
+ };
35
+ originalName: string;
36
+ displayName: string;
37
+ } & {
38
+ createDecorator: (decorator: import("@webiny/react-composition").ComponentDecorator<(({ children, to, ...rest }: SimpleLinkProps) => React.JSX.Element) & {
39
+ original: ({ children, to, ...rest }: SimpleLinkProps) => React.JSX.Element;
40
+ originalName: string;
41
+ displayName: string;
42
+ }>) => (props: unknown) => React.JSX.Element;
43
+ };
44
+ export {};
@@ -0,0 +1,24 @@
1
+ import react from "react";
2
+ import { makeDecoratable } from "@webiny/react-composition";
3
+ import { RouterGateway } from "../../../features/router/abstractions.js";
4
+ import { useContainer } from "../../../shared/di/DiContainerProvider.js";
5
+ const SimpleLink = makeDecoratable("SimpleLink", ({ children, to, ...rest })=>{
6
+ const container = useContainer();
7
+ const routerGateway = container.resolve(RouterGateway);
8
+ const handleClick = (event)=>{
9
+ if (event.defaultPrevented || 0 !== event.button || event.metaKey || event.altKey || event.ctrlKey || event.shiftKey || "_blank" === rest.target) return;
10
+ event.preventDefault();
11
+ routerGateway.pushState(to);
12
+ };
13
+ const onClick = rest.onClick ?? handleClick;
14
+ return /*#__PURE__*/ react.createElement("a", {
15
+ href: to,
16
+ rel: "noreferrer noopener",
17
+ ...rest,
18
+ onClick: onClick
19
+ }, children);
20
+ });
21
+ const LinkComponent = SimpleLink;
22
+ export { LinkComponent, SimpleLink };
23
+
24
+ //# sourceMappingURL=SimpleLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/router/components/SimpleLink.js","sources":["../../../../src/presentation/router/components/SimpleLink.tsx"],"sourcesContent":["import React from \"react\";\nimport { makeDecoratable } from \"@webiny/react-composition\";\nimport { RouterGateway } from \"~/features/router/abstractions.js\";\nimport { useContainer } from \"~/shared/di/DiContainerProvider.js\";\n\ntype BaseAnchorAttributes = Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, \"href\">;\n\nexport type SimpleLinkProps = BaseAnchorAttributes & {\n to: string;\n};\n\nexport const SimpleLink = makeDecoratable(\n \"SimpleLink\",\n ({ children, to, ...rest }: SimpleLinkProps) => {\n const container = useContainer();\n\n const routerGateway = container.resolve(RouterGateway);\n\n const handleClick = (event: React.MouseEvent<HTMLAnchorElement>) => {\n // Respect cmd+click / ctrl+click / middle click → open in new tab\n if (\n event.defaultPrevented ||\n event.button !== 0 ||\n event.metaKey ||\n event.altKey ||\n event.ctrlKey ||\n event.shiftKey ||\n rest.target === \"_blank\"\n ) {\n return;\n }\n\n event.preventDefault();\n routerGateway.pushState(to);\n };\n\n const onClick = rest.onClick ?? handleClick;\n\n return (\n <a href={to} rel=\"noreferrer noopener\" {...rest} onClick={onClick}>\n {children}\n </a>\n );\n }\n);\n\nexport const LinkComponent = SimpleLink;\n"],"names":["SimpleLink","makeDecoratable","children","to","rest","container","useContainer","routerGateway","RouterGateway","handleClick","event","onClick","LinkComponent"],"mappings":";;;;AAWO,MAAMA,aAAaC,gBACtB,cACA,CAAC,EAAEC,QAAQ,EAAEC,EAAE,EAAE,GAAGC,MAAuB;IACvC,MAAMC,YAAYC;IAElB,MAAMC,gBAAgBF,UAAU,OAAO,CAACG;IAExC,MAAMC,cAAc,CAACC;QAEjB,IACIA,MAAM,gBAAgB,IACtBA,AAAiB,MAAjBA,MAAM,MAAM,IACZA,MAAM,OAAO,IACbA,MAAM,MAAM,IACZA,MAAM,OAAO,IACbA,MAAM,QAAQ,IACdN,AAAgB,aAAhBA,KAAK,MAAM,EAEX;QAGJM,MAAM,cAAc;QACpBH,cAAc,SAAS,CAACJ;IAC5B;IAEA,MAAMQ,UAAUP,KAAK,OAAO,IAAIK;IAEhC,OAAO,WAAP,GACI,oBAAC;QAAE,MAAMN;QAAI,KAAI;QAAuB,GAAGC,IAAI;QAAE,SAASO;OACrDT;AAGb;AAGG,MAAMU,gBAAgBZ"}
@@ -0,0 +1,6 @@
1
+ import type { Route, RouteParamsDefinition, RouteParamsInfer } from "../../../features/router/Route.js";
2
+ import { MatchedRoute } from "../../../features/router/abstractions.js";
3
+ export declare function useRoute<TParams extends RouteParamsDefinition | undefined = undefined>(route?: Route<TParams>): {
4
+ route: MatchedRoute<TParams extends RouteParamsDefinition ? RouteParamsInfer<TParams> : undefined>;
5
+ setRouteParams: <T extends Record<string, any>>(cb: (params: T) => T) => void;
6
+ };
@@ -0,0 +1,22 @@
1
+ import { useEffect, useState } from "react";
2
+ import { autorun } from "mobx";
3
+ import { RouterFeature } from "../../../features/router/feature.js";
4
+ import { useFeature } from "../../../shared/di/useFeature.js";
5
+ function useRoute(route) {
6
+ const { presenter } = useFeature(RouterFeature);
7
+ const [currentRoute, setCurrentRoute] = useState(presenter.vm.currentRoute);
8
+ useEffect(()=>{
9
+ autorun(()=>{
10
+ const route = presenter.vm.currentRoute;
11
+ if (!route) return;
12
+ setCurrentRoute(route);
13
+ });
14
+ }, []);
15
+ return {
16
+ route: currentRoute,
17
+ setRouteParams: presenter.setRouteParams.bind(presenter)
18
+ };
19
+ }
20
+ export { useRoute };
21
+
22
+ //# sourceMappingURL=useRoute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/router/hooks/useRoute.js","sources":["../../../../src/presentation/router/hooks/useRoute.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { autorun } from \"mobx\";\nimport type { Route, RouteParamsDefinition, RouteParamsInfer } from \"~/features/router/Route.js\";\nimport { MatchedRoute } from \"~/features/router/abstractions.js\";\nimport { RouterFeature } from \"~/features/router/feature.js\";\nimport { useFeature } from \"~/shared/di/useFeature.js\";\n\nexport function useRoute<TParams extends RouteParamsDefinition | undefined = undefined>(\n // oxlint-disable-next-line typescript/no-unused-vars\n route?: Route<TParams>\n) {\n const { presenter } = useFeature(RouterFeature);\n const [currentRoute, setCurrentRoute] = useState<MatchedRoute | undefined>(\n presenter.vm.currentRoute\n );\n\n useEffect(() => {\n autorun(() => {\n const route = presenter.vm.currentRoute;\n\n if (!route) {\n return;\n }\n\n setCurrentRoute(route);\n });\n }, []);\n\n // TODO: add validation (the requested route must match the current route)\n\n return {\n route: currentRoute as MatchedRoute<\n TParams extends RouteParamsDefinition ? RouteParamsInfer<TParams> : undefined\n >,\n setRouteParams: presenter.setRouteParams.bind(presenter)\n };\n}\n"],"names":["useRoute","route","presenter","useFeature","RouterFeature","currentRoute","setCurrentRoute","useState","useEffect","autorun"],"mappings":";;;;AAOO,SAASA,SAEZC,KAAsB;IAEtB,MAAM,EAAEC,SAAS,EAAE,GAAGC,WAAWC;IACjC,MAAM,CAACC,cAAcC,gBAAgB,GAAGC,SACpCL,UAAU,EAAE,CAAC,YAAY;IAG7BM,UAAU;QACNC,QAAQ;YACJ,MAAMR,QAAQC,UAAU,EAAE,CAAC,YAAY;YAEvC,IAAI,CAACD,OACD;YAGJK,gBAAgBL;QACpB;IACJ,GAAG,EAAE;IAIL,OAAO;QACH,OAAOI;QAGP,gBAAgBH,UAAU,cAAc,CAAC,IAAI,CAACA;IAClD;AACJ"}
@@ -0,0 +1,11 @@
1
+ import { type ReactRoute } from "../../../presentation/router/index.js";
2
+ export declare const useRouter: () => {
3
+ goToRoute: <TParams extends import("../../../features/router/Route").RouteParamsDefinition | undefined>(route: import("../../..").Route<TParams>, ...args: import("../../../features/router/abstractions").RouteParamsArgs<TParams>) => void;
4
+ getLink: <TParams extends import("../../../features/router/Route").RouteParamsDefinition | undefined>(route: import("../../..").Route<TParams>, ...args: import("../../../features/router/abstractions").RouteParamsArgs<TParams>) => string;
5
+ addTransitionGuard: (config: import("../../../features/router").RouteTransitionGuardConfig) => import("../../../features/router").GuardDisposer;
6
+ isTransitionBlocked: () => boolean;
7
+ unblockTransition: () => void;
8
+ confirmTransition: () => void;
9
+ cancelTransition: () => void;
10
+ setRoutes: (routes: ReactRoute[]) => void;
11
+ };
@@ -0,0 +1,29 @@
1
+ import { RouteElementRegistry } from "../index.js";
2
+ import { RouterFeature } from "../../../features/router/feature.js";
3
+ import { useFeature } from "../../../shared/di/useFeature.js";
4
+ import { useContainer } from "../../../shared/di/DiContainerProvider.js";
5
+ const useRouter = ()=>{
6
+ const { presenter } = useFeature(RouterFeature);
7
+ const container = useContainer();
8
+ const registry = container.resolve(RouteElementRegistry);
9
+ return {
10
+ goToRoute: presenter.goToRoute.bind(presenter),
11
+ getLink: presenter.getLink.bind(presenter),
12
+ addTransitionGuard: presenter.addTransitionGuard.bind(presenter),
13
+ isTransitionBlocked: presenter.isTransitionBlocked.bind(presenter),
14
+ unblockTransition: presenter.unblockTransition.bind(presenter),
15
+ confirmTransition: presenter.confirmTransition.bind(presenter),
16
+ cancelTransition: presenter.cancelTransition.bind(presenter),
17
+ setRoutes: (routes)=>{
18
+ const cleanRoutes = [];
19
+ for (const route of routes){
20
+ cleanRoutes.push(route.route);
21
+ registry.register(route.route.name, route.element);
22
+ }
23
+ presenter.bootstrap(cleanRoutes);
24
+ }
25
+ };
26
+ };
27
+ export { useRouter };
28
+
29
+ //# sourceMappingURL=useRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/router/hooks/useRouter.js","sources":["../../../../src/presentation/router/hooks/useRouter.ts"],"sourcesContent":["import { type ReactRoute, RouteElementRegistry } from \"~/presentation/router/index.js\";\nimport { RouterFeature } from \"~/features/router/feature.js\";\nimport { useFeature } from \"~/shared/di/useFeature.js\";\nimport { useContainer } from \"~/shared/di/DiContainerProvider.js\";\n\nexport const useRouter = () => {\n const { presenter } = useFeature(RouterFeature);\n const container = useContainer();\n const registry = container.resolve(RouteElementRegistry);\n\n return {\n goToRoute: presenter.goToRoute.bind(presenter),\n getLink: presenter.getLink.bind(presenter),\n addTransitionGuard: presenter.addTransitionGuard.bind(presenter),\n isTransitionBlocked: presenter.isTransitionBlocked.bind(presenter),\n unblockTransition: presenter.unblockTransition.bind(presenter),\n confirmTransition: presenter.confirmTransition.bind(presenter),\n cancelTransition: presenter.cancelTransition.bind(presenter),\n setRoutes: (routes: ReactRoute[]) => {\n const cleanRoutes = [];\n\n for (const route of routes) {\n cleanRoutes.push(route.route);\n registry.register(route.route.name, route.element);\n }\n\n presenter.bootstrap(cleanRoutes);\n }\n };\n};\n"],"names":["useRouter","presenter","useFeature","RouterFeature","container","useContainer","registry","RouteElementRegistry","routes","cleanRoutes","route"],"mappings":";;;;AAKO,MAAMA,YAAY;IACrB,MAAM,EAAEC,SAAS,EAAE,GAAGC,WAAWC;IACjC,MAAMC,YAAYC;IAClB,MAAMC,WAAWF,UAAU,OAAO,CAACG;IAEnC,OAAO;QACH,WAAWN,UAAU,SAAS,CAAC,IAAI,CAACA;QACpC,SAASA,UAAU,OAAO,CAAC,IAAI,CAACA;QAChC,oBAAoBA,UAAU,kBAAkB,CAAC,IAAI,CAACA;QACtD,qBAAqBA,UAAU,mBAAmB,CAAC,IAAI,CAACA;QACxD,mBAAmBA,UAAU,iBAAiB,CAAC,IAAI,CAACA;QACpD,mBAAmBA,UAAU,iBAAiB,CAAC,IAAI,CAACA;QACpD,kBAAkBA,UAAU,gBAAgB,CAAC,IAAI,CAACA;QAClD,WAAW,CAACO;YACR,MAAMC,cAAc,EAAE;YAEtB,KAAK,MAAMC,SAASF,OAAQ;gBACxBC,YAAY,IAAI,CAACC,MAAM,KAAK;gBAC5BJ,SAAS,QAAQ,CAACI,MAAM,KAAK,CAAC,IAAI,EAAEA,MAAM,OAAO;YACrD;YAEAT,UAAU,SAAS,CAACQ;QACxB;IACJ;AACJ"}
@@ -0,0 +1,4 @@
1
+ export { useRouter } from "./hooks/useRouter.js";
2
+ export { useRoute } from "./hooks/useRoute.js";
3
+ export { RouteElementRegistry } from "./abstractions.js";
4
+ export type { ReactRoute } from "./types.js";
@@ -0,0 +1,3 @@
1
+ export { useRouter } from "./hooks/useRouter.js";
2
+ export { useRoute } from "./hooks/useRoute.js";
3
+ export { RouteElementRegistry } from "./abstractions.js";
@@ -0,0 +1,5 @@
1
+ import type { Route } from "../../features/router/Route.js";
2
+ export type ReactRoute = {
3
+ route: Route<any>;
4
+ element: React.JSX.Element;
5
+ };
File without changes
package/renderApp.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ import type { Root } from "react-dom/client";
2
+ export declare const renderApp: (app: React.JSX.Element) => Root;
package/renderApp.js ADDED
@@ -0,0 +1,10 @@
1
+ import client from "react-dom/client";
2
+ const renderApp = (app)=>{
3
+ const container = document.getElementById("root");
4
+ const root = client.createRoot(container);
5
+ root.render(app);
6
+ return root;
7
+ };
8
+ export { renderApp };
9
+
10
+ //# sourceMappingURL=renderApp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderApp.js","sources":["../src/renderApp.tsx"],"sourcesContent":["import type { Root } from \"react-dom/client\";\nimport ReactDOMClient from \"react-dom/client\";\n\nexport const renderApp = (app: React.JSX.Element): Root => {\n const container = document.getElementById(\"root\")!;\n\n const root = ReactDOMClient.createRoot(container);\n root.render(app);\n return root;\n};\n"],"names":["renderApp","app","container","document","root","ReactDOMClient"],"mappings":";AAGO,MAAMA,YAAY,CAACC;IACtB,MAAMC,YAAYC,SAAS,cAAc,CAAC;IAE1C,MAAMC,OAAOC,OAAAA,UAAyB,CAACH;IACvCE,KAAK,MAAM,CAACH;IACZ,OAAOG;AACX"}
package/router.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ export { Route } from "./features/router/Route.js";
2
+ export { useRouter } from "./presentation/router/hooks/useRouter.js";
3
+ export { useRoute } from "./presentation/router/hooks/useRoute.js";
4
+ export { RouteLink, type RouteLinkProps } from "./presentation/router/components/RouteLink.js";
5
+ export { SimpleLink, type SimpleLinkProps } from "./presentation/router/components/SimpleLink.js";
package/router.js ADDED
@@ -0,0 +1,5 @@
1
+ export { Route } from "./features/router/Route.js";
2
+ export { useRouter } from "./presentation/router/hooks/useRouter.js";
3
+ export { useRoute } from "./presentation/router/hooks/useRoute.js";
4
+ export { RouteLink } from "./presentation/router/components/RouteLink.js";
5
+ export { SimpleLink } from "./presentation/router/components/SimpleLink.js";
@@ -0,0 +1,14 @@
1
+ var __webpack_require__ = {};
2
+ (()=>{
3
+ __webpack_require__.g = (()=>{
4
+ if ('object' == typeof globalThis) return globalThis;
5
+ try {
6
+ return this || new Function('return this')();
7
+ } catch (e) {
8
+ if ('object' == typeof window) return window;
9
+ }
10
+ })();
11
+ })();
12
+ export { __webpack_require__ };
13
+
14
+ //# sourceMappingURL=rslib-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rslib-runtime.js","sources":["webpack://webpack/runtime/global"],"sourcesContent":["__webpack_require__.g = (() => {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();"],"names":["__webpack_require__","globalThis","Function","e","window"],"mappings":";;IAAAA,oBAAoB,CAAC,GAAG,AAAC;QACxB,IAAI,AAAsB,YAAtB,OAAOC,YAAyB,OAAOA;QAC3C,IAAI;YACH,OAAO,IAAI,IAAI,IAAIC,SAAS;QAC7B,EAAE,OAAOC,GAAG;YACX,IAAI,AAAkB,YAAlB,OAAOC,QAAqB,OAAOA;QACxC;IACD"}
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import { Container } from "@webiny/di";
3
+ export interface DiContainerProviderProps {
4
+ container: Container;
5
+ children: React.ReactNode;
6
+ }
7
+ export declare const DiContainerProvider: ({ container, children }: DiContainerProviderProps) => React.JSX.Element;
8
+ export declare const useContainer: () => Container;
@@ -0,0 +1,13 @@
1
+ import react from "react";
2
+ import { createGenericContext } from "../../utils/createGenericContext.js";
3
+ const DiContainerContext = createGenericContext("DiContainer");
4
+ const DiContainerProvider = ({ container, children })=>/*#__PURE__*/ react.createElement(DiContainerContext.Provider, {
5
+ container: container
6
+ }, children);
7
+ const useContainer = ()=>{
8
+ const context = DiContainerContext.useHook();
9
+ return context.container;
10
+ };
11
+ export { DiContainerProvider, useContainer };
12
+
13
+ //# sourceMappingURL=DiContainerProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared/di/DiContainerProvider.js","sources":["../../../src/shared/di/DiContainerProvider.tsx"],"sourcesContent":["import React from \"react\";\nimport { Container } from \"@webiny/di\";\nimport { createGenericContext } from \"~/utils/createGenericContext.js\";\n\ntype DiContainerContext = { container: Container };\n\nconst DiContainerContext = createGenericContext<DiContainerContext>(\"DiContainer\");\n\nexport interface DiContainerProviderProps {\n container: Container;\n children: React.ReactNode;\n}\n\nexport const DiContainerProvider = ({ container, children }: DiContainerProviderProps) => {\n return (\n <DiContainerContext.Provider container={container}>{children}</DiContainerContext.Provider>\n );\n};\n\nexport const useContainer = () => {\n const context = DiContainerContext.useHook();\n\n return context.container;\n};\n"],"names":["DiContainerContext","createGenericContext","DiContainerProvider","container","children","useContainer","context"],"mappings":";;AAMA,MAAMA,qBAAqBC,qBAAyC;AAO7D,MAAMC,sBAAsB,CAAC,EAAEC,SAAS,EAAEC,QAAQ,EAA4B,GAC1E,WAAP,GACI,oBAACJ,mBAAmB,QAAQ;QAAC,WAAWG;OAAYC;AAIrD,MAAMC,eAAe;IACxB,MAAMC,UAAUN,mBAAmB,OAAO;IAE1C,OAAOM,QAAQ,SAAS;AAC5B"}
@@ -0,0 +1,11 @@
1
+ import { Container } from "@webiny/di";
2
+ export interface FeatureDefinition<TExports = any, TParams extends any[] = []> {
3
+ name: string;
4
+ register: (container: Container, ...args: TParams) => void;
5
+ resolve: (container: Container) => TExports;
6
+ }
7
+ export declare function createFeature<TExports = any, TParams extends any[] = []>(def: {
8
+ name: string;
9
+ register: (container: Container, ...args: TParams) => void;
10
+ resolve: (container: Container) => TExports;
11
+ }): FeatureDefinition<TExports, TParams>;
@@ -0,0 +1,10 @@
1
+ function createFeature(def) {
2
+ return {
3
+ name: def.name,
4
+ register: def.register,
5
+ resolve: (container)=>def.resolve(container)
6
+ };
7
+ }
8
+ export { createFeature };
9
+
10
+ //# sourceMappingURL=createFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared/di/createFeature.js","sources":["../../../src/shared/di/createFeature.ts"],"sourcesContent":["import { Container } from \"@webiny/di\";\n\nexport interface FeatureDefinition<TExports = any, TParams extends any[] = []> {\n name: string;\n register: (container: Container, ...args: TParams) => void;\n resolve: (container: Container) => TExports;\n}\n\nexport function createFeature<\n TExports = any,\n TParams extends any[] = [] // tuple for extra args\n>(def: {\n name: string;\n register: (container: Container, ...args: TParams) => void;\n resolve: (container: Container) => TExports;\n}): FeatureDefinition<TExports, TParams> {\n return {\n name: def.name,\n register: def.register,\n resolve: (container: Container): TExports => {\n return def.resolve(container);\n }\n };\n}\n"],"names":["createFeature","def","container"],"mappings":"AAQO,SAASA,cAGdC,GAID;IACG,OAAO;QACH,MAAMA,IAAI,IAAI;QACd,UAAUA,IAAI,QAAQ;QACtB,SAAS,CAACC,YACCD,IAAI,OAAO,CAACC;IAE3B;AACJ"}
@@ -0,0 +1,2 @@
1
+ import { FeatureDefinition } from "./createFeature.js";
2
+ export declare function useFeature<TExports>(feature: FeatureDefinition<TExports, any[]>): TExports;