@oxyhq/services 5.17.17 → 5.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (618) 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.features.js +372 -0
  17. package/lib/commonjs/core/mixins/OxyServices.features.js.map +1 -0
  18. package/lib/commonjs/core/mixins/OxyServices.fedcm.js +289 -0
  19. package/lib/commonjs/core/mixins/OxyServices.fedcm.js.map +1 -0
  20. package/lib/commonjs/core/mixins/OxyServices.popup.js +352 -0
  21. package/lib/commonjs/core/mixins/OxyServices.popup.js.map +1 -0
  22. package/lib/commonjs/core/mixins/OxyServices.redirect.js +378 -0
  23. package/lib/commonjs/core/mixins/OxyServices.redirect.js.map +1 -0
  24. package/lib/commonjs/core/mixins/OxyServices.user.js +35 -24
  25. package/lib/commonjs/core/mixins/OxyServices.user.js.map +1 -1
  26. package/lib/commonjs/core/mixins/index.js +28 -15
  27. package/lib/commonjs/core/mixins/index.js.map +1 -1
  28. package/lib/commonjs/crypto/index.js +30 -0
  29. package/lib/commonjs/crypto/index.js.map +1 -1
  30. package/lib/commonjs/crypto/keyManager.js +902 -0
  31. package/lib/commonjs/crypto/keyManager.js.map +1 -0
  32. package/lib/commonjs/crypto/polyfill.js +14 -5
  33. package/lib/commonjs/crypto/polyfill.js.map +1 -1
  34. package/lib/commonjs/crypto/recoveryPhrase.js +152 -0
  35. package/lib/commonjs/crypto/recoveryPhrase.js.map +1 -0
  36. package/lib/commonjs/crypto/signatureService.js +289 -0
  37. package/lib/commonjs/crypto/signatureService.js.map +1 -0
  38. package/lib/commonjs/i18n/locales/en-US.json +1 -1
  39. package/lib/commonjs/index.js +40 -26
  40. package/lib/commonjs/index.js.map +1 -1
  41. package/lib/commonjs/models/interfaces.js +0 -15
  42. package/lib/commonjs/models/interfaces.js.map +1 -1
  43. package/lib/commonjs/ui/components/BottomSheetRouter.js +9 -1
  44. package/lib/commonjs/ui/components/BottomSheetRouter.js.map +1 -1
  45. package/lib/commonjs/ui/components/GroupedItem.js +11 -1
  46. package/lib/commonjs/ui/components/GroupedItem.js.map +1 -1
  47. package/lib/commonjs/ui/components/Icon.js.map +1 -1
  48. package/lib/commonjs/ui/components/IconButton/utils.js.map +1 -1
  49. package/lib/commonjs/ui/components/OxyProvider.js +41 -11
  50. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  51. package/lib/commonjs/ui/components/SettingRow.js +17 -4
  52. package/lib/commonjs/ui/components/SettingRow.js.map +1 -1
  53. package/lib/commonjs/ui/components/TextField/Adornment/utils.js.map +1 -1
  54. package/lib/commonjs/ui/components/TextField/helpers.js.map +1 -1
  55. package/lib/commonjs/ui/components/TouchableRipple/utils.js.map +1 -1
  56. package/lib/commonjs/ui/components/Typography/AnimatedText.js.map +1 -1
  57. package/lib/commonjs/ui/components/feedback/FormInput.js +72 -0
  58. package/lib/commonjs/ui/components/feedback/FormInput.js.map +1 -0
  59. package/lib/commonjs/ui/components/feedback/ProgressIndicator.js +33 -0
  60. package/lib/commonjs/ui/components/feedback/ProgressIndicator.js.map +1 -0
  61. package/lib/commonjs/ui/components/feedback/constants.js +59 -0
  62. package/lib/commonjs/ui/components/feedback/constants.js.map +1 -0
  63. package/lib/commonjs/ui/components/feedback/feedbackStyles.js +262 -0
  64. package/lib/commonjs/ui/components/feedback/feedbackStyles.js.map +1 -0
  65. package/lib/commonjs/ui/components/feedback/index.js +54 -0
  66. package/lib/commonjs/ui/components/feedback/index.js.map +1 -0
  67. package/lib/commonjs/ui/components/feedback/types.js +6 -0
  68. package/lib/commonjs/ui/components/feedback/types.js.map +1 -0
  69. package/lib/commonjs/ui/components/feedback/useFeedbackForm.js +52 -0
  70. package/lib/commonjs/ui/components/feedback/useFeedbackForm.js.map +1 -0
  71. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js +282 -0
  72. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js.map +1 -0
  73. package/lib/commonjs/ui/components/modals/index.js +14 -0
  74. package/lib/commonjs/ui/components/modals/index.js.map +1 -0
  75. package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js +309 -0
  76. package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js.map +1 -0
  77. package/lib/commonjs/ui/components/payment/PaymentMethodStep.js +79 -0
  78. package/lib/commonjs/ui/components/payment/PaymentMethodStep.js.map +1 -0
  79. package/lib/commonjs/ui/components/payment/PaymentReviewStep.js +108 -0
  80. package/lib/commonjs/ui/components/payment/PaymentReviewStep.js.map +1 -0
  81. package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js +79 -0
  82. package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js.map +1 -0
  83. package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js +176 -0
  84. package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js.map +1 -0
  85. package/lib/commonjs/ui/components/payment/constants.js +53 -0
  86. package/lib/commonjs/ui/components/payment/constants.js.map +1 -0
  87. package/lib/commonjs/ui/components/payment/index.js +80 -0
  88. package/lib/commonjs/ui/components/payment/index.js.map +1 -0
  89. package/lib/commonjs/ui/components/payment/paymentStyles.js +409 -0
  90. package/lib/commonjs/ui/components/payment/paymentStyles.js.map +1 -0
  91. package/lib/commonjs/ui/components/payment/types.js +6 -0
  92. package/lib/commonjs/ui/components/payment/types.js.map +1 -0
  93. package/lib/commonjs/ui/context/OxyContext.js +110 -199
  94. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  95. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +150 -19
  96. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  97. package/lib/commonjs/ui/context/hooks/useSessionManagement.js +279 -0
  98. package/lib/commonjs/ui/context/hooks/useSessionManagement.js.map +1 -0
  99. package/lib/commonjs/ui/hooks/index.js +26 -0
  100. package/lib/commonjs/ui/hooks/index.js.map +1 -1
  101. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +79 -72
  102. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  103. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +38 -51
  104. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
  105. package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js +3 -3
  106. package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js.map +1 -1
  107. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +18 -12
  108. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
  109. package/lib/commonjs/ui/hooks/useAsyncAction.js +95 -0
  110. package/lib/commonjs/ui/hooks/useAsyncAction.js.map +1 -0
  111. package/lib/commonjs/ui/hooks/useProfileEditing.js +3 -5
  112. package/lib/commonjs/ui/hooks/useProfileEditing.js.map +1 -1
  113. package/lib/commonjs/ui/hooks/useSessionManagement.js +4 -8
  114. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
  115. package/lib/commonjs/ui/hooks/useSessionSocket.js +162 -315
  116. package/lib/commonjs/ui/hooks/useSessionSocket.js.map +1 -1
  117. package/lib/commonjs/ui/hooks/useSettingToggle.js +126 -0
  118. package/lib/commonjs/ui/hooks/useSettingToggle.js.map +1 -0
  119. package/lib/commonjs/ui/hooks/useStorage.js +24 -58
  120. package/lib/commonjs/ui/hooks/useStorage.js.map +1 -1
  121. package/lib/commonjs/ui/index.js +50 -21
  122. package/lib/commonjs/ui/index.js.map +1 -1
  123. package/lib/commonjs/ui/navigation/routes.js +6 -1
  124. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  125. package/lib/commonjs/ui/screens/AccountCenterScreen.js +6 -4
  126. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
  127. package/lib/commonjs/ui/screens/AccountOverviewScreen.js +33 -30
  128. package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
  129. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +29 -24
  130. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  131. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +3 -3
  132. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
  133. package/lib/commonjs/ui/screens/FAQScreen.js +315 -0
  134. package/lib/commonjs/ui/screens/FAQScreen.js.map +1 -0
  135. package/lib/commonjs/ui/screens/FeedbackScreen.js +73 -590
  136. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
  137. package/lib/commonjs/ui/screens/HelpSupportScreen.js +8 -7
  138. package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
  139. package/lib/commonjs/ui/screens/OxyAuthScreen.js +134 -66
  140. package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
  141. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +67 -1395
  142. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
  143. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +6 -13
  144. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  145. package/lib/commonjs/ui/screens/ProfileScreen.js +13 -5
  146. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  147. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +16 -10
  148. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +1 -1
  149. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js +23 -11
  150. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
  151. package/lib/commonjs/ui/stores/accountStore.js +2 -4
  152. package/lib/commonjs/ui/stores/accountStore.js.map +1 -1
  153. package/lib/commonjs/ui/stores/authStore.js +45 -32
  154. package/lib/commonjs/ui/stores/authStore.js.map +1 -1
  155. package/lib/commonjs/ui/styles/spacing.js +54 -2
  156. package/lib/commonjs/ui/styles/spacing.js.map +1 -1
  157. package/lib/commonjs/ui/utils/avatarUtils.js +37 -41
  158. package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
  159. package/lib/commonjs/ui/utils/storageHelpers.js.map +1 -1
  160. package/lib/commonjs/utils/errorUtils.js +13 -0
  161. package/lib/commonjs/utils/errorUtils.js.map +1 -1
  162. package/lib/commonjs/utils/validationUtils.js +15 -1
  163. package/lib/commonjs/utils/validationUtils.js.map +1 -1
  164. package/lib/module/core/CrossDomainAuth.js +271 -0
  165. package/lib/module/core/CrossDomainAuth.js.map +1 -0
  166. package/lib/module/core/HttpService.js +82 -15
  167. package/lib/module/core/HttpService.js.map +1 -1
  168. package/lib/module/core/OxyServices.base.js +11 -4
  169. package/lib/module/core/OxyServices.base.js.map +1 -1
  170. package/lib/module/core/OxyServices.js +4 -1
  171. package/lib/module/core/OxyServices.js.map +1 -1
  172. package/lib/module/core/index.js +6 -1
  173. package/lib/module/core/index.js.map +1 -1
  174. package/lib/module/core/mixins/OxyServices.assets.js +16 -3
  175. package/lib/module/core/mixins/OxyServices.assets.js.map +1 -1
  176. package/lib/module/core/mixins/OxyServices.auth.js +73 -32
  177. package/lib/module/core/mixins/OxyServices.auth.js.map +1 -1
  178. package/lib/module/core/mixins/OxyServices.features.js +369 -0
  179. package/lib/module/core/mixins/OxyServices.features.js.map +1 -0
  180. package/lib/module/core/mixins/OxyServices.fedcm.js +286 -0
  181. package/lib/module/core/mixins/OxyServices.fedcm.js.map +1 -0
  182. package/lib/module/core/mixins/OxyServices.popup.js +349 -0
  183. package/lib/module/core/mixins/OxyServices.popup.js.map +1 -0
  184. package/lib/module/core/mixins/OxyServices.redirect.js +375 -0
  185. package/lib/module/core/mixins/OxyServices.redirect.js.map +1 -0
  186. package/lib/module/core/mixins/OxyServices.user.js +35 -24
  187. package/lib/module/core/mixins/OxyServices.user.js.map +1 -1
  188. package/lib/module/core/mixins/index.js +16 -3
  189. package/lib/module/core/mixins/index.js.map +1 -1
  190. package/lib/module/crypto/index.js +8 -4
  191. package/lib/module/crypto/index.js.map +1 -1
  192. package/lib/module/crypto/keyManager.js +899 -0
  193. package/lib/module/crypto/keyManager.js.map +1 -0
  194. package/lib/module/crypto/polyfill.js +6 -5
  195. package/lib/module/crypto/polyfill.js.map +1 -1
  196. package/lib/module/crypto/recoveryPhrase.js +147 -0
  197. package/lib/module/crypto/recoveryPhrase.js.map +1 -0
  198. package/lib/module/crypto/signatureService.js +286 -0
  199. package/lib/module/crypto/signatureService.js.map +1 -0
  200. package/lib/module/i18n/locales/en-US.json +1 -1
  201. package/lib/module/index.js +6 -9
  202. package/lib/module/index.js.map +1 -1
  203. package/lib/module/models/interfaces.js +0 -15
  204. package/lib/module/models/interfaces.js.map +1 -1
  205. package/lib/module/ui/components/BottomSheetRouter.js +6 -2
  206. package/lib/module/ui/components/BottomSheetRouter.js.map +1 -1
  207. package/lib/module/ui/components/GroupedItem.js +11 -1
  208. package/lib/module/ui/components/GroupedItem.js.map +1 -1
  209. package/lib/module/ui/components/Icon.js.map +1 -1
  210. package/lib/module/ui/components/IconButton/utils.js.map +1 -1
  211. package/lib/module/ui/components/OxyProvider.js +41 -11
  212. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  213. package/lib/module/ui/components/SettingRow.js +17 -4
  214. package/lib/module/ui/components/SettingRow.js.map +1 -1
  215. package/lib/module/ui/components/TextField/Adornment/utils.js.map +1 -1
  216. package/lib/module/ui/components/TextField/helpers.js.map +1 -1
  217. package/lib/module/ui/components/TouchableRipple/utils.js.map +1 -1
  218. package/lib/module/ui/components/Typography/AnimatedText.js.map +1 -1
  219. package/lib/module/ui/components/feedback/FormInput.js +67 -0
  220. package/lib/module/ui/components/feedback/FormInput.js.map +1 -0
  221. package/lib/module/ui/components/feedback/ProgressIndicator.js +28 -0
  222. package/lib/module/ui/components/feedback/ProgressIndicator.js.map +1 -0
  223. package/lib/module/ui/components/feedback/constants.js +55 -0
  224. package/lib/module/ui/components/feedback/constants.js.map +1 -0
  225. package/lib/module/ui/components/feedback/feedbackStyles.js +257 -0
  226. package/lib/module/ui/components/feedback/feedbackStyles.js.map +1 -0
  227. package/lib/module/ui/components/feedback/index.js +8 -0
  228. package/lib/module/ui/components/feedback/index.js.map +1 -0
  229. package/lib/module/ui/components/feedback/types.js +4 -0
  230. package/lib/module/ui/components/feedback/types.js.map +1 -0
  231. package/lib/module/ui/components/feedback/useFeedbackForm.js +47 -0
  232. package/lib/module/ui/components/feedback/useFeedbackForm.js.map +1 -0
  233. package/lib/module/ui/components/modals/DeleteAccountModal.js +276 -0
  234. package/lib/module/ui/components/modals/DeleteAccountModal.js.map +1 -0
  235. package/lib/module/ui/components/modals/index.js +4 -0
  236. package/lib/module/ui/components/modals/index.js.map +1 -0
  237. package/lib/module/ui/components/payment/PaymentDetailsStep.js +303 -0
  238. package/lib/module/ui/components/payment/PaymentDetailsStep.js.map +1 -0
  239. package/lib/module/ui/components/payment/PaymentMethodStep.js +73 -0
  240. package/lib/module/ui/components/payment/PaymentMethodStep.js.map +1 -0
  241. package/lib/module/ui/components/payment/PaymentReviewStep.js +102 -0
  242. package/lib/module/ui/components/payment/PaymentReviewStep.js.map +1 -0
  243. package/lib/module/ui/components/payment/PaymentSuccessStep.js +73 -0
  244. package/lib/module/ui/components/payment/PaymentSuccessStep.js.map +1 -0
  245. package/lib/module/ui/components/payment/PaymentSummaryStep.js +170 -0
  246. package/lib/module/ui/components/payment/PaymentSummaryStep.js.map +1 -0
  247. package/lib/module/ui/components/payment/constants.js +47 -0
  248. package/lib/module/ui/components/payment/constants.js.map +1 -0
  249. package/lib/module/ui/components/payment/index.js +10 -0
  250. package/lib/module/ui/components/payment/index.js.map +1 -0
  251. package/lib/module/ui/components/payment/paymentStyles.js +404 -0
  252. package/lib/module/ui/components/payment/paymentStyles.js.map +1 -0
  253. package/lib/module/ui/components/payment/types.js +4 -0
  254. package/lib/module/ui/components/payment/types.js.map +1 -0
  255. package/lib/module/ui/context/OxyContext.js +112 -191
  256. package/lib/module/ui/context/OxyContext.js.map +1 -1
  257. package/lib/module/ui/context/hooks/useAuthOperations.js +150 -19
  258. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  259. package/lib/module/ui/context/hooks/useSessionManagement.js +274 -0
  260. package/lib/module/ui/context/hooks/useSessionManagement.js.map +1 -0
  261. package/lib/module/ui/hooks/index.js +2 -0
  262. package/lib/module/ui/hooks/index.js.map +1 -1
  263. package/lib/module/ui/hooks/mutations/useAccountMutations.js +80 -72
  264. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  265. package/lib/module/ui/hooks/queries/useAccountQueries.js +31 -44
  266. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
  267. package/lib/module/ui/hooks/queries/useSecurityQueries.js +1 -1
  268. package/lib/module/ui/hooks/queries/useSecurityQueries.js.map +1 -1
  269. package/lib/module/ui/hooks/queries/useServicesQueries.js +13 -7
  270. package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
  271. package/lib/module/ui/hooks/useAsyncAction.js +89 -0
  272. package/lib/module/ui/hooks/useAsyncAction.js.map +1 -0
  273. package/lib/module/ui/hooks/useProfileEditing.js +3 -5
  274. package/lib/module/ui/hooks/useProfileEditing.js.map +1 -1
  275. package/lib/module/ui/hooks/useSessionManagement.js +4 -8
  276. package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
  277. package/lib/module/ui/hooks/useSessionSocket.js +162 -315
  278. package/lib/module/ui/hooks/useSessionSocket.js.map +1 -1
  279. package/lib/module/ui/hooks/useSettingToggle.js +120 -0
  280. package/lib/module/ui/hooks/useSettingToggle.js.map +1 -0
  281. package/lib/module/ui/hooks/useStorage.js +25 -59
  282. package/lib/module/ui/hooks/useStorage.js.map +1 -1
  283. package/lib/module/ui/index.js +15 -10
  284. package/lib/module/ui/index.js.map +1 -1
  285. package/lib/module/ui/navigation/routes.js +6 -1
  286. package/lib/module/ui/navigation/routes.js.map +1 -1
  287. package/lib/module/ui/screens/AccountCenterScreen.js +6 -4
  288. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
  289. package/lib/module/ui/screens/AccountOverviewScreen.js +33 -30
  290. package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
  291. package/lib/module/ui/screens/AccountSettingsScreen.js +29 -24
  292. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  293. package/lib/module/ui/screens/AccountSwitcherScreen.js +3 -3
  294. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
  295. package/lib/module/ui/screens/FAQScreen.js +310 -0
  296. package/lib/module/ui/screens/FAQScreen.js.map +1 -0
  297. package/lib/module/ui/screens/FeedbackScreen.js +64 -581
  298. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  299. package/lib/module/ui/screens/HelpSupportScreen.js +8 -7
  300. package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
  301. package/lib/module/ui/screens/OxyAuthScreen.js +135 -68
  302. package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
  303. package/lib/module/ui/screens/PaymentGatewayScreen.js +67 -1397
  304. package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
  305. package/lib/module/ui/screens/PrivacySettingsScreen.js +6 -13
  306. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  307. package/lib/module/ui/screens/ProfileScreen.js +13 -5
  308. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  309. package/lib/module/ui/screens/SavesCollectionsScreen.js +16 -10
  310. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
  311. package/lib/module/ui/screens/karma/KarmaCenterScreen.js +23 -11
  312. package/lib/module/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
  313. package/lib/module/ui/stores/accountStore.js +2 -4
  314. package/lib/module/ui/stores/accountStore.js.map +1 -1
  315. package/lib/module/ui/stores/authStore.js +45 -32
  316. package/lib/module/ui/stores/authStore.js.map +1 -1
  317. package/lib/module/ui/styles/spacing.js +6 -2
  318. package/lib/module/ui/styles/spacing.js.map +1 -1
  319. package/lib/module/ui/utils/avatarUtils.js +37 -40
  320. package/lib/module/ui/utils/avatarUtils.js.map +1 -1
  321. package/lib/module/ui/utils/storageHelpers.js.map +1 -1
  322. package/lib/module/utils/errorUtils.js +7 -0
  323. package/lib/module/utils/errorUtils.js.map +1 -1
  324. package/lib/module/utils/validationUtils.js +13 -0
  325. package/lib/module/utils/validationUtils.js.map +1 -1
  326. package/lib/typescript/core/CrossDomainAuth.d.ts +161 -0
  327. package/lib/typescript/core/CrossDomainAuth.d.ts.map +1 -0
  328. package/lib/typescript/core/HttpService.d.ts +1 -1
  329. package/lib/typescript/core/HttpService.d.ts.map +1 -1
  330. package/lib/typescript/core/OxyServices.base.d.ts +0 -6
  331. package/lib/typescript/core/OxyServices.base.d.ts.map +1 -1
  332. package/lib/typescript/core/OxyServices.d.ts +5 -36
  333. package/lib/typescript/core/OxyServices.d.ts.map +1 -1
  334. package/lib/typescript/core/index.d.ts +4 -0
  335. package/lib/typescript/core/index.d.ts.map +1 -1
  336. package/lib/typescript/core/mixins/OxyServices.analytics.d.ts.map +1 -1
  337. package/lib/typescript/core/mixins/OxyServices.assets.d.ts.map +1 -1
  338. package/lib/typescript/core/mixins/OxyServices.auth.d.ts +40 -20
  339. package/lib/typescript/core/mixins/OxyServices.auth.d.ts.map +1 -1
  340. package/lib/typescript/core/mixins/OxyServices.developer.d.ts.map +1 -1
  341. package/lib/typescript/core/mixins/OxyServices.devices.d.ts.map +1 -1
  342. package/lib/typescript/core/mixins/OxyServices.features.d.ts +229 -0
  343. package/lib/typescript/core/mixins/OxyServices.features.d.ts.map +1 -0
  344. package/lib/typescript/core/mixins/OxyServices.fedcm.d.ts +195 -0
  345. package/lib/typescript/core/mixins/OxyServices.fedcm.d.ts.map +1 -0
  346. package/lib/typescript/core/mixins/OxyServices.karma.d.ts.map +1 -1
  347. package/lib/typescript/core/mixins/OxyServices.language.d.ts.map +1 -1
  348. package/lib/typescript/core/mixins/OxyServices.location.d.ts.map +1 -1
  349. package/lib/typescript/core/mixins/OxyServices.payment.d.ts.map +1 -1
  350. package/lib/typescript/core/mixins/OxyServices.popup.d.ts +206 -0
  351. package/lib/typescript/core/mixins/OxyServices.popup.d.ts.map +1 -0
  352. package/lib/typescript/core/mixins/OxyServices.privacy.d.ts.map +1 -1
  353. package/lib/typescript/core/mixins/OxyServices.redirect.d.ts +246 -0
  354. package/lib/typescript/core/mixins/OxyServices.redirect.d.ts.map +1 -0
  355. package/lib/typescript/core/mixins/OxyServices.security.d.ts.map +1 -1
  356. package/lib/typescript/core/mixins/OxyServices.user.d.ts +6 -4
  357. package/lib/typescript/core/mixins/OxyServices.user.d.ts.map +1 -1
  358. package/lib/typescript/core/mixins/OxyServices.utility.d.ts.map +1 -1
  359. package/lib/typescript/core/mixins/index.d.ts +291 -9
  360. package/lib/typescript/core/mixins/index.d.ts.map +1 -1
  361. package/lib/typescript/crypto/index.d.ts +6 -3
  362. package/lib/typescript/crypto/index.d.ts.map +1 -1
  363. package/lib/typescript/crypto/keyManager.d.ts +190 -0
  364. package/lib/typescript/crypto/keyManager.d.ts.map +1 -0
  365. package/lib/typescript/crypto/polyfill.d.ts +4 -3
  366. package/lib/typescript/crypto/polyfill.d.ts.map +1 -1
  367. package/lib/typescript/crypto/recoveryPhrase.d.ts +59 -0
  368. package/lib/typescript/crypto/recoveryPhrase.d.ts.map +1 -0
  369. package/lib/typescript/crypto/signatureService.d.ts +87 -0
  370. package/lib/typescript/crypto/signatureService.d.ts.map +1 -0
  371. package/lib/typescript/index.d.ts +5 -6
  372. package/lib/typescript/index.d.ts.map +1 -1
  373. package/lib/typescript/models/interfaces.d.ts +2 -14
  374. package/lib/typescript/models/interfaces.d.ts.map +1 -1
  375. package/lib/typescript/models/session.d.ts +0 -9
  376. package/lib/typescript/models/session.d.ts.map +1 -1
  377. package/lib/typescript/types/bip39.d.ts +32 -0
  378. package/lib/typescript/ui/components/BottomSheetRouter.d.ts +5 -0
  379. package/lib/typescript/ui/components/BottomSheetRouter.d.ts.map +1 -1
  380. package/lib/typescript/ui/components/GroupedItem.d.ts +5 -1
  381. package/lib/typescript/ui/components/GroupedItem.d.ts.map +1 -1
  382. package/lib/typescript/ui/components/IconButton/utils.d.ts +1 -1
  383. package/lib/typescript/ui/components/OxyProvider.d.ts.map +1 -1
  384. package/lib/typescript/ui/components/SettingRow.d.ts +6 -0
  385. package/lib/typescript/ui/components/SettingRow.d.ts.map +1 -1
  386. package/lib/typescript/ui/components/TextField/Addons/Outline.d.ts +2 -2
  387. package/lib/typescript/ui/components/TextField/Adornment/utils.d.ts +1 -1
  388. package/lib/typescript/ui/components/TextField/Adornment/utils.d.ts.map +1 -1
  389. package/lib/typescript/ui/components/TextField/helpers.d.ts +8 -8
  390. package/lib/typescript/ui/components/TextField/types.d.ts +1 -0
  391. package/lib/typescript/ui/components/TextField/types.d.ts.map +1 -1
  392. package/lib/typescript/ui/components/feedback/FormInput.d.ts +20 -0
  393. package/lib/typescript/ui/components/feedback/FormInput.d.ts.map +1 -0
  394. package/lib/typescript/ui/components/feedback/ProgressIndicator.d.ts +11 -0
  395. package/lib/typescript/ui/components/feedback/ProgressIndicator.d.ts.map +1 -0
  396. package/lib/typescript/ui/components/feedback/constants.d.ts +5 -0
  397. package/lib/typescript/ui/components/feedback/constants.d.ts.map +1 -0
  398. package/lib/typescript/ui/components/feedback/feedbackStyles.d.ts +280 -0
  399. package/lib/typescript/ui/components/feedback/feedbackStyles.d.ts.map +1 -0
  400. package/lib/typescript/ui/components/feedback/index.d.ts +7 -0
  401. package/lib/typescript/ui/components/feedback/index.d.ts.map +1 -0
  402. package/lib/typescript/ui/components/feedback/types.d.ts +46 -0
  403. package/lib/typescript/ui/components/feedback/types.d.ts.map +1 -0
  404. package/lib/typescript/ui/components/feedback/useFeedbackForm.d.ts +9 -0
  405. package/lib/typescript/ui/components/feedback/useFeedbackForm.d.ts.map +1 -0
  406. package/lib/typescript/ui/components/modals/DeleteAccountModal.d.ts +19 -0
  407. package/lib/typescript/ui/components/modals/DeleteAccountModal.d.ts.map +1 -0
  408. package/lib/typescript/ui/components/modals/index.d.ts +2 -0
  409. package/lib/typescript/ui/components/modals/index.d.ts.map +1 -0
  410. package/lib/typescript/ui/components/payment/PaymentDetailsStep.d.ts +21 -0
  411. package/lib/typescript/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -0
  412. package/lib/typescript/ui/components/payment/PaymentMethodStep.d.ts +14 -0
  413. package/lib/typescript/ui/components/payment/PaymentMethodStep.d.ts.map +1 -0
  414. package/lib/typescript/ui/components/payment/PaymentReviewStep.d.ts +16 -0
  415. package/lib/typescript/ui/components/payment/PaymentReviewStep.d.ts.map +1 -0
  416. package/lib/typescript/ui/components/payment/PaymentSuccessStep.d.ts +10 -0
  417. package/lib/typescript/ui/components/payment/PaymentSuccessStep.d.ts.map +1 -0
  418. package/lib/typescript/ui/components/payment/PaymentSummaryStep.d.ts +15 -0
  419. package/lib/typescript/ui/components/payment/PaymentSummaryStep.d.ts.map +1 -0
  420. package/lib/typescript/ui/components/payment/constants.d.ts +7 -0
  421. package/lib/typescript/ui/components/payment/constants.d.ts.map +1 -0
  422. package/lib/typescript/ui/components/payment/index.d.ts +9 -0
  423. package/lib/typescript/ui/components/payment/index.d.ts.map +1 -0
  424. package/lib/typescript/ui/components/payment/paymentStyles.d.ts +396 -0
  425. package/lib/typescript/ui/components/payment/paymentStyles.d.ts.map +1 -0
  426. package/lib/typescript/ui/components/payment/types.d.ts +40 -0
  427. package/lib/typescript/ui/components/payment/types.d.ts.map +1 -0
  428. package/lib/typescript/ui/components/types.d.ts +4 -0
  429. package/lib/typescript/ui/components/types.d.ts.map +1 -1
  430. package/lib/typescript/ui/context/OxyContext.d.ts +57 -3
  431. package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
  432. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts +10 -3
  433. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  434. package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts +41 -0
  435. package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts.map +1 -0
  436. package/lib/typescript/ui/hooks/index.d.ts +2 -0
  437. package/lib/typescript/ui/hooks/index.d.ts.map +1 -1
  438. package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  439. package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  440. package/lib/typescript/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  441. package/lib/typescript/ui/hooks/useAsyncAction.d.ts +51 -0
  442. package/lib/typescript/ui/hooks/useAsyncAction.d.ts.map +1 -0
  443. package/lib/typescript/ui/hooks/useProfileEditing.d.ts.map +1 -1
  444. package/lib/typescript/ui/hooks/useSessionManagement.d.ts.map +1 -1
  445. package/lib/typescript/ui/hooks/useSessionSocket.d.ts +1 -2
  446. package/lib/typescript/ui/hooks/useSessionSocket.d.ts.map +1 -1
  447. package/lib/typescript/ui/hooks/useSettingToggle.d.ts +55 -0
  448. package/lib/typescript/ui/hooks/useSettingToggle.d.ts.map +1 -0
  449. package/lib/typescript/ui/hooks/useStorage.d.ts +3 -9
  450. package/lib/typescript/ui/hooks/useStorage.d.ts.map +1 -1
  451. package/lib/typescript/ui/index.d.ts +6 -2
  452. package/lib/typescript/ui/index.d.ts.map +1 -1
  453. package/lib/typescript/ui/navigation/routes.d.ts +1 -1
  454. package/lib/typescript/ui/navigation/routes.d.ts.map +1 -1
  455. package/lib/typescript/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
  456. package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  457. package/lib/typescript/ui/screens/FAQScreen.d.ts +5 -0
  458. package/lib/typescript/ui/screens/FAQScreen.d.ts.map +1 -0
  459. package/lib/typescript/ui/screens/FeedbackScreen.d.ts.map +1 -1
  460. package/lib/typescript/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  461. package/lib/typescript/ui/screens/OxyAuthScreen.d.ts +1 -1
  462. package/lib/typescript/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  463. package/lib/typescript/ui/screens/PaymentGatewayScreen.d.ts +3 -15
  464. package/lib/typescript/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  465. package/lib/typescript/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  466. package/lib/typescript/ui/screens/ProfileScreen.d.ts.map +1 -1
  467. package/lib/typescript/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  468. package/lib/typescript/ui/screens/karma/KarmaCenterScreen.d.ts.map +1 -1
  469. package/lib/typescript/ui/stores/accountStore.d.ts.map +1 -1
  470. package/lib/typescript/ui/stores/authStore.d.ts +8 -7
  471. package/lib/typescript/ui/stores/authStore.d.ts.map +1 -1
  472. package/lib/typescript/ui/styles/spacing.d.ts +5 -0
  473. package/lib/typescript/ui/styles/spacing.d.ts.map +1 -1
  474. package/lib/typescript/ui/types/navigation.d.ts +2 -1
  475. package/lib/typescript/ui/types/navigation.d.ts.map +1 -1
  476. package/lib/typescript/ui/utils/avatarUtils.d.ts +2 -13
  477. package/lib/typescript/ui/utils/avatarUtils.d.ts.map +1 -1
  478. package/lib/typescript/ui/utils/storageHelpers.d.ts +0 -3
  479. package/lib/typescript/ui/utils/storageHelpers.d.ts.map +1 -1
  480. package/lib/typescript/utils/errorUtils.d.ts +6 -0
  481. package/lib/typescript/utils/errorUtils.d.ts.map +1 -1
  482. package/lib/typescript/utils/validationUtils.d.ts +8 -0
  483. package/lib/typescript/utils/validationUtils.d.ts.map +1 -1
  484. package/package.json +8 -7
  485. package/src/core/CrossDomainAuth.ts +307 -0
  486. package/src/core/HttpService.ts +99 -16
  487. package/src/core/OxyServices.base.ts +20 -3
  488. package/src/core/OxyServices.ts +7 -3
  489. package/src/core/index.ts +9 -1
  490. package/src/core/mixins/OxyServices.assets.ts +14 -3
  491. package/src/core/mixins/OxyServices.auth.ts +105 -36
  492. package/src/core/mixins/OxyServices.features.ts +428 -0
  493. package/src/core/mixins/OxyServices.fedcm.ts +315 -0
  494. package/src/core/mixins/OxyServices.popup.ts +402 -0
  495. package/src/core/mixins/OxyServices.redirect.ts +397 -0
  496. package/src/core/mixins/OxyServices.user.ts +39 -24
  497. package/src/core/mixins/index.ts +33 -14
  498. package/src/crypto/index.ts +16 -5
  499. package/src/crypto/keyManager.ts +966 -0
  500. package/src/crypto/polyfill.ts +6 -5
  501. package/src/crypto/recoveryPhrase.ts +166 -0
  502. package/src/crypto/signatureService.ts +323 -0
  503. package/src/i18n/locales/en-US.json +1 -1
  504. package/src/index.ts +19 -15
  505. package/src/models/interfaces.ts +4 -16
  506. package/src/models/session.ts +2 -11
  507. package/src/types/bip39.d.ts +32 -0
  508. package/src/ui/components/BottomSheetRouter.tsx +6 -1
  509. package/src/ui/components/GroupedItem.tsx +19 -1
  510. package/src/ui/components/Icon.tsx +1 -1
  511. package/src/ui/components/IconButton/utils.ts +1 -1
  512. package/src/ui/components/OxyProvider.tsx +44 -12
  513. package/src/ui/components/SettingRow.tsx +26 -4
  514. package/src/ui/components/TextField/Addons/Outline.tsx +2 -2
  515. package/src/ui/components/TextField/Adornment/utils.ts +2 -2
  516. package/src/ui/components/TextField/helpers.tsx +10 -10
  517. package/src/ui/components/TextField/types.tsx +1 -1
  518. package/src/ui/components/TouchableRipple/utils.ts +2 -2
  519. package/src/ui/components/Typography/AnimatedText.tsx +2 -2
  520. package/src/ui/components/feedback/FormInput.tsx +84 -0
  521. package/src/ui/components/feedback/ProgressIndicator.tsx +35 -0
  522. package/src/ui/components/feedback/constants.ts +22 -0
  523. package/src/ui/components/feedback/feedbackStyles.ts +247 -0
  524. package/src/ui/components/feedback/index.ts +6 -0
  525. package/src/ui/components/feedback/types.ts +52 -0
  526. package/src/ui/components/feedback/useFeedbackForm.ts +44 -0
  527. package/src/ui/components/modals/DeleteAccountModal.tsx +294 -0
  528. package/src/ui/components/modals/index.ts +1 -0
  529. package/src/ui/components/payment/PaymentDetailsStep.tsx +222 -0
  530. package/src/ui/components/payment/PaymentMethodStep.tsx +89 -0
  531. package/src/ui/components/payment/PaymentReviewStep.tsx +126 -0
  532. package/src/ui/components/payment/PaymentSuccessStep.tsx +71 -0
  533. package/src/ui/components/payment/PaymentSummaryStep.tsx +159 -0
  534. package/src/ui/components/payment/constants.ts +39 -0
  535. package/src/ui/components/payment/index.ts +9 -0
  536. package/src/ui/components/payment/paymentStyles.ts +397 -0
  537. package/src/ui/components/payment/types.ts +45 -0
  538. package/src/ui/components/types.tsx +6 -0
  539. package/src/ui/context/OxyContext.tsx +173 -195
  540. package/src/ui/context/hooks/useAuthOperations.ts +177 -36
  541. package/src/ui/context/hooks/useSessionManagement.ts +399 -0
  542. package/src/ui/hooks/index.ts +3 -1
  543. package/src/ui/hooks/mutations/useAccountMutations.ts +83 -76
  544. package/src/ui/hooks/queries/useAccountQueries.ts +29 -35
  545. package/src/ui/hooks/queries/useSecurityQueries.ts +1 -1
  546. package/src/ui/hooks/queries/useServicesQueries.ts +14 -6
  547. package/src/ui/hooks/useAsyncAction.ts +129 -0
  548. package/src/ui/hooks/useProfileEditing.ts +3 -3
  549. package/src/ui/hooks/useSessionManagement.ts +5 -10
  550. package/src/ui/hooks/useSessionSocket.ts +46 -175
  551. package/src/ui/hooks/useSettingToggle.ts +147 -0
  552. package/src/ui/hooks/useStorage.ts +24 -76
  553. package/src/ui/index.ts +22 -13
  554. package/src/ui/navigation/routes.ts +8 -2
  555. package/src/ui/screens/AccountCenterScreen.tsx +4 -4
  556. package/src/ui/screens/AccountOverviewScreen.tsx +36 -38
  557. package/src/ui/screens/AccountSettingsScreen.tsx +34 -37
  558. package/src/ui/screens/AccountSwitcherScreen.tsx +4 -4
  559. package/src/ui/screens/FAQScreen.tsx +332 -0
  560. package/src/ui/screens/FeedbackScreen.tsx +91 -626
  561. package/src/ui/screens/HelpSupportScreen.tsx +7 -5
  562. package/src/ui/screens/OxyAuthScreen.tsx +138 -64
  563. package/src/ui/screens/PaymentGatewayScreen.tsx +96 -1275
  564. package/src/ui/screens/PrivacySettingsScreen.tsx +6 -12
  565. package/src/ui/screens/ProfileScreen.tsx +11 -6
  566. package/src/ui/screens/SavesCollectionsScreen.tsx +19 -10
  567. package/src/ui/screens/karma/KarmaCenterScreen.tsx +10 -10
  568. package/src/ui/stores/accountStore.ts +1 -11
  569. package/src/ui/stores/authStore.ts +43 -44
  570. package/src/ui/styles/spacing.ts +15 -2
  571. package/src/ui/types/navigation.ts +2 -2
  572. package/src/ui/utils/avatarUtils.ts +39 -46
  573. package/src/ui/utils/storageHelpers.ts +0 -4
  574. package/src/utils/__tests__/validationUtils.test.ts +16 -1
  575. package/src/utils/errorUtils.ts +8 -1
  576. package/src/utils/validationUtils.ts +12 -0
  577. package/lib/commonjs/core/services/SessionService.js +0 -163
  578. package/lib/commonjs/core/services/SessionService.js.map +0 -1
  579. package/lib/commonjs/core/services/TokenService.js +0 -220
  580. package/lib/commonjs/core/services/TokenService.js.map +0 -1
  581. package/lib/commonjs/crypto/types.js +0 -2
  582. package/lib/commonjs/crypto/types.js.map +0 -1
  583. package/lib/commonjs/ui/context/OxyContextBase.js +0 -21
  584. package/lib/commonjs/ui/context/OxyContextBase.js.map +0 -1
  585. package/lib/commonjs/ui/context/hooks/useStorage.js +0 -79
  586. package/lib/commonjs/ui/context/hooks/useStorage.js.map +0 -1
  587. package/lib/commonjs/ui/hooks/useAvatarPicker.js +0 -56
  588. package/lib/commonjs/ui/hooks/useAvatarPicker.js.map +0 -1
  589. package/lib/module/core/services/SessionService.js +0 -159
  590. package/lib/module/core/services/SessionService.js.map +0 -1
  591. package/lib/module/core/services/TokenService.js +0 -217
  592. package/lib/module/core/services/TokenService.js.map +0 -1
  593. package/lib/module/crypto/types.js +0 -2
  594. package/lib/module/crypto/types.js.map +0 -1
  595. package/lib/module/ui/context/OxyContextBase.js +0 -16
  596. package/lib/module/ui/context/OxyContextBase.js.map +0 -1
  597. package/lib/module/ui/context/hooks/useStorage.js +0 -74
  598. package/lib/module/ui/context/hooks/useStorage.js.map +0 -1
  599. package/lib/module/ui/hooks/useAvatarPicker.js +0 -50
  600. package/lib/module/ui/hooks/useAvatarPicker.js.map +0 -1
  601. package/lib/typescript/core/services/SessionService.d.ts +0 -78
  602. package/lib/typescript/core/services/SessionService.d.ts.map +0 -1
  603. package/lib/typescript/core/services/TokenService.d.ts +0 -72
  604. package/lib/typescript/core/services/TokenService.d.ts.map +0 -1
  605. package/lib/typescript/crypto/types.d.ts +0 -22
  606. package/lib/typescript/crypto/types.d.ts.map +0 -1
  607. package/lib/typescript/ui/context/OxyContextBase.d.ts +0 -63
  608. package/lib/typescript/ui/context/OxyContextBase.d.ts.map +0 -1
  609. package/lib/typescript/ui/context/hooks/useStorage.d.ts +0 -22
  610. package/lib/typescript/ui/context/hooks/useStorage.d.ts.map +0 -1
  611. package/lib/typescript/ui/hooks/useAvatarPicker.d.ts +0 -19
  612. package/lib/typescript/ui/hooks/useAvatarPicker.d.ts.map +0 -1
  613. package/src/core/services/SessionService.ts +0 -173
  614. package/src/core/services/TokenService.ts +0 -237
  615. package/src/crypto/types.ts +0 -23
  616. package/src/ui/context/OxyContextBase.tsx +0 -78
  617. package/src/ui/context/hooks/useStorage.ts +0 -104
  618. package/src/ui/hooks/useAvatarPicker.ts +0 -61
@@ -0,0 +1,349 @@
1
+ "use strict";
2
+
3
+ import { OxyAuthenticationError } from '../OxyServices.errors';
4
+ /**
5
+ * Popup-based Cross-Domain Authentication Mixin
6
+ *
7
+ * Implements OAuth2-style authentication using popup windows and postMessage.
8
+ * This is the primary authentication method for modern browsers, providing a
9
+ * Google-like experience without full page redirects.
10
+ *
11
+ * Flow:
12
+ * 1. Opens small popup window to auth.oxy.so
13
+ * 2. User signs in (auth.oxy.so sets its own first-party cookie)
14
+ * 3. auth.oxy.so sends token back via postMessage
15
+ * 4. Popup closes, parent app has the session
16
+ *
17
+ * Features:
18
+ * - No full page redirect (preserves app state)
19
+ * - Works across different domains (homiio.com, mention.earth, etc.)
20
+ * - Silent refresh using hidden iframe for seamless SSO
21
+ * - CSRF protection via state parameter
22
+ * - XSS protection via origin validation
23
+ *
24
+ * Browser Support: All modern browsers (IE11+)
25
+ */
26
+ export function OxyServicesPopupAuthMixin(Base) {
27
+ return class extends Base {
28
+ constructor(...args) {
29
+ super(...args);
30
+ }
31
+ static AUTH_URL = 'https://auth.oxy.so';
32
+ static POPUP_WIDTH = 500;
33
+ static POPUP_HEIGHT = 700;
34
+ static POPUP_TIMEOUT = 60000; // 1 minute
35
+ static SILENT_TIMEOUT = 5000; // 5 seconds
36
+
37
+ /**
38
+ * Sign in using popup window
39
+ *
40
+ * Opens a centered popup window to auth.oxy.so where the user can sign in.
41
+ * The popup automatically closes after successful authentication and the
42
+ * session is returned to the parent window.
43
+ *
44
+ * @param options - Popup configuration options
45
+ * @returns Session with access token and user data
46
+ * @throws {OxyAuthenticationError} If popup is blocked or auth fails
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ * const handleSignIn = async () => {
51
+ * try {
52
+ * const session = await oxyServices.signInWithPopup();
53
+ * console.log('Signed in:', session.user);
54
+ * } catch (error) {
55
+ * if (error.message.includes('blocked')) {
56
+ * alert('Please allow popups for this site');
57
+ * }
58
+ * }
59
+ * };
60
+ * ```
61
+ */
62
+ async signInWithPopup(options = {}) {
63
+ if (typeof window === 'undefined') {
64
+ throw new OxyAuthenticationError('Popup authentication requires browser environment');
65
+ }
66
+ const state = this.generateState();
67
+ const nonce = this.generateNonce();
68
+
69
+ // Store state for CSRF protection
70
+ this.storeAuthState(state, nonce);
71
+ const width = options.width || this.constructor.POPUP_WIDTH;
72
+ const height = options.height || this.constructor.POPUP_HEIGHT;
73
+ const timeout = options.timeout || this.constructor.POPUP_TIMEOUT;
74
+ const mode = options.mode || 'login';
75
+ const authUrl = this.buildAuthUrl({
76
+ mode,
77
+ state,
78
+ nonce,
79
+ clientId: window.location.origin,
80
+ redirectUri: `${this.constructor.AUTH_URL}/auth/callback`
81
+ });
82
+ const popup = this.openCenteredPopup(authUrl, 'Oxy Sign In', width, height);
83
+ if (!popup) {
84
+ throw new OxyAuthenticationError('Popup blocked. Please allow popups for this site and try again.');
85
+ }
86
+ try {
87
+ const session = await this.waitForPopupAuth(popup, state, timeout);
88
+
89
+ // Store access token if present
90
+ if (session && session.accessToken) {
91
+ this.httpService.setTokens(session.accessToken);
92
+ }
93
+ return session;
94
+ } catch (error) {
95
+ throw error;
96
+ } finally {
97
+ this.clearAuthState(state);
98
+ }
99
+ }
100
+
101
+ /**
102
+ * Sign up using popup window
103
+ *
104
+ * Same as signInWithPopup but opens the signup page by default.
105
+ *
106
+ * @param options - Popup configuration options
107
+ * @returns Session with access token and user data
108
+ */
109
+ async signUpWithPopup(options = {}) {
110
+ return this.signInWithPopup({
111
+ ...options,
112
+ mode: 'signup'
113
+ });
114
+ }
115
+
116
+ /**
117
+ * Silent sign-in using hidden iframe
118
+ *
119
+ * Attempts to automatically re-authenticate the user without any UI.
120
+ * This is what enables seamless SSO across all Oxy domains.
121
+ *
122
+ * How it works:
123
+ * 1. Creates hidden iframe pointing to auth.oxy.so/silent-auth
124
+ * 2. If user has valid session at auth.oxy.so, it sends token via postMessage
125
+ * 3. If not, iframe responds with null (no error thrown)
126
+ *
127
+ * This should be called on app startup to check for existing sessions.
128
+ *
129
+ * @param options - Silent auth options
130
+ * @returns Session if user is signed in, null otherwise
131
+ *
132
+ * @example
133
+ * ```typescript
134
+ * useEffect(() => {
135
+ * const checkAuth = async () => {
136
+ * const session = await oxyServices.silentSignIn();
137
+ * if (session) {
138
+ * setUser(session.user);
139
+ * }
140
+ * };
141
+ * checkAuth();
142
+ * }, []);
143
+ * ```
144
+ */
145
+ async silentSignIn(options = {}) {
146
+ if (typeof window === 'undefined') {
147
+ return null;
148
+ }
149
+ const timeout = options.timeout || this.constructor.SILENT_TIMEOUT;
150
+ const nonce = this.generateNonce();
151
+ const clientId = window.location.origin;
152
+ const iframe = document.createElement('iframe');
153
+ iframe.style.display = 'none';
154
+ iframe.style.position = 'absolute';
155
+ iframe.style.width = '0';
156
+ iframe.style.height = '0';
157
+ iframe.style.border = 'none';
158
+ const silentUrl = `${this.constructor.AUTH_URL}/auth/silent?` + `client_id=${encodeURIComponent(clientId)}&` + `nonce=${nonce}`;
159
+ iframe.src = silentUrl;
160
+ document.body.appendChild(iframe);
161
+ try {
162
+ const session = await this.waitForIframeAuth(iframe, timeout, clientId);
163
+ if (session && session.accessToken) {
164
+ this.httpService.setTokens(session.accessToken);
165
+ }
166
+ return session;
167
+ } catch (error) {
168
+ return null;
169
+ } finally {
170
+ document.body.removeChild(iframe);
171
+ }
172
+ }
173
+
174
+ /**
175
+ * Open a centered popup window
176
+ *
177
+ * @private
178
+ */
179
+ openCenteredPopup(url, title, width, height) {
180
+ const left = window.screenX + (window.outerWidth - width) / 2;
181
+ const top = window.screenY + (window.outerHeight - height) / 2;
182
+ const features = [`width=${width}`, `height=${height}`, `left=${left}`, `top=${top}`, 'toolbar=no', 'menubar=no', 'scrollbars=yes', 'resizable=yes', 'status=no', 'location=no'].join(',');
183
+ return window.open(url, title, features);
184
+ }
185
+
186
+ /**
187
+ * Wait for authentication response from popup
188
+ *
189
+ * @private
190
+ */
191
+ async waitForPopupAuth(popup, expectedState, timeout) {
192
+ return new Promise((resolve, reject) => {
193
+ const timeoutId = setTimeout(() => {
194
+ cleanup();
195
+ reject(new OxyAuthenticationError('Authentication timeout'));
196
+ }, timeout);
197
+ const messageHandler = event => {
198
+ // CRITICAL: Verify origin to prevent XSS attacks
199
+ if (event.origin !== this.constructor.AUTH_URL) {
200
+ return;
201
+ }
202
+ const {
203
+ type,
204
+ state,
205
+ session,
206
+ error
207
+ } = event.data;
208
+ if (type !== 'oxy_auth_response') {
209
+ return;
210
+ }
211
+
212
+ // Verify state parameter to prevent CSRF attacks
213
+ if (state !== expectedState) {
214
+ cleanup();
215
+ reject(new OxyAuthenticationError('Invalid state parameter. Possible CSRF attack.'));
216
+ return;
217
+ }
218
+ cleanup();
219
+ if (error) {
220
+ reject(new OxyAuthenticationError(error));
221
+ } else if (session) {
222
+ resolve(session);
223
+ } else {
224
+ reject(new OxyAuthenticationError('No session received from authentication server'));
225
+ }
226
+ };
227
+
228
+ // Poll to detect if user closed the popup
229
+ const pollInterval = setInterval(() => {
230
+ if (popup.closed) {
231
+ cleanup();
232
+ reject(new OxyAuthenticationError('Authentication cancelled by user'));
233
+ }
234
+ }, 500);
235
+ const cleanup = () => {
236
+ clearTimeout(timeoutId);
237
+ clearInterval(pollInterval);
238
+ window.removeEventListener('message', messageHandler);
239
+ if (!popup.closed) {
240
+ popup.close();
241
+ }
242
+ };
243
+ window.addEventListener('message', messageHandler);
244
+ });
245
+ }
246
+
247
+ /**
248
+ * Wait for authentication response from iframe
249
+ *
250
+ * @private
251
+ */
252
+ async waitForIframeAuth(iframe, timeout, expectedOrigin) {
253
+ return new Promise(resolve => {
254
+ const timeoutId = setTimeout(() => {
255
+ cleanup();
256
+ resolve(null); // Silent failure - don't throw
257
+ }, timeout);
258
+ const messageHandler = event => {
259
+ // Verify origin
260
+ if (event.origin !== this.constructor.AUTH_URL) {
261
+ return;
262
+ }
263
+ const {
264
+ type,
265
+ session
266
+ } = event.data;
267
+ if (type !== 'oxy_silent_auth') {
268
+ return;
269
+ }
270
+ cleanup();
271
+ resolve(session || null);
272
+ };
273
+ const cleanup = () => {
274
+ clearTimeout(timeoutId);
275
+ window.removeEventListener('message', messageHandler);
276
+ };
277
+ window.addEventListener('message', messageHandler);
278
+ });
279
+ }
280
+
281
+ /**
282
+ * Build authentication URL with query parameters
283
+ *
284
+ * @private
285
+ */
286
+ buildAuthUrl(params) {
287
+ const url = new URL(`${this.constructor.AUTH_URL}/${params.mode}`);
288
+ url.searchParams.set('response_type', 'token');
289
+ url.searchParams.set('client_id', params.clientId);
290
+ url.searchParams.set('redirect_uri', params.redirectUri);
291
+ url.searchParams.set('state', params.state);
292
+ url.searchParams.set('nonce', params.nonce);
293
+ return url.toString();
294
+ }
295
+
296
+ /**
297
+ * Generate cryptographically secure state for CSRF protection
298
+ *
299
+ * @private
300
+ */
301
+ generateState() {
302
+ if (typeof window !== 'undefined' && window.crypto && window.crypto.randomUUID) {
303
+ return window.crypto.randomUUID();
304
+ }
305
+ return `${Date.now()}-${Math.random().toString(36).substring(2, 15)}`;
306
+ }
307
+
308
+ /**
309
+ * Generate nonce for replay attack prevention
310
+ *
311
+ * @private
312
+ */
313
+ generateNonce() {
314
+ if (typeof window !== 'undefined' && window.crypto && window.crypto.randomUUID) {
315
+ return window.crypto.randomUUID();
316
+ }
317
+ return `${Date.now()}-${Math.random().toString(36).substring(2, 15)}`;
318
+ }
319
+
320
+ /**
321
+ * Store auth state in session storage
322
+ *
323
+ * @private
324
+ */
325
+ storeAuthState(state, nonce) {
326
+ if (typeof window !== 'undefined' && window.sessionStorage) {
327
+ sessionStorage.setItem(`oxy_auth_state_${state}`, JSON.stringify({
328
+ nonce,
329
+ timestamp: Date.now()
330
+ }));
331
+ }
332
+ }
333
+
334
+ /**
335
+ * Clear auth state from session storage
336
+ *
337
+ * @private
338
+ */
339
+ clearAuthState(state) {
340
+ if (typeof window !== 'undefined' && window.sessionStorage) {
341
+ sessionStorage.removeItem(`oxy_auth_state_${state}`);
342
+ }
343
+ }
344
+ };
345
+ }
346
+
347
+ // Export the mixin function as both named and default
348
+ export { OxyServicesPopupAuthMixin as PopupAuthMixin };
349
+ //# sourceMappingURL=OxyServices.popup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["OxyAuthenticationError","OxyServicesPopupAuthMixin","Base","constructor","args","AUTH_URL","POPUP_WIDTH","POPUP_HEIGHT","POPUP_TIMEOUT","SILENT_TIMEOUT","signInWithPopup","options","window","state","generateState","nonce","generateNonce","storeAuthState","width","height","timeout","mode","authUrl","buildAuthUrl","clientId","location","origin","redirectUri","popup","openCenteredPopup","session","waitForPopupAuth","accessToken","httpService","setTokens","error","clearAuthState","signUpWithPopup","silentSignIn","iframe","document","createElement","style","display","position","border","silentUrl","encodeURIComponent","src","body","appendChild","waitForIframeAuth","removeChild","url","title","left","screenX","outerWidth","top","screenY","outerHeight","features","join","open","expectedState","Promise","resolve","reject","timeoutId","setTimeout","cleanup","messageHandler","event","type","data","pollInterval","setInterval","closed","clearTimeout","clearInterval","removeEventListener","close","addEventListener","expectedOrigin","params","URL","searchParams","set","toString","crypto","randomUUID","Date","now","Math","random","substring","sessionStorage","setItem","JSON","stringify","timestamp","removeItem","PopupAuthMixin"],"sourceRoot":"../../../../src","sources":["core/mixins/OxyServices.popup.ts"],"mappings":"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","ignoreList":[]}