@okta/okta-auth-js 7.0.0 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/README.md +2 -0
- package/cjs/authn/AuthnTransactionImpl.js +6 -8
- package/cjs/authn/AuthnTransactionImpl.js.map +1 -1
- package/cjs/authn/api.js +3 -18
- package/cjs/authn/api.js.map +1 -1
- package/cjs/authn/factory.js +1 -7
- package/cjs/authn/factory.js.map +1 -1
- package/cjs/authn/index.js +0 -5
- package/cjs/authn/index.js.map +1 -1
- package/cjs/authn/mixin.js +14 -22
- package/cjs/authn/mixin.js.map +1 -1
- package/cjs/authn/util/flattenEmbedded.js +5 -12
- package/cjs/authn/util/flattenEmbedded.js.map +1 -1
- package/cjs/authn/util/link2fn.js +0 -22
- package/cjs/authn/util/link2fn.js.map +1 -1
- package/cjs/authn/util/links2fns.js +0 -12
- package/cjs/authn/util/links2fns.js.map +1 -1
- package/cjs/authn/util/poll.js +9 -27
- package/cjs/authn/util/poll.js.map +1 -1
- package/cjs/authn/util/stateToken.js +3 -4
- package/cjs/authn/util/stateToken.js.map +1 -1
- package/cjs/base/factory.js +6 -14
- package/cjs/base/factory.js.map +1 -1
- package/cjs/base/index.js +0 -5
- package/cjs/base/index.js.map +1 -1
- package/cjs/base/options.js +1 -2
- package/cjs/base/options.js.map +1 -1
- package/cjs/browser/browserStorage.js +15 -43
- package/cjs/browser/browserStorage.js.map +1 -1
- package/cjs/browser/fingerprint.js +3 -15
- package/cjs/browser/fingerprint.js.map +1 -1
- package/cjs/clock.js +5 -7
- package/cjs/clock.js.map +1 -1
- package/cjs/constants.js +4 -3
- package/cjs/constants.js.map +1 -1
- package/cjs/core/AuthStateManager.js +24 -48
- package/cjs/core/AuthStateManager.js.map +1 -1
- package/cjs/core/ServiceManager/browser.js +13 -33
- package/cjs/core/ServiceManager/browser.js.map +1 -1
- package/cjs/core/ServiceManager/index.js +0 -1
- package/cjs/core/ServiceManager/index.js.map +1 -1
- package/cjs/core/ServiceManager/node.js +3 -9
- package/cjs/core/ServiceManager/node.js.map +1 -1
- package/cjs/core/factory.js +0 -7
- package/cjs/core/factory.js.map +1 -1
- package/cjs/core/index.js +0 -13
- package/cjs/core/index.js.map +1 -1
- package/cjs/core/mixin.js +16 -20
- package/cjs/core/mixin.js.map +1 -1
- package/cjs/core/options.js +1 -3
- package/cjs/core/options.js.map +1 -1
- package/cjs/core/storage.js +0 -2
- package/cjs/core/storage.js.map +1 -1
- package/cjs/core/types/index.js +0 -5
- package/cjs/core/types/index.js.map +1 -1
- package/cjs/crypto/base64.js +9 -22
- package/cjs/crypto/base64.js.map +1 -1
- package/cjs/crypto/browser.js +0 -4
- package/cjs/crypto/browser.js.map +1 -1
- package/cjs/crypto/index.js +0 -9
- package/cjs/crypto/index.js.map +1 -1
- package/cjs/crypto/node.js +0 -13
- package/cjs/crypto/node.js.map +1 -1
- package/cjs/crypto/oidcHash.js +1 -4
- package/cjs/crypto/oidcHash.js.map +1 -1
- package/cjs/crypto/verifyToken.js +6 -7
- package/cjs/crypto/verifyToken.js.map +1 -1
- package/cjs/crypto/webcrypto.js +0 -1
- package/cjs/crypto/webcrypto.js.map +1 -1
- package/cjs/errors/AuthApiError.js +1 -7
- package/cjs/errors/AuthApiError.js.map +1 -1
- package/cjs/errors/AuthPollStopError.js +1 -5
- package/cjs/errors/AuthPollStopError.js.map +1 -1
- package/cjs/errors/AuthSdkError.js +1 -6
- package/cjs/errors/AuthSdkError.js.map +1 -1
- package/cjs/errors/CustomError.js +1 -4
- package/cjs/errors/CustomError.js.map +1 -1
- package/cjs/errors/OAuthError.js +4 -7
- package/cjs/errors/OAuthError.js.map +1 -1
- package/cjs/errors/index.js +1 -9
- package/cjs/errors/index.js.map +1 -1
- package/cjs/exports/authn.js +0 -9
- package/cjs/exports/authn.js.map +1 -1
- package/cjs/exports/cdn/authn.js +0 -2
- package/cjs/exports/cdn/authn.js.map +1 -1
- package/cjs/exports/cdn/core.js +0 -2
- package/cjs/exports/cdn/core.js.map +1 -1
- package/cjs/exports/cdn/default.js +0 -2
- package/cjs/exports/cdn/default.js.map +1 -1
- package/cjs/exports/cdn/idx.js +0 -2
- package/cjs/exports/cdn/idx.js.map +1 -1
- package/cjs/exports/cdn/myaccount.js +0 -2
- package/cjs/exports/cdn/myaccount.js.map +1 -1
- package/cjs/exports/common.js +0 -22
- package/cjs/exports/common.js.map +1 -1
- package/cjs/exports/core.js +0 -9
- package/cjs/exports/core.js.map +1 -1
- package/cjs/exports/default.js +2 -12
- package/cjs/exports/default.js.map +1 -1
- package/cjs/exports/idx.js +3 -7
- package/cjs/exports/idx.js.map +1 -1
- package/cjs/exports/myaccount.js +0 -9
- package/cjs/exports/myaccount.js.map +1 -1
- package/cjs/features.js +1 -18
- package/cjs/features.js.map +1 -1
- package/cjs/fetch/fetchRequest.js +6 -20
- package/cjs/fetch/fetchRequest.js.map +1 -1
- package/cjs/http/OktaUserAgent.js +3 -11
- package/cjs/http/OktaUserAgent.js.map +1 -1
- package/cjs/http/headers.js +1 -1
- package/cjs/http/headers.js.map +1 -1
- package/cjs/http/index.js +0 -11
- package/cjs/http/index.js.map +1 -1
- package/cjs/http/mixin.js +2 -10
- package/cjs/http/mixin.js.map +1 -1
- package/cjs/http/options.js +1 -5
- package/cjs/http/options.js.map +1 -1
- package/cjs/http/request.js +75 -57
- package/cjs/http/request.js.map +1 -1
- package/cjs/idx/IdxTransactionManager.js +2 -22
- package/cjs/idx/IdxTransactionManager.js.map +1 -1
- package/cjs/idx/authenticate.js +3 -5
- package/cjs/idx/authenticate.js.map +1 -1
- package/cjs/idx/authenticator/Authenticator.js +2 -4
- package/cjs/idx/authenticator/Authenticator.js.map +1 -1
- package/cjs/idx/authenticator/OktaPassword.js +2 -10
- package/cjs/idx/authenticator/OktaPassword.js.map +1 -1
- package/cjs/idx/authenticator/OktaVerifyTotp.js +0 -6
- package/cjs/idx/authenticator/OktaVerifyTotp.js.map +1 -1
- package/cjs/idx/authenticator/SecurityQuestionEnrollment.js +0 -10
- package/cjs/idx/authenticator/SecurityQuestionEnrollment.js.map +1 -1
- package/cjs/idx/authenticator/SecurityQuestionVerification.js +1 -10
- package/cjs/idx/authenticator/SecurityQuestionVerification.js.map +1 -1
- package/cjs/idx/authenticator/VerificationCodeAuthenticator.js +2 -10
- package/cjs/idx/authenticator/VerificationCodeAuthenticator.js.map +1 -1
- package/cjs/idx/authenticator/WebauthnEnrollment.js +0 -8
- package/cjs/idx/authenticator/WebauthnEnrollment.js.map +1 -1
- package/cjs/idx/authenticator/WebauthnVerification.js +0 -8
- package/cjs/idx/authenticator/WebauthnVerification.js.map +1 -1
- package/cjs/idx/authenticator/getAuthenticator.js +0 -15
- package/cjs/idx/authenticator/getAuthenticator.js.map +1 -1
- package/cjs/idx/authenticator/index.js +0 -15
- package/cjs/idx/authenticator/index.js.map +1 -1
- package/cjs/idx/authenticator/util.js +8 -18
- package/cjs/idx/authenticator/util.js.map +1 -1
- package/cjs/idx/cancel.js +3 -4
- package/cjs/idx/cancel.js.map +1 -1
- package/cjs/idx/emailVerify.js +5 -13
- package/cjs/idx/emailVerify.js.map +1 -1
- package/cjs/idx/factory/OktaAuthIdx.js +0 -3
- package/cjs/idx/factory/OktaAuthIdx.js.map +1 -1
- package/cjs/idx/factory/api.js +1 -17
- package/cjs/idx/factory/api.js.map +1 -1
- package/cjs/idx/factory/index.js +0 -3
- package/cjs/idx/factory/index.js.map +1 -1
- package/cjs/idx/flow/AccountUnlockFlow.js +1 -2
- package/cjs/idx/flow/AccountUnlockFlow.js.map +1 -1
- package/cjs/idx/flow/AuthenticationFlow.js +1 -2
- package/cjs/idx/flow/AuthenticationFlow.js.map +1 -1
- package/cjs/idx/flow/FlowSpecification.js +2 -13
- package/cjs/idx/flow/FlowSpecification.js.map +1 -1
- package/cjs/idx/flow/PasswordRecoveryFlow.js +1 -2
- package/cjs/idx/flow/PasswordRecoveryFlow.js.map +1 -1
- package/cjs/idx/flow/RegistrationFlow.js +1 -2
- package/cjs/idx/flow/RegistrationFlow.js.map +1 -1
- package/cjs/idx/flow/index.js +0 -11
- package/cjs/idx/flow/index.js.map +1 -1
- package/cjs/idx/handleInteractionCodeRedirect.js +7 -12
- package/cjs/idx/handleInteractionCodeRedirect.js.map +1 -1
- package/cjs/idx/idxState/index.js +1 -11
- package/cjs/idx/idxState/index.js.map +1 -1
- package/cjs/idx/idxState/v1/actionParser.js +1 -12
- package/cjs/idx/idxState/v1/actionParser.js.map +1 -1
- package/cjs/idx/idxState/v1/generateIdxAction.js +10 -15
- package/cjs/idx/idxState/v1/generateIdxAction.js.map +1 -1
- package/cjs/idx/idxState/v1/idxResponseParser.js +7 -23
- package/cjs/idx/idxState/v1/idxResponseParser.js.map +1 -1
- package/cjs/idx/idxState/v1/makeIdxState.js +2 -10
- package/cjs/idx/idxState/v1/makeIdxState.js.map +1 -1
- package/cjs/idx/idxState/v1/parsers.js +0 -2
- package/cjs/idx/idxState/v1/parsers.js.map +1 -1
- package/cjs/idx/idxState/v1/remediationParser.js +2 -4
- package/cjs/idx/idxState/v1/remediationParser.js.map +1 -1
- package/cjs/idx/index.js +0 -26
- package/cjs/idx/index.js.map +1 -1
- package/cjs/idx/interact.js +18 -18
- package/cjs/idx/interact.js.map +1 -1
- package/cjs/idx/introspect.js +5 -14
- package/cjs/idx/introspect.js.map +1 -1
- package/cjs/idx/mixin.js +0 -9
- package/cjs/idx/mixin.js.map +1 -1
- package/cjs/idx/options.js +2 -3
- package/cjs/idx/options.js.map +1 -1
- package/cjs/idx/poll.js +1 -10
- package/cjs/idx/poll.js.map +1 -1
- package/cjs/idx/proceed.js +3 -9
- package/cjs/idx/proceed.js.map +1 -1
- package/cjs/idx/recoverPassword.js +3 -4
- package/cjs/idx/recoverPassword.js.map +1 -1
- package/cjs/idx/register.js +5 -11
- package/cjs/idx/register.js.map +1 -1
- package/cjs/idx/remediate.js +24 -45
- package/cjs/idx/remediate.js.map +1 -1
- package/cjs/idx/remediators/AuthenticatorEnrollmentData.js +7 -16
- package/cjs/idx/remediators/AuthenticatorEnrollmentData.js.map +1 -1
- package/cjs/idx/remediators/AuthenticatorVerificationData.js +7 -15
- package/cjs/idx/remediators/AuthenticatorVerificationData.js.map +1 -1
- package/cjs/idx/remediators/Base/AuthenticatorData.js +7 -22
- package/cjs/idx/remediators/Base/AuthenticatorData.js.map +1 -1
- package/cjs/idx/remediators/Base/Remediator.js +38 -67
- package/cjs/idx/remediators/Base/Remediator.js.map +1 -1
- package/cjs/idx/remediators/Base/SelectAuthenticator.js +13 -30
- package/cjs/idx/remediators/Base/SelectAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/Base/VerifyAuthenticator.js +5 -13
- package/cjs/idx/remediators/Base/VerifyAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/ChallengeAuthenticator.js +1 -5
- package/cjs/idx/remediators/ChallengeAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/ChallengePoll.js +1 -6
- package/cjs/idx/remediators/ChallengePoll.js.map +1 -1
- package/cjs/idx/remediators/EnrollAuthenticator.js +1 -5
- package/cjs/idx/remediators/EnrollAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/EnrollPoll.js +5 -12
- package/cjs/idx/remediators/EnrollPoll.js.map +1 -1
- package/cjs/idx/remediators/EnrollProfile.js +8 -30
- package/cjs/idx/remediators/EnrollProfile.js.map +1 -1
- package/cjs/idx/remediators/EnrollmentChannelData.js +5 -13
- package/cjs/idx/remediators/EnrollmentChannelData.js.map +1 -1
- package/cjs/idx/remediators/GenericRemediator/GenericRemediator.js +13 -19
- package/cjs/idx/remediators/GenericRemediator/GenericRemediator.js.map +1 -1
- package/cjs/idx/remediators/GenericRemediator/index.js +0 -1
- package/cjs/idx/remediators/GenericRemediator/index.js.map +1 -1
- package/cjs/idx/remediators/GenericRemediator/util.js +19 -31
- package/cjs/idx/remediators/GenericRemediator/util.js.map +1 -1
- package/cjs/idx/remediators/Identify.js +3 -12
- package/cjs/idx/remediators/Identify.js.map +1 -1
- package/cjs/idx/remediators/ReEnrollAuthenticator.js +3 -10
- package/cjs/idx/remediators/ReEnrollAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/RedirectIdp.js +1 -7
- package/cjs/idx/remediators/RedirectIdp.js.map +1 -1
- package/cjs/idx/remediators/ResetAuthenticator.js +1 -5
- package/cjs/idx/remediators/ResetAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js +3 -11
- package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js.map +1 -1
- package/cjs/idx/remediators/SelectAuthenticatorEnroll.js +1 -5
- package/cjs/idx/remediators/SelectAuthenticatorEnroll.js.map +1 -1
- package/cjs/idx/remediators/SelectAuthenticatorUnlockAccount.js +6 -15
- package/cjs/idx/remediators/SelectAuthenticatorUnlockAccount.js.map +1 -1
- package/cjs/idx/remediators/SelectEnrollProfile.js +1 -6
- package/cjs/idx/remediators/SelectEnrollProfile.js.map +1 -1
- package/cjs/idx/remediators/SelectEnrollmentChannel.js +5 -16
- package/cjs/idx/remediators/SelectEnrollmentChannel.js.map +1 -1
- package/cjs/idx/remediators/Skip.js +1 -6
- package/cjs/idx/remediators/Skip.js.map +1 -1
- package/cjs/idx/remediators/index.js +0 -39
- package/cjs/idx/remediators/index.js.map +1 -1
- package/cjs/idx/remediators/util.js +1 -7
- package/cjs/idx/remediators/util.js.map +1 -1
- package/cjs/idx/run.js +39 -54
- package/cjs/idx/run.js.map +1 -1
- package/cjs/idx/startTransaction.js +1 -2
- package/cjs/idx/startTransaction.js.map +1 -1
- package/cjs/idx/storage.js +3 -22
- package/cjs/idx/storage.js.map +1 -1
- package/cjs/idx/transactionMeta.js +24 -42
- package/cjs/idx/transactionMeta.js.map +1 -1
- package/cjs/idx/types/api.js +1 -9
- package/cjs/idx/types/api.js.map +1 -1
- package/cjs/idx/types/idx-js.js +3 -3
- package/cjs/idx/types/idx-js.js.map +1 -1
- package/cjs/idx/types/index.js +0 -7
- package/cjs/idx/types/index.js.map +1 -1
- package/cjs/idx/types/meta.js.map +1 -1
- package/cjs/idx/types/options.js.map +1 -1
- package/cjs/idx/unlockAccount.js +7 -11
- package/cjs/idx/unlockAccount.js.map +1 -1
- package/cjs/idx/util.js +24 -76
- package/cjs/idx/util.js.map +1 -1
- package/cjs/idx/webauthn.js +13 -18
- package/cjs/idx/webauthn.js.map +1 -1
- package/cjs/myaccount/api.js +0 -5
- package/cjs/myaccount/api.js.map +1 -1
- package/cjs/myaccount/emailApi.js +6 -21
- package/cjs/myaccount/emailApi.js.map +1 -1
- package/cjs/myaccount/factory.js +0 -3
- package/cjs/myaccount/factory.js.map +1 -1
- package/cjs/myaccount/index.js +0 -7
- package/cjs/myaccount/index.js.map +1 -1
- package/cjs/myaccount/mixin.js +0 -5
- package/cjs/myaccount/mixin.js.map +1 -1
- package/cjs/myaccount/phoneApi.js +5 -18
- package/cjs/myaccount/phoneApi.js.map +1 -1
- package/cjs/myaccount/profileApi.js +2 -9
- package/cjs/myaccount/profileApi.js.map +1 -1
- package/cjs/myaccount/request.js +12 -78
- package/cjs/myaccount/request.js.map +1 -1
- package/cjs/myaccount/transactions/Base.js +5 -7
- package/cjs/myaccount/transactions/Base.js.map +1 -1
- package/cjs/myaccount/transactions/EmailChallengeTransaction.js +5 -10
- package/cjs/myaccount/transactions/EmailChallengeTransaction.js.map +1 -1
- package/cjs/myaccount/transactions/EmailStatusTransaction.js +2 -7
- package/cjs/myaccount/transactions/EmailStatusTransaction.js.map +1 -1
- package/cjs/myaccount/transactions/EmailTransaction.js +5 -13
- package/cjs/myaccount/transactions/EmailTransaction.js.map +1 -1
- package/cjs/myaccount/transactions/PhoneTransaction.js +5 -12
- package/cjs/myaccount/transactions/PhoneTransaction.js.map +1 -1
- package/cjs/myaccount/transactions/ProfileSchemaTransaction.js +0 -5
- package/cjs/myaccount/transactions/ProfileSchemaTransaction.js.map +1 -1
- package/cjs/myaccount/transactions/ProfileTransaction.js +0 -5
- package/cjs/myaccount/transactions/ProfileTransaction.js.map +1 -1
- package/cjs/myaccount/transactions/index.js +0 -8
- package/cjs/myaccount/transactions/index.js.map +1 -1
- package/cjs/myaccount/types.js +0 -5
- package/cjs/myaccount/types.js.map +1 -1
- package/cjs/oidc/TokenManager.js +39 -100
- package/cjs/oidc/TokenManager.js.map +1 -1
- package/cjs/oidc/TransactionManager.js +19 -26
- package/cjs/oidc/TransactionManager.js.map +1 -1
- package/cjs/oidc/decodeToken.js +1 -5
- package/cjs/oidc/decodeToken.js.map +1 -1
- package/cjs/oidc/endpoints/authorize.js +9 -13
- package/cjs/oidc/endpoints/authorize.js.map +1 -1
- package/cjs/oidc/endpoints/index.js +0 -5
- package/cjs/oidc/endpoints/index.js.map +1 -1
- package/cjs/oidc/endpoints/token.js +5 -17
- package/cjs/oidc/endpoints/token.js.map +1 -1
- package/cjs/oidc/endpoints/well-known.js +7 -14
- package/cjs/oidc/endpoints/well-known.js.map +1 -1
- package/cjs/oidc/exchangeCodeForTokens.js +7 -12
- package/cjs/oidc/exchangeCodeForTokens.js.map +1 -1
- package/cjs/oidc/factory/OktaAuthOAuth.js +0 -6
- package/cjs/oidc/factory/OktaAuthOAuth.js.map +1 -1
- package/cjs/oidc/factory/api.js +6 -20
- package/cjs/oidc/factory/api.js.map +1 -1
- package/cjs/oidc/factory/index.js +0 -3
- package/cjs/oidc/factory/index.js.map +1 -1
- package/cjs/oidc/getToken.js +18 -30
- package/cjs/oidc/getToken.js.map +1 -1
- package/cjs/oidc/getUserInfo.js +1 -15
- package/cjs/oidc/getUserInfo.js.map +1 -1
- package/cjs/oidc/getWithPopup.js +4 -8
- package/cjs/oidc/getWithPopup.js.map +1 -1
- package/cjs/oidc/getWithRedirect.js +1 -8
- package/cjs/oidc/getWithRedirect.js.map +1 -1
- package/cjs/oidc/getWithoutPrompt.js +1 -5
- package/cjs/oidc/getWithoutPrompt.js.map +1 -1
- package/cjs/oidc/handleOAuthResponse.js +23 -40
- package/cjs/oidc/handleOAuthResponse.js.map +1 -1
- package/cjs/oidc/index.js +0 -32
- package/cjs/oidc/index.js.map +1 -1
- package/cjs/oidc/mixin/browser.js +6 -18
- package/cjs/oidc/mixin/browser.js.map +1 -1
- package/cjs/oidc/mixin/index.js +37 -89
- package/cjs/oidc/mixin/index.js.map +1 -1
- package/cjs/oidc/mixin/node.js +2 -9
- package/cjs/oidc/mixin/node.js.map +1 -1
- package/cjs/oidc/options/OAuthOptionsConstructor.js +17 -24
- package/cjs/oidc/options/OAuthOptionsConstructor.js.map +1 -1
- package/cjs/oidc/options/browser.js.map +1 -1
- package/cjs/oidc/options/index.js +0 -1
- package/cjs/oidc/options/index.js.map +1 -1
- package/cjs/oidc/options/node.js.map +1 -1
- package/cjs/oidc/parseFromUrl.js +1 -32
- package/cjs/oidc/parseFromUrl.js.map +1 -1
- package/cjs/oidc/renewToken.js +5 -16
- package/cjs/oidc/renewToken.js.map +1 -1
- package/cjs/oidc/renewTokens.js +3 -15
- package/cjs/oidc/renewTokens.js.map +1 -1
- package/cjs/oidc/renewTokensWithRefresh.js +3 -13
- package/cjs/oidc/renewTokensWithRefresh.js.map +1 -1
- package/cjs/oidc/revokeToken.js +3 -14
- package/cjs/oidc/revokeToken.js.map +1 -1
- package/cjs/oidc/storage.js +0 -8
- package/cjs/oidc/storage.js.map +1 -1
- package/cjs/oidc/types/Token.js +1 -5
- package/cjs/oidc/types/Token.js.map +1 -1
- package/cjs/oidc/types/TokenManager.js +1 -1
- package/cjs/oidc/types/TokenManager.js.map +1 -1
- package/cjs/oidc/types/Transaction.js +1 -12
- package/cjs/oidc/types/Transaction.js.map +1 -1
- package/cjs/oidc/types/UserClaims.js.map +1 -1
- package/cjs/oidc/types/api.js.map +1 -1
- package/cjs/oidc/types/index.js +0 -21
- package/cjs/oidc/types/index.js.map +1 -1
- package/cjs/oidc/types/meta.js.map +1 -1
- package/cjs/oidc/types/options.js.map +1 -1
- package/cjs/oidc/types/proto.js.map +1 -1
- package/cjs/oidc/util/browser.js +4 -13
- package/cjs/oidc/util/browser.js.map +1 -1
- package/cjs/oidc/util/defaultTokenParams.js +5 -5
- package/cjs/oidc/util/defaultTokenParams.js.map +1 -1
- package/cjs/oidc/util/errors.js +3 -8
- package/cjs/oidc/util/errors.js.map +1 -1
- package/cjs/oidc/util/index.js +0 -24
- package/cjs/oidc/util/index.js.map +1 -1
- package/cjs/oidc/util/loginRedirect.js +11 -25
- package/cjs/oidc/util/loginRedirect.js.map +1 -1
- package/cjs/oidc/util/oauth.js +3 -12
- package/cjs/oidc/util/oauth.js.map +1 -1
- package/cjs/oidc/util/oauthMeta.js +5 -6
- package/cjs/oidc/util/oauthMeta.js.map +1 -1
- package/cjs/oidc/util/pkce.js +1 -12
- package/cjs/oidc/util/pkce.js.map +1 -1
- package/cjs/oidc/util/prepareTokenParams.js +13 -26
- package/cjs/oidc/util/prepareTokenParams.js.map +1 -1
- package/cjs/oidc/util/refreshToken.js +0 -7
- package/cjs/oidc/util/refreshToken.js.map +1 -1
- package/cjs/oidc/util/sharedStorage.js +0 -8
- package/cjs/oidc/util/sharedStorage.js.map +1 -1
- package/cjs/oidc/util/urlParams.js +9 -12
- package/cjs/oidc/util/urlParams.js.map +1 -1
- package/cjs/oidc/util/validateClaims.js +9 -17
- package/cjs/oidc/util/validateClaims.js.map +1 -1
- package/cjs/oidc/util/validateToken.js +1 -6
- package/cjs/oidc/util/validateToken.js.map +1 -1
- package/cjs/oidc/verifyToken.js +13 -23
- package/cjs/oidc/verifyToken.js.map +1 -1
- package/cjs/server/serverStorage.js +9 -27
- package/cjs/server/serverStorage.js.map +1 -1
- package/cjs/services/AutoRenewService.js +1 -17
- package/cjs/services/AutoRenewService.js.map +1 -1
- package/cjs/services/LeaderElectionService.js +1 -23
- package/cjs/services/LeaderElectionService.js.map +1 -1
- package/cjs/services/SyncStorageService.js +3 -37
- package/cjs/services/SyncStorageService.js.map +1 -1
- package/cjs/services/index.js +0 -5
- package/cjs/services/index.js.map +1 -1
- package/cjs/session/api.js +1 -12
- package/cjs/session/api.js.map +1 -1
- package/cjs/session/factory.js +0 -2
- package/cjs/session/factory.js.map +1 -1
- package/cjs/session/index.js +0 -7
- package/cjs/session/index.js.map +1 -1
- package/cjs/session/mixin.js +2 -6
- package/cjs/session/mixin.js.map +1 -1
- package/cjs/storage/BaseStorageManager.js +13 -25
- package/cjs/storage/BaseStorageManager.js.map +1 -1
- package/cjs/storage/SavedObject.js +7 -19
- package/cjs/storage/SavedObject.js.map +1 -1
- package/cjs/storage/index.js +0 -9
- package/cjs/storage/index.js.map +1 -1
- package/cjs/storage/mixin.js +2 -4
- package/cjs/storage/mixin.js.map +1 -1
- package/cjs/storage/options/StorageOptionsConstructor.js +3 -6
- package/cjs/storage/options/StorageOptionsConstructor.js.map +1 -1
- package/cjs/storage/options/browser.js +7 -15
- package/cjs/storage/options/browser.js.map +1 -1
- package/cjs/storage/options/node.js +3 -6
- package/cjs/storage/options/node.js.map +1 -1
- package/cjs/util/PromiseQueue.js +7 -15
- package/cjs/util/PromiseQueue.js.map +1 -1
- package/cjs/util/console.js +3 -7
- package/cjs/util/console.js.map +1 -1
- package/cjs/util/index.js +0 -11
- package/cjs/util/index.js.map +1 -1
- package/cjs/util/misc.js +3 -8
- package/cjs/util/misc.js.map +1 -1
- package/cjs/util/object.js +9 -23
- package/cjs/util/object.js.map +1 -1
- package/cjs/util/types.js +1 -5
- package/cjs/util/types.js.map +1 -1
- package/cjs/util/url.js +5 -14
- package/cjs/util/url.js.map +1 -1
- package/dist/okta-auth-js.authn.min.analyzer.html +3 -3
- package/dist/okta-auth-js.authn.min.js +1 -1
- package/dist/okta-auth-js.authn.min.js.LICENSE.txt +2 -0
- package/dist/okta-auth-js.authn.min.js.map +1 -1
- package/dist/okta-auth-js.core.min.analyzer.html +3 -3
- package/dist/okta-auth-js.core.min.js +1 -1
- package/dist/okta-auth-js.core.min.js.LICENSE.txt +2 -0
- package/dist/okta-auth-js.core.min.js.map +1 -1
- package/dist/okta-auth-js.idx.min.analyzer.html +3 -3
- package/dist/okta-auth-js.idx.min.js +1 -1
- package/dist/okta-auth-js.idx.min.js.LICENSE.txt +2 -0
- package/dist/okta-auth-js.idx.min.js.map +1 -1
- package/dist/okta-auth-js.min.analyzer.html +3 -3
- package/dist/okta-auth-js.min.js +1 -1
- package/dist/okta-auth-js.min.js.LICENSE.txt +2 -0
- package/dist/okta-auth-js.min.js.map +1 -1
- package/dist/okta-auth-js.myaccount.min.analyzer.html +3 -3
- package/dist/okta-auth-js.myaccount.min.js +1 -1
- package/dist/okta-auth-js.myaccount.min.js.LICENSE.txt +2 -0
- package/dist/okta-auth-js.myaccount.min.js.map +1 -1
- package/dist/okta-auth-js.polyfill.js +1 -1
- package/dist/okta-auth-js.polyfill.js.map +1 -1
- package/esm/browser/http/OktaUserAgent.js +2 -2
- package/esm/browser/http/request.js +56 -23
- package/esm/browser/http/request.js.map +1 -1
- package/esm/browser/idx/interact.js +2 -2
- package/esm/browser/idx/interact.js.map +1 -1
- package/esm/browser/idx/run.js +3 -2
- package/esm/browser/idx/run.js.map +1 -1
- package/esm/browser/idx/transactionMeta.js +3 -2
- package/esm/browser/idx/transactionMeta.js.map +1 -1
- package/esm/browser/myaccount/request.js +2 -43
- package/esm/browser/myaccount/request.js.map +1 -1
- package/esm/browser/oidc/endpoints/authorize.js +1 -0
- package/esm/browser/oidc/endpoints/authorize.js.map +1 -1
- package/esm/browser/oidc/exchangeCodeForTokens.js +2 -1
- package/esm/browser/oidc/exchangeCodeForTokens.js.map +1 -1
- package/esm/browser/oidc/handleOAuthResponse.js +17 -16
- package/esm/browser/oidc/handleOAuthResponse.js.map +1 -1
- package/esm/browser/oidc/options/OAuthOptionsConstructor.js +2 -0
- package/esm/browser/oidc/options/OAuthOptionsConstructor.js.map +1 -1
- package/esm/browser/oidc/util/defaultTokenParams.js +3 -1
- package/esm/browser/oidc/util/defaultTokenParams.js.map +1 -1
- package/esm/browser/oidc/util/oauthMeta.js +1 -0
- package/esm/browser/oidc/util/oauthMeta.js.map +1 -1
- package/esm/browser/oidc/util/validateClaims.js +9 -4
- package/esm/browser/oidc/util/validateClaims.js.map +1 -1
- package/esm/browser/oidc/verifyToken.js +2 -2
- package/esm/browser/oidc/verifyToken.js.map +1 -1
- package/esm/browser/package.json +1 -1
- package/esm/node/http/OktaUserAgent.js +2 -2
- package/esm/node/http/request.js +56 -23
- package/esm/node/http/request.js.map +1 -1
- package/esm/node/idx/interact.js +2 -2
- package/esm/node/idx/interact.js.map +1 -1
- package/esm/node/idx/run.js +3 -2
- package/esm/node/idx/run.js.map +1 -1
- package/esm/node/idx/transactionMeta.js +3 -2
- package/esm/node/idx/transactionMeta.js.map +1 -1
- package/esm/node/myaccount/request.js +2 -43
- package/esm/node/myaccount/request.js.map +1 -1
- package/esm/node/oidc/endpoints/authorize.js +1 -0
- package/esm/node/oidc/endpoints/authorize.js.map +1 -1
- package/esm/node/oidc/exchangeCodeForTokens.js +2 -1
- package/esm/node/oidc/exchangeCodeForTokens.js.map +1 -1
- package/esm/node/oidc/handleOAuthResponse.js +17 -16
- package/esm/node/oidc/handleOAuthResponse.js.map +1 -1
- package/esm/node/oidc/options/OAuthOptionsConstructor.js +2 -0
- package/esm/node/oidc/options/OAuthOptionsConstructor.js.map +1 -1
- package/esm/node/oidc/util/defaultTokenParams.js +3 -1
- package/esm/node/oidc/util/defaultTokenParams.js.map +1 -1
- package/esm/node/oidc/util/oauthMeta.js +1 -0
- package/esm/node/oidc/util/oauthMeta.js.map +1 -1
- package/esm/node/oidc/util/validateClaims.js +9 -4
- package/esm/node/oidc/util/validateClaims.js.map +1 -1
- package/esm/node/oidc/verifyToken.js +2 -2
- package/esm/node/oidc/verifyToken.js.map +1 -1
- package/esm/node/package.json +1 -1
- package/package.json +12 -13
- package/polyfill/index.js +8 -5
- package/types/lib/core/options.d.ts +2 -0
- package/types/lib/idx/interact.d.ts +1 -0
- package/types/lib/idx/options.d.ts +2 -0
- package/types/lib/idx/types/meta.d.ts +1 -0
- package/types/lib/idx/types/options.d.ts +1 -0
- package/types/lib/oidc/options/OAuthOptionsConstructor.d.ts +2 -0
- package/types/lib/oidc/types/UserClaims.d.ts +1 -0
- package/types/lib/oidc/types/api.d.ts +1 -0
- package/types/lib/oidc/types/meta.d.ts +1 -1
- package/types/lib/oidc/types/options.d.ts +2 -1
- package/types/lib/oidc/types/proto.d.ts +1 -0
- package/umd/authn.js +1 -1
- package/umd/authn.js.LICENSE.txt +2 -0
- package/umd/authn.js.map +1 -1
- package/umd/core.js +1 -1
- package/umd/core.js.LICENSE.txt +2 -0
- package/umd/core.js.map +1 -1
- package/umd/default.js +1 -1
- package/umd/default.js.LICENSE.txt +2 -0
- package/umd/default.js.map +1 -1
- package/umd/idx.js +1 -1
- package/umd/idx.js.LICENSE.txt +2 -0
- package/umd/idx.js.map +1 -1
- package/umd/myaccount.js +1 -1
- package/umd/myaccount.js.LICENSE.txt +2 -0
- package/umd/myaccount.js.map +1 -1
|
@@ -1,19 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
exports.default = void 0;
|
|
6
|
-
|
|
7
5
|
var _jsCookie = _interopRequireDefault(require("js-cookie"));
|
|
8
|
-
|
|
9
6
|
var _AuthSdkError = _interopRequireDefault(require("../errors/AuthSdkError"));
|
|
10
|
-
|
|
11
7
|
var _util = require("../util");
|
|
12
|
-
|
|
13
8
|
var _features = require("../features");
|
|
14
|
-
|
|
15
9
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
16
|
-
|
|
17
10
|
/*!
|
|
18
11
|
* Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
|
|
19
12
|
* The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
|
|
@@ -26,6 +19,7 @@ var _features = require("../features");
|
|
|
26
19
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
27
20
|
*
|
|
28
21
|
*/
|
|
22
|
+
|
|
29
23
|
// Building this as an object allows us to mock the functions in our tests
|
|
30
24
|
var storageUtil = {
|
|
31
25
|
// IE11 bug that Microsoft doesn't plan to fix
|
|
@@ -48,74 +42,61 @@ var storageUtil = {
|
|
|
48
42
|
},
|
|
49
43
|
testStorageType: function (storageType) {
|
|
50
44
|
var supported = false;
|
|
51
|
-
|
|
52
45
|
switch (storageType) {
|
|
53
46
|
case 'sessionStorage':
|
|
54
47
|
supported = this.browserHasSessionStorage();
|
|
55
48
|
break;
|
|
56
|
-
|
|
57
49
|
case 'localStorage':
|
|
58
50
|
supported = this.browserHasLocalStorage();
|
|
59
51
|
break;
|
|
60
|
-
|
|
61
52
|
case 'cookie':
|
|
62
53
|
case 'memory':
|
|
63
54
|
supported = true;
|
|
64
55
|
break;
|
|
65
|
-
|
|
66
56
|
default:
|
|
67
57
|
supported = false;
|
|
68
58
|
break;
|
|
69
59
|
}
|
|
70
|
-
|
|
71
60
|
return supported;
|
|
72
61
|
},
|
|
73
62
|
getStorageByType: function (storageType, options) {
|
|
74
63
|
let storageProvider;
|
|
75
|
-
|
|
76
64
|
switch (storageType) {
|
|
77
65
|
case 'sessionStorage':
|
|
78
66
|
storageProvider = this.getSessionStorage();
|
|
79
67
|
break;
|
|
80
|
-
|
|
81
68
|
case 'localStorage':
|
|
82
69
|
storageProvider = this.getLocalStorage();
|
|
83
70
|
break;
|
|
84
|
-
|
|
85
71
|
case 'cookie':
|
|
86
72
|
storageProvider = this.getCookieStorage(options);
|
|
87
73
|
break;
|
|
88
|
-
|
|
89
74
|
case 'memory':
|
|
90
75
|
storageProvider = this.getInMemoryStorage();
|
|
91
76
|
break;
|
|
92
|
-
|
|
93
77
|
default:
|
|
94
78
|
throw new _AuthSdkError.default(`Unrecognized storage option: ${storageType}`);
|
|
95
79
|
break;
|
|
96
80
|
}
|
|
97
|
-
|
|
98
81
|
return storageProvider;
|
|
99
82
|
},
|
|
100
83
|
findStorageType: function (types) {
|
|
101
84
|
let curType;
|
|
102
85
|
let nextType;
|
|
103
86
|
types = types.slice(); // copy array
|
|
104
|
-
|
|
105
87
|
curType = types.shift();
|
|
106
88
|
nextType = types.length ? types[0] : null;
|
|
107
|
-
|
|
108
89
|
if (!nextType) {
|
|
109
90
|
return curType;
|
|
110
91
|
}
|
|
111
|
-
|
|
112
92
|
if (this.testStorageType(curType)) {
|
|
113
93
|
return curType;
|
|
114
|
-
}
|
|
115
|
-
|
|
94
|
+
}
|
|
116
95
|
|
|
117
|
-
|
|
96
|
+
// preferred type was unsupported.
|
|
97
|
+
(0, _util.warn)(`This browser doesn't support ${curType}. Switching to ${nextType}.`);
|
|
118
98
|
|
|
99
|
+
// fallback to the next type. this is a recursive call
|
|
119
100
|
return this.findStorageType(types);
|
|
120
101
|
},
|
|
121
102
|
getLocalStorage: function () {
|
|
@@ -123,7 +104,6 @@ var storageUtil = {
|
|
|
123
104
|
if ((0, _features.isIE11OrLess)() && !window.onstorage) {
|
|
124
105
|
window.onstorage = function () {};
|
|
125
106
|
}
|
|
126
|
-
|
|
127
107
|
return localStorage;
|
|
128
108
|
},
|
|
129
109
|
getSessionStorage: function () {
|
|
@@ -134,11 +114,9 @@ var storageUtil = {
|
|
|
134
114
|
const secure = options.secure;
|
|
135
115
|
const sameSite = options.sameSite;
|
|
136
116
|
const sessionCookie = options.sessionCookie;
|
|
137
|
-
|
|
138
117
|
if (typeof secure === 'undefined' || typeof sameSite === 'undefined') {
|
|
139
118
|
throw new _AuthSdkError.default('getCookieStorage: "secure" and "sameSite" options must be provided');
|
|
140
119
|
}
|
|
141
|
-
|
|
142
120
|
const storage = {
|
|
143
121
|
getItem: this.storage.get,
|
|
144
122
|
setItem: (key, value, expiresAt = '2200-01-01T00:00:00.000Z') => {
|
|
@@ -153,18 +131,16 @@ var storageUtil = {
|
|
|
153
131
|
this.storage.delete(key);
|
|
154
132
|
}
|
|
155
133
|
};
|
|
156
|
-
|
|
157
134
|
if (!options.useSeparateCookies) {
|
|
158
135
|
return storage;
|
|
159
|
-
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// Tokens are stored separately because cookies have size limits.
|
|
160
139
|
// Can only be used when storing an object value. Object properties will be saved to separate cookies.
|
|
161
140
|
// Each property of the object must also be an object.
|
|
162
|
-
|
|
163
|
-
|
|
164
141
|
return {
|
|
165
142
|
getItem: function (key) {
|
|
166
143
|
var data = storage.getItem(); // read all cookies
|
|
167
|
-
|
|
168
144
|
var value = {};
|
|
169
145
|
Object.keys(data).forEach(k => {
|
|
170
146
|
if (k.indexOf(key) === 0) {
|
|
@@ -172,19 +148,20 @@ var storageUtil = {
|
|
|
172
148
|
value[k.replace(`${key}_`, '')] = JSON.parse(data[k]); // populate with cookie data
|
|
173
149
|
}
|
|
174
150
|
});
|
|
151
|
+
|
|
175
152
|
return JSON.stringify(value);
|
|
176
153
|
},
|
|
177
154
|
setItem: function (key, value) {
|
|
178
155
|
var existingValues = JSON.parse(this.getItem(key));
|
|
179
|
-
value = JSON.parse(value);
|
|
180
|
-
|
|
156
|
+
value = JSON.parse(value);
|
|
157
|
+
// Set key-value pairs from input to cookies
|
|
181
158
|
Object.keys(value).forEach(k => {
|
|
182
159
|
var storageKey = key + '_' + k;
|
|
183
160
|
var valueToStore = JSON.stringify(value[k]);
|
|
184
161
|
storage.setItem(storageKey, valueToStore);
|
|
185
162
|
delete existingValues[k];
|
|
186
|
-
});
|
|
187
|
-
|
|
163
|
+
});
|
|
164
|
+
// Delete unmatched keys from existing cookies
|
|
188
165
|
Object.keys(existingValues).forEach(k => {
|
|
189
166
|
storage.removeItem(key + '_' + k);
|
|
190
167
|
});
|
|
@@ -212,7 +189,6 @@ var storageUtil = {
|
|
|
212
189
|
},
|
|
213
190
|
testStorage: function (storage) {
|
|
214
191
|
var key = 'okta-test-storage';
|
|
215
|
-
|
|
216
192
|
try {
|
|
217
193
|
storage.setItem(key, key);
|
|
218
194
|
storage.removeItem(key);
|
|
@@ -227,17 +203,16 @@ var storageUtil = {
|
|
|
227
203
|
sameSite,
|
|
228
204
|
secure
|
|
229
205
|
} = options;
|
|
230
|
-
|
|
231
206
|
if (typeof secure === 'undefined' || typeof sameSite === 'undefined') {
|
|
232
207
|
throw new _AuthSdkError.default('storage.set: "secure" and "sameSite" options must be provided');
|
|
233
208
|
}
|
|
234
|
-
|
|
235
209
|
var cookieOptions = {
|
|
236
210
|
path: options.path || '/',
|
|
237
211
|
secure,
|
|
238
212
|
sameSite
|
|
239
|
-
};
|
|
213
|
+
};
|
|
240
214
|
|
|
215
|
+
// eslint-disable-next-line no-extra-boolean-cast
|
|
241
216
|
if (!!Date.parse(expiresAt)) {
|
|
242
217
|
// Expires value can be converted to a Date object.
|
|
243
218
|
//
|
|
@@ -245,9 +220,7 @@ var storageUtil = {
|
|
|
245
220
|
// parsed as a Date object, the cookie will set as a session cookie.
|
|
246
221
|
cookieOptions.expires = new Date(expiresAt);
|
|
247
222
|
}
|
|
248
|
-
|
|
249
223
|
_jsCookie.default.set(name, value, cookieOptions);
|
|
250
|
-
|
|
251
224
|
return this.get(name);
|
|
252
225
|
},
|
|
253
226
|
get: function (name) {
|
|
@@ -255,7 +228,6 @@ var storageUtil = {
|
|
|
255
228
|
if (!arguments.length) {
|
|
256
229
|
return _jsCookie.default.get();
|
|
257
230
|
}
|
|
258
|
-
|
|
259
231
|
return _jsCookie.default.get(name);
|
|
260
232
|
},
|
|
261
233
|
delete: function (name) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browserStorage.js","names":["storageUtil","browserHasLocalStorage","storage","getLocalStorage","testStorage","e","browserHasSessionStorage","getSessionStorage","testStorageType","storageType","supported","getStorageByType","options","storageProvider","getCookieStorage","getInMemoryStorage","AuthSdkError","findStorageType","types","curType","nextType","slice","shift","length","warn","isIE11OrLess","window","onstorage","localStorage","sessionStorage","secure","sameSite","sessionCookie","getItem","get","setItem","key","value","expiresAt","set","removeItem","delete","useSeparateCookies","data","Object","keys","forEach","k","indexOf","replace","JSON","parse","stringify","existingValues","storageKey","valueToStore","inMemoryStore","name","cookieOptions","path","Date","expires","Cookies","arguments","remove"],"sources":["../../../lib/browser/browserStorage.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n\nimport Cookies from 'js-cookie';\nimport AuthSdkError from '../errors/AuthSdkError';\nimport {\n StorageOptions,\n CookieOptions,\n SimpleStorage,\n StorageType,\n StorageUtil,\n} from '../storage/types';\nimport { warn } from '../util';\nimport { isIE11OrLess } from '../features';\n\nexport interface CookieStorage extends SimpleStorage {\n setItem(key: string, value: any, expiresAt?: string | null): void; // can customize expiresAt\n getItem(key?: string): any; // if no key is passed, all cookies are returned\n removeItem(key: string); // remove a cookie\n}\n\nexport interface BrowserStorageUtil extends StorageUtil {\n browserHasLocalStorage(): boolean;\n browserHasSessionStorage(): boolean;\n getStorageByType(storageType: StorageType, options: StorageOptions): SimpleStorage;\n getLocalStorage(): Storage;\n getSessionStorage(): Storage;\n getInMemoryStorage(): SimpleStorage;\n getCookieStorage(options?: StorageOptions): CookieStorage;\n testStorage(storage: any): boolean;\n storage: Cookies;\n inMemoryStore: Record<string, unknown>;\n}\n\n// Building this as an object allows us to mock the functions in our tests\nvar storageUtil: BrowserStorageUtil = {\n\n // IE11 bug that Microsoft doesn't plan to fix\n // https://connect.microsoft.com/IE/Feedback/Details/1496040\n browserHasLocalStorage: function() {\n try {\n var storage = this.getLocalStorage();\n return this.testStorage(storage);\n } catch (e) {\n return false;\n }\n },\n\n browserHasSessionStorage: function() {\n try {\n var storage = this.getSessionStorage();\n return this.testStorage(storage);\n } catch (e) {\n return false;\n }\n },\n\n testStorageType: function(storageType: StorageType): boolean {\n var supported = false;\n switch (storageType) {\n case 'sessionStorage':\n supported = this.browserHasSessionStorage();\n break;\n case 'localStorage':\n supported = this.browserHasLocalStorage();\n break;\n case 'cookie':\n case 'memory':\n supported = true;\n break;\n default:\n supported = false;\n break;\n }\n return supported;\n },\n\n getStorageByType: function(storageType: StorageType, options?: StorageOptions): SimpleStorage {\n let storageProvider;\n switch (storageType) {\n case 'sessionStorage':\n storageProvider = this.getSessionStorage();\n break;\n case 'localStorage':\n storageProvider = this.getLocalStorage();\n break;\n case 'cookie':\n storageProvider = this.getCookieStorage(options);\n break;\n case 'memory':\n storageProvider = this.getInMemoryStorage();\n break;\n default:\n throw new AuthSdkError(`Unrecognized storage option: ${storageType}`);\n break;\n }\n return storageProvider;\n },\n\n findStorageType: function(types: StorageType[]) {\n let curType;\n let nextType;\n \n types = types.slice(); // copy array\n curType = types.shift();\n nextType = types.length ? types[0] : null;\n if (!nextType) {\n return curType;\n }\n\n if (this.testStorageType(curType)) {\n return curType;\n }\n\n // preferred type was unsupported.\n warn(`This browser doesn't support ${curType}. Switching to ${nextType}.`);\n\n // fallback to the next type. this is a recursive call\n return this.findStorageType(types);\n },\n\n getLocalStorage: function() {\n // Workaound for synchronization issue of LocalStorage cross tabs in IE11\n if (isIE11OrLess() && !window.onstorage) {\n window.onstorage = function() {};\n }\n \n return localStorage;\n },\n\n getSessionStorage: function() {\n return sessionStorage;\n },\n\n // Provides webStorage-like interface for cookies\n getCookieStorage: function(options): CookieStorage {\n const secure = options!.secure;\n const sameSite = options!.sameSite;\n const sessionCookie = options!.sessionCookie;\n if (typeof secure === 'undefined' || typeof sameSite === 'undefined') {\n throw new AuthSdkError('getCookieStorage: \"secure\" and \"sameSite\" options must be provided');\n }\n const storage: CookieStorage = {\n getItem: this.storage.get,\n setItem: (key, value, expiresAt = '2200-01-01T00:00:00.000Z') => {\n // By defauilt, cookie shouldn't expire\n expiresAt = (sessionCookie ? null : expiresAt) as string;\n this.storage.set(key, value, expiresAt, {\n secure: secure, \n sameSite: sameSite,\n });\n },\n removeItem: (key) => {\n this.storage.delete(key);\n },\n };\n\n if (!options!.useSeparateCookies) {\n return storage;\n }\n\n // Tokens are stored separately because cookies have size limits.\n // Can only be used when storing an object value. Object properties will be saved to separate cookies.\n // Each property of the object must also be an object.\n return {\n getItem: function(key) {\n var data = storage.getItem(); // read all cookies\n var value = {};\n Object.keys(data).forEach(k => {\n if (k.indexOf(key!) === 0) { // filter out unrelated cookies\n value[k.replace(`${key}_`, '')] = JSON.parse(data[k]); // populate with cookie data\n }\n });\n return JSON.stringify(value);\n },\n setItem: function(key, value) {\n var existingValues = JSON.parse(this.getItem(key));\n value = JSON.parse(value);\n // Set key-value pairs from input to cookies\n Object.keys(value).forEach(k => {\n var storageKey = key + '_' + k;\n var valueToStore = JSON.stringify(value[k]);\n storage.setItem(storageKey, valueToStore);\n delete existingValues[k];\n });\n // Delete unmatched keys from existing cookies\n Object.keys(existingValues).forEach(k => {\n storage.removeItem(key + '_' + k);\n });\n },\n removeItem: function(key) {\n var existingValues = JSON.parse(this.getItem(key));\n Object.keys(existingValues).forEach(k => {\n storage.removeItem(key + '_' + k);\n });\n },\n };\n },\n\n // Provides an in-memory solution\n inMemoryStore: {}, // override this for a unique memory store per instance\n getInMemoryStorage: function() {\n return {\n getItem: (key) => {\n return this.inMemoryStore[key];\n },\n setItem: (key, value) => {\n this.inMemoryStore[key] = value;\n },\n };\n },\n\n testStorage: function(storage) {\n var key = 'okta-test-storage';\n try {\n storage.setItem(key, key);\n storage.removeItem(key);\n return true;\n } catch (e) {\n return false;\n }\n },\n\n storage: {\n set: function(name: string, value: string, expiresAt: string, options: CookieOptions): string {\n const { sameSite, secure } = options;\n if (typeof secure === 'undefined' || typeof sameSite === 'undefined') {\n throw new AuthSdkError('storage.set: \"secure\" and \"sameSite\" options must be provided');\n }\n var cookieOptions: CookieOptions = {\n path: options.path || '/',\n secure,\n sameSite\n };\n\n // eslint-disable-next-line no-extra-boolean-cast\n if (!!(Date.parse(expiresAt))) {\n // Expires value can be converted to a Date object.\n //\n // If the 'expiresAt' value is not provided, or the value cannot be\n // parsed as a Date object, the cookie will set as a session cookie.\n cookieOptions.expires = new Date(expiresAt);\n }\n\n Cookies.set(name, value, cookieOptions);\n return this.get(name);\n },\n\n get: function(name?: string): string {\n // return all cookies when no args is provided\n if (!arguments.length) {\n return Cookies.get();\n }\n return Cookies.get(name);\n },\n\n delete: function(name: string): string {\n return Cookies.remove(name, { path: '/' });\n }\n }\n};\n\nexport default storageUtil;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browserStorage.js","names":["storageUtil","browserHasLocalStorage","storage","getLocalStorage","testStorage","e","browserHasSessionStorage","getSessionStorage","testStorageType","storageType","supported","getStorageByType","options","storageProvider","getCookieStorage","getInMemoryStorage","AuthSdkError","findStorageType","types","curType","nextType","slice","shift","length","warn","isIE11OrLess","window","onstorage","localStorage","sessionStorage","secure","sameSite","sessionCookie","getItem","get","setItem","key","value","expiresAt","set","removeItem","delete","useSeparateCookies","data","Object","keys","forEach","k","indexOf","replace","JSON","parse","stringify","existingValues","storageKey","valueToStore","inMemoryStore","name","cookieOptions","path","Date","expires","Cookies","arguments","remove"],"sources":["../../../lib/browser/browserStorage.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n\nimport Cookies from 'js-cookie';\nimport AuthSdkError from '../errors/AuthSdkError';\nimport {\n StorageOptions,\n CookieOptions,\n SimpleStorage,\n StorageType,\n StorageUtil,\n} from '../storage/types';\nimport { warn } from '../util';\nimport { isIE11OrLess } from '../features';\n\nexport interface CookieStorage extends SimpleStorage {\n setItem(key: string, value: any, expiresAt?: string | null): void; // can customize expiresAt\n getItem(key?: string): any; // if no key is passed, all cookies are returned\n removeItem(key: string); // remove a cookie\n}\n\nexport interface BrowserStorageUtil extends StorageUtil {\n browserHasLocalStorage(): boolean;\n browserHasSessionStorage(): boolean;\n getStorageByType(storageType: StorageType, options: StorageOptions): SimpleStorage;\n getLocalStorage(): Storage;\n getSessionStorage(): Storage;\n getInMemoryStorage(): SimpleStorage;\n getCookieStorage(options?: StorageOptions): CookieStorage;\n testStorage(storage: any): boolean;\n storage: Cookies;\n inMemoryStore: Record<string, unknown>;\n}\n\n// Building this as an object allows us to mock the functions in our tests\nvar storageUtil: BrowserStorageUtil = {\n\n // IE11 bug that Microsoft doesn't plan to fix\n // https://connect.microsoft.com/IE/Feedback/Details/1496040\n browserHasLocalStorage: function() {\n try {\n var storage = this.getLocalStorage();\n return this.testStorage(storage);\n } catch (e) {\n return false;\n }\n },\n\n browserHasSessionStorage: function() {\n try {\n var storage = this.getSessionStorage();\n return this.testStorage(storage);\n } catch (e) {\n return false;\n }\n },\n\n testStorageType: function(storageType: StorageType): boolean {\n var supported = false;\n switch (storageType) {\n case 'sessionStorage':\n supported = this.browserHasSessionStorage();\n break;\n case 'localStorage':\n supported = this.browserHasLocalStorage();\n break;\n case 'cookie':\n case 'memory':\n supported = true;\n break;\n default:\n supported = false;\n break;\n }\n return supported;\n },\n\n getStorageByType: function(storageType: StorageType, options?: StorageOptions): SimpleStorage {\n let storageProvider;\n switch (storageType) {\n case 'sessionStorage':\n storageProvider = this.getSessionStorage();\n break;\n case 'localStorage':\n storageProvider = this.getLocalStorage();\n break;\n case 'cookie':\n storageProvider = this.getCookieStorage(options);\n break;\n case 'memory':\n storageProvider = this.getInMemoryStorage();\n break;\n default:\n throw new AuthSdkError(`Unrecognized storage option: ${storageType}`);\n break;\n }\n return storageProvider;\n },\n\n findStorageType: function(types: StorageType[]) {\n let curType;\n let nextType;\n \n types = types.slice(); // copy array\n curType = types.shift();\n nextType = types.length ? types[0] : null;\n if (!nextType) {\n return curType;\n }\n\n if (this.testStorageType(curType)) {\n return curType;\n }\n\n // preferred type was unsupported.\n warn(`This browser doesn't support ${curType}. Switching to ${nextType}.`);\n\n // fallback to the next type. this is a recursive call\n return this.findStorageType(types);\n },\n\n getLocalStorage: function() {\n // Workaound for synchronization issue of LocalStorage cross tabs in IE11\n if (isIE11OrLess() && !window.onstorage) {\n window.onstorage = function() {};\n }\n \n return localStorage;\n },\n\n getSessionStorage: function() {\n return sessionStorage;\n },\n\n // Provides webStorage-like interface for cookies\n getCookieStorage: function(options): CookieStorage {\n const secure = options!.secure;\n const sameSite = options!.sameSite;\n const sessionCookie = options!.sessionCookie;\n if (typeof secure === 'undefined' || typeof sameSite === 'undefined') {\n throw new AuthSdkError('getCookieStorage: \"secure\" and \"sameSite\" options must be provided');\n }\n const storage: CookieStorage = {\n getItem: this.storage.get,\n setItem: (key, value, expiresAt = '2200-01-01T00:00:00.000Z') => {\n // By defauilt, cookie shouldn't expire\n expiresAt = (sessionCookie ? null : expiresAt) as string;\n this.storage.set(key, value, expiresAt, {\n secure: secure, \n sameSite: sameSite,\n });\n },\n removeItem: (key) => {\n this.storage.delete(key);\n },\n };\n\n if (!options!.useSeparateCookies) {\n return storage;\n }\n\n // Tokens are stored separately because cookies have size limits.\n // Can only be used when storing an object value. Object properties will be saved to separate cookies.\n // Each property of the object must also be an object.\n return {\n getItem: function(key) {\n var data = storage.getItem(); // read all cookies\n var value = {};\n Object.keys(data).forEach(k => {\n if (k.indexOf(key!) === 0) { // filter out unrelated cookies\n value[k.replace(`${key}_`, '')] = JSON.parse(data[k]); // populate with cookie data\n }\n });\n return JSON.stringify(value);\n },\n setItem: function(key, value) {\n var existingValues = JSON.parse(this.getItem(key));\n value = JSON.parse(value);\n // Set key-value pairs from input to cookies\n Object.keys(value).forEach(k => {\n var storageKey = key + '_' + k;\n var valueToStore = JSON.stringify(value[k]);\n storage.setItem(storageKey, valueToStore);\n delete existingValues[k];\n });\n // Delete unmatched keys from existing cookies\n Object.keys(existingValues).forEach(k => {\n storage.removeItem(key + '_' + k);\n });\n },\n removeItem: function(key) {\n var existingValues = JSON.parse(this.getItem(key));\n Object.keys(existingValues).forEach(k => {\n storage.removeItem(key + '_' + k);\n });\n },\n };\n },\n\n // Provides an in-memory solution\n inMemoryStore: {}, // override this for a unique memory store per instance\n getInMemoryStorage: function() {\n return {\n getItem: (key) => {\n return this.inMemoryStore[key];\n },\n setItem: (key, value) => {\n this.inMemoryStore[key] = value;\n },\n };\n },\n\n testStorage: function(storage) {\n var key = 'okta-test-storage';\n try {\n storage.setItem(key, key);\n storage.removeItem(key);\n return true;\n } catch (e) {\n return false;\n }\n },\n\n storage: {\n set: function(name: string, value: string, expiresAt: string, options: CookieOptions): string {\n const { sameSite, secure } = options;\n if (typeof secure === 'undefined' || typeof sameSite === 'undefined') {\n throw new AuthSdkError('storage.set: \"secure\" and \"sameSite\" options must be provided');\n }\n var cookieOptions: CookieOptions = {\n path: options.path || '/',\n secure,\n sameSite\n };\n\n // eslint-disable-next-line no-extra-boolean-cast\n if (!!(Date.parse(expiresAt))) {\n // Expires value can be converted to a Date object.\n //\n // If the 'expiresAt' value is not provided, or the value cannot be\n // parsed as a Date object, the cookie will set as a session cookie.\n cookieOptions.expires = new Date(expiresAt);\n }\n\n Cookies.set(name, value, cookieOptions);\n return this.get(name);\n },\n\n get: function(name?: string): string {\n // return all cookies when no args is provided\n if (!arguments.length) {\n return Cookies.get();\n }\n return Cookies.get(name);\n },\n\n delete: function(name: string): string {\n return Cookies.remove(name, { path: '/' });\n }\n }\n};\n\nexport default storageUtil;\n"],"mappings":"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"}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.default = fingerprint;
|
|
4
|
-
|
|
5
4
|
var _errors = require("../errors");
|
|
6
|
-
|
|
7
5
|
var _features = require("../features");
|
|
8
|
-
|
|
9
6
|
var _oidc = require("../oidc");
|
|
10
|
-
|
|
11
7
|
/*!
|
|
12
8
|
* Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
|
|
13
9
|
* The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
|
|
@@ -19,27 +15,25 @@ var _oidc = require("../oidc");
|
|
|
19
15
|
*
|
|
20
16
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
21
17
|
*/
|
|
18
|
+
|
|
22
19
|
function fingerprint(sdk, options) {
|
|
23
20
|
options = options || {};
|
|
24
|
-
|
|
25
21
|
if (!(0, _features.isFingerprintSupported)()) {
|
|
26
22
|
return Promise.reject(new _errors.AuthSdkError('Fingerprinting is not supported on this device'));
|
|
27
23
|
}
|
|
28
|
-
|
|
29
24
|
var timeout;
|
|
30
25
|
var iframe;
|
|
31
26
|
var listener;
|
|
32
27
|
var promise = new Promise(function (resolve, reject) {
|
|
33
28
|
var _options;
|
|
34
|
-
|
|
35
29
|
iframe = document.createElement('iframe');
|
|
36
|
-
iframe.style.display = 'none';
|
|
30
|
+
iframe.style.display = 'none';
|
|
37
31
|
|
|
32
|
+
// eslint-disable-next-line complexity
|
|
38
33
|
listener = function listener(e) {
|
|
39
34
|
if (!e || !e.data || e.origin !== sdk.getIssuerOrigin()) {
|
|
40
35
|
return;
|
|
41
36
|
}
|
|
42
|
-
|
|
43
37
|
try {
|
|
44
38
|
var msg = JSON.parse(e.data);
|
|
45
39
|
} catch (err) {
|
|
@@ -48,22 +42,18 @@ function fingerprint(sdk, options) {
|
|
|
48
42
|
// TODO: add namespace flag in okta-core to distinguish messages that come from other sources
|
|
49
43
|
return;
|
|
50
44
|
}
|
|
51
|
-
|
|
52
45
|
if (!msg) {
|
|
53
46
|
return;
|
|
54
47
|
}
|
|
55
|
-
|
|
56
48
|
if (msg.type === 'FingerprintAvailable') {
|
|
57
49
|
return resolve(msg.fingerprint);
|
|
58
50
|
}
|
|
59
|
-
|
|
60
51
|
if (msg.type === 'FingerprintServiceReady') {
|
|
61
52
|
e.source.postMessage(JSON.stringify({
|
|
62
53
|
type: 'GetFingerprint'
|
|
63
54
|
}), e.origin);
|
|
64
55
|
}
|
|
65
56
|
};
|
|
66
|
-
|
|
67
57
|
(0, _oidc.addListener)(window, 'message', listener);
|
|
68
58
|
iframe.src = sdk.getIssuerOrigin() + '/auth/services/devicefingerprint';
|
|
69
59
|
document.body.appendChild(iframe);
|
|
@@ -74,12 +64,10 @@ function fingerprint(sdk, options) {
|
|
|
74
64
|
return promise.finally(function () {
|
|
75
65
|
clearTimeout(timeout);
|
|
76
66
|
(0, _oidc.removeListener)(window, 'message', listener);
|
|
77
|
-
|
|
78
67
|
if (document.body.contains(iframe)) {
|
|
79
68
|
iframe.parentElement.removeChild(iframe);
|
|
80
69
|
}
|
|
81
70
|
});
|
|
82
71
|
}
|
|
83
|
-
|
|
84
72
|
module.exports = exports.default;
|
|
85
73
|
//# sourceMappingURL=fingerprint.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fingerprint.js","names":["fingerprint","sdk","options","isFingerprintSupported","Promise","reject","AuthSdkError","timeout","iframe","listener","promise","resolve","document","createElement","style","display","e","data","origin","getIssuerOrigin","msg","JSON","parse","err","type","source","postMessage","stringify","addListener","window","src","body","appendChild","setTimeout","finally","clearTimeout","removeListener","contains","parentElement","removeChild"],"sources":["../../../lib/browser/fingerprint.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { AuthSdkError } from '../errors';\nimport { isFingerprintSupported } from '../features';\nimport {\n addListener,\n removeListener\n} from '../oidc';\nimport { FingerprintOptions } from '../authn/types';\nimport { OktaAuthHttpInterface } from '../http/types';\n\nexport default function fingerprint(sdk: OktaAuthHttpInterface, options?: FingerprintOptions): Promise<string> {\n options = options || {};\n\n if (!isFingerprintSupported()) {\n return Promise.reject(new AuthSdkError('Fingerprinting is not supported on this device'));\n }\n\n var timeout;\n var iframe;\n var listener;\n var promise = new Promise(function (resolve, reject) {\n iframe = document.createElement('iframe');\n iframe.style.display = 'none';\n\n // eslint-disable-next-line complexity\n listener = function listener(e) {\n if (!e || !e.data || e.origin !== sdk.getIssuerOrigin()) {\n return;\n }\n\n try {\n var msg = JSON.parse(e.data);\n } catch (err) {\n // iframe messages should all be parsable\n // skip not parsable messages come from other sources in same origin (browser extensions)\n // TODO: add namespace flag in okta-core to distinguish messages that come from other sources\n return;\n }\n\n if (!msg) { return; }\n if (msg.type === 'FingerprintAvailable') {\n return resolve(msg.fingerprint as string);\n }\n if (msg.type === 'FingerprintServiceReady') {\n e.source.postMessage(JSON.stringify({\n type: 'GetFingerprint'\n }), e.origin);\n }\n };\n addListener(window, 'message', listener);\n\n iframe.src = sdk.getIssuerOrigin() + '/auth/services/devicefingerprint';\n document.body.appendChild(iframe);\n\n timeout = setTimeout(function() {\n reject(new AuthSdkError('Fingerprinting timed out'));\n }, options?.timeout || 15000);\n });\n\n return promise.finally(function() {\n clearTimeout(timeout);\n removeListener(window, 'message', listener);\n if (document.body.contains(iframe)) {\n iframe.parentElement.removeChild(iframe);\n }\n }) as Promise<string>;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"fingerprint.js","names":["fingerprint","sdk","options","isFingerprintSupported","Promise","reject","AuthSdkError","timeout","iframe","listener","promise","resolve","document","createElement","style","display","e","data","origin","getIssuerOrigin","msg","JSON","parse","err","type","source","postMessage","stringify","addListener","window","src","body","appendChild","setTimeout","finally","clearTimeout","removeListener","contains","parentElement","removeChild"],"sources":["../../../lib/browser/fingerprint.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { AuthSdkError } from '../errors';\nimport { isFingerprintSupported } from '../features';\nimport {\n addListener,\n removeListener\n} from '../oidc';\nimport { FingerprintOptions } from '../authn/types';\nimport { OktaAuthHttpInterface } from '../http/types';\n\nexport default function fingerprint(sdk: OktaAuthHttpInterface, options?: FingerprintOptions): Promise<string> {\n options = options || {};\n\n if (!isFingerprintSupported()) {\n return Promise.reject(new AuthSdkError('Fingerprinting is not supported on this device'));\n }\n\n var timeout;\n var iframe;\n var listener;\n var promise = new Promise(function (resolve, reject) {\n iframe = document.createElement('iframe');\n iframe.style.display = 'none';\n\n // eslint-disable-next-line complexity\n listener = function listener(e) {\n if (!e || !e.data || e.origin !== sdk.getIssuerOrigin()) {\n return;\n }\n\n try {\n var msg = JSON.parse(e.data);\n } catch (err) {\n // iframe messages should all be parsable\n // skip not parsable messages come from other sources in same origin (browser extensions)\n // TODO: add namespace flag in okta-core to distinguish messages that come from other sources\n return;\n }\n\n if (!msg) { return; }\n if (msg.type === 'FingerprintAvailable') {\n return resolve(msg.fingerprint as string);\n }\n if (msg.type === 'FingerprintServiceReady') {\n e.source.postMessage(JSON.stringify({\n type: 'GetFingerprint'\n }), e.origin);\n }\n };\n addListener(window, 'message', listener);\n\n iframe.src = sdk.getIssuerOrigin() + '/auth/services/devicefingerprint';\n document.body.appendChild(iframe);\n\n timeout = setTimeout(function() {\n reject(new AuthSdkError('Fingerprinting timed out'));\n }, options?.timeout || 15000);\n });\n\n return promise.finally(function() {\n clearTimeout(timeout);\n removeListener(window, 'message', listener);\n if (document.body.contains(iframe)) {\n iframe.parentElement.removeChild(iframe);\n }\n }) as Promise<string>;\n}\n"],"mappings":";;;AAaA;AACA;AACA;AAfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAYe,SAASA,WAAW,CAACC,GAA0B,EAAEC,OAA4B,EAAmB;EAC7GA,OAAO,GAAGA,OAAO,IAAI,CAAC,CAAC;EAEvB,IAAI,CAAC,IAAAC,gCAAsB,GAAE,EAAE;IAC7B,OAAOC,OAAO,CAACC,MAAM,CAAC,IAAIC,oBAAY,CAAC,gDAAgD,CAAC,CAAC;EAC3F;EAEA,IAAIC,OAAO;EACX,IAAIC,MAAM;EACV,IAAIC,QAAQ;EACZ,IAAIC,OAAO,GAAG,IAAIN,OAAO,CAAC,UAAUO,OAAO,EAAEN,MAAM,EAAE;IAAA;IACnDG,MAAM,GAAGI,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;IACzCL,MAAM,CAACM,KAAK,CAACC,OAAO,GAAG,MAAM;;IAE7B;IACAN,QAAQ,GAAG,SAASA,QAAQ,CAACO,CAAC,EAAE;MAC9B,IAAI,CAACA,CAAC,IAAI,CAACA,CAAC,CAACC,IAAI,IAAID,CAAC,CAACE,MAAM,KAAKjB,GAAG,CAACkB,eAAe,EAAE,EAAE;QACvD;MACF;MAEA,IAAI;QACF,IAAIC,GAAG,GAAGC,IAAI,CAACC,KAAK,CAACN,CAAC,CAACC,IAAI,CAAC;MAC9B,CAAC,CAAC,OAAOM,GAAG,EAAE;QACZ;QACA;QACA;QACA;MACF;MAEA,IAAI,CAACH,GAAG,EAAE;QAAE;MAAQ;MACpB,IAAIA,GAAG,CAACI,IAAI,KAAK,sBAAsB,EAAE;QACvC,OAAOb,OAAO,CAACS,GAAG,CAACpB,WAAW,CAAW;MAC3C;MACA,IAAIoB,GAAG,CAACI,IAAI,KAAK,yBAAyB,EAAE;QAC1CR,CAAC,CAACS,MAAM,CAACC,WAAW,CAACL,IAAI,CAACM,SAAS,CAAC;UAClCH,IAAI,EAAE;QACR,CAAC,CAAC,EAAER,CAAC,CAACE,MAAM,CAAC;MACf;IACF,CAAC;IACD,IAAAU,iBAAW,EAACC,MAAM,EAAE,SAAS,EAAEpB,QAAQ,CAAC;IAExCD,MAAM,CAACsB,GAAG,GAAG7B,GAAG,CAACkB,eAAe,EAAE,GAAG,kCAAkC;IACvEP,QAAQ,CAACmB,IAAI,CAACC,WAAW,CAACxB,MAAM,CAAC;IAEjCD,OAAO,GAAG0B,UAAU,CAAC,YAAW;MAC9B5B,MAAM,CAAC,IAAIC,oBAAY,CAAC,0BAA0B,CAAC,CAAC;IACtD,CAAC,EAAE,aAAAJ,OAAO,6CAAP,SAASK,OAAO,KAAI,KAAK,CAAC;EAC/B,CAAC,CAAC;EAEF,OAAOG,OAAO,CAACwB,OAAO,CAAC,YAAW;IAChCC,YAAY,CAAC5B,OAAO,CAAC;IACrB,IAAA6B,oBAAc,EAACP,MAAM,EAAE,SAAS,EAAEpB,QAAQ,CAAC;IAC3C,IAAIG,QAAQ,CAACmB,IAAI,CAACM,QAAQ,CAAC7B,MAAM,CAAC,EAAE;MAClCA,MAAM,CAAC8B,aAAa,CAACC,WAAW,CAAC/B,MAAM,CAAC;IAC1C;EACF,CAAC,CAAC;AACJ;AAAC"}
|
package/cjs/clock.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.default = void 0;
|
|
4
|
-
|
|
5
4
|
/*!
|
|
6
5
|
* Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
|
|
7
6
|
* The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
|
|
@@ -13,27 +12,26 @@ exports.default = void 0;
|
|
|
13
12
|
*
|
|
14
13
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
15
14
|
*/
|
|
15
|
+
|
|
16
16
|
class SdkClock {
|
|
17
17
|
constructor(localOffset) {
|
|
18
18
|
// Calculated local clock offset from server time (in milliseconds). Can be positive or negative.
|
|
19
19
|
this.localOffset = parseInt(localOffset || 0);
|
|
20
|
-
}
|
|
21
|
-
|
|
20
|
+
}
|
|
22
21
|
|
|
22
|
+
// factory method. Create an instance of a clock from current context.
|
|
23
23
|
static create() {
|
|
24
24
|
// TODO: calculate localOffset
|
|
25
25
|
var localOffset = 0;
|
|
26
26
|
return new SdkClock(localOffset);
|
|
27
|
-
}
|
|
28
|
-
|
|
27
|
+
}
|
|
29
28
|
|
|
29
|
+
// Return the current time (in seconds)
|
|
30
30
|
now() {
|
|
31
31
|
var now = (Date.now() + this.localOffset) / 1000;
|
|
32
32
|
return now;
|
|
33
33
|
}
|
|
34
|
-
|
|
35
34
|
}
|
|
36
|
-
|
|
37
35
|
exports.default = SdkClock;
|
|
38
36
|
module.exports = exports.default;
|
|
39
37
|
//# sourceMappingURL=clock.js.map
|
package/cjs/clock.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clock.js","names":["SdkClock","constructor","localOffset","parseInt","create","now","Date"],"sources":["../../lib/clock.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nexport default class SdkClock {\n localOffset: number;\n\n constructor(localOffset) {\n // Calculated local clock offset from server time (in milliseconds). Can be positive or negative.\n this.localOffset = parseInt(localOffset || 0);\n }\n\n // factory method. Create an instance of a clock from current context.\n static create(/* sdk, options */): SdkClock {\n // TODO: calculate localOffset\n var localOffset = 0;\n return new SdkClock(localOffset);\n }\n\n // Return the current time (in seconds)\n now() {\n var now = (Date.now() + this.localOffset) / 1000;\n return now;\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"clock.js","names":["SdkClock","constructor","localOffset","parseInt","create","now","Date"],"sources":["../../lib/clock.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nexport default class SdkClock {\n localOffset: number;\n\n constructor(localOffset) {\n // Calculated local clock offset from server time (in milliseconds). Can be positive or negative.\n this.localOffset = parseInt(localOffset || 0);\n }\n\n // factory method. Create an instance of a clock from current context.\n static create(/* sdk, options */): SdkClock {\n // TODO: calculate localOffset\n var localOffset = 0;\n return new SdkClock(localOffset);\n }\n\n // Return the current time (in seconds)\n now() {\n var now = (Date.now() + this.localOffset) / 1000;\n return now;\n }\n}\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,MAAMA,QAAQ,CAAC;EAG5BC,WAAW,CAACC,WAAW,EAAE;IACvB;IACA,IAAI,CAACA,WAAW,GAAGC,QAAQ,CAACD,WAAW,IAAI,CAAC,CAAC;EAC/C;;EAEA;EACA,OAAOE,MAAM,GAA+B;IAC1C;IACA,IAAIF,WAAW,GAAG,CAAC;IACnB,OAAO,IAAIF,QAAQ,CAACE,WAAW,CAAC;EAClC;;EAEA;EACAG,GAAG,GAAG;IACJ,IAAIA,GAAG,GAAG,CAACC,IAAI,CAACD,GAAG,EAAE,GAAG,IAAI,CAACH,WAAW,IAAI,IAAI;IAChD,OAAOG,GAAG;EACZ;AACF;AAAC;AAAA"}
|
package/cjs/constants.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.TRANSACTION_STORAGE_NAME = exports.TOKEN_STORAGE_NAME = exports.STATE_TOKEN_KEY_NAME = exports.SHARED_TRANSACTION_STORAGE_NAME = exports.REFRESH_TOKEN_STORAGE_KEY = exports.REFERRER_PATH_STORAGE_KEY = exports.PKCE_STORAGE_NAME = exports.ORIGINAL_URI_STORAGE_NAME = exports.MIN_VERIFIER_LENGTH = exports.MAX_VERIFIER_LENGTH = exports.ID_TOKEN_STORAGE_KEY = exports.IDX_RESPONSE_STORAGE_NAME = exports.IDX_API_VERSION = exports.DEFAULT_POLLING_DELAY = exports.DEFAULT_MAX_CLOCK_SKEW = exports.DEFAULT_CODE_CHALLENGE_METHOD = exports.DEFAULT_CACHE_DURATION = exports.CACHE_STORAGE_NAME = exports.ACCESS_TOKEN_STORAGE_KEY = void 0;
|
|
4
|
-
|
|
5
4
|
/*!
|
|
6
5
|
* Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
|
|
7
6
|
* The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
|
|
@@ -13,6 +12,7 @@ exports.TRANSACTION_STORAGE_NAME = exports.TOKEN_STORAGE_NAME = exports.STATE_TO
|
|
|
13
12
|
*
|
|
14
13
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
15
14
|
*/
|
|
15
|
+
|
|
16
16
|
const STATE_TOKEN_KEY_NAME = 'oktaStateToken';
|
|
17
17
|
exports.STATE_TOKEN_KEY_NAME = STATE_TOKEN_KEY_NAME;
|
|
18
18
|
const DEFAULT_POLLING_DELAY = 500;
|
|
@@ -41,9 +41,10 @@ const ID_TOKEN_STORAGE_KEY = 'idToken';
|
|
|
41
41
|
exports.ID_TOKEN_STORAGE_KEY = ID_TOKEN_STORAGE_KEY;
|
|
42
42
|
const REFRESH_TOKEN_STORAGE_KEY = 'refreshToken';
|
|
43
43
|
exports.REFRESH_TOKEN_STORAGE_KEY = REFRESH_TOKEN_STORAGE_KEY;
|
|
44
|
-
const REFERRER_PATH_STORAGE_KEY = 'referrerPath';
|
|
45
|
-
// Code challenge: Base64 URL-encoded SHA-256 hash of the code verifier.
|
|
44
|
+
const REFERRER_PATH_STORAGE_KEY = 'referrerPath';
|
|
46
45
|
|
|
46
|
+
// Code verifier: Random URL-safe string with a minimum length of 43 characters.
|
|
47
|
+
// Code challenge: Base64 URL-encoded SHA-256 hash of the code verifier.
|
|
47
48
|
exports.REFERRER_PATH_STORAGE_KEY = REFERRER_PATH_STORAGE_KEY;
|
|
48
49
|
const MIN_VERIFIER_LENGTH = 43;
|
|
49
50
|
exports.MIN_VERIFIER_LENGTH = MIN_VERIFIER_LENGTH;
|
package/cjs/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["STATE_TOKEN_KEY_NAME","DEFAULT_POLLING_DELAY","DEFAULT_MAX_CLOCK_SKEW","DEFAULT_CACHE_DURATION","TOKEN_STORAGE_NAME","CACHE_STORAGE_NAME","PKCE_STORAGE_NAME","TRANSACTION_STORAGE_NAME","SHARED_TRANSACTION_STORAGE_NAME","ORIGINAL_URI_STORAGE_NAME","IDX_RESPONSE_STORAGE_NAME","ACCESS_TOKEN_STORAGE_KEY","ID_TOKEN_STORAGE_KEY","REFRESH_TOKEN_STORAGE_KEY","REFERRER_PATH_STORAGE_KEY","MIN_VERIFIER_LENGTH","MAX_VERIFIER_LENGTH","DEFAULT_CODE_CHALLENGE_METHOD","IDX_API_VERSION"],"sources":["../../lib/constants.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nexport const STATE_TOKEN_KEY_NAME = 'oktaStateToken';\nexport const DEFAULT_POLLING_DELAY = 500;\nexport const DEFAULT_MAX_CLOCK_SKEW = 300;\nexport const DEFAULT_CACHE_DURATION = 86400;\nexport const TOKEN_STORAGE_NAME = 'okta-token-storage';\nexport const CACHE_STORAGE_NAME = 'okta-cache-storage';\nexport const PKCE_STORAGE_NAME = 'okta-pkce-storage';\nexport const TRANSACTION_STORAGE_NAME = 'okta-transaction-storage';\nexport const SHARED_TRANSACTION_STORAGE_NAME = 'okta-shared-transaction-storage';\nexport const ORIGINAL_URI_STORAGE_NAME = 'okta-original-uri-storage';\nexport const IDX_RESPONSE_STORAGE_NAME = 'okta-idx-response-storage';\nexport const ACCESS_TOKEN_STORAGE_KEY = 'accessToken';\nexport const ID_TOKEN_STORAGE_KEY = 'idToken';\nexport const REFRESH_TOKEN_STORAGE_KEY = 'refreshToken';\nexport const REFERRER_PATH_STORAGE_KEY = 'referrerPath';\n\n// Code verifier: Random URL-safe string with a minimum length of 43 characters.\n// Code challenge: Base64 URL-encoded SHA-256 hash of the code verifier.\nexport const MIN_VERIFIER_LENGTH = 43;\nexport const MAX_VERIFIER_LENGTH = 128;\nexport const DEFAULT_CODE_CHALLENGE_METHOD = 'S256';\n\nexport const IDX_API_VERSION = '1.0.0';"],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.js","names":["STATE_TOKEN_KEY_NAME","DEFAULT_POLLING_DELAY","DEFAULT_MAX_CLOCK_SKEW","DEFAULT_CACHE_DURATION","TOKEN_STORAGE_NAME","CACHE_STORAGE_NAME","PKCE_STORAGE_NAME","TRANSACTION_STORAGE_NAME","SHARED_TRANSACTION_STORAGE_NAME","ORIGINAL_URI_STORAGE_NAME","IDX_RESPONSE_STORAGE_NAME","ACCESS_TOKEN_STORAGE_KEY","ID_TOKEN_STORAGE_KEY","REFRESH_TOKEN_STORAGE_KEY","REFERRER_PATH_STORAGE_KEY","MIN_VERIFIER_LENGTH","MAX_VERIFIER_LENGTH","DEFAULT_CODE_CHALLENGE_METHOD","IDX_API_VERSION"],"sources":["../../lib/constants.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nexport const STATE_TOKEN_KEY_NAME = 'oktaStateToken';\nexport const DEFAULT_POLLING_DELAY = 500;\nexport const DEFAULT_MAX_CLOCK_SKEW = 300;\nexport const DEFAULT_CACHE_DURATION = 86400;\nexport const TOKEN_STORAGE_NAME = 'okta-token-storage';\nexport const CACHE_STORAGE_NAME = 'okta-cache-storage';\nexport const PKCE_STORAGE_NAME = 'okta-pkce-storage';\nexport const TRANSACTION_STORAGE_NAME = 'okta-transaction-storage';\nexport const SHARED_TRANSACTION_STORAGE_NAME = 'okta-shared-transaction-storage';\nexport const ORIGINAL_URI_STORAGE_NAME = 'okta-original-uri-storage';\nexport const IDX_RESPONSE_STORAGE_NAME = 'okta-idx-response-storage';\nexport const ACCESS_TOKEN_STORAGE_KEY = 'accessToken';\nexport const ID_TOKEN_STORAGE_KEY = 'idToken';\nexport const REFRESH_TOKEN_STORAGE_KEY = 'refreshToken';\nexport const REFERRER_PATH_STORAGE_KEY = 'referrerPath';\n\n// Code verifier: Random URL-safe string with a minimum length of 43 characters.\n// Code challenge: Base64 URL-encoded SHA-256 hash of the code verifier.\nexport const MIN_VERIFIER_LENGTH = 43;\nexport const MAX_VERIFIER_LENGTH = 128;\nexport const DEFAULT_CODE_CHALLENGE_METHOD = 'S256';\n\nexport const IDX_API_VERSION = '1.0.0';"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,MAAMA,oBAAoB,GAAG,gBAAgB;AAAC;AAC9C,MAAMC,qBAAqB,GAAG,GAAG;AAAC;AAClC,MAAMC,sBAAsB,GAAG,GAAG;AAAC;AACnC,MAAMC,sBAAsB,GAAG,KAAK;AAAC;AACrC,MAAMC,kBAAkB,GAAG,oBAAoB;AAAC;AAChD,MAAMC,kBAAkB,GAAG,oBAAoB;AAAC;AAChD,MAAMC,iBAAiB,GAAG,mBAAmB;AAAC;AAC9C,MAAMC,wBAAwB,GAAG,0BAA0B;AAAC;AAC5D,MAAMC,+BAA+B,GAAG,iCAAiC;AAAC;AAC1E,MAAMC,yBAAyB,GAAG,2BAA2B;AAAC;AAC9D,MAAMC,yBAAyB,GAAG,2BAA2B;AAAC;AAC9D,MAAMC,wBAAwB,GAAG,aAAa;AAAC;AAC/C,MAAMC,oBAAoB,GAAI,SAAS;AAAC;AACxC,MAAMC,yBAAyB,GAAI,cAAc;AAAC;AAClD,MAAMC,yBAAyB,GAAG,cAAc;;AAEvD;AACA;AAAA;AACO,MAAMC,mBAAmB,GAAG,EAAE;AAAC;AAC/B,MAAMC,mBAAmB,GAAG,GAAG;AAAC;AAChC,MAAMC,6BAA6B,GAAG,MAAM;AAAC;AAE7C,MAAMC,eAAe,GAAG,OAAO;AAAC"}
|