@okta/okta-auth-js 6.7.5 → 6.8.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 +28 -1
- package/README.md +3 -2
- package/cjs/AuthStateManager.js +1 -1
- package/cjs/AuthStateManager.js.map +1 -1
- package/cjs/OktaAuth.js +1 -8
- package/cjs/OktaAuth.js.map +1 -1
- package/cjs/OktaUserAgent.js +2 -2
- package/cjs/OktaUserAgent.js.map +1 -1
- package/cjs/PromiseQueue.js.map +1 -1
- package/cjs/SavedObject.js +4 -1
- package/cjs/SavedObject.js.map +1 -1
- package/cjs/ServiceManager.js.map +1 -1
- package/cjs/StorageManager.js.map +1 -1
- package/cjs/TokenManager.js +2 -1
- package/cjs/TokenManager.js.map +1 -1
- package/cjs/TransactionManager.js.map +1 -1
- package/cjs/browser/browserStorage.js +3 -0
- package/cjs/browser/browserStorage.js.map +1 -1
- package/cjs/browser/fingerprint.js.map +1 -1
- package/cjs/constants.js +1 -1
- package/cjs/crypto/base64.js +4 -4
- package/cjs/crypto/base64.js.map +1 -1
- package/cjs/crypto/oidcHash.js.map +1 -1
- package/cjs/crypto/verifyToken.js.map +1 -1
- package/cjs/crypto/webauthn.js +1 -1
- package/cjs/crypto/webauthn.js.map +1 -1
- package/cjs/errors/index.js +2 -2
- package/cjs/features.js +6 -6
- package/cjs/features.js.map +1 -1
- package/cjs/http/request.js +1 -1
- package/cjs/http/request.js.map +1 -1
- package/cjs/idx/authenticate.js.map +1 -1
- package/cjs/idx/authenticator/OktaPassword.js +5 -4
- package/cjs/idx/authenticator/OktaPassword.js.map +1 -1
- package/cjs/idx/authenticator/getAuthenticator.js.map +1 -1
- package/cjs/idx/authenticator/util.js +1 -1
- package/cjs/idx/authenticator/util.js.map +1 -1
- package/cjs/idx/cancel.js.map +1 -1
- package/cjs/idx/emailVerify.js +3 -3
- package/cjs/idx/emailVerify.js.map +1 -1
- package/cjs/idx/idxState/index.js +1 -1
- package/cjs/idx/idxState/v1/generateIdxAction.js.map +1 -1
- package/cjs/idx/idxState/v1/idxResponseParser.js +1 -1
- package/cjs/idx/idxState/v1/idxResponseParser.js.map +1 -1
- package/cjs/idx/idxState/v1/makeIdxState.js.map +1 -1
- package/cjs/idx/idxState/v1/remediationParser.js.map +1 -1
- package/cjs/idx/index.js +24 -24
- package/cjs/idx/interact.js.map +1 -1
- package/cjs/idx/introspect.js.map +1 -1
- package/cjs/idx/poll.js.map +1 -1
- package/cjs/idx/proceed.js.map +1 -1
- package/cjs/idx/recoverPassword.js.map +1 -1
- package/cjs/idx/register.js.map +1 -1
- package/cjs/idx/remediate.js.map +1 -1
- package/cjs/idx/remediators/AuthenticatorEnrollmentData.js.map +1 -1
- package/cjs/idx/remediators/Base/AuthenticatorData.js.map +1 -1
- package/cjs/idx/remediators/Base/Remediator.js.map +1 -1
- package/cjs/idx/remediators/Base/SelectAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/Base/VerifyAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/EnrollProfile.js +46 -4
- package/cjs/idx/remediators/EnrollProfile.js.map +1 -1
- package/cjs/idx/remediators/GenericRemediator/util.js +1 -1
- package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js.map +1 -1
- package/cjs/idx/remediators/SelectEnrollmentChannel.js.map +1 -1
- package/cjs/idx/remediators/util.js +1 -1
- package/cjs/idx/run.js.map +1 -1
- package/cjs/idx/startTransaction.js.map +1 -1
- package/cjs/idx/transactionMeta.js +3 -3
- package/cjs/idx/transactionMeta.js.map +1 -1
- package/cjs/idx/types/api.js +1 -1
- package/cjs/idx/types/idx-js.js +1 -1
- package/cjs/idx/types/idx-js.js.map +1 -1
- package/cjs/idx/unlockAccount.js.map +1 -1
- package/cjs/idx/util.js +25 -17
- package/cjs/idx/util.js.map +1 -1
- package/cjs/myaccount/emailApi.js +1 -1
- package/cjs/myaccount/emailApi.js.map +1 -1
- package/cjs/myaccount/phoneApi.js +1 -1
- package/cjs/myaccount/phoneApi.js.map +1 -1
- package/cjs/myaccount/profileApi.js +1 -1
- package/cjs/myaccount/profileApi.js.map +1 -1
- package/cjs/myaccount/request.js +1 -1
- package/cjs/myaccount/request.js.map +1 -1
- package/cjs/myaccount/transactions/EmailChallengeTransaction.js.map +1 -1
- package/cjs/myaccount/transactions/EmailTransaction.js.map +1 -1
- package/cjs/myaccount/transactions/PhoneTransaction.js.map +1 -1
- package/cjs/myaccount/transactions/index.js +14 -14
- package/cjs/myaccount/types.js +14 -13
- package/cjs/myaccount/types.js.map +1 -1
- package/cjs/oidc/decodeToken.js.map +1 -1
- package/cjs/oidc/endpoints/authorize.js +1 -1
- package/cjs/oidc/endpoints/authorize.js.map +1 -1
- package/cjs/oidc/endpoints/token.js +1 -1
- package/cjs/oidc/endpoints/token.js.map +1 -1
- package/cjs/oidc/endpoints/well-known.js +1 -1
- package/cjs/oidc/endpoints/well-known.js.map +1 -1
- package/cjs/oidc/exchangeCodeForTokens.js.map +1 -1
- package/cjs/oidc/getToken.js.map +1 -1
- package/cjs/oidc/getUserInfo.js.map +1 -1
- package/cjs/oidc/getWithPopup.js.map +1 -1
- package/cjs/oidc/getWithRedirect.js.map +1 -1
- package/cjs/oidc/getWithoutPrompt.js.map +1 -1
- package/cjs/oidc/handleOAuthResponse.js.map +1 -1
- package/cjs/oidc/index.js +24 -24
- package/cjs/oidc/parseFromUrl.js +2 -2
- package/cjs/oidc/parseFromUrl.js.map +1 -1
- package/cjs/oidc/renewToken.js.map +1 -1
- package/cjs/oidc/renewTokens.js.map +1 -1
- package/cjs/oidc/renewTokensWithRefresh.js.map +1 -1
- package/cjs/oidc/revokeToken.js.map +1 -1
- package/cjs/oidc/util/browser.js +2 -2
- package/cjs/oidc/util/defaultTokenParams.js.map +1 -1
- package/cjs/oidc/util/errors.js +1 -1
- package/cjs/oidc/util/errors.js.map +1 -1
- package/cjs/oidc/util/loginRedirect.js +5 -5
- package/cjs/oidc/util/oauth.js +1 -1
- package/cjs/oidc/util/oauth.js.map +1 -1
- package/cjs/oidc/util/oauthMeta.js.map +1 -1
- package/cjs/oidc/util/pkce.js.map +1 -1
- package/cjs/oidc/util/prepareTokenParams.js +1 -1
- package/cjs/oidc/util/prepareTokenParams.js.map +1 -1
- package/cjs/oidc/util/refreshToken.js +1 -1
- package/cjs/oidc/util/refreshToken.js.map +1 -1
- package/cjs/oidc/util/validateToken.js.map +1 -1
- package/cjs/oidc/verifyToken.js.map +1 -1
- package/cjs/options/browser.js +2 -2
- package/cjs/options/browser.js.map +1 -1
- package/cjs/options/index.js +1 -1
- package/cjs/options/index.js.map +1 -1
- package/cjs/options/node.js +2 -2
- package/cjs/server/serverStorage.js +1 -0
- package/cjs/server/serverStorage.js.map +1 -1
- package/cjs/services/AutoRenewService.js.map +1 -1
- package/cjs/services/LeaderElectionService.js.map +1 -1
- package/cjs/services/SyncStorageService.js +4 -1
- package/cjs/services/SyncStorageService.js.map +1 -1
- package/cjs/session.js +2 -2
- package/cjs/session.js.map +1 -1
- package/cjs/tx/AuthTransaction.js.map +1 -1
- package/cjs/tx/api.js +4 -4
- package/cjs/tx/api.js.map +1 -1
- package/cjs/tx/poll.js.map +1 -1
- package/cjs/types/Storage.js.map +1 -1
- package/cjs/types/Token.js +1 -1
- package/cjs/types/TokenManager.js +1 -1
- package/cjs/types/Transaction.js +2 -2
- package/cjs/util/console.js +3 -3
- package/cjs/util/index.js +13 -0
- package/cjs/util/index.js.map +1 -1
- package/cjs/util/misc.js +2 -2
- package/cjs/util/object.js +3 -3
- package/cjs/util/sharedStorage.js +2 -2
- package/cjs/util/sharedStorage.js.map +1 -1
- package/cjs/util/storage.js +29 -0
- package/cjs/util/storage.js.map +1 -0
- package/cjs/util/types.js +3 -3
- package/cjs/util/url.js +3 -3
- package/cjs/util/url.js.map +1 -1
- package/dist/myaccount.umd.js +1 -1
- package/dist/myaccount.umd.js.map +1 -1
- package/dist/okta-auth-js.min.js +1 -1
- package/dist/okta-auth-js.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/dist/okta-auth-js.umd.js +1 -1
- package/dist/okta-auth-js.umd.js.map +1 -1
- package/esm/browser/OktaAuth.js +0 -3
- package/esm/browser/OktaAuth.js.map +1 -1
- package/esm/browser/OktaUserAgent.js +2 -2
- package/esm/browser/SavedObject.js +2 -1
- package/esm/browser/SavedObject.js.map +1 -1
- package/esm/browser/TokenManager.js.map +1 -1
- package/esm/browser/browser/browserStorage.js.map +1 -1
- package/esm/browser/idx/authenticator/OktaPassword.js +4 -4
- package/esm/browser/idx/authenticator/OktaPassword.js.map +1 -1
- package/esm/browser/idx/remediators/Base/Remediator.js.map +1 -1
- package/esm/browser/idx/remediators/EnrollProfile.js +26 -0
- package/esm/browser/idx/remediators/EnrollProfile.js.map +1 -1
- package/esm/browser/idx/types/idx-js.js.map +1 -1
- package/esm/browser/idx/util.js +10 -3
- package/esm/browser/idx/util.js.map +1 -1
- package/esm/browser/index.js +1 -0
- package/esm/browser/index.js.map +1 -1
- package/esm/browser/services/SyncStorageService.js +1 -1
- package/esm/browser/services/SyncStorageService.js.map +1 -1
- package/esm/browser/util/storage.js +26 -0
- package/esm/browser/util/storage.js.map +1 -0
- package/esm/browser/util/url.js +1 -1
- package/esm/browser/util/url.js.map +1 -1
- package/esm/node/OktaAuth.js +0 -3
- package/esm/node/OktaAuth.js.map +1 -1
- package/esm/node/OktaUserAgent.js +2 -2
- package/esm/node/SavedObject.js +2 -1
- package/esm/node/SavedObject.js.map +1 -1
- package/esm/node/TokenManager.js.map +1 -1
- package/esm/node/browser/browserStorage.js.map +1 -1
- package/esm/node/idx/authenticator/OktaPassword.js +4 -4
- package/esm/node/idx/authenticator/OktaPassword.js.map +1 -1
- package/esm/node/idx/remediators/Base/Remediator.js.map +1 -1
- package/esm/node/idx/remediators/EnrollProfile.js +26 -0
- package/esm/node/idx/remediators/EnrollProfile.js.map +1 -1
- package/esm/node/idx/types/idx-js.js.map +1 -1
- package/esm/node/idx/util.js +10 -3
- package/esm/node/idx/util.js.map +1 -1
- package/esm/node/index.js +1 -0
- package/esm/node/index.js.map +1 -1
- package/esm/node/server/serverStorage.js.map +1 -1
- package/esm/node/services/SyncStorageService.js +1 -1
- package/esm/node/services/SyncStorageService.js.map +1 -1
- package/esm/node/util/storage.js +26 -0
- package/esm/node/util/storage.js.map +1 -0
- package/esm/node/util/url.js +1 -1
- package/esm/node/util/url.js.map +1 -1
- package/esm/package.json +1 -1
- package/lib/idx/authenticator/OktaPassword.d.ts +1 -0
- package/lib/idx/remediators/EnrollProfile.d.ts +11 -0
- package/lib/idx/types/idx-js.d.ts +4 -0
- package/lib/util/index.d.ts +1 -0
- package/lib/util/storage.d.ts +12 -0
- package/package.json +15 -26
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifyToken.js","names":["verifyToken","sdk","token","validationParams","idToken","AuthSdkError","jwt","configuredIssuer","issuer","options","validationOptions","clientId","ignoreSignature","payload","features","isTokenVerifySupported","key","header","kid","valid","sdkCrypto","accessToken","claims","at_hash","hash","getOidcHash"],"sources":["../../../lib/oidc/verifyToken.ts"],"sourcesContent":["/* eslint-disable max-len */\n/* eslint-disable complexity */\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 */\nimport { getWellKnown, getKey } from './endpoints/well-known';\nimport { validateClaims } from './util';\nimport { AuthSdkError } from '../errors';\nimport { IDToken, OktaAuthOIDCInterface, TokenVerifyParams } from '../types';\nimport { decodeToken } from './decodeToken';\nimport * as sdkCrypto from '../crypto';\n\n// Verify the id token\nexport async function verifyToken(sdk: OktaAuthOIDCInterface, token: IDToken, validationParams: TokenVerifyParams): Promise<IDToken> {\n if (!token || !token.idToken) {\n throw new AuthSdkError('Only idTokens may be verified');\n }\n\n // Decode the Jwt object (may throw)\n var jwt = decodeToken(token.idToken);\n\n // The configured issuer may point to a frontend proxy.\n // Get the \"real\" issuer from .well-known/openid-configuration\n const configuredIssuer = validationParams?.issuer || sdk.options.issuer;\n const { issuer } = await getWellKnown(sdk, configuredIssuer);\n\n var validationOptions: TokenVerifyParams = Object.assign({\n // base options, can be overridden by params\n clientId: sdk.options.clientId,\n ignoreSignature: sdk.options.ignoreSignature\n }, validationParams, {\n // final options, cannot be overridden\n issuer\n });\n\n // Standard claim validation (may throw)\n validateClaims(sdk, jwt.payload, validationOptions);\n\n // If the browser doesn't support native crypto or we choose not\n // to verify the signature, bail early\n if (validationOptions.ignoreSignature == true || !sdk.features.isTokenVerifySupported()) {\n return token;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const key = await getKey(sdk, token.issuer, jwt.header.kid!);\n const valid = await sdkCrypto.verifyToken(token.idToken, key);\n if (!valid) {\n throw new AuthSdkError('The token signature is not valid');\n }\n if (validationParams && validationParams.accessToken && token.claims.at_hash) {\n const hash = await sdkCrypto.getOidcHash(validationParams.accessToken);\n if (hash !== token.claims.at_hash) {\n throw new AuthSdkError('Token hash verification failed');\n }\n }\n return token;\n}\n"],"mappings":";;;;;;;;;;;;AAcA;;AACA;;AACA;;AAEA;;AACA;;;;;;AAnBA;;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACO,eAAeA,WAAf,CAA2BC,GAA3B,EAAuDC,KAAvD,EAAuEC,gBAAvE,EAA8H;EACnI,IAAI,CAACD,KAAD,IAAU,CAACA,KAAK,CAACE,OAArB,EAA8B;IAC5B,MAAM,IAAIC,oBAAJ,CAAiB,+BAAjB,CAAN;EACD,CAHkI,CAKnI;;;EACA,IAAIC,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"verifyToken.js","names":["verifyToken","sdk","token","validationParams","idToken","AuthSdkError","jwt","decodeToken","configuredIssuer","issuer","options","getWellKnown","validationOptions","clientId","ignoreSignature","validateClaims","payload","features","isTokenVerifySupported","key","getKey","header","kid","valid","sdkCrypto","accessToken","claims","at_hash","hash","getOidcHash"],"sources":["../../../lib/oidc/verifyToken.ts"],"sourcesContent":["/* eslint-disable max-len */\n/* eslint-disable complexity */\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 */\nimport { getWellKnown, getKey } from './endpoints/well-known';\nimport { validateClaims } from './util';\nimport { AuthSdkError } from '../errors';\nimport { IDToken, OktaAuthOIDCInterface, TokenVerifyParams } from '../types';\nimport { decodeToken } from './decodeToken';\nimport * as sdkCrypto from '../crypto';\n\n// Verify the id token\nexport async function verifyToken(sdk: OktaAuthOIDCInterface, token: IDToken, validationParams: TokenVerifyParams): Promise<IDToken> {\n if (!token || !token.idToken) {\n throw new AuthSdkError('Only idTokens may be verified');\n }\n\n // Decode the Jwt object (may throw)\n var jwt = decodeToken(token.idToken);\n\n // The configured issuer may point to a frontend proxy.\n // Get the \"real\" issuer from .well-known/openid-configuration\n const configuredIssuer = validationParams?.issuer || sdk.options.issuer;\n const { issuer } = await getWellKnown(sdk, configuredIssuer);\n\n var validationOptions: TokenVerifyParams = Object.assign({\n // base options, can be overridden by params\n clientId: sdk.options.clientId,\n ignoreSignature: sdk.options.ignoreSignature\n }, validationParams, {\n // final options, cannot be overridden\n issuer\n });\n\n // Standard claim validation (may throw)\n validateClaims(sdk, jwt.payload, validationOptions);\n\n // If the browser doesn't support native crypto or we choose not\n // to verify the signature, bail early\n if (validationOptions.ignoreSignature == true || !sdk.features.isTokenVerifySupported()) {\n return token;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const key = await getKey(sdk, token.issuer, jwt.header.kid!);\n const valid = await sdkCrypto.verifyToken(token.idToken, key);\n if (!valid) {\n throw new AuthSdkError('The token signature is not valid');\n }\n if (validationParams && validationParams.accessToken && token.claims.at_hash) {\n const hash = await sdkCrypto.getOidcHash(validationParams.accessToken);\n if (hash !== token.claims.at_hash) {\n throw new AuthSdkError('Token hash verification failed');\n }\n }\n return token;\n}\n"],"mappings":";;;;;;;;;;;;AAcA;;AACA;;AACA;;AAEA;;AACA;;;;;;AAnBA;;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACO,eAAeA,WAAf,CAA2BC,GAA3B,EAAuDC,KAAvD,EAAuEC,gBAAvE,EAA8H;EACnI,IAAI,CAACD,KAAD,IAAU,CAACA,KAAK,CAACE,OAArB,EAA8B;IAC5B,MAAM,IAAIC,oBAAJ,CAAiB,+BAAjB,CAAN;EACD,CAHkI,CAKnI;;;EACA,IAAIC,GAAG,GAAG,IAAAC,wBAAA,EAAYL,KAAK,CAACE,OAAlB,CAAV,CANmI,CAQnI;EACA;;EACA,MAAMI,gBAAgB,GAAG,CAAAL,gBAAgB,SAAhB,IAAAA,gBAAgB,WAAhB,YAAAA,gBAAgB,CAAEM,MAAlB,KAA4BR,GAAG,CAACS,OAAJ,CAAYD,MAAjE;EACA,MAAM;IAAEA;EAAF,IAAa,MAAM,IAAAE,uBAAA,EAAaV,GAAb,EAAkBO,gBAAlB,CAAzB;EAEA,IAAII,iBAAoC,GAAG,qBAAc;IACvD;IACAC,QAAQ,EAAEZ,GAAG,CAACS,OAAJ,CAAYG,QAFiC;IAGvDC,eAAe,EAAEb,GAAG,CAACS,OAAJ,CAAYI;EAH0B,CAAd,EAIxCX,gBAJwC,EAItB;IACnB;IACAM;EAFmB,CAJsB,CAA3C,CAbmI,CAsBnI;;EACA,IAAAM,oBAAA,EAAed,GAAf,EAAoBK,GAAG,CAACU,OAAxB,EAAiCJ,iBAAjC,EAvBmI,CAyBnI;EACA;;EACA,IAAIA,iBAAiB,CAACE,eAAlB,IAAqC,IAArC,IAA6C,CAACb,GAAG,CAACgB,QAAJ,CAAaC,sBAAb,EAAlD,EAAyF;IACvF,OAAOhB,KAAP;EACD,CA7BkI,CA+BnI;;;EACA,MAAMiB,GAAG,GAAG,MAAM,IAAAC,iBAAA,EAAOnB,GAAP,EAAYC,KAAK,CAACO,MAAlB,EAA0BH,GAAG,CAACe,MAAJ,CAAWC,GAArC,CAAlB;EACA,MAAMC,KAAK,GAAG,MAAMC,SAAS,CAACxB,WAAV,CAAsBE,KAAK,CAACE,OAA5B,EAAqCe,GAArC,CAApB;;EACA,IAAI,CAACI,KAAL,EAAY;IACV,MAAM,IAAIlB,oBAAJ,CAAiB,kCAAjB,CAAN;EACD;;EACD,IAAIF,gBAAgB,IAAIA,gBAAgB,CAACsB,WAArC,IAAoDvB,KAAK,CAACwB,MAAN,CAAaC,OAArE,EAA8E;IAC5E,MAAMC,IAAI,GAAG,MAAMJ,SAAS,CAACK,WAAV,CAAsB1B,gBAAgB,CAACsB,WAAvC,CAAnB;;IACA,IAAIG,IAAI,KAAK1B,KAAK,CAACwB,MAAN,CAAaC,OAA1B,EAAmC;MACjC,MAAM,IAAItB,oBAAJ,CAAiB,gCAAjB,CAAN;IACD;EACF;;EACD,OAAOH,KAAP;AACD"}
|
package/cjs/options/browser.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
exports.getStorage = getStorage;
|
|
6
|
-
exports.getCookieSettings = getCookieSettings;
|
|
7
5
|
exports.enableSharedStorage = exports.STORAGE_MANAGER_OPTIONS = void 0;
|
|
6
|
+
exports.getCookieSettings = getCookieSettings;
|
|
7
|
+
exports.getStorage = getStorage;
|
|
8
8
|
|
|
9
9
|
var _assign = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/assign"));
|
|
10
10
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","names":["getStorage","storageUtil","browserStorage","inMemoryStore","STORAGE_MANAGER_OPTIONS","token","storageTypes","cache","transaction","enableSharedStorage","getCookieSettings","args","isHTTPS","cookieSettings","cookies","secure","sameSite"],"sources":["../../../lib/options/browser.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/* eslint-disable complexity */\nimport { StorageManagerOptions, OktaAuthOptions, StorageUtil } from '../types';\nimport { warn } from '../util';\n\nimport { default as browserStorage } from '../browser/browserStorage';\n\nexport function getStorage(): StorageUtil {\n const storageUtil = Object.assign({}, browserStorage, {\n inMemoryStore: {} // create unique storage for this instance\n });\n return storageUtil;\n}\n\nexport const STORAGE_MANAGER_OPTIONS: StorageManagerOptions = {\n token: {\n storageTypes: [\n 'localStorage',\n 'sessionStorage',\n 'cookie'\n ]\n },\n cache: {\n storageTypes: [\n 'localStorage',\n 'sessionStorage',\n 'cookie'\n ]\n },\n transaction: {\n storageTypes: [\n 'sessionStorage',\n 'localStorage',\n 'cookie'\n ]\n },\n 'shared-transaction': {\n storageTypes: [\n 'localStorage'\n ]\n },\n 'original-uri': {\n storageTypes: [\n 'localStorage'\n ]\n }\n};\n\nexport const enableSharedStorage = true;\n\nexport function getCookieSettings(args: OktaAuthOptions = {}, isHTTPS: boolean) {\n // Secure cookies will be automatically used on a HTTPS connection\n // Non-secure cookies will be automatically used on a HTTP connection\n // secure option can override the automatic behavior\n var cookieSettings = args.cookies || {};\n if (typeof cookieSettings.secure === 'undefined') {\n cookieSettings.secure = isHTTPS;\n }\n if (typeof cookieSettings.sameSite === 'undefined') {\n cookieSettings.sameSite = cookieSettings.secure ? 'none' : 'lax';\n }\n\n // If secure=true, but the connection is not HTTPS, set secure=false.\n if (cookieSettings.secure && !isHTTPS) {\n // eslint-disable-next-line no-console\n warn(\n 'The current page is not being served with the HTTPS protocol.\\n' +\n 'For security reasons, we strongly recommend using HTTPS.\\n' +\n 'If you cannot use HTTPS, set \"cookies.secure\" option to false.'\n );\n cookieSettings.secure = false;\n }\n\n // Chrome >= 80 will block cookies with SameSite=None unless they are also Secure\n // If sameSite=none, but the connection is not HTTPS, set sameSite=lax.\n if (cookieSettings.sameSite === 'none' && !cookieSettings.secure) {\n cookieSettings.sameSite = 'lax';\n }\n\n return cookieSettings;\n}\n"],"mappings":";;;;;;;;;;AAcA;;AAEA;;AAhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAMO,SAASA,UAAT,GAAmC;EACxC,MAAMC,WAAW,GAAG,qBAAc,EAAd,EAAkBC,uBAAlB,EAAkC;IACpDC,aAAa,EAAE,EADqC,CAClC;;EADkC,CAAlC,CAApB;EAGA,OAAOF,WAAP;AACD;;AAEM,MAAMG,uBAA8C,GAAG;EAC5DC,KAAK,EAAE;IACLC,YAAY,EAAE,CACZ,cADY,EAEZ,gBAFY,EAGZ,QAHY;EADT,CADqD;EAQ5DC,KAAK,EAAE;IACLD,YAAY,EAAE,CACZ,cADY,EAEZ,gBAFY,EAGZ,QAHY;EADT,CARqD;EAe5DE,WAAW,EAAE;IACXF,YAAY,EAAE,CACZ,gBADY,EAEZ,cAFY,EAGZ,QAHY;EADH,CAf+C;EAsB5D,sBAAsB;IACpBA,YAAY,EAAE,CACZ,cADY;EADM,CAtBsC;EA2B5D,gBAAgB;IACdA,YAAY,EAAE,CACZ,cADY;EADA;AA3B4C,CAAvD;;AAkCA,MAAMG,mBAAmB,GAAG,IAA5B;;;AAEA,SAASC,iBAAT,CAA2BC,IAAqB,GAAG,EAAnD,EAAuDC,OAAvD,EAAyE;EAC9E;EACA;EACA;EACA,IAAIC,cAAc,GAAGF,IAAI,CAACG,OAAL,IAAgB,EAArC;;EACA,IAAI,OAAOD,cAAc,CAACE,MAAtB,KAAiC,WAArC,EAAkD;IAChDF,cAAc,CAACE,MAAf,GAAwBH,OAAxB;EACD;;EACD,IAAI,OAAOC,cAAc,CAACG,QAAtB,KAAmC,WAAvC,EAAoD;IAClDH,cAAc,CAACG,QAAf,GAA0BH,cAAc,CAACE,MAAf,GAAwB,MAAxB,GAAiC,KAA3D;EACD,CAV6E,CAY9E;;;EACA,IAAIF,cAAc,CAACE,MAAf,IAAyB,CAACH,OAA9B,EAAuC;IACrC;IACA,
|
|
1
|
+
{"version":3,"file":"browser.js","names":["getStorage","storageUtil","browserStorage","inMemoryStore","STORAGE_MANAGER_OPTIONS","token","storageTypes","cache","transaction","enableSharedStorage","getCookieSettings","args","isHTTPS","cookieSettings","cookies","secure","sameSite","warn"],"sources":["../../../lib/options/browser.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/* eslint-disable complexity */\nimport { StorageManagerOptions, OktaAuthOptions, StorageUtil } from '../types';\nimport { warn } from '../util';\n\nimport { default as browserStorage } from '../browser/browserStorage';\n\nexport function getStorage(): StorageUtil {\n const storageUtil = Object.assign({}, browserStorage, {\n inMemoryStore: {} // create unique storage for this instance\n });\n return storageUtil;\n}\n\nexport const STORAGE_MANAGER_OPTIONS: StorageManagerOptions = {\n token: {\n storageTypes: [\n 'localStorage',\n 'sessionStorage',\n 'cookie'\n ]\n },\n cache: {\n storageTypes: [\n 'localStorage',\n 'sessionStorage',\n 'cookie'\n ]\n },\n transaction: {\n storageTypes: [\n 'sessionStorage',\n 'localStorage',\n 'cookie'\n ]\n },\n 'shared-transaction': {\n storageTypes: [\n 'localStorage'\n ]\n },\n 'original-uri': {\n storageTypes: [\n 'localStorage'\n ]\n }\n};\n\nexport const enableSharedStorage = true;\n\nexport function getCookieSettings(args: OktaAuthOptions = {}, isHTTPS: boolean) {\n // Secure cookies will be automatically used on a HTTPS connection\n // Non-secure cookies will be automatically used on a HTTP connection\n // secure option can override the automatic behavior\n var cookieSettings = args.cookies || {};\n if (typeof cookieSettings.secure === 'undefined') {\n cookieSettings.secure = isHTTPS;\n }\n if (typeof cookieSettings.sameSite === 'undefined') {\n cookieSettings.sameSite = cookieSettings.secure ? 'none' : 'lax';\n }\n\n // If secure=true, but the connection is not HTTPS, set secure=false.\n if (cookieSettings.secure && !isHTTPS) {\n // eslint-disable-next-line no-console\n warn(\n 'The current page is not being served with the HTTPS protocol.\\n' +\n 'For security reasons, we strongly recommend using HTTPS.\\n' +\n 'If you cannot use HTTPS, set \"cookies.secure\" option to false.'\n );\n cookieSettings.secure = false;\n }\n\n // Chrome >= 80 will block cookies with SameSite=None unless they are also Secure\n // If sameSite=none, but the connection is not HTTPS, set sameSite=lax.\n if (cookieSettings.sameSite === 'none' && !cookieSettings.secure) {\n cookieSettings.sameSite = 'lax';\n }\n\n return cookieSettings;\n}\n"],"mappings":";;;;;;;;;;AAcA;;AAEA;;AAhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAMO,SAASA,UAAT,GAAmC;EACxC,MAAMC,WAAW,GAAG,qBAAc,EAAd,EAAkBC,uBAAlB,EAAkC;IACpDC,aAAa,EAAE,EADqC,CAClC;;EADkC,CAAlC,CAApB;EAGA,OAAOF,WAAP;AACD;;AAEM,MAAMG,uBAA8C,GAAG;EAC5DC,KAAK,EAAE;IACLC,YAAY,EAAE,CACZ,cADY,EAEZ,gBAFY,EAGZ,QAHY;EADT,CADqD;EAQ5DC,KAAK,EAAE;IACLD,YAAY,EAAE,CACZ,cADY,EAEZ,gBAFY,EAGZ,QAHY;EADT,CARqD;EAe5DE,WAAW,EAAE;IACXF,YAAY,EAAE,CACZ,gBADY,EAEZ,cAFY,EAGZ,QAHY;EADH,CAf+C;EAsB5D,sBAAsB;IACpBA,YAAY,EAAE,CACZ,cADY;EADM,CAtBsC;EA2B5D,gBAAgB;IACdA,YAAY,EAAE,CACZ,cADY;EADA;AA3B4C,CAAvD;;AAkCA,MAAMG,mBAAmB,GAAG,IAA5B;;;AAEA,SAASC,iBAAT,CAA2BC,IAAqB,GAAG,EAAnD,EAAuDC,OAAvD,EAAyE;EAC9E;EACA;EACA;EACA,IAAIC,cAAc,GAAGF,IAAI,CAACG,OAAL,IAAgB,EAArC;;EACA,IAAI,OAAOD,cAAc,CAACE,MAAtB,KAAiC,WAArC,EAAkD;IAChDF,cAAc,CAACE,MAAf,GAAwBH,OAAxB;EACD;;EACD,IAAI,OAAOC,cAAc,CAACG,QAAtB,KAAmC,WAAvC,EAAoD;IAClDH,cAAc,CAACG,QAAf,GAA0BH,cAAc,CAACE,MAAf,GAAwB,MAAxB,GAAiC,KAA3D;EACD,CAV6E,CAY9E;;;EACA,IAAIF,cAAc,CAACE,MAAf,IAAyB,CAACH,OAA9B,EAAuC;IACrC;IACA,IAAAK,UAAA,EACE,oEACA,4DADA,GAEA,gEAHF;IAKAJ,cAAc,CAACE,MAAf,GAAwB,KAAxB;EACD,CArB6E,CAuB9E;EACA;;;EACA,IAAIF,cAAc,CAACG,QAAf,KAA4B,MAA5B,IAAsC,CAACH,cAAc,CAACE,MAA1D,EAAkE;IAChEF,cAAc,CAACG,QAAf,GAA0B,KAA1B;EACD;;EAED,OAAOH,cAAP;AACD"}
|
package/cjs/options/index.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
exports.getDefaultOptions = getDefaultOptions;
|
|
6
5
|
exports.buildOptions = buildOptions;
|
|
6
|
+
exports.getDefaultOptions = getDefaultOptions;
|
|
7
7
|
|
|
8
8
|
var _assign = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/assign"));
|
|
9
9
|
|
package/cjs/options/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["getDefaultOptions","options","devMode","httpRequestClient","fetchRequest","storageUtil","storageManager","STORAGE_MANAGER_OPTIONS","transactionManager","enableSharedStorage","mergeOptions","args","buildOptions","issuer","tokenUrl","authorizeUrl","userinfoUrl","revokeUrl","logoutUrl","clientId","redirectUri","state","scopes","postLogoutRedirectUri","responseMode","responseType","pkce","useInteractionCodeFlow","httpRequestInterceptors","transformErrorXHR","transformAuthState","restoreOriginalUri","headers","cookies","flow","codeChallenge","codeChallengeMethod","recoveryToken","activationToken","idx","useGenericRemediator","exchangeCodeForTokens","ignoreSignature","clientSecret","setLocation"],"sources":["../../../lib/options/index.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\nimport { removeTrailingSlash, removeNils } from '../util';\nimport { assertValidConfig } from '../builderUtil';\nimport { OktaAuthOptions } from '../types';\n\nimport fetchRequest from '../fetch/fetchRequest';\nimport { getStorage, STORAGE_MANAGER_OPTIONS, enableSharedStorage, getCookieSettings } from './node';\nimport { isHTTPS } from '../features';\n\nexport function getDefaultOptions(): OktaAuthOptions {\n\n \n const options = {\n devMode: false,\n httpRequestClient: fetchRequest,\n storageUtil: getStorage(),\n storageManager: STORAGE_MANAGER_OPTIONS,\n transactionManager: {\n enableSharedStorage\n }\n };\n return options;\n}\n\nfunction mergeOptions(options, args): OktaAuthOptions {\n return Object.assign({}, options, removeNils(args), {\n storageManager: Object.assign({}, options.storageManager, args.storageManager),\n transactionManager: Object.assign({}, options.transactionManager, args.transactionManager),\n });\n}\n\nexport function buildOptions(args: OktaAuthOptions = {}): OktaAuthOptions {\n assertValidConfig(args);\n args = mergeOptions(getDefaultOptions(), args);\n return removeNils({\n // OIDC configuration\n issuer: removeTrailingSlash(args.issuer),\n tokenUrl: removeTrailingSlash(args.tokenUrl),\n authorizeUrl: removeTrailingSlash(args.authorizeUrl),\n userinfoUrl: removeTrailingSlash(args.userinfoUrl),\n revokeUrl: removeTrailingSlash(args.revokeUrl),\n logoutUrl: removeTrailingSlash(args.logoutUrl),\n clientId: args.clientId,\n redirectUri: args.redirectUri,\n state: args.state,\n scopes: args.scopes,\n postLogoutRedirectUri: args.postLogoutRedirectUri,\n responseMode: args.responseMode,\n responseType: args.responseType,\n pkce: args.pkce === false ? false : true, // PKCE defaults to true\n useInteractionCodeFlow: args.useInteractionCodeFlow,\n\n // Internal options\n httpRequestClient: args.httpRequestClient,\n httpRequestInterceptors: args.httpRequestInterceptors,\n transformErrorXHR: args.transformErrorXHR,\n transformAuthState: args.transformAuthState,\n restoreOriginalUri: args.restoreOriginalUri,\n storageUtil: args.storageUtil,\n headers: args.headers,\n devMode: !!args.devMode,\n storageManager: args.storageManager,\n transactionManager: args.transactionManager,\n cookies: getCookieSettings(args, isHTTPS()),\n flow: args.flow,\n codeChallenge: args.codeChallenge,\n codeChallengeMethod: args.codeChallengeMethod,\n recoveryToken: args.recoveryToken,\n activationToken: args.activationToken,\n // BETA WARNING: configs in this section are subject to change without a breaking change notice\n idx: {\n useGenericRemediator: !!args.idx?.useGenericRemediator, // false by default\n exchangeCodeForTokens: args.idx?.exchangeCodeForTokens !== false // true by default\n },\n\n // Give the developer the ability to disable token signature validation.\n ignoreSignature: !!args.ignoreSignature,\n\n // Server-side web applications\n clientSecret: args.clientSecret,\n setLocation: args.setLocation\n });\n}\n"],"mappings":";;;;;;;;;AAYA;;AACA;;AAGA;;AACA;;AACA;;AAlBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAUO,SAASA,iBAAT,GAA8C;EAGnD,MAAMC,OAAO,GAAG;IACdC,OAAO,EAAE,KADK;IAEdC,iBAAiB,EAAEC,qBAFL;IAGdC,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","names":["getDefaultOptions","options","devMode","httpRequestClient","fetchRequest","storageUtil","getStorage","storageManager","STORAGE_MANAGER_OPTIONS","transactionManager","enableSharedStorage","mergeOptions","args","removeNils","buildOptions","assertValidConfig","issuer","removeTrailingSlash","tokenUrl","authorizeUrl","userinfoUrl","revokeUrl","logoutUrl","clientId","redirectUri","state","scopes","postLogoutRedirectUri","responseMode","responseType","pkce","useInteractionCodeFlow","httpRequestInterceptors","transformErrorXHR","transformAuthState","restoreOriginalUri","headers","cookies","getCookieSettings","isHTTPS","flow","codeChallenge","codeChallengeMethod","recoveryToken","activationToken","idx","useGenericRemediator","exchangeCodeForTokens","ignoreSignature","clientSecret","setLocation"],"sources":["../../../lib/options/index.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\nimport { removeTrailingSlash, removeNils } from '../util';\nimport { assertValidConfig } from '../builderUtil';\nimport { OktaAuthOptions } from '../types';\n\nimport fetchRequest from '../fetch/fetchRequest';\nimport { getStorage, STORAGE_MANAGER_OPTIONS, enableSharedStorage, getCookieSettings } from './node';\nimport { isHTTPS } from '../features';\n\nexport function getDefaultOptions(): OktaAuthOptions {\n\n \n const options = {\n devMode: false,\n httpRequestClient: fetchRequest,\n storageUtil: getStorage(),\n storageManager: STORAGE_MANAGER_OPTIONS,\n transactionManager: {\n enableSharedStorage\n }\n };\n return options;\n}\n\nfunction mergeOptions(options, args): OktaAuthOptions {\n return Object.assign({}, options, removeNils(args), {\n storageManager: Object.assign({}, options.storageManager, args.storageManager),\n transactionManager: Object.assign({}, options.transactionManager, args.transactionManager),\n });\n}\n\nexport function buildOptions(args: OktaAuthOptions = {}): OktaAuthOptions {\n assertValidConfig(args);\n args = mergeOptions(getDefaultOptions(), args);\n return removeNils({\n // OIDC configuration\n issuer: removeTrailingSlash(args.issuer),\n tokenUrl: removeTrailingSlash(args.tokenUrl),\n authorizeUrl: removeTrailingSlash(args.authorizeUrl),\n userinfoUrl: removeTrailingSlash(args.userinfoUrl),\n revokeUrl: removeTrailingSlash(args.revokeUrl),\n logoutUrl: removeTrailingSlash(args.logoutUrl),\n clientId: args.clientId,\n redirectUri: args.redirectUri,\n state: args.state,\n scopes: args.scopes,\n postLogoutRedirectUri: args.postLogoutRedirectUri,\n responseMode: args.responseMode,\n responseType: args.responseType,\n pkce: args.pkce === false ? false : true, // PKCE defaults to true\n useInteractionCodeFlow: args.useInteractionCodeFlow,\n\n // Internal options\n httpRequestClient: args.httpRequestClient,\n httpRequestInterceptors: args.httpRequestInterceptors,\n transformErrorXHR: args.transformErrorXHR,\n transformAuthState: args.transformAuthState,\n restoreOriginalUri: args.restoreOriginalUri,\n storageUtil: args.storageUtil,\n headers: args.headers,\n devMode: !!args.devMode,\n storageManager: args.storageManager,\n transactionManager: args.transactionManager,\n cookies: getCookieSettings(args, isHTTPS()),\n flow: args.flow,\n codeChallenge: args.codeChallenge,\n codeChallengeMethod: args.codeChallengeMethod,\n recoveryToken: args.recoveryToken,\n activationToken: args.activationToken,\n // BETA WARNING: configs in this section are subject to change without a breaking change notice\n idx: {\n useGenericRemediator: !!args.idx?.useGenericRemediator, // false by default\n exchangeCodeForTokens: args.idx?.exchangeCodeForTokens !== false // true by default\n },\n\n // Give the developer the ability to disable token signature validation.\n ignoreSignature: !!args.ignoreSignature,\n\n // Server-side web applications\n clientSecret: args.clientSecret,\n setLocation: args.setLocation\n });\n}\n"],"mappings":"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"}
|
package/cjs/options/node.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
exports.getStorage = getStorage;
|
|
6
|
-
exports.getCookieSettings = getCookieSettings;
|
|
7
5
|
exports.enableSharedStorage = exports.STORAGE_MANAGER_OPTIONS = void 0;
|
|
6
|
+
exports.getCookieSettings = getCookieSettings;
|
|
7
|
+
exports.getStorage = getStorage;
|
|
8
8
|
|
|
9
9
|
var _serverStorage = _interopRequireDefault(require("../server/serverStorage"));
|
|
10
10
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverStorage.js","names":["sharedStorage","NodeCache","ServerCookies","constructor","nodeCache","set","name","value","expiresAt","Date","parse","ttl","now","get","delete","del","ServerStorage","storage","testStorageType","storageType","supported","getStorageByType","storageProvider","getStorage","AuthSdkError","findStorageType","getHttpCache","getItem","setItem","key","isSharedStorage"],"sources":["../../../lib/server/serverStorage.ts"],"sourcesContent":["/*!\n * Copyright (c) 2018-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\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore \n// Do not use this type in code, so it won't be emitted in the declaration output\nimport NodeCache from 'node-cache';\nimport { SimpleStorage, StorageType, StorageUtil, Cookies } from '../types';\nimport { AuthSdkError } from '../errors';\n// eslint-disable-next-line import/no-commonjs\n\n// this is a SHARED memory storage to support a stateless http server\nconst sharedStorage = typeof NodeCache === 'function' ? new NodeCache() : null;\n\nclass ServerCookies implements Cookies {\n nodeCache: any; // NodeCache\n \n constructor(nodeCache) {\n this.nodeCache = nodeCache;\n }\n\n set(name: string, value: string, expiresAt: string): string {\n // eslint-disable-next-line no-extra-boolean-cast\n if (!!(Date.parse(expiresAt))) {\n // Time to expiration in seconds\n var ttl = (Date.parse(expiresAt) - Date.now()) / 1000;\n this.nodeCache.set(name, value, ttl);\n } else {\n this.nodeCache.set(name, value);\n }\n\n return this.get(name);\n }\n\n get(name): string {\n return this.nodeCache.get(name);\n }\n\n delete(name) {\n return this.nodeCache.del(name);\n }\n}\n// Building this as an object allows us to mock the functions in our tests\nclass ServerStorage implements StorageUtil {\n nodeCache: any; // NodeCache\n storage: Cookies;\n constructor(nodeCache) {\n this.nodeCache = nodeCache;\n this.storage = new ServerCookies(nodeCache);\n }\n\n testStorageType(storageType: StorageType): boolean {\n var supported = false;\n switch (storageType) {\n case 'memory':\n supported = true;\n break;\n default:\n break;\n }\n return supported;\n }\n\n getStorageByType(storageType: StorageType): SimpleStorage {\n let storageProvider;\n switch (storageType) {\n case 'memory':\n storageProvider = this.getStorage();\n break;\n default:\n throw new AuthSdkError(`Unrecognized storage option: ${storageType}`);\n break;\n }\n return storageProvider;\n }\n\n findStorageType(): StorageType {\n return 'memory';\n }\n\n // will be removed in next version. OKTA-362589\n getHttpCache() {\n return null; // stubbed in server.js\n }\n\n // shared in-memory using node cache\n getStorage(): SimpleStorage {\n return {\n getItem: this.nodeCache.get,\n setItem: (key, value) => {\n this.nodeCache.set(key, value, '2200-01-01T00:00:00.000Z');\n },\n isSharedStorage: () => true\n };\n }\n}\n\nexport default new ServerStorage(sharedStorage);\n"],"mappings":";;;;;;AAgBA;;AAEA;;AAlBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAIA;AAEA;AACA,MAAMA,aAAa,GAAG,OAAOC,kBAAP,KAAqB,UAArB,GAAkC,IAAIA,kBAAJ,EAAlC,GAAoD,IAA1E;;AAEA,MAAMC,aAAN,CAAuC;EACrB;EAEhBC,WAAW,CAACC,SAAD,EAAY;IACrB,KAAKA,SAAL,GAAiBA,SAAjB;EACD;;EAEDC,GAAG,CAACC,IAAD,EAAeC,KAAf,EAA8BC,SAA9B,EAAyD;IAC1D;IACA,IAAI,CAAC,CAAEC,IAAI,CAACC,KAAL,CAAWF,SAAX,CAAP,EAA+B;MAC7B;MACA,IAAIG,GAAG,GAAG,CAACF,IAAI,CAACC,KAAL,CAAWF,SAAX,IAAwBC,IAAI,CAACG,GAAL,EAAzB,IAAuC,IAAjD;MACA,KAAKR,SAAL,CAAeC,GAAf,CAAmBC,IAAnB,EAAyBC,KAAzB,EAAgCI,GAAhC;IACD,CAJD,MAIO;MACL,KAAKP,SAAL,CAAeC,GAAf,CAAmBC,IAAnB,EAAyBC,KAAzB;IACD;;IAED,OAAO,KAAKM,GAAL,CAASP,IAAT,CAAP;EACD;;EAEDO,GAAG,CAACP,IAAD,EAAe;IAChB,OAAO,KAAKF,SAAL,CAAeS,GAAf,CAAmBP,IAAnB,CAAP;EACD;;EAEDQ,MAAM,CAACR,IAAD,EAAO;IACX,OAAO,KAAKF,SAAL,CAAeW,GAAf,CAAmBT,IAAnB,CAAP;EACD;;AA1BoC,C,CA4BvC;;;AACA,MAAMU,aAAN,CAA2C;EACzB;EAEhBb,WAAW,CAACC,SAAD,EAAY;IACrB,KAAKA,SAAL,GAAiBA,SAAjB;IACA,KAAKa,OAAL,GAAe,IAAIf,aAAJ,CAAkBE,SAAlB,CAAf;EACD;;EAEDc,eAAe,CAACC,WAAD,EAAoC;IACjD,IAAIC,SAAS,GAAG,KAAhB;;IACA,QAAQD,WAAR;MACE,KAAK,QAAL;QACEC,SAAS,GAAG,IAAZ;QACA;;MACF;QACE;IALJ;;IAOA,OAAOA,SAAP;EACD;;EAEDC,gBAAgB,CAACF,WAAD,EAA0C;IACxD,IAAIG,eAAJ;;IACA,QAAQH,WAAR;MACE,KAAK,QAAL;QACEG,eAAe,GAAG,KAAKC,UAAL,EAAlB;QACA;;MACF;QACE,MAAM,IAAIC,oBAAJ,CAAkB,gCAA+BL,WAAY,EAA7D,CAAN;QACA;IANJ;;IAQA,OAAOG,eAAP;EACD;;EAEDG,eAAe,GAAgB;IAC7B,OAAO,QAAP;EACD,CAnCwC,CAqCzC;;;EACAC,YAAY,GAAG;IACb,OAAO,IAAP,CADa,CACA;EACd,CAxCwC,CA0CzC;;;EACAH,UAAU,GAAkB;IAC1B,OAAO;MACLI,OAAO,EAAE,KAAKvB,SAAL,CAAeS,GADnB;MAELe,OAAO,EAAE,CAACC,GAAD,EAAMtB,KAAN,KAAgB;QACvB,KAAKH,SAAL,CAAeC,GAAf,CAAmBwB,GAAnB,EAAwBtB,KAAxB,EAA+B,0BAA/B;MACD,CAJI;
|
|
1
|
+
{"version":3,"file":"serverStorage.js","names":["sharedStorage","NodeCache","ServerCookies","constructor","nodeCache","set","name","value","expiresAt","Date","parse","ttl","now","get","delete","del","ServerStorage","storage","testStorageType","storageType","supported","getStorageByType","storageProvider","getStorage","AuthSdkError","findStorageType","getHttpCache","getItem","setItem","key","isSharedStorage"],"sources":["../../../lib/server/serverStorage.ts"],"sourcesContent":["/*!\n * Copyright (c) 2018-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\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore \n// Do not use this type in code, so it won't be emitted in the declaration output\nimport NodeCache from 'node-cache';\nimport { SimpleStorage, StorageType, StorageUtil, Cookies } from '../types';\nimport { AuthSdkError } from '../errors';\n// eslint-disable-next-line import/no-commonjs\n\n// this is a SHARED memory storage to support a stateless http server\nconst sharedStorage = typeof NodeCache === 'function' ? new NodeCache() : null;\n\nclass ServerCookies implements Cookies {\n nodeCache: any; // NodeCache\n \n constructor(nodeCache) {\n this.nodeCache = nodeCache;\n }\n\n set(name: string, value: string, expiresAt: string): string {\n // eslint-disable-next-line no-extra-boolean-cast\n if (!!(Date.parse(expiresAt))) {\n // Time to expiration in seconds\n var ttl = (Date.parse(expiresAt) - Date.now()) / 1000;\n this.nodeCache.set(name, value, ttl);\n } else {\n this.nodeCache.set(name, value);\n }\n\n return this.get(name);\n }\n\n get(name): string {\n return this.nodeCache.get(name);\n }\n\n delete(name) {\n return this.nodeCache.del(name);\n }\n}\n// Building this as an object allows us to mock the functions in our tests\nclass ServerStorage implements StorageUtil {\n nodeCache: any; // NodeCache\n storage: Cookies;\n constructor(nodeCache) {\n this.nodeCache = nodeCache;\n this.storage = new ServerCookies(nodeCache);\n }\n\n testStorageType(storageType: StorageType): boolean {\n var supported = false;\n switch (storageType) {\n case 'memory':\n supported = true;\n break;\n default:\n break;\n }\n return supported;\n }\n\n getStorageByType(storageType: StorageType): SimpleStorage {\n let storageProvider;\n switch (storageType) {\n case 'memory':\n storageProvider = this.getStorage();\n break;\n default:\n throw new AuthSdkError(`Unrecognized storage option: ${storageType}`);\n break;\n }\n return storageProvider;\n }\n\n findStorageType(): StorageType {\n return 'memory';\n }\n\n // will be removed in next version. OKTA-362589\n getHttpCache() {\n return null; // stubbed in server.js\n }\n\n // shared in-memory using node cache\n getStorage(): SimpleStorage {\n return {\n getItem: this.nodeCache.get,\n setItem: (key, value) => {\n this.nodeCache.set(key, value, '2200-01-01T00:00:00.000Z');\n },\n // TODO: remove - https://oktainc.atlassian.net/browse/OKTA-529631\n isSharedStorage: () => true\n };\n }\n}\n\nexport default new ServerStorage(sharedStorage);\n"],"mappings":";;;;;;AAgBA;;AAEA;;AAlBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAIA;AAEA;AACA,MAAMA,aAAa,GAAG,OAAOC,kBAAP,KAAqB,UAArB,GAAkC,IAAIA,kBAAJ,EAAlC,GAAoD,IAA1E;;AAEA,MAAMC,aAAN,CAAuC;EACrB;EAEhBC,WAAW,CAACC,SAAD,EAAY;IACrB,KAAKA,SAAL,GAAiBA,SAAjB;EACD;;EAEDC,GAAG,CAACC,IAAD,EAAeC,KAAf,EAA8BC,SAA9B,EAAyD;IAC1D;IACA,IAAI,CAAC,CAAEC,IAAI,CAACC,KAAL,CAAWF,SAAX,CAAP,EAA+B;MAC7B;MACA,IAAIG,GAAG,GAAG,CAACF,IAAI,CAACC,KAAL,CAAWF,SAAX,IAAwBC,IAAI,CAACG,GAAL,EAAzB,IAAuC,IAAjD;MACA,KAAKR,SAAL,CAAeC,GAAf,CAAmBC,IAAnB,EAAyBC,KAAzB,EAAgCI,GAAhC;IACD,CAJD,MAIO;MACL,KAAKP,SAAL,CAAeC,GAAf,CAAmBC,IAAnB,EAAyBC,KAAzB;IACD;;IAED,OAAO,KAAKM,GAAL,CAASP,IAAT,CAAP;EACD;;EAEDO,GAAG,CAACP,IAAD,EAAe;IAChB,OAAO,KAAKF,SAAL,CAAeS,GAAf,CAAmBP,IAAnB,CAAP;EACD;;EAEDQ,MAAM,CAACR,IAAD,EAAO;IACX,OAAO,KAAKF,SAAL,CAAeW,GAAf,CAAmBT,IAAnB,CAAP;EACD;;AA1BoC,C,CA4BvC;;;AACA,MAAMU,aAAN,CAA2C;EACzB;EAEhBb,WAAW,CAACC,SAAD,EAAY;IACrB,KAAKA,SAAL,GAAiBA,SAAjB;IACA,KAAKa,OAAL,GAAe,IAAIf,aAAJ,CAAkBE,SAAlB,CAAf;EACD;;EAEDc,eAAe,CAACC,WAAD,EAAoC;IACjD,IAAIC,SAAS,GAAG,KAAhB;;IACA,QAAQD,WAAR;MACE,KAAK,QAAL;QACEC,SAAS,GAAG,IAAZ;QACA;;MACF;QACE;IALJ;;IAOA,OAAOA,SAAP;EACD;;EAEDC,gBAAgB,CAACF,WAAD,EAA0C;IACxD,IAAIG,eAAJ;;IACA,QAAQH,WAAR;MACE,KAAK,QAAL;QACEG,eAAe,GAAG,KAAKC,UAAL,EAAlB;QACA;;MACF;QACE,MAAM,IAAIC,oBAAJ,CAAkB,gCAA+BL,WAAY,EAA7D,CAAN;QACA;IANJ;;IAQA,OAAOG,eAAP;EACD;;EAEDG,eAAe,GAAgB;IAC7B,OAAO,QAAP;EACD,CAnCwC,CAqCzC;;;EACAC,YAAY,GAAG;IACb,OAAO,IAAP,CADa,CACA;EACd,CAxCwC,CA0CzC;;;EACAH,UAAU,GAAkB;IAC1B,OAAO;MACLI,OAAO,EAAE,KAAKvB,SAAL,CAAeS,GADnB;MAELe,OAAO,EAAE,CAACC,GAAD,EAAMtB,KAAN,KAAgB;QACvB,KAAKH,SAAL,CAAeC,GAAf,CAAmBwB,GAAnB,EAAwBtB,KAAxB,EAA+B,0BAA/B;MACD,CAJI;MAKL;MACAuB,eAAe,EAAE,MAAM;IANlB,CAAP;EAQD;;AApDwC;;eAuD5B,IAAId,aAAJ,CAAkBhB,aAAlB,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoRenewService.js","names":["AutoRenewService","constructor","tokenManager","options","renewTimeQueue","onTokenExpiredHandler","bind","shouldThrottleRenew","res","push","Date","now","length","firstTime","shift","lastTime","requiresLeadership","syncStorage","key","autoRenew","error","AuthSdkError","emitError","renew","catch","autoRemove","remove","canStart","start","stop","on","EVENT_EXPIRED","started","off","isStarted"],"sources":["../../../lib/services/AutoRenewService.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 { TokenManager } from '../TokenManager';\nimport { AuthSdkError } from '../errors';\nimport { ServiceInterface, ServiceManagerOptions, EVENT_EXPIRED } from '../types';\nimport { isBrowser } from '../features';\n\nexport class AutoRenewService implements ServiceInterface {\n private tokenManager: TokenManager;\n private options: ServiceManagerOptions;\n private renewTimeQueue: Array<number>;\n private started = false;\n\n constructor(tokenManager: TokenManager, options: ServiceManagerOptions = {}) {\n this.tokenManager = tokenManager;\n this.options = options;\n this.renewTimeQueue = [];\n this.onTokenExpiredHandler = this.onTokenExpiredHandler.bind(this);\n }\n \n private shouldThrottleRenew(): boolean {\n let res = false;\n this.renewTimeQueue.push(Date.now());\n if (this.renewTimeQueue.length >= 10) {\n // get and remove first item from queue\n const firstTime = this.renewTimeQueue.shift() as number;\n const lastTime = this.renewTimeQueue[this.renewTimeQueue.length - 1];\n res = (lastTime - firstTime) < 30 * 1000;\n }\n return res;\n }\n\n requiresLeadership() {\n // If tokens sync storage is enabled, handle tokens expiration only in 1 leader tab\n return !!this.options.syncStorage && isBrowser();\n }\n\n private onTokenExpiredHandler(key: string) {\n if (this.options.autoRenew) {\n if (this.shouldThrottleRenew()) {\n const error = new AuthSdkError('Too many token renew requests');\n this.tokenManager.emitError(error);\n } else {\n this.tokenManager.renew(key).catch(() => {}); // Renew errors will emit an \"error\" event \n }\n } else if (this.options.autoRemove) {\n this.tokenManager.remove(key);\n }\n }\n\n canStart() {\n return (!!this.options.autoRenew || !!this.options.autoRemove);\n }\n\n async start() {\n if (this.canStart()) {\n await this.stop();\n this.tokenManager.on(EVENT_EXPIRED, this.onTokenExpiredHandler);\n this.started = true;\n }\n }\n\n async stop() {\n if (this.started) {\n this.tokenManager.off(EVENT_EXPIRED, this.onTokenExpiredHandler);\n this.renewTimeQueue = [];\n this.started = false;\n }\n }\n\n isStarted() {\n return this.started;\n }\n}\n"],"mappings":";;;;;;;;AAcA;;AACA;;AACA;;AAhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQO,MAAMA,gBAAN,CAAmD;EAMxDC,WAAW,CAACC,YAAD,EAA6BC,OAA8B,GAAG,EAA9D,EAAkE;IAAA,+CAF3D,KAE2D;IAC3E,KAAKD,YAAL,GAAoBA,YAApB;IACA,KAAKC,OAAL,GAAeA,OAAf;IACA,KAAKC,cAAL,GAAsB,EAAtB;IACA,KAAKC,qBAAL,GAA6B,KAAKA,qBAAL,CAA2BC,IAA3B,CAAgC,IAAhC,CAA7B;EACD;;EAEOC,mBAAmB,GAAY;IACrC,IAAIC,GAAG,GAAG,KAAV;IACA,KAAKJ,cAAL,CAAoBK,IAApB,CAAyBC,IAAI,CAACC,GAAL,EAAzB;;IACA,IAAI,KAAKP,cAAL,CAAoBQ,MAApB,IAA8B,EAAlC,EAAsC;MACpC;MACA,MAAMC,SAAS,GAAG,KAAKT,cAAL,CAAoBU,KAApB,EAAlB;MACA,MAAMC,QAAQ,GAAG,KAAKX,cAAL,CAAoB,KAAKA,cAAL,CAAoBQ,MAApB,GAA6B,CAAjD,CAAjB;MACAJ,GAAG,GAAIO,QAAQ,GAAGF,SAAZ,GAAyB,KAAK,IAApC;IACD;;IACD,OAAOL,GAAP;EACD;;EAEDQ,kBAAkB,GAAG;IACnB;IACA,OAAO,CAAC,CAAC,KAAKb,OAAL,CAAac,WAAf,IAA8B,
|
|
1
|
+
{"version":3,"file":"AutoRenewService.js","names":["AutoRenewService","constructor","tokenManager","options","renewTimeQueue","onTokenExpiredHandler","bind","shouldThrottleRenew","res","push","Date","now","length","firstTime","shift","lastTime","requiresLeadership","syncStorage","isBrowser","key","autoRenew","error","AuthSdkError","emitError","renew","catch","autoRemove","remove","canStart","start","stop","on","EVENT_EXPIRED","started","off","isStarted"],"sources":["../../../lib/services/AutoRenewService.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 { TokenManager } from '../TokenManager';\nimport { AuthSdkError } from '../errors';\nimport { ServiceInterface, ServiceManagerOptions, EVENT_EXPIRED } from '../types';\nimport { isBrowser } from '../features';\n\nexport class AutoRenewService implements ServiceInterface {\n private tokenManager: TokenManager;\n private options: ServiceManagerOptions;\n private renewTimeQueue: Array<number>;\n private started = false;\n\n constructor(tokenManager: TokenManager, options: ServiceManagerOptions = {}) {\n this.tokenManager = tokenManager;\n this.options = options;\n this.renewTimeQueue = [];\n this.onTokenExpiredHandler = this.onTokenExpiredHandler.bind(this);\n }\n \n private shouldThrottleRenew(): boolean {\n let res = false;\n this.renewTimeQueue.push(Date.now());\n if (this.renewTimeQueue.length >= 10) {\n // get and remove first item from queue\n const firstTime = this.renewTimeQueue.shift() as number;\n const lastTime = this.renewTimeQueue[this.renewTimeQueue.length - 1];\n res = (lastTime - firstTime) < 30 * 1000;\n }\n return res;\n }\n\n requiresLeadership() {\n // If tokens sync storage is enabled, handle tokens expiration only in 1 leader tab\n return !!this.options.syncStorage && isBrowser();\n }\n\n private onTokenExpiredHandler(key: string) {\n if (this.options.autoRenew) {\n if (this.shouldThrottleRenew()) {\n const error = new AuthSdkError('Too many token renew requests');\n this.tokenManager.emitError(error);\n } else {\n this.tokenManager.renew(key).catch(() => {}); // Renew errors will emit an \"error\" event \n }\n } else if (this.options.autoRemove) {\n this.tokenManager.remove(key);\n }\n }\n\n canStart() {\n return (!!this.options.autoRenew || !!this.options.autoRemove);\n }\n\n async start() {\n if (this.canStart()) {\n await this.stop();\n this.tokenManager.on(EVENT_EXPIRED, this.onTokenExpiredHandler);\n this.started = true;\n }\n }\n\n async stop() {\n if (this.started) {\n this.tokenManager.off(EVENT_EXPIRED, this.onTokenExpiredHandler);\n this.renewTimeQueue = [];\n this.started = false;\n }\n }\n\n isStarted() {\n return this.started;\n }\n}\n"],"mappings":";;;;;;;;AAcA;;AACA;;AACA;;AAhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQO,MAAMA,gBAAN,CAAmD;EAMxDC,WAAW,CAACC,YAAD,EAA6BC,OAA8B,GAAG,EAA9D,EAAkE;IAAA,+CAF3D,KAE2D;IAC3E,KAAKD,YAAL,GAAoBA,YAApB;IACA,KAAKC,OAAL,GAAeA,OAAf;IACA,KAAKC,cAAL,GAAsB,EAAtB;IACA,KAAKC,qBAAL,GAA6B,KAAKA,qBAAL,CAA2BC,IAA3B,CAAgC,IAAhC,CAA7B;EACD;;EAEOC,mBAAmB,GAAY;IACrC,IAAIC,GAAG,GAAG,KAAV;IACA,KAAKJ,cAAL,CAAoBK,IAApB,CAAyBC,IAAI,CAACC,GAAL,EAAzB;;IACA,IAAI,KAAKP,cAAL,CAAoBQ,MAApB,IAA8B,EAAlC,EAAsC;MACpC;MACA,MAAMC,SAAS,GAAG,KAAKT,cAAL,CAAoBU,KAApB,EAAlB;MACA,MAAMC,QAAQ,GAAG,KAAKX,cAAL,CAAoB,KAAKA,cAAL,CAAoBQ,MAApB,GAA6B,CAAjD,CAAjB;MACAJ,GAAG,GAAIO,QAAQ,GAAGF,SAAZ,GAAyB,KAAK,IAApC;IACD;;IACD,OAAOL,GAAP;EACD;;EAEDQ,kBAAkB,GAAG;IACnB;IACA,OAAO,CAAC,CAAC,KAAKb,OAAL,CAAac,WAAf,IAA8B,IAAAC,mBAAA,GAArC;EACD;;EAEOb,qBAAqB,CAACc,GAAD,EAAc;IACzC,IAAI,KAAKhB,OAAL,CAAaiB,SAAjB,EAA4B;MAC1B,IAAI,KAAKb,mBAAL,EAAJ,EAAgC;QAC9B,MAAMc,KAAK,GAAG,IAAIC,oBAAJ,CAAiB,+BAAjB,CAAd;QACA,KAAKpB,YAAL,CAAkBqB,SAAlB,CAA4BF,KAA5B;MACD,CAHD,MAGO;QACL,KAAKnB,YAAL,CAAkBsB,KAAlB,CAAwBL,GAAxB,EAA6BM,KAA7B,CAAmC,MAAM,CAAE,CAA3C,EADK,CACyC;MAC/C;IACF,CAPD,MAOO,IAAI,KAAKtB,OAAL,CAAauB,UAAjB,EAA6B;MAClC,KAAKxB,YAAL,CAAkByB,MAAlB,CAAyBR,GAAzB;IACD;EACF;;EAEDS,QAAQ,GAAG;IACT,OAAQ,CAAC,CAAC,KAAKzB,OAAL,CAAaiB,SAAf,IAA4B,CAAC,CAAC,KAAKjB,OAAL,CAAauB,UAAnD;EACD;;EAEU,MAALG,KAAK,GAAG;IACZ,IAAI,KAAKD,QAAL,EAAJ,EAAqB;MACnB,MAAM,KAAKE,IAAL,EAAN;MACA,KAAK5B,YAAL,CAAkB6B,EAAlB,CAAqBC,oBAArB,EAAoC,KAAK3B,qBAAzC;MACA,KAAK4B,OAAL,GAAe,IAAf;IACD;EACF;;EAES,MAAJH,IAAI,GAAG;IACX,IAAI,KAAKG,OAAT,EAAkB;MAChB,KAAK/B,YAAL,CAAkBgC,GAAlB,CAAsBF,oBAAtB,EAAqC,KAAK3B,qBAA1C;MACA,KAAKD,cAAL,GAAsB,EAAtB;MACA,KAAK6B,OAAL,GAAe,KAAf;IACD;EACF;;EAEDE,SAAS,GAAG;IACV,OAAO,KAAKF,OAAZ;EACD;;AAjEuD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LeaderElectionService.js","names":["LeaderElectionService","constructor","options","onLeaderDuplicate","bind","onLeader","isLeader","elector","hasLeader","start","stop","canStart","electionChannelName","channel","BroadcastChannel","onduplicate","awaitLeadership","then","started","die","undefined","postInternal","resolve","close","requiresLeadership","isStarted"],"sources":["../../../lib/services/LeaderElectionService.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 { ServiceInterface, ServiceManagerOptions } from '../types';\nimport {\n BroadcastChannel,\n createLeaderElection,\n LeaderElector\n} from 'broadcast-channel';\nimport { isBrowser } from '../features';\n\ndeclare type OnLeaderHandler = (() => Promise<void>);\ndeclare type ServiceOptions = ServiceManagerOptions & {\n onLeader?: OnLeaderHandler;\n};\n\nexport class LeaderElectionService implements ServiceInterface {\n private options: ServiceOptions;\n private channel?: BroadcastChannel;\n private elector?: LeaderElector;\n private started = false;\n\n constructor(options: ServiceOptions = {}) {\n this.options = options;\n this.onLeaderDuplicate = this.onLeaderDuplicate.bind(this);\n this.onLeader = this.onLeader.bind(this);\n }\n\n private onLeaderDuplicate() {\n }\n\n private async onLeader() {\n await this.options.onLeader?.();\n }\n\n isLeader() {\n return !!this.elector?.isLeader;\n }\n\n hasLeader() {\n return !!this.elector?.hasLeader;\n }\n\n async start() {\n await this.stop();\n if (this.canStart()) {\n const { electionChannelName } = this.options;\n this.channel = new BroadcastChannel(electionChannelName as string);\n this.elector = createLeaderElection(this.channel);\n this.elector.onduplicate = this.onLeaderDuplicate;\n this.elector.awaitLeadership().then(this.onLeader);\n this.started = true;\n }\n }\n\n async stop() {\n if (this.started) {\n if (this.elector) {\n await this.elector.die();\n this.elector = undefined;\n }\n if (this.channel) {\n // Workaround to fix error `Failed to execute 'postMessage' on 'BroadcastChannel': Channel is closed`\n (this.channel as any).postInternal = () => Promise.resolve();\n await this.channel.close();\n this.channel = undefined;\n }\n this.started = false;\n }\n }\n\n requiresLeadership() {\n return false;\n }\n\n isStarted() {\n return this.started;\n }\n\n canStart() {\n return isBrowser();\n }\n\n}\n"],"mappings":";;;;;;;;;;AAcA;;AAKA;;AAnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgBO,MAAMA,qBAAN,CAAwD;EAM7DC,WAAW,CAACC,OAAuB,GAAG,EAA3B,EAA+B;IAAA,+CAFxB,KAEwB;IACxC,KAAKA,OAAL,GAAeA,OAAf;IACA,KAAKC,iBAAL,GAAyB,KAAKA,iBAAL,CAAuBC,IAAvB,CAA4B,IAA5B,CAAzB;IACA,KAAKC,QAAL,GAAgB,KAAKA,QAAL,CAAcD,IAAd,CAAmB,IAAnB,CAAhB;EACD;;EAEOD,iBAAiB,GAAG,CAC3B;;EAEqB,MAARE,QAAQ,GAAG;IAAA;;IACvB,gCAAM,sBAAKH,OAAL,EAAaG,QAAnB,0DAAM,yCAAN;EACD;;EAEDC,QAAQ,GAAG;IAAA;;IACT,OAAO,CAAC,mBAAC,KAAKC,OAAN,0CAAC,cAAcD,QAAf,CAAR;EACD;;EAEDE,SAAS,GAAG;IAAA;;IACV,OAAO,CAAC,oBAAC,KAAKD,OAAN,2CAAC,eAAcC,SAAf,CAAR;EACD;;EAEU,MAALC,KAAK,GAAG;IACZ,MAAM,KAAKC,IAAL,EAAN;;IACA,IAAI,KAAKC,QAAL,EAAJ,EAAqB;MACnB,MAAM;QAAEC;MAAF,IAA0B,KAAKV,OAArC;MACA,KAAKW,OAAL,GAAe,IAAIC,kCAAJ,CAAqBF,mBAArB,CAAf;MACA,KAAKL,OAAL,GAAe,
|
|
1
|
+
{"version":3,"file":"LeaderElectionService.js","names":["LeaderElectionService","constructor","options","onLeaderDuplicate","bind","onLeader","isLeader","elector","hasLeader","start","stop","canStart","electionChannelName","channel","BroadcastChannel","createLeaderElection","onduplicate","awaitLeadership","then","started","die","undefined","postInternal","resolve","close","requiresLeadership","isStarted","isBrowser"],"sources":["../../../lib/services/LeaderElectionService.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 { ServiceInterface, ServiceManagerOptions } from '../types';\nimport {\n BroadcastChannel,\n createLeaderElection,\n LeaderElector\n} from 'broadcast-channel';\nimport { isBrowser } from '../features';\n\ndeclare type OnLeaderHandler = (() => Promise<void>);\ndeclare type ServiceOptions = ServiceManagerOptions & {\n onLeader?: OnLeaderHandler;\n};\n\nexport class LeaderElectionService implements ServiceInterface {\n private options: ServiceOptions;\n private channel?: BroadcastChannel;\n private elector?: LeaderElector;\n private started = false;\n\n constructor(options: ServiceOptions = {}) {\n this.options = options;\n this.onLeaderDuplicate = this.onLeaderDuplicate.bind(this);\n this.onLeader = this.onLeader.bind(this);\n }\n\n private onLeaderDuplicate() {\n }\n\n private async onLeader() {\n await this.options.onLeader?.();\n }\n\n isLeader() {\n return !!this.elector?.isLeader;\n }\n\n hasLeader() {\n return !!this.elector?.hasLeader;\n }\n\n async start() {\n await this.stop();\n if (this.canStart()) {\n const { electionChannelName } = this.options;\n this.channel = new BroadcastChannel(electionChannelName as string);\n this.elector = createLeaderElection(this.channel);\n this.elector.onduplicate = this.onLeaderDuplicate;\n this.elector.awaitLeadership().then(this.onLeader);\n this.started = true;\n }\n }\n\n async stop() {\n if (this.started) {\n if (this.elector) {\n await this.elector.die();\n this.elector = undefined;\n }\n if (this.channel) {\n // Workaround to fix error `Failed to execute 'postMessage' on 'BroadcastChannel': Channel is closed`\n (this.channel as any).postInternal = () => Promise.resolve();\n await this.channel.close();\n this.channel = undefined;\n }\n this.started = false;\n }\n }\n\n requiresLeadership() {\n return false;\n }\n\n isStarted() {\n return this.started;\n }\n\n canStart() {\n return isBrowser();\n }\n\n}\n"],"mappings":";;;;;;;;;;AAcA;;AAKA;;AAnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgBO,MAAMA,qBAAN,CAAwD;EAM7DC,WAAW,CAACC,OAAuB,GAAG,EAA3B,EAA+B;IAAA,+CAFxB,KAEwB;IACxC,KAAKA,OAAL,GAAeA,OAAf;IACA,KAAKC,iBAAL,GAAyB,KAAKA,iBAAL,CAAuBC,IAAvB,CAA4B,IAA5B,CAAzB;IACA,KAAKC,QAAL,GAAgB,KAAKA,QAAL,CAAcD,IAAd,CAAmB,IAAnB,CAAhB;EACD;;EAEOD,iBAAiB,GAAG,CAC3B;;EAEqB,MAARE,QAAQ,GAAG;IAAA;;IACvB,gCAAM,sBAAKH,OAAL,EAAaG,QAAnB,0DAAM,yCAAN;EACD;;EAEDC,QAAQ,GAAG;IAAA;;IACT,OAAO,CAAC,mBAAC,KAAKC,OAAN,0CAAC,cAAcD,QAAf,CAAR;EACD;;EAEDE,SAAS,GAAG;IAAA;;IACV,OAAO,CAAC,oBAAC,KAAKD,OAAN,2CAAC,eAAcC,SAAf,CAAR;EACD;;EAEU,MAALC,KAAK,GAAG;IACZ,MAAM,KAAKC,IAAL,EAAN;;IACA,IAAI,KAAKC,QAAL,EAAJ,EAAqB;MACnB,MAAM;QAAEC;MAAF,IAA0B,KAAKV,OAArC;MACA,KAAKW,OAAL,GAAe,IAAIC,kCAAJ,CAAqBF,mBAArB,CAAf;MACA,KAAKL,OAAL,GAAe,IAAAQ,sCAAA,EAAqB,KAAKF,OAA1B,CAAf;MACA,KAAKN,OAAL,CAAaS,WAAb,GAA2B,KAAKb,iBAAhC;MACA,KAAKI,OAAL,CAAaU,eAAb,GAA+BC,IAA/B,CAAoC,KAAKb,QAAzC;MACA,KAAKc,OAAL,GAAe,IAAf;IACD;EACF;;EAES,MAAJT,IAAI,GAAG;IACX,IAAI,KAAKS,OAAT,EAAkB;MAChB,IAAI,KAAKZ,OAAT,EAAkB;QAChB,MAAM,KAAKA,OAAL,CAAaa,GAAb,EAAN;QACA,KAAKb,OAAL,GAAec,SAAf;MACD;;MACD,IAAI,KAAKR,OAAT,EAAkB;QAChB;QACC,KAAKA,OAAN,CAAsBS,YAAtB,GAAqC,MAAM,iBAAQC,OAAR,EAA3C;;QACA,MAAM,KAAKV,OAAL,CAAaW,KAAb,EAAN;QACA,KAAKX,OAAL,GAAeQ,SAAf;MACD;;MACD,KAAKF,OAAL,GAAe,KAAf;IACD;EACF;;EAEDM,kBAAkB,GAAG;IACnB,OAAO,KAAP;EACD;;EAEDC,SAAS,GAAG;IACV,OAAO,KAAKP,OAAZ;EACD;;EAEDR,QAAQ,GAAG;IACT,OAAO,IAAAgB,mBAAA,GAAP;EACD;;AAjE4D"}
|
|
@@ -45,7 +45,10 @@ class SyncStorageService {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
canStart() {
|
|
48
|
-
|
|
48
|
+
// TODO: canStart logic should depend on canUse logic from broadcast-channel
|
|
49
|
+
// instead of the storage that TokenManager uses
|
|
50
|
+
// JIRA: https://oktainc.atlassian.net/browse/OKTA-529631
|
|
51
|
+
return !!this.options.syncStorage && (0, _features.isBrowser)() && this.tokenManager.hasSharedStorage();
|
|
49
52
|
}
|
|
50
53
|
|
|
51
54
|
async start() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncStorageService.js","names":["SyncStorageService","constructor","tokenManager","options","onTokenAddedHandler","bind","onTokenRemovedHandler","onTokenRenewedHandler","onSetStorageHandler","onSyncMessageHandler","requiresLeadership","isStarted","started","canStart","syncStorage","start","stop","syncChannelName","channel","BroadcastChannel","on","EVENT_ADDED","EVENT_REMOVED","EVENT_RENEWED","EVENT_SET_STORAGE","addEventListener","off","removeEventListener","close","undefined","key","token","enablePostMessage","postMessage","type","oldToken","storage","msg","getStorage","setStorage","emitAdded","setExpireEventTimeout","clearExpireEventTimeout","emitRemoved","emitRenewed"],"sources":["../../../lib/services/SyncStorageService.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\nimport { TokenManager } from '../TokenManager';\nimport { BroadcastChannel } from 'broadcast-channel';\nimport { isBrowser } from '../features';\nimport {\n ServiceManagerOptions, ServiceInterface, Token, Tokens, \n EVENT_ADDED, EVENT_REMOVED, EVENT_RENEWED, EVENT_SET_STORAGE\n} from '../types';\n\nexport type SyncMessage = {\n type: string;\n key?: string;\n token?: Token;\n oldToken?: Token;\n storage?: Tokens;\n};\nexport class SyncStorageService implements ServiceInterface {\n private tokenManager: TokenManager;\n private options: ServiceManagerOptions;\n private channel?: BroadcastChannel<SyncMessage>;\n private started = false;\n private enablePostMessage = true;\n\n constructor(tokenManager: TokenManager, options: ServiceManagerOptions = {}) {\n this.tokenManager = tokenManager;\n this.options = options;\n this.onTokenAddedHandler = this.onTokenAddedHandler.bind(this);\n this.onTokenRemovedHandler = this.onTokenRemovedHandler.bind(this);\n this.onTokenRenewedHandler = this.onTokenRenewedHandler.bind(this);\n this.onSetStorageHandler = this.onSetStorageHandler.bind(this);\n this.onSyncMessageHandler = this.onSyncMessageHandler.bind(this);\n }\n\n requiresLeadership() {\n return false;\n }\n\n isStarted() {\n return this.started;\n }\n\n canStart() {\n return !!this.options.syncStorage && isBrowser();\n }\n\n async start() {\n if (this.canStart()) {\n await this.stop();\n const { syncChannelName } = this.options;\n this.channel = new BroadcastChannel(syncChannelName as string);\n this.tokenManager.on(EVENT_ADDED, this.onTokenAddedHandler);\n this.tokenManager.on(EVENT_REMOVED, this.onTokenRemovedHandler);\n this.tokenManager.on(EVENT_RENEWED, this.onTokenRenewedHandler);\n this.tokenManager.on(EVENT_SET_STORAGE, this.onSetStorageHandler);\n this.channel.addEventListener('message', this.onSyncMessageHandler);\n this.started = true;\n }\n }\n\n async stop() {\n if (this.started) {\n this.tokenManager.off(EVENT_ADDED, this.onTokenAddedHandler);\n this.tokenManager.off(EVENT_REMOVED, this.onTokenRemovedHandler);\n this.tokenManager.off(EVENT_RENEWED, this.onTokenRenewedHandler);\n this.tokenManager.off(EVENT_SET_STORAGE, this.onSetStorageHandler);\n this.channel?.removeEventListener('message', this.onSyncMessageHandler);\n await this.channel?.close();\n this.channel = undefined;\n this.started = false;\n }\n }\n\n private onTokenAddedHandler(key: string, token: Token) {\n if (!this.enablePostMessage) {\n return;\n }\n this.channel?.postMessage({\n type: EVENT_ADDED,\n key,\n token\n });\n }\n\n private onTokenRemovedHandler(key: string, token: Token) {\n if (!this.enablePostMessage) {\n return;\n }\n this.channel?.postMessage({\n type: EVENT_REMOVED,\n key,\n token\n });\n }\n\n private onTokenRenewedHandler(key: string, token: Token, oldToken?: Token) {\n if (!this.enablePostMessage) {\n return;\n }\n this.channel?.postMessage({\n type: EVENT_RENEWED,\n key,\n token,\n oldToken\n });\n }\n\n private onSetStorageHandler(storage: Tokens) {\n this.channel?.postMessage({\n type: EVENT_SET_STORAGE,\n storage\n });\n }\n\n /* eslint-disable complexity */\n private onSyncMessageHandler(msg: SyncMessage) {\n // Notes:\n // 1. Using `enablePostMessage` flag here to prevent sync message loop.\n // If this flag is on, tokenManager event handlers do not post sync message.\n // 2. IE11 has known issue with synchronization of LocalStorage cross tabs.\n // One workaround is to set empty event handler for `window.onstorage`.\n // But it's not 100% working, sometimes you still get old value from LocalStorage.\n // Better approch is to explicitly udpate LocalStorage with `setStorage`.\n\n this.enablePostMessage = false;\n switch (msg.type) {\n case EVENT_SET_STORAGE:\n this.tokenManager.getStorage().setStorage(msg.storage);\n break;\n case EVENT_ADDED:\n this.tokenManager.emitAdded(msg.key, msg.token);\n this.tokenManager.setExpireEventTimeout(msg.key, msg.token);\n break;\n case EVENT_REMOVED:\n this.tokenManager.clearExpireEventTimeout(msg.key);\n this.tokenManager.emitRemoved(msg.key, msg.token);\n break;\n case EVENT_RENEWED:\n this.tokenManager.emitRenewed(msg.key, msg.token, msg.oldToken);\n break;\n default:\n break;\n }\n this.enablePostMessage = true;\n }\n} "],"mappings":";;;;;;;;AAaA;;AACA;;AACA;;AAfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAiBO,MAAMA,kBAAN,CAAqD;EAO1DC,WAAW,CAACC,YAAD,EAA6BC,OAA8B,GAAG,EAA9D,EAAkE;IAAA,+CAH3D,KAG2D;IAAA,yDAFjD,IAEiD;IAC3E,KAAKD,YAAL,GAAoBA,YAApB;IACA,KAAKC,OAAL,GAAeA,OAAf;IACA,KAAKC,mBAAL,GAA2B,KAAKA,mBAAL,CAAyBC,IAAzB,CAA8B,IAA9B,CAA3B;IACA,KAAKC,qBAAL,GAA6B,KAAKA,qBAAL,CAA2BD,IAA3B,CAAgC,IAAhC,CAA7B;IACA,KAAKE,qBAAL,GAA6B,KAAKA,qBAAL,CAA2BF,IAA3B,CAAgC,IAAhC,CAA7B;IACA,KAAKG,mBAAL,GAA2B,KAAKA,mBAAL,CAAyBH,IAAzB,CAA8B,IAA9B,CAA3B;IACA,KAAKI,oBAAL,GAA4B,KAAKA,oBAAL,CAA0BJ,IAA1B,CAA+B,IAA/B,CAA5B;EACD;;EAEDK,kBAAkB,GAAG;IACnB,OAAO,KAAP;EACD;;EAEDC,SAAS,GAAG;IACV,OAAO,KAAKC,OAAZ;EACD;;EAEDC,QAAQ,GAAG;IACT,OAAO,CAAC,CAAC,KAAKV,OAAL,CAAaW,WAAf,IAA8B,
|
|
1
|
+
{"version":3,"file":"SyncStorageService.js","names":["SyncStorageService","constructor","tokenManager","options","onTokenAddedHandler","bind","onTokenRemovedHandler","onTokenRenewedHandler","onSetStorageHandler","onSyncMessageHandler","requiresLeadership","isStarted","started","canStart","syncStorage","isBrowser","hasSharedStorage","start","stop","syncChannelName","channel","BroadcastChannel","on","EVENT_ADDED","EVENT_REMOVED","EVENT_RENEWED","EVENT_SET_STORAGE","addEventListener","off","removeEventListener","close","undefined","key","token","enablePostMessage","postMessage","type","oldToken","storage","msg","getStorage","setStorage","emitAdded","setExpireEventTimeout","clearExpireEventTimeout","emitRemoved","emitRenewed"],"sources":["../../../lib/services/SyncStorageService.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\nimport { TokenManager } from '../TokenManager';\nimport { BroadcastChannel } from 'broadcast-channel';\nimport { isBrowser } from '../features';\nimport {\n ServiceManagerOptions, ServiceInterface, Token, Tokens, \n EVENT_ADDED, EVENT_REMOVED, EVENT_RENEWED, EVENT_SET_STORAGE\n} from '../types';\n\nexport type SyncMessage = {\n type: string;\n key?: string;\n token?: Token;\n oldToken?: Token;\n storage?: Tokens;\n};\nexport class SyncStorageService implements ServiceInterface {\n private tokenManager: TokenManager;\n private options: ServiceManagerOptions;\n private channel?: BroadcastChannel<SyncMessage>;\n private started = false;\n private enablePostMessage = true;\n\n constructor(tokenManager: TokenManager, options: ServiceManagerOptions = {}) {\n this.tokenManager = tokenManager;\n this.options = options;\n this.onTokenAddedHandler = this.onTokenAddedHandler.bind(this);\n this.onTokenRemovedHandler = this.onTokenRemovedHandler.bind(this);\n this.onTokenRenewedHandler = this.onTokenRenewedHandler.bind(this);\n this.onSetStorageHandler = this.onSetStorageHandler.bind(this);\n this.onSyncMessageHandler = this.onSyncMessageHandler.bind(this);\n }\n\n requiresLeadership() {\n return false;\n }\n\n isStarted() {\n return this.started;\n }\n\n canStart() {\n // TODO: canStart logic should depend on canUse logic from broadcast-channel \n // instead of the storage that TokenManager uses\n // JIRA: https://oktainc.atlassian.net/browse/OKTA-529631\n return !!this.options.syncStorage && isBrowser() && this.tokenManager.hasSharedStorage();\n }\n\n async start() {\n if (this.canStart()) {\n await this.stop();\n const { syncChannelName } = this.options;\n this.channel = new BroadcastChannel(syncChannelName as string);\n this.tokenManager.on(EVENT_ADDED, this.onTokenAddedHandler);\n this.tokenManager.on(EVENT_REMOVED, this.onTokenRemovedHandler);\n this.tokenManager.on(EVENT_RENEWED, this.onTokenRenewedHandler);\n this.tokenManager.on(EVENT_SET_STORAGE, this.onSetStorageHandler);\n this.channel.addEventListener('message', this.onSyncMessageHandler);\n this.started = true;\n }\n }\n\n async stop() {\n if (this.started) {\n this.tokenManager.off(EVENT_ADDED, this.onTokenAddedHandler);\n this.tokenManager.off(EVENT_REMOVED, this.onTokenRemovedHandler);\n this.tokenManager.off(EVENT_RENEWED, this.onTokenRenewedHandler);\n this.tokenManager.off(EVENT_SET_STORAGE, this.onSetStorageHandler);\n this.channel?.removeEventListener('message', this.onSyncMessageHandler);\n await this.channel?.close();\n this.channel = undefined;\n this.started = false;\n }\n }\n\n private onTokenAddedHandler(key: string, token: Token) {\n if (!this.enablePostMessage) {\n return;\n }\n this.channel?.postMessage({\n type: EVENT_ADDED,\n key,\n token\n });\n }\n\n private onTokenRemovedHandler(key: string, token: Token) {\n if (!this.enablePostMessage) {\n return;\n }\n this.channel?.postMessage({\n type: EVENT_REMOVED,\n key,\n token\n });\n }\n\n private onTokenRenewedHandler(key: string, token: Token, oldToken?: Token) {\n if (!this.enablePostMessage) {\n return;\n }\n this.channel?.postMessage({\n type: EVENT_RENEWED,\n key,\n token,\n oldToken\n });\n }\n\n private onSetStorageHandler(storage: Tokens) {\n this.channel?.postMessage({\n type: EVENT_SET_STORAGE,\n storage\n });\n }\n\n /* eslint-disable complexity */\n private onSyncMessageHandler(msg: SyncMessage) {\n // Notes:\n // 1. Using `enablePostMessage` flag here to prevent sync message loop.\n // If this flag is on, tokenManager event handlers do not post sync message.\n // 2. IE11 has known issue with synchronization of LocalStorage cross tabs.\n // One workaround is to set empty event handler for `window.onstorage`.\n // But it's not 100% working, sometimes you still get old value from LocalStorage.\n // Better approch is to explicitly udpate LocalStorage with `setStorage`.\n\n this.enablePostMessage = false;\n switch (msg.type) {\n case EVENT_SET_STORAGE:\n this.tokenManager.getStorage().setStorage(msg.storage);\n break;\n case EVENT_ADDED:\n this.tokenManager.emitAdded(msg.key, msg.token);\n this.tokenManager.setExpireEventTimeout(msg.key, msg.token);\n break;\n case EVENT_REMOVED:\n this.tokenManager.clearExpireEventTimeout(msg.key);\n this.tokenManager.emitRemoved(msg.key, msg.token);\n break;\n case EVENT_RENEWED:\n this.tokenManager.emitRenewed(msg.key, msg.token, msg.oldToken);\n break;\n default:\n break;\n }\n this.enablePostMessage = true;\n }\n} "],"mappings":"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"}
|
package/cjs/session.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
exports.sessionExists = sessionExists;
|
|
4
|
-
exports.getSession = getSession;
|
|
5
3
|
exports.closeSession = closeSession;
|
|
4
|
+
exports.getSession = getSession;
|
|
6
5
|
exports.refreshSession = refreshSession;
|
|
6
|
+
exports.sessionExists = sessionExists;
|
|
7
7
|
exports.setCookieAndRedirect = setCookieAndRedirect;
|
|
8
8
|
|
|
9
9
|
var _util = require("./util");
|
package/cjs/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","names":["sessionExists","sdk","session","get","then","res","status","catch","getSession","withCredentials","refresh","href","user","closeSession","url","getIssuerOrigin","method","refreshSession","setCookieAndRedirect","sessionToken","redirectUrl","window","location","assign","checkAccountSetupComplete","token"],"sources":["../../lib/session.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/* global window */\nimport { omit, getLink, toQueryString } from './util';\nimport { get, post, httpRequest } from './http';\n\nfunction sessionExists(sdk) {\n return sdk.session.get()\n .then(function(res) {\n if (res.status === 'ACTIVE') {\n return true;\n }\n return false;\n })\n .catch(function() {\n return false;\n });\n}\n\nfunction getSession(sdk) { \n return get(sdk, '/api/v1/sessions/me', { withCredentials: true })\n .then(function(session) {\n var res = omit(session, '_links');\n\n res.refresh = function() {\n return post(sdk, getLink(session, 'refresh').href, {}, { withCredentials: true });\n };\n\n res.user = function() {\n return get(sdk, getLink(session, 'user').href, { withCredentials: true });\n };\n\n return res;\n })\n .catch(function() {\n // Return INACTIVE status on failure\n return {status: 'INACTIVE'};\n });\n}\n\nfunction closeSession(sdk) {\n return httpRequest(sdk, {\n url: sdk.getIssuerOrigin() + '/api/v1/sessions/me',\n method: 'DELETE',\n withCredentials: true\n });\n}\n\nfunction refreshSession(sdk) {\n return post(sdk, '/api/v1/sessions/me/lifecycle/refresh', {}, { withCredentials: true });\n}\n\nfunction setCookieAndRedirect(sdk, sessionToken, redirectUrl) {\n redirectUrl = redirectUrl || window.location.href;\n window.location.assign(sdk.getIssuerOrigin() + '/login/sessionCookieRedirect' +\n toQueryString({\n checkAccountSetupComplete: true,\n token: sessionToken,\n redirectUrl: redirectUrl\n }));\n}\n\nexport {\n sessionExists,\n getSession,\n closeSession,\n refreshSession,\n setCookieAndRedirect\n};\n"],"mappings":";;;;;;;;AAaA;;AACA;;AAdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AAIA,SAASA,aAAT,CAAuBC,GAAvB,EAA4B;EAC1B,OAAOA,GAAG,CAACC,OAAJ,CAAYC,GAAZ,GACJC,IADI,CACC,UAASC,GAAT,EAAc;IAClB,IAAIA,GAAG,CAACC,MAAJ,KAAe,QAAnB,EAA6B;MAC3B,OAAO,IAAP;IACD;;IACD,OAAO,KAAP;EACD,CANI,EAOJC,KAPI,CAOE,YAAW;IAChB,OAAO,KAAP;EACD,CATI,CAAP;AAUD;;AAED,SAASC,UAAT,CAAoBP,GAApB,EAAyB;EACvB,OAAO,
|
|
1
|
+
{"version":3,"file":"session.js","names":["sessionExists","sdk","session","get","then","res","status","catch","getSession","withCredentials","omit","refresh","post","getLink","href","user","closeSession","httpRequest","url","getIssuerOrigin","method","refreshSession","setCookieAndRedirect","sessionToken","redirectUrl","window","location","assign","toQueryString","checkAccountSetupComplete","token"],"sources":["../../lib/session.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/* global window */\nimport { omit, getLink, toQueryString } from './util';\nimport { get, post, httpRequest } from './http';\n\nfunction sessionExists(sdk) {\n return sdk.session.get()\n .then(function(res) {\n if (res.status === 'ACTIVE') {\n return true;\n }\n return false;\n })\n .catch(function() {\n return false;\n });\n}\n\nfunction getSession(sdk) { \n return get(sdk, '/api/v1/sessions/me', { withCredentials: true })\n .then(function(session) {\n var res = omit(session, '_links');\n\n res.refresh = function() {\n return post(sdk, getLink(session, 'refresh').href, {}, { withCredentials: true });\n };\n\n res.user = function() {\n return get(sdk, getLink(session, 'user').href, { withCredentials: true });\n };\n\n return res;\n })\n .catch(function() {\n // Return INACTIVE status on failure\n return {status: 'INACTIVE'};\n });\n}\n\nfunction closeSession(sdk) {\n return httpRequest(sdk, {\n url: sdk.getIssuerOrigin() + '/api/v1/sessions/me',\n method: 'DELETE',\n withCredentials: true\n });\n}\n\nfunction refreshSession(sdk) {\n return post(sdk, '/api/v1/sessions/me/lifecycle/refresh', {}, { withCredentials: true });\n}\n\nfunction setCookieAndRedirect(sdk, sessionToken, redirectUrl) {\n redirectUrl = redirectUrl || window.location.href;\n window.location.assign(sdk.getIssuerOrigin() + '/login/sessionCookieRedirect' +\n toQueryString({\n checkAccountSetupComplete: true,\n token: sessionToken,\n redirectUrl: redirectUrl\n }));\n}\n\nexport {\n sessionExists,\n getSession,\n closeSession,\n refreshSession,\n setCookieAndRedirect\n};\n"],"mappings":";;;;;;;;AAaA;;AACA;;AAdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AAIA,SAASA,aAAT,CAAuBC,GAAvB,EAA4B;EAC1B,OAAOA,GAAG,CAACC,OAAJ,CAAYC,GAAZ,GACJC,IADI,CACC,UAASC,GAAT,EAAc;IAClB,IAAIA,GAAG,CAACC,MAAJ,KAAe,QAAnB,EAA6B;MAC3B,OAAO,IAAP;IACD;;IACD,OAAO,KAAP;EACD,CANI,EAOJC,KAPI,CAOE,YAAW;IAChB,OAAO,KAAP;EACD,CATI,CAAP;AAUD;;AAED,SAASC,UAAT,CAAoBP,GAApB,EAAyB;EACvB,OAAO,IAAAE,SAAA,EAAIF,GAAJ,EAAS,qBAAT,EAAgC;IAAEQ,eAAe,EAAE;EAAnB,CAAhC,EACNL,IADM,CACD,UAASF,OAAT,EAAkB;IACtB,IAAIG,GAAG,GAAG,IAAAK,UAAA,EAAKR,OAAL,EAAc,QAAd,CAAV;;IAEAG,GAAG,CAACM,OAAJ,GAAc,YAAW;MACvB,OAAO,IAAAC,UAAA,EAAKX,GAAL,EAAU,IAAAY,aAAA,EAAQX,OAAR,EAAiB,SAAjB,EAA4BY,IAAtC,EAA4C,EAA5C,EAAgD;QAAEL,eAAe,EAAE;MAAnB,CAAhD,CAAP;IACD,CAFD;;IAIAJ,GAAG,CAACU,IAAJ,GAAW,YAAW;MACpB,OAAO,IAAAZ,SAAA,EAAIF,GAAJ,EAAS,IAAAY,aAAA,EAAQX,OAAR,EAAiB,MAAjB,EAAyBY,IAAlC,EAAwC;QAAEL,eAAe,EAAE;MAAnB,CAAxC,CAAP;IACD,CAFD;;IAIA,OAAOJ,GAAP;EACD,CAbM,EAcNE,KAdM,CAcA,YAAW;IAChB;IACA,OAAO;MAACD,MAAM,EAAE;IAAT,CAAP;EACD,CAjBM,CAAP;AAkBD;;AAED,SAASU,YAAT,CAAsBf,GAAtB,EAA2B;EACzB,OAAO,IAAAgB,iBAAA,EAAYhB,GAAZ,EAAiB;IACtBiB,GAAG,EAAEjB,GAAG,CAACkB,eAAJ,KAAwB,qBADP;IAEtBC,MAAM,EAAE,QAFc;IAGtBX,eAAe,EAAE;EAHK,CAAjB,CAAP;AAKD;;AAED,SAASY,cAAT,CAAwBpB,GAAxB,EAA6B;EAC3B,OAAO,IAAAW,UAAA,EAAKX,GAAL,EAAU,uCAAV,EAAmD,EAAnD,EAAuD;IAAEQ,eAAe,EAAE;EAAnB,CAAvD,CAAP;AACD;;AAED,SAASa,oBAAT,CAA8BrB,GAA9B,EAAmCsB,YAAnC,EAAiDC,WAAjD,EAA8D;EAC5DA,WAAW,GAAGA,WAAW,IAAIC,MAAM,CAACC,QAAP,CAAgBZ,IAA7C;EACAW,MAAM,CAACC,QAAP,CAAgBC,MAAhB,CAAuB1B,GAAG,CAACkB,eAAJ,KAAwB,8BAAxB,GACrB,IAAAS,mBAAA,EAAc;IACZC,yBAAyB,EAAE,IADf;IAEZC,KAAK,EAAEP,YAFK;IAGZC,WAAW,EAAEA;EAHD,CAAd,CADF;AAMD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthTransaction.js","names":["AuthTransaction","constructor","sdk","res","data","undefined","status","interactionHandle","flattenEmbedded","stateToken","_links","cancel","resolve","tx","createTransaction","link2fn","obj","link","ref","Array","isArray","name","opts","AuthSdkError","lk","hints","allow","length","method","href","withCredentials","isPolling","factorType","provider","params","autoPush","e","reject","rememberDevice","profile","updatePhone","links2fns","fns","linkName","Object","prototype","hasOwnProperty","call","type","poll","fn","objArr","o","ol","push","embedded","_embedded","key"],"sources":["../../../lib/tx/AuthTransaction.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 { get } from '../http';\nimport { find, omit, toQueryString, clone, isObject } from '../util';\nimport AuthSdkError from '../errors/AuthSdkError';\nimport { TransactionState } from './TransactionState';\nimport { addStateToken } from './util';\nimport { getPollFn } from './poll';\nimport { postToTransaction } from './api';\nimport { IdxStatus } from '../idx/types';\n\ninterface PostToTransactionParams {\n autoPush?: boolean;\n rememberDevice?: boolean;\n updatePhone?: boolean;\n}\n\n// eslint-disable-next-line no-use-before-define\ntype AuthTransactionFunction = (obj?: any) => Promise<AuthTransaction>;\n\ninterface AuthTransactionFunctions {\n // common\n next?: AuthTransactionFunction;\n cancel?: AuthTransactionFunction;\n skip?: AuthTransactionFunction;\n // locked_out\n unlock?: AuthTransactionFunction;\n // password\n changePassword?: AuthTransactionFunction;\n resetPassword?: AuthTransactionFunction;\n // recovery\n answer?: AuthTransactionFunction;\n recovery?: AuthTransactionFunction;\n // recovery_challenge\n verify?: AuthTransactionFunction;\n resend?: AuthTransactionFunction;\n // mfa_enroll_activate\n activate?: AuthTransactionFunction;\n poll?: AuthTransactionFunction;\n prev?: AuthTransactionFunction;\n}\n\nexport class AuthTransaction implements TransactionState, AuthTransactionFunctions {\n next?: AuthTransactionFunction;\n cancel?: AuthTransactionFunction;\n skip?: AuthTransactionFunction;\n unlock?: AuthTransactionFunction;\n changePassword?: AuthTransactionFunction;\n resetPassword?: AuthTransactionFunction;\n answer?: AuthTransactionFunction;\n recovery?: AuthTransactionFunction;\n verify?: AuthTransactionFunction;\n resend?: AuthTransactionFunction;\n activate?: AuthTransactionFunction;\n poll?: AuthTransactionFunction;\n prev?: AuthTransactionFunction;\n\n data?: TransactionState;\n stateToken?: string;\n sessionToken?: string;\n status: string | IdxStatus;\n user?: Record<string, any>;\n factor?: Record<string, any>;\n factors?: Array<Record<string, any> >;\n policy?: Record<string, any>;\n scopes?: Array<Record<string, any> >;\n target?: Record<string, any>;\n authentication?: Record<string, any>;\n constructor(sdk, res: TransactionState | null = null) {\n this.data = undefined;\n this.status = undefined as unknown as string;\n if (res) {\n this.data = res;\n\n if (this.data.interactionHandle) {\n this.status = res.status;\n return;\n }\n\n // Parse response from Authn V1\n Object.assign(this, flattenEmbedded(sdk, res, res, {}));\n delete this.stateToken;\n\n // RECOVERY_CHALLENGE has some responses without _links.\n // Without _links, we emulate cancel to make it intuitive\n // to return to the starting state. We may remove this\n // when OKTA-75434 is resolved\n if (res.status === 'RECOVERY_CHALLENGE' && !res._links) {\n this.cancel = function() {\n return Promise.resolve(sdk.tx.createTransaction());\n };\n }\n }\n }\n}\n\nfunction link2fn(sdk, res, obj, link, ref) {\n if (Array.isArray(link)) {\n return function(name, opts?) {\n if (!name) {\n throw new AuthSdkError('Must provide a link name');\n }\n\n var lk = find(link, {name: name});\n if (!lk) {\n throw new AuthSdkError('No link found for that name');\n }\n\n return link2fn(sdk, res, obj, lk, ref)(opts);\n };\n\n } else if (link.hints &&\n link.hints.allow &&\n link.hints.allow.length === 1) {\n var method = link.hints.allow[0];\n switch (method) {\n\n case 'GET':\n return function() {\n return get(sdk, link.href, { withCredentials: true });\n };\n\n case 'POST':\n // eslint-disable-next-line max-statements,complexity\n return function(opts: TransactionState) {\n if (ref && ref.isPolling) {\n ref.isPolling = false;\n }\n\n var data = addStateToken(res, opts);\n\n if (res.status === 'MFA_ENROLL' || res.status === 'FACTOR_ENROLL') {\n // Add factorType and provider\n Object.assign(data, {\n factorType: obj.factorType,\n provider: obj.provider\n });\n }\n\n var params = {} as PostToTransactionParams;\n var autoPush = data.autoPush;\n if (autoPush !== undefined) {\n if (typeof autoPush === 'function') {\n try {\n params.autoPush = !!autoPush();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('AutoPush resulted in an error.'));\n }\n }\n else if (autoPush !== null) {\n params.autoPush = !!autoPush;\n }\n data = omit(data, 'autoPush');\n }\n\n var rememberDevice = data.rememberDevice;\n if (rememberDevice !== undefined) {\n if (typeof rememberDevice === 'function') {\n try {\n params.rememberDevice = !!rememberDevice();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('RememberDevice resulted in an error.'));\n }\n }\n else if (rememberDevice !== null) {\n params.rememberDevice = !!rememberDevice;\n }\n data = omit(data, 'rememberDevice');\n\n } else if (data.profile &&\n data.profile.updatePhone !== undefined) {\n if (data.profile.updatePhone) {\n params.updatePhone = true;\n }\n data.profile = omit(data.profile, 'updatePhone');\n }\n var href = link.href + toQueryString(params);\n return postToTransaction(sdk, href, data);\n };\n }\n }\n}\n\nfunction links2fns(sdk, res, obj, ref) {\n var fns = {} as AuthTransactionFunctions;\n for (var linkName in obj._links) {\n if (!Object.prototype.hasOwnProperty.call(obj._links, linkName)) {\n continue;\n }\n\n var link = obj._links[linkName];\n \n if (linkName === 'next') {\n linkName = link.name;\n }\n\n if (link.type) {\n fns[linkName] = link;\n continue;\n }\n\n switch (linkName) {\n // poll is only found at the transaction\n // level, so we don't need to pass the link\n case 'poll':\n fns.poll = getPollFn(sdk, res, ref);\n break;\n\n default:\n var fn = link2fn(sdk, res, obj, link, ref);\n if (fn) {\n fns[linkName] = fn;\n }\n }\n }\n return fns;\n}\n\n// eslint-disable-next-line complexity\nfunction flattenEmbedded(sdk, res, obj, ref) {\n obj = obj || res;\n obj = clone(obj);\n\n if (Array.isArray(obj)) {\n var objArr = [];\n for (var o = 0, ol = obj.length; o < ol; o++) {\n objArr.push(flattenEmbedded(sdk, res, obj[o], ref) as never);\n }\n return objArr;\n }\n\n var embedded = obj._embedded || {};\n\n for (var key in embedded) {\n if (!Object.prototype.hasOwnProperty.call(embedded, key)) {\n continue;\n }\n\n // Flatten any nested _embedded objects\n if (isObject(embedded[key]) || Array.isArray(embedded[key])) {\n embedded[key] = flattenEmbedded(sdk, res, embedded[key], ref);\n }\n }\n\n // Convert any links on the embedded object\n var fns = links2fns(sdk, res, obj, ref);\n Object.assign(embedded, fns);\n\n obj = omit(obj, '_embedded', '_links');\n Object.assign(obj, embedded);\n return obj;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AuthTransaction.js","names":["AuthTransaction","constructor","sdk","res","data","undefined","status","interactionHandle","flattenEmbedded","stateToken","_links","cancel","resolve","tx","createTransaction","link2fn","obj","link","ref","Array","isArray","name","opts","AuthSdkError","lk","hints","allow","length","method","get","href","withCredentials","isPolling","addStateToken","factorType","provider","params","autoPush","e","reject","omit","rememberDevice","profile","updatePhone","toQueryString","postToTransaction","links2fns","fns","linkName","Object","prototype","hasOwnProperty","call","type","poll","getPollFn","fn","clone","objArr","o","ol","push","embedded","_embedded","key","isObject"],"sources":["../../../lib/tx/AuthTransaction.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 { get } from '../http';\nimport { find, omit, toQueryString, clone, isObject } from '../util';\nimport AuthSdkError from '../errors/AuthSdkError';\nimport { TransactionState } from './TransactionState';\nimport { addStateToken } from './util';\nimport { getPollFn } from './poll';\nimport { postToTransaction } from './api';\nimport { IdxStatus } from '../idx/types';\n\ninterface PostToTransactionParams {\n autoPush?: boolean;\n rememberDevice?: boolean;\n updatePhone?: boolean;\n}\n\n// eslint-disable-next-line no-use-before-define\ntype AuthTransactionFunction = (obj?: any) => Promise<AuthTransaction>;\n\ninterface AuthTransactionFunctions {\n // common\n next?: AuthTransactionFunction;\n cancel?: AuthTransactionFunction;\n skip?: AuthTransactionFunction;\n // locked_out\n unlock?: AuthTransactionFunction;\n // password\n changePassword?: AuthTransactionFunction;\n resetPassword?: AuthTransactionFunction;\n // recovery\n answer?: AuthTransactionFunction;\n recovery?: AuthTransactionFunction;\n // recovery_challenge\n verify?: AuthTransactionFunction;\n resend?: AuthTransactionFunction;\n // mfa_enroll_activate\n activate?: AuthTransactionFunction;\n poll?: AuthTransactionFunction;\n prev?: AuthTransactionFunction;\n}\n\nexport class AuthTransaction implements TransactionState, AuthTransactionFunctions {\n next?: AuthTransactionFunction;\n cancel?: AuthTransactionFunction;\n skip?: AuthTransactionFunction;\n unlock?: AuthTransactionFunction;\n changePassword?: AuthTransactionFunction;\n resetPassword?: AuthTransactionFunction;\n answer?: AuthTransactionFunction;\n recovery?: AuthTransactionFunction;\n verify?: AuthTransactionFunction;\n resend?: AuthTransactionFunction;\n activate?: AuthTransactionFunction;\n poll?: AuthTransactionFunction;\n prev?: AuthTransactionFunction;\n\n data?: TransactionState;\n stateToken?: string;\n sessionToken?: string;\n status: string | IdxStatus;\n user?: Record<string, any>;\n factor?: Record<string, any>;\n factors?: Array<Record<string, any> >;\n policy?: Record<string, any>;\n scopes?: Array<Record<string, any> >;\n target?: Record<string, any>;\n authentication?: Record<string, any>;\n constructor(sdk, res: TransactionState | null = null) {\n this.data = undefined;\n this.status = undefined as unknown as string;\n if (res) {\n this.data = res;\n\n if (this.data.interactionHandle) {\n this.status = res.status;\n return;\n }\n\n // Parse response from Authn V1\n Object.assign(this, flattenEmbedded(sdk, res, res, {}));\n delete this.stateToken;\n\n // RECOVERY_CHALLENGE has some responses without _links.\n // Without _links, we emulate cancel to make it intuitive\n // to return to the starting state. We may remove this\n // when OKTA-75434 is resolved\n if (res.status === 'RECOVERY_CHALLENGE' && !res._links) {\n this.cancel = function() {\n return Promise.resolve(sdk.tx.createTransaction());\n };\n }\n }\n }\n}\n\nfunction link2fn(sdk, res, obj, link, ref) {\n if (Array.isArray(link)) {\n return function(name, opts?) {\n if (!name) {\n throw new AuthSdkError('Must provide a link name');\n }\n\n var lk = find(link, {name: name});\n if (!lk) {\n throw new AuthSdkError('No link found for that name');\n }\n\n return link2fn(sdk, res, obj, lk, ref)(opts);\n };\n\n } else if (link.hints &&\n link.hints.allow &&\n link.hints.allow.length === 1) {\n var method = link.hints.allow[0];\n switch (method) {\n\n case 'GET':\n return function() {\n return get(sdk, link.href, { withCredentials: true });\n };\n\n case 'POST':\n // eslint-disable-next-line max-statements,complexity\n return function(opts: TransactionState) {\n if (ref && ref.isPolling) {\n ref.isPolling = false;\n }\n\n var data = addStateToken(res, opts);\n\n if (res.status === 'MFA_ENROLL' || res.status === 'FACTOR_ENROLL') {\n // Add factorType and provider\n Object.assign(data, {\n factorType: obj.factorType,\n provider: obj.provider\n });\n }\n\n var params = {} as PostToTransactionParams;\n var autoPush = data.autoPush;\n if (autoPush !== undefined) {\n if (typeof autoPush === 'function') {\n try {\n params.autoPush = !!autoPush();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('AutoPush resulted in an error.'));\n }\n }\n else if (autoPush !== null) {\n params.autoPush = !!autoPush;\n }\n data = omit(data, 'autoPush');\n }\n\n var rememberDevice = data.rememberDevice;\n if (rememberDevice !== undefined) {\n if (typeof rememberDevice === 'function') {\n try {\n params.rememberDevice = !!rememberDevice();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('RememberDevice resulted in an error.'));\n }\n }\n else if (rememberDevice !== null) {\n params.rememberDevice = !!rememberDevice;\n }\n data = omit(data, 'rememberDevice');\n\n } else if (data.profile &&\n data.profile.updatePhone !== undefined) {\n if (data.profile.updatePhone) {\n params.updatePhone = true;\n }\n data.profile = omit(data.profile, 'updatePhone');\n }\n var href = link.href + toQueryString(params);\n return postToTransaction(sdk, href, data);\n };\n }\n }\n}\n\nfunction links2fns(sdk, res, obj, ref) {\n var fns = {} as AuthTransactionFunctions;\n for (var linkName in obj._links) {\n if (!Object.prototype.hasOwnProperty.call(obj._links, linkName)) {\n continue;\n }\n\n var link = obj._links[linkName];\n \n if (linkName === 'next') {\n linkName = link.name;\n }\n\n if (link.type) {\n fns[linkName] = link;\n continue;\n }\n\n switch (linkName) {\n // poll is only found at the transaction\n // level, so we don't need to pass the link\n case 'poll':\n fns.poll = getPollFn(sdk, res, ref);\n break;\n\n default:\n var fn = link2fn(sdk, res, obj, link, ref);\n if (fn) {\n fns[linkName] = fn;\n }\n }\n }\n return fns;\n}\n\n// eslint-disable-next-line complexity\nfunction flattenEmbedded(sdk, res, obj, ref) {\n obj = obj || res;\n obj = clone(obj);\n\n if (Array.isArray(obj)) {\n var objArr = [];\n for (var o = 0, ol = obj.length; o < ol; o++) {\n objArr.push(flattenEmbedded(sdk, res, obj[o], ref) as never);\n }\n return objArr;\n }\n\n var embedded = obj._embedded || {};\n\n for (var key in embedded) {\n if (!Object.prototype.hasOwnProperty.call(embedded, key)) {\n continue;\n }\n\n // Flatten any nested _embedded objects\n if (isObject(embedded[key]) || Array.isArray(embedded[key])) {\n embedded[key] = flattenEmbedded(sdk, res, embedded[key], ref);\n }\n }\n\n // Convert any links on the embedded object\n var fns = links2fns(sdk, res, obj, ref);\n Object.assign(embedded, fns);\n\n obj = omit(obj, '_embedded', '_links');\n Object.assign(obj, embedded);\n return obj;\n}\n"],"mappings":"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"}
|
package/cjs/tx/api.js
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
exports.transactionStatus = transactionStatus;
|
|
6
|
-
exports.resumeTransaction = resumeTransaction;
|
|
7
5
|
exports.introspectAuthn = introspectAuthn;
|
|
8
|
-
exports.transactionStep = transactionStep;
|
|
9
|
-
exports.transactionExists = transactionExists;
|
|
10
6
|
exports.postToTransaction = postToTransaction;
|
|
7
|
+
exports.resumeTransaction = resumeTransaction;
|
|
8
|
+
exports.transactionExists = transactionExists;
|
|
9
|
+
exports.transactionStatus = transactionStatus;
|
|
10
|
+
exports.transactionStep = transactionStep;
|
|
11
11
|
|
|
12
12
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
|
|
13
13
|
|
package/cjs/tx/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","names":["transactionStatus","sdk","args","getIssuerOrigin","withCredentials","resumeTransaction","stateToken","tx","exists","_get","STATE_TOKEN_KEY_NAME","reject","AuthSdkError","status","then","res","createTransaction","introspectAuthn","transactionStep","transactionExists","postToTransaction","url","options"],"sources":["../../../lib/tx/api.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\n/* eslint-disable complexity, max-statements */\nimport { post } from '../http';\nimport AuthSdkError from '../errors/AuthSdkError';\nimport { STATE_TOKEN_KEY_NAME } from '../constants';\nimport { addStateToken } from './util';\n\nexport function transactionStatus(sdk, args) {\n args = addStateToken(sdk, args);\n return post(sdk, sdk.getIssuerOrigin() + '/api/v1/authn', args, { withCredentials: true });\n}\n\nexport function resumeTransaction(sdk, args) {\n if (!args || !args.stateToken) {\n var stateToken = sdk.tx.exists._get(STATE_TOKEN_KEY_NAME);\n if (stateToken) {\n args = {\n stateToken: stateToken\n };\n } else {\n return Promise.reject(new AuthSdkError('No transaction to resume'));\n }\n }\n return sdk.tx.status(args)\n .then(function(res) {\n return sdk.tx.createTransaction(res);\n });\n}\n\nexport function introspectAuthn (sdk, args) {\n if (!args || !args.stateToken) {\n var stateToken = sdk.tx.exists._get(STATE_TOKEN_KEY_NAME);\n if (stateToken) {\n args = {\n stateToken: stateToken\n };\n } else {\n return Promise.reject(new AuthSdkError('No transaction to evaluate'));\n }\n }\n return transactionStep(sdk, args)\n .then(function (res) {\n return sdk.tx.createTransaction(res);\n });\n}\n\nexport function transactionStep(sdk, args) {\n args = addStateToken(sdk, args);\n // v1 pipeline introspect API\n return post(sdk, sdk.getIssuerOrigin() + '/api/v1/authn/introspect', args, { withCredentials: true });\n}\n\nexport function transactionExists(sdk) {\n // We have a cookie state token\n return !!sdk.tx.exists._get(STATE_TOKEN_KEY_NAME);\n}\n\nexport function postToTransaction(sdk, url, args, options?) {\n options = Object.assign({ withCredentials: true }, options);\n return post(sdk, url, args, options)\n .then(function(res) {\n return sdk.tx.createTransaction(res);\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;AAcA;;AACA;;AACA;;AACA;;AAjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAMO,SAASA,iBAAT,CAA2BC,GAA3B,EAAgCC,IAAhC,EAAsC;EAC3CA,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"api.js","names":["transactionStatus","sdk","args","addStateToken","post","getIssuerOrigin","withCredentials","resumeTransaction","stateToken","tx","exists","_get","STATE_TOKEN_KEY_NAME","reject","AuthSdkError","status","then","res","createTransaction","introspectAuthn","transactionStep","transactionExists","postToTransaction","url","options"],"sources":["../../../lib/tx/api.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\n/* eslint-disable complexity, max-statements */\nimport { post } from '../http';\nimport AuthSdkError from '../errors/AuthSdkError';\nimport { STATE_TOKEN_KEY_NAME } from '../constants';\nimport { addStateToken } from './util';\n\nexport function transactionStatus(sdk, args) {\n args = addStateToken(sdk, args);\n return post(sdk, sdk.getIssuerOrigin() + '/api/v1/authn', args, { withCredentials: true });\n}\n\nexport function resumeTransaction(sdk, args) {\n if (!args || !args.stateToken) {\n var stateToken = sdk.tx.exists._get(STATE_TOKEN_KEY_NAME);\n if (stateToken) {\n args = {\n stateToken: stateToken\n };\n } else {\n return Promise.reject(new AuthSdkError('No transaction to resume'));\n }\n }\n return sdk.tx.status(args)\n .then(function(res) {\n return sdk.tx.createTransaction(res);\n });\n}\n\nexport function introspectAuthn (sdk, args) {\n if (!args || !args.stateToken) {\n var stateToken = sdk.tx.exists._get(STATE_TOKEN_KEY_NAME);\n if (stateToken) {\n args = {\n stateToken: stateToken\n };\n } else {\n return Promise.reject(new AuthSdkError('No transaction to evaluate'));\n }\n }\n return transactionStep(sdk, args)\n .then(function (res) {\n return sdk.tx.createTransaction(res);\n });\n}\n\nexport function transactionStep(sdk, args) {\n args = addStateToken(sdk, args);\n // v1 pipeline introspect API\n return post(sdk, sdk.getIssuerOrigin() + '/api/v1/authn/introspect', args, { withCredentials: true });\n}\n\nexport function transactionExists(sdk) {\n // We have a cookie state token\n return !!sdk.tx.exists._get(STATE_TOKEN_KEY_NAME);\n}\n\nexport function postToTransaction(sdk, url, args, options?) {\n options = Object.assign({ withCredentials: true }, options);\n return post(sdk, url, args, options)\n .then(function(res) {\n return sdk.tx.createTransaction(res);\n });\n}\n"],"mappings":"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"}
|
package/cjs/tx/poll.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poll.js","names":["getPollFn","sdk","res","ref","options","delay","rememberDevice","autoPush","transactionCallBack","DEFAULT_POLLING_DELAY","pollLink","pollFn","opts","e","reject","AuthSdkError","undefined","href","saveAuthnState","withCredentials","isPolling","retryCount","recursivePoll","AuthPollStopError","then","pollRes","factorResult","tx","createTransaction","catch","err","xhr","status","delayLength","Math","pow"],"sources":["../../../lib/tx/poll.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 { post } from '../http';\nimport { isNumber, isObject, getLink, toQueryString, delay as delayFn } from '../util';\nimport { DEFAULT_POLLING_DELAY } from '../constants';\nimport AuthSdkError from '../errors/AuthSdkError';\nimport AuthPollStopError from '../errors/AuthPollStopError';\nimport { TransactionState } from './TransactionState';\nimport { getStateToken } from './util';\n\nexport interface PollOptions {\n delay?: number;\n rememberDevice?: boolean;\n autoPush?: boolean;\n transactionCallBack?: (TransactionState) => void;\n}\n\nexport function getPollFn(sdk, res: TransactionState, ref) {\n return function (options: PollOptions | number) {\n var delay;\n var rememberDevice;\n var autoPush;\n var transactionCallBack;\n\n if (isNumber(options)) {\n delay = options;\n } else if (isObject(options)) {\n options = options as PollOptions;\n delay = options.delay;\n rememberDevice = options.rememberDevice;\n autoPush = options.autoPush;\n transactionCallBack = options.transactionCallBack;\n }\n\n if (!delay && delay !== 0) {\n delay = DEFAULT_POLLING_DELAY;\n }\n\n // Get the poll function\n var pollLink = getLink(res, 'next', 'poll');\n // eslint-disable-next-line complexity\n function pollFn() {\n var opts = {} as PollOptions;\n if (typeof autoPush === 'function') {\n try {\n opts.autoPush = !!autoPush();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('AutoPush resulted in an error.'));\n }\n }\n else if (autoPush !== undefined && autoPush !== null) {\n opts.autoPush = !!autoPush;\n }\n if (typeof rememberDevice === 'function') {\n try {\n opts.rememberDevice = !!rememberDevice();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('RememberDevice resulted in an error.'));\n }\n }\n else if (rememberDevice !== undefined && rememberDevice !== null) {\n opts.rememberDevice = !!rememberDevice;\n }\n\n var href = pollLink.href + toQueryString(opts);\n return post(sdk, href, getStateToken(res), {\n saveAuthnState: false,\n withCredentials: true\n });\n }\n\n ref.isPolling = true;\n\n var retryCount = 0;\n var recursivePoll = function () {\n // If the poll was manually stopped during the delay\n if (!ref.isPolling) {\n return Promise.reject(new AuthPollStopError());\n }\n return pollFn()\n .then(function (pollRes) {\n // Reset our retry counter on success\n retryCount = 0;\n\n // If we're still waiting\n if (pollRes.factorResult && pollRes.factorResult === 'WAITING') {\n\n // If the poll was manually stopped while the pollFn was called\n if (!ref.isPolling) {\n throw new AuthPollStopError();\n }\n\n if (typeof transactionCallBack === 'function') {\n transactionCallBack(pollRes);\n }\n\n // Continue poll\n return delayFn(delay).then(recursivePoll);\n\n } else {\n // Any non-waiting result, even if polling was stopped\n // during a request, will return\n ref.isPolling = false;\n return sdk.tx.createTransaction(pollRes);\n }\n })\n .catch(function(err) {\n // Exponential backoff, up to 16 seconds\n if (err.xhr &&\n (err.xhr.status === 0 || err.xhr.status === 429) &&\n retryCount <= 4) {\n var delayLength = Math.pow(2, retryCount) * 1000;\n retryCount++;\n return delayFn(delayLength)\n .then(recursivePoll);\n }\n throw err;\n });\n };\n return recursivePoll()\n .catch(function(err) {\n ref.isPolling = false;\n throw err;\n });\n };\n}\n"],"mappings":";;;;;;;;AAaA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAiBO,SAASA,SAAT,CAAmBC,GAAnB,EAAwBC,GAAxB,EAA+CC,GAA/C,EAAoD;EACzD,OAAO,UAAUC,OAAV,EAAyC;IAC9C,IAAIC,KAAJ;IACA,IAAIC,cAAJ;IACA,IAAIC,QAAJ;IACA,IAAIC,mBAAJ;;IAEA,IAAI,
|
|
1
|
+
{"version":3,"file":"poll.js","names":["getPollFn","sdk","res","ref","options","delay","rememberDevice","autoPush","transactionCallBack","isNumber","isObject","DEFAULT_POLLING_DELAY","pollLink","getLink","pollFn","opts","e","reject","AuthSdkError","undefined","href","toQueryString","post","getStateToken","saveAuthnState","withCredentials","isPolling","retryCount","recursivePoll","AuthPollStopError","then","pollRes","factorResult","delayFn","tx","createTransaction","catch","err","xhr","status","delayLength","Math","pow"],"sources":["../../../lib/tx/poll.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 { post } from '../http';\nimport { isNumber, isObject, getLink, toQueryString, delay as delayFn } from '../util';\nimport { DEFAULT_POLLING_DELAY } from '../constants';\nimport AuthSdkError from '../errors/AuthSdkError';\nimport AuthPollStopError from '../errors/AuthPollStopError';\nimport { TransactionState } from './TransactionState';\nimport { getStateToken } from './util';\n\nexport interface PollOptions {\n delay?: number;\n rememberDevice?: boolean;\n autoPush?: boolean;\n transactionCallBack?: (TransactionState) => void;\n}\n\nexport function getPollFn(sdk, res: TransactionState, ref) {\n return function (options: PollOptions | number) {\n var delay;\n var rememberDevice;\n var autoPush;\n var transactionCallBack;\n\n if (isNumber(options)) {\n delay = options;\n } else if (isObject(options)) {\n options = options as PollOptions;\n delay = options.delay;\n rememberDevice = options.rememberDevice;\n autoPush = options.autoPush;\n transactionCallBack = options.transactionCallBack;\n }\n\n if (!delay && delay !== 0) {\n delay = DEFAULT_POLLING_DELAY;\n }\n\n // Get the poll function\n var pollLink = getLink(res, 'next', 'poll');\n // eslint-disable-next-line complexity\n function pollFn() {\n var opts = {} as PollOptions;\n if (typeof autoPush === 'function') {\n try {\n opts.autoPush = !!autoPush();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('AutoPush resulted in an error.'));\n }\n }\n else if (autoPush !== undefined && autoPush !== null) {\n opts.autoPush = !!autoPush;\n }\n if (typeof rememberDevice === 'function') {\n try {\n opts.rememberDevice = !!rememberDevice();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('RememberDevice resulted in an error.'));\n }\n }\n else if (rememberDevice !== undefined && rememberDevice !== null) {\n opts.rememberDevice = !!rememberDevice;\n }\n\n var href = pollLink.href + toQueryString(opts);\n return post(sdk, href, getStateToken(res), {\n saveAuthnState: false,\n withCredentials: true\n });\n }\n\n ref.isPolling = true;\n\n var retryCount = 0;\n var recursivePoll = function () {\n // If the poll was manually stopped during the delay\n if (!ref.isPolling) {\n return Promise.reject(new AuthPollStopError());\n }\n return pollFn()\n .then(function (pollRes) {\n // Reset our retry counter on success\n retryCount = 0;\n\n // If we're still waiting\n if (pollRes.factorResult && pollRes.factorResult === 'WAITING') {\n\n // If the poll was manually stopped while the pollFn was called\n if (!ref.isPolling) {\n throw new AuthPollStopError();\n }\n\n if (typeof transactionCallBack === 'function') {\n transactionCallBack(pollRes);\n }\n\n // Continue poll\n return delayFn(delay).then(recursivePoll);\n\n } else {\n // Any non-waiting result, even if polling was stopped\n // during a request, will return\n ref.isPolling = false;\n return sdk.tx.createTransaction(pollRes);\n }\n })\n .catch(function(err) {\n // Exponential backoff, up to 16 seconds\n if (err.xhr &&\n (err.xhr.status === 0 || err.xhr.status === 429) &&\n retryCount <= 4) {\n var delayLength = Math.pow(2, retryCount) * 1000;\n retryCount++;\n return delayFn(delayLength)\n .then(recursivePoll);\n }\n throw err;\n });\n };\n return recursivePoll()\n .catch(function(err) {\n ref.isPolling = false;\n throw err;\n });\n };\n}\n"],"mappings":"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"}
|
package/cjs/types/Storage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Storage.js","names":[],"sources":["../../../lib/types/Storage.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\nimport { TransactionMeta } from './Transaction';\nimport { Cookies, CookieOptions } from './Cookies';\nimport { RawIdxResponse } from '../idx/types/idx-js';\nimport { IntrospectOptions } from '.';\n\n// for V1 authn interface: tx.resume()\nexport interface TxStorage {\n get(name: string): string;\n set(name: string, value: string, expiresAt: string, options: CookieOptions): string;\n delete(name: string): string;\n}\n\nexport interface SimpleStorage {\n getItem(key: string): any;\n setItem(key: string, value: any): void;\n removeItem?: (key: string) => void;\n isSharedStorage?(): boolean;\n}\n\nexport interface StorageProvider extends SimpleStorage {\n setStorage(obj: any): void;\n getStorage(): any;\n clearStorage(key?: string): void;\n updateStorage(key: string, value: any): void;\n isSharedStorage(): boolean;\n}\n\n// will be removed in next version. OKTA-362589\nexport interface PKCEMeta {\n codeVerifier: string;\n redirectUri: string;\n}\n\n// will be removed in next version. OKTA-362589\nexport interface PKCEStorage extends StorageProvider {\n setStorage(obj: PKCEMeta): void;\n getStorage(): PKCEMeta;\n}\n\nexport interface TransactionStorage extends StorageProvider {\n setStorage(obj: TransactionMeta): void;\n getStorage(): TransactionMeta;\n}\n\nexport interface SavedIdxResponse extends\n Pick<IntrospectOptions,\n 'stateHandle' |\n 'interactionHandle'\n >\n{\n rawIdxResponse: RawIdxResponse;\n requestDidSucceed?: boolean;\n}\nexport interface IdxResponseStorage extends StorageProvider {\n setStorage(obj: SavedIdxResponse): void;\n getStorage(): SavedIdxResponse;\n}\n\nexport type StorageType = 'memory' | 'sessionStorage' | 'localStorage' | 'cookie' | 'custom' | 'auto';\nexport interface StorageOptions extends CookieOptions {\n storageType?: StorageType;\n storageTypes?: StorageType[];\n storageProvider?: SimpleStorage;\n storageKey?: string;\n useSeparateCookies?: boolean;\n}\n\nexport interface StorageUtil {\n storage: TxStorage;\n testStorageType(storageType: StorageType): boolean;\n getStorageByType(storageType: StorageType, options?: StorageOptions): SimpleStorage;\n findStorageType(types: StorageType[]): StorageType;\n}\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 // will be removed in next version. OKTA-362589\n getHttpCache(options?: StorageOptions): StorageProvider;\n getPKCEStorage(options?: StorageOptions): PKCEStorage;\n}\n\nexport interface NodeStorageUtil extends StorageUtil {\n // will be removed in next version. OKTA-362589\n getHttpCache(options?: StorageOptions): StorageProvider;\n getStorage(): SimpleStorage;\n}\n\n// type StorageBuilder = (storage: Storage | SimpleStorage, name: string) => StorageProvider;\n\nexport interface StorageManagerOptions {\n token?: StorageOptions;\n transaction?: StorageOptions;\n [propName: string]: StorageOptions | undefined; // custom sections are allowed\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Storage.js","names":[],"sources":["../../../lib/types/Storage.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\nimport { TransactionMeta } from './Transaction';\nimport { Cookies, CookieOptions } from './Cookies';\nimport { RawIdxResponse } from '../idx/types/idx-js';\nimport { IntrospectOptions } from '.';\n\n// for V1 authn interface: tx.resume()\nexport interface TxStorage {\n get(name: string): string;\n set(name: string, value: string, expiresAt: string, options: CookieOptions): string;\n delete(name: string): string;\n}\n\nexport interface SimpleStorage {\n getItem(key: string): any;\n setItem(key: string, value: any): void;\n removeItem?: (key: string) => void;\n // TODO: remove - https://oktainc.atlassian.net/browse/OKTA-529631\n isSharedStorage?(): boolean;\n}\n\nexport interface StorageProvider extends SimpleStorage {\n setStorage(obj: any): void;\n getStorage(): any;\n clearStorage(key?: string): void;\n updateStorage(key: string, value: any): void;\n // TODO: remove - https://oktainc.atlassian.net/browse/OKTA-529631\n isSharedStorage(): boolean;\n}\n\n// will be removed in next version. OKTA-362589\nexport interface PKCEMeta {\n codeVerifier: string;\n redirectUri: string;\n}\n\n// will be removed in next version. OKTA-362589\nexport interface PKCEStorage extends StorageProvider {\n setStorage(obj: PKCEMeta): void;\n getStorage(): PKCEMeta;\n}\n\nexport interface TransactionStorage extends StorageProvider {\n setStorage(obj: TransactionMeta): void;\n getStorage(): TransactionMeta;\n}\n\nexport interface SavedIdxResponse extends\n Pick<IntrospectOptions,\n 'stateHandle' |\n 'interactionHandle'\n >\n{\n rawIdxResponse: RawIdxResponse;\n requestDidSucceed?: boolean;\n}\nexport interface IdxResponseStorage extends StorageProvider {\n setStorage(obj: SavedIdxResponse): void;\n getStorage(): SavedIdxResponse;\n}\n\nexport type StorageType = 'memory' | 'sessionStorage' | 'localStorage' | 'cookie' | 'custom' | 'auto';\nexport interface StorageOptions extends CookieOptions {\n storageType?: StorageType;\n storageTypes?: StorageType[];\n storageProvider?: SimpleStorage;\n storageKey?: string;\n useSeparateCookies?: boolean;\n}\n\nexport interface StorageUtil {\n storage: TxStorage;\n testStorageType(storageType: StorageType): boolean;\n getStorageByType(storageType: StorageType, options?: StorageOptions): SimpleStorage;\n findStorageType(types: StorageType[]): StorageType;\n}\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 // will be removed in next version. OKTA-362589\n getHttpCache(options?: StorageOptions): StorageProvider;\n getPKCEStorage(options?: StorageOptions): PKCEStorage;\n}\n\nexport interface NodeStorageUtil extends StorageUtil {\n // will be removed in next version. OKTA-362589\n getHttpCache(options?: StorageOptions): StorageProvider;\n getStorage(): SimpleStorage;\n}\n\n// type StorageBuilder = (storage: Storage | SimpleStorage, name: string) => StorageProvider;\n\nexport interface StorageManagerOptions {\n token?: StorageOptions;\n transaction?: StorageOptions;\n [propName: string]: StorageOptions | undefined; // custom sections are allowed\n}\n"],"mappings":""}
|
package/cjs/types/Token.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
exports.isToken = isToken;
|
|
4
3
|
exports.isAccessToken = isAccessToken;
|
|
5
4
|
exports.isIDToken = isIDToken;
|
|
6
5
|
exports.isRefreshToken = isRefreshToken;
|
|
6
|
+
exports.isToken = isToken;
|
|
7
7
|
|
|
8
8
|
/*!
|
|
9
9
|
* Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
exports.EVENT_SET_STORAGE = exports.
|
|
3
|
+
exports.EVENT_SET_STORAGE = exports.EVENT_RENEWED = exports.EVENT_REMOVED = exports.EVENT_EXPIRED = exports.EVENT_ERROR = exports.EVENT_ADDED = void 0;
|
|
4
4
|
|
|
5
5
|
/* eslint-disable max-len */
|
|
6
6
|
const EVENT_EXPIRED = 'expired';
|
package/cjs/types/Transaction.js
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
+
exports.isCustomAuthTransactionMeta = isCustomAuthTransactionMeta;
|
|
6
|
+
exports.isIdxTransactionMeta = isIdxTransactionMeta;
|
|
5
7
|
exports.isOAuthTransactionMeta = isOAuthTransactionMeta;
|
|
6
8
|
exports.isPKCETransactionMeta = isPKCETransactionMeta;
|
|
7
|
-
exports.isIdxTransactionMeta = isIdxTransactionMeta;
|
|
8
|
-
exports.isCustomAuthTransactionMeta = isCustomAuthTransactionMeta;
|
|
9
9
|
exports.isTransactionMeta = isTransactionMeta;
|
|
10
10
|
|
|
11
11
|
var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/values"));
|