@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.
- package/dist/react/app/domain/AppService.d.ts +19 -0
- package/dist/react/app/domain/AppService.js +19 -0
- package/dist/react/app/domain/AppServiceClient.d.ts +7 -0
- package/dist/react/app/domain/AppServiceClient.js +57 -0
- package/dist/react/app/domain/AppState.d.ts +1 -0
- package/dist/react/app/domain/AppState.js +2 -0
- package/dist/react/app/domain/index.d.ts +3 -0
- package/dist/react/app/domain/index.js +19 -0
- package/dist/react/app/server/AbstractAppService.d.ts +17 -0
- package/dist/react/app/server/AbstractAppService.js +24 -0
- package/dist/react/app/server/AppServices.d.ts +11 -0
- package/dist/react/app/server/AppServices.js +92 -0
- package/dist/react/app/server/index.d.ts +4 -0
- package/dist/react/app/server/index.js +20 -0
- package/dist/react/app/web/App.d.ts +38 -0
- package/dist/react/app/web/App.js +116 -0
- package/dist/react/app/web/AppContainer.d.ts +16 -0
- package/dist/react/app/web/AppContainer.js +109 -0
- package/dist/react/app/web/AppContext.d.ts +7 -0
- package/dist/react/app/web/AppContext.js +6 -0
- package/dist/react/app/web/AppLayout.d.ts +7 -0
- package/dist/react/app/web/AppLayout.js +34 -0
- package/dist/react/app/web/AppPage.d.ts +13 -0
- package/dist/react/app/web/AppPage.js +30 -0
- package/dist/react/app/web/AppRoot.d.ts +7 -0
- package/dist/react/app/web/AppRoot.js +43 -0
- package/dist/react/app/web/index.d.ts +5 -0
- package/dist/react/app/web/index.js +21 -0
- package/dist/react/app/web/useApp.d.ts +2 -0
- package/dist/react/app/web/useApp.js +33 -0
- package/dist/react/auth0/server/Auth0IdentityService.d.ts +25 -0
- package/dist/react/auth0/server/Auth0IdentityService.js +84 -0
- package/dist/react/auth0/server/Auth0Profile.d.ts +19 -0
- package/dist/react/auth0/server/Auth0Profile.js +108 -0
- package/dist/react/auth0/server/Auth0ProfileFactory.d.ts +15 -0
- package/dist/react/auth0/server/Auth0ProfileFactory.js +51 -0
- package/dist/react/auth0/server/Auth0ProfileManagementService.d.ts +17 -0
- package/dist/react/auth0/server/Auth0ProfileManagementService.js +127 -0
- package/dist/react/auth0/server/Auth0ProfileServices.d.ts +13 -0
- package/dist/react/auth0/server/Auth0ProfileServices.js +19 -0
- package/dist/react/auth0/server/Auth0ProfileStore.d.ts +17 -0
- package/dist/react/auth0/server/Auth0ProfileStore.js +83 -0
- package/dist/react/auth0/server/Auth0ProfileUserService.d.ts +16 -0
- package/dist/react/auth0/server/Auth0ProfileUserService.js +48 -0
- package/dist/react/auth0/server/index.d.ts +4 -0
- package/dist/react/auth0/server/index.js +20 -0
- package/dist/react/auth0/web/Auth0IdentityClient.d.ts +34 -0
- package/dist/react/auth0/web/Auth0IdentityClient.js +200 -0
- package/dist/react/auth0/web/Auth0IdentityClientProvider.d.ts +35 -0
- package/dist/react/auth0/web/Auth0IdentityClientProvider.js +67 -0
- package/dist/react/auth0/web/index.d.ts +1 -0
- package/dist/react/auth0/web/index.js +17 -0
- package/dist/react/bridge/core/BridgeConnection.d.ts +6 -0
- package/dist/react/bridge/core/BridgeConnection.js +2 -0
- package/dist/react/bridge/core/BridgeConstants.d.ts +7 -0
- package/dist/react/bridge/core/BridgeConstants.js +15 -0
- package/dist/react/bridge/core/BridgeEvent.d.ts +52 -0
- package/dist/react/bridge/core/BridgeEvent.js +28 -0
- package/dist/react/bridge/core/BridgeMethod.d.ts +12 -0
- package/dist/react/bridge/core/BridgeMethod.js +2 -0
- package/dist/react/bridge/core/BridgeMethodCall.d.ts +23 -0
- package/dist/react/bridge/core/BridgeMethodCall.js +37 -0
- package/dist/react/bridge/core/BridgeMethods.d.ts +35 -0
- package/dist/react/bridge/core/BridgeMethods.js +2 -0
- package/dist/react/bridge/core/BridgeState.d.ts +24 -0
- package/dist/react/bridge/core/BridgeState.js +2 -0
- package/dist/react/bridge/core/index.d.ts +7 -0
- package/dist/react/bridge/core/index.js +23 -0
- package/dist/react/bridge/web/Bridge.d.ts +32 -0
- package/dist/react/bridge/web/Bridge.js +183 -0
- package/dist/react/bridge/web/BridgeContext.d.ts +8 -0
- package/dist/react/bridge/web/BridgeContext.js +6 -0
- package/dist/react/bridge/web/BridgeGlobals.d.ts +12 -0
- package/dist/react/bridge/web/BridgeGlobals.js +2 -0
- package/dist/react/bridge/web/BridgeProvider.d.ts +7 -0
- package/dist/react/bridge/web/BridgeProvider.js +36 -0
- package/dist/react/bridge/web/index.d.ts +6 -0
- package/dist/react/bridge/web/index.js +22 -0
- package/dist/react/bridge/web/useBridge.d.ts +3 -0
- package/dist/react/bridge/web/useBridge.js +39 -0
- package/dist/react/bridge/web/useBridgeState.d.ts +2 -0
- package/dist/react/bridge/web/useBridgeState.js +43 -0
- package/dist/react/bridge/web/useSafeArea.d.ts +1 -0
- package/dist/react/bridge/web/useSafeArea.js +11 -0
- package/dist/react/content/core/AppContentClient.d.ts +14 -0
- package/dist/react/content/core/AppContentClient.js +51 -0
- package/dist/react/content/core/ContentClientContext.d.ts +7 -0
- package/dist/react/content/core/ContentClientContext.js +6 -0
- package/dist/react/content/core/index.d.ts +1 -0
- package/dist/react/content/core/index.js +17 -0
- package/dist/react/content/domain/ContentAppRequest.d.ts +20 -0
- package/dist/react/content/domain/ContentAppRequest.js +11 -0
- package/dist/react/content/domain/index.d.ts +1 -0
- package/dist/react/content/domain/index.js +17 -0
- package/dist/react/content/server/ContentAppService.d.ts +11 -0
- package/dist/react/content/server/ContentAppService.js +34 -0
- package/dist/react/content/server/index.d.ts +1 -0
- package/dist/react/content/server/index.js +17 -0
- package/dist/react/content/web/ContentProvider.d.ts +5 -0
- package/dist/react/content/web/ContentProvider.js +17 -0
- package/dist/react/content/web/index.d.ts +6 -0
- package/dist/react/content/web/index.js +22 -0
- package/dist/react/content/web/useCollection.d.ts +10 -0
- package/dist/react/content/web/useCollection.js +22 -0
- package/dist/react/content/web/useCollections.d.ts +10 -0
- package/dist/react/content/web/useCollections.js +32 -0
- package/dist/react/content/web/useContentClient.d.ts +1 -0
- package/dist/react/content/web/useContentClient.js +9 -0
- package/dist/react/cookies/web/CookieService.d.ts +25 -0
- package/dist/react/cookies/web/CookieService.js +45 -0
- package/dist/react/cookies/web/CookieServiceContext.d.ts +7 -0
- package/dist/react/cookies/web/CookieServiceContext.js +6 -0
- package/dist/react/cookies/web/CookieServiceProvider.d.ts +6 -0
- package/dist/react/cookies/web/CookieServiceProvider.js +16 -0
- package/dist/react/cookies/web/index.d.ts +3 -0
- package/dist/react/cookies/web/index.js +19 -0
- package/dist/react/cookies/web/useCookieService.d.ts +2 -0
- package/dist/react/cookies/web/useCookieService.js +29 -0
- package/dist/react/identity/core/AbstractIdentityClient.d.ts +22 -0
- package/dist/react/identity/core/AbstractIdentityClient.js +31 -0
- package/dist/react/identity/core/IdentityClient.d.ts +22 -0
- package/dist/react/identity/core/IdentityClient.js +13 -0
- package/dist/react/identity/core/IdentityClientContext.d.ts +7 -0
- package/dist/react/identity/core/IdentityClientContext.js +6 -0
- package/dist/react/identity/core/index.d.ts +6 -0
- package/dist/react/identity/core/index.js +22 -0
- package/dist/react/identity/core/useIdentity.d.ts +10 -0
- package/dist/react/identity/core/useIdentity.js +39 -0
- package/dist/react/identity/core/useIdentityClient.d.ts +2 -0
- package/dist/react/identity/core/useIdentityClient.js +17 -0
- package/dist/react/identity/domain/AnonymousIdentity.d.ts +15 -0
- package/dist/react/identity/domain/AnonymousIdentity.js +27 -0
- package/dist/react/identity/domain/AuthenticatedIdentity.d.ts +25 -0
- package/dist/react/identity/domain/AuthenticatedIdentity.js +32 -0
- package/dist/react/identity/domain/Identity.d.ts +6 -0
- package/dist/react/identity/domain/Identity.js +2 -0
- package/dist/react/identity/domain/IdentityAppRequest.d.ts +8 -0
- package/dist/react/identity/domain/IdentityAppRequest.js +10 -0
- package/dist/react/identity/domain/index.d.ts +4 -0
- package/dist/react/identity/domain/index.js +20 -0
- package/dist/react/identity/server/IdentityAppService.d.ts +9 -0
- package/dist/react/identity/server/IdentityAppService.js +32 -0
- package/dist/react/identity/server/IdentityService.d.ts +17 -0
- package/dist/react/identity/server/IdentityService.js +25 -0
- package/dist/react/identity/server/index.d.ts +4 -0
- package/dist/react/identity/server/index.js +20 -0
- package/dist/react/identity/web/WebIdentityClientProvider.d.ts +8 -0
- package/dist/react/identity/web/WebIdentityClientProvider.js +27 -0
- package/dist/react/identity/web/WebIdentityProvider.d.ts +5 -0
- package/dist/react/identity/web/WebIdentityProvider.js +21 -0
- package/dist/react/identity/web/bridge/AppBridgeIdentityClient.d.ts +14 -0
- package/dist/react/identity/web/bridge/AppBridgeIdentityClient.js +47 -0
- package/dist/react/identity/web/bridge/AppBridgeIdentityClientProvider.d.ts +2 -0
- package/dist/react/identity/web/bridge/AppBridgeIdentityClientProvider.js +28 -0
- package/dist/react/identity/web/bridge/index.d.ts +1 -0
- package/dist/react/identity/web/bridge/index.js +17 -0
- package/dist/react/identity/web/index.d.ts +3 -0
- package/dist/react/identity/web/index.js +19 -0
- package/dist/react/nav/core/SpecSourceContext.d.ts +7 -0
- package/dist/react/nav/core/SpecSourceContext.js +6 -0
- package/dist/react/nav/core/index.d.ts +2 -0
- package/dist/react/nav/core/index.js +18 -0
- package/dist/react/nav/core/useSpec.d.ts +3 -0
- package/dist/react/nav/core/useSpec.js +30 -0
- package/dist/react/nav/domain/Icon.d.ts +2 -0
- package/dist/react/nav/domain/Icon.js +2 -0
- package/dist/react/nav/domain/Modal.d.ts +25 -0
- package/dist/react/nav/domain/Modal.js +28 -0
- package/dist/react/nav/domain/Navigation.d.ts +13 -0
- package/dist/react/nav/domain/Navigation.js +2 -0
- package/dist/react/nav/domain/NavigationCommand.d.ts +14 -0
- package/dist/react/nav/domain/NavigationCommand.js +2 -0
- package/dist/react/nav/domain/Route.d.ts +12 -0
- package/dist/react/nav/domain/Route.js +2 -0
- package/dist/react/nav/domain/Routes.d.ts +6 -0
- package/dist/react/nav/domain/Routes.js +74 -0
- package/dist/react/nav/domain/Screen.d.ts +24 -0
- package/dist/react/nav/domain/Screen.js +28 -0
- package/dist/react/nav/domain/Skeleton.d.ts +26 -0
- package/dist/react/nav/domain/Skeleton.js +2 -0
- package/dist/react/nav/domain/Spec.d.ts +33 -0
- package/dist/react/nav/domain/Spec.js +124 -0
- package/dist/react/nav/domain/SpecSource.d.ts +21 -0
- package/dist/react/nav/domain/SpecSource.js +28 -0
- package/dist/react/nav/domain/Stack.d.ts +35 -0
- package/dist/react/nav/domain/Stack.js +44 -0
- package/dist/react/nav/domain/Tabs.d.ts +37 -0
- package/dist/react/nav/domain/Tabs.js +45 -0
- package/dist/react/nav/domain/icons/ImageIcon.d.ts +2 -0
- package/dist/react/nav/domain/icons/ImageIcon.js +7 -0
- package/dist/react/nav/domain/icons/LucideIcon.d.ts +2 -0
- package/dist/react/nav/domain/icons/LucideIcon.js +7 -0
- package/dist/react/nav/domain/icons/index.d.ts +2 -0
- package/dist/react/nav/domain/icons/index.js +18 -0
- package/dist/react/nav/domain/index.d.ts +14 -0
- package/dist/react/nav/domain/index.js +30 -0
- package/dist/react/nav/domain/sources/AbstractSpecSource.d.ts +23 -0
- package/dist/react/nav/domain/sources/AbstractSpecSource.js +64 -0
- package/dist/react/nav/domain/sources/StaticSpecSource.d.ts +9 -0
- package/dist/react/nav/domain/sources/StaticSpecSource.js +16 -0
- package/dist/react/nav/domain/sources/index.d.ts +2 -0
- package/dist/react/nav/domain/sources/index.js +18 -0
- package/dist/react/nav/server/SpecService.d.ts +9 -0
- package/dist/react/nav/server/SpecService.js +31 -0
- package/dist/react/nav/server/exports.d.ts +1 -0
- package/dist/react/nav/server/exports.js +17 -0
- package/dist/react/nav/server/index.d.ts +2 -0
- package/dist/react/nav/server/index.js +38 -0
- package/dist/react/nav/web/WebSpecProvider.d.ts +2 -0
- package/dist/react/nav/web/WebSpecProvider.js +41 -0
- package/dist/react/nav/web/index.d.ts +3 -0
- package/dist/react/nav/web/index.js +19 -0
- package/dist/react/nav/web/navigator/NativeNavigator.d.ts +13 -0
- package/dist/react/nav/web/navigator/NativeNavigator.js +47 -0
- package/dist/react/nav/web/navigator/Navigator.d.ts +7 -0
- package/dist/react/nav/web/navigator/Navigator.js +2 -0
- package/dist/react/nav/web/navigator/NavigatorContext.d.ts +7 -0
- package/dist/react/nav/web/navigator/NavigatorContext.js +6 -0
- package/dist/react/nav/web/navigator/WebNavigator.d.ts +13 -0
- package/dist/react/nav/web/navigator/WebNavigator.js +38 -0
- package/dist/react/nav/web/navigator/index.d.ts +5 -0
- package/dist/react/nav/web/navigator/index.js +21 -0
- package/dist/react/nav/web/navigator/useNavigator.d.ts +1 -0
- package/dist/react/nav/web/navigator/useNavigator.js +17 -0
- package/dist/react/nav.d.ts +1 -0
- package/dist/react/nav.js +37 -0
- package/dist/react/profile/core/AbstractProfileClient.d.ts +18 -0
- package/dist/react/profile/core/AbstractProfileClient.js +31 -0
- package/dist/react/profile/core/ProfileClient.d.ts +21 -0
- package/dist/react/profile/core/ProfileClient.js +2 -0
- package/dist/react/profile/core/ProfileClientContext.d.ts +7 -0
- package/dist/react/profile/core/ProfileClientContext.js +6 -0
- package/dist/react/profile/core/index.d.ts +6 -0
- package/dist/react/profile/core/index.js +22 -0
- package/dist/react/profile/core/useProfile.d.ts +9 -0
- package/dist/react/profile/core/useProfile.js +47 -0
- package/dist/react/profile/core/useProfileClient.d.ts +2 -0
- package/dist/react/profile/core/useProfileClient.js +17 -0
- package/dist/react/profile/core/useProfileStore.d.ts +2 -0
- package/dist/react/profile/core/useProfileStore.js +28 -0
- package/dist/react/profile/domain/Profile.d.ts +80 -0
- package/dist/react/profile/domain/Profile.js +209 -0
- package/dist/react/profile/domain/ProfileAppRequest.d.ts +15 -0
- package/dist/react/profile/domain/ProfileAppRequest.js +12 -0
- package/dist/react/profile/domain/ProfileStore.d.ts +65 -0
- package/dist/react/profile/domain/ProfileStore.js +180 -0
- package/dist/react/profile/domain/index.d.ts +3 -0
- package/dist/react/profile/domain/index.js +19 -0
- package/dist/react/profile/server/ProfileAppService.d.ts +11 -0
- package/dist/react/profile/server/ProfileAppService.js +49 -0
- package/dist/react/profile/server/ProfileManagementService.d.ts +28 -0
- package/dist/react/profile/server/ProfileManagementService.js +3 -0
- package/dist/react/profile/server/ProfileServices.d.ts +22 -0
- package/dist/react/profile/server/ProfileServices.js +24 -0
- package/dist/react/profile/server/ProfileUserService.d.ts +5 -0
- package/dist/react/profile/server/ProfileUserService.js +2 -0
- package/dist/react/profile/server/index.d.ts +5 -0
- package/dist/react/profile/server/index.js +21 -0
- package/dist/react/profile/web/WebProfile.d.ts +11 -0
- package/dist/react/profile/web/WebProfile.js +37 -0
- package/dist/react/profile/web/WebProfileClient.d.ts +9 -0
- package/dist/react/profile/web/WebProfileClient.js +76 -0
- package/dist/react/profile/web/WebProfileProvider.d.ts +5 -0
- package/dist/react/profile/web/WebProfileProvider.js +62 -0
- package/dist/react/profile/web/WebProfileStore.d.ts +8 -0
- package/dist/react/profile/web/WebProfileStore.js +32 -0
- package/dist/react/profile/web/index.d.ts +3 -0
- package/dist/react/profile/web/index.js +19 -0
- package/dist/react/push/domain/PushAppRequest.d.ts +13 -0
- package/dist/react/push/domain/PushAppRequest.js +12 -0
- package/dist/react/push/domain/PushStore.d.ts +7 -0
- package/dist/react/push/domain/PushStore.js +9 -0
- package/dist/react/push/domain/index.d.ts +2 -0
- package/dist/react/push/domain/index.js +18 -0
- package/dist/react/push/server/PushService.d.ts +22 -0
- package/dist/react/push/server/PushService.js +57 -0
- package/dist/react/push/server/index.d.ts +3 -0
- package/dist/react/push/server/index.js +19 -0
- package/dist/react/push/server/keygen.d.ts +1 -0
- package/dist/react/push/server/keygen.js +8 -0
- package/dist/react/push/web/PushClient.d.ts +35 -0
- package/dist/react/push/web/PushClient.js +204 -0
- package/dist/react/push/web/PushContext.d.ts +7 -0
- package/dist/react/push/web/PushContext.js +6 -0
- package/dist/react/push/web/PushProvider.d.ts +6 -0
- package/dist/react/push/web/PushProvider.js +42 -0
- package/dist/react/push/web/index.d.ts +4 -0
- package/dist/react/push/web/index.js +20 -0
- package/dist/react/push/web/usePushClient.d.ts +3 -0
- package/dist/react/push/web/usePushClient.js +40 -0
- package/dist/react/server.d.ts +7 -0
- package/dist/react/server.js +23 -0
- package/dist/react/ui/web/HideSplash.d.ts +1 -0
- package/dist/react/ui/web/HideSplash.js +28 -0
- package/dist/react/ui/web/Link.d.ts +6 -0
- package/dist/react/ui/web/Link.js +12 -0
- package/dist/react/ui/web/SafeArea.d.ts +9 -0
- package/dist/react/ui/web/SafeArea.js +26 -0
- package/dist/react/ui/web/index.d.ts +3 -0
- package/dist/react/ui/web/index.js +19 -0
- package/dist/react/web.d.ts +10 -0
- package/dist/react/web.js +26 -0
- package/dist/reactnative/app/domain/AppService.d.ts +19 -0
- package/dist/reactnative/app/domain/AppService.js +19 -0
- package/dist/reactnative/app/domain/AppServiceClient.d.ts +7 -0
- package/dist/reactnative/app/domain/AppServiceClient.js +57 -0
- package/dist/reactnative/app/domain/AppState.d.ts +1 -0
- package/dist/reactnative/app/domain/AppState.js +2 -0
- package/dist/reactnative/app/domain/index.d.ts +3 -0
- package/dist/reactnative/app/domain/index.js +19 -0
- package/dist/reactnative/app/rn/AppContainer.d.ts +10 -0
- package/dist/reactnative/app/rn/AppContainer.js +77 -0
- package/dist/reactnative/app/rn/AppRoot.d.ts +5 -0
- package/dist/reactnative/app/rn/AppRoot.js +22 -0
- package/dist/reactnative/app/rn/AppServiceClient.d.ts +4 -0
- package/dist/reactnative/app/rn/AppServiceClient.js +44 -0
- package/dist/reactnative/app/rn/index.d.ts +5 -0
- package/dist/reactnative/app/rn/index.js +22 -0
- package/dist/reactnative/auth0/rn/Auth0IdentityClient.d.ts +33 -0
- package/dist/reactnative/auth0/rn/Auth0IdentityClient.js +234 -0
- package/dist/reactnative/auth0/rn/Auth0IdentityClientProvider.d.ts +27 -0
- package/dist/reactnative/auth0/rn/Auth0IdentityClientProvider.js +60 -0
- package/dist/reactnative/auth0/rn/index.d.ts +2 -0
- package/dist/reactnative/auth0/rn/index.js +18 -0
- package/dist/reactnative/bridge/core/BridgeConnection.d.ts +6 -0
- package/dist/reactnative/bridge/core/BridgeConnection.js +2 -0
- package/dist/reactnative/bridge/core/BridgeConstants.d.ts +7 -0
- package/dist/reactnative/bridge/core/BridgeConstants.js +15 -0
- package/dist/reactnative/bridge/core/BridgeEvent.d.ts +52 -0
- package/dist/reactnative/bridge/core/BridgeEvent.js +28 -0
- package/dist/reactnative/bridge/core/BridgeMethod.d.ts +12 -0
- package/dist/reactnative/bridge/core/BridgeMethod.js +2 -0
- package/dist/reactnative/bridge/core/BridgeMethodCall.d.ts +23 -0
- package/dist/reactnative/bridge/core/BridgeMethodCall.js +37 -0
- package/dist/reactnative/bridge/core/BridgeMethods.d.ts +35 -0
- package/dist/reactnative/bridge/core/BridgeMethods.js +2 -0
- package/dist/reactnative/bridge/core/BridgeState.d.ts +24 -0
- package/dist/reactnative/bridge/core/BridgeState.js +2 -0
- package/dist/reactnative/bridge/core/index.d.ts +7 -0
- package/dist/reactnative/bridge/core/index.js +23 -0
- package/dist/reactnative/bridge/rn/BridgeProxy.d.ts +35 -0
- package/dist/reactnative/bridge/rn/BridgeProxy.js +331 -0
- package/dist/reactnative/bridge/rn/BridgeProxyContext.d.ts +8 -0
- package/dist/reactnative/bridge/rn/BridgeProxyContext.js +6 -0
- package/dist/reactnative/bridge/rn/BridgeProxyProvider.d.ts +8 -0
- package/dist/reactnative/bridge/rn/BridgeProxyProvider.js +39 -0
- package/dist/reactnative/bridge/rn/BridgeWebview.d.ts +7 -0
- package/dist/reactnative/bridge/rn/BridgeWebview.js +51 -0
- package/dist/reactnative/bridge/rn/index.d.ts +7 -0
- package/dist/reactnative/bridge/rn/index.js +23 -0
- package/dist/reactnative/bridge/rn/useBridgeProxy.d.ts +3 -0
- package/dist/reactnative/bridge/rn/useBridgeProxy.js +38 -0
- package/dist/reactnative/bridge/rn/useBridgeProxyCalls.d.ts +3 -0
- package/dist/reactnative/bridge/rn/useBridgeProxyCalls.js +32 -0
- package/dist/reactnative/bridge/rn/useBridgeProxyState.d.ts +2 -0
- package/dist/reactnative/bridge/rn/useBridgeProxyState.js +46 -0
- package/dist/reactnative/identity/core/AbstractIdentityClient.d.ts +22 -0
- package/dist/reactnative/identity/core/AbstractIdentityClient.js +31 -0
- package/dist/reactnative/identity/core/IdentityClient.d.ts +22 -0
- package/dist/reactnative/identity/core/IdentityClient.js +13 -0
- package/dist/reactnative/identity/core/IdentityClientContext.d.ts +7 -0
- package/dist/reactnative/identity/core/IdentityClientContext.js +6 -0
- package/dist/reactnative/identity/core/index.d.ts +6 -0
- package/dist/reactnative/identity/core/index.js +22 -0
- package/dist/reactnative/identity/core/useIdentity.d.ts +10 -0
- package/dist/reactnative/identity/core/useIdentity.js +39 -0
- package/dist/reactnative/identity/core/useIdentityClient.d.ts +2 -0
- package/dist/reactnative/identity/core/useIdentityClient.js +17 -0
- package/dist/reactnative/identity/domain/AnonymousIdentity.d.ts +15 -0
- package/dist/reactnative/identity/domain/AnonymousIdentity.js +27 -0
- package/dist/reactnative/identity/domain/AuthenticatedIdentity.d.ts +25 -0
- package/dist/reactnative/identity/domain/AuthenticatedIdentity.js +32 -0
- package/dist/reactnative/identity/domain/Identity.d.ts +6 -0
- package/dist/reactnative/identity/domain/Identity.js +2 -0
- package/dist/reactnative/identity/domain/IdentityAppRequest.d.ts +8 -0
- package/dist/reactnative/identity/domain/IdentityAppRequest.js +10 -0
- package/dist/reactnative/identity/domain/index.d.ts +4 -0
- package/dist/reactnative/identity/domain/index.js +20 -0
- package/dist/reactnative/identity/rn/RNIdentityClientProvider.d.ts +8 -0
- package/dist/reactnative/identity/rn/RNIdentityClientProvider.js +22 -0
- package/dist/reactnative/identity/rn/RNIdentityProvider.d.ts +5 -0
- package/dist/reactnative/identity/rn/RNIdentityProvider.js +14 -0
- package/dist/reactnative/identity/rn/index.d.ts +3 -0
- package/dist/reactnative/identity/rn/index.js +19 -0
- package/dist/reactnative/nav/core/SpecSourceContext.d.ts +7 -0
- package/dist/reactnative/nav/core/SpecSourceContext.js +6 -0
- package/dist/reactnative/nav/core/index.d.ts +2 -0
- package/dist/reactnative/nav/core/index.js +18 -0
- package/dist/reactnative/nav/core/useSpec.d.ts +3 -0
- package/dist/reactnative/nav/core/useSpec.js +30 -0
- package/dist/reactnative/nav/domain/Icon.d.ts +2 -0
- package/dist/reactnative/nav/domain/Icon.js +2 -0
- package/dist/reactnative/nav/domain/Modal.d.ts +25 -0
- package/dist/reactnative/nav/domain/Modal.js +28 -0
- package/dist/reactnative/nav/domain/Navigation.d.ts +13 -0
- package/dist/reactnative/nav/domain/Navigation.js +2 -0
- package/dist/reactnative/nav/domain/NavigationCommand.d.ts +14 -0
- package/dist/reactnative/nav/domain/NavigationCommand.js +2 -0
- package/dist/reactnative/nav/domain/Route.d.ts +12 -0
- package/dist/reactnative/nav/domain/Route.js +2 -0
- package/dist/reactnative/nav/domain/Routes.d.ts +6 -0
- package/dist/reactnative/nav/domain/Routes.js +74 -0
- package/dist/reactnative/nav/domain/Screen.d.ts +24 -0
- package/dist/reactnative/nav/domain/Screen.js +28 -0
- package/dist/reactnative/nav/domain/Skeleton.d.ts +26 -0
- package/dist/reactnative/nav/domain/Skeleton.js +2 -0
- package/dist/reactnative/nav/domain/Spec.d.ts +33 -0
- package/dist/reactnative/nav/domain/Spec.js +124 -0
- package/dist/reactnative/nav/domain/SpecSource.d.ts +21 -0
- package/dist/reactnative/nav/domain/SpecSource.js +28 -0
- package/dist/reactnative/nav/domain/Stack.d.ts +35 -0
- package/dist/reactnative/nav/domain/Stack.js +44 -0
- package/dist/reactnative/nav/domain/Tabs.d.ts +37 -0
- package/dist/reactnative/nav/domain/Tabs.js +45 -0
- package/dist/reactnative/nav/domain/icons/ImageIcon.d.ts +2 -0
- package/dist/reactnative/nav/domain/icons/ImageIcon.js +7 -0
- package/dist/reactnative/nav/domain/icons/LucideIcon.d.ts +2 -0
- package/dist/reactnative/nav/domain/icons/LucideIcon.js +7 -0
- package/dist/reactnative/nav/domain/icons/index.d.ts +2 -0
- package/dist/reactnative/nav/domain/icons/index.js +18 -0
- package/dist/reactnative/nav/domain/index.d.ts +14 -0
- package/dist/reactnative/nav/domain/index.js +30 -0
- package/dist/reactnative/nav/domain/sources/AbstractSpecSource.d.ts +23 -0
- package/dist/reactnative/nav/domain/sources/AbstractSpecSource.js +64 -0
- package/dist/reactnative/nav/domain/sources/StaticSpecSource.d.ts +9 -0
- package/dist/reactnative/nav/domain/sources/StaticSpecSource.js +16 -0
- package/dist/reactnative/nav/domain/sources/index.d.ts +2 -0
- package/dist/reactnative/nav/domain/sources/index.js +18 -0
- package/dist/reactnative/nav/rn/NavigationEngine.d.ts +1 -0
- package/dist/reactnative/nav/rn/NavigationEngine.js +155 -0
- package/dist/reactnative/nav/rn/NavigationScreen.d.ts +9 -0
- package/dist/reactnative/nav/rn/NavigationScreen.js +215 -0
- package/dist/reactnative/nav/rn/RNSpecProvider.d.ts +2 -0
- package/dist/reactnative/nav/rn/RNSpecProvider.js +30 -0
- package/dist/reactnative/nav/rn/RNSpecSource.d.ts +5 -0
- package/dist/reactnative/nav/rn/RNSpecSource.js +30 -0
- package/dist/reactnative/nav/rn/index.d.ts +4 -0
- package/dist/reactnative/nav/rn/index.js +20 -0
- package/dist/reactnative/profile/domain/Profile.d.ts +80 -0
- package/dist/reactnative/profile/domain/Profile.js +209 -0
- package/dist/reactnative/profile/domain/ProfileAppRequest.d.ts +15 -0
- package/dist/reactnative/profile/domain/ProfileAppRequest.js +12 -0
- package/dist/reactnative/profile/domain/ProfileStore.d.ts +65 -0
- package/dist/reactnative/profile/domain/ProfileStore.js +180 -0
- package/dist/reactnative/profile/domain/index.d.ts +3 -0
- package/dist/reactnative/profile/domain/index.js +19 -0
- package/dist/reactnative/push/domain/PushAppRequest.d.ts +13 -0
- package/dist/reactnative/push/domain/PushAppRequest.js +12 -0
- package/dist/reactnative/push/domain/PushStore.d.ts +7 -0
- package/dist/reactnative/push/domain/PushStore.js +9 -0
- package/dist/reactnative/push/domain/index.d.ts +2 -0
- package/dist/reactnative/push/domain/index.js +18 -0
- package/dist/reactnative/push/rn/PushClient.d.ts +32 -0
- package/dist/reactnative/push/rn/PushClient.js +247 -0
- package/dist/reactnative/push/rn/PushContext.d.ts +7 -0
- package/dist/reactnative/push/rn/PushContext.js +6 -0
- package/dist/reactnative/push/rn/PushProvider.d.ts +2 -0
- package/dist/reactnative/push/rn/PushProvider.js +45 -0
- package/dist/reactnative/push/rn/index.d.ts +3 -0
- package/dist/reactnative/push/rn/index.js +19 -0
- package/dist/reactnative/push/rn/usePushClient.d.ts +3 -0
- package/dist/reactnative/push/rn/usePushClient.js +40 -0
- package/dist/reactnative/rn.d.ts +7 -0
- package/dist/reactnative/rn.js +23 -0
- package/dist/reactnative/ui/rn/Tailwind.d.ts +175 -0
- package/dist/reactnative/ui/rn/Tailwind.js +211 -0
- package/dist/reactnative/ui/rn/atomic/Button.d.ts +97 -0
- package/dist/reactnative/ui/rn/atomic/Button.js +75 -0
- package/dist/reactnative/ui/rn/atomic/TextField.d.ts +112 -0
- package/dist/reactnative/ui/rn/atomic/TextField.js +135 -0
- package/dist/reactnative/ui/rn/atomic/index.d.ts +2 -0
- package/dist/reactnative/ui/rn/atomic/index.js +18 -0
- package/dist/reactnative/ui/rn/index.d.ts +1 -0
- package/dist/reactnative/ui/rn/index.js +17 -0
- package/dist/styles/rn/_index.css +2 -0
- package/dist/styles/rn/atomic/Button.css +54 -0
- package/dist/styles/rn/atomic/TextField.css +77 -0
- package/dist/styles/rn/atomic/_index.css +2 -0
- package/dist/styles/rn/base/_index.css +1 -0
- package/dist/styles/rn/base/tailwind.css +3 -0
- package/dist/styles/rn.css +1 -0
- package/dist/styles/web/_index.css +1 -0
- package/dist/styles/web/layout/SafeArea.css +17 -0
- package/dist/styles/web/layout/_index.css +1 -0
- package/dist/styles/web.css +1 -0
- 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,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,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);
|