@okta/okta-auth-js 6.0.0 → 6.3.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 (398) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/README.md +58 -27
  3. package/cjs/AuthStateManager.js +21 -7
  4. package/cjs/AuthStateManager.js.map +1 -1
  5. package/cjs/OktaAuth.js +96 -40
  6. package/cjs/OktaAuth.js.map +1 -1
  7. package/cjs/OktaUserAgent.js +2 -2
  8. package/cjs/PromiseQueue.js +14 -3
  9. package/cjs/PromiseQueue.js.map +1 -1
  10. package/cjs/SavedObject.js +4 -2
  11. package/cjs/SavedObject.js.map +1 -1
  12. package/cjs/ServiceManager.js +195 -0
  13. package/cjs/ServiceManager.js.map +1 -0
  14. package/cjs/StorageManager.js +13 -8
  15. package/cjs/StorageManager.js.map +1 -1
  16. package/cjs/TokenManager.js +34 -32
  17. package/cjs/TokenManager.js.map +1 -1
  18. package/cjs/TransactionManager.js +17 -5
  19. package/cjs/TransactionManager.js.map +1 -1
  20. package/cjs/browser/browserStorage.js +48 -33
  21. package/cjs/browser/browserStorage.js.map +1 -1
  22. package/cjs/browser/fingerprint.js +9 -3
  23. package/cjs/browser/fingerprint.js.map +1 -1
  24. package/cjs/builderUtil.js +4 -2
  25. package/cjs/builderUtil.js.map +1 -1
  26. package/cjs/clock.js +5 -1
  27. package/cjs/clock.js.map +1 -1
  28. package/cjs/crypto/base64.js +18 -0
  29. package/cjs/crypto/base64.js.map +1 -1
  30. package/cjs/crypto/index.js +6 -4
  31. package/cjs/crypto/index.js.map +1 -1
  32. package/cjs/crypto/node.js +19 -13
  33. package/cjs/crypto/node.js.map +1 -1
  34. package/cjs/crypto/oidcHash.js +5 -1
  35. package/cjs/crypto/oidcHash.js.map +1 -1
  36. package/cjs/crypto/webauthn.js +101 -0
  37. package/cjs/crypto/webauthn.js.map +1 -0
  38. package/cjs/crypto/webcrypto.js +3 -1
  39. package/cjs/crypto/webcrypto.js.map +1 -1
  40. package/cjs/errors/AuthApiError.js +1 -1
  41. package/cjs/errors/AuthPollStopError.js +1 -1
  42. package/cjs/errors/AuthSdkError.js +1 -1
  43. package/cjs/errors/CustomError.js +5 -1
  44. package/cjs/errors/CustomError.js.map +1 -1
  45. package/cjs/errors/OAuthError.js +1 -1
  46. package/cjs/errors/index.js +1 -1
  47. package/cjs/fetch/fetchRequest.js +18 -6
  48. package/cjs/fetch/fetchRequest.js.map +1 -1
  49. package/cjs/http/headers.js.map +1 -1
  50. package/cjs/http/index.js +4 -2
  51. package/cjs/http/index.js.map +1 -1
  52. package/cjs/http/request.js +9 -5
  53. package/cjs/http/request.js.map +1 -1
  54. package/cjs/idx/authenticate.js.map +1 -1
  55. package/cjs/idx/authenticator/Authenticator.js.map +1 -1
  56. package/cjs/idx/authenticator/OktaPassword.js +12 -3
  57. package/cjs/idx/authenticator/OktaPassword.js.map +1 -1
  58. package/cjs/idx/authenticator/OktaVerifyTotp.js +9 -1
  59. package/cjs/idx/authenticator/OktaVerifyTotp.js.map +1 -1
  60. package/cjs/idx/authenticator/SecurityQuestionEnrollment.js +15 -2
  61. package/cjs/idx/authenticator/SecurityQuestionEnrollment.js.map +1 -1
  62. package/cjs/idx/authenticator/SecurityQuestionVerification.js +10 -2
  63. package/cjs/idx/authenticator/SecurityQuestionVerification.js.map +1 -1
  64. package/cjs/idx/authenticator/VerificationCodeAuthenticator.js +13 -3
  65. package/cjs/idx/authenticator/VerificationCodeAuthenticator.js.map +1 -1
  66. package/cjs/idx/authenticator/WebauthnEnrollment.js +51 -0
  67. package/cjs/idx/authenticator/WebauthnEnrollment.js.map +1 -0
  68. package/cjs/idx/authenticator/WebauthnVerification.js +60 -0
  69. package/cjs/idx/authenticator/WebauthnVerification.js.map +1 -0
  70. package/cjs/idx/authenticator/getAuthenticator.js +13 -1
  71. package/cjs/idx/authenticator/getAuthenticator.js.map +1 -1
  72. package/cjs/idx/authenticator/index.js +34 -6
  73. package/cjs/idx/authenticator/index.js.map +1 -1
  74. package/cjs/idx/authenticator/util.js +64 -0
  75. package/cjs/idx/authenticator/util.js.map +1 -0
  76. package/cjs/idx/cancel.js.map +1 -1
  77. package/cjs/idx/emailVerify.js +1 -1
  78. package/cjs/idx/emailVerify.js.map +1 -1
  79. package/cjs/idx/flow/AccountUnlockFlow.js +30 -0
  80. package/cjs/idx/flow/AccountUnlockFlow.js.map +1 -0
  81. package/cjs/idx/flow/FlowSpecification.js +8 -0
  82. package/cjs/idx/flow/FlowSpecification.js.map +1 -1
  83. package/cjs/idx/flow/PasswordRecoveryFlow.js +4 -1
  84. package/cjs/idx/flow/PasswordRecoveryFlow.js.map +1 -1
  85. package/cjs/idx/flow/index.js +20 -5
  86. package/cjs/idx/flow/index.js.map +1 -1
  87. package/cjs/idx/handleInteractionCodeRedirect.js +5 -1
  88. package/cjs/idx/handleInteractionCodeRedirect.js.map +1 -1
  89. package/cjs/idx/headers.js +21 -5
  90. package/cjs/idx/headers.js.map +1 -1
  91. package/cjs/idx/idx-js/client.js +91 -0
  92. package/cjs/idx/idx-js/client.js.map +1 -0
  93. package/cjs/idx/idx-js/index.js +40 -0
  94. package/cjs/idx/idx-js/index.js.map +1 -0
  95. package/cjs/idx/idx-js/interact.js +83 -0
  96. package/cjs/idx/idx-js/interact.js.map +1 -0
  97. package/cjs/idx/idx-js/introspect.js +62 -0
  98. package/cjs/idx/idx-js/introspect.js.map +1 -0
  99. package/cjs/idx/idx-js/parsers.js +41 -0
  100. package/cjs/idx/idx-js/parsers.js.map +1 -0
  101. package/cjs/idx/idx-js/util.js +34 -0
  102. package/cjs/idx/idx-js/util.js.map +1 -0
  103. package/cjs/idx/idx-js/v1/actionParser.js +90 -0
  104. package/cjs/idx/idx-js/v1/actionParser.js.map +1 -0
  105. package/cjs/idx/idx-js/v1/generateIdxAction.js +111 -0
  106. package/cjs/idx/idx-js/v1/generateIdxAction.js.map +1 -0
  107. package/cjs/idx/idx-js/v1/idxResponseParser.js +137 -0
  108. package/cjs/idx/idx-js/v1/idxResponseParser.js.map +1 -0
  109. package/cjs/idx/idx-js/v1/makeIdxState.js +65 -0
  110. package/cjs/idx/idx-js/v1/makeIdxState.js.map +1 -0
  111. package/cjs/idx/idx-js/v1/parsers.js +24 -0
  112. package/cjs/idx/idx-js/v1/parsers.js.map +1 -0
  113. package/cjs/idx/idx-js/v1/remediationParser.js +32 -0
  114. package/cjs/idx/idx-js/v1/remediationParser.js.map +1 -0
  115. package/cjs/idx/index.js +120 -121
  116. package/cjs/idx/index.js.map +1 -1
  117. package/cjs/idx/interact.js +9 -4
  118. package/cjs/idx/interact.js.map +1 -1
  119. package/cjs/idx/introspect.js +19 -9
  120. package/cjs/idx/introspect.js.map +1 -1
  121. package/cjs/idx/poll.js +13 -3
  122. package/cjs/idx/poll.js.map +1 -1
  123. package/cjs/idx/proceed.js +14 -11
  124. package/cjs/idx/proceed.js.map +1 -1
  125. package/cjs/idx/recoverPassword.js.map +1 -1
  126. package/cjs/idx/register.js +5 -1
  127. package/cjs/idx/register.js.map +1 -1
  128. package/cjs/idx/remediate.js +112 -88
  129. package/cjs/idx/remediate.js.map +1 -1
  130. package/cjs/idx/remediators/AuthenticatorEnrollmentData.js +16 -6
  131. package/cjs/idx/remediators/AuthenticatorEnrollmentData.js.map +1 -1
  132. package/cjs/idx/remediators/AuthenticatorVerificationData.js +61 -16
  133. package/cjs/idx/remediators/AuthenticatorVerificationData.js.map +1 -1
  134. package/cjs/idx/remediators/Base/AuthenticatorData.js +44 -20
  135. package/cjs/idx/remediators/Base/AuthenticatorData.js.map +1 -1
  136. package/cjs/idx/remediators/Base/Remediator.js +116 -82
  137. package/cjs/idx/remediators/Base/Remediator.js.map +1 -1
  138. package/cjs/idx/remediators/Base/SelectAuthenticator.js +58 -34
  139. package/cjs/idx/remediators/Base/SelectAuthenticator.js.map +1 -1
  140. package/cjs/idx/remediators/Base/VerifyAuthenticator.js +30 -7
  141. package/cjs/idx/remediators/Base/VerifyAuthenticator.js.map +1 -1
  142. package/cjs/idx/remediators/ChallengeAuthenticator.js +2 -2
  143. package/cjs/idx/remediators/ChallengePoll.js +10 -3
  144. package/cjs/idx/remediators/ChallengePoll.js.map +1 -1
  145. package/cjs/idx/remediators/EnrollAuthenticator.js +2 -2
  146. package/cjs/idx/remediators/EnrollPoll.js +16 -6
  147. package/cjs/idx/remediators/EnrollPoll.js.map +1 -1
  148. package/cjs/idx/remediators/EnrollProfile.js +34 -16
  149. package/cjs/idx/remediators/EnrollProfile.js.map +1 -1
  150. package/cjs/idx/remediators/EnrollmentChannelData.js +25 -17
  151. package/cjs/idx/remediators/EnrollmentChannelData.js.map +1 -1
  152. package/cjs/idx/remediators/Identify.js +16 -7
  153. package/cjs/idx/remediators/Identify.js.map +1 -1
  154. package/cjs/idx/remediators/ReEnrollAuthenticator.js +13 -10
  155. package/cjs/idx/remediators/ReEnrollAuthenticator.js.map +1 -1
  156. package/cjs/idx/remediators/RedirectIdp.js +2 -2
  157. package/cjs/idx/remediators/ResetAuthenticator.js +2 -2
  158. package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js +9 -6
  159. package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js.map +1 -1
  160. package/cjs/idx/remediators/SelectAuthenticatorEnroll.js +2 -2
  161. package/cjs/idx/remediators/SelectAuthenticatorUnlockAccount.js +71 -0
  162. package/cjs/idx/remediators/SelectAuthenticatorUnlockAccount.js.map +1 -0
  163. package/cjs/idx/remediators/SelectEnrollProfile.js +2 -2
  164. package/cjs/idx/remediators/SelectEnrollmentChannel.js +22 -10
  165. package/cjs/idx/remediators/SelectEnrollmentChannel.js.map +1 -1
  166. package/cjs/idx/remediators/Skip.js +5 -10
  167. package/cjs/idx/remediators/Skip.js.map +1 -1
  168. package/cjs/idx/remediators/index.js +33 -18
  169. package/cjs/idx/remediators/index.js.map +1 -1
  170. package/cjs/idx/remediators/util.js +13 -3
  171. package/cjs/idx/remediators/util.js.map +1 -1
  172. package/cjs/idx/run.js +276 -177
  173. package/cjs/idx/run.js.map +1 -1
  174. package/cjs/idx/startTransaction.js.map +1 -1
  175. package/cjs/idx/transactionMeta.js.map +1 -1
  176. package/cjs/idx/types/idx-js.js.map +1 -1
  177. package/cjs/idx/types/index.js +82 -9
  178. package/cjs/idx/types/index.js.map +1 -1
  179. package/cjs/idx/unlockAccount.js +48 -0
  180. package/cjs/idx/unlockAccount.js.map +1 -0
  181. package/cjs/idx/util.js +198 -0
  182. package/cjs/idx/util.js.map +1 -0
  183. package/cjs/index.js +20 -14
  184. package/cjs/index.js.map +1 -1
  185. package/cjs/oidc/endpoints/authorize.js +8 -2
  186. package/cjs/oidc/endpoints/authorize.js.map +1 -1
  187. package/cjs/oidc/endpoints/index.js +5 -3
  188. package/cjs/oidc/endpoints/index.js.map +1 -1
  189. package/cjs/oidc/endpoints/token.js +15 -3
  190. package/cjs/oidc/endpoints/token.js.map +1 -1
  191. package/cjs/oidc/endpoints/well-known.js +7 -3
  192. package/cjs/oidc/endpoints/well-known.js.map +1 -1
  193. package/cjs/oidc/exchangeCodeForTokens.js +10 -2
  194. package/cjs/oidc/exchangeCodeForTokens.js.map +1 -1
  195. package/cjs/oidc/getToken.js +9 -5
  196. package/cjs/oidc/getToken.js.map +1 -1
  197. package/cjs/oidc/getUserInfo.js +7 -3
  198. package/cjs/oidc/getUserInfo.js.map +1 -1
  199. package/cjs/oidc/getWithPopup.js +8 -2
  200. package/cjs/oidc/getWithPopup.js.map +1 -1
  201. package/cjs/oidc/getWithRedirect.js +5 -1
  202. package/cjs/oidc/getWithRedirect.js.map +1 -1
  203. package/cjs/oidc/getWithoutPrompt.js +8 -2
  204. package/cjs/oidc/getWithoutPrompt.js.map +1 -1
  205. package/cjs/oidc/handleOAuthResponse.js +9 -3
  206. package/cjs/oidc/handleOAuthResponse.js.map +1 -1
  207. package/cjs/oidc/index.js +4 -2
  208. package/cjs/oidc/index.js.map +1 -1
  209. package/cjs/oidc/parseFromUrl.js +9 -3
  210. package/cjs/oidc/parseFromUrl.js.map +1 -1
  211. package/cjs/oidc/renewToken.js.map +1 -1
  212. package/cjs/oidc/renewTokens.js +5 -1
  213. package/cjs/oidc/renewTokens.js.map +1 -1
  214. package/cjs/oidc/renewTokensWithRefresh.js +5 -1
  215. package/cjs/oidc/renewTokensWithRefresh.js.map +1 -1
  216. package/cjs/oidc/revokeToken.js +7 -3
  217. package/cjs/oidc/revokeToken.js.map +1 -1
  218. package/cjs/oidc/util/browser.js +5 -1
  219. package/cjs/oidc/util/browser.js.map +1 -1
  220. package/cjs/oidc/util/defaultTokenParams.js.map +1 -1
  221. package/cjs/oidc/util/errors.js.map +1 -1
  222. package/cjs/oidc/util/index.js +14 -12
  223. package/cjs/oidc/util/index.js.map +1 -1
  224. package/cjs/oidc/util/loginRedirect.js +5 -1
  225. package/cjs/oidc/util/loginRedirect.js.map +1 -1
  226. package/cjs/oidc/util/oauth.js +4 -2
  227. package/cjs/oidc/util/oauth.js.map +1 -1
  228. package/cjs/oidc/util/oauthMeta.js.map +1 -1
  229. package/cjs/oidc/util/pkce.js +11 -3
  230. package/cjs/oidc/util/pkce.js.map +1 -1
  231. package/cjs/oidc/util/prepareTokenParams.js +7 -5
  232. package/cjs/oidc/util/prepareTokenParams.js.map +1 -1
  233. package/cjs/oidc/util/validateClaims.js +1 -1
  234. package/cjs/oidc/util/validateClaims.js.map +1 -1
  235. package/cjs/oidc/verifyToken.js +11 -3
  236. package/cjs/oidc/verifyToken.js.map +1 -1
  237. package/cjs/options/browser.js +86 -0
  238. package/cjs/options/browser.js.map +1 -0
  239. package/cjs/options/index.js +94 -0
  240. package/cjs/options/index.js.map +1 -0
  241. package/cjs/options/node.js +45 -0
  242. package/cjs/options/node.js.map +1 -0
  243. package/cjs/options.js +17 -5
  244. package/cjs/options.js.map +1 -1
  245. package/cjs/server/serverStorage.js +8 -4
  246. package/cjs/server/serverStorage.js.map +1 -1
  247. package/cjs/services/AutoRenewService.js +94 -0
  248. package/cjs/services/AutoRenewService.js.map +1 -0
  249. package/cjs/services/SyncStorageService.js +93 -0
  250. package/cjs/services/SyncStorageService.js.map +1 -0
  251. package/cjs/services/index.js +30 -0
  252. package/cjs/services/index.js.map +1 -0
  253. package/cjs/tx/AuthTransaction.js +15 -9
  254. package/cjs/tx/AuthTransaction.js.map +1 -1
  255. package/cjs/tx/api.js +8 -4
  256. package/cjs/tx/api.js.map +1 -1
  257. package/cjs/tx/index.js +7 -5
  258. package/cjs/tx/index.js.map +1 -1
  259. package/cjs/tx/poll.js +6 -4
  260. package/cjs/tx/poll.js.map +1 -1
  261. package/cjs/tx/util.js +5 -1
  262. package/cjs/tx/util.js.map +1 -1
  263. package/cjs/types/Service.js +2 -0
  264. package/cjs/types/Service.js.map +1 -0
  265. package/cjs/types/Transaction.js +10 -2
  266. package/cjs/types/Transaction.js.map +1 -1
  267. package/cjs/types/index.js +29 -14
  268. package/cjs/types/index.js.map +1 -1
  269. package/cjs/util/index.js +7 -5
  270. package/cjs/util/index.js.map +1 -1
  271. package/cjs/util/misc.js +5 -1
  272. package/cjs/util/misc.js.map +1 -1
  273. package/cjs/util/object.js +16 -6
  274. package/cjs/util/object.js.map +1 -1
  275. package/cjs/util/sharedStorage.js +5 -1
  276. package/cjs/util/sharedStorage.js.map +1 -1
  277. package/dist/okta-auth-js.min.js +1 -1
  278. package/dist/okta-auth-js.min.js.LICENSE.txt +0 -20
  279. package/dist/okta-auth-js.min.js.map +1 -1
  280. package/dist/okta-auth-js.polyfill.js +1 -1
  281. package/dist/okta-auth-js.polyfill.js.map +1 -1
  282. package/dist/okta-auth-js.umd.js +1 -1
  283. package/dist/okta-auth-js.umd.js.LICENSE.txt +1 -19
  284. package/dist/okta-auth-js.umd.js.map +1 -1
  285. package/esm/{index.js → esm.browser.js} +2978 -2585
  286. package/esm/esm.browser.js.map +1 -0
  287. package/esm/esm.node.mjs +9595 -0
  288. package/esm/esm.node.mjs.map +1 -0
  289. package/lib/AuthStateManager.d.ts +3 -3
  290. package/lib/OktaAuth.d.ts +10 -6
  291. package/lib/PromiseQueue.d.ts +6 -2
  292. package/lib/ServiceManager.d.ts +38 -0
  293. package/lib/StorageManager.d.ts +1 -1
  294. package/lib/TokenManager.d.ts +2 -3
  295. package/lib/TransactionManager.d.ts +4 -5
  296. package/lib/browser/fingerprint.d.ts +2 -3
  297. package/lib/crypto/base64.d.ts +2 -0
  298. package/lib/crypto/webauthn.d.ts +25 -0
  299. package/lib/http/headers.d.ts +2 -2
  300. package/lib/http/request.d.ts +4 -4
  301. package/lib/idx/authenticate.d.ts +2 -2
  302. package/lib/idx/authenticator/Authenticator.d.ts +4 -5
  303. package/lib/idx/authenticator/OktaPassword.d.ts +8 -9
  304. package/lib/idx/authenticator/OktaVerifyTotp.d.ts +1 -1
  305. package/lib/idx/authenticator/SecurityQuestionEnrollment.d.ts +11 -12
  306. package/lib/idx/authenticator/SecurityQuestionVerification.d.ts +7 -7
  307. package/lib/idx/authenticator/VerificationCodeAuthenticator.d.ts +8 -3
  308. package/lib/idx/authenticator/WebauthnEnrollment.d.ts +16 -0
  309. package/lib/idx/authenticator/WebauthnVerification.d.ts +17 -0
  310. package/lib/idx/authenticator/getAuthenticator.d.ts +1 -1
  311. package/lib/idx/authenticator/index.d.ts +9 -0
  312. package/lib/idx/authenticator/util.d.ts +4 -0
  313. package/lib/idx/cancel.d.ts +2 -2
  314. package/lib/idx/emailVerify.d.ts +2 -2
  315. package/lib/idx/flow/AccountUnlockFlow.d.ts +13 -0
  316. package/lib/idx/flow/FlowSpecification.d.ts +2 -2
  317. package/lib/idx/flow/index.d.ts +1 -0
  318. package/lib/idx/headers.d.ts +3 -2
  319. package/lib/idx/idx-js/client.d.ts +36 -0
  320. package/lib/idx/idx-js/index.d.ts +35 -0
  321. package/lib/idx/idx-js/interact.d.ts +25 -0
  322. package/lib/idx/idx-js/introspect.d.ts +21 -0
  323. package/lib/idx/idx-js/parsers.d.ts +15 -0
  324. package/lib/idx/idx-js/util.d.ts +12 -0
  325. package/lib/idx/idx-js/v1/actionParser.d.ts +16 -0
  326. package/lib/idx/idx-js/v1/generateIdxAction.d.ts +13 -0
  327. package/lib/idx/idx-js/v1/idxResponseParser.d.ts +20 -0
  328. package/lib/idx/idx-js/v1/makeIdxState.d.ts +13 -0
  329. package/lib/idx/idx-js/v1/parsers.d.ts +16 -0
  330. package/lib/idx/idx-js/v1/remediationParser.d.ts +12 -0
  331. package/lib/idx/index.d.ts +12 -11
  332. package/lib/idx/interact.d.ts +3 -2
  333. package/lib/idx/introspect.d.ts +2 -2
  334. package/lib/idx/poll.d.ts +2 -2
  335. package/lib/idx/proceed.d.ts +5 -6
  336. package/lib/idx/recoverPassword.d.ts +2 -2
  337. package/lib/idx/register.d.ts +2 -2
  338. package/lib/idx/remediate.d.ts +2 -2
  339. package/lib/idx/remediators/AuthenticatorVerificationData.d.ts +6 -5
  340. package/lib/idx/remediators/Base/AuthenticatorData.d.ts +5 -8
  341. package/lib/idx/remediators/Base/Remediator.d.ts +6 -5
  342. package/lib/idx/remediators/Base/SelectAuthenticator.d.ts +9 -8
  343. package/lib/idx/remediators/Base/VerifyAuthenticator.d.ts +9 -16
  344. package/lib/idx/remediators/ChallengePoll.d.ts +1 -0
  345. package/lib/idx/remediators/EnrollProfile.d.ts +0 -3
  346. package/lib/idx/remediators/EnrollmentChannelData.d.ts +1 -4
  347. package/lib/idx/remediators/Identify.d.ts +3 -5
  348. package/lib/idx/remediators/ReEnrollAuthenticator.d.ts +2 -5
  349. package/lib/idx/remediators/SelectAuthenticatorAuthenticate.d.ts +2 -1
  350. package/lib/idx/remediators/SelectAuthenticatorUnlockAccount.d.ts +37 -0
  351. package/lib/idx/remediators/SelectEnrollmentChannel.d.ts +1 -0
  352. package/lib/idx/remediators/Skip.d.ts +0 -3
  353. package/lib/idx/remediators/index.d.ts +1 -0
  354. package/lib/idx/run.d.ts +2 -2
  355. package/lib/idx/startTransaction.d.ts +2 -2
  356. package/lib/idx/transactionMeta.d.ts +7 -7
  357. package/lib/idx/types/FlowIdentifier.d.ts +1 -1
  358. package/lib/idx/types/idx-js.d.ts +41 -1
  359. package/lib/idx/types/index.d.ts +27 -7
  360. package/lib/idx/unlockAccount.d.ts +15 -0
  361. package/lib/idx/util.d.ts +11 -0
  362. package/lib/oidc/endpoints/well-known.d.ts +3 -3
  363. package/lib/oidc/exchangeCodeForTokens.d.ts +2 -2
  364. package/lib/oidc/getToken.d.ts +2 -2
  365. package/lib/oidc/getWithPopup.d.ts +2 -2
  366. package/lib/oidc/getWithRedirect.d.ts +2 -2
  367. package/lib/oidc/getWithoutPrompt.d.ts +2 -2
  368. package/lib/oidc/handleOAuthResponse.d.ts +2 -2
  369. package/lib/oidc/renewToken.d.ts +2 -2
  370. package/lib/oidc/renewTokensWithRefresh.d.ts +2 -2
  371. package/lib/oidc/revokeToken.d.ts +2 -2
  372. package/lib/oidc/util/browser.d.ts +2 -2
  373. package/lib/oidc/util/defaultTokenParams.d.ts +2 -2
  374. package/lib/oidc/util/errors.d.ts +2 -2
  375. package/lib/oidc/util/loginRedirect.d.ts +4 -4
  376. package/lib/oidc/util/oauth.d.ts +4 -4
  377. package/lib/oidc/util/oauthMeta.d.ts +2 -2
  378. package/lib/oidc/util/prepareTokenParams.d.ts +5 -5
  379. package/lib/oidc/util/validateClaims.d.ts +2 -2
  380. package/lib/oidc/verifyToken.d.ts +2 -2
  381. package/lib/options/browser.d.ts +16 -0
  382. package/lib/options/index.d.ts +14 -0
  383. package/lib/options/node.d.ts +16 -0
  384. package/lib/services/AutoRenewService.d.ts +27 -0
  385. package/lib/services/{TokenService.d.ts → SyncStorageService.d.ts} +8 -5
  386. package/lib/services/index.d.ts +13 -0
  387. package/lib/types/OktaAuthOptions.d.ts +6 -2
  388. package/lib/types/Service.d.ts +23 -0
  389. package/lib/types/Storage.d.ts +7 -5
  390. package/lib/types/Transaction.d.ts +2 -10
  391. package/lib/types/api.d.ts +23 -10
  392. package/lib/types/index.d.ts +1 -1
  393. package/lib/util/sharedStorage.d.ts +1 -1
  394. package/package.json +32 -14
  395. package/polyfill/index.js +1 -0
  396. package/cjs/services/TokenService.js +0 -111
  397. package/cjs/services/TokenService.js.map +0 -1
  398. package/esm/index.js.map +0 -1
package/cjs/idx/run.js CHANGED
@@ -10,17 +10,15 @@ var _remediate = require("./remediate");
10
10
 
11
11
  var _flow = require("./flow");
12
12
 
13
- var remediators = _interopRequireWildcard(require("./remediators"));
14
-
15
13
  var _types = require("../types");
16
14
 
17
15
  var _idxJs = require("./types/idx-js");
18
16
 
19
17
  var _transactionMeta = require("./transactionMeta");
20
18
 
21
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
+ var _util = require("./util");
22
20
 
23
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
+ /* eslint-disable @typescript-eslint/no-non-null-assertion */
24
22
 
25
23
  /*!
26
24
  * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
@@ -35,103 +33,83 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
35
33
  */
36
34
 
37
35
  /* eslint-disable max-statements, complexity, max-depth */
38
- function getEnabledFeatures(idxResponse) {
39
- const res = [];
40
- const {
41
- actions,
42
- neededToProceed
43
- } = idxResponse;
44
-
45
- if (actions['currentAuthenticator-recover']) {
46
- res.push(_types.IdxFeature.PASSWORD_RECOVERY);
47
- }
48
-
49
- if (neededToProceed.some(({
50
- name
51
- }) => name === 'select-enroll-profile')) {
52
- res.push(_types.IdxFeature.REGISTRATION);
53
- }
54
-
55
- if (neededToProceed.some(({
56
- name
57
- }) => name === 'redirect-idp')) {
58
- res.push(_types.IdxFeature.SOCIAL_IDP);
59
- }
60
-
61
- return res;
36
+ function initializeValues(options) {
37
+ // remove known options, everything else is assumed to be a value
38
+ const knownOptions = ['flow', 'remediators', 'actions', 'withCredentials', 'step'];
39
+ const values = { ...options
40
+ };
41
+ knownOptions.forEach(option => {
42
+ delete values[option];
43
+ });
44
+ return values;
62
45
  }
63
46
 
64
- function getAvailableSteps(idxResponse) {
65
- const res = [];
66
- const remediatorMap = Object.values(remediators).reduce((map, remediatorClass) => {
67
- // Only add concrete subclasses to the map
68
- if (remediatorClass.remediationName) {
69
- map[remediatorClass.remediationName] = remediatorClass;
70
- }
71
-
72
- return map;
73
- }, {});
74
-
75
- for (let remediation of idxResponse.neededToProceed) {
76
- const T = remediatorMap[remediation.name];
77
-
78
- if (T) {
79
- const remediator = new T(remediation);
80
- res.push(remediator.getNextStep(idxResponse.context));
81
- }
47
+ function initializeData(authClient, data) {
48
+ const {
49
+ options
50
+ } = data;
51
+ let {
52
+ flow,
53
+ withCredentials,
54
+ remediators,
55
+ actions
56
+ } = options;
57
+ const status = _types.IdxStatus.PENDING; // certain options can be set by the flow specification
58
+
59
+ flow = flow || authClient.idx.getFlow() || 'default';
60
+
61
+ if (flow) {
62
+ authClient.idx.setFlow(flow);
63
+ const flowSpec = (0, _flow.getFlowSpecification)(authClient, flow); // Favor option values over flow spec
64
+
65
+ withCredentials = typeof withCredentials !== 'undefined' ? withCredentials : flowSpec.withCredentials;
66
+ remediators = remediators || flowSpec.remediators;
67
+ actions = actions || flowSpec.actions;
82
68
  }
83
69
 
84
- return res;
70
+ return { ...data,
71
+ options: { ...options,
72
+ flow,
73
+ withCredentials,
74
+ remediators,
75
+ actions
76
+ },
77
+ status
78
+ };
85
79
  }
86
80
 
87
- async function run(authClient, options = {}) {
88
- let tokens;
89
- let nextStep;
90
- let messages;
91
- let error;
92
- let meta;
93
- let enabledFeatures;
94
- let availableSteps;
95
- let status = _types.IdxStatus.PENDING;
96
- let shouldClearTransaction = false;
97
- let clearSharedStorage = true;
81
+ async function getDataFromIntrospect(authClient, data) {
82
+ const {
83
+ options
84
+ } = data;
85
+ const {
86
+ stateHandle,
87
+ withCredentials,
88
+ version,
89
+ state,
90
+ scopes,
91
+ recoveryToken,
92
+ activationToken
93
+ } = options;
98
94
  let idxResponse;
99
- let interactionHandle;
100
- let metaFromResp;
101
- let interactionCode;
102
-
103
- try {
104
- var _metaFromResp;
95
+ let meta;
105
96
 
106
- let {
107
- flow,
108
- state,
109
- scopes,
110
- version,
111
- remediators,
112
- actions,
97
+ if (stateHandle) {
98
+ idxResponse = await (0, _introspect.introspect)(authClient, {
113
99
  withCredentials,
114
- exchangeCodeForTokens,
115
- autoRemediate,
116
- step
117
- } = options; // Only one flow can be operating at a time
118
-
119
- flow = flow || authClient.idx.getFlow() || 'default';
120
-
121
- if (flow) {
122
- authClient.idx.setFlow(flow);
123
- const flowSpec = (0, _flow.getFlowSpecification)(authClient, flow); // Favor option values over flow spec
124
-
125
- withCredentials = typeof withCredentials !== 'undefined' ? withCredentials : flowSpec.withCredentials;
126
- remediators = remediators || flowSpec.remediators;
127
- actions = actions || flowSpec.actions;
128
- } // Try to resume saved transaction
129
-
100
+ version,
101
+ stateHandle
102
+ });
103
+ } else {
104
+ var _meta;
130
105
 
131
- metaFromResp = (0, _transactionMeta.getSavedTransactionMeta)(authClient, {
132
- state
106
+ // Try to resume saved transaction
107
+ meta = (0, _transactionMeta.getSavedTransactionMeta)(authClient, {
108
+ state,
109
+ recoveryToken,
110
+ activationToken
133
111
  });
134
- interactionHandle = (_metaFromResp = metaFromResp) === null || _metaFromResp === void 0 ? void 0 : _metaFromResp.interactionHandle; // may be undefined
112
+ let interactionHandle = (_meta = meta) === null || _meta === void 0 ? void 0 : _meta.interactionHandle; // may be undefined
135
113
 
136
114
  if (!interactionHandle) {
137
115
  // start a new transaction
@@ -139,11 +117,12 @@ async function run(authClient, options = {}) {
139
117
  const interactResponse = await (0, _interact.interact)(authClient, {
140
118
  withCredentials,
141
119
  state,
142
- scopes
120
+ scopes,
121
+ activationToken,
122
+ recoveryToken
143
123
  });
144
124
  interactionHandle = interactResponse.interactionHandle;
145
- metaFromResp = interactResponse.meta;
146
- withCredentials = metaFromResp.withCredentials;
125
+ meta = interactResponse.meta;
147
126
  } // Introspect to get idx response
148
127
 
149
128
 
@@ -152,94 +131,214 @@ async function run(authClient, options = {}) {
152
131
  version,
153
132
  interactionHandle
154
133
  });
155
- enabledFeatures = getEnabledFeatures(idxResponse);
156
- availableSteps = getAvailableSteps(idxResponse); // Include meta in the transaction response
134
+ }
157
135
 
158
- meta = metaFromResp;
136
+ return { ...data,
137
+ idxResponse,
138
+ meta
139
+ };
140
+ }
159
141
 
160
- if (autoRemediate !== false && (remediators || actions)) {
161
- var _idxResponse;
142
+ async function getDataFromRemediate(data) {
143
+ let {
144
+ idxResponse,
145
+ options,
146
+ values
147
+ } = data;
148
+ const {
149
+ autoRemediate,
150
+ remediators,
151
+ actions,
152
+ flow,
153
+ step
154
+ } = options;
155
+ const shouldRemediate = autoRemediate !== false && (remediators || actions || step);
162
156
 
163
- const values = { ...options,
164
- stateHandle: idxResponse.rawIdxState.stateHandle
165
- }; // Can we handle the remediations?
157
+ if (!shouldRemediate) {
158
+ return data;
159
+ }
166
160
 
167
- const {
168
- idxResponse: idxResponseFromResp,
169
- nextStep: nextStepFromResp,
170
- terminal,
171
- canceled,
172
- messages: messagesFromResp
173
- } = await (0, _remediate.remediate)(idxResponse, values, {
174
- remediators,
175
- actions,
176
- flow,
177
- step
178
- });
179
- idxResponse = idxResponseFromResp || idxResponse; // Track fields from remediation response
180
-
181
- nextStep = nextStepFromResp;
182
- messages = messagesFromResp; // Save intermediate idx response in storage to reduce introspect call
183
-
184
- if (nextStep) {
185
- authClient.transactionManager.saveIdxResponse(idxResponse.rawIdxState);
186
- availableSteps = getAvailableSteps(idxResponse);
187
- }
188
-
189
- if (terminal) {
190
- status = _types.IdxStatus.TERMINAL;
191
- shouldClearTransaction = true;
192
- clearSharedStorage = false; // transaction may be continued in another tab
193
- }
194
-
195
- if (canceled) {
196
- status = _types.IdxStatus.CANCELED;
197
- shouldClearTransaction = true;
198
- } else if ((_idxResponse = idxResponse) !== null && _idxResponse !== void 0 && _idxResponse.interactionCode) {
199
- interactionCode = idxResponse.interactionCode;
200
-
201
- if (exchangeCodeForTokens === false) {
202
- status = _types.IdxStatus.SUCCESS;
203
- shouldClearTransaction = false;
204
- } else {
205
- // exchange the interaction code for tokens
206
- const {
207
- clientId,
208
- codeVerifier,
209
- ignoreSignature,
210
- redirectUri,
211
- urls,
212
- scopes
213
- } = metaFromResp;
214
- tokens = await authClient.token.exchangeCodeForTokens({
215
- interactionCode,
216
- clientId,
217
- codeVerifier,
218
- ignoreSignature,
219
- redirectUri,
220
- scopes
221
- }, urls);
222
- status = _types.IdxStatus.SUCCESS;
223
- shouldClearTransaction = true;
224
- }
225
- }
226
- }
227
- } catch (err) {
228
- // current version of idx-js will throw/reject IDX responses. Handle these differently than regular errors
229
- if ((0, _idxJs.isIdxResponse)(err)) {
230
- error = err;
231
- status = _types.IdxStatus.FAILURE;
232
- shouldClearTransaction = true;
161
+ values = { ...values,
162
+ stateHandle: idxResponse.rawIdxState.stateHandle
163
+ }; // Can we handle the remediations?
164
+
165
+ const {
166
+ idxResponse: idxResponseFromRemediation,
167
+ nextStep,
168
+ canceled
169
+ } = await (0, _remediate.remediate)(idxResponse, values, {
170
+ remediators,
171
+ actions,
172
+ flow,
173
+ step
174
+ });
175
+ idxResponse = idxResponseFromRemediation;
176
+ return { ...data,
177
+ idxResponse,
178
+ nextStep,
179
+ canceled
180
+ };
181
+ }
182
+
183
+ async function getTokens(authClient, data) {
184
+ let {
185
+ meta,
186
+ idxResponse
187
+ } = data;
188
+ const {
189
+ interactionCode
190
+ } = idxResponse;
191
+ const {
192
+ clientId,
193
+ codeVerifier,
194
+ ignoreSignature,
195
+ redirectUri,
196
+ urls,
197
+ scopes
198
+ } = meta;
199
+ const tokenResponse = await authClient.token.exchangeCodeForTokens({
200
+ interactionCode,
201
+ clientId,
202
+ codeVerifier,
203
+ ignoreSignature,
204
+ redirectUri,
205
+ scopes
206
+ }, urls);
207
+ return tokenResponse.tokens;
208
+ }
209
+
210
+ async function finalizeData(authClient, data) {
211
+ let {
212
+ options,
213
+ idxResponse,
214
+ canceled,
215
+ status
216
+ } = data;
217
+ const {
218
+ exchangeCodeForTokens
219
+ } = options;
220
+ let shouldClearTransaction = false;
221
+ let clearSharedStorage = true;
222
+ let interactionCode;
223
+ let tokens;
224
+ let enabledFeatures;
225
+ let availableSteps;
226
+ let messages;
227
+ let terminal;
228
+
229
+ if (idxResponse) {
230
+ enabledFeatures = (0, _util.getEnabledFeatures)(idxResponse);
231
+ availableSteps = (0, _util.getAvailableSteps)(idxResponse);
232
+ messages = (0, _util.getMessagesFromResponse)(idxResponse);
233
+ terminal = (0, _util.isTerminalResponse)(idxResponse);
234
+ }
235
+
236
+ if (terminal) {
237
+ status = _types.IdxStatus.TERMINAL;
238
+ shouldClearTransaction = true;
239
+ clearSharedStorage = false;
240
+ } else if (canceled) {
241
+ status = _types.IdxStatus.CANCELED;
242
+ shouldClearTransaction = true;
243
+ } else if (idxResponse !== null && idxResponse !== void 0 && idxResponse.interactionCode) {
244
+ interactionCode = idxResponse.interactionCode;
245
+
246
+ if (exchangeCodeForTokens === false) {
247
+ status = _types.IdxStatus.SUCCESS;
248
+ shouldClearTransaction = false;
233
249
  } else {
234
- // error is not an IDX response, throw it like a regular error
235
- throw err;
250
+ tokens = await getTokens(authClient, data);
251
+ status = _types.IdxStatus.SUCCESS;
252
+ shouldClearTransaction = true;
236
253
  }
237
254
  }
238
255
 
256
+ return { ...data,
257
+ status,
258
+ interactionCode,
259
+ tokens,
260
+ shouldClearTransaction,
261
+ clearSharedStorage,
262
+ enabledFeatures,
263
+ availableSteps,
264
+ messages,
265
+ terminal
266
+ };
267
+ }
268
+
269
+ function handleError(err, data) {
270
+ let {
271
+ error,
272
+ status,
273
+ shouldClearTransaction
274
+ } = data; // current version of idx-js will throw/reject IDX responses. Handle these differently than regular errors
275
+
276
+ if ((0, _idxJs.isIdxResponse)(err)) {
277
+ error = err;
278
+ status = _types.IdxStatus.FAILURE;
279
+ shouldClearTransaction = true;
280
+ } else {
281
+ // error is not an IDX response, throw it like a regular error
282
+ throw err;
283
+ }
284
+
285
+ return { ...data,
286
+ error,
287
+ status,
288
+ shouldClearTransaction
289
+ };
290
+ }
291
+
292
+ async function run(authClient, options = {}) {
293
+ let data = {
294
+ options,
295
+ values: initializeValues(options)
296
+ };
297
+ data = initializeData(authClient, data);
298
+
299
+ try {
300
+ data = await getDataFromIntrospect(authClient, data);
301
+ data = await getDataFromRemediate(data);
302
+ } catch (err) {
303
+ data = handleError(err, data);
304
+ }
305
+
306
+ data = await finalizeData(authClient, data);
307
+ const {
308
+ idxResponse,
309
+ meta,
310
+ shouldClearTransaction,
311
+ clearSharedStorage,
312
+ status,
313
+ enabledFeatures,
314
+ availableSteps,
315
+ tokens,
316
+ nextStep,
317
+ messages,
318
+ error,
319
+ interactionCode
320
+ } = data;
321
+
239
322
  if (shouldClearTransaction) {
240
323
  authClient.transactionManager.clear({
241
324
  clearSharedStorage
242
325
  });
326
+ } else {
327
+ // ensures state is saved to sessionStorage
328
+ (0, _transactionMeta.saveTransactionMeta)(authClient, { ...meta
329
+ });
330
+
331
+ if (idxResponse) {
332
+ // Save intermediate idx response in storage to reduce introspect call
333
+ const {
334
+ rawIdxState: rawIdxResponse,
335
+ requestDidSucceed
336
+ } = idxResponse;
337
+ authClient.transactionManager.saveIdxResponse({
338
+ rawIdxResponse,
339
+ requestDidSucceed
340
+ });
341
+ }
243
342
  } // from idx-js, used by the widget
244
343
 
245
344
 
@@ -251,7 +350,7 @@ async function run(authClient, options = {}) {
251
350
  rawIdxState
252
351
  } = idxResponse || {};
253
352
  return {
254
- status,
353
+ status: status,
255
354
  ...(meta && {
256
355
  meta
257
356
  }),
@@ -262,12 +361,12 @@ async function run(authClient, options = {}) {
262
361
  availableSteps
263
362
  }),
264
363
  ...(tokens && {
265
- tokens: tokens.tokens
364
+ tokens
266
365
  }),
267
366
  ...(nextStep && {
268
367
  nextStep
269
368
  }),
270
- ...(messages && {
369
+ ...(messages && messages.length && {
271
370
  messages
272
371
  }),
273
372
  ...(error && {
@@ -276,11 +375,11 @@ async function run(authClient, options = {}) {
276
375
  interactionCode,
277
376
  // if options.exchangeCodeForTokens is false
278
377
  // from idx-js
279
- actions,
280
- context,
281
- neededToProceed,
282
- proceed,
283
- rawIdxState
378
+ actions: actions,
379
+ context: context,
380
+ neededToProceed: neededToProceed,
381
+ proceed: proceed,
382
+ rawIdxState: rawIdxState
284
383
  };
285
384
  }
286
385
  //# sourceMappingURL=run.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/idx/run.ts"],"names":["getEnabledFeatures","idxResponse","res","actions","neededToProceed","push","IdxFeature","PASSWORD_RECOVERY","some","name","REGISTRATION","SOCIAL_IDP","getAvailableSteps","remediatorMap","Object","values","remediators","reduce","map","remediatorClass","remediationName","remediation","T","remediator","getNextStep","context","run","authClient","options","tokens","nextStep","messages","error","meta","enabledFeatures","availableSteps","status","IdxStatus","PENDING","shouldClearTransaction","clearSharedStorage","interactionHandle","metaFromResp","interactionCode","flow","state","scopes","version","withCredentials","exchangeCodeForTokens","autoRemediate","step","idx","getFlow","setFlow","flowSpec","transactionManager","clear","interactResponse","stateHandle","rawIdxState","idxResponseFromResp","nextStepFromResp","terminal","canceled","messagesFromResp","saveIdxResponse","TERMINAL","CANCELED","SUCCESS","clientId","codeVerifier","ignoreSignature","redirectUri","urls","token","err","FAILURE","proceed"],"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\n\n/* eslint-disable max-statements, complexity, max-depth */\nimport { interact } from './interact';\nimport { introspect } from './introspect';\nimport { remediate, RemediateOptions } from './remediate';\nimport { getFlowSpecification, RemediationFlow } from './flow';\nimport * as remediators from './remediators';\nimport { \n OktaAuth,\n IdxStatus,\n IdxTransaction,\n IdxFeature,\n NextStep,\n FlowIdentifier,\n} from '../types';\nimport { IdxResponse, isIdxResponse } from './types/idx-js';\nimport { getSavedTransactionMeta } from './transactionMeta';\nimport { ProceedOptions } from './proceed';\n\nexport type RunOptions = ProceedOptions & RemediateOptions & {\n flow?: FlowIdentifier;\n remediators?: RemediationFlow;\n actions?: string[];\n withCredentials?: boolean;\n}\n\nfunction getEnabledFeatures(idxResponse: IdxResponse): IdxFeature[] {\n const res = [];\n const { actions, neededToProceed } = idxResponse;\n\n if (actions['currentAuthenticator-recover']) {\n res.push(IdxFeature.PASSWORD_RECOVERY as never);\n }\n\n if (neededToProceed.some(({ name }) => name === 'select-enroll-profile')) {\n res.push(IdxFeature.REGISTRATION as never);\n }\n\n if (neededToProceed.some(({ name }) => name === 'redirect-idp')) {\n res.push(IdxFeature.SOCIAL_IDP as never);\n }\n\n return res;\n}\n\nfunction getAvailableSteps(idxResponse: IdxResponse): NextStep[] {\n const res = [];\n\n const remediatorMap = Object.values(remediators).reduce((map, remediatorClass) => {\n // Only add concrete subclasses to the map\n if (remediatorClass.remediationName) {\n map[remediatorClass.remediationName] = remediatorClass;\n }\n return map;\n }, {});\n\n for (let remediation of idxResponse.neededToProceed) {\n const T = remediatorMap[remediation.name];\n if (T) {\n const remediator = new T(remediation);\n res.push (remediator.getNextStep(idxResponse.context) as never);\n }\n }\n\n return res;\n}\n\nexport async function run(\n authClient: OktaAuth, \n options: RunOptions = {},\n): Promise<IdxTransaction> {\n let tokens;\n let nextStep;\n let messages;\n let error;\n let meta;\n let enabledFeatures;\n let availableSteps;\n let status = IdxStatus.PENDING;\n let shouldClearTransaction = false;\n let clearSharedStorage = true;\n let idxResponse;\n let interactionHandle;\n let metaFromResp;\n let interactionCode;\n\n try {\n\n let {\n flow,\n state,\n scopes,\n version,\n remediators,\n actions,\n withCredentials,\n exchangeCodeForTokens,\n autoRemediate,\n step\n } = options;\n\n // Only one flow can be operating at a time\n flow = flow || authClient.idx.getFlow() || 'default';\n if (flow) {\n authClient.idx.setFlow(flow);\n const flowSpec = getFlowSpecification(authClient, flow);\n // Favor option values over flow spec\n withCredentials = (typeof withCredentials !== 'undefined') ? withCredentials : flowSpec.withCredentials;\n remediators = remediators || flowSpec.remediators;\n actions = actions || flowSpec.actions;\n }\n\n // Try to resume saved transaction\n metaFromResp = getSavedTransactionMeta(authClient, { state });\n interactionHandle = metaFromResp?.interactionHandle; // may be undefined\n\n if (!interactionHandle) {\n // start a new transaction\n authClient.transactionManager.clear();\n const interactResponse = await interact(authClient, { withCredentials, state, scopes }); \n interactionHandle = interactResponse.interactionHandle;\n metaFromResp = interactResponse.meta;\n withCredentials = metaFromResp.withCredentials;\n }\n\n // Introspect to get idx response\n idxResponse = await introspect(authClient, { withCredentials, version, interactionHandle });\n enabledFeatures = getEnabledFeatures(idxResponse);\n availableSteps = getAvailableSteps(idxResponse);\n \n // Include meta in the transaction response\n meta = metaFromResp;\n\n if (autoRemediate !== false && (remediators || actions)) {\n const values: remediators.RemediationValues = { \n ...options, \n stateHandle: idxResponse.rawIdxState.stateHandle \n };\n\n // Can we handle the remediations?\n const { \n idxResponse: idxResponseFromResp, \n nextStep: nextStepFromResp,\n terminal,\n canceled,\n messages: messagesFromResp,\n } = await remediate(idxResponse, values, { remediators, actions, flow, step });\n idxResponse = idxResponseFromResp || idxResponse;\n\n // Track fields from remediation response\n nextStep = nextStepFromResp;\n messages = messagesFromResp;\n\n // Save intermediate idx response in storage to reduce introspect call\n if (nextStep) {\n authClient.transactionManager.saveIdxResponse(idxResponse.rawIdxState);\n availableSteps = getAvailableSteps(idxResponse);\n }\n\n if (terminal) {\n status = IdxStatus.TERMINAL;\n shouldClearTransaction = true;\n clearSharedStorage = false; // transaction may be continued in another tab\n } if (canceled) {\n status = IdxStatus.CANCELED;\n shouldClearTransaction = true;\n } else if (idxResponse?.interactionCode) { \n interactionCode = idxResponse.interactionCode;\n\n if (exchangeCodeForTokens === false) {\n status = IdxStatus.SUCCESS;\n shouldClearTransaction = false;\n } else {\n // exchange the interaction code for tokens\n const {\n clientId,\n codeVerifier,\n ignoreSignature,\n redirectUri,\n urls,\n scopes,\n } = metaFromResp;\n tokens = await authClient.token.exchangeCodeForTokens({\n interactionCode,\n clientId,\n codeVerifier,\n ignoreSignature,\n redirectUri,\n scopes\n }, urls);\n\n status = IdxStatus.SUCCESS;\n shouldClearTransaction = true;\n }\n }\n }\n } catch (err) {\n // current version of idx-js will throw/reject IDX responses. Handle these differently than regular errors\n if (isIdxResponse(err)) {\n error = err;\n status = IdxStatus.FAILURE;\n shouldClearTransaction = true;\n } else {\n // error is not an IDX response, throw it like a regular error\n throw err;\n }\n\n }\n\n if (shouldClearTransaction) {\n authClient.transactionManager.clear({ clearSharedStorage });\n }\n \n // from idx-js, used by the widget\n const { actions, context, neededToProceed, proceed, rawIdxState } = idxResponse || {};\n return {\n status,\n ...(meta && { meta }),\n ...(enabledFeatures && { enabledFeatures }),\n ...(availableSteps && { availableSteps }),\n ...(tokens && { tokens: tokens.tokens }),\n ...(nextStep && { nextStep }),\n ...(messages && { messages }),\n ...(error && { error }),\n interactionCode, // if options.exchangeCodeForTokens is false\n\n // from idx-js\n actions,\n context,\n neededToProceed,\n proceed,\n rawIdxState,\n };\n}\n"],"file":"run.js"}
1
+ {"version":3,"sources":["../../../lib/idx/run.ts"],"names":["initializeValues","options","knownOptions","values","forEach","option","initializeData","authClient","data","flow","withCredentials","remediators","actions","status","IdxStatus","PENDING","idx","getFlow","setFlow","flowSpec","getDataFromIntrospect","stateHandle","version","state","scopes","recoveryToken","activationToken","idxResponse","meta","interactionHandle","transactionManager","clear","interactResponse","getDataFromRemediate","autoRemediate","step","shouldRemediate","rawIdxState","idxResponseFromRemediation","nextStep","canceled","getTokens","interactionCode","clientId","codeVerifier","ignoreSignature","redirectUri","urls","tokenResponse","token","exchangeCodeForTokens","tokens","finalizeData","shouldClearTransaction","clearSharedStorage","enabledFeatures","availableSteps","messages","terminal","TERMINAL","CANCELED","SUCCESS","handleError","err","error","FAILURE","run","rawIdxResponse","requestDidSucceed","saveIdxResponse","context","neededToProceed","proceed","length"],"mappings":";;;;AAeA;;AACA;;AACA;;AACA;;AAEA;;AAWA;;AACA;;AAEA;;AAlCA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AAgDA,SAASA,gBAAT,CAA0BC,OAA1B,EAA+C;AAC7C;AACA,QAAMC,YAAY,GAAG,CAAC,MAAD,EAAS,aAAT,EAAwB,SAAxB,EAAmC,iBAAnC,EAAsD,MAAtD,CAArB;AACA,QAAMC,MAAM,GAAG,EAAE,GAAGF;AAAL,GAAf;AACAC,EAAAA,YAAY,CAACE,OAAb,CAAqBC,MAAM,IAAI;AAC7B,WAAOF,MAAM,CAACE,MAAD,CAAb;AACD,GAFD;AAGA,SAAOF,MAAP;AACD;;AAED,SAASG,cAAT,CAAwBC,UAAxB,EAAoCC,IAApC,EAA4D;AAC1D,QAAM;AAAEP,IAAAA;AAAF,MAAcO,IAApB;AACA,MAAI;AACFC,IAAAA,IADE;AAEFC,IAAAA,eAFE;AAGFC,IAAAA,WAHE;AAIFC,IAAAA;AAJE,MAKAX,OALJ;AAOA,QAAMY,MAAM,GAAGC,iBAAUC,OAAzB,CAT0D,CAW1D;;AACAN,EAAAA,IAAI,GAAGA,IAAI,IAAIF,UAAU,CAACS,GAAX,CAAeC,OAAf,EAAR,IAAoC,SAA3C;;AACA,MAAIR,IAAJ,EAAU;AACRF,IAAAA,UAAU,CAACS,GAAX,CAAeE,OAAf,CAAuBT,IAAvB;AACA,UAAMU,QAAQ,GAAG,gCAAqBZ,UAArB,EAAiCE,IAAjC,CAAjB,CAFQ,CAGR;;AACAC,IAAAA,eAAe,GAAI,OAAOA,eAAP,KAA2B,WAA5B,GAA2CA,eAA3C,GAA6DS,QAAQ,CAACT,eAAxF;AACAC,IAAAA,WAAW,GAAGA,WAAW,IAAIQ,QAAQ,CAACR,WAAtC;AACAC,IAAAA,OAAO,GAAGA,OAAO,IAAIO,QAAQ,CAACP,OAA9B;AACD;;AACD,SAAO,EACL,GAAGJ,IADE;AAELP,IAAAA,OAAO,EAAE,EAAE,GAAGA,OAAL;AAAcQ,MAAAA,IAAd;AAAoBC,MAAAA,eAApB;AAAqCC,MAAAA,WAArC;AAAkDC,MAAAA;AAAlD,KAFJ;AAGLC,IAAAA;AAHK,GAAP;AAKD;;AAED,eAAeO,qBAAf,CAAqCb,UAArC,EAAiDC,IAAjD,EAAkF;AAChF,QAAM;AAAEP,IAAAA;AAAF,MAAcO,IAApB;AACA,QAAM;AACJa,IAAAA,WADI;AAEJX,IAAAA,eAFI;AAGJY,IAAAA,OAHI;AAIJC,IAAAA,KAJI;AAKJC,IAAAA,MALI;AAMJC,IAAAA,aANI;AAOJC,IAAAA;AAPI,MAQFzB,OARJ;AAUA,MAAI0B,WAAJ;AACA,MAAIC,IAAJ;;AAEA,MAAIP,WAAJ,EAAiB;AACfM,IAAAA,WAAW,GAAG,MAAM,4BAAWpB,UAAX,EAAuB;AAAEG,MAAAA,eAAF;AAAmBY,MAAAA,OAAnB;AAA4BD,MAAAA;AAA5B,KAAvB,CAApB;AACD,GAFD,MAEO;AAAA;;AACL;AACAO,IAAAA,IAAI,GAAG,8CAAwBrB,UAAxB,EAAoC;AAAEgB,MAAAA,KAAF;AAASE,MAAAA,aAAT;AAAwBC,MAAAA;AAAxB,KAApC,CAAP;AACA,QAAIG,iBAAiB,YAAGD,IAAH,0CAAG,MAAMC,iBAA9B,CAHK,CAG4C;;AAEjD,QAAI,CAACA,iBAAL,EAAwB;AACtB;AACAtB,MAAAA,UAAU,CAACuB,kBAAX,CAA8BC,KAA9B;AACA,YAAMC,gBAAgB,GAAG,MAAM,wBAASzB,UAAT,EAAqB;AAClDG,QAAAA,eADkD;AAElDa,QAAAA,KAFkD;AAGlDC,QAAAA,MAHkD;AAIlDE,QAAAA,eAJkD;AAKlDD,QAAAA;AALkD,OAArB,CAA/B;AAOAI,MAAAA,iBAAiB,GAAGG,gBAAgB,CAACH,iBAArC;AACAD,MAAAA,IAAI,GAAGI,gBAAgB,CAACJ,IAAxB;AACD,KAjBI,CAmBL;;;AACAD,IAAAA,WAAW,GAAG,MAAM,4BAAWpB,UAAX,EAAuB;AAAEG,MAAAA,eAAF;AAAmBY,MAAAA,OAAnB;AAA4BO,MAAAA;AAA5B,KAAvB,CAApB;AACD;;AACD,SAAO,EAAE,GAAGrB,IAAL;AAAWmB,IAAAA,WAAX;AAAwBC,IAAAA;AAAxB,GAAP;AACD;;AAED,eAAeK,oBAAf,CAAoCzB,IAApC,EAAqE;AACnE,MAAI;AACFmB,IAAAA,WADE;AAEF1B,IAAAA,OAFE;AAGFE,IAAAA;AAHE,MAIAK,IAJJ;AAMA,QAAM;AACJ0B,IAAAA,aADI;AAEJvB,IAAAA,WAFI;AAGJC,IAAAA,OAHI;AAIJH,IAAAA,IAJI;AAKJ0B,IAAAA;AALI,MAMFlC,OANJ;AAQA,QAAMmC,eAAe,GAAIF,aAAa,KAAK,KAAlB,KAA4BvB,WAAW,IAAIC,OAAf,IAA0BuB,IAAtD,CAAzB;;AACA,MAAI,CAACC,eAAL,EAAsB;AACpB,WAAO5B,IAAP;AACD;;AAEDL,EAAAA,MAAM,GAAG,EACP,GAAGA,MADI;AAEPkB,IAAAA,WAAW,EAAEM,WAAW,CAAEU,WAAb,CAAyBhB;AAF/B,GAAT,CApBmE,CAyBnE;;AACA,QAAM;AACJM,IAAAA,WAAW,EAAEW,0BADT;AAEJC,IAAAA,QAFI;AAGJC,IAAAA;AAHI,MAIF,MAAM,0BAAUb,WAAV,EAAwBxB,MAAxB,EAAgC;AAAEQ,IAAAA,WAAF;AAAeC,IAAAA,OAAf;AAAwBH,IAAAA,IAAxB;AAA8B0B,IAAAA;AAA9B,GAAhC,CAJV;AAKAR,EAAAA,WAAW,GAAGW,0BAAd;AAEA,SAAO,EAAE,GAAG9B,IAAL;AAAWmB,IAAAA,WAAX;AAAwBY,IAAAA,QAAxB;AAAkCC,IAAAA;AAAlC,GAAP;AACD;;AAED,eAAeC,SAAf,CAAyBlC,UAAzB,EAAqCC,IAArC,EAAqE;AACnE,MAAI;AAAEoB,IAAAA,IAAF;AAAQD,IAAAA;AAAR,MAAwBnB,IAA5B;AACA,QAAM;AAAEkC,IAAAA;AAAF,MAAsBf,WAA5B;AACA,QAAM;AACJgB,IAAAA,QADI;AAEJC,IAAAA,YAFI;AAGJC,IAAAA,eAHI;AAIJC,IAAAA,WAJI;AAKJC,IAAAA,IALI;AAMJvB,IAAAA;AANI,MAOFI,IAPJ;AAQA,QAAMoB,aAAa,GAAG,MAAMzC,UAAU,CAAC0C,KAAX,CAAiBC,qBAAjB,CAAuC;AACjER,IAAAA,eADiE;AAEjEC,IAAAA,QAFiE;AAGjEC,IAAAA,YAHiE;AAIjEC,IAAAA,eAJiE;AAKjEC,IAAAA,WALiE;AAMjEtB,IAAAA;AANiE,GAAvC,EAOzBuB,IAPyB,CAA5B;AAQA,SAAOC,aAAa,CAACG,MAArB;AACD;;AAED,eAAeC,YAAf,CAA4B7C,UAA5B,EAAwCC,IAAxC,EAAyE;AACvE,MAAI;AACFP,IAAAA,OADE;AAEF0B,IAAAA,WAFE;AAGFa,IAAAA,QAHE;AAIF3B,IAAAA;AAJE,MAKAL,IALJ;AAMA,QAAM;AAAE0C,IAAAA;AAAF,MAA4BjD,OAAlC;AACA,MAAIoD,sBAAsB,GAAG,KAA7B;AACA,MAAIC,kBAAkB,GAAG,IAAzB;AACA,MAAIZ,eAAJ;AACA,MAAIS,MAAJ;AACA,MAAII,eAAJ;AACA,MAAIC,cAAJ;AACA,MAAIC,QAAJ;AACA,MAAIC,QAAJ;;AAEA,MAAI/B,WAAJ,EAAiB;AACf4B,IAAAA,eAAe,GAAG,8BAAmB5B,WAAnB,CAAlB;AACA6B,IAAAA,cAAc,GAAG,6BAAkB7B,WAAlB,CAAjB;AACA8B,IAAAA,QAAQ,GAAG,mCAAwB9B,WAAxB,CAAX;AACA+B,IAAAA,QAAQ,GAAG,8BAAmB/B,WAAnB,CAAX;AACD;;AAED,MAAI+B,QAAJ,EAAc;AACZ7C,IAAAA,MAAM,GAAGC,iBAAU6C,QAAnB;AACAN,IAAAA,sBAAsB,GAAG,IAAzB;AACAC,IAAAA,kBAAkB,GAAG,KAArB;AACD,GAJD,MAIO,IAAId,QAAJ,EAAc;AACnB3B,IAAAA,MAAM,GAAGC,iBAAU8C,QAAnB;AACAP,IAAAA,sBAAsB,GAAG,IAAzB;AACD,GAHM,MAGA,IAAI1B,WAAJ,aAAIA,WAAJ,eAAIA,WAAW,CAAEe,eAAjB,EAAkC;AACvCA,IAAAA,eAAe,GAAGf,WAAW,CAACe,eAA9B;;AACA,QAAIQ,qBAAqB,KAAK,KAA9B,EAAqC;AACnCrC,MAAAA,MAAM,GAAGC,iBAAU+C,OAAnB;AACAR,MAAAA,sBAAsB,GAAG,KAAzB;AACD,KAHD,MAGO;AACLF,MAAAA,MAAM,GAAG,MAAMV,SAAS,CAAClC,UAAD,EAAaC,IAAb,CAAxB;AACAK,MAAAA,MAAM,GAAGC,iBAAU+C,OAAnB;AACAR,MAAAA,sBAAsB,GAAG,IAAzB;AACD;AACF;;AACD,SAAO,EACL,GAAG7C,IADE;AAELK,IAAAA,MAFK;AAGL6B,IAAAA,eAHK;AAILS,IAAAA,MAJK;AAKLE,IAAAA,sBALK;AAMLC,IAAAA,kBANK;AAOLC,IAAAA,eAPK;AAQLC,IAAAA,cARK;AASLC,IAAAA,QATK;AAULC,IAAAA;AAVK,GAAP;AAYD;;AAED,SAASI,WAAT,CAAqBC,GAArB,EAA0BvD,IAA1B,EAAkD;AAChD,MAAI;AAAEwD,IAAAA,KAAF;AAASnD,IAAAA,MAAT;AAAiBwC,IAAAA;AAAjB,MAA4C7C,IAAhD,CADgD,CAGhD;;AACA,MAAI,0BAAcuD,GAAd,CAAJ,EAAwB;AACtBC,IAAAA,KAAK,GAAGD,GAAR;AACAlD,IAAAA,MAAM,GAAGC,iBAAUmD,OAAnB;AACAZ,IAAAA,sBAAsB,GAAG,IAAzB;AACD,GAJD,MAIO;AACL;AACA,UAAMU,GAAN;AACD;;AAED,SAAO,EAAE,GAAGvD,IAAL;AAAWwD,IAAAA,KAAX;AAAkBnD,IAAAA,MAAlB;AAA0BwC,IAAAA;AAA1B,GAAP;AACD;;AAEM,eAAea,GAAf,CACL3D,UADK,EAELN,OAAmB,GAAG,EAFjB,EAGoB;AACzB,MAAIO,IAAa,GAAG;AAClBP,IAAAA,OADkB;AAElBE,IAAAA,MAAM,EAAEH,gBAAgB,CAACC,OAAD;AAFN,GAApB;AAKAO,EAAAA,IAAI,GAAGF,cAAc,CAACC,UAAD,EAAaC,IAAb,CAArB;;AACA,MAAI;AACFA,IAAAA,IAAI,GAAG,MAAMY,qBAAqB,CAACb,UAAD,EAAaC,IAAb,CAAlC;AACAA,IAAAA,IAAI,GAAG,MAAMyB,oBAAoB,CAACzB,IAAD,CAAjC;AACD,GAHD,CAGE,OAAOuD,GAAP,EAAY;AACZvD,IAAAA,IAAI,GAAGsD,WAAW,CAACC,GAAD,EAAMvD,IAAN,CAAlB;AACD;;AACDA,EAAAA,IAAI,GAAG,MAAM4C,YAAY,CAAC7C,UAAD,EAAaC,IAAb,CAAzB;AAEA,QAAM;AACJmB,IAAAA,WADI;AAEJC,IAAAA,IAFI;AAGJyB,IAAAA,sBAHI;AAIJC,IAAAA,kBAJI;AAKJzC,IAAAA,MALI;AAMJ0C,IAAAA,eANI;AAOJC,IAAAA,cAPI;AAQJL,IAAAA,MARI;AASJZ,IAAAA,QATI;AAUJkB,IAAAA,QAVI;AAWJO,IAAAA,KAXI;AAYJtB,IAAAA;AAZI,MAaFlC,IAbJ;;AAeA,MAAI6C,sBAAJ,EAA4B;AAC1B9C,IAAAA,UAAU,CAACuB,kBAAX,CAA8BC,KAA9B,CAAoC;AAAEuB,MAAAA;AAAF,KAApC;AACD,GAFD,MAGK;AACH;AACA,8CAAoB/C,UAApB,EAAgC,EAAE,GAAGqB;AAAL,KAAhC;;AAEA,QAAID,WAAJ,EAAiB;AACf;AACA,YAAM;AAAEU,QAAAA,WAAW,EAAE8B,cAAf;AAA+BC,QAAAA;AAA/B,UAAqDzC,WAA3D;AACApB,MAAAA,UAAU,CAACuB,kBAAX,CAA8BuC,eAA9B,CAA8C;AAC5CF,QAAAA,cAD4C;AAE5CC,QAAAA;AAF4C,OAA9C;AAID;AAEF,GA9CwB,CAgDzB;;;AACA,QAAM;AAAExD,IAAAA,OAAF;AAAW0D,IAAAA,OAAX;AAAoBC,IAAAA,eAApB;AAAqCC,IAAAA,OAArC;AAA8CnC,IAAAA;AAA9C,MAA8DV,WAAW,IAAI,EAAnF;AACA,SAAO;AACLd,IAAAA,MAAM,EAAEA,MADH;AAEL,QAAIe,IAAI,IAAI;AAAEA,MAAAA;AAAF,KAAZ,CAFK;AAGL,QAAI2B,eAAe,IAAI;AAAEA,MAAAA;AAAF,KAAvB,CAHK;AAIL,QAAIC,cAAc,IAAI;AAAEA,MAAAA;AAAF,KAAtB,CAJK;AAKL,QAAIL,MAAM,IAAI;AAAEA,MAAAA;AAAF,KAAd,CALK;AAML,QAAIZ,QAAQ,IAAI;AAAEA,MAAAA;AAAF,KAAhB,CANK;AAOL,QAAIkB,QAAQ,IAAIA,QAAQ,CAACgB,MAArB,IAA+B;AAAEhB,MAAAA;AAAF,KAAnC,CAPK;AAQL,QAAIO,KAAK,IAAI;AAAEA,MAAAA;AAAF,KAAb,CARK;AASLtB,IAAAA,eATK;AASY;AAEjB;AACA9B,IAAAA,OAAO,EAAEA,OAZJ;AAaL0D,IAAAA,OAAO,EAAEA,OAbJ;AAcLC,IAAAA,eAAe,EAAEA,eAdZ;AAeLC,IAAAA,OAAO,EAAEA,OAfJ;AAgBLnC,IAAAA,WAAW,EAAEA;AAhBR,GAAP;AAkBD","sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\n/* eslint-disable max-statements, complexity, max-depth */\nimport { interact } from './interact';\nimport { introspect } from './introspect';\nimport { remediate, RemediateOptions } from './remediate';\nimport { getFlowSpecification, RemediationFlow } from './flow';\nimport * as remediators from './remediators';\nimport { \n OktaAuthInterface,\n IdxStatus,\n IdxTransaction,\n IdxFeature,\n NextStep,\n FlowIdentifier,\n IdxTransactionMeta,\n Tokens,\n APIError,\n} from '../types';\nimport { IdxMessage, IdxResponse, isIdxResponse } from './types/idx-js';\nimport { getSavedTransactionMeta, saveTransactionMeta } from './transactionMeta';\nimport { ProceedOptions } from './proceed';\nimport { getAvailableSteps, getEnabledFeatures, getMessagesFromResponse, isTerminalResponse } from './util';\n\nexport type RunOptions = ProceedOptions & RemediateOptions & {\n flow?: FlowIdentifier;\n remediators?: RemediationFlow;\n actions?: string[];\n withCredentials?: boolean;\n}\n\ndeclare interface RunData {\n options: RunOptions;\n values: remediators.RemediationValues;\n status?: IdxStatus;\n tokens?: Tokens;\n nextStep?: NextStep;\n messages?: IdxMessage[];\n error?: APIError | IdxResponse;\n meta?: IdxTransactionMeta;\n enabledFeatures?: IdxFeature[];\n availableSteps?: NextStep[];\n idxResponse?: IdxResponse;\n canceled?: boolean;\n interactionCode?: string;\n shouldClearTransaction?: boolean;\n clearSharedStorage?: boolean;\n terminal?: boolean;\n}\n\nfunction initializeValues(options: RunOptions) {\n // remove known options, everything else is assumed to be a value\n const knownOptions = ['flow', 'remediators', 'actions', 'withCredentials', 'step'];\n const values = { ...options };\n knownOptions.forEach(option => {\n delete values[option];\n });\n return values;\n}\n\nfunction initializeData(authClient, data: RunData): RunData {\n const { options } = data;\n let {\n flow,\n withCredentials,\n remediators,\n actions\n } = options;\n\n const status = IdxStatus.PENDING;\n\n // certain options can be set by the flow specification\n flow = flow || authClient.idx.getFlow() || 'default';\n if (flow) {\n authClient.idx.setFlow(flow);\n const flowSpec = getFlowSpecification(authClient, flow);\n // Favor option values over flow spec\n withCredentials = (typeof withCredentials !== 'undefined') ? withCredentials : flowSpec.withCredentials;\n remediators = remediators || flowSpec.remediators;\n actions = actions || flowSpec.actions;\n }\n return { \n ...data,\n options: { ...options, flow, withCredentials, remediators, actions },\n status\n };\n}\n\nasync function getDataFromIntrospect(authClient, data: RunData): Promise<RunData> {\n const { options } = data;\n const {\n stateHandle,\n withCredentials,\n version,\n state,\n scopes,\n recoveryToken,\n activationToken\n } = options;\n\n let idxResponse;\n let meta;\n\n if (stateHandle) {\n idxResponse = await introspect(authClient, { withCredentials, version, stateHandle });\n } else {\n // Try to resume saved transaction\n meta = getSavedTransactionMeta(authClient, { state, recoveryToken, activationToken });\n let interactionHandle = meta?.interactionHandle; // may be undefined\n\n if (!interactionHandle) {\n // start a new transaction\n authClient.transactionManager.clear();\n const interactResponse = await interact(authClient, {\n withCredentials,\n state,\n scopes,\n activationToken,\n recoveryToken\n }); \n interactionHandle = interactResponse.interactionHandle;\n meta = interactResponse.meta;\n }\n \n // Introspect to get idx response\n idxResponse = await introspect(authClient, { withCredentials, version, interactionHandle });\n }\n return { ...data, idxResponse, meta };\n}\n\nasync function getDataFromRemediate(data: RunData): Promise<RunData> {\n let {\n idxResponse,\n options,\n values\n } = data;\n\n const {\n autoRemediate,\n remediators,\n actions,\n flow,\n step,\n } = options;\n \n const shouldRemediate = (autoRemediate !== false && (remediators || actions || step));\n if (!shouldRemediate) {\n return data;\n }\n\n values = { \n ...values, \n stateHandle: idxResponse!.rawIdxState.stateHandle \n };\n\n // Can we handle the remediations?\n const { \n idxResponse: idxResponseFromRemediation, \n nextStep,\n canceled,\n } = await remediate(idxResponse!, values, { remediators, actions, flow, step });\n idxResponse = idxResponseFromRemediation;\n\n return { ...data, idxResponse, nextStep, canceled };\n}\n\nasync function getTokens(authClient, data: RunData): Promise<Tokens> {\n let { meta, idxResponse } = data;\n const { interactionCode } = idxResponse as IdxResponse;\n const {\n clientId,\n codeVerifier,\n ignoreSignature,\n redirectUri,\n urls,\n scopes,\n } = meta as IdxTransactionMeta;\n const tokenResponse = await authClient.token.exchangeCodeForTokens({\n interactionCode,\n clientId,\n codeVerifier,\n ignoreSignature,\n redirectUri,\n scopes\n }, urls);\n return tokenResponse.tokens;\n}\n\nasync function finalizeData(authClient, data: RunData): Promise<RunData> {\n let {\n options,\n idxResponse,\n canceled,\n status,\n } = data;\n const { exchangeCodeForTokens } = options;\n let shouldClearTransaction = false;\n let clearSharedStorage = true;\n let interactionCode;\n let tokens;\n let enabledFeatures;\n let availableSteps;\n let messages;\n let terminal;\n\n if (idxResponse) {\n enabledFeatures = getEnabledFeatures(idxResponse);\n availableSteps = getAvailableSteps(idxResponse);\n messages = getMessagesFromResponse(idxResponse);\n terminal = isTerminalResponse(idxResponse);\n }\n\n if (terminal) {\n status = IdxStatus.TERMINAL;\n shouldClearTransaction = true;\n clearSharedStorage = false;\n } else if (canceled) {\n status = IdxStatus.CANCELED;\n shouldClearTransaction = true;\n } else if (idxResponse?.interactionCode) { \n interactionCode = idxResponse.interactionCode;\n if (exchangeCodeForTokens === false) {\n status = IdxStatus.SUCCESS;\n shouldClearTransaction = false;\n } else {\n tokens = await getTokens(authClient, data);\n status = IdxStatus.SUCCESS;\n shouldClearTransaction = true;\n }\n }\n return {\n ...data,\n status,\n interactionCode,\n tokens,\n shouldClearTransaction,\n clearSharedStorage,\n enabledFeatures,\n availableSteps,\n messages,\n terminal\n };\n}\n\nfunction handleError(err, data: RunData): RunData {\n let { error, status, shouldClearTransaction } = data;\n\n // current version of idx-js will throw/reject IDX responses. Handle these differently than regular errors\n if (isIdxResponse(err)) {\n error = err;\n status = IdxStatus.FAILURE;\n shouldClearTransaction = true;\n } else {\n // error is not an IDX response, throw it like a regular error\n throw err;\n }\n\n return { ...data, error, status, shouldClearTransaction };\n}\n\nexport async function run(\n authClient: OktaAuthInterface, \n options: RunOptions = {},\n): Promise<IdxTransaction> {\n let data: RunData = {\n options,\n values: initializeValues(options)\n };\n\n data = initializeData(authClient, data);\n try {\n data = await getDataFromIntrospect(authClient, data);\n data = await getDataFromRemediate(data);\n } catch (err) {\n data = handleError(err, data);\n }\n data = await finalizeData(authClient, data);\n\n const {\n idxResponse,\n meta,\n shouldClearTransaction,\n clearSharedStorage,\n status,\n enabledFeatures,\n availableSteps,\n tokens,\n nextStep,\n messages,\n error,\n interactionCode\n } = data;\n\n if (shouldClearTransaction) {\n authClient.transactionManager.clear({ clearSharedStorage });\n }\n else {\n // ensures state is saved to sessionStorage\n saveTransactionMeta(authClient, { ...meta });\n\n if (idxResponse) {\n // Save intermediate idx response in storage to reduce introspect call\n const { rawIdxState: rawIdxResponse, requestDidSucceed } = idxResponse;\n authClient.transactionManager.saveIdxResponse({\n rawIdxResponse,\n requestDidSucceed\n });\n }\n\n }\n \n // from idx-js, used by the widget\n const { actions, context, neededToProceed, proceed, rawIdxState } = idxResponse || {};\n return {\n status: status!,\n ...(meta && { meta }),\n ...(enabledFeatures && { enabledFeatures }),\n ...(availableSteps && { availableSteps }),\n ...(tokens && { tokens }),\n ...(nextStep && { nextStep }),\n ...(messages && messages.length && { messages }),\n ...(error && { error }),\n interactionCode, // if options.exchangeCodeForTokens is false\n\n // from idx-js\n actions: actions!,\n context: context!,\n neededToProceed: neededToProceed!,\n proceed: proceed!,\n rawIdxState: rawIdxState!,\n };\n}\n"],"file":"run.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/idx/startTransaction.ts"],"names":["startTransaction","authClient","options","transactionManager","clear","exchangeCodeForTokens"],"mappings":";;;;AAaA;;AAbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMO,eAAeA,gBAAf,CACLC,UADK,EAELC,OAAmB,GAAG,EAFjB,EAGoB;AACzB;AACAD,EAAAA,UAAU,CAACE,kBAAX,CAA8BC,KAA9B;AAEA,SAAO,cAAIH,UAAJ,EAAgB;AACrBI,IAAAA,qBAAqB,EAAE,KADF;AAErB,OAAGH;AAFkB,GAAhB,CAAP;AAID","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 { run, RunOptions } from './run';\nimport { OktaAuth, IdxTransaction } from '../types';\n\nexport async function startTransaction(\n authClient: OktaAuth, \n options: RunOptions = {}\n): Promise<IdxTransaction> {\n // Clear IDX response cache and saved transaction meta (if any)\n authClient.transactionManager.clear();\n\n return run(authClient, {\n exchangeCodeForTokens: false,\n ...options\n });\n}\n"],"file":"startTransaction.js"}
1
+ {"version":3,"sources":["../../../lib/idx/startTransaction.ts"],"names":["startTransaction","authClient","options","transactionManager","clear","exchangeCodeForTokens"],"mappings":";;;;AAaA;;AAbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMO,eAAeA,gBAAf,CACLC,UADK,EAELC,OAAmB,GAAG,EAFjB,EAGoB;AACzB;AACAD,EAAAA,UAAU,CAACE,kBAAX,CAA8BC,KAA9B;AAEA,SAAO,cAAIH,UAAJ,EAAgB;AACrBI,IAAAA,qBAAqB,EAAE,KADF;AAErB,OAAGH;AAFkB,GAAhB,CAAP;AAID","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 { run, RunOptions } from './run';\nimport { OktaAuthInterface, IdxTransaction } from '../types';\n\nexport async function startTransaction(\n authClient: OktaAuthInterface, \n options: RunOptions = {}\n): Promise<IdxTransaction> {\n // Clear IDX response cache and saved transaction meta (if any)\n authClient.transactionManager.clear();\n\n return run(authClient, {\n exchangeCodeForTokens: false,\n ...options\n });\n}\n"],"file":"startTransaction.js"}