@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,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 = {}));
@@ -0,0 +1,65 @@
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
+ export declare abstract class ProfileStore<TData extends ProfileStore.Data = ProfileStore.Data> {
6
+ protected readonly _eventBus: EventBus;
7
+ protected readonly identity: Identity;
8
+ protected _data: TData;
9
+ protected readonly _edits: Map<ProfileStore.Data.Key<TData>, TData[keyof TData]>;
10
+ protected readonly _deletes: Set<ProfileStore.Data.Key<TData>>;
11
+ protected constructor(args: ProfileStore.ConstructorArgs<TData>);
12
+ get events$(): Observable<ProfileStore.Event>;
13
+ get modified(): boolean;
14
+ get id(): string;
15
+ get profileId(): string;
16
+ get data(): Partial<Omit<TData, ProfileStore.Data.ExcludedProps>>;
17
+ get<K extends ProfileStore.Data.Key<TData>>(key: K): TData[K] | undefined;
18
+ set<K extends ProfileStore.Data.Key<TData>>(key: K, value: TData[K]): this;
19
+ delete<K extends ProfileStore.Data.Key<TData>>(key: K): this;
20
+ clear(): this;
21
+ importChanges({ id, profileId, updates, deletes }: ProfileStore.Data.Changes<TData>): void;
22
+ exportChanges(): ProfileStore.Data.Changes<TData>;
23
+ reset(data?: TData): void;
24
+ abstract save(): Promise<void>;
25
+ toData(): TData;
26
+ toJSON(): any;
27
+ toString(): string;
28
+ protected raiseEvent(type: ProfileStore.Event.Type): void;
29
+ }
30
+ export declare namespace ProfileStore {
31
+ type Data<TId extends string = string, TCustomData extends Data.CustomData = Data.CustomData> = Partial<TCustomData> & {
32
+ __internals?: JsonValue;
33
+ id: TId;
34
+ profileId: string;
35
+ };
36
+ namespace Data {
37
+ type CustomData = Omit<Record<string, JsonValue>, ExcludedProps>;
38
+ type Key<TData extends Data> = StringKeyOf<Omit<TData, ExcludedProps>>;
39
+ type ExcludedProps = '__internals' | 'id' | 'profileId';
40
+ type Changes<TData extends Data = Data> = {
41
+ id: string;
42
+ profileId: string;
43
+ updates: Partial<Omit<TData, ExcludedProps>>;
44
+ deletes: Key<TData>[];
45
+ };
46
+ type Spec<TId extends string = string, TData extends CustomData = CustomData> = {
47
+ id: TId;
48
+ } & TData;
49
+ type For<TSpec extends Spec> = Data<Spec['id'], Omit<TSpec, 'id'>>;
50
+ }
51
+ type For<TSpec extends Data.Spec> = ProfileStore<Data.For<TSpec>>;
52
+ type ConstructorArgs<TData extends Data> = {
53
+ eventBus: EventBus;
54
+ identity: Identity;
55
+ data: TData;
56
+ };
57
+ interface Event extends EventBus.Event<'ProfileStore', Event.Type> {
58
+ store: ProfileStore;
59
+ }
60
+ namespace Event {
61
+ type Type = 'modified' | 'saved' | 'reset';
62
+ function filter(event: EventBus.Event): event is Event;
63
+ function create(event: EventBus.Args<Event>): Event;
64
+ }
65
+ }
@@ -0,0 +1,180 @@
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.ProfileStore = void 0;
15
+ const funnel_core_1 = require("@nascentdigital/funnel-core");
16
+ const rxjs_1 = require("rxjs");
17
+ // class
18
+ class ProfileStore {
19
+ constructor(args) {
20
+ // initialize instance variables
21
+ this._eventBus = args.eventBus;
22
+ this.identity = args.identity;
23
+ this._data = args.data;
24
+ this._edits = new Map();
25
+ this._deletes = new Set();
26
+ }
27
+ get events$() {
28
+ return this._eventBus.events$.pipe((0, rxjs_1.filter)(e => ProfileStore.Event.filter(e)), (0, rxjs_1.filter)(e => e.store === this));
29
+ }
30
+ get modified() {
31
+ return this._edits.size > 0 || this._deletes.size > 0;
32
+ }
33
+ get id() {
34
+ return this._data.id;
35
+ }
36
+ get profileId() {
37
+ return this._data.profileId;
38
+ }
39
+ get data() {
40
+ const _a = this._data, { __internals, id, profileId } = _a, data = __rest(_a, ["__internals", "id", "profileId"]);
41
+ return data;
42
+ }
43
+ get(key) {
44
+ const { _edits, _deletes, _data } = this;
45
+ return _deletes.has(key)
46
+ ? undefined
47
+ : _edits.has(key)
48
+ ? _edits.get(key)
49
+ : _data[key];
50
+ }
51
+ set(key, value) {
52
+ // update
53
+ this._edits.set(key, value);
54
+ this._deletes.delete(key);
55
+ // raise event
56
+ this.raiseEvent('modified');
57
+ // chain
58
+ return this;
59
+ }
60
+ delete(key) {
61
+ // or delete it
62
+ this._edits.delete(key);
63
+ this._deletes.add(key);
64
+ // raise event
65
+ this.raiseEvent('modified');
66
+ // chain
67
+ return this;
68
+ }
69
+ clear() {
70
+ // clear current edits and deletes
71
+ this._edits.clear();
72
+ this._deletes.clear();
73
+ // loop over data and remove each custom key
74
+ for (const key in this._data) {
75
+ // skip if preserved key
76
+ if (key === 'id' || key === 'profileId') {
77
+ continue;
78
+ }
79
+ // add to deletes and remove data
80
+ this._deletes.add(key);
81
+ delete this._data[key];
82
+ }
83
+ // raise event
84
+ this.raiseEvent('modified');
85
+ // chain
86
+ return this;
87
+ }
88
+ importChanges({ id, profileId, updates, deletes }) {
89
+ // ensure we aren't updating the wrong profile
90
+ const { _edits, _deletes, modified } = this;
91
+ if (this.id !== id || this.profileId !== profileId) {
92
+ throw new funnel_core_1.InvalidOperationError(`Cannot import cross-store changes (received ${profileId}/${id}, expected ${this.profileId}/${this.id})`);
93
+ }
94
+ // throw if there are already changes
95
+ if (modified) {
96
+ throw new funnel_core_1.InvalidOperationError('Cannot import to an already modified store');
97
+ }
98
+ // apply edits
99
+ Object.entries(updates).forEach(([key, value]) => _edits.set(key, value));
100
+ // apply deletes
101
+ deletes.forEach(key => _deletes.add(key));
102
+ // raise event
103
+ this.raiseEvent('modified');
104
+ }
105
+ exportChanges() {
106
+ // create base
107
+ const { id, profileId, _edits, _deletes } = this;
108
+ const changes = {
109
+ id,
110
+ profileId,
111
+ updates: {},
112
+ deletes: []
113
+ };
114
+ // apply updates
115
+ _edits.forEach((value, key) => {
116
+ changes.updates[key] = value;
117
+ });
118
+ // apply deletes
119
+ _deletes.forEach(key => {
120
+ changes.deletes.push(key);
121
+ });
122
+ // return changes
123
+ return changes;
124
+ }
125
+ reset(data) {
126
+ // reset fields
127
+ this._edits.clear();
128
+ this._deletes.clear();
129
+ // replace data (if required)
130
+ if (data) {
131
+ this._data = data;
132
+ }
133
+ // raise event
134
+ this.raiseEvent('reset');
135
+ }
136
+ toData() {
137
+ // just return data if modified
138
+ const { modified, _data, _edits, _deletes } = this;
139
+ if (!modified) {
140
+ return _data;
141
+ }
142
+ // serialize data with changes
143
+ const data = Object.assign({}, _data);
144
+ // override any edits
145
+ _edits.forEach((value, key) => {
146
+ data[key] = value;
147
+ });
148
+ // clear any deletes
149
+ _deletes.forEach((key) => {
150
+ delete data[key];
151
+ });
152
+ // return data
153
+ return data;
154
+ }
155
+ toJSON() {
156
+ return JSON.parse(JSON.stringify(this.toData()));
157
+ }
158
+ toString() {
159
+ return `${this.constructor.name}: ${this.profileId}/${this.id}`;
160
+ }
161
+ raiseEvent(type) {
162
+ this._eventBus.publish(ProfileStore.Event.create({ type, store: this }));
163
+ }
164
+ }
165
+ exports.ProfileStore = ProfileStore;
166
+ // extension
167
+ (function (ProfileStore) {
168
+ let Event;
169
+ (function (Event) {
170
+ // methods
171
+ function filter(event) {
172
+ return event.domain === 'ProfileStore';
173
+ }
174
+ Event.filter = filter;
175
+ function create(event) {
176
+ return funnel_core_1.EventBus.createEvent(Object.assign({ domain: 'ProfileStore' }, event));
177
+ }
178
+ Event.create = create;
179
+ })(Event = ProfileStore.Event || (ProfileStore.Event = {}));
180
+ })(ProfileStore || (exports.ProfileStore = ProfileStore = {}));
@@ -0,0 +1,3 @@
1
+ export * from './Profile';
2
+ export * from './ProfileAppRequest';
3
+ export * from './ProfileStore';
@@ -0,0 +1,19 @@
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("./Profile"), exports);
18
+ __exportStar(require("./ProfileAppRequest"), exports);
19
+ __exportStar(require("./ProfileStore"), exports);
@@ -0,0 +1,13 @@
1
+ import { Jsonify } from 'type-fest';
2
+ import type { AppService } from '../../app/domain';
3
+ export type PushAppRequest = PushAppRequest.SubscribeWeb | PushAppRequest.SubscribeExpo | PushAppRequest.Unsubscribe;
4
+ export declare namespace PushAppRequest {
5
+ const appId: "_nd-push";
6
+ type AppId = typeof appId;
7
+ type SubscribeWeb = AppService.Request<AppId, typeof SubscribeWebMethod, Jsonify<PushSubscriptionJSON>>;
8
+ const SubscribeWebMethod: "subscribe.web";
9
+ type SubscribeExpo = AppService.Request<AppId, typeof SubscribeExpoMethod, string>;
10
+ const SubscribeExpoMethod: "subscribe.expo";
11
+ type Unsubscribe = AppService.Request<AppId, typeof UnsubscribeMethod, null>;
12
+ const UnsubscribeMethod: "unsubscribe";
13
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PushAppRequest = void 0;
4
+ // extension
5
+ var PushAppRequest;
6
+ (function (PushAppRequest) {
7
+ // app id
8
+ PushAppRequest.appId = '_nd-push';
9
+ PushAppRequest.SubscribeWebMethod = 'subscribe.web';
10
+ PushAppRequest.SubscribeExpoMethod = 'subscribe.expo';
11
+ PushAppRequest.UnsubscribeMethod = 'unsubscribe';
12
+ })(PushAppRequest || (exports.PushAppRequest = PushAppRequest = {}));
@@ -0,0 +1,7 @@
1
+ export interface PushStore {
2
+ webPushTokens: PushSubscriptionJSON[];
3
+ expoPushTokens: string[];
4
+ }
5
+ export declare namespace PushStore {
6
+ const id: "_nd-push";
7
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PushStore = void 0;
4
+ // extension
5
+ var PushStore;
6
+ (function (PushStore) {
7
+ // id
8
+ PushStore.id = '_nd-push';
9
+ })(PushStore || (exports.PushStore = PushStore = {}));
@@ -0,0 +1,2 @@
1
+ export * from './PushAppRequest';
2
+ export * from './PushStore';
@@ -0,0 +1,18 @@
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("./PushAppRequest"), exports);
18
+ __exportStar(require("./PushStore"), exports);