@oxyhq/services 5.7.5 → 5.8.2

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 (303) hide show
  1. package/README.md +76 -76
  2. package/lib/commonjs/core/index.js +177 -102
  3. package/lib/commonjs/core/index.js.map +1 -1
  4. package/lib/commonjs/index.js +69 -28
  5. package/lib/commonjs/index.js.map +1 -1
  6. package/lib/commonjs/ui/components/Avatar.js +15 -6
  7. package/lib/commonjs/ui/components/Avatar.js.map +1 -1
  8. package/lib/commonjs/ui/components/FollowButton.js +100 -12
  9. package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
  10. package/lib/commonjs/ui/components/GroupedItem.js +58 -13
  11. package/lib/commonjs/ui/components/GroupedItem.js.map +1 -1
  12. package/lib/commonjs/ui/components/GroupedSection.js +7 -1
  13. package/lib/commonjs/ui/components/GroupedSection.js.map +1 -1
  14. package/lib/commonjs/ui/components/Header.js +356 -0
  15. package/lib/commonjs/ui/components/Header.js.map +1 -0
  16. package/lib/commonjs/ui/components/OxyProvider.js +28 -7
  17. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  18. package/lib/commonjs/ui/components/index.js +7 -0
  19. package/lib/commonjs/ui/components/index.js.map +1 -1
  20. package/lib/commonjs/ui/components/internal/GroupedPillButtons.js +1 -1
  21. package/lib/commonjs/ui/components/internal/GroupedPillButtons.js.map +1 -1
  22. package/lib/commonjs/ui/components/internal/TextField.js +606 -546
  23. package/lib/commonjs/ui/components/internal/TextField.js.map +1 -1
  24. package/lib/commonjs/ui/components/internal/TextField.md +436 -0
  25. package/lib/commonjs/ui/context/OxyContext.js +181 -199
  26. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  27. package/lib/commonjs/ui/hooks/index.js +6 -0
  28. package/lib/commonjs/ui/hooks/index.js.map +1 -1
  29. package/lib/commonjs/ui/hooks/useFollow.js +59 -2
  30. package/lib/commonjs/ui/hooks/useFollow.js.map +1 -1
  31. package/lib/commonjs/ui/hooks/useSessionSocket.js +5 -2
  32. package/lib/commonjs/ui/hooks/useSessionSocket.js.map +1 -1
  33. package/lib/commonjs/ui/navigation/OxyRouter.js +11 -1
  34. package/lib/commonjs/ui/navigation/OxyRouter.js.map +1 -1
  35. package/lib/commonjs/ui/screens/AccountCenterScreen.js +6 -6
  36. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
  37. package/lib/commonjs/ui/screens/AccountManagementDemo.js +3 -3
  38. package/lib/commonjs/ui/screens/AccountManagementDemo.js.map +1 -1
  39. package/lib/commonjs/ui/screens/AccountOverviewScreen.js +241 -598
  40. package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
  41. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +1160 -406
  42. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  43. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +135 -237
  44. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
  45. package/lib/commonjs/ui/screens/AppInfoScreen.js +246 -463
  46. package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
  47. package/lib/commonjs/ui/screens/FeedbackScreen.js +3 -3
  48. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
  49. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +808 -650
  50. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
  51. package/lib/commonjs/ui/screens/ProfileScreen.js +214 -37
  52. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  53. package/lib/commonjs/ui/screens/RecoverAccountScreen.js +51 -72
  54. package/lib/commonjs/ui/screens/RecoverAccountScreen.js.map +1 -1
  55. package/lib/commonjs/ui/screens/SessionManagementScreen.js +11 -29
  56. package/lib/commonjs/ui/screens/SessionManagementScreen.js.map +1 -1
  57. package/lib/commonjs/ui/screens/SignInScreen.js +30 -303
  58. package/lib/commonjs/ui/screens/SignInScreen.js.map +1 -1
  59. package/lib/commonjs/ui/screens/SignUpScreen.js +4 -4
  60. package/lib/commonjs/ui/screens/SignUpScreen.js.map +1 -1
  61. package/lib/commonjs/ui/screens/UserLinksScreen.js +90 -0
  62. package/lib/commonjs/ui/screens/UserLinksScreen.js.map +1 -0
  63. package/lib/commonjs/ui/screens/internal/SignInPasswordStep.js +19 -31
  64. package/lib/commonjs/ui/screens/internal/SignInPasswordStep.js.map +1 -1
  65. package/lib/commonjs/ui/screens/internal/SignInUsernameStep.js +7 -10
  66. package/lib/commonjs/ui/screens/internal/SignInUsernameStep.js.map +1 -1
  67. package/lib/commonjs/ui/screens/internal/SignUpIdentityStep.js +11 -5
  68. package/lib/commonjs/ui/screens/internal/SignUpIdentityStep.js.map +1 -1
  69. package/lib/commonjs/ui/screens/internal/SignUpSecurityStep.js +11 -4
  70. package/lib/commonjs/ui/screens/internal/SignUpSecurityStep.js.map +1 -1
  71. package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js +9 -6
  72. package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js.map +1 -1
  73. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js +3 -30
  74. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
  75. package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js +37 -46
  76. package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
  77. package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js +9 -12
  78. package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -1
  79. package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js +9 -12
  80. package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
  81. package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js +9 -12
  82. package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js.map +1 -1
  83. package/lib/commonjs/ui/stores/authStore.js +36 -6
  84. package/lib/commonjs/ui/stores/authStore.js.map +1 -1
  85. package/lib/commonjs/ui/stores/followStore.js +106 -1
  86. package/lib/commonjs/ui/stores/followStore.js.map +1 -1
  87. package/lib/commonjs/ui/styles/authStyles.js +337 -0
  88. package/lib/commonjs/ui/styles/authStyles.js.map +1 -0
  89. package/lib/commonjs/ui/styles/index.js +11 -0
  90. package/lib/commonjs/ui/styles/index.js.map +1 -1
  91. package/lib/module/core/index.js +177 -41
  92. package/lib/module/core/index.js.map +1 -1
  93. package/lib/module/index.js +24 -4
  94. package/lib/module/index.js.map +1 -1
  95. package/lib/module/ui/components/Avatar.js +15 -6
  96. package/lib/module/ui/components/Avatar.js.map +1 -1
  97. package/lib/module/ui/components/FollowButton.js +101 -13
  98. package/lib/module/ui/components/FollowButton.js.map +1 -1
  99. package/lib/module/ui/components/GroupedItem.js +59 -14
  100. package/lib/module/ui/components/GroupedItem.js.map +1 -1
  101. package/lib/module/ui/components/GroupedSection.js +7 -1
  102. package/lib/module/ui/components/GroupedSection.js.map +1 -1
  103. package/lib/module/ui/components/Header.js +351 -0
  104. package/lib/module/ui/components/Header.js.map +1 -0
  105. package/lib/module/ui/components/OxyProvider.js +30 -9
  106. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  107. package/lib/module/ui/components/index.js +1 -0
  108. package/lib/module/ui/components/index.js.map +1 -1
  109. package/lib/module/ui/components/internal/GroupedPillButtons.js +1 -1
  110. package/lib/module/ui/components/internal/GroupedPillButtons.js.map +1 -1
  111. package/lib/module/ui/components/internal/TextField.js +607 -547
  112. package/lib/module/ui/components/internal/TextField.js.map +1 -1
  113. package/lib/module/ui/components/internal/TextField.md +436 -0
  114. package/lib/module/ui/context/OxyContext.js +180 -198
  115. package/lib/module/ui/context/OxyContext.js.map +1 -1
  116. package/lib/module/ui/hooks/index.js +1 -1
  117. package/lib/module/ui/hooks/index.js.map +1 -1
  118. package/lib/module/ui/hooks/useFollow.js +57 -1
  119. package/lib/module/ui/hooks/useFollow.js.map +1 -1
  120. package/lib/module/ui/hooks/useSessionSocket.js +5 -2
  121. package/lib/module/ui/hooks/useSessionSocket.js.map +1 -1
  122. package/lib/module/ui/navigation/OxyRouter.js +11 -1
  123. package/lib/module/ui/navigation/OxyRouter.js.map +1 -1
  124. package/lib/module/ui/screens/AccountCenterScreen.js +6 -6
  125. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
  126. package/lib/module/ui/screens/AccountManagementDemo.js +3 -3
  127. package/lib/module/ui/screens/AccountManagementDemo.js.map +1 -1
  128. package/lib/module/ui/screens/AccountOverviewScreen.js +242 -597
  129. package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
  130. package/lib/module/ui/screens/AccountSettingsScreen.js +1161 -407
  131. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  132. package/lib/module/ui/screens/AccountSwitcherScreen.js +135 -237
  133. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
  134. package/lib/module/ui/screens/AppInfoScreen.js +248 -465
  135. package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
  136. package/lib/module/ui/screens/FeedbackScreen.js +3 -3
  137. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  138. package/lib/module/ui/screens/PaymentGatewayScreen.js +809 -651
  139. package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
  140. package/lib/module/ui/screens/ProfileScreen.js +214 -37
  141. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  142. package/lib/module/ui/screens/RecoverAccountScreen.js +53 -74
  143. package/lib/module/ui/screens/RecoverAccountScreen.js.map +1 -1
  144. package/lib/module/ui/screens/SessionManagementScreen.js +11 -29
  145. package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -1
  146. package/lib/module/ui/screens/SignInScreen.js +32 -305
  147. package/lib/module/ui/screens/SignInScreen.js.map +1 -1
  148. package/lib/module/ui/screens/SignUpScreen.js +5 -5
  149. package/lib/module/ui/screens/SignUpScreen.js.map +1 -1
  150. package/lib/module/ui/screens/UserLinksScreen.js +85 -0
  151. package/lib/module/ui/screens/UserLinksScreen.js.map +1 -0
  152. package/lib/module/ui/screens/internal/SignInPasswordStep.js +19 -31
  153. package/lib/module/ui/screens/internal/SignInPasswordStep.js.map +1 -1
  154. package/lib/module/ui/screens/internal/SignInUsernameStep.js +7 -10
  155. package/lib/module/ui/screens/internal/SignInUsernameStep.js.map +1 -1
  156. package/lib/module/ui/screens/internal/SignUpIdentityStep.js +11 -5
  157. package/lib/module/ui/screens/internal/SignUpIdentityStep.js.map +1 -1
  158. package/lib/module/ui/screens/internal/SignUpSecurityStep.js +11 -4
  159. package/lib/module/ui/screens/internal/SignUpSecurityStep.js.map +1 -1
  160. package/lib/module/ui/screens/karma/KarmaAboutScreen.js +9 -6
  161. package/lib/module/ui/screens/karma/KarmaAboutScreen.js.map +1 -1
  162. package/lib/module/ui/screens/karma/KarmaCenterScreen.js +3 -30
  163. package/lib/module/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
  164. package/lib/module/ui/screens/karma/KarmaFAQScreen.js +37 -46
  165. package/lib/module/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
  166. package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js +9 -12
  167. package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -1
  168. package/lib/module/ui/screens/karma/KarmaRewardsScreen.js +9 -12
  169. package/lib/module/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
  170. package/lib/module/ui/screens/karma/KarmaRulesScreen.js +9 -12
  171. package/lib/module/ui/screens/karma/KarmaRulesScreen.js.map +1 -1
  172. package/lib/module/ui/stores/authStore.js +36 -6
  173. package/lib/module/ui/stores/authStore.js.map +1 -1
  174. package/lib/module/ui/stores/followStore.js +106 -1
  175. package/lib/module/ui/stores/followStore.js.map +1 -1
  176. package/lib/module/ui/styles/authStyles.js +332 -0
  177. package/lib/module/ui/styles/authStyles.js.map +1 -0
  178. package/lib/module/ui/styles/index.js +1 -0
  179. package/lib/module/ui/styles/index.js.map +1 -1
  180. package/lib/typescript/core/index.d.ts +68 -24
  181. package/lib/typescript/core/index.d.ts.map +1 -1
  182. package/lib/typescript/index.d.ts +13 -3
  183. package/lib/typescript/index.d.ts.map +1 -1
  184. package/lib/typescript/ui/components/Avatar.d.ts.map +1 -1
  185. package/lib/typescript/ui/components/FollowButton.d.ts +1 -0
  186. package/lib/typescript/ui/components/FollowButton.d.ts.map +1 -1
  187. package/lib/typescript/ui/components/GroupedItem.d.ts +6 -0
  188. package/lib/typescript/ui/components/GroupedItem.d.ts.map +1 -1
  189. package/lib/typescript/ui/components/GroupedSection.d.ts +6 -0
  190. package/lib/typescript/ui/components/GroupedSection.d.ts.map +1 -1
  191. package/lib/typescript/ui/components/Header.d.ts +24 -0
  192. package/lib/typescript/ui/components/Header.d.ts.map +1 -0
  193. package/lib/typescript/ui/components/OxyProvider.d.ts.map +1 -1
  194. package/lib/typescript/ui/components/index.d.ts +1 -0
  195. package/lib/typescript/ui/components/index.d.ts.map +1 -1
  196. package/lib/typescript/ui/components/internal/TextField.d.ts +31 -16
  197. package/lib/typescript/ui/components/internal/TextField.d.ts.map +1 -1
  198. package/lib/typescript/ui/context/OxyContext.d.ts +5 -2
  199. package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
  200. package/lib/typescript/ui/hooks/index.d.ts +1 -1
  201. package/lib/typescript/ui/hooks/index.d.ts.map +1 -1
  202. package/lib/typescript/ui/hooks/useFollow.d.ts +20 -0
  203. package/lib/typescript/ui/hooks/useFollow.d.ts.map +1 -1
  204. package/lib/typescript/ui/hooks/useSessionSocket.d.ts.map +1 -1
  205. package/lib/typescript/ui/navigation/OxyRouter.d.ts.map +1 -1
  206. package/lib/typescript/ui/navigation/types.d.ts +9 -2
  207. package/lib/typescript/ui/navigation/types.d.ts.map +1 -1
  208. package/lib/typescript/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
  209. package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  210. package/lib/typescript/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
  211. package/lib/typescript/ui/screens/AppInfoScreen.d.ts.map +1 -1
  212. package/lib/typescript/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  213. package/lib/typescript/ui/screens/ProfileScreen.d.ts.map +1 -1
  214. package/lib/typescript/ui/screens/RecoverAccountScreen.d.ts +5 -1
  215. package/lib/typescript/ui/screens/RecoverAccountScreen.d.ts.map +1 -1
  216. package/lib/typescript/ui/screens/SessionManagementScreen.d.ts.map +1 -1
  217. package/lib/typescript/ui/screens/SignInScreen.d.ts.map +1 -1
  218. package/lib/typescript/ui/screens/UserLinksScreen.d.ts +15 -0
  219. package/lib/typescript/ui/screens/UserLinksScreen.d.ts.map +1 -0
  220. package/lib/typescript/ui/screens/internal/SignInPasswordStep.d.ts +1 -1
  221. package/lib/typescript/ui/screens/internal/SignInPasswordStep.d.ts.map +1 -1
  222. package/lib/typescript/ui/screens/internal/SignInUsernameStep.d.ts +0 -1
  223. package/lib/typescript/ui/screens/internal/SignInUsernameStep.d.ts.map +1 -1
  224. package/lib/typescript/ui/screens/internal/SignUpIdentityStep.d.ts.map +1 -1
  225. package/lib/typescript/ui/screens/internal/SignUpSecurityStep.d.ts.map +1 -1
  226. package/lib/typescript/ui/screens/karma/KarmaAboutScreen.d.ts.map +1 -1
  227. package/lib/typescript/ui/screens/karma/KarmaCenterScreen.d.ts.map +1 -1
  228. package/lib/typescript/ui/screens/karma/KarmaFAQScreen.d.ts.map +1 -1
  229. package/lib/typescript/ui/screens/karma/KarmaLeaderboardScreen.d.ts.map +1 -1
  230. package/lib/typescript/ui/screens/karma/KarmaRewardsScreen.d.ts.map +1 -1
  231. package/lib/typescript/ui/screens/karma/KarmaRulesScreen.d.ts.map +1 -1
  232. package/lib/typescript/ui/stores/authStore.d.ts +3 -1
  233. package/lib/typescript/ui/stores/authStore.d.ts.map +1 -1
  234. package/lib/typescript/ui/stores/followStore.d.ts +10 -0
  235. package/lib/typescript/ui/stores/followStore.d.ts.map +1 -1
  236. package/lib/typescript/ui/styles/authStyles.d.ts +326 -0
  237. package/lib/typescript/ui/styles/authStyles.d.ts.map +1 -0
  238. package/lib/typescript/ui/styles/index.d.ts +1 -0
  239. package/lib/typescript/ui/styles/index.d.ts.map +1 -1
  240. package/package.json +1 -4
  241. package/src/core/index.ts +195 -41
  242. package/src/index.ts +64 -4
  243. package/src/ui/components/Avatar.tsx +11 -5
  244. package/src/ui/components/FollowButton.tsx +95 -11
  245. package/src/ui/components/GroupedItem.tsx +57 -9
  246. package/src/ui/components/GroupedSection.tsx +12 -0
  247. package/src/ui/components/Header.tsx +405 -0
  248. package/src/ui/components/OxyProvider.tsx +37 -15
  249. package/src/ui/components/index.ts +1 -0
  250. package/src/ui/components/internal/GroupedPillButtons.tsx +1 -1
  251. package/src/ui/components/internal/TextField.md +436 -0
  252. package/src/ui/components/internal/TextField.tsx +720 -620
  253. package/src/ui/context/OxyContext.tsx +211 -195
  254. package/src/ui/hooks/index.ts +1 -1
  255. package/src/ui/hooks/useFollow.ts +63 -0
  256. package/src/ui/hooks/useSessionSocket.ts +5 -2
  257. package/src/ui/navigation/OxyRouter.tsx +11 -1
  258. package/src/ui/navigation/types.ts +10 -2
  259. package/src/ui/screens/AccountCenterScreen.tsx +5 -5
  260. package/src/ui/screens/AccountManagementDemo.tsx +9 -9
  261. package/src/ui/screens/AccountOverviewScreen.tsx +265 -414
  262. package/src/ui/screens/AccountSettingsScreen.tsx +1173 -403
  263. package/src/ui/screens/AccountSwitcherScreen.tsx +158 -202
  264. package/src/ui/screens/AppInfoScreen.tsx +270 -497
  265. package/src/ui/screens/FeedbackScreen.tsx +3 -3
  266. package/src/ui/screens/PaymentGatewayScreen.tsx +668 -365
  267. package/src/ui/screens/ProfileScreen.tsx +196 -33
  268. package/src/ui/screens/RecoverAccountScreen.tsx +46 -74
  269. package/src/ui/screens/SessionManagementScreen.tsx +14 -22
  270. package/src/ui/screens/SignInScreen.tsx +27 -294
  271. package/src/ui/screens/SignUpScreen.tsx +5 -5
  272. package/src/ui/screens/UserLinksScreen.tsx +96 -0
  273. package/src/ui/screens/internal/SignInPasswordStep.tsx +11 -22
  274. package/src/ui/screens/internal/SignInUsernameStep.tsx +3 -10
  275. package/src/ui/screens/internal/SignUpIdentityStep.tsx +2 -5
  276. package/src/ui/screens/internal/SignUpSecurityStep.tsx +3 -4
  277. package/src/ui/screens/karma/KarmaAboutScreen.tsx +9 -2
  278. package/src/ui/screens/karma/KarmaCenterScreen.tsx +1 -20
  279. package/src/ui/screens/karma/KarmaFAQScreen.tsx +40 -24
  280. package/src/ui/screens/karma/KarmaLeaderboardScreen.tsx +9 -3
  281. package/src/ui/screens/karma/KarmaRewardsScreen.tsx +9 -3
  282. package/src/ui/screens/karma/KarmaRulesScreen.tsx +9 -3
  283. package/src/ui/stores/authStore.ts +34 -7
  284. package/src/ui/stores/followStore.ts +102 -1
  285. package/src/ui/styles/authStyles.ts +352 -0
  286. package/src/ui/styles/index.ts +1 -0
  287. package/lib/commonjs/core/auth-manager.js +0 -440
  288. package/lib/commonjs/core/auth-manager.js.map +0 -1
  289. package/lib/commonjs/core/use-auth.js +0 -244
  290. package/lib/commonjs/core/use-auth.js.map +0 -1
  291. package/lib/module/core/auth-manager.js +0 -432
  292. package/lib/module/core/auth-manager.js.map +0 -1
  293. package/lib/module/core/use-auth.js +0 -235
  294. package/lib/module/core/use-auth.js.map +0 -1
  295. package/lib/typescript/core/auth-manager.d.ts +0 -136
  296. package/lib/typescript/core/auth-manager.d.ts.map +0 -1
  297. package/lib/typescript/core/use-auth.d.ts +0 -79
  298. package/lib/typescript/core/use-auth.d.ts.map +0 -1
  299. package/src/__tests__/middleware.test.ts +0 -105
  300. package/src/__tests__/setup.ts +0 -10
  301. package/src/__tests__/zero-config-auth.test.ts +0 -607
  302. package/src/core/auth-manager.ts +0 -500
  303. package/src/core/use-auth.tsx +0 -245
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","require","_authManager","_jsxRuntime","AuthContext","createContext","AuthProvider","children","baseURL","state","setState","useState","isAuthenticated","isLoading","user","error","authManager","initializeAuth","useEffect","unsubscribe","onAuthStateChange","authState","prevState","login","useCallback","username","password","prev","Error","message","register","email","logout","console","getCurrentUser","checkUsernameAvailability","checkEmailAvailability","clearError","contextValue","jsx","Provider","value","useAuth","context","useContext","withAuth","Component","options","redirectTo","LoadingComponent","requireAuth","AuthenticatedComponent","props","useOxyClient","getAuthManager","getClient","useAuthStatus","useCurrentUser","refetch"],"sourceRoot":"../../../src","sources":["core/use-auth.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,432 +0,0 @@
1
- "use strict";
2
-
3
- /**
4
- * Zero-Config Authentication Manager
5
- *
6
- * This module provides automatic token management, session handling,
7
- * and seamless authentication for Oxy services.
8
- */
9
-
10
- import axios from 'axios';
11
- import { jwtDecode } from 'jwt-decode';
12
- import AsyncStorage from '@react-native-async-storage/async-storage';
13
- export class AuthenticationManager {
14
- tokens = null;
15
- user = null;
16
- refreshPromise = null;
17
- listeners = [];
18
- storageKey = '@oxy/auth-tokens';
19
- constructor(baseURL) {
20
- this.client = axios.create({
21
- baseURL,
22
- timeout: 15000,
23
- withCredentials: true // Enable cookies for session management
24
- });
25
- this.setupInterceptors();
26
- this.initializeFromStorage();
27
- }
28
-
29
- /**
30
- * Setup axios interceptors for automatic token management
31
- */
32
- setupInterceptors() {
33
- // Request interceptor - automatically add auth headers
34
- this.client.interceptors.request.use(async config => {
35
- // Skip auth for login/signup endpoints
36
- if (this.isPublicEndpoint(config.url || '')) {
37
- return config;
38
- }
39
-
40
- // Ensure we have a valid token
41
- await this.ensureValidToken();
42
-
43
- // Add authorization header if we have a token
44
- if (this.tokens?.accessToken) {
45
- config.headers = config.headers || {};
46
- config.headers.Authorization = `Bearer ${this.tokens.accessToken}`;
47
- }
48
- return config;
49
- }, error => Promise.reject(error));
50
-
51
- // Response interceptor - handle token expiration and auto-retry
52
- this.client.interceptors.response.use(response => response, async error => {
53
- const originalRequest = error.config;
54
-
55
- // If it's a 401 and we haven't already retried, attempt token refresh
56
- if (error.response?.status === 401 && !originalRequest._retry && this.tokens?.refreshToken && !this.isPublicEndpoint(originalRequest?.url || '')) {
57
- originalRequest._retry = true;
58
- try {
59
- await this.refreshTokens();
60
-
61
- // Retry original request with new token
62
- if (originalRequest && this.tokens?.accessToken) {
63
- originalRequest.headers = originalRequest.headers || {};
64
- originalRequest.headers.Authorization = `Bearer ${this.tokens.accessToken}`;
65
- return this.client(originalRequest);
66
- }
67
- } catch (refreshError) {
68
- // Refresh failed, clear tokens and notify listeners
69
- await this.logout();
70
- return Promise.reject(error);
71
- }
72
- }
73
-
74
- // For non-auth errors or failed retries, reject with formatted error
75
- return Promise.reject(this.formatError(error));
76
- });
77
- }
78
-
79
- /**
80
- * Check if endpoint is public (doesn't require authentication)
81
- */
82
- isPublicEndpoint(url) {
83
- const publicPaths = ['/auth/login', '/auth/signup', '/auth/register', '/auth/check-username', '/auth/check-email', '/health', '/'];
84
- return publicPaths.some(path => url.includes(path));
85
- }
86
-
87
- /**
88
- * Initialize authentication state from persistent storage
89
- */
90
- async initializeFromStorage() {
91
- try {
92
- const storedData = await AsyncStorage.getItem(this.storageKey);
93
- if (storedData) {
94
- const tokens = JSON.parse(storedData);
95
-
96
- // Validate that tokens haven't expired
97
- if (await this.validateStoredTokens(tokens)) {
98
- this.tokens = tokens;
99
- await this.fetchCurrentUser();
100
- this.notifyStateChange();
101
- } else {
102
- // Tokens expired, clear storage
103
- await AsyncStorage.removeItem(this.storageKey);
104
- }
105
- }
106
- } catch (error) {
107
- console.warn('[OxyAuth] Failed to initialize from storage:', error);
108
- await AsyncStorage.removeItem(this.storageKey);
109
- }
110
- }
111
-
112
- /**
113
- * Validate stored tokens without making network calls if possible
114
- */
115
- async validateStoredTokens(tokens) {
116
- try {
117
- // First check if access token is expired
118
- const decoded = jwtDecode(tokens.accessToken);
119
- const now = Math.floor(Date.now() / 1000);
120
-
121
- // If access token is still valid, we're good
122
- if (decoded.exp > now + 60) {
123
- // 60 second buffer
124
- return true;
125
- }
126
-
127
- // Access token expired, try refresh token
128
- const refreshDecoded = jwtDecode(tokens.refreshToken);
129
- return refreshDecoded.exp > now;
130
- } catch {
131
- return false;
132
- }
133
- }
134
-
135
- /**
136
- * Ensure we have a valid access token
137
- */
138
- async ensureValidToken() {
139
- if (!this.tokens?.accessToken) {
140
- return;
141
- }
142
- try {
143
- const decoded = jwtDecode(this.tokens.accessToken);
144
- const now = Math.floor(Date.now() / 1000);
145
-
146
- // Refresh if token expires within 5 minutes
147
- if (decoded.exp - now < 300) {
148
- await this.refreshTokens();
149
- }
150
- } catch (error) {
151
- console.warn('[OxyAuth] Token validation error:', error);
152
- // If token is malformed, try refresh
153
- if (this.tokens?.refreshToken) {
154
- await this.refreshTokens();
155
- }
156
- }
157
- }
158
-
159
- /**
160
- * Login with credentials
161
- */
162
- async login(credentials) {
163
- try {
164
- const response = await this.client.post('/auth/login', credentials);
165
- const loginData = response.data;
166
- if (loginData.success && loginData.accessToken && loginData.refreshToken) {
167
- await this.setTokens({
168
- accessToken: loginData.accessToken,
169
- refreshToken: loginData.refreshToken
170
- });
171
- this.user = loginData.user;
172
- this.notifyStateChange();
173
- return loginData;
174
- } else {
175
- throw new Error(loginData.message || 'Login failed');
176
- }
177
- } catch (error) {
178
- throw this.formatError(error);
179
- }
180
- }
181
-
182
- /**
183
- * Register new user
184
- */
185
- async register(userData) {
186
- try {
187
- const response = await this.client.post('/auth/register', userData);
188
- const registerData = response.data;
189
- if (registerData.success && registerData.accessToken && registerData.refreshToken) {
190
- await this.setTokens({
191
- accessToken: registerData.accessToken,
192
- refreshToken: registerData.refreshToken
193
- });
194
- this.user = registerData.user;
195
- this.notifyStateChange();
196
- return registerData;
197
- } else {
198
- throw new Error(registerData.message || 'Registration failed');
199
- }
200
- } catch (error) {
201
- throw this.formatError(error);
202
- }
203
- }
204
-
205
- /**
206
- * Logout user and clear all tokens
207
- */
208
- async logout() {
209
- // Attempt server-side logout if we have tokens
210
- if (this.tokens?.refreshToken) {
211
- try {
212
- await this.client.post('/auth/logout', {
213
- refreshToken: this.tokens.refreshToken
214
- });
215
- } catch (error) {
216
- console.warn('[OxyAuth] Server logout failed:', error);
217
- }
218
- }
219
-
220
- // Clear local state
221
- this.tokens = null;
222
- this.user = null;
223
-
224
- // Clear storage
225
- try {
226
- await AsyncStorage.removeItem(this.storageKey);
227
- } catch (error) {
228
- console.warn('[OxyAuth] Failed to clear storage:', error);
229
- }
230
- this.notifyStateChange();
231
- }
232
-
233
- /**
234
- * Refresh access token using refresh token
235
- */
236
- async refreshTokens() {
237
- if (!this.tokens?.refreshToken) {
238
- throw new Error('No refresh token available');
239
- }
240
-
241
- // If refresh is already in progress, return that promise
242
- if (this.refreshPromise) {
243
- return this.refreshPromise;
244
- }
245
- this.refreshPromise = this.performTokenRefresh();
246
- try {
247
- const newTokens = await this.refreshPromise;
248
- this.refreshPromise = null;
249
- return newTokens;
250
- } catch (error) {
251
- this.refreshPromise = null;
252
- throw error;
253
- }
254
- }
255
-
256
- /**
257
- * Perform the actual token refresh
258
- */
259
- async performTokenRefresh() {
260
- try {
261
- const response = await this.client.post('/auth/refresh', {
262
- refreshToken: this.tokens.refreshToken
263
- });
264
- const newTokens = {
265
- accessToken: response.data.accessToken,
266
- refreshToken: response.data.refreshToken
267
- };
268
- await this.setTokens(newTokens);
269
- return newTokens;
270
- } catch (error) {
271
- // Refresh failed, clear all tokens
272
- await this.logout();
273
- throw this.formatError(error);
274
- }
275
- }
276
-
277
- /**
278
- * Set tokens and persist to storage
279
- */
280
- async setTokens(newTokens) {
281
- this.tokens = newTokens;
282
- try {
283
- await AsyncStorage.setItem(this.storageKey, JSON.stringify(newTokens));
284
- } catch (error) {
285
- console.warn('[OxyAuth] Failed to persist tokens:', error);
286
- }
287
- }
288
-
289
- /**
290
- * Fetch current user profile
291
- */
292
- async fetchCurrentUser() {
293
- try {
294
- const response = await this.client.get('/auth/me');
295
- this.user = response.data.data || response.data;
296
- } catch (error) {
297
- console.warn('[OxyAuth] Failed to fetch current user:', error);
298
- // Don't throw here, we can still function without user profile
299
- }
300
- }
301
-
302
- /**
303
- * Get current authentication state
304
- */
305
- getAuthState() {
306
- return {
307
- isAuthenticated: !!this.tokens?.accessToken,
308
- user: this.user,
309
- tokens: this.tokens
310
- };
311
- }
312
-
313
- /**
314
- * Get current user (loads if not cached)
315
- */
316
- async getCurrentUser() {
317
- if (!this.tokens?.accessToken) {
318
- throw new Error('Not authenticated');
319
- }
320
- if (!this.user) {
321
- await this.fetchCurrentUser();
322
- }
323
- return this.user;
324
- }
325
-
326
- /**
327
- * Subscribe to authentication state changes
328
- */
329
- onAuthStateChange(callback) {
330
- this.listeners.push(callback);
331
-
332
- // Immediately call with current state
333
- callback(this.getAuthState());
334
-
335
- // Return unsubscribe function
336
- return () => {
337
- this.listeners = this.listeners.filter(listener => listener !== callback);
338
- };
339
- }
340
-
341
- /**
342
- * Notify all listeners of state changes
343
- */
344
- notifyStateChange() {
345
- const state = this.getAuthState();
346
- this.listeners.forEach(listener => {
347
- try {
348
- listener(state);
349
- } catch (error) {
350
- console.error('[OxyAuth] Listener error:', error);
351
- }
352
- });
353
- }
354
-
355
- /**
356
- * Format error responses consistently
357
- */
358
- formatError(error) {
359
- if (error?.response?.data?.message) {
360
- return new Error(error.response.data.message);
361
- }
362
- if (error?.message) {
363
- return new Error(error.message);
364
- }
365
- return new Error('An unexpected error occurred');
366
- }
367
-
368
- /**
369
- * Get authenticated HTTP client for making API calls
370
- */
371
- getClient() {
372
- return this.client;
373
- }
374
-
375
- /**
376
- * Check username availability
377
- */
378
- async checkUsernameAvailability(username) {
379
- try {
380
- const response = await this.client.get(`/auth/check-username/${encodeURIComponent(username)}`);
381
- return response.data;
382
- } catch (error) {
383
- const axiosError = error;
384
- if (axiosError?.response?.status === 400) {
385
- return axiosError.response.data;
386
- }
387
- throw this.formatError(error);
388
- }
389
- }
390
-
391
- /**
392
- * Check email availability
393
- */
394
- async checkEmailAvailability(email) {
395
- try {
396
- const response = await this.client.post('/auth/check-email', {
397
- email
398
- });
399
- return response.data;
400
- } catch (error) {
401
- const axiosError = error;
402
- if (axiosError?.response?.status === 400) {
403
- return axiosError.response.data;
404
- }
405
- throw this.formatError(error);
406
- }
407
- }
408
- }
409
-
410
- // Global auth manager instance
411
- let globalAuthManager = null;
412
-
413
- /**
414
- * Initialize global authentication manager
415
- */
416
- export function initializeAuth(baseURL) {
417
- if (!globalAuthManager) {
418
- globalAuthManager = new AuthenticationManager(baseURL);
419
- }
420
- return globalAuthManager;
421
- }
422
-
423
- /**
424
- * Get global authentication manager instance
425
- */
426
- export function getAuthManager() {
427
- if (!globalAuthManager) {
428
- throw new Error('Authentication manager not initialized. Call initializeAuth() first.');
429
- }
430
- return globalAuthManager;
431
- }
432
- //# sourceMappingURL=auth-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["axios","jwtDecode","AsyncStorage","AuthenticationManager","tokens","user","refreshPromise","listeners","storageKey","constructor","baseURL","client","create","timeout","withCredentials","setupInterceptors","initializeFromStorage","interceptors","request","use","config","isPublicEndpoint","url","ensureValidToken","accessToken","headers","Authorization","error","Promise","reject","response","originalRequest","status","_retry","refreshToken","refreshTokens","refreshError","logout","formatError","publicPaths","some","path","includes","storedData","getItem","JSON","parse","validateStoredTokens","fetchCurrentUser","notifyStateChange","removeItem","console","warn","decoded","now","Math","floor","Date","exp","refreshDecoded","login","credentials","post","loginData","data","success","setTokens","Error","message","register","userData","registerData","performTokenRefresh","newTokens","setItem","stringify","get","getAuthState","isAuthenticated","getCurrentUser","onAuthStateChange","callback","push","filter","listener","state","forEach","getClient","checkUsernameAvailability","username","encodeURIComponent","axiosError","checkEmailAvailability","email","globalAuthManager","initializeAuth","getAuthManager"],"sourceRoot":"../../../src","sources":["core/auth-manager.ts"],"mappings":"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","ignoreList":[]}
@@ -1,235 +0,0 @@
1
- "use strict";
2
-
3
- /**
4
- * Zero-Config Authentication Hook for React/React Native
5
- *
6
- * Provides automatic authentication state management with minimal setup required.
7
- */
8
-
9
- import { useState, useEffect, useCallback, useContext, createContext } from 'react';
10
- import { getAuthManager, initializeAuth } from './auth-manager';
11
- import { jsx as _jsx } from "react/jsx-runtime";
12
- const AuthContext = /*#__PURE__*/createContext(null);
13
- /**
14
- * Authentication Provider Component
15
- *
16
- * Wrap your app with this provider to enable zero-config authentication.
17
- * All authentication state will be automatically managed.
18
- */
19
- export function AuthProvider({
20
- children,
21
- baseURL = 'https://api.oxy.so'
22
- }) {
23
- const [state, setState] = useState({
24
- isAuthenticated: false,
25
- isLoading: true,
26
- user: null,
27
- error: null
28
- });
29
- const authManager = initializeAuth(baseURL);
30
-
31
- // Update state when auth manager state changes
32
- useEffect(() => {
33
- const unsubscribe = authManager.onAuthStateChange(authState => {
34
- setState(prevState => ({
35
- ...prevState,
36
- isAuthenticated: authState.isAuthenticated,
37
- user: authState.user,
38
- isLoading: false
39
- }));
40
- });
41
- return unsubscribe;
42
- }, [authManager]);
43
- const login = useCallback(async (username, password) => {
44
- setState(prev => ({
45
- ...prev,
46
- isLoading: true,
47
- error: null
48
- }));
49
- try {
50
- await authManager.login({
51
- username,
52
- password
53
- });
54
- // State will be updated via the auth state change listener
55
- } catch (error) {
56
- setState(prev => ({
57
- ...prev,
58
- isLoading: false,
59
- error: error instanceof Error ? error.message : 'Login failed'
60
- }));
61
- throw error;
62
- }
63
- }, [authManager]);
64
- const register = useCallback(async (username, email, password) => {
65
- setState(prev => ({
66
- ...prev,
67
- isLoading: true,
68
- error: null
69
- }));
70
- try {
71
- await authManager.register({
72
- username,
73
- email,
74
- password
75
- });
76
- // State will be updated via the auth state change listener
77
- } catch (error) {
78
- setState(prev => ({
79
- ...prev,
80
- isLoading: false,
81
- error: error instanceof Error ? error.message : 'Registration failed'
82
- }));
83
- throw error;
84
- }
85
- }, [authManager]);
86
- const logout = useCallback(async () => {
87
- setState(prev => ({
88
- ...prev,
89
- isLoading: true,
90
- error: null
91
- }));
92
- try {
93
- await authManager.logout();
94
- // State will be updated via the auth state change listener
95
- } catch (error) {
96
- console.error('Logout error:', error);
97
- setState(prev => ({
98
- ...prev,
99
- isLoading: false,
100
- error: error instanceof Error ? error.message : 'Logout failed'
101
- }));
102
- }
103
- }, [authManager]);
104
- const getCurrentUser = useCallback(async () => {
105
- try {
106
- return await authManager.getCurrentUser();
107
- } catch (error) {
108
- setState(prev => ({
109
- ...prev,
110
- error: error instanceof Error ? error.message : 'Failed to get current user'
111
- }));
112
- throw error;
113
- }
114
- }, [authManager]);
115
- const checkUsernameAvailability = useCallback(async username => {
116
- return await authManager.checkUsernameAvailability(username);
117
- }, [authManager]);
118
- const checkEmailAvailability = useCallback(async email => {
119
- return await authManager.checkEmailAvailability(email);
120
- }, [authManager]);
121
- const clearError = useCallback(() => {
122
- setState(prev => ({
123
- ...prev,
124
- error: null
125
- }));
126
- }, []);
127
- const contextValue = {
128
- ...state,
129
- login,
130
- register,
131
- logout,
132
- getCurrentUser,
133
- checkUsernameAvailability,
134
- checkEmailAvailability,
135
- clearError
136
- };
137
- return /*#__PURE__*/_jsx(AuthContext.Provider, {
138
- value: contextValue,
139
- children: children
140
- });
141
- }
142
-
143
- /**
144
- * Authentication Hook
145
- *
146
- * Use this hook in any component to access authentication state and methods.
147
- * No additional setup required - just wrap your app with AuthProvider.
148
- */
149
- export function useAuth() {
150
- const context = useContext(AuthContext);
151
- if (!context) {
152
- throw new Error('useAuth must be used within an AuthProvider');
153
- }
154
- return context;
155
- }
156
-
157
- /**
158
- * Higher-Order Component for authentication
159
- *
160
- * Wraps a component to ensure user is authenticated before rendering.
161
- * Automatically redirects to login if not authenticated.
162
- */
163
- export function withAuth(Component, options = {}) {
164
- const {
165
- redirectTo,
166
- LoadingComponent = () => null,
167
- requireAuth = true
168
- } = options;
169
- return function AuthenticatedComponent(props) {
170
- const {
171
- isAuthenticated,
172
- isLoading
173
- } = useAuth();
174
- if (isLoading) {
175
- return /*#__PURE__*/_jsx(LoadingComponent, {});
176
- }
177
- if (requireAuth && !isAuthenticated) {
178
- if (redirectTo) {
179
- redirectTo();
180
- return null;
181
- }
182
-
183
- // Default behavior - render nothing if not authenticated
184
- return null;
185
- }
186
- if (!requireAuth && isAuthenticated) {
187
- // Component should only be shown to non-authenticated users
188
- return null;
189
- }
190
- return /*#__PURE__*/_jsx(Component, {
191
- ...props
192
- });
193
- };
194
- }
195
-
196
- /**
197
- * Hook for authenticated API calls
198
- *
199
- * Returns an authenticated HTTP client that automatically handles tokens.
200
- */
201
- export function useOxyClient() {
202
- const authManager = getAuthManager();
203
- return authManager.getClient();
204
- }
205
-
206
- /**
207
- * Hook for authentication status only (minimal re-renders)
208
- */
209
- export function useAuthStatus() {
210
- const {
211
- isAuthenticated,
212
- isLoading
213
- } = useAuth();
214
- return {
215
- isAuthenticated,
216
- isLoading
217
- };
218
- }
219
-
220
- /**
221
- * Hook for current user data
222
- */
223
- export function useCurrentUser() {
224
- const {
225
- user,
226
- isLoading,
227
- getCurrentUser
228
- } = useAuth();
229
- return {
230
- user,
231
- isLoading,
232
- refetch: getCurrentUser
233
- };
234
- }
235
- //# sourceMappingURL=use-auth.js.map