@oxy.so/services 4.0.6 → 6.0.0
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/README.md +1 -1
- package/lib/commonjs/assets/assets/signIn/slide-1.jpg +0 -0
- package/lib/commonjs/assets/assets/signIn/slide-1.jpg.d.ts +3 -0
- package/lib/commonjs/assets/assets/signIn/slide-2.jpg +0 -0
- package/lib/commonjs/assets/assets/signIn/slide-2.jpg.d.ts +3 -0
- package/lib/commonjs/assets/assets/signIn/slide-3.jpg +0 -0
- package/lib/commonjs/assets/assets/signIn/slide-3.jpg.d.ts +3 -0
- package/lib/commonjs/assets/assets/signIn/slide-4.jpg +0 -0
- package/lib/commonjs/assets/assets/signIn/slide-4.jpg.d.ts +3 -0
- package/lib/commonjs/assets/signIn/slide-1.jpg +0 -0
- package/lib/commonjs/assets/signIn/slide-2.jpg +0 -0
- package/lib/commonjs/assets/signIn/slide-3.jpg +0 -0
- package/lib/commonjs/assets/signIn/slide-4.jpg +0 -0
- package/lib/commonjs/index.js +45 -8
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/components/FollowButton.js +26 -1
- package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
- package/lib/commonjs/ui/components/FollowTargetButton.js +6 -1
- package/lib/commonjs/ui/components/FollowTargetButton.js.map +1 -1
- package/lib/commonjs/ui/components/OxyAccountDialogScreen.js +11 -58
- package/lib/commonjs/ui/components/OxyAccountDialogScreen.js.map +1 -1
- package/lib/commonjs/ui/components/OxyAuthChooser.js +36 -44
- package/lib/commonjs/ui/components/OxyAuthChooser.js.map +1 -1
- package/lib/commonjs/ui/components/OxyProvider.js +0 -2
- package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
- package/lib/commonjs/ui/components/ProfileButton.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js +29 -8
- package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/primitives.js +7 -52
- package/lib/commonjs/ui/components/authChooser/primitives.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/signInFailureMessage.js +1 -7
- package/lib/commonjs/ui/components/authChooser/signInFailureMessage.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/styles.js +0 -31
- package/lib/commonjs/ui/components/authChooser/styles.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/types.js +2 -2
- package/lib/commonjs/ui/components/followButtonAccessibility.js +72 -0
- package/lib/commonjs/ui/components/followButtonAccessibility.js.map +1 -0
- package/lib/commonjs/ui/components/oauthNavigation.js +1 -1
- package/lib/commonjs/ui/components/signIn/InlineCommonsQr.js +161 -0
- package/lib/commonjs/ui/components/signIn/InlineCommonsQr.js.map +1 -0
- package/lib/commonjs/ui/components/signIn/OxyAccountPicker.js +111 -0
- package/lib/commonjs/ui/components/signIn/OxyAccountPicker.js.map +1 -0
- package/lib/commonjs/ui/components/signIn/OxyAuthScreen.js +160 -0
- package/lib/commonjs/ui/components/signIn/OxyAuthScreen.js.map +1 -0
- package/lib/commonjs/ui/components/signIn/OxySignInPanel.js +371 -0
- package/lib/commonjs/ui/components/signIn/OxySignInPanel.js.map +1 -0
- package/lib/commonjs/ui/components/signIn/OxySignUpPanel.js +78 -0
- package/lib/commonjs/ui/components/signIn/OxySignUpPanel.js.map +1 -0
- package/lib/commonjs/ui/components/signIn/artwork.js +21 -0
- package/lib/commonjs/ui/components/signIn/artwork.js.map +1 -0
- package/lib/commonjs/ui/components/signIn/passkeyError.js +46 -0
- package/lib/commonjs/ui/components/signIn/passkeyError.js.map +1 -0
- package/lib/commonjs/ui/components/signIn/signInMethods.js +46 -0
- package/lib/commonjs/ui/components/signIn/signInMethods.js.map +1 -0
- package/lib/commonjs/ui/context/OxyContext.js +16 -16
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/context/commitSessionFlow.js +0 -43
- package/lib/commonjs/ui/context/commitSessionFlow.js.map +1 -1
- package/lib/commonjs/ui/hooks/accountDialogSnapshot.js +15 -1
- package/lib/commonjs/ui/hooks/accountDialogSnapshot.js.map +1 -1
- package/lib/commonjs/ui/hooks/useDeviceSwitcher.js +1 -3
- package/lib/commonjs/ui/hooks/useDeviceSwitcher.js.map +1 -1
- package/lib/commonjs/ui/oauth/browserAuthTransport.js +11 -4
- package/lib/commonjs/ui/oauth/browserAuthTransport.js.map +1 -1
- package/lib/commonjs/ui/oauth/oauthHandshake.js +3 -0
- package/lib/commonjs/ui/oauth/oauthHandshake.js.map +1 -1
- package/lib/commonjs/ui/oauth/oauthPopup.js +2 -3
- package/lib/commonjs/ui/oauth/oauthPopup.js.map +1 -1
- package/lib/commonjs/ui/screens/ManageAccountScreen.js +2 -3
- package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +1 -1
- package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
- package/lib/commonjs/ui/session/authStore.js +0 -21
- package/lib/commonjs/ui/session/authStore.js.map +1 -1
- package/lib/commonjs/ui/utils/accountDeletionHandoff.js +1 -1
- package/lib/commonjs/ui/utils/accountDeletionHandoff.js.map +1 -1
- package/lib/module/assets/assets/signIn/slide-1.jpg +0 -0
- package/lib/module/assets/assets/signIn/slide-1.jpg.d.ts +3 -0
- package/lib/module/assets/assets/signIn/slide-2.jpg +0 -0
- package/lib/module/assets/assets/signIn/slide-2.jpg.d.ts +3 -0
- package/lib/module/assets/assets/signIn/slide-3.jpg +0 -0
- package/lib/module/assets/assets/signIn/slide-3.jpg.d.ts +3 -0
- package/lib/module/assets/assets/signIn/slide-4.jpg +0 -0
- package/lib/module/assets/assets/signIn/slide-4.jpg.d.ts +3 -0
- package/lib/module/assets/signIn/slide-1.jpg +0 -0
- package/lib/module/assets/signIn/slide-2.jpg +0 -0
- package/lib/module/assets/signIn/slide-3.jpg +0 -0
- package/lib/module/assets/signIn/slide-4.jpg +0 -0
- package/lib/module/index.js +7 -6
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/components/FollowButton.js +26 -1
- package/lib/module/ui/components/FollowButton.js.map +1 -1
- package/lib/module/ui/components/FollowTargetButton.js +6 -1
- package/lib/module/ui/components/FollowTargetButton.js.map +1 -1
- package/lib/module/ui/components/OxyAccountDialogScreen.js +14 -59
- package/lib/module/ui/components/OxyAccountDialogScreen.js.map +1 -1
- package/lib/module/ui/components/OxyAuthChooser.js +37 -45
- package/lib/module/ui/components/OxyAuthChooser.js.map +1 -1
- package/lib/module/ui/components/OxyProvider.js +0 -2
- package/lib/module/ui/components/OxyProvider.js.map +1 -1
- package/lib/module/ui/components/ProfileButton.js.map +1 -1
- package/lib/module/ui/components/authChooser/AccountsMenuView.js +21 -2
- package/lib/module/ui/components/authChooser/AccountsMenuView.js.map +1 -1
- package/lib/module/ui/components/authChooser/primitives.js +1 -44
- package/lib/module/ui/components/authChooser/primitives.js.map +1 -1
- package/lib/module/ui/components/authChooser/signInFailureMessage.js +1 -7
- package/lib/module/ui/components/authChooser/signInFailureMessage.js.map +1 -1
- package/lib/module/ui/components/authChooser/styles.js +0 -31
- package/lib/module/ui/components/authChooser/styles.js.map +1 -1
- package/lib/module/ui/components/authChooser/types.js +2 -2
- package/lib/module/ui/components/followButtonAccessibility.js +66 -0
- package/lib/module/ui/components/followButtonAccessibility.js.map +1 -0
- package/lib/module/ui/components/oauthNavigation.js +1 -1
- package/lib/module/ui/components/signIn/InlineCommonsQr.js +157 -0
- package/lib/module/ui/components/signIn/InlineCommonsQr.js.map +1 -0
- package/lib/module/ui/components/signIn/OxyAccountPicker.js +106 -0
- package/lib/module/ui/components/signIn/OxyAccountPicker.js.map +1 -0
- package/lib/module/ui/components/signIn/OxyAuthScreen.js +151 -0
- package/lib/module/ui/components/signIn/OxyAuthScreen.js.map +1 -0
- package/lib/module/ui/components/signIn/OxySignInPanel.js +366 -0
- package/lib/module/ui/components/signIn/OxySignInPanel.js.map +1 -0
- package/lib/module/ui/components/signIn/OxySignUpPanel.js +75 -0
- package/lib/module/ui/components/signIn/OxySignUpPanel.js.map +1 -0
- package/lib/module/ui/components/signIn/artwork.js +16 -0
- package/lib/module/ui/components/signIn/artwork.js.map +1 -0
- package/lib/module/ui/components/signIn/passkeyError.js +40 -0
- package/lib/module/ui/components/signIn/passkeyError.js.map +1 -0
- package/lib/module/ui/components/signIn/signInMethods.js +42 -0
- package/lib/module/ui/components/signIn/signInMethods.js.map +1 -0
- package/lib/module/ui/context/OxyContext.js +17 -17
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/context/commitSessionFlow.js +0 -42
- package/lib/module/ui/context/commitSessionFlow.js.map +1 -1
- package/lib/module/ui/hooks/accountDialogSnapshot.js +14 -1
- package/lib/module/ui/hooks/accountDialogSnapshot.js.map +1 -1
- package/lib/module/ui/hooks/useDeviceSwitcher.js +3 -5
- package/lib/module/ui/hooks/useDeviceSwitcher.js.map +1 -1
- package/lib/module/ui/oauth/browserAuthTransport.js +11 -4
- package/lib/module/ui/oauth/browserAuthTransport.js.map +1 -1
- package/lib/module/ui/oauth/oauthHandshake.js +3 -0
- package/lib/module/ui/oauth/oauthHandshake.js.map +1 -1
- package/lib/module/ui/oauth/oauthPopup.js +2 -3
- package/lib/module/ui/oauth/oauthPopup.js.map +1 -1
- package/lib/module/ui/screens/ManageAccountScreen.js +3 -4
- package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
- package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +1 -1
- package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
- package/lib/module/ui/session/authStore.js +1 -22
- package/lib/module/ui/session/authStore.js.map +1 -1
- package/lib/module/ui/utils/accountDeletionHandoff.js +2 -2
- package/lib/module/ui/utils/accountDeletionHandoff.js.map +1 -1
- package/lib/typescript/assets/signIn/slide-1.jpg.d.ts +3 -0
- package/lib/typescript/assets/signIn/slide-2.jpg.d.ts +3 -0
- package/lib/typescript/assets/signIn/slide-3.jpg.d.ts +3 -0
- package/lib/typescript/assets/signIn/slide-4.jpg.d.ts +3 -0
- package/lib/typescript/commonjs/index.d.ts +8 -2
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/FollowButton.d.ts +6 -0
- package/lib/typescript/commonjs/ui/components/FollowButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/FollowTargetButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts +5 -12
- package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts +1 -1
- package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/authChooser/primitives.d.ts +0 -19
- package/lib/typescript/commonjs/ui/components/authChooser/primitives.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/authChooser/signInFailureMessage.d.ts +1 -5
- package/lib/typescript/commonjs/ui/components/authChooser/signInFailureMessage.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/authChooser/styles.d.ts +0 -31
- package/lib/typescript/commonjs/ui/components/authChooser/styles.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts +3 -3
- package/lib/typescript/commonjs/ui/components/followButtonAccessibility.d.ts +48 -0
- package/lib/typescript/commonjs/ui/components/followButtonAccessibility.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/oauthNavigation.d.ts +1 -1
- package/lib/typescript/commonjs/ui/components/signIn/InlineCommonsQr.d.ts +20 -0
- package/lib/typescript/commonjs/ui/components/signIn/InlineCommonsQr.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/signIn/OxyAccountPicker.d.ts +34 -0
- package/lib/typescript/commonjs/ui/components/signIn/OxyAccountPicker.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/signIn/OxyAuthScreen.d.ts +43 -0
- package/lib/typescript/commonjs/ui/components/signIn/OxyAuthScreen.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/signIn/OxySignInPanel.d.ts +43 -0
- package/lib/typescript/commonjs/ui/components/signIn/OxySignInPanel.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/signIn/OxySignUpPanel.d.ts +17 -0
- package/lib/typescript/commonjs/ui/components/signIn/OxySignUpPanel.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/signIn/artwork.d.ts +8 -0
- package/lib/typescript/commonjs/ui/components/signIn/artwork.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/signIn/passkeyError.d.ts +16 -0
- package/lib/typescript/commonjs/ui/components/signIn/passkeyError.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/signIn/signInMethods.d.ts +39 -0
- package/lib/typescript/commonjs/ui/components/signIn/signInMethods.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/commitSessionFlow.d.ts +0 -40
- package/lib/typescript/commonjs/ui/context/commitSessionFlow.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts +8 -9
- package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/accountDialogSnapshot.d.ts +7 -1
- package/lib/typescript/commonjs/ui/hooks/accountDialogSnapshot.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useDeviceSwitcher.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/oauth/browserAuthTransport.d.ts +9 -0
- package/lib/typescript/commonjs/ui/oauth/browserAuthTransport.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/oauth/oauthHandshake.d.ts +3 -0
- package/lib/typescript/commonjs/ui/oauth/oauthHandshake.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/oauth/oauthPopup.d.ts +2 -3
- package/lib/typescript/commonjs/ui/oauth/oauthPopup.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/session/authStore.d.ts +0 -30
- package/lib/typescript/commonjs/ui/session/authStore.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/types/navigation.d.ts +0 -26
- package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +8 -2
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/FollowButton.d.ts +6 -0
- package/lib/typescript/module/ui/components/FollowButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/FollowTargetButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts +5 -12
- package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/ProfileButton.d.ts +1 -1
- package/lib/typescript/module/ui/components/ProfileButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/authChooser/primitives.d.ts +0 -19
- package/lib/typescript/module/ui/components/authChooser/primitives.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/authChooser/signInFailureMessage.d.ts +1 -5
- package/lib/typescript/module/ui/components/authChooser/signInFailureMessage.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/authChooser/styles.d.ts +0 -31
- package/lib/typescript/module/ui/components/authChooser/styles.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/authChooser/types.d.ts +3 -3
- package/lib/typescript/module/ui/components/followButtonAccessibility.d.ts +48 -0
- package/lib/typescript/module/ui/components/followButtonAccessibility.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/oauthNavigation.d.ts +1 -1
- package/lib/typescript/module/ui/components/signIn/InlineCommonsQr.d.ts +20 -0
- package/lib/typescript/module/ui/components/signIn/InlineCommonsQr.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/signIn/OxyAccountPicker.d.ts +34 -0
- package/lib/typescript/module/ui/components/signIn/OxyAccountPicker.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/signIn/OxyAuthScreen.d.ts +43 -0
- package/lib/typescript/module/ui/components/signIn/OxyAuthScreen.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/signIn/OxySignInPanel.d.ts +43 -0
- package/lib/typescript/module/ui/components/signIn/OxySignInPanel.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/signIn/OxySignUpPanel.d.ts +17 -0
- package/lib/typescript/module/ui/components/signIn/OxySignUpPanel.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/signIn/artwork.d.ts +8 -0
- package/lib/typescript/module/ui/components/signIn/artwork.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/signIn/passkeyError.d.ts +16 -0
- package/lib/typescript/module/ui/components/signIn/passkeyError.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/signIn/signInMethods.d.ts +39 -0
- package/lib/typescript/module/ui/components/signIn/signInMethods.d.ts.map +1 -0
- package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/commitSessionFlow.d.ts +0 -40
- package/lib/typescript/module/ui/context/commitSessionFlow.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/oxyContextTypes.d.ts +8 -9
- package/lib/typescript/module/ui/context/oxyContextTypes.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/accountDialogSnapshot.d.ts +7 -1
- package/lib/typescript/module/ui/hooks/accountDialogSnapshot.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useDeviceSwitcher.d.ts.map +1 -1
- package/lib/typescript/module/ui/oauth/browserAuthTransport.d.ts +9 -0
- package/lib/typescript/module/ui/oauth/browserAuthTransport.d.ts.map +1 -1
- package/lib/typescript/module/ui/oauth/oauthHandshake.d.ts +3 -0
- package/lib/typescript/module/ui/oauth/oauthHandshake.d.ts.map +1 -1
- package/lib/typescript/module/ui/oauth/oauthPopup.d.ts +2 -3
- package/lib/typescript/module/ui/oauth/oauthPopup.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/session/authStore.d.ts +0 -30
- package/lib/typescript/module/ui/session/authStore.d.ts.map +1 -1
- package/lib/typescript/module/ui/types/navigation.d.ts +0 -26
- package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
- package/package.json +6 -9
- package/src/assets/signIn/slide-1.jpg +0 -0
- package/src/assets/signIn/slide-1.jpg.d.ts +3 -0
- package/src/assets/signIn/slide-2.jpg +0 -0
- package/src/assets/signIn/slide-2.jpg.d.ts +3 -0
- package/src/assets/signIn/slide-3.jpg +0 -0
- package/src/assets/signIn/slide-3.jpg.d.ts +3 -0
- package/src/assets/signIn/slide-4.jpg +0 -0
- package/src/assets/signIn/slide-4.jpg.d.ts +3 -0
- package/src/index.ts +16 -7
- package/src/ui/components/FollowButton.tsx +25 -0
- package/src/ui/components/FollowTargetButton.tsx +4 -0
- package/src/ui/components/OxyAccountDialogScreen.tsx +11 -72
- package/src/ui/components/OxyAuthChooser.tsx +37 -53
- package/src/ui/components/OxyProvider.tsx +0 -2
- package/src/ui/components/ProfileButton.tsx +1 -4
- package/src/ui/components/__tests__/followButtonAccessibility.test.tsx +191 -0
- package/src/ui/components/authChooser/AccountsMenuView.tsx +28 -1
- package/src/ui/components/authChooser/primitives.tsx +1 -39
- package/src/ui/components/authChooser/signInFailureMessage.ts +1 -7
- package/src/ui/components/authChooser/styles.ts +0 -31
- package/src/ui/components/authChooser/types.ts +3 -3
- package/src/ui/components/followButtonAccessibility.ts +83 -0
- package/src/ui/components/oauthNavigation.ts +1 -1
- package/src/ui/components/signIn/InlineCommonsQr.tsx +135 -0
- package/src/ui/components/signIn/OxyAccountPicker.tsx +129 -0
- package/src/ui/components/signIn/OxyAuthScreen.tsx +123 -0
- package/src/ui/components/signIn/OxySignInPanel.tsx +392 -0
- package/src/ui/components/signIn/OxySignUpPanel.tsx +86 -0
- package/src/ui/components/signIn/artwork.ts +13 -0
- package/src/ui/components/signIn/passkeyError.ts +44 -0
- package/src/ui/components/signIn/signInMethods.ts +51 -0
- package/src/ui/context/OxyContext.tsx +21 -18
- package/src/ui/context/__tests__/commitSessionFlow.test.ts +0 -89
- package/src/ui/context/commitSessionFlow.ts +0 -61
- package/src/ui/context/oxyContextTypes.ts +9 -9
- package/src/ui/hooks/accountDialogSnapshot.ts +20 -1
- package/src/ui/hooks/useDeviceSwitcher.ts +3 -11
- package/src/ui/oauth/__tests__/browserAuthTransport.test.ts +21 -0
- package/src/ui/oauth/browserAuthTransport.ts +14 -4
- package/src/ui/oauth/oauthHandshake.ts +4 -1
- package/src/ui/oauth/oauthPopup.ts +2 -3
- package/src/ui/screens/ManageAccountScreen.tsx +3 -4
- package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +1 -1
- package/src/ui/session/authStore.ts +0 -37
- package/src/ui/types/navigation.ts +0 -26
- package/src/ui/utils/accountDeletionHandoff.ts +2 -2
- package/lib/commonjs/ui/components/authChooser/SignInEntryView.js +0 -132
- package/lib/commonjs/ui/components/authChooser/SignInEntryView.js.map +0 -1
- package/lib/commonjs/ui/components/authChooser/SignUpView.js +0 -77
- package/lib/commonjs/ui/components/authChooser/SignUpView.js.map +0 -1
- package/lib/commonjs/ui/components/passkeyHubPopup.js +0 -33
- package/lib/commonjs/ui/components/passkeyHubPopup.js.map +0 -1
- package/lib/commonjs/ui/oauth/legacyRedirectLanes.js +0 -48
- package/lib/commonjs/ui/oauth/legacyRedirectLanes.js.map +0 -1
- package/lib/module/ui/components/authChooser/SignInEntryView.js +0 -127
- package/lib/module/ui/components/authChooser/SignInEntryView.js.map +0 -1
- package/lib/module/ui/components/authChooser/SignUpView.js +0 -73
- package/lib/module/ui/components/authChooser/SignUpView.js.map +0 -1
- package/lib/module/ui/components/passkeyHubPopup.js +0 -29
- package/lib/module/ui/components/passkeyHubPopup.js.map +0 -1
- package/lib/module/ui/oauth/legacyRedirectLanes.js +0 -44
- package/lib/module/ui/oauth/legacyRedirectLanes.js.map +0 -1
- package/lib/typescript/commonjs/ui/components/authChooser/SignInEntryView.d.ts +0 -39
- package/lib/typescript/commonjs/ui/components/authChooser/SignInEntryView.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/authChooser/SignUpView.d.ts +0 -31
- package/lib/typescript/commonjs/ui/components/authChooser/SignUpView.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/passkeyHubPopup.d.ts +0 -23
- package/lib/typescript/commonjs/ui/components/passkeyHubPopup.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/oauth/legacyRedirectLanes.d.ts +0 -40
- package/lib/typescript/commonjs/ui/oauth/legacyRedirectLanes.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/authChooser/SignInEntryView.d.ts +0 -39
- package/lib/typescript/module/ui/components/authChooser/SignInEntryView.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/authChooser/SignUpView.d.ts +0 -31
- package/lib/typescript/module/ui/components/authChooser/SignUpView.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/passkeyHubPopup.d.ts +0 -23
- package/lib/typescript/module/ui/components/passkeyHubPopup.d.ts.map +0 -1
- package/lib/typescript/module/ui/oauth/legacyRedirectLanes.d.ts +0 -40
- package/lib/typescript/module/ui/oauth/legacyRedirectLanes.d.ts.map +0 -1
- package/src/ui/components/authChooser/SignInEntryView.tsx +0 -157
- package/src/ui/components/authChooser/SignUpView.tsx +0 -76
- package/src/ui/components/passkeyHubPopup.ts +0 -28
- package/src/ui/oauth/legacyRedirectLanes.ts +0 -43
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* identical, which is what lets both lanes converge on one completion path.
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
-
import { buildOAuthAuthorizeUrl, generateOAuthState, generatePkcePair } from '@oxy.so/core';
|
|
12
|
+
import { buildOAuthAuthorizeUrl, generateOAuthState, generatePkcePair, type OxyAuthScreen } from '@oxy.so/core';
|
|
13
13
|
import type { OAuthHandshake } from './types';
|
|
14
14
|
|
|
15
15
|
/** Inputs for {@link prepareAuthorizeRequest}. */
|
|
@@ -28,6 +28,8 @@ export interface PrepareAuthorizeRequestParams {
|
|
|
28
28
|
* not a guarantee — an IdP with no opener still redirects.
|
|
29
29
|
*/
|
|
30
30
|
responseMode?: 'web_message';
|
|
31
|
+
/** The IdP screen a person with no session there lands on. */
|
|
32
|
+
screen?: OxyAuthScreen;
|
|
31
33
|
}
|
|
32
34
|
|
|
33
35
|
/** A ready-to-use authorize request plus the secrets that finish it. */
|
|
@@ -64,6 +66,7 @@ export async function prepareAuthorizeRequest(
|
|
|
64
66
|
state,
|
|
65
67
|
codeChallenge: pkce.codeChallenge,
|
|
66
68
|
...(params.responseMode ? { responseMode: params.responseMode } : {}),
|
|
69
|
+
...(params.screen ? { screen: params.screen } : {}),
|
|
67
70
|
});
|
|
68
71
|
|
|
69
72
|
return {
|
|
@@ -11,10 +11,9 @@
|
|
|
11
11
|
* is still being handled. Anything awaited first (resolving the application,
|
|
12
12
|
* generating PKCE) loses it and the popup is silently blocked. So the window
|
|
13
13
|
* is opened EMPTY up front and navigated once the authorize URL exists —
|
|
14
|
-
*
|
|
14
|
+
* a plain function a test can substitute.
|
|
15
15
|
* - **No close event.** A cross-origin popup fires nothing when the user
|
|
16
|
-
* dismisses it; polling `closed` is the only mechanism
|
|
17
|
-
* `AccountDialogController.watchPopup`).
|
|
16
|
+
* dismisses it; polling `closed` is the only mechanism.
|
|
18
17
|
* - **No cross-origin reads.** The popup's URL, title, and document are all
|
|
19
18
|
* opaque. The authorization result arrives ONLY as a `postMessage`.
|
|
20
19
|
*/
|
|
@@ -14,7 +14,7 @@ import { useTheme } from '@oxy.so/bloom/theme';
|
|
|
14
14
|
import { Text } from '@oxy.so/bloom/typography';
|
|
15
15
|
import { SettingsListGroup, SettingsListItem } from '@oxy.so/bloom/settings-list';
|
|
16
16
|
import {
|
|
17
|
-
|
|
17
|
+
AUTH_WEB_ORIGIN,
|
|
18
18
|
getAccountDisplayName,
|
|
19
19
|
getAccountFallbackHandle,
|
|
20
20
|
getNormalizedUserHandle,
|
|
@@ -324,10 +324,9 @@ const ManageAccountScreen: React.FC<BaseScreenProps> = ({
|
|
|
324
324
|
return;
|
|
325
325
|
}
|
|
326
326
|
// Web: deleting an account is signed with its identity key, which only
|
|
327
|
-
//
|
|
328
|
-
// this page.
|
|
327
|
+
// auth.oxy.so can unseal — the deletion happens there, never on this page.
|
|
329
328
|
if (isWebBrowser()) {
|
|
330
|
-
await Linking.openURL(`${
|
|
329
|
+
await Linking.openURL(`${AUTH_WEB_ORIGIN}/identity`).catch(() => {
|
|
331
330
|
toast.error(t('accountSwitcher.linkOpenFailed'));
|
|
332
331
|
});
|
|
333
332
|
return;
|
|
@@ -115,7 +115,7 @@ const TrustLeaderboardScreen: React.FC<BaseScreenProps> = ({ navigate }) => {
|
|
|
115
115
|
</TouchableOpacity>
|
|
116
116
|
);
|
|
117
117
|
},
|
|
118
|
-
[oxyServices, currentUserId, handleEntryPress, locale],
|
|
118
|
+
[oxyServices, currentUserId, handleEntryPress, locale, t],
|
|
119
119
|
);
|
|
120
120
|
|
|
121
121
|
const keyExtractor = useCallback(
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
* store shape + logic (`createWebAuthStateStore` / `createNativeAuthStateStore` /
|
|
8
8
|
* `createMemoryAuthStateStore`); this module only selects the seam:
|
|
9
9
|
*
|
|
10
|
-
* - `storage: 'ephemeral'` → `createMemoryAuthStateStore()`, on EVERY platform.
|
|
11
10
|
* - web → `createWebAuthStateStore()` (localStorage, in-memory fallback).
|
|
12
11
|
* - native → `createNativeAuthStateStore(secureKV)` for the SESSION blob over
|
|
13
12
|
* the shared `createNativeSecureKeyValueStorage()` adapter
|
|
@@ -23,7 +22,6 @@
|
|
|
23
22
|
import {
|
|
24
23
|
createWebAuthStateStore,
|
|
25
24
|
createNativeAuthStateStore,
|
|
26
|
-
createMemoryAuthStateStore,
|
|
27
25
|
createSharedMirroringAuthStateStore,
|
|
28
26
|
type AuthStateStore,
|
|
29
27
|
type SessionMode,
|
|
@@ -46,20 +44,6 @@ export interface PlatformAuthStateStoreOptions {
|
|
|
46
44
|
* a decision a storage seam gets to make.
|
|
47
45
|
*/
|
|
48
46
|
sessionMode?: SessionMode;
|
|
49
|
-
/**
|
|
50
|
-
* Whether this origin/app may persist a durable device credential AT ALL.
|
|
51
|
-
*
|
|
52
|
-
* `'ephemeral'` stores nothing durable and mirrors nothing: the session lives
|
|
53
|
-
* in memory for the lifetime of the page and is gone on reload. Its one caller
|
|
54
|
-
* is `auth.oxy.so` with the browser hub enabled (issue #937 Phase 5, ADR 0003),
|
|
55
|
-
* where the durable credential for the browser profile is the server-side
|
|
56
|
-
* DeviceSession behind the `__Host-oxy-device` handle.
|
|
57
|
-
*
|
|
58
|
-
* See `OxyProviderProps.deviceCredentialStorage` for why the answer to "let the
|
|
59
|
-
* hub be authoritative" is to stop persisting the other credential rather than
|
|
60
|
-
* to consult it second.
|
|
61
|
-
*/
|
|
62
|
-
storage?: 'persistent' | 'ephemeral';
|
|
63
47
|
}
|
|
64
48
|
|
|
65
49
|
/**
|
|
@@ -68,31 +52,10 @@ export interface PlatformAuthStateStoreOptions {
|
|
|
68
52
|
* Native persists the SESSION blob (`deviceId` + `deviceSecret` + cached access
|
|
69
53
|
* token) per-app in SecureStore; the SDK re-mints the access token from the
|
|
70
54
|
* device credential on the next cold boot.
|
|
71
|
-
*
|
|
72
|
-
* ## The ephemeral check is FIRST, and the order is load-bearing
|
|
73
|
-
*
|
|
74
|
-
* It short-circuits above the `isReactNative()` branch so an ephemeral caller can
|
|
75
|
-
* never reach the native path — and therefore can never reach the shared-slot
|
|
76
|
-
* mirroring wrapper. Checked after that branch instead, an origin that has
|
|
77
|
-
* declined to persist a credential would publish one into the device-wide slot
|
|
78
|
-
* every sibling app adopts on cold boot: it would keep nothing itself while
|
|
79
|
-
* deciding which session five other apps boot into.
|
|
80
|
-
*
|
|
81
|
-
* That is unreachable today because the only ephemeral caller is a web origin, so
|
|
82
|
-
* `isReactNative()` is false there anyway. Unreachable today is exactly the kind
|
|
83
|
-
* of guarantee that stops holding when someone adds the second caller, so it is
|
|
84
|
-
* structural here rather than incidental, and
|
|
85
|
-
* `__tests__/session/authStoreEphemeral.test.ts` holds the ordering directly.
|
|
86
55
|
*/
|
|
87
56
|
export function createPlatformAuthStateStore(
|
|
88
57
|
options: PlatformAuthStateStoreOptions = {},
|
|
89
58
|
): AuthStateStore {
|
|
90
|
-
// FIRST, above every platform branch — see the docblock for why the ordering
|
|
91
|
-
// is the guarantee and not a coincidence.
|
|
92
|
-
if (options.storage === 'ephemeral') {
|
|
93
|
-
return createMemoryAuthStateStore();
|
|
94
|
-
}
|
|
95
|
-
|
|
96
59
|
if (!isReactNative()) {
|
|
97
60
|
return createWebAuthStateStore();
|
|
98
61
|
}
|
|
@@ -146,32 +146,6 @@ export interface OxyProviderProps {
|
|
|
146
146
|
* @default false
|
|
147
147
|
*/
|
|
148
148
|
backgroundSession?: boolean;
|
|
149
|
-
/**
|
|
150
|
-
* Whether this origin/app may persist the durable device credential
|
|
151
|
-
* (`deviceId` + `deviceSecret`) at all.
|
|
152
|
-
*
|
|
153
|
-
* `'persistent'` (the default, and every app's behaviour) stores it — web
|
|
154
|
-
* localStorage per origin, SecureStore per app on native — so the SDK can
|
|
155
|
-
* re-mint an access token on the next cold boot.
|
|
156
|
-
*
|
|
157
|
-
* `'ephemeral'` stores NOTHING durable: the session lives in memory for the
|
|
158
|
-
* lifetime of the page and is gone on reload. It exists for ONE caller,
|
|
159
|
-
* `auth.oxy.so` with the browser hub enabled (issue #937 Phase 5, ADR 0003),
|
|
160
|
-
* where the durable credential for the browser profile is the server-side
|
|
161
|
-
* DeviceSession behind the `__Host-oxy-device` handle. Two durable
|
|
162
|
-
* credentials for one origin is the dual authority that phase exists to
|
|
163
|
-
* remove — revoking the hub while a localStorage secret still mints would
|
|
164
|
-
* make a sign-out look like it worked — so the way to let the hub be
|
|
165
|
-
* authoritative is to stop persisting the other one, not to consult it
|
|
166
|
-
* second.
|
|
167
|
-
*
|
|
168
|
-
* Do NOT reach for this to make an app "more private". A relying-party
|
|
169
|
-
* origin set to `'ephemeral'` simply signs the user out on every reload,
|
|
170
|
-
* because nothing else on that origin remembers the device.
|
|
171
|
-
*
|
|
172
|
-
* @default 'persistent'
|
|
173
|
-
*/
|
|
174
|
-
deviceCredentialStorage?: 'persistent' | 'ephemeral';
|
|
175
149
|
/**
|
|
176
150
|
* Wires the app's OWN i18n library to Oxy's resolved language, so the
|
|
177
151
|
* account (or, signed out, the device/guest locale) drives the app's
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { surfaces } from '@oxy.so/bloom/surfaces';
|
|
2
2
|
import { toast } from '@oxy.so/bloom/toast';
|
|
3
|
-
import {
|
|
3
|
+
import { AUTH_WEB_ORIGIN, logger } from '@oxy.so/core';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Commons' own delete-account screen (`app/(tabs)/(settings)/delete-account.tsx`
|
|
@@ -100,7 +100,7 @@ export async function runAccountDeletionHandoff(
|
|
|
100
100
|
return 'handled';
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
const site =
|
|
103
|
+
const site = `${AUTH_WEB_ORIGIN.replace(/^https?:\/\//, '')}/identity`;
|
|
104
104
|
await surfaces.confirm({
|
|
105
105
|
title: text('deleteAccount.handoff.elsewhereTitle', 'Delete your account where your identity is'),
|
|
106
106
|
description: text(
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _reactNative = require("react-native");
|
|
8
|
-
var _button = require("@oxy.so/bloom/button");
|
|
9
|
-
var _typography = require("@oxy.so/bloom/typography");
|
|
10
|
-
var _core = require("@oxy.so/core");
|
|
11
|
-
var _TroubleDisclosure = _interopRequireDefault(require("./TroubleDisclosure.js"));
|
|
12
|
-
var _primitives = require("./primitives.js");
|
|
13
|
-
var _styles = require("./styles.js");
|
|
14
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
|
-
/**
|
|
17
|
-
* The sign-in ENTRY (`signin` / `add` views) — ONE primary action.
|
|
18
|
-
*
|
|
19
|
-
* Web: "Continue" opens the identity origin (`id.oxy.so`) in a popup, where the
|
|
20
|
-
* person signs in — or creates an account — with a passkey, and the account's
|
|
21
|
-
* self-custody identity is created or unsealed (one identity, two carriers). No
|
|
22
|
-
* philosophy up front: fingerprint, face or device PIN, and they are in. An
|
|
23
|
-
* account that lives on another device is one subordinate link away (Commons
|
|
24
|
-
* QR). Nothing auto-starts: a browser only opens a popup from a user gesture.
|
|
25
|
-
*
|
|
26
|
-
* Native: "Continue with Oxy" — the Commons flow (shared keychain, else the
|
|
27
|
-
* request Oxy routes to the person's Commons identity).
|
|
28
|
-
*
|
|
29
|
-
* Existing accounts still render ABOVE the CTA: "continue as one of these" is a
|
|
30
|
-
* choice of WHO, not of HOW.
|
|
31
|
-
*
|
|
32
|
-
* Signed in (the "Add another account" entry), a row is an account to switch
|
|
33
|
-
* to, and the current one carries its check. Signed out, nothing here is
|
|
34
|
-
* current: the device may still list an identity it holds (Commons' shared
|
|
35
|
-
* one), but THIS app has no session, so each row reads "Continue as @handle"
|
|
36
|
-
* and choosing it signs in (OxyHQ/oxy#1375 items 20 and 21).
|
|
37
|
-
*/
|
|
38
|
-
|
|
39
|
-
const SignInEntryView = ({
|
|
40
|
-
snapshot,
|
|
41
|
-
principals,
|
|
42
|
-
theme,
|
|
43
|
-
t,
|
|
44
|
-
handlers,
|
|
45
|
-
onContinueWithOxy,
|
|
46
|
-
alternatives
|
|
47
|
-
}) => {
|
|
48
|
-
const web = alternatives.passkeyAvailable;
|
|
49
|
-
|
|
50
|
-
// Web keeps Commons one link away; native keeps its QR/Commons alternatives
|
|
51
|
-
// behind the disclosure, as before.
|
|
52
|
-
const troubleActions = web ? [{
|
|
53
|
-
key: 'get-commons-link',
|
|
54
|
-
label: t('accountSwitcher.getCommons'),
|
|
55
|
-
onPress: alternatives.onGetCommons
|
|
56
|
-
}] : [{
|
|
57
|
-
key: 'scan-qr-link',
|
|
58
|
-
label: t('accountSwitcher.scanQr'),
|
|
59
|
-
onPress: alternatives.onShowQr
|
|
60
|
-
}, {
|
|
61
|
-
key: 'get-commons-link',
|
|
62
|
-
label: t('accountSwitcher.getCommons'),
|
|
63
|
-
onPress: alternatives.onGetCommons
|
|
64
|
-
}];
|
|
65
|
-
|
|
66
|
-
// Whose route this is only needs naming when the list holds more than one
|
|
67
|
-
// person, or somebody with more than one account — the same rule the account
|
|
68
|
-
// menu's group headers follow.
|
|
69
|
-
const namesTheOperator = (0, _core.showsPrincipalHeaders)(principals);
|
|
70
|
-
const rows = principals.flatMap(principal => principal.contexts.map(context => ({
|
|
71
|
-
context,
|
|
72
|
-
operatedBy: namesTheOperator && context.isDelegated ? t('accountSwitcher.context.operatedBy', {
|
|
73
|
-
name: principal.displayName
|
|
74
|
-
}) : null
|
|
75
|
-
})));
|
|
76
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
77
|
-
style: _styles.authChooserStyles.signInBlock,
|
|
78
|
-
children: [rows.length > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
79
|
-
style: _styles.authChooserStyles.rows,
|
|
80
|
-
children: [rows.map(({
|
|
81
|
-
context,
|
|
82
|
-
operatedBy
|
|
83
|
-
}) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.AccountRow, {
|
|
84
|
-
context: context,
|
|
85
|
-
operatedBy: operatedBy,
|
|
86
|
-
continueAsLabel: snapshot.hasSession ? null : t('signin.chooser.continueAs', {
|
|
87
|
-
name: context.handle ? `@${context.handle}` : context.displayName
|
|
88
|
-
}),
|
|
89
|
-
theme: theme,
|
|
90
|
-
activating: snapshot.activatingContextId === context.contextId,
|
|
91
|
-
disabled: snapshot.activatingContextId !== null,
|
|
92
|
-
onPress: () => handlers.onActivate(context.contextId)
|
|
93
|
-
}, context.contextId)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.Dividerish, {
|
|
94
|
-
theme: theme,
|
|
95
|
-
label: t('signin.or')
|
|
96
|
-
})]
|
|
97
|
-
}) : null, web ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
|
|
98
|
-
style: [_styles.authChooserStyles.mutedText, {
|
|
99
|
-
color: theme.colors.textSecondary
|
|
100
|
-
}],
|
|
101
|
-
children: t('accountSwitcher.passkeyHint')
|
|
102
|
-
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
|
|
103
|
-
appearance: "solid",
|
|
104
|
-
tone: "accent"
|
|
105
|
-
// `lg` (44dp): the surface's ONE primary action is a full-width CTA, and
|
|
106
|
-
// the default `md` (36dp) is under the touch-target minimum on Android.
|
|
107
|
-
,
|
|
108
|
-
size: "lg",
|
|
109
|
-
onPress: web ? alternatives.onSignInWithPasskey : onContinueWithOxy,
|
|
110
|
-
style: _styles.authChooserStyles.primaryButton,
|
|
111
|
-
testID: "continue-with-oxy",
|
|
112
|
-
children: web ? t('accountSwitcher.continueWithPasskey') : t('accountSwitcher.continueWithOxy')
|
|
113
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.SubtleLink, {
|
|
114
|
-
label: t('signin.createAccountLink'),
|
|
115
|
-
theme: theme,
|
|
116
|
-
onPress: alternatives.onCreateAccount,
|
|
117
|
-
testID: "create-account-link"
|
|
118
|
-
}), web ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.SubtleLink, {
|
|
119
|
-
label: t('accountSwitcher.otherDeviceCommons'),
|
|
120
|
-
theme: theme,
|
|
121
|
-
onPress: alternatives.onShowQr,
|
|
122
|
-
testID: "scan-qr-link"
|
|
123
|
-
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_TroubleDisclosure.default, {
|
|
124
|
-
actions: troubleActions,
|
|
125
|
-
revealed: false,
|
|
126
|
-
theme: theme,
|
|
127
|
-
t: t
|
|
128
|
-
})]
|
|
129
|
-
});
|
|
130
|
-
};
|
|
131
|
-
var _default = exports.default = SignInEntryView;
|
|
132
|
-
//# sourceMappingURL=SignInEntryView.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_button","_typography","_core","_TroubleDisclosure","_interopRequireDefault","_primitives","_styles","_jsxRuntime","e","__esModule","default","SignInEntryView","snapshot","principals","theme","t","handlers","onContinueWithOxy","alternatives","web","passkeyAvailable","troubleActions","key","label","onPress","onGetCommons","onShowQr","namesTheOperator","showsPrincipalHeaders","rows","flatMap","principal","contexts","map","context","operatedBy","isDelegated","name","displayName","jsxs","View","style","styles","signInBlock","children","length","jsx","AccountRow","continueAsLabel","hasSession","handle","activating","activatingContextId","contextId","disabled","onActivate","Dividerish","Text","mutedText","color","colors","textSecondary","Button","appearance","tone","size","onSignInWithPasskey","primaryButton","testID","SubtleLink","onCreateAccount","actions","revealed","_default","exports"],"sourceRoot":"../../../../../src","sources":["ui/components/authChooser/SignInEntryView.tsx"],"mappings":";;;;;;AAwBA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAKA,IAAAI,kBAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AAAuD,IAAAQ,WAAA,GAAAR,OAAA;AAAA,SAAAK,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAlCvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAkCA,MAAMG,eAA+C,GAAGA,CAAC;EACvDC,QAAQ;EACRC,UAAU;EACVC,KAAK;EACLC,CAAC;EACDC,QAAQ;EACRC,iBAAiB;EACjBC;AACF,CAAC,KAAK;EACJ,MAAMC,GAAG,GAAGD,YAAY,CAACE,gBAAgB;;EAEzC;EACA;EACA,MAAMC,cAAwC,GAAGF,GAAG,GAChD,CAAC;IAAEG,GAAG,EAAE,kBAAkB;IAAEC,KAAK,EAAER,CAAC,CAAC,4BAA4B,CAAC;IAAES,OAAO,EAAEN,YAAY,CAACO;EAAa,CAAC,CAAC,GACzG,CACE;IAAEH,GAAG,EAAE,cAAc;IAAEC,KAAK,EAAER,CAAC,CAAC,wBAAwB,CAAC;IAAES,OAAO,EAAEN,YAAY,CAACQ;EAAS,CAAC,EAC3F;IAAEJ,GAAG,EAAE,kBAAkB;IAAEC,KAAK,EAAER,CAAC,CAAC,4BAA4B,CAAC;IAAES,OAAO,EAAEN,YAAY,CAACO;EAAa,CAAC,CACxG;;EAEL;EACA;EACA;EACA,MAAME,gBAAgB,GAAG,IAAAC,2BAAqB,EAACf,UAAU,CAAC;EAC1D,MAAMgB,IAAI,GAAGhB,UAAU,CAACiB,OAAO,CAAEC,SAAS,IACxCA,SAAS,CAACC,QAAQ,CAACC,GAAG,CAAEC,OAAO,KAAM;IACnCA,OAAO;IACPC,UAAU,EACRR,gBAAgB,IAAIO,OAAO,CAACE,WAAW,GACnCrB,CAAC,CAAC,oCAAoC,EAAE;MAAEsB,IAAI,EAAEN,SAAS,CAACO;IAAY,CAAC,CAAC,GACxE;EACR,CAAC,CAAC,CACJ,CAAC;EAED,oBACE,IAAA/B,WAAA,CAAAgC,IAAA,EAACzC,YAAA,CAAA0C,IAAI;IAACC,KAAK,EAAEC,yBAAM,CAACC,WAAY;IAAAC,QAAA,GAC7Bf,IAAI,CAACgB,MAAM,GAAG,CAAC,gBACd,IAAAtC,WAAA,CAAAgC,IAAA,EAACzC,YAAA,CAAA0C,IAAI;MAACC,KAAK,EAAEC,yBAAM,CAACb,IAAK;MAAAe,QAAA,GACtBf,IAAI,CAACI,GAAG,CAAC,CAAC;QAAEC,OAAO;QAAEC;MAAW,CAAC,kBAChC,IAAA5B,WAAA,CAAAuC,GAAA,EAACzC,WAAA,CAAA0C,UAAU;QAETb,OAAO,EAAEA,OAAQ;QACjBC,UAAU,EAAEA,UAAW;QACvBa,eAAe,EACbpC,QAAQ,CAACqC,UAAU,GACf,IAAI,GACJlC,CAAC,CAAC,2BAA2B,EAAE;UAC7BsB,IAAI,EAAEH,OAAO,CAACgB,MAAM,GAAG,IAAIhB,OAAO,CAACgB,MAAM,EAAE,GAAGhB,OAAO,CAACI;QACxD,CAAC,CACN;QACDxB,KAAK,EAAEA,KAAM;QACbqC,UAAU,EAAEvC,QAAQ,CAACwC,mBAAmB,KAAKlB,OAAO,CAACmB,SAAU;QAC/DC,QAAQ,EAAE1C,QAAQ,CAACwC,mBAAmB,KAAK,IAAK;QAChD5B,OAAO,EAAEA,CAAA,KAAMR,QAAQ,CAACuC,UAAU,CAACrB,OAAO,CAACmB,SAAS;MAAE,GAbjDnB,OAAO,CAACmB,SAcd,CACF,CAAC,eACF,IAAA9C,WAAA,CAAAuC,GAAA,EAACzC,WAAA,CAAAmD,UAAU;QAAC1C,KAAK,EAAEA,KAAM;QAACS,KAAK,EAAER,CAAC,CAAC,WAAW;MAAE,CAAE,CAAC;IAAA,CAC/C,CAAC,GACL,IAAI,EAEPI,GAAG,gBACF,IAAAZ,WAAA,CAAAuC,GAAA,EAAC7C,WAAA,CAAAwD,IAAI;MAAChB,KAAK,EAAE,CAACC,yBAAM,CAACgB,SAAS,EAAE;QAAEC,KAAK,EAAE7C,KAAK,CAAC8C,MAAM,CAACC;MAAc,CAAC,CAAE;MAAAjB,QAAA,EACpE7B,CAAC,CAAC,6BAA6B;IAAC,CAC7B,CAAC,GACL,IAAI,eAER,IAAAR,WAAA,CAAAuC,GAAA,EAAC9C,OAAA,CAAA8D,MAAM;MACLC,UAAU,EAAC,OAAO;MAACC,IAAI,EAAC;MACxB;MACA;MAAA;MACAC,IAAI,EAAC,IAAI;MACTzC,OAAO,EAAEL,GAAG,GAAGD,YAAY,CAACgD,mBAAmB,GAAGjD,iBAAkB;MACpEwB,KAAK,EAAEC,yBAAM,CAACyB,aAAc;MAC5BC,MAAM,EAAC,mBAAmB;MAAAxB,QAAA,EAEzBzB,GAAG,GAAGJ,CAAC,CAAC,qCAAqC,CAAC,GAAGA,CAAC,CAAC,iCAAiC;IAAC,CAChF,CAAC,eAIT,IAAAR,WAAA,CAAAuC,GAAA,EAACzC,WAAA,CAAAgE,UAAU;MACT9C,KAAK,EAAER,CAAC,CAAC,0BAA0B,CAAE;MACrCD,KAAK,EAAEA,KAAM;MACbU,OAAO,EAAEN,YAAY,CAACoD,eAAgB;MACtCF,MAAM,EAAC;IAAqB,CAC7B,CAAC,EAEDjD,GAAG,gBACF,IAAAZ,WAAA,CAAAuC,GAAA,EAACzC,WAAA,CAAAgE,UAAU;MACT9C,KAAK,EAAER,CAAC,CAAC,oCAAoC,CAAE;MAC/CD,KAAK,EAAEA,KAAM;MACbU,OAAO,EAAEN,YAAY,CAACQ,QAAS;MAC/B0C,MAAM,EAAC;IAAc,CACtB,CAAC,GACA,IAAI,eAER,IAAA7D,WAAA,CAAAuC,GAAA,EAAC3C,kBAAA,CAAAO,OAAiB;MAAC6D,OAAO,EAAElD,cAAe;MAACmD,QAAQ,EAAE,KAAM;MAAC1D,KAAK,EAAEA,KAAM;MAACC,CAAC,EAAEA;IAAE,CAAE,CAAC;EAAA,CAC/E,CAAC;AAEX,CAAC;AAAC,IAAA0D,QAAA,GAAAC,OAAA,CAAAhE,OAAA,GAEaC,eAAe","ignoreList":[]}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _reactNative = require("react-native");
|
|
8
|
-
var _button = require("@oxy.so/bloom/button");
|
|
9
|
-
var _typography = require("@oxy.so/bloom/typography");
|
|
10
|
-
var _primitives = require("./primitives.js");
|
|
11
|
-
var _styles = require("./styles.js");
|
|
12
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
-
/**
|
|
14
|
-
* Account creation (`signup` view).
|
|
15
|
-
*
|
|
16
|
-
* Web: the account AND its self-custody identity are created at the identity
|
|
17
|
-
* origin (`id.oxy.so`), in the same window a passkey sign-in uses — never on
|
|
18
|
-
* this page, whatever its origin (one identity, two carriers). The sign-in
|
|
19
|
-
* entry's "create an account" link opens that window directly; this view is
|
|
20
|
-
* what `openAccountDialog('signup')` lands on, and offers the same one action.
|
|
21
|
-
*
|
|
22
|
-
* Native: Commons owns identity creation. Deep-link straight in when Commons is
|
|
23
|
-
* installed, else lead with the "Get Commons" acquisition CTA.
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
const SignUpView = ({
|
|
27
|
-
snapshot,
|
|
28
|
-
theme,
|
|
29
|
-
t,
|
|
30
|
-
passkeyMode,
|
|
31
|
-
onOpenHub,
|
|
32
|
-
onCreateIdentityInCommons,
|
|
33
|
-
onGetCommons,
|
|
34
|
-
onBackToSignIn
|
|
35
|
-
}) => {
|
|
36
|
-
if (passkeyMode === 'none') {
|
|
37
|
-
const commonsInstalled = snapshot.commonsAvailability === 'available';
|
|
38
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
39
|
-
style: _styles.authChooserStyles.centeredBlock,
|
|
40
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
|
|
41
|
-
appearance: "solid",
|
|
42
|
-
tone: "accent",
|
|
43
|
-
size: "lg",
|
|
44
|
-
onPress: commonsInstalled ? onCreateIdentityInCommons : onGetCommons,
|
|
45
|
-
style: _styles.authChooserStyles.primaryButton,
|
|
46
|
-
children: commonsInstalled ? t('signup.createInCommons') : t('accountSwitcher.getCommons')
|
|
47
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.SubtleLink, {
|
|
48
|
-
label: t('signup.backToSignInLink'),
|
|
49
|
-
theme: theme,
|
|
50
|
-
onPress: onBackToSignIn
|
|
51
|
-
})]
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
55
|
-
style: _styles.authChooserStyles.centeredBlock,
|
|
56
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
|
|
57
|
-
style: [_styles.authChooserStyles.mutedText, {
|
|
58
|
-
color: theme.colors.textSecondary
|
|
59
|
-
}],
|
|
60
|
-
children: t('accountSwitcher.passkeyHint')
|
|
61
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
|
|
62
|
-
appearance: "solid",
|
|
63
|
-
tone: "accent",
|
|
64
|
-
size: "lg",
|
|
65
|
-
onPress: onOpenHub,
|
|
66
|
-
style: _styles.authChooserStyles.primaryButton,
|
|
67
|
-
testID: "signup-open-identity",
|
|
68
|
-
children: t('signup.createAccount')
|
|
69
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.SubtleLink, {
|
|
70
|
-
label: t('signup.backToSignInLink'),
|
|
71
|
-
theme: theme,
|
|
72
|
-
onPress: onBackToSignIn
|
|
73
|
-
})]
|
|
74
|
-
});
|
|
75
|
-
};
|
|
76
|
-
var _default = exports.default = SignUpView;
|
|
77
|
-
//# sourceMappingURL=SignUpView.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_button","_typography","_primitives","_styles","_jsxRuntime","SignUpView","snapshot","theme","t","passkeyMode","onOpenHub","onCreateIdentityInCommons","onGetCommons","onBackToSignIn","commonsInstalled","commonsAvailability","jsxs","View","style","styles","centeredBlock","children","jsx","Button","appearance","tone","size","onPress","primaryButton","SubtleLink","label","Text","mutedText","color","colors","textSecondary","testID","_default","exports","default"],"sourceRoot":"../../../../../src","sources":["ui/components/authChooser/SignUpView.tsx"],"mappings":";;;;;;AAcA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAEA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAAuD,IAAAK,WAAA,GAAAL,OAAA;AAnBvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAyBA,MAAMM,UAAqC,GAAGA,CAAC;EAC7CC,QAAQ;EACRC,KAAK;EACLC,CAAC;EACDC,WAAW;EACXC,SAAS;EACTC,yBAAyB;EACzBC,YAAY;EACZC;AACF,CAAC,KAAK;EACJ,IAAIJ,WAAW,KAAK,MAAM,EAAE;IAC1B,MAAMK,gBAAgB,GAAGR,QAAQ,CAACS,mBAAmB,KAAK,WAAW;IACrE,oBACE,IAAAX,WAAA,CAAAY,IAAA,EAAClB,YAAA,CAAAmB,IAAI;MAACC,KAAK,EAAEC,yBAAM,CAACC,aAAc;MAAAC,QAAA,gBAChC,IAAAjB,WAAA,CAAAkB,GAAA,EAACtB,OAAA,CAAAuB,MAAM;QACLC,UAAU,EAAC,OAAO;QAACC,IAAI,EAAC,QAAQ;QAACC,IAAI,EAAC,IAAI;QAC1CC,OAAO,EAAEb,gBAAgB,GAAGH,yBAAyB,GAAGC,YAAa;QACrEM,KAAK,EAAEC,yBAAM,CAACS,aAAc;QAAAP,QAAA,EAE3BP,gBAAgB,GAAGN,CAAC,CAAC,wBAAwB,CAAC,GAAGA,CAAC,CAAC,4BAA4B;MAAC,CAC3E,CAAC,eACT,IAAAJ,WAAA,CAAAkB,GAAA,EAACpB,WAAA,CAAA2B,UAAU;QAACC,KAAK,EAAEtB,CAAC,CAAC,yBAAyB,CAAE;QAACD,KAAK,EAAEA,KAAM;QAACoB,OAAO,EAAEd;MAAe,CAAE,CAAC;IAAA,CACtF,CAAC;EAEX;EAEA,oBACE,IAAAT,WAAA,CAAAY,IAAA,EAAClB,YAAA,CAAAmB,IAAI;IAACC,KAAK,EAAEC,yBAAM,CAACC,aAAc;IAAAC,QAAA,gBAChC,IAAAjB,WAAA,CAAAkB,GAAA,EAACrB,WAAA,CAAA8B,IAAI;MAACb,KAAK,EAAE,CAACC,yBAAM,CAACa,SAAS,EAAE;QAAEC,KAAK,EAAE1B,KAAK,CAAC2B,MAAM,CAACC;MAAc,CAAC,CAAE;MAAAd,QAAA,EACpEb,CAAC,CAAC,6BAA6B;IAAC,CAC7B,CAAC,eACP,IAAAJ,WAAA,CAAAkB,GAAA,EAACtB,OAAA,CAAAuB,MAAM;MAACC,UAAU,EAAC,OAAO;MAACC,IAAI,EAAC,QAAQ;MAACC,IAAI,EAAC,IAAI;MAACC,OAAO,EAAEjB,SAAU;MAACQ,KAAK,EAAEC,yBAAM,CAACS,aAAc;MAACQ,MAAM,EAAC,sBAAsB;MAAAf,QAAA,EAC9Hb,CAAC,CAAC,sBAAsB;IAAC,CACpB,CAAC,eACT,IAAAJ,WAAA,CAAAkB,GAAA,EAACpB,WAAA,CAAA2B,UAAU;MAACC,KAAK,EAAEtB,CAAC,CAAC,yBAAyB,CAAE;MAACD,KAAK,EAAEA,KAAM;MAACoB,OAAO,EAAEd;IAAe,CAAE,CAAC;EAAA,CACtF,CAAC;AAEX,CAAC;AAAC,IAAAwB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEalC,UAAU","ignoreList":[]}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.openPasskeyHubPopup = openPasskeyHubPopup;
|
|
7
|
-
/**
|
|
8
|
-
* Popup opener for the cross-origin passkey hub (b2).
|
|
9
|
-
*
|
|
10
|
-
* On a non-Oxy web origin (e.g. mention.earth) a WebAuthn ceremony can't run
|
|
11
|
-
* locally — the credential's RP ID is bound to `oxy.so`. Instead,
|
|
12
|
-
* `AccountDialogController.startPasskeyHubSignIn` opens a popup at the
|
|
13
|
-
* auth.oxy.so passkey hub, where the SAME ceremony IS a first-party operation.
|
|
14
|
-
*
|
|
15
|
-
* Kept in its own module (mirroring `oauthNavigation.ts`'s
|
|
16
|
-
* `redirectToAuthorize`) so `window.open` sits behind a plain function the
|
|
17
|
-
* controller wiring in `OxyContext` can inject without touching `window`
|
|
18
|
-
* itself, and so a test can substitute a fake opener.
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Open a new, EMPTY popup window. Must be called SYNCHRONOUSLY from within a
|
|
23
|
-
* user-gesture handler (before any `await`) — opening it after an async call
|
|
24
|
-
* loses the gesture attribution and the browser silently blocks it. Returns
|
|
25
|
-
* `null` when blocked, or when there is no DOM `window` (native/SSR — the
|
|
26
|
-
* hub-popup flow does not apply there).
|
|
27
|
-
*/
|
|
28
|
-
function openPasskeyHubPopup() {
|
|
29
|
-
const win = globalThis.window;
|
|
30
|
-
if (!win) return null;
|
|
31
|
-
return win.open('', '_blank', 'width=420,height=640');
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=passkeyHubPopup.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["openPasskeyHubPopup","win","globalThis","window","open"],"sourceRoot":"../../../../src","sources":["ui/components/passkeyHubPopup.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,mBAAmBA,CAAA,EAA6B;EAC5D,MAAMC,GAAG,GAAIC,UAAU,CAAyBC,MAAM;EACtD,IAAI,CAACF,GAAG,EAAE,OAAO,IAAI;EACrB,OAAOA,GAAG,CAACG,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,sBAAsB,CAAC;AACzD","ignoreList":[]}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.allowsAutomaticIdpRedirect = allowsAutomaticIdpRedirect;
|
|
7
|
-
/**
|
|
8
|
-
* The legacy, redirect-mode-only lanes that navigate the RP's TOP-LEVEL window
|
|
9
|
-
* to the IdP without a user gesture.
|
|
10
|
-
*
|
|
11
|
-
* `webAuthMode: 'popup'` exists to guarantee exactly one thing: the relying
|
|
12
|
-
* party never leaves its route. Two mechanics in this SDK break that guarantee,
|
|
13
|
-
* because each replaces the whole document on its own initiative:
|
|
14
|
-
*
|
|
15
|
-
* 1. **Cold-boot silent restore** — a full-page `prompt=none` authorize bounce
|
|
16
|
-
* to `auth.oxy.so` when the device-secret mint finds no local session
|
|
17
|
-
* (`maybeStartSilentOAuthRestore`, called from `runProviderColdBoot`).
|
|
18
|
-
* 2. **Post-sign-in hub sync** — a full-page hop to `auth.oxy.so/sync` that
|
|
19
|
-
* plants this device's credential on the IdP hub so OTHER origins can later
|
|
20
|
-
* run lane 1 (`syncHubAfterSignIn`, called from the `commitSession` funnel).
|
|
21
|
-
*
|
|
22
|
-
* Both belong to the redirect transport and are kept only for the migration
|
|
23
|
-
* window (issue #691, "Cold boot and cross-domain behavior"). In popup mode a
|
|
24
|
-
* domain with no local credential simply resolves SIGNED OUT, and the user's
|
|
25
|
-
* next explicit "Continue with Oxy" opens the popup — from a real user gesture,
|
|
26
|
-
* never automatically.
|
|
27
|
-
*
|
|
28
|
-
* NOT covered here, and correctly enabled in BOTH modes: navigations the user
|
|
29
|
-
* asked for. When the browser blocks the popup, `startWebOAuthSignIn` still
|
|
30
|
-
* falls back to a full-page redirect rather than dead-ending the sign-in, and
|
|
31
|
-
* `tryCompleteOAuthReturn` still consumes a `?code=` that is already on the URL.
|
|
32
|
-
*
|
|
33
|
-
* PHASE 7b: once the pilot flips the default transport to `'popup'`, this
|
|
34
|
-
* predicate and BOTH lanes above are deleted outright. Grepping this symbol
|
|
35
|
-
* finds every site that has to go.
|
|
36
|
-
*/
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Whether a provider running `webAuthMode` may perform an SDK-initiated,
|
|
40
|
-
* non-gesture, full-page navigation to the IdP.
|
|
41
|
-
*
|
|
42
|
-
* `true` only for `'redirect'` — still the default and the compatibility path,
|
|
43
|
-
* whose behaviour must stay byte-for-byte unchanged.
|
|
44
|
-
*/
|
|
45
|
-
function allowsAutomaticIdpRedirect(webAuthMode) {
|
|
46
|
-
return webAuthMode === 'redirect';
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=legacyRedirectLanes.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["allowsAutomaticIdpRedirect","webAuthMode"],"sourceRoot":"../../../../src","sources":["ui/oauth/legacyRedirectLanes.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,0BAA0BA,CAACC,WAAwB,EAAW;EAC5E,OAAOA,WAAW,KAAK,UAAU;AACnC","ignoreList":[]}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* The sign-in ENTRY (`signin` / `add` views) — ONE primary action.
|
|
5
|
-
*
|
|
6
|
-
* Web: "Continue" opens the identity origin (`id.oxy.so`) in a popup, where the
|
|
7
|
-
* person signs in — or creates an account — with a passkey, and the account's
|
|
8
|
-
* self-custody identity is created or unsealed (one identity, two carriers). No
|
|
9
|
-
* philosophy up front: fingerprint, face or device PIN, and they are in. An
|
|
10
|
-
* account that lives on another device is one subordinate link away (Commons
|
|
11
|
-
* QR). Nothing auto-starts: a browser only opens a popup from a user gesture.
|
|
12
|
-
*
|
|
13
|
-
* Native: "Continue with Oxy" — the Commons flow (shared keychain, else the
|
|
14
|
-
* request Oxy routes to the person's Commons identity).
|
|
15
|
-
*
|
|
16
|
-
* Existing accounts still render ABOVE the CTA: "continue as one of these" is a
|
|
17
|
-
* choice of WHO, not of HOW.
|
|
18
|
-
*
|
|
19
|
-
* Signed in (the "Add another account" entry), a row is an account to switch
|
|
20
|
-
* to, and the current one carries its check. Signed out, nothing here is
|
|
21
|
-
* current: the device may still list an identity it holds (Commons' shared
|
|
22
|
-
* one), but THIS app has no session, so each row reads "Continue as @handle"
|
|
23
|
-
* and choosing it signs in (OxyHQ/oxy#1375 items 20 and 21).
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
import { View } from 'react-native';
|
|
27
|
-
import { Button } from '@oxy.so/bloom/button';
|
|
28
|
-
import { Text } from '@oxy.so/bloom/typography';
|
|
29
|
-
import { showsPrincipalHeaders } from '@oxy.so/core';
|
|
30
|
-
import TroubleDisclosure from "./TroubleDisclosure.js";
|
|
31
|
-
import { AccountRow, Dividerish, SubtleLink } from "./primitives.js";
|
|
32
|
-
import { authChooserStyles as styles } from "./styles.js";
|
|
33
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
34
|
-
const SignInEntryView = ({
|
|
35
|
-
snapshot,
|
|
36
|
-
principals,
|
|
37
|
-
theme,
|
|
38
|
-
t,
|
|
39
|
-
handlers,
|
|
40
|
-
onContinueWithOxy,
|
|
41
|
-
alternatives
|
|
42
|
-
}) => {
|
|
43
|
-
const web = alternatives.passkeyAvailable;
|
|
44
|
-
|
|
45
|
-
// Web keeps Commons one link away; native keeps its QR/Commons alternatives
|
|
46
|
-
// behind the disclosure, as before.
|
|
47
|
-
const troubleActions = web ? [{
|
|
48
|
-
key: 'get-commons-link',
|
|
49
|
-
label: t('accountSwitcher.getCommons'),
|
|
50
|
-
onPress: alternatives.onGetCommons
|
|
51
|
-
}] : [{
|
|
52
|
-
key: 'scan-qr-link',
|
|
53
|
-
label: t('accountSwitcher.scanQr'),
|
|
54
|
-
onPress: alternatives.onShowQr
|
|
55
|
-
}, {
|
|
56
|
-
key: 'get-commons-link',
|
|
57
|
-
label: t('accountSwitcher.getCommons'),
|
|
58
|
-
onPress: alternatives.onGetCommons
|
|
59
|
-
}];
|
|
60
|
-
|
|
61
|
-
// Whose route this is only needs naming when the list holds more than one
|
|
62
|
-
// person, or somebody with more than one account — the same rule the account
|
|
63
|
-
// menu's group headers follow.
|
|
64
|
-
const namesTheOperator = showsPrincipalHeaders(principals);
|
|
65
|
-
const rows = principals.flatMap(principal => principal.contexts.map(context => ({
|
|
66
|
-
context,
|
|
67
|
-
operatedBy: namesTheOperator && context.isDelegated ? t('accountSwitcher.context.operatedBy', {
|
|
68
|
-
name: principal.displayName
|
|
69
|
-
}) : null
|
|
70
|
-
})));
|
|
71
|
-
return /*#__PURE__*/_jsxs(View, {
|
|
72
|
-
style: styles.signInBlock,
|
|
73
|
-
children: [rows.length > 0 ? /*#__PURE__*/_jsxs(View, {
|
|
74
|
-
style: styles.rows,
|
|
75
|
-
children: [rows.map(({
|
|
76
|
-
context,
|
|
77
|
-
operatedBy
|
|
78
|
-
}) => /*#__PURE__*/_jsx(AccountRow, {
|
|
79
|
-
context: context,
|
|
80
|
-
operatedBy: operatedBy,
|
|
81
|
-
continueAsLabel: snapshot.hasSession ? null : t('signin.chooser.continueAs', {
|
|
82
|
-
name: context.handle ? `@${context.handle}` : context.displayName
|
|
83
|
-
}),
|
|
84
|
-
theme: theme,
|
|
85
|
-
activating: snapshot.activatingContextId === context.contextId,
|
|
86
|
-
disabled: snapshot.activatingContextId !== null,
|
|
87
|
-
onPress: () => handlers.onActivate(context.contextId)
|
|
88
|
-
}, context.contextId)), /*#__PURE__*/_jsx(Dividerish, {
|
|
89
|
-
theme: theme,
|
|
90
|
-
label: t('signin.or')
|
|
91
|
-
})]
|
|
92
|
-
}) : null, web ? /*#__PURE__*/_jsx(Text, {
|
|
93
|
-
style: [styles.mutedText, {
|
|
94
|
-
color: theme.colors.textSecondary
|
|
95
|
-
}],
|
|
96
|
-
children: t('accountSwitcher.passkeyHint')
|
|
97
|
-
}) : null, /*#__PURE__*/_jsx(Button, {
|
|
98
|
-
appearance: "solid",
|
|
99
|
-
tone: "accent"
|
|
100
|
-
// `lg` (44dp): the surface's ONE primary action is a full-width CTA, and
|
|
101
|
-
// the default `md` (36dp) is under the touch-target minimum on Android.
|
|
102
|
-
,
|
|
103
|
-
size: "lg",
|
|
104
|
-
onPress: web ? alternatives.onSignInWithPasskey : onContinueWithOxy,
|
|
105
|
-
style: styles.primaryButton,
|
|
106
|
-
testID: "continue-with-oxy",
|
|
107
|
-
children: web ? t('accountSwitcher.continueWithPasskey') : t('accountSwitcher.continueWithOxy')
|
|
108
|
-
}), /*#__PURE__*/_jsx(SubtleLink, {
|
|
109
|
-
label: t('signin.createAccountLink'),
|
|
110
|
-
theme: theme,
|
|
111
|
-
onPress: alternatives.onCreateAccount,
|
|
112
|
-
testID: "create-account-link"
|
|
113
|
-
}), web ? /*#__PURE__*/_jsx(SubtleLink, {
|
|
114
|
-
label: t('accountSwitcher.otherDeviceCommons'),
|
|
115
|
-
theme: theme,
|
|
116
|
-
onPress: alternatives.onShowQr,
|
|
117
|
-
testID: "scan-qr-link"
|
|
118
|
-
}) : null, /*#__PURE__*/_jsx(TroubleDisclosure, {
|
|
119
|
-
actions: troubleActions,
|
|
120
|
-
revealed: false,
|
|
121
|
-
theme: theme,
|
|
122
|
-
t: t
|
|
123
|
-
})]
|
|
124
|
-
});
|
|
125
|
-
};
|
|
126
|
-
export default SignInEntryView;
|
|
127
|
-
//# sourceMappingURL=SignInEntryView.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["View","Button","Text","showsPrincipalHeaders","TroubleDisclosure","AccountRow","Dividerish","SubtleLink","authChooserStyles","styles","jsx","_jsx","jsxs","_jsxs","SignInEntryView","snapshot","principals","theme","t","handlers","onContinueWithOxy","alternatives","web","passkeyAvailable","troubleActions","key","label","onPress","onGetCommons","onShowQr","namesTheOperator","rows","flatMap","principal","contexts","map","context","operatedBy","isDelegated","name","displayName","style","signInBlock","children","length","continueAsLabel","hasSession","handle","activating","activatingContextId","contextId","disabled","onActivate","mutedText","color","colors","textSecondary","appearance","tone","size","onSignInWithPasskey","primaryButton","testID","onCreateAccount","actions","revealed"],"sourceRoot":"../../../../../src","sources":["ui/components/authChooser/SignInEntryView.tsx"],"mappings":"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","ignoreList":[]}
|