@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,229 @@
1
+ /**
2
+ * Features Methods Mixin
3
+ *
4
+ * Provides methods for various features:
5
+ * - Feedback submission
6
+ * - Subscription plans
7
+ * - Saves/Collections
8
+ * - User history
9
+ * - FAQ
10
+ * - User stats
11
+ * - Achievements
12
+ */
13
+ import type { OxyServicesBase } from '../OxyServices.base';
14
+ export interface FeedbackPayload {
15
+ type: 'bug' | 'feature' | 'general' | 'support';
16
+ title: string;
17
+ description: string;
18
+ priority: 'low' | 'medium' | 'high' | 'critical';
19
+ category: string;
20
+ contactEmail?: string;
21
+ systemInfo?: {
22
+ platform: string;
23
+ version: string;
24
+ appVersion: string;
25
+ userId?: string;
26
+ username?: string;
27
+ timestamp: string;
28
+ };
29
+ }
30
+ export interface FeedbackResult {
31
+ id: string;
32
+ status: string;
33
+ createdAt: string;
34
+ }
35
+ export interface SubscriptionPlan {
36
+ id: string;
37
+ name: string;
38
+ description: string;
39
+ price: number;
40
+ currency: string;
41
+ interval: 'month' | 'year';
42
+ features: string[];
43
+ }
44
+ export interface SubscriptionResult {
45
+ subscriptionId: string;
46
+ status: string;
47
+ currentPeriodEnd: string;
48
+ }
49
+ export interface SavedItem {
50
+ id: string;
51
+ itemId: string;
52
+ itemType: string;
53
+ title: string;
54
+ createdAt: string;
55
+ }
56
+ export interface Collection {
57
+ id: string;
58
+ name: string;
59
+ description?: string;
60
+ itemCount: number;
61
+ createdAt: string;
62
+ }
63
+ export interface UserStats {
64
+ postCount: number;
65
+ commentCount: number;
66
+ followerCount: number;
67
+ followingCount: number;
68
+ karmaScore?: number;
69
+ }
70
+ export interface HistoryItem {
71
+ id: string;
72
+ type: string;
73
+ title: string;
74
+ timestamp: string;
75
+ metadata?: Record<string, any>;
76
+ }
77
+ export interface FAQ {
78
+ id: string;
79
+ question: string;
80
+ answer: string;
81
+ category: string;
82
+ }
83
+ export interface Achievement {
84
+ id: string;
85
+ name: string;
86
+ description: string;
87
+ icon: string;
88
+ unlockedAt?: string;
89
+ }
90
+ export declare function OxyServicesFeaturesMixin<T extends typeof OxyServicesBase>(Base: T): {
91
+ new (...args: any[]): {
92
+ /**
93
+ * Submit user feedback
94
+ */
95
+ submitFeedback(payload: FeedbackPayload): Promise<FeedbackResult>;
96
+ /**
97
+ * Get available subscription plans
98
+ */
99
+ getSubscriptionPlans(): Promise<SubscriptionPlan[]>;
100
+ /**
101
+ * Get individual purchasable features
102
+ */
103
+ getIndividualFeatures(): Promise<any[]>;
104
+ /**
105
+ * Subscribe to a plan
106
+ */
107
+ subscribe(planId: string, paymentMethodId?: string): Promise<SubscriptionResult>;
108
+ /**
109
+ * Subscribe to an individual feature
110
+ */
111
+ subscribeToFeature(featureId: string, paymentMethodId?: string): Promise<SubscriptionResult>;
112
+ /**
113
+ * Cancel subscription
114
+ */
115
+ cancelSubscription(subscriptionId: string): Promise<void>;
116
+ /**
117
+ * Reactivate subscription
118
+ */
119
+ reactivateSubscription(subscriptionId: string): Promise<void>;
120
+ /**
121
+ * Get current user's subscription
122
+ */
123
+ getCurrentSubscription(): Promise<SubscriptionResult | null>;
124
+ /**
125
+ * Get user's saved items
126
+ */
127
+ getSavedItems(userId?: string): Promise<SavedItem[]>;
128
+ /**
129
+ * Get user's collections
130
+ */
131
+ getCollections(userId?: string): Promise<Collection[]>;
132
+ /**
133
+ * Save an item
134
+ */
135
+ saveItem(itemId: string, itemType: string, collectionId?: string): Promise<SavedItem>;
136
+ /**
137
+ * Remove an item from saves
138
+ */
139
+ removeSavedItem(saveId: string): Promise<void>;
140
+ /**
141
+ * Create a collection
142
+ */
143
+ createCollection(name: string, description?: string): Promise<Collection>;
144
+ /**
145
+ * Delete a collection
146
+ */
147
+ deleteCollection(collectionId: string): Promise<void>;
148
+ /**
149
+ * Get user statistics
150
+ */
151
+ getUserStats(userId: string): Promise<UserStats>;
152
+ /**
153
+ * Get user history
154
+ */
155
+ getUserHistory(userId?: string, limit?: number, offset?: number): Promise<HistoryItem[]>;
156
+ /**
157
+ * Clear user history
158
+ */
159
+ clearUserHistory(): Promise<void>;
160
+ /**
161
+ * Delete a history item
162
+ */
163
+ deleteHistoryItem(itemId: string): Promise<void>;
164
+ /**
165
+ * Get FAQs
166
+ */
167
+ getFAQs(category?: string): Promise<FAQ[]>;
168
+ /**
169
+ * Search FAQs
170
+ */
171
+ searchFAQs(query: string): Promise<FAQ[]>;
172
+ /**
173
+ * Get user achievements
174
+ */
175
+ getUserAchievements(userId?: string): Promise<Achievement[]>;
176
+ /**
177
+ * Get all available achievements
178
+ */
179
+ getAllAchievements(): Promise<Achievement[]>;
180
+ /**
181
+ * Delete user account (requires password confirmation)
182
+ */
183
+ deleteAccount(password: string): Promise<void>;
184
+ httpService: import("../HttpService").HttpService;
185
+ cloudURL: string;
186
+ config: import("../OxyServices.base").OxyConfig;
187
+ makeRequest<T_1>(method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE", url: string, data?: any, options?: import("../HttpService").RequestOptions): Promise<T_1>;
188
+ getBaseURL(): string;
189
+ getClient(): import("../HttpService").HttpService;
190
+ getMetrics(): {
191
+ totalRequests: number;
192
+ successfulRequests: number;
193
+ failedRequests: number;
194
+ cacheHits: number;
195
+ cacheMisses: number;
196
+ averageResponseTime: number;
197
+ };
198
+ clearCache(): void;
199
+ clearCacheEntry(key: string): void;
200
+ getCacheStats(): {
201
+ size: number;
202
+ hits: number;
203
+ misses: number;
204
+ hitRate: number;
205
+ };
206
+ getCloudURL(): string;
207
+ setTokens(accessToken: string, refreshToken?: string): void;
208
+ clearTokens(): void;
209
+ getCurrentUserId(): string | null;
210
+ hasValidToken(): boolean;
211
+ getAccessToken(): string | null;
212
+ waitForAuth(timeoutMs?: number): Promise<boolean>;
213
+ withAuthRetry<T_1>(operation: () => Promise<T_1>, operationName: string, options?: {
214
+ maxRetries?: number;
215
+ retryDelay?: number;
216
+ authTimeoutMs?: number;
217
+ }): Promise<T_1>;
218
+ validate(): Promise<boolean>;
219
+ handleError(error: unknown): Error;
220
+ healthCheck(): Promise<{
221
+ status: string;
222
+ users?: number;
223
+ timestamp?: string;
224
+ [key: string]: any;
225
+ }>;
226
+ };
227
+ __resetTokensForTests(): void;
228
+ } & T;
229
+ //# sourceMappingURL=OxyServices.features.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OxyServices.features.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.features.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,195 @@
1
+ import type { OxyServicesBase } from '../OxyServices.base';
2
+ import type { SessionLoginResponse } from '../../models/session';
3
+ export interface FedCMAuthOptions {
4
+ nonce?: string;
5
+ context?: 'signin' | 'signup' | 'continue' | 'use';
6
+ }
7
+ export interface FedCMConfig {
8
+ enabled: boolean;
9
+ configURL: string;
10
+ clientId?: string;
11
+ }
12
+ /**
13
+ * Federated Credential Management (FedCM) Authentication Mixin
14
+ *
15
+ * Implements the modern browser-native identity federation API that enables
16
+ * Google-style cross-domain authentication without third-party cookies.
17
+ *
18
+ * Browser Support:
19
+ * - Chrome 108+
20
+ * - Safari 16.4+
21
+ * - Edge 108+
22
+ * - Firefox: Not yet supported (fallback required)
23
+ *
24
+ * Key Features:
25
+ * - No redirects or popups required
26
+ * - Browser-native UI prompts
27
+ * - Privacy-preserving (IdP can't track users)
28
+ * - Automatic SSO across domains
29
+ * - Silent re-authentication support
30
+ *
31
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/FedCM_API
32
+ */
33
+ export declare function OxyServicesFedCMMixin<T extends typeof OxyServicesBase>(Base: T): {
34
+ new (...args: any[]): {
35
+ /**
36
+ * Instance method to check FedCM support
37
+ */
38
+ isFedCMSupported(): boolean;
39
+ /**
40
+ * Sign in using FedCM (Federated Credential Management API)
41
+ *
42
+ * This provides a Google-style authentication experience:
43
+ * - Browser shows native "Sign in with Oxy" prompt
44
+ * - No redirect or popup required
45
+ * - User approves → credential exchange happens in browser
46
+ * - All apps automatically get SSO after first sign-in
47
+ *
48
+ * @param options - Authentication options
49
+ * @returns Session with access token and user data
50
+ * @throws {OxyAuthenticationError} If FedCM not supported or user cancels
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * try {
55
+ * const session = await oxyServices.signInWithFedCM();
56
+ * console.log('Signed in:', session.user);
57
+ * } catch (error) {
58
+ * // Fallback to popup or redirect auth
59
+ * await oxyServices.signInWithPopup();
60
+ * }
61
+ * ```
62
+ */
63
+ signInWithFedCM(options?: FedCMAuthOptions): Promise<SessionLoginResponse>;
64
+ /**
65
+ * Silent sign-in using FedCM
66
+ *
67
+ * Attempts to automatically re-authenticate the user without any UI.
68
+ * This is what enables "instant sign-in" across all Oxy domains after
69
+ * the user has signed in once.
70
+ *
71
+ * The browser will:
72
+ * 1. Check if user has previously signed in to Oxy
73
+ * 2. Check if user is still signed in at auth.oxy.so
74
+ * 3. If yes, automatically provide credential without prompting
75
+ *
76
+ * @returns Session if user is already signed in, null otherwise
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * // On app startup
81
+ * useEffect(() => {
82
+ * const checkAuth = async () => {
83
+ * const session = await oxyServices.silentSignInWithFedCM();
84
+ * if (session) {
85
+ * setUser(session.user);
86
+ * } else {
87
+ * // Show sign-in button
88
+ * }
89
+ * };
90
+ * checkAuth();
91
+ * }, []);
92
+ * ```
93
+ */
94
+ silentSignInWithFedCM(): Promise<SessionLoginResponse | null>;
95
+ /**
96
+ * Request identity credential from browser using FedCM API
97
+ *
98
+ * @private
99
+ */
100
+ requestIdentityCredential(options: {
101
+ configURL: string;
102
+ clientId: string;
103
+ nonce: string;
104
+ context?: string;
105
+ mediation?: "silent" | "optional" | "required";
106
+ }): Promise<{
107
+ token: string;
108
+ } | null>;
109
+ /**
110
+ * Exchange FedCM ID token for Oxy session
111
+ *
112
+ * The ID token is a JWT issued by auth.oxy.so that proves the user's
113
+ * identity. We exchange it for a full Oxy session with access token.
114
+ *
115
+ * @private
116
+ */
117
+ exchangeIdTokenForSession(idToken: string): Promise<SessionLoginResponse>;
118
+ /**
119
+ * Revoke FedCM credential (sign out)
120
+ *
121
+ * This tells the browser to forget the FedCM credential for this app.
122
+ * The user will need to re-authenticate next time.
123
+ */
124
+ revokeFedCMCredential(): Promise<void>;
125
+ /**
126
+ * Get configuration for FedCM
127
+ *
128
+ * @returns FedCM configuration with browser support info
129
+ */
130
+ getFedCMConfig(): FedCMConfig;
131
+ /**
132
+ * Generate a cryptographically secure nonce for FedCM
133
+ *
134
+ * @private
135
+ */
136
+ generateNonce(): string;
137
+ /**
138
+ * Get the client ID for this origin
139
+ *
140
+ * @private
141
+ */
142
+ getClientId(): string;
143
+ httpService: import("../HttpService").HttpService;
144
+ cloudURL: string;
145
+ config: import("../OxyServices.base").OxyConfig;
146
+ makeRequest<T_1>(method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE", url: string, data?: any, options?: import("../HttpService").RequestOptions): Promise<T_1>;
147
+ getBaseURL(): string;
148
+ getClient(): import("../HttpService").HttpService;
149
+ getMetrics(): {
150
+ totalRequests: number;
151
+ successfulRequests: number;
152
+ failedRequests: number;
153
+ cacheHits: number;
154
+ cacheMisses: number;
155
+ averageResponseTime: number;
156
+ };
157
+ clearCache(): void;
158
+ clearCacheEntry(key: string): void;
159
+ getCacheStats(): {
160
+ size: number;
161
+ hits: number;
162
+ misses: number;
163
+ hitRate: number;
164
+ };
165
+ getCloudURL(): string;
166
+ setTokens(accessToken: string, refreshToken?: string): void;
167
+ clearTokens(): void;
168
+ getCurrentUserId(): string | null;
169
+ hasValidToken(): boolean;
170
+ getAccessToken(): string | null;
171
+ waitForAuth(timeoutMs?: number): Promise<boolean>;
172
+ withAuthRetry<T_1>(operation: () => Promise<T_1>, operationName: string, options?: {
173
+ maxRetries?: number;
174
+ retryDelay?: number;
175
+ authTimeoutMs?: number;
176
+ }): Promise<T_1>;
177
+ validate(): Promise<boolean>;
178
+ handleError(error: unknown): Error;
179
+ healthCheck(): Promise<{
180
+ status: string;
181
+ users?: number;
182
+ timestamp?: string;
183
+ [key: string]: any;
184
+ }>;
185
+ };
186
+ readonly DEFAULT_CONFIG_URL: "https://auth.oxy.so/fedcm.json";
187
+ readonly FEDCM_TIMEOUT: 60000;
188
+ /**
189
+ * Check if FedCM is supported in the current browser
190
+ */
191
+ isFedCMSupported(): boolean;
192
+ __resetTokensForTests(): void;
193
+ } & T;
194
+ export { OxyServicesFedCMMixin as FedCMMixin };
195
+ //# sourceMappingURL=OxyServices.fedcm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OxyServices.fedcm.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.fedcm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,KAAK,CAAC;CACpD;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAEtD,GAAG,EAAE;QAc5B;;WAEG;4BACiB,OAAO;QAI3B;;;;;;;;;;;;;;;;;;;;;;;WAuBG;kCAC4B,gBAAgB,GAAQ,OAAO,CAAC,oBAAoB,CAAC;QA2CpF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA6BG;iCAC4B,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;QAiCnE;;;;WAIG;2CAC6C;YAC9C,SAAS,EAAE,MAAM,CAAC;YAClB,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,SAAS,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC;SAChD,GAAG,OAAO,CAAC;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;QA+BrC;;;;;;;WAOG;2CAC6C,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;QAStF;;;;;WAKG;iCAC4B,OAAO,CAAC,IAAI,CAAC;QAmB5C;;;;WAIG;0BACe,WAAW;QAQ7B;;;;WAIG;yBACqB,MAAM;QAQ9B;;;;WAIG;uBACmB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAhH3B,CAAF;sBAEM,CAAC;yBAA6B,CAAC;;;;;;iBAgH/B,CAAC;qBAEJ,CAAD;;;;iCA3Q2C,gCAAgC;4BACrC,KAAK;IAE5C;;OAEG;wBACwB,OAAO;;MAwQnC;AAGD,OAAO,EAAE,qBAAqB,IAAI,UAAU,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"OxyServices.karma.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.karma.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAEtD,GAAG,EAAE;QAG1B;;WAEG;6BACwB,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QAWhD;;WAEG;0BACqB,MAAM,UAAU,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QAW9E;;;;WAIG;kCAC6B,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QAWrD;;;;;;WAMG;oCAC+B,MAAM,UAAU,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QAexF;;;WAGG;+BAC0B,OAAO,CAAC,GAAG,CAAC;QAWzC;;;WAGG;yBACoB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAa6pF,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAuhG,CAAC;qBAAwB,CAAC;;;;;MAF9yL"}
1
+ {"version":3,"file":"OxyServices.karma.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.karma.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAEtD,GAAG,EAAE;QAG1B;;WAEG;6BACwB,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QAWhD;;WAEG;0BACqB,MAAM,UAAU,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QAW9E;;;;WAIG;kCAC6B,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QAWrD;;;;;;WAMG;oCAC+B,MAAM,UAAU,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QAexF;;;WAGG;+BAC0B,OAAO,CAAC,GAAG,CAAC;QAWzC;;;WAGG;yBACoB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAa87F,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAuhG,CAAC;qBAAwB,CAAC;;;;;MAF/kM"}
@@ -1 +1 @@
1
- {"version":3,"file":"OxyServices.language.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.language.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAEzD,GAAG,EAAE;QAG1B;;WAEG;sBACwB,OAAO,CAAC;YACjC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;YACjD,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;YACvD,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;SAC5C,CAAC;QAuCF;;;;WAIG;8CACwC,MAAM,GAAmB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;QA8B1F;;;;WAIG;sDACgD,MAAM,GAAmB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAK5G;;;;WAIG;kDAC4C,MAAM,GAAmB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;QAM9F;;;;WAIG;wDACkD,MAAM,GAAmB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAQqkB,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAuhG,CAAC;qBAAwB,CAAC;;;;;MAFvxH"}
1
+ {"version":3,"file":"OxyServices.language.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.language.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAEzD,GAAG,EAAE;QAG1B;;WAEG;sBACwB,OAAO,CAAC;YACjC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;YACjD,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;YACvD,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;SAC5C,CAAC;QAuCF;;;;WAIG;8CACwC,MAAM,GAAmB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;QA8B1F;;;;WAIG;sDACgD,MAAM,GAAmB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAK5G;;;;WAIG;kDAC4C,MAAM,GAAmB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;QAM9F;;;;WAIG;wDACkD,MAAM,GAAmB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAQs2B,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAuhG,CAAC;qBAAwB,CAAC;;;;;MAFxjI"}
@@ -1 +1 @@
1
- {"version":3,"file":"OxyServices.location.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.location.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAEzD,GAAG,EAAE;QAI1B;;;;;WAKG;iCAC4B,MAAM,aAAa,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QAWvE;;;;WAIG;gCAC2B,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAamyI,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAuhG,CAAC;qBAAwB,CAAC;;;;;MAFt8O"}
1
+ {"version":3,"file":"OxyServices.location.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.location.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAEzD,GAAG,EAAE;QAI1B;;;;;WAKG;iCAC4B,MAAM,aAAa,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QAWvE;;;;WAIG;gCAC2B,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAaokJ,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAuhG,CAAC;qBAAwB,CAAC;;;;;MAFvuP"}
@@ -1 +1 @@
1
- {"version":3,"file":"OxyServices.payment.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.payment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAExD,GAAG,EAAE;QAI1B;;;;WAIG;4BACuB,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QAQ5C;;;;WAIG;8BACyB,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QAWjD;;;WAGG;2BACsB,OAAO,CAAC,GAAG,EAAE,CAAC;QAUvC;;;;WAIG;gCAC2B,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QAWnD;;;WAGG;sCACiC,OAAO,CAAC,GAAG,CAAC;QAYhD;;;;WAIG;0BACqB,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QAW7C;;;WAGG;gCAC2B,OAAO,CAAC,GAAG,CAAC;QAY1C;;;;;WAKG;sCACiC,MAAM,YAAY;YAAE,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,GAAG,CAAC;QAiBxG;;;;WAIG;mDAC8C;YAAE,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAcg5B,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAuhG,CAAC;qBAAwB,CAAC;;;;;MAFjmI"}
1
+ {"version":3,"file":"OxyServices.payment.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.payment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAExD,GAAG,EAAE;QAI1B;;;;WAIG;4BACuB,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QAQ5C;;;;WAIG;8BACyB,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QAWjD;;;WAGG;2BACsB,OAAO,CAAC,GAAG,EAAE,CAAC;QAUvC;;;;WAIG;gCAC2B,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QAWnD;;;WAGG;sCACiC,OAAO,CAAC,GAAG,CAAC;QAYhD;;;;WAIG;0BACqB,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QAW7C;;;WAGG;gCAC2B,OAAO,CAAC,GAAG,CAAC;QAY1C;;;;;WAKG;sCACiC,MAAM,YAAY;YAAE,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,GAAG,CAAC;QAiBxG;;;;WAIG;mDAC8C;YAAE,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAcirC,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAuhG,CAAC;qBAAwB,CAAC;;;;;MAFl4I"}
@@ -0,0 +1,206 @@
1
+ import type { OxyServicesBase } from '../OxyServices.base';
2
+ import type { SessionLoginResponse } from '../../models/session';
3
+ export interface PopupAuthOptions {
4
+ width?: number;
5
+ height?: number;
6
+ timeout?: number;
7
+ mode?: 'login' | 'signup';
8
+ }
9
+ export interface SilentAuthOptions {
10
+ timeout?: number;
11
+ }
12
+ /**
13
+ * Popup-based Cross-Domain Authentication Mixin
14
+ *
15
+ * Implements OAuth2-style authentication using popup windows and postMessage.
16
+ * This is the primary authentication method for modern browsers, providing a
17
+ * Google-like experience without full page redirects.
18
+ *
19
+ * Flow:
20
+ * 1. Opens small popup window to auth.oxy.so
21
+ * 2. User signs in (auth.oxy.so sets its own first-party cookie)
22
+ * 3. auth.oxy.so sends token back via postMessage
23
+ * 4. Popup closes, parent app has the session
24
+ *
25
+ * Features:
26
+ * - No full page redirect (preserves app state)
27
+ * - Works across different domains (homiio.com, mention.earth, etc.)
28
+ * - Silent refresh using hidden iframe for seamless SSO
29
+ * - CSRF protection via state parameter
30
+ * - XSS protection via origin validation
31
+ *
32
+ * Browser Support: All modern browsers (IE11+)
33
+ */
34
+ export declare function OxyServicesPopupAuthMixin<T extends typeof OxyServicesBase>(Base: T): {
35
+ new (...args: any[]): {
36
+ /**
37
+ * Sign in using popup window
38
+ *
39
+ * Opens a centered popup window to auth.oxy.so where the user can sign in.
40
+ * The popup automatically closes after successful authentication and the
41
+ * session is returned to the parent window.
42
+ *
43
+ * @param options - Popup configuration options
44
+ * @returns Session with access token and user data
45
+ * @throws {OxyAuthenticationError} If popup is blocked or auth fails
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * const handleSignIn = async () => {
50
+ * try {
51
+ * const session = await oxyServices.signInWithPopup();
52
+ * console.log('Signed in:', session.user);
53
+ * } catch (error) {
54
+ * if (error.message.includes('blocked')) {
55
+ * alert('Please allow popups for this site');
56
+ * }
57
+ * }
58
+ * };
59
+ * ```
60
+ */
61
+ signInWithPopup(options?: PopupAuthOptions): Promise<SessionLoginResponse>;
62
+ /**
63
+ * Sign up using popup window
64
+ *
65
+ * Same as signInWithPopup but opens the signup page by default.
66
+ *
67
+ * @param options - Popup configuration options
68
+ * @returns Session with access token and user data
69
+ */
70
+ signUpWithPopup(options?: PopupAuthOptions): Promise<SessionLoginResponse>;
71
+ /**
72
+ * Silent sign-in using hidden iframe
73
+ *
74
+ * Attempts to automatically re-authenticate the user without any UI.
75
+ * This is what enables seamless SSO across all Oxy domains.
76
+ *
77
+ * How it works:
78
+ * 1. Creates hidden iframe pointing to auth.oxy.so/silent-auth
79
+ * 2. If user has valid session at auth.oxy.so, it sends token via postMessage
80
+ * 3. If not, iframe responds with null (no error thrown)
81
+ *
82
+ * This should be called on app startup to check for existing sessions.
83
+ *
84
+ * @param options - Silent auth options
85
+ * @returns Session if user is signed in, null otherwise
86
+ *
87
+ * @example
88
+ * ```typescript
89
+ * useEffect(() => {
90
+ * const checkAuth = async () => {
91
+ * const session = await oxyServices.silentSignIn();
92
+ * if (session) {
93
+ * setUser(session.user);
94
+ * }
95
+ * };
96
+ * checkAuth();
97
+ * }, []);
98
+ * ```
99
+ */
100
+ silentSignIn(options?: SilentAuthOptions): Promise<SessionLoginResponse | null>;
101
+ /**
102
+ * Open a centered popup window
103
+ *
104
+ * @private
105
+ */
106
+ openCenteredPopup(url: string, title: string, width: number, height: number): Window | null;
107
+ /**
108
+ * Wait for authentication response from popup
109
+ *
110
+ * @private
111
+ */
112
+ waitForPopupAuth(popup: Window, expectedState: string, timeout: number): Promise<SessionLoginResponse>;
113
+ /**
114
+ * Wait for authentication response from iframe
115
+ *
116
+ * @private
117
+ */
118
+ waitForIframeAuth(iframe: HTMLIFrameElement, timeout: number, expectedOrigin: string): Promise<SessionLoginResponse | null>;
119
+ /**
120
+ * Build authentication URL with query parameters
121
+ *
122
+ * @private
123
+ */
124
+ buildAuthUrl(params: {
125
+ mode: string;
126
+ state: string;
127
+ nonce: string;
128
+ clientId: string;
129
+ redirectUri: string;
130
+ }): string;
131
+ /**
132
+ * Generate cryptographically secure state for CSRF protection
133
+ *
134
+ * @private
135
+ */
136
+ generateState(): string;
137
+ /**
138
+ * Generate nonce for replay attack prevention
139
+ *
140
+ * @private
141
+ */
142
+ generateNonce(): string;
143
+ /**
144
+ * Store auth state in session storage
145
+ *
146
+ * @private
147
+ */
148
+ storeAuthState(state: string, nonce: string): void;
149
+ /**
150
+ * Clear auth state from session storage
151
+ *
152
+ * @private
153
+ */
154
+ clearAuthState(state: string): void;
155
+ httpService: import("../HttpService").HttpService;
156
+ cloudURL: string;
157
+ config: import("../OxyServices.base").OxyConfig;
158
+ makeRequest<T_1>(method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE", url: string, data?: any, options?: import("../HttpService").RequestOptions): Promise<T_1>;
159
+ getBaseURL(): string;
160
+ getClient(): import("../HttpService").HttpService;
161
+ getMetrics(): {
162
+ totalRequests: number;
163
+ successfulRequests: number;
164
+ failedRequests: number;
165
+ cacheHits: number;
166
+ cacheMisses: number;
167
+ averageResponseTime: number;
168
+ };
169
+ clearCache(): void;
170
+ clearCacheEntry(key: string): void;
171
+ getCacheStats(): {
172
+ size: number;
173
+ hits: number;
174
+ misses: number;
175
+ hitRate: number;
176
+ };
177
+ getCloudURL(): string;
178
+ setTokens(accessToken: string, refreshToken?: string): void;
179
+ clearTokens(): void;
180
+ getCurrentUserId(): string | null;
181
+ hasValidToken(): boolean;
182
+ getAccessToken(): string | null;
183
+ waitForAuth(timeoutMs?: number): Promise<boolean>;
184
+ withAuthRetry<T_1>(operation: () => Promise<T_1>, operationName: string, options?: {
185
+ maxRetries?: number;
186
+ retryDelay?: number;
187
+ authTimeoutMs?: number;
188
+ }): Promise<T_1>;
189
+ validate(): Promise<boolean>;
190
+ handleError(error: unknown): Error;
191
+ healthCheck(): Promise<{
192
+ status: string;
193
+ users?: number;
194
+ timestamp?: string;
195
+ [key: string]: any;
196
+ }>;
197
+ };
198
+ readonly AUTH_URL: "https://auth.oxy.so";
199
+ readonly POPUP_WIDTH: 500;
200
+ readonly POPUP_HEIGHT: 700;
201
+ readonly POPUP_TIMEOUT: 60000;
202
+ readonly SILENT_TIMEOUT: 5000;
203
+ __resetTokensForTests(): void;
204
+ } & T;
205
+ export { OxyServicesPopupAuthMixin as PopupAuthMixin };
206
+ //# sourceMappingURL=OxyServices.popup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OxyServices.popup.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.popup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAE1D,GAAG,EAAE;QAS5B;;;;;;;;;;;;;;;;;;;;;;;;WAwBG;kCAC4B,gBAAgB,GAAQ,OAAO,CAAC,oBAAoB,CAAC;QAgDpF;;;;;;;WAOG;kCAC4B,gBAAgB,GAAQ,OAAO,CAAC,oBAAoB,CAAC;QAIpF;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA4BG;+BACyB,iBAAiB,GAAQ,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;QAoCzF;;;;WAIG;+BAC2B,MAAM,SAAS,MAAM,SAAS,MAAM,UAAU,MAAM,GAAG,MAAM,GAAG,IAAI;QAoBlG;;;;WAIG;gCAEM,MAAM,iBACE,MAAM,WACZ,MAAM,GACd,OAAO,CAAC,oBAAoB,CAAC;QA0DhC;;;;WAIG;kCAEO,iBAAiB,WAChB,MAAM,kBACC,MAAM,GACrB,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;QAgCvC;;;;WAIG;6BACyB;YAC1B,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,KAAK,EAAE,MAAM,CAAC;YACd,QAAQ,EAAE,MAAM,CAAC;YACjB,WAAW,EAAE,MAAM,CAAC;SACrB,GAAG,MAAM;QAUV;;;;WAIG;yBACqB,MAAM;QAO9B;;;;WAIG;yBACqB,MAAM;QAO9B;;;;WAIG;8BAC0B,MAAM,SAAS,MAAM,GAAG,IAAI;QAMzD;;;;WAIG;8BAC0B,MAAM,GAAG,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAhND,CAAC;sBAA0B,CAAC;yBAElD,CAAA;;;;;;iBAsHf,CAAH;qBAEI,CAAC;;;;uBAxQ4B,qBAAqB;0BAClB,GAAG;2BACF,GAAG;4BACF,KAAK;6BACJ,IAAI;;MAgW7C;AAGD,OAAO,EAAE,yBAAyB,IAAI,cAAc,EAAE,CAAC"}