@nascentdigital/funnel-apps 4.4.18

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 (486) hide show
  1. package/dist/react/app/domain/AppService.d.ts +19 -0
  2. package/dist/react/app/domain/AppService.js +19 -0
  3. package/dist/react/app/domain/AppServiceClient.d.ts +7 -0
  4. package/dist/react/app/domain/AppServiceClient.js +57 -0
  5. package/dist/react/app/domain/AppState.d.ts +1 -0
  6. package/dist/react/app/domain/AppState.js +2 -0
  7. package/dist/react/app/domain/index.d.ts +3 -0
  8. package/dist/react/app/domain/index.js +19 -0
  9. package/dist/react/app/server/AbstractAppService.d.ts +17 -0
  10. package/dist/react/app/server/AbstractAppService.js +24 -0
  11. package/dist/react/app/server/AppServices.d.ts +11 -0
  12. package/dist/react/app/server/AppServices.js +92 -0
  13. package/dist/react/app/server/index.d.ts +4 -0
  14. package/dist/react/app/server/index.js +20 -0
  15. package/dist/react/app/web/App.d.ts +38 -0
  16. package/dist/react/app/web/App.js +116 -0
  17. package/dist/react/app/web/AppContainer.d.ts +16 -0
  18. package/dist/react/app/web/AppContainer.js +109 -0
  19. package/dist/react/app/web/AppContext.d.ts +7 -0
  20. package/dist/react/app/web/AppContext.js +6 -0
  21. package/dist/react/app/web/AppLayout.d.ts +7 -0
  22. package/dist/react/app/web/AppLayout.js +34 -0
  23. package/dist/react/app/web/AppPage.d.ts +13 -0
  24. package/dist/react/app/web/AppPage.js +30 -0
  25. package/dist/react/app/web/AppRoot.d.ts +7 -0
  26. package/dist/react/app/web/AppRoot.js +43 -0
  27. package/dist/react/app/web/index.d.ts +5 -0
  28. package/dist/react/app/web/index.js +21 -0
  29. package/dist/react/app/web/useApp.d.ts +2 -0
  30. package/dist/react/app/web/useApp.js +33 -0
  31. package/dist/react/auth0/server/Auth0IdentityService.d.ts +25 -0
  32. package/dist/react/auth0/server/Auth0IdentityService.js +84 -0
  33. package/dist/react/auth0/server/Auth0Profile.d.ts +19 -0
  34. package/dist/react/auth0/server/Auth0Profile.js +108 -0
  35. package/dist/react/auth0/server/Auth0ProfileFactory.d.ts +15 -0
  36. package/dist/react/auth0/server/Auth0ProfileFactory.js +51 -0
  37. package/dist/react/auth0/server/Auth0ProfileManagementService.d.ts +17 -0
  38. package/dist/react/auth0/server/Auth0ProfileManagementService.js +127 -0
  39. package/dist/react/auth0/server/Auth0ProfileServices.d.ts +13 -0
  40. package/dist/react/auth0/server/Auth0ProfileServices.js +19 -0
  41. package/dist/react/auth0/server/Auth0ProfileStore.d.ts +17 -0
  42. package/dist/react/auth0/server/Auth0ProfileStore.js +83 -0
  43. package/dist/react/auth0/server/Auth0ProfileUserService.d.ts +16 -0
  44. package/dist/react/auth0/server/Auth0ProfileUserService.js +48 -0
  45. package/dist/react/auth0/server/index.d.ts +4 -0
  46. package/dist/react/auth0/server/index.js +20 -0
  47. package/dist/react/auth0/web/Auth0IdentityClient.d.ts +34 -0
  48. package/dist/react/auth0/web/Auth0IdentityClient.js +200 -0
  49. package/dist/react/auth0/web/Auth0IdentityClientProvider.d.ts +35 -0
  50. package/dist/react/auth0/web/Auth0IdentityClientProvider.js +67 -0
  51. package/dist/react/auth0/web/index.d.ts +1 -0
  52. package/dist/react/auth0/web/index.js +17 -0
  53. package/dist/react/bridge/core/BridgeConnection.d.ts +6 -0
  54. package/dist/react/bridge/core/BridgeConnection.js +2 -0
  55. package/dist/react/bridge/core/BridgeConstants.d.ts +7 -0
  56. package/dist/react/bridge/core/BridgeConstants.js +15 -0
  57. package/dist/react/bridge/core/BridgeEvent.d.ts +52 -0
  58. package/dist/react/bridge/core/BridgeEvent.js +28 -0
  59. package/dist/react/bridge/core/BridgeMethod.d.ts +12 -0
  60. package/dist/react/bridge/core/BridgeMethod.js +2 -0
  61. package/dist/react/bridge/core/BridgeMethodCall.d.ts +23 -0
  62. package/dist/react/bridge/core/BridgeMethodCall.js +37 -0
  63. package/dist/react/bridge/core/BridgeMethods.d.ts +35 -0
  64. package/dist/react/bridge/core/BridgeMethods.js +2 -0
  65. package/dist/react/bridge/core/BridgeState.d.ts +24 -0
  66. package/dist/react/bridge/core/BridgeState.js +2 -0
  67. package/dist/react/bridge/core/index.d.ts +7 -0
  68. package/dist/react/bridge/core/index.js +23 -0
  69. package/dist/react/bridge/web/Bridge.d.ts +32 -0
  70. package/dist/react/bridge/web/Bridge.js +183 -0
  71. package/dist/react/bridge/web/BridgeContext.d.ts +8 -0
  72. package/dist/react/bridge/web/BridgeContext.js +6 -0
  73. package/dist/react/bridge/web/BridgeGlobals.d.ts +12 -0
  74. package/dist/react/bridge/web/BridgeGlobals.js +2 -0
  75. package/dist/react/bridge/web/BridgeProvider.d.ts +7 -0
  76. package/dist/react/bridge/web/BridgeProvider.js +36 -0
  77. package/dist/react/bridge/web/index.d.ts +6 -0
  78. package/dist/react/bridge/web/index.js +22 -0
  79. package/dist/react/bridge/web/useBridge.d.ts +3 -0
  80. package/dist/react/bridge/web/useBridge.js +39 -0
  81. package/dist/react/bridge/web/useBridgeState.d.ts +2 -0
  82. package/dist/react/bridge/web/useBridgeState.js +43 -0
  83. package/dist/react/bridge/web/useSafeArea.d.ts +1 -0
  84. package/dist/react/bridge/web/useSafeArea.js +11 -0
  85. package/dist/react/content/core/AppContentClient.d.ts +14 -0
  86. package/dist/react/content/core/AppContentClient.js +51 -0
  87. package/dist/react/content/core/ContentClientContext.d.ts +7 -0
  88. package/dist/react/content/core/ContentClientContext.js +6 -0
  89. package/dist/react/content/core/index.d.ts +1 -0
  90. package/dist/react/content/core/index.js +17 -0
  91. package/dist/react/content/domain/ContentAppRequest.d.ts +20 -0
  92. package/dist/react/content/domain/ContentAppRequest.js +11 -0
  93. package/dist/react/content/domain/index.d.ts +1 -0
  94. package/dist/react/content/domain/index.js +17 -0
  95. package/dist/react/content/server/ContentAppService.d.ts +11 -0
  96. package/dist/react/content/server/ContentAppService.js +34 -0
  97. package/dist/react/content/server/index.d.ts +1 -0
  98. package/dist/react/content/server/index.js +17 -0
  99. package/dist/react/content/web/ContentProvider.d.ts +5 -0
  100. package/dist/react/content/web/ContentProvider.js +17 -0
  101. package/dist/react/content/web/index.d.ts +6 -0
  102. package/dist/react/content/web/index.js +22 -0
  103. package/dist/react/content/web/useCollection.d.ts +10 -0
  104. package/dist/react/content/web/useCollection.js +22 -0
  105. package/dist/react/content/web/useCollections.d.ts +10 -0
  106. package/dist/react/content/web/useCollections.js +32 -0
  107. package/dist/react/content/web/useContentClient.d.ts +1 -0
  108. package/dist/react/content/web/useContentClient.js +9 -0
  109. package/dist/react/cookies/web/CookieService.d.ts +25 -0
  110. package/dist/react/cookies/web/CookieService.js +45 -0
  111. package/dist/react/cookies/web/CookieServiceContext.d.ts +7 -0
  112. package/dist/react/cookies/web/CookieServiceContext.js +6 -0
  113. package/dist/react/cookies/web/CookieServiceProvider.d.ts +6 -0
  114. package/dist/react/cookies/web/CookieServiceProvider.js +16 -0
  115. package/dist/react/cookies/web/index.d.ts +3 -0
  116. package/dist/react/cookies/web/index.js +19 -0
  117. package/dist/react/cookies/web/useCookieService.d.ts +2 -0
  118. package/dist/react/cookies/web/useCookieService.js +29 -0
  119. package/dist/react/identity/core/AbstractIdentityClient.d.ts +22 -0
  120. package/dist/react/identity/core/AbstractIdentityClient.js +31 -0
  121. package/dist/react/identity/core/IdentityClient.d.ts +22 -0
  122. package/dist/react/identity/core/IdentityClient.js +13 -0
  123. package/dist/react/identity/core/IdentityClientContext.d.ts +7 -0
  124. package/dist/react/identity/core/IdentityClientContext.js +6 -0
  125. package/dist/react/identity/core/index.d.ts +6 -0
  126. package/dist/react/identity/core/index.js +22 -0
  127. package/dist/react/identity/core/useIdentity.d.ts +10 -0
  128. package/dist/react/identity/core/useIdentity.js +39 -0
  129. package/dist/react/identity/core/useIdentityClient.d.ts +2 -0
  130. package/dist/react/identity/core/useIdentityClient.js +17 -0
  131. package/dist/react/identity/domain/AnonymousIdentity.d.ts +15 -0
  132. package/dist/react/identity/domain/AnonymousIdentity.js +27 -0
  133. package/dist/react/identity/domain/AuthenticatedIdentity.d.ts +25 -0
  134. package/dist/react/identity/domain/AuthenticatedIdentity.js +32 -0
  135. package/dist/react/identity/domain/Identity.d.ts +6 -0
  136. package/dist/react/identity/domain/Identity.js +2 -0
  137. package/dist/react/identity/domain/IdentityAppRequest.d.ts +8 -0
  138. package/dist/react/identity/domain/IdentityAppRequest.js +10 -0
  139. package/dist/react/identity/domain/index.d.ts +4 -0
  140. package/dist/react/identity/domain/index.js +20 -0
  141. package/dist/react/identity/server/IdentityAppService.d.ts +9 -0
  142. package/dist/react/identity/server/IdentityAppService.js +32 -0
  143. package/dist/react/identity/server/IdentityService.d.ts +17 -0
  144. package/dist/react/identity/server/IdentityService.js +25 -0
  145. package/dist/react/identity/server/index.d.ts +4 -0
  146. package/dist/react/identity/server/index.js +20 -0
  147. package/dist/react/identity/web/WebIdentityClientProvider.d.ts +8 -0
  148. package/dist/react/identity/web/WebIdentityClientProvider.js +27 -0
  149. package/dist/react/identity/web/WebIdentityProvider.d.ts +5 -0
  150. package/dist/react/identity/web/WebIdentityProvider.js +21 -0
  151. package/dist/react/identity/web/bridge/AppBridgeIdentityClient.d.ts +14 -0
  152. package/dist/react/identity/web/bridge/AppBridgeIdentityClient.js +47 -0
  153. package/dist/react/identity/web/bridge/AppBridgeIdentityClientProvider.d.ts +2 -0
  154. package/dist/react/identity/web/bridge/AppBridgeIdentityClientProvider.js +28 -0
  155. package/dist/react/identity/web/bridge/index.d.ts +1 -0
  156. package/dist/react/identity/web/bridge/index.js +17 -0
  157. package/dist/react/identity/web/index.d.ts +3 -0
  158. package/dist/react/identity/web/index.js +19 -0
  159. package/dist/react/nav/core/SpecSourceContext.d.ts +7 -0
  160. package/dist/react/nav/core/SpecSourceContext.js +6 -0
  161. package/dist/react/nav/core/index.d.ts +2 -0
  162. package/dist/react/nav/core/index.js +18 -0
  163. package/dist/react/nav/core/useSpec.d.ts +3 -0
  164. package/dist/react/nav/core/useSpec.js +30 -0
  165. package/dist/react/nav/domain/Icon.d.ts +2 -0
  166. package/dist/react/nav/domain/Icon.js +2 -0
  167. package/dist/react/nav/domain/Modal.d.ts +25 -0
  168. package/dist/react/nav/domain/Modal.js +28 -0
  169. package/dist/react/nav/domain/Navigation.d.ts +13 -0
  170. package/dist/react/nav/domain/Navigation.js +2 -0
  171. package/dist/react/nav/domain/NavigationCommand.d.ts +14 -0
  172. package/dist/react/nav/domain/NavigationCommand.js +2 -0
  173. package/dist/react/nav/domain/Route.d.ts +12 -0
  174. package/dist/react/nav/domain/Route.js +2 -0
  175. package/dist/react/nav/domain/Routes.d.ts +6 -0
  176. package/dist/react/nav/domain/Routes.js +74 -0
  177. package/dist/react/nav/domain/Screen.d.ts +24 -0
  178. package/dist/react/nav/domain/Screen.js +28 -0
  179. package/dist/react/nav/domain/Skeleton.d.ts +26 -0
  180. package/dist/react/nav/domain/Skeleton.js +2 -0
  181. package/dist/react/nav/domain/Spec.d.ts +33 -0
  182. package/dist/react/nav/domain/Spec.js +124 -0
  183. package/dist/react/nav/domain/SpecSource.d.ts +21 -0
  184. package/dist/react/nav/domain/SpecSource.js +28 -0
  185. package/dist/react/nav/domain/Stack.d.ts +35 -0
  186. package/dist/react/nav/domain/Stack.js +44 -0
  187. package/dist/react/nav/domain/Tabs.d.ts +37 -0
  188. package/dist/react/nav/domain/Tabs.js +45 -0
  189. package/dist/react/nav/domain/icons/ImageIcon.d.ts +2 -0
  190. package/dist/react/nav/domain/icons/ImageIcon.js +7 -0
  191. package/dist/react/nav/domain/icons/LucideIcon.d.ts +2 -0
  192. package/dist/react/nav/domain/icons/LucideIcon.js +7 -0
  193. package/dist/react/nav/domain/icons/index.d.ts +2 -0
  194. package/dist/react/nav/domain/icons/index.js +18 -0
  195. package/dist/react/nav/domain/index.d.ts +14 -0
  196. package/dist/react/nav/domain/index.js +30 -0
  197. package/dist/react/nav/domain/sources/AbstractSpecSource.d.ts +23 -0
  198. package/dist/react/nav/domain/sources/AbstractSpecSource.js +64 -0
  199. package/dist/react/nav/domain/sources/StaticSpecSource.d.ts +9 -0
  200. package/dist/react/nav/domain/sources/StaticSpecSource.js +16 -0
  201. package/dist/react/nav/domain/sources/index.d.ts +2 -0
  202. package/dist/react/nav/domain/sources/index.js +18 -0
  203. package/dist/react/nav/server/SpecService.d.ts +9 -0
  204. package/dist/react/nav/server/SpecService.js +31 -0
  205. package/dist/react/nav/server/exports.d.ts +1 -0
  206. package/dist/react/nav/server/exports.js +17 -0
  207. package/dist/react/nav/server/index.d.ts +2 -0
  208. package/dist/react/nav/server/index.js +38 -0
  209. package/dist/react/nav/web/WebSpecProvider.d.ts +2 -0
  210. package/dist/react/nav/web/WebSpecProvider.js +41 -0
  211. package/dist/react/nav/web/index.d.ts +3 -0
  212. package/dist/react/nav/web/index.js +19 -0
  213. package/dist/react/nav/web/navigator/NativeNavigator.d.ts +13 -0
  214. package/dist/react/nav/web/navigator/NativeNavigator.js +47 -0
  215. package/dist/react/nav/web/navigator/Navigator.d.ts +7 -0
  216. package/dist/react/nav/web/navigator/Navigator.js +2 -0
  217. package/dist/react/nav/web/navigator/NavigatorContext.d.ts +7 -0
  218. package/dist/react/nav/web/navigator/NavigatorContext.js +6 -0
  219. package/dist/react/nav/web/navigator/WebNavigator.d.ts +13 -0
  220. package/dist/react/nav/web/navigator/WebNavigator.js +38 -0
  221. package/dist/react/nav/web/navigator/index.d.ts +5 -0
  222. package/dist/react/nav/web/navigator/index.js +21 -0
  223. package/dist/react/nav/web/navigator/useNavigator.d.ts +1 -0
  224. package/dist/react/nav/web/navigator/useNavigator.js +17 -0
  225. package/dist/react/nav.d.ts +1 -0
  226. package/dist/react/nav.js +37 -0
  227. package/dist/react/profile/core/AbstractProfileClient.d.ts +18 -0
  228. package/dist/react/profile/core/AbstractProfileClient.js +31 -0
  229. package/dist/react/profile/core/ProfileClient.d.ts +21 -0
  230. package/dist/react/profile/core/ProfileClient.js +2 -0
  231. package/dist/react/profile/core/ProfileClientContext.d.ts +7 -0
  232. package/dist/react/profile/core/ProfileClientContext.js +6 -0
  233. package/dist/react/profile/core/index.d.ts +6 -0
  234. package/dist/react/profile/core/index.js +22 -0
  235. package/dist/react/profile/core/useProfile.d.ts +9 -0
  236. package/dist/react/profile/core/useProfile.js +47 -0
  237. package/dist/react/profile/core/useProfileClient.d.ts +2 -0
  238. package/dist/react/profile/core/useProfileClient.js +17 -0
  239. package/dist/react/profile/core/useProfileStore.d.ts +2 -0
  240. package/dist/react/profile/core/useProfileStore.js +28 -0
  241. package/dist/react/profile/domain/Profile.d.ts +80 -0
  242. package/dist/react/profile/domain/Profile.js +209 -0
  243. package/dist/react/profile/domain/ProfileAppRequest.d.ts +15 -0
  244. package/dist/react/profile/domain/ProfileAppRequest.js +12 -0
  245. package/dist/react/profile/domain/ProfileStore.d.ts +65 -0
  246. package/dist/react/profile/domain/ProfileStore.js +180 -0
  247. package/dist/react/profile/domain/index.d.ts +3 -0
  248. package/dist/react/profile/domain/index.js +19 -0
  249. package/dist/react/profile/server/ProfileAppService.d.ts +11 -0
  250. package/dist/react/profile/server/ProfileAppService.js +49 -0
  251. package/dist/react/profile/server/ProfileManagementService.d.ts +28 -0
  252. package/dist/react/profile/server/ProfileManagementService.js +3 -0
  253. package/dist/react/profile/server/ProfileServices.d.ts +22 -0
  254. package/dist/react/profile/server/ProfileServices.js +24 -0
  255. package/dist/react/profile/server/ProfileUserService.d.ts +5 -0
  256. package/dist/react/profile/server/ProfileUserService.js +2 -0
  257. package/dist/react/profile/server/index.d.ts +5 -0
  258. package/dist/react/profile/server/index.js +21 -0
  259. package/dist/react/profile/web/WebProfile.d.ts +11 -0
  260. package/dist/react/profile/web/WebProfile.js +37 -0
  261. package/dist/react/profile/web/WebProfileClient.d.ts +9 -0
  262. package/dist/react/profile/web/WebProfileClient.js +76 -0
  263. package/dist/react/profile/web/WebProfileProvider.d.ts +5 -0
  264. package/dist/react/profile/web/WebProfileProvider.js +62 -0
  265. package/dist/react/profile/web/WebProfileStore.d.ts +8 -0
  266. package/dist/react/profile/web/WebProfileStore.js +32 -0
  267. package/dist/react/profile/web/index.d.ts +3 -0
  268. package/dist/react/profile/web/index.js +19 -0
  269. package/dist/react/push/domain/PushAppRequest.d.ts +13 -0
  270. package/dist/react/push/domain/PushAppRequest.js +12 -0
  271. package/dist/react/push/domain/PushStore.d.ts +7 -0
  272. package/dist/react/push/domain/PushStore.js +9 -0
  273. package/dist/react/push/domain/index.d.ts +2 -0
  274. package/dist/react/push/domain/index.js +18 -0
  275. package/dist/react/push/server/PushService.d.ts +22 -0
  276. package/dist/react/push/server/PushService.js +57 -0
  277. package/dist/react/push/server/index.d.ts +3 -0
  278. package/dist/react/push/server/index.js +19 -0
  279. package/dist/react/push/server/keygen.d.ts +1 -0
  280. package/dist/react/push/server/keygen.js +8 -0
  281. package/dist/react/push/web/PushClient.d.ts +35 -0
  282. package/dist/react/push/web/PushClient.js +204 -0
  283. package/dist/react/push/web/PushContext.d.ts +7 -0
  284. package/dist/react/push/web/PushContext.js +6 -0
  285. package/dist/react/push/web/PushProvider.d.ts +6 -0
  286. package/dist/react/push/web/PushProvider.js +42 -0
  287. package/dist/react/push/web/index.d.ts +4 -0
  288. package/dist/react/push/web/index.js +20 -0
  289. package/dist/react/push/web/usePushClient.d.ts +3 -0
  290. package/dist/react/push/web/usePushClient.js +40 -0
  291. package/dist/react/server.d.ts +7 -0
  292. package/dist/react/server.js +23 -0
  293. package/dist/react/ui/web/HideSplash.d.ts +1 -0
  294. package/dist/react/ui/web/HideSplash.js +28 -0
  295. package/dist/react/ui/web/Link.d.ts +6 -0
  296. package/dist/react/ui/web/Link.js +12 -0
  297. package/dist/react/ui/web/SafeArea.d.ts +9 -0
  298. package/dist/react/ui/web/SafeArea.js +26 -0
  299. package/dist/react/ui/web/index.d.ts +3 -0
  300. package/dist/react/ui/web/index.js +19 -0
  301. package/dist/react/web.d.ts +10 -0
  302. package/dist/react/web.js +26 -0
  303. package/dist/reactnative/app/domain/AppService.d.ts +19 -0
  304. package/dist/reactnative/app/domain/AppService.js +19 -0
  305. package/dist/reactnative/app/domain/AppServiceClient.d.ts +7 -0
  306. package/dist/reactnative/app/domain/AppServiceClient.js +57 -0
  307. package/dist/reactnative/app/domain/AppState.d.ts +1 -0
  308. package/dist/reactnative/app/domain/AppState.js +2 -0
  309. package/dist/reactnative/app/domain/index.d.ts +3 -0
  310. package/dist/reactnative/app/domain/index.js +19 -0
  311. package/dist/reactnative/app/rn/AppContainer.d.ts +10 -0
  312. package/dist/reactnative/app/rn/AppContainer.js +77 -0
  313. package/dist/reactnative/app/rn/AppRoot.d.ts +5 -0
  314. package/dist/reactnative/app/rn/AppRoot.js +22 -0
  315. package/dist/reactnative/app/rn/AppServiceClient.d.ts +4 -0
  316. package/dist/reactnative/app/rn/AppServiceClient.js +44 -0
  317. package/dist/reactnative/app/rn/index.d.ts +5 -0
  318. package/dist/reactnative/app/rn/index.js +22 -0
  319. package/dist/reactnative/auth0/rn/Auth0IdentityClient.d.ts +33 -0
  320. package/dist/reactnative/auth0/rn/Auth0IdentityClient.js +234 -0
  321. package/dist/reactnative/auth0/rn/Auth0IdentityClientProvider.d.ts +27 -0
  322. package/dist/reactnative/auth0/rn/Auth0IdentityClientProvider.js +60 -0
  323. package/dist/reactnative/auth0/rn/index.d.ts +2 -0
  324. package/dist/reactnative/auth0/rn/index.js +18 -0
  325. package/dist/reactnative/bridge/core/BridgeConnection.d.ts +6 -0
  326. package/dist/reactnative/bridge/core/BridgeConnection.js +2 -0
  327. package/dist/reactnative/bridge/core/BridgeConstants.d.ts +7 -0
  328. package/dist/reactnative/bridge/core/BridgeConstants.js +15 -0
  329. package/dist/reactnative/bridge/core/BridgeEvent.d.ts +52 -0
  330. package/dist/reactnative/bridge/core/BridgeEvent.js +28 -0
  331. package/dist/reactnative/bridge/core/BridgeMethod.d.ts +12 -0
  332. package/dist/reactnative/bridge/core/BridgeMethod.js +2 -0
  333. package/dist/reactnative/bridge/core/BridgeMethodCall.d.ts +23 -0
  334. package/dist/reactnative/bridge/core/BridgeMethodCall.js +37 -0
  335. package/dist/reactnative/bridge/core/BridgeMethods.d.ts +35 -0
  336. package/dist/reactnative/bridge/core/BridgeMethods.js +2 -0
  337. package/dist/reactnative/bridge/core/BridgeState.d.ts +24 -0
  338. package/dist/reactnative/bridge/core/BridgeState.js +2 -0
  339. package/dist/reactnative/bridge/core/index.d.ts +7 -0
  340. package/dist/reactnative/bridge/core/index.js +23 -0
  341. package/dist/reactnative/bridge/rn/BridgeProxy.d.ts +35 -0
  342. package/dist/reactnative/bridge/rn/BridgeProxy.js +331 -0
  343. package/dist/reactnative/bridge/rn/BridgeProxyContext.d.ts +8 -0
  344. package/dist/reactnative/bridge/rn/BridgeProxyContext.js +6 -0
  345. package/dist/reactnative/bridge/rn/BridgeProxyProvider.d.ts +8 -0
  346. package/dist/reactnative/bridge/rn/BridgeProxyProvider.js +39 -0
  347. package/dist/reactnative/bridge/rn/BridgeWebview.d.ts +7 -0
  348. package/dist/reactnative/bridge/rn/BridgeWebview.js +51 -0
  349. package/dist/reactnative/bridge/rn/index.d.ts +7 -0
  350. package/dist/reactnative/bridge/rn/index.js +23 -0
  351. package/dist/reactnative/bridge/rn/useBridgeProxy.d.ts +3 -0
  352. package/dist/reactnative/bridge/rn/useBridgeProxy.js +38 -0
  353. package/dist/reactnative/bridge/rn/useBridgeProxyCalls.d.ts +3 -0
  354. package/dist/reactnative/bridge/rn/useBridgeProxyCalls.js +32 -0
  355. package/dist/reactnative/bridge/rn/useBridgeProxyState.d.ts +2 -0
  356. package/dist/reactnative/bridge/rn/useBridgeProxyState.js +46 -0
  357. package/dist/reactnative/identity/core/AbstractIdentityClient.d.ts +22 -0
  358. package/dist/reactnative/identity/core/AbstractIdentityClient.js +31 -0
  359. package/dist/reactnative/identity/core/IdentityClient.d.ts +22 -0
  360. package/dist/reactnative/identity/core/IdentityClient.js +13 -0
  361. package/dist/reactnative/identity/core/IdentityClientContext.d.ts +7 -0
  362. package/dist/reactnative/identity/core/IdentityClientContext.js +6 -0
  363. package/dist/reactnative/identity/core/index.d.ts +6 -0
  364. package/dist/reactnative/identity/core/index.js +22 -0
  365. package/dist/reactnative/identity/core/useIdentity.d.ts +10 -0
  366. package/dist/reactnative/identity/core/useIdentity.js +39 -0
  367. package/dist/reactnative/identity/core/useIdentityClient.d.ts +2 -0
  368. package/dist/reactnative/identity/core/useIdentityClient.js +17 -0
  369. package/dist/reactnative/identity/domain/AnonymousIdentity.d.ts +15 -0
  370. package/dist/reactnative/identity/domain/AnonymousIdentity.js +27 -0
  371. package/dist/reactnative/identity/domain/AuthenticatedIdentity.d.ts +25 -0
  372. package/dist/reactnative/identity/domain/AuthenticatedIdentity.js +32 -0
  373. package/dist/reactnative/identity/domain/Identity.d.ts +6 -0
  374. package/dist/reactnative/identity/domain/Identity.js +2 -0
  375. package/dist/reactnative/identity/domain/IdentityAppRequest.d.ts +8 -0
  376. package/dist/reactnative/identity/domain/IdentityAppRequest.js +10 -0
  377. package/dist/reactnative/identity/domain/index.d.ts +4 -0
  378. package/dist/reactnative/identity/domain/index.js +20 -0
  379. package/dist/reactnative/identity/rn/RNIdentityClientProvider.d.ts +8 -0
  380. package/dist/reactnative/identity/rn/RNIdentityClientProvider.js +22 -0
  381. package/dist/reactnative/identity/rn/RNIdentityProvider.d.ts +5 -0
  382. package/dist/reactnative/identity/rn/RNIdentityProvider.js +14 -0
  383. package/dist/reactnative/identity/rn/index.d.ts +3 -0
  384. package/dist/reactnative/identity/rn/index.js +19 -0
  385. package/dist/reactnative/nav/core/SpecSourceContext.d.ts +7 -0
  386. package/dist/reactnative/nav/core/SpecSourceContext.js +6 -0
  387. package/dist/reactnative/nav/core/index.d.ts +2 -0
  388. package/dist/reactnative/nav/core/index.js +18 -0
  389. package/dist/reactnative/nav/core/useSpec.d.ts +3 -0
  390. package/dist/reactnative/nav/core/useSpec.js +30 -0
  391. package/dist/reactnative/nav/domain/Icon.d.ts +2 -0
  392. package/dist/reactnative/nav/domain/Icon.js +2 -0
  393. package/dist/reactnative/nav/domain/Modal.d.ts +25 -0
  394. package/dist/reactnative/nav/domain/Modal.js +28 -0
  395. package/dist/reactnative/nav/domain/Navigation.d.ts +13 -0
  396. package/dist/reactnative/nav/domain/Navigation.js +2 -0
  397. package/dist/reactnative/nav/domain/NavigationCommand.d.ts +14 -0
  398. package/dist/reactnative/nav/domain/NavigationCommand.js +2 -0
  399. package/dist/reactnative/nav/domain/Route.d.ts +12 -0
  400. package/dist/reactnative/nav/domain/Route.js +2 -0
  401. package/dist/reactnative/nav/domain/Routes.d.ts +6 -0
  402. package/dist/reactnative/nav/domain/Routes.js +74 -0
  403. package/dist/reactnative/nav/domain/Screen.d.ts +24 -0
  404. package/dist/reactnative/nav/domain/Screen.js +28 -0
  405. package/dist/reactnative/nav/domain/Skeleton.d.ts +26 -0
  406. package/dist/reactnative/nav/domain/Skeleton.js +2 -0
  407. package/dist/reactnative/nav/domain/Spec.d.ts +33 -0
  408. package/dist/reactnative/nav/domain/Spec.js +124 -0
  409. package/dist/reactnative/nav/domain/SpecSource.d.ts +21 -0
  410. package/dist/reactnative/nav/domain/SpecSource.js +28 -0
  411. package/dist/reactnative/nav/domain/Stack.d.ts +35 -0
  412. package/dist/reactnative/nav/domain/Stack.js +44 -0
  413. package/dist/reactnative/nav/domain/Tabs.d.ts +37 -0
  414. package/dist/reactnative/nav/domain/Tabs.js +45 -0
  415. package/dist/reactnative/nav/domain/icons/ImageIcon.d.ts +2 -0
  416. package/dist/reactnative/nav/domain/icons/ImageIcon.js +7 -0
  417. package/dist/reactnative/nav/domain/icons/LucideIcon.d.ts +2 -0
  418. package/dist/reactnative/nav/domain/icons/LucideIcon.js +7 -0
  419. package/dist/reactnative/nav/domain/icons/index.d.ts +2 -0
  420. package/dist/reactnative/nav/domain/icons/index.js +18 -0
  421. package/dist/reactnative/nav/domain/index.d.ts +14 -0
  422. package/dist/reactnative/nav/domain/index.js +30 -0
  423. package/dist/reactnative/nav/domain/sources/AbstractSpecSource.d.ts +23 -0
  424. package/dist/reactnative/nav/domain/sources/AbstractSpecSource.js +64 -0
  425. package/dist/reactnative/nav/domain/sources/StaticSpecSource.d.ts +9 -0
  426. package/dist/reactnative/nav/domain/sources/StaticSpecSource.js +16 -0
  427. package/dist/reactnative/nav/domain/sources/index.d.ts +2 -0
  428. package/dist/reactnative/nav/domain/sources/index.js +18 -0
  429. package/dist/reactnative/nav/rn/NavigationEngine.d.ts +1 -0
  430. package/dist/reactnative/nav/rn/NavigationEngine.js +155 -0
  431. package/dist/reactnative/nav/rn/NavigationScreen.d.ts +9 -0
  432. package/dist/reactnative/nav/rn/NavigationScreen.js +215 -0
  433. package/dist/reactnative/nav/rn/RNSpecProvider.d.ts +2 -0
  434. package/dist/reactnative/nav/rn/RNSpecProvider.js +30 -0
  435. package/dist/reactnative/nav/rn/RNSpecSource.d.ts +5 -0
  436. package/dist/reactnative/nav/rn/RNSpecSource.js +30 -0
  437. package/dist/reactnative/nav/rn/index.d.ts +4 -0
  438. package/dist/reactnative/nav/rn/index.js +20 -0
  439. package/dist/reactnative/profile/domain/Profile.d.ts +80 -0
  440. package/dist/reactnative/profile/domain/Profile.js +209 -0
  441. package/dist/reactnative/profile/domain/ProfileAppRequest.d.ts +15 -0
  442. package/dist/reactnative/profile/domain/ProfileAppRequest.js +12 -0
  443. package/dist/reactnative/profile/domain/ProfileStore.d.ts +65 -0
  444. package/dist/reactnative/profile/domain/ProfileStore.js +180 -0
  445. package/dist/reactnative/profile/domain/index.d.ts +3 -0
  446. package/dist/reactnative/profile/domain/index.js +19 -0
  447. package/dist/reactnative/push/domain/PushAppRequest.d.ts +13 -0
  448. package/dist/reactnative/push/domain/PushAppRequest.js +12 -0
  449. package/dist/reactnative/push/domain/PushStore.d.ts +7 -0
  450. package/dist/reactnative/push/domain/PushStore.js +9 -0
  451. package/dist/reactnative/push/domain/index.d.ts +2 -0
  452. package/dist/reactnative/push/domain/index.js +18 -0
  453. package/dist/reactnative/push/rn/PushClient.d.ts +32 -0
  454. package/dist/reactnative/push/rn/PushClient.js +247 -0
  455. package/dist/reactnative/push/rn/PushContext.d.ts +7 -0
  456. package/dist/reactnative/push/rn/PushContext.js +6 -0
  457. package/dist/reactnative/push/rn/PushProvider.d.ts +2 -0
  458. package/dist/reactnative/push/rn/PushProvider.js +45 -0
  459. package/dist/reactnative/push/rn/index.d.ts +3 -0
  460. package/dist/reactnative/push/rn/index.js +19 -0
  461. package/dist/reactnative/push/rn/usePushClient.d.ts +3 -0
  462. package/dist/reactnative/push/rn/usePushClient.js +40 -0
  463. package/dist/reactnative/rn.d.ts +7 -0
  464. package/dist/reactnative/rn.js +23 -0
  465. package/dist/reactnative/ui/rn/Tailwind.d.ts +175 -0
  466. package/dist/reactnative/ui/rn/Tailwind.js +211 -0
  467. package/dist/reactnative/ui/rn/atomic/Button.d.ts +97 -0
  468. package/dist/reactnative/ui/rn/atomic/Button.js +75 -0
  469. package/dist/reactnative/ui/rn/atomic/TextField.d.ts +112 -0
  470. package/dist/reactnative/ui/rn/atomic/TextField.js +135 -0
  471. package/dist/reactnative/ui/rn/atomic/index.d.ts +2 -0
  472. package/dist/reactnative/ui/rn/atomic/index.js +18 -0
  473. package/dist/reactnative/ui/rn/index.d.ts +1 -0
  474. package/dist/reactnative/ui/rn/index.js +17 -0
  475. package/dist/styles/rn/_index.css +2 -0
  476. package/dist/styles/rn/atomic/Button.css +54 -0
  477. package/dist/styles/rn/atomic/TextField.css +77 -0
  478. package/dist/styles/rn/atomic/_index.css +2 -0
  479. package/dist/styles/rn/base/_index.css +1 -0
  480. package/dist/styles/rn/base/tailwind.css +3 -0
  481. package/dist/styles/rn.css +1 -0
  482. package/dist/styles/web/_index.css +1 -0
  483. package/dist/styles/web/layout/SafeArea.css +17 -0
  484. package/dist/styles/web/layout/_index.css +1 -0
  485. package/dist/styles/web.css +1 -0
  486. package/package.json +87 -0
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useNavigator = useNavigator;
4
+ const funnel_core_1 = require("@nascentdigital/funnel-core");
5
+ const react_1 = require("react");
6
+ const NavigatorContext_1 = require("./NavigatorContext");
7
+ // hook
8
+ function useNavigator() {
9
+ // resolve context
10
+ const { navigator } = (0, react_1.useContext)(NavigatorContext_1.NavigatorContext);
11
+ // throw if navigator isn't set
12
+ if (!navigator) {
13
+ throw new funnel_core_1.InvalidOperationError('Cannot access navigator outside of WebSpecProvider');
14
+ }
15
+ // return state
16
+ return navigator;
17
+ }
@@ -0,0 +1 @@
1
+ export * as AppNav from './nav/domain';
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.AppNav = void 0;
37
+ exports.AppNav = __importStar(require("./nav/domain"));
@@ -0,0 +1,18 @@
1
+ import { IsometricError } from '@nascentdigital/funnel-core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import { AnonymousIdentity, AuthenticatedIdentity } from '../../identity/domain';
4
+ import { Profile } from '../domain';
5
+ import { ProfileClient } from './ProfileClient';
6
+ export declare abstract class AbstractProfileClient implements ProfileClient {
7
+ protected readonly _profile$: BehaviorSubject<Profile | null | undefined>;
8
+ protected readonly _error$: BehaviorSubject<IsometricError | undefined>;
9
+ protected constructor();
10
+ get profile$(): import("rxjs").Observable<Profile<Profile.Stores> | null | undefined>;
11
+ get profile(): Profile | null | undefined;
12
+ set profile(profile: Profile | null | undefined);
13
+ get error$(): import("rxjs").Observable<IsometricError | undefined>;
14
+ get error(): IsometricError | undefined;
15
+ set error(error: IsometricError | undefined);
16
+ abstract sync(identity: AuthenticatedIdentity | AnonymousIdentity): Promise<Profile | null>;
17
+ abstract hydrate(identity: AuthenticatedIdentity | AnonymousIdentity, data: Profile.Data): Promise<Profile>;
18
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AbstractProfileClient = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ // class
6
+ class AbstractProfileClient {
7
+ constructor() {
8
+ // initialize instance variables
9
+ this._profile$ = new rxjs_1.BehaviorSubject(undefined);
10
+ this._error$ = new rxjs_1.BehaviorSubject(undefined);
11
+ }
12
+ get profile$() {
13
+ return this._profile$.asObservable();
14
+ }
15
+ get profile() {
16
+ return this._profile$.getValue();
17
+ }
18
+ set profile(profile) {
19
+ this._profile$.next(profile);
20
+ }
21
+ get error$() {
22
+ return this._error$.asObservable();
23
+ }
24
+ get error() {
25
+ return this._error$.getValue();
26
+ }
27
+ set error(error) {
28
+ this._error$.next(error);
29
+ }
30
+ }
31
+ exports.AbstractProfileClient = AbstractProfileClient;
@@ -0,0 +1,21 @@
1
+ import { IsometricError } from '@nascentdigital/funnel-core';
2
+ import { Observable } from 'rxjs';
3
+ import { AnonymousIdentity, AuthenticatedIdentity } from '../../identity/domain';
4
+ import { Profile } from '../domain';
5
+ export interface ProfileClient {
6
+ readonly profile$: Observable<Profile | null | undefined>;
7
+ readonly profile: Profile | null | undefined;
8
+ readonly error$: Observable<IsometricError | undefined>;
9
+ readonly error: IsometricError | undefined;
10
+ /**
11
+ * Load the latest profile data for the given identity.
12
+ * @param identity
13
+ */
14
+ sync(identity: AuthenticatedIdentity | AnonymousIdentity): Promise<Profile | null>;
15
+ /**
16
+ * Load the serialized profile data.
17
+ * @param identity
18
+ * @param data
19
+ */
20
+ hydrate(identity: AuthenticatedIdentity | AnonymousIdentity, data: Profile.Data): Promise<Profile>;
21
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,7 @@
1
+ import { ProfileClient } from './ProfileClient';
2
+ export declare const ProfileClientContext: import("react").Context<ProfileClientContext.Data>;
3
+ export declare namespace ProfileClientContext {
4
+ type Data = {
5
+ profileClient?: ProfileClient;
6
+ };
7
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProfileClientContext = void 0;
4
+ const react_1 = require("react");
5
+ // context
6
+ exports.ProfileClientContext = (0, react_1.createContext)({});
@@ -0,0 +1,6 @@
1
+ export * from './AbstractProfileClient';
2
+ export * from './ProfileClient';
3
+ export * from './ProfileClientContext';
4
+ export * from './useProfile';
5
+ export * from './useProfileClient';
6
+ export * from './useProfileStore';
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./AbstractProfileClient"), exports);
18
+ __exportStar(require("./ProfileClient"), exports);
19
+ __exportStar(require("./ProfileClientContext"), exports);
20
+ __exportStar(require("./useProfile"), exports);
21
+ __exportStar(require("./useProfileClient"), exports);
22
+ __exportStar(require("./useProfileStore"), exports);
@@ -0,0 +1,9 @@
1
+ import { IsometricError } from '@nascentdigital/funnel-core';
2
+ import { Profile } from '../domain';
3
+ export declare function useProfile<TStores extends Profile.Stores = Profile.Stores>(...eventsRaw: ReadonlyArray<Profile.Event.Type>): useProfile.Return<TStores>;
4
+ export declare namespace useProfile {
5
+ type Return<TStores extends Profile.Stores> = {
6
+ profile: Profile<TStores> | null | undefined;
7
+ error?: IsometricError;
8
+ };
9
+ }
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useProfile = useProfile;
4
+ const hooks_1 = require("@nascentdigital/funnel-ui/hooks");
5
+ const react_1 = require("react");
6
+ const rxjs_1 = require("rxjs");
7
+ const domain_1 = require("../domain");
8
+ const useProfileClient_1 = require("./useProfileClient");
9
+ // hooks
10
+ function useProfile(...eventsRaw) {
11
+ // resolve client
12
+ const profileClient = (0, useProfileClient_1.useProfileClient)();
13
+ const touch = (0, hooks_1.useTouch)();
14
+ const events = (0, hooks_1.useLatestValue)(eventsRaw);
15
+ // sync when profile changes
16
+ (0, react_1.useEffect)(() => {
17
+ // bind subscription
18
+ const subscription = profileClient.profile$.subscribe(touch);
19
+ // unsubscribe on unmount
20
+ return () => subscription.unsubscribe();
21
+ }, [profileClient, touch]);
22
+ // sync when error changes
23
+ (0, react_1.useEffect)(() => {
24
+ // bind subscription
25
+ const subscription = profileClient.error$.subscribe(touch);
26
+ // unsubscribe on unmount
27
+ return () => subscription.unsubscribe();
28
+ }, [profileClient, touch]);
29
+ // sync when profile change
30
+ (0, react_1.useEffect)(() => {
31
+ // skip if there's no profile
32
+ if (!profileClient.profile) {
33
+ return;
34
+ }
35
+ // bind subscription (filter if there are event filters passed in)
36
+ const subscription = profileClient.profile.events$
37
+ .pipe((0, rxjs_1.filter)(e => events.length === 0 || (domain_1.Profile.Event.filter(e) && events.includes(e.type))))
38
+ .subscribe(touch);
39
+ // unsubscribe on unmount
40
+ return () => subscription.unsubscribe();
41
+ }, [profileClient.profile, touch, events]);
42
+ // return
43
+ return {
44
+ profile: profileClient.profile,
45
+ error: profileClient.error
46
+ };
47
+ }
@@ -0,0 +1,2 @@
1
+ import { ProfileClient } from './ProfileClient';
2
+ export declare function useProfileClient(): ProfileClient;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useProfileClient = useProfileClient;
4
+ const funnel_core_1 = require("@nascentdigital/funnel-core");
5
+ const react_1 = require("react");
6
+ const ProfileClientContext_1 = require("./ProfileClientContext");
7
+ // hooks
8
+ function useProfileClient() {
9
+ // bind client
10
+ const { profileClient } = (0, react_1.useContext)(ProfileClientContext_1.ProfileClientContext);
11
+ // throw if unbound
12
+ if (!profileClient) {
13
+ throw new funnel_core_1.InvalidOperationError('Attempt to access useProfileClient() outside of ProfileClientContext');
14
+ }
15
+ // return client
16
+ return profileClient;
17
+ }
@@ -0,0 +1,2 @@
1
+ import { Profile, ProfileStore } from '../domain';
2
+ export declare function useProfileStore<TStore extends ProfileStore = ProfileStore>(store: TStore | undefined, ...eventsRaw: ReadonlyArray<Profile.Event.Type>): TStore | undefined;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useProfileStore = useProfileStore;
4
+ const hooks_1 = require("@nascentdigital/funnel-ui/hooks");
5
+ const react_1 = require("react");
6
+ const rxjs_1 = require("rxjs");
7
+ // hooks
8
+ function useProfileStore(store, ...eventsRaw) {
9
+ // resolve client
10
+ const touch = (0, hooks_1.useTouch)();
11
+ const events = (0, hooks_1.useLatestValue)(eventsRaw);
12
+ // sync when store changes
13
+ (0, react_1.useEffect)(() => {
14
+ // skip if there's no store
15
+ if (!store) {
16
+ return;
17
+ }
18
+ // bind subscription (filter if there are event filters passed in)
19
+ const subscription = store.events$
20
+ .pipe((0, rxjs_1.filter)(e => events.length === 0 || events.includes(e.type)))
21
+ .subscribe(touch);
22
+ // unsubscribe on unmount
23
+ return () => subscription.unsubscribe();
24
+ }, [store, touch, events]);
25
+ console.log('[useProfileStore] returning store');
26
+ // return profile
27
+ return store;
28
+ }
@@ -0,0 +1,80 @@
1
+ import { EventBus } from '@nascentdigital/funnel-core';
2
+ import { Observable } from 'rxjs';
3
+ import { JsonValue, StringKeyOf } from 'type-fest';
4
+ import { Identity } from '../../identity/domain';
5
+ import { ProfileStore } from './ProfileStore';
6
+ export declare abstract class Profile<TStores extends Profile.Stores = Profile.Stores> {
7
+ protected readonly _eventBus: EventBus;
8
+ protected _data: Profile.Data.Core;
9
+ protected readonly _edits: Map<Profile.Data.WritableProps, Profile.Data.Core[Profile.Data.WritableProps]>;
10
+ protected readonly _deletes: Set<Profile.Data.WritableProps>;
11
+ protected readonly _stores: TStores;
12
+ readonly identity: Identity;
13
+ readonly editableProps: ReadonlyArray<Profile.Data.WritableProps>;
14
+ readonly id: string;
15
+ protected constructor({ eventBus, stores, identity, id, __editableProps, ...data }: Profile.ConstructorArgs<TStores>);
16
+ get events$(): Observable<Profile.Event | ProfileStore.Event>;
17
+ get modified(): boolean;
18
+ getStore<K extends StringKeyOf<TStores>>(id: K): TStores[K];
19
+ get email(): string | undefined;
20
+ set email(value: string | undefined);
21
+ get nickname(): string | undefined;
22
+ set nickname(value: string | undefined);
23
+ get name(): string | undefined;
24
+ set name(value: string | undefined);
25
+ get firstName(): string | undefined;
26
+ set firstName(value: string | undefined);
27
+ get lastName(): string | undefined;
28
+ set lastName(value: string | undefined);
29
+ get picture(): string | undefined;
30
+ set picture(value: string | undefined);
31
+ protected get<K extends Profile.Data.WritableProps>(prop: K): Profile.Data.Core[K] | undefined;
32
+ protected set<K extends Profile.Data.WritableProps>(prop: K, value: Profile.Data.Core[K]): this;
33
+ delete<K extends Profile.Data.WritableProps>(prop: K): false | this;
34
+ importChanges({ profileId, updates, deletes }: Profile.Data.Changes): void;
35
+ exportChanges(): Profile.Data.Changes;
36
+ reset(data?: Profile.Data): void;
37
+ abstract save(): Promise<void>;
38
+ protected abstract createStore(id: StringKeyOf<TStores>): ProfileStore;
39
+ toData(): Profile.Data;
40
+ toJSON(): any;
41
+ toString(): string;
42
+ protected raiseEvent(type: Profile.Event.Type): void;
43
+ }
44
+ export declare namespace Profile {
45
+ type Stores = Record<string, ProfileStore>;
46
+ type Data = {
47
+ __internals?: Readonly<JsonValue>;
48
+ __stores?: ReadonlyArray<ProfileStore.Data>;
49
+ __editableProps: ReadonlyArray<Data.WritableProps>;
50
+ id: string;
51
+ email?: string;
52
+ nickname?: string;
53
+ name?: string;
54
+ firstName?: string;
55
+ lastName?: string;
56
+ picture?: string;
57
+ };
58
+ namespace Data {
59
+ type WritableProps = Exclude<keyof Data, '__internals' | '__stores' | '__editableProps' | 'id'>;
60
+ type Core = Pick<Data, WritableProps>;
61
+ type Changes = {
62
+ profileId: string;
63
+ updates: Partial<Core>;
64
+ deletes: WritableProps[];
65
+ };
66
+ }
67
+ type ConstructorArgs<TStores extends Stores> = Omit<Data, '__stores'> & {
68
+ eventBus?: EventBus;
69
+ identity: Identity;
70
+ stores: TStores;
71
+ };
72
+ interface Event extends EventBus.Event<'Profile', Event.Type> {
73
+ profile: Profile;
74
+ }
75
+ namespace Event {
76
+ type Type = 'modified' | 'saved' | 'reset';
77
+ function filter(event: EventBus.Event): event is Event;
78
+ function create(event: EventBus.Args<Event>): Event;
79
+ }
80
+ }
@@ -0,0 +1,209 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.Profile = void 0;
15
+ const funnel_core_1 = require("@nascentdigital/funnel-core");
16
+ const rxjs_1 = require("rxjs");
17
+ const ProfileStore_1 = require("./ProfileStore");
18
+ // class
19
+ class Profile {
20
+ constructor(_a) {
21
+ var { eventBus, stores, identity, id, __editableProps } = _a, data = __rest(_a, ["eventBus", "stores", "identity", "id", "__editableProps"]);
22
+ // initialize instance variables
23
+ this._eventBus = eventBus !== null && eventBus !== void 0 ? eventBus : new funnel_core_1.EventBus();
24
+ this._data = data;
25
+ this._edits = new Map();
26
+ this._deletes = new Set();
27
+ this._stores = stores !== null && stores !== void 0 ? stores : {};
28
+ this.identity = identity;
29
+ this.editableProps = __editableProps;
30
+ this.id = id;
31
+ }
32
+ get events$() {
33
+ return this._eventBus.events$.pipe((0, rxjs_1.filter)(e => Profile.Event.filter(e) || ProfileStore_1.ProfileStore.Event.filter(e)));
34
+ }
35
+ get modified() {
36
+ return this._edits.size > 0 || this._deletes.size > 0;
37
+ }
38
+ getStore(id) {
39
+ // try to get store
40
+ let store = this._stores[id];
41
+ // create and bind store if it doesn't exist
42
+ if (!store) {
43
+ store = this.createStore(id);
44
+ this._stores[id] = store;
45
+ }
46
+ // return store
47
+ return store;
48
+ }
49
+ get email() {
50
+ return this.get('email');
51
+ }
52
+ set email(value) {
53
+ this.set('email', value);
54
+ }
55
+ get nickname() {
56
+ return this.get('nickname');
57
+ }
58
+ set nickname(value) {
59
+ this.set('nickname', value);
60
+ }
61
+ get name() {
62
+ return this.get('name');
63
+ }
64
+ set name(value) {
65
+ this.set('name', value);
66
+ }
67
+ get firstName() {
68
+ return this.get('firstName');
69
+ }
70
+ set firstName(value) {
71
+ this.set('firstName', value);
72
+ }
73
+ get lastName() {
74
+ return this.get('lastName');
75
+ }
76
+ set lastName(value) {
77
+ this.set('lastName', value);
78
+ }
79
+ get picture() {
80
+ return this.get('picture');
81
+ }
82
+ set picture(value) {
83
+ this.set('picture', value);
84
+ }
85
+ get(prop) {
86
+ const { _edits, _deletes, _data } = this;
87
+ return _deletes.has(prop)
88
+ ? undefined
89
+ : _edits.has(prop)
90
+ ? _edits.get(prop)
91
+ : _data[prop];
92
+ }
93
+ set(prop, value) {
94
+ // prevent edit of unwritable props
95
+ if (!this.editableProps.includes(prop)) {
96
+ console.warn('[Profile] attempt to modify non-writable prop: ', prop);
97
+ return this;
98
+ }
99
+ // update
100
+ this._edits.set(prop, value);
101
+ this._deletes.delete(prop);
102
+ // raise event
103
+ this.raiseEvent('modified');
104
+ // chain
105
+ return this;
106
+ }
107
+ delete(prop) {
108
+ // prevent edit of unwritable props
109
+ if (!this.editableProps.includes(prop)) {
110
+ console.warn('[Profile] attempt to modify non-writable prop: ', prop);
111
+ return false;
112
+ }
113
+ // or delete it
114
+ this._edits.delete(prop);
115
+ this._deletes.add(prop);
116
+ // raise event
117
+ this.raiseEvent('modified');
118
+ // chain
119
+ return this;
120
+ }
121
+ importChanges({ profileId, updates, deletes }) {
122
+ // ensure we aren't updating the wrong profile
123
+ const { id, _edits, _deletes, modified } = this;
124
+ if (id !== profileId) {
125
+ throw new funnel_core_1.InvalidOperationError(`Cannot import cross-profile changes (received ${profileId}, expected ${id})`);
126
+ }
127
+ // throw if there are already changes
128
+ if (modified) {
129
+ throw new funnel_core_1.InvalidOperationError('Cannot import to an already modified profile');
130
+ }
131
+ // apply edits
132
+ Object.entries(updates).forEach(([key, value]) => _edits.set(key, value));
133
+ // apply deletes
134
+ deletes.forEach(key => _deletes.add(key));
135
+ // raise event
136
+ this.raiseEvent('modified');
137
+ }
138
+ exportChanges() {
139
+ // create base
140
+ const { id, _edits, _deletes } = this;
141
+ const changes = {
142
+ profileId: id,
143
+ updates: {},
144
+ deletes: []
145
+ };
146
+ // apply updates
147
+ _edits.forEach((value, key) => {
148
+ changes.updates[key] = value;
149
+ });
150
+ // apply deletes
151
+ _deletes.forEach(key => {
152
+ changes.deletes.push(key);
153
+ });
154
+ // return changes
155
+ return changes;
156
+ }
157
+ reset(data) {
158
+ // reset
159
+ this._edits.clear();
160
+ this._deletes.clear();
161
+ // replace data (if required)
162
+ if (data) {
163
+ const { __stores, __editableProps } = data, coreData = __rest(data, ["__stores", "__editableProps"]);
164
+ this._data = coreData;
165
+ }
166
+ // raise event
167
+ this.raiseEvent('reset');
168
+ }
169
+ toData() {
170
+ // create base
171
+ const { _data, _edits, _deletes, _stores, editableProps, id } = this;
172
+ const data = Object.assign(Object.assign({}, _data), { __stores: Object.values(_stores).map(store => store.toData()), __editableProps: editableProps, id });
173
+ // override any edits
174
+ _edits.forEach((value, key) => {
175
+ data[key] = value;
176
+ });
177
+ // clear any deletes
178
+ _deletes.forEach(key => {
179
+ delete data[key];
180
+ });
181
+ // return data
182
+ return data;
183
+ }
184
+ toJSON() {
185
+ return JSON.parse(JSON.stringify(this.toData()));
186
+ }
187
+ toString() {
188
+ return `${this.constructor.name}: ${this.id}`;
189
+ }
190
+ raiseEvent(type) {
191
+ this._eventBus.publish(Profile.Event.create({ type, profile: this }));
192
+ }
193
+ }
194
+ exports.Profile = Profile;
195
+ // extension
196
+ (function (Profile) {
197
+ let Event;
198
+ (function (Event) {
199
+ // methods
200
+ function filter(event) {
201
+ return event.domain === 'Profile';
202
+ }
203
+ Event.filter = filter;
204
+ function create(event) {
205
+ return funnel_core_1.EventBus.createEvent(Object.assign({ domain: 'Profile' }, event));
206
+ }
207
+ Event.create = create;
208
+ })(Event = Profile.Event || (Profile.Event = {}));
209
+ })(Profile || (exports.Profile = Profile = {}));
@@ -0,0 +1,15 @@
1
+ import { Jsonify } from 'type-fest';
2
+ import type { AppService } from '../../app/domain';
3
+ import { Profile } from './Profile';
4
+ import { ProfileStore } from './ProfileStore';
5
+ export type ProfileAppRequest = ProfileAppRequest.GetProfile | ProfileAppRequest.UpdateProfile | ProfileAppRequest.UpdateStore;
6
+ export declare namespace ProfileAppRequest {
7
+ const appId: "_nd-profile";
8
+ type AppId = typeof appId;
9
+ type GetProfile = AppService.Request<AppId, typeof GetMethod, null>;
10
+ const GetMethod: "profile.get";
11
+ type UpdateProfile = AppService.Request<AppId, typeof UpdateProfileMethod, Profile.Data.Changes>;
12
+ const UpdateProfileMethod: "profile.update";
13
+ type UpdateStore = AppService.Request<AppId, typeof UpdateStoreMethod, Jsonify<ProfileStore.Data.Changes>>;
14
+ const UpdateStoreMethod: "store.update";
15
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProfileAppRequest = void 0;
4
+ // extension
5
+ var ProfileAppRequest;
6
+ (function (ProfileAppRequest) {
7
+ // app id
8
+ ProfileAppRequest.appId = '_nd-profile';
9
+ ProfileAppRequest.GetMethod = 'profile.get';
10
+ ProfileAppRequest.UpdateProfileMethod = 'profile.update';
11
+ ProfileAppRequest.UpdateStoreMethod = 'store.update';
12
+ })(ProfileAppRequest || (exports.ProfileAppRequest = ProfileAppRequest = {}));