@okta/okta-auth-js 5.9.0 → 5.11.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.
Files changed (124) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +12 -2
  3. package/cjs/OktaAuth.js +25 -12
  4. package/cjs/OktaAuth.js.map +1 -1
  5. package/cjs/OktaUserAgent.js +2 -2
  6. package/cjs/OktaUserAgent.js.map +1 -1
  7. package/cjs/TokenManager.js +24 -2
  8. package/cjs/TokenManager.js.map +1 -1
  9. package/cjs/idx/authenticator/Authenticator.js +14 -0
  10. package/cjs/idx/authenticator/Authenticator.js.map +1 -0
  11. package/cjs/idx/authenticator/OktaPassword.js +31 -0
  12. package/cjs/idx/authenticator/OktaPassword.js.map +1 -0
  13. package/cjs/idx/authenticator/OktaVerifyTotp.js +17 -0
  14. package/cjs/idx/authenticator/OktaVerifyTotp.js.map +1 -0
  15. package/cjs/idx/authenticator/SecurityQuestionEnrollment.js +50 -0
  16. package/cjs/idx/authenticator/SecurityQuestionEnrollment.js.map +1 -0
  17. package/cjs/idx/authenticator/SecurityQuestionVerification.js +31 -0
  18. package/cjs/idx/authenticator/SecurityQuestionVerification.js.map +1 -0
  19. package/cjs/idx/authenticator/VerificationCodeAuthenticator.js +34 -0
  20. package/cjs/idx/authenticator/VerificationCodeAuthenticator.js.map +1 -0
  21. package/cjs/idx/authenticator/getAuthenticator.js +42 -0
  22. package/cjs/idx/authenticator/getAuthenticator.js.map +1 -0
  23. package/cjs/idx/authenticator/index.js +80 -0
  24. package/cjs/idx/authenticator/index.js.map +1 -0
  25. package/cjs/idx/cancel.js +5 -0
  26. package/cjs/idx/cancel.js.map +1 -1
  27. package/cjs/idx/flow/AuthenticationFlow.js +4 -1
  28. package/cjs/idx/flow/AuthenticationFlow.js.map +1 -1
  29. package/cjs/idx/flow/FlowSpecification.js +1 -11
  30. package/cjs/idx/flow/FlowSpecification.js.map +1 -1
  31. package/cjs/idx/flow/RegistrationFlow.js +1 -0
  32. package/cjs/idx/flow/RegistrationFlow.js.map +1 -1
  33. package/cjs/idx/flow/index.js +0 -52
  34. package/cjs/idx/flow/index.js.map +1 -1
  35. package/cjs/idx/index.js +13 -0
  36. package/cjs/idx/index.js.map +1 -1
  37. package/cjs/idx/interact.js +8 -2
  38. package/cjs/idx/interact.js.map +1 -1
  39. package/cjs/idx/poll.js +59 -0
  40. package/cjs/idx/poll.js.map +1 -0
  41. package/cjs/idx/proceed.js.map +1 -1
  42. package/cjs/idx/register.js +14 -3
  43. package/cjs/idx/register.js.map +1 -1
  44. package/cjs/idx/remediate.js +37 -90
  45. package/cjs/idx/remediate.js.map +1 -1
  46. package/cjs/idx/remediators/AuthenticatorEnrollmentData.js +9 -12
  47. package/cjs/idx/remediators/AuthenticatorEnrollmentData.js.map +1 -1
  48. package/cjs/idx/remediators/AuthenticatorVerificationData.js +6 -9
  49. package/cjs/idx/remediators/AuthenticatorVerificationData.js.map +1 -1
  50. package/cjs/idx/remediators/Base/AuthenticatorData.js +43 -32
  51. package/cjs/idx/remediators/Base/AuthenticatorData.js.map +1 -1
  52. package/cjs/idx/remediators/Base/Remediator.js +51 -20
  53. package/cjs/idx/remediators/Base/Remediator.js.map +1 -1
  54. package/cjs/idx/remediators/Base/SelectAuthenticator.js +16 -16
  55. package/cjs/idx/remediators/Base/SelectAuthenticator.js.map +1 -1
  56. package/cjs/idx/remediators/Base/VerifyAuthenticator.js +8 -28
  57. package/cjs/idx/remediators/Base/VerifyAuthenticator.js.map +1 -1
  58. package/{lib/idx/flow/FlowMonitor.d.ts → cjs/idx/remediators/ChallengePoll.js} +16 -13
  59. package/cjs/idx/remediators/ChallengePoll.js.map +1 -0
  60. package/cjs/idx/remediators/EnrollPoll.js +56 -0
  61. package/cjs/idx/remediators/EnrollPoll.js.map +1 -0
  62. package/cjs/idx/remediators/Identify.js +2 -35
  63. package/cjs/idx/remediators/Identify.js.map +1 -1
  64. package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js +23 -2
  65. package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js.map +1 -1
  66. package/cjs/idx/remediators/Skip.js +7 -0
  67. package/cjs/idx/remediators/Skip.js.map +1 -1
  68. package/cjs/idx/remediators/index.js +26 -0
  69. package/cjs/idx/remediators/index.js.map +1 -1
  70. package/cjs/idx/run.js +0 -8
  71. package/cjs/idx/run.js.map +1 -1
  72. package/cjs/idx/types/idx-js.js.map +1 -1
  73. package/cjs/idx/types/index.js +2 -1
  74. package/cjs/idx/types/index.js.map +1 -1
  75. package/cjs/types/Token.js.map +1 -1
  76. package/dist/okta-auth-js.min.js +1 -1
  77. package/dist/okta-auth-js.min.js.map +1 -1
  78. package/dist/okta-auth-js.umd.js +1 -1
  79. package/dist/okta-auth-js.umd.js.map +1 -1
  80. package/esm/index.js +1410 -1197
  81. package/esm/index.js.map +1 -1
  82. package/lib/TokenManager.d.ts +2 -0
  83. package/lib/idx/authenticator/Authenticator.d.ts +12 -0
  84. package/lib/idx/authenticator/OktaPassword.d.ts +11 -0
  85. package/lib/idx/authenticator/OktaVerifyTotp.d.ts +9 -0
  86. package/lib/idx/authenticator/SecurityQuestionEnrollment.d.ts +28 -0
  87. package/lib/idx/authenticator/SecurityQuestionVerification.d.ts +14 -0
  88. package/lib/idx/authenticator/VerificationCodeAuthenticator.d.ts +10 -0
  89. package/lib/idx/authenticator/getAuthenticator.d.ts +3 -0
  90. package/lib/idx/authenticator/index.d.ts +6 -0
  91. package/lib/idx/flow/FlowSpecification.d.ts +0 -2
  92. package/lib/idx/flow/index.d.ts +0 -4
  93. package/lib/idx/index.d.ts +1 -0
  94. package/lib/idx/interact.d.ts +1 -0
  95. package/lib/idx/{flow/AuthenticationFlowMonitor.d.ts → poll.d.ts} +3 -5
  96. package/lib/idx/proceed.d.ts +2 -1
  97. package/lib/idx/register.d.ts +1 -1
  98. package/lib/idx/remediators/AuthenticatorEnrollmentData.d.ts +9 -5
  99. package/lib/idx/remediators/AuthenticatorVerificationData.d.ts +0 -1
  100. package/lib/idx/remediators/Base/AuthenticatorData.d.ts +8 -3
  101. package/lib/idx/remediators/Base/Remediator.d.ts +9 -6
  102. package/lib/idx/remediators/Base/SelectAuthenticator.d.ts +5 -4
  103. package/lib/idx/remediators/Base/VerifyAuthenticator.d.ts +8 -4
  104. package/lib/idx/{flow/RegistrationFlowMonitor.d.ts → remediators/ChallengePoll.d.ts} +3 -3
  105. package/lib/idx/{flow/PasswordRecoveryFlowMonitor.d.ts → remediators/EnrollPoll.d.ts} +12 -4
  106. package/lib/idx/remediators/Identify.d.ts +0 -3
  107. package/lib/idx/remediators/SelectAuthenticatorAuthenticate.d.ts +6 -2
  108. package/lib/idx/remediators/Skip.d.ts +3 -0
  109. package/lib/idx/remediators/index.d.ts +2 -0
  110. package/lib/idx/run.d.ts +1 -2
  111. package/lib/idx/types/idx-js.d.ts +49 -1
  112. package/lib/idx/types/index.d.ts +8 -2
  113. package/lib/types/OktaAuthOptions.d.ts +1 -0
  114. package/lib/types/Token.d.ts +1 -0
  115. package/lib/types/api.d.ts +4 -2
  116. package/package.json +6 -9
  117. package/cjs/idx/flow/AuthenticationFlowMonitor.js +0 -45
  118. package/cjs/idx/flow/AuthenticationFlowMonitor.js.map +0 -1
  119. package/cjs/idx/flow/FlowMonitor.js +0 -69
  120. package/cjs/idx/flow/FlowMonitor.js.map +0 -1
  121. package/cjs/idx/flow/PasswordRecoveryFlowMonitor.js +0 -55
  122. package/cjs/idx/flow/PasswordRecoveryFlowMonitor.js.map +0 -1
  123. package/cjs/idx/flow/RegistrationFlowMonitor.js +0 -35
  124. package/cjs/idx/flow/RegistrationFlowMonitor.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../lib/TokenManager.ts"],"names":["DEFAULT_OPTIONS","autoRenew","autoRemove","storage","undefined","expireEarlySeconds","storageKey","TOKEN_STORAGE_NAME","syncStorage","_storageEventDelay","EVENT_EXPIRED","EVENT_RENEWED","EVENT_ADDED","EVENT_REMOVED","EVENT_ERROR","defaultState","expireTimeouts","renewPromise","TokenManager","constructor","sdk","options","emitter","AuthSdkError","Object","assign","storageOptions","secure","storageProvider","storageType","storageManager","getTokenStorage","clock","SdkClock","create","state","on","bind","off","start","service","stop","TokenService","getOptions","getExpireTime","token","expireTime","expiresAt","hasExpired","now","emitExpired","key","emit","emitRenewed","freshToken","oldToken","emitAdded","emitRemoved","emitError","error","emitEventsForCrossTabsStorageUpdate","newValue","oldValue","oldTokens","getTokensFromStorageValue","newTokens","keys","forEach","newToken","JSON","stringify","clearExpireEventTimeout","clearTimeout","clearExpireEventTimeoutAll","prototype","hasOwnProperty","call","setExpireEventTimeout","expireEventWait","Math","max","expireEventTimeout","setTimeout","setExpireEventTimeoutAll","tokenStorage","getStorage","resetExpireEventTimeoutAll","add","setStorage","getSync","get","getTokensSync","tokens","accessToken","idToken","refreshToken","getTokens","getStorageKeyByType","type","filter","getTokenType","setTokens","accessTokenCb","idTokenCb","refreshTokenCb","handleTokenCallback","handleAdded","handleRenewed","handleRemoved","types","existingTokens","reduce","existingToken","remove","removedToken","renewToken","renew","validateToken","e","Promise","reject","renewTokens","then","tokenType","catch","err","name","tokenKey","finally","clear","clearStorage","value","parse","updateRefreshToken","REFRESH_TOKEN_STORAGE_KEY"],"mappings":"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","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 { removeNils, clone } from './util';\nimport { AuthSdkError } from './errors';\nimport { isRefreshTokenError, validateToken } from './oidc/util';\nimport { isLocalhost, isIE11OrLess } from './features';\nimport { TOKEN_STORAGE_NAME } from './constants';\nimport SdkClock from './clock';\nimport {\n EventEmitter,\n Token, \n Tokens, \n TokenType, \n TokenManagerOptions, \n isIDToken, \n isAccessToken,\n isRefreshToken,\n StorageOptions,\n StorageType,\n OktaAuth,\n StorageProvider,\n TokenManagerErrorEventHandler,\n TokenManagerEventHandler,\n TokenManagerInterface,\n RefreshToken\n} from './types';\nimport { REFRESH_TOKEN_STORAGE_KEY } from './constants';\nimport { TokenService } from './services/TokenService';\n\nconst DEFAULT_OPTIONS = {\n autoRenew: true,\n autoRemove: true,\n storage: undefined, // will use value from storageManager config\n expireEarlySeconds: 30,\n storageKey: TOKEN_STORAGE_NAME,\n syncStorage: true,\n _storageEventDelay: 0\n};\nexport const EVENT_EXPIRED = 'expired';\nexport const EVENT_RENEWED = 'renewed';\nexport const EVENT_ADDED = 'added';\nexport const EVENT_REMOVED = 'removed';\nexport const EVENT_ERROR = 'error';\n\ninterface TokenManagerState {\n expireTimeouts: Record<string, unknown>;\n renewPromise: Promise<Token>;\n}\nfunction defaultState(): TokenManagerState {\n return {\n expireTimeouts: {},\n renewPromise: null\n };\n}\nexport class TokenManager implements TokenManagerInterface {\n private sdk: OktaAuth;\n private clock: SdkClock;\n private emitter: EventEmitter;\n private storage: StorageProvider;\n private state: TokenManagerState;\n private options: TokenManagerOptions;\n private service: TokenService;\n\n on: (event: string, handler: TokenManagerErrorEventHandler | TokenManagerEventHandler, context?: object) => void;\n off: (event: string, handler?: TokenManagerErrorEventHandler | TokenManagerEventHandler) => void;\n\n constructor(sdk: OktaAuth, options: TokenManagerOptions = {}) {\n this.sdk = sdk;\n this.emitter = (sdk as any).emitter;\n if (!this.emitter) {\n throw new AuthSdkError('Emitter should be initialized before TokenManager');\n }\n\n options = Object.assign({}, DEFAULT_OPTIONS, removeNils(options));\n if (isIE11OrLess()) {\n options._storageEventDelay = options._storageEventDelay || 1000;\n }\n if (!isLocalhost()) {\n options.expireEarlySeconds = DEFAULT_OPTIONS.expireEarlySeconds;\n }\n this.options = options;\n\n const storageOptions: StorageOptions = removeNils({\n storageKey: options.storageKey,\n secure: options.secure,\n });\n if (typeof options.storage === 'object') {\n // A custom storage provider must implement getItem(key) and setItem(key, val)\n storageOptions.storageProvider = options.storage;\n } else if (options.storage) {\n storageOptions.storageType = options.storage as StorageType;\n }\n\n this.storage = sdk.storageManager.getTokenStorage(storageOptions);\n this.clock = SdkClock.create(/* sdk, options */);\n this.state = defaultState();\n\n this.on = this.emitter.on.bind(this.emitter);\n this.off = this.emitter.off.bind(this.emitter);\n }\n\n start() {\n if (this.service) {\n this.stop();\n }\n this.service = new TokenService(this, this.getOptions());\n this.service.start();\n }\n \n stop() {\n if (this.service) {\n this.service.stop();\n this.service = null;\n }\n }\n\n getOptions(): TokenManagerOptions {\n return clone(this.options);\n }\n \n getExpireTime(token) {\n var expireTime = token.expiresAt - this.options.expireEarlySeconds;\n return expireTime;\n }\n \n hasExpired(token) {\n var expireTime = this.getExpireTime(token);\n return expireTime <= this.clock.now();\n }\n \n emitExpired(key, token) {\n this.emitter.emit(EVENT_EXPIRED, key, token);\n }\n \n emitRenewed(key, freshToken, oldToken) {\n this.emitter.emit(EVENT_RENEWED, key, freshToken, oldToken);\n }\n \n emitAdded(key, token) {\n this.emitter.emit(EVENT_ADDED, key, token);\n }\n \n emitRemoved(key, token?) {\n this.emitter.emit(EVENT_REMOVED, key, token);\n }\n \n emitError(error) {\n this.emitter.emit(EVENT_ERROR, error);\n }\n \n emitEventsForCrossTabsStorageUpdate(newValue, oldValue) {\n const oldTokens = this.getTokensFromStorageValue(oldValue);\n const newTokens = this.getTokensFromStorageValue(newValue);\n Object.keys(newTokens).forEach(key => {\n const oldToken = oldTokens[key];\n const newToken = newTokens[key];\n if (JSON.stringify(oldToken) !== JSON.stringify(newToken)) {\n this.emitAdded(key, newToken);\n }\n });\n Object.keys(oldTokens).forEach(key => {\n const oldToken = oldTokens[key];\n const newToken = newTokens[key];\n if (!newToken) {\n this.emitRemoved(key, oldToken);\n }\n });\n }\n \n clearExpireEventTimeout(key) {\n clearTimeout(this.state.expireTimeouts[key] as any);\n delete this.state.expireTimeouts[key];\n \n // Remove the renew promise (if it exists)\n this.state.renewPromise = null;\n }\n \n clearExpireEventTimeoutAll() {\n var expireTimeouts = this.state.expireTimeouts;\n for (var key in expireTimeouts) {\n if (!Object.prototype.hasOwnProperty.call(expireTimeouts, key)) {\n continue;\n }\n this.clearExpireEventTimeout(key);\n }\n }\n \n setExpireEventTimeout(key, token) {\n if (isRefreshToken(token)) {\n return;\n }\n\n var expireTime = this.getExpireTime(token);\n var expireEventWait = Math.max(expireTime - this.clock.now(), 0) * 1000;\n \n // Clear any existing timeout\n this.clearExpireEventTimeout(key);\n \n var expireEventTimeout = setTimeout(() => {\n this.emitExpired(key, token);\n }, expireEventWait);\n \n // Add a new timeout\n this.state.expireTimeouts[key] = expireEventTimeout;\n }\n \n setExpireEventTimeoutAll() {\n var tokenStorage = this.storage.getStorage();\n for(var key in tokenStorage) {\n if (!Object.prototype.hasOwnProperty.call(tokenStorage, key)) {\n continue;\n }\n var token = tokenStorage[key];\n this.setExpireEventTimeout(key, token);\n }\n }\n \n // reset timeouts to setup autoRenew for tokens from other document context (tabs)\n resetExpireEventTimeoutAll() {\n this.clearExpireEventTimeoutAll();\n this.setExpireEventTimeoutAll();\n }\n \n add(key, token: Token) {\n var tokenStorage = this.storage.getStorage();\n validateToken(token);\n tokenStorage[key] = token;\n this.storage.setStorage(tokenStorage);\n this.emitAdded(key, token);\n this.setExpireEventTimeout(key, token);\n }\n \n getSync(key) {\n var tokenStorage = this.storage.getStorage();\n return tokenStorage[key];\n }\n \n async get(key) {\n return this.getSync(key);\n }\n \n getTokensSync(): Tokens {\n const tokens = {} as Tokens;\n const tokenStorage = this.storage.getStorage();\n Object.keys(tokenStorage).forEach(key => {\n const token = tokenStorage[key];\n if (isAccessToken(token)) {\n tokens.accessToken = token;\n } else if (isIDToken(token)) {\n tokens.idToken = token;\n } else if (isRefreshToken(token)) { \n tokens.refreshToken = token;\n }\n });\n return tokens;\n }\n \n async getTokens(): Promise<Tokens> {\n return this.getTokensSync();\n }\n\n getStorageKeyByType(type: TokenType): string {\n const tokenStorage = this.storage.getStorage();\n const key = Object.keys(tokenStorage).filter(key => {\n const token = tokenStorage[key];\n return (isAccessToken(token) && type === 'accessToken') \n || (isIDToken(token) && type === 'idToken')\n || (isRefreshToken(token) && type === 'refreshToken');\n })[0];\n return key;\n }\n\n private getTokenType(token: Token): TokenType {\n if (isAccessToken(token)) {\n return 'accessToken';\n }\n if (isIDToken(token)) {\n return 'idToken';\n }\n if(isRefreshToken(token)) {\n return 'refreshToken';\n }\n throw new AuthSdkError('Unknown token type');\n }\n\n setTokens(\n tokens: Tokens,\n // TODO: callbacks can be removed in the next major version OKTA-407224\n accessTokenCb?: Function, \n idTokenCb?: Function,\n refreshTokenCb?: Function\n ): void {\n const handleTokenCallback = (key, token) => {\n const type = this.getTokenType(token);\n if (type === 'accessToken') {\n accessTokenCb && accessTokenCb(key, token);\n } else if (type === 'idToken') {\n idTokenCb && idTokenCb(key, token);\n } else if (type === 'refreshToken') {\n refreshTokenCb && refreshTokenCb(key, token);\n }\n };\n const handleAdded = (key, token) => {\n this.emitAdded(key, token);\n this.setExpireEventTimeout(key, token);\n handleTokenCallback(key, token);\n };\n const handleRenewed = (key, token, oldToken) => {\n this.emitRenewed(key, token, oldToken);\n this.clearExpireEventTimeout(key);\n this.setExpireEventTimeout(key, token);\n handleTokenCallback(key, token);\n };\n const handleRemoved = (key, token) => {\n this.clearExpireEventTimeout(key);\n this.emitRemoved(key, token);\n handleTokenCallback(key, token);\n };\n \n const types: TokenType[] = ['idToken', 'accessToken', 'refreshToken'];\n const existingTokens = this.getTokensSync();\n\n // valid tokens\n types.forEach((type) => {\n const token = tokens[type];\n if (token) {\n validateToken(token, type);\n }\n });\n \n // add token to storage\n const storage = types.reduce((storage, type) => {\n const token = tokens[type];\n if (token) {\n const storageKey = this.getStorageKeyByType(type) || type;\n storage[storageKey] = token;\n }\n return storage;\n }, {});\n this.storage.setStorage(storage);\n \n // emit event and start expiration timer\n types.forEach(type => {\n const newToken = tokens[type];\n const existingToken = existingTokens[type];\n const storageKey = this.getStorageKeyByType(type) || type;\n if (newToken && existingToken) { // renew\n // call handleRemoved first, since it clears timers\n handleRemoved(storageKey, existingToken);\n handleAdded(storageKey, newToken);\n handleRenewed(storageKey, newToken, existingToken);\n } else if (newToken) { // add\n handleAdded(storageKey, newToken);\n } else if (existingToken) { //remove\n handleRemoved(storageKey, existingToken);\n }\n });\n }\n \n remove(key) {\n // Clear any listener for this token\n this.clearExpireEventTimeout(key);\n \n var tokenStorage = this.storage.getStorage();\n var removedToken = tokenStorage[key];\n delete tokenStorage[key];\n this.storage.setStorage(tokenStorage);\n \n this.emitRemoved(key, removedToken);\n }\n \n // TODO: this methods is redundant and can be removed in the next major version OKTA-407224\n async renewToken(token) {\n return this.sdk.token.renew(token);\n }\n // TODO: this methods is redundant and can be removed in the next major version OKTA-407224\n validateToken(token: Token) {\n return validateToken(token);\n }\n\n // TODO: renew method should take no param, change in the next major version OKTA-407224\n renew(key): Promise<Token> {\n // Multiple callers may receive the same promise. They will all resolve or reject from the same request.\n if (this.state.renewPromise) {\n return this.state.renewPromise;\n }\n \n try {\n var token = this.getSync(key);\n if (!token) {\n throw new AuthSdkError('The tokenManager has no token for the key: ' + key);\n }\n } catch (e) {\n return Promise.reject(e);\n }\n \n // Remove existing autoRenew timeout\n this.clearExpireEventTimeout(key);\n \n // A refresh token means a replace instead of renewal\n // Store the renew promise state, to avoid renewing again\n this.state.renewPromise = this.sdk.token.renewTokens()\n .then(tokens => {\n this.setTokens(tokens);\n\n // resolve token based on the key\n const tokenType = this.getTokenType(token);\n return tokens[tokenType];\n })\n .catch(err => {\n // If renew fails, remove token and emit error\n if (isRefreshTokenError(err) || err.name === 'OAuthError' || err.name === 'AuthSdkError') {\n // remove token from storage\n this.remove(key);\n \n err.tokenKey = key;\n this.emitError(err);\n }\n throw err;\n })\n .finally(() => {\n // Remove existing promise key\n this.state.renewPromise = null;\n });\n \n return this.state.renewPromise;\n }\n \n clear() {\n this.clearExpireEventTimeoutAll();\n this.storage.clearStorage();\n }\n \n getTokensFromStorageValue(value) {\n let tokens;\n try {\n tokens = JSON.parse(value) || {};\n } catch (e) {\n tokens = {};\n }\n return tokens;\n }\n\n updateRefreshToken(token: RefreshToken) {\n const key = this.getStorageKeyByType('refreshToken') || REFRESH_TOKEN_STORAGE_KEY;\n\n // do not emit any event\n var tokenStorage = this.storage.getStorage();\n validateToken(token);\n tokenStorage[key] = token;\n this.storage.setStorage(tokenStorage);\n }\n \n}\n"],"file":"TokenManager.js"}
1
+ {"version":3,"sources":["../../lib/TokenManager.ts"],"names":["DEFAULT_OPTIONS","autoRenew","autoRemove","clearPendingRemoveTokens","storage","undefined","expireEarlySeconds","storageKey","TOKEN_STORAGE_NAME","syncStorage","_storageEventDelay","EVENT_EXPIRED","EVENT_RENEWED","EVENT_ADDED","EVENT_REMOVED","EVENT_ERROR","defaultState","expireTimeouts","renewPromise","TokenManager","constructor","sdk","options","emitter","AuthSdkError","Object","assign","storageOptions","secure","storageProvider","storageType","storageManager","getTokenStorage","clock","SdkClock","create","state","on","bind","off","start","service","stop","TokenService","getOptions","getExpireTime","token","expireTime","expiresAt","hasExpired","now","emitExpired","key","emit","emitRenewed","freshToken","oldToken","emitAdded","emitRemoved","emitError","error","emitEventsForCrossTabsStorageUpdate","newValue","oldValue","oldTokens","getTokensFromStorageValue","newTokens","keys","forEach","newToken","JSON","stringify","clearExpireEventTimeout","clearTimeout","clearExpireEventTimeoutAll","prototype","hasOwnProperty","call","setExpireEventTimeout","expireEventWait","Math","max","expireEventTimeout","setTimeout","setExpireEventTimeoutAll","tokenStorage","getStorage","resetExpireEventTimeoutAll","add","setStorage","getSync","get","getTokensSync","tokens","accessToken","idToken","refreshToken","getTokens","getStorageKeyByType","type","filter","getTokenType","setTokens","accessTokenCb","idTokenCb","refreshTokenCb","handleTokenCallback","handleAdded","handleRenewed","handleRemoved","types","existingTokens","reduce","existingToken","remove","removedToken","renewToken","renew","validateToken","e","Promise","reject","renewTokens","then","tokenType","catch","err","name","tokenKey","finally","clear","clearStorage","pendingRemove","value","parse","updateRefreshToken","REFRESH_TOKEN_STORAGE_KEY","addPendingRemoveFlags"],"mappings":"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","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 { removeNils, clone } from './util';\nimport { AuthSdkError } from './errors';\nimport { isRefreshTokenError, validateToken } from './oidc/util';\nimport { isLocalhost, isIE11OrLess } from './features';\nimport { TOKEN_STORAGE_NAME } from './constants';\nimport SdkClock from './clock';\nimport {\n EventEmitter,\n Token, \n Tokens, \n TokenType, \n TokenManagerOptions, \n isIDToken, \n isAccessToken,\n isRefreshToken,\n StorageOptions,\n StorageType,\n OktaAuth,\n StorageProvider,\n TokenManagerErrorEventHandler,\n TokenManagerEventHandler,\n TokenManagerInterface,\n RefreshToken\n} from './types';\nimport { REFRESH_TOKEN_STORAGE_KEY } from './constants';\nimport { TokenService } from './services/TokenService';\n\nconst DEFAULT_OPTIONS = {\n autoRenew: true,\n autoRemove: true,\n clearPendingRemoveTokens: true,\n storage: undefined, // will use value from storageManager config\n expireEarlySeconds: 30,\n storageKey: TOKEN_STORAGE_NAME,\n syncStorage: true,\n _storageEventDelay: 0\n};\nexport const EVENT_EXPIRED = 'expired';\nexport const EVENT_RENEWED = 'renewed';\nexport const EVENT_ADDED = 'added';\nexport const EVENT_REMOVED = 'removed';\nexport const EVENT_ERROR = 'error';\n\ninterface TokenManagerState {\n expireTimeouts: Record<string, unknown>;\n renewPromise: Promise<Token>;\n}\nfunction defaultState(): TokenManagerState {\n return {\n expireTimeouts: {},\n renewPromise: null\n };\n}\nexport class TokenManager implements TokenManagerInterface {\n private sdk: OktaAuth;\n private clock: SdkClock;\n private emitter: EventEmitter;\n private storage: StorageProvider;\n private state: TokenManagerState;\n private options: TokenManagerOptions;\n private service: TokenService;\n\n on: (event: string, handler: TokenManagerErrorEventHandler | TokenManagerEventHandler, context?: object) => void;\n off: (event: string, handler?: TokenManagerErrorEventHandler | TokenManagerEventHandler) => void;\n\n constructor(sdk: OktaAuth, options: TokenManagerOptions = {}) {\n this.sdk = sdk;\n this.emitter = (sdk as any).emitter;\n if (!this.emitter) {\n throw new AuthSdkError('Emitter should be initialized before TokenManager');\n }\n\n options = Object.assign({}, DEFAULT_OPTIONS, removeNils(options));\n if (isIE11OrLess()) {\n options._storageEventDelay = options._storageEventDelay || 1000;\n }\n if (!isLocalhost()) {\n options.expireEarlySeconds = DEFAULT_OPTIONS.expireEarlySeconds;\n }\n this.options = options;\n\n const storageOptions: StorageOptions = removeNils({\n storageKey: options.storageKey,\n secure: options.secure,\n });\n if (typeof options.storage === 'object') {\n // A custom storage provider must implement getItem(key) and setItem(key, val)\n storageOptions.storageProvider = options.storage;\n } else if (options.storage) {\n storageOptions.storageType = options.storage as StorageType;\n }\n\n this.storage = sdk.storageManager.getTokenStorage(storageOptions);\n this.clock = SdkClock.create(/* sdk, options */);\n this.state = defaultState();\n\n this.on = this.emitter.on.bind(this.emitter);\n this.off = this.emitter.off.bind(this.emitter);\n }\n\n start() {\n if (this.service) {\n this.stop();\n }\n if (this.options.clearPendingRemoveTokens) {\n this.clearPendingRemoveTokens();\n }\n this.service = new TokenService(this, this.getOptions());\n this.service.start();\n }\n \n stop() {\n if (this.service) {\n this.service.stop();\n this.service = null;\n }\n }\n\n getOptions(): TokenManagerOptions {\n return clone(this.options);\n }\n \n getExpireTime(token) {\n var expireTime = token.expiresAt - this.options.expireEarlySeconds;\n return expireTime;\n }\n \n hasExpired(token) {\n var expireTime = this.getExpireTime(token);\n return expireTime <= this.clock.now();\n }\n \n emitExpired(key, token) {\n this.emitter.emit(EVENT_EXPIRED, key, token);\n }\n \n emitRenewed(key, freshToken, oldToken) {\n this.emitter.emit(EVENT_RENEWED, key, freshToken, oldToken);\n }\n \n emitAdded(key, token) {\n this.emitter.emit(EVENT_ADDED, key, token);\n }\n \n emitRemoved(key, token?) {\n this.emitter.emit(EVENT_REMOVED, key, token);\n }\n \n emitError(error) {\n this.emitter.emit(EVENT_ERROR, error);\n }\n \n emitEventsForCrossTabsStorageUpdate(newValue, oldValue) {\n const oldTokens = this.getTokensFromStorageValue(oldValue);\n const newTokens = this.getTokensFromStorageValue(newValue);\n Object.keys(newTokens).forEach(key => {\n const oldToken = oldTokens[key];\n const newToken = newTokens[key];\n if (JSON.stringify(oldToken) !== JSON.stringify(newToken)) {\n this.emitAdded(key, newToken);\n }\n });\n Object.keys(oldTokens).forEach(key => {\n const oldToken = oldTokens[key];\n const newToken = newTokens[key];\n if (!newToken) {\n this.emitRemoved(key, oldToken);\n }\n });\n }\n \n clearExpireEventTimeout(key) {\n clearTimeout(this.state.expireTimeouts[key] as any);\n delete this.state.expireTimeouts[key];\n \n // Remove the renew promise (if it exists)\n this.state.renewPromise = null;\n }\n \n clearExpireEventTimeoutAll() {\n var expireTimeouts = this.state.expireTimeouts;\n for (var key in expireTimeouts) {\n if (!Object.prototype.hasOwnProperty.call(expireTimeouts, key)) {\n continue;\n }\n this.clearExpireEventTimeout(key);\n }\n }\n \n setExpireEventTimeout(key, token) {\n if (isRefreshToken(token)) {\n return;\n }\n\n var expireTime = this.getExpireTime(token);\n var expireEventWait = Math.max(expireTime - this.clock.now(), 0) * 1000;\n \n // Clear any existing timeout\n this.clearExpireEventTimeout(key);\n \n var expireEventTimeout = setTimeout(() => {\n this.emitExpired(key, token);\n }, expireEventWait);\n \n // Add a new timeout\n this.state.expireTimeouts[key] = expireEventTimeout;\n }\n \n setExpireEventTimeoutAll() {\n var tokenStorage = this.storage.getStorage();\n for(var key in tokenStorage) {\n if (!Object.prototype.hasOwnProperty.call(tokenStorage, key)) {\n continue;\n }\n var token = tokenStorage[key];\n this.setExpireEventTimeout(key, token);\n }\n }\n \n // reset timeouts to setup autoRenew for tokens from other document context (tabs)\n resetExpireEventTimeoutAll() {\n this.clearExpireEventTimeoutAll();\n this.setExpireEventTimeoutAll();\n }\n \n add(key, token: Token) {\n var tokenStorage = this.storage.getStorage();\n validateToken(token);\n tokenStorage[key] = token;\n this.storage.setStorage(tokenStorage);\n this.emitAdded(key, token);\n this.setExpireEventTimeout(key, token);\n }\n \n getSync(key) {\n var tokenStorage = this.storage.getStorage();\n return tokenStorage[key];\n }\n \n async get(key) {\n return this.getSync(key);\n }\n \n getTokensSync(): Tokens {\n const tokens = {} as Tokens;\n const tokenStorage = this.storage.getStorage();\n Object.keys(tokenStorage).forEach(key => {\n const token = tokenStorage[key];\n if (isAccessToken(token)) {\n tokens.accessToken = token;\n } else if (isIDToken(token)) {\n tokens.idToken = token;\n } else if (isRefreshToken(token)) { \n tokens.refreshToken = token;\n }\n });\n return tokens;\n }\n \n async getTokens(): Promise<Tokens> {\n return this.getTokensSync();\n }\n\n getStorageKeyByType(type: TokenType): string {\n const tokenStorage = this.storage.getStorage();\n const key = Object.keys(tokenStorage).filter(key => {\n const token = tokenStorage[key];\n return (isAccessToken(token) && type === 'accessToken') \n || (isIDToken(token) && type === 'idToken')\n || (isRefreshToken(token) && type === 'refreshToken');\n })[0];\n return key;\n }\n\n private getTokenType(token: Token): TokenType {\n if (isAccessToken(token)) {\n return 'accessToken';\n }\n if (isIDToken(token)) {\n return 'idToken';\n }\n if(isRefreshToken(token)) {\n return 'refreshToken';\n }\n throw new AuthSdkError('Unknown token type');\n }\n\n setTokens(\n tokens: Tokens,\n // TODO: callbacks can be removed in the next major version OKTA-407224\n accessTokenCb?: Function, \n idTokenCb?: Function,\n refreshTokenCb?: Function\n ): void {\n const handleTokenCallback = (key, token) => {\n const type = this.getTokenType(token);\n if (type === 'accessToken') {\n accessTokenCb && accessTokenCb(key, token);\n } else if (type === 'idToken') {\n idTokenCb && idTokenCb(key, token);\n } else if (type === 'refreshToken') {\n refreshTokenCb && refreshTokenCb(key, token);\n }\n };\n const handleAdded = (key, token) => {\n this.emitAdded(key, token);\n this.setExpireEventTimeout(key, token);\n handleTokenCallback(key, token);\n };\n const handleRenewed = (key, token, oldToken) => {\n this.emitRenewed(key, token, oldToken);\n this.clearExpireEventTimeout(key);\n this.setExpireEventTimeout(key, token);\n handleTokenCallback(key, token);\n };\n const handleRemoved = (key, token) => {\n this.clearExpireEventTimeout(key);\n this.emitRemoved(key, token);\n handleTokenCallback(key, token);\n };\n \n const types: TokenType[] = ['idToken', 'accessToken', 'refreshToken'];\n const existingTokens = this.getTokensSync();\n\n // valid tokens\n types.forEach((type) => {\n const token = tokens[type];\n if (token) {\n validateToken(token, type);\n }\n });\n \n // add token to storage\n const storage = types.reduce((storage, type) => {\n const token = tokens[type];\n if (token) {\n const storageKey = this.getStorageKeyByType(type) || type;\n storage[storageKey] = token;\n }\n return storage;\n }, {});\n this.storage.setStorage(storage);\n \n // emit event and start expiration timer\n types.forEach(type => {\n const newToken = tokens[type];\n const existingToken = existingTokens[type];\n const storageKey = this.getStorageKeyByType(type) || type;\n if (newToken && existingToken) { // renew\n // call handleRemoved first, since it clears timers\n handleRemoved(storageKey, existingToken);\n handleAdded(storageKey, newToken);\n handleRenewed(storageKey, newToken, existingToken);\n } else if (newToken) { // add\n handleAdded(storageKey, newToken);\n } else if (existingToken) { //remove\n handleRemoved(storageKey, existingToken);\n }\n });\n }\n \n remove(key) {\n // Clear any listener for this token\n this.clearExpireEventTimeout(key);\n \n var tokenStorage = this.storage.getStorage();\n var removedToken = tokenStorage[key];\n delete tokenStorage[key];\n this.storage.setStorage(tokenStorage);\n \n this.emitRemoved(key, removedToken);\n }\n \n // TODO: this methods is redundant and can be removed in the next major version OKTA-407224\n async renewToken(token) {\n return this.sdk.token.renew(token);\n }\n // TODO: this methods is redundant and can be removed in the next major version OKTA-407224\n validateToken(token: Token) {\n return validateToken(token);\n }\n\n // TODO: renew method should take no param, change in the next major version OKTA-407224\n renew(key): Promise<Token> {\n // Multiple callers may receive the same promise. They will all resolve or reject from the same request.\n if (this.state.renewPromise) {\n return this.state.renewPromise;\n }\n \n try {\n var token = this.getSync(key);\n if (!token) {\n throw new AuthSdkError('The tokenManager has no token for the key: ' + key);\n }\n } catch (e) {\n return Promise.reject(e);\n }\n \n // Remove existing autoRenew timeout\n this.clearExpireEventTimeout(key);\n \n // A refresh token means a replace instead of renewal\n // Store the renew promise state, to avoid renewing again\n this.state.renewPromise = this.sdk.token.renewTokens()\n .then(tokens => {\n this.setTokens(tokens);\n\n // resolve token based on the key\n const tokenType = this.getTokenType(token);\n return tokens[tokenType];\n })\n .catch(err => {\n // If renew fails, remove token and emit error\n if (isRefreshTokenError(err) || err.name === 'OAuthError' || err.name === 'AuthSdkError') {\n // remove token from storage\n this.remove(key);\n }\n err.tokenKey = key;\n this.emitError(err);\n throw err;\n })\n .finally(() => {\n // Remove existing promise key\n this.state.renewPromise = null;\n });\n \n return this.state.renewPromise;\n }\n \n clear() {\n this.clearExpireEventTimeoutAll();\n this.storage.clearStorage();\n }\n\n clearPendingRemoveTokens() {\n const tokens = this.getTokensSync();\n Object.keys(tokens).forEach(key => {\n if (tokens[key].pendingRemove) {\n this.remove(key);\n }\n });\n }\n \n getTokensFromStorageValue(value) {\n let tokens;\n try {\n tokens = JSON.parse(value) || {};\n } catch (e) {\n tokens = {};\n }\n return tokens;\n }\n\n updateRefreshToken(token: RefreshToken) {\n const key = this.getStorageKeyByType('refreshToken') || REFRESH_TOKEN_STORAGE_KEY;\n\n // do not emit any event\n var tokenStorage = this.storage.getStorage();\n validateToken(token);\n tokenStorage[key] = token;\n this.storage.setStorage(tokenStorage);\n }\n\n addPendingRemoveFlags() {\n const tokens = this.getTokensSync();\n Object.keys(tokens).forEach(key => {\n tokens[key].pendingRemove = true;\n });\n this.setTokens(tokens);\n }\n \n}\n"],"file":"TokenManager.js"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ exports.Authenticator = void 0;
4
+
5
+ class Authenticator {
6
+ constructor(authenticator) {
7
+ this.meta = authenticator;
8
+ } // TODO: add type
9
+
10
+
11
+ }
12
+
13
+ exports.Authenticator = Authenticator;
14
+ //# sourceMappingURL=Authenticator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../lib/idx/authenticator/Authenticator.ts"],"names":["Authenticator","constructor","authenticator","meta"],"mappings":";;;;AAQO,MAAeA,aAAf,CAA6B;AAGlCC,EAAAA,WAAW,CAACC,aAAD,EAAkC;AAC3C,SAAKC,IAAL,GAAYD,aAAZ;AACD,GALiC,CAWiC;;;AAXjC","sourcesContent":["import { RemediationValues } from '../remediators';\nimport { IdxAuthenticator, IdxRemediationValue } from '../types/idx-js';\n\n\nexport interface Credentials {\n [key: string]: string;\n}\n\nexport abstract class Authenticator {\n meta: IdxAuthenticator;\n\n constructor(authenticator: IdxAuthenticator) {\n this.meta = authenticator;\n }\n\n abstract canVerify(values: RemediationValues): boolean;\n\n abstract mapCredentials(values: RemediationValues): Credentials;\n\n abstract getInputs(idxRemediationValue: IdxRemediationValue): any; // TODO: add type\n}\n"],"file":"Authenticator.js"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ exports.OktaPassword = void 0;
4
+
5
+ var _Authenticator = require("./Authenticator");
6
+
7
+ class OktaPassword extends _Authenticator.Authenticator {
8
+ canVerify(values) {
9
+ return !!values.password;
10
+ }
11
+
12
+ mapCredentials(values) {
13
+ return {
14
+ passcode: values.password
15
+ };
16
+ }
17
+
18
+ getInputs(idxRemediationValue) {
19
+ var _idxRemediationValue$;
20
+
21
+ return { ...((_idxRemediationValue$ = idxRemediationValue.form) === null || _idxRemediationValue$ === void 0 ? void 0 : _idxRemediationValue$.value[0]),
22
+ name: 'password',
23
+ type: 'string',
24
+ required: idxRemediationValue.required
25
+ };
26
+ }
27
+
28
+ }
29
+
30
+ exports.OktaPassword = OktaPassword;
31
+ //# sourceMappingURL=OktaPassword.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../lib/idx/authenticator/OktaPassword.ts"],"names":["OktaPassword","Authenticator","canVerify","values","password","mapCredentials","passcode","getInputs","idxRemediationValue","form","value","name","type","required"],"mappings":";;;;AAAA;;AAMO,MAAMA,YAAN,SAA2BC,4BAA3B,CAAyC;AAC9CC,EAAAA,SAAS,CAACC,MAAD,EAAS;AAChB,WAAO,CAAC,CAACA,MAAM,CAACC,QAAhB;AACD;;AAEDC,EAAAA,cAAc,CAACF,MAAD,EAAS;AACrB,WAAO;AAAEG,MAAAA,QAAQ,EAAEH,MAAM,CAACC;AAAnB,KAAP;AACD;;AAEDG,EAAAA,SAAS,CAACC,mBAAD,EAAsB;AAAA;;AAC7B,WAAO,EACL,6BAAGA,mBAAmB,CAACC,IAAvB,0DAAG,sBAA0BC,KAA1B,CAAgC,CAAhC,CAAH,CADK;AAELC,MAAAA,IAAI,EAAE,UAFD;AAGLC,MAAAA,IAAI,EAAE,QAHD;AAILC,MAAAA,QAAQ,EAAEL,mBAAmB,CAACK;AAJzB,KAAP;AAMD;;AAhB6C","sourcesContent":["import { Authenticator } from './Authenticator';\n\nexport type OktaPasswordInputValues = {\n password: string;\n};\n\nexport class OktaPassword extends Authenticator {\n canVerify(values) {\n return !!values.password;\n }\n\n mapCredentials(values) {\n return { passcode: values.password };\n }\n\n getInputs(idxRemediationValue) {\n return {\n ...idxRemediationValue.form?.value[0],\n name: 'password',\n type: 'string',\n required: idxRemediationValue.required\n };\n }\n}\n"],"file":"OktaPassword.js"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ exports.OktaVerifyTotp = void 0;
4
+
5
+ var _VerificationCodeAuthenticator = require("./VerificationCodeAuthenticator");
6
+
7
+ class OktaVerifyTotp extends _VerificationCodeAuthenticator.VerificationCodeAuthenticator {
8
+ mapCredentials(values) {
9
+ return {
10
+ totp: values.verificationCode
11
+ };
12
+ }
13
+
14
+ }
15
+
16
+ exports.OktaVerifyTotp = OktaVerifyTotp;
17
+ //# sourceMappingURL=OktaVerifyTotp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../lib/idx/authenticator/OktaVerifyTotp.ts"],"names":["OktaVerifyTotp","VerificationCodeAuthenticator","mapCredentials","values","totp","verificationCode"],"mappings":";;;;AACA;;AAMO,MAAMA,cAAN,SAA6BC,4DAA7B,CAA2D;AAChEC,EAAAA,cAAc,CAACC,MAAD,EAA0B;AACtC,WAAO;AAAEC,MAAAA,IAAI,EAAED,MAAM,CAACE;AAAf,KAAP;AACD;;AAH+D","sourcesContent":["import { Credentials } from './Authenticator';\nimport { VerificationCodeAuthenticator } from './VerificationCodeAuthenticator';\n\ninterface TotpCredentials extends Credentials {\n totp: string;\n}\n\nexport class OktaVerifyTotp extends VerificationCodeAuthenticator {\n mapCredentials(values): TotpCredentials {\n return { totp: values.verificationCode };\n }\n}\n"],"file":"OktaVerifyTotp.js"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ exports.SecurityQuestionEnrollment = void 0;
4
+
5
+ var _Authenticator = require("./Authenticator");
6
+
7
+ class SecurityQuestionEnrollment extends _Authenticator.Authenticator {
8
+ canVerify(values) {
9
+ const {
10
+ questionKey,
11
+ question,
12
+ answer
13
+ } = values;
14
+ return questionKey && answer || question && answer;
15
+ }
16
+
17
+ mapCredentials(values) {
18
+ const {
19
+ questionKey,
20
+ question,
21
+ answer
22
+ } = values;
23
+ return {
24
+ questionKey: question ? 'custom' : questionKey,
25
+ question,
26
+ answer
27
+ };
28
+ }
29
+
30
+ getInputs() {
31
+ return [{
32
+ name: 'questionKey',
33
+ type: 'string',
34
+ require: true
35
+ }, {
36
+ name: 'question',
37
+ type: 'string',
38
+ label: 'Create a security question'
39
+ }, {
40
+ name: 'answer',
41
+ type: 'string',
42
+ label: 'Answer',
43
+ required: true
44
+ }];
45
+ }
46
+
47
+ }
48
+
49
+ exports.SecurityQuestionEnrollment = SecurityQuestionEnrollment;
50
+ //# sourceMappingURL=SecurityQuestionEnrollment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../lib/idx/authenticator/SecurityQuestionEnrollment.ts"],"names":["SecurityQuestionEnrollment","Authenticator","canVerify","values","questionKey","question","answer","mapCredentials","getInputs","name","type","require","label","required"],"mappings":";;;;AAAA;;AAEO,MAAMA,0BAAN,SAAyCC,4BAAzC,CAAuD;AAC5DC,EAAAA,SAAS,CAACC,MAAD,EAAS;AAChB,UAAM;AAAEC,MAAAA,WAAF;AAAeC,MAAAA,QAAf;AAAyBC,MAAAA;AAAzB,QAAoCH,MAA1C;AACA,WAAQC,WAAW,IAAIE,MAAhB,IAA4BD,QAAQ,IAAIC,MAA/C;AACD;;AAEDC,EAAAA,cAAc,CAACJ,MAAD,EAAS;AACrB,UAAM;AAAEC,MAAAA,WAAF;AAAeC,MAAAA,QAAf;AAAyBC,MAAAA;AAAzB,QAAoCH,MAA1C;AACA,WAAO;AACLC,MAAAA,WAAW,EAAEC,QAAQ,GAAG,QAAH,GAAcD,WAD9B;AAELC,MAAAA,QAFK;AAGLC,MAAAA;AAHK,KAAP;AAKD;;AAEDE,EAAAA,SAAS,GAAG;AACV,WAAO,CACL;AAAEC,MAAAA,IAAI,EAAE,aAAR;AAAuBC,MAAAA,IAAI,EAAE,QAA7B;AAAuCC,MAAAA,OAAO,EAAE;AAAhD,KADK,EAEL;AAAEF,MAAAA,IAAI,EAAE,UAAR;AAAoBC,MAAAA,IAAI,EAAE,QAA1B;AAAoCE,MAAAA,KAAK,EAAE;AAA3C,KAFK,EAGL;AAAEH,MAAAA,IAAI,EAAE,QAAR;AAAkBC,MAAAA,IAAI,EAAE,QAAxB;AAAkCE,MAAAA,KAAK,EAAE,QAAzC;AAAmDC,MAAAA,QAAQ,EAAE;AAA7D,KAHK,CAAP;AAKD;;AArB2D","sourcesContent":["import { Authenticator } from './Authenticator';\n\nexport class SecurityQuestionEnrollment extends Authenticator {\n canVerify(values) {\n const { questionKey, question, answer } = values;\n return (questionKey && answer) || (question && answer);\n }\n\n mapCredentials(values) {\n const { questionKey, question, answer } = values;\n return {\n questionKey: question ? 'custom' : questionKey,\n question,\n answer\n };\n }\n\n getInputs() {\n return [\n { name: 'questionKey', type: 'string', require: true },\n { name: 'question', type: 'string', label: 'Create a security question' },\n { name: 'answer', type: 'string', label: 'Answer', required: true },\n ];\n }\n}\n"],"file":"SecurityQuestionEnrollment.js"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ exports.SecurityQuestionVerification = void 0;
4
+
5
+ var _Authenticator = require("./Authenticator");
6
+
7
+ class SecurityQuestionVerification extends _Authenticator.Authenticator {
8
+ canVerify(values) {
9
+ return values.answer;
10
+ }
11
+
12
+ mapCredentials(values) {
13
+ return {
14
+ questionKey: this.meta.contextualData.enrolledQuestion.questionKey,
15
+ answer: values.answer
16
+ };
17
+ }
18
+
19
+ getInputs() {
20
+ return [{
21
+ name: 'answer',
22
+ type: 'string',
23
+ label: 'Answer',
24
+ required: true
25
+ }];
26
+ }
27
+
28
+ }
29
+
30
+ exports.SecurityQuestionVerification = SecurityQuestionVerification;
31
+ //# sourceMappingURL=SecurityQuestionVerification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../lib/idx/authenticator/SecurityQuestionVerification.ts"],"names":["SecurityQuestionVerification","Authenticator","canVerify","values","answer","mapCredentials","questionKey","meta","contextualData","enrolledQuestion","getInputs","name","type","label","required"],"mappings":";;;;AAAA;;AAEO,MAAMA,4BAAN,SAA2CC,4BAA3C,CAAyD;AAC9DC,EAAAA,SAAS,CAACC,MAAD,EAAS;AAChB,WAAOA,MAAM,CAACC,MAAd;AACD;;AAEDC,EAAAA,cAAc,CAACF,MAAD,EAAS;AACrB,WAAO;AACLG,MAAAA,WAAW,EAAE,KAAKC,IAAL,CAAUC,cAAV,CAAyBC,gBAAzB,CAA0CH,WADlD;AAELF,MAAAA,MAAM,EAAED,MAAM,CAACC;AAFV,KAAP;AAID;;AAEDM,EAAAA,SAAS,GAAG;AACV,WAAO,CACL;AAAEC,MAAAA,IAAI,EAAE,QAAR;AAAkBC,MAAAA,IAAI,EAAE,QAAxB;AAAkCC,MAAAA,KAAK,EAAE,QAAzC;AAAmDC,MAAAA,QAAQ,EAAE;AAA7D,KADK,CAAP;AAGD;;AAhB6D","sourcesContent":["import { Authenticator } from './Authenticator';\n\nexport class SecurityQuestionVerification extends Authenticator {\n canVerify(values) {\n return values.answer;\n }\n\n mapCredentials(values) {\n return {\n questionKey: this.meta.contextualData.enrolledQuestion.questionKey,\n answer: values.answer\n };\n }\n\n getInputs() {\n return [\n { name: 'answer', type: 'string', label: 'Answer', required: true }\n ];\n }\n}\n"],"file":"SecurityQuestionVerification.js"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ exports.VerificationCodeAuthenticator = void 0;
4
+
5
+ var _Authenticator = require("./Authenticator");
6
+
7
+ // general authenticator to handle "verificationCode" input
8
+ // it can be used for "email", "phone", "google authenticator"
9
+ // a new authenticator class should be created if special cases need to be handled
10
+ class VerificationCodeAuthenticator extends _Authenticator.Authenticator {
11
+ canVerify(values) {
12
+ return !!values.verificationCode;
13
+ }
14
+
15
+ mapCredentials(values) {
16
+ return {
17
+ passcode: values.verificationCode
18
+ };
19
+ }
20
+
21
+ getInputs(idxRemediationValue) {
22
+ var _idxRemediationValue$;
23
+
24
+ return { ...((_idxRemediationValue$ = idxRemediationValue.form) === null || _idxRemediationValue$ === void 0 ? void 0 : _idxRemediationValue$.value[0]),
25
+ name: 'verificationCode',
26
+ type: 'string',
27
+ required: idxRemediationValue.required
28
+ };
29
+ }
30
+
31
+ }
32
+
33
+ exports.VerificationCodeAuthenticator = VerificationCodeAuthenticator;
34
+ //# sourceMappingURL=VerificationCodeAuthenticator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../lib/idx/authenticator/VerificationCodeAuthenticator.ts"],"names":["VerificationCodeAuthenticator","Authenticator","canVerify","values","verificationCode","mapCredentials","passcode","getInputs","idxRemediationValue","form","value","name","type","required"],"mappings":";;;;AAAA;;AAMA;AACA;AACA;AACO,MAAMA,6BAAN,SAA4CC,4BAA5C,CAA0D;AAC/DC,EAAAA,SAAS,CAACC,MAAD,EAAS;AAChB,WAAO,CAAC,CAACA,MAAM,CAACC,gBAAhB;AACD;;AAEDC,EAAAA,cAAc,CAACF,MAAD,EAAoD;AAChE,WAAO;AAAEG,MAAAA,QAAQ,EAAEH,MAAM,CAACC;AAAnB,KAAP;AACD;;AAEDG,EAAAA,SAAS,CAACC,mBAAD,EAAsB;AAAA;;AAC7B,WAAO,EACL,6BAAGA,mBAAmB,CAACC,IAAvB,0DAAG,sBAA0BC,KAA1B,CAAgC,CAAhC,CAAH,CADK;AAELC,MAAAA,IAAI,EAAE,kBAFD;AAGLC,MAAAA,IAAI,EAAE,QAHD;AAILC,MAAAA,QAAQ,EAAEL,mBAAmB,CAACK;AAJzB,KAAP;AAMD;;AAhB8D","sourcesContent":["import { Authenticator, Credentials } from './Authenticator';\n\ninterface VerificationCodeCredentials extends Credentials {\n passcode: string;\n}\n\n// general authenticator to handle \"verificationCode\" input\n// it can be used for \"email\", \"phone\", \"google authenticator\"\n// a new authenticator class should be created if special cases need to be handled\nexport class VerificationCodeAuthenticator extends Authenticator {\n canVerify(values) {\n return !!values.verificationCode;\n }\n\n mapCredentials(values): VerificationCodeCredentials | Credentials {\n return { passcode: values.verificationCode };\n }\n\n getInputs(idxRemediationValue) {\n return {\n ...idxRemediationValue.form?.value[0],\n name: 'verificationCode',\n type: 'string',\n required: idxRemediationValue.required\n };\n }\n}\n"],"file":"VerificationCodeAuthenticator.js"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ exports.getAuthenticator = getAuthenticator;
4
+
5
+ var _OktaVerifyTotp = require("./OktaVerifyTotp");
6
+
7
+ var _VerificationCodeAuthenticator = require("./VerificationCodeAuthenticator");
8
+
9
+ var _OktaPassword = require("./OktaPassword");
10
+
11
+ var _SecurityQuestionEnrollment = require("./SecurityQuestionEnrollment");
12
+
13
+ var _SecurityQuestionVerification = require("./SecurityQuestionVerification");
14
+
15
+ var _types = require("../types");
16
+
17
+ function getAuthenticator(remediation) {
18
+ const {
19
+ relatesTo: {
20
+ value
21
+ } = {}
22
+ } = remediation;
23
+
24
+ switch (value.key) {
25
+ case _types.AuthenticatorKey.OKTA_PASSWORD:
26
+ return new _OktaPassword.OktaPassword(value);
27
+
28
+ case _types.AuthenticatorKey.SECURITY_QUESTION:
29
+ if (value.contextualData.enrolledQuestion) {
30
+ return new _SecurityQuestionVerification.SecurityQuestionVerification(value);
31
+ } else {
32
+ return new _SecurityQuestionEnrollment.SecurityQuestionEnrollment(value);
33
+ }
34
+
35
+ case _types.AuthenticatorKey.OKTA_VERIFY:
36
+ return new _OktaVerifyTotp.OktaVerifyTotp(value);
37
+
38
+ default:
39
+ return new _VerificationCodeAuthenticator.VerificationCodeAuthenticator(value);
40
+ }
41
+ }
42
+ //# sourceMappingURL=getAuthenticator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../lib/idx/authenticator/getAuthenticator.ts"],"names":["getAuthenticator","remediation","relatesTo","value","key","AuthenticatorKey","OKTA_PASSWORD","OktaPassword","SECURITY_QUESTION","contextualData","enrolledQuestion","SecurityQuestionVerification","SecurityQuestionEnrollment","OKTA_VERIFY","OktaVerifyTotp","VerificationCodeAuthenticator"],"mappings":";;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AAEA;;AAEO,SAASA,gBAAT,CAA0BC,WAA1B,EAAsE;AAC3E,QAAM;AAAEC,IAAAA,SAAS,EAAE;AAAEC,MAAAA;AAAF,QAAY;AAAzB,MAAgCF,WAAtC;;AACA,UAAQE,KAAK,CAACC,GAAd;AACE,SAAKC,wBAAiBC,aAAtB;AACE,aAAO,IAAIC,0BAAJ,CAAiBJ,KAAjB,CAAP;;AACF,SAAKE,wBAAiBG,iBAAtB;AACE,UAAIL,KAAK,CAACM,cAAN,CAAqBC,gBAAzB,EAA2C;AACzC,eAAO,IAAIC,0DAAJ,CAAiCR,KAAjC,CAAP;AACD,OAFD,MAEO;AACL,eAAO,IAAIS,sDAAJ,CAA+BT,KAA/B,CAAP;AACD;;AACH,SAAKE,wBAAiBQ,WAAtB;AACE,aAAO,IAAIC,8BAAJ,CAAmBX,KAAnB,CAAP;;AACF;AACE,aAAO,IAAIY,4DAAJ,CAAkCZ,KAAlC,CAAP;AAZJ;AAcD","sourcesContent":["import { OktaVerifyTotp } from './OktaVerifyTotp';\nimport { Authenticator } from './Authenticator';\nimport { VerificationCodeAuthenticator } from './VerificationCodeAuthenticator';\nimport { OktaPassword } from './OktaPassword';\nimport { SecurityQuestionEnrollment } from './SecurityQuestionEnrollment';\nimport { SecurityQuestionVerification } from './SecurityQuestionVerification';\nimport { IdxRemediation } from '../types/idx-js';\nimport { AuthenticatorKey } from '../types';\n\nexport function getAuthenticator(remediation: IdxRemediation): Authenticator {\n const { relatesTo: { value } = {} } = remediation;\n switch (value.key) {\n case AuthenticatorKey.OKTA_PASSWORD:\n return new OktaPassword(value);\n case AuthenticatorKey.SECURITY_QUESTION:\n if (value.contextualData.enrolledQuestion) {\n return new SecurityQuestionVerification(value);\n } else {\n return new SecurityQuestionEnrollment(value);\n }\n case AuthenticatorKey.OKTA_VERIFY:\n return new OktaVerifyTotp(value);\n default:\n return new VerificationCodeAuthenticator(value);\n }\n}\n"],"file":"getAuthenticator.js"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+
3
+ var _getAuthenticator = require("./getAuthenticator");
4
+
5
+ Object.keys(_getAuthenticator).forEach(function (key) {
6
+ if (key === "default" || key === "__esModule") return;
7
+ if (key in exports && exports[key] === _getAuthenticator[key]) return;
8
+ Object.defineProperty(exports, key, {
9
+ enumerable: true,
10
+ get: function () {
11
+ return _getAuthenticator[key];
12
+ }
13
+ });
14
+ });
15
+
16
+ var _Authenticator = require("./Authenticator");
17
+
18
+ Object.keys(_Authenticator).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _Authenticator[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _Authenticator[key];
25
+ }
26
+ });
27
+ });
28
+
29
+ var _VerificationCodeAuthenticator = require("./VerificationCodeAuthenticator");
30
+
31
+ Object.keys(_VerificationCodeAuthenticator).forEach(function (key) {
32
+ if (key === "default" || key === "__esModule") return;
33
+ if (key in exports && exports[key] === _VerificationCodeAuthenticator[key]) return;
34
+ Object.defineProperty(exports, key, {
35
+ enumerable: true,
36
+ get: function () {
37
+ return _VerificationCodeAuthenticator[key];
38
+ }
39
+ });
40
+ });
41
+
42
+ var _OktaPassword = require("./OktaPassword");
43
+
44
+ Object.keys(_OktaPassword).forEach(function (key) {
45
+ if (key === "default" || key === "__esModule") return;
46
+ if (key in exports && exports[key] === _OktaPassword[key]) return;
47
+ Object.defineProperty(exports, key, {
48
+ enumerable: true,
49
+ get: function () {
50
+ return _OktaPassword[key];
51
+ }
52
+ });
53
+ });
54
+
55
+ var _SecurityQuestionEnrollment = require("./SecurityQuestionEnrollment");
56
+
57
+ Object.keys(_SecurityQuestionEnrollment).forEach(function (key) {
58
+ if (key === "default" || key === "__esModule") return;
59
+ if (key in exports && exports[key] === _SecurityQuestionEnrollment[key]) return;
60
+ Object.defineProperty(exports, key, {
61
+ enumerable: true,
62
+ get: function () {
63
+ return _SecurityQuestionEnrollment[key];
64
+ }
65
+ });
66
+ });
67
+
68
+ var _SecurityQuestionVerification = require("./SecurityQuestionVerification");
69
+
70
+ Object.keys(_SecurityQuestionVerification).forEach(function (key) {
71
+ if (key === "default" || key === "__esModule") return;
72
+ if (key in exports && exports[key] === _SecurityQuestionVerification[key]) return;
73
+ Object.defineProperty(exports, key, {
74
+ enumerable: true,
75
+ get: function () {
76
+ return _SecurityQuestionVerification[key];
77
+ }
78
+ });
79
+ });
80
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../lib/idx/authenticator/index.ts"],"names":[],"mappings":";;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from './getAuthenticator';\nexport * from './Authenticator';\nexport * from './VerificationCodeAuthenticator';\nexport * from './OktaPassword';\nexport * from './SecurityQuestionEnrollment';\nexport * from './SecurityQuestionVerification';\n"],"file":"index.js"}
package/cjs/idx/cancel.js CHANGED
@@ -4,6 +4,8 @@ exports.cancel = cancel;
4
4
 
5
5
  var _run = require("./run");
6
6
 
7
+ var _flow = require("./flow");
8
+
7
9
  /*!
8
10
  * Copyright (c) 2021, Okta, Inc. and/or its affiliates. All rights reserved.
9
11
  * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
@@ -16,7 +18,10 @@ var _run = require("./run");
16
18
  * See the License for the specific language governing permissions and limitations under the License.
17
19
  */
18
20
  async function cancel(authClient, options) {
21
+ const meta = authClient.transactionManager.load();
22
+ const flowSpec = (0, _flow.getFlowSpecification)(authClient, meta.flow);
19
23
  return (0, _run.run)(authClient, { ...options,
24
+ ...flowSpec,
20
25
  actions: ['cancel']
21
26
  });
22
27
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/idx/cancel.ts"],"names":["cancel","authClient","options","actions"],"mappings":";;;;AAaA;;AAbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOO,eAAeA,MAAf,CAAuBC,UAAvB,EAA6CC,OAA7C,EAAqE;AAC1E,SAAO,cAAID,UAAJ,EAAgB,EACrB,GAAGC,OADkB;AAErBC,IAAAA,OAAO,EAAE,CAAC,QAAD;AAFY,GAAhB,CAAP;AAID","sourcesContent":["/*!\n * Copyright (c) 2021, 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 { OktaAuth, IdxOptions } from '../types';\nimport { run } from './run';\n\nexport type CancelOptions = IdxOptions;\n\nexport async function cancel (authClient: OktaAuth, options: CancelOptions) {\n return run(authClient, {\n ...options,\n actions: ['cancel']\n });\n}\n"],"file":"cancel.js"}
1
+ {"version":3,"sources":["../../../lib/idx/cancel.ts"],"names":["cancel","authClient","options","meta","transactionManager","load","flowSpec","flow","actions"],"mappings":";;;;AAaA;;AACA;;AAdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQO,eAAeA,MAAf,CAAuBC,UAAvB,EAA6CC,OAA7C,EAAqE;AAC1E,QAAMC,IAAI,GAAGF,UAAU,CAACG,kBAAX,CAA8BC,IAA9B,EAAb;AACA,QAAMC,QAAQ,GAAG,gCAAqBL,UAArB,EAAiCE,IAAI,CAACI,IAAtC,CAAjB;AACA,SAAO,cAAIN,UAAJ,EAAgB,EACrB,GAAGC,OADkB;AAErB,OAAGI,QAFkB;AAGrBE,IAAAA,OAAO,EAAE,CAAC,QAAD;AAHY,GAAhB,CAAP;AAKD","sourcesContent":["/*!\n * Copyright (c) 2021, 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 { OktaAuth, IdxOptions, IdxTransactionMeta } from '../types';\nimport { run } from './run';\nimport { getFlowSpecification } from './flow';\n\nexport type CancelOptions = IdxOptions;\n\nexport async function cancel (authClient: OktaAuth, options: CancelOptions) {\n const meta = authClient.transactionManager.load() as IdxTransactionMeta;\n const flowSpec = getFlowSpecification(authClient, meta.flow);\n return run(authClient, {\n ...options,\n ...flowSpec,\n actions: ['cancel']\n });\n}\n"],"file":"cancel.js"}
@@ -23,8 +23,11 @@ const AuthenticationFlow = {
23
23
  'authenticator-verification-data': _remediators.AuthenticatorVerificationData,
24
24
  'enroll-authenticator': _remediators.EnrollAuthenticator,
25
25
  'challenge-authenticator': _remediators.ChallengeAuthenticator,
26
+ 'challenge-poll': _remediators.ChallengePoll,
26
27
  'reenroll-authenticator': _remediators.ReEnrollAuthenticator,
27
- 'redirect-idp': _remediators.RedirectIdp
28
+ 'enroll-poll': _remediators.EnrollPoll,
29
+ 'redirect-idp': _remediators.RedirectIdp,
30
+ 'skip': _remediators.Skip
28
31
  };
29
32
  exports.AuthenticationFlow = AuthenticationFlow;
30
33
  //# sourceMappingURL=AuthenticationFlow.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../lib/idx/flow/AuthenticationFlow.ts"],"names":["AuthenticationFlow","Identify","SelectAuthenticatorAuthenticate","SelectAuthenticatorEnroll","AuthenticatorEnrollmentData","AuthenticatorVerificationData","EnrollAuthenticator","ChallengeAuthenticator","ReEnrollAuthenticator","RedirectIdp"],"mappings":";;;;AAcA;;AAdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgBO,MAAMA,kBAAmC,GAAG;AACjD,cAAYC,qBADqC;AAEjD,uCAAqCC,4CAFY;AAGjD,iCAA+BC,sCAHkB;AAIjD,mCAAiCC,wCAJgB;AAKjD,qCAAmCC,0CALc;AAMjD,0BAAwBC,gCANyB;AAOjD,6BAA2BC,mCAPsB;AAQjD,4BAA0BC,kCARuB;AASjD,kBAAgBC;AATiC,CAA5C","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 { RemediationFlow } from './RemediationFlow';\nimport { \n Identify,\n SelectAuthenticatorAuthenticate,\n ChallengeAuthenticator,\n ReEnrollAuthenticator,\n RedirectIdp,\n AuthenticatorEnrollmentData,\n SelectAuthenticatorEnroll,\n EnrollAuthenticator,\n AuthenticatorVerificationData,\n} from '../remediators';\n\nexport const AuthenticationFlow: RemediationFlow = {\n 'identify': Identify,\n 'select-authenticator-authenticate': SelectAuthenticatorAuthenticate,\n 'select-authenticator-enroll': SelectAuthenticatorEnroll,\n 'authenticator-enrollment-data': AuthenticatorEnrollmentData,\n 'authenticator-verification-data': AuthenticatorVerificationData,\n 'enroll-authenticator': EnrollAuthenticator,\n 'challenge-authenticator': ChallengeAuthenticator,\n 'reenroll-authenticator': ReEnrollAuthenticator,\n 'redirect-idp': RedirectIdp\n};\n"],"file":"AuthenticationFlow.js"}
1
+ {"version":3,"sources":["../../../../lib/idx/flow/AuthenticationFlow.ts"],"names":["AuthenticationFlow","Identify","SelectAuthenticatorAuthenticate","SelectAuthenticatorEnroll","AuthenticatorEnrollmentData","AuthenticatorVerificationData","EnrollAuthenticator","ChallengeAuthenticator","ChallengePoll","ReEnrollAuthenticator","EnrollPoll","RedirectIdp","Skip"],"mappings":";;;;AAcA;;AAdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBO,MAAMA,kBAAmC,GAAG;AACjD,cAAYC,qBADqC;AAEjD,uCAAqCC,4CAFY;AAGjD,iCAA+BC,sCAHkB;AAIjD,mCAAiCC,wCAJgB;AAKjD,qCAAmCC,0CALc;AAMjD,0BAAwBC,gCANyB;AAOjD,6BAA2BC,mCAPsB;AAQjD,oBAAkBC,0BAR+B;AASjD,4BAA0BC,kCATuB;AAUjD,iBAAeC,uBAVkC;AAWjD,kBAAgBC,wBAXiC;AAYjD,UAAQC;AAZyC,CAA5C","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 { RemediationFlow } from './RemediationFlow';\nimport { \n Identify,\n SelectAuthenticatorAuthenticate,\n ChallengeAuthenticator,\n ReEnrollAuthenticator,\n RedirectIdp,\n AuthenticatorEnrollmentData,\n SelectAuthenticatorEnroll,\n EnrollAuthenticator,\n AuthenticatorVerificationData,\n EnrollPoll,\n ChallengePoll, Skip\n} from '../remediators';\n\nexport const AuthenticationFlow: RemediationFlow = {\n 'identify': Identify,\n 'select-authenticator-authenticate': SelectAuthenticatorAuthenticate,\n 'select-authenticator-enroll': SelectAuthenticatorEnroll,\n 'authenticator-enrollment-data': AuthenticatorEnrollmentData,\n 'authenticator-verification-data': AuthenticatorVerificationData,\n 'enroll-authenticator': EnrollAuthenticator,\n 'challenge-authenticator': ChallengeAuthenticator,\n 'challenge-poll': ChallengePoll,\n 'reenroll-authenticator': ReEnrollAuthenticator,\n 'enroll-poll': EnrollPoll,\n 'redirect-idp': RedirectIdp,\n 'skip': Skip,\n};\n"],"file":"AuthenticationFlow.js"}
@@ -4,45 +4,35 @@ exports.getFlowSpecification = getFlowSpecification;
4
4
 
5
5
  var _AuthenticationFlow = require("./AuthenticationFlow");
6
6
 
7
- var _AuthenticationFlowMonitor = require("./AuthenticationFlowMonitor");
8
-
9
7
  var _PasswordRecoveryFlow = require("./PasswordRecoveryFlow");
10
8
 
11
- var _PasswordRecoveryFlowMonitor = require("./PasswordRecoveryFlowMonitor");
12
-
13
9
  var _RegistrationFlow = require("./RegistrationFlow");
14
10
 
15
- var _RegistrationFlowMonitor = require("./RegistrationFlowMonitor");
16
-
17
11
  function getFlowSpecification(oktaAuth, flow = 'proceed') {
18
- let remediators, flowMonitor, actions;
12
+ let remediators, actions;
19
13
 
20
14
  switch (flow) {
21
15
  case 'register':
22
16
  case 'signup':
23
17
  case 'enrollProfile':
24
18
  remediators = _RegistrationFlow.RegistrationFlow;
25
- flowMonitor = new _RegistrationFlowMonitor.RegistrationFlowMonitor(oktaAuth);
26
19
  break;
27
20
 
28
21
  case 'recoverPassword':
29
22
  case 'resetPassword':
30
23
  remediators = _PasswordRecoveryFlow.PasswordRecoveryFlow;
31
- flowMonitor = new _PasswordRecoveryFlowMonitor.PasswordRecoveryFlowMonitor(oktaAuth);
32
24
  actions = ['currentAuthenticator-recover', 'currentAuthenticatorEnrollment-recover'];
33
25
  break;
34
26
 
35
27
  default:
36
28
  // authenticate
37
29
  remediators = _AuthenticationFlow.AuthenticationFlow;
38
- flowMonitor = new _AuthenticationFlowMonitor.AuthenticationFlowMonitor(oktaAuth);
39
30
  break;
40
31
  }
41
32
 
42
33
  return {
43
34
  flow,
44
35
  remediators,
45
- flowMonitor,
46
36
  actions
47
37
  };
48
38
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../lib/idx/flow/FlowSpecification.ts"],"names":["getFlowSpecification","oktaAuth","flow","remediators","flowMonitor","actions","RegistrationFlow","RegistrationFlowMonitor","PasswordRecoveryFlow","PasswordRecoveryFlowMonitor","AuthenticationFlow","AuthenticationFlowMonitor"],"mappings":";;;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AAUO,SAASA,oBAAT,CAA8BC,QAA9B,EAAkDC,IAAoB,GAAG,SAAzE,EAAuG;AAC5G,MAAIC,WAAJ,EAAiBC,WAAjB,EAA8BC,OAA9B;;AACA,UAAQH,IAAR;AACE,SAAK,UAAL;AACA,SAAK,QAAL;AACA,SAAK,eAAL;AACEC,MAAAA,WAAW,GAAGG,kCAAd;AACAF,MAAAA,WAAW,GAAG,IAAIG,gDAAJ,CAA4BN,QAA5B,CAAd;AACA;;AACF,SAAK,iBAAL;AACA,SAAK,eAAL;AACEE,MAAAA,WAAW,GAAGK,0CAAd;AACAJ,MAAAA,WAAW,GAAG,IAAIK,wDAAJ,CAAgCR,QAAhC,CAAd;AACAI,MAAAA,OAAO,GAAG,CACR,8BADQ,EAER,wCAFQ,CAAV;AAIA;;AACF;AACE;AACAF,MAAAA,WAAW,GAAGO,sCAAd;AACAN,MAAAA,WAAW,GAAG,IAAIO,oDAAJ,CAA8BV,QAA9B,CAAd;AACA;AApBJ;;AAsBA,SAAO;AAAEC,IAAAA,IAAF;AAAQC,IAAAA,WAAR;AAAqBC,IAAAA,WAArB;AAAkCC,IAAAA;AAAlC,GAAP;AACD","sourcesContent":["import { OktaAuth, FlowIdentifier } from '../../types';\nimport { AuthenticationFlow } from './AuthenticationFlow';\nimport { AuthenticationFlowMonitor } from './AuthenticationFlowMonitor';\nimport { FlowMonitor } from './FlowMonitor';\nimport { PasswordRecoveryFlow } from './PasswordRecoveryFlow';\nimport { PasswordRecoveryFlowMonitor } from './PasswordRecoveryFlowMonitor';\nimport { RegistrationFlow } from './RegistrationFlow';\nimport { RegistrationFlowMonitor } from './RegistrationFlowMonitor';\nimport { RemediationFlow } from './RemediationFlow';\n\nexport interface FlowSpecification {\n flow: FlowIdentifier;\n remediators: RemediationFlow;\n flowMonitor: FlowMonitor;\n actions?: string[];\n}\n\nexport function getFlowSpecification(oktaAuth: OktaAuth, flow: FlowIdentifier = 'proceed'): FlowSpecification {\n let remediators, flowMonitor, actions;\n switch (flow) {\n case 'register':\n case 'signup':\n case 'enrollProfile':\n remediators = RegistrationFlow;\n flowMonitor = new RegistrationFlowMonitor(oktaAuth);\n break;\n case 'recoverPassword':\n case 'resetPassword':\n remediators = PasswordRecoveryFlow;\n flowMonitor = new PasswordRecoveryFlowMonitor(oktaAuth);\n actions = [\n 'currentAuthenticator-recover', \n 'currentAuthenticatorEnrollment-recover'\n ];\n break;\n default:\n // authenticate\n remediators = AuthenticationFlow;\n flowMonitor = new AuthenticationFlowMonitor(oktaAuth);\n break;\n }\n return { flow, remediators, flowMonitor, actions };\n}\n"],"file":"FlowSpecification.js"}
1
+ {"version":3,"sources":["../../../../lib/idx/flow/FlowSpecification.ts"],"names":["getFlowSpecification","oktaAuth","flow","remediators","actions","RegistrationFlow","PasswordRecoveryFlow","AuthenticationFlow"],"mappings":";;;;AACA;;AACA;;AACA;;AASO,SAASA,oBAAT,CAA8BC,QAA9B,EAAkDC,IAAoB,GAAG,SAAzE,EAAuG;AAC5G,MAAIC,WAAJ,EAAiBC,OAAjB;;AACA,UAAQF,IAAR;AACE,SAAK,UAAL;AACA,SAAK,QAAL;AACA,SAAK,eAAL;AACEC,MAAAA,WAAW,GAAGE,kCAAd;AACA;;AACF,SAAK,iBAAL;AACA,SAAK,eAAL;AACEF,MAAAA,WAAW,GAAGG,0CAAd;AACAF,MAAAA,OAAO,GAAG,CACR,8BADQ,EAER,wCAFQ,CAAV;AAIA;;AACF;AACE;AACAD,MAAAA,WAAW,GAAGI,sCAAd;AACA;AAjBJ;;AAmBA,SAAO;AAAEL,IAAAA,IAAF;AAAQC,IAAAA,WAAR;AAAqBC,IAAAA;AAArB,GAAP;AACD","sourcesContent":["import { OktaAuth, FlowIdentifier } from '../../types';\nimport { AuthenticationFlow } from './AuthenticationFlow';\nimport { PasswordRecoveryFlow } from './PasswordRecoveryFlow';\nimport { RegistrationFlow } from './RegistrationFlow';\nimport { RemediationFlow } from './RemediationFlow';\n\nexport interface FlowSpecification {\n flow: FlowIdentifier;\n remediators: RemediationFlow;\n actions?: string[];\n}\n\nexport function getFlowSpecification(oktaAuth: OktaAuth, flow: FlowIdentifier = 'proceed'): FlowSpecification {\n let remediators, actions;\n switch (flow) {\n case 'register':\n case 'signup':\n case 'enrollProfile':\n remediators = RegistrationFlow;\n break;\n case 'recoverPassword':\n case 'resetPassword':\n remediators = PasswordRecoveryFlow;\n actions = [\n 'currentAuthenticator-recover', \n 'currentAuthenticatorEnrollment-recover'\n ];\n break;\n default:\n // authenticate\n remediators = AuthenticationFlow;\n break;\n }\n return { flow, remediators, actions };\n}\n"],"file":"FlowSpecification.js"}
@@ -20,6 +20,7 @@ const RegistrationFlow = {
20
20
  'enroll-profile': _remediators.EnrollProfile,
21
21
  'authenticator-enrollment-data': _remediators.AuthenticatorEnrollmentData,
22
22
  'select-authenticator-enroll': _remediators.SelectAuthenticatorEnroll,
23
+ 'enroll-poll': _remediators.EnrollPoll,
23
24
  'enroll-authenticator': _remediators.EnrollAuthenticator,
24
25
  'skip': _remediators.Skip
25
26
  };