@oxyhq/services 22.12.5 → 22.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (464) hide show
  1. package/README.md +16 -46
  2. package/lib/commonjs/index.js +90 -10
  3. package/lib/commonjs/index.js.map +1 -1
  4. package/lib/commonjs/notifications/deviceNotifications.js +424 -0
  5. package/lib/commonjs/notifications/deviceNotifications.js.map +1 -0
  6. package/lib/commonjs/ui/boot/runProviderColdBoot.js +51 -9
  7. package/lib/commonjs/ui/boot/runProviderColdBoot.js.map +1 -1
  8. package/lib/commonjs/ui/client.js +0 -13
  9. package/lib/commonjs/ui/client.js.map +1 -1
  10. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js +27 -4
  11. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js.map +1 -1
  12. package/lib/commonjs/ui/components/OxyAuthChooser.js +74 -1124
  13. package/lib/commonjs/ui/components/OxyAuthChooser.js.map +1 -1
  14. package/lib/commonjs/ui/components/OxyConsentScreen.js +50 -12
  15. package/lib/commonjs/ui/components/OxyConsentScreen.js.map +1 -1
  16. package/lib/commonjs/ui/components/OxyProvider.js +4 -4
  17. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  18. package/lib/commonjs/ui/components/OxySignInButton.js +74 -40
  19. package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
  20. package/lib/commonjs/ui/components/OxySignInRequestSurface.js +147 -0
  21. package/lib/commonjs/ui/components/OxySignInRequestSurface.js.map +1 -0
  22. package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js +527 -0
  23. package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js.map +1 -0
  24. package/lib/commonjs/ui/components/authChooser/SignInEntryView.js +90 -0
  25. package/lib/commonjs/ui/components/authChooser/SignInEntryView.js.map +1 -0
  26. package/lib/commonjs/ui/components/authChooser/SignInRequestView.js +106 -0
  27. package/lib/commonjs/ui/components/authChooser/SignInRequestView.js.map +1 -0
  28. package/lib/commonjs/ui/components/authChooser/SignUpView.js +188 -0
  29. package/lib/commonjs/ui/components/authChooser/SignUpView.js.map +1 -0
  30. package/lib/commonjs/ui/components/authChooser/TroubleDisclosure.js +61 -0
  31. package/lib/commonjs/ui/components/authChooser/TroubleDisclosure.js.map +1 -0
  32. package/lib/commonjs/ui/components/authChooser/primitives.js +169 -0
  33. package/lib/commonjs/ui/components/authChooser/primitives.js.map +1 -0
  34. package/lib/commonjs/ui/components/authChooser/requestSurfaces.js +153 -0
  35. package/lib/commonjs/ui/components/authChooser/requestSurfaces.js.map +1 -0
  36. package/lib/commonjs/ui/components/authChooser/signInProgress.js +54 -0
  37. package/lib/commonjs/ui/components/authChooser/signInProgress.js.map +1 -0
  38. package/lib/commonjs/ui/components/{oxyAuthChooserStyles.js → authChooser/styles.js} +19 -1
  39. package/lib/commonjs/ui/components/authChooser/styles.js.map +1 -0
  40. package/lib/commonjs/ui/components/authChooser/types.js +70 -0
  41. package/lib/commonjs/ui/components/authChooser/types.js.map +1 -0
  42. package/lib/commonjs/ui/components/authChooser/useUsernameAvailability.js +50 -0
  43. package/lib/commonjs/ui/components/authChooser/useUsernameAvailability.js.map +1 -0
  44. package/lib/commonjs/ui/context/OxyContext.js +205 -30
  45. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  46. package/lib/commonjs/ui/context/commitSessionFlow.js +46 -0
  47. package/lib/commonjs/ui/context/commitSessionFlow.js.map +1 -1
  48. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +15 -2
  49. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  50. package/lib/commonjs/ui/context/useOxyAccountGraph.js +13 -5
  51. package/lib/commonjs/ui/context/useOxyAccountGraph.js.map +1 -1
  52. package/lib/commonjs/ui/hooks/useSwitchableAccounts.js +6 -1
  53. package/lib/commonjs/ui/hooks/useSwitchableAccounts.js.map +1 -1
  54. package/lib/commonjs/ui/index.js +0 -13
  55. package/lib/commonjs/ui/index.js.map +1 -1
  56. package/lib/commonjs/ui/oauth/browserAuthTransport.js +170 -0
  57. package/lib/commonjs/ui/oauth/browserAuthTransport.js.map +1 -0
  58. package/lib/commonjs/ui/oauth/completeOAuthCode.js +78 -0
  59. package/lib/commonjs/ui/oauth/completeOAuthCode.js.map +1 -0
  60. package/lib/commonjs/ui/oauth/legacyRedirectLanes.js +48 -0
  61. package/lib/commonjs/ui/oauth/legacyRedirectLanes.js.map +1 -0
  62. package/lib/commonjs/ui/oauth/oauthHandshake.js +53 -0
  63. package/lib/commonjs/ui/oauth/oauthHandshake.js.map +1 -0
  64. package/lib/commonjs/ui/oauth/oauthPopup.js +276 -0
  65. package/lib/commonjs/ui/oauth/oauthPopup.js.map +1 -0
  66. package/lib/commonjs/ui/oauth/oauthPopupMessages.js +141 -0
  67. package/lib/commonjs/ui/oauth/oauthPopupMessages.js.map +1 -0
  68. package/lib/commonjs/ui/oauth/types.js +2 -0
  69. package/lib/commonjs/ui/oauth/types.js.map +1 -0
  70. package/lib/commonjs/ui/server.js +2 -5
  71. package/lib/commonjs/ui/server.js.map +1 -1
  72. package/lib/commonjs/ui/session/authStore.js +6 -75
  73. package/lib/commonjs/ui/session/authStore.js.map +1 -1
  74. package/lib/commonjs/ui/session/createSessionClient.js +11 -3
  75. package/lib/commonjs/ui/session/createSessionClient.js.map +1 -1
  76. package/lib/commonjs/ui/session/identityBinding.js +95 -0
  77. package/lib/commonjs/ui/session/identityBinding.js.map +1 -0
  78. package/lib/commonjs/ui/session/index.js +13 -0
  79. package/lib/commonjs/ui/session/index.js.map +1 -1
  80. package/lib/commonjs/ui/session/nativeSecureStorage.js +90 -0
  81. package/lib/commonjs/ui/session/nativeSecureStorage.js.map +1 -0
  82. package/lib/commonjs/ui/session/tokenTransport.js +11 -1
  83. package/lib/commonjs/ui/session/tokenTransport.js.map +1 -1
  84. package/lib/commonjs/ui/utils/crossOriginRestore.js +3 -2
  85. package/lib/commonjs/ui/utils/crossOriginRestore.js.map +1 -1
  86. package/lib/commonjs/ui/utils/deliveryPlatform.js +58 -0
  87. package/lib/commonjs/ui/utils/deliveryPlatform.js.map +1 -0
  88. package/lib/commonjs/ui/utils/oauthReturn.js +33 -49
  89. package/lib/commonjs/ui/utils/oauthReturn.js.map +1 -1
  90. package/lib/module/index.js +27 -4
  91. package/lib/module/index.js.map +1 -1
  92. package/lib/module/notifications/deviceNotifications.js +414 -0
  93. package/lib/module/notifications/deviceNotifications.js.map +1 -0
  94. package/lib/module/ui/boot/runProviderColdBoot.js +51 -9
  95. package/lib/module/ui/boot/runProviderColdBoot.js.map +1 -1
  96. package/lib/module/ui/client.js +0 -1
  97. package/lib/module/ui/client.js.map +1 -1
  98. package/lib/module/ui/components/OxyAccountDialogScreen.js +27 -4
  99. package/lib/module/ui/components/OxyAccountDialogScreen.js.map +1 -1
  100. package/lib/module/ui/components/OxyAuthChooser.js +78 -1129
  101. package/lib/module/ui/components/OxyAuthChooser.js.map +1 -1
  102. package/lib/module/ui/components/OxyConsentScreen.js +50 -12
  103. package/lib/module/ui/components/OxyConsentScreen.js.map +1 -1
  104. package/lib/module/ui/components/OxyProvider.js +4 -4
  105. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  106. package/lib/module/ui/components/OxySignInButton.js +76 -42
  107. package/lib/module/ui/components/OxySignInButton.js.map +1 -1
  108. package/lib/module/ui/components/OxySignInRequestSurface.js +141 -0
  109. package/lib/module/ui/components/OxySignInRequestSurface.js.map +1 -0
  110. package/lib/module/ui/components/authChooser/AccountsMenuView.js +523 -0
  111. package/lib/module/ui/components/authChooser/AccountsMenuView.js.map +1 -0
  112. package/lib/module/ui/components/authChooser/SignInEntryView.js +85 -0
  113. package/lib/module/ui/components/authChooser/SignInEntryView.js.map +1 -0
  114. package/lib/module/ui/components/authChooser/SignInRequestView.js +101 -0
  115. package/lib/module/ui/components/authChooser/SignInRequestView.js.map +1 -0
  116. package/lib/module/ui/components/authChooser/SignUpView.js +184 -0
  117. package/lib/module/ui/components/authChooser/SignUpView.js.map +1 -0
  118. package/lib/module/ui/components/authChooser/TroubleDisclosure.js +57 -0
  119. package/lib/module/ui/components/authChooser/TroubleDisclosure.js.map +1 -0
  120. package/lib/module/ui/components/authChooser/primitives.js +163 -0
  121. package/lib/module/ui/components/authChooser/primitives.js.map +1 -0
  122. package/lib/module/ui/components/authChooser/requestSurfaces.js +143 -0
  123. package/lib/module/ui/components/authChooser/requestSurfaces.js.map +1 -0
  124. package/lib/module/ui/components/authChooser/signInProgress.js +50 -0
  125. package/lib/module/ui/components/authChooser/signInProgress.js.map +1 -0
  126. package/lib/module/ui/components/{oxyAuthChooserStyles.js → authChooser/styles.js} +19 -1
  127. package/lib/module/ui/components/authChooser/styles.js.map +1 -0
  128. package/lib/module/ui/components/authChooser/types.js +66 -0
  129. package/lib/module/ui/components/authChooser/types.js.map +1 -0
  130. package/lib/module/ui/components/authChooser/useUsernameAvailability.js +46 -0
  131. package/lib/module/ui/components/authChooser/useUsernameAvailability.js.map +1 -0
  132. package/lib/module/ui/context/OxyContext.js +208 -33
  133. package/lib/module/ui/context/OxyContext.js.map +1 -1
  134. package/lib/module/ui/context/commitSessionFlow.js +45 -0
  135. package/lib/module/ui/context/commitSessionFlow.js.map +1 -1
  136. package/lib/module/ui/context/hooks/useAuthOperations.js +15 -2
  137. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  138. package/lib/module/ui/context/useOxyAccountGraph.js +13 -5
  139. package/lib/module/ui/context/useOxyAccountGraph.js.map +1 -1
  140. package/lib/module/ui/hooks/useSwitchableAccounts.js +6 -1
  141. package/lib/module/ui/hooks/useSwitchableAccounts.js.map +1 -1
  142. package/lib/module/ui/index.js +0 -1
  143. package/lib/module/ui/index.js.map +1 -1
  144. package/lib/module/ui/oauth/browserAuthTransport.js +167 -0
  145. package/lib/module/ui/oauth/browserAuthTransport.js.map +1 -0
  146. package/lib/module/ui/oauth/completeOAuthCode.js +75 -0
  147. package/lib/module/ui/oauth/completeOAuthCode.js.map +1 -0
  148. package/lib/module/ui/oauth/legacyRedirectLanes.js +44 -0
  149. package/lib/module/ui/oauth/legacyRedirectLanes.js.map +1 -0
  150. package/lib/module/ui/oauth/oauthHandshake.js +50 -0
  151. package/lib/module/ui/oauth/oauthHandshake.js.map +1 -0
  152. package/lib/module/ui/oauth/oauthPopup.js +268 -0
  153. package/lib/module/ui/oauth/oauthPopup.js.map +1 -0
  154. package/lib/module/ui/oauth/oauthPopupMessages.js +135 -0
  155. package/lib/module/ui/oauth/oauthPopupMessages.js.map +1 -0
  156. package/lib/module/ui/oauth/types.js +2 -0
  157. package/lib/module/ui/oauth/types.js.map +1 -0
  158. package/lib/module/ui/server.js +0 -2
  159. package/lib/module/ui/server.js.map +1 -1
  160. package/lib/module/ui/session/authStore.js +5 -75
  161. package/lib/module/ui/session/authStore.js.map +1 -1
  162. package/lib/module/ui/session/createSessionClient.js +11 -3
  163. package/lib/module/ui/session/createSessionClient.js.map +1 -1
  164. package/lib/module/ui/session/identityBinding.js +89 -0
  165. package/lib/module/ui/session/identityBinding.js.map +1 -0
  166. package/lib/module/ui/session/index.js +5 -2
  167. package/lib/module/ui/session/index.js.map +1 -1
  168. package/lib/module/ui/session/nativeSecureStorage.js +88 -0
  169. package/lib/module/ui/session/nativeSecureStorage.js.map +1 -0
  170. package/lib/module/ui/session/tokenTransport.js +11 -1
  171. package/lib/module/ui/session/tokenTransport.js.map +1 -1
  172. package/lib/module/ui/utils/crossOriginRestore.js +4 -3
  173. package/lib/module/ui/utils/crossOriginRestore.js.map +1 -1
  174. package/lib/module/ui/utils/deliveryPlatform.js +55 -0
  175. package/lib/module/ui/utils/deliveryPlatform.js.map +1 -0
  176. package/lib/module/ui/utils/oauthReturn.js +35 -50
  177. package/lib/module/ui/utils/oauthReturn.js.map +1 -1
  178. package/lib/typescript/commonjs/index.d.ts +9 -1
  179. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  180. package/lib/typescript/commonjs/notifications/deviceNotifications.d.ts +173 -0
  181. package/lib/typescript/commonjs/notifications/deviceNotifications.d.ts.map +1 -0
  182. package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts +34 -2
  183. package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  184. package/lib/typescript/commonjs/ui/client.d.ts +0 -1
  185. package/lib/typescript/commonjs/ui/client.d.ts.map +1 -1
  186. package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
  187. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts +23 -29
  188. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts.map +1 -1
  189. package/lib/typescript/commonjs/ui/components/OxyConsentScreen.d.ts.map +1 -1
  190. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  191. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts +17 -12
  192. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts.map +1 -1
  193. package/lib/typescript/commonjs/ui/components/OxySignInRequestSurface.d.ts +108 -0
  194. package/lib/typescript/commonjs/ui/components/OxySignInRequestSurface.d.ts.map +1 -0
  195. package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts +38 -0
  196. package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -0
  197. package/lib/typescript/commonjs/ui/components/authChooser/SignInEntryView.d.ts +32 -0
  198. package/lib/typescript/commonjs/ui/components/authChooser/SignInEntryView.d.ts.map +1 -0
  199. package/lib/typescript/commonjs/ui/components/authChooser/SignInRequestView.d.ts +34 -0
  200. package/lib/typescript/commonjs/ui/components/authChooser/SignInRequestView.d.ts.map +1 -0
  201. package/lib/typescript/commonjs/ui/components/authChooser/SignUpView.d.ts +34 -0
  202. package/lib/typescript/commonjs/ui/components/authChooser/SignUpView.d.ts.map +1 -0
  203. package/lib/typescript/commonjs/ui/components/authChooser/TroubleDisclosure.d.ts +36 -0
  204. package/lib/typescript/commonjs/ui/components/authChooser/TroubleDisclosure.d.ts.map +1 -0
  205. package/lib/typescript/commonjs/ui/components/authChooser/primitives.d.ts +55 -0
  206. package/lib/typescript/commonjs/ui/components/authChooser/primitives.d.ts.map +1 -0
  207. package/lib/typescript/commonjs/ui/components/authChooser/requestSurfaces.d.ts +58 -0
  208. package/lib/typescript/commonjs/ui/components/authChooser/requestSurfaces.d.ts.map +1 -0
  209. package/lib/typescript/commonjs/ui/components/authChooser/signInProgress.d.ts +26 -0
  210. package/lib/typescript/commonjs/ui/components/authChooser/signInProgress.d.ts.map +1 -0
  211. package/lib/typescript/{module/ui/components/oxyAuthChooserStyles.d.ts → commonjs/ui/components/authChooser/styles.d.ts} +19 -1
  212. package/lib/typescript/commonjs/ui/components/authChooser/styles.d.ts.map +1 -0
  213. package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts +103 -0
  214. package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts.map +1 -0
  215. package/lib/typescript/commonjs/ui/components/authChooser/useUsernameAvailability.d.ts +16 -0
  216. package/lib/typescript/commonjs/ui/components/authChooser/useUsernameAvailability.d.ts.map +1 -0
  217. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  218. package/lib/typescript/commonjs/ui/context/commitSessionFlow.d.ts +40 -0
  219. package/lib/typescript/commonjs/ui/context/commitSessionFlow.d.ts.map +1 -1
  220. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts +11 -2
  221. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  222. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts +44 -1
  223. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts.map +1 -1
  224. package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts +7 -1
  225. package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts.map +1 -1
  226. package/lib/typescript/commonjs/ui/hooks/useSwitchableAccounts.d.ts.map +1 -1
  227. package/lib/typescript/commonjs/ui/index.d.ts +0 -1
  228. package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
  229. package/lib/typescript/commonjs/ui/oauth/browserAuthTransport.d.ts +56 -0
  230. package/lib/typescript/commonjs/ui/oauth/browserAuthTransport.d.ts.map +1 -0
  231. package/lib/typescript/commonjs/ui/oauth/completeOAuthCode.d.ts +49 -0
  232. package/lib/typescript/commonjs/ui/oauth/completeOAuthCode.d.ts.map +1 -0
  233. package/lib/typescript/commonjs/ui/oauth/legacyRedirectLanes.d.ts +40 -0
  234. package/lib/typescript/commonjs/ui/oauth/legacyRedirectLanes.d.ts.map +1 -0
  235. package/lib/typescript/commonjs/ui/oauth/oauthHandshake.d.ts +50 -0
  236. package/lib/typescript/commonjs/ui/oauth/oauthHandshake.d.ts.map +1 -0
  237. package/lib/typescript/commonjs/ui/oauth/oauthPopup.d.ts +83 -0
  238. package/lib/typescript/commonjs/ui/oauth/oauthPopup.d.ts.map +1 -0
  239. package/lib/typescript/commonjs/ui/oauth/oauthPopupMessages.d.ts +67 -0
  240. package/lib/typescript/commonjs/ui/oauth/oauthPopupMessages.d.ts.map +1 -0
  241. package/lib/typescript/commonjs/ui/oauth/types.d.ts +176 -0
  242. package/lib/typescript/commonjs/ui/oauth/types.d.ts.map +1 -0
  243. package/lib/typescript/commonjs/ui/server.d.ts +0 -2
  244. package/lib/typescript/commonjs/ui/server.d.ts.map +1 -1
  245. package/lib/typescript/commonjs/ui/session/authStore.d.ts +3 -7
  246. package/lib/typescript/commonjs/ui/session/authStore.d.ts.map +1 -1
  247. package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts +8 -1
  248. package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts.map +1 -1
  249. package/lib/typescript/commonjs/ui/session/identityBinding.d.ts +66 -0
  250. package/lib/typescript/commonjs/ui/session/identityBinding.d.ts.map +1 -0
  251. package/lib/typescript/commonjs/ui/session/index.d.ts +6 -2
  252. package/lib/typescript/commonjs/ui/session/index.d.ts.map +1 -1
  253. package/lib/typescript/commonjs/ui/session/nativeSecureStorage.d.ts +25 -0
  254. package/lib/typescript/commonjs/ui/session/nativeSecureStorage.d.ts.map +1 -0
  255. package/lib/typescript/commonjs/ui/session/tokenTransport.d.ts +8 -1
  256. package/lib/typescript/commonjs/ui/session/tokenTransport.d.ts.map +1 -1
  257. package/lib/typescript/commonjs/ui/types/navigation.d.ts +44 -0
  258. package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
  259. package/lib/typescript/commonjs/ui/utils/crossOriginRestore.d.ts.map +1 -1
  260. package/lib/typescript/commonjs/ui/utils/deliveryPlatform.d.ts +33 -0
  261. package/lib/typescript/commonjs/ui/utils/deliveryPlatform.d.ts.map +1 -0
  262. package/lib/typescript/commonjs/ui/utils/oauthReturn.d.ts +11 -16
  263. package/lib/typescript/commonjs/ui/utils/oauthReturn.d.ts.map +1 -1
  264. package/lib/typescript/module/index.d.ts +9 -1
  265. package/lib/typescript/module/index.d.ts.map +1 -1
  266. package/lib/typescript/module/notifications/deviceNotifications.d.ts +173 -0
  267. package/lib/typescript/module/notifications/deviceNotifications.d.ts.map +1 -0
  268. package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts +34 -2
  269. package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  270. package/lib/typescript/module/ui/client.d.ts +0 -1
  271. package/lib/typescript/module/ui/client.d.ts.map +1 -1
  272. package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
  273. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts +23 -29
  274. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts.map +1 -1
  275. package/lib/typescript/module/ui/components/OxyConsentScreen.d.ts.map +1 -1
  276. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  277. package/lib/typescript/module/ui/components/OxySignInButton.d.ts +17 -12
  278. package/lib/typescript/module/ui/components/OxySignInButton.d.ts.map +1 -1
  279. package/lib/typescript/module/ui/components/OxySignInRequestSurface.d.ts +108 -0
  280. package/lib/typescript/module/ui/components/OxySignInRequestSurface.d.ts.map +1 -0
  281. package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts +38 -0
  282. package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -0
  283. package/lib/typescript/module/ui/components/authChooser/SignInEntryView.d.ts +32 -0
  284. package/lib/typescript/module/ui/components/authChooser/SignInEntryView.d.ts.map +1 -0
  285. package/lib/typescript/module/ui/components/authChooser/SignInRequestView.d.ts +34 -0
  286. package/lib/typescript/module/ui/components/authChooser/SignInRequestView.d.ts.map +1 -0
  287. package/lib/typescript/module/ui/components/authChooser/SignUpView.d.ts +34 -0
  288. package/lib/typescript/module/ui/components/authChooser/SignUpView.d.ts.map +1 -0
  289. package/lib/typescript/module/ui/components/authChooser/TroubleDisclosure.d.ts +36 -0
  290. package/lib/typescript/module/ui/components/authChooser/TroubleDisclosure.d.ts.map +1 -0
  291. package/lib/typescript/module/ui/components/authChooser/primitives.d.ts +55 -0
  292. package/lib/typescript/module/ui/components/authChooser/primitives.d.ts.map +1 -0
  293. package/lib/typescript/module/ui/components/authChooser/requestSurfaces.d.ts +58 -0
  294. package/lib/typescript/module/ui/components/authChooser/requestSurfaces.d.ts.map +1 -0
  295. package/lib/typescript/module/ui/components/authChooser/signInProgress.d.ts +26 -0
  296. package/lib/typescript/module/ui/components/authChooser/signInProgress.d.ts.map +1 -0
  297. package/lib/typescript/{commonjs/ui/components/oxyAuthChooserStyles.d.ts → module/ui/components/authChooser/styles.d.ts} +19 -1
  298. package/lib/typescript/module/ui/components/authChooser/styles.d.ts.map +1 -0
  299. package/lib/typescript/module/ui/components/authChooser/types.d.ts +103 -0
  300. package/lib/typescript/module/ui/components/authChooser/types.d.ts.map +1 -0
  301. package/lib/typescript/module/ui/components/authChooser/useUsernameAvailability.d.ts +16 -0
  302. package/lib/typescript/module/ui/components/authChooser/useUsernameAvailability.d.ts.map +1 -0
  303. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  304. package/lib/typescript/module/ui/context/commitSessionFlow.d.ts +40 -0
  305. package/lib/typescript/module/ui/context/commitSessionFlow.d.ts.map +1 -1
  306. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts +11 -2
  307. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  308. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts +44 -1
  309. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts.map +1 -1
  310. package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts +7 -1
  311. package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts.map +1 -1
  312. package/lib/typescript/module/ui/hooks/useSwitchableAccounts.d.ts.map +1 -1
  313. package/lib/typescript/module/ui/index.d.ts +0 -1
  314. package/lib/typescript/module/ui/index.d.ts.map +1 -1
  315. package/lib/typescript/module/ui/oauth/browserAuthTransport.d.ts +56 -0
  316. package/lib/typescript/module/ui/oauth/browserAuthTransport.d.ts.map +1 -0
  317. package/lib/typescript/module/ui/oauth/completeOAuthCode.d.ts +49 -0
  318. package/lib/typescript/module/ui/oauth/completeOAuthCode.d.ts.map +1 -0
  319. package/lib/typescript/module/ui/oauth/legacyRedirectLanes.d.ts +40 -0
  320. package/lib/typescript/module/ui/oauth/legacyRedirectLanes.d.ts.map +1 -0
  321. package/lib/typescript/module/ui/oauth/oauthHandshake.d.ts +50 -0
  322. package/lib/typescript/module/ui/oauth/oauthHandshake.d.ts.map +1 -0
  323. package/lib/typescript/module/ui/oauth/oauthPopup.d.ts +83 -0
  324. package/lib/typescript/module/ui/oauth/oauthPopup.d.ts.map +1 -0
  325. package/lib/typescript/module/ui/oauth/oauthPopupMessages.d.ts +67 -0
  326. package/lib/typescript/module/ui/oauth/oauthPopupMessages.d.ts.map +1 -0
  327. package/lib/typescript/module/ui/oauth/types.d.ts +176 -0
  328. package/lib/typescript/module/ui/oauth/types.d.ts.map +1 -0
  329. package/lib/typescript/module/ui/server.d.ts +0 -2
  330. package/lib/typescript/module/ui/server.d.ts.map +1 -1
  331. package/lib/typescript/module/ui/session/authStore.d.ts +3 -7
  332. package/lib/typescript/module/ui/session/authStore.d.ts.map +1 -1
  333. package/lib/typescript/module/ui/session/createSessionClient.d.ts +8 -1
  334. package/lib/typescript/module/ui/session/createSessionClient.d.ts.map +1 -1
  335. package/lib/typescript/module/ui/session/identityBinding.d.ts +66 -0
  336. package/lib/typescript/module/ui/session/identityBinding.d.ts.map +1 -0
  337. package/lib/typescript/module/ui/session/index.d.ts +6 -2
  338. package/lib/typescript/module/ui/session/index.d.ts.map +1 -1
  339. package/lib/typescript/module/ui/session/nativeSecureStorage.d.ts +25 -0
  340. package/lib/typescript/module/ui/session/nativeSecureStorage.d.ts.map +1 -0
  341. package/lib/typescript/module/ui/session/tokenTransport.d.ts +8 -1
  342. package/lib/typescript/module/ui/session/tokenTransport.d.ts.map +1 -1
  343. package/lib/typescript/module/ui/types/navigation.d.ts +44 -0
  344. package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
  345. package/lib/typescript/module/ui/utils/crossOriginRestore.d.ts.map +1 -1
  346. package/lib/typescript/module/ui/utils/deliveryPlatform.d.ts +33 -0
  347. package/lib/typescript/module/ui/utils/deliveryPlatform.d.ts.map +1 -0
  348. package/lib/typescript/module/ui/utils/oauthReturn.d.ts +11 -16
  349. package/lib/typescript/module/ui/utils/oauthReturn.d.ts.map +1 -1
  350. package/package.json +18 -10
  351. package/src/index.ts +51 -5
  352. package/src/notifications/deviceNotifications.ts +458 -0
  353. package/src/ui/boot/__tests__/coldBootWebAuthMode.test.ts +281 -0
  354. package/src/ui/boot/runProviderColdBoot.ts +83 -13
  355. package/src/ui/client.ts +0 -1
  356. package/src/ui/components/OxyAccountDialogScreen.tsx +33 -4
  357. package/src/ui/components/OxyAuthChooser.tsx +102 -1231
  358. package/src/ui/components/OxyConsentScreen.tsx +56 -13
  359. package/src/ui/components/OxyProvider.tsx +4 -4
  360. package/src/ui/components/OxySignInButton.tsx +119 -78
  361. package/src/ui/components/OxySignInRequestSurface.tsx +202 -0
  362. package/src/ui/components/__tests__/OxyConsentScreen.test.tsx +27 -0
  363. package/src/ui/components/authChooser/AccountsMenuView.tsx +569 -0
  364. package/src/ui/components/authChooser/SignInEntryView.tsx +121 -0
  365. package/src/ui/components/authChooser/SignInRequestView.tsx +130 -0
  366. package/src/ui/components/authChooser/SignUpView.tsx +174 -0
  367. package/src/ui/components/authChooser/TroubleDisclosure.tsx +73 -0
  368. package/src/ui/components/authChooser/primitives.tsx +144 -0
  369. package/src/ui/components/authChooser/requestSurfaces.tsx +120 -0
  370. package/src/ui/components/authChooser/signInProgress.ts +54 -0
  371. package/src/ui/components/{oxyAuthChooserStyles.ts → authChooser/styles.ts} +18 -0
  372. package/src/ui/components/authChooser/types.ts +120 -0
  373. package/src/ui/components/authChooser/useUsernameAvailability.ts +60 -0
  374. package/src/ui/context/OxyContext.tsx +226 -24
  375. package/src/ui/context/__tests__/commitSessionFlow.test.ts +102 -0
  376. package/src/ui/context/commitSessionFlow.ts +64 -0
  377. package/src/ui/context/hooks/useAuthOperations.ts +26 -1
  378. package/src/ui/context/oxyContextTypes.ts +45 -1
  379. package/src/ui/context/useOxyAccountGraph.ts +19 -5
  380. package/src/ui/hooks/useSwitchableAccounts.ts +12 -1
  381. package/src/ui/index.ts +0 -1
  382. package/src/ui/oauth/__tests__/browserAuthTransport.test.ts +335 -0
  383. package/src/ui/oauth/__tests__/completeOAuthCode.test.ts +142 -0
  384. package/src/ui/oauth/__tests__/oauthPopup.test.ts +352 -0
  385. package/src/ui/oauth/__tests__/oauthPopupMessages.test.ts +189 -0
  386. package/src/ui/oauth/__tests__/sharedCompletionPath.test.ts +174 -0
  387. package/src/ui/oauth/browserAuthTransport.ts +193 -0
  388. package/src/ui/oauth/completeOAuthCode.ts +93 -0
  389. package/src/ui/oauth/legacyRedirectLanes.ts +43 -0
  390. package/src/ui/oauth/oauthHandshake.ts +74 -0
  391. package/src/ui/oauth/oauthPopup.ts +277 -0
  392. package/src/ui/oauth/oauthPopupMessages.ts +136 -0
  393. package/src/ui/oauth/types.ts +150 -0
  394. package/src/ui/server.ts +0 -2
  395. package/src/ui/session/__tests__/createSessionClient.test.ts +26 -0
  396. package/src/ui/session/__tests__/tokenTransport.test.ts +34 -0
  397. package/src/ui/session/authStore.ts +5 -89
  398. package/src/ui/session/createSessionClient.ts +15 -2
  399. package/src/ui/session/identityBinding.ts +116 -0
  400. package/src/ui/session/index.ts +6 -2
  401. package/src/ui/session/nativeSecureStorage.ts +98 -0
  402. package/src/ui/session/tokenTransport.ts +14 -1
  403. package/src/ui/types/navigation.ts +44 -1
  404. package/src/ui/utils/__tests__/crossOriginRestore.test.ts +17 -0
  405. package/src/ui/utils/crossOriginRestore.ts +7 -6
  406. package/src/ui/utils/deliveryPlatform.ts +65 -0
  407. package/src/ui/utils/oauthReturn.ts +38 -62
  408. package/lib/commonjs/assets/assets/fonts/Inter/Inter_18pt-Black.ttf +0 -0
  409. package/lib/commonjs/assets/assets/fonts/Inter/Inter_18pt-Bold.ttf +0 -0
  410. package/lib/commonjs/assets/assets/fonts/Inter/Inter_18pt-ExtraBold.ttf +0 -0
  411. package/lib/commonjs/assets/assets/fonts/Inter/Inter_18pt-Light.ttf +0 -0
  412. package/lib/commonjs/assets/assets/fonts/Inter/Inter_18pt-Medium.ttf +0 -0
  413. package/lib/commonjs/assets/assets/fonts/Inter/Inter_18pt-Regular.ttf +0 -0
  414. package/lib/commonjs/assets/assets/fonts/Inter/Inter_18pt-SemiBold.ttf +0 -0
  415. package/lib/commonjs/assets/fonts/Inter/Inter_18pt-Black.ttf +0 -0
  416. package/lib/commonjs/assets/fonts/Inter/Inter_18pt-Bold.ttf +0 -0
  417. package/lib/commonjs/assets/fonts/Inter/Inter_18pt-ExtraBold.ttf +0 -0
  418. package/lib/commonjs/assets/fonts/Inter/Inter_18pt-Light.ttf +0 -0
  419. package/lib/commonjs/assets/fonts/Inter/Inter_18pt-Medium.ttf +0 -0
  420. package/lib/commonjs/assets/fonts/Inter/Inter_18pt-Regular.ttf +0 -0
  421. package/lib/commonjs/assets/fonts/Inter/Inter_18pt-SemiBold.ttf +0 -0
  422. package/lib/commonjs/ui/components/FontLoader.js +0 -35
  423. package/lib/commonjs/ui/components/FontLoader.js.map +0 -1
  424. package/lib/commonjs/ui/components/FontLoader.native.js +0 -88
  425. package/lib/commonjs/ui/components/FontLoader.native.js.map +0 -1
  426. package/lib/commonjs/ui/components/oxyAuthChooserStyles.js.map +0 -1
  427. package/lib/module/assets/assets/fonts/Inter/Inter_18pt-Black.ttf +0 -0
  428. package/lib/module/assets/assets/fonts/Inter/Inter_18pt-Bold.ttf +0 -0
  429. package/lib/module/assets/assets/fonts/Inter/Inter_18pt-ExtraBold.ttf +0 -0
  430. package/lib/module/assets/assets/fonts/Inter/Inter_18pt-Light.ttf +0 -0
  431. package/lib/module/assets/assets/fonts/Inter/Inter_18pt-Medium.ttf +0 -0
  432. package/lib/module/assets/assets/fonts/Inter/Inter_18pt-Regular.ttf +0 -0
  433. package/lib/module/assets/assets/fonts/Inter/Inter_18pt-SemiBold.ttf +0 -0
  434. package/lib/module/assets/fonts/Inter/Inter_18pt-Black.ttf +0 -0
  435. package/lib/module/assets/fonts/Inter/Inter_18pt-Bold.ttf +0 -0
  436. package/lib/module/assets/fonts/Inter/Inter_18pt-ExtraBold.ttf +0 -0
  437. package/lib/module/assets/fonts/Inter/Inter_18pt-Light.ttf +0 -0
  438. package/lib/module/assets/fonts/Inter/Inter_18pt-Medium.ttf +0 -0
  439. package/lib/module/assets/fonts/Inter/Inter_18pt-Regular.ttf +0 -0
  440. package/lib/module/assets/fonts/Inter/Inter_18pt-SemiBold.ttf +0 -0
  441. package/lib/module/ui/components/FontLoader.js +0 -29
  442. package/lib/module/ui/components/FontLoader.js.map +0 -1
  443. package/lib/module/ui/components/FontLoader.native.js +0 -83
  444. package/lib/module/ui/components/FontLoader.native.js.map +0 -1
  445. package/lib/module/ui/components/oxyAuthChooserStyles.js.map +0 -1
  446. package/lib/typescript/commonjs/ui/components/FontLoader.d.ts +0 -24
  447. package/lib/typescript/commonjs/ui/components/FontLoader.d.ts.map +0 -1
  448. package/lib/typescript/commonjs/ui/components/FontLoader.native.d.ts +0 -13
  449. package/lib/typescript/commonjs/ui/components/FontLoader.native.d.ts.map +0 -1
  450. package/lib/typescript/commonjs/ui/components/oxyAuthChooserStyles.d.ts.map +0 -1
  451. package/lib/typescript/module/ui/components/FontLoader.d.ts +0 -24
  452. package/lib/typescript/module/ui/components/FontLoader.d.ts.map +0 -1
  453. package/lib/typescript/module/ui/components/FontLoader.native.d.ts +0 -13
  454. package/lib/typescript/module/ui/components/FontLoader.native.d.ts.map +0 -1
  455. package/lib/typescript/module/ui/components/oxyAuthChooserStyles.d.ts.map +0 -1
  456. package/src/assets/fonts/Inter/Inter_18pt-Black.ttf +0 -0
  457. package/src/assets/fonts/Inter/Inter_18pt-Bold.ttf +0 -0
  458. package/src/assets/fonts/Inter/Inter_18pt-ExtraBold.ttf +0 -0
  459. package/src/assets/fonts/Inter/Inter_18pt-Light.ttf +0 -0
  460. package/src/assets/fonts/Inter/Inter_18pt-Medium.ttf +0 -0
  461. package/src/assets/fonts/Inter/Inter_18pt-Regular.ttf +0 -0
  462. package/src/assets/fonts/Inter/Inter_18pt-SemiBold.ttf +0 -0
  463. package/src/ui/components/FontLoader.native.tsx +0 -88
  464. package/src/ui/components/FontLoader.tsx +0 -27
@@ -12,27 +12,19 @@ var _shallow = require("zustand/react/shallow");
12
12
  var _theme = require("@oxyhq/bloom/theme");
13
13
  var _button = require("@oxyhq/bloom/button");
14
14
  var _OxyContext = require("../context/OxyContext.js");
15
+ var _useI18n = require("../hooks/useI18n.js");
15
16
  var _LogoIcon = require("./logo/LogoIcon.js");
16
17
  var _accountDialogManager = require("../navigation/accountDialogManager.js");
17
18
  var _oauthNavigation = require("./oauthNavigation.js");
19
+ var _oauthPopup = require("../oauth/oauthPopup.js");
18
20
  var _jsxRuntime = require("react/jsx-runtime");
19
21
  /**
20
22
  * The OAuth handshake surfaced to a NATIVE third-party RP via
21
23
  * {@link OxySignInButtonProps.onOAuthResult} so it can finish the code exchange
22
- * (`POST /auth/oauth/token`). Web RPs read the same `state` / `code_verifier`
23
- * back from `sessionStorage` across the redirect and do not need this callback.
24
+ * (`POST /auth/oauth/token`). Web sign-in is handled entirely by the SDK's web
25
+ * transport (`useOxy().startWebOAuthSignIn`) and never uses this callback.
24
26
  */
25
27
 
26
- /**
27
- * Persist the OAuth CSRF `state` + PKCE `code_verifier` for the RP callback.
28
- * Returns `false` when the handshake could not be stored — no `sessionStorage`
29
- * (SSR / non-browser host) or a write that threw (`SecurityError` /
30
- * `QuotaExceededError`, e.g. Safari private mode) — so the caller aborts the
31
- * flow cleanly rather than redirect to a callback that cannot validate `state`.
32
- */
33
- function persistOAuthHandshakeForButton(state, codeVerifier) {
34
- return (0, _core.persistOAuthHandshake)(state, codeVerifier);
35
- }
36
28
  /**
37
29
  * A pre-styled button component for signing in with Oxy identity
38
30
  *
@@ -62,17 +54,22 @@ const OxySignInButton = ({
62
54
  onPress,
63
55
  style,
64
56
  textStyle,
65
- text = 'Sign in with Oxy',
57
+ text,
66
58
  disabled = false,
67
59
  showWhenAuthenticated = false,
68
60
  oauthRedirectUri,
69
61
  onOAuthResult
70
62
  }) => {
71
63
  const theme = (0, _theme.useTheme)();
64
+ const {
65
+ t
66
+ } = (0, _useI18n.useI18n)();
72
67
  const {
73
68
  openAccountDialog,
74
69
  oxyServices,
75
- clientId
70
+ clientId,
71
+ webAuthMode,
72
+ startWebOAuthSignIn
76
73
  } = (0, _OxyContext.useOxy)();
77
74
  const {
78
75
  isAuthenticated,
@@ -97,6 +94,11 @@ const OxySignInButton = ({
97
94
  // redirects, so block a second concurrent press from racing the sessionStorage
98
95
  // handshake against a different PKCE pair.
99
96
  const routingRef = (0, _react.useRef)(false);
97
+ // Popup mode only opens a window for applications that could actually need
98
+ // one: `oauthRedirectUri` is required for (and only for) third-party OAuth,
99
+ // so an official app never flashes a popup open and closed while its
100
+ // in-app dialog loads.
101
+ const shouldPreOpenPopup = _reactNative.Platform.OS === 'web' && webAuthMode === 'popup' && Boolean(oauthRedirectUri);
100
102
  const resolvePublicApplication = (0, _react.useCallback)(() => {
101
103
  if (!clientId) return null;
102
104
  const cached = appResolutionRef.current;
@@ -124,41 +126,57 @@ const OxySignInButton = ({
124
126
  openAccountDialog('signin');
125
127
  }, [openAccountDialog]);
126
128
 
127
- // Third-party surface: an OAuth 2.0 authorization-code + PKCE redirect to
129
+ // Third-party surface: an OAuth 2.0 authorization-code + PKCE flow against
128
130
  // auth.oxy.so. No FedCM, no SSO bounce, no Oxy session cookies.
129
- const startThirdPartyOAuth = (0, _react.useCallback)(async app => {
131
+ //
132
+ // Web delegates to the ONE shared transport (`startWebOAuthSignIn`), which
133
+ // owns popup-vs-redirect selection, the popup lifecycle, the code exchange,
134
+ // and the session commit. Native keeps its in-app auth session and hands the
135
+ // handshake to the RP, which owns that exchange.
136
+ const startThirdPartyOAuth = (0, _react.useCallback)(async (app, popup) => {
130
137
  if (!clientId) {
138
+ (0, _oauthPopup.closeOAuthPopup)(popup);
131
139
  startOfficialSignIn();
132
140
  return;
133
141
  }
134
142
  if (!oauthRedirectUri) {
135
- _core.logger.error('OxySignInButton: a third_party application requires the `oauthRedirectUri` prop to start the OAuth redirect; sign-in aborted', undefined, {
143
+ (0, _oauthPopup.closeOAuthPopup)(popup);
144
+ _core.logger.error('OxySignInButton: a third_party application requires the `oauthRedirectUri` prop to start the OAuth flow; sign-in aborted', undefined, {
136
145
  component: 'OxySignInButton',
137
146
  clientId,
138
147
  application: app.name
139
148
  });
140
149
  return;
141
150
  }
142
- const [pkce, state] = await Promise.all([(0, _core.generatePkcePair)(), (0, _core.generateOAuthState)()]);
143
- const authorizeUrl = (0, _core.buildOAuthAuthorizeUrl)({
144
- clientId,
145
- redirectUri: oauthRedirectUri,
146
- state,
147
- codeChallenge: pkce.codeChallenge
148
- });
149
151
  if (_reactNative.Platform.OS === 'web') {
150
- // Persist the handshake for the RP callback, then hand the
151
- // top-level document to the IdP. Without storage the callback
152
- // cannot validate `state`, so abort cleanly rather than redirect.
153
- if (!persistOAuthHandshakeForButton(state, pkce.codeVerifier)) {
154
- return;
152
+ const result = await startWebOAuthSignIn({
153
+ redirectUri: oauthRedirectUri,
154
+ // In popup mode the window was claimed during the press (see
155
+ // `handlePress`); `null` means the browser blocked it and the
156
+ // transport falls back to a redirect. `undefined` (redirect
157
+ // mode) lets the transport decide for itself.
158
+ ...(shouldPreOpenPopup ? {
159
+ popup
160
+ } : {})
161
+ });
162
+ if (result.status === 'failed') {
163
+ _core.logger.warn(`OxySignInButton: web sign-in failed (${result.reason})`, {
164
+ component: 'OxySignInButton',
165
+ application: app.name
166
+ }, result.description);
155
167
  }
156
- (0, _oauthNavigation.redirectToAuthorize)(authorizeUrl);
157
168
  return;
158
169
  }
159
170
 
160
171
  // Native: open the in-app auth session, then hand the handshake to the
161
172
  // RP so it can complete the token exchange from its deep-link callback.
173
+ const [pkce, state] = await Promise.all([(0, _core.generatePkcePair)(), (0, _core.generateOAuthState)()]);
174
+ const authorizeUrl = (0, _core.buildOAuthAuthorizeUrl)({
175
+ clientId,
176
+ redirectUri: oauthRedirectUri,
177
+ state,
178
+ codeChallenge: pkce.codeChallenge
179
+ });
162
180
  const {
163
181
  redirectUrl
164
182
  } = await (0, _oauthNavigation.openAuthorizeUrlNative)(authorizeUrl, oauthRedirectUri);
@@ -174,17 +192,23 @@ const OxySignInButton = ({
174
192
  component: 'OxySignInButton',
175
193
  application: app.name
176
194
  });
177
- }, [clientId, oauthRedirectUri, onOAuthResult, startOfficialSignIn]);
195
+ }, [clientId, oauthRedirectUri, onOAuthResult, startOfficialSignIn, startWebOAuthSignIn, shouldPreOpenPopup]);
178
196
 
179
- // Resolve the Application once, then route: third-party → OAuth redirect;
180
- // first-party / official / unresolved → the in-app dialog. Resolution failure
181
- // NEVER breaks an official app's sign-in — it falls back to the dialog.
182
- const routeSignIn = (0, _react.useCallback)(async () => {
183
- if (routingRef.current) return;
197
+ // Resolve the Application once, then route: third-party → OAuth; first-party
198
+ // / official / unresolved → the in-app dialog. Resolution failure NEVER
199
+ // breaks an official app's sign-in — it falls back to the dialog. Every path
200
+ // that does NOT reach the OAuth lane closes the pre-opened popup, so a
201
+ // mis-routed press can never leave an empty window on screen.
202
+ const routeSignIn = (0, _react.useCallback)(async popup => {
203
+ if (routingRef.current) {
204
+ (0, _oauthPopup.closeOAuthPopup)(popup);
205
+ return;
206
+ }
184
207
  routingRef.current = true;
185
208
  try {
186
209
  const resolving = resolvePublicApplication();
187
210
  if (!resolving) {
211
+ (0, _oauthPopup.closeOAuthPopup)(popup);
188
212
  startOfficialSignIn();
189
213
  return;
190
214
  }
@@ -192,6 +216,7 @@ const OxySignInButton = ({
192
216
  try {
193
217
  app = await resolving;
194
218
  } catch (error) {
219
+ (0, _oauthPopup.closeOAuthPopup)(popup);
195
220
  _core.logger.warn('OxySignInButton: could not resolve the application; opening the sign-in dialog', {
196
221
  component: 'OxySignInButton',
197
222
  clientId
@@ -200,9 +225,10 @@ const OxySignInButton = ({
200
225
  return;
201
226
  }
202
227
  if (app.type === 'third_party' && !app.isOfficial) {
203
- await startThirdPartyOAuth(app);
228
+ await startThirdPartyOAuth(app, popup);
204
229
  return;
205
230
  }
231
+ (0, _oauthPopup.closeOAuthPopup)(popup);
206
232
  startOfficialSignIn();
207
233
  } finally {
208
234
  routingRef.current = false;
@@ -210,13 +236,17 @@ const OxySignInButton = ({
210
236
  }, [resolvePublicApplication, startOfficialSignIn, startThirdPartyOAuth, clientId]);
211
237
 
212
238
  // Defer to a caller-supplied handler, otherwise route by application type.
239
+ //
240
+ // The popup is opened HERE, synchronously, before the async application
241
+ // resolve: `window.open` only survives while the click is still being
242
+ // handled, so a window opened after that first `await` is silently blocked.
213
243
  const handlePress = (0, _react.useCallback)(() => {
214
244
  if (onPress) {
215
245
  onPress();
216
246
  return;
217
247
  }
218
- void routeSignIn();
219
- }, [onPress, routeSignIn]);
248
+ void routeSignIn(shouldPreOpenPopup ? (0, _oauthPopup.openOAuthPopup)() : null);
249
+ }, [onPress, routeSignIn, shouldPreOpenPopup]);
220
250
 
221
251
  // Don't show the button if already authenticated (unless explicitly overridden)
222
252
  if (isAuthenticated && !showWhenAuthenticated) return null;
@@ -231,6 +261,10 @@ const OxySignInButton = ({
231
261
  const isContained = variant === 'contained';
232
262
  const logoColor = isContained ? '#ffffff' : theme.colors.primary;
233
263
  const logoLetterColor = isContained ? theme.colors.primary : '#ffffff';
264
+
265
+ // The relying party surfaces exactly ONE primary action, and it reads
266
+ // "Continue with Oxy" (issue #691). A caller-supplied `text` still wins.
267
+ const label = text ?? t('accountSwitcher.continueWithOxy');
234
268
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
235
269
  variant: buttonVariant,
236
270
  onPress: handlePress,
@@ -247,7 +281,7 @@ const OxySignInButton = ({
247
281
  marginRight: 10
248
282
  }
249
283
  }),
250
- children: isLoading || isModalOpen ? 'Signing in...' : text
284
+ children: isLoading || isModalOpen ? t('signin.status.signingIn') : label
251
285
  });
252
286
  };
253
287
  exports.OxySignInButton = OxySignInButton;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_core","_authStore","_shallow","_theme","_button","_OxyContext","_LogoIcon","_accountDialogManager","_oauthNavigation","_jsxRuntime","persistOAuthHandshakeForButton","state","codeVerifier","persistOAuthHandshake","OxySignInButton","variant","onPress","style","textStyle","text","disabled","showWhenAuthenticated","oauthRedirectUri","onOAuthResult","theme","useTheme","openAccountDialog","oxyServices","clientId","useOxy","isAuthenticated","isLoading","useAuthStore","useShallow","isModalOpen","setIsModalOpen","useState","useEffect","subscribeToAccountDialog","appResolutionRef","useRef","routingRef","resolvePublicApplication","useCallback","cached","current","promise","getPublicApplication","catch","error","startOfficialSignIn","startThirdPartyOAuth","app","logger","undefined","component","application","name","pkce","Promise","all","generatePkcePair","generateOAuthState","authorizeUrl","buildOAuthAuthorizeUrl","redirectUri","codeChallenge","Platform","OS","redirectToAuthorize","redirectUrl","openAuthorizeUrlNative","warn","routeSignIn","resolving","type","isOfficial","handlePress","isButtonDisabled","buttonVariant","isContained","logoColor","colors","primary","logoLetterColor","jsx","Button","fontWeight","icon","LogoIcon","height","color","letterColor","marginRight","children","exports","_default","default"],"sourceRoot":"../../../../src","sources":["ui/components/OxySignInButton.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_core","_authStore","_shallow","_theme","_button","_OxyContext","_useI18n","_LogoIcon","_accountDialogManager","_oauthNavigation","_oauthPopup","_jsxRuntime","OxySignInButton","variant","onPress","style","textStyle","text","disabled","showWhenAuthenticated","oauthRedirectUri","onOAuthResult","theme","useTheme","t","useI18n","openAccountDialog","oxyServices","clientId","webAuthMode","startWebOAuthSignIn","useOxy","isAuthenticated","isLoading","useAuthStore","useShallow","state","isModalOpen","setIsModalOpen","useState","useEffect","subscribeToAccountDialog","appResolutionRef","useRef","routingRef","shouldPreOpenPopup","Platform","OS","Boolean","resolvePublicApplication","useCallback","cached","current","promise","getPublicApplication","catch","error","startOfficialSignIn","startThirdPartyOAuth","app","popup","closeOAuthPopup","logger","undefined","component","application","name","result","redirectUri","status","warn","reason","description","pkce","Promise","all","generatePkcePair","generateOAuthState","authorizeUrl","buildOAuthAuthorizeUrl","codeChallenge","redirectUrl","openAuthorizeUrlNative","codeVerifier","routeSignIn","resolving","type","isOfficial","handlePress","openOAuthPopup","isButtonDisabled","buttonVariant","isContained","logoColor","colors","primary","logoLetterColor","label","jsx","Button","fontWeight","icon","LogoIcon","height","color","letterColor","marginRight","children","exports","_default","default"],"sourceRoot":"../../../../src","sources":["ui/components/OxySignInButton.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.OxySignInRequestSurface = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _button = require("@oxyhq/bloom/button");
9
+ var _theme = require("@oxyhq/bloom/theme");
10
+ var _typography = require("@oxyhq/bloom/typography");
11
+ var _useI18n = require("../hooks/useI18n.js");
12
+ var _TroubleDisclosure = _interopRequireDefault(require("./authChooser/TroubleDisclosure.js"));
13
+ var _primitives = require("./authChooser/primitives.js");
14
+ var _requestSurfaces = require("./authChooser/requestSurfaces.js");
15
+ var _signInProgress = require("./authChooser/signInProgress.js");
16
+ var _styles = require("./authChooser/styles.js");
17
+ var _jsxRuntime = require("react/jsx-runtime");
18
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
+ /**
20
+ * `OxySignInRequestSurface` — the in-flight "Sign in with Oxy" request, rendered
21
+ * from plain facts (issue #691, Phase 5).
22
+ *
23
+ * The user already performed their one action. From here the surface only
24
+ * REPORTS: the route-appropriate primary visual, the status line for the
25
+ * progress it was told about, and nothing else at the same weight. Alternatives
26
+ * stay behind "Having trouble?" until the chosen route could not be carried out,
27
+ * at which point they ARE the content and render plainly.
28
+ *
29
+ * PRESENTATIONAL AND HEADLESS-FRIENDLY. It owns no request, no controller, no
30
+ * polling, and no state of its own: everything it draws is a prop. That is what
31
+ * lets the two hosts of this surface share ONE implementation —
32
+ *
33
+ * - `OxyAuthChooser`'s `SignInRequestView`, driven by `AccountDialogController`'s
34
+ * device flow;
35
+ * - the auth.oxy.so IdP's OAuth-bound lane, whose request carries an OAuth
36
+ * binding the account dialog's session has no concept of.
37
+ *
38
+ * It resolves only what every `@oxyhq/services` consumer already has in context:
39
+ * the Bloom theme (`useTheme`) and the SDK's own locale dictionary (`useI18n`,
40
+ * the `accountSwitcher.*` copy in all 11 locales). Host-specific copy — the
41
+ * labels on {@link OxySignInRequestSurfaceProps.subordinate} and
42
+ * {@link OxySignInRequestSurfaceProps.alternatives} — arrives already localized.
43
+ *
44
+ * TWO THINGS IT DELIBERATELY DOES NOT DO:
45
+ * - it renders no failure REASON. A host surfaces that the way its own shell
46
+ * demands (the account dialog toasts it — errors never render inline there;
47
+ * a full page may show a banner around this surface). The surface only takes
48
+ * the fact that the request failed, and offers the way forward.
49
+ * - it derives nothing from {@link OxySignInRequestSurfaceProps.qrPayload}.
50
+ * Application identity, origin, and scopes are resolved server-side by the
51
+ * approver (Commons), never read out of a payload here — the plate encodes it
52
+ * and shows nothing about it.
53
+ *
54
+ * SECRETS: every prop is safe to render. There is no `sessionToken` (the secret
55
+ * claim/finalize credential), no bearer, and no authorization code — a host
56
+ * keeps those in its own controller, and no prop on this component invites one.
57
+ */
58
+
59
+ /** Shared empty list, so an omitted action bundle allocates nothing per render. */
60
+ const NO_ACTIONS = [];
61
+ const OxySignInRequestSurface = ({
62
+ route,
63
+ progress,
64
+ qrPayload = null,
65
+ routeFailed = false,
66
+ failed = false,
67
+ onRetry,
68
+ onAcquireCommons,
69
+ subordinate = NO_ACTIONS,
70
+ alternatives = NO_ACTIONS
71
+ }) => {
72
+ const theme = (0, _theme.useTheme)();
73
+ const {
74
+ t
75
+ } = (0, _useI18n.useI18n)();
76
+ const subordinateLinks = subordinate.map(action => /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.SubtleLink, {
77
+ label: action.label,
78
+ theme: theme,
79
+ onPress: action.onPress,
80
+ disabled: action.disabled,
81
+ testID: action.key
82
+ }, action.key));
83
+
84
+ // A failed request has no working primary route left. Its REASON is the host's
85
+ // to surface (toast / banner); all this owes the user is the way forward.
86
+ if (failed) {
87
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
88
+ style: _styles.authChooserStyles.centeredBlock,
89
+ children: [onRetry ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
90
+ variant: "primary",
91
+ onPress: onRetry,
92
+ style: _styles.authChooserStyles.primaryButton,
93
+ children: t('common.actions.tryAgain')
94
+ }) : null, subordinateLinks, /*#__PURE__*/(0, _jsxRuntime.jsx)(_TroubleDisclosure.default, {
95
+ actions: alternatives,
96
+ revealed: true,
97
+ theme: theme,
98
+ t: t
99
+ })]
100
+ });
101
+ }
102
+
103
+ // Commons is absent: acquiring it IS the primary route, not a fallback, so it
104
+ // renders as the one primary action and no route progress is reported (there is
105
+ // no route to report on until the host says otherwise).
106
+ if (onAcquireCommons) {
107
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
108
+ style: _styles.authChooserStyles.centeredBlock,
109
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_requestSurfaces.GetCommonsPrompt, {
110
+ theme: theme,
111
+ t: t,
112
+ onGetCommons: onAcquireCommons
113
+ }), subordinateLinks, /*#__PURE__*/(0, _jsxRuntime.jsx)(_TroubleDisclosure.default, {
114
+ actions: alternatives,
115
+ revealed: false,
116
+ theme: theme,
117
+ t: t
118
+ })]
119
+ });
120
+ }
121
+ const status = (0, _signInProgress.signInProgressLabel)(progress, route, t);
122
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
123
+ style: _styles.authChooserStyles.centeredBlock,
124
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_requestSurfaces.RequestPrimarySurface, {
125
+ route: route,
126
+ progress: progress,
127
+ qrPayload: qrPayload,
128
+ theme: theme,
129
+ t: t
130
+ }), status ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
131
+ style: [_styles.authChooserStyles.mutedText, {
132
+ color: theme.colors.textSecondary
133
+ }],
134
+ accessibilityLiveRegion: "polite",
135
+ testID: "signin-progress",
136
+ children: status
137
+ }) : null, subordinateLinks, /*#__PURE__*/(0, _jsxRuntime.jsx)(_TroubleDisclosure.default, {
138
+ actions: alternatives,
139
+ revealed: routeFailed,
140
+ theme: theme,
141
+ t: t
142
+ })]
143
+ });
144
+ };
145
+ exports.OxySignInRequestSurface = OxySignInRequestSurface;
146
+ var _default = exports.default = OxySignInRequestSurface;
147
+ //# sourceMappingURL=OxySignInRequestSurface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_button","_theme","_typography","_useI18n","_TroubleDisclosure","_interopRequireDefault","_primitives","_requestSurfaces","_signInProgress","_styles","_jsxRuntime","e","__esModule","default","NO_ACTIONS","OxySignInRequestSurface","route","progress","qrPayload","routeFailed","failed","onRetry","onAcquireCommons","subordinate","alternatives","theme","useTheme","t","useI18n","subordinateLinks","map","action","jsx","SubtleLink","label","onPress","disabled","testID","key","jsxs","View","style","styles","centeredBlock","children","Button","variant","primaryButton","actions","revealed","GetCommonsPrompt","onGetCommons","status","signInProgressLabel","RequestPrimarySurface","Text","mutedText","color","colors","textSecondary","accessibilityLiveRegion","exports","_default"],"sourceRoot":"../../../../src","sources":["ui/components/OxySignInRequestSurface.tsx"],"mappings":"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","ignoreList":[]}