@oxy.so/services 4.0.7 → 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.
Files changed (326) hide show
  1. package/README.md +1 -1
  2. package/lib/commonjs/assets/assets/signIn/slide-1.jpg +0 -0
  3. package/lib/commonjs/assets/assets/signIn/slide-1.jpg.d.ts +3 -0
  4. package/lib/commonjs/assets/assets/signIn/slide-2.jpg +0 -0
  5. package/lib/commonjs/assets/assets/signIn/slide-2.jpg.d.ts +3 -0
  6. package/lib/commonjs/assets/assets/signIn/slide-3.jpg +0 -0
  7. package/lib/commonjs/assets/assets/signIn/slide-3.jpg.d.ts +3 -0
  8. package/lib/commonjs/assets/assets/signIn/slide-4.jpg +0 -0
  9. package/lib/commonjs/assets/assets/signIn/slide-4.jpg.d.ts +3 -0
  10. package/lib/commonjs/assets/signIn/slide-1.jpg +0 -0
  11. package/lib/commonjs/assets/signIn/slide-2.jpg +0 -0
  12. package/lib/commonjs/assets/signIn/slide-3.jpg +0 -0
  13. package/lib/commonjs/assets/signIn/slide-4.jpg +0 -0
  14. package/lib/commonjs/index.js +45 -8
  15. package/lib/commonjs/index.js.map +1 -1
  16. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js +11 -58
  17. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js.map +1 -1
  18. package/lib/commonjs/ui/components/OxyAuthChooser.js +36 -44
  19. package/lib/commonjs/ui/components/OxyAuthChooser.js.map +1 -1
  20. package/lib/commonjs/ui/components/OxyProvider.js +0 -2
  21. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  22. package/lib/commonjs/ui/components/ProfileButton.js.map +1 -1
  23. package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js +29 -8
  24. package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js.map +1 -1
  25. package/lib/commonjs/ui/components/authChooser/primitives.js +7 -52
  26. package/lib/commonjs/ui/components/authChooser/primitives.js.map +1 -1
  27. package/lib/commonjs/ui/components/authChooser/signInFailureMessage.js +1 -7
  28. package/lib/commonjs/ui/components/authChooser/signInFailureMessage.js.map +1 -1
  29. package/lib/commonjs/ui/components/authChooser/styles.js +0 -31
  30. package/lib/commonjs/ui/components/authChooser/styles.js.map +1 -1
  31. package/lib/commonjs/ui/components/authChooser/types.js +2 -2
  32. package/lib/commonjs/ui/components/oauthNavigation.js +1 -1
  33. package/lib/commonjs/ui/components/signIn/InlineCommonsQr.js +161 -0
  34. package/lib/commonjs/ui/components/signIn/InlineCommonsQr.js.map +1 -0
  35. package/lib/commonjs/ui/components/signIn/OxyAccountPicker.js +111 -0
  36. package/lib/commonjs/ui/components/signIn/OxyAccountPicker.js.map +1 -0
  37. package/lib/commonjs/ui/components/signIn/OxyAuthScreen.js +160 -0
  38. package/lib/commonjs/ui/components/signIn/OxyAuthScreen.js.map +1 -0
  39. package/lib/commonjs/ui/components/signIn/OxySignInPanel.js +371 -0
  40. package/lib/commonjs/ui/components/signIn/OxySignInPanel.js.map +1 -0
  41. package/lib/commonjs/ui/components/signIn/OxySignUpPanel.js +78 -0
  42. package/lib/commonjs/ui/components/signIn/OxySignUpPanel.js.map +1 -0
  43. package/lib/commonjs/ui/components/signIn/artwork.js +21 -0
  44. package/lib/commonjs/ui/components/signIn/artwork.js.map +1 -0
  45. package/lib/commonjs/ui/components/signIn/passkeyError.js +46 -0
  46. package/lib/commonjs/ui/components/signIn/passkeyError.js.map +1 -0
  47. package/lib/commonjs/ui/components/signIn/signInMethods.js +46 -0
  48. package/lib/commonjs/ui/components/signIn/signInMethods.js.map +1 -0
  49. package/lib/commonjs/ui/context/OxyContext.js +16 -16
  50. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  51. package/lib/commonjs/ui/context/commitSessionFlow.js +0 -43
  52. package/lib/commonjs/ui/context/commitSessionFlow.js.map +1 -1
  53. package/lib/commonjs/ui/hooks/accountDialogSnapshot.js +15 -1
  54. package/lib/commonjs/ui/hooks/accountDialogSnapshot.js.map +1 -1
  55. package/lib/commonjs/ui/hooks/useDeviceSwitcher.js +1 -3
  56. package/lib/commonjs/ui/hooks/useDeviceSwitcher.js.map +1 -1
  57. package/lib/commonjs/ui/oauth/browserAuthTransport.js +11 -4
  58. package/lib/commonjs/ui/oauth/browserAuthTransport.js.map +1 -1
  59. package/lib/commonjs/ui/oauth/oauthHandshake.js +3 -0
  60. package/lib/commonjs/ui/oauth/oauthHandshake.js.map +1 -1
  61. package/lib/commonjs/ui/oauth/oauthPopup.js +2 -3
  62. package/lib/commonjs/ui/oauth/oauthPopup.js.map +1 -1
  63. package/lib/commonjs/ui/screens/ManageAccountScreen.js +2 -3
  64. package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
  65. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +1 -1
  66. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  67. package/lib/commonjs/ui/session/authStore.js +0 -21
  68. package/lib/commonjs/ui/session/authStore.js.map +1 -1
  69. package/lib/commonjs/ui/utils/accountDeletionHandoff.js +1 -1
  70. package/lib/commonjs/ui/utils/accountDeletionHandoff.js.map +1 -1
  71. package/lib/module/assets/assets/signIn/slide-1.jpg +0 -0
  72. package/lib/module/assets/assets/signIn/slide-1.jpg.d.ts +3 -0
  73. package/lib/module/assets/assets/signIn/slide-2.jpg +0 -0
  74. package/lib/module/assets/assets/signIn/slide-2.jpg.d.ts +3 -0
  75. package/lib/module/assets/assets/signIn/slide-3.jpg +0 -0
  76. package/lib/module/assets/assets/signIn/slide-3.jpg.d.ts +3 -0
  77. package/lib/module/assets/assets/signIn/slide-4.jpg +0 -0
  78. package/lib/module/assets/assets/signIn/slide-4.jpg.d.ts +3 -0
  79. package/lib/module/assets/signIn/slide-1.jpg +0 -0
  80. package/lib/module/assets/signIn/slide-2.jpg +0 -0
  81. package/lib/module/assets/signIn/slide-3.jpg +0 -0
  82. package/lib/module/assets/signIn/slide-4.jpg +0 -0
  83. package/lib/module/index.js +7 -6
  84. package/lib/module/index.js.map +1 -1
  85. package/lib/module/ui/components/OxyAccountDialogScreen.js +14 -59
  86. package/lib/module/ui/components/OxyAccountDialogScreen.js.map +1 -1
  87. package/lib/module/ui/components/OxyAuthChooser.js +37 -45
  88. package/lib/module/ui/components/OxyAuthChooser.js.map +1 -1
  89. package/lib/module/ui/components/OxyProvider.js +0 -2
  90. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  91. package/lib/module/ui/components/ProfileButton.js.map +1 -1
  92. package/lib/module/ui/components/authChooser/AccountsMenuView.js +21 -2
  93. package/lib/module/ui/components/authChooser/AccountsMenuView.js.map +1 -1
  94. package/lib/module/ui/components/authChooser/primitives.js +1 -44
  95. package/lib/module/ui/components/authChooser/primitives.js.map +1 -1
  96. package/lib/module/ui/components/authChooser/signInFailureMessage.js +1 -7
  97. package/lib/module/ui/components/authChooser/signInFailureMessage.js.map +1 -1
  98. package/lib/module/ui/components/authChooser/styles.js +0 -31
  99. package/lib/module/ui/components/authChooser/styles.js.map +1 -1
  100. package/lib/module/ui/components/authChooser/types.js +2 -2
  101. package/lib/module/ui/components/oauthNavigation.js +1 -1
  102. package/lib/module/ui/components/signIn/InlineCommonsQr.js +157 -0
  103. package/lib/module/ui/components/signIn/InlineCommonsQr.js.map +1 -0
  104. package/lib/module/ui/components/signIn/OxyAccountPicker.js +106 -0
  105. package/lib/module/ui/components/signIn/OxyAccountPicker.js.map +1 -0
  106. package/lib/module/ui/components/signIn/OxyAuthScreen.js +151 -0
  107. package/lib/module/ui/components/signIn/OxyAuthScreen.js.map +1 -0
  108. package/lib/module/ui/components/signIn/OxySignInPanel.js +366 -0
  109. package/lib/module/ui/components/signIn/OxySignInPanel.js.map +1 -0
  110. package/lib/module/ui/components/signIn/OxySignUpPanel.js +75 -0
  111. package/lib/module/ui/components/signIn/OxySignUpPanel.js.map +1 -0
  112. package/lib/module/ui/components/signIn/artwork.js +16 -0
  113. package/lib/module/ui/components/signIn/artwork.js.map +1 -0
  114. package/lib/module/ui/components/signIn/passkeyError.js +40 -0
  115. package/lib/module/ui/components/signIn/passkeyError.js.map +1 -0
  116. package/lib/module/ui/components/signIn/signInMethods.js +42 -0
  117. package/lib/module/ui/components/signIn/signInMethods.js.map +1 -0
  118. package/lib/module/ui/context/OxyContext.js +17 -17
  119. package/lib/module/ui/context/OxyContext.js.map +1 -1
  120. package/lib/module/ui/context/commitSessionFlow.js +0 -42
  121. package/lib/module/ui/context/commitSessionFlow.js.map +1 -1
  122. package/lib/module/ui/hooks/accountDialogSnapshot.js +14 -1
  123. package/lib/module/ui/hooks/accountDialogSnapshot.js.map +1 -1
  124. package/lib/module/ui/hooks/useDeviceSwitcher.js +3 -5
  125. package/lib/module/ui/hooks/useDeviceSwitcher.js.map +1 -1
  126. package/lib/module/ui/oauth/browserAuthTransport.js +11 -4
  127. package/lib/module/ui/oauth/browserAuthTransport.js.map +1 -1
  128. package/lib/module/ui/oauth/oauthHandshake.js +3 -0
  129. package/lib/module/ui/oauth/oauthHandshake.js.map +1 -1
  130. package/lib/module/ui/oauth/oauthPopup.js +2 -3
  131. package/lib/module/ui/oauth/oauthPopup.js.map +1 -1
  132. package/lib/module/ui/screens/ManageAccountScreen.js +3 -4
  133. package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
  134. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +1 -1
  135. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  136. package/lib/module/ui/session/authStore.js +1 -22
  137. package/lib/module/ui/session/authStore.js.map +1 -1
  138. package/lib/module/ui/utils/accountDeletionHandoff.js +2 -2
  139. package/lib/module/ui/utils/accountDeletionHandoff.js.map +1 -1
  140. package/lib/typescript/assets/signIn/slide-1.jpg.d.ts +3 -0
  141. package/lib/typescript/assets/signIn/slide-2.jpg.d.ts +3 -0
  142. package/lib/typescript/assets/signIn/slide-3.jpg.d.ts +3 -0
  143. package/lib/typescript/assets/signIn/slide-4.jpg.d.ts +3 -0
  144. package/lib/typescript/commonjs/index.d.ts +8 -2
  145. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  146. package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
  147. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts +5 -12
  148. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts.map +1 -1
  149. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  150. package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts +1 -1
  151. package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts.map +1 -1
  152. package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -1
  153. package/lib/typescript/commonjs/ui/components/authChooser/primitives.d.ts +0 -19
  154. package/lib/typescript/commonjs/ui/components/authChooser/primitives.d.ts.map +1 -1
  155. package/lib/typescript/commonjs/ui/components/authChooser/signInFailureMessage.d.ts +1 -5
  156. package/lib/typescript/commonjs/ui/components/authChooser/signInFailureMessage.d.ts.map +1 -1
  157. package/lib/typescript/commonjs/ui/components/authChooser/styles.d.ts +0 -31
  158. package/lib/typescript/commonjs/ui/components/authChooser/styles.d.ts.map +1 -1
  159. package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts +3 -3
  160. package/lib/typescript/commonjs/ui/components/oauthNavigation.d.ts +1 -1
  161. package/lib/typescript/commonjs/ui/components/signIn/InlineCommonsQr.d.ts +20 -0
  162. package/lib/typescript/commonjs/ui/components/signIn/InlineCommonsQr.d.ts.map +1 -0
  163. package/lib/typescript/commonjs/ui/components/signIn/OxyAccountPicker.d.ts +34 -0
  164. package/lib/typescript/commonjs/ui/components/signIn/OxyAccountPicker.d.ts.map +1 -0
  165. package/lib/typescript/commonjs/ui/components/signIn/OxyAuthScreen.d.ts +43 -0
  166. package/lib/typescript/commonjs/ui/components/signIn/OxyAuthScreen.d.ts.map +1 -0
  167. package/lib/typescript/commonjs/ui/components/signIn/OxySignInPanel.d.ts +43 -0
  168. package/lib/typescript/commonjs/ui/components/signIn/OxySignInPanel.d.ts.map +1 -0
  169. package/lib/typescript/commonjs/ui/components/signIn/OxySignUpPanel.d.ts +17 -0
  170. package/lib/typescript/commonjs/ui/components/signIn/OxySignUpPanel.d.ts.map +1 -0
  171. package/lib/typescript/commonjs/ui/components/signIn/artwork.d.ts +8 -0
  172. package/lib/typescript/commonjs/ui/components/signIn/artwork.d.ts.map +1 -0
  173. package/lib/typescript/commonjs/ui/components/signIn/passkeyError.d.ts +16 -0
  174. package/lib/typescript/commonjs/ui/components/signIn/passkeyError.d.ts.map +1 -0
  175. package/lib/typescript/commonjs/ui/components/signIn/signInMethods.d.ts +39 -0
  176. package/lib/typescript/commonjs/ui/components/signIn/signInMethods.d.ts.map +1 -0
  177. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  178. package/lib/typescript/commonjs/ui/context/commitSessionFlow.d.ts +0 -40
  179. package/lib/typescript/commonjs/ui/context/commitSessionFlow.d.ts.map +1 -1
  180. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts +8 -9
  181. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts.map +1 -1
  182. package/lib/typescript/commonjs/ui/hooks/accountDialogSnapshot.d.ts +7 -1
  183. package/lib/typescript/commonjs/ui/hooks/accountDialogSnapshot.d.ts.map +1 -1
  184. package/lib/typescript/commonjs/ui/hooks/useDeviceSwitcher.d.ts.map +1 -1
  185. package/lib/typescript/commonjs/ui/oauth/browserAuthTransport.d.ts +9 -0
  186. package/lib/typescript/commonjs/ui/oauth/browserAuthTransport.d.ts.map +1 -1
  187. package/lib/typescript/commonjs/ui/oauth/oauthHandshake.d.ts +3 -0
  188. package/lib/typescript/commonjs/ui/oauth/oauthHandshake.d.ts.map +1 -1
  189. package/lib/typescript/commonjs/ui/oauth/oauthPopup.d.ts +2 -3
  190. package/lib/typescript/commonjs/ui/oauth/oauthPopup.d.ts.map +1 -1
  191. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  192. package/lib/typescript/commonjs/ui/session/authStore.d.ts +0 -30
  193. package/lib/typescript/commonjs/ui/session/authStore.d.ts.map +1 -1
  194. package/lib/typescript/commonjs/ui/types/navigation.d.ts +0 -26
  195. package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
  196. package/lib/typescript/module/index.d.ts +8 -2
  197. package/lib/typescript/module/index.d.ts.map +1 -1
  198. package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
  199. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts +5 -12
  200. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts.map +1 -1
  201. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  202. package/lib/typescript/module/ui/components/ProfileButton.d.ts +1 -1
  203. package/lib/typescript/module/ui/components/ProfileButton.d.ts.map +1 -1
  204. package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -1
  205. package/lib/typescript/module/ui/components/authChooser/primitives.d.ts +0 -19
  206. package/lib/typescript/module/ui/components/authChooser/primitives.d.ts.map +1 -1
  207. package/lib/typescript/module/ui/components/authChooser/signInFailureMessage.d.ts +1 -5
  208. package/lib/typescript/module/ui/components/authChooser/signInFailureMessage.d.ts.map +1 -1
  209. package/lib/typescript/module/ui/components/authChooser/styles.d.ts +0 -31
  210. package/lib/typescript/module/ui/components/authChooser/styles.d.ts.map +1 -1
  211. package/lib/typescript/module/ui/components/authChooser/types.d.ts +3 -3
  212. package/lib/typescript/module/ui/components/oauthNavigation.d.ts +1 -1
  213. package/lib/typescript/module/ui/components/signIn/InlineCommonsQr.d.ts +20 -0
  214. package/lib/typescript/module/ui/components/signIn/InlineCommonsQr.d.ts.map +1 -0
  215. package/lib/typescript/module/ui/components/signIn/OxyAccountPicker.d.ts +34 -0
  216. package/lib/typescript/module/ui/components/signIn/OxyAccountPicker.d.ts.map +1 -0
  217. package/lib/typescript/module/ui/components/signIn/OxyAuthScreen.d.ts +43 -0
  218. package/lib/typescript/module/ui/components/signIn/OxyAuthScreen.d.ts.map +1 -0
  219. package/lib/typescript/module/ui/components/signIn/OxySignInPanel.d.ts +43 -0
  220. package/lib/typescript/module/ui/components/signIn/OxySignInPanel.d.ts.map +1 -0
  221. package/lib/typescript/module/ui/components/signIn/OxySignUpPanel.d.ts +17 -0
  222. package/lib/typescript/module/ui/components/signIn/OxySignUpPanel.d.ts.map +1 -0
  223. package/lib/typescript/module/ui/components/signIn/artwork.d.ts +8 -0
  224. package/lib/typescript/module/ui/components/signIn/artwork.d.ts.map +1 -0
  225. package/lib/typescript/module/ui/components/signIn/passkeyError.d.ts +16 -0
  226. package/lib/typescript/module/ui/components/signIn/passkeyError.d.ts.map +1 -0
  227. package/lib/typescript/module/ui/components/signIn/signInMethods.d.ts +39 -0
  228. package/lib/typescript/module/ui/components/signIn/signInMethods.d.ts.map +1 -0
  229. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  230. package/lib/typescript/module/ui/context/commitSessionFlow.d.ts +0 -40
  231. package/lib/typescript/module/ui/context/commitSessionFlow.d.ts.map +1 -1
  232. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts +8 -9
  233. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts.map +1 -1
  234. package/lib/typescript/module/ui/hooks/accountDialogSnapshot.d.ts +7 -1
  235. package/lib/typescript/module/ui/hooks/accountDialogSnapshot.d.ts.map +1 -1
  236. package/lib/typescript/module/ui/hooks/useDeviceSwitcher.d.ts.map +1 -1
  237. package/lib/typescript/module/ui/oauth/browserAuthTransport.d.ts +9 -0
  238. package/lib/typescript/module/ui/oauth/browserAuthTransport.d.ts.map +1 -1
  239. package/lib/typescript/module/ui/oauth/oauthHandshake.d.ts +3 -0
  240. package/lib/typescript/module/ui/oauth/oauthHandshake.d.ts.map +1 -1
  241. package/lib/typescript/module/ui/oauth/oauthPopup.d.ts +2 -3
  242. package/lib/typescript/module/ui/oauth/oauthPopup.d.ts.map +1 -1
  243. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  244. package/lib/typescript/module/ui/session/authStore.d.ts +0 -30
  245. package/lib/typescript/module/ui/session/authStore.d.ts.map +1 -1
  246. package/lib/typescript/module/ui/types/navigation.d.ts +0 -26
  247. package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
  248. package/package.json +4 -7
  249. package/src/assets/signIn/slide-1.jpg +0 -0
  250. package/src/assets/signIn/slide-1.jpg.d.ts +3 -0
  251. package/src/assets/signIn/slide-2.jpg +0 -0
  252. package/src/assets/signIn/slide-2.jpg.d.ts +3 -0
  253. package/src/assets/signIn/slide-3.jpg +0 -0
  254. package/src/assets/signIn/slide-3.jpg.d.ts +3 -0
  255. package/src/assets/signIn/slide-4.jpg +0 -0
  256. package/src/assets/signIn/slide-4.jpg.d.ts +3 -0
  257. package/src/index.ts +16 -7
  258. package/src/ui/components/OxyAccountDialogScreen.tsx +11 -72
  259. package/src/ui/components/OxyAuthChooser.tsx +37 -53
  260. package/src/ui/components/OxyProvider.tsx +0 -2
  261. package/src/ui/components/ProfileButton.tsx +1 -4
  262. package/src/ui/components/authChooser/AccountsMenuView.tsx +28 -1
  263. package/src/ui/components/authChooser/primitives.tsx +1 -39
  264. package/src/ui/components/authChooser/signInFailureMessage.ts +1 -7
  265. package/src/ui/components/authChooser/styles.ts +0 -31
  266. package/src/ui/components/authChooser/types.ts +3 -3
  267. package/src/ui/components/oauthNavigation.ts +1 -1
  268. package/src/ui/components/signIn/InlineCommonsQr.tsx +135 -0
  269. package/src/ui/components/signIn/OxyAccountPicker.tsx +129 -0
  270. package/src/ui/components/signIn/OxyAuthScreen.tsx +123 -0
  271. package/src/ui/components/signIn/OxySignInPanel.tsx +392 -0
  272. package/src/ui/components/signIn/OxySignUpPanel.tsx +86 -0
  273. package/src/ui/components/signIn/artwork.ts +13 -0
  274. package/src/ui/components/signIn/passkeyError.ts +44 -0
  275. package/src/ui/components/signIn/signInMethods.ts +51 -0
  276. package/src/ui/context/OxyContext.tsx +21 -18
  277. package/src/ui/context/__tests__/commitSessionFlow.test.ts +0 -89
  278. package/src/ui/context/commitSessionFlow.ts +0 -61
  279. package/src/ui/context/oxyContextTypes.ts +9 -9
  280. package/src/ui/hooks/accountDialogSnapshot.ts +20 -1
  281. package/src/ui/hooks/useDeviceSwitcher.ts +3 -11
  282. package/src/ui/oauth/__tests__/browserAuthTransport.test.ts +21 -0
  283. package/src/ui/oauth/browserAuthTransport.ts +14 -4
  284. package/src/ui/oauth/oauthHandshake.ts +4 -1
  285. package/src/ui/oauth/oauthPopup.ts +2 -3
  286. package/src/ui/screens/ManageAccountScreen.tsx +3 -4
  287. package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +1 -1
  288. package/src/ui/session/authStore.ts +0 -37
  289. package/src/ui/types/navigation.ts +0 -26
  290. package/src/ui/utils/accountDeletionHandoff.ts +2 -2
  291. package/lib/commonjs/ui/components/authChooser/SignInEntryView.js +0 -132
  292. package/lib/commonjs/ui/components/authChooser/SignInEntryView.js.map +0 -1
  293. package/lib/commonjs/ui/components/authChooser/SignUpView.js +0 -77
  294. package/lib/commonjs/ui/components/authChooser/SignUpView.js.map +0 -1
  295. package/lib/commonjs/ui/components/passkeyHubPopup.js +0 -33
  296. package/lib/commonjs/ui/components/passkeyHubPopup.js.map +0 -1
  297. package/lib/commonjs/ui/oauth/legacyRedirectLanes.js +0 -48
  298. package/lib/commonjs/ui/oauth/legacyRedirectLanes.js.map +0 -1
  299. package/lib/module/ui/components/authChooser/SignInEntryView.js +0 -127
  300. package/lib/module/ui/components/authChooser/SignInEntryView.js.map +0 -1
  301. package/lib/module/ui/components/authChooser/SignUpView.js +0 -73
  302. package/lib/module/ui/components/authChooser/SignUpView.js.map +0 -1
  303. package/lib/module/ui/components/passkeyHubPopup.js +0 -29
  304. package/lib/module/ui/components/passkeyHubPopup.js.map +0 -1
  305. package/lib/module/ui/oauth/legacyRedirectLanes.js +0 -44
  306. package/lib/module/ui/oauth/legacyRedirectLanes.js.map +0 -1
  307. package/lib/typescript/commonjs/ui/components/authChooser/SignInEntryView.d.ts +0 -39
  308. package/lib/typescript/commonjs/ui/components/authChooser/SignInEntryView.d.ts.map +0 -1
  309. package/lib/typescript/commonjs/ui/components/authChooser/SignUpView.d.ts +0 -31
  310. package/lib/typescript/commonjs/ui/components/authChooser/SignUpView.d.ts.map +0 -1
  311. package/lib/typescript/commonjs/ui/components/passkeyHubPopup.d.ts +0 -23
  312. package/lib/typescript/commonjs/ui/components/passkeyHubPopup.d.ts.map +0 -1
  313. package/lib/typescript/commonjs/ui/oauth/legacyRedirectLanes.d.ts +0 -40
  314. package/lib/typescript/commonjs/ui/oauth/legacyRedirectLanes.d.ts.map +0 -1
  315. package/lib/typescript/module/ui/components/authChooser/SignInEntryView.d.ts +0 -39
  316. package/lib/typescript/module/ui/components/authChooser/SignInEntryView.d.ts.map +0 -1
  317. package/lib/typescript/module/ui/components/authChooser/SignUpView.d.ts +0 -31
  318. package/lib/typescript/module/ui/components/authChooser/SignUpView.d.ts.map +0 -1
  319. package/lib/typescript/module/ui/components/passkeyHubPopup.d.ts +0 -23
  320. package/lib/typescript/module/ui/components/passkeyHubPopup.d.ts.map +0 -1
  321. package/lib/typescript/module/ui/oauth/legacyRedirectLanes.d.ts +0 -40
  322. package/lib/typescript/module/ui/oauth/legacyRedirectLanes.d.ts.map +0 -1
  323. package/src/ui/components/authChooser/SignInEntryView.tsx +0 -157
  324. package/src/ui/components/authChooser/SignUpView.tsx +0 -76
  325. package/src/ui/components/passkeyHubPopup.ts +0 -28
  326. package/src/ui/oauth/legacyRedirectLanes.ts +0 -43
@@ -1,5 +1,5 @@
1
1
  import type { ReactNode } from 'react';
2
- import type { OxyServices, User, SessionLoginResponse, AccountNode, CreateAccountInput, ClientSession, AccountDialogController, AccountDialogView, ApiError, SessionClient, SessionMode } from '@oxy.so/core';
2
+ import type { OxyServices, User, SessionLoginResponse, AccountNode, CreateAccountInput, ClientSession, AccountDialogController, AccountDialogView, ApiError, SessionClient, SessionMode, OxyAuthScreen } from '@oxy.so/core';
3
3
  import type { UseFollowHook } from '../hooks/useFollow.types.js';
4
4
  import type { useLanguageManagement } from '../hooks/useLanguageManagement.js';
5
5
  import type { RouteName } from '../navigation/routes.js';
@@ -118,6 +118,13 @@ export interface OxyContextState {
118
118
  * resolve to `{ status: 'unsupported' }`.
119
119
  */
120
120
  startWebOAuthSignIn: (options: StartWebOAuthSignInOptions) => Promise<WebOAuthSignInResult>;
121
+ /**
122
+ * Sign in (`signin`), create an account (`signup`) or recover one
123
+ * (`recover`) in auth.oxy.so's window over the app, where the browser's
124
+ * shared Oxy session lives. Web only; call it from the press, so the window
125
+ * opens with the gesture.
126
+ */
127
+ continueOnAuth: (screen: OxyAuthScreen) => Promise<WebOAuthSignInResult>;
121
128
  /**
122
129
  * Ask the already-authenticated user for explicit OAuth consent to exact
123
130
  * application scopes. Must be called from a user gesture. Works on web and
@@ -210,14 +217,6 @@ export interface OxyRuntimeProviderProps {
210
217
  * @default false
211
218
  */
212
219
  backgroundSession?: boolean;
213
- /**
214
- * Whether this origin/app persists the durable device credential at all. See
215
- * `OxyProviderProps.deviceCredentialStorage` for the full rule and the one
216
- * caller of `'ephemeral'`.
217
- *
218
- * @default 'persistent'
219
- */
220
- deviceCredentialStorage?: 'persistent' | 'ephemeral';
221
220
  onAuthStateChange?: (user: User | null) => void;
222
221
  onError?: (error: ApiError) => void;
223
222
  /** Storage instance owned by the public provider; internal composition seam. */
@@ -1 +1 @@
1
- {"version":3,"file":"oxyContextTypes.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/oxyContextTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oxyContextTypes.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/oxyContextTypes.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { AccountDialogSnapshot } from '@oxy.so/core';
1
+ import type { AccountDialogController, AccountDialogSnapshot } from '@oxy.so/core';
2
2
  /**
3
3
  * The snapshot `useSyncExternalStore` reads before a controller exists.
4
4
  *
@@ -12,4 +12,10 @@ import type { AccountDialogSnapshot } from '@oxy.so/core';
12
12
  * compiler point at one place.
13
13
  */
14
14
  export declare const EMPTY_ACCOUNT_DIALOG_SNAPSHOT: AccountDialogSnapshot;
15
+ /**
16
+ * Bind a surface to `controller`'s snapshot (the inert one while there is no
17
+ * controller). `getSnapshot` returns a stable reference between changes, so
18
+ * it is `useSyncExternalStore`-safe.
19
+ */
20
+ export declare function useAccountDialogSnapshot(controller: AccountDialogController | null): AccountDialogSnapshot;
15
21
  //# sourceMappingURL=accountDialogSnapshot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"accountDialogSnapshot.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/accountDialogSnapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,6BAA6B,EAAE,qBA0B3C,CAAC"}
1
+ {"version":3,"file":"accountDialogSnapshot.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/accountDialogSnapshot.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAEnF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,6BAA6B,EAAE,qBA2B3C,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,uBAAuB,GAAG,IAAI,GAAG,qBAAqB,CAU1G"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDeviceSwitcher.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useDeviceSwitcher.ts"],"names":[],"mappings":"AACA,OAAO,EAGH,KAAK,aAAa,EAClB,KAAK,oBAAoB,EAC5B,MAAM,cAAc,CAAC;AAKtB,MAAM,WAAW,uBAAuB;IACpC;;;;;;;OAOG;IACH,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,gEAAgE;IAChE,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,wEAAwE;IACxE,SAAS,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,iEAAiE;IACjE,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,qEAAqE;IACrE,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC;;;;OAIG;IACH,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzD,+EAA+E;IAC/E,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,uEAAuE;IACvE,gBAAgB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,IAAI,uBAAuB,CAmD3D"}
1
+ {"version":3,"file":"useDeviceSwitcher.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useDeviceSwitcher.ts"],"names":[],"mappings":"AACA,OAAO,EAGH,KAAK,aAAa,EAClB,KAAK,oBAAoB,EAC5B,MAAM,cAAc,CAAC;AAKtB,MAAM,WAAW,uBAAuB;IACpC;;;;;;;OAOG;IACH,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,gEAAgE;IAChE,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,wEAAwE;IACxE,SAAS,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,iEAAiE;IACjE,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,qEAAqE;IACrE,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC;;;;OAIG;IACH,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzD,+EAA+E;IAC/E,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,uEAAuE;IACvE,gBAAgB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,IAAI,uBAAuB,CA2C3D"}
@@ -13,6 +13,7 @@
13
13
  * Native is NOT handled here: `openAuthorizeUrlNative` (an in-app auth session)
14
14
  * remains the native lane and is untouched by this module.
15
15
  */
16
+ import { type OxyAuthScreen } from '@oxy.so/core';
16
17
  import type { OxyServices } from '@oxy.so/core';
17
18
  import type { OAuthPopupHandle, OAuthSessionCommitInput, WebAuthMode, WebOAuthSignInResult } from './types.js';
18
19
  /** Provider-owned wiring for a web sign-in — everything that is not per-press. */
@@ -49,6 +50,14 @@ export interface StartWebOAuthSignInOptions {
49
50
  popup?: OAuthPopupHandle | null;
50
51
  /** Requested scope; defaults to the SDK's standard sign-in scope. */
51
52
  scope?: string;
53
+ /**
54
+ * The transport for this press, whatever the provider's `webAuthMode`. An
55
+ * Oxy app's own account dialog asks for `popup`: auth.oxy.so's window over
56
+ * the app, where the browser's shared session lives.
57
+ */
58
+ transport?: WebAuthMode;
59
+ /** The IdP screen a person with no session there lands on. */
60
+ screen?: OxyAuthScreen;
52
61
  /** Popup timeout override (ms). */
53
62
  timeoutMs?: number;
54
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"browserAuthTransport.d.ts","sourceRoot":"","sources":["../../../../../src/ui/oauth/browserAuthTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAMhD,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,EACvB,WAAW,EAEX,oBAAoB,EACrB,MAAM,YAAS,CAAC;AAEjB,kFAAkF;AAClF,MAAM,WAAW,wBAAwB;IACvC,oCAAoC;IACpC,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC;IACzB,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8EAA8E;IAC9E,aAAa,EAAE,OAAO,CAAC;IACvB,4CAA4C;IAC5C,aAAa,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE;AAED,wDAAwD;AACxD,MAAM,WAAW,0BAA0B;IACzC,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAChC,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,wBAAwB,EACjC,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,oBAAoB,CAAC,CAsF/B"}
1
+ {"version":3,"file":"browserAuthTransport.d.ts","sourceRoot":"","sources":["../../../../../src/ui/oauth/browserAuthTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAiC,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAMhD,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,EACvB,WAAW,EAEX,oBAAoB,EACrB,MAAM,YAAS,CAAC;AAEjB,kFAAkF;AAClF,MAAM,WAAW,wBAAwB;IACvC,oCAAoC;IACpC,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC;IACzB,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8EAA8E;IAC9E,aAAa,EAAE,OAAO,CAAC;IACvB,4CAA4C;IAC5C,aAAa,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE;AAED,wDAAwD;AACxD,MAAM,WAAW,0BAA0B;IACzC,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAChC,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,wBAAwB,EACjC,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,oBAAoB,CAAC,CAuF/B"}
@@ -8,6 +8,7 @@
8
8
  * else — `S256` PKCE, exact registered `redirect_uri`, random `state` — is
9
9
  * identical, which is what lets both lanes converge on one completion path.
10
10
  */
11
+ import { type OxyAuthScreen } from '@oxy.so/core';
11
12
  import type { OAuthHandshake } from './types.js';
12
13
  /** Inputs for {@link prepareAuthorizeRequest}. */
13
14
  export interface PrepareAuthorizeRequestParams {
@@ -25,6 +26,8 @@ export interface PrepareAuthorizeRequestParams {
25
26
  * not a guarantee — an IdP with no opener still redirects.
26
27
  */
27
28
  responseMode?: 'web_message';
29
+ /** The IdP screen a person with no session there lands on. */
30
+ screen?: OxyAuthScreen;
28
31
  }
29
32
  /** A ready-to-use authorize request plus the secrets that finish it. */
30
33
  export interface PreparedAuthorizeRequest {
@@ -1 +1 @@
1
- {"version":3,"file":"oauthHandshake.d.ts","sourceRoot":"","sources":["../../../../../src/ui/oauth/oauthHandshake.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAS,CAAC;AAE9C,kDAAkD;AAClD,MAAM,WAAW,6BAA6B;IAC5C,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B;AAED,wEAAwE;AACxE,MAAM,WAAW,wBAAwB;IACvC,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,SAAS,EAAE,cAAc,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,6BAA6B,GACpC,OAAO,CAAC,wBAAwB,CAAC,CAkBnC"}
1
+ {"version":3,"file":"oauthHandshake.d.ts","sourceRoot":"","sources":["../../../../../src/ui/oauth/oauthHandshake.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAgE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAChH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAS,CAAC;AAE9C,kDAAkD;AAClD,MAAM,WAAW,6BAA6B;IAC5C,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,8DAA8D;IAC9D,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,wEAAwE;AACxE,MAAM,WAAW,wBAAwB;IACvC,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,SAAS,EAAE,cAAc,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,6BAA6B,GACpC,OAAO,CAAC,wBAAwB,CAAC,CAmBnC"}
@@ -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
- * the same shape as `passkeyHubPopup.ts`.
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 (as in core's
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
  */
@@ -1 +1 @@
1
- {"version":3,"file":"oauthPopup.d.ts","sourceRoot":"","sources":["../../../../../src/ui/oauth/oauthPopup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAS,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,2BAA2B,cAAc,CAAC;AAKvD;;;;;;;;GAQG;AACH,eAAO,MAAM,8BAA8B,SAAU,CAAC;AAkCtD;;;;;;;GAOG;AACH,wBAAgB,cAAc,IAAI,gBAAgB,GAAG,IAAI,CASxD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAQhF;AAED,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAOpE;AA2CD,gDAAgD;AAChD,MAAM,WAAW,sBAAsB;IACrC,qEAAqE;IACrE,KAAK,EAAE,gBAAgB,CAAC;IACxB,4EAA4E;IAC5E,cAAc,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,iBAAiB,CAAC,CAmF5B"}
1
+ {"version":3,"file":"oauthPopup.d.ts","sourceRoot":"","sources":["../../../../../src/ui/oauth/oauthPopup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAS,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,2BAA2B,cAAc,CAAC;AAKvD;;;;;;;;GAQG;AACH,eAAO,MAAM,8BAA8B,SAAU,CAAC;AAkCtD;;;;;;;GAOG;AACH,wBAAgB,cAAc,IAAI,gBAAgB,GAAG,IAAI,CASxD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAQhF;AAED,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAOpE;AA2CD,gDAAgD;AAChD,MAAM,WAAW,sBAAsB;IACrC,qEAAqE;IACrE,KAAK,EAAE,gBAAgB,CAAC;IACxB,4EAA4E;IAC5E,cAAc,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,iBAAiB,CAAC,CAmF5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"ManageAccountScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/ManageAccountScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAwB/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAqB,CAAC;AAgD3D;;;;;;;GAOG;AACH,QAAA,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAw2BlD,CAAC;AAYF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"ManageAccountScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/ManageAccountScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAwB/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAqB,CAAC;AAgD3D;;;;;;;GAOG;AACH,QAAA,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAu2BlD,CAAC;AAYF,eAAe,mBAAmB,CAAC"}
@@ -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
@@ -35,20 +34,6 @@ export interface PlatformAuthStateStoreOptions {
35
34
  * a decision a storage seam gets to make.
36
35
  */
37
36
  sessionMode?: SessionMode;
38
- /**
39
- * Whether this origin/app may persist a durable device credential AT ALL.
40
- *
41
- * `'ephemeral'` stores nothing durable and mirrors nothing: the session lives
42
- * in memory for the lifetime of the page and is gone on reload. Its one caller
43
- * is `auth.oxy.so` with the browser hub enabled (issue #937 Phase 5, ADR 0003),
44
- * where the durable credential for the browser profile is the server-side
45
- * DeviceSession behind the `__Host-oxy-device` handle.
46
- *
47
- * See `OxyProviderProps.deviceCredentialStorage` for why the answer to "let the
48
- * hub be authoritative" is to stop persisting the other credential rather than
49
- * to consult it second.
50
- */
51
- storage?: 'persistent' | 'ephemeral';
52
37
  }
53
38
  /**
54
39
  * Build the platform {@link AuthStateStore} for this runtime.
@@ -56,21 +41,6 @@ export interface PlatformAuthStateStoreOptions {
56
41
  * Native persists the SESSION blob (`deviceId` + `deviceSecret` + cached access
57
42
  * token) per-app in SecureStore; the SDK re-mints the access token from the
58
43
  * device credential on the next cold boot.
59
- *
60
- * ## The ephemeral check is FIRST, and the order is load-bearing
61
- *
62
- * It short-circuits above the `isReactNative()` branch so an ephemeral caller can
63
- * never reach the native path — and therefore can never reach the shared-slot
64
- * mirroring wrapper. Checked after that branch instead, an origin that has
65
- * declined to persist a credential would publish one into the device-wide slot
66
- * every sibling app adopts on cold boot: it would keep nothing itself while
67
- * deciding which session five other apps boot into.
68
- *
69
- * That is unreachable today because the only ephemeral caller is a web origin, so
70
- * `isReactNative()` is false there anyway. Unreachable today is exactly the kind
71
- * of guarantee that stops holding when someone adds the second caller, so it is
72
- * structural here rather than incidental, and
73
- * `__tests__/session/authStoreEphemeral.test.ts` holds the ordering directly.
74
44
  */
75
45
  export declare function createPlatformAuthStateStore(options?: PlatformAuthStateStoreOptions): AuthStateStore;
76
46
  //# sourceMappingURL=authStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"authStore.d.ts","sourceRoot":"","sources":["../../../../../src/ui/session/authStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAKL,KAAK,cAAc,EACnB,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AAKtB,MAAM,WAAW,6BAA6B;IAC5C;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE,6BAAkC,GAC1C,cAAc,CAiBhB"}
1
+ {"version":3,"file":"authStore.d.ts","sourceRoot":"","sources":["../../../../../src/ui/session/authStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AAKtB,MAAM,WAAW,6BAA6B;IAC5C;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE,6BAAkC,GAC1C,cAAc,CAWhB"}
@@ -126,32 +126,6 @@ export interface OxyProviderProps {
126
126
  * @default false
127
127
  */
128
128
  backgroundSession?: boolean;
129
- /**
130
- * Whether this origin/app may persist the durable device credential
131
- * (`deviceId` + `deviceSecret`) at all.
132
- *
133
- * `'persistent'` (the default, and every app's behaviour) stores it — web
134
- * localStorage per origin, SecureStore per app on native — so the SDK can
135
- * re-mint an access token on the next cold boot.
136
- *
137
- * `'ephemeral'` stores NOTHING durable: the session lives in memory for the
138
- * lifetime of the page and is gone on reload. It exists for ONE caller,
139
- * `auth.oxy.so` with the browser hub enabled (issue #937 Phase 5, ADR 0003),
140
- * where the durable credential for the browser profile is the server-side
141
- * DeviceSession behind the `__Host-oxy-device` handle. Two durable
142
- * credentials for one origin is the dual authority that phase exists to
143
- * remove — revoking the hub while a localStorage secret still mints would
144
- * make a sign-out look like it worked — so the way to let the hub be
145
- * authoritative is to stop persisting the other one, not to consult it
146
- * second.
147
- *
148
- * Do NOT reach for this to make an app "more private". A relying-party
149
- * origin set to `'ephemeral'` simply signs the user out on every reload,
150
- * because nothing else on that origin remembers the device.
151
- *
152
- * @default 'persistent'
153
- */
154
- deviceCredentialStorage?: 'persistent' | 'ephemeral';
155
129
  /**
156
130
  * Wires the app's OWN i18n library to Oxy's resolved language, so the
157
131
  * account (or, signed out, the device/guest locale) drives the app's
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../../../src/ui/types/navigation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../../../src/ui/types/navigation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxy.so/services",
3
- "version": "4.0.7",
3
+ "version": "6.0.0",
4
4
  "description": "OxyHQ Expo/React Native SDK — UI components, screens, and native features",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -155,7 +155,7 @@
155
155
  },
156
156
  "dependencies": {
157
157
  "@expo/config-plugins": "57.0.9",
158
- "@oxy.so/contracts": "^1.5.0",
158
+ "@oxy.so/contracts": "^2.0.0",
159
159
  "@simplewebauthn/browser": "^13.3.0",
160
160
  "color": "^4.2.3"
161
161
  },
@@ -164,7 +164,7 @@
164
164
  "@commitlint/cli": "^21.2.1",
165
165
  "@commitlint/config-conventional": "^21.2.0",
166
166
  "@expo/vector-icons": "^15.0.3",
167
- "@oxy.so/core": "1.12.1",
167
+ "@oxy.so/core": "1.16.0",
168
168
  "@react-native-async-storage/async-storage": "^2.0.0",
169
169
  "@react-native-community/netinfo": "^12.0.1",
170
170
  "@react-native/babel-preset": "^0.86.2",
@@ -216,7 +216,7 @@
216
216
  "peerDependencies": {
217
217
  "@expo/vector-icons": "^15.0.3",
218
218
  "@oxy.so/bloom": "^4.26.0",
219
- "@oxy.so/core": "^1.12.0",
219
+ "@oxy.so/core": "^1.16.0",
220
220
  "@react-native-async-storage/async-storage": "^2.0.0",
221
221
  "@react-native-community/netinfo": ">=11.4.1",
222
222
  "@tanstack/query-async-storage-persister": "^5.101",
@@ -253,9 +253,6 @@
253
253
  "nativewind": {
254
254
  "optional": true
255
255
  },
256
- "react-native-css": {
257
- "optional": true
258
- },
259
256
  "expo-modules-core": {
260
257
  "optional": true
261
258
  },
Binary file
@@ -0,0 +1,3 @@
1
+ /** An image: a URL under Vite, an asset id under Metro — either is an image source. */
2
+ declare const asset: string | number;
3
+ export default asset;
Binary file
@@ -0,0 +1,3 @@
1
+ /** An image: a URL under Vite, an asset id under Metro — either is an image source. */
2
+ declare const asset: string | number;
3
+ export default asset;
Binary file
@@ -0,0 +1,3 @@
1
+ /** An image: a URL under Vite, an asset id under Metro — either is an image source. */
2
+ declare const asset: string | number;
3
+ export default asset;
Binary file
@@ -0,0 +1,3 @@
1
+ /** An image: a URL under Vite, an asset id under Metro — either is an image source. */
2
+ declare const asset: string | number;
3
+ export default asset;
package/src/index.ts CHANGED
@@ -359,13 +359,22 @@ export { default as ProfileButton } from './ui/components/ProfileButton';
359
359
  export type { ProfileButtonProps } from './ui/components/ProfileButton';
360
360
  export type { AccountDialogMenuItem } from './ui/navigation/accountDialogManager';
361
361
 
362
- // The account switcher/sign-in/sign-up chooser WITHOUT dialog chrome — the
363
- // surface stack presents `OxyAccountDialogScreen` (which renders this) into
364
- // Bloom's `<Dialog>` for the normal in-app surface; exported directly so a bare
365
- // host (e.g. a future auth.oxy.so hub page) can mount the exact same chooser
366
- // with its own completion strategy.
367
- export { default as OxyAuthChooser } from './ui/components/OxyAuthChooser';
368
- export type { OxyAuthChooserProps } from './ui/components/OxyAuthChooser';
362
+ // THE sign-in screens. The account dialog renders them, and so does every page
363
+ // of the auth.oxy.so IdP: one implementation of what a person sees when they
364
+ // sign in, create an account, or choose which account continues.
365
+ export { OxySignInPanel } from './ui/components/signIn/OxySignInPanel';
366
+ export type { OxySignInPanelProps } from './ui/components/signIn/OxySignInPanel';
367
+ export { OxySignUpPanel } from './ui/components/signIn/OxySignUpPanel';
368
+ export type { OxySignUpPanelProps } from './ui/components/signIn/OxySignUpPanel';
369
+ export { OxyAccountPicker } from './ui/components/signIn/OxyAccountPicker';
370
+ export type { OxyAccountPickerProps } from './ui/components/signIn/OxyAccountPicker';
371
+ export {
372
+ OxyAuthScreen,
373
+ OxyAuthScreenHeader,
374
+ OxyAuthLoading,
375
+ OxyAuthTerms,
376
+ } from './ui/components/signIn/OxyAuthScreen';
377
+ export type { OxyAuthScreenHeaderProps } from './ui/components/signIn/OxyAuthScreen';
369
378
 
370
379
  // The in-flight "Sign in with Oxy" REQUEST surface — the route's primary visual,
371
380
  // the progress line, and the "Having trouble?" alternatives — as a purely
@@ -22,18 +22,15 @@
22
22
  */
23
23
 
24
24
  import type React from 'react';
25
- import { useCallback, useSyncExternalStore } from 'react';
25
+ import { useCallback } from 'react';
26
26
  import { StyleSheet, View } from 'react-native';
27
- import type { AccountDialogSnapshot } from '@oxy.so/core';
28
27
  import { useOxy } from '../context/OxyContext';
29
28
  import { useI18n } from '../hooks/useI18n';
30
29
  import { useSurfaceHeader } from '../hooks/useSurfaceHeader';
31
30
  import type { BaseScreenProps } from '../types/navigation';
32
31
  import LogoText from './logo/LogoText';
33
32
  import OxyAuthChooser from './OxyAuthChooser';
34
- import { EMPTY_ACCOUNT_DIALOG_SNAPSHOT } from '../hooks/accountDialogSnapshot';
35
-
36
- type Translate = ReturnType<typeof useI18n>['t'];
33
+ import { useAccountDialogSnapshot } from '../hooks/accountDialogSnapshot';
37
34
 
38
35
  /**
39
36
  * The account MENU's nav bar carries the Oxy wordmark instead of a title — the
@@ -60,25 +57,9 @@ const OxyAccountDialogScreen: React.FC<BaseScreenProps> = ({ canGoBack }) => {
60
57
  const { accountDialogController: controller, closeAccountDialog } = useOxy();
61
58
  const { t } = useI18n();
62
59
 
63
- // A lightweight, header-only binding to the same controller `OxyAuthChooser`
64
- // binds independently — cheap, and the established pattern here (
65
- // `useDeviceSwitcher` also binds to this controller on its own).
66
- const subscribe = useCallback(
67
- (listener: () => void) => (controller ? controller.subscribe(listener) : () => undefined),
68
- [controller],
69
- );
70
- const getSnapshot = useCallback(
71
- () => (controller ? controller.getSnapshot() : EMPTY_ACCOUNT_DIALOG_SNAPSHOT),
72
- [controller],
73
- );
74
- const snapshot = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
60
+ const snapshot = useAccountDialogSnapshot(controller);
75
61
 
76
62
  const { view } = snapshot;
77
- // Names the entry view "Add another account" rather than "Sign in" only when
78
- // THIS app is signed in. Not the directory's size: the device can go on
79
- // listing a shared identity (Commons') after the app signed out, and that
80
- // titled a signed-out sheet "Add another account" (OxyHQ/oxy#1375 item 21).
81
- const hasSignedInAccounts = snapshot.hasSession;
82
63
  // Where back leads is the CONTROLLER's answer (`snapshot.backView`), never a
83
64
  // table here: a host-side "back = accounts" assumed a signed-in origin and
84
65
  // opened the account menu for nobody on a signed-out Back from sign-up.
@@ -93,18 +74,15 @@ const OxyAccountDialogScreen: React.FC<BaseScreenProps> = ({ canGoBack }) => {
93
74
  // `closeAccountDialog` so the pop + state teardown stay in one place. Opened
94
75
  // cold (detached) it is the root frame → `canGoBack` is false → no back.
95
76
  const backsToHost = !showBack && (canGoBack?.() ?? false);
96
- // The account MENU is branded, not titled: its nav bar carries the Oxy
97
- // wordmark and no large title. The current account is named by the HERO block
98
- // `OxyAuthChooser` renders under it (email + large avatar + greeting), never
99
- // by the bar. Every OTHER view keeps the SHARED Dialog nav header the rest of
100
- // the SDK uses — a large in-content title/subtitle that collapses into the bar
101
- // on scroll — because their copy is informative.
102
- const copy = view === 'accounts' ? null : headerCopy(view, hasSignedInAccounts, t);
77
+ // The sign-in and sign-up screens carry their own header — the Oxy mark and
78
+ // the large title auth.oxy.so shows — so the bar holds only the way back.
79
+ // The account MENU is branded with the wordmark (the hero under it names the
80
+ // account); the active request is titled, route-agnostically, because Oxy
81
+ // picks how it travels (issue #691).
103
82
 
104
83
  useSurfaceHeader({
105
- titleContent: copy ? undefined : NAV_LOGO,
106
- title: copy?.title,
107
- subtitle: copy?.subtitle ?? undefined,
84
+ titleContent: view === 'accounts' ? NAV_LOGO : undefined,
85
+ title: view === 'qr' ? t('accountSwitcher.signInWithOxy') : undefined,
108
86
  onBack: showBack ? goBack : backsToHost ? closeAccountDialog : undefined,
109
87
  });
110
88
 
@@ -119,45 +97,6 @@ const OxyAccountDialogScreen: React.FC<BaseScreenProps> = ({ canGoBack }) => {
119
97
  );
120
98
  };
121
99
 
122
- // ---------------------------------------------------------------------------
123
- // Copy + helpers
124
- // ---------------------------------------------------------------------------
125
-
126
- function headerCopy(
127
- view: Exclude<AccountDialogSnapshot['view'], 'accounts'>,
128
- hasSignedInAccounts: boolean,
129
- t: Translate,
130
- ): { title: string; subtitle: string | null } {
131
- switch (view) {
132
- // The ACTIVE REQUEST. Its header is deliberately route-AGNOSTIC: Oxy picks
133
- // the delivery route (QR here, a push to the user's phone, or opening
134
- // Commons on this device — issue #691), so naming one of them in the bar
135
- // would contradict the other two. The route-specific status line lives in
136
- // the body, derived from `signIn.progress`, and is the only thing that
137
- // describes HOW the request is travelling.
138
- case 'qr':
139
- return {
140
- title: t('accountSwitcher.signInWithOxy') || 'Sign in with Oxy',
141
- subtitle: null,
142
- };
143
- case 'signup':
144
- return {
145
- title: t('signup.title') || 'Create your account',
146
- subtitle: t('signup.subtitle') || 'One identity for the whole ecosystem.',
147
- };
148
- default:
149
- return hasSignedInAccounts
150
- ? {
151
- title: t('signin.addAccountTitle') || 'Add another account',
152
- subtitle: t('signin.addAccountSubtitle') || 'Sign in with another account.',
153
- }
154
- : {
155
- title: t('signin.title') || 'Sign in',
156
- subtitle: t('signin.subtitle') || 'One identity for the whole ecosystem.',
157
- };
158
- }
159
- }
160
-
161
100
  /**
162
101
  * The screen gutter. In the Dialog's nav-header mode the surface adds NO content
163
102
  * padding of its own — the large title and each screen own theirs — so this must
@@ -169,7 +108,7 @@ const SCREEN_MARGIN = 20;
169
108
  const styles = StyleSheet.create({
170
109
  bodyContent: {
171
110
  paddingTop: 4,
172
- paddingBottom: 4,
111
+ paddingBottom: 20,
173
112
  paddingHorizontal: SCREEN_MARGIN,
174
113
  },
175
114
  });