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