@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.
- package/README.md +32 -38
- package/lib/commonjs/core/CrossDomainAuth.js +277 -0
- package/lib/commonjs/core/CrossDomainAuth.js.map +1 -0
- package/lib/commonjs/core/HttpService.js +82 -15
- package/lib/commonjs/core/HttpService.js.map +1 -1
- package/lib/commonjs/core/OxyServices.base.js +11 -3
- package/lib/commonjs/core/OxyServices.base.js.map +1 -1
- package/lib/commonjs/core/OxyServices.js +4 -1
- package/lib/commonjs/core/OxyServices.js.map +1 -1
- package/lib/commonjs/core/index.js +30 -0
- package/lib/commonjs/core/index.js.map +1 -1
- package/lib/commonjs/core/mixins/OxyServices.assets.js +16 -3
- package/lib/commonjs/core/mixins/OxyServices.assets.js.map +1 -1
- package/lib/commonjs/core/mixins/OxyServices.auth.js +73 -32
- package/lib/commonjs/core/mixins/OxyServices.auth.js.map +1 -1
- package/lib/commonjs/core/mixins/OxyServices.features.js +372 -0
- package/lib/commonjs/core/mixins/OxyServices.features.js.map +1 -0
- package/lib/commonjs/core/mixins/OxyServices.fedcm.js +289 -0
- package/lib/commonjs/core/mixins/OxyServices.fedcm.js.map +1 -0
- package/lib/commonjs/core/mixins/OxyServices.popup.js +352 -0
- package/lib/commonjs/core/mixins/OxyServices.popup.js.map +1 -0
- package/lib/commonjs/core/mixins/OxyServices.redirect.js +378 -0
- package/lib/commonjs/core/mixins/OxyServices.redirect.js.map +1 -0
- package/lib/commonjs/core/mixins/OxyServices.user.js +35 -24
- package/lib/commonjs/core/mixins/OxyServices.user.js.map +1 -1
- package/lib/commonjs/core/mixins/index.js +28 -15
- package/lib/commonjs/core/mixins/index.js.map +1 -1
- package/lib/commonjs/crypto/index.js +30 -0
- package/lib/commonjs/crypto/index.js.map +1 -1
- package/lib/commonjs/crypto/keyManager.js +902 -0
- package/lib/commonjs/crypto/keyManager.js.map +1 -0
- package/lib/commonjs/crypto/polyfill.js +14 -5
- package/lib/commonjs/crypto/polyfill.js.map +1 -1
- package/lib/commonjs/crypto/recoveryPhrase.js +152 -0
- package/lib/commonjs/crypto/recoveryPhrase.js.map +1 -0
- package/lib/commonjs/crypto/signatureService.js +289 -0
- package/lib/commonjs/crypto/signatureService.js.map +1 -0
- package/lib/commonjs/i18n/locales/en-US.json +1 -1
- package/lib/commonjs/index.js +40 -26
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/interfaces.js +0 -15
- package/lib/commonjs/models/interfaces.js.map +1 -1
- package/lib/commonjs/ui/components/BottomSheetRouter.js +9 -1
- package/lib/commonjs/ui/components/BottomSheetRouter.js.map +1 -1
- package/lib/commonjs/ui/components/GroupedItem.js +11 -1
- package/lib/commonjs/ui/components/GroupedItem.js.map +1 -1
- package/lib/commonjs/ui/components/Icon.js.map +1 -1
- package/lib/commonjs/ui/components/IconButton/utils.js.map +1 -1
- package/lib/commonjs/ui/components/OxyProvider.js +41 -11
- package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
- package/lib/commonjs/ui/components/SettingRow.js +17 -4
- package/lib/commonjs/ui/components/SettingRow.js.map +1 -1
- package/lib/commonjs/ui/components/TextField/Adornment/utils.js.map +1 -1
- package/lib/commonjs/ui/components/TextField/helpers.js.map +1 -1
- package/lib/commonjs/ui/components/TouchableRipple/utils.js.map +1 -1
- package/lib/commonjs/ui/components/Typography/AnimatedText.js.map +1 -1
- package/lib/commonjs/ui/components/feedback/FormInput.js +72 -0
- package/lib/commonjs/ui/components/feedback/FormInput.js.map +1 -0
- package/lib/commonjs/ui/components/feedback/ProgressIndicator.js +33 -0
- package/lib/commonjs/ui/components/feedback/ProgressIndicator.js.map +1 -0
- package/lib/commonjs/ui/components/feedback/constants.js +59 -0
- package/lib/commonjs/ui/components/feedback/constants.js.map +1 -0
- package/lib/commonjs/ui/components/feedback/feedbackStyles.js +262 -0
- package/lib/commonjs/ui/components/feedback/feedbackStyles.js.map +1 -0
- package/lib/commonjs/ui/components/feedback/index.js +54 -0
- package/lib/commonjs/ui/components/feedback/index.js.map +1 -0
- package/lib/commonjs/ui/components/feedback/types.js +6 -0
- package/lib/commonjs/ui/components/feedback/types.js.map +1 -0
- package/lib/commonjs/ui/components/feedback/useFeedbackForm.js +52 -0
- package/lib/commonjs/ui/components/feedback/useFeedbackForm.js.map +1 -0
- package/lib/commonjs/ui/components/modals/DeleteAccountModal.js +282 -0
- package/lib/commonjs/ui/components/modals/DeleteAccountModal.js.map +1 -0
- package/lib/commonjs/ui/components/modals/index.js +14 -0
- package/lib/commonjs/ui/components/modals/index.js.map +1 -0
- package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js +309 -0
- package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js.map +1 -0
- package/lib/commonjs/ui/components/payment/PaymentMethodStep.js +79 -0
- package/lib/commonjs/ui/components/payment/PaymentMethodStep.js.map +1 -0
- package/lib/commonjs/ui/components/payment/PaymentReviewStep.js +108 -0
- package/lib/commonjs/ui/components/payment/PaymentReviewStep.js.map +1 -0
- package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js +79 -0
- package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js.map +1 -0
- package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js +176 -0
- package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js.map +1 -0
- package/lib/commonjs/ui/components/payment/constants.js +53 -0
- package/lib/commonjs/ui/components/payment/constants.js.map +1 -0
- package/lib/commonjs/ui/components/payment/index.js +80 -0
- package/lib/commonjs/ui/components/payment/index.js.map +1 -0
- package/lib/commonjs/ui/components/payment/paymentStyles.js +409 -0
- package/lib/commonjs/ui/components/payment/paymentStyles.js.map +1 -0
- package/lib/commonjs/ui/components/payment/types.js +6 -0
- package/lib/commonjs/ui/components/payment/types.js.map +1 -0
- package/lib/commonjs/ui/context/OxyContext.js +110 -199
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js +150 -19
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useSessionManagement.js +279 -0
- package/lib/commonjs/ui/context/hooks/useSessionManagement.js.map +1 -0
- package/lib/commonjs/ui/hooks/index.js +26 -0
- package/lib/commonjs/ui/hooks/index.js.map +1 -1
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +79 -72
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +38 -51
- package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js +3 -3
- package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +18 -12
- package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
- package/lib/commonjs/ui/hooks/useAsyncAction.js +95 -0
- package/lib/commonjs/ui/hooks/useAsyncAction.js.map +1 -0
- package/lib/commonjs/ui/hooks/useProfileEditing.js +3 -5
- package/lib/commonjs/ui/hooks/useProfileEditing.js.map +1 -1
- package/lib/commonjs/ui/hooks/useSessionManagement.js +4 -8
- package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/commonjs/ui/hooks/useSessionSocket.js +162 -315
- package/lib/commonjs/ui/hooks/useSessionSocket.js.map +1 -1
- package/lib/commonjs/ui/hooks/useSettingToggle.js +126 -0
- package/lib/commonjs/ui/hooks/useSettingToggle.js.map +1 -0
- package/lib/commonjs/ui/hooks/useStorage.js +24 -58
- package/lib/commonjs/ui/hooks/useStorage.js.map +1 -1
- package/lib/commonjs/ui/index.js +50 -21
- package/lib/commonjs/ui/index.js.map +1 -1
- package/lib/commonjs/ui/navigation/routes.js +6 -1
- package/lib/commonjs/ui/navigation/routes.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountCenterScreen.js +6 -4
- package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountOverviewScreen.js +33 -30
- package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js +29 -24
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +3 -3
- package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/FAQScreen.js +315 -0
- package/lib/commonjs/ui/screens/FAQScreen.js.map +1 -0
- package/lib/commonjs/ui/screens/FeedbackScreen.js +73 -590
- package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/HelpSupportScreen.js +8 -7
- package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/OxyAuthScreen.js +134 -66
- package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +67 -1395
- package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +6 -13
- package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ProfileScreen.js +13 -5
- package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +16 -10
- package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js +23 -11
- package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
- package/lib/commonjs/ui/stores/accountStore.js +2 -4
- package/lib/commonjs/ui/stores/accountStore.js.map +1 -1
- package/lib/commonjs/ui/stores/authStore.js +45 -32
- package/lib/commonjs/ui/stores/authStore.js.map +1 -1
- package/lib/commonjs/ui/styles/spacing.js +54 -2
- package/lib/commonjs/ui/styles/spacing.js.map +1 -1
- package/lib/commonjs/ui/utils/avatarUtils.js +37 -41
- package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
- package/lib/commonjs/ui/utils/storageHelpers.js.map +1 -1
- package/lib/commonjs/utils/errorUtils.js +13 -0
- package/lib/commonjs/utils/errorUtils.js.map +1 -1
- package/lib/commonjs/utils/validationUtils.js +15 -1
- package/lib/commonjs/utils/validationUtils.js.map +1 -1
- package/lib/module/core/CrossDomainAuth.js +271 -0
- package/lib/module/core/CrossDomainAuth.js.map +1 -0
- package/lib/module/core/HttpService.js +82 -15
- package/lib/module/core/HttpService.js.map +1 -1
- package/lib/module/core/OxyServices.base.js +11 -4
- package/lib/module/core/OxyServices.base.js.map +1 -1
- package/lib/module/core/OxyServices.js +4 -1
- package/lib/module/core/OxyServices.js.map +1 -1
- package/lib/module/core/index.js +6 -1
- package/lib/module/core/index.js.map +1 -1
- package/lib/module/core/mixins/OxyServices.assets.js +16 -3
- package/lib/module/core/mixins/OxyServices.assets.js.map +1 -1
- package/lib/module/core/mixins/OxyServices.auth.js +73 -32
- package/lib/module/core/mixins/OxyServices.auth.js.map +1 -1
- package/lib/module/core/mixins/OxyServices.features.js +369 -0
- package/lib/module/core/mixins/OxyServices.features.js.map +1 -0
- package/lib/module/core/mixins/OxyServices.fedcm.js +286 -0
- package/lib/module/core/mixins/OxyServices.fedcm.js.map +1 -0
- package/lib/module/core/mixins/OxyServices.popup.js +349 -0
- package/lib/module/core/mixins/OxyServices.popup.js.map +1 -0
- package/lib/module/core/mixins/OxyServices.redirect.js +375 -0
- package/lib/module/core/mixins/OxyServices.redirect.js.map +1 -0
- package/lib/module/core/mixins/OxyServices.user.js +35 -24
- package/lib/module/core/mixins/OxyServices.user.js.map +1 -1
- package/lib/module/core/mixins/index.js +16 -3
- package/lib/module/core/mixins/index.js.map +1 -1
- package/lib/module/crypto/index.js +8 -4
- package/lib/module/crypto/index.js.map +1 -1
- package/lib/module/crypto/keyManager.js +899 -0
- package/lib/module/crypto/keyManager.js.map +1 -0
- package/lib/module/crypto/polyfill.js +6 -5
- package/lib/module/crypto/polyfill.js.map +1 -1
- package/lib/module/crypto/recoveryPhrase.js +147 -0
- package/lib/module/crypto/recoveryPhrase.js.map +1 -0
- package/lib/module/crypto/signatureService.js +286 -0
- package/lib/module/crypto/signatureService.js.map +1 -0
- package/lib/module/i18n/locales/en-US.json +1 -1
- package/lib/module/index.js +6 -9
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/interfaces.js +0 -15
- package/lib/module/models/interfaces.js.map +1 -1
- package/lib/module/ui/components/BottomSheetRouter.js +6 -2
- package/lib/module/ui/components/BottomSheetRouter.js.map +1 -1
- package/lib/module/ui/components/GroupedItem.js +11 -1
- package/lib/module/ui/components/GroupedItem.js.map +1 -1
- package/lib/module/ui/components/Icon.js.map +1 -1
- package/lib/module/ui/components/IconButton/utils.js.map +1 -1
- package/lib/module/ui/components/OxyProvider.js +41 -11
- package/lib/module/ui/components/OxyProvider.js.map +1 -1
- package/lib/module/ui/components/SettingRow.js +17 -4
- package/lib/module/ui/components/SettingRow.js.map +1 -1
- package/lib/module/ui/components/TextField/Adornment/utils.js.map +1 -1
- package/lib/module/ui/components/TextField/helpers.js.map +1 -1
- package/lib/module/ui/components/TouchableRipple/utils.js.map +1 -1
- package/lib/module/ui/components/Typography/AnimatedText.js.map +1 -1
- package/lib/module/ui/components/feedback/FormInput.js +67 -0
- package/lib/module/ui/components/feedback/FormInput.js.map +1 -0
- package/lib/module/ui/components/feedback/ProgressIndicator.js +28 -0
- package/lib/module/ui/components/feedback/ProgressIndicator.js.map +1 -0
- package/lib/module/ui/components/feedback/constants.js +55 -0
- package/lib/module/ui/components/feedback/constants.js.map +1 -0
- package/lib/module/ui/components/feedback/feedbackStyles.js +257 -0
- package/lib/module/ui/components/feedback/feedbackStyles.js.map +1 -0
- package/lib/module/ui/components/feedback/index.js +8 -0
- package/lib/module/ui/components/feedback/index.js.map +1 -0
- package/lib/module/ui/components/feedback/types.js +4 -0
- package/lib/module/ui/components/feedback/types.js.map +1 -0
- package/lib/module/ui/components/feedback/useFeedbackForm.js +47 -0
- package/lib/module/ui/components/feedback/useFeedbackForm.js.map +1 -0
- package/lib/module/ui/components/modals/DeleteAccountModal.js +276 -0
- package/lib/module/ui/components/modals/DeleteAccountModal.js.map +1 -0
- package/lib/module/ui/components/modals/index.js +4 -0
- package/lib/module/ui/components/modals/index.js.map +1 -0
- package/lib/module/ui/components/payment/PaymentDetailsStep.js +303 -0
- package/lib/module/ui/components/payment/PaymentDetailsStep.js.map +1 -0
- package/lib/module/ui/components/payment/PaymentMethodStep.js +73 -0
- package/lib/module/ui/components/payment/PaymentMethodStep.js.map +1 -0
- package/lib/module/ui/components/payment/PaymentReviewStep.js +102 -0
- package/lib/module/ui/components/payment/PaymentReviewStep.js.map +1 -0
- package/lib/module/ui/components/payment/PaymentSuccessStep.js +73 -0
- package/lib/module/ui/components/payment/PaymentSuccessStep.js.map +1 -0
- package/lib/module/ui/components/payment/PaymentSummaryStep.js +170 -0
- package/lib/module/ui/components/payment/PaymentSummaryStep.js.map +1 -0
- package/lib/module/ui/components/payment/constants.js +47 -0
- package/lib/module/ui/components/payment/constants.js.map +1 -0
- package/lib/module/ui/components/payment/index.js +10 -0
- package/lib/module/ui/components/payment/index.js.map +1 -0
- package/lib/module/ui/components/payment/paymentStyles.js +404 -0
- package/lib/module/ui/components/payment/paymentStyles.js.map +1 -0
- package/lib/module/ui/components/payment/types.js +4 -0
- package/lib/module/ui/components/payment/types.js.map +1 -0
- package/lib/module/ui/context/OxyContext.js +112 -191
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/context/hooks/useAuthOperations.js +150 -19
- package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/module/ui/context/hooks/useSessionManagement.js +274 -0
- package/lib/module/ui/context/hooks/useSessionManagement.js.map +1 -0
- package/lib/module/ui/hooks/index.js +2 -0
- package/lib/module/ui/hooks/index.js.map +1 -1
- package/lib/module/ui/hooks/mutations/useAccountMutations.js +80 -72
- package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
- package/lib/module/ui/hooks/queries/useAccountQueries.js +31 -44
- package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
- package/lib/module/ui/hooks/queries/useSecurityQueries.js +1 -1
- package/lib/module/ui/hooks/queries/useSecurityQueries.js.map +1 -1
- package/lib/module/ui/hooks/queries/useServicesQueries.js +13 -7
- package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
- package/lib/module/ui/hooks/useAsyncAction.js +89 -0
- package/lib/module/ui/hooks/useAsyncAction.js.map +1 -0
- package/lib/module/ui/hooks/useProfileEditing.js +3 -5
- package/lib/module/ui/hooks/useProfileEditing.js.map +1 -1
- package/lib/module/ui/hooks/useSessionManagement.js +4 -8
- package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/module/ui/hooks/useSessionSocket.js +162 -315
- package/lib/module/ui/hooks/useSessionSocket.js.map +1 -1
- package/lib/module/ui/hooks/useSettingToggle.js +120 -0
- package/lib/module/ui/hooks/useSettingToggle.js.map +1 -0
- package/lib/module/ui/hooks/useStorage.js +25 -59
- package/lib/module/ui/hooks/useStorage.js.map +1 -1
- package/lib/module/ui/index.js +15 -10
- package/lib/module/ui/index.js.map +1 -1
- package/lib/module/ui/navigation/routes.js +6 -1
- package/lib/module/ui/navigation/routes.js.map +1 -1
- package/lib/module/ui/screens/AccountCenterScreen.js +6 -4
- package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountOverviewScreen.js +33 -30
- package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountSettingsScreen.js +29 -24
- package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountSwitcherScreen.js +3 -3
- package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
- package/lib/module/ui/screens/FAQScreen.js +310 -0
- package/lib/module/ui/screens/FAQScreen.js.map +1 -0
- package/lib/module/ui/screens/FeedbackScreen.js +64 -581
- package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
- package/lib/module/ui/screens/HelpSupportScreen.js +8 -7
- package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
- package/lib/module/ui/screens/OxyAuthScreen.js +135 -68
- package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/module/ui/screens/PaymentGatewayScreen.js +67 -1397
- package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
- package/lib/module/ui/screens/PrivacySettingsScreen.js +6 -13
- package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/ProfileScreen.js +13 -5
- package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/module/ui/screens/SavesCollectionsScreen.js +16 -10
- package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
- package/lib/module/ui/screens/karma/KarmaCenterScreen.js +23 -11
- package/lib/module/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
- package/lib/module/ui/stores/accountStore.js +2 -4
- package/lib/module/ui/stores/accountStore.js.map +1 -1
- package/lib/module/ui/stores/authStore.js +45 -32
- package/lib/module/ui/stores/authStore.js.map +1 -1
- package/lib/module/ui/styles/spacing.js +6 -2
- package/lib/module/ui/styles/spacing.js.map +1 -1
- package/lib/module/ui/utils/avatarUtils.js +37 -40
- package/lib/module/ui/utils/avatarUtils.js.map +1 -1
- package/lib/module/ui/utils/storageHelpers.js.map +1 -1
- package/lib/module/utils/errorUtils.js +7 -0
- package/lib/module/utils/errorUtils.js.map +1 -1
- package/lib/module/utils/validationUtils.js +13 -0
- package/lib/module/utils/validationUtils.js.map +1 -1
- package/lib/typescript/core/CrossDomainAuth.d.ts +161 -0
- package/lib/typescript/core/CrossDomainAuth.d.ts.map +1 -0
- package/lib/typescript/core/HttpService.d.ts +1 -1
- package/lib/typescript/core/HttpService.d.ts.map +1 -1
- package/lib/typescript/core/OxyServices.base.d.ts +0 -6
- package/lib/typescript/core/OxyServices.base.d.ts.map +1 -1
- package/lib/typescript/core/OxyServices.d.ts +5 -36
- package/lib/typescript/core/OxyServices.d.ts.map +1 -1
- package/lib/typescript/core/index.d.ts +4 -0
- package/lib/typescript/core/index.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.analytics.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.assets.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.auth.d.ts +40 -20
- package/lib/typescript/core/mixins/OxyServices.auth.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.developer.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.devices.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.features.d.ts +229 -0
- package/lib/typescript/core/mixins/OxyServices.features.d.ts.map +1 -0
- package/lib/typescript/core/mixins/OxyServices.fedcm.d.ts +195 -0
- package/lib/typescript/core/mixins/OxyServices.fedcm.d.ts.map +1 -0
- package/lib/typescript/core/mixins/OxyServices.karma.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.language.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.location.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.payment.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.popup.d.ts +206 -0
- package/lib/typescript/core/mixins/OxyServices.popup.d.ts.map +1 -0
- package/lib/typescript/core/mixins/OxyServices.privacy.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.redirect.d.ts +246 -0
- package/lib/typescript/core/mixins/OxyServices.redirect.d.ts.map +1 -0
- package/lib/typescript/core/mixins/OxyServices.security.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.user.d.ts +6 -4
- package/lib/typescript/core/mixins/OxyServices.user.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.utility.d.ts.map +1 -1
- package/lib/typescript/core/mixins/index.d.ts +291 -9
- package/lib/typescript/core/mixins/index.d.ts.map +1 -1
- package/lib/typescript/crypto/index.d.ts +6 -3
- package/lib/typescript/crypto/index.d.ts.map +1 -1
- package/lib/typescript/crypto/keyManager.d.ts +190 -0
- package/lib/typescript/crypto/keyManager.d.ts.map +1 -0
- package/lib/typescript/crypto/polyfill.d.ts +4 -3
- package/lib/typescript/crypto/polyfill.d.ts.map +1 -1
- package/lib/typescript/crypto/recoveryPhrase.d.ts +59 -0
- package/lib/typescript/crypto/recoveryPhrase.d.ts.map +1 -0
- package/lib/typescript/crypto/signatureService.d.ts +87 -0
- package/lib/typescript/crypto/signatureService.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +5 -6
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/models/interfaces.d.ts +2 -14
- package/lib/typescript/models/interfaces.d.ts.map +1 -1
- package/lib/typescript/models/session.d.ts +0 -9
- package/lib/typescript/models/session.d.ts.map +1 -1
- package/lib/typescript/types/bip39.d.ts +32 -0
- package/lib/typescript/ui/components/BottomSheetRouter.d.ts +5 -0
- package/lib/typescript/ui/components/BottomSheetRouter.d.ts.map +1 -1
- package/lib/typescript/ui/components/GroupedItem.d.ts +5 -1
- package/lib/typescript/ui/components/GroupedItem.d.ts.map +1 -1
- package/lib/typescript/ui/components/IconButton/utils.d.ts +1 -1
- package/lib/typescript/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/ui/components/SettingRow.d.ts +6 -0
- package/lib/typescript/ui/components/SettingRow.d.ts.map +1 -1
- package/lib/typescript/ui/components/TextField/Addons/Outline.d.ts +2 -2
- package/lib/typescript/ui/components/TextField/Adornment/utils.d.ts +1 -1
- package/lib/typescript/ui/components/TextField/Adornment/utils.d.ts.map +1 -1
- package/lib/typescript/ui/components/TextField/helpers.d.ts +8 -8
- package/lib/typescript/ui/components/TextField/types.d.ts +1 -0
- package/lib/typescript/ui/components/TextField/types.d.ts.map +1 -1
- package/lib/typescript/ui/components/feedback/FormInput.d.ts +20 -0
- package/lib/typescript/ui/components/feedback/FormInput.d.ts.map +1 -0
- package/lib/typescript/ui/components/feedback/ProgressIndicator.d.ts +11 -0
- package/lib/typescript/ui/components/feedback/ProgressIndicator.d.ts.map +1 -0
- package/lib/typescript/ui/components/feedback/constants.d.ts +5 -0
- package/lib/typescript/ui/components/feedback/constants.d.ts.map +1 -0
- package/lib/typescript/ui/components/feedback/feedbackStyles.d.ts +280 -0
- package/lib/typescript/ui/components/feedback/feedbackStyles.d.ts.map +1 -0
- package/lib/typescript/ui/components/feedback/index.d.ts +7 -0
- package/lib/typescript/ui/components/feedback/index.d.ts.map +1 -0
- package/lib/typescript/ui/components/feedback/types.d.ts +46 -0
- package/lib/typescript/ui/components/feedback/types.d.ts.map +1 -0
- package/lib/typescript/ui/components/feedback/useFeedbackForm.d.ts +9 -0
- package/lib/typescript/ui/components/feedback/useFeedbackForm.d.ts.map +1 -0
- package/lib/typescript/ui/components/modals/DeleteAccountModal.d.ts +19 -0
- package/lib/typescript/ui/components/modals/DeleteAccountModal.d.ts.map +1 -0
- package/lib/typescript/ui/components/modals/index.d.ts +2 -0
- package/lib/typescript/ui/components/modals/index.d.ts.map +1 -0
- package/lib/typescript/ui/components/payment/PaymentDetailsStep.d.ts +21 -0
- package/lib/typescript/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -0
- package/lib/typescript/ui/components/payment/PaymentMethodStep.d.ts +14 -0
- package/lib/typescript/ui/components/payment/PaymentMethodStep.d.ts.map +1 -0
- package/lib/typescript/ui/components/payment/PaymentReviewStep.d.ts +16 -0
- package/lib/typescript/ui/components/payment/PaymentReviewStep.d.ts.map +1 -0
- package/lib/typescript/ui/components/payment/PaymentSuccessStep.d.ts +10 -0
- package/lib/typescript/ui/components/payment/PaymentSuccessStep.d.ts.map +1 -0
- package/lib/typescript/ui/components/payment/PaymentSummaryStep.d.ts +15 -0
- package/lib/typescript/ui/components/payment/PaymentSummaryStep.d.ts.map +1 -0
- package/lib/typescript/ui/components/payment/constants.d.ts +7 -0
- package/lib/typescript/ui/components/payment/constants.d.ts.map +1 -0
- package/lib/typescript/ui/components/payment/index.d.ts +9 -0
- package/lib/typescript/ui/components/payment/index.d.ts.map +1 -0
- package/lib/typescript/ui/components/payment/paymentStyles.d.ts +396 -0
- package/lib/typescript/ui/components/payment/paymentStyles.d.ts.map +1 -0
- package/lib/typescript/ui/components/payment/types.d.ts +40 -0
- package/lib/typescript/ui/components/payment/types.d.ts.map +1 -0
- package/lib/typescript/ui/components/types.d.ts +4 -0
- package/lib/typescript/ui/components/types.d.ts.map +1 -1
- package/lib/typescript/ui/context/OxyContext.d.ts +57 -3
- package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts +10 -3
- package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts +41 -0
- package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/index.d.ts +2 -0
- package/lib/typescript/ui/hooks/index.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/useAsyncAction.d.ts +51 -0
- package/lib/typescript/ui/hooks/useAsyncAction.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/useProfileEditing.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/useSessionManagement.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/useSessionSocket.d.ts +1 -2
- package/lib/typescript/ui/hooks/useSessionSocket.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/useSettingToggle.d.ts +55 -0
- package/lib/typescript/ui/hooks/useSettingToggle.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/useStorage.d.ts +3 -9
- package/lib/typescript/ui/hooks/useStorage.d.ts.map +1 -1
- package/lib/typescript/ui/index.d.ts +6 -2
- package/lib/typescript/ui/index.d.ts.map +1 -1
- package/lib/typescript/ui/navigation/routes.d.ts +1 -1
- package/lib/typescript/ui/navigation/routes.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/FAQScreen.d.ts +5 -0
- package/lib/typescript/ui/screens/FAQScreen.d.ts.map +1 -0
- package/lib/typescript/ui/screens/FeedbackScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/HelpSupportScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/OxyAuthScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/OxyAuthScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/PaymentGatewayScreen.d.ts +3 -15
- package/lib/typescript/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/ProfileScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/karma/KarmaCenterScreen.d.ts.map +1 -1
- package/lib/typescript/ui/stores/accountStore.d.ts.map +1 -1
- package/lib/typescript/ui/stores/authStore.d.ts +8 -7
- package/lib/typescript/ui/stores/authStore.d.ts.map +1 -1
- package/lib/typescript/ui/styles/spacing.d.ts +5 -0
- package/lib/typescript/ui/styles/spacing.d.ts.map +1 -1
- package/lib/typescript/ui/types/navigation.d.ts +2 -1
- package/lib/typescript/ui/types/navigation.d.ts.map +1 -1
- package/lib/typescript/ui/utils/avatarUtils.d.ts +2 -13
- package/lib/typescript/ui/utils/avatarUtils.d.ts.map +1 -1
- package/lib/typescript/ui/utils/storageHelpers.d.ts +0 -3
- package/lib/typescript/ui/utils/storageHelpers.d.ts.map +1 -1
- package/lib/typescript/utils/errorUtils.d.ts +6 -0
- package/lib/typescript/utils/errorUtils.d.ts.map +1 -1
- package/lib/typescript/utils/validationUtils.d.ts +8 -0
- package/lib/typescript/utils/validationUtils.d.ts.map +1 -1
- package/package.json +8 -7
- package/src/core/CrossDomainAuth.ts +307 -0
- package/src/core/HttpService.ts +99 -16
- package/src/core/OxyServices.base.ts +20 -3
- package/src/core/OxyServices.ts +7 -3
- package/src/core/index.ts +9 -1
- package/src/core/mixins/OxyServices.assets.ts +14 -3
- package/src/core/mixins/OxyServices.auth.ts +105 -36
- package/src/core/mixins/OxyServices.features.ts +428 -0
- package/src/core/mixins/OxyServices.fedcm.ts +315 -0
- package/src/core/mixins/OxyServices.popup.ts +402 -0
- package/src/core/mixins/OxyServices.redirect.ts +397 -0
- package/src/core/mixins/OxyServices.user.ts +39 -24
- package/src/core/mixins/index.ts +33 -14
- package/src/crypto/index.ts +16 -5
- package/src/crypto/keyManager.ts +966 -0
- package/src/crypto/polyfill.ts +6 -5
- package/src/crypto/recoveryPhrase.ts +166 -0
- package/src/crypto/signatureService.ts +323 -0
- package/src/i18n/locales/en-US.json +1 -1
- package/src/index.ts +19 -15
- package/src/models/interfaces.ts +4 -16
- package/src/models/session.ts +2 -11
- package/src/types/bip39.d.ts +32 -0
- package/src/ui/components/BottomSheetRouter.tsx +6 -1
- package/src/ui/components/GroupedItem.tsx +19 -1
- package/src/ui/components/Icon.tsx +1 -1
- package/src/ui/components/IconButton/utils.ts +1 -1
- package/src/ui/components/OxyProvider.tsx +44 -12
- package/src/ui/components/SettingRow.tsx +26 -4
- package/src/ui/components/TextField/Addons/Outline.tsx +2 -2
- package/src/ui/components/TextField/Adornment/utils.ts +2 -2
- package/src/ui/components/TextField/helpers.tsx +10 -10
- package/src/ui/components/TextField/types.tsx +1 -1
- package/src/ui/components/TouchableRipple/utils.ts +2 -2
- package/src/ui/components/Typography/AnimatedText.tsx +2 -2
- package/src/ui/components/feedback/FormInput.tsx +84 -0
- package/src/ui/components/feedback/ProgressIndicator.tsx +35 -0
- package/src/ui/components/feedback/constants.ts +22 -0
- package/src/ui/components/feedback/feedbackStyles.ts +247 -0
- package/src/ui/components/feedback/index.ts +6 -0
- package/src/ui/components/feedback/types.ts +52 -0
- package/src/ui/components/feedback/useFeedbackForm.ts +44 -0
- package/src/ui/components/modals/DeleteAccountModal.tsx +294 -0
- package/src/ui/components/modals/index.ts +1 -0
- package/src/ui/components/payment/PaymentDetailsStep.tsx +222 -0
- package/src/ui/components/payment/PaymentMethodStep.tsx +89 -0
- package/src/ui/components/payment/PaymentReviewStep.tsx +126 -0
- package/src/ui/components/payment/PaymentSuccessStep.tsx +71 -0
- package/src/ui/components/payment/PaymentSummaryStep.tsx +159 -0
- package/src/ui/components/payment/constants.ts +39 -0
- package/src/ui/components/payment/index.ts +9 -0
- package/src/ui/components/payment/paymentStyles.ts +397 -0
- package/src/ui/components/payment/types.ts +45 -0
- package/src/ui/components/types.tsx +6 -0
- package/src/ui/context/OxyContext.tsx +173 -195
- package/src/ui/context/hooks/useAuthOperations.ts +177 -36
- package/src/ui/context/hooks/useSessionManagement.ts +399 -0
- package/src/ui/hooks/index.ts +3 -1
- package/src/ui/hooks/mutations/useAccountMutations.ts +83 -76
- package/src/ui/hooks/queries/useAccountQueries.ts +29 -35
- package/src/ui/hooks/queries/useSecurityQueries.ts +1 -1
- package/src/ui/hooks/queries/useServicesQueries.ts +14 -6
- package/src/ui/hooks/useAsyncAction.ts +129 -0
- package/src/ui/hooks/useProfileEditing.ts +3 -3
- package/src/ui/hooks/useSessionManagement.ts +5 -10
- package/src/ui/hooks/useSessionSocket.ts +46 -175
- package/src/ui/hooks/useSettingToggle.ts +147 -0
- package/src/ui/hooks/useStorage.ts +24 -76
- package/src/ui/index.ts +22 -13
- package/src/ui/navigation/routes.ts +8 -2
- package/src/ui/screens/AccountCenterScreen.tsx +4 -4
- package/src/ui/screens/AccountOverviewScreen.tsx +36 -38
- package/src/ui/screens/AccountSettingsScreen.tsx +34 -37
- package/src/ui/screens/AccountSwitcherScreen.tsx +4 -4
- package/src/ui/screens/FAQScreen.tsx +332 -0
- package/src/ui/screens/FeedbackScreen.tsx +91 -626
- package/src/ui/screens/HelpSupportScreen.tsx +7 -5
- package/src/ui/screens/OxyAuthScreen.tsx +138 -64
- package/src/ui/screens/PaymentGatewayScreen.tsx +96 -1275
- package/src/ui/screens/PrivacySettingsScreen.tsx +6 -12
- package/src/ui/screens/ProfileScreen.tsx +11 -6
- package/src/ui/screens/SavesCollectionsScreen.tsx +19 -10
- package/src/ui/screens/karma/KarmaCenterScreen.tsx +10 -10
- package/src/ui/stores/accountStore.ts +1 -11
- package/src/ui/stores/authStore.ts +43 -44
- package/src/ui/styles/spacing.ts +15 -2
- package/src/ui/types/navigation.ts +2 -2
- package/src/ui/utils/avatarUtils.ts +39 -46
- package/src/ui/utils/storageHelpers.ts +0 -4
- package/src/utils/__tests__/validationUtils.test.ts +16 -1
- package/src/utils/errorUtils.ts +8 -1
- package/src/utils/validationUtils.ts +12 -0
- package/lib/commonjs/core/services/SessionService.js +0 -163
- package/lib/commonjs/core/services/SessionService.js.map +0 -1
- package/lib/commonjs/core/services/TokenService.js +0 -220
- package/lib/commonjs/core/services/TokenService.js.map +0 -1
- package/lib/commonjs/crypto/types.js +0 -2
- package/lib/commonjs/crypto/types.js.map +0 -1
- package/lib/commonjs/ui/context/OxyContextBase.js +0 -21
- package/lib/commonjs/ui/context/OxyContextBase.js.map +0 -1
- package/lib/commonjs/ui/context/hooks/useStorage.js +0 -79
- package/lib/commonjs/ui/context/hooks/useStorage.js.map +0 -1
- package/lib/commonjs/ui/hooks/useAvatarPicker.js +0 -56
- package/lib/commonjs/ui/hooks/useAvatarPicker.js.map +0 -1
- package/lib/module/core/services/SessionService.js +0 -159
- package/lib/module/core/services/SessionService.js.map +0 -1
- package/lib/module/core/services/TokenService.js +0 -217
- package/lib/module/core/services/TokenService.js.map +0 -1
- package/lib/module/crypto/types.js +0 -2
- package/lib/module/crypto/types.js.map +0 -1
- package/lib/module/ui/context/OxyContextBase.js +0 -16
- package/lib/module/ui/context/OxyContextBase.js.map +0 -1
- package/lib/module/ui/context/hooks/useStorage.js +0 -74
- package/lib/module/ui/context/hooks/useStorage.js.map +0 -1
- package/lib/module/ui/hooks/useAvatarPicker.js +0 -50
- package/lib/module/ui/hooks/useAvatarPicker.js.map +0 -1
- package/lib/typescript/core/services/SessionService.d.ts +0 -78
- package/lib/typescript/core/services/SessionService.d.ts.map +0 -1
- package/lib/typescript/core/services/TokenService.d.ts +0 -72
- package/lib/typescript/core/services/TokenService.d.ts.map +0 -1
- package/lib/typescript/crypto/types.d.ts +0 -22
- package/lib/typescript/crypto/types.d.ts.map +0 -1
- package/lib/typescript/ui/context/OxyContextBase.d.ts +0 -63
- package/lib/typescript/ui/context/OxyContextBase.d.ts.map +0 -1
- package/lib/typescript/ui/context/hooks/useStorage.d.ts +0 -22
- package/lib/typescript/ui/context/hooks/useStorage.d.ts.map +0 -1
- package/lib/typescript/ui/hooks/useAvatarPicker.d.ts +0 -19
- package/lib/typescript/ui/hooks/useAvatarPicker.d.ts.map +0 -1
- package/src/core/services/SessionService.ts +0 -173
- package/src/core/services/TokenService.ts +0 -237
- package/src/crypto/types.ts +0 -23
- package/src/ui/context/OxyContextBase.tsx +0 -78
- package/src/ui/context/hooks/useStorage.ts +0 -104
- 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":[]}
|