@oxyhq/services 28.0.0 → 29.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 (324) hide show
  1. package/NOTICE +10 -9
  2. package/README.md +65 -2
  3. package/android/src/main/java/so/oxy/devicesession/OxyDeviceSessionModule.kt +178 -0
  4. package/android/src/main/java/so/oxy/devicesession/OxyDeviceSessionProvider.kt +99 -0
  5. package/android/src/main/java/so/oxy/devicesession/OxyDeviceSessionStore.kt +115 -0
  6. package/expo-module.config.json +1 -0
  7. package/lib/commonjs/index.js +60 -16
  8. package/lib/commonjs/index.js.map +1 -1
  9. package/lib/commonjs/ui/boot/runProviderColdBoot.js +7 -0
  10. package/lib/commonjs/ui/boot/runProviderColdBoot.js.map +1 -1
  11. package/lib/commonjs/ui/client.js +12 -7
  12. package/lib/commonjs/ui/client.js.map +1 -1
  13. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js +10 -27
  14. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js.map +1 -1
  15. package/lib/commonjs/ui/components/OxyAuthChooser.js +132 -44
  16. package/lib/commonjs/ui/components/OxyAuthChooser.js.map +1 -1
  17. package/lib/commonjs/ui/components/OxyProvider.js +4 -2
  18. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  19. package/lib/commonjs/ui/components/SurfaceScreen.js +31 -3
  20. package/lib/commonjs/ui/components/SurfaceScreen.js.map +1 -1
  21. package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js +209 -84
  22. package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js.map +1 -1
  23. package/lib/commonjs/ui/components/authChooser/SignInEntryView.js +25 -7
  24. package/lib/commonjs/ui/components/authChooser/SignInEntryView.js.map +1 -1
  25. package/lib/commonjs/ui/components/authChooser/primitives.js +35 -22
  26. package/lib/commonjs/ui/components/authChooser/primitives.js.map +1 -1
  27. package/lib/commonjs/ui/components/authChooser/types.js +11 -0
  28. package/lib/commonjs/ui/components/authChooser/types.js.map +1 -1
  29. package/lib/commonjs/ui/context/OxyContext.js +257 -306
  30. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  31. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +27 -37
  32. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  33. package/lib/commonjs/ui/context/oxyContextHelpers.js +0 -29
  34. package/lib/commonjs/ui/context/oxyContextHelpers.js.map +1 -1
  35. package/lib/commonjs/ui/context/useOxyAccountGraph.js +6 -17
  36. package/lib/commonjs/ui/context/useOxyAccountGraph.js.map +1 -1
  37. package/lib/commonjs/ui/hooks/accountDialogSnapshot.js +42 -0
  38. package/lib/commonjs/ui/hooks/accountDialogSnapshot.js.map +1 -0
  39. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +0 -19
  40. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  41. package/lib/commonjs/ui/hooks/useDeviceSwitcher.js +57 -0
  42. package/lib/commonjs/ui/hooks/useDeviceSwitcher.js.map +1 -0
  43. package/lib/commonjs/ui/hooks/useI18n.js +22 -3
  44. package/lib/commonjs/ui/hooks/useI18n.js.map +1 -1
  45. package/lib/commonjs/ui/hooks/useSessionManagement.js +46 -153
  46. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
  47. package/lib/commonjs/ui/index.js +12 -7
  48. package/lib/commonjs/ui/index.js.map +1 -1
  49. package/lib/commonjs/ui/navigation/routes.js +85 -73
  50. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  51. package/lib/commonjs/ui/navigation/surfaces.js +8 -7
  52. package/lib/commonjs/ui/navigation/surfaces.js.map +1 -1
  53. package/lib/commonjs/ui/runtime/createOxyRuntime.js +433 -0
  54. package/lib/commonjs/ui/runtime/createOxyRuntime.js.map +1 -0
  55. package/lib/commonjs/ui/runtime/index.js +63 -0
  56. package/lib/commonjs/ui/runtime/index.js.map +1 -0
  57. package/lib/commonjs/ui/runtime/runtimeContext.js +83 -0
  58. package/lib/commonjs/ui/runtime/runtimeContext.js.map +1 -0
  59. package/lib/commonjs/ui/runtime/types.js +6 -0
  60. package/lib/commonjs/ui/runtime/types.js.map +1 -0
  61. package/lib/commonjs/ui/runtime/useRuntimeSnapshot.js +57 -0
  62. package/lib/commonjs/ui/runtime/useRuntimeSnapshot.js.map +1 -0
  63. package/lib/commonjs/ui/server.js +1 -2
  64. package/lib/commonjs/ui/server.js.map +1 -1
  65. package/lib/commonjs/ui/session/authStore.js +45 -9
  66. package/lib/commonjs/ui/session/authStore.js.map +1 -1
  67. package/lib/commonjs/ui/session/sharedDeviceCredentialStore.js +306 -0
  68. package/lib/commonjs/ui/session/sharedDeviceCredentialStore.js.map +1 -0
  69. package/lib/commonjs/ui/stores/authStore.js +154 -55
  70. package/lib/commonjs/ui/stores/authStore.js.map +1 -1
  71. package/lib/commonjs/ui/utils/avatarUtils.js +2 -36
  72. package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
  73. package/lib/module/index.js +16 -8
  74. package/lib/module/index.js.map +1 -1
  75. package/lib/module/ui/boot/runProviderColdBoot.js +7 -0
  76. package/lib/module/ui/boot/runProviderColdBoot.js.map +1 -1
  77. package/lib/module/ui/client.js +1 -2
  78. package/lib/module/ui/client.js.map +1 -1
  79. package/lib/module/ui/components/OxyAccountDialogScreen.js +10 -27
  80. package/lib/module/ui/components/OxyAccountDialogScreen.js.map +1 -1
  81. package/lib/module/ui/components/OxyAuthChooser.js +134 -44
  82. package/lib/module/ui/components/OxyAuthChooser.js.map +1 -1
  83. package/lib/module/ui/components/OxyProvider.js +5 -3
  84. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  85. package/lib/module/ui/components/SurfaceScreen.js +33 -5
  86. package/lib/module/ui/components/SurfaceScreen.js.map +1 -1
  87. package/lib/module/ui/components/authChooser/AccountsMenuView.js +210 -85
  88. package/lib/module/ui/components/authChooser/AccountsMenuView.js.map +1 -1
  89. package/lib/module/ui/components/authChooser/SignInEntryView.js +25 -7
  90. package/lib/module/ui/components/authChooser/SignInEntryView.js.map +1 -1
  91. package/lib/module/ui/components/authChooser/primitives.js +35 -22
  92. package/lib/module/ui/components/authChooser/primitives.js.map +1 -1
  93. package/lib/module/ui/components/authChooser/types.js +11 -0
  94. package/lib/module/ui/components/authChooser/types.js.map +1 -1
  95. package/lib/module/ui/context/OxyContext.js +251 -303
  96. package/lib/module/ui/context/OxyContext.js.map +1 -1
  97. package/lib/module/ui/context/hooks/useAuthOperations.js +27 -37
  98. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  99. package/lib/module/ui/context/oxyContextHelpers.js +0 -28
  100. package/lib/module/ui/context/oxyContextHelpers.js.map +1 -1
  101. package/lib/module/ui/context/useOxyAccountGraph.js +6 -17
  102. package/lib/module/ui/context/useOxyAccountGraph.js.map +1 -1
  103. package/lib/module/ui/hooks/accountDialogSnapshot.js +38 -0
  104. package/lib/module/ui/hooks/accountDialogSnapshot.js.map +1 -0
  105. package/lib/module/ui/hooks/mutations/useAccountMutations.js +0 -19
  106. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  107. package/lib/module/ui/hooks/useDeviceSwitcher.js +53 -0
  108. package/lib/module/ui/hooks/useDeviceSwitcher.js.map +1 -0
  109. package/lib/module/ui/hooks/useI18n.js +24 -4
  110. package/lib/module/ui/hooks/useI18n.js.map +1 -1
  111. package/lib/module/ui/hooks/useSessionManagement.js +47 -155
  112. package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
  113. package/lib/module/ui/index.js +1 -2
  114. package/lib/module/ui/index.js.map +1 -1
  115. package/lib/module/ui/navigation/routes.js +84 -72
  116. package/lib/module/ui/navigation/routes.js.map +1 -1
  117. package/lib/module/ui/navigation/surfaces.js +6 -6
  118. package/lib/module/ui/navigation/surfaces.js.map +1 -1
  119. package/lib/module/ui/runtime/createOxyRuntime.js +430 -0
  120. package/lib/module/ui/runtime/createOxyRuntime.js.map +1 -0
  121. package/lib/module/ui/runtime/index.js +15 -0
  122. package/lib/module/ui/runtime/index.js.map +1 -0
  123. package/lib/module/ui/runtime/runtimeContext.js +75 -0
  124. package/lib/module/ui/runtime/runtimeContext.js.map +1 -0
  125. package/lib/module/ui/runtime/types.js +4 -0
  126. package/lib/module/ui/runtime/types.js.map +1 -0
  127. package/lib/module/ui/runtime/useRuntimeSnapshot.js +52 -0
  128. package/lib/module/ui/runtime/useRuntimeSnapshot.js.map +1 -0
  129. package/lib/module/ui/server.js +0 -1
  130. package/lib/module/ui/server.js.map +1 -1
  131. package/lib/module/ui/session/authStore.js +46 -11
  132. package/lib/module/ui/session/authStore.js.map +1 -1
  133. package/lib/module/ui/session/sharedDeviceCredentialStore.js +302 -0
  134. package/lib/module/ui/session/sharedDeviceCredentialStore.js.map +1 -0
  135. package/lib/module/ui/stores/authStore.js +154 -55
  136. package/lib/module/ui/stores/authStore.js.map +1 -1
  137. package/lib/module/ui/utils/avatarUtils.js +2 -35
  138. package/lib/module/ui/utils/avatarUtils.js.map +1 -1
  139. package/lib/typescript/commonjs/index.d.ts +5 -3
  140. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  141. package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  142. package/lib/typescript/commonjs/ui/client.d.ts +1 -2
  143. package/lib/typescript/commonjs/ui/client.d.ts.map +1 -1
  144. package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
  145. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts.map +1 -1
  146. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  147. package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts.map +1 -1
  148. package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts +11 -4
  149. package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -1
  150. package/lib/typescript/commonjs/ui/components/authChooser/SignInEntryView.d.ts +3 -1
  151. package/lib/typescript/commonjs/ui/components/authChooser/SignInEntryView.d.ts.map +1 -1
  152. package/lib/typescript/commonjs/ui/components/authChooser/primitives.d.ts +18 -6
  153. package/lib/typescript/commonjs/ui/components/authChooser/primitives.d.ts.map +1 -1
  154. package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts +33 -1
  155. package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts.map +1 -1
  156. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +35 -4
  157. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  158. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts +8 -12
  159. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  160. package/lib/typescript/commonjs/ui/context/oxyContextHelpers.d.ts +0 -2
  161. package/lib/typescript/commonjs/ui/context/oxyContextHelpers.d.ts.map +1 -1
  162. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts +9 -1
  163. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts.map +1 -1
  164. package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts +1 -3
  165. package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts.map +1 -1
  166. package/lib/typescript/commonjs/ui/hooks/accountDialogSnapshot.d.ts +15 -0
  167. package/lib/typescript/commonjs/ui/hooks/accountDialogSnapshot.d.ts.map +1 -0
  168. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  169. package/lib/typescript/commonjs/ui/hooks/useDeviceSwitcher.d.ts +49 -0
  170. package/lib/typescript/commonjs/ui/hooks/useDeviceSwitcher.d.ts.map +1 -0
  171. package/lib/typescript/commonjs/ui/hooks/useI18n.d.ts +13 -0
  172. package/lib/typescript/commonjs/ui/hooks/useI18n.d.ts.map +1 -1
  173. package/lib/typescript/commonjs/ui/hooks/useSessionManagement.d.ts +23 -18
  174. package/lib/typescript/commonjs/ui/hooks/useSessionManagement.d.ts.map +1 -1
  175. package/lib/typescript/commonjs/ui/index.d.ts +1 -2
  176. package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
  177. package/lib/typescript/commonjs/ui/navigation/routes.d.ts +15 -1
  178. package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
  179. package/lib/typescript/commonjs/ui/navigation/surfaces.d.ts.map +1 -1
  180. package/lib/typescript/commonjs/ui/runtime/createOxyRuntime.d.ts +144 -0
  181. package/lib/typescript/commonjs/ui/runtime/createOxyRuntime.d.ts.map +1 -0
  182. package/lib/typescript/commonjs/ui/runtime/index.d.ts +16 -0
  183. package/lib/typescript/commonjs/ui/runtime/index.d.ts.map +1 -0
  184. package/lib/typescript/commonjs/ui/runtime/runtimeContext.d.ts +43 -0
  185. package/lib/typescript/commonjs/ui/runtime/runtimeContext.d.ts.map +1 -0
  186. package/lib/typescript/commonjs/ui/runtime/types.d.ts +89 -0
  187. package/lib/typescript/commonjs/ui/runtime/types.d.ts.map +1 -0
  188. package/lib/typescript/commonjs/ui/runtime/useRuntimeSnapshot.d.ts +23 -0
  189. package/lib/typescript/commonjs/ui/runtime/useRuntimeSnapshot.d.ts.map +1 -0
  190. package/lib/typescript/commonjs/ui/server.d.ts +0 -1
  191. package/lib/typescript/commonjs/ui/server.d.ts.map +1 -1
  192. package/lib/typescript/commonjs/ui/session/authStore.d.ts +60 -9
  193. package/lib/typescript/commonjs/ui/session/authStore.d.ts.map +1 -1
  194. package/lib/typescript/commonjs/ui/session/sharedDeviceCredentialStore.d.ts +32 -0
  195. package/lib/typescript/commonjs/ui/session/sharedDeviceCredentialStore.d.ts.map +1 -0
  196. package/lib/typescript/commonjs/ui/stores/authStore.d.ts +49 -5
  197. package/lib/typescript/commonjs/ui/stores/authStore.d.ts.map +1 -1
  198. package/lib/typescript/commonjs/ui/types/navigation.d.ts +26 -0
  199. package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
  200. package/lib/typescript/commonjs/ui/utils/avatarUtils.d.ts +2 -10
  201. package/lib/typescript/commonjs/ui/utils/avatarUtils.d.ts.map +1 -1
  202. package/lib/typescript/module/index.d.ts +5 -3
  203. package/lib/typescript/module/index.d.ts.map +1 -1
  204. package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  205. package/lib/typescript/module/ui/client.d.ts +1 -2
  206. package/lib/typescript/module/ui/client.d.ts.map +1 -1
  207. package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
  208. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts.map +1 -1
  209. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  210. package/lib/typescript/module/ui/components/SurfaceScreen.d.ts.map +1 -1
  211. package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts +11 -4
  212. package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -1
  213. package/lib/typescript/module/ui/components/authChooser/SignInEntryView.d.ts +3 -1
  214. package/lib/typescript/module/ui/components/authChooser/SignInEntryView.d.ts.map +1 -1
  215. package/lib/typescript/module/ui/components/authChooser/primitives.d.ts +18 -6
  216. package/lib/typescript/module/ui/components/authChooser/primitives.d.ts.map +1 -1
  217. package/lib/typescript/module/ui/components/authChooser/types.d.ts +33 -1
  218. package/lib/typescript/module/ui/components/authChooser/types.d.ts.map +1 -1
  219. package/lib/typescript/module/ui/context/OxyContext.d.ts +35 -4
  220. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  221. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts +8 -12
  222. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  223. package/lib/typescript/module/ui/context/oxyContextHelpers.d.ts +0 -2
  224. package/lib/typescript/module/ui/context/oxyContextHelpers.d.ts.map +1 -1
  225. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts +9 -1
  226. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts.map +1 -1
  227. package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts +1 -3
  228. package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts.map +1 -1
  229. package/lib/typescript/module/ui/hooks/accountDialogSnapshot.d.ts +15 -0
  230. package/lib/typescript/module/ui/hooks/accountDialogSnapshot.d.ts.map +1 -0
  231. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  232. package/lib/typescript/module/ui/hooks/useDeviceSwitcher.d.ts +49 -0
  233. package/lib/typescript/module/ui/hooks/useDeviceSwitcher.d.ts.map +1 -0
  234. package/lib/typescript/module/ui/hooks/useI18n.d.ts +13 -0
  235. package/lib/typescript/module/ui/hooks/useI18n.d.ts.map +1 -1
  236. package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts +23 -18
  237. package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts.map +1 -1
  238. package/lib/typescript/module/ui/index.d.ts +1 -2
  239. package/lib/typescript/module/ui/index.d.ts.map +1 -1
  240. package/lib/typescript/module/ui/navigation/routes.d.ts +15 -1
  241. package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
  242. package/lib/typescript/module/ui/navigation/surfaces.d.ts.map +1 -1
  243. package/lib/typescript/module/ui/runtime/createOxyRuntime.d.ts +144 -0
  244. package/lib/typescript/module/ui/runtime/createOxyRuntime.d.ts.map +1 -0
  245. package/lib/typescript/module/ui/runtime/index.d.ts +16 -0
  246. package/lib/typescript/module/ui/runtime/index.d.ts.map +1 -0
  247. package/lib/typescript/module/ui/runtime/runtimeContext.d.ts +43 -0
  248. package/lib/typescript/module/ui/runtime/runtimeContext.d.ts.map +1 -0
  249. package/lib/typescript/module/ui/runtime/types.d.ts +89 -0
  250. package/lib/typescript/module/ui/runtime/types.d.ts.map +1 -0
  251. package/lib/typescript/module/ui/runtime/useRuntimeSnapshot.d.ts +23 -0
  252. package/lib/typescript/module/ui/runtime/useRuntimeSnapshot.d.ts.map +1 -0
  253. package/lib/typescript/module/ui/server.d.ts +0 -1
  254. package/lib/typescript/module/ui/server.d.ts.map +1 -1
  255. package/lib/typescript/module/ui/session/authStore.d.ts +60 -9
  256. package/lib/typescript/module/ui/session/authStore.d.ts.map +1 -1
  257. package/lib/typescript/module/ui/session/sharedDeviceCredentialStore.d.ts +32 -0
  258. package/lib/typescript/module/ui/session/sharedDeviceCredentialStore.d.ts.map +1 -0
  259. package/lib/typescript/module/ui/stores/authStore.d.ts +49 -5
  260. package/lib/typescript/module/ui/stores/authStore.d.ts.map +1 -1
  261. package/lib/typescript/module/ui/types/navigation.d.ts +26 -0
  262. package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
  263. package/lib/typescript/module/ui/utils/avatarUtils.d.ts +2 -10
  264. package/lib/typescript/module/ui/utils/avatarUtils.d.ts.map +1 -1
  265. package/package.json +6 -7
  266. package/plugins/withSharedDeviceSessionProvider.js +102 -0
  267. package/plugins/withSharedDeviceSessionReader.js +57 -0
  268. package/src/__tests__/esmSourcePurity.test.ts +61 -0
  269. package/src/index.ts +31 -9
  270. package/src/ui/boot/runProviderColdBoot.ts +7 -0
  271. package/src/ui/client.ts +1 -2
  272. package/src/ui/components/OxyAccountDialogScreen.tsx +10 -29
  273. package/src/ui/components/OxyAuthChooser.tsx +149 -50
  274. package/src/ui/components/OxyProvider.tsx +7 -5
  275. package/src/ui/components/SurfaceScreen.tsx +28 -4
  276. package/src/ui/components/authChooser/AccountsMenuView.tsx +246 -96
  277. package/src/ui/components/authChooser/SignInEntryView.tsx +31 -8
  278. package/src/ui/components/authChooser/primitives.tsx +37 -23
  279. package/src/ui/components/authChooser/types.ts +34 -1
  280. package/src/ui/context/OxyContext.tsx +269 -324
  281. package/src/ui/context/hooks/useAuthOperations.ts +32 -35
  282. package/src/ui/context/oxyContextHelpers.ts +0 -30
  283. package/src/ui/context/oxyContextTypes.ts +9 -1
  284. package/src/ui/context/useOxyAccountGraph.ts +5 -19
  285. package/src/ui/hooks/accountDialogSnapshot.ts +37 -0
  286. package/src/ui/hooks/mutations/useAccountMutations.ts +0 -19
  287. package/src/ui/hooks/queries/__tests__/userCache.test.ts +12 -1
  288. package/src/ui/hooks/useDeviceSwitcher.ts +110 -0
  289. package/src/ui/hooks/useI18n.ts +23 -3
  290. package/src/ui/hooks/useSessionManagement.ts +62 -211
  291. package/src/ui/index.ts +1 -2
  292. package/src/ui/navigation/routes.ts +85 -75
  293. package/src/ui/navigation/surfaces.ts +6 -9
  294. package/src/ui/runtime/createOxyRuntime.ts +623 -0
  295. package/src/ui/runtime/index.ts +34 -0
  296. package/src/ui/runtime/runtimeContext.tsx +111 -0
  297. package/src/ui/runtime/types.ts +110 -0
  298. package/src/ui/runtime/useRuntimeSnapshot.ts +52 -0
  299. package/src/ui/server.ts +0 -1
  300. package/src/ui/session/__tests__/authStore.test.ts +90 -0
  301. package/src/ui/session/__tests__/sharedDeviceCredentialStore.test.ts +289 -0
  302. package/src/ui/session/authStore.ts +78 -9
  303. package/src/ui/session/sharedDeviceCredentialStore.ts +318 -0
  304. package/src/ui/stores/authStore.ts +171 -43
  305. package/src/ui/types/navigation.ts +26 -0
  306. package/src/ui/utils/avatarUtils.ts +2 -37
  307. package/lib/commonjs/ui/hooks/useSwitchableAccounts.js +0 -64
  308. package/lib/commonjs/ui/hooks/useSwitchableAccounts.js.map +0 -1
  309. package/lib/commonjs/ui/stores/accountStore.js +0 -221
  310. package/lib/commonjs/ui/stores/accountStore.js.map +0 -1
  311. package/lib/module/ui/hooks/useSwitchableAccounts.js +0 -60
  312. package/lib/module/ui/hooks/useSwitchableAccounts.js.map +0 -1
  313. package/lib/module/ui/stores/accountStore.js +0 -213
  314. package/lib/module/ui/stores/accountStore.js.map +0 -1
  315. package/lib/typescript/commonjs/ui/hooks/useSwitchableAccounts.d.ts +0 -23
  316. package/lib/typescript/commonjs/ui/hooks/useSwitchableAccounts.d.ts.map +0 -1
  317. package/lib/typescript/commonjs/ui/stores/accountStore.d.ts +0 -27
  318. package/lib/typescript/commonjs/ui/stores/accountStore.d.ts.map +0 -1
  319. package/lib/typescript/module/ui/hooks/useSwitchableAccounts.d.ts +0 -23
  320. package/lib/typescript/module/ui/hooks/useSwitchableAccounts.d.ts.map +0 -1
  321. package/lib/typescript/module/ui/stores/accountStore.d.ts +0 -27
  322. package/lib/typescript/module/ui/stores/accountStore.d.ts.map +0 -1
  323. package/src/ui/hooks/useSwitchableAccounts.ts +0 -75
  324. package/src/ui/stores/accountStore.ts +0 -264
@@ -1 +1 @@
1
- {"version":3,"names":["_zustand","require","_core","log","createLogger","useAuthStore","exports","create","set","get","user","isAuthenticated","isLoading","error","lastUserFetch","loginSuccess","normalizeUserIdentity","Date","now","loginFailure","logout","setUser","fetchUser","oxyServices","forceRefresh","state","cacheAge","Number","POSITIVE_INFINITY","cacheValid","info","getCurrentUser","errorMessage","Error","message"],"sourceRoot":"../../../../src","sources":["ui/stores/authStore.ts"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAGA,MAAME,GAAG,GAAG,IAAAC,kBAAY,EAAC,WAAW,CAAC;AAgB9B,MAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,IAAAE,eAAM,EAAY,CAACC,GAAwC,EAAEC,GAAoB,MAAM;EACjHC,IAAI,EAAE,IAAI;EACVC,eAAe,EAAE,KAAK;EACtBC,SAAS,EAAE,KAAK;EAChBC,KAAK,EAAE,IAAI;EACXC,aAAa,EAAE,IAAI;EAEnBC,YAAY,EAAGL,IAAU,IAAKF,GAAG,CAAC;IAChCI,SAAS,EAAE,KAAK;IAChBD,eAAe,EAAE,IAAI;IACrBD,IAAI,EAAE,IAAAM,2BAAqB,EAACN,IAAI,CAAC;IACjCI,aAAa,EAAEG,IAAI,CAACC,GAAG,CAAC;EAC1B,CAAC,CAAC;EACFC,YAAY,EAAGN,KAAa,IAAKL,GAAG,CAAC;IAAEI,SAAS,EAAE,KAAK;IAAEC;EAAM,CAAC,CAAC;EACjEO,MAAM,EAAEA,CAAA,KAAMZ,GAAG,CAAC;IAChBE,IAAI,EAAE,IAAI;IACVC,eAAe,EAAE,KAAK;IACtBG,aAAa,EAAE;EACjB,CAAC,CAAC;EACFO,OAAO,EAAGX,IAAU,IAAKF,GAAG,CAAC;IAAEE,IAAI,EAAE,IAAAM,2BAAqB,EAACN,IAAI,CAAC;IAAEI,aAAa,EAAEG,IAAI,CAACC,GAAG,CAAC;EAAE,CAAC,CAAC;EAC9FI,SAAS,EAAE,MAAAA,CAAOC,WAAW,EAAEC,YAAY,GAAG,KAAK,KAAK;IACtD,MAAMC,KAAK,GAAGhB,GAAG,CAAC,CAAC;IACnB,MAAMS,GAAG,GAAGD,IAAI,CAACC,GAAG,CAAC,CAAC;IACtB,MAAMQ,QAAQ,GAAGD,KAAK,CAACX,aAAa,GAAGI,GAAG,GAAGO,KAAK,CAACX,aAAa,GAAGa,MAAM,CAACC,iBAAiB;IAC3F,MAAMC,UAAU,GAAGH,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;;IAE7C;IACA,IAAI,CAACF,YAAY,IAAIC,KAAK,CAACf,IAAI,IAAImB,UAAU,EAAE;MAC7C1B,GAAG,CAAC2B,IAAI,CAAC,wBAAwB,EAAE;QAAEJ;MAAS,CAAC,CAAC;MAChD;IACF;IAEAlB,GAAG,CAAC;MAAEI,SAAS,EAAE,IAAI;MAAEC,KAAK,EAAE;IAAK,CAAC,CAAC;IACrC,IAAI;MACF,MAAMH,IAAI,GAAG,IAAAM,2BAAqB,EAAC,MAAMO,WAAW,CAACQ,cAAc,CAAC,CAAC,CAAC;MACtEvB,GAAG,CAAC;QAAEE,IAAI;QAAEE,SAAS,EAAE,KAAK;QAAED,eAAe,EAAE,IAAI;QAAEG,aAAa,EAAEI;MAAI,CAAC,CAAC;IAC5E,CAAC,CAAC,OAAOL,KAAK,EAAE;MACd,MAAMmB,YAAY,GAAGnB,KAAK,YAAYoB,KAAK,GAAGpB,KAAK,CAACqB,OAAO,GAAG,sBAAsB;MACpF/B,GAAG,CAACU,KAAK,CAAC,qBAAqB,EAAEA,KAAK,CAAC;MACvCL,GAAG,CAAC;QAAEK,KAAK,EAAEmB,YAAY;QAAEpB,SAAS,EAAE;MAAM,CAAC,CAAC;IAChD;EACF;AACF,CAAC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","boundRuntime","unbindRuntime","listeners","Set","loginSuccess","user","setAccount","loginFailure","error","batch","setLoading","setError","logout","clearSession","setUser","SIGNED_OUT","Object","freeze","isAuthenticated","isLoading","state","project","runtime","snapshot","getSnapshot","account","message","republish","next","listener","bindAuthStoreToRuntime","subscribe","getState","setState","patch","undefined","add","delete","useAuthStoreHook","selector","cache","useRef","getSelection","useCallback","cached","current","value","useSyncExternalStore","useAuthStore","exports","assign"],"sourceRoot":"../../../../src","sources":["ui/stores/authStore.ts"],"mappings":"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","ignoreList":[]}
@@ -3,34 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.refreshAvatarInStore = refreshAvatarInStore;
7
6
  exports.updateProfileWithAvatar = updateProfileWithAvatar;
8
7
  var _core = require("@oxyhq/core");
9
- var _accountStore = require("../stores/accountStore.js");
10
8
  var _authStore = require("../stores/authStore.js");
11
9
  var _queryKeys = require("../hooks/queries/queryKeys.js");
12
10
  var _userCache = require("../hooks/queries/userCache.js");
13
11
  /**
14
- * Refreshes avatar in accountStore with cache-busted URL to force image reload.
15
- *
16
- * @param sessionId - The session ID for the account to update
17
- * @param avatarFileId - The new avatar file ID
18
- * @param oxyServices - OxyServices instance to generate download URL
19
- */
20
- function refreshAvatarInStore(sessionId, avatarFileId, oxyServices) {
21
- const {
22
- updateAccount
23
- } = _accountStore.useAccountStore.getState();
24
- const cacheBustedUrl = `${oxyServices.getFileDownloadUrl(avatarFileId, 'thumb')}?t=${Date.now()}`;
25
- updateAccount(sessionId, {
26
- avatar: avatarFileId,
27
- avatarUrl: cacheBustedUrl
28
- });
29
- }
30
-
31
- /**
32
- * Updates user profile with avatar and handles all side effects (query invalidation, accountStore update).
33
- * This function can be used from within OxyContext provider without requiring useOxy hook.
12
+ * Updates user profile with avatar and handles all side effects (cache writes,
13
+ * query invalidation). Usable from inside the provider without `useOxy`.
34
14
  *
35
15
  * @param updates - Profile updates including avatar
36
16
  * @param oxyServices - OxyServices instance
@@ -55,20 +35,6 @@ async function updateProfileWithAvatar(updates, oxyServices, activeSessionId, qu
55
35
  cleared: cleared.length > 0 ? cleared : undefined
56
36
  });
57
37
 
58
- // If avatar was updated, refresh accountStore with a cache-busted URL. An
59
- // EMPTY avatar is a removal: clear both fields so the switcher falls back to
60
- // initials instead of pointing at a download URL for the empty file id.
61
- if (typeof updates.avatar === 'string' && activeSessionId) {
62
- if (updates.avatar) {
63
- refreshAvatarInStore(activeSessionId, updates.avatar, oxyServices);
64
- } else {
65
- _accountStore.useAccountStore.getState().updateAccount(activeSessionId, {
66
- avatar: undefined,
67
- avatarUrl: undefined
68
- });
69
- }
70
- }
71
-
72
38
  // Invalidate all related queries to refresh everywhere
73
39
  (0, _queryKeys.invalidateUserQueries)(queryClient);
74
40
  (0, _queryKeys.invalidateAccountQueries)(queryClient);
@@ -1 +1 @@
1
- {"version":3,"names":["_core","require","_accountStore","_authStore","_queryKeys","_userCache","refreshAvatarInStore","sessionId","avatarFileId","oxyServices","updateAccount","useAccountStore","getState","cacheBustedUrl","getFileDownloadUrl","Date","now","avatar","avatarUrl","updateProfileWithAvatar","updates","activeSessionId","queryClient","syncSession","data","authenticatedApiCall","updateProfile","setQueryData","queryKeys","accounts","current","users","profile","useAuthStore","setUser","cleared","clearedFieldsFromProfileUpdate","upsertCachedUser","id","length","undefined","invalidateUserQueries","invalidateAccountQueries"],"sourceRoot":"../../../../src","sources":["ui/utils/avatarUtils.ts"],"mappings":";;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAGA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASK,oBAAoBA,CAClCC,SAAiB,EACjBC,YAAoB,EACpBC,WAAwB,EAClB;EACN,MAAM;IAAEC;EAAc,CAAC,GAAGC,6BAAe,CAACC,QAAQ,CAAC,CAAC;EACpD,MAAMC,cAAc,GAAG,GAAGJ,WAAW,CAACK,kBAAkB,CAACN,YAAY,EAAE,OAAO,CAAC,MAAMO,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE;EACjGN,aAAa,CAACH,SAAS,EAAE;IACvBU,MAAM,EAAET,YAAY;IACpBU,SAAS,EAAEL;EACb,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeM,uBAAuBA,CAC3CC,OAA0B,EAC1BX,WAAwB,EACxBY,eAA8B,EAC9BC,WAAwB,EACxBC,WAAiC,EAClB;EACf,MAAMC,IAAI,GAAG,MAAM,IAAAC,0BAAoB,EACrChB,WAAW,EACXY,eAAe,EACf,MAAMZ,WAAW,CAACiB,aAAa,CAACN,OAAO,CAAC,EACxCG,WACF,CAAC;;EAED;EACAD,WAAW,CAACK,YAAY,CAACC,oBAAS,CAACC,QAAQ,CAACC,OAAO,CAACT,eAAe,CAAC,EAAEG,IAAI,CAAC;EAC3E,IAAIH,eAAe,EAAE;IACnBC,WAAW,CAACK,YAAY,CAACC,oBAAS,CAACG,KAAK,CAACC,OAAO,CAACX,eAAe,CAAC,EAAEG,IAAI,CAAC;EAC1E;;EAEA;EACAS,uBAAY,CAACrB,QAAQ,CAAC,CAAC,CAACsB,OAAO,CAACV,IAAI,CAAC;EAErC,MAAMW,OAAO,GAAG,IAAAC,yCAA8B,EAAChB,OAAO,CAAC;EACvD,IAAAiB,2BAAgB,EAACf,WAAW,EAAEE,IAAI,EAAEA,IAAI,CAACc,EAAE,EAAE;IAC3CH,OAAO,EAAEA,OAAO,CAACI,MAAM,GAAG,CAAC,GAAGJ,OAAO,GAAGK;EAC1C,CAAC,CAAC;;EAEF;EACA;EACA;EACA,IAAI,OAAOpB,OAAO,CAACH,MAAM,KAAK,QAAQ,IAAII,eAAe,EAAE;IACzD,IAAID,OAAO,CAACH,MAAM,EAAE;MAClBX,oBAAoB,CAACe,eAAe,EAAED,OAAO,CAACH,MAAM,EAAER,WAAW,CAAC;IACpE,CAAC,MAAM;MACLE,6BAAe,CAACC,QAAQ,CAAC,CAAC,CAACF,aAAa,CAACW,eAAe,EAAE;QACxDJ,MAAM,EAAEuB,SAAS;QACjBtB,SAAS,EAAEsB;MACb,CAAC,CAAC;IACJ;EACF;;EAEA;EACA,IAAAC,gCAAqB,EAACnB,WAAW,CAAC;EAClC,IAAAoB,mCAAwB,EAACpB,WAAW,CAAC;EAErC,OAAOE,IAAI;AACb","ignoreList":[]}
1
+ {"version":3,"names":["_core","require","_authStore","_queryKeys","_userCache","updateProfileWithAvatar","updates","oxyServices","activeSessionId","queryClient","syncSession","data","authenticatedApiCall","updateProfile","setQueryData","queryKeys","accounts","current","users","profile","useAuthStore","getState","setUser","cleared","clearedFieldsFromProfileUpdate","upsertCachedUser","id","length","undefined","invalidateUserQueries","invalidateAccountQueries"],"sourceRoot":"../../../../src","sources":["ui/utils/avatarUtils.ts"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAGA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeI,uBAAuBA,CAC3CC,OAA0B,EAC1BC,WAAwB,EACxBC,eAA8B,EAC9BC,WAAwB,EACxBC,WAAiC,EAClB;EACf,MAAMC,IAAI,GAAG,MAAM,IAAAC,0BAAoB,EACrCL,WAAW,EACXC,eAAe,EACf,MAAMD,WAAW,CAACM,aAAa,CAACP,OAAO,CAAC,EACxCI,WACF,CAAC;;EAED;EACAD,WAAW,CAACK,YAAY,CAACC,oBAAS,CAACC,QAAQ,CAACC,OAAO,CAACT,eAAe,CAAC,EAAEG,IAAI,CAAC;EAC3E,IAAIH,eAAe,EAAE;IACnBC,WAAW,CAACK,YAAY,CAACC,oBAAS,CAACG,KAAK,CAACC,OAAO,CAACX,eAAe,CAAC,EAAEG,IAAI,CAAC;EAC1E;;EAEA;EACAS,uBAAY,CAACC,QAAQ,CAAC,CAAC,CAACC,OAAO,CAACX,IAAI,CAAC;EAErC,MAAMY,OAAO,GAAG,IAAAC,yCAA8B,EAAClB,OAAO,CAAC;EACvD,IAAAmB,2BAAgB,EAAChB,WAAW,EAAEE,IAAI,EAAEA,IAAI,CAACe,EAAE,EAAE;IAC3CH,OAAO,EAAEA,OAAO,CAACI,MAAM,GAAG,CAAC,GAAGJ,OAAO,GAAGK;EAC1C,CAAC,CAAC;;EAEF;EACA,IAAAC,gCAAqB,EAACpB,WAAW,CAAC;EAClC,IAAAqB,mCAAwB,EAACrB,WAAW,CAAC;EAErC,OAAOE,IAAI;AACb","ignoreList":[]}
@@ -35,6 +35,15 @@ setPlatformOS(Platform.OS);
35
35
  // ---------------------------------------------------------------------------
36
36
  export { default as OxyProvider } from "./ui/components/OxyProvider.js";
37
37
  export { useOxy } from "./ui/context/OxyContext.js";
38
+ // `useOxy()` THROWS when no provider is mounted. `useOptionalOxy()` returns
39
+ // `null` instead, for the rare component that renders on both sides of the
40
+ // provider boundary; there is no fabricated forever-loading runtime.
41
+ export { useOptionalOxy, OxyProviderMissingError } from "./ui/context/OxyContext.js";
42
+
43
+ // The runtime surface (ADR 0004). These subscribe to the ONE runtime with a
44
+ // selector, so — unlike `useOxy()`, whose value is rebuilt by any of its fifty
45
+ // members moving — a locale change or a dialog opening does not re-render them.
46
+ export { useOxyRuntime, useOxySnapshot, useActiveAccount, useDeviceDirectory, OxyRuntimeMissingError } from "./ui/runtime/index.js";
38
47
  export { useAuth } from "./ui/hooks/useAuth.js";
39
48
  // Thrown by `switchToAccount` / `switchSession` while `OxyProvider` runs with
40
49
  // `sessionMode="identity"` — an identity-bound app authenticates as the owner of
@@ -45,7 +54,6 @@ export { IdentityBoundSessionError } from "./ui/session/identityBinding.js";
45
54
  // Zustand stores
46
55
  // ---------------------------------------------------------------------------
47
56
  export { useAuthStore } from "./ui/stores/authStore.js";
48
- export { useAccountStore } from "./ui/stores/accountStore.js";
49
57
  export { useAssetStore, useAssets as useAssetsStore, useAsset, useUploadProgress, useAssetLoading, useAssetErrors, useAssetsByApp, useAssetsByEntity, useAssetUsageCount, useIsAssetLinked } from "./ui/stores/assetStore.js";
50
58
 
51
59
  // ---------------------------------------------------------------------------
@@ -185,13 +193,13 @@ export { default as OxyAuthChooser } from "./ui/components/OxyAuthChooser.js";
185
193
  // no controller: `route` + `progress` + `qrPayload` + the failure flags are the
186
194
  // whole contract, and none of them is a secret credential.
187
195
  export { OxySignInRequestSurface } from "./ui/components/OxySignInRequestSurface.js";
188
- // Unified switchable-accounts hook — the single source of everything the user
189
- // can switch into: device sign-ins AND linked graph accounts (owned orgs +
190
- // shared-with-you), deduped by account id and hydrated with real
191
- // name/email/avatar/color. Backed by the shared `AccountDialogController` in
192
- // `@oxyhq/core`. Every switch routes through `useOxy().switchToAccount`.
193
- // The `SwitchableAccount` type lives in `@oxyhq/core` — import it from there.
194
- export { useSwitchableAccounts } from "./ui/hooks/useSwitchableAccounts.js";
196
+ // The device switcher — the server's own directory (ADR 0002) of who is signed
197
+ // in here and what each of them may act as, grouped by PERSON, with the two
198
+ // removals an account id cannot name. Backed by the shared
199
+ // `AccountDialogController` in `@oxyhq/core`; selecting a row activates a
200
+ // `contextId`. `DevicePrincipalGroup` and `DeviceContext` live in `@oxyhq/core`
201
+ // — import them from there.
202
+ export { useDeviceSwitcher } from "./ui/hooks/useDeviceSwitcher.js";
195
203
  // Unified "Manage your Oxy Account" screen (the caller's own personal account)
196
204
  export { default as ProfileScreen } from "./ui/screens/ProfileScreen.js";
197
205
  export { default as ManageAccountScreen } from "./ui/screens/ManageAccountScreen.js";
@@ -1 +1 @@
1
- {"version":3,"names":["setPlatformOS","Platform","OS","default","OxyProvider","useOxy","useAuth","IdentityBoundSessionError","useAuthStore","useAccountStore","useAssetStore","useAssets","useAssetsStore","useAsset","useUploadProgress","useAssetLoading","useAssetErrors","useAssetsByApp","useAssetsByEntity","useAssetUsageCount","useIsAssetLinked","setOxyAssetInstance","useFileDownloadUrl","useFollow","useFollowerCounts","useSeedFollowStatuses","useStorage","useUserProfile","useUserProfiles","useCurrentUser","useUserById","useUserByUsername","useUsersBySessions","usePrivacySettings","useConnectedApps","useSessions","useSession","useDeviceSessions","useUserDevices","useSecurityInfo","useAccountStorageUsage","useSecurityActivity","useRecentSecurityActivity","useInfiniteSecurityActivity","useAuthMethods","useUserSubscription","useUserPayments","useUserWallet","useUserWalletTransactions","useUpdateProfile","useUploadAvatar","useUpdateAccountSettings","useUpdatePrivacySettings","useUpdateNotificationPreferences","useUpdateUserPreferences","useRevokeConnectedApp","useUploadFile","useSwitchSession","useLogoutSession","useLogoutAll","useUpdateDeviceName","useRemoveDevice","createProfileMutation","createGenericMutation","mutationKeys","queryKeys","invalidateAccountQueries","invalidateUserQueries","invalidateSessionQueries","invalidateDeviceQueries","invalidatePrivacyQueries","invalidateSecurityQueries","invalidateStorageQueries","invalidatePaymentsQueries","invalidateConnectedAppsQueries","invalidateAuthMethodsQueries","upsertCachedUser","upsertCachedUsers","CLEARABLE_USER_FIELDS","clearedFieldsFromProfileUpdate","clearedFieldsFromAccountUpdate","useMutationStatus","useOnlineStatus","useOxyEvent","handleAuthError","isInvalidSessionError","isTimeoutOrNetworkError","extractErrorMessage","useFileFiltering","OXY_OAUTH_STATE_STORAGE_KEY","OXY_OAUTH_CODE_VERIFIER_STORAGE_KEY","OxySignInButton","openOAuthPopup","OxyAuthPrompt","OxyOAuthCallback","OxyConsentScreen","RequireOxyAuth","FollowButton","FollowTargetButton","buildFollowMenuItems","resolveFollowPrimaryAction","FOLLOW_ACTION_LEAVES_ACTIVE","useFollowTarget","useFollowTargetStore","UNKNOWN_FOLLOW_STATUS","isFollowedGlobally","withApplicationMode","isCompleteFollowStatus","followRecordToStatus","followRecordsToStatusMap","OxyPayButton","LogoIcon","LogoText","ProfileButton","OxyAuthChooser","OxySignInRequestSurface","useSwitchableAccounts","ProfileScreen","ManageAccountScreen","NotificationsScreen","PreferencesScreen","ConnectedAppsScreen","CreateAccountScreen","AccountMembersScreen","AccountSettingsScreen","showBottomSheet","closeBottomSheet","useSurfaceHeader","SurfaceHeaderAction","openAccountDialog","closeAccountDialog","subscribeToAccountDialog"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,SAASA,aAAa,QAAyB,aAAa;AAC5D,SAASC,QAAQ,QAAQ,cAAc;AACvCD,aAAa,CAACC,QAAQ,CAACC,EAAgB,CAAC;;AAExC;AACA;AACA;AACA,SAASC,OAAO,IAAIC,WAAW,QAAQ,gCAA6B;AACpE,SAASC,MAAM,QAAQ,4BAAyB;AAEhD,SAASC,OAAO,QAAQ,uBAAoB;AAE5C;AACA;AACA;AACA,SAASC,yBAAyB,QAAQ,iCAA8B;;AAExE;AACA;AACA;AACA,SAASC,YAAY,QAAQ,0BAAuB;AACpD,SAASC,eAAe,QAAQ,6BAA0B;AAC1D,SACIC,aAAa,EACbC,SAAS,IAAIC,cAAc,EAC3BC,QAAQ,EACRC,iBAAiB,EACjBC,eAAe,EACfC,cAAc,EACdC,cAAc,EACdC,iBAAiB,EACjBC,kBAAkB,EAClBC,gBAAgB,QACb,2BAAwB;;AAE/B;AACA;AACA;AACA,SAAST,SAAS,EAAEU,mBAAmB,QAAQ,yBAAsB;AACrE,SAASC,kBAAkB,QAAQ,kCAA+B;AAClE,SAASC,SAAS,EAAEC,iBAAiB,EAAEC,qBAAqB,QAAQ,yBAAsB;AAC1F,SAASC,UAAU,QAAQ,0BAAuB;AAGlD;AACA;AACA;AACA,SACIC,cAAc,EACdC,eAAe,EACfC,cAAc,EACdC,WAAW,EACXC,iBAAiB,EACjBC,kBAAkB,EAClBC,kBAAkB,EAClBC,gBAAgB,QACb,yCAAsC;AAC7C,SACIC,WAAW,EACXC,UAAU,EACVC,iBAAiB,EACjBC,cAAc,EACdC,eAAe,EACfC,sBAAsB,QACnB,0CAAuC;AAC9C,SACIC,mBAAmB,EACnBC,yBAAyB,EACzBC,2BAA2B,QACxB,0CAAuC;AAC9C,SAASC,cAAc,QAAQ,sCAAmC;AAClE,SACIC,mBAAmB,EACnBC,eAAe,EACfC,aAAa,EACbC,yBAAyB,QACtB,yCAAsC;;AAE7C;;AAeA;AACA;AACA;AACA,SACIC,gBAAgB,EAChBC,eAAe,EACfC,wBAAwB,EACxBC,wBAAwB,EACxBC,gCAAgC,EAChCC,wBAAwB,EACxBC,qBAAqB,EACrBC,aAAa,QACV,6CAA0C;AACjD,SACIC,gBAAgB,EAChBC,gBAAgB,EAChBC,YAAY,EACZC,mBAAmB,EACnBC,eAAe,QACZ,8CAA2C;AAClD,SACIC,qBAAqB,EACrBC,qBAAqB,QAClB,yCAAsC;AAM7C;AACA,SAASC,YAAY,QAAQ,sCAAmC;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA,SACIC,SAAS,EACTC,wBAAwB,EACxBC,qBAAqB,EACrBC,wBAAwB,EACxBC,uBAAuB,EACvBC,wBAAwB,EACxBC,yBAAyB,EACzBC,wBAAwB,EACxBC,yBAAyB,EACzBC,8BAA8B,EAC9BC,4BAA4B,QACzB,iCAA8B;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SACIC,gBAAgB,EAChBC,iBAAiB,EACjBC,qBAAqB,EACrBC,8BAA8B,EAC9BC,8BAA8B,QAC3B,iCAA8B;AAOrC;AACA,SAASC,iBAAiB,QAAQ,iCAA8B;AAEhE,SAASC,eAAe,QAAQ,+BAA4B;AAC5D,SAASC,WAAW,QAAQ,2BAAwB;;AAEpD;AACA;AACA;AACA,SACIC,eAAe,EACfC,qBAAqB,EACrBC,uBAAuB,EACvBC,mBAAmB,QAChB,6BAA0B;AAGjC;AACA;AACA;AACA,SAASC,gBAAgB,QAAQ,gCAA6B;AAG9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SACEC,2BAA2B,EAC3BC,mCAAmC,QAC9B,aAAa;AACpB,SAASvF,OAAO,IAAIwF,eAAe,QAAQ,oCAAiC;AAG5E;AACA;AACA;AACA;AACA,SAASC,cAAc,QAAQ,0BAAuB;AAUtD,SAASC,aAAa,QAAQ,kCAA+B;AAE7D,SAASC,gBAAgB,QAAQ,qCAAkC;AAEnE,SAASC,gBAAgB,QAAQ,qCAAkC;AAOnE;AACA;AACA;AACA;AACA;AACA,SAASC,cAAc,QAAQ,mCAAgC;AAG/D,SAAS7F,OAAO,IAAI8F,YAAY,QAAQ,iCAA8B;AAEtE;AACA,SACEC,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACAC,oBAAoB,EACpBC,0BAA0B,EAC1BC,2BAA2B,QACtB,uCAAoC;AAO3C,SAASC,eAAe,QAAQ,+BAA4B;AAE5D,SACEC,oBAAoB,EACpBC,qBAAqB;AACrB;AACA;AACA;AACAC,kBAAkB,EAClBC,mBAAmB;AACnB;AACA;AACAC,sBAAsB,EACtBC,oBAAoB,EACpBC,wBAAwB,QACnB,kCAA+B;AACtC,SAAS1G,OAAO,IAAI2G,YAAY,QAAQ,iCAA8B;AACtE,SAASC,QAAQ,QAAQ,kCAA+B;AACxD,SAASC,QAAQ,QAAQ,kCAA+B;;AAExD;AACA;AACA;AACA,SAAS7G,OAAO,IAAI8G,aAAa,QAAQ,kCAA+B;AAIxE;AACA;AACA;AACA;AACA;AACA,SAAS9G,OAAO,IAAI+G,cAAc,QAAQ,mCAAgC;AAG1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,uBAAuB,QAAQ,4CAAyC;AAIjF;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,qBAAqB,QAAQ,qCAAkC;AAGxE;AACA,SAASjH,OAAO,IAAIkH,aAAa,QAAQ,+BAA4B;AACrE,SAASlH,OAAO,IAAImH,mBAAmB,QAAQ,qCAAkC;AACjF,SAASnH,OAAO,IAAIoH,mBAAmB,QAAQ,qCAAkC;AACjF,SAASpH,OAAO,IAAIqH,iBAAiB,QAAQ,mCAAgC;AAC7E,SAASrH,OAAO,IAAIsH,mBAAmB,QAAQ,qCAAkC;;AAEjF;AACA,SAAStH,OAAO,IAAIuH,mBAAmB,QAAQ,qCAAkC;AACjF,SAASvH,OAAO,IAAIwH,oBAAoB,QAAQ,sCAAmC;AACnF,SAASxH,OAAO,IAAIyH,qBAAqB,QAAQ,uCAAoC;;AAErF;AACA;AACA;AACA,SAASC,eAAe,EAAEC,gBAAgB,QAAQ,uCAAoC;AAGtF;AACA;AACA;AACA,SAASC,gBAAgB,QAAmC,gCAA6B;AACzF,SAASC,mBAAmB,QAAuC,wCAAqC;;AAExG;AACA;AACA;AACA;AACA,SACEC,iBAAiB,EACjBC,kBAAkB,EAClBC,wBAAwB,QACnB,yCAAsC","ignoreList":[]}
1
+ {"version":3,"names":["setPlatformOS","Platform","OS","default","OxyProvider","useOxy","useOptionalOxy","OxyProviderMissingError","useOxyRuntime","useOxySnapshot","useActiveAccount","useDeviceDirectory","OxyRuntimeMissingError","useAuth","IdentityBoundSessionError","useAuthStore","useAssetStore","useAssets","useAssetsStore","useAsset","useUploadProgress","useAssetLoading","useAssetErrors","useAssetsByApp","useAssetsByEntity","useAssetUsageCount","useIsAssetLinked","setOxyAssetInstance","useFileDownloadUrl","useFollow","useFollowerCounts","useSeedFollowStatuses","useStorage","useUserProfile","useUserProfiles","useCurrentUser","useUserById","useUserByUsername","useUsersBySessions","usePrivacySettings","useConnectedApps","useSessions","useSession","useDeviceSessions","useUserDevices","useSecurityInfo","useAccountStorageUsage","useSecurityActivity","useRecentSecurityActivity","useInfiniteSecurityActivity","useAuthMethods","useUserSubscription","useUserPayments","useUserWallet","useUserWalletTransactions","useUpdateProfile","useUploadAvatar","useUpdateAccountSettings","useUpdatePrivacySettings","useUpdateNotificationPreferences","useUpdateUserPreferences","useRevokeConnectedApp","useUploadFile","useSwitchSession","useLogoutSession","useLogoutAll","useUpdateDeviceName","useRemoveDevice","createProfileMutation","createGenericMutation","mutationKeys","queryKeys","invalidateAccountQueries","invalidateUserQueries","invalidateSessionQueries","invalidateDeviceQueries","invalidatePrivacyQueries","invalidateSecurityQueries","invalidateStorageQueries","invalidatePaymentsQueries","invalidateConnectedAppsQueries","invalidateAuthMethodsQueries","upsertCachedUser","upsertCachedUsers","CLEARABLE_USER_FIELDS","clearedFieldsFromProfileUpdate","clearedFieldsFromAccountUpdate","useMutationStatus","useOnlineStatus","useOxyEvent","handleAuthError","isInvalidSessionError","isTimeoutOrNetworkError","extractErrorMessage","useFileFiltering","OXY_OAUTH_STATE_STORAGE_KEY","OXY_OAUTH_CODE_VERIFIER_STORAGE_KEY","OxySignInButton","openOAuthPopup","OxyAuthPrompt","OxyOAuthCallback","OxyConsentScreen","RequireOxyAuth","FollowButton","FollowTargetButton","buildFollowMenuItems","resolveFollowPrimaryAction","FOLLOW_ACTION_LEAVES_ACTIVE","useFollowTarget","useFollowTargetStore","UNKNOWN_FOLLOW_STATUS","isFollowedGlobally","withApplicationMode","isCompleteFollowStatus","followRecordToStatus","followRecordsToStatusMap","OxyPayButton","LogoIcon","LogoText","ProfileButton","OxyAuthChooser","OxySignInRequestSurface","useDeviceSwitcher","ProfileScreen","ManageAccountScreen","NotificationsScreen","PreferencesScreen","ConnectedAppsScreen","CreateAccountScreen","AccountMembersScreen","AccountSettingsScreen","showBottomSheet","closeBottomSheet","useSurfaceHeader","SurfaceHeaderAction","openAccountDialog","closeAccountDialog","subscribeToAccountDialog"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { logger as loggerUtil, runSessionColdBoot } from '@oxyhq/core';
4
4
  import { loadPersistedDeviceCredential } from "../utils/deviceCredential.js";
5
+ import { createPlatformSharedDeviceCredentialStore } from "../session/sharedDeviceCredentialStore.js";
5
6
  import { tryCompleteOAuthReturn } from "../utils/oauthReturn.js";
6
7
  import { isWebBrowser } from "../utils/isWebBrowser.js";
7
8
  import { isNetConnectivityExplicitlyOffline } from "../utils/netConnectivity.js";
@@ -126,6 +127,12 @@ export async function runProviderColdBoot(opts) {
126
127
  },
127
128
  sessionMode,
128
129
  identity,
130
+ // The device-wide shared credential slot, enabling the `shared-device-adopt`
131
+ // lane: a newly installed official app joins this device's existing session
132
+ // instead of falling back to signing a challenge with the Commons identity
133
+ // key. `null` on web, where each origin is its own device by design; the
134
+ // core lane is also skipped outright in `sessionMode: 'identity'`.
135
+ sharedDeviceCredential: createPlatformSharedDeviceCredentialStore() ?? undefined,
129
136
  overallDeadlineMs: COLD_BOOT_OVERALL_DEADLINE_MS,
130
137
  isOffline: () => offline,
131
138
  onStepDeadline: stepId => {
@@ -1 +1 @@
1
- {"version":3,"names":["logger","loggerUtil","runSessionColdBoot","loadPersistedDeviceCredential","tryCompleteOAuthReturn","isWebBrowser","isNetConnectivityExplicitlyOffline","SESSION_HANDOFF_DEADLINE_MS","COLD_BOOT_OVERALL_DEADLINE_MS","OFFLINE_PROBE_TIMEOUT_MS","detectOfflineHint","online","globalThis","navigator","onLine","NetInfo","state","Promise","race","default","fetch","resolve","setTimeout","runProviderColdBoot","opts","oxyServices","authStore","clientId","authRedirectUri","sessionMode","identity","sessionClient","syncDeviceCredentialToHost","commitSession","markAuthResolved","setTokenReady","identityBound","oauthCompleted","input","activate","offline","oxy","store","platform","isWeb","isNative","overallDeadlineMs","isOffline","onStepDeadline","stepId","warn","component","method","onSession","session","handoff","sessionId","accessToken","userId","handoffDeadlineId","finally","undefined","clearTimeout","onSignedOut","cred","start","socketError","__DEV__","debug","onStepError","id","error","Error","String"],"sourceRoot":"../../../../src","sources":["ui/boot/runProviderColdBoot.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["logger","loggerUtil","runSessionColdBoot","loadPersistedDeviceCredential","createPlatformSharedDeviceCredentialStore","tryCompleteOAuthReturn","isWebBrowser","isNetConnectivityExplicitlyOffline","SESSION_HANDOFF_DEADLINE_MS","COLD_BOOT_OVERALL_DEADLINE_MS","OFFLINE_PROBE_TIMEOUT_MS","detectOfflineHint","online","globalThis","navigator","onLine","NetInfo","state","Promise","race","default","fetch","resolve","setTimeout","runProviderColdBoot","opts","oxyServices","authStore","clientId","authRedirectUri","sessionMode","identity","sessionClient","syncDeviceCredentialToHost","commitSession","markAuthResolved","setTokenReady","identityBound","oauthCompleted","input","activate","offline","oxy","store","platform","isWeb","isNative","sharedDeviceCredential","undefined","overallDeadlineMs","isOffline","onStepDeadline","stepId","warn","component","method","onSession","session","handoff","sessionId","accessToken","userId","handoffDeadlineId","finally","clearTimeout","onSignedOut","cred","start","socketError","__DEV__","debug","onStepError","id","error","Error","String"],"sourceRoot":"../../../../src","sources":["ui/boot/runProviderColdBoot.ts"],"mappings":"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","ignoreList":[]}
@@ -20,7 +20,7 @@ export { default as FollowButton } from "./components/FollowButton.js";
20
20
  export { default as OxyPayButton } from "./components/OxyPayButton.js";
21
21
 
22
22
  // Context
23
- export { useOxy } from "./context/OxyContext.js";
23
+ export { useOxy, useOptionalOxy, OxyProviderMissingError } from "./context/OxyContext.js";
24
24
 
25
25
  // Hooks
26
26
  export { useAuth } from "./hooks/useAuth.js";
@@ -32,7 +32,6 @@ export { default as ManageAccountScreen } from "./screens/ManageAccountScreen.js
32
32
 
33
33
  // Stores
34
34
  export { useAuthStore } from "./stores/authStore.js";
35
- export { useAccountStore } from "./stores/accountStore.js";
36
35
 
37
36
  // Error handler utilities
38
37
  export { handleAuthError, isInvalidSessionError, isTimeoutOrNetworkError, extractErrorMessage } from "./utils/errorHandlers.js";
@@ -1 +1 @@
1
- {"version":3,"names":["default","OxyProvider","OxySignInButton","OxyAuthPrompt","LogoIcon","LogoText","FollowButton","OxyPayButton","useOxy","useAuth","useFollow","useStorage","ProfileScreen","ManageAccountScreen","useAuthStore","useAccountStore","handleAuthError","isInvalidSessionError","isTimeoutOrNetworkError","extractErrorMessage"],"sourceRoot":"../../../src","sources":["ui/client.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASA,OAAO,IAAIC,WAAW,QAAQ,6BAA0B;AACjE,SAASD,OAAO,IAAIE,eAAe,QAAQ,iCAA8B;AACzE,SAASF,OAAO,IAAIG,aAAa,QAAQ,+BAA4B;AAErE,SAASC,QAAQ,QAAQ,+BAA4B;AACrD,SAASC,QAAQ,QAAQ,+BAA4B;AACrD,SAASL,OAAO,IAAIM,YAAY,QAAQ,8BAA2B;AACnE,SAASN,OAAO,IAAIO,YAAY,QAAQ,8BAA2B;;AAEnE;AACA,SAASC,MAAM,QAAQ,yBAAsB;;AAE7C;AACA,SAASC,OAAO,QAAQ,oBAAiB;AAEzC,SAASC,SAAS,QAAQ,sBAAmB;AAC7C,SAASC,UAAU,QAAQ,uBAAoB;AAG/C;AACA,SAASX,OAAO,IAAIY,aAAa,QAAQ,4BAAyB;AAClE,SAASZ,OAAO,IAAIa,mBAAmB,QAAQ,kCAA+B;;AAE9E;AACA,SAASC,YAAY,QAAQ,uBAAoB;AACjD,SAASC,eAAe,QAAQ,0BAAuB;;AAEvD;AACA,SACIC,eAAe,EACfC,qBAAqB,EACrBC,uBAAuB,EACvBC,mBAAmB,QAChB,0BAAuB","ignoreList":[]}
1
+ {"version":3,"names":["default","OxyProvider","OxySignInButton","OxyAuthPrompt","LogoIcon","LogoText","FollowButton","OxyPayButton","useOxy","useOptionalOxy","OxyProviderMissingError","useAuth","useFollow","useStorage","ProfileScreen","ManageAccountScreen","useAuthStore","handleAuthError","isInvalidSessionError","isTimeoutOrNetworkError","extractErrorMessage"],"sourceRoot":"../../../src","sources":["ui/client.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASA,OAAO,IAAIC,WAAW,QAAQ,6BAA0B;AACjE,SAASD,OAAO,IAAIE,eAAe,QAAQ,iCAA8B;AACzE,SAASF,OAAO,IAAIG,aAAa,QAAQ,+BAA4B;AAErE,SAASC,QAAQ,QAAQ,+BAA4B;AACrD,SAASC,QAAQ,QAAQ,+BAA4B;AACrD,SAASL,OAAO,IAAIM,YAAY,QAAQ,8BAA2B;AACnE,SAASN,OAAO,IAAIO,YAAY,QAAQ,8BAA2B;;AAEnE;AACA,SAASC,MAAM,EAAEC,cAAc,EAAEC,uBAAuB,QAAQ,yBAAsB;;AAEtF;AACA,SAASC,OAAO,QAAQ,oBAAiB;AAEzC,SAASC,SAAS,QAAQ,sBAAmB;AAC7C,SAASC,UAAU,QAAQ,uBAAoB;AAG/C;AACA,SAASb,OAAO,IAAIc,aAAa,QAAQ,4BAAyB;AAClE,SAASd,OAAO,IAAIe,mBAAmB,QAAQ,kCAA+B;;AAE9E;AACA,SAASC,YAAY,QAAQ,uBAAoB;;AAEjD;AACA,SACIC,eAAe,EACfC,qBAAqB,EACrBC,uBAAuB,EACvBC,mBAAmB,QAChB,0BAAuB","ignoreList":[]}
@@ -30,6 +30,7 @@ import { useI18n } from "../hooks/useI18n.js";
30
30
  import { useSurfaceHeader } from "../hooks/useSurfaceHeader.js";
31
31
  import LogoText from "./logo/LogoText.js";
32
32
  import OxyAuthChooser from "./OxyAuthChooser.js";
33
+ import { EMPTY_ACCOUNT_DIALOG_SNAPSHOT } from "../hooks/accountDialogSnapshot.js";
33
34
  import { jsx as _jsx } from "react/jsx-runtime";
34
35
  /**
35
36
  * The account MENU's nav bar carries the Oxy wordmark instead of a title — the
@@ -67,14 +68,17 @@ const OxyAccountDialogScreen = ({
67
68
 
68
69
  // A lightweight, header-only binding to the same controller `OxyAuthChooser`
69
70
  // binds independently — cheap, and the established pattern here (
70
- // `useSwitchableAccounts` also binds to this controller on its own).
71
+ // `useDeviceSwitcher` also binds to this controller on its own).
71
72
  const subscribe = useCallback(listener => controller ? controller.subscribe(listener) : () => undefined, [controller]);
72
- const getSnapshot = useCallback(() => controller ? controller.getSnapshot() : EMPTY_SNAPSHOT, [controller]);
73
+ const getSnapshot = useCallback(() => controller ? controller.getSnapshot() : EMPTY_ACCOUNT_DIALOG_SNAPSHOT, [controller]);
73
74
  const snapshot = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
74
75
  const {
75
76
  view
76
77
  } = snapshot;
77
- const showBack = view === 'qr' || view === 'signup' || view === 'add' && snapshot.accounts.length > 0;
78
+ // "Add another account" only makes sense as a back destination when there IS
79
+ // another — i.e. somebody is already signed in on this device.
80
+ const hasSignedInAccounts = (snapshot.directory?.principals.length ?? 0) > 0;
81
+ const showBack = view === 'qr' || view === 'signup' || view === 'add' && hasSignedInAccounts;
78
82
  const goToAccounts = useCallback(() => {
79
83
  if (!controller) return;
80
84
  const {
@@ -100,7 +104,7 @@ const OxyAccountDialogScreen = ({
100
104
  // by the bar. Every OTHER view keeps the SHARED Dialog nav header the rest of
101
105
  // the SDK uses — a large in-content title/subtitle that collapses into the bar
102
106
  // on scroll — because their copy is informative.
103
- const copy = view === 'accounts' ? null : headerCopy(view, snapshot.accounts.length, t);
107
+ const copy = view === 'accounts' ? null : headerCopy(view, hasSignedInAccounts, t);
104
108
  useSurfaceHeader({
105
109
  titleContent: copy ? undefined : NAV_LOGO,
106
110
  title: copy?.title,
@@ -122,7 +126,7 @@ const OxyAccountDialogScreen = ({
122
126
  // Copy + helpers
123
127
  // ---------------------------------------------------------------------------
124
128
 
125
- function headerCopy(view, accountCount, t) {
129
+ function headerCopy(view, hasSignedInAccounts, t) {
126
130
  switch (view) {
127
131
  // The ACTIVE REQUEST. Its header is deliberately route-AGNOSTIC: Oxy picks
128
132
  // the delivery route (QR here, a push to the user's phone, or opening
@@ -141,7 +145,7 @@ function headerCopy(view, accountCount, t) {
141
145
  subtitle: t('signup.subtitle') || 'One identity for the whole ecosystem.'
142
146
  };
143
147
  default:
144
- return accountCount > 0 ? {
148
+ return hasSignedInAccounts ? {
145
149
  title: t('signin.addAccountTitle') || 'Add another account',
146
150
  subtitle: t('signin.addAccountSubtitle') || 'Sign in with another account.'
147
151
  } : {
@@ -150,27 +154,6 @@ function headerCopy(view, accountCount, t) {
150
154
  };
151
155
  }
152
156
  }
153
- const EMPTY_SNAPSHOT = {
154
- view: 'accounts',
155
- accounts: [],
156
- activeAccountId: null,
157
- loading: false,
158
- error: null,
159
- switchingAccountId: null,
160
- signIn: {
161
- phase: 'idle',
162
- authorizeCode: null,
163
- qrPayload: null,
164
- expiresAt: null,
165
- error: null,
166
- route: null,
167
- routeFailed: false,
168
- pushSentAt: null,
169
- openedAt: null,
170
- progress: 'idle'
171
- },
172
- commonsAvailability: 'unknown'
173
- };
174
157
 
175
158
  /**
176
159
  * The screen gutter. In the Dialog's nav-header mode the surface adds NO content
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useSyncExternalStore","StyleSheet","View","useOxy","useI18n","useSurfaceHeader","LogoText","OxyAuthChooser","jsx","_jsx","NAV_LOGO","height","OxyAccountDialogScreen","canGoBack","accountDialogController","controller","closeAccountDialog","t","subscribe","listener","undefined","getSnapshot","EMPTY_SNAPSHOT","snapshot","view","showBack","accounts","length","goToAccounts","currentView","signIn","phase","cancelSignIn","setView","backsToHost","copy","headerCopy","titleContent","title","subtitle","onBack","style","styles","bodyContent","children","onComplete","accountCount","activeAccountId","loading","error","switchingAccountId","authorizeCode","qrPayload","expiresAt","route","routeFailed","pushSentAt","openedAt","progress","commonsAvailability","SCREEN_MARGIN","create","paddingTop","paddingBottom","paddingHorizontal"],"sourceRoot":"../../../../src","sources":["ui/components/OxyAccountDialogScreen.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useSyncExternalStore","StyleSheet","View","useOxy","useI18n","useSurfaceHeader","LogoText","OxyAuthChooser","EMPTY_ACCOUNT_DIALOG_SNAPSHOT","jsx","_jsx","NAV_LOGO","height","OxyAccountDialogScreen","canGoBack","accountDialogController","controller","closeAccountDialog","t","subscribe","listener","undefined","getSnapshot","snapshot","view","hasSignedInAccounts","directory","principals","length","showBack","goToAccounts","currentView","signIn","phase","cancelSignIn","setView","backsToHost","copy","headerCopy","titleContent","title","subtitle","onBack","style","styles","bodyContent","children","onComplete","SCREEN_MARGIN","create","paddingTop","paddingBottom","paddingHorizontal"],"sourceRoot":"../../../../src","sources":["ui/components/OxyAccountDialogScreen.tsx"],"mappings":"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","ignoreList":[]}