@oxyhq/services 5.17.16 → 5.17.18
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.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 +27 -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/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/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/context/OxyContext.js +110 -192
- 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/mutations/useAccountMutations.js +78 -64
- 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/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/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 +5 -1
- package/lib/commonjs/ui/navigation/routes.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountCenterScreen.js +2 -2
- package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
- 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/OxyAuthScreen.js +134 -66
- package/lib/commonjs/ui/screens/OxyAuthScreen.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/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.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 +15 -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/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/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/context/OxyContext.js +112 -184
- 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/mutations/useAccountMutations.js +79 -64
- 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/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/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 +5 -1
- package/lib/module/ui/navigation/routes.js.map +1 -1
- package/lib/module/ui/screens/AccountCenterScreen.js +2 -2
- package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
- 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/OxyAuthScreen.js +135 -68
- package/lib/module/ui/screens/OxyAuthScreen.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/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.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 +220 -8
- 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/IconButton/utils.d.ts +1 -1
- package/lib/typescript/ui/components/OxyProvider.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/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/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/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/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/AccountSettingsScreen.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/PrivacySettingsScreen.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.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 +19 -3
- 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/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/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/types.tsx +6 -0
- package/src/ui/context/OxyContext.tsx +173 -185
- package/src/ui/context/hooks/useAuthOperations.ts +177 -36
- package/src/ui/context/hooks/useSessionManagement.ts +399 -0
- package/src/ui/hooks/mutations/useAccountMutations.ts +82 -65
- 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/useProfileEditing.ts +3 -3
- package/src/ui/hooks/useSessionManagement.ts +5 -10
- package/src/ui/hooks/useSessionSocket.ts +46 -175
- package/src/ui/hooks/useStorage.ts +24 -76
- package/src/ui/index.ts +22 -13
- package/src/ui/navigation/routes.ts +6 -2
- package/src/ui/screens/AccountCenterScreen.tsx +2 -2
- package/src/ui/screens/AccountOverviewScreen.tsx +1 -1
- package/src/ui/screens/AccountSettingsScreen.tsx +34 -37
- package/src/ui/screens/AccountSwitcherScreen.tsx +4 -4
- package/src/ui/screens/OxyAuthScreen.tsx +138 -64
- package/src/ui/screens/PrivacySettingsScreen.tsx +6 -12
- 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,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OxyServices.privacy.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.privacy.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAExD,GAAG,EAAE;QAG1B;;WAEG;mCAC+B,MAAM,GAAG;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,MAAM;QAIvG;;WAEG;iCACiC,WAAW,GAAG,cAAc,UACtD,MAAM,eACD,MAAM,OAAO,CAAC,GAAC,EAAE,CAAC,cACnB,CAAC,IAAI,EAAE,GAAC,KAAK,MAAM,GAAG;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,GACpF,OAAO,CAAC,OAAO,CAAC;QAuBnB;;;WAGG;2BACsB,OAAO,CAAC,WAAW,EAAE,CAAC;QAW/C;;;;WAIG;0BACqB,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAa7D;;;;WAIG;4BACuB,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAa/D;;;;WAIG;8BACyB,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;QAYrD;;;WAGG;8BACyB,OAAO,CAAC,cAAc,EAAE,CAAC;QAWrD;;;;WAIG;6BACwB,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAahE;;;;WAIG;+BAC0B,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAalE;;;;WAIG;iCAC4B,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"OxyServices.privacy.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.privacy.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAExD,GAAG,EAAE;QAG1B;;WAEG;mCAC+B,MAAM,GAAG;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,MAAM;QAIvG;;WAEG;iCACiC,WAAW,GAAG,cAAc,UACtD,MAAM,eACD,MAAM,OAAO,CAAC,GAAC,EAAE,CAAC,cACnB,CAAC,IAAI,EAAE,GAAC,KAAK,MAAM,GAAG;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,GACpF,OAAO,CAAC,OAAO,CAAC;QAuBnB;;;WAGG;2BACsB,OAAO,CAAC,WAAW,EAAE,CAAC;QAW/C;;;;WAIG;0BACqB,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAa7D;;;;WAIG;4BACuB,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAa/D;;;;WAIG;8BACyB,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;QAYrD;;;WAGG;8BACyB,OAAO,CAAC,cAAc,EAAE,CAAC;QAWrD;;;;WAIG;6BACwB,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAahE;;;;WAIG;+BAC0B,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAalE;;;;WAIG;iCAC4B,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAUwY,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAuhG,CAAC;qBAAwB,CAAC;;;;;MAF9iH"}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import type { OxyServicesBase } from '../OxyServices.base';
|
|
2
|
+
import type { SessionLoginResponse } from '../../models/session';
|
|
3
|
+
export interface RedirectAuthOptions {
|
|
4
|
+
redirectUri?: string;
|
|
5
|
+
mode?: 'login' | 'signup';
|
|
6
|
+
preserveUrl?: boolean;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Redirect-based Cross-Domain Authentication Mixin
|
|
10
|
+
*
|
|
11
|
+
* Implements traditional OAuth2 redirect flow as a fallback when popup or
|
|
12
|
+
* FedCM are not available or fail (e.g., mobile browsers, popup blockers).
|
|
13
|
+
*
|
|
14
|
+
* Flow:
|
|
15
|
+
* 1. Save current URL
|
|
16
|
+
* 2. Redirect to auth.oxy.so/login
|
|
17
|
+
* 3. User signs in
|
|
18
|
+
* 4. Redirect back with token in URL
|
|
19
|
+
* 5. Extract token, restore session, clean URL
|
|
20
|
+
*
|
|
21
|
+
* Features:
|
|
22
|
+
* - Works on all browsers (including old mobile browsers)
|
|
23
|
+
* - Automatic URL cleanup after auth
|
|
24
|
+
* - State preservation option
|
|
25
|
+
* - CSRF protection via state parameter
|
|
26
|
+
*
|
|
27
|
+
* Trade-offs:
|
|
28
|
+
* - Loses JavaScript app state (full page navigation)
|
|
29
|
+
* - Visible redirect (user sees navigation)
|
|
30
|
+
* - Slower perceived performance
|
|
31
|
+
*/
|
|
32
|
+
export declare function OxyServicesRedirectAuthMixin<T extends typeof OxyServicesBase>(Base: T): {
|
|
33
|
+
new (...args: any[]): {
|
|
34
|
+
/**
|
|
35
|
+
* Sign in using full page redirect
|
|
36
|
+
*
|
|
37
|
+
* Redirects the user to auth.oxy.so for authentication. After successful
|
|
38
|
+
* sign-in, the user will be redirected back to the current page (or custom
|
|
39
|
+
* redirect URI) with authentication tokens in the URL.
|
|
40
|
+
*
|
|
41
|
+
* Call handleAuthCallback() on app startup to complete the flow.
|
|
42
|
+
*
|
|
43
|
+
* @param options - Redirect configuration options
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```typescript
|
|
47
|
+
* // Initiate sign-in
|
|
48
|
+
* const handleSignIn = () => {
|
|
49
|
+
* oxyServices.signInWithRedirect();
|
|
50
|
+
* };
|
|
51
|
+
*
|
|
52
|
+
* // Handle callback on app startup
|
|
53
|
+
* useEffect(() => {
|
|
54
|
+
* const session = oxyServices.handleAuthCallback();
|
|
55
|
+
* if (session) {
|
|
56
|
+
* setUser(session.user);
|
|
57
|
+
* }
|
|
58
|
+
* }, []);
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
signInWithRedirect(options?: RedirectAuthOptions): void;
|
|
62
|
+
/**
|
|
63
|
+
* Sign up using full page redirect
|
|
64
|
+
*
|
|
65
|
+
* Same as signInWithRedirect but opens the signup page by default.
|
|
66
|
+
*/
|
|
67
|
+
signUpWithRedirect(options?: RedirectAuthOptions): void;
|
|
68
|
+
/**
|
|
69
|
+
* Handle authentication callback
|
|
70
|
+
*
|
|
71
|
+
* Call this on app startup to check if the current page load is a
|
|
72
|
+
* redirect back from the authentication server. If it is, this method
|
|
73
|
+
* will extract the tokens, store them, and clean up the URL.
|
|
74
|
+
*
|
|
75
|
+
* @returns Session data if this is a callback, null otherwise
|
|
76
|
+
* @throws {OxyAuthenticationError} If state validation fails (CSRF attack)
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```typescript
|
|
80
|
+
* // In your app's root component or startup logic
|
|
81
|
+
* useEffect(() => {
|
|
82
|
+
* try {
|
|
83
|
+
* const session = oxyServices.handleAuthCallback();
|
|
84
|
+
* if (session) {
|
|
85
|
+
* console.log('Logged in:', session.user);
|
|
86
|
+
* setUser(session.user);
|
|
87
|
+
* } else {
|
|
88
|
+
* // Not a callback, check for existing session
|
|
89
|
+
* const restored = oxyServices.restoreSession();
|
|
90
|
+
* if (!restored) {
|
|
91
|
+
* // No session, show login button
|
|
92
|
+
* }
|
|
93
|
+
* }
|
|
94
|
+
* } catch (error) {
|
|
95
|
+
* console.error('Auth callback failed:', error);
|
|
96
|
+
* }
|
|
97
|
+
* }, []);
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
handleAuthCallback(): SessionLoginResponse | null;
|
|
101
|
+
/**
|
|
102
|
+
* Restore session from storage
|
|
103
|
+
*
|
|
104
|
+
* Attempts to restore a previously authenticated session from localStorage.
|
|
105
|
+
* Call this on app startup if handleAuthCallback() returns null.
|
|
106
|
+
*
|
|
107
|
+
* @returns True if session was restored, false otherwise
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```typescript
|
|
111
|
+
* useEffect(() => {
|
|
112
|
+
* const session = oxyServices.handleAuthCallback();
|
|
113
|
+
* if (!session) {
|
|
114
|
+
* const restored = oxyServices.restoreSession();
|
|
115
|
+
* if (!restored) {
|
|
116
|
+
* // No session, user needs to sign in
|
|
117
|
+
* setShowLogin(true);
|
|
118
|
+
* }
|
|
119
|
+
* }
|
|
120
|
+
* }, []);
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
restoreSession(): boolean;
|
|
124
|
+
/**
|
|
125
|
+
* Clear stored session
|
|
126
|
+
*
|
|
127
|
+
* Removes all authentication data from storage. Call this on logout.
|
|
128
|
+
*/
|
|
129
|
+
clearStoredSession(): void;
|
|
130
|
+
/**
|
|
131
|
+
* Get stored session ID
|
|
132
|
+
*/
|
|
133
|
+
getStoredSessionId(): string | null;
|
|
134
|
+
/**
|
|
135
|
+
* Build authentication URL with query parameters
|
|
136
|
+
*
|
|
137
|
+
* @private
|
|
138
|
+
*/
|
|
139
|
+
buildAuthUrl(params: {
|
|
140
|
+
mode: string;
|
|
141
|
+
redirectUri: string;
|
|
142
|
+
state: string;
|
|
143
|
+
nonce: string;
|
|
144
|
+
clientId: string;
|
|
145
|
+
}): string;
|
|
146
|
+
/**
|
|
147
|
+
* Store tokens in localStorage
|
|
148
|
+
*
|
|
149
|
+
* @private
|
|
150
|
+
*/
|
|
151
|
+
storeTokens(accessToken: string, sessionId: string): void;
|
|
152
|
+
/**
|
|
153
|
+
* Generate cryptographically secure state for CSRF protection
|
|
154
|
+
*
|
|
155
|
+
* @private
|
|
156
|
+
*/
|
|
157
|
+
generateState(): string;
|
|
158
|
+
/**
|
|
159
|
+
* Generate nonce for replay attack prevention
|
|
160
|
+
*
|
|
161
|
+
* @private
|
|
162
|
+
*/
|
|
163
|
+
generateNonce(): string;
|
|
164
|
+
/**
|
|
165
|
+
* Store auth state in session storage
|
|
166
|
+
*
|
|
167
|
+
* @private
|
|
168
|
+
*/
|
|
169
|
+
storeAuthState(state: string, nonce: string): void;
|
|
170
|
+
/**
|
|
171
|
+
* Get stored state
|
|
172
|
+
*
|
|
173
|
+
* @private
|
|
174
|
+
*/
|
|
175
|
+
getStoredState(): string | null;
|
|
176
|
+
/**
|
|
177
|
+
* Clear auth state from storage
|
|
178
|
+
*
|
|
179
|
+
* @private
|
|
180
|
+
*/
|
|
181
|
+
clearAuthState(): void;
|
|
182
|
+
/**
|
|
183
|
+
* Save pre-authentication URL to restore later
|
|
184
|
+
*
|
|
185
|
+
* @private
|
|
186
|
+
*/
|
|
187
|
+
savePreAuthUrl(url: string): void;
|
|
188
|
+
/**
|
|
189
|
+
* Clean authentication parameters from URL
|
|
190
|
+
*
|
|
191
|
+
* @private
|
|
192
|
+
*/
|
|
193
|
+
cleanAuthCallbackUrl(url: URL): void;
|
|
194
|
+
httpService: import("../HttpService").HttpService;
|
|
195
|
+
cloudURL: string;
|
|
196
|
+
config: import("../OxyServices.base").OxyConfig;
|
|
197
|
+
makeRequest<T_1>(method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE", url: string, data?: any, options?: import("../HttpService").RequestOptions): Promise<T_1>;
|
|
198
|
+
getBaseURL(): string;
|
|
199
|
+
getClient(): import("../HttpService").HttpService;
|
|
200
|
+
getMetrics(): {
|
|
201
|
+
totalRequests: number;
|
|
202
|
+
successfulRequests: number;
|
|
203
|
+
failedRequests: number;
|
|
204
|
+
cacheHits: number;
|
|
205
|
+
cacheMisses: number;
|
|
206
|
+
averageResponseTime: number;
|
|
207
|
+
};
|
|
208
|
+
clearCache(): void;
|
|
209
|
+
clearCacheEntry(key: string): void;
|
|
210
|
+
getCacheStats(): {
|
|
211
|
+
size: number;
|
|
212
|
+
hits: number;
|
|
213
|
+
misses: number;
|
|
214
|
+
hitRate: number;
|
|
215
|
+
};
|
|
216
|
+
getCloudURL(): string;
|
|
217
|
+
setTokens(accessToken: string, refreshToken?: string): void;
|
|
218
|
+
clearTokens(): void;
|
|
219
|
+
getCurrentUserId(): string | null;
|
|
220
|
+
hasValidToken(): boolean;
|
|
221
|
+
getAccessToken(): string | null;
|
|
222
|
+
waitForAuth(timeoutMs?: number): Promise<boolean>;
|
|
223
|
+
withAuthRetry<T_1>(operation: () => Promise<T_1>, operationName: string, options?: {
|
|
224
|
+
maxRetries?: number;
|
|
225
|
+
retryDelay?: number;
|
|
226
|
+
authTimeoutMs?: number;
|
|
227
|
+
}): Promise<T_1>;
|
|
228
|
+
validate(): Promise<boolean>;
|
|
229
|
+
handleError(error: unknown): Error;
|
|
230
|
+
healthCheck(): Promise<{
|
|
231
|
+
status: string;
|
|
232
|
+
users?: number;
|
|
233
|
+
timestamp?: string;
|
|
234
|
+
[key: string]: any;
|
|
235
|
+
}>;
|
|
236
|
+
};
|
|
237
|
+
readonly AUTH_URL: "https://auth.oxy.so";
|
|
238
|
+
readonly TOKEN_STORAGE_KEY: "oxy_access_token";
|
|
239
|
+
readonly SESSION_STORAGE_KEY: "oxy_session_id";
|
|
240
|
+
readonly STATE_STORAGE_KEY: "oxy_auth_state";
|
|
241
|
+
readonly PRE_AUTH_URL_KEY: "oxy_pre_auth_url";
|
|
242
|
+
readonly NONCE_STORAGE_KEY: "oxy_auth_nonce";
|
|
243
|
+
__resetTokensForTests(): void;
|
|
244
|
+
} & T;
|
|
245
|
+
export { OxyServicesRedirectAuthMixin as RedirectAuthMixin };
|
|
246
|
+
//# sourceMappingURL=OxyServices.redirect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OxyServices.redirect.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.redirect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,4BAA4B,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAE7D,GAAG,EAAE;QAU5B;;;;;;;;;;;;;;;;;;;;;;;;;;WA0BG;qCACyB,mBAAmB,GAAQ,IAAI;QA8B3D;;;;WAIG;qCACyB,mBAAmB,GAAQ,IAAI;QAI3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA+BG;8BACmB,oBAAoB,GAAG,IAAI;QAoDjD;;;;;;;;;;;;;;;;;;;;;WAqBG;0BACe,OAAO;QAgBzB;;;;WAIG;8BACmB,IAAI;QAU1B;;WAEG;8BACmB,MAAM,GAAG,IAAI;QAQnC;;;;WAIG;6BACyB;YAC1B,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,EAAE,MAAM,CAAC;YACpB,KAAK,EAAE,MAAM,CAAC;YACd,KAAK,EAAE,MAAM,CAAC;YACd,QAAQ,EAAE,MAAM,CAAC;SAClB,GAAG,MAAM;QAUV;;;;WAIG;iCAC6B,MAAM,aAAa,MAAM,GAAG,IAAI;QAShE;;;;WAIG;yBACqB,MAAM;QAO9B;;;;WAIG;yBACqB,MAAM;QAO9B;;;;WAIG;8BAC0B,MAAM,SAAS,MAAM,GAAG,IAAI;QASzD;;;;WAIG;0BACsB,MAAM,GAAG,IAAI;QAQtC;;;;WAIG;0BACsB,IAAI;QAU7B;;;;WAIG;4BACwB,MAAM,GAAG,IAAI;QAQxC;;;;WAIG;kCAC8B,GAAG,GAAG,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAnMA,CAAC;sBAGnC,CAAC;yBAA6B,CAAC;;;;;;iBAyH5B,CAAA;qBAAwB,CAAC;;;;uBA7QH,qBAAqB;gCACZ,kBAAkB;kCAChB,gBAAgB;gCAClB,gBAAgB;+BACjB,kBAAkB;gCACjB,gBAAgB;;MA6V5D;AAGD,OAAO,EAAE,4BAA4B,IAAI,iBAAiB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OxyServices.security.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.security.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE7G,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAEzD,GAAG,EAAE;QAI1B;;;;;;WAMG;oCAEO,MAAM,WACL,MAAM,cACH,iBAAiB,GAC5B,OAAO,CAAC,wBAAwB,CAAC;QAoBpC;;;;WAIG;0CACoC,MAAM,GAAQ,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAShF;;;;WAIG;yCACoC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;QAiB7D;;;;WAIG;oCAC+B,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"OxyServices.security.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.security.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE7G,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAEzD,GAAG,EAAE;QAI1B;;;;;;WAMG;oCAEO,MAAM,WACL,MAAM,cACH,iBAAiB,GAC5B,OAAO,CAAC,wBAAwB,CAAC;QAoBpC;;;;WAIG;0CACoC,MAAM,GAAQ,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAShF;;;;WAIG;yCACoC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;QAiB7D;;;;WAIG;oCAC+B,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAmBkrF,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAuhG,CAAC;qBAAwB,CAAC;;;;;MAFx1L"}
|
|
@@ -38,22 +38,22 @@ export declare function OxyServicesUserMixin<T extends typeof OxyServicesBase>(B
|
|
|
38
38
|
getUserById(userId: string): Promise<User>;
|
|
39
39
|
/**
|
|
40
40
|
* Get current user
|
|
41
|
-
* Services never caches profile - always fetch fresh from backend
|
|
42
41
|
*/
|
|
43
42
|
getCurrentUser(): Promise<User>;
|
|
44
43
|
/**
|
|
45
44
|
* Update user profile
|
|
45
|
+
* TanStack Query handles offline queuing automatically
|
|
46
46
|
*/
|
|
47
47
|
updateProfile(updates: Record<string, any>): Promise<User>;
|
|
48
48
|
/**
|
|
49
49
|
* Get privacy settings for a user
|
|
50
|
-
* @param userId - The user ID (
|
|
50
|
+
* @param userId - The user ID (defaults to current user)
|
|
51
51
|
*/
|
|
52
52
|
getPrivacySettings(userId?: string): Promise<any>;
|
|
53
53
|
/**
|
|
54
54
|
* Update privacy settings
|
|
55
55
|
* @param settings - Partial privacy settings object
|
|
56
|
-
* @param userId - The user ID (
|
|
56
|
+
* @param userId - The user ID (defaults to current user)
|
|
57
57
|
*/
|
|
58
58
|
updatePrivacySettings(settings: Record<string, any>, userId?: string): Promise<any>;
|
|
59
59
|
/**
|
|
@@ -174,7 +174,9 @@ export declare function OxyServicesUserMixin<T extends typeof OxyServicesBase>(B
|
|
|
174
174
|
healthCheck(): Promise<{
|
|
175
175
|
status: string;
|
|
176
176
|
users?: number;
|
|
177
|
-
timestamp
|
|
177
|
+
timestamp? /**
|
|
178
|
+
* Get user followers
|
|
179
|
+
*/: string;
|
|
178
180
|
[key: string]: any;
|
|
179
181
|
}>;
|
|
180
182
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OxyServices.user.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.user.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,sBAAsB,EAAkB,MAAM,yBAAyB,CAAC;AAC1G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAA4C,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEvG,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAErD,GAAG,EAAE;QAG1B;;WAEG;uCACkC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"OxyServices.user.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.user.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,sBAAsB,EAAkB,MAAM,yBAAyB,CAAC;AAC1G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAA4C,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEvG,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAErD,GAAG,EAAE;QAG1B;;WAEG;uCACkC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;QAW3D;;WAEG;8BACyB,MAAM,eAAe,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC;QA0DnG;;WAEG;qCACgC,OAAO,CAAC,KAAK,CAAC;YAC/C,EAAE,EAAE,MAAM,CAAC;YACX,QAAQ,EAAE,MAAM,CAAC;YACjB,IAAI,CAAC,EAAE;gBAAE,KAAK,CAAC,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;YACxD,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,MAAM,CAAC,EAAE;gBAAE,SAAS,EAAE,MAAM,CAAC;gBAAC,SAAS,EAAE,MAAM,CAAA;aAAE,CAAC;YAClD,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;SACpB,CAAC,CAAC;QAMH;;WAEG;4BACuB,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;QAWhD;;WAEG;0BACqB,OAAO,CAAC,IAAI,CAAC;QASrC;;;WAGG;+BAC0B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;QAwBhE;;;WAGG;oCAC+B,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QAYvD;;;;WAIG;wCACmC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QAWzF;;WAEG;2CACsC,MAAM,aAAa,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC;QAWpH;;WAEG;qCAC+B,MAAM,GAAG,KAAK,GAAY,OAAO,CAAC,IAAI,CAAC;QAgBzE;;;;WAIG;gCAC2B,MAAM,eAAe,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAYxF;;WAEG;2BACsB,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAQhF;;WAEG;6BACwB,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAQlF;;WAEG;gCAC2B,MAAM,GAAG,OAAO,CAAC;YAAE,WAAW,EAAE,OAAO,CAAA;SAAE,CAAC;QAWxE;;WAEG;iCAEO,MAAM,eACD,gBAAgB,GAC5B,OAAO,CAAC;YAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAA;SAAE,CAAC;QAiBlE;;WAEG;iCAEO,MAAM,eACD,gBAAgB,GAC5B,OAAO,CAAC;YAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAA;SAAE,CAAC;QAiBlE;;WAEG;4BACuB,OAAO,CAAC,YAAY,EAAE,CAAC;QAQjD;;WAEG;0BACqB,OAAO,CAAC,MAAM,CAAC;QAWvC;;WAEG;iCAC4B,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;QAQ5E;;WAEG;+CAC0C,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;QAQnE;;WAEG;sCACiC,OAAO,CAAC,IAAI,CAAC;QAQjD;;WAEG;2CACsC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAvN3D,CAAR;sBACc,CAAC;yBACK,CAAC;;;;;;iBAsGQ,CAAC;qBAO1B,CAHH,CAAG;;eAEG;;;;;MAiHN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OxyServices.utility.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.utility.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAQ,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAW3D,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAExD,GAAG,EAAE;QAG1B;;WAEG;+BAC0B,MAAM,GAAG,OAAO,CAAC;YAC5C,GAAG,EAAE,MAAM,CAAC;YACZ,KAAK,EAAE,MAAM,CAAC;YACd,WAAW,EAAE,MAAM,CAAC;YACpB,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,CAAC;QAgBF;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA4BG;uBACW;YACZ,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,GAAG,CAAC;YACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;YACnB,OAAO,CAAC,EAAE,OAAO,CAAC;SACnB,IAIS,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"OxyServices.utility.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.utility.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAQ,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAW3D,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAExD,GAAG,EAAE;QAG1B;;WAEG;+BAC0B,MAAM,GAAG,OAAO,CAAC;YAC5C,GAAG,EAAE,MAAM,CAAC;YACZ,KAAK,EAAE,MAAM,CAAC;YACd,WAAW,EAAE,MAAM,CAAC;YACpB,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,CAAC;QAgBF;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA4BG;uBACW;YACZ,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,GAAG,CAAC;YACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;YACnB,OAAO,CAAC,EAAE,OAAO,CAAC;SACnB,IAIS,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAkGjC,CAAV;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAOo6F,CAAC;qBAAwB,CAAC;;;;;MAFt/F"}
|