@oxyhq/services 5.17.16 → 5.17.18

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 (403) hide show
  1. package/README.md +32 -38
  2. package/lib/commonjs/core/CrossDomainAuth.js +277 -0
  3. package/lib/commonjs/core/CrossDomainAuth.js.map +1 -0
  4. package/lib/commonjs/core/HttpService.js +82 -15
  5. package/lib/commonjs/core/HttpService.js.map +1 -1
  6. package/lib/commonjs/core/OxyServices.base.js +11 -3
  7. package/lib/commonjs/core/OxyServices.base.js.map +1 -1
  8. package/lib/commonjs/core/OxyServices.js +4 -1
  9. package/lib/commonjs/core/OxyServices.js.map +1 -1
  10. package/lib/commonjs/core/index.js +30 -0
  11. package/lib/commonjs/core/index.js.map +1 -1
  12. package/lib/commonjs/core/mixins/OxyServices.assets.js +16 -3
  13. package/lib/commonjs/core/mixins/OxyServices.assets.js.map +1 -1
  14. package/lib/commonjs/core/mixins/OxyServices.auth.js +73 -32
  15. package/lib/commonjs/core/mixins/OxyServices.auth.js.map +1 -1
  16. package/lib/commonjs/core/mixins/OxyServices.fedcm.js +289 -0
  17. package/lib/commonjs/core/mixins/OxyServices.fedcm.js.map +1 -0
  18. package/lib/commonjs/core/mixins/OxyServices.popup.js +352 -0
  19. package/lib/commonjs/core/mixins/OxyServices.popup.js.map +1 -0
  20. package/lib/commonjs/core/mixins/OxyServices.redirect.js +378 -0
  21. package/lib/commonjs/core/mixins/OxyServices.redirect.js.map +1 -0
  22. package/lib/commonjs/core/mixins/OxyServices.user.js +35 -24
  23. package/lib/commonjs/core/mixins/OxyServices.user.js.map +1 -1
  24. package/lib/commonjs/core/mixins/index.js +27 -15
  25. package/lib/commonjs/core/mixins/index.js.map +1 -1
  26. package/lib/commonjs/crypto/index.js +30 -0
  27. package/lib/commonjs/crypto/index.js.map +1 -1
  28. package/lib/commonjs/crypto/keyManager.js +902 -0
  29. package/lib/commonjs/crypto/keyManager.js.map +1 -0
  30. package/lib/commonjs/crypto/polyfill.js +14 -5
  31. package/lib/commonjs/crypto/polyfill.js.map +1 -1
  32. package/lib/commonjs/crypto/recoveryPhrase.js +152 -0
  33. package/lib/commonjs/crypto/recoveryPhrase.js.map +1 -0
  34. package/lib/commonjs/crypto/signatureService.js +289 -0
  35. package/lib/commonjs/crypto/signatureService.js.map +1 -0
  36. package/lib/commonjs/i18n/locales/en-US.json +1 -1
  37. package/lib/commonjs/index.js +40 -26
  38. package/lib/commonjs/index.js.map +1 -1
  39. package/lib/commonjs/models/interfaces.js +0 -15
  40. package/lib/commonjs/models/interfaces.js.map +1 -1
  41. package/lib/commonjs/ui/components/BottomSheetRouter.js +9 -1
  42. package/lib/commonjs/ui/components/BottomSheetRouter.js.map +1 -1
  43. package/lib/commonjs/ui/components/Icon.js.map +1 -1
  44. package/lib/commonjs/ui/components/IconButton/utils.js.map +1 -1
  45. package/lib/commonjs/ui/components/OxyProvider.js +41 -11
  46. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  47. package/lib/commonjs/ui/components/TextField/Adornment/utils.js.map +1 -1
  48. package/lib/commonjs/ui/components/TextField/helpers.js.map +1 -1
  49. package/lib/commonjs/ui/components/TouchableRipple/utils.js.map +1 -1
  50. package/lib/commonjs/ui/components/Typography/AnimatedText.js.map +1 -1
  51. package/lib/commonjs/ui/context/OxyContext.js +110 -192
  52. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  53. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +150 -19
  54. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  55. package/lib/commonjs/ui/context/hooks/useSessionManagement.js +279 -0
  56. package/lib/commonjs/ui/context/hooks/useSessionManagement.js.map +1 -0
  57. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +78 -64
  58. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  59. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +38 -51
  60. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
  61. package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js +3 -3
  62. package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js.map +1 -1
  63. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +18 -12
  64. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
  65. package/lib/commonjs/ui/hooks/useProfileEditing.js +3 -5
  66. package/lib/commonjs/ui/hooks/useProfileEditing.js.map +1 -1
  67. package/lib/commonjs/ui/hooks/useSessionManagement.js +4 -8
  68. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
  69. package/lib/commonjs/ui/hooks/useSessionSocket.js +162 -315
  70. package/lib/commonjs/ui/hooks/useSessionSocket.js.map +1 -1
  71. package/lib/commonjs/ui/hooks/useStorage.js +24 -58
  72. package/lib/commonjs/ui/hooks/useStorage.js.map +1 -1
  73. package/lib/commonjs/ui/index.js +50 -21
  74. package/lib/commonjs/ui/index.js.map +1 -1
  75. package/lib/commonjs/ui/navigation/routes.js +5 -1
  76. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  77. package/lib/commonjs/ui/screens/AccountCenterScreen.js +2 -2
  78. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
  79. package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
  80. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +29 -24
  81. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  82. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +3 -3
  83. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
  84. package/lib/commonjs/ui/screens/OxyAuthScreen.js +134 -66
  85. package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
  86. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +6 -13
  87. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  88. package/lib/commonjs/ui/stores/accountStore.js +2 -4
  89. package/lib/commonjs/ui/stores/accountStore.js.map +1 -1
  90. package/lib/commonjs/ui/stores/authStore.js +45 -32
  91. package/lib/commonjs/ui/stores/authStore.js.map +1 -1
  92. package/lib/commonjs/ui/styles/spacing.js +54 -2
  93. package/lib/commonjs/ui/styles/spacing.js.map +1 -1
  94. package/lib/commonjs/ui/utils/avatarUtils.js +37 -41
  95. package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
  96. package/lib/commonjs/ui/utils/storageHelpers.js.map +1 -1
  97. package/lib/commonjs/utils/errorUtils.js +13 -0
  98. package/lib/commonjs/utils/errorUtils.js.map +1 -1
  99. package/lib/commonjs/utils/validationUtils.js +15 -1
  100. package/lib/commonjs/utils/validationUtils.js.map +1 -1
  101. package/lib/module/core/CrossDomainAuth.js +271 -0
  102. package/lib/module/core/CrossDomainAuth.js.map +1 -0
  103. package/lib/module/core/HttpService.js +82 -15
  104. package/lib/module/core/HttpService.js.map +1 -1
  105. package/lib/module/core/OxyServices.base.js +11 -4
  106. package/lib/module/core/OxyServices.base.js.map +1 -1
  107. package/lib/module/core/OxyServices.js +4 -1
  108. package/lib/module/core/OxyServices.js.map +1 -1
  109. package/lib/module/core/index.js +6 -1
  110. package/lib/module/core/index.js.map +1 -1
  111. package/lib/module/core/mixins/OxyServices.assets.js +16 -3
  112. package/lib/module/core/mixins/OxyServices.assets.js.map +1 -1
  113. package/lib/module/core/mixins/OxyServices.auth.js +73 -32
  114. package/lib/module/core/mixins/OxyServices.auth.js.map +1 -1
  115. package/lib/module/core/mixins/OxyServices.fedcm.js +286 -0
  116. package/lib/module/core/mixins/OxyServices.fedcm.js.map +1 -0
  117. package/lib/module/core/mixins/OxyServices.popup.js +349 -0
  118. package/lib/module/core/mixins/OxyServices.popup.js.map +1 -0
  119. package/lib/module/core/mixins/OxyServices.redirect.js +375 -0
  120. package/lib/module/core/mixins/OxyServices.redirect.js.map +1 -0
  121. package/lib/module/core/mixins/OxyServices.user.js +35 -24
  122. package/lib/module/core/mixins/OxyServices.user.js.map +1 -1
  123. package/lib/module/core/mixins/index.js +15 -3
  124. package/lib/module/core/mixins/index.js.map +1 -1
  125. package/lib/module/crypto/index.js +8 -4
  126. package/lib/module/crypto/index.js.map +1 -1
  127. package/lib/module/crypto/keyManager.js +899 -0
  128. package/lib/module/crypto/keyManager.js.map +1 -0
  129. package/lib/module/crypto/polyfill.js +6 -5
  130. package/lib/module/crypto/polyfill.js.map +1 -1
  131. package/lib/module/crypto/recoveryPhrase.js +147 -0
  132. package/lib/module/crypto/recoveryPhrase.js.map +1 -0
  133. package/lib/module/crypto/signatureService.js +286 -0
  134. package/lib/module/crypto/signatureService.js.map +1 -0
  135. package/lib/module/i18n/locales/en-US.json +1 -1
  136. package/lib/module/index.js +6 -9
  137. package/lib/module/index.js.map +1 -1
  138. package/lib/module/models/interfaces.js +0 -15
  139. package/lib/module/models/interfaces.js.map +1 -1
  140. package/lib/module/ui/components/BottomSheetRouter.js +6 -2
  141. package/lib/module/ui/components/BottomSheetRouter.js.map +1 -1
  142. package/lib/module/ui/components/Icon.js.map +1 -1
  143. package/lib/module/ui/components/IconButton/utils.js.map +1 -1
  144. package/lib/module/ui/components/OxyProvider.js +41 -11
  145. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  146. package/lib/module/ui/components/TextField/Adornment/utils.js.map +1 -1
  147. package/lib/module/ui/components/TextField/helpers.js.map +1 -1
  148. package/lib/module/ui/components/TouchableRipple/utils.js.map +1 -1
  149. package/lib/module/ui/components/Typography/AnimatedText.js.map +1 -1
  150. package/lib/module/ui/context/OxyContext.js +112 -184
  151. package/lib/module/ui/context/OxyContext.js.map +1 -1
  152. package/lib/module/ui/context/hooks/useAuthOperations.js +150 -19
  153. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  154. package/lib/module/ui/context/hooks/useSessionManagement.js +274 -0
  155. package/lib/module/ui/context/hooks/useSessionManagement.js.map +1 -0
  156. package/lib/module/ui/hooks/mutations/useAccountMutations.js +79 -64
  157. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  158. package/lib/module/ui/hooks/queries/useAccountQueries.js +31 -44
  159. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
  160. package/lib/module/ui/hooks/queries/useSecurityQueries.js +1 -1
  161. package/lib/module/ui/hooks/queries/useSecurityQueries.js.map +1 -1
  162. package/lib/module/ui/hooks/queries/useServicesQueries.js +13 -7
  163. package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
  164. package/lib/module/ui/hooks/useProfileEditing.js +3 -5
  165. package/lib/module/ui/hooks/useProfileEditing.js.map +1 -1
  166. package/lib/module/ui/hooks/useSessionManagement.js +4 -8
  167. package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
  168. package/lib/module/ui/hooks/useSessionSocket.js +162 -315
  169. package/lib/module/ui/hooks/useSessionSocket.js.map +1 -1
  170. package/lib/module/ui/hooks/useStorage.js +25 -59
  171. package/lib/module/ui/hooks/useStorage.js.map +1 -1
  172. package/lib/module/ui/index.js +15 -10
  173. package/lib/module/ui/index.js.map +1 -1
  174. package/lib/module/ui/navigation/routes.js +5 -1
  175. package/lib/module/ui/navigation/routes.js.map +1 -1
  176. package/lib/module/ui/screens/AccountCenterScreen.js +2 -2
  177. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
  178. package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
  179. package/lib/module/ui/screens/AccountSettingsScreen.js +29 -24
  180. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  181. package/lib/module/ui/screens/AccountSwitcherScreen.js +3 -3
  182. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
  183. package/lib/module/ui/screens/OxyAuthScreen.js +135 -68
  184. package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
  185. package/lib/module/ui/screens/PrivacySettingsScreen.js +6 -13
  186. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  187. package/lib/module/ui/stores/accountStore.js +2 -4
  188. package/lib/module/ui/stores/accountStore.js.map +1 -1
  189. package/lib/module/ui/stores/authStore.js +45 -32
  190. package/lib/module/ui/stores/authStore.js.map +1 -1
  191. package/lib/module/ui/styles/spacing.js +6 -2
  192. package/lib/module/ui/styles/spacing.js.map +1 -1
  193. package/lib/module/ui/utils/avatarUtils.js +37 -40
  194. package/lib/module/ui/utils/avatarUtils.js.map +1 -1
  195. package/lib/module/ui/utils/storageHelpers.js.map +1 -1
  196. package/lib/module/utils/errorUtils.js +7 -0
  197. package/lib/module/utils/errorUtils.js.map +1 -1
  198. package/lib/module/utils/validationUtils.js +13 -0
  199. package/lib/module/utils/validationUtils.js.map +1 -1
  200. package/lib/typescript/core/CrossDomainAuth.d.ts +161 -0
  201. package/lib/typescript/core/CrossDomainAuth.d.ts.map +1 -0
  202. package/lib/typescript/core/HttpService.d.ts +1 -1
  203. package/lib/typescript/core/HttpService.d.ts.map +1 -1
  204. package/lib/typescript/core/OxyServices.base.d.ts +0 -6
  205. package/lib/typescript/core/OxyServices.base.d.ts.map +1 -1
  206. package/lib/typescript/core/OxyServices.d.ts +5 -36
  207. package/lib/typescript/core/OxyServices.d.ts.map +1 -1
  208. package/lib/typescript/core/index.d.ts +4 -0
  209. package/lib/typescript/core/index.d.ts.map +1 -1
  210. package/lib/typescript/core/mixins/OxyServices.analytics.d.ts.map +1 -1
  211. package/lib/typescript/core/mixins/OxyServices.assets.d.ts.map +1 -1
  212. package/lib/typescript/core/mixins/OxyServices.auth.d.ts +40 -20
  213. package/lib/typescript/core/mixins/OxyServices.auth.d.ts.map +1 -1
  214. package/lib/typescript/core/mixins/OxyServices.developer.d.ts.map +1 -1
  215. package/lib/typescript/core/mixins/OxyServices.devices.d.ts.map +1 -1
  216. package/lib/typescript/core/mixins/OxyServices.fedcm.d.ts +195 -0
  217. package/lib/typescript/core/mixins/OxyServices.fedcm.d.ts.map +1 -0
  218. package/lib/typescript/core/mixins/OxyServices.karma.d.ts.map +1 -1
  219. package/lib/typescript/core/mixins/OxyServices.language.d.ts.map +1 -1
  220. package/lib/typescript/core/mixins/OxyServices.location.d.ts.map +1 -1
  221. package/lib/typescript/core/mixins/OxyServices.payment.d.ts.map +1 -1
  222. package/lib/typescript/core/mixins/OxyServices.popup.d.ts +206 -0
  223. package/lib/typescript/core/mixins/OxyServices.popup.d.ts.map +1 -0
  224. package/lib/typescript/core/mixins/OxyServices.privacy.d.ts.map +1 -1
  225. package/lib/typescript/core/mixins/OxyServices.redirect.d.ts +246 -0
  226. package/lib/typescript/core/mixins/OxyServices.redirect.d.ts.map +1 -0
  227. package/lib/typescript/core/mixins/OxyServices.security.d.ts.map +1 -1
  228. package/lib/typescript/core/mixins/OxyServices.user.d.ts +6 -4
  229. package/lib/typescript/core/mixins/OxyServices.user.d.ts.map +1 -1
  230. package/lib/typescript/core/mixins/OxyServices.utility.d.ts.map +1 -1
  231. package/lib/typescript/core/mixins/index.d.ts +220 -8
  232. package/lib/typescript/core/mixins/index.d.ts.map +1 -1
  233. package/lib/typescript/crypto/index.d.ts +6 -3
  234. package/lib/typescript/crypto/index.d.ts.map +1 -1
  235. package/lib/typescript/crypto/keyManager.d.ts +190 -0
  236. package/lib/typescript/crypto/keyManager.d.ts.map +1 -0
  237. package/lib/typescript/crypto/polyfill.d.ts +4 -3
  238. package/lib/typescript/crypto/polyfill.d.ts.map +1 -1
  239. package/lib/typescript/crypto/recoveryPhrase.d.ts +59 -0
  240. package/lib/typescript/crypto/recoveryPhrase.d.ts.map +1 -0
  241. package/lib/typescript/crypto/signatureService.d.ts +87 -0
  242. package/lib/typescript/crypto/signatureService.d.ts.map +1 -0
  243. package/lib/typescript/index.d.ts +5 -6
  244. package/lib/typescript/index.d.ts.map +1 -1
  245. package/lib/typescript/models/interfaces.d.ts +2 -14
  246. package/lib/typescript/models/interfaces.d.ts.map +1 -1
  247. package/lib/typescript/models/session.d.ts +0 -9
  248. package/lib/typescript/models/session.d.ts.map +1 -1
  249. package/lib/typescript/types/bip39.d.ts +32 -0
  250. package/lib/typescript/ui/components/BottomSheetRouter.d.ts +5 -0
  251. package/lib/typescript/ui/components/BottomSheetRouter.d.ts.map +1 -1
  252. package/lib/typescript/ui/components/IconButton/utils.d.ts +1 -1
  253. package/lib/typescript/ui/components/OxyProvider.d.ts.map +1 -1
  254. package/lib/typescript/ui/components/TextField/Addons/Outline.d.ts +2 -2
  255. package/lib/typescript/ui/components/TextField/Adornment/utils.d.ts +1 -1
  256. package/lib/typescript/ui/components/TextField/Adornment/utils.d.ts.map +1 -1
  257. package/lib/typescript/ui/components/TextField/helpers.d.ts +8 -8
  258. package/lib/typescript/ui/components/TextField/types.d.ts +1 -0
  259. package/lib/typescript/ui/components/TextField/types.d.ts.map +1 -1
  260. package/lib/typescript/ui/components/types.d.ts +4 -0
  261. package/lib/typescript/ui/components/types.d.ts.map +1 -1
  262. package/lib/typescript/ui/context/OxyContext.d.ts +57 -3
  263. package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
  264. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts +10 -3
  265. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  266. package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts +41 -0
  267. package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts.map +1 -0
  268. package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  269. package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  270. package/lib/typescript/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  271. package/lib/typescript/ui/hooks/useProfileEditing.d.ts.map +1 -1
  272. package/lib/typescript/ui/hooks/useSessionManagement.d.ts.map +1 -1
  273. package/lib/typescript/ui/hooks/useSessionSocket.d.ts +1 -2
  274. package/lib/typescript/ui/hooks/useSessionSocket.d.ts.map +1 -1
  275. package/lib/typescript/ui/hooks/useStorage.d.ts +3 -9
  276. package/lib/typescript/ui/hooks/useStorage.d.ts.map +1 -1
  277. package/lib/typescript/ui/index.d.ts +6 -2
  278. package/lib/typescript/ui/index.d.ts.map +1 -1
  279. package/lib/typescript/ui/navigation/routes.d.ts +1 -1
  280. package/lib/typescript/ui/navigation/routes.d.ts.map +1 -1
  281. package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  282. package/lib/typescript/ui/screens/OxyAuthScreen.d.ts +1 -1
  283. package/lib/typescript/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  284. package/lib/typescript/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  285. package/lib/typescript/ui/stores/accountStore.d.ts.map +1 -1
  286. package/lib/typescript/ui/stores/authStore.d.ts +8 -7
  287. package/lib/typescript/ui/stores/authStore.d.ts.map +1 -1
  288. package/lib/typescript/ui/styles/spacing.d.ts +5 -0
  289. package/lib/typescript/ui/styles/spacing.d.ts.map +1 -1
  290. package/lib/typescript/ui/types/navigation.d.ts +2 -1
  291. package/lib/typescript/ui/types/navigation.d.ts.map +1 -1
  292. package/lib/typescript/ui/utils/avatarUtils.d.ts +2 -13
  293. package/lib/typescript/ui/utils/avatarUtils.d.ts.map +1 -1
  294. package/lib/typescript/ui/utils/storageHelpers.d.ts +0 -3
  295. package/lib/typescript/ui/utils/storageHelpers.d.ts.map +1 -1
  296. package/lib/typescript/utils/errorUtils.d.ts +6 -0
  297. package/lib/typescript/utils/errorUtils.d.ts.map +1 -1
  298. package/lib/typescript/utils/validationUtils.d.ts +8 -0
  299. package/lib/typescript/utils/validationUtils.d.ts.map +1 -1
  300. package/package.json +8 -7
  301. package/src/core/CrossDomainAuth.ts +307 -0
  302. package/src/core/HttpService.ts +99 -16
  303. package/src/core/OxyServices.base.ts +20 -3
  304. package/src/core/OxyServices.ts +7 -3
  305. package/src/core/index.ts +9 -1
  306. package/src/core/mixins/OxyServices.assets.ts +14 -3
  307. package/src/core/mixins/OxyServices.auth.ts +105 -36
  308. package/src/core/mixins/OxyServices.fedcm.ts +315 -0
  309. package/src/core/mixins/OxyServices.popup.ts +402 -0
  310. package/src/core/mixins/OxyServices.redirect.ts +397 -0
  311. package/src/core/mixins/OxyServices.user.ts +39 -24
  312. package/src/core/mixins/index.ts +19 -3
  313. package/src/crypto/index.ts +16 -5
  314. package/src/crypto/keyManager.ts +966 -0
  315. package/src/crypto/polyfill.ts +6 -5
  316. package/src/crypto/recoveryPhrase.ts +166 -0
  317. package/src/crypto/signatureService.ts +323 -0
  318. package/src/i18n/locales/en-US.json +1 -1
  319. package/src/index.ts +19 -15
  320. package/src/models/interfaces.ts +4 -16
  321. package/src/models/session.ts +2 -11
  322. package/src/types/bip39.d.ts +32 -0
  323. package/src/ui/components/BottomSheetRouter.tsx +6 -1
  324. package/src/ui/components/Icon.tsx +1 -1
  325. package/src/ui/components/IconButton/utils.ts +1 -1
  326. package/src/ui/components/OxyProvider.tsx +44 -12
  327. package/src/ui/components/TextField/Addons/Outline.tsx +2 -2
  328. package/src/ui/components/TextField/Adornment/utils.ts +2 -2
  329. package/src/ui/components/TextField/helpers.tsx +10 -10
  330. package/src/ui/components/TextField/types.tsx +1 -1
  331. package/src/ui/components/TouchableRipple/utils.ts +2 -2
  332. package/src/ui/components/Typography/AnimatedText.tsx +2 -2
  333. package/src/ui/components/types.tsx +6 -0
  334. package/src/ui/context/OxyContext.tsx +173 -185
  335. package/src/ui/context/hooks/useAuthOperations.ts +177 -36
  336. package/src/ui/context/hooks/useSessionManagement.ts +399 -0
  337. package/src/ui/hooks/mutations/useAccountMutations.ts +82 -65
  338. package/src/ui/hooks/queries/useAccountQueries.ts +29 -35
  339. package/src/ui/hooks/queries/useSecurityQueries.ts +1 -1
  340. package/src/ui/hooks/queries/useServicesQueries.ts +14 -6
  341. package/src/ui/hooks/useProfileEditing.ts +3 -3
  342. package/src/ui/hooks/useSessionManagement.ts +5 -10
  343. package/src/ui/hooks/useSessionSocket.ts +46 -175
  344. package/src/ui/hooks/useStorage.ts +24 -76
  345. package/src/ui/index.ts +22 -13
  346. package/src/ui/navigation/routes.ts +6 -2
  347. package/src/ui/screens/AccountCenterScreen.tsx +2 -2
  348. package/src/ui/screens/AccountOverviewScreen.tsx +1 -1
  349. package/src/ui/screens/AccountSettingsScreen.tsx +34 -37
  350. package/src/ui/screens/AccountSwitcherScreen.tsx +4 -4
  351. package/src/ui/screens/OxyAuthScreen.tsx +138 -64
  352. package/src/ui/screens/PrivacySettingsScreen.tsx +6 -12
  353. package/src/ui/stores/accountStore.ts +1 -11
  354. package/src/ui/stores/authStore.ts +43 -44
  355. package/src/ui/styles/spacing.ts +15 -2
  356. package/src/ui/types/navigation.ts +2 -2
  357. package/src/ui/utils/avatarUtils.ts +39 -46
  358. package/src/ui/utils/storageHelpers.ts +0 -4
  359. package/src/utils/__tests__/validationUtils.test.ts +16 -1
  360. package/src/utils/errorUtils.ts +8 -1
  361. package/src/utils/validationUtils.ts +12 -0
  362. package/lib/commonjs/core/services/SessionService.js +0 -163
  363. package/lib/commonjs/core/services/SessionService.js.map +0 -1
  364. package/lib/commonjs/core/services/TokenService.js +0 -220
  365. package/lib/commonjs/core/services/TokenService.js.map +0 -1
  366. package/lib/commonjs/crypto/types.js +0 -2
  367. package/lib/commonjs/crypto/types.js.map +0 -1
  368. package/lib/commonjs/ui/context/OxyContextBase.js +0 -21
  369. package/lib/commonjs/ui/context/OxyContextBase.js.map +0 -1
  370. package/lib/commonjs/ui/context/hooks/useStorage.js +0 -79
  371. package/lib/commonjs/ui/context/hooks/useStorage.js.map +0 -1
  372. package/lib/commonjs/ui/hooks/useAvatarPicker.js +0 -56
  373. package/lib/commonjs/ui/hooks/useAvatarPicker.js.map +0 -1
  374. package/lib/module/core/services/SessionService.js +0 -159
  375. package/lib/module/core/services/SessionService.js.map +0 -1
  376. package/lib/module/core/services/TokenService.js +0 -217
  377. package/lib/module/core/services/TokenService.js.map +0 -1
  378. package/lib/module/crypto/types.js +0 -2
  379. package/lib/module/crypto/types.js.map +0 -1
  380. package/lib/module/ui/context/OxyContextBase.js +0 -16
  381. package/lib/module/ui/context/OxyContextBase.js.map +0 -1
  382. package/lib/module/ui/context/hooks/useStorage.js +0 -74
  383. package/lib/module/ui/context/hooks/useStorage.js.map +0 -1
  384. package/lib/module/ui/hooks/useAvatarPicker.js +0 -50
  385. package/lib/module/ui/hooks/useAvatarPicker.js.map +0 -1
  386. package/lib/typescript/core/services/SessionService.d.ts +0 -78
  387. package/lib/typescript/core/services/SessionService.d.ts.map +0 -1
  388. package/lib/typescript/core/services/TokenService.d.ts +0 -72
  389. package/lib/typescript/core/services/TokenService.d.ts.map +0 -1
  390. package/lib/typescript/crypto/types.d.ts +0 -22
  391. package/lib/typescript/crypto/types.d.ts.map +0 -1
  392. package/lib/typescript/ui/context/OxyContextBase.d.ts +0 -63
  393. package/lib/typescript/ui/context/OxyContextBase.d.ts.map +0 -1
  394. package/lib/typescript/ui/context/hooks/useStorage.d.ts +0 -22
  395. package/lib/typescript/ui/context/hooks/useStorage.d.ts.map +0 -1
  396. package/lib/typescript/ui/hooks/useAvatarPicker.d.ts +0 -19
  397. package/lib/typescript/ui/hooks/useAvatarPicker.d.ts.map +0 -1
  398. package/src/core/services/SessionService.ts +0 -173
  399. package/src/core/services/TokenService.ts +0 -237
  400. package/src/crypto/types.ts +0 -23
  401. package/src/ui/context/OxyContextBase.tsx +0 -78
  402. package/src/ui/context/hooks/useStorage.ts +0 -104
  403. package/src/ui/hooks/useAvatarPicker.ts +0 -61
package/README.md CHANGED
@@ -104,17 +104,12 @@ app.use(express.json());
104
104
  // Optional: create your own client (e.g., different baseURL per env)
105
105
  const services = new OxyServices({ baseURL: process.env.OXY_CLOUD_URL || 'https://api.oxy.so' });
106
106
 
107
- app.post('/api/auth/login', async (req, res) => {
107
+ // /api/auth/login works too (alias)
108
+ app.post('/auth/login', async (req, res) => {
108
109
  try {
109
- // Public-key challenge/response sign-in (no passwords)
110
- const { KeyManager, SignatureService } = await import('@oxyhq/services/crypto');
111
- const publicKey = await KeyManager.getPublicKey();
112
- const user = await oxyClient.getUserByPublicKey(publicKey);
113
- const { challenge } = await oxyClient.requestChallenge(user.id);
114
- const { challenge: signature, timestamp } = await SignatureService.signChallenge(challenge);
115
- const { sessionId } = await oxyClient.verifyChallenge(user.id, challenge, signature, timestamp);
116
- await oxyClient.getTokenBySession(sessionId);
117
- res.json({ sessionId });
110
+ const { username, password } = req.body;
111
+ const session = await oxyClient.signIn(username, password);
112
+ res.json(session);
118
113
  } catch (err: any) {
119
114
  res.status(401).json({ error: err.message });
120
115
  }
@@ -169,8 +164,7 @@ function UserProfile() {
169
164
 
170
165
  const handleLogin = async () => {
171
166
  try {
172
- // Public-key sign-in (Accounts app or local key handles signing)
173
- await login();
167
+ await login('username', 'password');
174
168
  } catch (error) {
175
169
  console.error('Login failed:', error);
176
170
  }
@@ -230,15 +224,9 @@ import { oxyClient } from '@oxyhq/services/core';
230
224
  // routes/auth.ts
231
225
  export const signIn = async (req, res) => {
232
226
  try {
233
- // Public-key challenge/response sign-in (no passwords)
234
- const { KeyManager, SignatureService } = await import('@oxyhq/services/crypto');
235
- const publicKey = await KeyManager.getPublicKey();
236
- const user = await oxyClient.getUserByPublicKey(publicKey);
237
- const { challenge } = await oxyClient.requestChallenge(user.id);
238
- const { challenge: signature, timestamp } = await SignatureService.signChallenge(challenge);
239
- const { sessionId } = await oxyClient.verifyChallenge(user.id, challenge, signature, timestamp);
240
- await oxyClient.getTokenBySession(sessionId);
241
- res.json({ sessionId });
227
+ const { username, password } = req.body;
228
+ const response = await oxyClient.signIn(username, password);
229
+ res.json(response);
242
230
  } catch (error) {
243
231
  res.status(401).json({ error: error.message });
244
232
  }
@@ -342,7 +330,8 @@ import {
342
330
  // Crypto module (for identity management)
343
331
  import {
344
332
  KeyManager,
345
- SignatureService
333
+ SignatureService,
334
+ RecoveryPhraseService
346
335
  } from '@oxyhq/services/crypto';
347
336
  ```
348
337
 
@@ -449,8 +438,8 @@ const {
449
438
  error,
450
439
 
451
440
  // Identity management (Public Key Authentication)
452
- createIdentity, // Create new identity
453
- importIdentity, // Import identity from backup file
441
+ createIdentity, // Create new identity with recovery phrase
442
+ importIdentity, // Import identity from recovery phrase
454
443
  signIn, // Sign in with stored identity
455
444
  hasIdentity, // Check if identity exists on device
456
445
  getPublicKey, // Get stored public key
@@ -501,7 +490,7 @@ const oxy = new OxyServices({
501
490
 
502
491
  ## 🔐 Authentication
503
492
 
504
- Oxy uses **public/private key cryptography** (ECDSA secp256k1) instead of passwords. Users manage their cryptographic identity in the **Oxy Accounts** app, and other apps can integrate "Sign in with Oxy" for seamless authentication.
493
+ Oxy supports **public/private key cryptography** (ECDSA secp256k1) as the primary identity system, with optional password-based accounts for the web gateway. Users manage their cryptographic identity in the **Oxy Accounts** app, and other apps can integrate "Sign in with Oxy" for seamless authentication.
505
494
 
506
495
  ### Public Key Authentication
507
496
 
@@ -513,12 +502,12 @@ function AuthScreen() {
513
502
 
514
503
  // Create new identity (in Oxy Accounts app)
515
504
  const handleCreate = async () => {
516
- const { synced } = await createIdentity();
517
- // Identity created - user should create backup file
505
+ const { user, recoveryPhrase } = await createIdentity('username', 'email');
506
+ // Show recoveryPhrase to user - they must save it!
518
507
  };
519
508
 
520
- // Import existing identity from backup file
521
- const handleImport = async (backupData: { encrypted: string; salt: string; iv: string; publicKey: string }, password: string) => {
509
+ // Import existing identity
510
+ const handleImport = async (phrase: string) => {
522
511
  const user = await importIdentity(phrase, 'username', 'email');
523
512
  };
524
513
 
@@ -532,6 +521,15 @@ function AuthScreen() {
532
521
  }
533
522
  ```
534
523
 
524
+ ### Password Authentication (Web Gateway)
525
+
526
+ For web-only or legacy flows, Oxy also supports password sign-in (email/username + password). Use the auth gateway (`/login`, `/signup`, `/recover`) for browser-based flows, or call the API directly:
527
+
528
+ ```typescript
529
+ const session = await oxyServices.signUp('username', 'email@example.com', 'password');
530
+ const session2 = await oxyServices.signIn('username-or-email', 'password');
531
+ ```
532
+
535
533
  ### Cross-App Authentication (Sign in with Oxy)
536
534
 
537
535
  For third-party apps that want to allow users to sign in with their Oxy identity:
@@ -548,6 +546,8 @@ This displays:
548
546
  - A QR code that users can scan with Oxy Accounts
549
547
  - A button to open Oxy Accounts directly via deep link
550
548
 
549
+ Web fallback: send users to the auth gateway at `https://accounts.oxy.so/authorize?token=...` to approve the session.
550
+
551
551
  ### Documentation
552
552
 
553
553
  📖 **[Complete Public Key Authentication Guide](./docs/PUBLIC_KEY_AUTHENTICATION.md)**
@@ -886,15 +886,9 @@ app.use(express.json());
886
886
  // Auth routes
887
887
  app.post('/api/auth/signin', async (req, res) => {
888
888
  try {
889
- // Public-key challenge/response sign-in (no passwords)
890
- const { KeyManager, SignatureService } = await import('@oxyhq/services/crypto');
891
- const publicKey = await KeyManager.getPublicKey();
892
- const user = await oxyClient.getUserByPublicKey(publicKey);
893
- const { challenge } = await oxyClient.requestChallenge(user.id);
894
- const { challenge: signature, timestamp } = await SignatureService.signChallenge(challenge);
895
- const { sessionId } = await oxyClient.verifyChallenge(user.id, challenge, signature, timestamp);
896
- await oxyClient.getTokenBySession(sessionId);
897
- res.json({ sessionId });
889
+ const { username, password } = req.body;
890
+ const response = await oxyClient.signIn(username, password);
891
+ res.json(response);
898
892
  } catch (error) {
899
893
  res.status(401).json({ error: error.message });
900
894
  }
@@ -0,0 +1,277 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CrossDomainAuth = void 0;
7
+ exports.createCrossDomainAuth = createCrossDomainAuth;
8
+ /**
9
+ * Cross-Domain Authentication Helper
10
+ *
11
+ * Provides a simplified API for cross-domain SSO authentication that automatically
12
+ * selects the best authentication method based on browser capabilities:
13
+ *
14
+ * 1. FedCM (if supported) - Modern, Google-style browser-native auth
15
+ * 2. Popup (fallback) - OAuth2-style popup window
16
+ * 3. Redirect (final fallback) - Traditional full-page redirect
17
+ *
18
+ * Usage:
19
+ * ```typescript
20
+ * import { CrossDomainAuth } from '@oxyhq/services';
21
+ *
22
+ * const auth = new CrossDomainAuth(oxyServices);
23
+ *
24
+ * // Automatic method selection
25
+ * const session = await auth.signIn();
26
+ *
27
+ * // Or use specific method
28
+ * const session = await auth.signInWithPopup();
29
+ * ```
30
+ */
31
+
32
+ class CrossDomainAuth {
33
+ constructor(oxyServices) {
34
+ this.oxyServices = oxyServices;
35
+ }
36
+
37
+ /**
38
+ * Sign in with automatic method selection
39
+ *
40
+ * Tries methods in this order:
41
+ * 1. FedCM (if supported and not in private browsing)
42
+ * 2. Popup (if not blocked)
43
+ * 3. Redirect (always works)
44
+ *
45
+ * @param options - Authentication options
46
+ * @returns Session with user data and access token
47
+ */
48
+ async signIn(options = {}) {
49
+ const method = options.method || 'auto';
50
+
51
+ // If specific method requested, use it directly
52
+ if (method === 'fedcm') {
53
+ return this.signInWithFedCM(options);
54
+ }
55
+ if (method === 'popup') {
56
+ return this.signInWithPopup(options);
57
+ }
58
+ if (method === 'redirect') {
59
+ this.signInWithRedirect(options);
60
+ return null; // Redirect doesn't return immediately
61
+ }
62
+
63
+ // Auto mode: Try methods in order of preference
64
+ return this.autoSignIn(options);
65
+ }
66
+
67
+ /**
68
+ * Automatic sign-in with progressive enhancement
69
+ *
70
+ * @private
71
+ */
72
+ async autoSignIn(options) {
73
+ // 1. Try FedCM first (best UX, most modern)
74
+ if (this.isFedCMSupported()) {
75
+ try {
76
+ options.onMethodSelected?.('fedcm');
77
+ return await this.signInWithFedCM(options);
78
+ } catch (error) {
79
+ console.warn('[CrossDomainAuth] FedCM failed, trying popup...', error);
80
+ }
81
+ }
82
+
83
+ // 2. Try popup (good UX, widely supported)
84
+ try {
85
+ options.onMethodSelected?.('popup');
86
+ return await this.signInWithPopup(options);
87
+ } catch (error) {
88
+ console.warn('[CrossDomainAuth] Popup failed, falling back to redirect...', error);
89
+ }
90
+
91
+ // 3. Fallback to redirect (always works)
92
+ options.onMethodSelected?.('redirect');
93
+ this.signInWithRedirect(options);
94
+ return null;
95
+ }
96
+
97
+ /**
98
+ * Sign in using FedCM (Federated Credential Management)
99
+ *
100
+ * Best method - browser-native, no popups, Google-like experience
101
+ */
102
+ async signInWithFedCM(options = {}) {
103
+ return this.oxyServices.signInWithFedCM({
104
+ context: options.isSignup ? 'signup' : 'signin'
105
+ });
106
+ }
107
+
108
+ /**
109
+ * Sign in using popup window
110
+ *
111
+ * Good method - preserves app state, no full page reload
112
+ */
113
+ async signInWithPopup(options = {}) {
114
+ return this.oxyServices.signInWithPopup({
115
+ mode: options.isSignup ? 'signup' : 'login',
116
+ width: options.popupDimensions?.width,
117
+ height: options.popupDimensions?.height
118
+ });
119
+ }
120
+
121
+ /**
122
+ * Sign in using full-page redirect
123
+ *
124
+ * Fallback method - works everywhere but loses app state
125
+ */
126
+ signInWithRedirect(options = {}) {
127
+ this.oxyServices.signInWithRedirect({
128
+ redirectUri: options.redirectUri,
129
+ mode: options.isSignup ? 'signup' : 'login'
130
+ });
131
+ }
132
+
133
+ /**
134
+ * Handle redirect callback
135
+ *
136
+ * Call this on app startup to check if we're returning from auth redirect
137
+ */
138
+ handleRedirectCallback() {
139
+ return this.oxyServices.handleAuthCallback();
140
+ }
141
+
142
+ /**
143
+ * Silent sign-in (check for existing session)
144
+ *
145
+ * Tries to automatically sign in without user interaction.
146
+ * Works with both FedCM and popup/iframe methods.
147
+ *
148
+ * @returns Session if user is already signed in, null otherwise
149
+ */
150
+ async silentSignIn() {
151
+ // Try FedCM silent sign-in first (if supported)
152
+ if (this.isFedCMSupported()) {
153
+ try {
154
+ const session = await this.oxyServices.silentSignInWithFedCM();
155
+ if (session) {
156
+ return session;
157
+ }
158
+ } catch (error) {
159
+ console.warn('[CrossDomainAuth] FedCM silent sign-in failed:', error);
160
+ }
161
+ }
162
+
163
+ // Fallback to iframe-based silent auth
164
+ try {
165
+ return await this.oxyServices.silentSignIn();
166
+ } catch (error) {
167
+ console.warn('[CrossDomainAuth] Silent sign-in failed:', error);
168
+ return null;
169
+ }
170
+ }
171
+
172
+ /**
173
+ * Restore session from storage
174
+ *
175
+ * For redirect method - restores previously authenticated session from localStorage
176
+ */
177
+ restoreSession() {
178
+ return this.oxyServices.restoreSession?.() || false;
179
+ }
180
+
181
+ /**
182
+ * Check if FedCM is supported in current browser
183
+ */
184
+ isFedCMSupported() {
185
+ return this.oxyServices.constructor.isFedCMSupported?.() || false;
186
+ }
187
+
188
+ /**
189
+ * Get recommended authentication method for current environment
190
+ *
191
+ * @returns Recommended method name and reason
192
+ */
193
+ getRecommendedMethod() {
194
+ if (this.isFedCMSupported()) {
195
+ return {
196
+ method: 'fedcm',
197
+ reason: 'FedCM is supported - provides best UX with browser-native auth'
198
+ };
199
+ }
200
+ if (typeof window !== 'undefined') {
201
+ return {
202
+ method: 'popup',
203
+ reason: 'Browser environment - popup preserves app state'
204
+ };
205
+ }
206
+ return {
207
+ method: 'redirect',
208
+ reason: 'Fallback method - works in all environments'
209
+ };
210
+ }
211
+
212
+ /**
213
+ * Initialize cross-domain auth on app startup
214
+ *
215
+ * This handles:
216
+ * 1. Redirect callback (if returning from auth.oxy.so)
217
+ * 2. Session restoration (from localStorage)
218
+ * 3. Silent sign-in (check for existing SSO session)
219
+ *
220
+ * @returns Session if user is authenticated, null otherwise
221
+ */
222
+ async initialize() {
223
+ // 1. Check if this is a redirect callback
224
+ const callbackSession = this.handleRedirectCallback();
225
+ if (callbackSession) {
226
+ return callbackSession;
227
+ }
228
+
229
+ // 2. Try to restore existing session from storage
230
+ const restored = this.restoreSession();
231
+ if (restored) {
232
+ // Verify session is still valid by fetching user
233
+ try {
234
+ const user = await this.oxyServices.getCurrentUser();
235
+ if (user) {
236
+ return {
237
+ sessionId: this.oxyServices.getStoredSessionId?.() || '',
238
+ deviceId: '',
239
+ expiresAt: new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString(),
240
+ user
241
+ };
242
+ }
243
+ } catch (error) {
244
+ console.warn('[CrossDomainAuth] Stored session invalid:', error);
245
+ }
246
+ }
247
+
248
+ // 3. Try silent sign-in (check for SSO session at auth.oxy.so)
249
+ return await this.silentSignIn();
250
+ }
251
+ }
252
+
253
+ /**
254
+ * Helper function to create CrossDomainAuth instance
255
+ *
256
+ * @example
257
+ * ```typescript
258
+ * import { createCrossDomainAuth } from '@oxyhq/services';
259
+ *
260
+ * const oxyServices = new OxyServices({ baseURL: 'https://api.oxy.so' });
261
+ * const auth = createCrossDomainAuth(oxyServices);
262
+ *
263
+ * // On app startup
264
+ * const session = await auth.initialize();
265
+ * if (session) {
266
+ * console.log('User is signed in:', session.user);
267
+ * }
268
+ *
269
+ * // Sign in button click
270
+ * const session = await auth.signIn();
271
+ * ```
272
+ */
273
+ exports.CrossDomainAuth = CrossDomainAuth;
274
+ function createCrossDomainAuth(oxyServices) {
275
+ return new CrossDomainAuth(oxyServices);
276
+ }
277
+ //# sourceMappingURL=CrossDomainAuth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CrossDomainAuth","constructor","oxyServices","signIn","options","method","signInWithFedCM","signInWithPopup","signInWithRedirect","autoSignIn","isFedCMSupported","onMethodSelected","error","console","warn","context","isSignup","mode","width","popupDimensions","height","redirectUri","handleRedirectCallback","handleAuthCallback","silentSignIn","session","silentSignInWithFedCM","restoreSession","getRecommendedMethod","reason","window","initialize","callbackSession","restored","user","getCurrentUser","sessionId","getStoredSessionId","deviceId","expiresAt","Date","now","toISOString","exports","createCrossDomainAuth"],"sourceRoot":"../../../src","sources":["core/CrossDomainAuth.ts"],"mappings":"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","ignoreList":[]}
@@ -8,7 +8,7 @@ var _cache = require("../utils/cache");
8
8
  var _requestUtils = require("../utils/requestUtils");
9
9
  var _asyncUtils = require("../utils/asyncUtils");
10
10
  var _errorUtils = require("../utils/errorUtils");
11
- var _TokenService = require("./services/TokenService");
11
+ var _jwtDecode = require("jwt-decode");
12
12
  /**
13
13
  * Unified HTTP Service
14
14
  *
@@ -24,7 +24,37 @@ var _TokenService = require("./services/TokenService");
24
24
  * - Request queuing
25
25
  */
26
26
 
27
- // Token management moved to TokenService - import it instead
27
+ /**
28
+ * Token store for authentication (singleton)
29
+ */
30
+ class TokenStore {
31
+ accessToken = null;
32
+ refreshToken = null;
33
+ constructor() {}
34
+ static getInstance() {
35
+ if (!TokenStore.instance) {
36
+ TokenStore.instance = new TokenStore();
37
+ }
38
+ return TokenStore.instance;
39
+ }
40
+ setTokens(accessToken, refreshToken = '') {
41
+ this.accessToken = accessToken;
42
+ this.refreshToken = refreshToken;
43
+ }
44
+ getAccessToken() {
45
+ return this.accessToken;
46
+ }
47
+ getRefreshToken() {
48
+ return this.refreshToken;
49
+ }
50
+ clearTokens() {
51
+ this.accessToken = null;
52
+ this.refreshToken = null;
53
+ }
54
+ hasAccessToken() {
55
+ return !!this.accessToken;
56
+ }
57
+ }
28
58
 
29
59
  /**
30
60
  * Unified HTTP Service
@@ -45,9 +75,7 @@ class HttpService {
45
75
  constructor(config) {
46
76
  this.config = config;
47
77
  this.baseURL = config.baseURL;
48
-
49
- // Initialize TokenService with baseURL
50
- _TokenService.tokenService.initialize(this.baseURL);
78
+ this.tokenStore = TokenStore.getInstance();
51
79
  this.logger = new _requestUtils.SimpleLogger(config.enableLogging || false, config.logLevel || 'error', 'HttpService');
52
80
 
53
81
  // Initialize performance infrastructure
@@ -177,7 +205,7 @@ class HttpService {
177
205
  // Handle response
178
206
  if (!response.ok) {
179
207
  if (response.status === 401) {
180
- _TokenService.tokenService.clearTokens();
208
+ this.tokenStore.clearTokens();
181
209
  }
182
210
 
183
211
  // Try to parse error response (handle empty/malformed JSON)
@@ -186,8 +214,11 @@ class HttpService {
186
214
  if (contentType && contentType.includes('application/json')) {
187
215
  try {
188
216
  const errorData = await response.json();
217
+ // Check both 'message' and 'error' fields for backwards compatibility
189
218
  if (errorData?.message) {
190
219
  errorMessage = errorData.message;
220
+ } else if (errorData?.error) {
221
+ errorMessage = errorData.error;
191
222
  }
192
223
  } catch (parseError) {
193
224
  // Malformed JSON or empty response - use status text
@@ -315,10 +346,46 @@ class HttpService {
315
346
 
316
347
  /**
317
348
  * Get auth header with automatic token refresh
318
- * Uses TokenService for all token operations
319
349
  */
320
350
  async getAuthHeader() {
321
- return await _TokenService.tokenService.getAuthHeader();
351
+ const accessToken = this.tokenStore.getAccessToken();
352
+ if (!accessToken) {
353
+ return null;
354
+ }
355
+ try {
356
+ const decoded = (0, _jwtDecode.jwtDecode)(accessToken);
357
+ const currentTime = Math.floor(Date.now() / 1000);
358
+
359
+ // If token expires in less than 60 seconds, refresh it
360
+ if (decoded.exp && decoded.exp - currentTime < 60 && decoded.sessionId) {
361
+ try {
362
+ const refreshUrl = `${this.baseURL}/api/session/token/${decoded.sessionId}`;
363
+
364
+ // Use AbortSignal.timeout for consistent timeout handling
365
+ const response = await fetch(refreshUrl, {
366
+ method: 'GET',
367
+ headers: {
368
+ 'Accept': 'application/json'
369
+ },
370
+ signal: AbortSignal.timeout(5000)
371
+ });
372
+ if (response.ok) {
373
+ const {
374
+ accessToken: newToken
375
+ } = await response.json();
376
+ this.tokenStore.setTokens(newToken);
377
+ this.logger.debug('Token refreshed');
378
+ return `Bearer ${newToken}`;
379
+ }
380
+ } catch (refreshError) {
381
+ this.logger.warn('Token refresh failed, using current token');
382
+ }
383
+ }
384
+ return `Bearer ${accessToken}`;
385
+ } catch (error) {
386
+ this.logger.error('Error processing token:', error);
387
+ return `Bearer ${accessToken}`;
388
+ }
322
389
  }
323
390
 
324
391
  /**
@@ -453,18 +520,18 @@ class HttpService {
453
520
  };
454
521
  }
455
522
 
456
- // Token management - delegates to TokenService
523
+ // Token management
457
524
  setTokens(accessToken, refreshToken = '') {
458
- _TokenService.tokenService.setTokens(accessToken, refreshToken);
525
+ this.tokenStore.setTokens(accessToken, refreshToken);
459
526
  }
460
527
  clearTokens() {
461
- _TokenService.tokenService.clearTokens();
528
+ this.tokenStore.clearTokens();
462
529
  }
463
530
  getAccessToken() {
464
- return _TokenService.tokenService.getAccessToken();
531
+ return this.tokenStore.getAccessToken();
465
532
  }
466
533
  hasAccessToken() {
467
- return _TokenService.tokenService.hasAccessToken();
534
+ return this.tokenStore.hasAccessToken();
468
535
  }
469
536
  getBaseURL() {
470
537
  return this.baseURL;
@@ -496,10 +563,10 @@ class HttpService {
496
563
  // Test-only utility
497
564
  static __resetTokensForTests() {
498
565
  try {
499
- _TokenService.tokenService.clearTokens();
566
+ TokenStore.getInstance().clearTokens();
500
567
  } catch (error) {
501
568
  // Silently fail in test cleanup - this is expected behavior
502
- // TokenService might not be initialized in some test scenarios
569
+ // TokenStore might not be initialized in some test scenarios
503
570
  }
504
571
  }
505
572
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_cache","require","_requestUtils","_asyncUtils","_errorUtils","_TokenService","HttpService","requestMetrics","totalRequests","successfulRequests","failedRequests","cacheHits","cacheMisses","averageResponseTime","constructor","config","baseURL","tokenService","initialize","logger","SimpleLogger","enableLogging","logLevel","cache","TTLCache","cacheTTL","registerCacheForCleanup","deduplicator","RequestDeduplicator","requestQueue","RequestQueue","maxConcurrentRequests","requestQueueSize","isFormData","data","FormData","constructorName","name","append","get","has","request","method","url","params","timeout","requestTimeout","signal","deduplicate","retry","enableRetry","maxRetries","cacheKey","generateCacheKey","cached","debug","requestFn","startTime","Date","now","fullUrl","buildURL","authHeader","getAuthHeader","controller","AbortController","timeoutId","setTimeout","abort","addEventListener","headers","Object","entries","forEach","key","value","toLowerCase","bodyValue","JSON","stringify","undefined","response","fetch","body","clearTimeout","ok","status","clearTokens","errorMessage","statusText","contentType","includes","errorData","json","message","parseError","warn","error","Error","responseData","unwrapResponse","SyntaxError","blob","text","duration","updateMetrics","onRequestEnd","onRequestError","String","handleHttpError","requestWithRetry","retryAsync","retryDelay","dedupeKey","finalRequest","result","enqueue","set","keys","length","dataStr","hash","sort","join","substring","base","startsWith","searchParams","URLSearchParams","queryString","toString","Array","isArray","success","alpha","post","put","patch","delete","setTokens","accessToken","refreshToken","getAccessToken","hasAccessToken","getBaseURL","clearCache","clear","clearCacheEntry","getCacheStats","cacheStats","getStats","total","size","hits","misses","hitRate","getMetrics","__resetTokensForTests","exports"],"sourceRoot":"../../../src","sources":["core/HttpService.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_cache","require","_requestUtils","_asyncUtils","_errorUtils","_jwtDecode","TokenStore","accessToken","refreshToken","constructor","getInstance","instance","setTokens","getAccessToken","getRefreshToken","clearTokens","hasAccessToken","HttpService","requestMetrics","totalRequests","successfulRequests","failedRequests","cacheHits","cacheMisses","averageResponseTime","config","baseURL","tokenStore","logger","SimpleLogger","enableLogging","logLevel","cache","TTLCache","cacheTTL","registerCacheForCleanup","deduplicator","RequestDeduplicator","requestQueue","RequestQueue","maxConcurrentRequests","requestQueueSize","isFormData","data","FormData","constructorName","name","append","get","has","request","method","url","params","timeout","requestTimeout","signal","deduplicate","retry","enableRetry","maxRetries","cacheKey","generateCacheKey","cached","debug","requestFn","startTime","Date","now","fullUrl","buildURL","authHeader","getAuthHeader","controller","AbortController","timeoutId","setTimeout","abort","addEventListener","headers","Object","entries","forEach","key","value","toLowerCase","bodyValue","JSON","stringify","undefined","response","fetch","body","clearTimeout","ok","status","errorMessage","statusText","contentType","includes","errorData","json","message","error","parseError","warn","Error","responseData","unwrapResponse","SyntaxError","blob","text","duration","updateMetrics","onRequestEnd","onRequestError","String","handleHttpError","requestWithRetry","retryAsync","retryDelay","dedupeKey","finalRequest","result","enqueue","set","keys","length","dataStr","hash","sort","join","substring","base","startsWith","searchParams","URLSearchParams","queryString","toString","decoded","jwtDecode","currentTime","Math","floor","exp","sessionId","refreshUrl","AbortSignal","newToken","refreshError","Array","isArray","success","alpha","post","put","patch","delete","getBaseURL","clearCache","clear","clearCacheEntry","getCacheStats","cacheStats","getStats","total","size","hits","misses","hitRate","getMetrics","__resetTokensForTests","exports"],"sourceRoot":"../../../src","sources":["core/HttpService.ts"],"mappings":"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","ignoreList":[]}