@okta/okta-auth-js 5.5.0 → 5.9.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 +66 -4
- package/README.md +61 -15
- package/cjs/AuthStateManager.js +5 -0
- package/cjs/AuthStateManager.js.map +1 -1
- package/cjs/OktaAuth.js +78 -29
- package/cjs/OktaAuth.js.map +1 -1
- package/cjs/OktaUserAgent.js +2 -2
- package/cjs/StorageManager.js +16 -0
- package/cjs/StorageManager.js.map +1 -1
- package/cjs/TransactionManager.js +49 -9
- package/cjs/TransactionManager.js.map +1 -1
- package/cjs/builderUtil.js +6 -0
- package/cjs/builderUtil.js.map +1 -1
- package/cjs/constants.js +5 -1
- package/cjs/constants.js.map +1 -1
- package/cjs/features.js +1 -1
- package/cjs/features.js.map +1 -1
- package/cjs/idx/authenticate.js +3 -18
- package/cjs/idx/authenticate.js.map +1 -1
- package/cjs/idx/flow/AuthenticationFlow.js +30 -0
- package/cjs/idx/flow/AuthenticationFlow.js.map +1 -0
- package/cjs/idx/{flowMonitors → flow}/AuthenticationFlowMonitor.js +0 -0
- package/cjs/idx/flow/AuthenticationFlowMonitor.js.map +1 -0
- package/cjs/idx/{flowMonitors → flow}/FlowMonitor.js +0 -0
- package/cjs/idx/flow/FlowMonitor.js.map +1 -0
- package/cjs/idx/flow/FlowSpecification.js +49 -0
- package/cjs/idx/flow/FlowSpecification.js.map +1 -0
- package/cjs/idx/flow/PasswordRecoveryFlow.js +28 -0
- package/cjs/idx/flow/PasswordRecoveryFlow.js.map +1 -0
- package/cjs/idx/{flowMonitors → flow}/PasswordRecoveryFlowMonitor.js +0 -0
- package/cjs/idx/flow/PasswordRecoveryFlowMonitor.js.map +1 -0
- package/{esm/crypto/browser.js → cjs/idx/flow/RegistrationFlow.js} +15 -12
- package/cjs/idx/flow/RegistrationFlow.js.map +1 -0
- package/cjs/idx/{flowMonitors → flow}/RegistrationFlowMonitor.js +0 -0
- package/cjs/idx/flow/RegistrationFlowMonitor.js.map +1 -0
- package/cjs/idx/flow/RemediationFlow.js +2 -0
- package/{esm/types/Cookies.js.map → cjs/idx/flow/RemediationFlow.js.map} +1 -1
- package/cjs/idx/flow/index.js +119 -0
- package/cjs/idx/flow/index.js.map +1 -0
- package/cjs/idx/index.js +26 -0
- package/cjs/idx/index.js.map +1 -1
- package/cjs/idx/interact.js +5 -2
- package/cjs/idx/interact.js.map +1 -1
- package/cjs/idx/introspect.js +24 -7
- package/cjs/idx/introspect.js.map +1 -1
- package/cjs/idx/proceed.js +49 -0
- package/cjs/idx/proceed.js.map +1 -0
- package/cjs/idx/recoverPassword.js +3 -17
- package/cjs/idx/recoverPassword.js.map +1 -1
- package/cjs/idx/register.js +7 -16
- package/cjs/idx/register.js.map +1 -1
- package/cjs/idx/remediate.js +46 -52
- package/cjs/idx/remediate.js.map +1 -1
- package/cjs/idx/remediators/Base/AuthenticatorData.js +7 -7
- package/cjs/idx/remediators/Base/AuthenticatorData.js.map +1 -1
- package/cjs/idx/remediators/Base/Remediator.js +13 -7
- package/cjs/idx/remediators/Base/Remediator.js.map +1 -1
- package/cjs/idx/remediators/Base/SelectAuthenticator.js +6 -6
- package/cjs/idx/remediators/Base/SelectAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/Base/VerifyAuthenticator.js +18 -14
- package/cjs/idx/remediators/Base/VerifyAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/EnrollProfile.js +14 -0
- package/cjs/idx/remediators/EnrollProfile.js.map +1 -1
- package/cjs/idx/remediators/Identify.js +7 -3
- package/cjs/idx/remediators/Identify.js.map +1 -1
- package/cjs/idx/remediators/ReEnrollAuthenticator.js +1 -1
- package/cjs/idx/remediators/ReEnrollAuthenticator.js.map +1 -1
- package/cjs/idx/run.js +36 -8
- package/cjs/idx/run.js.map +1 -1
- package/cjs/idx/startTransaction.js +2 -0
- package/cjs/idx/startTransaction.js.map +1 -1
- package/cjs/idx/transactionMeta.js +80 -40
- package/cjs/idx/transactionMeta.js.map +1 -1
- package/cjs/idx/types/FlowIdentifier.js +2 -0
- package/{esm/types/AuthState.js.map → cjs/idx/types/FlowIdentifier.js.map} +1 -1
- package/cjs/idx/types/idx-js.js +5 -0
- package/cjs/idx/types/idx-js.js.map +1 -1
- package/cjs/idx/types/index.js +33 -6
- package/cjs/idx/types/index.js.map +1 -1
- package/cjs/oidc/endpoints/authorize.js +4 -1
- package/cjs/oidc/endpoints/authorize.js.map +1 -1
- package/cjs/oidc/getToken.js +14 -9
- package/cjs/oidc/getToken.js.map +1 -1
- package/cjs/oidc/getWithPopup.js +9 -2
- package/cjs/oidc/getWithPopup.js.map +1 -1
- package/cjs/oidc/getWithRedirect.js.map +1 -1
- package/cjs/oidc/parseFromUrl.js +59 -20
- package/cjs/oidc/parseFromUrl.js.map +1 -1
- package/cjs/oidc/renewTokens.js +28 -5
- package/cjs/oidc/renewTokens.js.map +1 -1
- package/cjs/oidc/util/browser.js +1 -13
- package/cjs/oidc/util/browser.js.map +1 -1
- package/cjs/oidc/util/loginRedirect.js +9 -5
- package/cjs/oidc/util/loginRedirect.js.map +1 -1
- package/cjs/oidc/util/urlParams.js +1 -1
- package/cjs/oidc/util/urlParams.js.map +1 -1
- package/cjs/options.js +15 -2
- package/cjs/options.js.map +1 -1
- package/cjs/server/serverStorage.js +2 -1
- package/cjs/server/serverStorage.js.map +1 -1
- package/cjs/tx/AuthTransaction.js +1 -3
- package/cjs/tx/AuthTransaction.js.map +1 -1
- package/cjs/tx/api.js +3 -0
- package/cjs/tx/api.js.map +1 -1
- package/cjs/types/Transaction.js.map +1 -1
- package/{esm/clock.js → cjs/util/emailVerify.js} +14 -18
- package/cjs/util/emailVerify.js.map +1 -0
- package/cjs/util/index.js +13 -0
- package/cjs/util/index.js.map +1 -1
- package/cjs/util/sharedStorage.js +54 -0
- package/cjs/util/sharedStorage.js.map +1 -0
- package/dist/okta-auth-js.min.js +2 -74
- package/dist/okta-auth-js.min.js.LICENSE.txt +32 -0
- package/dist/okta-auth-js.min.js.map +1 -1
- package/dist/okta-auth-js.polyfill.js +2 -18
- package/{esm/crypto/webcrypto.js → dist/okta-auth-js.polyfill.js.LICENSE.txt} +8 -4
- package/dist/okta-auth-js.polyfill.js.map +1 -1
- package/dist/okta-auth-js.umd.js +2 -74
- package/dist/okta-auth-js.umd.js.LICENSE.txt +32 -0
- package/dist/okta-auth-js.umd.js.map +1 -1
- package/esm/index.js +8368 -16
- package/esm/index.js.map +1 -1
- package/lib/AuthStateManager.d.ts +4 -2
- package/lib/OktaAuth.d.ts +9 -5
- package/lib/StorageManager.d.ts +2 -0
- package/lib/TransactionManager.d.ts +6 -1
- package/lib/constants.d.ts +2 -0
- package/lib/crypto/base64.d.ts +2 -2
- package/lib/crypto/oidcHash.d.ts +1 -1
- package/lib/crypto/verifyToken.d.ts +1 -1
- package/{esm/oidc/endpoints/index.js → lib/idx/flow/AuthenticationFlow.d.ts} +3 -5
- package/lib/idx/{flowMonitors → flow}/AuthenticationFlowMonitor.d.ts +0 -0
- package/lib/idx/{flowMonitors → flow}/FlowMonitor.d.ts +0 -0
- package/lib/idx/flow/FlowSpecification.d.ts +10 -0
- package/{esm/crypto/index.js → lib/idx/flow/PasswordRecoveryFlow.d.ts} +3 -6
- package/lib/idx/{flowMonitors → flow}/PasswordRecoveryFlowMonitor.d.ts +0 -0
- package/{esm/tx/TransactionState.js → lib/idx/flow/RegistrationFlow.d.ts} +3 -3
- package/lib/idx/{flowMonitors → flow}/RegistrationFlowMonitor.d.ts +0 -0
- package/lib/idx/flow/RemediationFlow.d.ts +13 -0
- package/lib/idx/{flowMonitors → flow}/index.d.ts +7 -2
- package/lib/idx/index.d.ts +2 -0
- package/lib/idx/introspect.d.ts +2 -1
- package/{esm/errors/AuthApiError.js → lib/idx/proceed.d.ts} +9 -19
- package/lib/idx/remediators/Base/AuthenticatorData.d.ts +2 -5
- package/lib/idx/remediators/Base/Remediator.d.ts +3 -6
- package/lib/idx/remediators/Base/SelectAuthenticator.d.ts +3 -6
- package/lib/idx/remediators/Base/VerifyAuthenticator.d.ts +1 -1
- package/lib/idx/remediators/EnrollProfile.d.ts +1 -0
- package/lib/idx/remediators/Identify.d.ts +2 -5
- package/lib/idx/run.d.ts +9 -9
- package/lib/idx/transactionMeta.d.ts +28 -4
- package/lib/idx/types/FlowIdentifier.d.ts +1 -0
- package/lib/idx/types/idx-js.d.ts +5 -0
- package/lib/idx/types/index.d.ts +28 -10
- package/lib/oidc/getToken.d.ts +2 -2
- package/lib/oidc/parseFromUrl.d.ts +4 -1
- package/lib/oidc/renewTokens.d.ts +0 -12
- package/lib/oidc/util/loginRedirect.d.ts +1 -1
- package/lib/types/AuthState.d.ts +1 -0
- package/lib/types/OktaAuthOptions.d.ts +3 -1
- package/lib/types/Transaction.d.ts +7 -1
- package/lib/types/api.d.ts +21 -5
- package/{esm/errors/AuthPollStopError.js → lib/util/emailVerify.d.ts} +5 -8
- package/lib/util/index.d.ts +1 -0
- package/lib/util/sharedStorage.d.ts +6 -0
- package/package.json +26 -13
- package/cjs/idx/flowMonitors/AuthenticationFlowMonitor.js.map +0 -1
- package/cjs/idx/flowMonitors/FlowMonitor.js.map +0 -1
- package/cjs/idx/flowMonitors/PasswordRecoveryFlowMonitor.js.map +0 -1
- package/cjs/idx/flowMonitors/RegistrationFlowMonitor.js.map +0 -1
- package/cjs/idx/flowMonitors/index.js +0 -54
- package/cjs/idx/flowMonitors/index.js.map +0 -1
- package/esm/AuthStateManager.js +0 -209
- package/esm/AuthStateManager.js.map +0 -1
- package/esm/OktaAuth.js +0 -665
- package/esm/OktaAuth.js.map +0 -1
- package/esm/OktaUserAgent.js +0 -49
- package/esm/OktaUserAgent.js.map +0 -1
- package/esm/PromiseQueue.js +0 -71
- package/esm/PromiseQueue.js.map +0 -1
- package/esm/SavedObject.js +0 -91
- package/esm/SavedObject.js.map +0 -1
- package/esm/StorageManager.js +0 -174
- package/esm/StorageManager.js.map +0 -1
- package/esm/TokenManager.js +0 -455
- package/esm/TokenManager.js.map +0 -1
- package/esm/TransactionManager.js +0 -289
- package/esm/TransactionManager.js.map +0 -1
- package/esm/browser/browserStorage.js +0 -256
- package/esm/browser/browserStorage.js.map +0 -1
- package/esm/browser/fingerprint.js +0 -74
- package/esm/browser/fingerprint.js.map +0 -1
- package/esm/builderUtil.js +0 -50
- package/esm/builderUtil.js.map +0 -1
- package/esm/clock.js.map +0 -1
- package/esm/constants.js +0 -34
- package/esm/constants.js.map +0 -1
- package/esm/crypto/base64.js +0 -66
- package/esm/crypto/base64.js.map +0 -1
- package/esm/crypto/browser.js.map +0 -1
- package/esm/crypto/index.js.map +0 -1
- package/esm/crypto/node.js +0 -54
- package/esm/crypto/node.js.map +0 -1
- package/esm/crypto/oidcHash.js +0 -27
- package/esm/crypto/oidcHash.js.map +0 -1
- package/esm/crypto/verifyToken.js +0 -39
- package/esm/crypto/verifyToken.js.map +0 -1
- package/esm/crypto/webcrypto.js.map +0 -1
- package/esm/errors/AuthApiError.js.map +0 -1
- package/esm/errors/AuthPollStopError.js.map +0 -1
- package/esm/errors/AuthSdkError.js +0 -29
- package/esm/errors/AuthSdkError.js.map +0 -1
- package/esm/errors/CustomError.js +0 -21
- package/esm/errors/CustomError.js.map +0 -1
- package/esm/errors/OAuthError.js +0 -22
- package/esm/errors/OAuthError.js.map +0 -1
- package/esm/errors/index.js +0 -22
- package/esm/errors/index.js.map +0 -1
- package/esm/features.js +0 -64
- package/esm/features.js.map +0 -1
- package/esm/fetch/fetchRequest.js +0 -92
- package/esm/fetch/fetchRequest.js.map +0 -1
- package/esm/http/headers.js +0 -17
- package/esm/http/headers.js.map +0 -1
- package/esm/http/index.js +0 -3
- package/esm/http/index.js.map +0 -1
- package/esm/http/request.js +0 -145
- package/esm/http/request.js.map +0 -1
- package/esm/idx/authenticate.js +0 -47
- package/esm/idx/authenticate.js.map +0 -1
- package/esm/idx/cancel.js +0 -32
- package/esm/idx/cancel.js.map +0 -1
- package/esm/idx/flowMonitors/AuthenticationFlowMonitor.js +0 -41
- package/esm/idx/flowMonitors/AuthenticationFlowMonitor.js.map +0 -1
- package/esm/idx/flowMonitors/FlowMonitor.js +0 -73
- package/esm/idx/flowMonitors/FlowMonitor.js.map +0 -1
- package/esm/idx/flowMonitors/PasswordRecoveryFlowMonitor.js +0 -57
- package/esm/idx/flowMonitors/PasswordRecoveryFlowMonitor.js.map +0 -1
- package/esm/idx/flowMonitors/RegistrationFlowMonitor.js +0 -28
- package/esm/idx/flowMonitors/RegistrationFlowMonitor.js.map +0 -1
- package/esm/idx/flowMonitors/index.js +0 -16
- package/esm/idx/flowMonitors/index.js.map +0 -1
- package/esm/idx/handleInteractionCodeRedirect.js +0 -64
- package/esm/idx/handleInteractionCodeRedirect.js.map +0 -1
- package/esm/idx/headers.js +0 -39
- package/esm/idx/headers.js.map +0 -1
- package/esm/idx/index.js +0 -20
- package/esm/idx/index.js.map +0 -1
- package/esm/idx/interact.js +0 -83
- package/esm/idx/interact.js.map +0 -1
- package/esm/idx/introspect.js +0 -45
- package/esm/idx/introspect.js.map +0 -1
- package/esm/idx/recoverPassword.js +0 -46
- package/esm/idx/recoverPassword.js.map +0 -1
- package/esm/idx/register.js +0 -63
- package/esm/idx/register.js.map +0 -1
- package/esm/idx/remediate.js +0 -303
- package/esm/idx/remediate.js.map +0 -1
- package/esm/idx/remediators/AuthenticatorEnrollmentData.js +0 -68
- package/esm/idx/remediators/AuthenticatorEnrollmentData.js.map +0 -1
- package/esm/idx/remediators/AuthenticatorVerificationData.js +0 -66
- package/esm/idx/remediators/AuthenticatorVerificationData.js.map +0 -1
- package/esm/idx/remediators/Base/AuthenticatorData.js +0 -105
- package/esm/idx/remediators/Base/AuthenticatorData.js.map +0 -1
- package/esm/idx/remediators/Base/Remediator.js +0 -216
- package/esm/idx/remediators/Base/Remediator.js.map +0 -1
- package/esm/idx/remediators/Base/SelectAuthenticator.js +0 -140
- package/esm/idx/remediators/Base/SelectAuthenticator.js.map +0 -1
- package/esm/idx/remediators/Base/VerifyAuthenticator.js +0 -62
- package/esm/idx/remediators/Base/VerifyAuthenticator.js.map +0 -1
- package/esm/idx/remediators/ChallengeAuthenticator.js +0 -18
- package/esm/idx/remediators/ChallengeAuthenticator.js.map +0 -1
- package/esm/idx/remediators/EnrollAuthenticator.js +0 -18
- package/esm/idx/remediators/EnrollAuthenticator.js.map +0 -1
- package/esm/idx/remediators/EnrollProfile.js +0 -62
- package/esm/idx/remediators/EnrollProfile.js.map +0 -1
- package/esm/idx/remediators/Identify.js +0 -85
- package/esm/idx/remediators/Identify.js.map +0 -1
- package/esm/idx/remediators/ReEnrollAuthenticator.js +0 -45
- package/esm/idx/remediators/ReEnrollAuthenticator.js.map +0 -1
- package/esm/idx/remediators/RedirectIdp.js +0 -38
- package/esm/idx/remediators/RedirectIdp.js.map +0 -1
- package/esm/idx/remediators/ResetAuthenticator.js +0 -18
- package/esm/idx/remediators/ResetAuthenticator.js.map +0 -1
- package/esm/idx/remediators/SelectAuthenticatorAuthenticate.js +0 -18
- package/esm/idx/remediators/SelectAuthenticatorAuthenticate.js.map +0 -1
- package/esm/idx/remediators/SelectAuthenticatorEnroll.js +0 -18
- package/esm/idx/remediators/SelectAuthenticatorEnroll.js.map +0 -1
- package/esm/idx/remediators/SelectEnrollProfile.js +0 -24
- package/esm/idx/remediators/SelectEnrollProfile.js.map +0 -1
- package/esm/idx/remediators/Skip.js +0 -23
- package/esm/idx/remediators/Skip.js.map +0 -1
- package/esm/idx/remediators/index.js +0 -26
- package/esm/idx/remediators/index.js.map +0 -1
- package/esm/idx/remediators/util.js +0 -35
- package/esm/idx/remediators/util.js.map +0 -1
- package/esm/idx/run.js +0 -201
- package/esm/idx/run.js.map +0 -1
- package/esm/idx/startTransaction.js +0 -27
- package/esm/idx/startTransaction.js.map +0 -1
- package/esm/idx/transactionMeta.js +0 -112
- package/esm/idx/transactionMeta.js.map +0 -1
- package/esm/idx/types/idx-js.js +0 -17
- package/esm/idx/types/idx-js.js.map +0 -1
- package/esm/idx/types/index.js +0 -34
- package/esm/idx/types/index.js.map +0 -1
- package/esm/oidc/decodeToken.js +0 -31
- package/esm/oidc/decodeToken.js.map +0 -1
- package/esm/oidc/endpoints/authorize.js +0 -61
- package/esm/oidc/endpoints/authorize.js.map +0 -1
- package/esm/oidc/endpoints/index.js.map +0 -1
- package/esm/oidc/endpoints/token.js +0 -97
- package/esm/oidc/endpoints/token.js.map +0 -1
- package/esm/oidc/endpoints/well-known.js +0 -58
- package/esm/oidc/endpoints/well-known.js.map +0 -1
- package/esm/oidc/exchangeCodeForTokens.js +0 -69
- package/esm/oidc/exchangeCodeForTokens.js.map +0 -1
- package/esm/oidc/getToken.js +0 -175
- package/esm/oidc/getToken.js.map +0 -1
- package/esm/oidc/getUserInfo.js +0 -82
- package/esm/oidc/getUserInfo.js.map +0 -1
- package/esm/oidc/getWithPopup.js +0 -28
- package/esm/oidc/getWithPopup.js.map +0 -1
- package/esm/oidc/getWithRedirect.js +0 -61
- package/esm/oidc/getWithRedirect.js.map +0 -1
- package/esm/oidc/getWithoutPrompt.js +0 -29
- package/esm/oidc/getWithoutPrompt.js.map +0 -1
- package/esm/oidc/handleOAuthResponse.js +0 -148
- package/esm/oidc/handleOAuthResponse.js.map +0 -1
- package/esm/oidc/index.js +0 -29
- package/esm/oidc/index.js.map +0 -1
- package/esm/oidc/parseFromUrl.js +0 -102
- package/esm/oidc/parseFromUrl.js.map +0 -1
- package/esm/oidc/renewToken.js +0 -85
- package/esm/oidc/renewToken.js.map +0 -1
- package/esm/oidc/renewTokens.js +0 -52
- package/esm/oidc/renewTokens.js.map +0 -1
- package/esm/oidc/renewTokensWithRefresh.js +0 -55
- package/esm/oidc/renewTokensWithRefresh.js.map +0 -1
- package/esm/oidc/revokeToken.js +0 -57
- package/esm/oidc/revokeToken.js.map +0 -1
- package/esm/oidc/util/browser.js +0 -85
- package/esm/oidc/util/browser.js.map +0 -1
- package/esm/oidc/util/defaultTokenParams.js +0 -42
- package/esm/oidc/util/defaultTokenParams.js.map +0 -1
- package/esm/oidc/util/errors.js +0 -31
- package/esm/oidc/util/errors.js.map +0 -1
- package/esm/oidc/util/index.js +0 -25
- package/esm/oidc/util/index.js.map +0 -1
- package/esm/oidc/util/loginRedirect.js +0 -84
- package/esm/oidc/util/loginRedirect.js.map +0 -1
- package/esm/oidc/util/oauth.js +0 -70
- package/esm/oidc/util/oauth.js.map +0 -1
- package/esm/oidc/util/pkce.js +0 -55
- package/esm/oidc/util/pkce.js.map +0 -1
- package/esm/oidc/util/prepareTokenParams.js +0 -75
- package/esm/oidc/util/prepareTokenParams.js.map +0 -1
- package/esm/oidc/util/refreshToken.js +0 -24
- package/esm/oidc/util/refreshToken.js.map +0 -1
- package/esm/oidc/util/urlParams.js +0 -54
- package/esm/oidc/util/urlParams.js.map +0 -1
- package/esm/oidc/util/validateClaims.js +0 -53
- package/esm/oidc/util/validateClaims.js.map +0 -1
- package/esm/oidc/util/validateToken.js +0 -21
- package/esm/oidc/util/validateToken.js.map +0 -1
- package/esm/oidc/verifyToken.js +0 -78
- package/esm/oidc/verifyToken.js.map +0 -1
- package/esm/options.js +0 -131
- package/esm/options.js.map +0 -1
- package/esm/server/serverStorage.js +0 -110
- package/esm/server/serverStorage.js.map +0 -1
- package/esm/services/TokenService.js +0 -103
- package/esm/services/TokenService.js.map +0 -1
- package/esm/session.js +0 -81
- package/esm/session.js.map +0 -1
- package/esm/tx/AuthTransaction.js +0 -215
- package/esm/tx/AuthTransaction.js.map +0 -1
- package/esm/tx/TransactionState.js.map +0 -1
- package/esm/tx/api.js +0 -84
- package/esm/tx/api.js.map +0 -1
- package/esm/tx/index.js +0 -18
- package/esm/tx/index.js.map +0 -1
- package/esm/tx/poll.js +0 -124
- package/esm/tx/poll.js.map +0 -1
- package/esm/tx/util.js +0 -26
- package/esm/tx/util.js.map +0 -1
- package/esm/types/AuthState.js +0 -3
- package/esm/types/Cookies.js +0 -3
- package/esm/types/EventEmitter.js +0 -3
- package/esm/types/EventEmitter.js.map +0 -1
- package/esm/types/JWT.js +0 -3
- package/esm/types/JWT.js.map +0 -1
- package/esm/types/OAuth.js +0 -3
- package/esm/types/OAuth.js.map +0 -1
- package/esm/types/OktaAuthOptions.js +0 -3
- package/esm/types/OktaAuthOptions.js.map +0 -1
- package/esm/types/Storage.js +0 -3
- package/esm/types/Storage.js.map +0 -1
- package/esm/types/Token.js +0 -29
- package/esm/types/Token.js.map +0 -1
- package/esm/types/TokenManager.js +0 -3
- package/esm/types/TokenManager.js.map +0 -1
- package/esm/types/Transaction.js +0 -57
- package/esm/types/Transaction.js.map +0 -1
- package/esm/types/UserClaims.js +0 -3
- package/esm/types/UserClaims.js.map +0 -1
- package/esm/types/api.js +0 -3
- package/esm/types/api.js.map +0 -1
- package/esm/types/http.js +0 -3
- package/esm/types/http.js.map +0 -1
- package/esm/types/index.js +0 -27
- package/esm/types/index.js.map +0 -1
- package/esm/util/console.js +0 -53
- package/esm/util/console.js.map +0 -1
- package/esm/util/index.js +0 -17
- package/esm/util/index.js.map +0 -1
- package/esm/util/misc.js +0 -33
- package/esm/util/misc.js.map +0 -1
- package/esm/util/object.js +0 -117
- package/esm/util/object.js.map +0 -1
- package/esm/util/types.js +0 -27
- package/esm/util/types.js.map +0 -1
- package/esm/util/url.js +0 -64
- package/esm/util/url.js.map +0 -1
|
@@ -11,8 +11,10 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import StorageManager from '../StorageManager';
|
|
13
13
|
import { CustomUrls } from './OktaAuthOptions';
|
|
14
|
+
import { FlowIdentifier } from '../idx/types';
|
|
14
15
|
export interface TransactionManagerOptions {
|
|
15
|
-
storageManager
|
|
16
|
+
storageManager?: StorageManager;
|
|
17
|
+
enableSharedStorage?: boolean;
|
|
16
18
|
legacyWidgetSupport?: boolean;
|
|
17
19
|
saveNonceCookie?: boolean;
|
|
18
20
|
saveStateCookie?: boolean;
|
|
@@ -21,6 +23,8 @@ export interface TransactionManagerOptions {
|
|
|
21
23
|
export interface TransactionMetaOptions {
|
|
22
24
|
pkce?: boolean;
|
|
23
25
|
oauth?: boolean;
|
|
26
|
+
muteWarning?: boolean;
|
|
27
|
+
state?: string;
|
|
24
28
|
}
|
|
25
29
|
export interface OAuthTransactionMeta {
|
|
26
30
|
issuer: string;
|
|
@@ -32,6 +36,7 @@ export interface OAuthTransactionMeta {
|
|
|
32
36
|
clientId: string;
|
|
33
37
|
urls: CustomUrls;
|
|
34
38
|
ignoreSignature: boolean;
|
|
39
|
+
originalUri?: string;
|
|
35
40
|
}
|
|
36
41
|
export interface PKCETransactionMeta extends OAuthTransactionMeta {
|
|
37
42
|
codeVerifier: string;
|
|
@@ -41,6 +46,7 @@ export interface PKCETransactionMeta extends OAuthTransactionMeta {
|
|
|
41
46
|
export interface IdxTransactionMeta extends PKCETransactionMeta {
|
|
42
47
|
interactionHandle?: string;
|
|
43
48
|
remediations?: string[];
|
|
49
|
+
flow?: FlowIdentifier;
|
|
44
50
|
}
|
|
45
51
|
export declare type CustomAuthTransactionMeta = Record<string, string | undefined>;
|
|
46
52
|
export declare type TransactionMeta = IdxTransactionMeta | PKCETransactionMeta | OAuthTransactionMeta | CustomAuthTransactionMeta;
|
package/lib/types/api.d.ts
CHANGED
|
@@ -18,7 +18,8 @@ import StorageManager from '../StorageManager';
|
|
|
18
18
|
import TransactionManager from '../TransactionManager';
|
|
19
19
|
import { TokenManagerInterface } from './TokenManager';
|
|
20
20
|
import { OktaUserAgent } from '../OktaUserAgent';
|
|
21
|
-
import {
|
|
21
|
+
import { FlowIdentifier } from '../idx/types';
|
|
22
|
+
import { AuthenticationOptions, RegistrationOptions as IdxRegistrationOptions, PasswordRecoveryOptions, ProceedOptions, CancelOptions, IdxOptions, IdxTransaction } from '../idx/types';
|
|
22
23
|
import { InteractOptions, InteractResponse } from '../idx/interact';
|
|
23
24
|
import { IntrospectOptions } from '../idx/introspect';
|
|
24
25
|
import { IdxResponse } from '../idx/types/idx-js';
|
|
@@ -26,10 +27,12 @@ export interface OktaAuth {
|
|
|
26
27
|
options: OktaAuthOptions;
|
|
27
28
|
userAgent: string;
|
|
28
29
|
getIssuerOrigin(): string;
|
|
30
|
+
getOriginalUri(): string;
|
|
29
31
|
_oktaUserAgent: OktaUserAgent;
|
|
30
32
|
storageManager: StorageManager;
|
|
31
33
|
transactionManager: TransactionManager;
|
|
32
34
|
tokenManager: TokenManagerInterface;
|
|
35
|
+
idx: IdxAPI;
|
|
33
36
|
features?: FeaturesAPI;
|
|
34
37
|
token?: TokenAPI;
|
|
35
38
|
}
|
|
@@ -93,7 +96,14 @@ export interface TokenParams extends CustomUrls {
|
|
|
93
96
|
prompt?: string;
|
|
94
97
|
sessionToken?: string;
|
|
95
98
|
timeout?: number;
|
|
99
|
+
extraParams?: {
|
|
100
|
+
[propName: string]: string;
|
|
101
|
+
};
|
|
102
|
+
popupTitle?: string;
|
|
103
|
+
}
|
|
104
|
+
export interface PopupParams {
|
|
96
105
|
popupTitle?: string;
|
|
106
|
+
popupWindow?: Window;
|
|
97
107
|
}
|
|
98
108
|
export interface TokenResponse {
|
|
99
109
|
tokens: Tokens;
|
|
@@ -161,7 +171,7 @@ export interface SigninOptions extends SupportsCodeFlow, AuthenticationOptions {
|
|
|
161
171
|
context?: string;
|
|
162
172
|
sendFingerprint?: boolean;
|
|
163
173
|
}
|
|
164
|
-
export interface SigninWithRedirectOptions extends SigninOptions {
|
|
174
|
+
export interface SigninWithRedirectOptions extends SigninOptions, TokenParams {
|
|
165
175
|
originalUri?: string;
|
|
166
176
|
}
|
|
167
177
|
export interface SigninWithCredentialsOptions extends SigninOptions {
|
|
@@ -202,10 +212,16 @@ export interface PkceAPI {
|
|
|
202
212
|
export interface IdxAPI {
|
|
203
213
|
interact: (options?: InteractOptions) => Promise<InteractResponse>;
|
|
204
214
|
introspect: (options?: IntrospectOptions) => Promise<IdxResponse>;
|
|
205
|
-
authenticate: (options
|
|
206
|
-
register: (options
|
|
215
|
+
authenticate: (options?: AuthenticationOptions) => Promise<IdxTransaction>;
|
|
216
|
+
register: (options?: IdxRegistrationOptions) => Promise<IdxTransaction>;
|
|
217
|
+
proceed: (options?: ProceedOptions) => Promise<IdxTransaction>;
|
|
207
218
|
cancel: (options?: CancelOptions) => Promise<IdxTransaction>;
|
|
208
219
|
startTransaction: (options?: IdxOptions) => Promise<IdxTransaction>;
|
|
209
|
-
recoverPassword: (options
|
|
220
|
+
recoverPassword: (options?: PasswordRecoveryOptions) => Promise<IdxTransaction>;
|
|
210
221
|
handleInteractionCodeRedirect: (url: string) => Promise<void>;
|
|
222
|
+
getFlow(): FlowIdentifier;
|
|
223
|
+
setFlow(flow: FlowIdentifier): void;
|
|
224
|
+
canProceed(options?: {
|
|
225
|
+
state?: string;
|
|
226
|
+
}): boolean;
|
|
211
227
|
}
|
|
@@ -9,12 +9,9 @@
|
|
|
9
9
|
*
|
|
10
10
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
var message = 'The poll was stopped by the sdk';
|
|
16
|
-
super(message);
|
|
17
|
-
}
|
|
18
|
-
|
|
12
|
+
export interface EmailVerifyCallbackResponse {
|
|
13
|
+
state: string;
|
|
14
|
+
stateTokenExternalId: string;
|
|
19
15
|
}
|
|
20
|
-
|
|
16
|
+
export declare function isEmailVerifyCallback(urlPath: string): boolean;
|
|
17
|
+
export declare function parseEmailVerifyCallback(urlPath: string): EmailVerifyCallbackResponse;
|
package/lib/util/index.d.ts
CHANGED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { TransactionMeta } from '../types';
|
|
2
|
+
import StorageManager from '../StorageManager';
|
|
3
|
+
export declare function pruneSharedStorage(storageManager: StorageManager): void;
|
|
4
|
+
export declare function saveTransactionToSharedStorage(storageManager: StorageManager, state: string, meta: TransactionMeta): void;
|
|
5
|
+
export declare function loadTransactionFromSharedStorage(storageManager: StorageManager, state: string): any;
|
|
6
|
+
export declare function clearTransactionFromSharedStorage(storageManager: StorageManager, state: string): void;
|
package/package.json
CHANGED
|
@@ -2,13 +2,15 @@
|
|
|
2
2
|
"private": false,
|
|
3
3
|
"name": "@okta/okta-auth-js",
|
|
4
4
|
"description": "The Okta Auth SDK",
|
|
5
|
-
"version": "5.
|
|
5
|
+
"version": "5.9.0",
|
|
6
6
|
"homepage": "https://github.com/okta/okta-auth-js",
|
|
7
7
|
"license": "Apache-2.0",
|
|
8
8
|
"type": "commonjs",
|
|
9
9
|
"main": "cjs/index.js",
|
|
10
10
|
"module": "esm/index.js",
|
|
11
|
-
"browser":
|
|
11
|
+
"browser": {
|
|
12
|
+
"cjs/index.js": "./dist/okta-auth-js.umd.js"
|
|
13
|
+
},
|
|
12
14
|
"types": "lib/index.d.ts",
|
|
13
15
|
"repository": {
|
|
14
16
|
"type": "git",
|
|
@@ -36,12 +38,14 @@
|
|
|
36
38
|
"test:server": "jest --config ./jest.server.js",
|
|
37
39
|
"test:report": "yarn test --ci --silent || true",
|
|
38
40
|
"test:samples": "yarn workspace @okta/test.e2e.samples start",
|
|
41
|
+
"test:integration": "jest --config ./jest.integration.js",
|
|
39
42
|
"build": "node scripts/build.js",
|
|
40
|
-
"build:cdn": "cross-env NODE_ENV=production webpack --config webpack.cdn.config.js
|
|
41
|
-
"build:web": "cross-env NODE_ENV=production webpack --config webpack.config.js
|
|
43
|
+
"build:cdn": "cross-env NODE_ENV=production webpack --config webpack.cdn.config.js",
|
|
44
|
+
"build:web": "cross-env NODE_ENV=production webpack --config webpack.config.js",
|
|
42
45
|
"build:cjs": "cross-env babel lib -d build/cjs --config-file ./babel.cjs.js --extensions \".ts\",\".js\" --source-maps",
|
|
43
|
-
"build:esm": "
|
|
44
|
-
"build:polyfill": "cross-env NODE_ENV=production webpack --config webpack.polyfill.config.js
|
|
46
|
+
"build:esm": "rollup -c",
|
|
47
|
+
"build:polyfill": "cross-env NODE_ENV=production webpack --config webpack.polyfill.config.js",
|
|
48
|
+
"build:types": "tsc --emitDeclarationOnly",
|
|
45
49
|
"generate:samples": "yarn workspace @okta/samples build && yarn install --ignore-scripts",
|
|
46
50
|
"dev:samples": "yarn workspace @okta/samples dev",
|
|
47
51
|
"prepare": "",
|
|
@@ -69,7 +73,7 @@
|
|
|
69
73
|
},
|
|
70
74
|
"dependencies": {
|
|
71
75
|
"@babel/runtime": "^7.12.5",
|
|
72
|
-
"@okta/okta-idx-js": "0.
|
|
76
|
+
"@okta/okta-idx-js": "0.22.0",
|
|
73
77
|
"@peculiar/webcrypto": "1.1.6",
|
|
74
78
|
"Base64": "1.1.0",
|
|
75
79
|
"atob": "^2.1.2",
|
|
@@ -93,6 +97,10 @@
|
|
|
93
97
|
"@babel/plugin-transform-typescript": "^7.10.5",
|
|
94
98
|
"@babel/preset-env": "^7.8.2",
|
|
95
99
|
"@babel/preset-typescript": "^7.10.4",
|
|
100
|
+
"@okta/okta-signin-widget": "5.13.0",
|
|
101
|
+
"@rollup/plugin-alias": "^3.1.8",
|
|
102
|
+
"@rollup/plugin-babel": "^5.3.0",
|
|
103
|
+
"@rollup/plugin-replace": "^3.0.0",
|
|
96
104
|
"@types/jest": "^25.2.3",
|
|
97
105
|
"@types/node": "^14.0.3",
|
|
98
106
|
"@typescript-eslint/eslint-plugin": "^2.34.0",
|
|
@@ -115,12 +123,17 @@
|
|
|
115
123
|
"jest-junit": "^9.0.0",
|
|
116
124
|
"json-loader": "0.5.4",
|
|
117
125
|
"lodash": "4.17.20",
|
|
126
|
+
"rollup": "^2.59.0",
|
|
127
|
+
"rollup-plugin-cleanup": "^3.2.1",
|
|
128
|
+
"rollup-plugin-license": "^2.6.0",
|
|
129
|
+
"rollup-plugin-typescript2": "^0.30.0",
|
|
118
130
|
"shelljs": "0.8.4",
|
|
119
131
|
"ts-jest": "^26.4.3",
|
|
120
|
-
"ts-loader": "^
|
|
132
|
+
"ts-loader": "^9.2.6",
|
|
121
133
|
"tsd": "^0.17.0",
|
|
122
134
|
"typescript": "^4.2.3",
|
|
123
|
-
"webpack": "^
|
|
135
|
+
"webpack": "^5.60.0",
|
|
136
|
+
"webpack-cli": "^4.9.1"
|
|
124
137
|
},
|
|
125
138
|
"jest-junit": {
|
|
126
139
|
"outputDirectory": "./build2/reports/unit/",
|
|
@@ -128,7 +141,7 @@
|
|
|
128
141
|
},
|
|
129
142
|
"workspaces": {
|
|
130
143
|
"packages": [
|
|
131
|
-
"
|
|
144
|
+
".",
|
|
132
145
|
"env",
|
|
133
146
|
"test/apps/*",
|
|
134
147
|
"test/e2e",
|
|
@@ -159,8 +172,8 @@
|
|
|
159
172
|
}
|
|
160
173
|
},
|
|
161
174
|
"okta": {
|
|
162
|
-
"commitSha": "
|
|
163
|
-
"fullVersion": "5.
|
|
164
|
-
"testedSha": "
|
|
175
|
+
"commitSha": "0ec37e24fe7659493073b852c51aa4cb4397bc74",
|
|
176
|
+
"fullVersion": "5.9.0-g0ec37e2",
|
|
177
|
+
"testedSha": "60dd409a7a75b3b829d905ef1967719fe5728d43"
|
|
165
178
|
}
|
|
166
179
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../lib/idx/flowMonitors/AuthenticationFlowMonitor.ts"],"names":["AuthenticationFlowMonitor","FlowMonitor","isRemediatorCandidate","remediator","remediations","values","prevRemediatorName","previousRemediator","getName","remediatorName","includes","some","name"],"mappings":";;;;AAaA;;AAbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKO,MAAMA,yBAAN,SAAwCC,wBAAxC,CAAoD;AACzDC,EAAAA,qBAAqB,CAACC,UAAD,EAAaC,YAAb,EAA4BC,MAA5B,EAAqC;AAAA;;AACxD,UAAMC,kBAAkB,4BAAG,KAAKC,kBAAR,0DAAG,sBAAyBC,OAAzB,EAA3B;AACA,UAAMC,cAAc,GAAGN,UAAU,CAACK,OAAX,EAAvB;;AAEA,QAAIC,cAAc,KAAK,mCAAnB,IACC,CAAC,mCAAD,EAAsCC,QAAtC,CAA+CJ,kBAA/C,CADL,EACyE;AACvE,aAAO,KAAP;AACD;;AAED,QAAIG,cAAc,KAAK,mCAAnB,IACCL,YAAY,CAACO,IAAb,CAAkB,CAAC;AAAEC,MAAAA;AAAF,KAAD,KAAcA,IAAI,KAAK,yBAAzC,CADL,EAC0E;AACxE,aAAO,KAAP;AACD;;AAED,QAAIH,cAAc,KAAK,6BAAnB,IACC,CACC,6BADD,EAEC,+BAFD,EAGCC,QAHD,CAGUJ,kBAHV,CADL,EAIoC;AAClC,aAAO,KAAP;AACD;;AAED,WAAO,MAAMJ,qBAAN,CAA4BC,UAA5B,EAAwCC,YAAxC,EAAsDC,MAAtD,CAAP;AACD;;AAxBwD","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 { FlowMonitor } from './FlowMonitor';\n\nexport class AuthenticationFlowMonitor extends FlowMonitor {\n isRemediatorCandidate(remediator, remediations?, values?) {\n const prevRemediatorName = this.previousRemediator?.getName();\n const remediatorName = remediator.getName();\n \n if (remediatorName === 'select-authenticator-authenticate' \n && ['select-authenticator-authenticate'].includes(prevRemediatorName)) {\n return false;\n }\n\n if (remediatorName === 'select-authenticator-authenticate' \n && remediations.some(({ name }) => name === 'challenge-authenticator')) {\n return false;\n }\n\n if (remediatorName === 'select-authenticator-enroll' \n && [\n 'select-authenticator-enroll', \n 'authenticator-enrollment-data'\n ].includes(prevRemediatorName)) {\n return false;\n }\n\n return super.isRemediatorCandidate(remediator, remediations, values);\n }\n}\n"],"file":"AuthenticationFlowMonitor.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../lib/idx/flowMonitors/FlowMonitor.ts"],"names":["FlowMonitor","constructor","authClient","loopDetected","remediator","previousRemediator","getName","isRemediatorCandidate","remediations","values","remediatorName","skip","trackRemediations","name","meta","isFinished","Promise","resolve"],"mappings":";;;;AAeA;;AAfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQO,MAAMA,WAAN,CAAkB;AAIvBC,EAAAA,WAAW,CAACC,UAAD,EAAa;AACtB,SAAKA,UAAL,GAAkBA,UAAlB;AACD,GANsB,CAQvB;;;AACAC,EAAAA,YAAY,CAACC,UAAD,EAAkC;AAC5C,QAAI,CAAC,KAAKC,kBAAV,EAA8B;AAC5B,WAAKA,kBAAL,GAA0BD,UAA1B;AACA,aAAO,KAAP;AACD;;AAED,QAAI,KAAKC,kBAAL,CAAwBC,OAAxB,OAAsCF,UAAU,CAACE,OAAX,EAA1C,EAAgE;AAC9D,aAAO,IAAP;AACD;;AAED,SAAKD,kBAAL,GAA0BD,UAA1B;AACA,WAAO,KAAP;AACD;;AAEDG,EAAAA,qBAAqB,EACnB;AACAH,EAAAA,UAFmB,EAEKI,YAFL,EAEsCC,MAFtC,EAGV;AACT,UAAMC,cAAc,GAAGN,UAAU,CAACE,OAAX,EAAvB;;AACA,QAAI,CAACG,MAAM,CAACE,IAAR,IAAgBD,cAAc,KAAK,MAAvC,EAA+C;AAC7C,aAAO,KAAP;AACD;;AACD,QAAID,MAAM,CAACE,IAAP,IAAeD,cAAc,KAAK,MAAtC,EAA8C;AAC5C,aAAO,KAAP;AACD;;AACD,WAAO,IAAP;AACD;;AAEsB,QAAjBE,iBAAiB,CAACC,IAAD,EAAe;AACpC,QAAIC,IAAI,GAAG,MAAM,yCAAmB,KAAKZ,UAAxB,CAAjB;AACA,UAAMM,YAAY,GAAGM,IAAI,CAACN,YAAL,IAAqB,EAA1C;AACAM,IAAAA,IAAI,GAAG,EACL,GAAGA,IADE;AAELN,MAAAA,YAAY,EAAE,CAAC,GAAGA,YAAJ,EAAkBK,IAAlB;AAFT,KAAP;AAIA,8CAAoB,KAAKX,UAAzB,EAAqCY,IAArC;AACD;;AAEDC,EAAAA,UAAU,GAAqB;AAC7B,WAAOC,OAAO,CAACC,OAAR,CAAgB,IAAhB,CAAP;AACD;;AAjDsB","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 { OktaAuth } from '../../types';\nimport { Remediator, RemediationValues, SkipValues } from '../remediators';\nimport { getTransactionMeta, saveTransactionMeta } from '../transactionMeta';\nimport { IdxRemediation } from '../types/idx-js';\n\nexport class FlowMonitor {\n previousRemediator: Remediator;\n authClient: OktaAuth;\n\n constructor(authClient) {\n this.authClient = authClient;\n }\n\n // detect in-memory loop\n loopDetected(remediator: Remediator): boolean {\n if (!this.previousRemediator) {\n this.previousRemediator = remediator;\n return false;\n }\n\n if (this.previousRemediator.getName() === remediator.getName()) {\n return true;\n }\n\n this.previousRemediator = remediator;\n return false;\n }\n\n isRemediatorCandidate(\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n remediator: Remediator, remediations?: IdxRemediation[], values?: RemediationValues & SkipValues\n ): boolean {\n const remediatorName = remediator.getName();\n if (!values.skip && remediatorName === 'skip') {\n return false;\n }\n if (values.skip && remediatorName !== 'skip') {\n return false;\n }\n return true;\n }\n\n async trackRemediations(name: string) {\n let meta = await getTransactionMeta(this.authClient);\n const remediations = meta.remediations || [];\n meta = { \n ...meta, \n remediations: [...remediations, name]\n };\n saveTransactionMeta(this.authClient, meta);\n }\n\n isFinished(): Promise<boolean> {\n return Promise.resolve(true);\n }\n}\n"],"file":"FlowMonitor.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../lib/idx/flowMonitors/PasswordRecoveryFlowMonitor.ts"],"names":["PasswordRecoveryFlowMonitor","FlowMonitor","isRemediatorCandidate","remediator","remediations","values","prevRemediatorName","previousRemediator","getName","remediatorName","includes","some","name","isFinished","authClient"],"mappings":";;;;AAaA;;AACA;;AAdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMO,MAAMA,2BAAN,SAA0CC,wBAA1C,CAAsD;AAC3DC,EAAAA,qBAAqB,CAACC,UAAD,EAAaC,YAAb,EAA4BC,MAA5B,EAAqC;AAAA;;AACxD,UAAMC,kBAAkB,4BAAG,KAAKC,kBAAR,0DAAG,sBAAyBC,OAAzB,EAA3B;AACA,UAAMC,cAAc,GAAGN,UAAU,CAACK,OAAX,EAAvB;;AAEA,QAAIC,cAAc,KAAK,mCAAnB,IACC,CACD,mCADC,EAED,wBAFC,EAGDC,QAHC,CAGQJ,kBAHR,CADL,EAIkC;AAChC,aAAO,KAAP;AACD;;AAED,QAAIG,cAAc,KAAK,mCAAnB,IACCL,YAAY,CAACO,IAAb,CAAkB,CAAC;AAAEC,MAAAA;AAAF,KAAD,KAAcA,IAAI,KAAK,yBAAzC,CADL,EAC0E;AACxE,aAAO,KAAP;AACD;;AAED,WAAO,MAAMV,qBAAN,CAA4BC,UAA5B,EAAwCC,YAAxC,EAAsDC,MAAtD,CAAP;AACD;;AAEe,QAAVQ,UAAU,GAAG;AACjB,UAAM;AAAET,MAAAA;AAAF,QAAoB,MAAM,yCAAmB,KAAKU,UAAxB,CAAhC;;AACA,QAAI,CAACV,YAAY,CAACM,QAAb,CAAsB,qBAAtB,CAAL,EAAmD;AACjD,aAAO,KAAP;AACD;;AAED,WAAO,MAAM,MAAMG,UAAN,EAAb;AACD;;AA5B0D","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 { FlowMonitor } from './FlowMonitor';\nimport { getTransactionMeta } from '../transactionMeta';\n\nexport class PasswordRecoveryFlowMonitor extends FlowMonitor {\n isRemediatorCandidate(remediator, remediations?, values?) {\n const prevRemediatorName = this.previousRemediator?.getName();\n const remediatorName = remediator.getName();\n \n if (remediatorName === 'select-authenticator-authenticate' \n && [\n 'select-authenticator-authenticate',\n 'reenroll-authenticator'\n ].includes(prevRemediatorName)) {\n return false;\n }\n\n if (remediatorName === 'select-authenticator-authenticate' \n && remediations.some(({ name }) => name === 'challenge-authenticator')) {\n return false;\n }\n\n return super.isRemediatorCandidate(remediator, remediations, values);\n }\n\n async isFinished() {\n const { remediations } = await getTransactionMeta(this.authClient);\n if (!remediations.includes('reset-authenticator')) {\n return false;\n }\n\n return await super.isFinished();\n }\n}\n"],"file":"PasswordRecoveryFlowMonitor.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../lib/idx/flowMonitors/RegistrationFlowMonitor.ts"],"names":["RegistrationFlowMonitor","FlowMonitor","isRemediatorCandidate","remediator","remediations","values","prevRemediatorName","previousRemediator","getName","remediatorName","includes"],"mappings":";;;;AAaA;;AAbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKO,MAAMA,uBAAN,SAAsCC,wBAAtC,CAAkD;AACvDC,EAAAA,qBAAqB,CAACC,UAAD,EAAaC,YAAb,EAA4BC,MAA5B,EAAqC;AAAA;;AACxD,UAAMC,kBAAkB,4BAAG,KAAKC,kBAAR,0DAAG,sBAAyBC,OAAzB,EAA3B;AACA,UAAMC,cAAc,GAAGN,UAAU,CAACK,OAAX,EAAvB;;AACA,QAAIC,cAAc,KAAK,6BAAnB,IACC,CACC,6BADD,EAEC,+BAFD,EAGCC,QAHD,CAGUJ,kBAHV,CADL,EAIoC;AAClC,aAAO,KAAP;AACD;;AAED,WAAO,MAAMJ,qBAAN,CAA4BC,UAA5B,EAAwCC,YAAxC,EAAsDC,MAAtD,CAAP;AACD;;AAbsD","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 { FlowMonitor } from './FlowMonitor';\n\nexport class RegistrationFlowMonitor extends FlowMonitor {\n isRemediatorCandidate(remediator, remediations?, values?) {\n const prevRemediatorName = this.previousRemediator?.getName();\n const remediatorName = remediator.getName();\n if (remediatorName === 'select-authenticator-enroll' \n && [\n 'select-authenticator-enroll', \n 'authenticator-enrollment-data'\n ].includes(prevRemediatorName)) {\n return false;\n }\n\n return super.isRemediatorCandidate(remediator, remediations, values);\n }\n}\n"],"file":"RegistrationFlowMonitor.js"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _FlowMonitor = require("./FlowMonitor");
|
|
4
|
-
|
|
5
|
-
Object.keys(_FlowMonitor).forEach(function (key) {
|
|
6
|
-
if (key === "default" || key === "__esModule") return;
|
|
7
|
-
if (key in exports && exports[key] === _FlowMonitor[key]) return;
|
|
8
|
-
Object.defineProperty(exports, key, {
|
|
9
|
-
enumerable: true,
|
|
10
|
-
get: function () {
|
|
11
|
-
return _FlowMonitor[key];
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
var _RegistrationFlowMonitor = require("./RegistrationFlowMonitor");
|
|
17
|
-
|
|
18
|
-
Object.keys(_RegistrationFlowMonitor).forEach(function (key) {
|
|
19
|
-
if (key === "default" || key === "__esModule") return;
|
|
20
|
-
if (key in exports && exports[key] === _RegistrationFlowMonitor[key]) return;
|
|
21
|
-
Object.defineProperty(exports, key, {
|
|
22
|
-
enumerable: true,
|
|
23
|
-
get: function () {
|
|
24
|
-
return _RegistrationFlowMonitor[key];
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
var _AuthenticationFlowMonitor = require("./AuthenticationFlowMonitor");
|
|
30
|
-
|
|
31
|
-
Object.keys(_AuthenticationFlowMonitor).forEach(function (key) {
|
|
32
|
-
if (key === "default" || key === "__esModule") return;
|
|
33
|
-
if (key in exports && exports[key] === _AuthenticationFlowMonitor[key]) return;
|
|
34
|
-
Object.defineProperty(exports, key, {
|
|
35
|
-
enumerable: true,
|
|
36
|
-
get: function () {
|
|
37
|
-
return _AuthenticationFlowMonitor[key];
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
var _PasswordRecoveryFlowMonitor = require("./PasswordRecoveryFlowMonitor");
|
|
43
|
-
|
|
44
|
-
Object.keys(_PasswordRecoveryFlowMonitor).forEach(function (key) {
|
|
45
|
-
if (key === "default" || key === "__esModule") return;
|
|
46
|
-
if (key in exports && exports[key] === _PasswordRecoveryFlowMonitor[key]) return;
|
|
47
|
-
Object.defineProperty(exports, key, {
|
|
48
|
-
enumerable: true,
|
|
49
|
-
get: function () {
|
|
50
|
-
return _PasswordRecoveryFlowMonitor[key];
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../lib/idx/flowMonitors/index.ts"],"names":[],"mappings":";;AAaA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","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\nexport * from './FlowMonitor';\nexport * from './RegistrationFlowMonitor';\nexport * from './AuthenticationFlowMonitor';\nexport * from './PasswordRecoveryFlowMonitor';\n"],"file":"index.js"}
|
package/esm/AuthStateManager.js
DELETED
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
-
|
|
4
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
5
|
-
|
|
6
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
7
|
-
|
|
8
|
-
/*!
|
|
9
|
-
* Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
|
|
10
|
-
* The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
|
|
11
|
-
*
|
|
12
|
-
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
|
|
13
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
-
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
15
|
-
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
-
*
|
|
17
|
-
* See the License for the specific language governing permissions and limitations under the License.
|
|
18
|
-
*/
|
|
19
|
-
import { AuthSdkError } from './errors';
|
|
20
|
-
import { getConsole } from './util';
|
|
21
|
-
import { EVENT_ADDED, EVENT_REMOVED } from './TokenManager';
|
|
22
|
-
|
|
23
|
-
var PCancelable = require('p-cancelable');
|
|
24
|
-
|
|
25
|
-
export var INITIAL_AUTH_STATE = null;
|
|
26
|
-
var DEFAULT_PENDING = {
|
|
27
|
-
updateAuthStatePromise: null,
|
|
28
|
-
canceledTimes: 0
|
|
29
|
-
};
|
|
30
|
-
var EVENT_AUTH_STATE_CHANGE = 'authStateChange';
|
|
31
|
-
var MAX_PROMISE_CANCEL_TIMES = 10; // only compare first level of authState
|
|
32
|
-
|
|
33
|
-
var isSameAuthState = (prevState, state) => {
|
|
34
|
-
// initial state is null
|
|
35
|
-
if (!prevState) {
|
|
36
|
-
return false;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return prevState.isAuthenticated === state.isAuthenticated && JSON.stringify(prevState.idToken) === JSON.stringify(state.idToken) && JSON.stringify(prevState.accessToken) === JSON.stringify(state.accessToken) && prevState.error === state.error;
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
export class AuthStateManager {
|
|
43
|
-
constructor(sdk) {
|
|
44
|
-
if (!sdk.emitter) {
|
|
45
|
-
throw new AuthSdkError('Emitter should be initialized before AuthStateManager');
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
this._sdk = sdk;
|
|
49
|
-
this._pending = _objectSpread({}, DEFAULT_PENDING);
|
|
50
|
-
this._authState = INITIAL_AUTH_STATE;
|
|
51
|
-
this._logOptions = {}; // Listen on tokenManager events to start updateState process
|
|
52
|
-
// "added" event is emitted in both add and renew process
|
|
53
|
-
// Only listen on "added" event to update auth state
|
|
54
|
-
|
|
55
|
-
sdk.tokenManager.on(EVENT_ADDED, (key, token) => {
|
|
56
|
-
this._setLogOptions({
|
|
57
|
-
event: EVENT_ADDED,
|
|
58
|
-
key,
|
|
59
|
-
token
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
this.updateAuthState();
|
|
63
|
-
});
|
|
64
|
-
sdk.tokenManager.on(EVENT_REMOVED, (key, token) => {
|
|
65
|
-
this._setLogOptions({
|
|
66
|
-
event: EVENT_REMOVED,
|
|
67
|
-
key,
|
|
68
|
-
token
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
this.updateAuthState();
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
_setLogOptions(options) {
|
|
76
|
-
this._logOptions = options;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
getAuthState() {
|
|
80
|
-
return this._authState;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
updateAuthState() {
|
|
84
|
-
var _this = this;
|
|
85
|
-
|
|
86
|
-
return _asyncToGenerator(function* () {
|
|
87
|
-
var {
|
|
88
|
-
transformAuthState,
|
|
89
|
-
devMode
|
|
90
|
-
} = _this._sdk.options;
|
|
91
|
-
|
|
92
|
-
var log = status => {
|
|
93
|
-
var {
|
|
94
|
-
event,
|
|
95
|
-
key,
|
|
96
|
-
token
|
|
97
|
-
} = _this._logOptions;
|
|
98
|
-
getConsole().group("OKTA-AUTH-JS:updateAuthState: Event:".concat(event, " Status:").concat(status));
|
|
99
|
-
getConsole().log(key, token);
|
|
100
|
-
getConsole().log('Current authState', _this._authState);
|
|
101
|
-
getConsole().groupEnd(); // clear log options after logging
|
|
102
|
-
|
|
103
|
-
_this._logOptions = {};
|
|
104
|
-
};
|
|
105
|
-
|
|
106
|
-
var emitAuthStateChange = authState => {
|
|
107
|
-
if (isSameAuthState(_this._authState, authState)) {
|
|
108
|
-
devMode && log('unchanged');
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
_this._authState = authState; // emit new authState object
|
|
113
|
-
|
|
114
|
-
_this._sdk.emitter.emit(EVENT_AUTH_STATE_CHANGE, _objectSpread({}, authState));
|
|
115
|
-
|
|
116
|
-
devMode && log('emitted');
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
var finalPromise = origPromise => {
|
|
120
|
-
return _this._pending.updateAuthStatePromise.then(() => {
|
|
121
|
-
var curPromise = _this._pending.updateAuthStatePromise;
|
|
122
|
-
|
|
123
|
-
if (curPromise && curPromise !== origPromise) {
|
|
124
|
-
return finalPromise(curPromise);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
return _this.getAuthState();
|
|
128
|
-
});
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
if (_this._pending.updateAuthStatePromise) {
|
|
132
|
-
if (_this._pending.canceledTimes >= MAX_PROMISE_CANCEL_TIMES) {
|
|
133
|
-
// stop canceling then starting a new promise
|
|
134
|
-
// let existing promise finish to prevent running into loops
|
|
135
|
-
devMode && log('terminated');
|
|
136
|
-
return finalPromise(_this._pending.updateAuthStatePromise);
|
|
137
|
-
} else {
|
|
138
|
-
_this._pending.updateAuthStatePromise.cancel();
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
/* eslint-disable complexity */
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
var cancelablePromise = new PCancelable((resolve, _, onCancel) => {
|
|
145
|
-
onCancel.shouldReject = false;
|
|
146
|
-
onCancel(() => {
|
|
147
|
-
_this._pending.updateAuthStatePromise = null;
|
|
148
|
-
_this._pending.canceledTimes = _this._pending.canceledTimes + 1;
|
|
149
|
-
devMode && log('canceled');
|
|
150
|
-
});
|
|
151
|
-
|
|
152
|
-
var emitAndResolve = authState => {
|
|
153
|
-
if (cancelablePromise.isCanceled) {
|
|
154
|
-
resolve();
|
|
155
|
-
return;
|
|
156
|
-
} // emit event and resolve promise
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
emitAuthStateChange(authState);
|
|
160
|
-
resolve(); // clear pending states after resolve
|
|
161
|
-
|
|
162
|
-
_this._pending = _objectSpread({}, DEFAULT_PENDING);
|
|
163
|
-
};
|
|
164
|
-
|
|
165
|
-
_this._sdk.isAuthenticated().then(() => {
|
|
166
|
-
if (cancelablePromise.isCanceled) {
|
|
167
|
-
resolve();
|
|
168
|
-
return;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
var {
|
|
172
|
-
accessToken,
|
|
173
|
-
idToken,
|
|
174
|
-
refreshToken
|
|
175
|
-
} = _this._sdk.tokenManager.getTokensSync();
|
|
176
|
-
|
|
177
|
-
var authState = {
|
|
178
|
-
accessToken,
|
|
179
|
-
idToken,
|
|
180
|
-
refreshToken,
|
|
181
|
-
isAuthenticated: !!(accessToken && idToken)
|
|
182
|
-
};
|
|
183
|
-
var promise = transformAuthState ? transformAuthState(_this._sdk, authState) : Promise.resolve(authState);
|
|
184
|
-
promise.then(authState => emitAndResolve(authState)).catch(error => emitAndResolve({
|
|
185
|
-
accessToken,
|
|
186
|
-
idToken,
|
|
187
|
-
refreshToken,
|
|
188
|
-
isAuthenticated: false,
|
|
189
|
-
error
|
|
190
|
-
}));
|
|
191
|
-
});
|
|
192
|
-
});
|
|
193
|
-
/* eslint-enable complexity */
|
|
194
|
-
|
|
195
|
-
_this._pending.updateAuthStatePromise = cancelablePromise;
|
|
196
|
-
return finalPromise(cancelablePromise);
|
|
197
|
-
})();
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
subscribe(handler) {
|
|
201
|
-
this._sdk.emitter.on(EVENT_AUTH_STATE_CHANGE, handler);
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
unsubscribe(handler) {
|
|
205
|
-
this._sdk.emitter.off(EVENT_AUTH_STATE_CHANGE, handler);
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
}
|
|
209
|
-
//# sourceMappingURL=AuthStateManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../lib/AuthStateManager.ts"],"names":["AuthSdkError","getConsole","EVENT_ADDED","EVENT_REMOVED","PCancelable","require","INITIAL_AUTH_STATE","DEFAULT_PENDING","updateAuthStatePromise","canceledTimes","EVENT_AUTH_STATE_CHANGE","MAX_PROMISE_CANCEL_TIMES","isSameAuthState","prevState","state","isAuthenticated","JSON","stringify","idToken","accessToken","error","AuthStateManager","constructor","sdk","emitter","_sdk","_pending","_authState","_logOptions","tokenManager","on","key","token","_setLogOptions","event","updateAuthState","options","getAuthState","transformAuthState","devMode","log","status","group","groupEnd","emitAuthStateChange","authState","emit","finalPromise","origPromise","then","curPromise","cancel","cancelablePromise","resolve","_","onCancel","shouldReject","emitAndResolve","isCanceled","refreshToken","getTokensSync","promise","Promise","catch","subscribe","handler","unsubscribe","off"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA,SAASA,YAAT,QAA6B,UAA7B;AAGA,SAASC,UAAT,QAA2B,QAA3B;AACA,SAASC,WAAT,EAAsBC,aAAtB,QAA2C,gBAA3C;;AACA,IAAMC,WAAW,GAAGC,OAAO,CAAC,cAAD,CAA3B;;AAEA,OAAO,IAAMC,kBAAkB,GAAG,IAA3B;AACP,IAAMC,eAAe,GAAG;AACtBC,EAAAA,sBAAsB,EAAE,IADF;AAEtBC,EAAAA,aAAa,EAAE;AAFO,CAAxB;AAIA,IAAMC,uBAAuB,GAAG,iBAAhC;AACA,IAAMC,wBAAwB,GAAG,EAAjC,C,CAEA;;AACA,IAAMC,eAAe,GAAG,CAACC,SAAD,EAAuBC,KAAvB,KAA4C;AAClE;AACA,MAAI,CAACD,SAAL,EAAgB;AACd,WAAO,KAAP;AACD;;AAED,SAAOA,SAAS,CAACE,eAAV,KAA8BD,KAAK,CAACC,eAApC,IACFC,IAAI,CAACC,SAAL,CAAeJ,SAAS,CAACK,OAAzB,MAAsCF,IAAI,CAACC,SAAL,CAAeH,KAAK,CAACI,OAArB,CADpC,IAEFF,IAAI,CAACC,SAAL,CAAeJ,SAAS,CAACM,WAAzB,MAA0CH,IAAI,CAACC,SAAL,CAAeH,KAAK,CAACK,WAArB,CAFxC,IAGFN,SAAS,CAACO,KAAV,KAAoBN,KAAK,CAACM,KAH/B;AAID,CAVD;;AAYA,OAAO,MAAMC,gBAAN,CAAuB;AAU5BC,EAAAA,WAAW,CAACC,GAAD,EAAgB;AACzB,QAAI,CAACA,GAAG,CAACC,OAAT,EAAkB;AAChB,YAAM,IAAIxB,YAAJ,CAAiB,uDAAjB,CAAN;AACD;;AAED,SAAKyB,IAAL,GAAYF,GAAZ;AACA,SAAKG,QAAL,qBAAqBnB,eAArB;AACA,SAAKoB,UAAL,GAAkBrB,kBAAlB;AACA,SAAKsB,WAAL,GAAmB,EAAnB,CARyB,CAUzB;AACA;AACA;;AACAL,IAAAA,GAAG,CAACM,YAAJ,CAAiBC,EAAjB,CAAoB5B,WAApB,EAAiC,CAAC6B,GAAD,EAAMC,KAAN,KAAgB;AAC/C,WAAKC,cAAL,CAAoB;AAAEC,QAAAA,KAAK,EAAEhC,WAAT;AAAsB6B,QAAAA,GAAtB;AAA2BC,QAAAA;AAA3B,OAApB;;AACA,WAAKG,eAAL;AACD,KAHD;AAIAZ,IAAAA,GAAG,CAACM,YAAJ,CAAiBC,EAAjB,CAAoB3B,aAApB,EAAmC,CAAC4B,GAAD,EAAMC,KAAN,KAAgB;AACjD,WAAKC,cAAL,CAAoB;AAAEC,QAAAA,KAAK,EAAE/B,aAAT;AAAwB4B,QAAAA,GAAxB;AAA6BC,QAAAA;AAA7B,OAApB;;AACA,WAAKG,eAAL;AACD,KAHD;AAID;;AAEDF,EAAAA,cAAc,CAACG,OAAD,EAAU;AACtB,SAAKR,WAAL,GAAmBQ,OAAnB;AACD;;AAEDC,EAAAA,YAAY,GAAc;AACxB,WAAO,KAAKV,UAAZ;AACD;;AAEKQ,EAAAA,eAAe,GAAuB;AAAA;;AAAA;AAC1C,UAAM;AAAEG,QAAAA,kBAAF;AAAsBC,QAAAA;AAAtB,UAAkC,KAAI,CAACd,IAAL,CAAUW,OAAlD;;AAEA,UAAMI,GAAG,GAAIC,MAAD,IAAY;AACtB,YAAM;AAAEP,UAAAA,KAAF;AAASH,UAAAA,GAAT;AAAcC,UAAAA;AAAd,YAAwB,KAAI,CAACJ,WAAnC;AACA3B,QAAAA,UAAU,GAAGyC,KAAb,+CAA0DR,KAA1D,qBAA0EO,MAA1E;AACAxC,QAAAA,UAAU,GAAGuC,GAAb,CAAiBT,GAAjB,EAAsBC,KAAtB;AACA/B,QAAAA,UAAU,GAAGuC,GAAb,CAAiB,mBAAjB,EAAsC,KAAI,CAACb,UAA3C;AACA1B,QAAAA,UAAU,GAAG0C,QAAb,GALsB,CAOtB;;AACA,QAAA,KAAI,CAACf,WAAL,GAAmB,EAAnB;AACD,OATD;;AAWA,UAAMgB,mBAAmB,GAAIC,SAAD,IAAe;AACzC,YAAIjC,eAAe,CAAC,KAAI,CAACe,UAAN,EAAkBkB,SAAlB,CAAnB,EAAiD;AAC/CN,UAAAA,OAAO,IAAIC,GAAG,CAAC,WAAD,CAAd;AACA;AACD;;AACD,QAAA,KAAI,CAACb,UAAL,GAAkBkB,SAAlB,CALyC,CAMzC;;AACA,QAAA,KAAI,CAACpB,IAAL,CAAUD,OAAV,CAAkBsB,IAAlB,CAAuBpC,uBAAvB,oBAAqDmC,SAArD;;AACAN,QAAAA,OAAO,IAAIC,GAAG,CAAC,SAAD,CAAd;AACD,OATD;;AAWA,UAAMO,YAAY,GAAIC,WAAD,IAAiB;AACpC,eAAO,KAAI,CAACtB,QAAL,CAAclB,sBAAd,CAAqCyC,IAArC,CAA0C,MAAM;AACrD,cAAMC,UAAU,GAAG,KAAI,CAACxB,QAAL,CAAclB,sBAAjC;;AACA,cAAI0C,UAAU,IAAIA,UAAU,KAAKF,WAAjC,EAA8C;AAC5C,mBAAOD,YAAY,CAACG,UAAD,CAAnB;AACD;;AACD,iBAAO,KAAI,CAACb,YAAL,EAAP;AACD,SANM,CAAP;AAOD,OARD;;AAUA,UAAI,KAAI,CAACX,QAAL,CAAclB,sBAAlB,EAA0C;AACxC,YAAI,KAAI,CAACkB,QAAL,CAAcjB,aAAd,IAA+BE,wBAAnC,EAA6D;AAC3D;AACA;AACA4B,UAAAA,OAAO,IAAIC,GAAG,CAAC,YAAD,CAAd;AACA,iBAAOO,YAAY,CAAC,KAAI,CAACrB,QAAL,CAAclB,sBAAf,CAAnB;AACD,SALD,MAKO;AACL,UAAA,KAAI,CAACkB,QAAL,CAAclB,sBAAd,CAAqC2C,MAArC;AACD;AACF;AAED;;;AACA,UAAMC,iBAAiB,GAAG,IAAIhD,WAAJ,CAAgB,CAACiD,OAAD,EAAUC,CAAV,EAAaC,QAAb,KAA0B;AAClEA,QAAAA,QAAQ,CAACC,YAAT,GAAwB,KAAxB;AACAD,QAAAA,QAAQ,CAAC,MAAM;AACb,UAAA,KAAI,CAAC7B,QAAL,CAAclB,sBAAd,GAAuC,IAAvC;AACA,UAAA,KAAI,CAACkB,QAAL,CAAcjB,aAAd,GAA8B,KAAI,CAACiB,QAAL,CAAcjB,aAAd,GAA8B,CAA5D;AACA8B,UAAAA,OAAO,IAAIC,GAAG,CAAC,UAAD,CAAd;AACD,SAJO,CAAR;;AAMA,YAAMiB,cAAc,GAAIZ,SAAD,IAAe;AACpC,cAAIO,iBAAiB,CAACM,UAAtB,EAAkC;AAChCL,YAAAA,OAAO;AACP;AACD,WAJmC,CAKpC;;;AACAT,UAAAA,mBAAmB,CAACC,SAAD,CAAnB;AACAQ,UAAAA,OAAO,GAP6B,CASpC;;AACA,UAAA,KAAI,CAAC3B,QAAL,qBAAqBnB,eAArB;AACD,SAXD;;AAaA,QAAA,KAAI,CAACkB,IAAL,CAAUV,eAAV,GACGkC,IADH,CACQ,MAAM;AACV,cAAIG,iBAAiB,CAACM,UAAtB,EAAkC;AAChCL,YAAAA,OAAO;AACP;AACD;;AAED,cAAM;AAAElC,YAAAA,WAAF;AAAeD,YAAAA,OAAf;AAAwByC,YAAAA;AAAxB,cAAyC,KAAI,CAAClC,IAAL,CAAUI,YAAV,CAAuB+B,aAAvB,EAA/C;;AACA,cAAMf,SAAS,GAAG;AAChB1B,YAAAA,WADgB;AAEhBD,YAAAA,OAFgB;AAGhByC,YAAAA,YAHgB;AAIhB5C,YAAAA,eAAe,EAAE,CAAC,EAAEI,WAAW,IAAID,OAAjB;AAJF,WAAlB;AAMA,cAAM2C,OAA2B,GAAGvB,kBAAkB,GAClDA,kBAAkB,CAAC,KAAI,CAACb,IAAN,EAAYoB,SAAZ,CADgC,GAElDiB,OAAO,CAACT,OAAR,CAAgBR,SAAhB,CAFJ;AAIAgB,UAAAA,OAAO,CACJZ,IADH,CACQJ,SAAS,IAAIY,cAAc,CAACZ,SAAD,CADnC,EAEGkB,KAFH,CAES3C,KAAK,IAAIqC,cAAc,CAAC;AAC7BtC,YAAAA,WAD6B;AAE7BD,YAAAA,OAF6B;AAG7ByC,YAAAA,YAH6B;AAI7B5C,YAAAA,eAAe,EAAE,KAJY;AAK7BK,YAAAA;AAL6B,WAAD,CAFhC;AASD,SA3BH;AA4BD,OAjDyB,CAA1B;AAkDA;;AACA,MAAA,KAAI,CAACM,QAAL,CAAclB,sBAAd,GAAuC4C,iBAAvC;AAEA,aAAOL,YAAY,CAACK,iBAAD,CAAnB;AApG0C;AAqG3C;;AAEDY,EAAAA,SAAS,CAACC,OAAD,EAAgB;AACvB,SAAKxC,IAAL,CAAUD,OAAV,CAAkBM,EAAlB,CAAqBpB,uBAArB,EAA8CuD,OAA9C;AACD;;AAEDC,EAAAA,WAAW,CAACD,OAAD,EAAiB;AAC1B,SAAKxC,IAAL,CAAUD,OAAV,CAAkB2C,GAAlB,CAAsBzD,uBAAtB,EAA+CuD,OAA/C;AACD;;AAtJ2B","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 { AuthState, AuthStateLogOptions } from './types';\nimport { OktaAuth } from '.';\nimport { getConsole } from './util';\nimport { EVENT_ADDED, EVENT_REMOVED } from './TokenManager';\nconst PCancelable = require('p-cancelable');\n\nexport const INITIAL_AUTH_STATE = null;\nconst DEFAULT_PENDING = {\n updateAuthStatePromise: null,\n canceledTimes: 0\n};\nconst EVENT_AUTH_STATE_CHANGE = 'authStateChange';\nconst MAX_PROMISE_CANCEL_TIMES = 10;\n\n// only compare first level of authState\nconst isSameAuthState = (prevState: AuthState, state: AuthState) => {\n // initial state is null\n if (!prevState) {\n return false;\n }\n\n return prevState.isAuthenticated === state.isAuthenticated \n && JSON.stringify(prevState.idToken) === JSON.stringify(state.idToken)\n && JSON.stringify(prevState.accessToken) === JSON.stringify(state.accessToken)\n && prevState.error === state.error;\n};\n\nexport class AuthStateManager {\n _sdk: OktaAuth;\n _pending: { \n updateAuthStatePromise: typeof PCancelable;\n canceledTimes: number; \n };\n _authState: AuthState;\n _logOptions: AuthStateLogOptions;\n _lastEventTimestamp: number;\n\n constructor(sdk: OktaAuth) {\n if (!sdk.emitter) {\n throw new AuthSdkError('Emitter should be initialized before AuthStateManager');\n }\n\n this._sdk = sdk;\n this._pending = { ...DEFAULT_PENDING };\n this._authState = INITIAL_AUTH_STATE;\n this._logOptions = {};\n\n // Listen on tokenManager events to start updateState process\n // \"added\" event is emitted in both add and renew process\n // Only listen on \"added\" event to update auth state\n sdk.tokenManager.on(EVENT_ADDED, (key, token) => {\n this._setLogOptions({ event: EVENT_ADDED, key, token });\n this.updateAuthState();\n });\n sdk.tokenManager.on(EVENT_REMOVED, (key, token) => {\n this._setLogOptions({ event: EVENT_REMOVED, key, token });\n this.updateAuthState();\n });\n }\n\n _setLogOptions(options) {\n this._logOptions = options;\n }\n\n getAuthState(): AuthState {\n return this._authState;\n }\n\n async updateAuthState(): Promise<AuthState> {\n const { transformAuthState, devMode } = this._sdk.options;\n\n const log = (status) => {\n const { event, key, token } = this._logOptions;\n getConsole().group(`OKTA-AUTH-JS:updateAuthState: Event:${event} Status:${status}`);\n getConsole().log(key, token);\n getConsole().log('Current authState', this._authState);\n getConsole().groupEnd();\n \n // clear log options after logging\n this._logOptions = {};\n };\n\n const emitAuthStateChange = (authState) => {\n if (isSameAuthState(this._authState, authState)) {\n devMode && log('unchanged'); \n return;\n }\n this._authState = authState;\n // emit new authState object\n this._sdk.emitter.emit(EVENT_AUTH_STATE_CHANGE, { ...authState });\n devMode && log('emitted');\n };\n\n const finalPromise = (origPromise) => { \n return this._pending.updateAuthStatePromise.then(() => {\n const curPromise = this._pending.updateAuthStatePromise;\n if (curPromise && curPromise !== origPromise) {\n return finalPromise(curPromise);\n }\n return this.getAuthState();\n });\n };\n\n if (this._pending.updateAuthStatePromise) {\n if (this._pending.canceledTimes >= MAX_PROMISE_CANCEL_TIMES) {\n // stop canceling then starting a new promise\n // let existing promise finish to prevent running into loops\n devMode && log('terminated');\n return finalPromise(this._pending.updateAuthStatePromise);\n } else {\n this._pending.updateAuthStatePromise.cancel();\n }\n }\n\n /* eslint-disable complexity */\n const cancelablePromise = new PCancelable((resolve, _, onCancel) => {\n onCancel.shouldReject = false;\n onCancel(() => {\n this._pending.updateAuthStatePromise = null;\n this._pending.canceledTimes = this._pending.canceledTimes + 1;\n devMode && log('canceled');\n });\n\n const emitAndResolve = (authState) => {\n if (cancelablePromise.isCanceled) {\n resolve();\n return;\n }\n // emit event and resolve promise \n emitAuthStateChange(authState);\n resolve();\n\n // clear pending states after resolve\n this._pending = { ...DEFAULT_PENDING };\n };\n\n this._sdk.isAuthenticated()\n .then(() => {\n if (cancelablePromise.isCanceled) {\n resolve();\n return;\n }\n\n const { accessToken, idToken, refreshToken } = this._sdk.tokenManager.getTokensSync();\n const authState = {\n accessToken,\n idToken,\n refreshToken,\n isAuthenticated: !!(accessToken && idToken)\n };\n const promise: Promise<AuthState> = transformAuthState\n ? transformAuthState(this._sdk, authState)\n : Promise.resolve(authState);\n\n promise\n .then(authState => emitAndResolve(authState))\n .catch(error => emitAndResolve({\n accessToken, \n idToken, \n refreshToken,\n isAuthenticated: false, \n error\n }));\n });\n });\n /* eslint-enable complexity */\n this._pending.updateAuthStatePromise = cancelablePromise;\n\n return finalPromise(cancelablePromise);\n }\n\n subscribe(handler): void {\n this._sdk.emitter.on(EVENT_AUTH_STATE_CHANGE, handler);\n }\n\n unsubscribe(handler?): void {\n this._sdk.emitter.off(EVENT_AUTH_STATE_CHANGE, handler);\n }\n}\n"],"file":"AuthStateManager.js"}
|