@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,23 @@
1
+ import { Result } from '@nascentdigital/funnel-core';
2
+ import { BehaviorSubject, Observable } from 'rxjs';
3
+ import type { Navigation } from '../Navigation';
4
+ import type { Spec } from '../Spec';
5
+ import type { SpecSource } from '../SpecSource';
6
+ export declare abstract class AbstractSpecSource<TNavigation extends Navigation> implements SpecSource<TNavigation> {
7
+ protected readonly _result$: BehaviorSubject<Result<Spec<TNavigation>>>;
8
+ protected _syncing$: BehaviorSubject<boolean>;
9
+ protected constructor({ spec }?: AbstractSpecSource.ConstructorArgs<TNavigation>);
10
+ get result$(): Observable<Result<Spec<TNavigation>>>;
11
+ get result(): Result<Spec<TNavigation>>;
12
+ protected set result(result: Result<Spec<TNavigation>>);
13
+ syncing$(): Observable<boolean>;
14
+ get syncing(): boolean;
15
+ protected set syncing(syncing: boolean);
16
+ sync(args: SpecSource.Sync.Args): Promise<Result.Completion<Spec<TNavigation>>>;
17
+ protected abstract onSync(args: SpecSource.Sync.Args): Promise<Spec<TNavigation>>;
18
+ }
19
+ export declare namespace AbstractSpecSource {
20
+ type ConstructorArgs<TNavigation extends Navigation> = {
21
+ spec?: Spec<TNavigation>;
22
+ };
23
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AbstractSpecSource = void 0;
4
+ const funnel_core_1 = require("@nascentdigital/funnel-core");
5
+ const rxjs_1 = require("rxjs");
6
+ // base class
7
+ class AbstractSpecSource {
8
+ constructor({ spec } = {}) {
9
+ // initialize instance variables
10
+ this._result$ = new rxjs_1.BehaviorSubject(spec
11
+ ? { __type: 'success', result: spec }
12
+ : { __type: 'pending' });
13
+ this._syncing$ = new rxjs_1.BehaviorSubject(false);
14
+ }
15
+ get result$() {
16
+ return this._result$.asObservable();
17
+ }
18
+ get result() {
19
+ return this._result$.getValue();
20
+ }
21
+ set result(result) {
22
+ this._result$.next(result);
23
+ }
24
+ syncing$() {
25
+ return this._syncing$;
26
+ }
27
+ get syncing() {
28
+ return this._syncing$.getValue();
29
+ }
30
+ set syncing(syncing) {
31
+ this._syncing$.next(syncing);
32
+ }
33
+ async sync(args) {
34
+ // try to fetch spec
35
+ try {
36
+ // mark as syncing
37
+ this.syncing = true;
38
+ // parse spec
39
+ const result = {
40
+ __type: 'success',
41
+ result: await this.onSync(args)
42
+ };
43
+ this.result = result;
44
+ // return result
45
+ return result;
46
+ }
47
+ // handle error
48
+ catch (e) {
49
+ // set result to an error
50
+ const result = {
51
+ __type: 'failure',
52
+ error: funnel_core_1.IsometricErrorUtils.coerceError(e)
53
+ };
54
+ this.result = result;
55
+ // return result
56
+ return result;
57
+ }
58
+ // clear sync on completion
59
+ finally {
60
+ this.syncing = false;
61
+ }
62
+ }
63
+ }
64
+ exports.AbstractSpecSource = AbstractSpecSource;
@@ -0,0 +1,9 @@
1
+ import type { Navigation } from '../Navigation';
2
+ import type { Spec } from '../Spec';
3
+ import type { SpecSource } from '../SpecSource';
4
+ import { AbstractSpecSource } from './AbstractSpecSource';
5
+ export declare class StaticSpecSource<TNavigation extends Navigation = Navigation> extends AbstractSpecSource<TNavigation> {
6
+ private readonly spec;
7
+ constructor(spec: Spec<TNavigation>);
8
+ protected onSync(args: SpecSource.Sync.Args): Promise<Spec<TNavigation>>;
9
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StaticSpecSource = void 0;
4
+ const AbstractSpecSource_1 = require("./AbstractSpecSource");
5
+ // class
6
+ class StaticSpecSource extends AbstractSpecSource_1.AbstractSpecSource {
7
+ constructor(spec) {
8
+ // construct base
9
+ super({ spec });
10
+ this.spec = spec;
11
+ }
12
+ async onSync(args) {
13
+ return this.spec;
14
+ }
15
+ }
16
+ exports.StaticSpecSource = StaticSpecSource;
@@ -0,0 +1,2 @@
1
+ export * from './AbstractSpecSource';
2
+ export * from './StaticSpecSource';
@@ -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("./AbstractSpecSource"), exports);
18
+ __exportStar(require("./StaticSpecSource"), exports);
@@ -0,0 +1 @@
1
+ export declare function NavigationEngine(): import("react").JSX.Element;
@@ -0,0 +1,155 @@
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.NavigationEngine = NavigationEngine;
15
+ const unstable_1 = require("@react-navigation/bottom-tabs/unstable");
16
+ const native_1 = require("@react-navigation/native");
17
+ const native_stack_1 = require("@react-navigation/native-stack");
18
+ const react_native_1 = require("react-native");
19
+ const core_1 = require("../core");
20
+ const NavigationScreen_1 = require("./NavigationScreen");
21
+ // component
22
+ function NavigationEngine() {
23
+ // bind context
24
+ const specResult = (0, core_1.useSpec)();
25
+ // render based on spec state
26
+ switch (specResult.__type) {
27
+ // loading
28
+ case 'pending':
29
+ return (<react_native_1.View className="flex-1 flex flex-col justify-center items-center p-l8">
30
+ <react_native_1.Text>
31
+ Loading navigation...
32
+ </react_native_1.Text>
33
+ </react_native_1.View>);
34
+ // failed
35
+ case 'failure': {
36
+ const { error } = specResult;
37
+ return (<react_native_1.View className="flex-1 flex flex-col justify-center items-center p-l8">
38
+ <react_native_1.Text className="text-[red]">
39
+ Error: {error.name}: {error.message}
40
+ </react_native_1.Text>
41
+ </react_native_1.View>);
42
+ }
43
+ // or success
44
+ case 'success':
45
+ return renderSpec(specResult.result);
46
+ }
47
+ }
48
+ function renderSpec(spec) {
49
+ // build top-level nav
50
+ const screens = [];
51
+ const modals = [];
52
+ try {
53
+ // process each top-level items, pushing content to appropriate nav structure
54
+ const Stack = (0, native_stack_1.createNativeStackNavigator)();
55
+ Object.entries(spec.navigation).forEach(([key, navItem]) => {
56
+ // process item
57
+ switch (navItem.__type) {
58
+ case 'tabs':
59
+ console.debug(`[NavigationEngine] rendering tabs "${key}"`, navItem.items);
60
+ screens.push(<Stack.Screen key={key} name={key}>
61
+ {() => renderTabs({ key, navItem, spec })}
62
+ </Stack.Screen>);
63
+ break;
64
+ case 'stack':
65
+ console.debug(`[NavigationEngine] rendering stack "${key}"`, navItem.items);
66
+ screens.push(<Stack.Screen key={key} name={key}>
67
+ {() => renderStack({ key, navItem, spec })}
68
+ </Stack.Screen>);
69
+ break;
70
+ case 'modal':
71
+ console.debug(`[NavigationEngine] rendering modal "${key}"`, navItem.content);
72
+ modals.push(<Stack.Screen key={key} name={key}>
73
+ {() => renderNavItem({ key, navItem: navItem.content, spec })}
74
+ </Stack.Screen>);
75
+ break;
76
+ }
77
+ });
78
+ // render navigation
79
+ return (<native_1.NavigationContainer>
80
+ <Stack.Navigator screenOptions={{ headerShown: false }}>
81
+ <Stack.Group navigationKey="screens">
82
+ {screens}
83
+ </Stack.Group>
84
+ <Stack.Group navigationKey="modals" screenOptions={{
85
+ presentation: 'modal'
86
+ }}>
87
+ {modals}
88
+ </Stack.Group>
89
+ </Stack.Navigator>
90
+ </native_1.NavigationContainer>);
91
+ }
92
+ catch (e) {
93
+ return (<react_native_1.View className="flex-1 flex flex-col justify-center items-center p-l8">
94
+ <react_native_1.Text className="text-[red]">
95
+ Failed to build nav: {e instanceof Error ? e.message : 'Unknown'}
96
+ </react_native_1.Text>
97
+ </react_native_1.View>);
98
+ }
99
+ }
100
+ function renderNavItem(_a) {
101
+ var { navItem } = _a, args = __rest(_a, ["navItem"]);
102
+ // process next components
103
+ switch (navItem.__type) {
104
+ case 'tabs':
105
+ return renderTabs(Object.assign(Object.assign({}, args), { navItem }));
106
+ case 'stack':
107
+ return renderStack(Object.assign(Object.assign({}, args), { navItem }));
108
+ case 'modal':
109
+ return renderModal(Object.assign(Object.assign({}, args), { navItem }));
110
+ default:
111
+ return renderScreen(Object.assign(Object.assign({}, args), { navItem }));
112
+ }
113
+ }
114
+ function renderTabs(_a) {
115
+ var { navItem } = _a, args = __rest(_a, ["navItem"]);
116
+ // render tabs
117
+ const Tab = (0, unstable_1.createNativeBottomTabNavigator)();
118
+ return (<Tab.Navigator key={args.key} screenOptions={{
119
+ overrideScrollViewContentInsetAdjustmentBehavior: false,
120
+ tabBarMinimizeBehavior: 'auto',
121
+ tabBarLabelVisibilityMode: 'selected',
122
+ tabBarStyle: {
123
+ backgroundColor: 'transparent'
124
+ }
125
+ }}>
126
+ {Object.entries(navItem.items).map(([key, item]) => <Tab.Screen name={key}>
127
+ {() => renderNavItem(Object.assign(Object.assign({}, args), { navItem: item.content }))}
128
+ </Tab.Screen>)}
129
+ </Tab.Navigator>);
130
+ }
131
+ function renderStack(_a) {
132
+ var { navItem } = _a, args = __rest(_a, ["navItem"]);
133
+ // render
134
+ const Stack = (0, native_stack_1.createNativeStackNavigator)();
135
+ return (<Stack.Navigator key={args.key}>
136
+ {Object.entries(navItem.items).map(([key, item]) => <Stack.Screen name={key}>
137
+ {() => renderNavItem(Object.assign(Object.assign({}, args), { navItem: item.content }))}
138
+ </Stack.Screen>)}
139
+ </Stack.Navigator>);
140
+ }
141
+ function renderModal({ key, navItem }) {
142
+ // TODO: complete for modal navigation
143
+ return null;
144
+ }
145
+ function renderScreen({ key, spec, navItem }) {
146
+ var _a;
147
+ // TODO: resolve route parameters
148
+ // resolve screen url
149
+ const { route } = navItem;
150
+ const url = route.length > 0
151
+ ? `${process.env.EXPO_PUBLIC_APP_URL}/${route}`
152
+ : (_a = process.env.EXPO_PUBLIC_APP_URL) !== null && _a !== void 0 ? _a : '';
153
+ // render screen
154
+ return (<NavigationScreen_1.NavigationScreen key={key} spec={spec} screen={navItem} url={url}/>);
155
+ }
@@ -0,0 +1,9 @@
1
+ import { Screen, Spec } from '../domain';
2
+ export declare function NavigationScreen({ spec, screen, url }: NavigationScreen.Props): import("react").JSX.Element;
3
+ export declare namespace NavigationScreen {
4
+ type Props = {
5
+ spec: Spec<any>;
6
+ screen: Screen;
7
+ url: string;
8
+ };
9
+ }
@@ -0,0 +1,215 @@
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.NavigationScreen = NavigationScreen;
37
+ const funnel_core_1 = require("@nascentdigital/funnel-core");
38
+ const native_1 = require("@react-navigation/native");
39
+ const react_1 = require("react");
40
+ const react_native_1 = require("react-native");
41
+ const react_native_reanimated_1 = __importStar(require("react-native-reanimated"));
42
+ const react_native_safe_area_context_1 = require("react-native-safe-area-context");
43
+ const rn_1 = require("../../bridge/rn");
44
+ const core_1 = require("../core");
45
+ const domain_1 = require("../domain");
46
+ // component
47
+ function NavigationScreen({ spec, screen, url }) {
48
+ // listen for navigation events
49
+ const [hideSplash, setHideSplash] = (0, react_1.useState)(false);
50
+ const reactNavigation = (0, native_1.useNavigation)();
51
+ const isFocused = (0, native_1.useIsFocused)();
52
+ const calls = (0, rn_1.useBridgeProxyCalls)('app.hideSplash', 'app.navigate');
53
+ const specResult = (0, core_1.useSpec)();
54
+ const routes = (0, react_1.useMemo)(() => specResult.__type === 'success'
55
+ ? domain_1.Routes.fromSpec(specResult.result)
56
+ : undefined, [specResult]);
57
+ // handle hideSplash
58
+ (0, react_1.useEffect)(() => {
59
+ console.debug('[NavigationScreen] checking calls', calls);
60
+ // hide splash when ready
61
+ const hideSplashCall = calls.find(call => call.method === 'app.hideSplash');
62
+ if (hideSplashCall) {
63
+ console.debug('[NavigationScreen] hiding splash', hideSplashCall);
64
+ // hide splash
65
+ setHideSplash(true);
66
+ // resolve
67
+ hideSplashCall.resolve(true);
68
+ }
69
+ }, [calls]);
70
+ // handle navigation
71
+ (0, react_1.useEffect)(() => {
72
+ // routes aren't ready
73
+ if (!routes) {
74
+ return;
75
+ }
76
+ // skip if there are no calls
77
+ const navigationCall = calls.find(call => call.method === 'app.navigate');
78
+ if (!navigationCall) {
79
+ return;
80
+ }
81
+ // ignore if not focused
82
+ else if (!isFocused) {
83
+ return;
84
+ }
85
+ // or perform a single (first to last - other calls get handled later)
86
+ const { args } = navigationCall.call;
87
+ switch (args.__type) {
88
+ case 'push':
89
+ case 'replace': {
90
+ // skip if there's no mapped route
91
+ const route = routes[args.url];
92
+ if (!route) {
93
+ console.warn('[NavigationScreen] no mapping for route', args.url);
94
+ return;
95
+ }
96
+ // skip if nav item isn't found
97
+ const navItem = funnel_core_1.ArrayUtils.last(route.navigation);
98
+ if (!navItem) {
99
+ console.warn('[NavigationScreen] no parent for screen in route', args.url);
100
+ return;
101
+ }
102
+ // navigate based on type
103
+ const { id } = route.screen;
104
+ const { navigation } = navItem;
105
+ switch (navigation.__type) {
106
+ // switch tab
107
+ case 'tabs':
108
+ console.debug('[NavigationScreen] presenting tab:', id);
109
+ reactNavigation.navigate(id);
110
+ break;
111
+ case 'stack':
112
+ console.debug('[NavigationScreen] presenting stack item:', id);
113
+ reactNavigation.navigate(id);
114
+ break;
115
+ case 'modal':
116
+ console.debug('[NavigationScreen] presenting modal:', id);
117
+ reactNavigation.navigate(id);
118
+ break;
119
+ }
120
+ // mark resolved
121
+ navigationCall.resolve(true)
122
+ .catch(console.error);
123
+ break;
124
+ }
125
+ case 'back':
126
+ console.debug('[NavigationScreen] handling navigation call', args);
127
+ // go back
128
+ if (reactNavigation.canGoBack()) {
129
+ reactNavigation.goBack();
130
+ }
131
+ // mark resolved
132
+ navigationCall.resolve(true)
133
+ .catch(console.error);
134
+ break;
135
+ }
136
+ }, [reactNavigation, calls, isFocused, routes]);
137
+ // render
138
+ return (<react_native_1.View className="relative flex-1">
139
+
140
+ {/* webview */}
141
+ <rn_1.BridgeWebview url={url}/>
142
+
143
+ {/* splash */}
144
+ {!hideSplash && renderSplash({ spec, skeleton: screen.skeleton }, () => setHideSplash(true))}
145
+ </react_native_1.View>);
146
+ }
147
+ // animations
148
+ const pulseAnimation = {
149
+ animationName: {
150
+ from: {
151
+ opacity: 1
152
+ },
153
+ to: {
154
+ opacity: 0.5
155
+ }
156
+ },
157
+ animationDuration: '1s',
158
+ animationIterationCount: 'infinite',
159
+ animationTimingFunction: 'ease-in-out',
160
+ animationDirection: 'alternate'
161
+ };
162
+ function renderSplash({ spec, skeleton: { background, color, padding = 0, items } = { items: [] } }, onClick) {
163
+ // or render generic loader
164
+ return (<react_native_reanimated_1.default.View style={{
165
+ flex: 1,
166
+ position: 'absolute',
167
+ inset: 0,
168
+ backgroundColor: background !== null && background !== void 0 ? background : spec.backgroundColor
169
+ }} exiting={react_native_reanimated_1.FadeOut} onTouchStart={() => {
170
+ console.debug('[NavigationScreen] onTouchStart');
171
+ onClick();
172
+ }} onPointerDown={() => {
173
+ console.debug('[NavigationScreen] onClick');
174
+ onClick();
175
+ }}>
176
+ <react_native_safe_area_context_1.SafeAreaView className="flex-1" style={{
177
+ paddingHorizontal: typeof padding === 'number' ? padding : padding[0],
178
+ paddingVertical: typeof padding === 'number' ? padding : padding[1],
179
+ backgroundColor: background
180
+ }}>
181
+ {items.map((item, index) => {
182
+ const args = {
183
+ id: `${item.__type}.${index}`,
184
+ color: color !== null && color !== void 0 ? color : spec.skeletonColor
185
+ };
186
+ return item.__type === 'text'
187
+ ? renderText(Object.assign({ skeleton: item }, args))
188
+ : renderImage(Object.assign({ skeleton: item }, args));
189
+ })}
190
+ </react_native_safe_area_context_1.SafeAreaView>
191
+ </react_native_reanimated_1.default.View>);
192
+ }
193
+ function renderText({ id, skeleton, color }) {
194
+ console.debug('[NavigationScreen] rendering navigation text', skeleton);
195
+ const { width = '50%', radius = 4, lines = 1, lineGap, size = 25, margin = 10 } = skeleton;
196
+ return (<react_native_reanimated_1.default.View key={id} className="w-full flex flex-col" style={[{ gap: lineGap, marginTop: margin }, pulseAnimation]}>
197
+ {funnel_core_1.ArrayUtils.series(lines - 1).map(line => <react_native_1.View key={`line.${line}`} className="animation-pulse" style={{
198
+ width: width,
199
+ height: size,
200
+ borderRadius: radius,
201
+ backgroundColor: color
202
+ }}/>)}
203
+ </react_native_reanimated_1.default.View>);
204
+ }
205
+ function renderImage({ id, skeleton, color }) {
206
+ const { width = '50%', height, radius = 0, aspectRatio, margin = 10 } = skeleton;
207
+ return (<react_native_1.View key={id} style={{
208
+ width: width,
209
+ height,
210
+ aspectRatio,
211
+ borderRadius: `${radius !== null && radius !== void 0 ? radius : 0}px`,
212
+ backgroundColor: color,
213
+ marginTop: margin
214
+ }}/>);
215
+ }
@@ -0,0 +1,2 @@
1
+ import { PropsWithChildren } from 'react';
2
+ export declare function RNSpecProvider({ children }: PropsWithChildren): import("react").JSX.Element;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RNSpecProvider = RNSpecProvider;
4
+ const react_1 = require("react");
5
+ const core_1 = require("../../identity/core");
6
+ const core_2 = require("../core");
7
+ const RNSpecSource_1 = require("./RNSpecSource");
8
+ function RNSpecProvider({ children }) {
9
+ // bind context
10
+ const specSource = (0, react_1.useMemo)(() => new RNSpecSource_1.RNSpecSource(), []);
11
+ const context = (0, react_1.useMemo)(() => ({ specSource }), [specSource]);
12
+ const { identity } = (0, core_1.useIdentity)();
13
+ (0, react_1.useEffect)(() => {
14
+ // skip if there's no identity
15
+ if (!identity) {
16
+ return;
17
+ }
18
+ // fetch spec
19
+ specSource.sync({ identity })
20
+ .then(spec => {
21
+ console.debug('[WebSpecProvider] resolved spec ', spec);
22
+ })
23
+ .catch(e => console.error('[WebSpecProvider] failed to get spec', e));
24
+ // TODO: continue sync?
25
+ }, [specSource, identity]);
26
+ // render
27
+ return (<core_2.SpecSourceContext.Provider value={context}>
28
+ {children}
29
+ </core_2.SpecSourceContext.Provider>);
30
+ }
@@ -0,0 +1,5 @@
1
+ import { AbstractSpecSource, Navigation, Spec, SpecSource } from '../domain';
2
+ export declare class RNSpecSource<TNavigation extends Navigation = Navigation> extends AbstractSpecSource<TNavigation> {
3
+ constructor();
4
+ protected onSync({ identity }: SpecSource.Sync.Args): Promise<Spec<TNavigation>>;
5
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RNSpecSource = void 0;
4
+ const funnel_core_1 = require("@nascentdigital/funnel-core");
5
+ const rn_1 = require("../../app/rn");
6
+ const domain_1 = require("../../identity/domain");
7
+ const domain_2 = require("../domain");
8
+ // class
9
+ class RNSpecSource extends domain_2.AbstractSpecSource {
10
+ constructor() {
11
+ // construct base
12
+ super();
13
+ }
14
+ async onSync({ identity }) {
15
+ // throw if identity isn't authenticated
16
+ if (!identity || !(identity instanceof domain_1.AuthenticatedIdentity)) {
17
+ throw new funnel_core_1.InvalidOperationError('RNSpecSource.sync requires an AuthenticatedIdentity');
18
+ }
19
+ // fetch spec
20
+ const specData = await rn_1.AppServiceClient
21
+ .post({
22
+ apiToken: identity.apiToken,
23
+ id: '_nd-nav',
24
+ method: 'getSpec',
25
+ data: null
26
+ });
27
+ return domain_2.Spec.fromData(specData);
28
+ }
29
+ }
30
+ exports.RNSpecSource = RNSpecSource;
@@ -0,0 +1,4 @@
1
+ export * from '../core';
2
+ export * from './NavigationEngine';
3
+ export * from './RNSpecProvider';
4
+ export * from './RNSpecSource';
@@ -0,0 +1,20 @@
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("../core"), exports);
18
+ __exportStar(require("./NavigationEngine"), exports);
19
+ __exportStar(require("./RNSpecProvider"), exports);
20
+ __exportStar(require("./RNSpecSource"), exports);