@okta/okta-auth-js 7.0.0 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (569) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +2 -0
  3. package/cjs/authn/AuthnTransactionImpl.js +6 -8
  4. package/cjs/authn/AuthnTransactionImpl.js.map +1 -1
  5. package/cjs/authn/api.js +3 -18
  6. package/cjs/authn/api.js.map +1 -1
  7. package/cjs/authn/factory.js +1 -7
  8. package/cjs/authn/factory.js.map +1 -1
  9. package/cjs/authn/index.js +0 -5
  10. package/cjs/authn/index.js.map +1 -1
  11. package/cjs/authn/mixin.js +14 -22
  12. package/cjs/authn/mixin.js.map +1 -1
  13. package/cjs/authn/util/flattenEmbedded.js +5 -12
  14. package/cjs/authn/util/flattenEmbedded.js.map +1 -1
  15. package/cjs/authn/util/link2fn.js +0 -22
  16. package/cjs/authn/util/link2fn.js.map +1 -1
  17. package/cjs/authn/util/links2fns.js +0 -12
  18. package/cjs/authn/util/links2fns.js.map +1 -1
  19. package/cjs/authn/util/poll.js +9 -27
  20. package/cjs/authn/util/poll.js.map +1 -1
  21. package/cjs/authn/util/stateToken.js +3 -4
  22. package/cjs/authn/util/stateToken.js.map +1 -1
  23. package/cjs/base/factory.js +6 -14
  24. package/cjs/base/factory.js.map +1 -1
  25. package/cjs/base/index.js +0 -5
  26. package/cjs/base/index.js.map +1 -1
  27. package/cjs/base/options.js +1 -2
  28. package/cjs/base/options.js.map +1 -1
  29. package/cjs/browser/browserStorage.js +15 -43
  30. package/cjs/browser/browserStorage.js.map +1 -1
  31. package/cjs/browser/fingerprint.js +3 -15
  32. package/cjs/browser/fingerprint.js.map +1 -1
  33. package/cjs/clock.js +5 -7
  34. package/cjs/clock.js.map +1 -1
  35. package/cjs/constants.js +4 -3
  36. package/cjs/constants.js.map +1 -1
  37. package/cjs/core/AuthStateManager.js +24 -48
  38. package/cjs/core/AuthStateManager.js.map +1 -1
  39. package/cjs/core/ServiceManager/browser.js +13 -33
  40. package/cjs/core/ServiceManager/browser.js.map +1 -1
  41. package/cjs/core/ServiceManager/index.js +0 -1
  42. package/cjs/core/ServiceManager/index.js.map +1 -1
  43. package/cjs/core/ServiceManager/node.js +3 -9
  44. package/cjs/core/ServiceManager/node.js.map +1 -1
  45. package/cjs/core/factory.js +0 -7
  46. package/cjs/core/factory.js.map +1 -1
  47. package/cjs/core/index.js +0 -13
  48. package/cjs/core/index.js.map +1 -1
  49. package/cjs/core/mixin.js +16 -20
  50. package/cjs/core/mixin.js.map +1 -1
  51. package/cjs/core/options.js +1 -3
  52. package/cjs/core/options.js.map +1 -1
  53. package/cjs/core/storage.js +0 -2
  54. package/cjs/core/storage.js.map +1 -1
  55. package/cjs/core/types/index.js +0 -5
  56. package/cjs/core/types/index.js.map +1 -1
  57. package/cjs/crypto/base64.js +9 -22
  58. package/cjs/crypto/base64.js.map +1 -1
  59. package/cjs/crypto/browser.js +0 -4
  60. package/cjs/crypto/browser.js.map +1 -1
  61. package/cjs/crypto/index.js +0 -9
  62. package/cjs/crypto/index.js.map +1 -1
  63. package/cjs/crypto/node.js +0 -13
  64. package/cjs/crypto/node.js.map +1 -1
  65. package/cjs/crypto/oidcHash.js +1 -4
  66. package/cjs/crypto/oidcHash.js.map +1 -1
  67. package/cjs/crypto/verifyToken.js +6 -7
  68. package/cjs/crypto/verifyToken.js.map +1 -1
  69. package/cjs/crypto/webcrypto.js +0 -1
  70. package/cjs/crypto/webcrypto.js.map +1 -1
  71. package/cjs/errors/AuthApiError.js +1 -7
  72. package/cjs/errors/AuthApiError.js.map +1 -1
  73. package/cjs/errors/AuthPollStopError.js +1 -5
  74. package/cjs/errors/AuthPollStopError.js.map +1 -1
  75. package/cjs/errors/AuthSdkError.js +1 -6
  76. package/cjs/errors/AuthSdkError.js.map +1 -1
  77. package/cjs/errors/CustomError.js +1 -4
  78. package/cjs/errors/CustomError.js.map +1 -1
  79. package/cjs/errors/OAuthError.js +4 -7
  80. package/cjs/errors/OAuthError.js.map +1 -1
  81. package/cjs/errors/index.js +1 -9
  82. package/cjs/errors/index.js.map +1 -1
  83. package/cjs/exports/authn.js +0 -9
  84. package/cjs/exports/authn.js.map +1 -1
  85. package/cjs/exports/cdn/authn.js +0 -2
  86. package/cjs/exports/cdn/authn.js.map +1 -1
  87. package/cjs/exports/cdn/core.js +0 -2
  88. package/cjs/exports/cdn/core.js.map +1 -1
  89. package/cjs/exports/cdn/default.js +0 -2
  90. package/cjs/exports/cdn/default.js.map +1 -1
  91. package/cjs/exports/cdn/idx.js +0 -2
  92. package/cjs/exports/cdn/idx.js.map +1 -1
  93. package/cjs/exports/cdn/myaccount.js +0 -2
  94. package/cjs/exports/cdn/myaccount.js.map +1 -1
  95. package/cjs/exports/common.js +0 -22
  96. package/cjs/exports/common.js.map +1 -1
  97. package/cjs/exports/core.js +0 -9
  98. package/cjs/exports/core.js.map +1 -1
  99. package/cjs/exports/default.js +2 -12
  100. package/cjs/exports/default.js.map +1 -1
  101. package/cjs/exports/idx.js +3 -7
  102. package/cjs/exports/idx.js.map +1 -1
  103. package/cjs/exports/myaccount.js +0 -9
  104. package/cjs/exports/myaccount.js.map +1 -1
  105. package/cjs/features.js +1 -18
  106. package/cjs/features.js.map +1 -1
  107. package/cjs/fetch/fetchRequest.js +6 -20
  108. package/cjs/fetch/fetchRequest.js.map +1 -1
  109. package/cjs/http/OktaUserAgent.js +3 -11
  110. package/cjs/http/OktaUserAgent.js.map +1 -1
  111. package/cjs/http/headers.js +1 -1
  112. package/cjs/http/headers.js.map +1 -1
  113. package/cjs/http/index.js +0 -11
  114. package/cjs/http/index.js.map +1 -1
  115. package/cjs/http/mixin.js +2 -10
  116. package/cjs/http/mixin.js.map +1 -1
  117. package/cjs/http/options.js +1 -5
  118. package/cjs/http/options.js.map +1 -1
  119. package/cjs/http/request.js +75 -57
  120. package/cjs/http/request.js.map +1 -1
  121. package/cjs/idx/IdxTransactionManager.js +2 -22
  122. package/cjs/idx/IdxTransactionManager.js.map +1 -1
  123. package/cjs/idx/authenticate.js +3 -5
  124. package/cjs/idx/authenticate.js.map +1 -1
  125. package/cjs/idx/authenticator/Authenticator.js +2 -4
  126. package/cjs/idx/authenticator/Authenticator.js.map +1 -1
  127. package/cjs/idx/authenticator/OktaPassword.js +2 -10
  128. package/cjs/idx/authenticator/OktaPassword.js.map +1 -1
  129. package/cjs/idx/authenticator/OktaVerifyTotp.js +0 -6
  130. package/cjs/idx/authenticator/OktaVerifyTotp.js.map +1 -1
  131. package/cjs/idx/authenticator/SecurityQuestionEnrollment.js +0 -10
  132. package/cjs/idx/authenticator/SecurityQuestionEnrollment.js.map +1 -1
  133. package/cjs/idx/authenticator/SecurityQuestionVerification.js +1 -10
  134. package/cjs/idx/authenticator/SecurityQuestionVerification.js.map +1 -1
  135. package/cjs/idx/authenticator/VerificationCodeAuthenticator.js +2 -10
  136. package/cjs/idx/authenticator/VerificationCodeAuthenticator.js.map +1 -1
  137. package/cjs/idx/authenticator/WebauthnEnrollment.js +0 -8
  138. package/cjs/idx/authenticator/WebauthnEnrollment.js.map +1 -1
  139. package/cjs/idx/authenticator/WebauthnVerification.js +0 -8
  140. package/cjs/idx/authenticator/WebauthnVerification.js.map +1 -1
  141. package/cjs/idx/authenticator/getAuthenticator.js +0 -15
  142. package/cjs/idx/authenticator/getAuthenticator.js.map +1 -1
  143. package/cjs/idx/authenticator/index.js +0 -15
  144. package/cjs/idx/authenticator/index.js.map +1 -1
  145. package/cjs/idx/authenticator/util.js +8 -18
  146. package/cjs/idx/authenticator/util.js.map +1 -1
  147. package/cjs/idx/cancel.js +3 -4
  148. package/cjs/idx/cancel.js.map +1 -1
  149. package/cjs/idx/emailVerify.js +5 -13
  150. package/cjs/idx/emailVerify.js.map +1 -1
  151. package/cjs/idx/factory/OktaAuthIdx.js +0 -3
  152. package/cjs/idx/factory/OktaAuthIdx.js.map +1 -1
  153. package/cjs/idx/factory/api.js +1 -17
  154. package/cjs/idx/factory/api.js.map +1 -1
  155. package/cjs/idx/factory/index.js +0 -3
  156. package/cjs/idx/factory/index.js.map +1 -1
  157. package/cjs/idx/flow/AccountUnlockFlow.js +1 -2
  158. package/cjs/idx/flow/AccountUnlockFlow.js.map +1 -1
  159. package/cjs/idx/flow/AuthenticationFlow.js +1 -2
  160. package/cjs/idx/flow/AuthenticationFlow.js.map +1 -1
  161. package/cjs/idx/flow/FlowSpecification.js +2 -13
  162. package/cjs/idx/flow/FlowSpecification.js.map +1 -1
  163. package/cjs/idx/flow/PasswordRecoveryFlow.js +1 -2
  164. package/cjs/idx/flow/PasswordRecoveryFlow.js.map +1 -1
  165. package/cjs/idx/flow/RegistrationFlow.js +1 -2
  166. package/cjs/idx/flow/RegistrationFlow.js.map +1 -1
  167. package/cjs/idx/flow/index.js +0 -11
  168. package/cjs/idx/flow/index.js.map +1 -1
  169. package/cjs/idx/handleInteractionCodeRedirect.js +7 -12
  170. package/cjs/idx/handleInteractionCodeRedirect.js.map +1 -1
  171. package/cjs/idx/idxState/index.js +1 -11
  172. package/cjs/idx/idxState/index.js.map +1 -1
  173. package/cjs/idx/idxState/v1/actionParser.js +1 -12
  174. package/cjs/idx/idxState/v1/actionParser.js.map +1 -1
  175. package/cjs/idx/idxState/v1/generateIdxAction.js +10 -15
  176. package/cjs/idx/idxState/v1/generateIdxAction.js.map +1 -1
  177. package/cjs/idx/idxState/v1/idxResponseParser.js +7 -23
  178. package/cjs/idx/idxState/v1/idxResponseParser.js.map +1 -1
  179. package/cjs/idx/idxState/v1/makeIdxState.js +2 -10
  180. package/cjs/idx/idxState/v1/makeIdxState.js.map +1 -1
  181. package/cjs/idx/idxState/v1/parsers.js +0 -2
  182. package/cjs/idx/idxState/v1/parsers.js.map +1 -1
  183. package/cjs/idx/idxState/v1/remediationParser.js +2 -4
  184. package/cjs/idx/idxState/v1/remediationParser.js.map +1 -1
  185. package/cjs/idx/index.js +0 -26
  186. package/cjs/idx/index.js.map +1 -1
  187. package/cjs/idx/interact.js +18 -18
  188. package/cjs/idx/interact.js.map +1 -1
  189. package/cjs/idx/introspect.js +5 -14
  190. package/cjs/idx/introspect.js.map +1 -1
  191. package/cjs/idx/mixin.js +0 -9
  192. package/cjs/idx/mixin.js.map +1 -1
  193. package/cjs/idx/options.js +2 -3
  194. package/cjs/idx/options.js.map +1 -1
  195. package/cjs/idx/poll.js +1 -10
  196. package/cjs/idx/poll.js.map +1 -1
  197. package/cjs/idx/proceed.js +3 -9
  198. package/cjs/idx/proceed.js.map +1 -1
  199. package/cjs/idx/recoverPassword.js +3 -4
  200. package/cjs/idx/recoverPassword.js.map +1 -1
  201. package/cjs/idx/register.js +5 -11
  202. package/cjs/idx/register.js.map +1 -1
  203. package/cjs/idx/remediate.js +24 -45
  204. package/cjs/idx/remediate.js.map +1 -1
  205. package/cjs/idx/remediators/AuthenticatorEnrollmentData.js +7 -16
  206. package/cjs/idx/remediators/AuthenticatorEnrollmentData.js.map +1 -1
  207. package/cjs/idx/remediators/AuthenticatorVerificationData.js +7 -15
  208. package/cjs/idx/remediators/AuthenticatorVerificationData.js.map +1 -1
  209. package/cjs/idx/remediators/Base/AuthenticatorData.js +7 -22
  210. package/cjs/idx/remediators/Base/AuthenticatorData.js.map +1 -1
  211. package/cjs/idx/remediators/Base/Remediator.js +38 -67
  212. package/cjs/idx/remediators/Base/Remediator.js.map +1 -1
  213. package/cjs/idx/remediators/Base/SelectAuthenticator.js +13 -30
  214. package/cjs/idx/remediators/Base/SelectAuthenticator.js.map +1 -1
  215. package/cjs/idx/remediators/Base/VerifyAuthenticator.js +5 -13
  216. package/cjs/idx/remediators/Base/VerifyAuthenticator.js.map +1 -1
  217. package/cjs/idx/remediators/ChallengeAuthenticator.js +1 -5
  218. package/cjs/idx/remediators/ChallengeAuthenticator.js.map +1 -1
  219. package/cjs/idx/remediators/ChallengePoll.js +1 -6
  220. package/cjs/idx/remediators/ChallengePoll.js.map +1 -1
  221. package/cjs/idx/remediators/EnrollAuthenticator.js +1 -5
  222. package/cjs/idx/remediators/EnrollAuthenticator.js.map +1 -1
  223. package/cjs/idx/remediators/EnrollPoll.js +5 -12
  224. package/cjs/idx/remediators/EnrollPoll.js.map +1 -1
  225. package/cjs/idx/remediators/EnrollProfile.js +8 -30
  226. package/cjs/idx/remediators/EnrollProfile.js.map +1 -1
  227. package/cjs/idx/remediators/EnrollmentChannelData.js +5 -13
  228. package/cjs/idx/remediators/EnrollmentChannelData.js.map +1 -1
  229. package/cjs/idx/remediators/GenericRemediator/GenericRemediator.js +13 -19
  230. package/cjs/idx/remediators/GenericRemediator/GenericRemediator.js.map +1 -1
  231. package/cjs/idx/remediators/GenericRemediator/index.js +0 -1
  232. package/cjs/idx/remediators/GenericRemediator/index.js.map +1 -1
  233. package/cjs/idx/remediators/GenericRemediator/util.js +19 -31
  234. package/cjs/idx/remediators/GenericRemediator/util.js.map +1 -1
  235. package/cjs/idx/remediators/Identify.js +3 -12
  236. package/cjs/idx/remediators/Identify.js.map +1 -1
  237. package/cjs/idx/remediators/ReEnrollAuthenticator.js +3 -10
  238. package/cjs/idx/remediators/ReEnrollAuthenticator.js.map +1 -1
  239. package/cjs/idx/remediators/RedirectIdp.js +1 -7
  240. package/cjs/idx/remediators/RedirectIdp.js.map +1 -1
  241. package/cjs/idx/remediators/ResetAuthenticator.js +1 -5
  242. package/cjs/idx/remediators/ResetAuthenticator.js.map +1 -1
  243. package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js +3 -11
  244. package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js.map +1 -1
  245. package/cjs/idx/remediators/SelectAuthenticatorEnroll.js +1 -5
  246. package/cjs/idx/remediators/SelectAuthenticatorEnroll.js.map +1 -1
  247. package/cjs/idx/remediators/SelectAuthenticatorUnlockAccount.js +6 -15
  248. package/cjs/idx/remediators/SelectAuthenticatorUnlockAccount.js.map +1 -1
  249. package/cjs/idx/remediators/SelectEnrollProfile.js +1 -6
  250. package/cjs/idx/remediators/SelectEnrollProfile.js.map +1 -1
  251. package/cjs/idx/remediators/SelectEnrollmentChannel.js +5 -16
  252. package/cjs/idx/remediators/SelectEnrollmentChannel.js.map +1 -1
  253. package/cjs/idx/remediators/Skip.js +1 -6
  254. package/cjs/idx/remediators/Skip.js.map +1 -1
  255. package/cjs/idx/remediators/index.js +0 -39
  256. package/cjs/idx/remediators/index.js.map +1 -1
  257. package/cjs/idx/remediators/util.js +1 -7
  258. package/cjs/idx/remediators/util.js.map +1 -1
  259. package/cjs/idx/run.js +39 -54
  260. package/cjs/idx/run.js.map +1 -1
  261. package/cjs/idx/startTransaction.js +1 -2
  262. package/cjs/idx/startTransaction.js.map +1 -1
  263. package/cjs/idx/storage.js +3 -22
  264. package/cjs/idx/storage.js.map +1 -1
  265. package/cjs/idx/transactionMeta.js +24 -42
  266. package/cjs/idx/transactionMeta.js.map +1 -1
  267. package/cjs/idx/types/api.js +1 -9
  268. package/cjs/idx/types/api.js.map +1 -1
  269. package/cjs/idx/types/idx-js.js +3 -3
  270. package/cjs/idx/types/idx-js.js.map +1 -1
  271. package/cjs/idx/types/index.js +0 -7
  272. package/cjs/idx/types/index.js.map +1 -1
  273. package/cjs/idx/types/meta.js.map +1 -1
  274. package/cjs/idx/types/options.js.map +1 -1
  275. package/cjs/idx/unlockAccount.js +7 -11
  276. package/cjs/idx/unlockAccount.js.map +1 -1
  277. package/cjs/idx/util.js +24 -76
  278. package/cjs/idx/util.js.map +1 -1
  279. package/cjs/idx/webauthn.js +13 -18
  280. package/cjs/idx/webauthn.js.map +1 -1
  281. package/cjs/myaccount/api.js +0 -5
  282. package/cjs/myaccount/api.js.map +1 -1
  283. package/cjs/myaccount/emailApi.js +6 -21
  284. package/cjs/myaccount/emailApi.js.map +1 -1
  285. package/cjs/myaccount/factory.js +0 -3
  286. package/cjs/myaccount/factory.js.map +1 -1
  287. package/cjs/myaccount/index.js +0 -7
  288. package/cjs/myaccount/index.js.map +1 -1
  289. package/cjs/myaccount/mixin.js +0 -5
  290. package/cjs/myaccount/mixin.js.map +1 -1
  291. package/cjs/myaccount/phoneApi.js +5 -18
  292. package/cjs/myaccount/phoneApi.js.map +1 -1
  293. package/cjs/myaccount/profileApi.js +2 -9
  294. package/cjs/myaccount/profileApi.js.map +1 -1
  295. package/cjs/myaccount/request.js +12 -78
  296. package/cjs/myaccount/request.js.map +1 -1
  297. package/cjs/myaccount/transactions/Base.js +5 -7
  298. package/cjs/myaccount/transactions/Base.js.map +1 -1
  299. package/cjs/myaccount/transactions/EmailChallengeTransaction.js +5 -10
  300. package/cjs/myaccount/transactions/EmailChallengeTransaction.js.map +1 -1
  301. package/cjs/myaccount/transactions/EmailStatusTransaction.js +2 -7
  302. package/cjs/myaccount/transactions/EmailStatusTransaction.js.map +1 -1
  303. package/cjs/myaccount/transactions/EmailTransaction.js +5 -13
  304. package/cjs/myaccount/transactions/EmailTransaction.js.map +1 -1
  305. package/cjs/myaccount/transactions/PhoneTransaction.js +5 -12
  306. package/cjs/myaccount/transactions/PhoneTransaction.js.map +1 -1
  307. package/cjs/myaccount/transactions/ProfileSchemaTransaction.js +0 -5
  308. package/cjs/myaccount/transactions/ProfileSchemaTransaction.js.map +1 -1
  309. package/cjs/myaccount/transactions/ProfileTransaction.js +0 -5
  310. package/cjs/myaccount/transactions/ProfileTransaction.js.map +1 -1
  311. package/cjs/myaccount/transactions/index.js +0 -8
  312. package/cjs/myaccount/transactions/index.js.map +1 -1
  313. package/cjs/myaccount/types.js +0 -5
  314. package/cjs/myaccount/types.js.map +1 -1
  315. package/cjs/oidc/TokenManager.js +39 -100
  316. package/cjs/oidc/TokenManager.js.map +1 -1
  317. package/cjs/oidc/TransactionManager.js +19 -26
  318. package/cjs/oidc/TransactionManager.js.map +1 -1
  319. package/cjs/oidc/decodeToken.js +1 -5
  320. package/cjs/oidc/decodeToken.js.map +1 -1
  321. package/cjs/oidc/endpoints/authorize.js +9 -13
  322. package/cjs/oidc/endpoints/authorize.js.map +1 -1
  323. package/cjs/oidc/endpoints/index.js +0 -5
  324. package/cjs/oidc/endpoints/index.js.map +1 -1
  325. package/cjs/oidc/endpoints/token.js +5 -17
  326. package/cjs/oidc/endpoints/token.js.map +1 -1
  327. package/cjs/oidc/endpoints/well-known.js +7 -14
  328. package/cjs/oidc/endpoints/well-known.js.map +1 -1
  329. package/cjs/oidc/exchangeCodeForTokens.js +7 -12
  330. package/cjs/oidc/exchangeCodeForTokens.js.map +1 -1
  331. package/cjs/oidc/factory/OktaAuthOAuth.js +0 -6
  332. package/cjs/oidc/factory/OktaAuthOAuth.js.map +1 -1
  333. package/cjs/oidc/factory/api.js +6 -20
  334. package/cjs/oidc/factory/api.js.map +1 -1
  335. package/cjs/oidc/factory/index.js +0 -3
  336. package/cjs/oidc/factory/index.js.map +1 -1
  337. package/cjs/oidc/getToken.js +18 -30
  338. package/cjs/oidc/getToken.js.map +1 -1
  339. package/cjs/oidc/getUserInfo.js +1 -15
  340. package/cjs/oidc/getUserInfo.js.map +1 -1
  341. package/cjs/oidc/getWithPopup.js +4 -8
  342. package/cjs/oidc/getWithPopup.js.map +1 -1
  343. package/cjs/oidc/getWithRedirect.js +1 -8
  344. package/cjs/oidc/getWithRedirect.js.map +1 -1
  345. package/cjs/oidc/getWithoutPrompt.js +1 -5
  346. package/cjs/oidc/getWithoutPrompt.js.map +1 -1
  347. package/cjs/oidc/handleOAuthResponse.js +23 -40
  348. package/cjs/oidc/handleOAuthResponse.js.map +1 -1
  349. package/cjs/oidc/index.js +0 -32
  350. package/cjs/oidc/index.js.map +1 -1
  351. package/cjs/oidc/mixin/browser.js +6 -18
  352. package/cjs/oidc/mixin/browser.js.map +1 -1
  353. package/cjs/oidc/mixin/index.js +37 -89
  354. package/cjs/oidc/mixin/index.js.map +1 -1
  355. package/cjs/oidc/mixin/node.js +2 -9
  356. package/cjs/oidc/mixin/node.js.map +1 -1
  357. package/cjs/oidc/options/OAuthOptionsConstructor.js +17 -24
  358. package/cjs/oidc/options/OAuthOptionsConstructor.js.map +1 -1
  359. package/cjs/oidc/options/browser.js.map +1 -1
  360. package/cjs/oidc/options/index.js +0 -1
  361. package/cjs/oidc/options/index.js.map +1 -1
  362. package/cjs/oidc/options/node.js.map +1 -1
  363. package/cjs/oidc/parseFromUrl.js +1 -32
  364. package/cjs/oidc/parseFromUrl.js.map +1 -1
  365. package/cjs/oidc/renewToken.js +5 -16
  366. package/cjs/oidc/renewToken.js.map +1 -1
  367. package/cjs/oidc/renewTokens.js +3 -15
  368. package/cjs/oidc/renewTokens.js.map +1 -1
  369. package/cjs/oidc/renewTokensWithRefresh.js +3 -13
  370. package/cjs/oidc/renewTokensWithRefresh.js.map +1 -1
  371. package/cjs/oidc/revokeToken.js +3 -14
  372. package/cjs/oidc/revokeToken.js.map +1 -1
  373. package/cjs/oidc/storage.js +0 -8
  374. package/cjs/oidc/storage.js.map +1 -1
  375. package/cjs/oidc/types/Token.js +1 -5
  376. package/cjs/oidc/types/Token.js.map +1 -1
  377. package/cjs/oidc/types/TokenManager.js +1 -1
  378. package/cjs/oidc/types/TokenManager.js.map +1 -1
  379. package/cjs/oidc/types/Transaction.js +1 -12
  380. package/cjs/oidc/types/Transaction.js.map +1 -1
  381. package/cjs/oidc/types/UserClaims.js.map +1 -1
  382. package/cjs/oidc/types/api.js.map +1 -1
  383. package/cjs/oidc/types/index.js +0 -21
  384. package/cjs/oidc/types/index.js.map +1 -1
  385. package/cjs/oidc/types/meta.js.map +1 -1
  386. package/cjs/oidc/types/options.js.map +1 -1
  387. package/cjs/oidc/types/proto.js.map +1 -1
  388. package/cjs/oidc/util/browser.js +4 -13
  389. package/cjs/oidc/util/browser.js.map +1 -1
  390. package/cjs/oidc/util/defaultTokenParams.js +5 -5
  391. package/cjs/oidc/util/defaultTokenParams.js.map +1 -1
  392. package/cjs/oidc/util/errors.js +3 -8
  393. package/cjs/oidc/util/errors.js.map +1 -1
  394. package/cjs/oidc/util/index.js +0 -24
  395. package/cjs/oidc/util/index.js.map +1 -1
  396. package/cjs/oidc/util/loginRedirect.js +11 -25
  397. package/cjs/oidc/util/loginRedirect.js.map +1 -1
  398. package/cjs/oidc/util/oauth.js +3 -12
  399. package/cjs/oidc/util/oauth.js.map +1 -1
  400. package/cjs/oidc/util/oauthMeta.js +5 -6
  401. package/cjs/oidc/util/oauthMeta.js.map +1 -1
  402. package/cjs/oidc/util/pkce.js +1 -12
  403. package/cjs/oidc/util/pkce.js.map +1 -1
  404. package/cjs/oidc/util/prepareTokenParams.js +13 -26
  405. package/cjs/oidc/util/prepareTokenParams.js.map +1 -1
  406. package/cjs/oidc/util/refreshToken.js +0 -7
  407. package/cjs/oidc/util/refreshToken.js.map +1 -1
  408. package/cjs/oidc/util/sharedStorage.js +0 -8
  409. package/cjs/oidc/util/sharedStorage.js.map +1 -1
  410. package/cjs/oidc/util/urlParams.js +9 -12
  411. package/cjs/oidc/util/urlParams.js.map +1 -1
  412. package/cjs/oidc/util/validateClaims.js +9 -17
  413. package/cjs/oidc/util/validateClaims.js.map +1 -1
  414. package/cjs/oidc/util/validateToken.js +1 -6
  415. package/cjs/oidc/util/validateToken.js.map +1 -1
  416. package/cjs/oidc/verifyToken.js +13 -23
  417. package/cjs/oidc/verifyToken.js.map +1 -1
  418. package/cjs/server/serverStorage.js +9 -27
  419. package/cjs/server/serverStorage.js.map +1 -1
  420. package/cjs/services/AutoRenewService.js +1 -17
  421. package/cjs/services/AutoRenewService.js.map +1 -1
  422. package/cjs/services/LeaderElectionService.js +1 -23
  423. package/cjs/services/LeaderElectionService.js.map +1 -1
  424. package/cjs/services/SyncStorageService.js +3 -37
  425. package/cjs/services/SyncStorageService.js.map +1 -1
  426. package/cjs/services/index.js +0 -5
  427. package/cjs/services/index.js.map +1 -1
  428. package/cjs/session/api.js +1 -12
  429. package/cjs/session/api.js.map +1 -1
  430. package/cjs/session/factory.js +0 -2
  431. package/cjs/session/factory.js.map +1 -1
  432. package/cjs/session/index.js +0 -7
  433. package/cjs/session/index.js.map +1 -1
  434. package/cjs/session/mixin.js +2 -6
  435. package/cjs/session/mixin.js.map +1 -1
  436. package/cjs/storage/BaseStorageManager.js +13 -25
  437. package/cjs/storage/BaseStorageManager.js.map +1 -1
  438. package/cjs/storage/SavedObject.js +7 -19
  439. package/cjs/storage/SavedObject.js.map +1 -1
  440. package/cjs/storage/index.js +0 -9
  441. package/cjs/storage/index.js.map +1 -1
  442. package/cjs/storage/mixin.js +2 -4
  443. package/cjs/storage/mixin.js.map +1 -1
  444. package/cjs/storage/options/StorageOptionsConstructor.js +3 -6
  445. package/cjs/storage/options/StorageOptionsConstructor.js.map +1 -1
  446. package/cjs/storage/options/browser.js +7 -15
  447. package/cjs/storage/options/browser.js.map +1 -1
  448. package/cjs/storage/options/node.js +3 -6
  449. package/cjs/storage/options/node.js.map +1 -1
  450. package/cjs/util/PromiseQueue.js +7 -15
  451. package/cjs/util/PromiseQueue.js.map +1 -1
  452. package/cjs/util/console.js +3 -7
  453. package/cjs/util/console.js.map +1 -1
  454. package/cjs/util/index.js +0 -11
  455. package/cjs/util/index.js.map +1 -1
  456. package/cjs/util/misc.js +3 -8
  457. package/cjs/util/misc.js.map +1 -1
  458. package/cjs/util/object.js +9 -23
  459. package/cjs/util/object.js.map +1 -1
  460. package/cjs/util/types.js +1 -5
  461. package/cjs/util/types.js.map +1 -1
  462. package/cjs/util/url.js +5 -14
  463. package/cjs/util/url.js.map +1 -1
  464. package/dist/okta-auth-js.authn.min.analyzer.html +3 -3
  465. package/dist/okta-auth-js.authn.min.js +1 -1
  466. package/dist/okta-auth-js.authn.min.js.LICENSE.txt +2 -0
  467. package/dist/okta-auth-js.authn.min.js.map +1 -1
  468. package/dist/okta-auth-js.core.min.analyzer.html +3 -3
  469. package/dist/okta-auth-js.core.min.js +1 -1
  470. package/dist/okta-auth-js.core.min.js.LICENSE.txt +2 -0
  471. package/dist/okta-auth-js.core.min.js.map +1 -1
  472. package/dist/okta-auth-js.idx.min.analyzer.html +3 -3
  473. package/dist/okta-auth-js.idx.min.js +1 -1
  474. package/dist/okta-auth-js.idx.min.js.LICENSE.txt +2 -0
  475. package/dist/okta-auth-js.idx.min.js.map +1 -1
  476. package/dist/okta-auth-js.min.analyzer.html +3 -3
  477. package/dist/okta-auth-js.min.js +1 -1
  478. package/dist/okta-auth-js.min.js.LICENSE.txt +2 -0
  479. package/dist/okta-auth-js.min.js.map +1 -1
  480. package/dist/okta-auth-js.myaccount.min.analyzer.html +3 -3
  481. package/dist/okta-auth-js.myaccount.min.js +1 -1
  482. package/dist/okta-auth-js.myaccount.min.js.LICENSE.txt +2 -0
  483. package/dist/okta-auth-js.myaccount.min.js.map +1 -1
  484. package/dist/okta-auth-js.polyfill.js +1 -1
  485. package/dist/okta-auth-js.polyfill.js.map +1 -1
  486. package/esm/browser/http/OktaUserAgent.js +2 -2
  487. package/esm/browser/http/request.js +56 -23
  488. package/esm/browser/http/request.js.map +1 -1
  489. package/esm/browser/idx/interact.js +2 -2
  490. package/esm/browser/idx/interact.js.map +1 -1
  491. package/esm/browser/idx/run.js +3 -2
  492. package/esm/browser/idx/run.js.map +1 -1
  493. package/esm/browser/idx/transactionMeta.js +3 -2
  494. package/esm/browser/idx/transactionMeta.js.map +1 -1
  495. package/esm/browser/myaccount/request.js +2 -43
  496. package/esm/browser/myaccount/request.js.map +1 -1
  497. package/esm/browser/oidc/endpoints/authorize.js +1 -0
  498. package/esm/browser/oidc/endpoints/authorize.js.map +1 -1
  499. package/esm/browser/oidc/exchangeCodeForTokens.js +2 -1
  500. package/esm/browser/oidc/exchangeCodeForTokens.js.map +1 -1
  501. package/esm/browser/oidc/handleOAuthResponse.js +17 -16
  502. package/esm/browser/oidc/handleOAuthResponse.js.map +1 -1
  503. package/esm/browser/oidc/options/OAuthOptionsConstructor.js +2 -0
  504. package/esm/browser/oidc/options/OAuthOptionsConstructor.js.map +1 -1
  505. package/esm/browser/oidc/util/defaultTokenParams.js +3 -1
  506. package/esm/browser/oidc/util/defaultTokenParams.js.map +1 -1
  507. package/esm/browser/oidc/util/oauthMeta.js +1 -0
  508. package/esm/browser/oidc/util/oauthMeta.js.map +1 -1
  509. package/esm/browser/oidc/util/validateClaims.js +9 -4
  510. package/esm/browser/oidc/util/validateClaims.js.map +1 -1
  511. package/esm/browser/oidc/verifyToken.js +2 -2
  512. package/esm/browser/oidc/verifyToken.js.map +1 -1
  513. package/esm/browser/package.json +1 -1
  514. package/esm/node/http/OktaUserAgent.js +2 -2
  515. package/esm/node/http/request.js +56 -23
  516. package/esm/node/http/request.js.map +1 -1
  517. package/esm/node/idx/interact.js +2 -2
  518. package/esm/node/idx/interact.js.map +1 -1
  519. package/esm/node/idx/run.js +3 -2
  520. package/esm/node/idx/run.js.map +1 -1
  521. package/esm/node/idx/transactionMeta.js +3 -2
  522. package/esm/node/idx/transactionMeta.js.map +1 -1
  523. package/esm/node/myaccount/request.js +2 -43
  524. package/esm/node/myaccount/request.js.map +1 -1
  525. package/esm/node/oidc/endpoints/authorize.js +1 -0
  526. package/esm/node/oidc/endpoints/authorize.js.map +1 -1
  527. package/esm/node/oidc/exchangeCodeForTokens.js +2 -1
  528. package/esm/node/oidc/exchangeCodeForTokens.js.map +1 -1
  529. package/esm/node/oidc/handleOAuthResponse.js +17 -16
  530. package/esm/node/oidc/handleOAuthResponse.js.map +1 -1
  531. package/esm/node/oidc/options/OAuthOptionsConstructor.js +2 -0
  532. package/esm/node/oidc/options/OAuthOptionsConstructor.js.map +1 -1
  533. package/esm/node/oidc/util/defaultTokenParams.js +3 -1
  534. package/esm/node/oidc/util/defaultTokenParams.js.map +1 -1
  535. package/esm/node/oidc/util/oauthMeta.js +1 -0
  536. package/esm/node/oidc/util/oauthMeta.js.map +1 -1
  537. package/esm/node/oidc/util/validateClaims.js +9 -4
  538. package/esm/node/oidc/util/validateClaims.js.map +1 -1
  539. package/esm/node/oidc/verifyToken.js +2 -2
  540. package/esm/node/oidc/verifyToken.js.map +1 -1
  541. package/esm/node/package.json +1 -1
  542. package/package.json +12 -13
  543. package/polyfill/index.js +8 -5
  544. package/types/lib/core/options.d.ts +2 -0
  545. package/types/lib/idx/interact.d.ts +1 -0
  546. package/types/lib/idx/options.d.ts +2 -0
  547. package/types/lib/idx/types/meta.d.ts +1 -0
  548. package/types/lib/idx/types/options.d.ts +1 -0
  549. package/types/lib/oidc/options/OAuthOptionsConstructor.d.ts +2 -0
  550. package/types/lib/oidc/types/UserClaims.d.ts +1 -0
  551. package/types/lib/oidc/types/api.d.ts +1 -0
  552. package/types/lib/oidc/types/meta.d.ts +1 -1
  553. package/types/lib/oidc/types/options.d.ts +2 -1
  554. package/types/lib/oidc/types/proto.d.ts +1 -0
  555. package/umd/authn.js +1 -1
  556. package/umd/authn.js.LICENSE.txt +2 -0
  557. package/umd/authn.js.map +1 -1
  558. package/umd/core.js +1 -1
  559. package/umd/core.js.LICENSE.txt +2 -0
  560. package/umd/core.js.map +1 -1
  561. package/umd/default.js +1 -1
  562. package/umd/default.js.LICENSE.txt +2 -0
  563. package/umd/default.js.map +1 -1
  564. package/umd/idx.js +1 -1
  565. package/umd/idx.js.LICENSE.txt +2 -0
  566. package/umd/idx.js.map +1 -1
  567. package/umd/myaccount.js +1 -1
  568. package/umd/myaccount.js.LICENSE.txt +2 -0
  569. package/umd/myaccount.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AuthenticatorData.js","names":["AuthenticatorData","Remediator","constructor","remediation","values","authenticator","getAuthenticator","formatAuthenticatorData","authenticatorData","getAuthenticatorData","authenticatorsData","map","data","compareAuthenticators","mapAuthenticatorDataFromValues","push","find","canRemediate","some","methodType","isAuthenticator","id","enrollmentId","getAuthenticatorFromRemediation","value","name","getValuesAfterProceed","filter"],"sources":["../../../../../lib/idx/remediators/Base/AuthenticatorData.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Remediator, RemediationValues } from './Remediator';\nimport { IdxRemediationValue, IdxRemediation, IdxAuthenticator } from '../../types/idx-js';\nimport { isAuthenticator } from '../../types/api';\nimport { compareAuthenticators } from '../../authenticator/util';\n\nexport type AuthenticatorDataValues = RemediationValues & {\n methodType?: string;\n};\n\n// Base class - DO NOT expose static remediationName\nexport class AuthenticatorData<T extends AuthenticatorDataValues = AuthenticatorDataValues> extends Remediator<T> {\n authenticator: IdxAuthenticator;\n\n constructor(remediation: IdxRemediation, values: T = {} as T) {\n super(remediation, values);\n\n // set before other data calculation\n this.authenticator = this.getAuthenticator()!;\n\n this.formatAuthenticatorData();\n }\n\n protected formatAuthenticatorData() {\n const authenticatorData = this.getAuthenticatorData();\n if (authenticatorData) {\n this.values.authenticatorsData = this.values.authenticatorsData!.map(data => {\n if (compareAuthenticators(this.authenticator, data)) {\n return this.mapAuthenticatorDataFromValues(data);\n }\n return data;\n });\n } else {\n const data = this.mapAuthenticatorDataFromValues();\n if (data) {\n this.values.authenticatorsData!.push(data);\n }\n }\n }\n\n protected getAuthenticatorData() {\n return this.values.authenticatorsData!\n .find((data) => compareAuthenticators(this.authenticator, data));\n }\n\n canRemediate() {\n return this.values.authenticatorsData!\n .some(data => compareAuthenticators(this.authenticator, data));\n }\n\n protected mapAuthenticatorDataFromValues(authenticatorData?) {\n // add methodType to authenticatorData if it exists in values\n let { methodType, authenticator } = this.values;\n if (!methodType && isAuthenticator(authenticator)) {\n methodType = authenticator?.methodType;\n }\n \n const { id, enrollmentId } = this.authenticator;\n const data = { \n id,\n enrollmentId,\n ...(authenticatorData && authenticatorData),\n ...(methodType && { methodType }) \n };\n\n return data.methodType ? data : null;\n }\n\n protected getAuthenticatorFromRemediation(): IdxRemediationValue {\n const authenticator = this.remediation.value!\n .find(({ name }) => name === 'authenticator') as IdxRemediationValue;\n return authenticator;\n }\n\n getValuesAfterProceed(): T {\n this.values = super.getValuesAfterProceed();\n // remove used authenticatorData\n const authenticatorsData = this.values.authenticatorsData!\n .filter(data => compareAuthenticators(this.authenticator, data) !== true);\n return { ...this.values, authenticatorsData };\n }\n}\n"],"mappings":";;;;AAaA;;AAEA;;AACA;;AAhBA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAWA;AACO,MAAMA,iBAAN,SAA6FC,sBAA7F,CAA2G;EAGhHC,WAAW,CAACC,WAAD,EAA8BC,MAAS,GAAG,EAA1C,EAAmD;IAC5D,MAAMD,WAAN,EAAmBC,MAAnB,EAD4D,CAG5D;;IACA,KAAKC,aAAL,GAAqB,KAAKC,gBAAL,EAArB;IAEA,KAAKC,uBAAL;EACD;;EAESA,uBAAuB,GAAG;IAClC,MAAMC,iBAAiB,GAAG,KAAKC,oBAAL,EAA1B;;IACA,IAAID,iBAAJ,EAAuB;MACrB,KAAKJ,MAAL,CAAYM,kBAAZ,GAAiC,KAAKN,MAAL,CAAYM,kBAAZ,CAAgCC,GAAhC,CAAoCC,IAAI,IAAI;QAC3E,IAAI,IAAAC,2BAAA,EAAsB,KAAKR,aAA3B,EAA0CO,IAA1C,CAAJ,EAAqD;UACnD,OAAO,KAAKE,8BAAL,CAAoCF,IAApC,CAAP;QACD;;QACD,OAAOA,IAAP;MACD,CALgC,CAAjC;IAMD,CAPD,MAOO;MACL,MAAMA,IAAI,GAAG,KAAKE,8BAAL,EAAb;;MACA,IAAIF,IAAJ,EAAU;QACR,KAAKR,MAAL,CAAYM,kBAAZ,CAAgCK,IAAhC,CAAqCH,IAArC;MACD;IACF;EACF;;EAESH,oBAAoB,GAAG;IAC/B,OAAO,KAAKL,MAAL,CAAYM,kBAAZ,CACJM,IADI,CACEJ,IAAD,IAAU,IAAAC,2BAAA,EAAsB,KAAKR,aAA3B,EAA0CO,IAA1C,CADX,CAAP;EAED;;EAEDK,YAAY,GAAG;IACb,OAAO,KAAKb,MAAL,CAAYM,kBAAZ,CACJQ,IADI,CACCN,IAAI,IAAI,IAAAC,2BAAA,EAAsB,KAAKR,aAA3B,EAA0CO,IAA1C,CADT,CAAP;EAED;;EAESE,8BAA8B,CAACN,iBAAD,EAAqB;IAC3D;IACA,IAAI;MAAEW,UAAF;MAAcd;IAAd,IAAgC,KAAKD,MAAzC;;IACA,IAAI,CAACe,UAAD,IAAe,IAAAC,oBAAA,EAAgBf,aAAhB,CAAnB,EAAmD;MAClDc,UAAU,GAAGd,aAAH,aAAGA,aAAH,uBAAGA,aAAa,CAAEc,UAA5B;IACA;;IAED,MAAM;MAAEE,EAAF;MAAMC;IAAN,IAAuB,KAAKjB,aAAlC;IACA,MAAMO,IAAI,GAAG;MACXS,EADW;MAEXC,YAFW;MAGX,IAAId,iBAAiB,IAAIA,iBAAzB,CAHW;MAIX,IAAIW,UAAU,IAAI;QAAEA;MAAF,CAAlB;IAJW,CAAb;IAOA,OAAOP,IAAI,CAACO,UAAL,GAAkBP,IAAlB,GAAyB,IAAhC;EACD;;EAESW,+BAA+B,GAAwB;IAC/D,MAAMlB,aAAa,GAAG,KAAKF,WAAL,CAAiBqB,KAAjB,CACnBR,IADmB,CACd,CAAC;MAAES;IAAF,CAAD,KAAcA,IAAI,KAAK,eADT,CAAtB;IAEA,OAAOpB,aAAP;EACD;;EAEDqB,qBAAqB,GAAM;IACzB,KAAKtB,MAAL,GAAc,MAAMsB,qBAAN,EAAd,CADyB,CAEzB;;IACA,MAAMhB,kBAAkB,GAAG,KAAKN,MAAL,CAAYM,kBAAZ,CACxBiB,MADwB,CACjBf,IAAI,IAAI,IAAAC,2BAAA,EAAsB,KAAKR,aAA3B,EAA0CO,IAA1C,MAAoD,IAD3C,CAA3B;IAEA,OAAO,EAAE,GAAG,KAAKR,MAAV;MAAkBM;IAAlB,CAAP;EACD;;AArE+G"}
1
+ {"version":3,"file":"AuthenticatorData.js","names":["AuthenticatorData","Remediator","constructor","remediation","values","authenticator","getAuthenticator","formatAuthenticatorData","authenticatorData","getAuthenticatorData","authenticatorsData","map","data","compareAuthenticators","mapAuthenticatorDataFromValues","push","find","canRemediate","some","methodType","isAuthenticator","id","enrollmentId","getAuthenticatorFromRemediation","value","name","getValuesAfterProceed","filter"],"sources":["../../../../../lib/idx/remediators/Base/AuthenticatorData.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Remediator, RemediationValues } from './Remediator';\nimport { IdxRemediationValue, IdxRemediation, IdxAuthenticator } from '../../types/idx-js';\nimport { isAuthenticator } from '../../types/api';\nimport { compareAuthenticators } from '../../authenticator/util';\n\nexport type AuthenticatorDataValues = RemediationValues & {\n methodType?: string;\n};\n\n// Base class - DO NOT expose static remediationName\nexport class AuthenticatorData<T extends AuthenticatorDataValues = AuthenticatorDataValues> extends Remediator<T> {\n authenticator: IdxAuthenticator;\n\n constructor(remediation: IdxRemediation, values: T = {} as T) {\n super(remediation, values);\n\n // set before other data calculation\n this.authenticator = this.getAuthenticator()!;\n\n this.formatAuthenticatorData();\n }\n\n protected formatAuthenticatorData() {\n const authenticatorData = this.getAuthenticatorData();\n if (authenticatorData) {\n this.values.authenticatorsData = this.values.authenticatorsData!.map(data => {\n if (compareAuthenticators(this.authenticator, data)) {\n return this.mapAuthenticatorDataFromValues(data);\n }\n return data;\n });\n } else {\n const data = this.mapAuthenticatorDataFromValues();\n if (data) {\n this.values.authenticatorsData!.push(data);\n }\n }\n }\n\n protected getAuthenticatorData() {\n return this.values.authenticatorsData!\n .find((data) => compareAuthenticators(this.authenticator, data));\n }\n\n canRemediate() {\n return this.values.authenticatorsData!\n .some(data => compareAuthenticators(this.authenticator, data));\n }\n\n protected mapAuthenticatorDataFromValues(authenticatorData?) {\n // add methodType to authenticatorData if it exists in values\n let { methodType, authenticator } = this.values;\n if (!methodType && isAuthenticator(authenticator)) {\n methodType = authenticator?.methodType;\n }\n \n const { id, enrollmentId } = this.authenticator;\n const data = { \n id,\n enrollmentId,\n ...(authenticatorData && authenticatorData),\n ...(methodType && { methodType }) \n };\n\n return data.methodType ? data : null;\n }\n\n protected getAuthenticatorFromRemediation(): IdxRemediationValue {\n const authenticator = this.remediation.value!\n .find(({ name }) => name === 'authenticator') as IdxRemediationValue;\n return authenticator;\n }\n\n getValuesAfterProceed(): T {\n this.values = super.getValuesAfterProceed();\n // remove used authenticatorData\n const authenticatorsData = this.values.authenticatorsData!\n .filter(data => compareAuthenticators(this.authenticator, data) !== true);\n return { ...this.values, authenticatorsData };\n }\n}\n"],"mappings":";;;AAaA;AAEA;AACA;AAhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWA;AACO,MAAMA,iBAAiB,SAAsEC,sBAAU,CAAI;EAGhHC,WAAW,CAACC,WAA2B,EAAEC,MAAS,GAAG,CAAC,CAAM,EAAE;IAC5D,KAAK,CAACD,WAAW,EAAEC,MAAM,CAAC;;IAE1B;IACA,IAAI,CAACC,aAAa,GAAG,IAAI,CAACC,gBAAgB,EAAG;IAE7C,IAAI,CAACC,uBAAuB,EAAE;EAChC;EAEUA,uBAAuB,GAAG;IAClC,MAAMC,iBAAiB,GAAG,IAAI,CAACC,oBAAoB,EAAE;IACrD,IAAID,iBAAiB,EAAE;MACrB,IAAI,CAACJ,MAAM,CAACM,kBAAkB,GAAG,IAAI,CAACN,MAAM,CAACM,kBAAkB,CAAEC,GAAG,CAACC,IAAI,IAAI;QAC3E,IAAI,IAAAC,2BAAqB,EAAC,IAAI,CAACR,aAAa,EAAEO,IAAI,CAAC,EAAE;UACnD,OAAO,IAAI,CAACE,8BAA8B,CAACF,IAAI,CAAC;QAClD;QACA,OAAOA,IAAI;MACb,CAAC,CAAC;IACJ,CAAC,MAAM;MACL,MAAMA,IAAI,GAAG,IAAI,CAACE,8BAA8B,EAAE;MAClD,IAAIF,IAAI,EAAE;QACR,IAAI,CAACR,MAAM,CAACM,kBAAkB,CAAEK,IAAI,CAACH,IAAI,CAAC;MAC5C;IACF;EACF;EAEUH,oBAAoB,GAAG;IAC/B,OAAO,IAAI,CAACL,MAAM,CAACM,kBAAkB,CAClCM,IAAI,CAAEJ,IAAI,IAAK,IAAAC,2BAAqB,EAAC,IAAI,CAACR,aAAa,EAAEO,IAAI,CAAC,CAAC;EACpE;EAEAK,YAAY,GAAG;IACb,OAAO,IAAI,CAACb,MAAM,CAACM,kBAAkB,CAClCQ,IAAI,CAACN,IAAI,IAAI,IAAAC,2BAAqB,EAAC,IAAI,CAACR,aAAa,EAAEO,IAAI,CAAC,CAAC;EAClE;EAEUE,8BAA8B,CAACN,iBAAkB,EAAE;IAC3D;IACA,IAAI;MAAEW,UAAU;MAAEd;IAAc,CAAC,GAAG,IAAI,CAACD,MAAM;IAC/C,IAAI,CAACe,UAAU,IAAI,IAAAC,oBAAe,EAACf,aAAa,CAAC,EAAE;MAClDc,UAAU,GAAGd,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEc,UAAU;IACvC;IAEA,MAAM;MAAEE,EAAE;MAAEC;IAAa,CAAC,GAAG,IAAI,CAACjB,aAAa;IAC/C,MAAMO,IAAI,GAAG;MACXS,EAAE;MACFC,YAAY;MACZ,IAAId,iBAAiB,IAAIA,iBAAiB,CAAC;MAC3C,IAAIW,UAAU,IAAI;QAAEA;MAAW,CAAC;IAClC,CAAC;IAED,OAAOP,IAAI,CAACO,UAAU,GAAGP,IAAI,GAAG,IAAI;EACtC;EAEUW,+BAA+B,GAAwB;IAC/D,MAAMlB,aAAa,GAAG,IAAI,CAACF,WAAW,CAACqB,KAAK,CACzCR,IAAI,CAAC,CAAC;MAAES;IAAK,CAAC,KAAKA,IAAI,KAAK,eAAe,CAAwB;IACtE,OAAOpB,aAAa;EACtB;EAEAqB,qBAAqB,GAAM;IACzB,IAAI,CAACtB,MAAM,GAAG,KAAK,CAACsB,qBAAqB,EAAE;IAC3C;IACA,MAAMhB,kBAAkB,GAAG,IAAI,CAACN,MAAM,CAACM,kBAAkB,CACtDiB,MAAM,CAACf,IAAI,IAAI,IAAAC,2BAAqB,EAAC,IAAI,CAACR,aAAa,EAAEO,IAAI,CAAC,KAAK,IAAI,CAAC;IAC3E,OAAO;MAAE,GAAG,IAAI,CAACR,MAAM;MAAEM;IAAmB,CAAC;EAC/C;AACF;AAAC"}
@@ -1,13 +1,9 @@
1
1
  "use strict";
2
2
 
3
3
  exports.Remediator = void 0;
4
-
5
4
  var _util = require("../util");
6
-
7
5
  var _util2 = require("../../authenticator/util");
8
-
9
6
  /* eslint-disable @typescript-eslint/no-non-null-assertion */
10
-
11
7
  /*!
12
8
  * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
13
9
  * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
@@ -21,117 +17,110 @@ var _util2 = require("../../authenticator/util");
21
17
  */
22
18
 
23
19
  /* eslint-disable complexity */
20
+
24
21
  // Base class - DO NOT expose static remediationName
25
22
  class Remediator {
26
23
  constructor(remediation, values = {}, options = {}) {
27
24
  // assign fields to the instance
28
- this.values = { ...values
25
+ this.values = {
26
+ ...values
29
27
  };
30
- this.options = { ...options
28
+ this.options = {
29
+ ...options
31
30
  };
32
31
  this.formatAuthenticators();
33
32
  this.remediation = remediation;
34
33
  }
35
-
36
34
  formatAuthenticators() {
37
- this.values.authenticators = this.values.authenticators || []; // ensure authenticators are in the correct format
35
+ this.values.authenticators = this.values.authenticators || [];
38
36
 
37
+ // ensure authenticators are in the correct format
39
38
  this.values.authenticators = this.values.authenticators.map(authenticator => {
40
39
  return (0, _util2.formatAuthenticator)(authenticator);
41
- }); // add authenticator (if any) to "authenticators"
40
+ });
42
41
 
42
+ // add authenticator (if any) to "authenticators"
43
43
  if (this.values.authenticator) {
44
44
  const authenticator = (0, _util2.formatAuthenticator)(this.values.authenticator);
45
45
  const hasAuthenticatorInList = this.values.authenticators.some(existing => {
46
46
  return (0, _util2.compareAuthenticators)(authenticator, existing);
47
47
  });
48
-
49
48
  if (!hasAuthenticatorInList) {
50
49
  this.values.authenticators.push(authenticator);
51
50
  }
52
- } // save non-key meta to "authenticatorsData" field
53
- // authenticators will be removed after selection to avoid select-authenticator loop
54
-
51
+ }
55
52
 
53
+ // save non-key meta to "authenticatorsData" field
54
+ // authenticators will be removed after selection to avoid select-authenticator loop
56
55
  this.values.authenticatorsData = this.values.authenticators.reduce((acc, authenticator) => {
57
56
  if (typeof authenticator === 'object' && Object.keys(authenticator).length > 1) {
58
57
  // save authenticator meta into authenticator data
59
58
  acc.push(authenticator);
60
59
  }
61
-
62
60
  return acc;
63
61
  }, this.values.authenticatorsData || []);
64
62
  }
65
-
66
63
  getName() {
67
64
  return this.remediation.name;
68
- } // Override this method to provide custom check
65
+ }
69
66
 
67
+ // Override this method to provide custom check
70
68
  /* eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars */
71
-
72
-
73
69
  canRemediate() {
74
70
  const required = (0, _util.getRequiredValues)(this.remediation);
75
71
  const needed = required.find(key => !this.hasData(key));
76
-
77
72
  if (needed) {
78
73
  return false; // missing data for a required field
79
74
  }
80
75
 
81
76
  return true; // all required fields have available data
82
- } // returns an object for the entire remediation form, or just a part
83
-
77
+ }
84
78
 
79
+ // returns an object for the entire remediation form, or just a part
85
80
  getData(key) {
86
81
  if (!key) {
87
82
  let allValues = (0, _util.getAllValues)(this.remediation);
88
83
  let res = allValues.reduce((data, key) => {
89
84
  data[key] = this.getData(key); // recursive
90
-
91
85
  return data;
92
86
  }, {});
93
87
  return res;
94
- } // Map value by "map${Property}" function in each subClass
95
-
88
+ }
96
89
 
90
+ // Map value by "map${Property}" function in each subClass
97
91
  if (typeof this[`map${(0, _util.titleCase)(key)}`] === 'function') {
98
92
  const val = this[`map${(0, _util.titleCase)(key)}`](this.remediation.value.find(({
99
93
  name
100
94
  }) => name === key));
101
-
102
95
  if (val) {
103
96
  return val;
104
97
  }
105
- } // If a map is defined for this key, return the first aliased property that returns a truthy value
106
-
98
+ }
107
99
 
100
+ // If a map is defined for this key, return the first aliased property that returns a truthy value
108
101
  if (this.map && this.map[key]) {
109
102
  const entry = this.map[key];
110
-
111
103
  for (let i = 0; i < entry.length; i++) {
112
104
  let val = this.values[entry[i]];
113
-
114
105
  if (val) {
115
106
  return val;
116
107
  }
117
108
  }
118
- } // fallback: return the value by key
119
-
109
+ }
120
110
 
111
+ // fallback: return the value by key
121
112
  return this.values[key];
122
113
  }
123
-
124
114
  hasData(key) {
125
115
  // no attempt to format, we want simple true/false
126
116
  return !!this.getData(key);
127
117
  }
128
-
129
118
  getNextStep(_authClient, _context) {
130
119
  const name = this.getName();
131
120
  const inputs = this.getInputs();
132
- const authenticator = this.getAuthenticator(); // TODO: remove type field in the next major version change
121
+ const authenticator = this.getAuthenticator();
122
+ // TODO: remove type field in the next major version change
133
123
  // https://oktainc.atlassian.net/browse/OKTA-431749
134
-
135
124
  const type = authenticator === null || authenticator === void 0 ? void 0 : authenticator.type;
136
125
  return {
137
126
  name,
@@ -143,9 +132,9 @@ class Remediator {
143
132
  authenticator
144
133
  })
145
134
  };
146
- } // Get inputs for the next step
147
-
135
+ }
148
136
 
137
+ // Get inputs for the next step
149
138
  getInputs() {
150
139
  const inputs = [];
151
140
  const inputsFromRemediation = this.remediation.value || [];
@@ -157,7 +146,6 @@ class Remediator {
157
146
  visible,
158
147
  messages
159
148
  } = inputFromRemediation;
160
-
161
149
  if (visible === false) {
162
150
  return; // Filter out invisible inputs, like stateHandle
163
151
  }
@@ -168,25 +156,22 @@ class Remediator {
168
156
  // handle general primitive types
169
157
  let alias;
170
158
  const aliases = (this.map ? this.map[name] : null) || [];
171
-
172
159
  if (aliases.length === 1) {
173
160
  alias = aliases[0];
174
161
  } else {
175
162
  // try find key from values
176
163
  alias = aliases.find(name => Object.keys(this.values).includes(name));
177
164
  }
178
-
179
165
  if (alias) {
180
- input = { ...inputFromRemediation,
166
+ input = {
167
+ ...inputFromRemediation,
181
168
  name: alias
182
169
  };
183
170
  }
184
171
  }
185
-
186
172
  if (!input) {
187
173
  input = inputFromRemediation;
188
174
  }
189
-
190
175
  if (Array.isArray(input)) {
191
176
  input.forEach(i => inputs.push(i));
192
177
  } else {
@@ -194,78 +179,64 @@ class Remediator {
194
179
  if (messages) {
195
180
  input.messages = messages;
196
181
  }
197
-
198
182
  inputs.push(input);
199
183
  }
200
184
  });
201
185
  return inputs;
202
186
  }
203
-
204
187
  static getMessages(remediation) {
205
188
  var _remediation$value$, _remediation$value$$f;
206
-
207
189
  if (!remediation.value) {
208
190
  return;
209
191
  }
210
-
211
192
  return (_remediation$value$ = remediation.value[0]) === null || _remediation$value$ === void 0 ? void 0 : (_remediation$value$$f = _remediation$value$.form) === null || _remediation$value$$f === void 0 ? void 0 : _remediation$value$$f.value.reduce((messages, field) => {
212
193
  if (field.messages) {
213
194
  messages = [...messages, ...field.messages.value];
214
195
  }
215
-
216
196
  return messages;
217
197
  }, []);
218
- } // Prepare values for the next remediation
198
+ }
199
+
200
+ // Prepare values for the next remediation
219
201
  // In general, remove used values from inputs for the current remediation
220
202
  // Override this method if special cases need be handled
221
-
222
-
223
203
  getValuesAfterProceed() {
224
204
  const inputsFromRemediation = this.remediation.value || []; // "raw" inputs from server response
225
-
226
205
  const inputsFromRemediator = this.getInputs(); // "aliased" inputs from SDK remediator
227
-
228
- const inputs = [...inputsFromRemediation, ...inputsFromRemediator]; // scrub all values related to this remediation
229
-
206
+ const inputs = [...inputsFromRemediation, ...inputsFromRemediator];
207
+ // scrub all values related to this remediation
230
208
  for (const input of inputs) {
231
209
  delete this.values[input.name];
232
210
  }
233
-
234
211
  return this.values;
235
212
  }
236
-
237
213
  getAuthenticator() {
238
214
  var _this$remediation$rel, _value$find;
239
-
240
215
  // relatesTo value may be an authenticator or an authenticatorEnrollment
241
216
  const relatesTo = (_this$remediation$rel = this.remediation.relatesTo) === null || _this$remediation$rel === void 0 ? void 0 : _this$remediation$rel.value;
242
-
243
217
  if (!relatesTo) {
244
218
  return;
245
219
  }
246
-
247
220
  const authenticatorFromRemediation = (0, _util.getAuthenticatorFromRemediation)(this.remediation);
248
-
249
221
  if (!authenticatorFromRemediation) {
250
222
  // Hopefully value is an authenticator
251
223
  return relatesTo;
252
- } // If relatesTo is an authenticatorEnrollment, the id is actually the enrollmentId
253
- // Let's get the correct authenticator id from the form value
254
-
224
+ }
255
225
 
226
+ // If relatesTo is an authenticatorEnrollment, the id is actually the enrollmentId
227
+ // Let's get the correct authenticator id from the form value
256
228
  const id = authenticatorFromRemediation.form.value.find(({
257
229
  name
258
230
  }) => name === 'id').value;
259
231
  const enrollmentId = (_value$find = authenticatorFromRemediation.form.value.find(({
260
232
  name
261
233
  }) => name === 'enrollmentId')) === null || _value$find === void 0 ? void 0 : _value$find.value;
262
- return { ...relatesTo,
234
+ return {
235
+ ...relatesTo,
263
236
  id,
264
237
  enrollmentId
265
238
  };
266
239
  }
267
-
268
240
  }
269
-
270
241
  exports.Remediator = Remediator;
271
242
  //# sourceMappingURL=Remediator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Remediator.js","names":["Remediator","constructor","remediation","values","options","formatAuthenticators","authenticators","map","authenticator","formatAuthenticator","hasAuthenticatorInList","some","existing","compareAuthenticators","push","authenticatorsData","reduce","acc","Object","keys","length","getName","name","canRemediate","required","getRequiredValues","needed","find","key","hasData","getData","allValues","getAllValues","res","data","titleCase","val","value","entry","i","getNextStep","_authClient","_context","inputs","getInputs","getAuthenticator","type","inputsFromRemediation","forEach","inputFromRemediation","input","visible","messages","alias","aliases","includes","Array","isArray","getMessages","form","field","getValuesAfterProceed","inputsFromRemediator","relatesTo","authenticatorFromRemediation","getAuthenticatorFromRemediation","id","enrollmentId"],"sources":["../../../../../lib/idx/remediators/Base/Remediator.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\n/* eslint-disable complexity */\nimport { OktaAuthIdxInterface, NextStep, IdxMessage, Authenticator, Input, RemediateOptions } from '../../types';\nimport { IdxAuthenticator, IdxRemediation, IdxContext } from '../../types/idx-js';\nimport { getAllValues, getRequiredValues, titleCase, getAuthenticatorFromRemediation } from '../util';\nimport { formatAuthenticator, compareAuthenticators } from '../../authenticator/util';\n\n// A map from IDX data values (server spec) to RemediationValues (client spec)\nexport type IdxToRemediationValueMap = Record<string, string[]>;\n\nexport interface RemediationValues {\n stateHandle?: string;\n authenticators?: (Authenticator | string)[];\n authenticator?: string | Authenticator;\n authenticatorsData?: Authenticator[];\n resend?: boolean;\n}\n\nexport interface RemediatorConstructor {\n new<T extends RemediationValues>(\n remediation: IdxRemediation, \n values?: T, \n options?: RemediateOptions\n ): any;\n}\n\n// Base class - DO NOT expose static remediationName\nexport class Remediator<T extends RemediationValues = RemediationValues> {\n static remediationName: string;\n\n remediation: IdxRemediation;\n values: T;\n options: RemediateOptions;\n map?: IdxToRemediationValueMap;\n\n constructor(\n remediation: IdxRemediation, \n values: T = {} as T, \n options: RemediateOptions = {}\n ) {\n // assign fields to the instance\n this.values = { ...values };\n this.options = { ...options };\n this.formatAuthenticators();\n this.remediation = remediation;\n }\n\n private formatAuthenticators() {\n this.values.authenticators = (this.values.authenticators || []) as Authenticator[];\n\n // ensure authenticators are in the correct format\n this.values.authenticators = this.values.authenticators.map(authenticator => {\n return formatAuthenticator(authenticator);\n });\n\n // add authenticator (if any) to \"authenticators\"\n if (this.values.authenticator) {\n const authenticator = formatAuthenticator(this.values.authenticator);\n const hasAuthenticatorInList = this.values.authenticators.some(existing => {\n return compareAuthenticators(authenticator, existing);\n });\n if (!hasAuthenticatorInList) {\n this.values.authenticators.push(authenticator);\n }\n }\n\n // save non-key meta to \"authenticatorsData\" field\n // authenticators will be removed after selection to avoid select-authenticator loop\n this.values.authenticatorsData = this.values.authenticators.reduce((acc, authenticator) => {\n if (typeof authenticator === 'object' && Object.keys(authenticator).length > 1) {\n // save authenticator meta into authenticator data\n acc.push(authenticator);\n }\n return acc;\n }, this.values.authenticatorsData || []);\n }\n\n getName(): string {\n return this.remediation.name;\n }\n\n // Override this method to provide custom check\n /* eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars */\n canRemediate(): boolean {\n const required = getRequiredValues(this.remediation);\n const needed = required!.find((key) => !this.hasData(key));\n if (needed) {\n return false; // missing data for a required field\n }\n return true; // all required fields have available data\n }\n\n // returns an object for the entire remediation form, or just a part\n getData(key?: string) {\n if (!key) {\n let allValues = getAllValues(this.remediation);\n let res = allValues!.reduce((data, key) => {\n data[key] = this.getData(key); // recursive\n return data;\n }, {});\n return res;\n }\n\n // Map value by \"map${Property}\" function in each subClass\n if (typeof this[`map${titleCase(key)}`] === 'function') {\n const val = this[`map${titleCase(key)}`](\n this.remediation.value!.find(({name}) => name === key)\n );\n if (val) {\n return val;\n }\n }\n\n // If a map is defined for this key, return the first aliased property that returns a truthy value\n if (this.map && this.map[key]) {\n const entry = this.map[key];\n for (let i = 0; i < entry.length; i++) {\n let val = this.values[entry[i]];\n if (val) {\n return val;\n }\n }\n }\n\n // fallback: return the value by key\n return this.values[key];\n }\n\n hasData(\n key: string // idx name\n ): boolean \n {\n // no attempt to format, we want simple true/false\n return !!this.getData(key);\n }\n\n getNextStep(_authClient: OktaAuthIdxInterface, _context?: IdxContext): NextStep {\n const name = this.getName();\n const inputs = this.getInputs();\n const authenticator = this.getAuthenticator();\n // TODO: remove type field in the next major version change\n // https://oktainc.atlassian.net/browse/OKTA-431749\n const type = authenticator?.type;\n return { \n name, \n inputs, \n ...(type && { type }),\n ...(authenticator && { authenticator }),\n };\n }\n\n // Get inputs for the next step\n getInputs(): Input[] {\n const inputs: Input[] = [];\n const inputsFromRemediation = this.remediation.value || [];\n inputsFromRemediation.forEach(inputFromRemediation => {\n let input;\n let { name, type, visible, messages } = inputFromRemediation;\n if (visible === false) {\n return; // Filter out invisible inputs, like stateHandle\n }\n if (typeof this[`getInput${titleCase(name)}`] === 'function') {\n input = this[`getInput${titleCase(name)}`](inputFromRemediation);\n } else if (type !== 'object') {\n // handle general primitive types\n let alias;\n const aliases = (this.map ? this.map[name] : null) || [];\n if (aliases.length === 1) {\n alias = aliases[0];\n } else {\n // try find key from values\n alias = aliases.find(name => Object.keys(this.values).includes(name));\n }\n if (alias) {\n input = { ...inputFromRemediation, name: alias };\n }\n }\n if (!input) {\n input = inputFromRemediation;\n }\n if (Array.isArray(input)) {\n input.forEach(i => inputs.push(i));\n } else {\n // guarantees field-level messages are passed back\n if (messages) {\n input.messages = messages;\n }\n inputs.push(input);\n }\n });\n return inputs;\n }\n\n static getMessages(remediation: IdxRemediation): IdxMessage[] | undefined {\n if (!remediation.value) {\n return;\n }\n return remediation.value[0]?.form?.value.reduce((messages: IdxMessage[], field) => {\n if (field.messages) {\n messages = [...messages, ...field.messages.value];\n }\n return messages;\n }, []);\n }\n\n // Prepare values for the next remediation\n // In general, remove used values from inputs for the current remediation\n // Override this method if special cases need be handled\n getValuesAfterProceed(): T {\n const inputsFromRemediation = this.remediation.value || []; // \"raw\" inputs from server response\n const inputsFromRemediator = this.getInputs(); // \"aliased\" inputs from SDK remediator\n const inputs = [\n ...inputsFromRemediation,\n ...inputsFromRemediator\n ];\n // scrub all values related to this remediation\n for (const input of inputs) {\n delete this.values[input.name];\n }\n return this.values;\n }\n\n protected getAuthenticator(): IdxAuthenticator | undefined {\n // relatesTo value may be an authenticator or an authenticatorEnrollment\n const relatesTo = this.remediation.relatesTo?.value;\n if (!relatesTo) {\n return;\n }\n\n const authenticatorFromRemediation = getAuthenticatorFromRemediation(this.remediation);\n if (!authenticatorFromRemediation) {\n // Hopefully value is an authenticator\n return relatesTo;\n }\n\n // If relatesTo is an authenticatorEnrollment, the id is actually the enrollmentId\n // Let's get the correct authenticator id from the form value\n const id = authenticatorFromRemediation.form!.value\n .find(({ name }) => name === 'id')!.value as string;\n const enrollmentId = authenticatorFromRemediation.form!.value\n .find(({ name }) => name === 'enrollmentId')?.value as string;\n\n return {\n ...relatesTo,\n id,\n enrollmentId\n };\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Remediator.js","names":["Remediator","constructor","remediation","values","options","formatAuthenticators","authenticators","map","authenticator","formatAuthenticator","hasAuthenticatorInList","some","existing","compareAuthenticators","push","authenticatorsData","reduce","acc","Object","keys","length","getName","name","canRemediate","required","getRequiredValues","needed","find","key","hasData","getData","allValues","getAllValues","res","data","titleCase","val","value","entry","i","getNextStep","_authClient","_context","inputs","getInputs","getAuthenticator","type","inputsFromRemediation","forEach","inputFromRemediation","input","visible","messages","alias","aliases","includes","Array","isArray","getMessages","form","field","getValuesAfterProceed","inputsFromRemediator","relatesTo","authenticatorFromRemediation","getAuthenticatorFromRemediation","id","enrollmentId"],"sources":["../../../../../lib/idx/remediators/Base/Remediator.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\n/* eslint-disable complexity */\nimport { OktaAuthIdxInterface, NextStep, IdxMessage, Authenticator, Input, RemediateOptions } from '../../types';\nimport { IdxAuthenticator, IdxRemediation, IdxContext } from '../../types/idx-js';\nimport { getAllValues, getRequiredValues, titleCase, getAuthenticatorFromRemediation } from '../util';\nimport { formatAuthenticator, compareAuthenticators } from '../../authenticator/util';\n\n// A map from IDX data values (server spec) to RemediationValues (client spec)\nexport type IdxToRemediationValueMap = Record<string, string[]>;\n\nexport interface RemediationValues {\n stateHandle?: string;\n authenticators?: (Authenticator | string)[];\n authenticator?: string | Authenticator;\n authenticatorsData?: Authenticator[];\n resend?: boolean;\n}\n\nexport interface RemediatorConstructor {\n new<T extends RemediationValues>(\n remediation: IdxRemediation, \n values?: T, \n options?: RemediateOptions\n ): any;\n}\n\n// Base class - DO NOT expose static remediationName\nexport class Remediator<T extends RemediationValues = RemediationValues> {\n static remediationName: string;\n\n remediation: IdxRemediation;\n values: T;\n options: RemediateOptions;\n map?: IdxToRemediationValueMap;\n\n constructor(\n remediation: IdxRemediation, \n values: T = {} as T, \n options: RemediateOptions = {}\n ) {\n // assign fields to the instance\n this.values = { ...values };\n this.options = { ...options };\n this.formatAuthenticators();\n this.remediation = remediation;\n }\n\n private formatAuthenticators() {\n this.values.authenticators = (this.values.authenticators || []) as Authenticator[];\n\n // ensure authenticators are in the correct format\n this.values.authenticators = this.values.authenticators.map(authenticator => {\n return formatAuthenticator(authenticator);\n });\n\n // add authenticator (if any) to \"authenticators\"\n if (this.values.authenticator) {\n const authenticator = formatAuthenticator(this.values.authenticator);\n const hasAuthenticatorInList = this.values.authenticators.some(existing => {\n return compareAuthenticators(authenticator, existing);\n });\n if (!hasAuthenticatorInList) {\n this.values.authenticators.push(authenticator);\n }\n }\n\n // save non-key meta to \"authenticatorsData\" field\n // authenticators will be removed after selection to avoid select-authenticator loop\n this.values.authenticatorsData = this.values.authenticators.reduce((acc, authenticator) => {\n if (typeof authenticator === 'object' && Object.keys(authenticator).length > 1) {\n // save authenticator meta into authenticator data\n acc.push(authenticator);\n }\n return acc;\n }, this.values.authenticatorsData || []);\n }\n\n getName(): string {\n return this.remediation.name;\n }\n\n // Override this method to provide custom check\n /* eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars */\n canRemediate(): boolean {\n const required = getRequiredValues(this.remediation);\n const needed = required!.find((key) => !this.hasData(key));\n if (needed) {\n return false; // missing data for a required field\n }\n return true; // all required fields have available data\n }\n\n // returns an object for the entire remediation form, or just a part\n getData(key?: string) {\n if (!key) {\n let allValues = getAllValues(this.remediation);\n let res = allValues!.reduce((data, key) => {\n data[key] = this.getData(key); // recursive\n return data;\n }, {});\n return res;\n }\n\n // Map value by \"map${Property}\" function in each subClass\n if (typeof this[`map${titleCase(key)}`] === 'function') {\n const val = this[`map${titleCase(key)}`](\n this.remediation.value!.find(({name}) => name === key)\n );\n if (val) {\n return val;\n }\n }\n\n // If a map is defined for this key, return the first aliased property that returns a truthy value\n if (this.map && this.map[key]) {\n const entry = this.map[key];\n for (let i = 0; i < entry.length; i++) {\n let val = this.values[entry[i]];\n if (val) {\n return val;\n }\n }\n }\n\n // fallback: return the value by key\n return this.values[key];\n }\n\n hasData(\n key: string // idx name\n ): boolean \n {\n // no attempt to format, we want simple true/false\n return !!this.getData(key);\n }\n\n getNextStep(_authClient: OktaAuthIdxInterface, _context?: IdxContext): NextStep {\n const name = this.getName();\n const inputs = this.getInputs();\n const authenticator = this.getAuthenticator();\n // TODO: remove type field in the next major version change\n // https://oktainc.atlassian.net/browse/OKTA-431749\n const type = authenticator?.type;\n return { \n name, \n inputs, \n ...(type && { type }),\n ...(authenticator && { authenticator }),\n };\n }\n\n // Get inputs for the next step\n getInputs(): Input[] {\n const inputs: Input[] = [];\n const inputsFromRemediation = this.remediation.value || [];\n inputsFromRemediation.forEach(inputFromRemediation => {\n let input;\n let { name, type, visible, messages } = inputFromRemediation;\n if (visible === false) {\n return; // Filter out invisible inputs, like stateHandle\n }\n if (typeof this[`getInput${titleCase(name)}`] === 'function') {\n input = this[`getInput${titleCase(name)}`](inputFromRemediation);\n } else if (type !== 'object') {\n // handle general primitive types\n let alias;\n const aliases = (this.map ? this.map[name] : null) || [];\n if (aliases.length === 1) {\n alias = aliases[0];\n } else {\n // try find key from values\n alias = aliases.find(name => Object.keys(this.values).includes(name));\n }\n if (alias) {\n input = { ...inputFromRemediation, name: alias };\n }\n }\n if (!input) {\n input = inputFromRemediation;\n }\n if (Array.isArray(input)) {\n input.forEach(i => inputs.push(i));\n } else {\n // guarantees field-level messages are passed back\n if (messages) {\n input.messages = messages;\n }\n inputs.push(input);\n }\n });\n return inputs;\n }\n\n static getMessages(remediation: IdxRemediation): IdxMessage[] | undefined {\n if (!remediation.value) {\n return;\n }\n return remediation.value[0]?.form?.value.reduce((messages: IdxMessage[], field) => {\n if (field.messages) {\n messages = [...messages, ...field.messages.value];\n }\n return messages;\n }, []);\n }\n\n // Prepare values for the next remediation\n // In general, remove used values from inputs for the current remediation\n // Override this method if special cases need be handled\n getValuesAfterProceed(): T {\n const inputsFromRemediation = this.remediation.value || []; // \"raw\" inputs from server response\n const inputsFromRemediator = this.getInputs(); // \"aliased\" inputs from SDK remediator\n const inputs = [\n ...inputsFromRemediation,\n ...inputsFromRemediator\n ];\n // scrub all values related to this remediation\n for (const input of inputs) {\n delete this.values[input.name];\n }\n return this.values;\n }\n\n protected getAuthenticator(): IdxAuthenticator | undefined {\n // relatesTo value may be an authenticator or an authenticatorEnrollment\n const relatesTo = this.remediation.relatesTo?.value;\n if (!relatesTo) {\n return;\n }\n\n const authenticatorFromRemediation = getAuthenticatorFromRemediation(this.remediation);\n if (!authenticatorFromRemediation) {\n // Hopefully value is an authenticator\n return relatesTo;\n }\n\n // If relatesTo is an authenticatorEnrollment, the id is actually the enrollmentId\n // Let's get the correct authenticator id from the form value\n const id = authenticatorFromRemediation.form!.value\n .find(({ name }) => name === 'id')!.value as string;\n const enrollmentId = authenticatorFromRemediation.form!.value\n .find(({ name }) => name === 'enrollmentId')?.value as string;\n\n return {\n ...relatesTo,\n id,\n enrollmentId\n };\n }\n}\n"],"mappings":"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"}
@@ -1,17 +1,11 @@
1
1
  "use strict";
2
2
 
3
3
  exports.SelectAuthenticator = void 0;
4
-
5
4
  var _Remediator = require("./Remediator");
6
-
7
5
  var _util = require("../util");
8
-
9
6
  var _api = require("../../types/api");
10
-
11
7
  var _util2 = require("../../authenticator/util");
12
-
13
8
  /* eslint-disable @typescript-eslint/no-non-null-assertion */
14
-
15
9
  /*!
16
10
  * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
17
11
  * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
@@ -23,25 +17,22 @@ var _util2 = require("../../authenticator/util");
23
17
  *
24
18
  * See the License for the specific language governing permissions and limitations under the License.
25
19
  */
20
+
26
21
  // Base class - DO NOT expose static remediationName
27
22
  class SelectAuthenticator extends _Remediator.Remediator {
28
23
  // Find matched authenticator in provided order
29
24
  findMatchedOption(authenticators, options) {
30
25
  let option;
31
-
32
26
  for (let authenticator of authenticators) {
33
27
  option = options.find(({
34
28
  relatesTo
35
29
  }) => relatesTo.key === authenticator.key);
36
-
37
30
  if (option) {
38
31
  break;
39
32
  }
40
33
  }
41
-
42
34
  return option;
43
35
  }
44
-
45
36
  canRemediate() {
46
37
  const {
47
38
  authenticators,
@@ -50,45 +41,40 @@ class SelectAuthenticator extends _Remediator.Remediator {
50
41
  const authenticatorFromRemediation = (0, _util.getAuthenticatorFromRemediation)(this.remediation);
51
42
  const {
52
43
  options
53
- } = authenticatorFromRemediation; // Let users select authenticator if no input is provided
54
-
44
+ } = authenticatorFromRemediation;
45
+ // Let users select authenticator if no input is provided
55
46
  if (!authenticators || !authenticators.length) {
56
47
  return false;
57
- } // Authenticator is explicitly specified by id
58
-
48
+ }
59
49
 
50
+ // Authenticator is explicitly specified by id
60
51
  if ((0, _api.isAuthenticator)(authenticator) && authenticator.id) {
61
52
  return true;
62
- } // Proceed with provided authenticators
63
-
53
+ }
64
54
 
55
+ // Proceed with provided authenticators
65
56
  const matchedOption = this.findMatchedOption(authenticators, options);
66
-
67
57
  if (matchedOption) {
68
58
  return true;
69
59
  }
70
-
71
60
  return false;
72
61
  }
73
-
74
62
  mapAuthenticator(remediationValue) {
75
63
  const {
76
64
  authenticators,
77
65
  authenticator
78
- } = this.values; // Authenticator is explicitly specified by id
66
+ } = this.values;
79
67
 
68
+ // Authenticator is explicitly specified by id
80
69
  if ((0, _api.isAuthenticator)(authenticator) && authenticator.id) {
81
70
  this.selectedAuthenticator = authenticator; // track the selected authenticator
82
-
83
71
  return authenticator;
84
72
  }
85
-
86
73
  const {
87
74
  options
88
75
  } = remediationValue;
89
76
  const selectedOption = (0, _util2.findMatchedOption)(authenticators, options);
90
77
  this.selectedAuthenticator = selectedOption.relatesTo; // track the selected authenticator
91
-
92
78
  this.selectedOption = selectedOption;
93
79
  return {
94
80
  id: selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.value.form.value.find(({
@@ -96,7 +82,6 @@ class SelectAuthenticator extends _Remediator.Remediator {
96
82
  }) => name === 'id').value
97
83
  };
98
84
  }
99
-
100
85
  getInputAuthenticator(remediation) {
101
86
  const options = remediation.options.map(({
102
87
  label,
@@ -113,19 +98,17 @@ class SelectAuthenticator extends _Remediator.Remediator {
113
98
  options
114
99
  };
115
100
  }
116
-
117
101
  getValuesAfterProceed() {
118
- this.values = super.getValuesAfterProceed(); // remove used authenticators
119
-
102
+ this.values = super.getValuesAfterProceed();
103
+ // remove used authenticators
120
104
  const authenticators = this.values.authenticators.filter(authenticator => {
121
105
  return (0, _util2.compareAuthenticators)(authenticator, this.selectedAuthenticator) !== true;
122
106
  });
123
- return { ...this.values,
107
+ return {
108
+ ...this.values,
124
109
  authenticators
125
110
  };
126
111
  }
127
-
128
112
  }
129
-
130
113
  exports.SelectAuthenticator = SelectAuthenticator;
131
114
  //# sourceMappingURL=SelectAuthenticator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectAuthenticator.js","names":["SelectAuthenticator","Remediator","findMatchedOption","authenticators","options","option","authenticator","find","relatesTo","key","canRemediate","values","authenticatorFromRemediation","getAuthenticatorFromRemediation","remediation","length","isAuthenticator","id","matchedOption","mapAuthenticator","remediationValue","selectedAuthenticator","selectedOption","value","form","name","getInputAuthenticator","map","label","type","getValuesAfterProceed","filter","compareAuthenticators"],"sources":["../../../../../lib/idx/remediators/Base/SelectAuthenticator.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { Remediator, RemediationValues } from './Remediator';\nimport { getAuthenticatorFromRemediation } from '../util';\nimport { IdxRemediationValue } from '../../types/idx-js';\nimport { Authenticator, isAuthenticator } from '../../types/api';\nimport { compareAuthenticators, findMatchedOption} from '../../authenticator/util';\n\nexport type SelectAuthenticatorValues = RemediationValues & {\n authenticator?: string | Authenticator;\n};\n\n// Base class - DO NOT expose static remediationName\nexport class SelectAuthenticator<T extends SelectAuthenticatorValues = SelectAuthenticatorValues>\n extends Remediator<T> {\n selectedAuthenticator?: Authenticator;\n selectedOption?: any;\n\n // Find matched authenticator in provided order\n findMatchedOption(authenticators, options) {\n let option;\n for (let authenticator of authenticators) {\n option = options\n .find(({ relatesTo }) => relatesTo.key === authenticator.key);\n if (option) {\n break;\n }\n }\n return option;\n }\n\n canRemediate() {\n const { authenticators, authenticator } = this.values;\n const authenticatorFromRemediation = getAuthenticatorFromRemediation(this.remediation);\n const { options } = authenticatorFromRemediation;\n // Let users select authenticator if no input is provided\n if (!authenticators || !authenticators.length) {\n return false;\n }\n\n // Authenticator is explicitly specified by id\n if (isAuthenticator(authenticator) && authenticator.id) {\n return true;\n }\n\n // Proceed with provided authenticators\n const matchedOption = this.findMatchedOption(authenticators, options);\n if (matchedOption) {\n return true;\n }\n \n return false;\n }\n\n mapAuthenticator(remediationValue: IdxRemediationValue) {\n const { authenticators, authenticator } = this.values;\n\n // Authenticator is explicitly specified by id\n if (isAuthenticator(authenticator) && authenticator.id) {\n this.selectedAuthenticator = authenticator; // track the selected authenticator\n return authenticator;\n }\n\n const { options } = remediationValue;\n const selectedOption = findMatchedOption(authenticators, options);\n this.selectedAuthenticator = selectedOption.relatesTo; // track the selected authenticator\n this.selectedOption = selectedOption;\n return {\n id: selectedOption?.value.form.value.find(({ name }) => name === 'id').value\n };\n }\n\n getInputAuthenticator(remediation) {\n const options = remediation.options.map(({ label, relatesTo }) => {\n return {\n label,\n value: relatesTo.key\n };\n });\n return { name: 'authenticator', type: 'string', options };\n }\n\n getValuesAfterProceed(): T {\n this.values = super.getValuesAfterProceed();\n // remove used authenticators\n const authenticators = (this.values.authenticators as Authenticator[])\n .filter(authenticator => {\n return compareAuthenticators(authenticator, this.selectedAuthenticator) !== true;\n });\n return { ...this.values, authenticators };\n }\n\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"SelectAuthenticator.js","names":["SelectAuthenticator","Remediator","findMatchedOption","authenticators","options","option","authenticator","find","relatesTo","key","canRemediate","values","authenticatorFromRemediation","getAuthenticatorFromRemediation","remediation","length","isAuthenticator","id","matchedOption","mapAuthenticator","remediationValue","selectedAuthenticator","selectedOption","value","form","name","getInputAuthenticator","map","label","type","getValuesAfterProceed","filter","compareAuthenticators"],"sources":["../../../../../lib/idx/remediators/Base/SelectAuthenticator.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { Remediator, RemediationValues } from './Remediator';\nimport { getAuthenticatorFromRemediation } from '../util';\nimport { IdxRemediationValue } from '../../types/idx-js';\nimport { Authenticator, isAuthenticator } from '../../types/api';\nimport { compareAuthenticators, findMatchedOption} from '../../authenticator/util';\n\nexport type SelectAuthenticatorValues = RemediationValues & {\n authenticator?: string | Authenticator;\n};\n\n// Base class - DO NOT expose static remediationName\nexport class SelectAuthenticator<T extends SelectAuthenticatorValues = SelectAuthenticatorValues>\n extends Remediator<T> {\n selectedAuthenticator?: Authenticator;\n selectedOption?: any;\n\n // Find matched authenticator in provided order\n findMatchedOption(authenticators, options) {\n let option;\n for (let authenticator of authenticators) {\n option = options\n .find(({ relatesTo }) => relatesTo.key === authenticator.key);\n if (option) {\n break;\n }\n }\n return option;\n }\n\n canRemediate() {\n const { authenticators, authenticator } = this.values;\n const authenticatorFromRemediation = getAuthenticatorFromRemediation(this.remediation);\n const { options } = authenticatorFromRemediation;\n // Let users select authenticator if no input is provided\n if (!authenticators || !authenticators.length) {\n return false;\n }\n\n // Authenticator is explicitly specified by id\n if (isAuthenticator(authenticator) && authenticator.id) {\n return true;\n }\n\n // Proceed with provided authenticators\n const matchedOption = this.findMatchedOption(authenticators, options);\n if (matchedOption) {\n return true;\n }\n \n return false;\n }\n\n mapAuthenticator(remediationValue: IdxRemediationValue) {\n const { authenticators, authenticator } = this.values;\n\n // Authenticator is explicitly specified by id\n if (isAuthenticator(authenticator) && authenticator.id) {\n this.selectedAuthenticator = authenticator; // track the selected authenticator\n return authenticator;\n }\n\n const { options } = remediationValue;\n const selectedOption = findMatchedOption(authenticators, options);\n this.selectedAuthenticator = selectedOption.relatesTo; // track the selected authenticator\n this.selectedOption = selectedOption;\n return {\n id: selectedOption?.value.form.value.find(({ name }) => name === 'id').value\n };\n }\n\n getInputAuthenticator(remediation) {\n const options = remediation.options.map(({ label, relatesTo }) => {\n return {\n label,\n value: relatesTo.key\n };\n });\n return { name: 'authenticator', type: 'string', options };\n }\n\n getValuesAfterProceed(): T {\n this.values = super.getValuesAfterProceed();\n // remove used authenticators\n const authenticators = (this.values.authenticators as Authenticator[])\n .filter(authenticator => {\n return compareAuthenticators(authenticator, this.selectedAuthenticator) !== true;\n });\n return { ...this.values, authenticators };\n }\n\n}\n"],"mappings":"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"}
@@ -1,11 +1,8 @@
1
1
  "use strict";
2
2
 
3
3
  exports.VerifyAuthenticator = void 0;
4
-
5
4
  var _Remediator = require("./Remediator");
6
-
7
5
  var _authenticator = require("../../authenticator");
8
-
9
6
  /*!
10
7
  * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
11
8
  * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
@@ -17,44 +14,39 @@ var _authenticator = require("../../authenticator");
17
14
  *
18
15
  * See the License for the specific language governing permissions and limitations under the License.
19
16
  */
17
+
20
18
  // Base class - DO NOT expose static remediationName
21
19
  class VerifyAuthenticator extends _Remediator.Remediator {
22
20
  constructor(remediation, values = {}) {
23
21
  super(remediation, values);
24
22
  this.authenticator = (0, _authenticator.getAuthenticator)(remediation);
25
23
  }
26
-
27
24
  getNextStep(authClient, context) {
28
25
  var _context$authenticato;
29
-
30
26
  const nextStep = super.getNextStep(authClient, context);
31
27
  const authenticatorEnrollments = context === null || context === void 0 ? void 0 : (_context$authenticato = context.authenticatorEnrollments) === null || _context$authenticato === void 0 ? void 0 : _context$authenticato.value;
32
- return { ...nextStep,
28
+ return {
29
+ ...nextStep,
33
30
  authenticatorEnrollments
34
31
  };
35
32
  }
36
-
37
33
  canRemediate() {
38
34
  return this.authenticator.canVerify(this.values);
39
35
  }
40
-
41
36
  mapCredentials() {
42
37
  return this.authenticator.mapCredentials(this.values);
43
38
  }
44
-
45
39
  getInputCredentials(input) {
46
40
  return this.authenticator.getInputs(input);
47
41
  }
48
-
49
42
  getValuesAfterProceed() {
50
43
  this.values = super.getValuesAfterProceed();
51
44
  let trimmedValues = Object.keys(this.values).filter(valueKey => valueKey !== 'credentials');
52
- return trimmedValues.reduce((values, valueKey) => ({ ...values,
45
+ return trimmedValues.reduce((values, valueKey) => ({
46
+ ...values,
53
47
  [valueKey]: this.values[valueKey]
54
48
  }), {});
55
49
  }
56
-
57
50
  }
58
-
59
51
  exports.VerifyAuthenticator = VerifyAuthenticator;
60
52
  //# sourceMappingURL=VerifyAuthenticator.js.map