@oxyhq/services 27.1.3 → 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 (387) hide show
  1. package/LICENSE +202 -661
  2. package/NOTICE +16 -0
  3. package/README.md +67 -2
  4. package/android/src/main/java/so/oxy/devicesession/OxyDeviceSessionModule.kt +178 -0
  5. package/android/src/main/java/so/oxy/devicesession/OxyDeviceSessionProvider.kt +99 -0
  6. package/android/src/main/java/so/oxy/devicesession/OxyDeviceSessionStore.kt +115 -0
  7. package/expo-module.config.json +1 -0
  8. package/lib/commonjs/index.js +78 -16
  9. package/lib/commonjs/index.js.map +1 -1
  10. package/lib/commonjs/ui/boot/runProviderColdBoot.js +7 -0
  11. package/lib/commonjs/ui/boot/runProviderColdBoot.js.map +1 -1
  12. package/lib/commonjs/ui/client.js +12 -7
  13. package/lib/commonjs/ui/client.js.map +1 -1
  14. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js +10 -27
  15. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js.map +1 -1
  16. package/lib/commonjs/ui/components/OxyAuthChooser.js +132 -44
  17. package/lib/commonjs/ui/components/OxyAuthChooser.js.map +1 -1
  18. package/lib/commonjs/ui/components/OxyProvider.js +4 -2
  19. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  20. package/lib/commonjs/ui/components/SurfaceScreen.js +31 -3
  21. package/lib/commonjs/ui/components/SurfaceScreen.js.map +1 -1
  22. package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js +209 -84
  23. package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js.map +1 -1
  24. package/lib/commonjs/ui/components/authChooser/SignInEntryView.js +25 -7
  25. package/lib/commonjs/ui/components/authChooser/SignInEntryView.js.map +1 -1
  26. package/lib/commonjs/ui/components/authChooser/primitives.js +35 -22
  27. package/lib/commonjs/ui/components/authChooser/primitives.js.map +1 -1
  28. package/lib/commonjs/ui/components/authChooser/signInProgress.js +5 -0
  29. package/lib/commonjs/ui/components/authChooser/signInProgress.js.map +1 -1
  30. package/lib/commonjs/ui/components/authChooser/types.js +11 -0
  31. package/lib/commonjs/ui/components/authChooser/types.js.map +1 -1
  32. package/lib/commonjs/ui/context/OxyContext.js +257 -306
  33. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  34. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +27 -37
  35. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  36. package/lib/commonjs/ui/context/oxyContextHelpers.js +0 -29
  37. package/lib/commonjs/ui/context/oxyContextHelpers.js.map +1 -1
  38. package/lib/commonjs/ui/context/useOxyAccountGraph.js +6 -17
  39. package/lib/commonjs/ui/context/useOxyAccountGraph.js.map +1 -1
  40. package/lib/commonjs/ui/hooks/accountDialogSnapshot.js +42 -0
  41. package/lib/commonjs/ui/hooks/accountDialogSnapshot.js.map +1 -0
  42. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +0 -19
  43. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  44. package/lib/commonjs/ui/hooks/useDeviceSwitcher.js +57 -0
  45. package/lib/commonjs/ui/hooks/useDeviceSwitcher.js.map +1 -0
  46. package/lib/commonjs/ui/hooks/useI18n.js +22 -3
  47. package/lib/commonjs/ui/hooks/useI18n.js.map +1 -1
  48. package/lib/commonjs/ui/hooks/useSessionManagement.js +46 -153
  49. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
  50. package/lib/commonjs/ui/index.js +12 -7
  51. package/lib/commonjs/ui/index.js.map +1 -1
  52. package/lib/commonjs/ui/navigation/routes.js +85 -73
  53. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  54. package/lib/commonjs/ui/navigation/surfaces.js +8 -7
  55. package/lib/commonjs/ui/navigation/surfaces.js.map +1 -1
  56. package/lib/commonjs/ui/runtime/createOxyRuntime.js +433 -0
  57. package/lib/commonjs/ui/runtime/createOxyRuntime.js.map +1 -0
  58. package/lib/commonjs/ui/runtime/index.js +63 -0
  59. package/lib/commonjs/ui/runtime/index.js.map +1 -0
  60. package/lib/commonjs/ui/runtime/runtimeContext.js +83 -0
  61. package/lib/commonjs/ui/runtime/runtimeContext.js.map +1 -0
  62. package/lib/commonjs/ui/runtime/types.js +6 -0
  63. package/lib/commonjs/ui/runtime/types.js.map +1 -0
  64. package/lib/commonjs/ui/runtime/useRuntimeSnapshot.js +57 -0
  65. package/lib/commonjs/ui/runtime/useRuntimeSnapshot.js.map +1 -0
  66. package/lib/commonjs/ui/screens/AccountMembersScreen.js +3 -4
  67. package/lib/commonjs/ui/screens/AccountMembersScreen.js.map +1 -1
  68. package/lib/commonjs/ui/screens/CreateAccountScreen.js +3 -12
  69. package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
  70. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js +6 -5
  71. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  72. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +4 -4
  73. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  74. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js +1 -1
  75. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js +4 -2
  76. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  77. package/lib/commonjs/ui/server.js +1 -2
  78. package/lib/commonjs/ui/server.js.map +1 -1
  79. package/lib/commonjs/ui/session/authStore.js +45 -9
  80. package/lib/commonjs/ui/session/authStore.js.map +1 -1
  81. package/lib/commonjs/ui/session/sharedDeviceCredentialStore.js +306 -0
  82. package/lib/commonjs/ui/session/sharedDeviceCredentialStore.js.map +1 -0
  83. package/lib/commonjs/ui/stores/authStore.js +154 -55
  84. package/lib/commonjs/ui/stores/authStore.js.map +1 -1
  85. package/lib/commonjs/ui/stores/followTargetStore.js +27 -0
  86. package/lib/commonjs/ui/stores/followTargetStore.js.map +1 -1
  87. package/lib/commonjs/ui/utils/avatarUtils.js +2 -36
  88. package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
  89. package/lib/module/index.js +20 -9
  90. package/lib/module/index.js.map +1 -1
  91. package/lib/module/ui/boot/runProviderColdBoot.js +7 -0
  92. package/lib/module/ui/boot/runProviderColdBoot.js.map +1 -1
  93. package/lib/module/ui/client.js +1 -2
  94. package/lib/module/ui/client.js.map +1 -1
  95. package/lib/module/ui/components/OxyAccountDialogScreen.js +10 -27
  96. package/lib/module/ui/components/OxyAccountDialogScreen.js.map +1 -1
  97. package/lib/module/ui/components/OxyAuthChooser.js +134 -44
  98. package/lib/module/ui/components/OxyAuthChooser.js.map +1 -1
  99. package/lib/module/ui/components/OxyProvider.js +5 -3
  100. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  101. package/lib/module/ui/components/SurfaceScreen.js +33 -5
  102. package/lib/module/ui/components/SurfaceScreen.js.map +1 -1
  103. package/lib/module/ui/components/authChooser/AccountsMenuView.js +210 -85
  104. package/lib/module/ui/components/authChooser/AccountsMenuView.js.map +1 -1
  105. package/lib/module/ui/components/authChooser/SignInEntryView.js +25 -7
  106. package/lib/module/ui/components/authChooser/SignInEntryView.js.map +1 -1
  107. package/lib/module/ui/components/authChooser/primitives.js +35 -22
  108. package/lib/module/ui/components/authChooser/primitives.js.map +1 -1
  109. package/lib/module/ui/components/authChooser/signInProgress.js +5 -0
  110. package/lib/module/ui/components/authChooser/signInProgress.js.map +1 -1
  111. package/lib/module/ui/components/authChooser/types.js +11 -0
  112. package/lib/module/ui/components/authChooser/types.js.map +1 -1
  113. package/lib/module/ui/context/OxyContext.js +251 -303
  114. package/lib/module/ui/context/OxyContext.js.map +1 -1
  115. package/lib/module/ui/context/hooks/useAuthOperations.js +27 -37
  116. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  117. package/lib/module/ui/context/oxyContextHelpers.js +0 -28
  118. package/lib/module/ui/context/oxyContextHelpers.js.map +1 -1
  119. package/lib/module/ui/context/useOxyAccountGraph.js +6 -17
  120. package/lib/module/ui/context/useOxyAccountGraph.js.map +1 -1
  121. package/lib/module/ui/hooks/accountDialogSnapshot.js +38 -0
  122. package/lib/module/ui/hooks/accountDialogSnapshot.js.map +1 -0
  123. package/lib/module/ui/hooks/mutations/useAccountMutations.js +0 -19
  124. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  125. package/lib/module/ui/hooks/useDeviceSwitcher.js +53 -0
  126. package/lib/module/ui/hooks/useDeviceSwitcher.js.map +1 -0
  127. package/lib/module/ui/hooks/useI18n.js +24 -4
  128. package/lib/module/ui/hooks/useI18n.js.map +1 -1
  129. package/lib/module/ui/hooks/useSessionManagement.js +47 -155
  130. package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
  131. package/lib/module/ui/index.js +1 -2
  132. package/lib/module/ui/index.js.map +1 -1
  133. package/lib/module/ui/navigation/routes.js +84 -72
  134. package/lib/module/ui/navigation/routes.js.map +1 -1
  135. package/lib/module/ui/navigation/surfaces.js +6 -6
  136. package/lib/module/ui/navigation/surfaces.js.map +1 -1
  137. package/lib/module/ui/runtime/createOxyRuntime.js +430 -0
  138. package/lib/module/ui/runtime/createOxyRuntime.js.map +1 -0
  139. package/lib/module/ui/runtime/index.js +15 -0
  140. package/lib/module/ui/runtime/index.js.map +1 -0
  141. package/lib/module/ui/runtime/runtimeContext.js +75 -0
  142. package/lib/module/ui/runtime/runtimeContext.js.map +1 -0
  143. package/lib/module/ui/runtime/types.js +4 -0
  144. package/lib/module/ui/runtime/types.js.map +1 -0
  145. package/lib/module/ui/runtime/useRuntimeSnapshot.js +52 -0
  146. package/lib/module/ui/runtime/useRuntimeSnapshot.js.map +1 -0
  147. package/lib/module/ui/screens/AccountMembersScreen.js +4 -5
  148. package/lib/module/ui/screens/AccountMembersScreen.js.map +1 -1
  149. package/lib/module/ui/screens/CreateAccountScreen.js +4 -13
  150. package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
  151. package/lib/module/ui/screens/trust/TrustCenterScreen.js +6 -5
  152. package/lib/module/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  153. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +5 -5
  154. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  155. package/lib/module/ui/screens/trust/TrustRewardsScreen.js +1 -1
  156. package/lib/module/ui/screens/trust/TrustRulesScreen.js +4 -2
  157. package/lib/module/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  158. package/lib/module/ui/server.js +0 -1
  159. package/lib/module/ui/server.js.map +1 -1
  160. package/lib/module/ui/session/authStore.js +46 -11
  161. package/lib/module/ui/session/authStore.js.map +1 -1
  162. package/lib/module/ui/session/sharedDeviceCredentialStore.js +302 -0
  163. package/lib/module/ui/session/sharedDeviceCredentialStore.js.map +1 -0
  164. package/lib/module/ui/stores/authStore.js +154 -55
  165. package/lib/module/ui/stores/authStore.js.map +1 -1
  166. package/lib/module/ui/stores/followTargetStore.js +25 -0
  167. package/lib/module/ui/stores/followTargetStore.js.map +1 -1
  168. package/lib/module/ui/utils/avatarUtils.js +2 -35
  169. package/lib/module/ui/utils/avatarUtils.js.map +1 -1
  170. package/lib/typescript/commonjs/index.d.ts +6 -4
  171. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  172. package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  173. package/lib/typescript/commonjs/ui/client.d.ts +1 -2
  174. package/lib/typescript/commonjs/ui/client.d.ts.map +1 -1
  175. package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
  176. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts.map +1 -1
  177. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  178. package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts.map +1 -1
  179. package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts +11 -4
  180. package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -1
  181. package/lib/typescript/commonjs/ui/components/authChooser/SignInEntryView.d.ts +3 -1
  182. package/lib/typescript/commonjs/ui/components/authChooser/SignInEntryView.d.ts.map +1 -1
  183. package/lib/typescript/commonjs/ui/components/authChooser/primitives.d.ts +18 -6
  184. package/lib/typescript/commonjs/ui/components/authChooser/primitives.d.ts.map +1 -1
  185. package/lib/typescript/commonjs/ui/components/authChooser/signInProgress.d.ts.map +1 -1
  186. package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts +33 -1
  187. package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts.map +1 -1
  188. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +35 -4
  189. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  190. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts +8 -12
  191. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  192. package/lib/typescript/commonjs/ui/context/oxyContextHelpers.d.ts +0 -2
  193. package/lib/typescript/commonjs/ui/context/oxyContextHelpers.d.ts.map +1 -1
  194. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts +9 -1
  195. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts.map +1 -1
  196. package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts +1 -3
  197. package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts.map +1 -1
  198. package/lib/typescript/commonjs/ui/hooks/accountDialogSnapshot.d.ts +15 -0
  199. package/lib/typescript/commonjs/ui/hooks/accountDialogSnapshot.d.ts.map +1 -0
  200. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  201. package/lib/typescript/commonjs/ui/hooks/useDeviceSwitcher.d.ts +49 -0
  202. package/lib/typescript/commonjs/ui/hooks/useDeviceSwitcher.d.ts.map +1 -0
  203. package/lib/typescript/commonjs/ui/hooks/useI18n.d.ts +13 -0
  204. package/lib/typescript/commonjs/ui/hooks/useI18n.d.ts.map +1 -1
  205. package/lib/typescript/commonjs/ui/hooks/useSessionManagement.d.ts +23 -18
  206. package/lib/typescript/commonjs/ui/hooks/useSessionManagement.d.ts.map +1 -1
  207. package/lib/typescript/commonjs/ui/index.d.ts +1 -2
  208. package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
  209. package/lib/typescript/commonjs/ui/navigation/routes.d.ts +15 -1
  210. package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
  211. package/lib/typescript/commonjs/ui/navigation/surfaces.d.ts.map +1 -1
  212. package/lib/typescript/commonjs/ui/runtime/createOxyRuntime.d.ts +144 -0
  213. package/lib/typescript/commonjs/ui/runtime/createOxyRuntime.d.ts.map +1 -0
  214. package/lib/typescript/commonjs/ui/runtime/index.d.ts +16 -0
  215. package/lib/typescript/commonjs/ui/runtime/index.d.ts.map +1 -0
  216. package/lib/typescript/commonjs/ui/runtime/runtimeContext.d.ts +43 -0
  217. package/lib/typescript/commonjs/ui/runtime/runtimeContext.d.ts.map +1 -0
  218. package/lib/typescript/commonjs/ui/runtime/types.d.ts +89 -0
  219. package/lib/typescript/commonjs/ui/runtime/types.d.ts.map +1 -0
  220. package/lib/typescript/commonjs/ui/runtime/useRuntimeSnapshot.d.ts +23 -0
  221. package/lib/typescript/commonjs/ui/runtime/useRuntimeSnapshot.d.ts.map +1 -0
  222. package/lib/typescript/commonjs/ui/screens/AccountMembersScreen.d.ts.map +1 -1
  223. package/lib/typescript/commonjs/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  224. package/lib/typescript/commonjs/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
  225. package/lib/typescript/commonjs/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  226. package/lib/typescript/commonjs/ui/server.d.ts +0 -1
  227. package/lib/typescript/commonjs/ui/server.d.ts.map +1 -1
  228. package/lib/typescript/commonjs/ui/session/authStore.d.ts +60 -9
  229. package/lib/typescript/commonjs/ui/session/authStore.d.ts.map +1 -1
  230. package/lib/typescript/commonjs/ui/session/sharedDeviceCredentialStore.d.ts +32 -0
  231. package/lib/typescript/commonjs/ui/session/sharedDeviceCredentialStore.d.ts.map +1 -0
  232. package/lib/typescript/commonjs/ui/stores/authStore.d.ts +49 -5
  233. package/lib/typescript/commonjs/ui/stores/authStore.d.ts.map +1 -1
  234. package/lib/typescript/commonjs/ui/stores/followTargetStore.d.ts +8 -1
  235. package/lib/typescript/commonjs/ui/stores/followTargetStore.d.ts.map +1 -1
  236. package/lib/typescript/commonjs/ui/types/navigation.d.ts +26 -0
  237. package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
  238. package/lib/typescript/commonjs/ui/utils/avatarUtils.d.ts +2 -10
  239. package/lib/typescript/commonjs/ui/utils/avatarUtils.d.ts.map +1 -1
  240. package/lib/typescript/module/index.d.ts +6 -4
  241. package/lib/typescript/module/index.d.ts.map +1 -1
  242. package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  243. package/lib/typescript/module/ui/client.d.ts +1 -2
  244. package/lib/typescript/module/ui/client.d.ts.map +1 -1
  245. package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
  246. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts.map +1 -1
  247. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  248. package/lib/typescript/module/ui/components/SurfaceScreen.d.ts.map +1 -1
  249. package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts +11 -4
  250. package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -1
  251. package/lib/typescript/module/ui/components/authChooser/SignInEntryView.d.ts +3 -1
  252. package/lib/typescript/module/ui/components/authChooser/SignInEntryView.d.ts.map +1 -1
  253. package/lib/typescript/module/ui/components/authChooser/primitives.d.ts +18 -6
  254. package/lib/typescript/module/ui/components/authChooser/primitives.d.ts.map +1 -1
  255. package/lib/typescript/module/ui/components/authChooser/signInProgress.d.ts.map +1 -1
  256. package/lib/typescript/module/ui/components/authChooser/types.d.ts +33 -1
  257. package/lib/typescript/module/ui/components/authChooser/types.d.ts.map +1 -1
  258. package/lib/typescript/module/ui/context/OxyContext.d.ts +35 -4
  259. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  260. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts +8 -12
  261. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  262. package/lib/typescript/module/ui/context/oxyContextHelpers.d.ts +0 -2
  263. package/lib/typescript/module/ui/context/oxyContextHelpers.d.ts.map +1 -1
  264. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts +9 -1
  265. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts.map +1 -1
  266. package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts +1 -3
  267. package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts.map +1 -1
  268. package/lib/typescript/module/ui/hooks/accountDialogSnapshot.d.ts +15 -0
  269. package/lib/typescript/module/ui/hooks/accountDialogSnapshot.d.ts.map +1 -0
  270. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  271. package/lib/typescript/module/ui/hooks/useDeviceSwitcher.d.ts +49 -0
  272. package/lib/typescript/module/ui/hooks/useDeviceSwitcher.d.ts.map +1 -0
  273. package/lib/typescript/module/ui/hooks/useI18n.d.ts +13 -0
  274. package/lib/typescript/module/ui/hooks/useI18n.d.ts.map +1 -1
  275. package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts +23 -18
  276. package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts.map +1 -1
  277. package/lib/typescript/module/ui/index.d.ts +1 -2
  278. package/lib/typescript/module/ui/index.d.ts.map +1 -1
  279. package/lib/typescript/module/ui/navigation/routes.d.ts +15 -1
  280. package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
  281. package/lib/typescript/module/ui/navigation/surfaces.d.ts.map +1 -1
  282. package/lib/typescript/module/ui/runtime/createOxyRuntime.d.ts +144 -0
  283. package/lib/typescript/module/ui/runtime/createOxyRuntime.d.ts.map +1 -0
  284. package/lib/typescript/module/ui/runtime/index.d.ts +16 -0
  285. package/lib/typescript/module/ui/runtime/index.d.ts.map +1 -0
  286. package/lib/typescript/module/ui/runtime/runtimeContext.d.ts +43 -0
  287. package/lib/typescript/module/ui/runtime/runtimeContext.d.ts.map +1 -0
  288. package/lib/typescript/module/ui/runtime/types.d.ts +89 -0
  289. package/lib/typescript/module/ui/runtime/types.d.ts.map +1 -0
  290. package/lib/typescript/module/ui/runtime/useRuntimeSnapshot.d.ts +23 -0
  291. package/lib/typescript/module/ui/runtime/useRuntimeSnapshot.d.ts.map +1 -0
  292. package/lib/typescript/module/ui/screens/AccountMembersScreen.d.ts.map +1 -1
  293. package/lib/typescript/module/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  294. package/lib/typescript/module/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
  295. package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  296. package/lib/typescript/module/ui/server.d.ts +0 -1
  297. package/lib/typescript/module/ui/server.d.ts.map +1 -1
  298. package/lib/typescript/module/ui/session/authStore.d.ts +60 -9
  299. package/lib/typescript/module/ui/session/authStore.d.ts.map +1 -1
  300. package/lib/typescript/module/ui/session/sharedDeviceCredentialStore.d.ts +32 -0
  301. package/lib/typescript/module/ui/session/sharedDeviceCredentialStore.d.ts.map +1 -0
  302. package/lib/typescript/module/ui/stores/authStore.d.ts +49 -5
  303. package/lib/typescript/module/ui/stores/authStore.d.ts.map +1 -1
  304. package/lib/typescript/module/ui/stores/followTargetStore.d.ts +8 -1
  305. package/lib/typescript/module/ui/stores/followTargetStore.d.ts.map +1 -1
  306. package/lib/typescript/module/ui/types/navigation.d.ts +26 -0
  307. package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
  308. package/lib/typescript/module/ui/utils/avatarUtils.d.ts +2 -10
  309. package/lib/typescript/module/ui/utils/avatarUtils.d.ts.map +1 -1
  310. package/package.json +8 -8
  311. package/plugins/withSharedDeviceSessionProvider.js +102 -0
  312. package/plugins/withSharedDeviceSessionReader.js +57 -0
  313. package/src/__tests__/esmSourcePurity.test.ts +61 -0
  314. package/src/index.ts +36 -9
  315. package/src/ui/boot/runProviderColdBoot.ts +7 -0
  316. package/src/ui/client.ts +1 -2
  317. package/src/ui/components/OxyAccountDialogScreen.tsx +10 -29
  318. package/src/ui/components/OxyAuthChooser.tsx +149 -50
  319. package/src/ui/components/OxyProvider.tsx +7 -5
  320. package/src/ui/components/SurfaceScreen.tsx +28 -4
  321. package/src/ui/components/__tests__/followTargetButton.test.ts +39 -0
  322. package/src/ui/components/authChooser/AccountsMenuView.tsx +246 -96
  323. package/src/ui/components/authChooser/SignInEntryView.tsx +31 -8
  324. package/src/ui/components/authChooser/primitives.tsx +37 -23
  325. package/src/ui/components/authChooser/signInProgress.ts +4 -0
  326. package/src/ui/components/authChooser/types.ts +34 -1
  327. package/src/ui/context/OxyContext.tsx +269 -324
  328. package/src/ui/context/hooks/useAuthOperations.ts +32 -35
  329. package/src/ui/context/oxyContextHelpers.ts +0 -30
  330. package/src/ui/context/oxyContextTypes.ts +9 -1
  331. package/src/ui/context/useOxyAccountGraph.ts +5 -19
  332. package/src/ui/hooks/accountDialogSnapshot.ts +37 -0
  333. package/src/ui/hooks/mutations/useAccountMutations.ts +0 -19
  334. package/src/ui/hooks/queries/__tests__/userCache.test.ts +12 -1
  335. package/src/ui/hooks/useDeviceSwitcher.ts +110 -0
  336. package/src/ui/hooks/useI18n.ts +23 -3
  337. package/src/ui/hooks/useSessionManagement.ts +62 -211
  338. package/src/ui/index.ts +1 -2
  339. package/src/ui/navigation/routes.ts +85 -75
  340. package/src/ui/navigation/surfaces.ts +6 -9
  341. package/src/ui/runtime/createOxyRuntime.ts +623 -0
  342. package/src/ui/runtime/index.ts +34 -0
  343. package/src/ui/runtime/runtimeContext.tsx +111 -0
  344. package/src/ui/runtime/types.ts +110 -0
  345. package/src/ui/runtime/useRuntimeSnapshot.ts +52 -0
  346. package/src/ui/screens/AccountMembersScreen.tsx +6 -5
  347. package/src/ui/screens/CreateAccountScreen.tsx +3 -16
  348. package/src/ui/screens/trust/TrustCenterScreen.tsx +7 -7
  349. package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +4 -5
  350. package/src/ui/screens/trust/TrustRewardsScreen.tsx +1 -1
  351. package/src/ui/screens/trust/TrustRulesScreen.tsx +3 -2
  352. package/src/ui/server.ts +0 -1
  353. package/src/ui/session/__tests__/authStore.test.ts +90 -0
  354. package/src/ui/session/__tests__/sharedDeviceCredentialStore.test.ts +289 -0
  355. package/src/ui/session/authStore.ts +78 -9
  356. package/src/ui/session/sharedDeviceCredentialStore.ts +318 -0
  357. package/src/ui/stores/authStore.ts +171 -43
  358. package/src/ui/stores/followTargetStore.ts +24 -1
  359. package/src/ui/types/navigation.ts +26 -0
  360. package/src/ui/utils/avatarUtils.ts +2 -37
  361. package/lib/commonjs/ui/hooks/useSwitchableAccounts.js +0 -64
  362. package/lib/commonjs/ui/hooks/useSwitchableAccounts.js.map +0 -1
  363. package/lib/commonjs/ui/screens/trust/trustTier.js +0 -23
  364. package/lib/commonjs/ui/screens/trust/trustTier.js.map +0 -1
  365. package/lib/commonjs/ui/stores/accountStore.js +0 -221
  366. package/lib/commonjs/ui/stores/accountStore.js.map +0 -1
  367. package/lib/module/ui/hooks/useSwitchableAccounts.js +0 -60
  368. package/lib/module/ui/hooks/useSwitchableAccounts.js.map +0 -1
  369. package/lib/module/ui/screens/trust/trustTier.js +0 -19
  370. package/lib/module/ui/screens/trust/trustTier.js.map +0 -1
  371. package/lib/module/ui/stores/accountStore.js +0 -213
  372. package/lib/module/ui/stores/accountStore.js.map +0 -1
  373. package/lib/typescript/commonjs/ui/hooks/useSwitchableAccounts.d.ts +0 -23
  374. package/lib/typescript/commonjs/ui/hooks/useSwitchableAccounts.d.ts.map +0 -1
  375. package/lib/typescript/commonjs/ui/screens/trust/trustTier.d.ts +0 -9
  376. package/lib/typescript/commonjs/ui/screens/trust/trustTier.d.ts.map +0 -1
  377. package/lib/typescript/commonjs/ui/stores/accountStore.d.ts +0 -27
  378. package/lib/typescript/commonjs/ui/stores/accountStore.d.ts.map +0 -1
  379. package/lib/typescript/module/ui/hooks/useSwitchableAccounts.d.ts +0 -23
  380. package/lib/typescript/module/ui/hooks/useSwitchableAccounts.d.ts.map +0 -1
  381. package/lib/typescript/module/ui/screens/trust/trustTier.d.ts +0 -9
  382. package/lib/typescript/module/ui/screens/trust/trustTier.d.ts.map +0 -1
  383. package/lib/typescript/module/ui/stores/accountStore.d.ts +0 -27
  384. package/lib/typescript/module/ui/stores/accountStore.d.ts.map +0 -1
  385. package/src/ui/hooks/useSwitchableAccounts.ts +0 -75
  386. package/src/ui/screens/trust/trustTier.ts +0 -20
  387. package/src/ui/stores/accountStore.ts +0 -264
@@ -1,64 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useSwitchableAccounts = useSwitchableAccounts;
7
- var _react = require("react");
8
- var _OxyContext = require("../context/OxyContext.js");
9
- /**
10
- * Stable empty snapshot for the no-provider loading state, so `useSyncExternalStore`
11
- * always has a getSnapshot that returns a constant reference before mount.
12
- */
13
- const EMPTY_SNAPSHOT = {
14
- view: 'accounts',
15
- accounts: [],
16
- activeAccountId: null,
17
- loading: false,
18
- error: null,
19
- switchingAccountId: null,
20
- signIn: {
21
- phase: 'idle',
22
- authorizeCode: null,
23
- qrPayload: null,
24
- expiresAt: null,
25
- error: null,
26
- route: null,
27
- routeFailed: false,
28
- pushSentAt: null,
29
- openedAt: null,
30
- progress: 'idle'
31
- },
32
- commonsAvailability: 'unknown'
33
- };
34
-
35
- /**
36
- * Every account the signed-in user can switch into — device sign-ins AND linked
37
- * graph accounts (owned orgs + shared-with-you) — as one flat, deduped list with
38
- * real per-account name / email / avatar / color.
39
- *
40
- * This is a thin binding over the shared `AccountDialogController` in
41
- * `@oxyhq/core` (the SAME headless source the {@link OxyAccountDialogScreen} renders),
42
- * so there is ONE projection (`projectSwitchableAccounts`) and one switch path
43
- * (`controller.switchTo`) across the whole SDK — the local duplicate projection
44
- * this hook used to own has been removed. Every switch routes through
45
- * `useOxy().switchToAccount(accountId)` (or the dialog's row press).
46
- */
47
- function useSwitchableAccounts() {
48
- const {
49
- accountDialogController: controller
50
- } = (0, _OxyContext.useOxy)();
51
- const subscribe = (0, _react.useCallback)(listener => controller ? controller.subscribe(listener) : () => undefined, [controller]);
52
- const getSnapshot = (0, _react.useCallback)(() => controller ? controller.getSnapshot() : EMPTY_SNAPSHOT, [controller]);
53
- const snapshot = (0, _react.useSyncExternalStore)(subscribe, getSnapshot, getSnapshot);
54
- const currentSessionId = (0, _react.useMemo)(() => {
55
- const active = snapshot.accounts.find(account => account.accountId === snapshot.activeAccountId);
56
- return active?.sessionId ?? null;
57
- }, [snapshot]);
58
- return {
59
- accounts: snapshot.accounts,
60
- isLoading: snapshot.loading,
61
- currentSessionId
62
- };
63
- }
64
- //# sourceMappingURL=useSwitchableAccounts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","require","_OxyContext","EMPTY_SNAPSHOT","view","accounts","activeAccountId","loading","error","switchingAccountId","signIn","phase","authorizeCode","qrPayload","expiresAt","route","routeFailed","pushSentAt","openedAt","progress","commonsAvailability","useSwitchableAccounts","accountDialogController","controller","useOxy","subscribe","useCallback","listener","undefined","getSnapshot","snapshot","useSyncExternalStore","currentSessionId","useMemo","active","find","account","accountId","sessionId","isLoading"],"sourceRoot":"../../../../src","sources":["ui/hooks/useSwitchableAccounts.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAWA;AACA;AACA;AACA;AACA,MAAME,cAAqC,GAAG;EAC1CC,IAAI,EAAE,UAAU;EAChBC,QAAQ,EAAE,EAAE;EACZC,eAAe,EAAE,IAAI;EACrBC,OAAO,EAAE,KAAK;EACdC,KAAK,EAAE,IAAI;EACXC,kBAAkB,EAAE,IAAI;EACxBC,MAAM,EAAE;IACJC,KAAK,EAAE,MAAM;IACbC,aAAa,EAAE,IAAI;IACnBC,SAAS,EAAE,IAAI;IACfC,SAAS,EAAE,IAAI;IACfN,KAAK,EAAE,IAAI;IACXO,KAAK,EAAE,IAAI;IACXC,WAAW,EAAE,KAAK;IAClBC,UAAU,EAAE,IAAI;IAChBC,QAAQ,EAAE,IAAI;IACdC,QAAQ,EAAE;EACd,CAAC;EACDC,mBAAmB,EAAE;AACzB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,qBAAqBA,CAAA,EAAgC;EACjE,MAAM;IAAEC,uBAAuB,EAAEC;EAAW,CAAC,GAAG,IAAAC,kBAAM,EAAC,CAAC;EAExD,MAAMC,SAAS,GAAG,IAAAC,kBAAW,EACxBC,QAAoB,IAAMJ,UAAU,GAAGA,UAAU,CAACE,SAAS,CAACE,QAAQ,CAAC,GAAG,MAAMC,SAAU,EACzF,CAACL,UAAU,CACf,CAAC;EACD,MAAMM,WAAW,GAAG,IAAAH,kBAAW,EAC3B,MAAOH,UAAU,GAAGA,UAAU,CAACM,WAAW,CAAC,CAAC,GAAG1B,cAAe,EAC9D,CAACoB,UAAU,CACf,CAAC;EACD,MAAMO,QAAQ,GAAG,IAAAC,2BAAoB,EAACN,SAAS,EAAEI,WAAW,EAAEA,WAAW,CAAC;EAE1E,MAAMG,gBAAgB,GAAG,IAAAC,cAAO,EAAgB,MAAM;IAClD,MAAMC,MAAM,GAAGJ,QAAQ,CAACzB,QAAQ,CAAC8B,IAAI,CAAEC,OAAO,IAAKA,OAAO,CAACC,SAAS,KAAKP,QAAQ,CAACxB,eAAe,CAAC;IAClG,OAAO4B,MAAM,EAAEI,SAAS,IAAI,IAAI;EACpC,CAAC,EAAE,CAACR,QAAQ,CAAC,CAAC;EAEd,OAAO;IACHzB,QAAQ,EAAEyB,QAAQ,CAACzB,QAAQ;IAC3BkC,SAAS,EAAET,QAAQ,CAACvB,OAAO;IAC3ByB;EACJ,CAAC;AACL","ignoreList":[]}
@@ -1,23 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getTrustTierLabel = getTrustTierLabel;
7
- /** Default English labels for each trust tier, used as i18n fallbacks. */
8
- const TRUST_TIER_FALLBACK = {
9
- new: 'New',
10
- trusted: 'Trusted',
11
- high_trust: 'High Trust',
12
- verified: 'Verified',
13
- restricted: 'Restricted'
14
- };
15
-
16
- /**
17
- * Resolve a human-readable label for a trust tier, preferring the localized
18
- * `trust.tiers.<tier>` key and falling back to the canonical English label.
19
- */
20
- function getTrustTierLabel(tier, t) {
21
- return t(`trust.tiers.${tier}`) || TRUST_TIER_FALLBACK[tier];
22
- }
23
- //# sourceMappingURL=trustTier.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["TRUST_TIER_FALLBACK","new","trusted","high_trust","verified","restricted","getTrustTierLabel","tier","t"],"sourceRoot":"../../../../../src","sources":["ui/screens/trust/trustTier.ts"],"mappings":";;;;;;AAIA;AACA,MAAMA,mBAA8C,GAAG;EACnDC,GAAG,EAAE,KAAK;EACVC,OAAO,EAAE,SAAS;EAClBC,UAAU,EAAE,YAAY;EACxBC,QAAQ,EAAE,UAAU;EACpBC,UAAU,EAAE;AAChB,CAAC;;AAED;AACA;AACA;AACA;AACO,SAASC,iBAAiBA,CAACC,IAAe,EAAEC,CAAY,EAAU;EACrE,OAAOA,CAAC,CAAC,eAAeD,IAAI,EAAE,CAAC,IAAIP,mBAAmB,CAACO,IAAI,CAAC;AAChE","ignoreList":[]}
@@ -1,221 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useAccounts = exports.useAccountStore = exports.useAccountLoadingSession = exports.useAccountLoading = exports.useAccountError = void 0;
7
- var _zustand = require("zustand");
8
- var _core = require("@oxyhq/core");
9
- const initialState = {
10
- accounts: {},
11
- accountOrder: [],
12
- accountsArray: [],
13
- loading: false,
14
- loadingSessionIds: new Set(),
15
- error: null
16
- };
17
- const useAccountStore = exports.useAccountStore = (0, _zustand.create)((set, get) => ({
18
- ...initialState,
19
- setAccounts: accounts => set(state => {
20
- const accountMap = {};
21
- const order = [];
22
- const seenSessionIds = new Set();
23
- for (const account of accounts) {
24
- if (seenSessionIds.has(account.sessionId)) continue;
25
- seenSessionIds.add(account.sessionId);
26
- accountMap[account.sessionId] = account;
27
- order.push(account.sessionId);
28
- }
29
- const accountsArray = (0, _core.buildAccountsArray)(accountMap, order);
30
- const sameOrder = order.length === state.accountOrder.length && order.every((id, i) => id === state.accountOrder[i]);
31
- const sameAccounts = sameOrder && order.every(id => {
32
- const existing = state.accounts[id];
33
- const newAccount = accountMap[id];
34
- return existing && existing.sessionId === newAccount.sessionId && existing.userId === newAccount.userId && existing.avatar === newAccount.avatar && existing.avatarUrl === newAccount.avatarUrl;
35
- });
36
- if (sameAccounts) return {};
37
- return {
38
- accounts: accountMap,
39
- accountOrder: order,
40
- accountsArray
41
- };
42
- }),
43
- addAccount: account => set(state => {
44
- // Check if account with same sessionId exists
45
- if (state.accounts[account.sessionId]) {
46
- // Update existing
47
- const existing = state.accounts[account.sessionId];
48
- if (existing.avatar === account.avatar && existing.avatarUrl === account.avatarUrl) {
49
- return {}; // No change
50
- }
51
- const newAccounts = {
52
- ...state.accounts,
53
- [account.sessionId]: account
54
- };
55
- return {
56
- accounts: newAccounts,
57
- accountsArray: (0, _core.buildAccountsArray)(newAccounts, state.accountOrder)
58
- };
59
- }
60
- const newAccounts = {
61
- ...state.accounts,
62
- [account.sessionId]: account
63
- };
64
- const newOrder = [account.sessionId, ...state.accountOrder];
65
- return {
66
- accounts: newAccounts,
67
- accountOrder: newOrder,
68
- accountsArray: (0, _core.buildAccountsArray)(newAccounts, newOrder)
69
- };
70
- }),
71
- updateAccount: (sessionId, updates) => set(state => {
72
- const existing = state.accounts[sessionId];
73
- if (!existing) return {};
74
- const updated = {
75
- ...existing,
76
- ...updates
77
- };
78
- if (existing.avatar === updated.avatar && existing.avatarUrl === updated.avatarUrl) {
79
- return {}; // No change
80
- }
81
- const newAccounts = {
82
- ...state.accounts,
83
- [sessionId]: updated
84
- };
85
- return {
86
- accounts: newAccounts,
87
- accountsArray: (0, _core.buildAccountsArray)(newAccounts, state.accountOrder)
88
- };
89
- }),
90
- removeAccount: sessionId => set(state => {
91
- if (!state.accounts[sessionId]) return {};
92
- const {
93
- [sessionId]: _removed,
94
- ...rest
95
- } = state.accounts;
96
- const newOrder = state.accountOrder.filter(id => id !== sessionId);
97
- return {
98
- accounts: rest,
99
- accountOrder: newOrder,
100
- accountsArray: (0, _core.buildAccountsArray)(rest, newOrder)
101
- };
102
- }),
103
- moveAccountToTop: sessionId => set(state => {
104
- if (!state.accounts[sessionId]) return {};
105
- const filtered = state.accountOrder.filter(id => id !== sessionId);
106
- const newOrder = [sessionId, ...filtered];
107
- return {
108
- accountOrder: newOrder,
109
- accountsArray: (0, _core.buildAccountsArray)(state.accounts, newOrder)
110
- };
111
- }),
112
- setLoading: loading => set({
113
- loading
114
- }),
115
- setLoadingSession: (sessionId, loading) => set(state => {
116
- const newSet = new Set(state.loadingSessionIds);
117
- if (loading) {
118
- newSet.add(sessionId);
119
- } else {
120
- newSet.delete(sessionId);
121
- }
122
- return {
123
- loadingSessionIds: newSet
124
- };
125
- }),
126
- setError: error => set({
127
- error
128
- }),
129
- loadAccounts: async (sessionIds, oxyServices, existingAccounts = [], preserveOrder = true) => {
130
- const state = get();
131
- const uniqueSessionIds = Array.from(new Set(sessionIds));
132
- if (uniqueSessionIds.length === 0) {
133
- get().setAccounts([]);
134
- return;
135
- }
136
-
137
- // Try to get data from TanStack Query cache first
138
- try {
139
- // This will be called from a component, so we need to access queryClient differently
140
- // For now, we'll keep the API call but optimize it
141
- const existingMap = new Map(existingAccounts.map(a => [a.sessionId, a]));
142
- for (const account of Object.values(state.accounts)) {
143
- existingMap.set(account.sessionId, account);
144
- }
145
- const missingSessionIds = uniqueSessionIds.filter(id => !existingMap.has(id));
146
- if (missingSessionIds.length === 0) {
147
- const ordered = uniqueSessionIds.map(id => existingMap.get(id)).filter(acc => acc !== undefined);
148
- get().setAccounts(ordered);
149
- return;
150
- }
151
- if (state.loading) {
152
- return;
153
- }
154
- set({
155
- loading: true,
156
- error: null
157
- });
158
- try {
159
- const batchResults = await oxyServices.getUsersBySessions(missingSessionIds);
160
- const accountMap = new Map();
161
- for (const {
162
- sessionId,
163
- user: userData
164
- } of batchResults) {
165
- if (userData && !accountMap.has(sessionId)) {
166
- const existing = existingMap.get(sessionId);
167
- accountMap.set(sessionId, (0, _core.createQuickAccount)(sessionId, userData, existing, (fileId, variant) => oxyServices.getFileDownloadUrl(fileId, variant)));
168
- }
169
- }
170
- for (const [sessionId, account] of accountMap) {
171
- existingMap.set(sessionId, account);
172
- }
173
- const orderToUse = preserveOrder ? uniqueSessionIds : [...uniqueSessionIds, ...state.accountOrder];
174
- const seen = new Set();
175
- const ordered = [];
176
- for (const sessionId of orderToUse) {
177
- if (seen.has(sessionId)) continue;
178
- seen.add(sessionId);
179
- const account = existingMap.get(sessionId);
180
- if (account) ordered.push(account);
181
- }
182
- get().setAccounts(ordered);
183
- } catch (error) {
184
- const errorMessage = error instanceof Error ? error.message : 'Failed to load accounts';
185
- if (__DEV__) {
186
- console.error('AccountStore: Failed to load accounts:', error);
187
- }
188
- set({
189
- error: errorMessage
190
- });
191
- } finally {
192
- set({
193
- loading: false
194
- });
195
- }
196
- } catch (error) {
197
- const errorMessage = error instanceof Error ? error.message : 'Failed to load accounts';
198
- if (__DEV__) {
199
- console.error('AccountStore: Failed to load accounts:', error);
200
- }
201
- set({
202
- error: errorMessage,
203
- loading: false
204
- });
205
- }
206
- },
207
- reset: () => set(initialState)
208
- }));
209
-
210
- // Selectors for performance - return cached array to prevent infinite loops
211
- const useAccounts = () => {
212
- return useAccountStore(state => state.accountsArray);
213
- };
214
- exports.useAccounts = useAccounts;
215
- const useAccountLoading = () => useAccountStore(s => s.loading);
216
- exports.useAccountLoading = useAccountLoading;
217
- const useAccountError = () => useAccountStore(s => s.error);
218
- exports.useAccountError = useAccountError;
219
- const useAccountLoadingSession = sessionId => useAccountStore(s => s.loadingSessionIds.has(sessionId));
220
- exports.useAccountLoadingSession = useAccountLoadingSession;
221
- //# sourceMappingURL=accountStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_zustand","require","_core","initialState","accounts","accountOrder","accountsArray","loading","loadingSessionIds","Set","error","useAccountStore","exports","create","set","get","setAccounts","state","accountMap","order","seenSessionIds","account","has","sessionId","add","push","buildAccountsArray","sameOrder","length","every","id","i","sameAccounts","existing","newAccount","userId","avatar","avatarUrl","addAccount","newAccounts","newOrder","updateAccount","updates","updated","removeAccount","_removed","rest","filter","moveAccountToTop","filtered","setLoading","setLoadingSession","newSet","delete","setError","loadAccounts","sessionIds","oxyServices","existingAccounts","preserveOrder","uniqueSessionIds","Array","from","existingMap","Map","map","a","Object","values","missingSessionIds","ordered","acc","undefined","batchResults","getUsersBySessions","user","userData","createQuickAccount","fileId","variant","getFileDownloadUrl","orderToUse","seen","errorMessage","Error","message","__DEV__","console","reset","useAccounts","useAccountLoading","s","useAccountError","useAccountLoadingSession"],"sourceRoot":"../../../../src","sources":["ui/stores/accountStore.ts"],"mappings":"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","ignoreList":[]}
@@ -1,60 +0,0 @@
1
- "use strict";
2
-
3
- import { useCallback, useMemo, useSyncExternalStore } from 'react';
4
- import { useOxy } from "../context/OxyContext.js";
5
- /**
6
- * Stable empty snapshot for the no-provider loading state, so `useSyncExternalStore`
7
- * always has a getSnapshot that returns a constant reference before mount.
8
- */
9
- const EMPTY_SNAPSHOT = {
10
- view: 'accounts',
11
- accounts: [],
12
- activeAccountId: null,
13
- loading: false,
14
- error: null,
15
- switchingAccountId: null,
16
- signIn: {
17
- phase: 'idle',
18
- authorizeCode: null,
19
- qrPayload: null,
20
- expiresAt: null,
21
- error: null,
22
- route: null,
23
- routeFailed: false,
24
- pushSentAt: null,
25
- openedAt: null,
26
- progress: 'idle'
27
- },
28
- commonsAvailability: 'unknown'
29
- };
30
-
31
- /**
32
- * Every account the signed-in user can switch into — device sign-ins AND linked
33
- * graph accounts (owned orgs + shared-with-you) — as one flat, deduped list with
34
- * real per-account name / email / avatar / color.
35
- *
36
- * This is a thin binding over the shared `AccountDialogController` in
37
- * `@oxyhq/core` (the SAME headless source the {@link OxyAccountDialogScreen} renders),
38
- * so there is ONE projection (`projectSwitchableAccounts`) and one switch path
39
- * (`controller.switchTo`) across the whole SDK — the local duplicate projection
40
- * this hook used to own has been removed. Every switch routes through
41
- * `useOxy().switchToAccount(accountId)` (or the dialog's row press).
42
- */
43
- export function useSwitchableAccounts() {
44
- const {
45
- accountDialogController: controller
46
- } = useOxy();
47
- const subscribe = useCallback(listener => controller ? controller.subscribe(listener) : () => undefined, [controller]);
48
- const getSnapshot = useCallback(() => controller ? controller.getSnapshot() : EMPTY_SNAPSHOT, [controller]);
49
- const snapshot = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
50
- const currentSessionId = useMemo(() => {
51
- const active = snapshot.accounts.find(account => account.accountId === snapshot.activeAccountId);
52
- return active?.sessionId ?? null;
53
- }, [snapshot]);
54
- return {
55
- accounts: snapshot.accounts,
56
- isLoading: snapshot.loading,
57
- currentSessionId
58
- };
59
- }
60
- //# sourceMappingURL=useSwitchableAccounts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useCallback","useMemo","useSyncExternalStore","useOxy","EMPTY_SNAPSHOT","view","accounts","activeAccountId","loading","error","switchingAccountId","signIn","phase","authorizeCode","qrPayload","expiresAt","route","routeFailed","pushSentAt","openedAt","progress","commonsAvailability","useSwitchableAccounts","accountDialogController","controller","subscribe","listener","undefined","getSnapshot","snapshot","currentSessionId","active","find","account","accountId","sessionId","isLoading"],"sourceRoot":"../../../../src","sources":["ui/hooks/useSwitchableAccounts.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,OAAO,EAAEC,oBAAoB,QAAQ,OAAO;AAElE,SAASC,MAAM,QAAQ,0BAAuB;AAW9C;AACA;AACA;AACA;AACA,MAAMC,cAAqC,GAAG;EAC1CC,IAAI,EAAE,UAAU;EAChBC,QAAQ,EAAE,EAAE;EACZC,eAAe,EAAE,IAAI;EACrBC,OAAO,EAAE,KAAK;EACdC,KAAK,EAAE,IAAI;EACXC,kBAAkB,EAAE,IAAI;EACxBC,MAAM,EAAE;IACJC,KAAK,EAAE,MAAM;IACbC,aAAa,EAAE,IAAI;IACnBC,SAAS,EAAE,IAAI;IACfC,SAAS,EAAE,IAAI;IACfN,KAAK,EAAE,IAAI;IACXO,KAAK,EAAE,IAAI;IACXC,WAAW,EAAE,KAAK;IAClBC,UAAU,EAAE,IAAI;IAChBC,QAAQ,EAAE,IAAI;IACdC,QAAQ,EAAE;EACd,CAAC;EACDC,mBAAmB,EAAE;AACzB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAAA,EAAgC;EACjE,MAAM;IAAEC,uBAAuB,EAAEC;EAAW,CAAC,GAAGrB,MAAM,CAAC,CAAC;EAExD,MAAMsB,SAAS,GAAGzB,WAAW,CACxB0B,QAAoB,IAAMF,UAAU,GAAGA,UAAU,CAACC,SAAS,CAACC,QAAQ,CAAC,GAAG,MAAMC,SAAU,EACzF,CAACH,UAAU,CACf,CAAC;EACD,MAAMI,WAAW,GAAG5B,WAAW,CAC3B,MAAOwB,UAAU,GAAGA,UAAU,CAACI,WAAW,CAAC,CAAC,GAAGxB,cAAe,EAC9D,CAACoB,UAAU,CACf,CAAC;EACD,MAAMK,QAAQ,GAAG3B,oBAAoB,CAACuB,SAAS,EAAEG,WAAW,EAAEA,WAAW,CAAC;EAE1E,MAAME,gBAAgB,GAAG7B,OAAO,CAAgB,MAAM;IAClD,MAAM8B,MAAM,GAAGF,QAAQ,CAACvB,QAAQ,CAAC0B,IAAI,CAAEC,OAAO,IAAKA,OAAO,CAACC,SAAS,KAAKL,QAAQ,CAACtB,eAAe,CAAC;IAClG,OAAOwB,MAAM,EAAEI,SAAS,IAAI,IAAI;EACpC,CAAC,EAAE,CAACN,QAAQ,CAAC,CAAC;EAEd,OAAO;IACHvB,QAAQ,EAAEuB,QAAQ,CAACvB,QAAQ;IAC3B8B,SAAS,EAAEP,QAAQ,CAACrB,OAAO;IAC3BsB;EACJ,CAAC;AACL","ignoreList":[]}
@@ -1,19 +0,0 @@
1
- "use strict";
2
-
3
- /** Default English labels for each trust tier, used as i18n fallbacks. */
4
- const TRUST_TIER_FALLBACK = {
5
- new: 'New',
6
- trusted: 'Trusted',
7
- high_trust: 'High Trust',
8
- verified: 'Verified',
9
- restricted: 'Restricted'
10
- };
11
-
12
- /**
13
- * Resolve a human-readable label for a trust tier, preferring the localized
14
- * `trust.tiers.<tier>` key and falling back to the canonical English label.
15
- */
16
- export function getTrustTierLabel(tier, t) {
17
- return t(`trust.tiers.${tier}`) || TRUST_TIER_FALLBACK[tier];
18
- }
19
- //# sourceMappingURL=trustTier.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["TRUST_TIER_FALLBACK","new","trusted","high_trust","verified","restricted","getTrustTierLabel","tier","t"],"sourceRoot":"../../../../../src","sources":["ui/screens/trust/trustTier.ts"],"mappings":";;AAIA;AACA,MAAMA,mBAA8C,GAAG;EACnDC,GAAG,EAAE,KAAK;EACVC,OAAO,EAAE,SAAS;EAClBC,UAAU,EAAE,YAAY;EACxBC,QAAQ,EAAE,UAAU;EACpBC,UAAU,EAAE;AAChB,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAACC,IAAe,EAAEC,CAAY,EAAU;EACrE,OAAOA,CAAC,CAAC,eAAeD,IAAI,EAAE,CAAC,IAAIP,mBAAmB,CAACO,IAAI,CAAC;AAChE","ignoreList":[]}
@@ -1,213 +0,0 @@
1
- "use strict";
2
-
3
- import { create } from 'zustand';
4
- import { buildAccountsArray, createQuickAccount } from '@oxyhq/core';
5
- const initialState = {
6
- accounts: {},
7
- accountOrder: [],
8
- accountsArray: [],
9
- loading: false,
10
- loadingSessionIds: new Set(),
11
- error: null
12
- };
13
- export const useAccountStore = create((set, get) => ({
14
- ...initialState,
15
- setAccounts: accounts => set(state => {
16
- const accountMap = {};
17
- const order = [];
18
- const seenSessionIds = new Set();
19
- for (const account of accounts) {
20
- if (seenSessionIds.has(account.sessionId)) continue;
21
- seenSessionIds.add(account.sessionId);
22
- accountMap[account.sessionId] = account;
23
- order.push(account.sessionId);
24
- }
25
- const accountsArray = buildAccountsArray(accountMap, order);
26
- const sameOrder = order.length === state.accountOrder.length && order.every((id, i) => id === state.accountOrder[i]);
27
- const sameAccounts = sameOrder && order.every(id => {
28
- const existing = state.accounts[id];
29
- const newAccount = accountMap[id];
30
- return existing && existing.sessionId === newAccount.sessionId && existing.userId === newAccount.userId && existing.avatar === newAccount.avatar && existing.avatarUrl === newAccount.avatarUrl;
31
- });
32
- if (sameAccounts) return {};
33
- return {
34
- accounts: accountMap,
35
- accountOrder: order,
36
- accountsArray
37
- };
38
- }),
39
- addAccount: account => set(state => {
40
- // Check if account with same sessionId exists
41
- if (state.accounts[account.sessionId]) {
42
- // Update existing
43
- const existing = state.accounts[account.sessionId];
44
- if (existing.avatar === account.avatar && existing.avatarUrl === account.avatarUrl) {
45
- return {}; // No change
46
- }
47
- const newAccounts = {
48
- ...state.accounts,
49
- [account.sessionId]: account
50
- };
51
- return {
52
- accounts: newAccounts,
53
- accountsArray: buildAccountsArray(newAccounts, state.accountOrder)
54
- };
55
- }
56
- const newAccounts = {
57
- ...state.accounts,
58
- [account.sessionId]: account
59
- };
60
- const newOrder = [account.sessionId, ...state.accountOrder];
61
- return {
62
- accounts: newAccounts,
63
- accountOrder: newOrder,
64
- accountsArray: buildAccountsArray(newAccounts, newOrder)
65
- };
66
- }),
67
- updateAccount: (sessionId, updates) => set(state => {
68
- const existing = state.accounts[sessionId];
69
- if (!existing) return {};
70
- const updated = {
71
- ...existing,
72
- ...updates
73
- };
74
- if (existing.avatar === updated.avatar && existing.avatarUrl === updated.avatarUrl) {
75
- return {}; // No change
76
- }
77
- const newAccounts = {
78
- ...state.accounts,
79
- [sessionId]: updated
80
- };
81
- return {
82
- accounts: newAccounts,
83
- accountsArray: buildAccountsArray(newAccounts, state.accountOrder)
84
- };
85
- }),
86
- removeAccount: sessionId => set(state => {
87
- if (!state.accounts[sessionId]) return {};
88
- const {
89
- [sessionId]: _removed,
90
- ...rest
91
- } = state.accounts;
92
- const newOrder = state.accountOrder.filter(id => id !== sessionId);
93
- return {
94
- accounts: rest,
95
- accountOrder: newOrder,
96
- accountsArray: buildAccountsArray(rest, newOrder)
97
- };
98
- }),
99
- moveAccountToTop: sessionId => set(state => {
100
- if (!state.accounts[sessionId]) return {};
101
- const filtered = state.accountOrder.filter(id => id !== sessionId);
102
- const newOrder = [sessionId, ...filtered];
103
- return {
104
- accountOrder: newOrder,
105
- accountsArray: buildAccountsArray(state.accounts, newOrder)
106
- };
107
- }),
108
- setLoading: loading => set({
109
- loading
110
- }),
111
- setLoadingSession: (sessionId, loading) => set(state => {
112
- const newSet = new Set(state.loadingSessionIds);
113
- if (loading) {
114
- newSet.add(sessionId);
115
- } else {
116
- newSet.delete(sessionId);
117
- }
118
- return {
119
- loadingSessionIds: newSet
120
- };
121
- }),
122
- setError: error => set({
123
- error
124
- }),
125
- loadAccounts: async (sessionIds, oxyServices, existingAccounts = [], preserveOrder = true) => {
126
- const state = get();
127
- const uniqueSessionIds = Array.from(new Set(sessionIds));
128
- if (uniqueSessionIds.length === 0) {
129
- get().setAccounts([]);
130
- return;
131
- }
132
-
133
- // Try to get data from TanStack Query cache first
134
- try {
135
- // This will be called from a component, so we need to access queryClient differently
136
- // For now, we'll keep the API call but optimize it
137
- const existingMap = new Map(existingAccounts.map(a => [a.sessionId, a]));
138
- for (const account of Object.values(state.accounts)) {
139
- existingMap.set(account.sessionId, account);
140
- }
141
- const missingSessionIds = uniqueSessionIds.filter(id => !existingMap.has(id));
142
- if (missingSessionIds.length === 0) {
143
- const ordered = uniqueSessionIds.map(id => existingMap.get(id)).filter(acc => acc !== undefined);
144
- get().setAccounts(ordered);
145
- return;
146
- }
147
- if (state.loading) {
148
- return;
149
- }
150
- set({
151
- loading: true,
152
- error: null
153
- });
154
- try {
155
- const batchResults = await oxyServices.getUsersBySessions(missingSessionIds);
156
- const accountMap = new Map();
157
- for (const {
158
- sessionId,
159
- user: userData
160
- } of batchResults) {
161
- if (userData && !accountMap.has(sessionId)) {
162
- const existing = existingMap.get(sessionId);
163
- accountMap.set(sessionId, createQuickAccount(sessionId, userData, existing, (fileId, variant) => oxyServices.getFileDownloadUrl(fileId, variant)));
164
- }
165
- }
166
- for (const [sessionId, account] of accountMap) {
167
- existingMap.set(sessionId, account);
168
- }
169
- const orderToUse = preserveOrder ? uniqueSessionIds : [...uniqueSessionIds, ...state.accountOrder];
170
- const seen = new Set();
171
- const ordered = [];
172
- for (const sessionId of orderToUse) {
173
- if (seen.has(sessionId)) continue;
174
- seen.add(sessionId);
175
- const account = existingMap.get(sessionId);
176
- if (account) ordered.push(account);
177
- }
178
- get().setAccounts(ordered);
179
- } catch (error) {
180
- const errorMessage = error instanceof Error ? error.message : 'Failed to load accounts';
181
- if (__DEV__) {
182
- console.error('AccountStore: Failed to load accounts:', error);
183
- }
184
- set({
185
- error: errorMessage
186
- });
187
- } finally {
188
- set({
189
- loading: false
190
- });
191
- }
192
- } catch (error) {
193
- const errorMessage = error instanceof Error ? error.message : 'Failed to load accounts';
194
- if (__DEV__) {
195
- console.error('AccountStore: Failed to load accounts:', error);
196
- }
197
- set({
198
- error: errorMessage,
199
- loading: false
200
- });
201
- }
202
- },
203
- reset: () => set(initialState)
204
- }));
205
-
206
- // Selectors for performance - return cached array to prevent infinite loops
207
- export const useAccounts = () => {
208
- return useAccountStore(state => state.accountsArray);
209
- };
210
- export const useAccountLoading = () => useAccountStore(s => s.loading);
211
- export const useAccountError = () => useAccountStore(s => s.error);
212
- export const useAccountLoadingSession = sessionId => useAccountStore(s => s.loadingSessionIds.has(sessionId));
213
- //# sourceMappingURL=accountStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["create","buildAccountsArray","createQuickAccount","initialState","accounts","accountOrder","accountsArray","loading","loadingSessionIds","Set","error","useAccountStore","set","get","setAccounts","state","accountMap","order","seenSessionIds","account","has","sessionId","add","push","sameOrder","length","every","id","i","sameAccounts","existing","newAccount","userId","avatar","avatarUrl","addAccount","newAccounts","newOrder","updateAccount","updates","updated","removeAccount","_removed","rest","filter","moveAccountToTop","filtered","setLoading","setLoadingSession","newSet","delete","setError","loadAccounts","sessionIds","oxyServices","existingAccounts","preserveOrder","uniqueSessionIds","Array","from","existingMap","Map","map","a","Object","values","missingSessionIds","ordered","acc","undefined","batchResults","getUsersBySessions","user","userData","fileId","variant","getFileDownloadUrl","orderToUse","seen","errorMessage","Error","message","__DEV__","console","reset","useAccounts","useAccountLoading","s","useAccountError","useAccountLoadingSession"],"sourceRoot":"../../../../src","sources":["ui/stores/accountStore.ts"],"mappings":"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","ignoreList":[]}