@oxyhq/services 5.25.0 → 5.26.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (532) hide show
  1. package/README.md +60 -8
  2. package/lib/commonjs/core/AuthManager.js +405 -0
  3. package/lib/commonjs/core/AuthManager.js.map +1 -0
  4. package/lib/commonjs/core/HttpService.js +39 -1
  5. package/lib/commonjs/core/HttpService.js.map +1 -1
  6. package/lib/commonjs/core/index.js +16 -0
  7. package/lib/commonjs/core/index.js.map +1 -1
  8. package/lib/commonjs/core/mixins/OxyServices.fedcm.js +38 -44
  9. package/lib/commonjs/core/mixins/OxyServices.fedcm.js.map +1 -1
  10. package/lib/commonjs/core/mixins/OxyServices.popup.js +9 -7
  11. package/lib/commonjs/core/mixins/OxyServices.popup.js.map +1 -1
  12. package/lib/commonjs/crypto/keyManager.js +16 -21
  13. package/lib/commonjs/crypto/keyManager.js.map +1 -1
  14. package/lib/commonjs/index.js +386 -18
  15. package/lib/commonjs/index.js.map +1 -1
  16. package/lib/commonjs/lib/sonner.js +13 -17
  17. package/lib/commonjs/lib/sonner.js.map +1 -1
  18. package/lib/commonjs/lib/sonner.native.js +24 -0
  19. package/lib/commonjs/lib/sonner.native.js.map +1 -0
  20. package/lib/commonjs/lib/sonner.web.js +24 -0
  21. package/lib/commonjs/lib/sonner.web.js.map +1 -0
  22. package/lib/commonjs/shared/index.js +227 -0
  23. package/lib/commonjs/shared/index.js.map +1 -0
  24. package/lib/commonjs/shared/utils/colorUtils.js +161 -0
  25. package/lib/commonjs/shared/utils/colorUtils.js.map +1 -0
  26. package/lib/commonjs/shared/utils/debugUtils.js +84 -0
  27. package/lib/commonjs/shared/utils/debugUtils.js.map +1 -0
  28. package/lib/commonjs/shared/utils/errorUtils.js +190 -0
  29. package/lib/commonjs/shared/utils/errorUtils.js.map +1 -0
  30. package/lib/commonjs/shared/utils/index.js +196 -0
  31. package/lib/commonjs/shared/utils/index.js.map +1 -0
  32. package/lib/commonjs/shared/utils/networkUtils.js +213 -0
  33. package/lib/commonjs/shared/utils/networkUtils.js.map +1 -0
  34. package/lib/commonjs/shared/utils/themeUtils.js +118 -0
  35. package/lib/commonjs/shared/utils/themeUtils.js.map +1 -0
  36. package/lib/commonjs/ui/client.js +1 -1
  37. package/lib/commonjs/ui/components/BottomSheetRouter.js +1 -1
  38. package/lib/commonjs/ui/components/FollowButton.js +1 -1
  39. package/lib/commonjs/ui/components/FontLoader.js +1 -1
  40. package/lib/commonjs/ui/components/FontLoader.js.map +1 -1
  41. package/lib/commonjs/ui/components/GroupedItem.js +1 -1
  42. package/lib/commonjs/ui/components/Header.js +1 -1
  43. package/lib/commonjs/ui/components/OxyProvider.js +10 -2
  44. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  45. package/lib/commonjs/ui/components/OxySignInButton.js +19 -20
  46. package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
  47. package/lib/commonjs/ui/components/ProfileCard.js +1 -1
  48. package/lib/commonjs/ui/components/ProfileCard.js.map +1 -1
  49. package/lib/commonjs/ui/components/QuickActions.js +1 -1
  50. package/lib/commonjs/ui/components/QuickActions.js.map +1 -1
  51. package/lib/commonjs/ui/components/Section.js +1 -1
  52. package/lib/commonjs/ui/components/SectionTitle.js +1 -1
  53. package/lib/commonjs/ui/components/SignInModal.js +546 -0
  54. package/lib/commonjs/ui/components/SignInModal.js.map +1 -0
  55. package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js +1 -1
  56. package/lib/commonjs/ui/context/OxyContext.js +3 -2
  57. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  58. package/lib/commonjs/ui/hooks/mutations/mutationFactory.js +1 -1
  59. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +1 -1
  60. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js +1 -1
  61. package/lib/commonjs/ui/hooks/useAsyncAction.js +1 -1
  62. package/lib/commonjs/ui/hooks/{use-color-scheme.js → useColorScheme.js} +1 -1
  63. package/lib/commonjs/ui/hooks/useColorScheme.js.map +1 -0
  64. package/lib/commonjs/ui/hooks/useSessionSocket.js +7 -13
  65. package/lib/commonjs/ui/hooks/useSessionSocket.js.map +1 -1
  66. package/lib/commonjs/ui/hooks/useSettingToggle.js +1 -1
  67. package/lib/commonjs/ui/hooks/useThemeColors.js +1 -1
  68. package/lib/commonjs/ui/hooks/useThemeStyles.js +1 -1
  69. package/lib/commonjs/ui/navigation/bottomSheetManager.js +5 -2
  70. package/lib/commonjs/ui/navigation/bottomSheetManager.js.map +1 -1
  71. package/lib/commonjs/ui/navigation/routes.js +7 -8
  72. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  73. package/lib/commonjs/ui/screens/AccountCenterScreen.js +8 -8
  74. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
  75. package/lib/commonjs/ui/screens/AccountOverviewScreen.js +7 -7
  76. package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
  77. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +3 -3
  78. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +5 -5
  79. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
  80. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +1 -1
  81. package/lib/commonjs/ui/screens/AppInfoScreen.js +2 -2
  82. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js +2 -2
  83. package/lib/commonjs/ui/screens/FAQScreen.js +1 -1
  84. package/lib/commonjs/ui/screens/FeedbackScreen.js +1 -1
  85. package/lib/commonjs/ui/screens/FileManagementScreen.js +2 -2
  86. package/lib/commonjs/ui/screens/FollowersListScreen.js +18 -0
  87. package/lib/commonjs/ui/screens/FollowersListScreen.js.map +1 -0
  88. package/lib/commonjs/ui/screens/FollowingListScreen.js +18 -0
  89. package/lib/commonjs/ui/screens/FollowingListScreen.js.map +1 -0
  90. package/lib/commonjs/ui/screens/HelpSupportScreen.js +2 -2
  91. package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
  92. package/lib/commonjs/ui/screens/HistoryViewScreen.js +2 -2
  93. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +2 -2
  94. package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js +229 -0
  95. package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js.map +1 -0
  96. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +2 -2
  97. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -1
  98. package/lib/commonjs/ui/screens/OxyAuthScreen.js +9 -21
  99. package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
  100. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +2 -2
  101. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +1 -1
  102. package/lib/commonjs/ui/screens/ProfileScreen.js +1 -1
  103. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  104. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +2 -2
  105. package/lib/commonjs/ui/screens/SessionManagementScreen.js +1 -1
  106. package/lib/commonjs/ui/screens/UserListScreen.js +411 -0
  107. package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -0
  108. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +1 -1
  109. package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js +1 -1
  110. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js +1 -1
  111. package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js +1 -1
  112. package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js +1 -1
  113. package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js +1 -1
  114. package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js +1 -1
  115. package/lib/commonjs/ui/stores/authStore.js +4 -6
  116. package/lib/commonjs/ui/stores/authStore.js.map +1 -1
  117. package/lib/commonjs/ui/utils/colorUtils.js +43 -46
  118. package/lib/commonjs/ui/utils/colorUtils.js.map +1 -1
  119. package/lib/commonjs/ui/utils/fileManagement.js +1 -1
  120. package/lib/commonjs/ui/utils/themeUtils.js +29 -39
  121. package/lib/commonjs/ui/utils/themeUtils.js.map +1 -1
  122. package/lib/commonjs/ui/utils/{user-utils.js → userUtils.js} +1 -1
  123. package/lib/commonjs/ui/utils/userUtils.js.map +1 -0
  124. package/lib/commonjs/utils/errorUtils.js +0 -13
  125. package/lib/commonjs/utils/errorUtils.js.map +1 -1
  126. package/lib/commonjs/utils/hookUtils.js +8 -8
  127. package/lib/commonjs/utils/hookUtils.js.map +1 -1
  128. package/lib/commonjs/utils/platform.js +129 -0
  129. package/lib/commonjs/utils/platform.js.map +1 -0
  130. package/lib/commonjs/web/WebOxyContext.js +273 -41
  131. package/lib/commonjs/web/WebOxyContext.js.map +1 -1
  132. package/lib/commonjs/web/index.js +177 -4
  133. package/lib/commonjs/web/index.js.map +1 -1
  134. package/lib/commonjs/web.js +12 -12
  135. package/lib/commonjs/web.js.map +1 -1
  136. package/lib/module/core/AuthManager.js +399 -0
  137. package/lib/module/core/AuthManager.js.map +1 -0
  138. package/lib/module/core/HttpService.js +39 -1
  139. package/lib/module/core/HttpService.js.map +1 -1
  140. package/lib/module/core/index.js +2 -0
  141. package/lib/module/core/index.js.map +1 -1
  142. package/lib/module/core/mixins/OxyServices.fedcm.js +38 -44
  143. package/lib/module/core/mixins/OxyServices.fedcm.js.map +1 -1
  144. package/lib/module/core/mixins/OxyServices.popup.js +9 -7
  145. package/lib/module/core/mixins/OxyServices.popup.js.map +1 -1
  146. package/lib/module/crypto/keyManager.js +16 -21
  147. package/lib/module/crypto/keyManager.js.map +1 -1
  148. package/lib/module/index.js +34 -3
  149. package/lib/module/index.js.map +1 -1
  150. package/lib/module/lib/sonner.js +11 -16
  151. package/lib/module/lib/sonner.js.map +1 -1
  152. package/lib/module/lib/sonner.native.js +19 -0
  153. package/lib/module/lib/sonner.native.js.map +1 -0
  154. package/lib/module/lib/sonner.web.js +19 -0
  155. package/lib/module/lib/sonner.web.js.map +1 -0
  156. package/lib/module/shared/index.js +37 -0
  157. package/lib/module/shared/index.js.map +1 -0
  158. package/lib/module/shared/utils/colorUtils.js +150 -0
  159. package/lib/module/shared/utils/colorUtils.js.map +1 -0
  160. package/lib/module/shared/utils/debugUtils.js +75 -0
  161. package/lib/module/shared/utils/debugUtils.js.map +1 -0
  162. package/lib/module/shared/utils/errorUtils.js +176 -0
  163. package/lib/module/shared/utils/errorUtils.js.map +1 -0
  164. package/lib/module/shared/utils/index.js +21 -0
  165. package/lib/module/shared/utils/index.js.map +1 -0
  166. package/lib/module/shared/utils/networkUtils.js +202 -0
  167. package/lib/module/shared/utils/networkUtils.js.map +1 -0
  168. package/lib/module/shared/utils/themeUtils.js +109 -0
  169. package/lib/module/shared/utils/themeUtils.js.map +1 -0
  170. package/lib/module/ui/client.js +1 -1
  171. package/lib/module/ui/client.js.map +1 -1
  172. package/lib/module/ui/components/BottomSheetRouter.js +1 -1
  173. package/lib/module/ui/components/BottomSheetRouter.js.map +1 -1
  174. package/lib/module/ui/components/FollowButton.js +1 -1
  175. package/lib/module/ui/components/FollowButton.js.map +1 -1
  176. package/lib/module/ui/components/FontLoader.js +1 -1
  177. package/lib/module/ui/components/FontLoader.js.map +1 -1
  178. package/lib/module/ui/components/GroupedItem.js +1 -1
  179. package/lib/module/ui/components/GroupedItem.js.map +1 -1
  180. package/lib/module/ui/components/Header.js +1 -1
  181. package/lib/module/ui/components/Header.js.map +1 -1
  182. package/lib/module/ui/components/OxyProvider.js +10 -2
  183. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  184. package/lib/module/ui/components/OxySignInButton.js +20 -21
  185. package/lib/module/ui/components/OxySignInButton.js.map +1 -1
  186. package/lib/module/ui/components/ProfileCard.js +1 -1
  187. package/lib/module/ui/components/ProfileCard.js.map +1 -1
  188. package/lib/module/ui/components/QuickActions.js +1 -1
  189. package/lib/module/ui/components/QuickActions.js.map +1 -1
  190. package/lib/module/ui/components/Section.js +1 -1
  191. package/lib/module/ui/components/Section.js.map +1 -1
  192. package/lib/module/ui/components/SectionTitle.js +1 -1
  193. package/lib/module/ui/components/SectionTitle.js.map +1 -1
  194. package/lib/module/ui/components/SignInModal.js +536 -0
  195. package/lib/module/ui/components/SignInModal.js.map +1 -0
  196. package/lib/module/ui/components/payment/PaymentDetailsStep.js +1 -1
  197. package/lib/module/ui/components/payment/PaymentDetailsStep.js.map +1 -1
  198. package/lib/module/ui/context/OxyContext.js +2 -2
  199. package/lib/module/ui/context/OxyContext.js.map +1 -1
  200. package/lib/module/ui/hooks/mutations/mutationFactory.js +1 -1
  201. package/lib/module/ui/hooks/mutations/mutationFactory.js.map +1 -1
  202. package/lib/module/ui/hooks/mutations/useAccountMutations.js +1 -1
  203. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  204. package/lib/module/ui/hooks/mutations/useServicesMutations.js +1 -1
  205. package/lib/module/ui/hooks/mutations/useServicesMutations.js.map +1 -1
  206. package/lib/module/ui/hooks/useAsyncAction.js +1 -1
  207. package/lib/module/ui/hooks/useAsyncAction.js.map +1 -1
  208. package/lib/module/ui/hooks/{use-color-scheme.js → useColorScheme.js} +1 -1
  209. package/lib/module/ui/hooks/useColorScheme.js.map +1 -0
  210. package/lib/module/ui/hooks/useSessionSocket.js +7 -13
  211. package/lib/module/ui/hooks/useSessionSocket.js.map +1 -1
  212. package/lib/module/ui/hooks/useSettingToggle.js +1 -1
  213. package/lib/module/ui/hooks/useSettingToggle.js.map +1 -1
  214. package/lib/module/ui/hooks/useThemeColors.js +1 -1
  215. package/lib/module/ui/hooks/useThemeColors.js.map +1 -1
  216. package/lib/module/ui/hooks/useThemeStyles.js +1 -1
  217. package/lib/module/ui/hooks/useThemeStyles.js.map +1 -1
  218. package/lib/module/ui/navigation/bottomSheetManager.js +5 -2
  219. package/lib/module/ui/navigation/bottomSheetManager.js.map +1 -1
  220. package/lib/module/ui/navigation/routes.js +7 -8
  221. package/lib/module/ui/navigation/routes.js.map +1 -1
  222. package/lib/module/ui/screens/AccountCenterScreen.js +8 -8
  223. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
  224. package/lib/module/ui/screens/AccountOverviewScreen.js +7 -7
  225. package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
  226. package/lib/module/ui/screens/AccountSettingsScreen.js +3 -3
  227. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  228. package/lib/module/ui/screens/AccountSwitcherScreen.js +5 -5
  229. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
  230. package/lib/module/ui/screens/AccountVerificationScreen.js +1 -1
  231. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  232. package/lib/module/ui/screens/AppInfoScreen.js +2 -2
  233. package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
  234. package/lib/module/ui/screens/EditProfileFieldScreen.js +2 -2
  235. package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -1
  236. package/lib/module/ui/screens/FAQScreen.js +1 -1
  237. package/lib/module/ui/screens/FAQScreen.js.map +1 -1
  238. package/lib/module/ui/screens/FeedbackScreen.js +1 -1
  239. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  240. package/lib/module/ui/screens/FileManagementScreen.js +2 -2
  241. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  242. package/lib/module/ui/screens/FollowersListScreen.js +13 -0
  243. package/lib/module/ui/screens/FollowersListScreen.js.map +1 -0
  244. package/lib/module/ui/screens/FollowingListScreen.js +13 -0
  245. package/lib/module/ui/screens/FollowingListScreen.js.map +1 -0
  246. package/lib/module/ui/screens/HelpSupportScreen.js +2 -2
  247. package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
  248. package/lib/module/ui/screens/HistoryViewScreen.js +2 -2
  249. package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
  250. package/lib/module/ui/screens/LanguageSelectorScreen.js +2 -2
  251. package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
  252. package/lib/module/ui/screens/LearnMoreUsernamesScreen.js +224 -0
  253. package/lib/module/ui/screens/LearnMoreUsernamesScreen.js.map +1 -0
  254. package/lib/module/ui/screens/LegalDocumentsScreen.js +2 -2
  255. package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -1
  256. package/lib/module/ui/screens/OxyAuthScreen.js +9 -21
  257. package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
  258. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +2 -2
  259. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  260. package/lib/module/ui/screens/PrivacySettingsScreen.js +1 -1
  261. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  262. package/lib/module/ui/screens/ProfileScreen.js +1 -1
  263. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  264. package/lib/module/ui/screens/SavesCollectionsScreen.js +2 -2
  265. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
  266. package/lib/module/ui/screens/SessionManagementScreen.js +1 -1
  267. package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -1
  268. package/lib/module/ui/screens/UserListScreen.js +405 -0
  269. package/lib/module/ui/screens/UserListScreen.js.map +1 -0
  270. package/lib/module/ui/screens/WelcomeNewUserScreen.js +1 -1
  271. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  272. package/lib/module/ui/screens/karma/KarmaAboutScreen.js +1 -1
  273. package/lib/module/ui/screens/karma/KarmaAboutScreen.js.map +1 -1
  274. package/lib/module/ui/screens/karma/KarmaCenterScreen.js +1 -1
  275. package/lib/module/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
  276. package/lib/module/ui/screens/karma/KarmaFAQScreen.js +1 -1
  277. package/lib/module/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
  278. package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js +1 -1
  279. package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -1
  280. package/lib/module/ui/screens/karma/KarmaRewardsScreen.js +1 -1
  281. package/lib/module/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
  282. package/lib/module/ui/screens/karma/KarmaRulesScreen.js +1 -1
  283. package/lib/module/ui/screens/karma/KarmaRulesScreen.js.map +1 -1
  284. package/lib/module/ui/stores/authStore.js +4 -6
  285. package/lib/module/ui/stores/authStore.js.map +1 -1
  286. package/lib/module/ui/utils/colorUtils.js +7 -40
  287. package/lib/module/ui/utils/colorUtils.js.map +1 -1
  288. package/lib/module/ui/utils/fileManagement.js +1 -1
  289. package/lib/module/ui/utils/fileManagement.js.map +1 -1
  290. package/lib/module/ui/utils/themeUtils.js +7 -35
  291. package/lib/module/ui/utils/themeUtils.js.map +1 -1
  292. package/lib/module/ui/utils/{user-utils.js → userUtils.js} +1 -1
  293. package/lib/module/ui/utils/userUtils.js.map +1 -0
  294. package/lib/module/utils/errorUtils.js +0 -7
  295. package/lib/module/utils/errorUtils.js.map +1 -1
  296. package/lib/module/utils/hookUtils.js +8 -8
  297. package/lib/module/utils/hookUtils.js.map +1 -1
  298. package/lib/module/utils/platform.js +118 -0
  299. package/lib/module/utils/platform.js.map +1 -0
  300. package/lib/module/web/WebOxyContext.js +272 -41
  301. package/lib/module/web/WebOxyContext.js.map +1 -1
  302. package/lib/module/web/index.js +26 -5
  303. package/lib/module/web/index.js.map +1 -1
  304. package/lib/module/web.js +2 -1
  305. package/lib/module/web.js.map +1 -1
  306. package/lib/typescript/commonjs/core/AuthManager.d.ts +144 -0
  307. package/lib/typescript/commonjs/core/AuthManager.d.ts.map +1 -0
  308. package/lib/typescript/commonjs/core/HttpService.d.ts.map +1 -1
  309. package/lib/typescript/commonjs/core/index.d.ts +2 -0
  310. package/lib/typescript/commonjs/core/index.d.ts.map +1 -1
  311. package/lib/typescript/commonjs/core/mixins/OxyServices.fedcm.d.ts.map +1 -1
  312. package/lib/typescript/commonjs/core/mixins/OxyServices.popup.d.ts.map +1 -1
  313. package/lib/typescript/commonjs/crypto/keyManager.d.ts.map +1 -1
  314. package/lib/typescript/commonjs/index.d.ts +16 -2
  315. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  316. package/lib/typescript/commonjs/lib/sonner.d.ts +11 -14
  317. package/lib/typescript/commonjs/lib/sonner.d.ts.map +1 -1
  318. package/lib/typescript/commonjs/lib/sonner.native.d.ts +15 -0
  319. package/lib/typescript/commonjs/lib/sonner.native.d.ts.map +1 -0
  320. package/lib/typescript/commonjs/lib/sonner.web.d.ts +15 -0
  321. package/lib/typescript/commonjs/lib/sonner.web.d.ts.map +1 -0
  322. package/lib/typescript/commonjs/models/session.d.ts +4 -0
  323. package/lib/typescript/commonjs/models/session.d.ts.map +1 -1
  324. package/lib/typescript/commonjs/shared/index.d.ts +29 -0
  325. package/lib/typescript/commonjs/shared/index.d.ts.map +1 -0
  326. package/lib/typescript/commonjs/shared/utils/colorUtils.d.ts +105 -0
  327. package/lib/typescript/commonjs/shared/utils/colorUtils.d.ts.map +1 -0
  328. package/lib/typescript/commonjs/shared/utils/debugUtils.d.ts +49 -0
  329. package/lib/typescript/commonjs/shared/utils/debugUtils.d.ts.map +1 -0
  330. package/lib/typescript/commonjs/shared/utils/errorUtils.d.ts +98 -0
  331. package/lib/typescript/commonjs/shared/utils/errorUtils.d.ts.map +1 -0
  332. package/lib/typescript/commonjs/shared/utils/index.d.ts +14 -0
  333. package/lib/typescript/commonjs/shared/utils/index.d.ts.map +1 -0
  334. package/lib/typescript/commonjs/shared/utils/networkUtils.d.ts +140 -0
  335. package/lib/typescript/commonjs/shared/utils/networkUtils.d.ts.map +1 -0
  336. package/lib/typescript/commonjs/shared/utils/themeUtils.d.ts +91 -0
  337. package/lib/typescript/commonjs/shared/utils/themeUtils.d.ts.map +1 -0
  338. package/lib/typescript/commonjs/ui/components/FontLoader.d.ts +1 -1
  339. package/lib/typescript/commonjs/ui/components/FontLoader.d.ts.map +1 -1
  340. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  341. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts.map +1 -1
  342. package/lib/typescript/commonjs/ui/components/SignInModal.d.ts +18 -0
  343. package/lib/typescript/commonjs/ui/components/SignInModal.d.ts.map +1 -0
  344. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +1 -2
  345. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  346. package/lib/typescript/commonjs/ui/hooks/{use-color-scheme.d.ts → useColorScheme.d.ts} +1 -1
  347. package/lib/typescript/commonjs/ui/hooks/useColorScheme.d.ts.map +1 -0
  348. package/lib/typescript/commonjs/ui/hooks/useSessionSocket.d.ts.map +1 -1
  349. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts +2 -0
  350. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  351. package/lib/typescript/commonjs/ui/navigation/routes.d.ts +1 -1
  352. package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
  353. package/lib/typescript/commonjs/ui/screens/FollowersListScreen.d.ts +9 -0
  354. package/lib/typescript/commonjs/ui/screens/FollowersListScreen.d.ts.map +1 -0
  355. package/lib/typescript/commonjs/ui/screens/FollowingListScreen.d.ts +9 -0
  356. package/lib/typescript/commonjs/ui/screens/FollowingListScreen.d.ts.map +1 -0
  357. package/lib/typescript/commonjs/ui/screens/LearnMoreUsernamesScreen.d.ts +5 -0
  358. package/lib/typescript/commonjs/ui/screens/LearnMoreUsernamesScreen.d.ts.map +1 -0
  359. package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  360. package/lib/typescript/commonjs/ui/screens/UserListScreen.d.ts +11 -0
  361. package/lib/typescript/commonjs/ui/screens/UserListScreen.d.ts.map +1 -0
  362. package/lib/typescript/commonjs/ui/stores/authStore.d.ts.map +1 -1
  363. package/lib/typescript/commonjs/ui/utils/colorUtils.d.ts +7 -11
  364. package/lib/typescript/commonjs/ui/utils/colorUtils.d.ts.map +1 -1
  365. package/lib/typescript/commonjs/ui/utils/themeUtils.d.ts +6 -19
  366. package/lib/typescript/commonjs/ui/utils/themeUtils.d.ts.map +1 -1
  367. package/lib/typescript/commonjs/ui/utils/{user-utils.d.ts → userUtils.d.ts} +1 -1
  368. package/lib/typescript/commonjs/ui/utils/userUtils.d.ts.map +1 -0
  369. package/lib/typescript/commonjs/utils/errorUtils.d.ts +0 -6
  370. package/lib/typescript/commonjs/utils/errorUtils.d.ts.map +1 -1
  371. package/lib/typescript/commonjs/utils/platform.d.ts +41 -0
  372. package/lib/typescript/commonjs/utils/platform.d.ts.map +1 -0
  373. package/lib/typescript/commonjs/web/WebOxyContext.d.ts +117 -9
  374. package/lib/typescript/commonjs/web/WebOxyContext.d.ts.map +1 -1
  375. package/lib/typescript/commonjs/web/index.d.ts +19 -8
  376. package/lib/typescript/commonjs/web/index.d.ts.map +1 -1
  377. package/lib/typescript/commonjs/web.d.ts +2 -1
  378. package/lib/typescript/commonjs/web.d.ts.map +1 -1
  379. package/lib/typescript/module/core/AuthManager.d.ts +144 -0
  380. package/lib/typescript/module/core/AuthManager.d.ts.map +1 -0
  381. package/lib/typescript/module/core/HttpService.d.ts.map +1 -1
  382. package/lib/typescript/module/core/index.d.ts +2 -0
  383. package/lib/typescript/module/core/index.d.ts.map +1 -1
  384. package/lib/typescript/module/core/mixins/OxyServices.fedcm.d.ts.map +1 -1
  385. package/lib/typescript/module/core/mixins/OxyServices.popup.d.ts.map +1 -1
  386. package/lib/typescript/module/crypto/keyManager.d.ts.map +1 -1
  387. package/lib/typescript/module/index.d.ts +16 -2
  388. package/lib/typescript/module/index.d.ts.map +1 -1
  389. package/lib/typescript/module/lib/sonner.d.ts +11 -14
  390. package/lib/typescript/module/lib/sonner.d.ts.map +1 -1
  391. package/lib/typescript/module/lib/sonner.native.d.ts +15 -0
  392. package/lib/typescript/module/lib/sonner.native.d.ts.map +1 -0
  393. package/lib/typescript/module/lib/sonner.web.d.ts +15 -0
  394. package/lib/typescript/module/lib/sonner.web.d.ts.map +1 -0
  395. package/lib/typescript/module/models/session.d.ts +4 -0
  396. package/lib/typescript/module/models/session.d.ts.map +1 -1
  397. package/lib/typescript/module/shared/index.d.ts +29 -0
  398. package/lib/typescript/module/shared/index.d.ts.map +1 -0
  399. package/lib/typescript/module/shared/utils/colorUtils.d.ts +105 -0
  400. package/lib/typescript/module/shared/utils/colorUtils.d.ts.map +1 -0
  401. package/lib/typescript/module/shared/utils/debugUtils.d.ts +49 -0
  402. package/lib/typescript/module/shared/utils/debugUtils.d.ts.map +1 -0
  403. package/lib/typescript/module/shared/utils/errorUtils.d.ts +98 -0
  404. package/lib/typescript/module/shared/utils/errorUtils.d.ts.map +1 -0
  405. package/lib/typescript/module/shared/utils/index.d.ts +14 -0
  406. package/lib/typescript/module/shared/utils/index.d.ts.map +1 -0
  407. package/lib/typescript/module/shared/utils/networkUtils.d.ts +140 -0
  408. package/lib/typescript/module/shared/utils/networkUtils.d.ts.map +1 -0
  409. package/lib/typescript/module/shared/utils/themeUtils.d.ts +91 -0
  410. package/lib/typescript/module/shared/utils/themeUtils.d.ts.map +1 -0
  411. package/lib/typescript/module/ui/components/FontLoader.d.ts +1 -1
  412. package/lib/typescript/module/ui/components/FontLoader.d.ts.map +1 -1
  413. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  414. package/lib/typescript/module/ui/components/OxySignInButton.d.ts.map +1 -1
  415. package/lib/typescript/module/ui/components/SignInModal.d.ts +18 -0
  416. package/lib/typescript/module/ui/components/SignInModal.d.ts.map +1 -0
  417. package/lib/typescript/module/ui/context/OxyContext.d.ts +1 -2
  418. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  419. package/lib/typescript/module/ui/hooks/{use-color-scheme.d.ts → useColorScheme.d.ts} +1 -1
  420. package/lib/typescript/module/ui/hooks/useColorScheme.d.ts.map +1 -0
  421. package/lib/typescript/module/ui/hooks/useSessionSocket.d.ts.map +1 -1
  422. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts +2 -0
  423. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  424. package/lib/typescript/module/ui/navigation/routes.d.ts +1 -1
  425. package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
  426. package/lib/typescript/module/ui/screens/FollowersListScreen.d.ts +9 -0
  427. package/lib/typescript/module/ui/screens/FollowersListScreen.d.ts.map +1 -0
  428. package/lib/typescript/module/ui/screens/FollowingListScreen.d.ts +9 -0
  429. package/lib/typescript/module/ui/screens/FollowingListScreen.d.ts.map +1 -0
  430. package/lib/typescript/module/ui/screens/LearnMoreUsernamesScreen.d.ts +5 -0
  431. package/lib/typescript/module/ui/screens/LearnMoreUsernamesScreen.d.ts.map +1 -0
  432. package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  433. package/lib/typescript/module/ui/screens/UserListScreen.d.ts +11 -0
  434. package/lib/typescript/module/ui/screens/UserListScreen.d.ts.map +1 -0
  435. package/lib/typescript/module/ui/stores/authStore.d.ts.map +1 -1
  436. package/lib/typescript/module/ui/utils/colorUtils.d.ts +7 -11
  437. package/lib/typescript/module/ui/utils/colorUtils.d.ts.map +1 -1
  438. package/lib/typescript/module/ui/utils/themeUtils.d.ts +6 -19
  439. package/lib/typescript/module/ui/utils/themeUtils.d.ts.map +1 -1
  440. package/lib/typescript/module/ui/utils/{user-utils.d.ts → userUtils.d.ts} +1 -1
  441. package/lib/typescript/module/ui/utils/userUtils.d.ts.map +1 -0
  442. package/lib/typescript/module/utils/errorUtils.d.ts +0 -6
  443. package/lib/typescript/module/utils/errorUtils.d.ts.map +1 -1
  444. package/lib/typescript/module/utils/platform.d.ts +41 -0
  445. package/lib/typescript/module/utils/platform.d.ts.map +1 -0
  446. package/lib/typescript/module/web/WebOxyContext.d.ts +117 -9
  447. package/lib/typescript/module/web/WebOxyContext.d.ts.map +1 -1
  448. package/lib/typescript/module/web/index.d.ts +19 -8
  449. package/lib/typescript/module/web/index.d.ts.map +1 -1
  450. package/lib/typescript/module/web.d.ts +2 -1
  451. package/lib/typescript/module/web.d.ts.map +1 -1
  452. package/package.json +8 -2
  453. package/src/core/AuthManager.ts +436 -0
  454. package/src/core/HttpService.ts +43 -1
  455. package/src/core/index.ts +4 -0
  456. package/src/core/mixins/OxyServices.fedcm.ts +37 -42
  457. package/src/core/mixins/OxyServices.popup.ts +10 -7
  458. package/src/crypto/keyManager.ts +16 -21
  459. package/src/index.ts +83 -12
  460. package/src/lib/sonner.native.ts +28 -0
  461. package/src/lib/sonner.ts +11 -28
  462. package/src/lib/sonner.web.ts +28 -0
  463. package/src/models/session.ts +4 -0
  464. package/src/shared/index.ts +82 -0
  465. package/src/shared/utils/colorUtils.ts +155 -0
  466. package/src/shared/utils/debugUtils.ts +73 -0
  467. package/src/shared/utils/errorUtils.ts +181 -0
  468. package/src/shared/utils/index.ts +59 -0
  469. package/src/shared/utils/networkUtils.ts +248 -0
  470. package/src/shared/utils/themeUtils.ts +115 -0
  471. package/src/ui/components/BottomSheetRouter.tsx +1 -1
  472. package/src/ui/components/FontLoader.tsx +1 -2
  473. package/src/ui/components/GroupedItem.tsx +1 -1
  474. package/src/ui/components/Header.tsx +1 -1
  475. package/src/ui/components/OxyProvider.tsx +10 -0
  476. package/src/ui/components/OxySignInButton.tsx +20 -22
  477. package/src/ui/components/ProfileCard.tsx +1 -1
  478. package/src/ui/components/QuickActions.tsx +1 -1
  479. package/src/ui/components/Section.tsx +1 -1
  480. package/src/ui/components/SectionTitle.tsx +1 -1
  481. package/src/ui/components/SignInModal.tsx +534 -0
  482. package/src/ui/context/OxyContext.tsx +1 -2
  483. package/src/ui/hooks/queries/queryKeys.ts +2 -2
  484. package/src/ui/hooks/useSessionSocket.ts +12 -17
  485. package/src/ui/hooks/useThemeColors.ts +1 -1
  486. package/src/ui/hooks/useThemeStyles.ts +1 -1
  487. package/src/ui/navigation/bottomSheetManager.ts +5 -1
  488. package/src/ui/navigation/routes.ts +8 -9
  489. package/src/ui/screens/AccountCenterScreen.tsx +7 -7
  490. package/src/ui/screens/AccountOverviewScreen.tsx +6 -6
  491. package/src/ui/screens/AccountSettingsScreen.tsx +2 -2
  492. package/src/ui/screens/AccountSwitcherScreen.tsx +4 -4
  493. package/src/ui/screens/AppInfoScreen.tsx +1 -1
  494. package/src/ui/screens/EditProfileFieldScreen.tsx +1 -1
  495. package/src/ui/screens/FileManagementScreen.tsx +1 -1
  496. package/src/ui/screens/FollowersListScreen.tsx +14 -0
  497. package/src/ui/screens/FollowingListScreen.tsx +14 -0
  498. package/src/ui/screens/HelpSupportScreen.tsx +1 -1
  499. package/src/ui/screens/HistoryViewScreen.tsx +1 -1
  500. package/src/ui/screens/LanguageSelectorScreen.tsx +1 -1
  501. package/src/ui/screens/LearnMoreUsernamesScreen.tsx +231 -0
  502. package/src/ui/screens/LegalDocumentsScreen.tsx +1 -1
  503. package/src/ui/screens/OxyAuthScreen.tsx +10 -21
  504. package/src/ui/screens/PremiumSubscriptionScreen.tsx +1 -1
  505. package/src/ui/screens/ProfileScreen.tsx +1 -1
  506. package/src/ui/screens/SavesCollectionsScreen.tsx +1 -1
  507. package/src/ui/screens/UserListScreen.tsx +416 -0
  508. package/src/ui/screens/karma/KarmaAboutScreen.tsx +1 -1
  509. package/src/ui/screens/karma/KarmaCenterScreen.tsx +1 -1
  510. package/src/ui/screens/karma/KarmaFAQScreen.tsx +1 -1
  511. package/src/ui/screens/karma/KarmaLeaderboardScreen.tsx +1 -1
  512. package/src/ui/screens/karma/KarmaRewardsScreen.tsx +1 -1
  513. package/src/ui/screens/karma/KarmaRulesScreen.tsx +1 -1
  514. package/src/ui/stores/authStore.ts +5 -6
  515. package/src/ui/utils/colorUtils.ts +15 -43
  516. package/src/ui/utils/themeUtils.ts +14 -39
  517. package/src/utils/errorUtils.ts +1 -6
  518. package/src/utils/hookUtils.ts +8 -8
  519. package/src/utils/platform.ts +117 -0
  520. package/src/web/WebOxyContext.tsx +331 -41
  521. package/src/web/index.ts +76 -6
  522. package/src/web.ts +1 -1
  523. package/lib/commonjs/ui/hooks/use-color-scheme.js.map +0 -1
  524. package/lib/commonjs/ui/utils/user-utils.js.map +0 -1
  525. package/lib/module/ui/hooks/use-color-scheme.js.map +0 -1
  526. package/lib/module/ui/utils/user-utils.js.map +0 -1
  527. package/lib/typescript/commonjs/ui/hooks/use-color-scheme.d.ts.map +0 -1
  528. package/lib/typescript/commonjs/ui/utils/user-utils.d.ts.map +0 -1
  529. package/lib/typescript/module/ui/hooks/use-color-scheme.d.ts.map +0 -1
  530. package/lib/typescript/module/ui/utils/user-utils.d.ts.map +0 -1
  531. /package/src/ui/hooks/{use-color-scheme.ts → useColorScheme.ts} +0 -0
  532. /package/src/ui/utils/{user-utils.ts → userUtils.ts} +0 -0
@@ -4,55 +4,161 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.WebOxyProvider = WebOxyProvider;
7
+ exports.default = void 0;
7
8
  exports.useAuth = useAuth;
8
9
  exports.useWebOxy = useWebOxy;
9
10
  var _react = require("react");
10
- var _index = require("../core/index.js");
11
+ var _OxyServices = require("../core/OxyServices.js");
12
+ var _CrossDomainAuth = require("../core/CrossDomainAuth.js");
13
+ var _AuthManager = require("../core/AuthManager.js");
11
14
  var _reactQuery = require("@tanstack/react-query");
12
15
  var _queryClient = require("../ui/hooks/queryClient.js");
13
16
  var _jsxRuntime = require("react/jsx-runtime");
14
17
  /**
15
18
  * Web-Only Oxy Context
16
- * Clean implementation with ZERO React Native dependencies
17
- * Uses CrossDomainAuth for proper SSO flow
19
+ *
20
+ * Clean implementation with ZERO React Native dependencies.
21
+ * Provides FedCM, popup, and redirect authentication methods.
22
+ * Uses centralized AuthManager for token and session management.
23
+ *
24
+ * @module web/WebOxyContext
18
25
  */
19
26
 
20
27
  const WebOxyContext = /*#__PURE__*/(0, _react.createContext)(null);
21
28
  /**
22
29
  * Web-only Oxy Provider
23
- * Uses CrossDomainAuth for automatic SSO with FedCM/Popup/Redirect fallback
30
+ *
31
+ * Provides authentication context for pure web applications (React, Next.js, Vite).
32
+ * Supports FedCM, popup, and redirect authentication methods.
33
+ *
34
+ * @example
35
+ * ```tsx
36
+ * import { WebOxyProvider, useAuth } from '@oxyhq/services/web';
37
+ *
38
+ * function App() {
39
+ * return (
40
+ * <WebOxyProvider baseURL="https://api.oxy.so">
41
+ * <YourApp />
42
+ * </WebOxyProvider>
43
+ * );
44
+ * }
45
+ *
46
+ * function LoginButton() {
47
+ * const { signIn, isLoading, isFedCMSupported } = useAuth();
48
+ * return (
49
+ * <button onClick={signIn} disabled={isLoading}>
50
+ * {isFedCMSupported() ? 'Sign in with Oxy' : 'Sign in'}
51
+ * </button>
52
+ * );
53
+ * }
54
+ * ```
24
55
  */
25
56
  function WebOxyProvider({
26
57
  children,
27
58
  baseURL,
28
59
  authWebUrl,
29
- onAuthStateChange
60
+ onAuthStateChange,
61
+ onError,
62
+ preferredAuthMethod = 'auto',
63
+ skipAutoCheck = false
30
64
  }) {
31
- const [oxyServices] = (0, _react.useState)(() => new _index.OxyServices({
65
+ // Initialize services with centralized AuthManager
66
+ const [oxyServices] = (0, _react.useState)(() => new _OxyServices.OxyServices({
32
67
  baseURL,
33
68
  authWebUrl
34
69
  }));
35
- const [crossDomainAuth] = (0, _react.useState)(() => (0, _index.createCrossDomainAuth)(oxyServices));
70
+ const [crossDomainAuth] = (0, _react.useState)(() => new _CrossDomainAuth.CrossDomainAuth(oxyServices));
71
+ const [authManager] = (0, _react.useState)(() => (0, _AuthManager.createAuthManager)(oxyServices, {
72
+ autoRefresh: true
73
+ }));
74
+ const [queryClient] = (0, _react.useState)(() => (0, _queryClient.createQueryClient)());
75
+
76
+ // Auth state
36
77
  const [user, setUser] = (0, _react.useState)(null);
37
- const [isLoading, setIsLoading] = (0, _react.useState)(true);
78
+ const [isLoading, setIsLoading] = (0, _react.useState)(!skipAutoCheck);
38
79
  const [error, setError] = (0, _react.useState)(null);
39
- const [queryClient] = (0, _react.useState)(() => (0, _queryClient.createQueryClient)());
40
80
  const isAuthenticated = !!user;
41
81
 
42
- // Initialize - handle callbacks, restore session, try silent sign-in
82
+ /**
83
+ * Handles successful authentication via AuthManager
84
+ */
85
+ const handleAuthSuccess = (0, _react.useCallback)(async (session, method = 'credentials') => {
86
+ // Use centralized AuthManager for token/session storage
87
+ await authManager.handleAuthSuccess(session, method);
88
+
89
+ // Fetch full user profile (session.user only contains MinimalUserData)
90
+ try {
91
+ const fullUser = await oxyServices.getCurrentUser();
92
+ if (fullUser) {
93
+ setUser(fullUser);
94
+ } else {
95
+ // Fallback to minimal data if full profile unavailable
96
+ setUser(session.user);
97
+ }
98
+ } catch {
99
+ // Fallback to minimal data on error
100
+ setUser(session.user);
101
+ }
102
+ setError(null);
103
+ setIsLoading(false);
104
+ }, [authManager, oxyServices]);
105
+
106
+ /**
107
+ * Handles authentication errors
108
+ */
109
+ const handleAuthError = (0, _react.useCallback)(err => {
110
+ const errorMessage = err instanceof Error ? err.message : 'Authentication failed';
111
+ setError(errorMessage);
112
+ setIsLoading(false);
113
+ onError?.(err instanceof Error ? err : new Error(errorMessage));
114
+ }, [onError]);
115
+
116
+ // Initialize - check for existing session or redirect callback
43
117
  (0, _react.useEffect)(() => {
118
+ if (skipAutoCheck) return;
44
119
  let mounted = true;
45
120
  const initAuth = async () => {
46
121
  try {
47
- // Complete initialization: handles callbacks, restores session, tries silent sign-in
48
- const session = await crossDomainAuth.initialize();
49
- if (mounted && session?.user) {
50
- setUser(session.user);
122
+ // 1. Check for redirect callback (user returning from auth.oxy.so)
123
+ const callbackSession = crossDomainAuth.handleRedirectCallback();
124
+ if (callbackSession && mounted) {
125
+ await handleAuthSuccess(callbackSession, 'redirect');
126
+ return;
127
+ }
128
+
129
+ // 2. Try to restore session from AuthManager (handles token refresh automatically)
130
+ const restoredUser = await authManager.initialize();
131
+ if (restoredUser && mounted) {
132
+ // Verify token is still valid by fetching current user
133
+ try {
134
+ const currentUser = await oxyServices.getCurrentUser();
135
+ if (mounted && currentUser) {
136
+ setUser(currentUser);
137
+ setIsLoading(false);
138
+ return;
139
+ }
140
+ } catch {
141
+ // Token invalid, AuthManager will handle clearing
142
+ await authManager.signOut();
143
+ }
144
+ }
145
+
146
+ // 3. Try silent sign-in (FedCM or iframe-based SSO)
147
+ try {
148
+ const session = await crossDomainAuth.silentSignIn();
149
+ if (mounted && session?.user) {
150
+ await handleAuthSuccess(session, 'fedcm');
151
+ return;
152
+ }
153
+ } catch {
154
+ // Silent sign-in failed, that's fine
155
+ }
156
+
157
+ // No session found
158
+ if (mounted) {
159
+ setIsLoading(false);
51
160
  }
52
161
  } catch (err) {
53
- // No active session - this is fine
54
- console.log('[WebOxy] No active session');
55
- } finally {
56
162
  if (mounted) {
57
163
  setIsLoading(false);
58
164
  }
@@ -62,57 +168,127 @@ function WebOxyProvider({
62
168
  return () => {
63
169
  mounted = false;
64
170
  };
65
- }, [crossDomainAuth]);
171
+ }, [oxyServices, crossDomainAuth, authManager, skipAutoCheck, handleAuthSuccess]);
66
172
 
67
173
  // Notify parent of auth state changes
68
174
  (0, _react.useEffect)(() => {
69
175
  onAuthStateChange?.(user);
70
176
  }, [user, onAuthStateChange]);
177
+
178
+ /**
179
+ * Sign in with automatic method selection
180
+ */
71
181
  const signIn = (0, _react.useCallback)(async () => {
72
182
  setError(null);
73
183
  setIsLoading(true);
184
+ let selectedMethod = 'popup';
74
185
  try {
75
- // Sign in with automatic method selection (FedCM → Popup → Redirect)
76
186
  const session = await crossDomainAuth.signIn({
77
- method: 'auto',
78
- // Automatic fallback
187
+ method: preferredAuthMethod,
79
188
  onMethodSelected: method => {
80
- console.log('[WebOxy] Using auth method:', method);
189
+ selectedMethod = method;
81
190
  }
82
191
  });
83
- if (session?.user) {
84
- setUser(session.user);
192
+ if (session) {
193
+ await handleAuthSuccess(session, selectedMethod);
194
+ } else {
195
+ // Redirect method - page will reload
196
+ setIsLoading(false);
85
197
  }
86
198
  } catch (err) {
87
- console.error('[WebOxy] Sign in error:', err);
88
- setError(err instanceof Error ? err.message : 'Sign in failed');
89
- } finally {
90
- setIsLoading(false);
199
+ handleAuthError(err);
91
200
  }
201
+ }, [crossDomainAuth, preferredAuthMethod, handleAuthSuccess, handleAuthError]);
202
+
203
+ /**
204
+ * Sign in with FedCM specifically
205
+ */
206
+ const signInWithFedCM = (0, _react.useCallback)(async () => {
207
+ setError(null);
208
+ setIsLoading(true);
209
+ try {
210
+ const session = await crossDomainAuth.signInWithFedCM();
211
+ await handleAuthSuccess(session, 'fedcm');
212
+ } catch (err) {
213
+ handleAuthError(err);
214
+ }
215
+ }, [crossDomainAuth, handleAuthSuccess, handleAuthError]);
216
+
217
+ /**
218
+ * Sign in with popup specifically
219
+ */
220
+ const signInWithPopup = (0, _react.useCallback)(async () => {
221
+ setError(null);
222
+ setIsLoading(true);
223
+ try {
224
+ const session = await crossDomainAuth.signInWithPopup();
225
+ await handleAuthSuccess(session, 'popup');
226
+ } catch (err) {
227
+ handleAuthError(err);
228
+ }
229
+ }, [crossDomainAuth, handleAuthSuccess, handleAuthError]);
230
+
231
+ /**
232
+ * Sign in with redirect specifically
233
+ */
234
+ const signInWithRedirect = (0, _react.useCallback)(() => {
235
+ setError(null);
236
+ crossDomainAuth.signInWithRedirect({
237
+ redirectUri: typeof window !== 'undefined' ? window.location.href : undefined
238
+ });
239
+ }, [crossDomainAuth]);
240
+
241
+ /**
242
+ * Check if FedCM is supported
243
+ */
244
+ const isFedCMSupported = (0, _react.useCallback)(() => {
245
+ return crossDomainAuth.isFedCMSupported();
92
246
  }, [crossDomainAuth]);
247
+
248
+ /**
249
+ * Sign out via AuthManager (handles FedCM revocation and storage cleanup)
250
+ */
93
251
  const signOut = (0, _react.useCallback)(async () => {
94
252
  setError(null);
95
253
  try {
96
- // Clear stored session
97
- if (typeof window !== 'undefined') {
98
- localStorage.removeItem('oxy-session');
99
- localStorage.removeItem('oxy-access-token');
100
- }
254
+ // Use centralized AuthManager for sign out (handles FedCM, storage cleanup)
255
+ await authManager.signOut();
256
+
257
+ // Clear user state
101
258
  setUser(null);
102
259
  } catch (err) {
103
- console.error('[WebOxy] Sign out error:', err);
104
- setError(err instanceof Error ? err.message : 'Sign out failed');
260
+ const errorMessage = err instanceof Error ? err.message : 'Sign out failed';
261
+ setError(errorMessage);
262
+ onError?.(err instanceof Error ? err : new Error(errorMessage));
105
263
  }
106
- }, []);
107
- const contextValue = {
264
+ }, [authManager, onError]);
265
+
266
+ // Cleanup on unmount
267
+ (0, _react.useEffect)(() => {
268
+ return () => {
269
+ authManager.destroy();
270
+ };
271
+ }, [authManager]);
272
+
273
+ // Memoize context value to prevent unnecessary re-renders
274
+ const contextValue = (0, _react.useMemo)(() => ({
275
+ // State
108
276
  user,
109
277
  isAuthenticated,
110
278
  isLoading,
111
279
  error,
280
+ // Services
281
+ oxyServices,
282
+ crossDomainAuth,
283
+ authManager,
284
+ // Actions
112
285
  signIn,
286
+ signInWithFedCM,
287
+ signInWithPopup,
288
+ signInWithRedirect,
113
289
  signOut,
114
- oxyServices
115
- };
290
+ isFedCMSupported
291
+ }), [user, isAuthenticated, isLoading, error, oxyServices, crossDomainAuth, authManager, signIn, signInWithFedCM, signInWithPopup, signInWithRedirect, signOut, isFedCMSupported]);
116
292
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactQuery.QueryClientProvider, {
117
293
  client: queryClient,
118
294
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(WebOxyContext.Provider, {
@@ -121,6 +297,13 @@ function WebOxyProvider({
121
297
  })
122
298
  });
123
299
  }
300
+
301
+ /**
302
+ * Hook to access the full Web Oxy context.
303
+ *
304
+ * @returns Full context value including oxyServices and crossDomainAuth
305
+ * @throws Error if used outside WebOxyProvider
306
+ */
124
307
  function useWebOxy() {
125
308
  const context = (0, _react.useContext)(WebOxyContext);
126
309
  if (!context) {
@@ -128,6 +311,39 @@ function useWebOxy() {
128
311
  }
129
312
  return context;
130
313
  }
314
+
315
+ /**
316
+ * Hook for authentication in web apps.
317
+ *
318
+ * Provides a simplified interface for common auth operations.
319
+ *
320
+ * @returns Auth state and actions
321
+ * @throws Error if used outside WebOxyProvider
322
+ *
323
+ * @example
324
+ * ```tsx
325
+ * function LoginPage() {
326
+ * const { user, isAuthenticated, isLoading, signIn, signOut, isFedCMSupported } = useAuth();
327
+ *
328
+ * if (isLoading) return <Spinner />;
329
+ *
330
+ * if (isAuthenticated) {
331
+ * return (
332
+ * <div>
333
+ * <p>Welcome, {user.username}!</p>
334
+ * <button onClick={signOut}>Sign Out</button>
335
+ * </div>
336
+ * );
337
+ * }
338
+ *
339
+ * return (
340
+ * <button onClick={signIn}>
341
+ * {isFedCMSupported() ? 'Sign in with Oxy' : 'Sign in'}
342
+ * </button>
343
+ * );
344
+ * }
345
+ * ```
346
+ */
131
347
  function useAuth() {
132
348
  const {
133
349
  user,
@@ -135,18 +351,34 @@ function useAuth() {
135
351
  isLoading,
136
352
  error,
137
353
  signIn,
354
+ signInWithFedCM,
355
+ signInWithPopup,
356
+ signInWithRedirect,
138
357
  signOut,
139
- oxyServices
358
+ isFedCMSupported,
359
+ oxyServices,
360
+ authManager
140
361
  } = useWebOxy();
141
362
  return {
363
+ // State
142
364
  user,
143
365
  isAuthenticated,
144
366
  isLoading,
145
367
  isReady: !isLoading,
146
368
  error,
369
+ // Actions
147
370
  signIn,
371
+ signInWithFedCM,
372
+ signInWithPopup,
373
+ signInWithRedirect,
148
374
  signOut,
149
- oxyServices
375
+ // Utilities
376
+ isFedCMSupported,
377
+ oxyServices,
378
+ authManager
150
379
  };
151
380
  }
381
+
382
+ // Default export for convenience
383
+ var _default = exports.default = WebOxyProvider;
152
384
  //# sourceMappingURL=WebOxyContext.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_index","_reactQuery","_queryClient","_jsxRuntime","WebOxyContext","createContext","WebOxyProvider","children","baseURL","authWebUrl","onAuthStateChange","oxyServices","useState","OxyServices","crossDomainAuth","createCrossDomainAuth","user","setUser","isLoading","setIsLoading","error","setError","queryClient","createQueryClient","isAuthenticated","useEffect","mounted","initAuth","session","initialize","err","console","log","signIn","useCallback","method","onMethodSelected","Error","message","signOut","window","localStorage","removeItem","contextValue","jsx","QueryClientProvider","client","Provider","value","useWebOxy","context","useContext","useAuth","isReady"],"sourceRoot":"../../../src","sources":["web/WebOxyContext.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_OxyServices","_CrossDomainAuth","_AuthManager","_reactQuery","_queryClient","_jsxRuntime","WebOxyContext","createContext","WebOxyProvider","children","baseURL","authWebUrl","onAuthStateChange","onError","preferredAuthMethod","skipAutoCheck","oxyServices","useState","OxyServices","crossDomainAuth","CrossDomainAuth","authManager","createAuthManager","autoRefresh","queryClient","createQueryClient","user","setUser","isLoading","setIsLoading","error","setError","isAuthenticated","handleAuthSuccess","useCallback","session","method","fullUser","getCurrentUser","handleAuthError","err","errorMessage","Error","message","useEffect","mounted","initAuth","callbackSession","handleRedirectCallback","restoredUser","initialize","currentUser","signOut","silentSignIn","signIn","selectedMethod","onMethodSelected","signInWithFedCM","signInWithPopup","signInWithRedirect","redirectUri","window","location","href","undefined","isFedCMSupported","destroy","contextValue","useMemo","jsx","QueryClientProvider","client","Provider","value","useWebOxy","context","useContext","useAuth","isReady","_default","exports","default"],"sourceRoot":"../../../src","sources":["web/WebOxyContext.tsx"],"mappings":"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","ignoreList":[]}