@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,369 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Features Methods Mixin
5
+ *
6
+ * Provides methods for various features:
7
+ * - Feedback submission
8
+ * - Subscription plans
9
+ * - Saves/Collections
10
+ * - User history
11
+ * - FAQ
12
+ * - User stats
13
+ * - Achievements
14
+ */
15
+
16
+ import { CACHE_TIMES } from './mixinHelpers';
17
+
18
+ // Types
19
+
20
+ export function OxyServicesFeaturesMixin(Base) {
21
+ return class extends Base {
22
+ constructor(...args) {
23
+ super(...args);
24
+ }
25
+
26
+ // ==================
27
+ // FEEDBACK METHODS
28
+ // ==================
29
+
30
+ /**
31
+ * Submit user feedback
32
+ */
33
+ async submitFeedback(payload) {
34
+ try {
35
+ return await this.makeRequest('POST', '/api/feedback', payload, {
36
+ cache: false
37
+ });
38
+ } catch (error) {
39
+ throw this.handleError(error);
40
+ }
41
+ }
42
+
43
+ // ==================
44
+ // SUBSCRIPTION METHODS
45
+ // ==================
46
+
47
+ /**
48
+ * Get available subscription plans
49
+ */
50
+ async getSubscriptionPlans() {
51
+ try {
52
+ return await this.makeRequest('GET', '/api/subscriptions/plans', undefined, {
53
+ cache: true,
54
+ cacheTTL: CACHE_TIMES.LONG
55
+ });
56
+ } catch (error) {
57
+ throw this.handleError(error);
58
+ }
59
+ }
60
+
61
+ /**
62
+ * Get individual purchasable features
63
+ */
64
+ async getIndividualFeatures() {
65
+ try {
66
+ return await this.makeRequest('GET', '/api/subscriptions/features', undefined, {
67
+ cache: true,
68
+ cacheTTL: CACHE_TIMES.LONG
69
+ });
70
+ } catch (error) {
71
+ throw this.handleError(error);
72
+ }
73
+ }
74
+
75
+ /**
76
+ * Subscribe to a plan
77
+ */
78
+ async subscribe(planId, paymentMethodId) {
79
+ return this.withAuthRetry(async () => {
80
+ return await this.makeRequest('POST', '/api/subscriptions/subscribe', {
81
+ planId,
82
+ paymentMethodId
83
+ }, {
84
+ cache: false
85
+ });
86
+ }, 'subscribe');
87
+ }
88
+
89
+ /**
90
+ * Subscribe to an individual feature
91
+ */
92
+ async subscribeToFeature(featureId, paymentMethodId) {
93
+ return this.withAuthRetry(async () => {
94
+ return await this.makeRequest('POST', '/api/subscriptions/features/subscribe', {
95
+ featureId,
96
+ paymentMethodId
97
+ }, {
98
+ cache: false
99
+ });
100
+ }, 'subscribeToFeature');
101
+ }
102
+
103
+ /**
104
+ * Cancel subscription
105
+ */
106
+ async cancelSubscription(subscriptionId) {
107
+ return this.withAuthRetry(async () => {
108
+ await this.makeRequest('POST', `/api/subscriptions/${subscriptionId}/cancel`, undefined, {
109
+ cache: false
110
+ });
111
+ }, 'cancelSubscription');
112
+ }
113
+
114
+ /**
115
+ * Reactivate subscription
116
+ */
117
+ async reactivateSubscription(subscriptionId) {
118
+ return this.withAuthRetry(async () => {
119
+ await this.makeRequest('POST', `/api/subscriptions/${subscriptionId}/reactivate`, undefined, {
120
+ cache: false
121
+ });
122
+ }, 'reactivateSubscription');
123
+ }
124
+
125
+ /**
126
+ * Get current user's subscription
127
+ */
128
+ async getCurrentSubscription() {
129
+ return this.withAuthRetry(async () => {
130
+ try {
131
+ return await this.makeRequest('GET', '/api/subscriptions/current', undefined, {
132
+ cache: true,
133
+ cacheTTL: CACHE_TIMES.SHORT
134
+ });
135
+ } catch (error) {
136
+ if (error.status === 404) return null;
137
+ throw error;
138
+ }
139
+ }, 'getCurrentSubscription');
140
+ }
141
+
142
+ // ==================
143
+ // SAVES/COLLECTIONS
144
+ // ==================
145
+
146
+ /**
147
+ * Get user's saved items
148
+ */
149
+ async getSavedItems(userId) {
150
+ return this.withAuthRetry(async () => {
151
+ const endpoint = userId ? `/api/users/${userId}/saves` : '/api/saves';
152
+ return await this.makeRequest('GET', endpoint, undefined, {
153
+ cache: true,
154
+ cacheTTL: CACHE_TIMES.SHORT
155
+ });
156
+ }, 'getSavedItems');
157
+ }
158
+
159
+ /**
160
+ * Get user's collections
161
+ */
162
+ async getCollections(userId) {
163
+ return this.withAuthRetry(async () => {
164
+ const endpoint = userId ? `/api/users/${userId}/collections` : '/api/collections';
165
+ return await this.makeRequest('GET', endpoint, undefined, {
166
+ cache: true,
167
+ cacheTTL: CACHE_TIMES.SHORT
168
+ });
169
+ }, 'getCollections');
170
+ }
171
+
172
+ /**
173
+ * Save an item
174
+ */
175
+ async saveItem(itemId, itemType, collectionId) {
176
+ return this.withAuthRetry(async () => {
177
+ return await this.makeRequest('POST', '/api/saves', {
178
+ itemId,
179
+ itemType,
180
+ collectionId
181
+ }, {
182
+ cache: false
183
+ });
184
+ }, 'saveItem');
185
+ }
186
+
187
+ /**
188
+ * Remove an item from saves
189
+ */
190
+ async removeSavedItem(saveId) {
191
+ return this.withAuthRetry(async () => {
192
+ await this.makeRequest('DELETE', `/api/saves/${saveId}`, undefined, {
193
+ cache: false
194
+ });
195
+ }, 'removeSavedItem');
196
+ }
197
+
198
+ /**
199
+ * Create a collection
200
+ */
201
+ async createCollection(name, description) {
202
+ return this.withAuthRetry(async () => {
203
+ return await this.makeRequest('POST', '/api/collections', {
204
+ name,
205
+ description
206
+ }, {
207
+ cache: false
208
+ });
209
+ }, 'createCollection');
210
+ }
211
+
212
+ /**
213
+ * Delete a collection
214
+ */
215
+ async deleteCollection(collectionId) {
216
+ return this.withAuthRetry(async () => {
217
+ await this.makeRequest('DELETE', `/api/collections/${collectionId}`, undefined, {
218
+ cache: false
219
+ });
220
+ }, 'deleteCollection');
221
+ }
222
+
223
+ // ==================
224
+ // USER STATS
225
+ // ==================
226
+
227
+ /**
228
+ * Get user statistics
229
+ */
230
+ async getUserStats(userId) {
231
+ try {
232
+ return await this.makeRequest('GET', `/api/users/${userId}/stats`, undefined, {
233
+ cache: true,
234
+ cacheTTL: CACHE_TIMES.MEDIUM
235
+ });
236
+ } catch (error) {
237
+ throw this.handleError(error);
238
+ }
239
+ }
240
+
241
+ // ==================
242
+ // HISTORY
243
+ // ==================
244
+
245
+ /**
246
+ * Get user history
247
+ */
248
+ async getUserHistory(userId, limit, offset) {
249
+ return this.withAuthRetry(async () => {
250
+ const params = {};
251
+ if (limit) params.limit = limit;
252
+ if (offset) params.offset = offset;
253
+ const endpoint = userId ? `/api/users/${userId}/history` : '/api/history';
254
+ return await this.makeRequest('GET', endpoint, params, {
255
+ cache: true,
256
+ cacheTTL: CACHE_TIMES.SHORT
257
+ });
258
+ }, 'getUserHistory');
259
+ }
260
+
261
+ /**
262
+ * Clear user history
263
+ */
264
+ async clearUserHistory() {
265
+ return this.withAuthRetry(async () => {
266
+ await this.makeRequest('DELETE', '/api/history', undefined, {
267
+ cache: false
268
+ });
269
+ }, 'clearUserHistory');
270
+ }
271
+
272
+ /**
273
+ * Delete a history item
274
+ */
275
+ async deleteHistoryItem(itemId) {
276
+ return this.withAuthRetry(async () => {
277
+ await this.makeRequest('DELETE', `/api/history/${itemId}`, undefined, {
278
+ cache: false
279
+ });
280
+ }, 'deleteHistoryItem');
281
+ }
282
+
283
+ // ==================
284
+ // FAQ
285
+ // ==================
286
+
287
+ /**
288
+ * Get FAQs
289
+ */
290
+ async getFAQs(category) {
291
+ try {
292
+ const params = category ? {
293
+ category
294
+ } : undefined;
295
+ return await this.makeRequest('GET', '/api/faqs', params, {
296
+ cache: true,
297
+ cacheTTL: CACHE_TIMES.LONG
298
+ });
299
+ } catch (error) {
300
+ throw this.handleError(error);
301
+ }
302
+ }
303
+
304
+ /**
305
+ * Search FAQs
306
+ */
307
+ async searchFAQs(query) {
308
+ try {
309
+ return await this.makeRequest('GET', '/api/faqs/search', {
310
+ query
311
+ }, {
312
+ cache: true,
313
+ cacheTTL: CACHE_TIMES.MEDIUM
314
+ });
315
+ } catch (error) {
316
+ throw this.handleError(error);
317
+ }
318
+ }
319
+
320
+ // ==================
321
+ // ACHIEVEMENTS
322
+ // ==================
323
+
324
+ /**
325
+ * Get user achievements
326
+ */
327
+ async getUserAchievements(userId) {
328
+ return this.withAuthRetry(async () => {
329
+ const endpoint = userId ? `/api/users/${userId}/achievements` : '/api/achievements';
330
+ return await this.makeRequest('GET', endpoint, undefined, {
331
+ cache: true,
332
+ cacheTTL: CACHE_TIMES.MEDIUM
333
+ });
334
+ }, 'getUserAchievements');
335
+ }
336
+
337
+ /**
338
+ * Get all available achievements
339
+ */
340
+ async getAllAchievements() {
341
+ try {
342
+ return await this.makeRequest('GET', '/api/achievements/all', undefined, {
343
+ cache: true,
344
+ cacheTTL: CACHE_TIMES.LONG
345
+ });
346
+ } catch (error) {
347
+ throw this.handleError(error);
348
+ }
349
+ }
350
+
351
+ // ==================
352
+ // ACCOUNT
353
+ // ==================
354
+
355
+ /**
356
+ * Delete user account (requires password confirmation)
357
+ */
358
+ async deleteAccount(password) {
359
+ return this.withAuthRetry(async () => {
360
+ await this.makeRequest('DELETE', '/api/account', {
361
+ password
362
+ }, {
363
+ cache: false
364
+ });
365
+ }, 'deleteAccount');
366
+ }
367
+ };
368
+ }
369
+ //# sourceMappingURL=OxyServices.features.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CACHE_TIMES","OxyServicesFeaturesMixin","Base","constructor","args","submitFeedback","payload","makeRequest","cache","error","handleError","getSubscriptionPlans","undefined","cacheTTL","LONG","getIndividualFeatures","subscribe","planId","paymentMethodId","withAuthRetry","subscribeToFeature","featureId","cancelSubscription","subscriptionId","reactivateSubscription","getCurrentSubscription","SHORT","status","getSavedItems","userId","endpoint","getCollections","saveItem","itemId","itemType","collectionId","removeSavedItem","saveId","createCollection","name","description","deleteCollection","getUserStats","MEDIUM","getUserHistory","limit","offset","params","clearUserHistory","deleteHistoryItem","getFAQs","category","searchFAQs","query","getUserAchievements","getAllAchievements","deleteAccount","password"],"sourceRoot":"../../../../src","sources":["core/mixins/OxyServices.features.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,286 @@
1
+ "use strict";
2
+
3
+ import { OxyAuthenticationError } from '../OxyServices.errors';
4
+ /**
5
+ * Federated Credential Management (FedCM) Authentication Mixin
6
+ *
7
+ * Implements the modern browser-native identity federation API that enables
8
+ * Google-style cross-domain authentication without third-party cookies.
9
+ *
10
+ * Browser Support:
11
+ * - Chrome 108+
12
+ * - Safari 16.4+
13
+ * - Edge 108+
14
+ * - Firefox: Not yet supported (fallback required)
15
+ *
16
+ * Key Features:
17
+ * - No redirects or popups required
18
+ * - Browser-native UI prompts
19
+ * - Privacy-preserving (IdP can't track users)
20
+ * - Automatic SSO across domains
21
+ * - Silent re-authentication support
22
+ *
23
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/FedCM_API
24
+ */
25
+ export function OxyServicesFedCMMixin(Base) {
26
+ return class extends Base {
27
+ constructor(...args) {
28
+ super(...args);
29
+ }
30
+ static DEFAULT_CONFIG_URL = 'https://auth.oxy.so/fedcm.json';
31
+ static FEDCM_TIMEOUT = 60000; // 1 minute
32
+
33
+ /**
34
+ * Check if FedCM is supported in the current browser
35
+ */
36
+ static isFedCMSupported() {
37
+ if (typeof window === 'undefined') return false;
38
+ return 'IdentityCredential' in window && 'navigator' in window && 'credentials' in navigator;
39
+ }
40
+
41
+ /**
42
+ * Instance method to check FedCM support
43
+ */
44
+ isFedCMSupported() {
45
+ return this.constructor.isFedCMSupported();
46
+ }
47
+
48
+ /**
49
+ * Sign in using FedCM (Federated Credential Management API)
50
+ *
51
+ * This provides a Google-style authentication experience:
52
+ * - Browser shows native "Sign in with Oxy" prompt
53
+ * - No redirect or popup required
54
+ * - User approves → credential exchange happens in browser
55
+ * - All apps automatically get SSO after first sign-in
56
+ *
57
+ * @param options - Authentication options
58
+ * @returns Session with access token and user data
59
+ * @throws {OxyAuthenticationError} If FedCM not supported or user cancels
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * try {
64
+ * const session = await oxyServices.signInWithFedCM();
65
+ * console.log('Signed in:', session.user);
66
+ * } catch (error) {
67
+ * // Fallback to popup or redirect auth
68
+ * await oxyServices.signInWithPopup();
69
+ * }
70
+ * ```
71
+ */
72
+ async signInWithFedCM(options = {}) {
73
+ if (!this.isFedCMSupported()) {
74
+ throw new OxyAuthenticationError('FedCM not supported in this browser. Please update your browser or use an alternative sign-in method.');
75
+ }
76
+ try {
77
+ const nonce = options.nonce || this.generateNonce();
78
+ const clientId = this.getClientId();
79
+
80
+ // Request credential from browser's native identity flow
81
+ const credential = await this.requestIdentityCredential({
82
+ configURL: this.constructor.DEFAULT_CONFIG_URL,
83
+ clientId,
84
+ nonce,
85
+ context: options.context
86
+ });
87
+ if (!credential || !credential.token) {
88
+ throw new OxyAuthenticationError('No credential received from browser');
89
+ }
90
+
91
+ // Exchange FedCM ID token for Oxy session
92
+ const session = await this.exchangeIdTokenForSession(credential.token);
93
+
94
+ // Store access token in HttpService (extract from response or get from session)
95
+ if (session && session.accessToken) {
96
+ this.httpService.setTokens(session.accessToken);
97
+ }
98
+ return session;
99
+ } catch (error) {
100
+ if (error.name === 'AbortError') {
101
+ throw new OxyAuthenticationError('Sign-in was cancelled by user');
102
+ }
103
+ if (error.name === 'NetworkError') {
104
+ throw new OxyAuthenticationError('Network error during sign-in. Please check your connection.');
105
+ }
106
+ throw error;
107
+ }
108
+ }
109
+
110
+ /**
111
+ * Silent sign-in using FedCM
112
+ *
113
+ * Attempts to automatically re-authenticate the user without any UI.
114
+ * This is what enables "instant sign-in" across all Oxy domains after
115
+ * the user has signed in once.
116
+ *
117
+ * The browser will:
118
+ * 1. Check if user has previously signed in to Oxy
119
+ * 2. Check if user is still signed in at auth.oxy.so
120
+ * 3. If yes, automatically provide credential without prompting
121
+ *
122
+ * @returns Session if user is already signed in, null otherwise
123
+ *
124
+ * @example
125
+ * ```typescript
126
+ * // On app startup
127
+ * useEffect(() => {
128
+ * const checkAuth = async () => {
129
+ * const session = await oxyServices.silentSignInWithFedCM();
130
+ * if (session) {
131
+ * setUser(session.user);
132
+ * } else {
133
+ * // Show sign-in button
134
+ * }
135
+ * };
136
+ * checkAuth();
137
+ * }, []);
138
+ * ```
139
+ */
140
+ async silentSignInWithFedCM() {
141
+ if (!this.isFedCMSupported()) {
142
+ return null;
143
+ }
144
+ try {
145
+ const nonce = this.generateNonce();
146
+ const clientId = this.getClientId();
147
+
148
+ // Request credential with silent mediation (no UI)
149
+ const credential = await this.requestIdentityCredential({
150
+ configURL: this.constructor.DEFAULT_CONFIG_URL,
151
+ clientId,
152
+ nonce,
153
+ mediation: 'silent'
154
+ });
155
+ if (!credential || !credential.token) {
156
+ return null;
157
+ }
158
+ const session = await this.exchangeIdTokenForSession(credential.token);
159
+ if (session && session.accessToken) {
160
+ this.httpService.setTokens(session.accessToken);
161
+ }
162
+ return session;
163
+ } catch (error) {
164
+ // Silent failures are expected and should not throw
165
+ return null;
166
+ }
167
+ }
168
+
169
+ /**
170
+ * Request identity credential from browser using FedCM API
171
+ *
172
+ * @private
173
+ */
174
+ async requestIdentityCredential(options) {
175
+ const controller = new AbortController();
176
+ const timeout = setTimeout(() => controller.abort(), this.constructor.FEDCM_TIMEOUT);
177
+ try {
178
+ // Type assertion needed as FedCM types may not be in all TypeScript versions
179
+ const credential = await navigator.credentials.get({
180
+ identity: {
181
+ providers: [{
182
+ configURL: options.configURL,
183
+ clientId: options.clientId,
184
+ nonce: options.nonce,
185
+ ...(options.context && {
186
+ loginHint: options.context
187
+ })
188
+ }]
189
+ },
190
+ mediation: options.mediation || 'optional',
191
+ signal: controller.signal
192
+ });
193
+ if (!credential || credential.type !== 'identity') {
194
+ return null;
195
+ }
196
+ return {
197
+ token: credential.token
198
+ };
199
+ } finally {
200
+ clearTimeout(timeout);
201
+ }
202
+ }
203
+
204
+ /**
205
+ * Exchange FedCM ID token for Oxy session
206
+ *
207
+ * The ID token is a JWT issued by auth.oxy.so that proves the user's
208
+ * identity. We exchange it for a full Oxy session with access token.
209
+ *
210
+ * @private
211
+ */
212
+ async exchangeIdTokenForSession(idToken) {
213
+ return this.makeRequest('POST', '/api/auth/fedcm/exchange', {
214
+ id_token: idToken
215
+ }, {
216
+ cache: false
217
+ });
218
+ }
219
+
220
+ /**
221
+ * Revoke FedCM credential (sign out)
222
+ *
223
+ * This tells the browser to forget the FedCM credential for this app.
224
+ * The user will need to re-authenticate next time.
225
+ */
226
+ async revokeFedCMCredential() {
227
+ if (!this.isFedCMSupported()) {
228
+ return;
229
+ }
230
+ try {
231
+ // FedCM logout API (if available)
232
+ if ('IdentityCredential' in window && 'logout' in window.IdentityCredential) {
233
+ const clientId = this.getClientId();
234
+ await window.IdentityCredential.logout({
235
+ configURL: this.constructor.DEFAULT_CONFIG_URL,
236
+ clientId
237
+ });
238
+ }
239
+ } catch (error) {
240
+ // Silent failure
241
+ }
242
+ }
243
+
244
+ /**
245
+ * Get configuration for FedCM
246
+ *
247
+ * @returns FedCM configuration with browser support info
248
+ */
249
+ getFedCMConfig() {
250
+ return {
251
+ enabled: this.isFedCMSupported(),
252
+ configURL: this.constructor.DEFAULT_CONFIG_URL,
253
+ clientId: this.getClientId()
254
+ };
255
+ }
256
+
257
+ /**
258
+ * Generate a cryptographically secure nonce for FedCM
259
+ *
260
+ * @private
261
+ */
262
+ generateNonce() {
263
+ if (typeof window !== 'undefined' && window.crypto && window.crypto.randomUUID) {
264
+ return window.crypto.randomUUID();
265
+ }
266
+ // Fallback for older browsers
267
+ return `${Date.now()}-${Math.random().toString(36).substring(2, 15)}`;
268
+ }
269
+
270
+ /**
271
+ * Get the client ID for this origin
272
+ *
273
+ * @private
274
+ */
275
+ getClientId() {
276
+ if (typeof window === 'undefined') {
277
+ return 'unknown';
278
+ }
279
+ return window.location.origin;
280
+ }
281
+ };
282
+ }
283
+
284
+ // Export the mixin function as both named and default
285
+ export { OxyServicesFedCMMixin as FedCMMixin };
286
+ //# sourceMappingURL=OxyServices.fedcm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["OxyAuthenticationError","OxyServicesFedCMMixin","Base","constructor","args","DEFAULT_CONFIG_URL","FEDCM_TIMEOUT","isFedCMSupported","window","navigator","signInWithFedCM","options","nonce","generateNonce","clientId","getClientId","credential","requestIdentityCredential","configURL","context","token","session","exchangeIdTokenForSession","accessToken","httpService","setTokens","error","name","silentSignInWithFedCM","mediation","controller","AbortController","timeout","setTimeout","abort","credentials","get","identity","providers","loginHint","signal","type","clearTimeout","idToken","makeRequest","id_token","cache","revokeFedCMCredential","IdentityCredential","logout","getFedCMConfig","enabled","crypto","randomUUID","Date","now","Math","random","toString","substring","location","origin","FedCMMixin"],"sourceRoot":"../../../../src","sources":["core/mixins/OxyServices.fedcm.ts"],"mappings":"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","ignoreList":[]}