@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 @@
|
|
|
1
|
+
{"version":3,"names":["OxyAuthenticationError","OxyServicesFedCMMixin","Base","constructor","args","DEFAULT_CONFIG_URL","FEDCM_TIMEOUT","isFedCMSupported","window","navigator","signInWithFedCM","options","nonce","generateNonce","clientId","getClientId","credential","requestIdentityCredential","configURL","context","token","session","exchangeIdTokenForSession","accessToken","httpService","setTokens","error","name","silentSignInWithFedCM","mediation","controller","AbortController","timeout","setTimeout","abort","credentials","get","identity","providers","loginHint","signal","type","clearTimeout","idToken","makeRequest","id_token","cache","revokeFedCMCredential","IdentityCredential","logout","getFedCMConfig","enabled","crypto","randomUUID","Date","now","Math","random","toString","substring","location","origin","FedCMMixin"],"sourceRoot":"../../../../src","sources":["core/mixins/OxyServices.fedcm.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { OxyAuthenticationError } from '../OxyServices.errors';
|
|
4
|
+
/**
|
|
5
|
+
* Popup-based Cross-Domain Authentication Mixin
|
|
6
|
+
*
|
|
7
|
+
* Implements OAuth2-style authentication using popup windows and postMessage.
|
|
8
|
+
* This is the primary authentication method for modern browsers, providing a
|
|
9
|
+
* Google-like experience without full page redirects.
|
|
10
|
+
*
|
|
11
|
+
* Flow:
|
|
12
|
+
* 1. Opens small popup window to auth.oxy.so
|
|
13
|
+
* 2. User signs in (auth.oxy.so sets its own first-party cookie)
|
|
14
|
+
* 3. auth.oxy.so sends token back via postMessage
|
|
15
|
+
* 4. Popup closes, parent app has the session
|
|
16
|
+
*
|
|
17
|
+
* Features:
|
|
18
|
+
* - No full page redirect (preserves app state)
|
|
19
|
+
* - Works across different domains (homiio.com, mention.earth, etc.)
|
|
20
|
+
* - Silent refresh using hidden iframe for seamless SSO
|
|
21
|
+
* - CSRF protection via state parameter
|
|
22
|
+
* - XSS protection via origin validation
|
|
23
|
+
*
|
|
24
|
+
* Browser Support: All modern browsers (IE11+)
|
|
25
|
+
*/
|
|
26
|
+
export function OxyServicesPopupAuthMixin(Base) {
|
|
27
|
+
return class extends Base {
|
|
28
|
+
constructor(...args) {
|
|
29
|
+
super(...args);
|
|
30
|
+
}
|
|
31
|
+
static AUTH_URL = 'https://auth.oxy.so';
|
|
32
|
+
static POPUP_WIDTH = 500;
|
|
33
|
+
static POPUP_HEIGHT = 700;
|
|
34
|
+
static POPUP_TIMEOUT = 60000; // 1 minute
|
|
35
|
+
static SILENT_TIMEOUT = 5000; // 5 seconds
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Sign in using popup window
|
|
39
|
+
*
|
|
40
|
+
* Opens a centered popup window to auth.oxy.so where the user can sign in.
|
|
41
|
+
* The popup automatically closes after successful authentication and the
|
|
42
|
+
* session is returned to the parent window.
|
|
43
|
+
*
|
|
44
|
+
* @param options - Popup configuration options
|
|
45
|
+
* @returns Session with access token and user data
|
|
46
|
+
* @throws {OxyAuthenticationError} If popup is blocked or auth fails
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const handleSignIn = async () => {
|
|
51
|
+
* try {
|
|
52
|
+
* const session = await oxyServices.signInWithPopup();
|
|
53
|
+
* console.log('Signed in:', session.user);
|
|
54
|
+
* } catch (error) {
|
|
55
|
+
* if (error.message.includes('blocked')) {
|
|
56
|
+
* alert('Please allow popups for this site');
|
|
57
|
+
* }
|
|
58
|
+
* }
|
|
59
|
+
* };
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
async signInWithPopup(options = {}) {
|
|
63
|
+
if (typeof window === 'undefined') {
|
|
64
|
+
throw new OxyAuthenticationError('Popup authentication requires browser environment');
|
|
65
|
+
}
|
|
66
|
+
const state = this.generateState();
|
|
67
|
+
const nonce = this.generateNonce();
|
|
68
|
+
|
|
69
|
+
// Store state for CSRF protection
|
|
70
|
+
this.storeAuthState(state, nonce);
|
|
71
|
+
const width = options.width || this.constructor.POPUP_WIDTH;
|
|
72
|
+
const height = options.height || this.constructor.POPUP_HEIGHT;
|
|
73
|
+
const timeout = options.timeout || this.constructor.POPUP_TIMEOUT;
|
|
74
|
+
const mode = options.mode || 'login';
|
|
75
|
+
const authUrl = this.buildAuthUrl({
|
|
76
|
+
mode,
|
|
77
|
+
state,
|
|
78
|
+
nonce,
|
|
79
|
+
clientId: window.location.origin,
|
|
80
|
+
redirectUri: `${this.constructor.AUTH_URL}/auth/callback`
|
|
81
|
+
});
|
|
82
|
+
const popup = this.openCenteredPopup(authUrl, 'Oxy Sign In', width, height);
|
|
83
|
+
if (!popup) {
|
|
84
|
+
throw new OxyAuthenticationError('Popup blocked. Please allow popups for this site and try again.');
|
|
85
|
+
}
|
|
86
|
+
try {
|
|
87
|
+
const session = await this.waitForPopupAuth(popup, state, timeout);
|
|
88
|
+
|
|
89
|
+
// Store access token if present
|
|
90
|
+
if (session && session.accessToken) {
|
|
91
|
+
this.httpService.setTokens(session.accessToken);
|
|
92
|
+
}
|
|
93
|
+
return session;
|
|
94
|
+
} catch (error) {
|
|
95
|
+
throw error;
|
|
96
|
+
} finally {
|
|
97
|
+
this.clearAuthState(state);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Sign up using popup window
|
|
103
|
+
*
|
|
104
|
+
* Same as signInWithPopup but opens the signup page by default.
|
|
105
|
+
*
|
|
106
|
+
* @param options - Popup configuration options
|
|
107
|
+
* @returns Session with access token and user data
|
|
108
|
+
*/
|
|
109
|
+
async signUpWithPopup(options = {}) {
|
|
110
|
+
return this.signInWithPopup({
|
|
111
|
+
...options,
|
|
112
|
+
mode: 'signup'
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Silent sign-in using hidden iframe
|
|
118
|
+
*
|
|
119
|
+
* Attempts to automatically re-authenticate the user without any UI.
|
|
120
|
+
* This is what enables seamless SSO across all Oxy domains.
|
|
121
|
+
*
|
|
122
|
+
* How it works:
|
|
123
|
+
* 1. Creates hidden iframe pointing to auth.oxy.so/silent-auth
|
|
124
|
+
* 2. If user has valid session at auth.oxy.so, it sends token via postMessage
|
|
125
|
+
* 3. If not, iframe responds with null (no error thrown)
|
|
126
|
+
*
|
|
127
|
+
* This should be called on app startup to check for existing sessions.
|
|
128
|
+
*
|
|
129
|
+
* @param options - Silent auth options
|
|
130
|
+
* @returns Session if user is signed in, null otherwise
|
|
131
|
+
*
|
|
132
|
+
* @example
|
|
133
|
+
* ```typescript
|
|
134
|
+
* useEffect(() => {
|
|
135
|
+
* const checkAuth = async () => {
|
|
136
|
+
* const session = await oxyServices.silentSignIn();
|
|
137
|
+
* if (session) {
|
|
138
|
+
* setUser(session.user);
|
|
139
|
+
* }
|
|
140
|
+
* };
|
|
141
|
+
* checkAuth();
|
|
142
|
+
* }, []);
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
async silentSignIn(options = {}) {
|
|
146
|
+
if (typeof window === 'undefined') {
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
const timeout = options.timeout || this.constructor.SILENT_TIMEOUT;
|
|
150
|
+
const nonce = this.generateNonce();
|
|
151
|
+
const clientId = window.location.origin;
|
|
152
|
+
const iframe = document.createElement('iframe');
|
|
153
|
+
iframe.style.display = 'none';
|
|
154
|
+
iframe.style.position = 'absolute';
|
|
155
|
+
iframe.style.width = '0';
|
|
156
|
+
iframe.style.height = '0';
|
|
157
|
+
iframe.style.border = 'none';
|
|
158
|
+
const silentUrl = `${this.constructor.AUTH_URL}/auth/silent?` + `client_id=${encodeURIComponent(clientId)}&` + `nonce=${nonce}`;
|
|
159
|
+
iframe.src = silentUrl;
|
|
160
|
+
document.body.appendChild(iframe);
|
|
161
|
+
try {
|
|
162
|
+
const session = await this.waitForIframeAuth(iframe, timeout, clientId);
|
|
163
|
+
if (session && session.accessToken) {
|
|
164
|
+
this.httpService.setTokens(session.accessToken);
|
|
165
|
+
}
|
|
166
|
+
return session;
|
|
167
|
+
} catch (error) {
|
|
168
|
+
return null;
|
|
169
|
+
} finally {
|
|
170
|
+
document.body.removeChild(iframe);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Open a centered popup window
|
|
176
|
+
*
|
|
177
|
+
* @private
|
|
178
|
+
*/
|
|
179
|
+
openCenteredPopup(url, title, width, height) {
|
|
180
|
+
const left = window.screenX + (window.outerWidth - width) / 2;
|
|
181
|
+
const top = window.screenY + (window.outerHeight - height) / 2;
|
|
182
|
+
const features = [`width=${width}`, `height=${height}`, `left=${left}`, `top=${top}`, 'toolbar=no', 'menubar=no', 'scrollbars=yes', 'resizable=yes', 'status=no', 'location=no'].join(',');
|
|
183
|
+
return window.open(url, title, features);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Wait for authentication response from popup
|
|
188
|
+
*
|
|
189
|
+
* @private
|
|
190
|
+
*/
|
|
191
|
+
async waitForPopupAuth(popup, expectedState, timeout) {
|
|
192
|
+
return new Promise((resolve, reject) => {
|
|
193
|
+
const timeoutId = setTimeout(() => {
|
|
194
|
+
cleanup();
|
|
195
|
+
reject(new OxyAuthenticationError('Authentication timeout'));
|
|
196
|
+
}, timeout);
|
|
197
|
+
const messageHandler = event => {
|
|
198
|
+
// CRITICAL: Verify origin to prevent XSS attacks
|
|
199
|
+
if (event.origin !== this.constructor.AUTH_URL) {
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
const {
|
|
203
|
+
type,
|
|
204
|
+
state,
|
|
205
|
+
session,
|
|
206
|
+
error
|
|
207
|
+
} = event.data;
|
|
208
|
+
if (type !== 'oxy_auth_response') {
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// Verify state parameter to prevent CSRF attacks
|
|
213
|
+
if (state !== expectedState) {
|
|
214
|
+
cleanup();
|
|
215
|
+
reject(new OxyAuthenticationError('Invalid state parameter. Possible CSRF attack.'));
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
cleanup();
|
|
219
|
+
if (error) {
|
|
220
|
+
reject(new OxyAuthenticationError(error));
|
|
221
|
+
} else if (session) {
|
|
222
|
+
resolve(session);
|
|
223
|
+
} else {
|
|
224
|
+
reject(new OxyAuthenticationError('No session received from authentication server'));
|
|
225
|
+
}
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
// Poll to detect if user closed the popup
|
|
229
|
+
const pollInterval = setInterval(() => {
|
|
230
|
+
if (popup.closed) {
|
|
231
|
+
cleanup();
|
|
232
|
+
reject(new OxyAuthenticationError('Authentication cancelled by user'));
|
|
233
|
+
}
|
|
234
|
+
}, 500);
|
|
235
|
+
const cleanup = () => {
|
|
236
|
+
clearTimeout(timeoutId);
|
|
237
|
+
clearInterval(pollInterval);
|
|
238
|
+
window.removeEventListener('message', messageHandler);
|
|
239
|
+
if (!popup.closed) {
|
|
240
|
+
popup.close();
|
|
241
|
+
}
|
|
242
|
+
};
|
|
243
|
+
window.addEventListener('message', messageHandler);
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Wait for authentication response from iframe
|
|
249
|
+
*
|
|
250
|
+
* @private
|
|
251
|
+
*/
|
|
252
|
+
async waitForIframeAuth(iframe, timeout, expectedOrigin) {
|
|
253
|
+
return new Promise(resolve => {
|
|
254
|
+
const timeoutId = setTimeout(() => {
|
|
255
|
+
cleanup();
|
|
256
|
+
resolve(null); // Silent failure - don't throw
|
|
257
|
+
}, timeout);
|
|
258
|
+
const messageHandler = event => {
|
|
259
|
+
// Verify origin
|
|
260
|
+
if (event.origin !== this.constructor.AUTH_URL) {
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
const {
|
|
264
|
+
type,
|
|
265
|
+
session
|
|
266
|
+
} = event.data;
|
|
267
|
+
if (type !== 'oxy_silent_auth') {
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
cleanup();
|
|
271
|
+
resolve(session || null);
|
|
272
|
+
};
|
|
273
|
+
const cleanup = () => {
|
|
274
|
+
clearTimeout(timeoutId);
|
|
275
|
+
window.removeEventListener('message', messageHandler);
|
|
276
|
+
};
|
|
277
|
+
window.addEventListener('message', messageHandler);
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* Build authentication URL with query parameters
|
|
283
|
+
*
|
|
284
|
+
* @private
|
|
285
|
+
*/
|
|
286
|
+
buildAuthUrl(params) {
|
|
287
|
+
const url = new URL(`${this.constructor.AUTH_URL}/${params.mode}`);
|
|
288
|
+
url.searchParams.set('response_type', 'token');
|
|
289
|
+
url.searchParams.set('client_id', params.clientId);
|
|
290
|
+
url.searchParams.set('redirect_uri', params.redirectUri);
|
|
291
|
+
url.searchParams.set('state', params.state);
|
|
292
|
+
url.searchParams.set('nonce', params.nonce);
|
|
293
|
+
return url.toString();
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
/**
|
|
297
|
+
* Generate cryptographically secure state for CSRF protection
|
|
298
|
+
*
|
|
299
|
+
* @private
|
|
300
|
+
*/
|
|
301
|
+
generateState() {
|
|
302
|
+
if (typeof window !== 'undefined' && window.crypto && window.crypto.randomUUID) {
|
|
303
|
+
return window.crypto.randomUUID();
|
|
304
|
+
}
|
|
305
|
+
return `${Date.now()}-${Math.random().toString(36).substring(2, 15)}`;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
/**
|
|
309
|
+
* Generate nonce for replay attack prevention
|
|
310
|
+
*
|
|
311
|
+
* @private
|
|
312
|
+
*/
|
|
313
|
+
generateNonce() {
|
|
314
|
+
if (typeof window !== 'undefined' && window.crypto && window.crypto.randomUUID) {
|
|
315
|
+
return window.crypto.randomUUID();
|
|
316
|
+
}
|
|
317
|
+
return `${Date.now()}-${Math.random().toString(36).substring(2, 15)}`;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
/**
|
|
321
|
+
* Store auth state in session storage
|
|
322
|
+
*
|
|
323
|
+
* @private
|
|
324
|
+
*/
|
|
325
|
+
storeAuthState(state, nonce) {
|
|
326
|
+
if (typeof window !== 'undefined' && window.sessionStorage) {
|
|
327
|
+
sessionStorage.setItem(`oxy_auth_state_${state}`, JSON.stringify({
|
|
328
|
+
nonce,
|
|
329
|
+
timestamp: Date.now()
|
|
330
|
+
}));
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
/**
|
|
335
|
+
* Clear auth state from session storage
|
|
336
|
+
*
|
|
337
|
+
* @private
|
|
338
|
+
*/
|
|
339
|
+
clearAuthState(state) {
|
|
340
|
+
if (typeof window !== 'undefined' && window.sessionStorage) {
|
|
341
|
+
sessionStorage.removeItem(`oxy_auth_state_${state}`);
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
// Export the mixin function as both named and default
|
|
348
|
+
export { OxyServicesPopupAuthMixin as PopupAuthMixin };
|
|
349
|
+
//# sourceMappingURL=OxyServices.popup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["OxyAuthenticationError","OxyServicesPopupAuthMixin","Base","constructor","args","AUTH_URL","POPUP_WIDTH","POPUP_HEIGHT","POPUP_TIMEOUT","SILENT_TIMEOUT","signInWithPopup","options","window","state","generateState","nonce","generateNonce","storeAuthState","width","height","timeout","mode","authUrl","buildAuthUrl","clientId","location","origin","redirectUri","popup","openCenteredPopup","session","waitForPopupAuth","accessToken","httpService","setTokens","error","clearAuthState","signUpWithPopup","silentSignIn","iframe","document","createElement","style","display","position","border","silentUrl","encodeURIComponent","src","body","appendChild","waitForIframeAuth","removeChild","url","title","left","screenX","outerWidth","top","screenY","outerHeight","features","join","open","expectedState","Promise","resolve","reject","timeoutId","setTimeout","cleanup","messageHandler","event","type","data","pollInterval","setInterval","closed","clearTimeout","clearInterval","removeEventListener","close","addEventListener","expectedOrigin","params","URL","searchParams","set","toString","crypto","randomUUID","Date","now","Math","random","substring","sessionStorage","setItem","JSON","stringify","timestamp","removeItem","PopupAuthMixin"],"sourceRoot":"../../../../src","sources":["core/mixins/OxyServices.popup.ts"],"mappings":"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","ignoreList":[]}
|