@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,61 @@
1
+ class BrowserLocalStorageGateway {
2
+ get(key) {
3
+ const value = window.localStorage.getItem(key);
4
+ try {
5
+ return value ? JSON.parse(value) : null;
6
+ } catch {
7
+ return value;
8
+ }
9
+ }
10
+ set(key, value) {
11
+ const serialized = "string" == typeof value ? value : JSON.stringify(value);
12
+ window.localStorage.setItem(key, serialized);
13
+ window.dispatchEvent(new CustomEvent("localstorage:changed", {
14
+ detail: {
15
+ key,
16
+ value,
17
+ action: "set"
18
+ }
19
+ }));
20
+ }
21
+ remove(key) {
22
+ window.localStorage.removeItem(key);
23
+ window.dispatchEvent(new CustomEvent("localstorage:changed", {
24
+ detail: {
25
+ key,
26
+ action: "remove"
27
+ }
28
+ }));
29
+ }
30
+ clear() {
31
+ window.localStorage.clear();
32
+ window.dispatchEvent(new CustomEvent("localstorage:changed", {
33
+ detail: {
34
+ action: "clear"
35
+ }
36
+ }));
37
+ }
38
+ getAll() {
39
+ const result = {};
40
+ for(let i = 0; i < window.localStorage.length; i++){
41
+ const key = window.localStorage.key(i);
42
+ const val = this.get(key);
43
+ if (null !== val) result[key] = val;
44
+ }
45
+ return result;
46
+ }
47
+ subscribe(listener) {
48
+ const handler = (ev)=>{
49
+ if (ev instanceof StorageEvent || ev instanceof CustomEvent) listener(ev);
50
+ };
51
+ window.addEventListener("storage", handler);
52
+ window.addEventListener("localstorage:changed", handler);
53
+ return ()=>{
54
+ window.removeEventListener("storage", handler);
55
+ window.removeEventListener("localstorage:changed", handler);
56
+ };
57
+ }
58
+ }
59
+ export { BrowserLocalStorageGateway };
60
+
61
+ //# sourceMappingURL=BrowserLocalStorageGateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/localStorage/BrowserLocalStorageGateway.js","sources":["../../../src/features/localStorage/BrowserLocalStorageGateway.ts"],"sourcesContent":["import { ILocalStorageGateway } from \"./abstractions.js\";\n\nexport class BrowserLocalStorageGateway implements ILocalStorageGateway {\n get<T = string>(key: string): T | null {\n const value = window.localStorage.getItem(key);\n try {\n return value ? (JSON.parse(value) as T) : null;\n } catch {\n return value as unknown as T;\n }\n }\n\n set<T = string>(key: string, value: T): void {\n const serialized = typeof value === \"string\" ? value : JSON.stringify(value);\n window.localStorage.setItem(key, serialized);\n\n // Dispatch local event so same-tab listeners are notified.\n window.dispatchEvent(\n new CustomEvent(\"localstorage:changed\", {\n detail: { key, value, action: \"set\" }\n })\n );\n }\n\n remove(key: string): void {\n window.localStorage.removeItem(key);\n window.dispatchEvent(\n new CustomEvent(\"localstorage:changed\", {\n detail: { key, action: \"remove\" }\n })\n );\n }\n\n clear(): void {\n window.localStorage.clear();\n window.dispatchEvent(\n new CustomEvent(\"localstorage:changed\", {\n detail: { action: \"clear\" }\n })\n );\n }\n\n getAll(): Record<string, unknown> {\n const result: Record<string, unknown> = {};\n for (let i = 0; i < window.localStorage.length; i++) {\n const key = window.localStorage.key(i)!;\n const val = this.get(key);\n if (val !== null) {\n result[key] = val;\n }\n }\n return result;\n }\n\n // Subscribe to changes (cross-tab + same-tab)\n subscribe(listener: (event: StorageEvent | CustomEvent) => void): () => void {\n const handler = (ev: Event) => {\n if (ev instanceof StorageEvent || ev instanceof CustomEvent) {\n listener(ev);\n }\n };\n window.addEventListener(\"storage\", handler);\n window.addEventListener(\"localstorage:changed\", handler as any);\n\n return () => {\n window.removeEventListener(\"storage\", handler);\n window.removeEventListener(\"localstorage:changed\", handler as any);\n };\n }\n}\n"],"names":["BrowserLocalStorageGateway","key","value","window","JSON","serialized","CustomEvent","result","i","val","listener","handler","ev","StorageEvent"],"mappings":"AAEO,MAAMA;IACT,IAAgBC,GAAW,EAAY;QACnC,MAAMC,QAAQC,OAAO,YAAY,CAAC,OAAO,CAACF;QAC1C,IAAI;YACA,OAAOC,QAASE,KAAK,KAAK,CAACF,SAAe;QAC9C,EAAE,OAAM;YACJ,OAAOA;QACX;IACJ;IAEA,IAAgBD,GAAW,EAAEC,KAAQ,EAAQ;QACzC,MAAMG,aAAa,AAAiB,YAAjB,OAAOH,QAAqBA,QAAQE,KAAK,SAAS,CAACF;QACtEC,OAAO,YAAY,CAAC,OAAO,CAACF,KAAKI;QAGjCF,OAAO,aAAa,CAChB,IAAIG,YAAY,wBAAwB;YACpC,QAAQ;gBAAEL;gBAAKC;gBAAO,QAAQ;YAAM;QACxC;IAER;IAEA,OAAOD,GAAW,EAAQ;QACtBE,OAAO,YAAY,CAAC,UAAU,CAACF;QAC/BE,OAAO,aAAa,CAChB,IAAIG,YAAY,wBAAwB;YACpC,QAAQ;gBAAEL;gBAAK,QAAQ;YAAS;QACpC;IAER;IAEA,QAAc;QACVE,OAAO,YAAY,CAAC,KAAK;QACzBA,OAAO,aAAa,CAChB,IAAIG,YAAY,wBAAwB;YACpC,QAAQ;gBAAE,QAAQ;YAAQ;QAC9B;IAER;IAEA,SAAkC;QAC9B,MAAMC,SAAkC,CAAC;QACzC,IAAK,IAAIC,IAAI,GAAGA,IAAIL,OAAO,YAAY,CAAC,MAAM,EAAEK,IAAK;YACjD,MAAMP,MAAME,OAAO,YAAY,CAAC,GAAG,CAACK;YACpC,MAAMC,MAAM,IAAI,CAAC,GAAG,CAACR;YACrB,IAAIQ,AAAQ,SAARA,KACAF,MAAM,CAACN,IAAI,GAAGQ;QAEtB;QACA,OAAOF;IACX;IAGA,UAAUG,QAAqD,EAAc;QACzE,MAAMC,UAAU,CAACC;YACb,IAAIA,cAAcC,gBAAgBD,cAAcN,aAC5CI,SAASE;QAEjB;QACAT,OAAO,gBAAgB,CAAC,WAAWQ;QACnCR,OAAO,gBAAgB,CAAC,wBAAwBQ;QAEhD,OAAO;YACHR,OAAO,mBAAmB,CAAC,WAAWQ;YACtCR,OAAO,mBAAmB,CAAC,wBAAwBQ;QACvD;IACJ;AACJ"}
@@ -0,0 +1,12 @@
1
+ import { LocalStorage as LocalStorageAbstraction, LocalStorageRepository } from "./abstractions.js";
2
+ declare class LocalStorageImpl implements LocalStorageAbstraction.Interface {
3
+ private readonly repo;
4
+ constructor(repo: LocalStorageRepository.Interface);
5
+ get<T = string>(key: string): T | undefined;
6
+ set<T = string>(key: string, value: T): void;
7
+ remove(key: string): void;
8
+ clear(): void;
9
+ keys(): string[];
10
+ }
11
+ export declare const LocalStorage: import("@webiny/di").Implementation<typeof LocalStorageImpl>;
12
+ export {};
@@ -0,0 +1,34 @@
1
+ import { makeAutoObservable } from "mobx";
2
+ import { LocalStorage, LocalStorageRepository } from "./abstractions.js";
3
+ import { createImplementation } from "@webiny/di";
4
+ class LocalStorageImpl {
5
+ constructor(repo){
6
+ this.repo = repo;
7
+ makeAutoObservable(this);
8
+ }
9
+ get(key) {
10
+ return this.repo.get(key);
11
+ }
12
+ set(key, value) {
13
+ this.repo.set(key, value);
14
+ }
15
+ remove(key) {
16
+ this.repo.remove(key);
17
+ }
18
+ clear() {
19
+ this.repo.clear();
20
+ }
21
+ keys() {
22
+ return this.repo.keys();
23
+ }
24
+ }
25
+ const LocalStorage_LocalStorage = createImplementation({
26
+ abstraction: LocalStorage,
27
+ implementation: LocalStorageImpl,
28
+ dependencies: [
29
+ LocalStorageRepository
30
+ ]
31
+ });
32
+ export { LocalStorage_LocalStorage as LocalStorage };
33
+
34
+ //# sourceMappingURL=LocalStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/localStorage/LocalStorage.js","sources":["../../../src/features/localStorage/LocalStorage.ts"],"sourcesContent":["import { makeAutoObservable } from \"mobx\";\nimport { LocalStorage as LocalStorageAbstraction, LocalStorageRepository } from \"./abstractions.js\";\nimport { createImplementation } from \"@webiny/di\";\n\nclass LocalStorageImpl implements LocalStorageAbstraction.Interface {\n constructor(private readonly repo: LocalStorageRepository.Interface) {\n makeAutoObservable(this);\n }\n\n get<T = string>(key: string) {\n return this.repo.get<T>(key);\n }\n set<T = string>(key: string, value: T) {\n this.repo.set(key, value);\n }\n remove(key: string) {\n this.repo.remove(key);\n }\n clear() {\n this.repo.clear();\n }\n keys() {\n return this.repo.keys();\n }\n}\n\nexport const LocalStorage = createImplementation({\n abstraction: LocalStorageAbstraction,\n implementation: LocalStorageImpl,\n dependencies: [LocalStorageRepository]\n});\n"],"names":["LocalStorageImpl","repo","makeAutoObservable","key","value","LocalStorage","createImplementation","LocalStorageAbstraction","LocalStorageRepository"],"mappings":";;;AAIA,MAAMA;IACF,YAA6BC,IAAsC,CAAE;aAAxCA,IAAI,GAAJA;QACzBC,mBAAmB,IAAI;IAC3B;IAEA,IAAgBC,GAAW,EAAE;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAIA;IAC5B;IACA,IAAgBA,GAAW,EAAEC,KAAQ,EAAE;QACnC,IAAI,CAAC,IAAI,CAAC,GAAG,CAACD,KAAKC;IACvB;IACA,OAAOD,GAAW,EAAE;QAChB,IAAI,CAAC,IAAI,CAAC,MAAM,CAACA;IACrB;IACA,QAAQ;QACJ,IAAI,CAAC,IAAI,CAAC,KAAK;IACnB;IACA,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI;IACzB;AACJ;AAEO,MAAME,4BAAeC,qBAAqB;IAC7C,aAAaC;IACb,gBAAgBP;IAChB,cAAc;QAACQ;KAAuB;AAC1C"}
@@ -0,0 +1,20 @@
1
+ import { LocalStorageRepository as LocalStorageRepositoryAbstraction, LocalStorageConfig, LocalStorageGateway } from "./abstractions.js";
2
+ export declare class LocalStorageRepositoryImpl implements LocalStorageRepositoryAbstraction.Interface {
3
+ private gateway;
4
+ private readonly prefix;
5
+ private store;
6
+ private unsubscribe?;
7
+ constructor(gateway: LocalStorageGateway.Interface, config: LocalStorageConfig.Interface);
8
+ private withPrefix;
9
+ private stripPrefix;
10
+ private bootstrap;
11
+ private subscribeToChanges;
12
+ destroy(): void;
13
+ has(key: string): boolean;
14
+ get<T = string>(key: string): T | undefined;
15
+ set<T = string>(key: string, value: T): void;
16
+ remove(key: string): void;
17
+ clear(): void;
18
+ keys(): string[];
19
+ }
20
+ export declare const LocalStorageRepository: import("@webiny/di").Implementation<typeof LocalStorageRepositoryImpl>;
@@ -0,0 +1,82 @@
1
+ import { makeAutoObservable, runInAction } from "mobx";
2
+ import { LocalStorageConfig, LocalStorageGateway, LocalStorageRepository } from "./abstractions.js";
3
+ import { createImplementation } from "@webiny/di";
4
+ class LocalStorageRepositoryImpl {
5
+ constructor(gateway, config){
6
+ this.gateway = gateway;
7
+ this.store = new Map();
8
+ this.prefix = config.prefix || "";
9
+ makeAutoObservable(this);
10
+ this.bootstrap();
11
+ this.subscribeToChanges();
12
+ }
13
+ withPrefix(key) {
14
+ return this.prefix ? `${this.prefix}:${key}` : key;
15
+ }
16
+ stripPrefix(key) {
17
+ return this.prefix ? key.replace(new RegExp(`^${this.prefix}:`), "") : key;
18
+ }
19
+ bootstrap() {
20
+ const all = this.gateway.getAll();
21
+ for (const [key, value] of Object.entries(all))if (!this.prefix || key.startsWith(this.prefix + ":")) this.store.set(this.stripPrefix(key), value);
22
+ }
23
+ subscribeToChanges() {
24
+ this.unsubscribe = this.gateway.subscribe((ev)=>{
25
+ runInAction(()=>{
26
+ if (ev instanceof StorageEvent && ev.key) {
27
+ if (!this.prefix || ev.key.startsWith(this.prefix + ":")) {
28
+ const cleanKey = this.stripPrefix(ev.key);
29
+ if (null !== ev.newValue) try {
30
+ this.store.set(cleanKey, JSON.parse(ev.newValue));
31
+ } catch {
32
+ this.store.set(cleanKey, ev.newValue);
33
+ }
34
+ else this.store.delete(cleanKey);
35
+ }
36
+ }
37
+ if (ev instanceof CustomEvent) {
38
+ const { key, value, action } = ev.detail;
39
+ if (!this.prefix || key.startsWith(this.prefix + ":")) {
40
+ const cleanKey = this.stripPrefix(key);
41
+ if ("set" === action) this.store.set(cleanKey, value);
42
+ if ("remove" === action) this.store.delete(cleanKey);
43
+ if ("clear" === action) this.store.clear();
44
+ }
45
+ }
46
+ });
47
+ });
48
+ }
49
+ destroy() {
50
+ this.unsubscribe?.();
51
+ }
52
+ has(key) {
53
+ return this.store.has(key);
54
+ }
55
+ get(key) {
56
+ return this.store.get(key);
57
+ }
58
+ set(key, value) {
59
+ this.gateway.set(this.withPrefix(key), value);
60
+ }
61
+ remove(key) {
62
+ this.gateway.remove(this.withPrefix(key));
63
+ }
64
+ clear() {
65
+ this.gateway.clear();
66
+ this.store.clear();
67
+ }
68
+ keys() {
69
+ return Array.from(this.store.keys());
70
+ }
71
+ }
72
+ const LocalStorageRepository_LocalStorageRepository = createImplementation({
73
+ abstraction: LocalStorageRepository,
74
+ implementation: LocalStorageRepositoryImpl,
75
+ dependencies: [
76
+ LocalStorageGateway,
77
+ LocalStorageConfig
78
+ ]
79
+ });
80
+ export { LocalStorageRepositoryImpl, LocalStorageRepository_LocalStorageRepository as LocalStorageRepository };
81
+
82
+ //# sourceMappingURL=LocalStorageRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/localStorage/LocalStorageRepository.js","sources":["../../../src/features/localStorage/LocalStorageRepository.ts"],"sourcesContent":["import { makeAutoObservable, runInAction } from \"mobx\";\nimport {\n LocalStorageRepository as LocalStorageRepositoryAbstraction,\n LocalStorageConfig,\n LocalStorageGateway\n} from \"./abstractions.js\";\nimport { createImplementation } from \"@webiny/di\";\n\nexport class LocalStorageRepositoryImpl implements LocalStorageRepositoryAbstraction.Interface {\n private readonly prefix: string;\n private store = new Map<string, unknown>();\n private unsubscribe?: () => void;\n\n constructor(\n private gateway: LocalStorageGateway.Interface,\n config: LocalStorageConfig.Interface\n ) {\n this.prefix = config.prefix || \"\";\n makeAutoObservable(this);\n\n this.bootstrap();\n this.subscribeToChanges();\n }\n\n private withPrefix(key: string): string {\n return this.prefix ? `${this.prefix}:${key}` : key;\n }\n\n private stripPrefix(key: string): string {\n return this.prefix ? key.replace(new RegExp(`^${this.prefix}:`), \"\") : key;\n }\n\n private bootstrap() {\n const all = this.gateway.getAll();\n for (const [key, value] of Object.entries(all)) {\n if (!this.prefix || key.startsWith(this.prefix + \":\")) {\n this.store.set(this.stripPrefix(key), value);\n }\n }\n }\n\n private subscribeToChanges() {\n this.unsubscribe = this.gateway.subscribe(ev => {\n runInAction(() => {\n if (ev instanceof StorageEvent && ev.key) {\n if (!this.prefix || ev.key.startsWith(this.prefix + \":\")) {\n const cleanKey = this.stripPrefix(ev.key);\n if (ev.newValue !== null) {\n try {\n this.store.set(cleanKey, JSON.parse(ev.newValue));\n } catch {\n this.store.set(cleanKey, ev.newValue);\n }\n } else {\n this.store.delete(cleanKey);\n }\n }\n }\n if (ev instanceof CustomEvent) {\n const { key, value, action } = ev.detail;\n if (!this.prefix || key.startsWith(this.prefix + \":\")) {\n const cleanKey = this.stripPrefix(key);\n if (action === \"set\") {\n this.store.set(cleanKey, value);\n }\n if (action === \"remove\") {\n this.store.delete(cleanKey);\n }\n if (action === \"clear\") {\n this.store.clear();\n }\n }\n }\n });\n });\n }\n\n destroy() {\n this.unsubscribe?.();\n }\n\n has(key: string) {\n return this.store.has(key);\n }\n get<T = string>(key: string) {\n return this.store.get(key) as T | undefined;\n }\n set<T = string>(key: string, value: T) {\n this.gateway.set(this.withPrefix(key), value);\n }\n remove(key: string) {\n this.gateway.remove(this.withPrefix(key));\n }\n clear() {\n this.gateway.clear();\n this.store.clear();\n }\n keys(): string[] {\n return Array.from(this.store.keys());\n }\n}\n\nexport const LocalStorageRepository = createImplementation({\n abstraction: LocalStorageRepositoryAbstraction,\n implementation: LocalStorageRepositoryImpl,\n dependencies: [LocalStorageGateway, LocalStorageConfig]\n});\n"],"names":["LocalStorageRepositoryImpl","gateway","config","Map","makeAutoObservable","key","RegExp","all","value","Object","ev","runInAction","StorageEvent","cleanKey","JSON","CustomEvent","action","Array","LocalStorageRepository","createImplementation","LocalStorageRepositoryAbstraction","LocalStorageGateway","LocalStorageConfig"],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { Abstraction } from "@webiny/di";
2
+ /** Gateway: raw IO into localStorage (or other storage). */
3
+ export interface ILocalStorageGateway {
4
+ get<T = string>(key: string): T | null;
5
+ set<T = string>(key: string, value: T): void;
6
+ remove(key: string): void;
7
+ clear(): void;
8
+ getAll(): Record<string, unknown>;
9
+ subscribe(listener: (event: StorageEvent | CustomEvent) => void): () => void;
10
+ }
11
+ export declare const LocalStorageGateway: Abstraction<ILocalStorageGateway>;
12
+ export declare namespace LocalStorageGateway {
13
+ type Interface = ILocalStorageGateway;
14
+ }
15
+ /** Repository: reactive state (MobX), synchronized with gateway. */
16
+ export interface ILocalStorageRepository {
17
+ has(key: string): boolean;
18
+ get<T = string>(key: string): T | undefined;
19
+ set<T = string>(key: string, value: T): void;
20
+ remove(key: string): void;
21
+ clear(): void;
22
+ keys(): string[];
23
+ destroy(): void;
24
+ }
25
+ export declare const LocalStorageRepository: Abstraction<ILocalStorageRepository>;
26
+ export declare namespace LocalStorageRepository {
27
+ type Interface = ILocalStorageRepository;
28
+ }
29
+ /** Config: configure key prefixes, etc. */
30
+ export interface ILocalStorageConfig {
31
+ prefix?: string;
32
+ }
33
+ export declare const LocalStorageConfig: Abstraction<ILocalStorageConfig>;
34
+ export declare namespace LocalStorageConfig {
35
+ type Interface = ILocalStorageConfig;
36
+ }
37
+ /** Service: thin façade, delegates to repository for consumers. */
38
+ export interface ILocalStorage {
39
+ get<T = string>(key: string): T | undefined;
40
+ set<T = string>(key: string, value: T): void;
41
+ remove(key: string): void;
42
+ clear(): void;
43
+ keys(): string[];
44
+ }
45
+ export declare const LocalStorage: Abstraction<ILocalStorage>;
46
+ export declare namespace LocalStorage {
47
+ type Interface = ILocalStorage;
48
+ }
@@ -0,0 +1,8 @@
1
+ import { Abstraction } from "@webiny/di";
2
+ const LocalStorageGateway = new Abstraction("LocalStorageGateway");
3
+ const LocalStorageRepository = new Abstraction("LocalStorageRepository");
4
+ const LocalStorageConfig = new Abstraction("LocalStorageConfig");
5
+ const LocalStorage = new Abstraction("LocalStorage");
6
+ export { LocalStorage, LocalStorageConfig, LocalStorageGateway, LocalStorageRepository };
7
+
8
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/localStorage/abstractions.js","sources":["../../../src/features/localStorage/abstractions.ts"],"sourcesContent":["import { Abstraction } from \"@webiny/di\";\n\n/** Gateway: raw IO into localStorage (or other storage). */\nexport interface ILocalStorageGateway {\n get<T = string>(key: string): T | null;\n set<T = string>(key: string, value: T): void;\n remove(key: string): void;\n clear(): void;\n getAll(): Record<string, unknown>;\n subscribe(listener: (event: StorageEvent | CustomEvent) => void): () => void;\n}\n\nexport const LocalStorageGateway = new Abstraction<ILocalStorageGateway>(\"LocalStorageGateway\");\n\nexport namespace LocalStorageGateway {\n export type Interface = ILocalStorageGateway;\n}\n\n/** Repository: reactive state (MobX), synchronized with gateway. */\nexport interface ILocalStorageRepository {\n has(key: string): boolean;\n get<T = string>(key: string): T | undefined;\n set<T = string>(key: string, value: T): void;\n remove(key: string): void;\n clear(): void;\n keys(): string[];\n destroy(): void;\n}\n\nexport const LocalStorageRepository = new Abstraction<ILocalStorageRepository>(\n \"LocalStorageRepository\"\n);\n\nexport namespace LocalStorageRepository {\n export type Interface = ILocalStorageRepository;\n}\n\n/** Config: configure key prefixes, etc. */\nexport interface ILocalStorageConfig {\n prefix?: string;\n}\n\nexport const LocalStorageConfig = new Abstraction<ILocalStorageConfig>(\"LocalStorageConfig\");\n\nexport namespace LocalStorageConfig {\n export type Interface = ILocalStorageConfig;\n}\n\n/** Service: thin façade, delegates to repository for consumers. */\nexport interface ILocalStorage {\n get<T = string>(key: string): T | undefined;\n set<T = string>(key: string, value: T): void;\n remove(key: string): void;\n clear(): void;\n keys(): string[];\n}\n\nexport const LocalStorage = new Abstraction<ILocalStorage>(\"LocalStorage\");\n\nexport namespace LocalStorage {\n export type Interface = ILocalStorage;\n}\n"],"names":["LocalStorageGateway","Abstraction","LocalStorageRepository","LocalStorageConfig","LocalStorage"],"mappings":";AAYO,MAAMA,sBAAsB,IAAIC,YAAkC;AAiBlE,MAAMC,yBAAyB,IAAID,YACtC;AAYG,MAAME,qBAAqB,IAAIF,YAAiC;AAehE,MAAMG,eAAe,IAAIH,YAA2B"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * LocalStorageFeature wires together:
3
+ * - BrowserLocalStorageGateway (default gateway)
4
+ * - LocalStorageRepository (reactive MobX mirror)
5
+ * - LocalStorage (thin consumer-facing facade)
6
+ */
7
+ export declare const LocalStorageFeature: import("~/shared/di/createFeature.js").FeatureDefinition<{
8
+ localStorageService: import("./abstractions.js").ILocalStorage;
9
+ localStorageConfig: import("./abstractions.js").ILocalStorageConfig;
10
+ }, [config?: {
11
+ prefix?: string;
12
+ } | undefined]>;
@@ -0,0 +1,23 @@
1
+ import { LocalStorage, LocalStorageConfig, LocalStorageGateway } from "./abstractions.js";
2
+ import { BrowserLocalStorageGateway } from "./BrowserLocalStorageGateway.js";
3
+ import { LocalStorageRepository } from "./LocalStorageRepository.js";
4
+ import { LocalStorage as external_LocalStorage_js_LocalStorage } from "./LocalStorage.js";
5
+ import { createFeature } from "../../shared/di/createFeature.js";
6
+ const LocalStorageFeature = createFeature({
7
+ name: "LocalStorage",
8
+ register (container, config = {}) {
9
+ container.registerInstance(LocalStorageConfig, config);
10
+ container.registerInstance(LocalStorageGateway, new BrowserLocalStorageGateway());
11
+ container.register(LocalStorageRepository).inSingletonScope();
12
+ container.register(external_LocalStorage_js_LocalStorage).inSingletonScope();
13
+ },
14
+ resolve (container) {
15
+ return {
16
+ localStorageService: container.resolve(LocalStorage),
17
+ localStorageConfig: container.resolve(LocalStorageConfig)
18
+ };
19
+ }
20
+ });
21
+ export { LocalStorageFeature };
22
+
23
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/localStorage/feature.js","sources":["../../../src/features/localStorage/feature.ts"],"sourcesContent":["import {\n LocalStorageConfig,\n LocalStorageGateway,\n LocalStorage as Abstraction\n} from \"./abstractions.js\";\nimport { BrowserLocalStorageGateway } from \"./BrowserLocalStorageGateway.js\";\nimport { LocalStorageRepository } from \"./LocalStorageRepository.js\";\nimport { LocalStorage } from \"./LocalStorage.js\";\nimport { createFeature } from \"~/shared/di/createFeature.js\";\n\n/**\n * LocalStorageFeature wires together:\n * - BrowserLocalStorageGateway (default gateway)\n * - LocalStorageRepository (reactive MobX mirror)\n * - LocalStorage (thin consumer-facing facade)\n */\nexport const LocalStorageFeature = createFeature({\n name: \"LocalStorage\",\n register(container, config: { prefix?: string } = {}) {\n // Register config (tenant prefix, etc.)\n container.registerInstance(LocalStorageConfig, config);\n\n // Gateway: browser localStorage\n container.registerInstance(LocalStorageGateway, new BrowserLocalStorageGateway());\n\n // Repository & Service\n container.register(LocalStorageRepository).inSingletonScope();\n container.register(LocalStorage).inSingletonScope();\n },\n resolve(container) {\n return {\n localStorageService: container.resolve(Abstraction),\n localStorageConfig: container.resolve(LocalStorageConfig)\n };\n }\n});\n"],"names":["LocalStorageFeature","createFeature","container","config","LocalStorageConfig","LocalStorageGateway","BrowserLocalStorageGateway","LocalStorageRepository","LocalStorage","Abstraction"],"mappings":";;;;;AAgBO,MAAMA,sBAAsBC,cAAc;IAC7C,MAAM;IACN,UAASC,SAAS,EAAEC,SAA8B,CAAC,CAAC;QAEhDD,UAAU,gBAAgB,CAACE,oBAAoBD;QAG/CD,UAAU,gBAAgB,CAACG,qBAAqB,IAAIC;QAGpDJ,UAAU,QAAQ,CAACK,wBAAwB,gBAAgB;QAC3DL,UAAU,QAAQ,CAACM,uCAAc,gBAAgB;IACrD;IACA,SAAQN,SAAS;QACb,OAAO;YACH,qBAAqBA,UAAU,OAAO,CAACO;YACvC,oBAAoBP,UAAU,OAAO,CAACE;QAC1C;IACJ;AACJ"}
@@ -0,0 +1 @@
1
+ export { LocalStorage, LocalStorageGateway, LocalStorageRepository, LocalStorageConfig } from "./abstractions.js";
@@ -0,0 +1 @@
1
+ export { LocalStorage, LocalStorageConfig, LocalStorageGateway, LocalStorageRepository } from "./abstractions.js";
@@ -0,0 +1,11 @@
1
+ import { MainGraphQLClient } from "./abstractions.js";
2
+ import { GraphQLClient } from "../../features/graphqlClient/abstractions.js";
3
+ import { EnvConfig } from "../../features/envConfig/index.js";
4
+ declare class MainGraphQLClientImpl implements MainGraphQLClient.Interface {
5
+ private client;
6
+ private readonly endpoint;
7
+ constructor(envConfig: EnvConfig.Interface, client: GraphQLClient.Interface);
8
+ execute<TResult = any, TVariables = any>(params: MainGraphQLClient.Request<TVariables>): Promise<TResult>;
9
+ }
10
+ export declare const DefaultMainGraphQLClient: import("@webiny/di").Implementation<typeof MainGraphQLClientImpl>;
11
+ export {};
@@ -0,0 +1,27 @@
1
+ import { createImplementation } from "@webiny/di";
2
+ import { MainGraphQLClient } from "./abstractions.js";
3
+ import { GraphQLClient } from "../graphqlClient/abstractions.js";
4
+ import { EnvConfig } from "../envConfig/index.js";
5
+ class MainGraphQLClientImpl {
6
+ constructor(envConfig, client){
7
+ this.client = client;
8
+ this.endpoint = envConfig.get("graphqlApiUrl");
9
+ }
10
+ async execute(params) {
11
+ return this.client.execute({
12
+ endpoint: this.endpoint,
13
+ ...params
14
+ });
15
+ }
16
+ }
17
+ const DefaultMainGraphQLClient = createImplementation({
18
+ abstraction: MainGraphQLClient,
19
+ implementation: MainGraphQLClientImpl,
20
+ dependencies: [
21
+ EnvConfig,
22
+ GraphQLClient
23
+ ]
24
+ });
25
+ export { DefaultMainGraphQLClient };
26
+
27
+ //# sourceMappingURL=MainGraphQLClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/mainGraphQLClient/MainGraphQLClient.js","sources":["../../../src/features/mainGraphQLClient/MainGraphQLClient.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport { MainGraphQLClient } from \"./abstractions.js\";\nimport { GraphQLClient } from \"~/features/graphqlClient/abstractions.js\";\nimport { EnvConfig } from \"~/features/envConfig/index.js\";\n\nclass MainGraphQLClientImpl implements MainGraphQLClient.Interface {\n private readonly endpoint: string;\n\n constructor(\n envConfig: EnvConfig.Interface,\n private client: GraphQLClient.Interface\n ) {\n this.endpoint = envConfig.get(\"graphqlApiUrl\");\n }\n\n async execute<TResult = any, TVariables = any>(\n params: MainGraphQLClient.Request<TVariables>\n ): Promise<TResult> {\n return this.client.execute({ endpoint: this.endpoint, ...params });\n }\n}\n\nexport const DefaultMainGraphQLClient = createImplementation({\n abstraction: MainGraphQLClient,\n implementation: MainGraphQLClientImpl,\n dependencies: [EnvConfig, GraphQLClient]\n});\n"],"names":["MainGraphQLClientImpl","envConfig","client","params","DefaultMainGraphQLClient","createImplementation","MainGraphQLClient","EnvConfig","GraphQLClient"],"mappings":";;;;AAKA,MAAMA;IAGF,YACIC,SAA8B,EACtBC,MAA+B,CACzC;aADUA,MAAM,GAANA;QAER,IAAI,CAAC,QAAQ,GAAGD,UAAU,GAAG,CAAC;IAClC;IAEA,MAAM,QACFE,MAA6C,EAC7B;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAAE,UAAU,IAAI,CAAC,QAAQ;YAAE,GAAGA,MAAM;QAAC;IACpE;AACJ;AAEO,MAAMC,2BAA2BC,qBAAqB;IACzD,aAAaC;IACb,gBAAgBN;IAChB,cAAc;QAACO;QAAWC;KAAc;AAC5C"}
@@ -0,0 +1,17 @@
1
+ import type { DocumentNode } from "graphql";
2
+ type IHeaders = Record<string, string | number | undefined>;
3
+ type MainGraphQLRequest<TVariables = any> = {
4
+ query: DocumentNode | string;
5
+ variables?: TVariables;
6
+ headers?: IHeaders;
7
+ };
8
+ export interface IMainGraphQLClient {
9
+ execute<TResult = any, TVariables = any>(params: MainGraphQLRequest<TVariables>): Promise<TResult>;
10
+ }
11
+ export declare const MainGraphQLClient: import("@webiny/di").Abstraction<IMainGraphQLClient>;
12
+ export declare namespace MainGraphQLClient {
13
+ type Headers = IHeaders;
14
+ type Interface = IMainGraphQLClient;
15
+ type Request<TVariables = any> = MainGraphQLRequest<TVariables>;
16
+ }
17
+ export {};
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/admin";
2
+ const MainGraphQLClient = createAbstraction("MainGraphQLClient");
3
+ export { MainGraphQLClient };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/mainGraphQLClient/abstractions.js","sources":["../../../src/features/mainGraphQLClient/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { DocumentNode } from \"graphql\";\n\ntype IHeaders = Record<string, string | number | undefined>;\n\ntype MainGraphQLRequest<TVariables = any> = {\n query: DocumentNode | string;\n variables?: TVariables;\n headers?: IHeaders;\n};\n\nexport interface IMainGraphQLClient {\n execute<TResult = any, TVariables = any>(\n params: MainGraphQLRequest<TVariables>\n ): Promise<TResult>;\n}\n\nexport const MainGraphQLClient = createAbstraction<IMainGraphQLClient>(\"MainGraphQLClient\");\n\nexport namespace MainGraphQLClient {\n export type Headers = IHeaders;\n export type Interface = IMainGraphQLClient;\n export type Request<TVariables = any> = MainGraphQLRequest<TVariables>;\n}\n"],"names":["MainGraphQLClient","createAbstraction"],"mappings":";AAiBO,MAAMA,oBAAoBC,kBAAsC"}
@@ -0,0 +1,3 @@
1
+ export declare const MainGraphQLClientFeature: import("~/shared/di/createFeature.js").FeatureDefinition<{
2
+ client: import("./abstractions.js").IMainGraphQLClient;
3
+ }, []>;
@@ -0,0 +1,17 @@
1
+ import { MainGraphQLClient } from "./abstractions.js";
2
+ import { DefaultMainGraphQLClient } from "./MainGraphQLClient.js";
3
+ import { createFeature } from "../../shared/di/createFeature.js";
4
+ const MainGraphQLClientFeature = createFeature({
5
+ name: "MainGraphQLClient",
6
+ register (container) {
7
+ container.register(DefaultMainGraphQLClient).inSingletonScope();
8
+ },
9
+ resolve (container) {
10
+ return {
11
+ client: container.resolve(MainGraphQLClient)
12
+ };
13
+ }
14
+ });
15
+ export { MainGraphQLClientFeature };
16
+
17
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/mainGraphQLClient/feature.js","sources":["../../../src/features/mainGraphQLClient/feature.ts"],"sourcesContent":["import { MainGraphQLClient } from \"./abstractions.js\";\nimport { DefaultMainGraphQLClient } from \"./MainGraphQLClient.js\";\nimport { createFeature } from \"~/shared/di/createFeature.js\";\n\nexport const MainGraphQLClientFeature = createFeature({\n name: \"MainGraphQLClient\",\n register(container) {\n container.register(DefaultMainGraphQLClient).inSingletonScope();\n },\n resolve(container) {\n return {\n client: container.resolve(MainGraphQLClient)\n };\n }\n});\n"],"names":["MainGraphQLClientFeature","createFeature","container","DefaultMainGraphQLClient","MainGraphQLClient"],"mappings":";;;AAIO,MAAMA,2BAA2BC,cAAc;IAClD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,0BAA0B,gBAAgB;IACjE;IACA,SAAQD,SAAS;QACb,OAAO;YACH,QAAQA,UAAU,OAAO,CAACE;QAC9B;IACJ;AACJ"}
@@ -0,0 +1 @@
1
+ export { MainGraphQLClient } from "./abstractions.js";
@@ -0,0 +1 @@
1
+ export { MainGraphQLClient } from "./abstractions.js";
@@ -0,0 +1,22 @@
1
+ import type { z } from "zod";
2
+ import type { History } from "history";
3
+ import type { RouteDefinition, RouteTransitionGuardConfig, GuardDisposer } from "./abstractions.js";
4
+ import { RouterGateway } from "./abstractions.js";
5
+ export declare class HistoryRouterGateway implements RouterGateway.Interface {
6
+ private readonly history;
7
+ private readonly router;
8
+ private stopListening;
9
+ private unblock;
10
+ private guards;
11
+ constructor(history: History, baseUrl: string);
12
+ addGuard(config: RouteTransitionGuardConfig): GuardDisposer;
13
+ goToRoute(name: string, params: z.ZodTypeAny): void;
14
+ setRoutes(routes: RouteDefinition[]): void;
15
+ destroy(): void;
16
+ pushState(url: string): void;
17
+ private resolvePathname;
18
+ private findBlockingGuard;
19
+ private installBlocker;
20
+ private removeBlocker;
21
+ private removeBlockerAndRetry;
22
+ }
@@ -0,0 +1,88 @@
1
+ import { RouteUrl } from "./RouteUrl.js";
2
+ import { Router } from "./Router.js";
3
+ class HistoryRouterGateway {
4
+ constructor(history, baseUrl){
5
+ this.guards = new Set();
6
+ this.history = history;
7
+ this.router = new Router(baseUrl);
8
+ this.stopListening = history.listen(async ({ location })=>{
9
+ const queryParams = Object.fromEntries(new URLSearchParams(location.search).entries());
10
+ this.resolvePathname(location.pathname, queryParams);
11
+ });
12
+ }
13
+ addGuard(config) {
14
+ const hadGuards = this.guards.size > 0;
15
+ this.guards.add(config);
16
+ if (!hadGuards) this.installBlocker();
17
+ return ()=>{
18
+ this.guards.delete(config);
19
+ if (0 === this.guards.size) this.removeBlocker();
20
+ };
21
+ }
22
+ goToRoute(name, params) {
23
+ const route = this.router.findRoute(name);
24
+ if (!route) return void console.warn(`Route "${name}" not found.`);
25
+ const baseUrl = this.router.getBaseUrl();
26
+ this.history.push(RouteUrl.fromPattern(route.path, params, baseUrl));
27
+ }
28
+ setRoutes(routes) {
29
+ this.router.setRoutes(routes);
30
+ const queryParams = Object.fromEntries(new URLSearchParams(this.history.location.search).entries());
31
+ const currentPathname = this.history.location.pathname;
32
+ this.resolvePathname(currentPathname, queryParams);
33
+ }
34
+ destroy() {
35
+ this.stopListening();
36
+ this.removeBlocker();
37
+ this.guards.clear();
38
+ }
39
+ pushState(url) {
40
+ this.history.push(url);
41
+ }
42
+ async resolvePathname(pathname, queryParams) {
43
+ const result = this.router.resolve(pathname, queryParams);
44
+ if (!result) return;
45
+ const { matchedRoute, onMatch } = result;
46
+ onMatch(matchedRoute);
47
+ }
48
+ findBlockingGuard() {
49
+ for (const config of this.guards)if (config.guard()) return config;
50
+ }
51
+ installBlocker() {
52
+ if (this.unblock) this.unblock();
53
+ this.unblock = this.history.block((tx)=>{
54
+ const blockingGuard = this.findBlockingGuard();
55
+ if (blockingGuard) {
56
+ let resolved = false;
57
+ blockingGuard.onBlocked({
58
+ continue: ()=>{
59
+ if (!resolved) {
60
+ resolved = true;
61
+ this.removeBlockerAndRetry(tx);
62
+ }
63
+ },
64
+ cancel: ()=>{
65
+ resolved = true;
66
+ }
67
+ });
68
+ } else this.removeBlockerAndRetry(tx);
69
+ });
70
+ }
71
+ removeBlocker() {
72
+ if (this.unblock) {
73
+ this.unblock();
74
+ this.unblock = void 0;
75
+ }
76
+ }
77
+ removeBlockerAndRetry(tx) {
78
+ this.removeBlocker();
79
+ const unlisten = this.history.listen(()=>{
80
+ unlisten();
81
+ if (this.guards.size > 0) this.installBlocker();
82
+ });
83
+ tx.retry();
84
+ }
85
+ }
86
+ export { HistoryRouterGateway };
87
+
88
+ //# sourceMappingURL=HistoryRouterGateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/router/HistoryRouterGateway.js","sources":["../../../src/features/router/HistoryRouterGateway.ts"],"sourcesContent":["import type { z } from \"zod\";\nimport type { History } from \"history\";\nimport type { RouteDefinition, RouteTransitionGuardConfig, GuardDisposer } from \"./abstractions.js\";\nimport { RouterGateway } from \"./abstractions.js\";\nimport { RouteUrl } from \"./RouteUrl.js\";\nimport { Router } from \"./Router.js\";\n\nexport class HistoryRouterGateway implements RouterGateway.Interface {\n private readonly history: History;\n private readonly router: Router;\n private stopListening: () => void;\n private unblock: (() => void) | undefined;\n private guards = new Set<RouteTransitionGuardConfig>();\n\n constructor(history: History, baseUrl: string) {\n this.history = history;\n this.router = new Router(baseUrl);\n\n this.stopListening = history.listen(async ({ location }) => {\n const queryParams = Object.fromEntries(new URLSearchParams(location.search).entries());\n this.resolvePathname(location.pathname, queryParams);\n });\n }\n\n addGuard(config: RouteTransitionGuardConfig): GuardDisposer {\n const hadGuards = this.guards.size > 0;\n this.guards.add(config);\n if (!hadGuards) {\n this.installBlocker();\n }\n return () => {\n this.guards.delete(config);\n if (this.guards.size === 0) {\n this.removeBlocker();\n }\n };\n }\n\n goToRoute(name: string, params: z.ZodTypeAny): void {\n const route = this.router.findRoute(name);\n if (!route) {\n console.warn(`Route \"${name}\" not found.`);\n return;\n }\n\n const baseUrl = this.router.getBaseUrl();\n this.history.push(RouteUrl.fromPattern(route.path, params, baseUrl));\n }\n\n setRoutes(routes: RouteDefinition[]) {\n this.router.setRoutes(routes);\n\n const queryParams = Object.fromEntries(\n new URLSearchParams(this.history.location.search).entries()\n );\n const currentPathname = this.history.location.pathname;\n this.resolvePathname(currentPathname, queryParams);\n }\n\n destroy(): void {\n this.stopListening();\n this.removeBlocker();\n this.guards.clear();\n }\n\n pushState(url: string): void {\n this.history.push(url);\n }\n\n private async resolvePathname(pathname: string, queryParams?: Record<string, unknown>) {\n const result = this.router.resolve(pathname, queryParams);\n if (!result) {\n return;\n }\n\n const { matchedRoute, onMatch } = result;\n\n onMatch(matchedRoute);\n }\n\n private findBlockingGuard(): RouteTransitionGuardConfig | undefined {\n for (const config of this.guards) {\n if (config.guard()) {\n return config;\n }\n }\n return undefined;\n }\n\n private installBlocker(): void {\n if (this.unblock) {\n this.unblock();\n }\n\n this.unblock = this.history.block(tx => {\n const blockingGuard = this.findBlockingGuard();\n if (blockingGuard) {\n let resolved = false;\n\n blockingGuard.onBlocked({\n continue: () => {\n if (!resolved) {\n resolved = true;\n this.removeBlockerAndRetry(tx);\n }\n },\n cancel: () => {\n resolved = true;\n // Do nothing — history v5 already reverted the URL.\n }\n });\n } else {\n this.removeBlockerAndRetry(tx);\n }\n });\n }\n\n private removeBlocker(): void {\n if (this.unblock) {\n this.unblock();\n this.unblock = undefined;\n }\n }\n\n private removeBlockerAndRetry(tx: { retry: () => void }): void {\n // We must remove the blocker before retrying because history v5's\n // allowTx() always returns false when any blocker is registered.\n this.removeBlocker();\n\n // Listen for the next navigation to complete, then reinstall the\n // blocker only if guards are still active.\n const unlisten = this.history.listen(() => {\n unlisten();\n if (this.guards.size > 0) {\n this.installBlocker();\n }\n });\n\n tx.retry();\n }\n}\n"],"names":["HistoryRouterGateway","history","baseUrl","Set","Router","location","queryParams","Object","URLSearchParams","config","hadGuards","name","params","route","console","RouteUrl","routes","currentPathname","url","pathname","result","matchedRoute","onMatch","tx","blockingGuard","resolved","undefined","unlisten"],"mappings":";;AAOO,MAAMA;IAOT,YAAYC,OAAgB,EAAEC,OAAe,CAAE;aAFvC,MAAM,GAAG,IAAIC;QAGjB,IAAI,CAAC,OAAO,GAAGF;QACf,IAAI,CAAC,MAAM,GAAG,IAAIG,OAAOF;QAEzB,IAAI,CAAC,aAAa,GAAGD,QAAQ,MAAM,CAAC,OAAO,EAAEI,QAAQ,EAAE;YACnD,MAAMC,cAAcC,OAAO,WAAW,CAAC,IAAIC,gBAAgBH,SAAS,MAAM,EAAE,OAAO;YACnF,IAAI,CAAC,eAAe,CAACA,SAAS,QAAQ,EAAEC;QAC5C;IACJ;IAEA,SAASG,MAAkC,EAAiB;QACxD,MAAMC,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG;QACrC,IAAI,CAAC,MAAM,CAAC,GAAG,CAACD;QAChB,IAAI,CAACC,WACD,IAAI,CAAC,cAAc;QAEvB,OAAO;YACH,IAAI,CAAC,MAAM,CAAC,MAAM,CAACD;YACnB,IAAI,AAAqB,MAArB,IAAI,CAAC,MAAM,CAAC,IAAI,EAChB,IAAI,CAAC,aAAa;QAE1B;IACJ;IAEA,UAAUE,IAAY,EAAEC,MAAoB,EAAQ;QAChD,MAAMC,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAACF;QACpC,IAAI,CAACE,OAAO,YACRC,QAAQ,IAAI,CAAC,CAAC,OAAO,EAAEH,KAAK,YAAY,CAAC;QAI7C,MAAMT,UAAU,IAAI,CAAC,MAAM,CAAC,UAAU;QACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAACa,SAAS,WAAW,CAACF,MAAM,IAAI,EAAED,QAAQV;IAC/D;IAEA,UAAUc,MAAyB,EAAE;QACjC,IAAI,CAAC,MAAM,CAAC,SAAS,CAACA;QAEtB,MAAMV,cAAcC,OAAO,WAAW,CAClC,IAAIC,gBAAgB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO;QAE7D,MAAMS,kBAAkB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ;QACtD,IAAI,CAAC,eAAe,CAACA,iBAAiBX;IAC1C;IAEA,UAAgB;QACZ,IAAI,CAAC,aAAa;QAClB,IAAI,CAAC,aAAa;QAClB,IAAI,CAAC,MAAM,CAAC,KAAK;IACrB;IAEA,UAAUY,GAAW,EAAQ;QACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAACA;IACtB;IAEA,MAAc,gBAAgBC,QAAgB,EAAEb,WAAqC,EAAE;QACnF,MAAMc,SAAS,IAAI,CAAC,MAAM,CAAC,OAAO,CAACD,UAAUb;QAC7C,IAAI,CAACc,QACD;QAGJ,MAAM,EAAEC,YAAY,EAAEC,OAAO,EAAE,GAAGF;QAElCE,QAAQD;IACZ;IAEQ,oBAA4D;QAChE,KAAK,MAAMZ,UAAU,IAAI,CAAC,MAAM,CAC5B,IAAIA,OAAO,KAAK,IACZ,OAAOA;IAInB;IAEQ,iBAAuB;QAC3B,IAAI,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,OAAO;QAGhB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAACc,CAAAA;YAC9B,MAAMC,gBAAgB,IAAI,CAAC,iBAAiB;YAC5C,IAAIA,eAAe;gBACf,IAAIC,WAAW;gBAEfD,cAAc,SAAS,CAAC;oBACpB,UAAU;wBACN,IAAI,CAACC,UAAU;4BACXA,WAAW;4BACX,IAAI,CAAC,qBAAqB,CAACF;wBAC/B;oBACJ;oBACA,QAAQ;wBACJE,WAAW;oBAEf;gBACJ;YACJ,OACI,IAAI,CAAC,qBAAqB,CAACF;QAEnC;IACJ;IAEQ,gBAAsB;QAC1B,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,OAAO;YACZ,IAAI,CAAC,OAAO,GAAGG;QACnB;IACJ;IAEQ,sBAAsBH,EAAyB,EAAQ;QAG3D,IAAI,CAAC,aAAa;QAIlB,MAAMI,WAAW,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACjCA;YACA,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,GACnB,IAAI,CAAC,cAAc;QAE3B;QAEAJ,GAAG,KAAK;IACZ;AACJ"}
@@ -0,0 +1 @@
1
+ export {};