@okta/okta-auth-js 6.0.0 → 6.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 (344) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +5 -4
  3. package/cjs/AuthStateManager.js +9 -2
  4. package/cjs/AuthStateManager.js.map +1 -1
  5. package/cjs/OktaAuth.js +67 -27
  6. package/cjs/OktaAuth.js.map +1 -1
  7. package/cjs/OktaUserAgent.js +2 -2
  8. package/cjs/PromiseQueue.js +5 -1
  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/StorageManager.js +13 -8
  13. package/cjs/StorageManager.js.map +1 -1
  14. package/cjs/TokenManager.js +29 -19
  15. package/cjs/TokenManager.js.map +1 -1
  16. package/cjs/TransactionManager.js +9 -3
  17. package/cjs/TransactionManager.js.map +1 -1
  18. package/cjs/browser/browserStorage.js +18 -9
  19. package/cjs/browser/browserStorage.js.map +1 -1
  20. package/cjs/browser/fingerprint.js +9 -3
  21. package/cjs/browser/fingerprint.js.map +1 -1
  22. package/cjs/builderUtil.js +4 -2
  23. package/cjs/builderUtil.js.map +1 -1
  24. package/cjs/clock.js +5 -1
  25. package/cjs/clock.js.map +1 -1
  26. package/cjs/crypto/base64.js +18 -0
  27. package/cjs/crypto/base64.js.map +1 -1
  28. package/cjs/crypto/index.js +6 -4
  29. package/cjs/crypto/index.js.map +1 -1
  30. package/cjs/crypto/oidcHash.js +5 -1
  31. package/cjs/crypto/oidcHash.js.map +1 -1
  32. package/cjs/crypto/webauthn.js +101 -0
  33. package/cjs/crypto/webauthn.js.map +1 -0
  34. package/cjs/crypto/webcrypto.js +3 -1
  35. package/cjs/crypto/webcrypto.js.map +1 -1
  36. package/cjs/errors/AuthApiError.js +1 -1
  37. package/cjs/errors/AuthPollStopError.js +1 -1
  38. package/cjs/errors/AuthSdkError.js +1 -1
  39. package/cjs/errors/CustomError.js +5 -1
  40. package/cjs/errors/CustomError.js.map +1 -1
  41. package/cjs/errors/OAuthError.js +1 -1
  42. package/cjs/errors/index.js +1 -1
  43. package/cjs/fetch/fetchRequest.js +18 -6
  44. package/cjs/fetch/fetchRequest.js.map +1 -1
  45. package/cjs/http/headers.js.map +1 -1
  46. package/cjs/http/index.js +4 -2
  47. package/cjs/http/index.js.map +1 -1
  48. package/cjs/http/request.js +9 -5
  49. package/cjs/http/request.js.map +1 -1
  50. package/cjs/idx/authenticate.js.map +1 -1
  51. package/cjs/idx/authenticator/Authenticator.js.map +1 -1
  52. package/cjs/idx/authenticator/OktaPassword.js.map +1 -1
  53. package/cjs/idx/authenticator/SecurityQuestionEnrollment.js +1 -1
  54. package/cjs/idx/authenticator/SecurityQuestionEnrollment.js.map +1 -1
  55. package/cjs/idx/authenticator/SecurityQuestionVerification.js +1 -1
  56. package/cjs/idx/authenticator/SecurityQuestionVerification.js.map +1 -1
  57. package/cjs/idx/authenticator/VerificationCodeAuthenticator.js +1 -1
  58. package/cjs/idx/authenticator/VerificationCodeAuthenticator.js.map +1 -1
  59. package/cjs/idx/authenticator/WebauthnEnrollment.js +46 -0
  60. package/cjs/idx/authenticator/WebauthnEnrollment.js.map +1 -0
  61. package/cjs/idx/authenticator/WebauthnVerification.js +55 -0
  62. package/cjs/idx/authenticator/WebauthnVerification.js.map +1 -0
  63. package/cjs/idx/authenticator/getAuthenticator.js +13 -1
  64. package/cjs/idx/authenticator/getAuthenticator.js.map +1 -1
  65. package/cjs/idx/authenticator/index.js +34 -6
  66. package/cjs/idx/authenticator/index.js.map +1 -1
  67. package/cjs/idx/cancel.js.map +1 -1
  68. package/cjs/idx/emailVerify.js +1 -1
  69. package/cjs/idx/emailVerify.js.map +1 -1
  70. package/cjs/idx/flow/AccountUnlockFlow.js +30 -0
  71. package/cjs/idx/flow/AccountUnlockFlow.js.map +1 -0
  72. package/cjs/idx/flow/FlowSpecification.js +8 -0
  73. package/cjs/idx/flow/FlowSpecification.js.map +1 -1
  74. package/cjs/idx/flow/PasswordRecoveryFlow.js +4 -1
  75. package/cjs/idx/flow/PasswordRecoveryFlow.js.map +1 -1
  76. package/cjs/idx/flow/index.js +20 -5
  77. package/cjs/idx/flow/index.js.map +1 -1
  78. package/cjs/idx/handleInteractionCodeRedirect.js +5 -1
  79. package/cjs/idx/handleInteractionCodeRedirect.js.map +1 -1
  80. package/cjs/idx/headers.js +21 -5
  81. package/cjs/idx/headers.js.map +1 -1
  82. package/cjs/idx/idx-js/client.js +91 -0
  83. package/cjs/idx/idx-js/client.js.map +1 -0
  84. package/cjs/idx/idx-js/index.js +162 -0
  85. package/cjs/idx/idx-js/index.js.map +1 -0
  86. package/cjs/idx/idx-js/interact.js +83 -0
  87. package/cjs/idx/idx-js/interact.js.map +1 -0
  88. package/cjs/idx/idx-js/introspect.js +58 -0
  89. package/cjs/idx/idx-js/introspect.js.map +1 -0
  90. package/cjs/idx/idx-js/parsers.js +41 -0
  91. package/cjs/idx/idx-js/parsers.js.map +1 -0
  92. package/cjs/idx/idx-js/util.js +34 -0
  93. package/cjs/idx/idx-js/util.js.map +1 -0
  94. package/cjs/idx/idx-js/v1/actionParser.js +90 -0
  95. package/cjs/idx/idx-js/v1/actionParser.js.map +1 -0
  96. package/cjs/idx/idx-js/v1/generateIdxAction.js +117 -0
  97. package/cjs/idx/idx-js/v1/generateIdxAction.js.map +1 -0
  98. package/cjs/idx/idx-js/v1/idxResponseParser.js +137 -0
  99. package/cjs/idx/idx-js/v1/idxResponseParser.js.map +1 -0
  100. package/cjs/idx/idx-js/v1/makeIdxState.js +64 -0
  101. package/cjs/idx/idx-js/v1/makeIdxState.js.map +1 -0
  102. package/cjs/idx/idx-js/v1/parsers.js +24 -0
  103. package/cjs/idx/idx-js/v1/parsers.js.map +1 -0
  104. package/cjs/idx/idx-js/v1/remediationParser.js +32 -0
  105. package/cjs/idx/idx-js/v1/remediationParser.js.map +1 -0
  106. package/cjs/idx/index.js +120 -121
  107. package/cjs/idx/index.js.map +1 -1
  108. package/cjs/idx/interact.js +9 -4
  109. package/cjs/idx/interact.js.map +1 -1
  110. package/cjs/idx/introspect.js +6 -6
  111. package/cjs/idx/introspect.js.map +1 -1
  112. package/cjs/idx/poll.js +13 -3
  113. package/cjs/idx/poll.js.map +1 -1
  114. package/cjs/idx/proceed.js.map +1 -1
  115. package/cjs/idx/recoverPassword.js.map +1 -1
  116. package/cjs/idx/register.js +5 -1
  117. package/cjs/idx/register.js.map +1 -1
  118. package/cjs/idx/remediate.js +60 -29
  119. package/cjs/idx/remediate.js.map +1 -1
  120. package/cjs/idx/remediators/AuthenticatorEnrollmentData.js +10 -4
  121. package/cjs/idx/remediators/AuthenticatorEnrollmentData.js.map +1 -1
  122. package/cjs/idx/remediators/AuthenticatorVerificationData.js +10 -6
  123. package/cjs/idx/remediators/AuthenticatorVerificationData.js.map +1 -1
  124. package/cjs/idx/remediators/Base/AuthenticatorData.js +28 -12
  125. package/cjs/idx/remediators/Base/AuthenticatorData.js.map +1 -1
  126. package/cjs/idx/remediators/Base/Remediator.js +65 -31
  127. package/cjs/idx/remediators/Base/Remediator.js.map +1 -1
  128. package/cjs/idx/remediators/Base/SelectAuthenticator.js +42 -27
  129. package/cjs/idx/remediators/Base/SelectAuthenticator.js.map +1 -1
  130. package/cjs/idx/remediators/Base/VerifyAuthenticator.js +16 -4
  131. package/cjs/idx/remediators/Base/VerifyAuthenticator.js.map +1 -1
  132. package/cjs/idx/remediators/ChallengeAuthenticator.js +2 -2
  133. package/cjs/idx/remediators/ChallengePoll.js +2 -2
  134. package/cjs/idx/remediators/EnrollAuthenticator.js +2 -2
  135. package/cjs/idx/remediators/EnrollPoll.js +16 -6
  136. package/cjs/idx/remediators/EnrollPoll.js.map +1 -1
  137. package/cjs/idx/remediators/EnrollProfile.js +20 -8
  138. package/cjs/idx/remediators/EnrollProfile.js.map +1 -1
  139. package/cjs/idx/remediators/EnrollmentChannelData.js +25 -9
  140. package/cjs/idx/remediators/EnrollmentChannelData.js.map +1 -1
  141. package/cjs/idx/remediators/Identify.js +5 -3
  142. package/cjs/idx/remediators/Identify.js.map +1 -1
  143. package/cjs/idx/remediators/ReEnrollAuthenticator.js +5 -3
  144. package/cjs/idx/remediators/ReEnrollAuthenticator.js.map +1 -1
  145. package/cjs/idx/remediators/RedirectIdp.js +2 -2
  146. package/cjs/idx/remediators/ResetAuthenticator.js +2 -2
  147. package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js +6 -4
  148. package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js.map +1 -1
  149. package/cjs/idx/remediators/SelectAuthenticatorEnroll.js +2 -2
  150. package/cjs/idx/remediators/SelectAuthenticatorUnlockAccount.js +72 -0
  151. package/cjs/idx/remediators/SelectAuthenticatorUnlockAccount.js.map +1 -0
  152. package/cjs/idx/remediators/SelectEnrollProfile.js +2 -2
  153. package/cjs/idx/remediators/SelectEnrollmentChannel.js +22 -10
  154. package/cjs/idx/remediators/SelectEnrollmentChannel.js.map +1 -1
  155. package/cjs/idx/remediators/Skip.js +5 -3
  156. package/cjs/idx/remediators/Skip.js.map +1 -1
  157. package/cjs/idx/remediators/index.js +33 -18
  158. package/cjs/idx/remediators/index.js.map +1 -1
  159. package/cjs/idx/remediators/util.js +13 -3
  160. package/cjs/idx/remediators/util.js.map +1 -1
  161. package/cjs/idx/run.js +30 -6
  162. package/cjs/idx/run.js.map +1 -1
  163. package/cjs/idx/startTransaction.js.map +1 -1
  164. package/cjs/idx/transactionMeta.js.map +1 -1
  165. package/cjs/idx/types/idx-js.js.map +1 -1
  166. package/cjs/idx/types/index.js +45 -9
  167. package/cjs/idx/types/index.js.map +1 -1
  168. package/cjs/idx/unlockAccount.js +48 -0
  169. package/cjs/idx/unlockAccount.js.map +1 -0
  170. package/cjs/index.js +20 -14
  171. package/cjs/index.js.map +1 -1
  172. package/cjs/oidc/endpoints/authorize.js +8 -2
  173. package/cjs/oidc/endpoints/authorize.js.map +1 -1
  174. package/cjs/oidc/endpoints/index.js +5 -3
  175. package/cjs/oidc/endpoints/index.js.map +1 -1
  176. package/cjs/oidc/endpoints/token.js +15 -3
  177. package/cjs/oidc/endpoints/token.js.map +1 -1
  178. package/cjs/oidc/endpoints/well-known.js +7 -3
  179. package/cjs/oidc/endpoints/well-known.js.map +1 -1
  180. package/cjs/oidc/exchangeCodeForTokens.js +10 -2
  181. package/cjs/oidc/exchangeCodeForTokens.js.map +1 -1
  182. package/cjs/oidc/getToken.js +9 -5
  183. package/cjs/oidc/getToken.js.map +1 -1
  184. package/cjs/oidc/getUserInfo.js +7 -3
  185. package/cjs/oidc/getUserInfo.js.map +1 -1
  186. package/cjs/oidc/getWithPopup.js +8 -2
  187. package/cjs/oidc/getWithPopup.js.map +1 -1
  188. package/cjs/oidc/getWithRedirect.js +5 -1
  189. package/cjs/oidc/getWithRedirect.js.map +1 -1
  190. package/cjs/oidc/getWithoutPrompt.js +8 -2
  191. package/cjs/oidc/getWithoutPrompt.js.map +1 -1
  192. package/cjs/oidc/handleOAuthResponse.js +9 -3
  193. package/cjs/oidc/handleOAuthResponse.js.map +1 -1
  194. package/cjs/oidc/index.js +4 -2
  195. package/cjs/oidc/index.js.map +1 -1
  196. package/cjs/oidc/parseFromUrl.js +9 -3
  197. package/cjs/oidc/parseFromUrl.js.map +1 -1
  198. package/cjs/oidc/renewToken.js.map +1 -1
  199. package/cjs/oidc/renewTokens.js +5 -1
  200. package/cjs/oidc/renewTokens.js.map +1 -1
  201. package/cjs/oidc/renewTokensWithRefresh.js +5 -1
  202. package/cjs/oidc/renewTokensWithRefresh.js.map +1 -1
  203. package/cjs/oidc/revokeToken.js +7 -3
  204. package/cjs/oidc/revokeToken.js.map +1 -1
  205. package/cjs/oidc/util/browser.js +5 -1
  206. package/cjs/oidc/util/browser.js.map +1 -1
  207. package/cjs/oidc/util/defaultTokenParams.js.map +1 -1
  208. package/cjs/oidc/util/errors.js.map +1 -1
  209. package/cjs/oidc/util/index.js +14 -12
  210. package/cjs/oidc/util/index.js.map +1 -1
  211. package/cjs/oidc/util/loginRedirect.js +5 -1
  212. package/cjs/oidc/util/loginRedirect.js.map +1 -1
  213. package/cjs/oidc/util/oauth.js +4 -2
  214. package/cjs/oidc/util/oauth.js.map +1 -1
  215. package/cjs/oidc/util/oauthMeta.js.map +1 -1
  216. package/cjs/oidc/util/pkce.js +11 -3
  217. package/cjs/oidc/util/pkce.js.map +1 -1
  218. package/cjs/oidc/util/prepareTokenParams.js +7 -5
  219. package/cjs/oidc/util/prepareTokenParams.js.map +1 -1
  220. package/cjs/oidc/util/validateClaims.js +1 -1
  221. package/cjs/oidc/util/validateClaims.js.map +1 -1
  222. package/cjs/oidc/verifyToken.js +11 -3
  223. package/cjs/oidc/verifyToken.js.map +1 -1
  224. package/cjs/options.js +6 -4
  225. package/cjs/options.js.map +1 -1
  226. package/cjs/server/serverStorage.js +1 -0
  227. package/cjs/server/serverStorage.js.map +1 -1
  228. package/cjs/tx/AuthTransaction.js +15 -9
  229. package/cjs/tx/AuthTransaction.js.map +1 -1
  230. package/cjs/tx/api.js +8 -4
  231. package/cjs/tx/api.js.map +1 -1
  232. package/cjs/tx/index.js +7 -5
  233. package/cjs/tx/index.js.map +1 -1
  234. package/cjs/tx/poll.js +6 -4
  235. package/cjs/tx/poll.js.map +1 -1
  236. package/cjs/tx/util.js +5 -1
  237. package/cjs/tx/util.js.map +1 -1
  238. package/cjs/types/Transaction.js +10 -2
  239. package/cjs/types/Transaction.js.map +1 -1
  240. package/cjs/types/index.js +16 -14
  241. package/cjs/types/index.js.map +1 -1
  242. package/cjs/util/index.js +7 -5
  243. package/cjs/util/index.js.map +1 -1
  244. package/cjs/util/misc.js +5 -1
  245. package/cjs/util/misc.js.map +1 -1
  246. package/cjs/util/object.js +16 -6
  247. package/cjs/util/object.js.map +1 -1
  248. package/cjs/util/sharedStorage.js +5 -1
  249. package/cjs/util/sharedStorage.js.map +1 -1
  250. package/dist/okta-auth-js.min.js +1 -1
  251. package/dist/okta-auth-js.min.js.LICENSE.txt +0 -12
  252. package/dist/okta-auth-js.min.js.map +1 -1
  253. package/dist/okta-auth-js.polyfill.js +1 -1
  254. package/dist/okta-auth-js.polyfill.js.map +1 -1
  255. package/dist/okta-auth-js.umd.js +1 -1
  256. package/dist/okta-auth-js.umd.js.LICENSE.txt +0 -12
  257. package/dist/okta-auth-js.umd.js.map +1 -1
  258. package/esm/index.js +1601 -377
  259. package/esm/index.js.map +1 -1
  260. package/lib/OktaAuth.d.ts +6 -3
  261. package/lib/StorageManager.d.ts +1 -1
  262. package/lib/TokenManager.d.ts +2 -2
  263. package/lib/TransactionManager.d.ts +1 -1
  264. package/lib/browser/fingerprint.d.ts +2 -3
  265. package/lib/crypto/base64.d.ts +2 -0
  266. package/lib/crypto/webauthn.d.ts +25 -0
  267. package/lib/http/headers.d.ts +2 -2
  268. package/lib/http/request.d.ts +4 -4
  269. package/lib/idx/authenticate.d.ts +2 -2
  270. package/lib/idx/authenticator/Authenticator.d.ts +4 -5
  271. package/lib/idx/authenticator/OktaPassword.d.ts +7 -9
  272. package/lib/idx/authenticator/SecurityQuestionEnrollment.d.ts +9 -8
  273. package/lib/idx/authenticator/SecurityQuestionVerification.d.ts +7 -7
  274. package/lib/idx/authenticator/VerificationCodeAuthenticator.d.ts +6 -2
  275. package/lib/idx/authenticator/WebauthnEnrollment.d.ts +16 -0
  276. package/lib/idx/authenticator/WebauthnVerification.d.ts +17 -0
  277. package/lib/idx/authenticator/getAuthenticator.d.ts +1 -1
  278. package/lib/idx/authenticator/index.d.ts +9 -0
  279. package/lib/idx/cancel.d.ts +2 -2
  280. package/lib/idx/emailVerify.d.ts +2 -2
  281. package/lib/idx/flow/AccountUnlockFlow.d.ts +13 -0
  282. package/lib/idx/flow/FlowSpecification.d.ts +2 -2
  283. package/lib/idx/flow/index.d.ts +1 -0
  284. package/lib/idx/headers.d.ts +3 -2
  285. package/lib/idx/idx-js/client.d.ts +36 -0
  286. package/lib/idx/idx-js/index.d.ts +51 -0
  287. package/lib/idx/idx-js/interact.d.ts +25 -0
  288. package/lib/idx/idx-js/introspect.d.ts +20 -0
  289. package/lib/idx/idx-js/parsers.d.ts +15 -0
  290. package/lib/idx/idx-js/util.d.ts +12 -0
  291. package/lib/idx/idx-js/v1/actionParser.d.ts +16 -0
  292. package/lib/idx/idx-js/v1/generateIdxAction.d.ts +13 -0
  293. package/lib/idx/idx-js/v1/idxResponseParser.d.ts +20 -0
  294. package/lib/idx/idx-js/v1/makeIdxState.d.ts +13 -0
  295. package/lib/idx/idx-js/v1/parsers.d.ts +16 -0
  296. package/lib/idx/idx-js/v1/remediationParser.d.ts +12 -0
  297. package/lib/idx/index.d.ts +12 -11
  298. package/lib/idx/interact.d.ts +3 -2
  299. package/lib/idx/introspect.d.ts +2 -2
  300. package/lib/idx/poll.d.ts +2 -2
  301. package/lib/idx/proceed.d.ts +5 -4
  302. package/lib/idx/recoverPassword.d.ts +2 -2
  303. package/lib/idx/register.d.ts +2 -2
  304. package/lib/idx/remediators/Base/AuthenticatorData.d.ts +2 -1
  305. package/lib/idx/remediators/Base/Remediator.d.ts +1 -1
  306. package/lib/idx/remediators/Base/SelectAuthenticator.d.ts +3 -0
  307. package/lib/idx/remediators/Base/VerifyAuthenticator.d.ts +7 -12
  308. package/lib/idx/remediators/EnrollmentChannelData.d.ts +1 -0
  309. package/lib/idx/remediators/SelectAuthenticatorUnlockAccount.d.ts +38 -0
  310. package/lib/idx/remediators/SelectEnrollmentChannel.d.ts +1 -0
  311. package/lib/idx/remediators/index.d.ts +1 -0
  312. package/lib/idx/run.d.ts +2 -2
  313. package/lib/idx/startTransaction.d.ts +2 -2
  314. package/lib/idx/transactionMeta.d.ts +7 -7
  315. package/lib/idx/types/FlowIdentifier.d.ts +1 -1
  316. package/lib/idx/types/idx-js.d.ts +36 -0
  317. package/lib/idx/types/index.d.ts +21 -5
  318. package/lib/idx/unlockAccount.d.ts +15 -0
  319. package/lib/oidc/endpoints/well-known.d.ts +3 -3
  320. package/lib/oidc/exchangeCodeForTokens.d.ts +2 -2
  321. package/lib/oidc/getToken.d.ts +2 -2
  322. package/lib/oidc/getWithPopup.d.ts +2 -2
  323. package/lib/oidc/getWithRedirect.d.ts +2 -2
  324. package/lib/oidc/getWithoutPrompt.d.ts +2 -2
  325. package/lib/oidc/handleOAuthResponse.d.ts +2 -2
  326. package/lib/oidc/renewToken.d.ts +2 -2
  327. package/lib/oidc/renewTokensWithRefresh.d.ts +2 -2
  328. package/lib/oidc/revokeToken.d.ts +2 -2
  329. package/lib/oidc/util/browser.d.ts +2 -2
  330. package/lib/oidc/util/defaultTokenParams.d.ts +2 -2
  331. package/lib/oidc/util/errors.d.ts +2 -2
  332. package/lib/oidc/util/loginRedirect.d.ts +4 -4
  333. package/lib/oidc/util/oauth.d.ts +4 -4
  334. package/lib/oidc/util/oauthMeta.d.ts +2 -2
  335. package/lib/oidc/util/prepareTokenParams.d.ts +5 -5
  336. package/lib/oidc/util/validateClaims.d.ts +2 -2
  337. package/lib/oidc/verifyToken.d.ts +2 -2
  338. package/lib/types/OktaAuthOptions.d.ts +1 -2
  339. package/lib/types/Transaction.d.ts +2 -10
  340. package/lib/types/api.d.ts +17 -5
  341. package/lib/types/index.d.ts +0 -1
  342. package/lib/util/sharedStorage.d.ts +1 -1
  343. package/package.json +10 -7
  344. package/polyfill/index.js +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"okta-auth-js.umd.js","mappings":"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","sources":["webpack://OktaAuth/webpack/universalModuleDefinition","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js-stable/array/from.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js-stable/array/is-array.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/concat.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/filter.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/find.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/for-each.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/index-of.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/map.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/slice.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js-stable/json/stringify.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js-stable/object/define-properties.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js-stable/object/define-property.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js-stable/object/entries.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js-stable/object/from-entries.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js-stable/object/keys.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js-stable/promise.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js-stable/symbol.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js-stable/url.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js/array/from.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js/array/is-array.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js/get-iterator-method.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js/get-iterator.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js/instance/index-of.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js/instance/slice.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js/object/define-property.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js/object/get-own-property-symbols.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js/object/keys.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js/promise.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js/symbol.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/core-js/symbol/iterator.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/helpers/arrayLikeToArray.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/helpers/arrayWithHoles.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/helpers/arrayWithoutHoles.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/helpers/asyncToGenerator.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/helpers/defineProperty.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/helpers/interopRequireDefault.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/helpers/iterableToArray.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/helpers/iterableToArrayLimit.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/helpers/nonIterableRest.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/helpers/nonIterableSpread.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/helpers/objectWithoutProperties.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/helpers/objectWithoutPropertiesLoose.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/helpers/slicedToArray.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/helpers/toConsumableArray.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/helpers/typeof.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/helpers/unsupportedIterableToArray.js","webpack://OktaAuth/./node_modules/@babel/runtime-corejs3/regenerator/index.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/construct.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/createClass.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/inherits.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/isNativeFunction.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/typeof.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/wrapNativeSuper.js","webpack://OktaAuth/./node_modules/@babel/runtime/regenerator/index.js","webpack://OktaAuth/./node_modules/@okta/okta-idx-js/src/client.js","webpack://OktaAuth/./node_modules/@okta/okta-idx-js/src/index.js","webpack://OktaAuth/./node_modules/@okta/okta-idx-js/src/interact.js","webpack://OktaAuth/./node_modules/@okta/okta-idx-js/src/introspect.js","webpack://OktaAuth/./node_modules/@okta/okta-idx-js/src/parsers.js","webpack://OktaAuth/./node_modules/@okta/okta-idx-js/src/userAgent.js","webpack://OktaAuth/./node_modules/@okta/okta-idx-js/src/util.js","webpack://OktaAuth/./node_modules/@okta/okta-idx-js/src/v1/actionParser.js","webpack://OktaAuth/./node_modules/@okta/okta-idx-js/src/v1/generateIdxAction.js","webpack://OktaAuth/./node_modules/@okta/okta-idx-js/src/v1/idxResponseParser.js","webpack://OktaAuth/./node_modules/@okta/okta-idx-js/src/v1/makeIdxState.js","webpack://OktaAuth/./node_modules/@okta/okta-idx-js/src/v1/parsers.js","webpack://OktaAuth/./node_modules/@okta/okta-idx-js/src/v1/remediationParser.js","webpack://OktaAuth/./node_modules/p-cancelable/index.js","webpack://OktaAuth/./node_modules/core-js-pure/es/array/from.js","webpack://OktaAuth/./node_modules/core-js-pure/es/array/is-array.js","webpack://OktaAuth/./node_modules/core-js-pure/es/array/virtual/concat.js","webpack://OktaAuth/./node_modules/core-js-pure/es/array/virtual/filter.js","webpack://OktaAuth/./node_modules/core-js-pure/es/array/virtual/find.js","webpack://OktaAuth/./node_modules/core-js-pure/es/array/virtual/for-each.js","webpack://OktaAuth/./node_modules/core-js-pure/es/array/virtual/index-of.js","webpack://OktaAuth/./node_modules/core-js-pure/es/array/virtual/map.js","webpack://OktaAuth/./node_modules/core-js-pure/es/array/virtual/slice.js","webpack://OktaAuth/./node_modules/core-js-pure/es/instance/concat.js","webpack://OktaAuth/./node_modules/core-js-pure/es/instance/filter.js","webpack://OktaAuth/./node_modules/core-js-pure/es/instance/find.js","webpack://OktaAuth/./node_modules/core-js-pure/es/instance/index-of.js","webpack://OktaAuth/./node_modules/core-js-pure/es/instance/map.js","webpack://OktaAuth/./node_modules/core-js-pure/es/instance/slice.js","webpack://OktaAuth/./node_modules/core-js-pure/es/json/stringify.js","webpack://OktaAuth/./node_modules/core-js-pure/es/object/define-properties.js","webpack://OktaAuth/./node_modules/core-js-pure/es/object/define-property.js","webpack://OktaAuth/./node_modules/core-js-pure/es/object/entries.js","webpack://OktaAuth/./node_modules/core-js-pure/es/object/from-entries.js","webpack://OktaAuth/./node_modules/core-js-pure/es/object/get-own-property-descriptor.js","webpack://OktaAuth/./node_modules/core-js-pure/es/object/get-own-property-descriptors.js","webpack://OktaAuth/./node_modules/core-js-pure/es/object/get-own-property-symbols.js","webpack://OktaAuth/./node_modules/core-js-pure/es/object/keys.js","webpack://OktaAuth/./node_modules/core-js-pure/es/promise/index.js","webpack://OktaAuth/./node_modules/core-js-pure/es/symbol/index.js","webpack://OktaAuth/./node_modules/core-js-pure/es/symbol/iterator.js","webpack://OktaAuth/./node_modules/core-js-pure/features/array/from.js","webpack://OktaAuth/./node_modules/core-js-pure/features/array/is-array.js","webpack://OktaAuth/./node_modules/core-js-pure/features/get-iterator-method.js","webpack://OktaAuth/./node_modules/core-js-pure/features/get-iterator.js","webpack://OktaAuth/./node_modules/core-js-pure/features/instance/index-of.js","webpack://OktaAuth/./node_modules/core-js-pure/features/instance/slice.js","webpack://OktaAuth/./node_modules/core-js-pure/features/object/define-property.js","webpack://OktaAuth/./node_modules/core-js-pure/features/object/get-own-property-symbols.js","webpack://OktaAuth/./node_modules/core-js-pure/features/object/keys.js","webpack://OktaAuth/./node_modules/core-js-pure/features/promise/index.js","webpack://OktaAuth/./node_modules/core-js-pure/features/symbol/index.js","webpack://OktaAuth/./node_modules/core-js-pure/features/symbol/iterator.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/a-function.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/a-possible-prototype.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/add-to-unscopables.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/an-instance.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/an-object.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/array-for-each.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/array-from.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/array-includes.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/array-iteration.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/array-method-has-species-support.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/array-method-is-strict.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/array-species-create.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/call-with-safe-iteration-closing.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/check-correctness-of-iteration.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/classof-raw.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/classof.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/correct-prototype-getter.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/create-iterator-constructor.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/create-non-enumerable-property.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/create-property-descriptor.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/create-property.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/define-iterator.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/define-well-known-symbol.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/descriptors.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/document-create-element.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/dom-iterables.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/engine-is-browser.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/engine-is-ios.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/engine-is-node.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/engine-is-webos-webkit.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/engine-user-agent.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/engine-v8-version.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/entry-virtual.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/enum-bug-keys.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/export.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/fails.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/function-bind-context.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/get-built-in.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/get-iterator-method.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/get-iterator.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/global.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/has.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/hidden-keys.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/host-report-errors.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/html.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/ie8-dom-define.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/indexed-object.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/inspect-source.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/internal-state.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/is-array-iterator-method.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/is-array.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/is-forced.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/is-object.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/is-pure.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/iterate.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/iterator-close.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/iterators-core.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/iterators.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/microtask.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/native-promise-constructor.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/native-symbol.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/native-url.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/native-weak-map.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/new-promise-capability.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/object-assign.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/object-create.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/object-define-properties.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/object-define-property.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/object-get-own-property-descriptor.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/object-get-own-property-names-external.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/object-get-own-property-names.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/object-get-own-property-symbols.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/object-get-prototype-of.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/object-keys-internal.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/object-keys.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/object-property-is-enumerable.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/object-set-prototype-of.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/object-to-array.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/object-to-string.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/own-keys.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/path.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/perform.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/promise-resolve.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/redefine-all.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/redefine.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/require-object-coercible.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/set-global.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/set-species.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/set-to-string-tag.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/shared-key.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/shared-store.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/shared.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/species-constructor.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/string-multibyte.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/string-punycode-to-ascii.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/task.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/to-absolute-index.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/to-indexed-object.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/to-integer.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/to-length.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/to-object.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/to-primitive.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/to-string-tag-support.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/uid.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/use-symbol-as-uid.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/well-known-symbol-wrapped.js","webpack://OktaAuth/./node_modules/core-js-pure/internals/well-known-symbol.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.aggregate-error.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.array.concat.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.array.filter.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.array.find.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.array.for-each.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.array.from.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.array.index-of.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.array.is-array.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.array.iterator.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.array.map.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.array.slice.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.json.stringify.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.json.to-string-tag.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.object.define-properties.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.object.define-property.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.object.entries.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.object.from-entries.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.object.get-own-property-descriptor.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.object.get-own-property-descriptors.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.object.keys.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.promise.all-settled.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.promise.any.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.promise.finally.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.promise.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.string.iterator.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.symbol.async-iterator.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.symbol.has-instance.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.symbol.is-concat-spreadable.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.symbol.iterator.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.symbol.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.symbol.match-all.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.symbol.match.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.symbol.replace.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.symbol.search.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.symbol.species.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.symbol.split.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.symbol.to-primitive.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.symbol.to-string-tag.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/es.symbol.unscopables.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/esnext.aggregate-error.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/esnext.promise.all-settled.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/esnext.promise.any.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/esnext.promise.try.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/esnext.symbol.async-dispose.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/esnext.symbol.dispose.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/esnext.symbol.matcher.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/esnext.symbol.metadata.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/esnext.symbol.observable.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/esnext.symbol.pattern-match.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/esnext.symbol.replace-all.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/web.dom-collections.iterator.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/web.url-search-params.js","webpack://OktaAuth/./node_modules/core-js-pure/modules/web.url.js","webpack://OktaAuth/./node_modules/core-js-pure/stable/array/from.js","webpack://OktaAuth/./node_modules/core-js-pure/stable/array/is-array.js","webpack://OktaAuth/./node_modules/core-js-pure/stable/array/virtual/for-each.js","webpack://OktaAuth/./node_modules/core-js-pure/stable/instance/concat.js","webpack://OktaAuth/./node_modules/core-js-pure/stable/instance/filter.js","webpack://OktaAuth/./node_modules/core-js-pure/stable/instance/find.js","webpack://OktaAuth/./node_modules/core-js-pure/stable/instance/for-each.js","webpack://OktaAuth/./node_modules/core-js-pure/stable/instance/index-of.js","webpack://OktaAuth/./node_modules/core-js-pure/stable/instance/map.js","webpack://OktaAuth/./node_modules/core-js-pure/stable/instance/slice.js","webpack://OktaAuth/./node_modules/core-js-pure/stable/json/stringify.js","webpack://OktaAuth/./node_modules/core-js-pure/stable/object/define-properties.js","webpack://OktaAuth/./node_modules/core-js-pure/stable/object/define-property.js","webpack://OktaAuth/./node_modules/core-js-pure/stable/object/entries.js","webpack://OktaAuth/./node_modules/core-js-pure/stable/object/from-entries.js","webpack://OktaAuth/./node_modules/core-js-pure/stable/object/get-own-property-descriptor.js","webpack://OktaAuth/./node_modules/core-js-pure/stable/object/get-own-property-descriptors.js","webpack://OktaAuth/./node_modules/core-js-pure/stable/object/get-own-property-symbols.js","webpack://OktaAuth/./node_modules/core-js-pure/stable/object/keys.js","webpack://OktaAuth/./node_modules/core-js-pure/stable/promise/index.js","webpack://OktaAuth/./node_modules/core-js-pure/stable/symbol/index.js","webpack://OktaAuth/./node_modules/core-js-pure/stable/url/index.js","webpack://OktaAuth/./node_modules/core-js-pure/web/url.js","webpack://OktaAuth/./node_modules/core-js/internals/advance-string-index.js","webpack://OktaAuth/./node_modules/core-js/internals/an-object.js","webpack://OktaAuth/./node_modules/core-js/internals/array-includes.js","webpack://OktaAuth/./node_modules/core-js/internals/array-method-is-strict.js","webpack://OktaAuth/./node_modules/core-js/internals/classof-raw.js","webpack://OktaAuth/./node_modules/core-js/internals/classof.js","webpack://OktaAuth/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://OktaAuth/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://OktaAuth/./node_modules/core-js/internals/create-property-descriptor.js","webpack://OktaAuth/./node_modules/core-js/internals/descriptors.js","webpack://OktaAuth/./node_modules/core-js/internals/document-create-element.js","webpack://OktaAuth/./node_modules/core-js/internals/engine-user-agent.js","webpack://OktaAuth/./node_modules/core-js/internals/engine-v8-version.js","webpack://OktaAuth/./node_modules/core-js/internals/enum-bug-keys.js","webpack://OktaAuth/./node_modules/core-js/internals/export.js","webpack://OktaAuth/./node_modules/core-js/internals/fails.js","webpack://OktaAuth/./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack://OktaAuth/./node_modules/core-js/internals/get-built-in.js","webpack://OktaAuth/./node_modules/core-js/internals/get-substitution.js","webpack://OktaAuth/./node_modules/core-js/internals/global.js","webpack://OktaAuth/./node_modules/core-js/internals/has.js","webpack://OktaAuth/./node_modules/core-js/internals/hidden-keys.js","webpack://OktaAuth/./node_modules/core-js/internals/html.js","webpack://OktaAuth/./node_modules/core-js/internals/ie8-dom-define.js","webpack://OktaAuth/./node_modules/core-js/internals/indexed-object.js","webpack://OktaAuth/./node_modules/core-js/internals/inspect-source.js","webpack://OktaAuth/./node_modules/core-js/internals/internal-state.js","webpack://OktaAuth/./node_modules/core-js/internals/is-forced.js","webpack://OktaAuth/./node_modules/core-js/internals/is-object.js","webpack://OktaAuth/./node_modules/core-js/internals/is-pure.js","webpack://OktaAuth/./node_modules/core-js/internals/native-symbol.js","webpack://OktaAuth/./node_modules/core-js/internals/native-weak-map.js","webpack://OktaAuth/./node_modules/core-js/internals/object-create.js","webpack://OktaAuth/./node_modules/core-js/internals/object-define-properties.js","webpack://OktaAuth/./node_modules/core-js/internals/object-define-property.js","webpack://OktaAuth/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://OktaAuth/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://OktaAuth/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://OktaAuth/./node_modules/core-js/internals/object-keys-internal.js","webpack://OktaAuth/./node_modules/core-js/internals/object-keys.js","webpack://OktaAuth/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://OktaAuth/./node_modules/core-js/internals/object-to-string.js","webpack://OktaAuth/./node_modules/core-js/internals/own-keys.js","webpack://OktaAuth/./node_modules/core-js/internals/path.js","webpack://OktaAuth/./node_modules/core-js/internals/redefine.js","webpack://OktaAuth/./node_modules/core-js/internals/regexp-exec-abstract.js","webpack://OktaAuth/./node_modules/core-js/internals/regexp-exec.js","webpack://OktaAuth/./node_modules/core-js/internals/regexp-flags.js","webpack://OktaAuth/./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack://OktaAuth/./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack://OktaAuth/./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack://OktaAuth/./node_modules/core-js/internals/require-object-coercible.js","webpack://OktaAuth/./node_modules/core-js/internals/set-global.js","webpack://OktaAuth/./node_modules/core-js/internals/shared-key.js","webpack://OktaAuth/./node_modules/core-js/internals/shared-store.js","webpack://OktaAuth/./node_modules/core-js/internals/shared.js","webpack://OktaAuth/./node_modules/core-js/internals/string-multibyte.js","webpack://OktaAuth/./node_modules/core-js/internals/to-absolute-index.js","webpack://OktaAuth/./node_modules/core-js/internals/to-indexed-object.js","webpack://OktaAuth/./node_modules/core-js/internals/to-integer.js","webpack://OktaAuth/./node_modules/core-js/internals/to-length.js","webpack://OktaAuth/./node_modules/core-js/internals/to-object.js","webpack://OktaAuth/./node_modules/core-js/internals/to-primitive.js","webpack://OktaAuth/./node_modules/core-js/internals/to-string-tag-support.js","webpack://OktaAuth/./node_modules/core-js/internals/uid.js","webpack://OktaAuth/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://OktaAuth/./node_modules/core-js/internals/well-known-symbol.js","webpack://OktaAuth/./node_modules/core-js/modules/es.array.join.js","webpack://OktaAuth/./node_modules/core-js/modules/es.function.name.js","webpack://OktaAuth/./node_modules/core-js/modules/es.object.to-string.js","webpack://OktaAuth/./node_modules/core-js/modules/es.regexp.exec.js","webpack://OktaAuth/./node_modules/core-js/modules/es.string.replace.js","webpack://OktaAuth/./node_modules/cross-fetch/dist/browser-ponyfill.js","webpack://OktaAuth/./node_modules/js-cookie/src/js.cookie.js","webpack://OktaAuth/./node_modules/jsonpath-plus/dist/index-browser-esm.js","webpack://OktaAuth/./node_modules/regenerator-runtime/runtime.js","webpack://OktaAuth/./node_modules/tiny-emitter/index.js","webpack://OktaAuth/webpack/bootstrap","webpack://OktaAuth/webpack/runtime/compat get default export","webpack://OktaAuth/webpack/runtime/define property getters","webpack://OktaAuth/webpack/runtime/global","webpack://OktaAuth/webpack/runtime/hasOwnProperty shorthand","webpack://OktaAuth/webpack/runtime/make namespace object","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://OktaAuth/./lib/errors/CustomError.ts","webpack://OktaAuth/./lib/errors/AuthApiError.ts","webpack://OktaAuth/./lib/errors/AuthPollStopError.ts","webpack://OktaAuth/./lib/errors/AuthSdkError.ts","webpack://OktaAuth/./lib/errors/OAuthError.ts","webpack://OktaAuth/./lib/errors/index.ts","webpack://OktaAuth/./lib/crypto/browser.ts","webpack://OktaAuth/./lib/crypto/base64.ts","webpack://OktaAuth/./lib/crypto/oidcHash.ts","webpack://OktaAuth/./lib/util/object.ts","webpack://OktaAuth/./lib/crypto/verifyToken.ts","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://OktaAuth/./lib/constants.ts","webpack://OktaAuth/./lib/http/headers.ts","webpack://OktaAuth/./lib/util/types.ts","webpack://OktaAuth/./lib/util/url.ts","webpack://OktaAuth/./lib/http/request.ts","webpack://OktaAuth/./lib/tx/util.ts","webpack://OktaAuth/./lib/util/misc.ts","webpack://OktaAuth/./lib/tx/poll.ts","webpack://OktaAuth/./lib/tx/AuthTransaction.ts","webpack://OktaAuth/./lib/tx/api.ts","webpack://OktaAuth/./lib/oidc/util/pkce.ts","webpack://OktaAuth/./lib/session.ts","webpack://OktaAuth/./lib/oidc/endpoints/authorize.ts","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://OktaAuth/./lib/oidc/endpoints/token.ts","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://OktaAuth/./lib/oidc/endpoints/well-known.ts","webpack://OktaAuth/./lib/oidc/util/browser.ts","webpack://OktaAuth/./lib/oidc/util/oauth.ts","webpack://OktaAuth/./lib/features.ts","webpack://OktaAuth/./lib/oidc/util/defaultTokenParams.ts","webpack://OktaAuth/./lib/oidc/util/errors.ts","webpack://OktaAuth/./lib/oidc/util/loginRedirect.ts","webpack://OktaAuth/./lib/oidc/util/oauthMeta.ts","webpack://OktaAuth/./lib/oidc/util/prepareTokenParams.ts","webpack://OktaAuth/./lib/idx/types/index.ts","webpack://OktaAuth/./lib/oidc/util/refreshToken.ts","webpack://OktaAuth/./lib/oidc/util/urlParams.ts","webpack://OktaAuth/./lib/oidc/util/validateClaims.ts","webpack://OktaAuth/./lib/types/Transaction.ts","webpack://OktaAuth/./lib/types/Token.ts","webpack://OktaAuth/./lib/oidc/util/validateToken.ts","webpack://OktaAuth/./lib/oidc/decodeToken.ts","webpack://OktaAuth/./lib/oidc/revokeToken.ts","webpack://OktaAuth/./lib/oidc/exchangeCodeForTokens.ts","webpack://OktaAuth/./lib/oidc/verifyToken.ts","webpack://OktaAuth/./lib/oidc/handleOAuthResponse.ts","webpack://OktaAuth/./lib/oidc/getToken.ts","webpack://OktaAuth/./lib/oidc/getWithoutPrompt.ts","webpack://OktaAuth/./lib/oidc/renewTokensWithRefresh.ts","webpack://OktaAuth/./lib/oidc/renewToken.ts","webpack://OktaAuth/./lib/oidc/renewTokens.ts","webpack://OktaAuth/./lib/oidc/getUserInfo.ts","webpack://OktaAuth/./lib/oidc/getWithPopup.ts","webpack://OktaAuth/./lib/oidc/getWithRedirect.ts","webpack://OktaAuth/./lib/oidc/parseFromUrl.ts","webpack://OktaAuth/./lib/util/console.ts","webpack://OktaAuth/./lib/browser/browserStorage.ts","webpack://OktaAuth/./lib/clock.ts","webpack://OktaAuth/./lib/services/TokenService.ts","webpack://OktaAuth/./lib/TokenManager.ts","webpack://OktaAuth/./lib/PromiseQueue.ts","webpack://OktaAuth/./lib/browser/fingerprint.ts","webpack://OktaAuth/./lib/AuthStateManager.ts","webpack://OktaAuth/./lib/SavedObject.ts","webpack://OktaAuth/./lib/StorageManager.ts","webpack://OktaAuth/./lib/idx/types/idx-js.ts","webpack://OktaAuth/./lib/util/sharedStorage.ts","webpack://OktaAuth/./lib/TransactionManager.ts","webpack://OktaAuth/./lib/builderUtil.ts","webpack://OktaAuth/./lib/fetch/fetchRequest.ts","webpack://OktaAuth/./lib/server/serverStorage.ts","webpack://OktaAuth/./lib/options.ts","webpack://OktaAuth/./lib/idx/transactionMeta.ts","webpack://OktaAuth/./lib/idx/interact.ts","webpack://OktaAuth/./lib/idx/introspect.ts","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://OktaAuth/./lib/idx/remediators/util.ts","webpack://OktaAuth/./lib/idx/remediators/Base/Remediator.ts","webpack://OktaAuth/./lib/idx/authenticator/Authenticator.ts","webpack://OktaAuth/./lib/idx/authenticator/VerificationCodeAuthenticator.ts","webpack://OktaAuth/./lib/idx/authenticator/OktaVerifyTotp.ts","webpack://OktaAuth/./lib/idx/authenticator/OktaPassword.ts","webpack://OktaAuth/./lib/idx/authenticator/SecurityQuestionEnrollment.ts","webpack://OktaAuth/./lib/idx/authenticator/SecurityQuestionVerification.ts","webpack://OktaAuth/./lib/idx/authenticator/getAuthenticator.ts","webpack://OktaAuth/./lib/idx/remediators/Base/VerifyAuthenticator.ts","webpack://OktaAuth/./lib/idx/remediators/EnrollAuthenticator.ts","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/get.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/superPropBase.js","webpack://OktaAuth/./lib/idx/remediators/EnrollPoll.ts","webpack://OktaAuth/./lib/idx/remediators/SelectEnrollmentChannel.ts","webpack://OktaAuth/./lib/idx/remediators/EnrollmentChannelData.ts","webpack://OktaAuth/./lib/idx/remediators/ChallengeAuthenticator.ts","webpack://OktaAuth/./lib/idx/remediators/ChallengePoll.ts","webpack://OktaAuth/./lib/idx/remediators/ResetAuthenticator.ts","webpack://OktaAuth/./lib/idx/remediators/EnrollProfile.ts","webpack://OktaAuth/./lib/idx/remediators/Identify.ts","webpack://OktaAuth/./lib/idx/remediators/ReEnrollAuthenticator.ts","webpack://OktaAuth/./lib/idx/remediators/RedirectIdp.ts","webpack://OktaAuth/./lib/idx/remediators/Base/SelectAuthenticator.ts","webpack://OktaAuth/./lib/idx/remediators/SelectAuthenticatorAuthenticate.ts","webpack://OktaAuth/./lib/idx/remediators/SelectAuthenticatorEnroll.ts","webpack://OktaAuth/./lib/idx/remediators/SelectEnrollProfile.ts","webpack://OktaAuth/./lib/idx/remediators/Base/AuthenticatorData.ts","webpack://OktaAuth/./lib/idx/remediators/AuthenticatorVerificationData.ts","webpack://OktaAuth/./lib/idx/remediators/AuthenticatorEnrollmentData.ts","webpack://OktaAuth/./lib/idx/remediators/Skip.ts","webpack://OktaAuth/./lib/idx/remediate.ts","webpack://OktaAuth/./lib/idx/flow/AuthenticationFlow.ts","webpack://OktaAuth/./lib/idx/flow/PasswordRecoveryFlow.ts","webpack://OktaAuth/./lib/idx/flow/RegistrationFlow.ts","webpack://OktaAuth/./lib/idx/flow/FlowSpecification.ts","webpack://OktaAuth/./lib/idx/run.ts","webpack://OktaAuth/./lib/idx/authenticate.ts","webpack://OktaAuth/./lib/idx/cancel.ts","webpack://OktaAuth/./lib/idx/emailVerify.ts","webpack://OktaAuth/./lib/idx/proceed.ts","webpack://OktaAuth/./lib/idx/poll.ts","webpack://OktaAuth/./lib/idx/startTransaction.ts","webpack://OktaAuth/./lib/idx/register.ts","webpack://OktaAuth/./lib/idx/recoverPassword.ts","webpack://OktaAuth/./lib/idx/handleInteractionCodeRedirect.ts","webpack://OktaAuth/./lib/OktaUserAgent.ts","webpack://OktaAuth/./lib/OktaAuth.ts","webpack://OktaAuth/./lib/idx/headers.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"OktaAuth\"] = factory();\n\telse\n\t\troot[\"OktaAuth\"] = factory();\n})(self, function() {\nreturn ","module.exports = require(\"core-js-pure/stable/array/from\");","module.exports = require(\"core-js-pure/stable/array/is-array\");","module.exports = require(\"core-js-pure/stable/instance/concat\");","module.exports = require(\"core-js-pure/stable/instance/filter\");","module.exports = require(\"core-js-pure/stable/instance/find\");","module.exports = require(\"core-js-pure/stable/instance/for-each\");","module.exports = require(\"core-js-pure/stable/instance/index-of\");","module.exports = require(\"core-js-pure/stable/instance/map\");","module.exports = require(\"core-js-pure/stable/instance/slice\");","module.exports = require(\"core-js-pure/stable/json/stringify\");","module.exports = require(\"core-js-pure/stable/object/define-properties\");","module.exports = require(\"core-js-pure/stable/object/define-property\");","module.exports = require(\"core-js-pure/stable/object/entries\");","module.exports = require(\"core-js-pure/stable/object/from-entries\");","module.exports = require(\"core-js-pure/stable/object/get-own-property-descriptor\");","module.exports = require(\"core-js-pure/stable/object/get-own-property-descriptors\");","module.exports = require(\"core-js-pure/stable/object/get-own-property-symbols\");","module.exports = require(\"core-js-pure/stable/object/keys\");","module.exports = require(\"core-js-pure/stable/promise\");","module.exports = require(\"core-js-pure/stable/symbol\");","module.exports = require(\"core-js-pure/stable/url\");","module.exports = require(\"core-js-pure/features/array/from\");","module.exports = require(\"core-js-pure/features/array/is-array\");","module.exports = require(\"core-js-pure/features/get-iterator-method\");","module.exports = require(\"core-js-pure/features/get-iterator\");","module.exports = require(\"core-js-pure/features/instance/index-of\");","module.exports = require(\"core-js-pure/features/instance/slice\");","module.exports = require(\"core-js-pure/features/object/define-property\");","module.exports = require(\"core-js-pure/features/object/get-own-property-symbols\");","module.exports = require(\"core-js-pure/features/object/keys\");","module.exports = require(\"core-js-pure/features/promise\");","module.exports = require(\"core-js-pure/features/symbol\");","module.exports = require(\"core-js-pure/features/symbol/iterator\");","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _Array$isArray = require(\"@babel/runtime-corejs3/core-js/array/is-array\");\n\nfunction _arrayWithHoles(arr) {\n if (_Array$isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _Array$isArray = require(\"@babel/runtime-corejs3/core-js/array/is-array\");\n\nvar arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (_Array$isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _Promise = require(\"@babel/runtime-corejs3/core-js/promise\");\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n _Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new _Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _Object$defineProperty = require(\"@babel/runtime-corejs3/core-js/object/define-property\");\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n _Object$defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _Symbol = require(\"@babel/runtime-corejs3/core-js/symbol\");\n\nvar _getIteratorMethod = require(\"@babel/runtime-corejs3/core-js/get-iterator-method\");\n\nvar _Array$from = require(\"@babel/runtime-corejs3/core-js/array/from\");\n\nfunction _iterableToArray(iter) {\n if (typeof _Symbol !== \"undefined\" && _getIteratorMethod(iter) != null || iter[\"@@iterator\"] != null) return _Array$from(iter);\n}\n\nmodule.exports = _iterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _Symbol = require(\"@babel/runtime-corejs3/core-js/symbol\");\n\nvar _getIteratorMethod = require(\"@babel/runtime-corejs3/core-js/get-iterator-method\");\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof _Symbol !== \"undefined\" && _getIteratorMethod(arr) || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _Object$getOwnPropertySymbols = require(\"@babel/runtime-corejs3/core-js/object/get-own-property-symbols\");\n\nvar _indexOfInstanceProperty = require(\"@babel/runtime-corejs3/core-js/instance/index-of\");\n\nvar objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (_Object$getOwnPropertySymbols) {\n var sourceSymbolKeys = _Object$getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (_indexOfInstanceProperty(excluded).call(excluded, key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _Object$keys = require(\"@babel/runtime-corejs3/core-js/object/keys\");\n\nvar _indexOfInstanceProperty = require(\"@babel/runtime-corejs3/core-js/instance/index-of\");\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n\n var sourceKeys = _Object$keys(source);\n\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (_indexOfInstanceProperty(excluded).call(excluded, key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _Symbol = require(\"@babel/runtime-corejs3/core-js/symbol\");\n\nvar _Symbol$iterator = require(\"@babel/runtime-corejs3/core-js/symbol/iterator\");\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof _Symbol === \"function\" && typeof _Symbol$iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof _Symbol === \"function\" && obj.constructor === _Symbol && obj !== _Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _sliceInstanceProperty = require(\"@babel/runtime-corejs3/core-js/instance/slice\");\n\nvar _Array$from = require(\"@babel/runtime-corejs3/core-js/array/from\");\n\nvar arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n var _context;\n\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n\n var n = _sliceInstanceProperty(_context = Object.prototype.toString.call(o)).call(_context, 8, -1);\n\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return _Array$from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","module.exports = require(\"regenerator-runtime\");\n","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _typeof = require(\"@babel/runtime/helpers/typeof\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nvar isNativeFunction = require(\"./isNativeFunction.js\");\n\nvar construct = require(\"./construct.js\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","module.exports = require(\"regenerator-runtime\");\n","\"use strict\";\n\nvar _Object$keys = require(\"@babel/runtime-corejs3/core-js-stable/object/keys\");\n\nvar _Object$getOwnPropertySymbols = require(\"@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols\");\n\nvar _filterInstanceProperty = require(\"@babel/runtime-corejs3/core-js-stable/instance/filter\");\n\nvar _Object$getOwnPropertyDescriptor = require(\"@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor\");\n\nvar _forEachInstanceProperty2 = require(\"@babel/runtime-corejs3/core-js-stable/instance/for-each\");\n\nvar _Object$getOwnPropertyDescriptors = require(\"@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors\");\n\nvar _Object$defineProperties = require(\"@babel/runtime-corejs3/core-js-stable/object/define-properties\");\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs3/core-js-stable/object/define-property\");\n\nvar _interopRequireDefault = require(\"@babel/runtime-corejs3/helpers/interopRequireDefault\");\n\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.request = exports.HttpClient = void 0;\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime-corejs3/regenerator\"));\n\nvar _forEach = _interopRequireDefault(require(\"@babel/runtime-corejs3/core-js-stable/instance/for-each\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs3/helpers/defineProperty\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime-corejs3/helpers/asyncToGenerator\"));\n\nvar _crossFetch = _interopRequireDefault(require(\"cross-fetch\"));\n\nvar _userAgent = require(\"./userAgent\");\n\nfunction ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); if (enumerableOnly) symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context3; _forEachInstanceProperty2(_context3 = ownKeys(Object(source), true)).call(_context3, function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context4; _forEachInstanceProperty2(_context4 = ownKeys(Object(source))).call(_context4, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Reusable interceptor interface\n */\nfunction Interceptor() {\n this.handlers = []; // Adds a new interceptor to our HttpClient\n\n this.use = function (before) {\n this.handlers.push({\n before: before\n });\n }; // Clears all interceptors\n\n\n this.clear = function () {\n this.handlers = [];\n };\n}\n/**\n * Singleton instance of the IdX HTTP Client\n *\n * Invoke the `use` method to add a new interceptor:\n * - client.interceptors.request.use((requestConfig) => { some logic });\n */\n\n\nvar HttpClient = {\n interceptors: {\n request: new Interceptor()\n }\n};\nexports.HttpClient = HttpClient;\n\nvar request = /*#__PURE__*/function () {\n var _request = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(target, _ref) {\n var _ref$method, method, _ref$headers, headers, _ref$credentials, credentials, body, requestOptions, _context, url;\n\n return _regenerator.default.wrap(function _callee$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _ref$method = _ref.method, method = _ref$method === void 0 ? 'POST' : _ref$method, _ref$headers = _ref.headers, headers = _ref$headers === void 0 ? {} : _ref$headers, _ref$credentials = _ref.credentials, credentials = _ref$credentials === void 0 ? 'include' : _ref$credentials, body = _ref.body;\n requestOptions = {\n url: target,\n method: method,\n headers: _objectSpread(_objectSpread({}, (0, _userAgent.userAgentHeaders)()), headers),\n credentials: credentials,\n body: body\n };\n\n if (HttpClient.interceptors) {\n (0, _forEach.default)(_context = HttpClient.interceptors.request.handlers).call(_context, function (interceptor) {\n interceptor.before(requestOptions);\n });\n } // Extract the URL to adhere to the fetch API\n\n\n url = requestOptions.url;\n delete requestOptions.url;\n return _context2.abrupt(\"return\", (0, _crossFetch.default)(url, requestOptions));\n\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee);\n }));\n\n function request(_x, _x2) {\n return _request.apply(this, arguments);\n }\n\n return request;\n}();\n\nexports.request = request;","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs3/core-js-stable/object/define-property\");\n\nvar _interopRequireDefault = require(\"@babel/runtime-corejs3/helpers/interopRequireDefault\");\n\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = void 0;\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime-corejs3/regenerator\"));\n\nvar _indexOf = _interopRequireDefault(require(\"@babel/runtime-corejs3/core-js-stable/instance/index-of\"));\n\nvar _promise = _interopRequireDefault(require(\"@babel/runtime-corejs3/core-js-stable/promise\"));\n\nvar _url = _interopRequireDefault(require(\"@babel/runtime-corejs3/core-js-stable/url\"));\n\nrequire(\"core-js/modules/es.string.replace.js\");\n\nrequire(\"core-js/modules/es.regexp.exec.js\");\n\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime-corejs3/helpers/asyncToGenerator\"));\n\nvar _introspect = _interopRequireDefault(require(\"./introspect\"));\n\nvar _interact = _interopRequireDefault(require(\"./interact\"));\n\nvar _parsers = _interopRequireDefault(require(\"./parsers\"));\n\nvar _client = require(\"./client\");\n\nvar _util = require(\"./util\");\n\n/*!\n * Copyright (c) 2021-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 */\nvar LATEST_SUPPORTED_IDX_API_VERSION = '1.0.0';\n\nvar start = /*#__PURE__*/function () {\n var _start = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_ref) {\n var _issuer, _issuer2;\n\n var withCredentials, clientId, domain, issuer, stateHandle, interactionHandle, version, redirectUri, state, scopes, codeChallenge, codeChallengeMethod, activationToken, recoveryToken, baseUrl, toPersist, interactParams, interaction_handle, _parsersForVersion, _makeIdxState, idxResponse, idxState;\n\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n withCredentials = _ref.withCredentials, clientId = _ref.clientId, domain = _ref.domain, issuer = _ref.issuer, stateHandle = _ref.stateHandle, interactionHandle = _ref.interactionHandle, version = _ref.version, redirectUri = _ref.redirectUri, state = _ref.state, scopes = _ref.scopes, codeChallenge = _ref.codeChallenge, codeChallengeMethod = _ref.codeChallengeMethod, activationToken = _ref.activationToken, recoveryToken = _ref.recoveryToken;\n issuer = (_issuer = issuer) === null || _issuer === void 0 ? void 0 : _issuer.replace(/\\/+$/, '');\n baseUrl = ((_issuer2 = issuer) === null || _issuer2 === void 0 ? void 0 : (0, _indexOf.default)(_issuer2).call(_issuer2, '/oauth2')) > 0 ? issuer : issuer + '/oauth2'; // org AS uses domain as AS, but we need the base url for calls\n\n toPersist = {\n baseUrl: baseUrl,\n clientId: clientId,\n state: state,\n withCredentials: withCredentials\n };\n\n if (!(!domain && !issuer)) {\n _context.next = 6;\n break;\n }\n\n return _context.abrupt(\"return\", _promise.default.reject({\n error: 'issuer is required'\n }));\n\n case 6:\n if (!(!stateHandle && !clientId)) {\n _context.next = 8;\n break;\n }\n\n return _context.abrupt(\"return\", _promise.default.reject({\n error: 'clientId is required'\n }));\n\n case 8:\n if (!(!stateHandle && !redirectUri)) {\n _context.next = 10;\n break;\n }\n\n return _context.abrupt(\"return\", _promise.default.reject({\n error: 'redirectUri is required'\n }));\n\n case 10:\n if (!(!stateHandle && !(codeChallenge && codeChallengeMethod))) {\n _context.next = 12;\n break;\n }\n\n return _context.abrupt(\"return\", _promise.default.reject({\n error: 'PKCE params (codeChallenge, codeChallengeMethod) are required'\n }));\n\n case 12:\n if (!domain) {\n domain = new _url.default(issuer).origin;\n }\n\n (0, _util.validateVersionConfig)(version);\n\n if (!(!stateHandle && !interactionHandle)) {\n _context.next = 27;\n break;\n }\n\n _context.prev = 15;\n interactParams = {\n withCredentials: withCredentials,\n clientId: clientId,\n baseUrl: baseUrl,\n scopes: scopes,\n redirectUri: redirectUri,\n codeChallenge: codeChallenge,\n codeChallengeMethod: codeChallengeMethod,\n state: state,\n activationToken: activationToken,\n recoveryToken: recoveryToken\n };\n _context.next = 19;\n return (0, _interact.default)(interactParams);\n\n case 19:\n interaction_handle = _context.sent;\n interactionHandle = interaction_handle;\n toPersist.interactionHandle = interactionHandle;\n _context.next = 27;\n break;\n\n case 24:\n _context.prev = 24;\n _context.t0 = _context[\"catch\"](15);\n return _context.abrupt(\"return\", _promise.default.reject({\n error: _context.t0\n }));\n\n case 27:\n _context.prev = 27;\n _parsersForVersion = (0, _parsers.default)(version), _makeIdxState = _parsersForVersion.makeIdxState;\n _context.next = 31;\n return (0, _introspect.default)({\n withCredentials: withCredentials,\n domain: domain,\n interactionHandle: interactionHandle,\n stateHandle: stateHandle,\n version: version\n }).catch(function (err) {\n return _promise.default.reject({\n error: 'introspect call failed',\n // Transform all errors into an IdX State object.\n // This allows IdX based errors (messages) to optionally proceed with remediation forms\n details: _makeIdxState(err, toPersist)\n });\n });\n\n case 31:\n idxResponse = _context.sent;\n idxState = _makeIdxState(idxResponse, toPersist);\n return _context.abrupt(\"return\", idxState);\n\n case 36:\n _context.prev = 36;\n _context.t1 = _context[\"catch\"](27);\n return _context.abrupt(\"return\", _promise.default.reject({\n error: _context.t1\n }));\n\n case 39:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[15, 24], [27, 36]]);\n }));\n\n function start(_x) {\n return _start.apply(this, arguments);\n }\n\n return start;\n}();\n\nvar _parsersForVersion2 = (0, _parsers.default)(LATEST_SUPPORTED_IDX_API_VERSION),\n makeIdxState = _parsersForVersion2.makeIdxState;\n\nvar _default = {\n start: start,\n introspect: _introspect.default,\n interact: _interact.default,\n makeIdxState: makeIdxState,\n client: _client.HttpClient,\n LATEST_SUPPORTED_IDX_API_VERSION: LATEST_SUPPORTED_IDX_API_VERSION\n};\nexports.default = _default;","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs3/core-js-stable/object/define-property\");\n\nvar _interopRequireDefault = require(\"@babel/runtime-corejs3/helpers/interopRequireDefault\");\n\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = void 0;\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime-corejs3/regenerator\"));\n\nrequire(\"core-js/modules/es.array.join.js\");\n\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime-corejs3/helpers/slicedToArray\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime-corejs3/helpers/asyncToGenerator\"));\n\nvar _promise = _interopRequireDefault(require(\"@babel/runtime-corejs3/core-js-stable/promise\"));\n\nvar _map = _interopRequireDefault(require(\"@babel/runtime-corejs3/core-js-stable/instance/map\"));\n\nvar _entries = _interopRequireDefault(require(\"@babel/runtime-corejs3/core-js-stable/object/entries\"));\n\nvar _concat = _interopRequireDefault(require(\"@babel/runtime-corejs3/core-js-stable/instance/concat\"));\n\nvar _client = require(\"./client\");\n\n/*!\n * Copyright (c) 2021-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 */\nvar parseAndReject = function parseAndReject(response) {\n return response.json().then(function (err) {\n return _promise.default.reject(err);\n });\n};\n\nvar interact = /*#__PURE__*/function () {\n var _interact = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_ref) {\n var _context;\n\n var withCredentials, clientId, baseUrl, _ref$scopes, scopes, redirectUri, codeChallenge, codeChallengeMethod, state, activationToken, recoveryToken, target, params, body, headers, credentials;\n\n return _regenerator.default.wrap(function _callee$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n withCredentials = _ref.withCredentials, clientId = _ref.clientId, baseUrl = _ref.baseUrl, _ref$scopes = _ref.scopes, scopes = _ref$scopes === void 0 ? ['openid', 'email'] : _ref$scopes, redirectUri = _ref.redirectUri, codeChallenge = _ref.codeChallenge, codeChallengeMethod = _ref.codeChallengeMethod, state = _ref.state, activationToken = _ref.activationToken, recoveryToken = _ref.recoveryToken;\n target = \"\".concat(baseUrl, \"/v1/interact\");\n params = {\n client_id: clientId,\n scope: scopes.join(' '),\n redirect_uri: redirectUri,\n code_challenge: codeChallenge,\n code_challenge_method: codeChallengeMethod,\n state: state\n };\n\n if (activationToken) {\n params.activation_token = activationToken;\n }\n\n if (recoveryToken) {\n params.recovery_token = recoveryToken;\n }\n\n body = (0, _map.default)(_context = (0, _entries.default)(params)).call(_context, function (_ref2) {\n var _context2;\n\n var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),\n param = _ref3[0],\n value = _ref3[1];\n\n return (0, _concat.default)(_context2 = \"\".concat(param, \"=\")).call(_context2, encodeURIComponent(value));\n }).join('&');\n headers = {\n 'content-type': 'application/x-www-form-urlencoded'\n };\n credentials = withCredentials === false ? 'omit' : 'include';\n return _context3.abrupt(\"return\", (0, _client.request)(target, {\n credentials: credentials,\n headers: headers,\n body: body\n }).then(function (response) {\n return response.ok ? response.json() : parseAndReject(response);\n }).then(function (data) {\n return data.interaction_handle;\n }));\n\n case 9:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee);\n }));\n\n function interact(_x) {\n return _interact.apply(this, arguments);\n }\n\n return interact;\n}();\n\nvar _default = interact;\nexports.default = _default;","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs3/core-js-stable/object/define-property\");\n\nvar _interopRequireDefault = require(\"@babel/runtime-corejs3/helpers/interopRequireDefault\");\n\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = void 0;\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime-corejs3/regenerator\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime-corejs3/helpers/asyncToGenerator\"));\n\nvar _promise = _interopRequireDefault(require(\"@babel/runtime-corejs3/core-js-stable/promise\"));\n\nvar _stringify = _interopRequireDefault(require(\"@babel/runtime-corejs3/core-js-stable/json/stringify\"));\n\nvar _client = require(\"./client\");\n\nvar _util = require(\"./util\");\n\n/*!\n * Copyright (c) 2021-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 */\nvar parseAndReject = function parseAndReject(response) {\n return response.json().then(function (err) {\n return _promise.default.reject(err);\n });\n};\n\nvar introspect = /*#__PURE__*/function () {\n var _introspect = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_ref) {\n var withCredentials, domain, interactionHandle, stateHandle, version, target, body, headers, credentials;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n withCredentials = _ref.withCredentials, domain = _ref.domain, interactionHandle = _ref.interactionHandle, stateHandle = _ref.stateHandle, version = _ref.version;\n (0, _util.validateVersionConfig)(version);\n target = \"\".concat(domain, \"/idp/idx/introspect\");\n body = stateHandle ? {\n stateToken: stateHandle\n } : {\n interactionHandle: interactionHandle\n };\n headers = {\n 'content-type': \"application/ion+json; okta-version=\".concat(version),\n // Server wants this version info\n accept: \"application/ion+json; okta-version=\".concat(version)\n };\n credentials = withCredentials === false ? 'omit' : 'include';\n return _context.abrupt(\"return\", (0, _client.request)(target, {\n credentials: credentials,\n headers: headers,\n body: (0, _stringify.default)(body)\n }).then(function (response) {\n return response.ok ? response.json() : parseAndReject(response);\n }));\n\n case 7:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n function introspect(_x) {\n return _introspect.apply(this, arguments);\n }\n\n return introspect;\n}();\n\nvar _default = introspect;\nexports.default = _default;","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs3/core-js-stable/object/define-property\");\n\nvar _interopRequireDefault = require(\"@babel/runtime-corejs3/helpers/interopRequireDefault\");\n\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = void 0;\n\nvar _parsers = _interopRequireDefault(require(\"./v1/parsers\"));\n\n/*!\n * Copyright (c) 2021-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// We load all the current parsers, because we won't know in advance which version(s) we need to parse\n// Expect to only support current major - 1 (also suspect that this limit may never be hit)\n// More granularity to be defined as needed\nvar parsersForVersion = function parsersForVersion(version) {\n switch (version) {\n case '1.0.0':\n return _parsers.default;\n\n case undefined:\n case null:\n throw new Error('Api version is required');\n\n default:\n throw new Error(\"Unknown api version: \".concat(version, \". Use an exact semver version.\"));\n }\n};\n\nvar _default = parsersForVersion;\nexports.default = _default;","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs3/core-js-stable/object/define-property\");\n\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.userAgentHeaders = exports.getUserAgent = void 0;\n\n/*!\n * Copyright (c) 2021-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/* SDK_VERSION is defined in webpack config */\nvar getUserAgent = function getUserAgent() {\n // TODO: Allow for extending\n return \"okta-idx-js/\".concat(\"0.24.0\");\n};\n\nexports.getUserAgent = getUserAgent;\n\nvar userAgentHeaders = function userAgentHeaders() {\n return {\n 'X-Okta-User-Agent-Extended': getUserAgent()\n };\n};\n\nexports.userAgentHeaders = userAgentHeaders;","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs3/core-js-stable/object/define-property\");\n\nvar _interopRequireDefault = require(\"@babel/runtime-corejs3/helpers/interopRequireDefault\");\n\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.validateVersionConfig = validateVersionConfig;\n\nrequire(\"core-js/modules/es.string.replace.js\");\n\nrequire(\"core-js/modules/es.regexp.exec.js\");\n\nvar _parsers = _interopRequireDefault(require(\"./parsers\"));\n\n/*!\n * Copyright (c) 2021-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 */\nfunction validateVersionConfig(version) {\n if (!version) {\n throw new Error('version is required');\n }\n\n var cleanVersion = (version !== null && version !== void 0 ? version : '').replace(/[^0-9a-zA-Z._-]/, '');\n\n if (cleanVersion !== version || !version) {\n throw new Error('invalid version supplied - version is required and uses semver syntax');\n }\n\n (0, _parsers.default)(version); // will throw for invalid version\n}","\"use strict\";\n\nrequire(\"core-js/modules/es.object.to-string.js\");\n\nvar _sliceInstanceProperty = require(\"@babel/runtime-corejs3/core-js-stable/instance/slice\");\n\nvar _Array$from = require(\"@babel/runtime-corejs3/core-js-stable/array/from\");\n\nvar _Symbol = require(\"@babel/runtime-corejs3/core-js-stable/symbol\");\n\nvar _getIteratorMethod = require(\"@babel/runtime-corejs3/core-js/get-iterator-method\");\n\nvar _Array$isArray2 = require(\"@babel/runtime-corejs3/core-js-stable/array/is-array\");\n\nvar _getIterator = require(\"@babel/runtime-corejs3/core-js/get-iterator\");\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs3/core-js-stable/object/define-property\");\n\nvar _interopRequireDefault = require(\"@babel/runtime-corejs3/helpers/interopRequireDefault\");\n\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.divideActionParamsByMutability = void 0;\n\nvar _isArray = _interopRequireDefault(require(\"@babel/runtime-corejs3/core-js-stable/array/is-array\"));\n\nrequire(\"core-js/modules/es.function.name.js\");\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof _Symbol === \"undefined\" || _getIteratorMethod(o) == null) { if (_Array$isArray2(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = _getIterator(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { var _context; if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = _sliceInstanceProperty(_context = Object.prototype.toString.call(o)).call(_context, 8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return _Array$from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/*!\n * Copyright (c) 2021-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 */\nvar isFieldMutable = function isFieldMutable(field) {\n // mutable defaults to true, annoyingly\n return field.mutable !== false;\n};\n\nvar divideSingleActionParamsByMutability = function divideSingleActionParamsByMutability(action) {\n var defaultParamsForAction = {}; // mutable and present\n\n var neededParamsForAction = []; // mutable values\n\n var immutableParamsForAction = {}; // immutable\n // TODO: remove assumption that form names are unique, neededParams being an array is a temp fix\n // not all actions have value (e.g. redirect)\n // making sure they are not empty and instead hold the remediation object\n\n if (!action.value) {\n neededParamsForAction.push(action);\n return {\n defaultParamsForAction: defaultParamsForAction,\n neededParamsForAction: neededParamsForAction,\n immutableParamsForAction: immutableParamsForAction\n };\n }\n\n var _iterator = _createForOfIteratorHelper(action.value),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var field = _step.value;\n\n if (isFieldMutable(field)) {\n var _field$value;\n\n neededParamsForAction.push(field);\n\n if ((_field$value = field.value) !== null && _field$value !== void 0 ? _field$value : false) {\n defaultParamsForAction[field.name] = field.value;\n }\n } else {\n var _field$value2;\n\n immutableParamsForAction[field.name] = (_field$value2 = field.value) !== null && _field$value2 !== void 0 ? _field$value2 : '';\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return {\n defaultParamsForAction: defaultParamsForAction,\n neededParamsForAction: neededParamsForAction,\n immutableParamsForAction: immutableParamsForAction\n };\n};\n\nvar divideActionParamsByMutability = function divideActionParamsByMutability(actionList) {\n // TODO: when removing form name is unique assumption, this may all be redundant\n actionList = (0, _isArray.default)(actionList) ? actionList : [actionList];\n var neededParams = [];\n var defaultParams = {};\n var immutableParams = {};\n\n var _iterator2 = _createForOfIteratorHelper(actionList),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var action = _step2.value;\n\n var _divideSingleActionPa = divideSingleActionParamsByMutability(action),\n defaultParamsForAction = _divideSingleActionPa.defaultParamsForAction,\n neededParamsForAction = _divideSingleActionPa.neededParamsForAction,\n immutableParamsForAction = _divideSingleActionPa.immutableParamsForAction;\n\n neededParams.push(neededParamsForAction);\n defaultParams[action.name] = defaultParamsForAction;\n immutableParams[action.name] = immutableParamsForAction;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return {\n defaultParams: defaultParams,\n neededParams: neededParams,\n immutableParams: immutableParams\n };\n};\n\nexports.divideActionParamsByMutability = divideActionParamsByMutability;","\"use strict\";\n\nvar _Object$keys = require(\"@babel/runtime-corejs3/core-js-stable/object/keys\");\n\nvar _Object$getOwnPropertySymbols = require(\"@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols\");\n\nvar _filterInstanceProperty = require(\"@babel/runtime-corejs3/core-js-stable/instance/filter\");\n\nvar _Object$getOwnPropertyDescriptor = require(\"@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor\");\n\nvar _forEachInstanceProperty = require(\"@babel/runtime-corejs3/core-js-stable/instance/for-each\");\n\nvar _Object$getOwnPropertyDescriptors = require(\"@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors\");\n\nvar _Object$defineProperties = require(\"@babel/runtime-corejs3/core-js-stable/object/define-properties\");\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs3/core-js-stable/object/define-property\");\n\nvar _interopRequireDefault = require(\"@babel/runtime-corejs3/helpers/interopRequireDefault\");\n\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = void 0;\n\nrequire(\"core-js/modules/es.function.name.js\");\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime-corejs3/regenerator\"));\n\nvar _stringify = _interopRequireDefault(require(\"@babel/runtime-corejs3/core-js-stable/json/stringify\"));\n\nvar _promise = _interopRequireDefault(require(\"@babel/runtime-corejs3/core-js-stable/promise\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs3/helpers/defineProperty\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime-corejs3/helpers/asyncToGenerator\"));\n\nvar _client = require(\"../client\");\n\nvar _actionParser = require(\"./actionParser\");\n\nvar _makeIdxState = _interopRequireDefault(require(\"./makeIdxState\"));\n\nfunction ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); if (enumerableOnly) symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context2; _forEachInstanceProperty(_context2 = ownKeys(Object(source), true)).call(_context2, function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context3; _forEachInstanceProperty(_context3 = ownKeys(Object(source))).call(_context3, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar generateDirectFetch = function generateDirectFetch(_ref) {\n var actionDefinition = _ref.actionDefinition,\n _ref$defaultParamsFor = _ref.defaultParamsForAction,\n defaultParamsForAction = _ref$defaultParamsFor === void 0 ? {} : _ref$defaultParamsFor,\n _ref$immutableParamsF = _ref.immutableParamsForAction,\n immutableParamsForAction = _ref$immutableParamsF === void 0 ? {} : _ref$immutableParamsF,\n toPersist = _ref.toPersist;\n var target = actionDefinition.href;\n return /*#__PURE__*/function () {\n var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(params) {\n var headers, body, credentials;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n headers = {\n 'content-type': 'application/json',\n 'accept': actionDefinition.accepts || 'application/ion+json'\n };\n body = (0, _stringify.default)(_objectSpread(_objectSpread(_objectSpread({}, defaultParamsForAction), params), immutableParamsForAction));\n credentials = toPersist && toPersist.withCredentials === false ? 'omit' : 'include';\n return _context.abrupt(\"return\", (0, _client.request)(target, {\n method: actionDefinition.method,\n headers: headers,\n body: body,\n credentials: credentials\n }).then(function (response) {\n var respJson = response.json();\n\n if (response.ok) {\n return respJson;\n } else if (response.status === 401 && response.headers.get('WWW-Authenticate') === 'Oktadevicejwt realm=\"Okta Device\"') {\n // Okta server responds 401 status code with WWW-Authenticate header and new remediation\n // so that the iOS/MacOS credential SSO extension (Okta Verify) can intercept\n // the response reaches here when Okta Verify is not installed\n // we need to return an idx object so that\n // the SIW can proceed to the next step without showing error\n return respJson.then(function (err) {\n var ms = (0, _makeIdxState.default)(err, toPersist); // set to true if flow should be continued without showing any errors\n\n ms.stepUp = true;\n return _promise.default.reject(ms);\n });\n }\n\n return respJson.then(function (err) {\n return _promise.default.reject((0, _makeIdxState.default)(err, toPersist));\n });\n }).then(function (idxResponse) {\n return (0, _makeIdxState.default)(idxResponse, toPersist);\n }));\n\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function (_x) {\n return _ref2.apply(this, arguments);\n };\n }();\n}; // TODO: Resolve in M2: Either build the final polling solution or remove this code\n// const generatePollingFetch = function generatePollingFetch( { actionDefinition, defaultParamsForAction = {}, immutableParamsForAction = {} } ) {\n// // TODO: Discussions ongoing about when/how to terminate polling: OKTA-246581\n// const target = actionDefinition.href;\n// return async function(params) {\n// return fetch(target, {\n// method: actionDefinition.method,\n// headers: {\n// 'content-type': actionDefinition.accepts,\n// },\n// body: JSON.stringify({ ...defaultParamsForAction, ...params, ...immutableParamsForAction })\n// })\n// .then( response => response.ok ? response.json() : response.json().then( err => Promise.reject(err)) )\n// .then( idxResponse => makeIdxState(idxResponse) );\n// };\n// };\n\n\nvar generateIdxAction = function generateIdxAction(actionDefinition, toPersist) {\n // TODO: leaving this here to see where the polling is EXPECTED to drop into the code, but removing any accidental trigger of incomplete code\n // const generator = actionDefinition.refresh ? generatePollingFetch : generateDirectFetch;\n var generator = generateDirectFetch;\n\n var _divideActionParamsBy = (0, _actionParser.divideActionParamsByMutability)(actionDefinition),\n defaultParams = _divideActionParamsBy.defaultParams,\n neededParams = _divideActionParamsBy.neededParams,\n immutableParams = _divideActionParamsBy.immutableParams;\n\n var action = generator({\n actionDefinition: actionDefinition,\n defaultParamsForAction: defaultParams[actionDefinition.name],\n immutableParamsForAction: immutableParams[actionDefinition.name],\n toPersist: toPersist\n });\n action.neededParams = neededParams;\n return action;\n};\n\nvar _default = generateIdxAction;\nexports.default = _default;","\"use strict\";\n\nvar _Object$keys2 = require(\"@babel/runtime-corejs3/core-js-stable/object/keys\");\n\nvar _Object$getOwnPropertySymbols = require(\"@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols\");\n\nvar _filterInstanceProperty2 = require(\"@babel/runtime-corejs3/core-js-stable/instance/filter\");\n\nvar _Object$getOwnPropertyDescriptor = require(\"@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor\");\n\nvar _forEachInstanceProperty2 = require(\"@babel/runtime-corejs3/core-js-stable/instance/for-each\");\n\nvar _Object$getOwnPropertyDescriptors = require(\"@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors\");\n\nvar _Object$defineProperties = require(\"@babel/runtime-corejs3/core-js-stable/object/define-properties\");\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs3/core-js-stable/object/define-property\");\n\nvar _interopRequireDefault = require(\"@babel/runtime-corejs3/helpers/interopRequireDefault\");\n\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.parseIdxResponse = exports.parseNonRemediations = void 0;\n\nrequire(\"core-js/modules/es.function.name.js\");\n\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime-corejs3/helpers/slicedToArray\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime-corejs3/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime-corejs3/helpers/objectWithoutProperties\"));\n\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime-corejs3/helpers/typeof\"));\n\nvar _fromEntries = _interopRequireDefault(require(\"@babel/runtime-corejs3/core-js-stable/object/from-entries\"));\n\nvar _map = _interopRequireDefault(require(\"@babel/runtime-corejs3/core-js-stable/instance/map\"));\n\nvar _forEach = _interopRequireDefault(require(\"@babel/runtime-corejs3/core-js-stable/instance/for-each\"));\n\nvar _filter = _interopRequireDefault(require(\"@babel/runtime-corejs3/core-js-stable/instance/filter\"));\n\nvar _keys = _interopRequireDefault(require(\"@babel/runtime-corejs3/core-js-stable/object/keys\"));\n\nvar _entries = _interopRequireDefault(require(\"@babel/runtime-corejs3/core-js-stable/object/entries\"));\n\nvar _concat = _interopRequireDefault(require(\"@babel/runtime-corejs3/core-js-stable/instance/concat\"));\n\nvar _isArray = _interopRequireDefault(require(\"@babel/runtime-corejs3/core-js-stable/array/is-array\"));\n\nvar _remediationParser = require(\"./remediationParser\");\n\nvar _generateIdxAction = _interopRequireDefault(require(\"./generateIdxAction\"));\n\nvar _jsonpathPlus = require(\"jsonpath-plus\");\n\nvar _context;\n\nfunction ownKeys(object, enumerableOnly) { var keys = _Object$keys2(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); if (enumerableOnly) symbols = _filterInstanceProperty2(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context8; _forEachInstanceProperty2(_context8 = ownKeys(Object(source), true)).call(_context8, function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context9; _forEachInstanceProperty2(_context9 = ownKeys(Object(source))).call(_context9, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar SKIP_FIELDS = (0, _fromEntries.default)((0, _map.default)(_context = ['remediation', // remediations are put into proceed/neededToProceed\n'context' // the API response of 'context' isn't externally useful. We ignore it and put all non-action (contextual) info into idxState.context\n]).call(_context, function (field) {\n return [field, !!'skip this field'];\n}));\n\nvar parseNonRemediations = function parseNonRemediations(idxResponse) {\n var _context2, _context3;\n\n var toPersist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var actions = {};\n var context = {};\n (0, _forEach.default)(_context2 = (0, _filter.default)(_context3 = (0, _keys.default)(idxResponse)).call(_context3, function (field) {\n return !SKIP_FIELDS[field];\n })).call(_context2, function (field) {\n var _context4;\n\n var fieldIsObject = (0, _typeof2.default)(idxResponse[field]) === 'object' && !!idxResponse[field];\n\n if (!fieldIsObject) {\n // simple fields are contextual info\n context[field] = idxResponse[field];\n return;\n }\n\n if (idxResponse[field].rel) {\n // top level actions\n actions[idxResponse[field].name] = (0, _generateIdxAction.default)(idxResponse[field], toPersist);\n return;\n }\n\n var _idxResponse$field = idxResponse[field],\n fieldValue = _idxResponse$field.value,\n type = _idxResponse$field.type,\n info = (0, _objectWithoutProperties2.default)(_idxResponse$field, [\"value\", \"type\"]);\n context[field] = _objectSpread({\n type: type\n }, info); // add the non-action parts as context\n\n if (type !== 'object') {\n // only object values hold actions\n context[field].value = fieldValue;\n return;\n } // We are an object field containing an object value\n\n\n context[field].value = {};\n (0, _forEach.default)(_context4 = (0, _entries.default)(fieldValue)).call(_context4, function (_ref) {\n var _ref2 = (0, _slicedToArray2.default)(_ref, 2),\n subField = _ref2[0],\n value = _ref2[1];\n\n if (value.rel) {\n var _context5;\n\n // is [field].value[subField] an action?\n // add any \"action\" value subfields to actions\n actions[(0, _concat.default)(_context5 = \"\".concat(field, \"-\")).call(_context5, subField.name || subField)] = (0, _generateIdxAction.default)(value, toPersist);\n } else {\n // add non-action value subfields to context\n context[field].value[subField] = value;\n }\n });\n });\n return {\n context: context,\n actions: actions\n };\n};\n\nexports.parseNonRemediations = parseNonRemediations;\n\nvar expandRelatesTo = function expandRelatesTo(idxResponse, value) {\n var _context6;\n\n (0, _forEach.default)(_context6 = (0, _keys.default)(value)).call(_context6, function (k) {\n if (k === 'relatesTo') {\n var query = (0, _isArray.default)(value[k]) ? value[k][0] : value[k];\n\n if (typeof query === 'string') {\n // eslint-disable-next-line new-cap\n var result = (0, _jsonpathPlus.JSONPath)({\n path: query,\n json: idxResponse\n })[0];\n\n if (result) {\n value[k] = result;\n return;\n }\n }\n }\n\n if ((0, _isArray.default)(value[k])) {\n var _context7;\n\n (0, _forEach.default)(_context7 = value[k]).call(_context7, function (innerValue) {\n return expandRelatesTo(idxResponse, innerValue);\n });\n }\n });\n};\n\nvar convertRemediationAction = function convertRemediationAction(remediation, toPersist) {\n var remediationActions = (0, _remediationParser.generateRemediationFunctions)([remediation], toPersist);\n var actionFn = remediationActions[remediation.name];\n return _objectSpread(_objectSpread({}, remediation), {}, {\n action: actionFn\n });\n};\n\nvar parseIdxResponse = function parseIdxResponse(idxResponse) {\n var _idxResponse$remediat;\n\n var toPersist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var remediationData = ((_idxResponse$remediat = idxResponse.remediation) === null || _idxResponse$remediat === void 0 ? void 0 : _idxResponse$remediat.value) || [];\n (0, _forEach.default)(remediationData).call(remediationData, function (remediation) {\n return expandRelatesTo(idxResponse, remediation);\n });\n var remediations = (0, _map.default)(remediationData).call(remediationData, function (remediation) {\n return convertRemediationAction(remediation, toPersist);\n });\n\n var _parseNonRemediations = parseNonRemediations(idxResponse, toPersist),\n context = _parseNonRemediations.context,\n actions = _parseNonRemediations.actions;\n\n return {\n remediations: remediations,\n context: context,\n actions: actions\n };\n};\n\nexports.parseIdxResponse = parseIdxResponse;","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs3/core-js-stable/object/define-property\");\n\nvar _interopRequireDefault = require(\"@babel/runtime-corejs3/helpers/interopRequireDefault\");\n\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = void 0;\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime-corejs3/regenerator\"));\n\nrequire(\"core-js/modules/es.function.name.js\");\n\nvar _find = _interopRequireDefault(require(\"@babel/runtime-corejs3/core-js-stable/instance/find\"));\n\nvar _promise = _interopRequireDefault(require(\"@babel/runtime-corejs3/core-js-stable/promise\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime-corejs3/helpers/asyncToGenerator\"));\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime-corejs3/helpers/toConsumableArray\"));\n\nvar _idxResponseParser = require(\"./idxResponseParser\");\n\n/*!\n * Copyright (c) 2021-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 */\nvar makeIdxState = function makeIdxState(idxResponse, toPersist) {\n var _rawIdxResponse$succe, _context2;\n\n var rawIdxResponse = idxResponse;\n\n var _parseIdxResponse = (0, _idxResponseParser.parseIdxResponse)(idxResponse, toPersist),\n remediations = _parseIdxResponse.remediations,\n context = _parseIdxResponse.context,\n actions = _parseIdxResponse.actions;\n\n var neededToProceed = (0, _toConsumableArray2.default)(remediations);\n\n var proceed = /*#__PURE__*/function () {\n var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(remediationChoice) {\n var paramsFromUser,\n remediationChoiceObject,\n _args = arguments;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n paramsFromUser = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};\n\n /*\n remediationChoice is the name attribute on each form\n name should remain unique for items inside the remediation that are considered forms(identify, select-factor)\n name can be duplicate for items like redirect where its not considered a form(redirect)\n when names are not unique its a redirect to a href, so widget wont POST to idx-js layer.\n */\n remediationChoiceObject = (0, _find.default)(remediations).call(remediations, function (remediation) {\n return remediation.name === remediationChoice;\n });\n\n if (remediationChoiceObject) {\n _context.next = 4;\n break;\n }\n\n return _context.abrupt(\"return\", _promise.default.reject(\"Unknown remediation choice: [\".concat(remediationChoice, \"]\")));\n\n case 4:\n return _context.abrupt(\"return\", remediationChoiceObject.action(paramsFromUser));\n\n case 5:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function proceed(_x) {\n return _ref.apply(this, arguments);\n };\n }();\n\n var hasInteractionCode = function hasInteractionCode() {\n return !!rawIdxResponse.successWithInteractionCode;\n };\n\n var findCode = function findCode(item) {\n return item.name === 'interaction_code';\n };\n\n var interactionCode = (_rawIdxResponse$succe = rawIdxResponse.successWithInteractionCode) === null || _rawIdxResponse$succe === void 0 ? void 0 : (0, _find.default)(_context2 = _rawIdxResponse$succe.value).call(_context2, findCode).value;\n return {\n proceed: proceed,\n neededToProceed: neededToProceed,\n actions: actions,\n context: context,\n rawIdxState: rawIdxResponse,\n hasInteractionCode: hasInteractionCode,\n interactionCode: interactionCode,\n toPersist: toPersist\n };\n};\n\nvar _default = makeIdxState;\nexports.default = _default;","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs3/core-js-stable/object/define-property\");\n\nvar _interopRequireDefault = require(\"@babel/runtime-corejs3/helpers/interopRequireDefault\");\n\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = void 0;\n\nvar _makeIdxState = _interopRequireDefault(require(\"./makeIdxState\"));\n\n/*!\n * Copyright (c) 2021-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 */\nvar _default = {\n makeIdxState: _makeIdxState.default\n};\nexports.default = _default;","\"use strict\";\n\nvar _Object$defineProperty = require(\"@babel/runtime-corejs3/core-js-stable/object/define-property\");\n\nvar _interopRequireDefault = require(\"@babel/runtime-corejs3/helpers/interopRequireDefault\");\n\n_Object$defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.generateRemediationFunctions = void 0;\n\nrequire(\"core-js/modules/es.function.name.js\");\n\nvar _fromEntries = _interopRequireDefault(require(\"@babel/runtime-corejs3/core-js-stable/object/from-entries\"));\n\nvar _map = _interopRequireDefault(require(\"@babel/runtime-corejs3/core-js-stable/instance/map\"));\n\nvar _generateIdxAction = _interopRequireDefault(require(\"./generateIdxAction\"));\n\n/*!\n * Copyright (c) 2021-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 */\nvar generateRemediationFunctions = function generateRemediationFunctions(remediationValue) {\n var toPersist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return (0, _fromEntries.default)((0, _map.default)(remediationValue).call(remediationValue, function (remediation) {\n return [remediation.name, (0, _generateIdxAction.default)(remediation, toPersist)];\n }));\n};\n\nexports.generateRemediationFunctions = generateRemediationFunctions;","'use strict';\n\nclass CancelError extends Error {\n\tconstructor(reason) {\n\t\tsuper(reason || 'Promise was canceled');\n\t\tthis.name = 'CancelError';\n\t}\n\n\tget isCanceled() {\n\t\treturn true;\n\t}\n}\n\nclass PCancelable {\n\tstatic fn(userFn) {\n\t\treturn (...arguments_) => {\n\t\t\treturn new PCancelable((resolve, reject, onCancel) => {\n\t\t\t\targuments_.push(onCancel);\n\t\t\t\t// eslint-disable-next-line promise/prefer-await-to-then\n\t\t\t\tuserFn(...arguments_).then(resolve, reject);\n\t\t\t});\n\t\t};\n\t}\n\n\tconstructor(executor) {\n\t\tthis._cancelHandlers = [];\n\t\tthis._isPending = true;\n\t\tthis._isCanceled = false;\n\t\tthis._rejectOnCancel = true;\n\n\t\tthis._promise = new Promise((resolve, reject) => {\n\t\t\tthis._reject = reject;\n\n\t\t\tconst onResolve = value => {\n\t\t\t\tif (!this._isCanceled || !onCancel.shouldReject) {\n\t\t\t\t\tthis._isPending = false;\n\t\t\t\t\tresolve(value);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst onReject = error => {\n\t\t\t\tthis._isPending = false;\n\t\t\t\treject(error);\n\t\t\t};\n\n\t\t\tconst onCancel = handler => {\n\t\t\t\tif (!this._isPending) {\n\t\t\t\t\tthrow new Error('The `onCancel` handler was attached after the promise settled.');\n\t\t\t\t}\n\n\t\t\t\tthis._cancelHandlers.push(handler);\n\t\t\t};\n\n\t\t\tObject.defineProperties(onCancel, {\n\t\t\t\tshouldReject: {\n\t\t\t\t\tget: () => this._rejectOnCancel,\n\t\t\t\t\tset: boolean => {\n\t\t\t\t\t\tthis._rejectOnCancel = boolean;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn executor(onResolve, onReject, onCancel);\n\t\t});\n\t}\n\n\tthen(onFulfilled, onRejected) {\n\t\t// eslint-disable-next-line promise/prefer-await-to-then\n\t\treturn this._promise.then(onFulfilled, onRejected);\n\t}\n\n\tcatch(onRejected) {\n\t\treturn this._promise.catch(onRejected);\n\t}\n\n\tfinally(onFinally) {\n\t\treturn this._promise.finally(onFinally);\n\t}\n\n\tcancel(reason) {\n\t\tif (!this._isPending || this._isCanceled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isCanceled = true;\n\n\t\tif (this._cancelHandlers.length > 0) {\n\t\t\ttry {\n\t\t\t\tfor (const handler of this._cancelHandlers) {\n\t\t\t\t\thandler();\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tthis._reject(error);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (this._rejectOnCancel) {\n\t\t\tthis._reject(new CancelError(reason));\n\t\t}\n\t}\n\n\tget isCanceled() {\n\t\treturn this._isCanceled;\n\t}\n}\n\nObject.setPrototypeOf(PCancelable.prototype, Promise.prototype);\n\nmodule.exports = PCancelable;\nmodule.exports.CancelError = CancelError;\n","require('../../modules/es.string.iterator');\nrequire('../../modules/es.array.from');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Array.from;\n","require('../../modules/es.array.is-array');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Array.isArray;\n","require('../../../modules/es.array.concat');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').concat;\n","require('../../../modules/es.array.filter');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').filter;\n","require('../../../modules/es.array.find');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').find;\n","require('../../../modules/es.array.for-each');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').forEach;\n","require('../../../modules/es.array.index-of');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').indexOf;\n","require('../../../modules/es.array.map');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').map;\n","require('../../../modules/es.array.slice');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').slice;\n","var concat = require('../array/virtual/concat');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.concat;\n return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.concat) ? concat : own;\n};\n","var filter = require('../array/virtual/filter');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.filter;\n return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.filter) ? filter : own;\n};\n","var find = require('../array/virtual/find');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.find;\n return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.find) ? find : own;\n};\n","var indexOf = require('../array/virtual/index-of');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.indexOf;\n return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.indexOf) ? indexOf : own;\n};\n","var map = require('../array/virtual/map');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.map;\n return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.map) ? map : own;\n};\n","var slice = require('../array/virtual/slice');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.slice;\n return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.slice) ? slice : own;\n};\n","require('../../modules/es.json.stringify');\nvar core = require('../../internals/path');\n\n// eslint-disable-next-line es/no-json -- safe\nif (!core.JSON) core.JSON = { stringify: JSON.stringify };\n\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nmodule.exports = function stringify(it, replacer, space) {\n return core.JSON.stringify.apply(null, arguments);\n};\n","require('../../modules/es.object.define-properties');\nvar path = require('../../internals/path');\n\nvar Object = path.Object;\n\nvar defineProperties = module.exports = function defineProperties(T, D) {\n return Object.defineProperties(T, D);\n};\n\nif (Object.defineProperties.sham) defineProperties.sham = true;\n","require('../../modules/es.object.define-property');\nvar path = require('../../internals/path');\n\nvar Object = path.Object;\n\nvar defineProperty = module.exports = function defineProperty(it, key, desc) {\n return Object.defineProperty(it, key, desc);\n};\n\nif (Object.defineProperty.sham) defineProperty.sham = true;\n","require('../../modules/es.object.entries');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.entries;\n","require('../../modules/es.array.iterator');\nrequire('../../modules/es.object.from-entries');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.fromEntries;\n","require('../../modules/es.object.get-own-property-descriptor');\nvar path = require('../../internals/path');\n\nvar Object = path.Object;\n\nvar getOwnPropertyDescriptor = module.exports = function getOwnPropertyDescriptor(it, key) {\n return Object.getOwnPropertyDescriptor(it, key);\n};\n\nif (Object.getOwnPropertyDescriptor.sham) getOwnPropertyDescriptor.sham = true;\n","require('../../modules/es.object.get-own-property-descriptors');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.getOwnPropertyDescriptors;\n","require('../../modules/es.symbol');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.getOwnPropertySymbols;\n","require('../../modules/es.object.keys');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.keys;\n","require('../../modules/es.aggregate-error');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.all-settled');\nrequire('../../modules/es.promise.any');\nrequire('../../modules/es.promise.finally');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Promise;\n","require('../../modules/es.array.concat');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.symbol');\nrequire('../../modules/es.symbol.async-iterator');\nrequire('../../modules/es.symbol.description');\nrequire('../../modules/es.symbol.has-instance');\nrequire('../../modules/es.symbol.is-concat-spreadable');\nrequire('../../modules/es.symbol.iterator');\nrequire('../../modules/es.symbol.match');\nrequire('../../modules/es.symbol.match-all');\nrequire('../../modules/es.symbol.replace');\nrequire('../../modules/es.symbol.search');\nrequire('../../modules/es.symbol.species');\nrequire('../../modules/es.symbol.split');\nrequire('../../modules/es.symbol.to-primitive');\nrequire('../../modules/es.symbol.to-string-tag');\nrequire('../../modules/es.symbol.unscopables');\nrequire('../../modules/es.json.to-string-tag');\nrequire('../../modules/es.math.to-string-tag');\nrequire('../../modules/es.reflect.to-string-tag');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Symbol;\n","require('../../modules/es.symbol.iterator');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/web.dom-collections.iterator');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('iterator');\n","var parent = require('../../es/array/from');\n\nmodule.exports = parent;\n","var parent = require('../../es/array/is-array');\n\nmodule.exports = parent;\n","require('../modules/web.dom-collections.iterator');\nrequire('../modules/es.string.iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = getIteratorMethod;\n","require('../modules/web.dom-collections.iterator');\nrequire('../modules/es.string.iterator');\nvar getIterator = require('../internals/get-iterator');\n\nmodule.exports = getIterator;\n","var parent = require('../../es/instance/index-of');\n\nmodule.exports = parent;\n","var parent = require('../../es/instance/slice');\n\nmodule.exports = parent;\n","var parent = require('../../es/object/define-property');\n\nmodule.exports = parent;\n","var parent = require('../../es/object/get-own-property-symbols');\n\nmodule.exports = parent;\n","var parent = require('../../es/object/keys');\n\nmodule.exports = parent;\n","var parent = require('../../es/promise');\nrequire('../../modules/esnext.aggregate-error');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.promise.all-settled');\nrequire('../../modules/esnext.promise.try');\nrequire('../../modules/esnext.promise.any');\n\nmodule.exports = parent;\n","var parent = require('../../es/symbol');\nrequire('../../modules/esnext.symbol.async-dispose');\nrequire('../../modules/esnext.symbol.dispose');\nrequire('../../modules/esnext.symbol.matcher');\nrequire('../../modules/esnext.symbol.metadata');\nrequire('../../modules/esnext.symbol.observable');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.symbol.pattern-match');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.symbol.replace-all');\n\nmodule.exports = parent;\n","var parent = require('../../es/symbol/iterator');\n\nmodule.exports = parent;\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","module.exports = function () { /* empty */ };\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_OUT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push.call(target, value); // filterOut\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterOut` method\n // https://github.com/tc39/proposal-array-filtering\n filterOut: createMethod(7)\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","module.exports = typeof window == 'object';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","var path = require('../internals/path');\n\nmodule.exports = function (CONSTRUCTOR) {\n return path[CONSTRUCTOR + 'Prototype'];\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar isForced = require('../internals/is-forced');\nvar path = require('../internals/path');\nvar bind = require('../internals/function-bind-context');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\n\nvar wrapConstructor = function (NativeConstructor) {\n var Wrapper = function (a, b, c) {\n if (this instanceof NativeConstructor) {\n switch (arguments.length) {\n case 0: return new NativeConstructor();\n case 1: return new NativeConstructor(a);\n case 2: return new NativeConstructor(a, b);\n } return new NativeConstructor(a, b, c);\n } return NativeConstructor.apply(this, arguments);\n };\n Wrapper.prototype = NativeConstructor.prototype;\n return Wrapper;\n};\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var PROTO = options.proto;\n\n var nativeSource = GLOBAL ? global : STATIC ? global[TARGET] : (global[TARGET] || {}).prototype;\n\n var target = GLOBAL ? path : path[TARGET] || (path[TARGET] = {});\n var targetPrototype = target.prototype;\n\n var FORCED, USE_NATIVE, VIRTUAL_PROTOTYPE;\n var key, sourceProperty, targetProperty, nativeProperty, resultProperty, descriptor;\n\n for (key in source) {\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contains in native\n USE_NATIVE = !FORCED && nativeSource && has(nativeSource, key);\n\n targetProperty = target[key];\n\n if (USE_NATIVE) if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(nativeSource, key);\n nativeProperty = descriptor && descriptor.value;\n } else nativeProperty = nativeSource[key];\n\n // export native or implementation\n sourceProperty = (USE_NATIVE && nativeProperty) ? nativeProperty : source[key];\n\n if (USE_NATIVE && typeof targetProperty === typeof sourceProperty) continue;\n\n // bind timers to global for call from export context\n if (options.bind && USE_NATIVE) resultProperty = bind(sourceProperty, global);\n // wrap global constructors for prevent changs in this version\n else if (options.wrap && USE_NATIVE) resultProperty = wrapConstructor(sourceProperty);\n // make static versions for prototype methods\n else if (PROTO && typeof sourceProperty == 'function') resultProperty = bind(Function.call, sourceProperty);\n // default case\n else resultProperty = sourceProperty;\n\n // add a flag to not completely full polyfills\n if (options.sham || (sourceProperty && sourceProperty.sham) || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(resultProperty, 'sham', true);\n }\n\n target[key] = resultProperty;\n\n if (PROTO) {\n VIRTUAL_PROTOTYPE = TARGET + 'Prototype';\n if (!has(path, VIRTUAL_PROTOTYPE)) {\n createNonEnumerableProperty(path, VIRTUAL_PROTOTYPE, {});\n }\n // export virtual prototype methods\n path[VIRTUAL_PROTOTYPE][key] = sourceProperty;\n // export real prototype methods\n if (options.real && targetPrototype && !targetPrototype[key]) {\n createNonEnumerableProperty(targetPrototype, key, sourceProperty);\n }\n }\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it) {\n var iteratorMethod = getIteratorMethod(it);\n if (typeof iteratorMethod != 'function') {\n throw TypeError(String(it) + ' is not iterable');\n } return anObject(iteratorMethod.call(it));\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var toObject = require('../internals/to-object');\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n","module.exports = {};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = true;\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject -- old IE */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","/* eslint-disable no-proto -- safe */\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","module.exports = {};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) {\n if (options && options.unsafe && target[key]) target[key] = src[key];\n else redefine(target, key, src[key], options);\n } return target;\n};\n","var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (target, key, value, options) {\n if (options && options.enumerable) target[key] = value;\n else createNonEnumerableProperty(target, key, value);\n};\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineProperty = require('../internals/object-define-property').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar toString = require('../internals/object-to-string');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC, SET_METHOD) {\n if (it) {\n var target = STATIC ? it : it.prototype;\n if (!has(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n if (SET_METHOD && !TO_STRING_TAG_SUPPORT) {\n createNonEnumerableProperty(target, 'toString', toString);\n }\n }\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.15.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line max-statements -- TODO\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n for (var k = base; /* no condition */; k += base) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join('');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n }\n return encoded.join('.');\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins -- safe\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func -- spec requirement\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && has(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar iterate = require('../internals/iterate');\n\nvar $AggregateError = function AggregateError(errors, message) {\n var that = this;\n if (!(that instanceof $AggregateError)) return new $AggregateError(errors, message);\n if (setPrototypeOf) {\n // eslint-disable-next-line unicorn/error-message -- expected\n that = setPrototypeOf(new Error(undefined), getPrototypeOf(that));\n }\n if (message !== undefined) createNonEnumerableProperty(that, 'message', String(message));\n var errorsArray = [];\n iterate(errors, errorsArray.push, { that: errorsArray });\n createNonEnumerableProperty(that, 'errors', errorsArray);\n return that;\n};\n\n$AggregateError.prototype = create(Error.prototype, {\n constructor: createPropertyDescriptor(5, $AggregateError),\n message: createPropertyDescriptor(5, ''),\n name: createPropertyDescriptor(5, 'AggregateError')\n});\n\n// `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n$({ global: true }, {\n AggregateError: $AggregateError\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\n// `Array.isArray` method\n// https://tc39.es/ecma262/#sec-array.isarray\n$({ target: 'Array', stat: true }, {\n isArray: isArray\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar fails = require('../internals/fails');\n\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar re = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar fix = function (match, offset, string) {\n var prev = string.charAt(offset - 1);\n var next = string.charAt(offset + 1);\n if ((low.test(match) && !hi.test(next)) || (hi.test(match) && !low.test(prev))) {\n return '\\\\u' + match.charCodeAt(0).toString(16);\n } return match;\n};\n\nvar FORCED = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n // https://github.com/tc39/proposal-well-formed-stringify\n $({ target: 'JSON', stat: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var result = $stringify.apply(null, arguments);\n return typeof result == 'string' ? result.replace(re, fix) : result;\n }\n });\n}\n","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperties = require('../internals/object-define-properties');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {\n defineProperties: defineProperties\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar objectDefinePropertyModile = require('../internals/object-define-property');\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\n$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {\n defineProperty: objectDefinePropertyModile.f\n});\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","var $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://github.com/tc39/proposal-object-from-entries\n$({ target: 'Object', stat: true }, {\n fromEntries: function fromEntries(iterable) {\n var obj = {};\n iterate(iterable, function (k, v) {\n createProperty(obj, k, v);\n }, { AS_ENTRIES: true });\n return obj;\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (error) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: error };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar getBuiltIn = require('../internals/get-built-in');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\nvar PROMISE_ANY_ERROR = 'No one promise resolved';\n\n// `Promise.any` method\n// https://tc39.es/ecma262/#sec-promise.any\n$({ target: 'Promise', stat: true }, {\n any: function any(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aFunction(C.resolve);\n var errors = [];\n var counter = 0;\n var remaining = 1;\n var alreadyResolved = false;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyRejected = false;\n errors.push(undefined);\n remaining++;\n promiseResolve.call(C, promise).then(function (value) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyResolved = true;\n resolve(value);\n }, function (error) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyRejected = true;\n errors[index] = error;\n --remaining || reject(new (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR));\n });\n });\n --remaining || reject(new (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR));\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && typeof NativePromise == 'function') {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromise.prototype['finally'] !== method) {\n redefine(NativePromise.prototype, 'finally', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar NativePromisePrototype = NativePromise && NativePromise.prototype;\nvar PromiseConstructor = NativePromise;\nvar PromiseConstructorPrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = typeof PromiseRejectionEvent == 'function';\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar SUBCLASSING = false;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructorPrototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = new PromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_REJECTION_EVENT;\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n task.call(global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n task.call(global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n PromiseConstructorPrototype = PromiseConstructor.prototype;\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructorPrototype, {\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.es/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function' && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\n redefine(NativePromisePrototype, 'catch', PromiseConstructorPrototype['catch'], { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromiseConstructorPrototype);\n }\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.es/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.es/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.es/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.es/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.hasInstance` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.hasinstance\ndefineWellKnownSymbol('hasInstance');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.isconcatspreadable\ndefineWellKnownSymbol('isConcatSpreadable');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPrimitive(P, true);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPrimitive(V, true);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPrimitive(P, true);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.es/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = String(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.es/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.es/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.matchAll` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.matchall\ndefineWellKnownSymbol('matchAll');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.match` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.match\ndefineWellKnownSymbol('match');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.replace` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.replace\ndefineWellKnownSymbol('replace');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.search` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.search\ndefineWellKnownSymbol('search');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.species` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.split` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.split\ndefineWellKnownSymbol('split');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.unscopables` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.unscopables\ndefineWellKnownSymbol('unscopables');\n","// TODO: Remove from `core-js@4`\nrequire('./es.aggregate-error');\n","// TODO: Remove from `core-js@4`\nrequire('./es.promise.all-settled.js');\n","// TODO: Remove from `core-js@4`\nrequire('./es.promise.any');\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\n\n// `Promise.try` method\n// https://github.com/tc39/proposal-promise-try\n$({ target: 'Promise', stat: true }, {\n 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapabilityModule.f(this);\n var result = perform(callbackfn);\n (result.error ? promiseCapability.reject : promiseCapability.resolve)(result.value);\n return promiseCapability.promise;\n }\n});\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.asyncDispose` well-known symbol\n// https://github.com/tc39/proposal-using-statement\ndefineWellKnownSymbol('asyncDispose');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.dispose` well-known symbol\n// https://github.com/tc39/proposal-using-statement\ndefineWellKnownSymbol('dispose');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.matcher` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('matcher');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.metadata` well-known symbol\n// https://github.com/tc39/proposal-decorators\ndefineWellKnownSymbol('metadata');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.observable` well-known symbol\n// https://github.com/tc39/proposal-observable\ndefineWellKnownSymbol('observable');\n","// TODO: remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.patternMatch` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('patternMatch');\n","// TODO: remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\ndefineWellKnownSymbol('replaceAll');\n","require('./es.array.iterator');\nvar DOMIterables = require('../internals/dom-iterables');\nvar global = require('../internals/global');\nvar classof = require('../internals/classof');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype && classof(CollectionPrototype) !== TO_STRING_TAG) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n Iterators[COLLECTION_NAME] = Iterators.Array;\n}\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $fetch = getBuiltIn('fetch');\nvar Headers = getBuiltIn('Headers');\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = it.replace(plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = result.replace(percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replace[match];\n};\n\nvar serialize = function (it) {\n return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n if (query) {\n var attributes = query.split('&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = attribute.split('=');\n result.push({\n key: deserialize(entry.shift()),\n value: deserialize(entry.join('='))\n });\n }\n }\n }\n};\n\nvar updateSearchParams = function (query) {\n this.entries.length = 0;\n parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var that = this;\n var entries = [];\n var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;\n\n setInternalState(that, {\n type: URL_SEARCH_PARAMS,\n entries: entries,\n updateURL: function () { /* empty */ },\n updateSearchParams: updateSearchParams\n });\n\n if (init !== undefined) {\n if (isObject(init)) {\n iteratorMethod = getIteratorMethod(init);\n if (typeof iteratorMethod === 'function') {\n iterator = iteratorMethod.call(init);\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = entryNext.call(entryIterator)).done ||\n (second = entryNext.call(entryIterator)).done ||\n !entryNext.call(entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n entries.push({ key: first.value + '', value: second.value + '' });\n }\n } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });\n } else {\n parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n }\n }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n state.entries.push({ key: name + '', value: value + '' });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) entries.splice(index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) result.push(entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = name + '';\n var val = value + '';\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) entries.splice(index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) entries.push({ key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n var entries = state.entries;\n // Array#sort is not stable in some engines\n var slice = entries.slice();\n var entry, entriesIndex, sliceIndex;\n entries.length = 0;\n for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n entry = slice[sliceIndex];\n for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n if (entries[entriesIndex].key > entry.key) {\n entries.splice(entriesIndex, 0, entry);\n break;\n }\n }\n if (entriesIndex === sliceIndex) entries.push(entry);\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n var entries = getInternalParamsState(this).entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n result.push(serialize(entry.key) + '=' + serialize(entry.value));\n } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` for correct work with polyfilled `URLSearchParams`\n// https://github.com/zloirock/core-js/issues/674\nif (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') {\n $({ global: true, enumerable: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n var args = [input];\n var init, body, headers;\n if (arguments.length > 1) {\n init = arguments[1];\n if (isObject(init)) {\n body = init.body;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headers.has('content-type')) {\n headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n init = create(init, {\n body: createPropertyDescriptor(0, String(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n }\n args.push(init);\n } return $fetch.apply(this, args);\n }\n });\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n/* eslint-disable no-control-regex -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable no-control-regex -- safe */\nvar EOF;\n\nvar parseHost = function (url, input) {\n var result, codePoints, index;\n if (input.charAt(0) == '[') {\n if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(input.slice(1, -1));\n if (!result) return INVALID_HOST;\n url.host = result;\n // opaque host\n } else if (!isSpecial(url)) {\n if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n url.host = result;\n } else {\n input = toASCII(input);\n if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n url.host = result;\n }\n};\n\nvar parseIPv4 = function (input) {\n var parts = input.split('.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.pop();\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && part.charAt(0) == '0') {\n radix = HEX_START.test(part) ? 16 : 8;\n part = part.slice(radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n number = parseInt(part, radix);\n }\n numbers.push(number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = numbers.pop();\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var char = function () {\n return input.charAt(pointer);\n };\n\n if (char() == ':') {\n if (input.charAt(1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (char()) {\n if (pieceIndex == 8) return;\n if (char() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && HEX.test(char())) {\n value = value * 16 + parseInt(char(), 16);\n pointer++;\n length++;\n }\n if (char() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (char()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (char() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!DIGIT.test(char())) return;\n while (DIGIT.test(char())) {\n number = parseInt(char(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (char() == ':') {\n pointer++;\n if (!char()) return;\n } else if (char()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n result.unshift(host % 256);\n host = floor(host / 256);\n } return result.join('.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += host[index].toString(16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n var code = codeAt(char, 0);\n return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nvar isSpecial = function (url) {\n return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && ALPHA.test(string.charAt(0))\n && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n string.length == 2 ||\n ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\nvar shortenURLsPath = function (url) {\n var path = url.path;\n var pathSize = path.length;\n if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.pop();\n }\n};\n\nvar isSingleDot = function (segment) {\n return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n segment = segment.toLowerCase();\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseURL = function (url, input, stateOverride, base) {\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, char, bufferCodePoints, failure;\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = input.replace(TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n char = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (char && ALPHA.test(char)) {\n buffer += char.toLowerCase();\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n buffer += char.toLowerCase();\n } else if (char == ':') {\n if (stateOverride && (\n (isSpecial(url) != has(specialSchemes, buffer)) ||\n (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (isSpecial(url)) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n url.path.push('');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && char == '#') {\n url.scheme = base.scheme;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (char == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (char == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (char == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n state = RELATIVE_SLASH;\n } else if (char == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.path.pop();\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (char == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (char != '/' && char != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (char == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += char;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (char == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (isSpecial(url) && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (char == '[') seenBracket = true;\n else if (char == ']') seenBracket = false;\n buffer += char;\n } break;\n\n case PORT:\n if (DIGIT.test(char)) {\n buffer += char;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url)) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (char == '/' || char == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (char == EOF) {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '?') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n url.host = base.host;\n url.path = base.path.slice();\n shortenURLsPath(url);\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (char == '/' || char == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = parseHost(url, buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += char;\n break;\n\n case PATH_START:\n if (isSpecial(url)) {\n state = PATH;\n if (char != '/' && char != '\\\\') continue;\n } else if (!stateOverride && char == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n state = PATH;\n if (char != '/') continue;\n } break;\n\n case PATH:\n if (\n char == EOF || char == '/' ||\n (char == '\\\\' && isSpecial(url)) ||\n (!stateOverride && (char == '?' || char == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n shortenURLsPath(url);\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else if (isSingleDot(buffer)) {\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n }\n url.path.push(buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n url.path.shift();\n }\n }\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(char, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n if (char == \"'\" && isSpecial(url)) url.query += '%27';\n else if (char == '#') url.query += '%23';\n else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLConstructor, 'URL');\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var urlString = String(url);\n var state = setInternalState(that, { type: 'URL' });\n var baseState, failure;\n if (base !== undefined) {\n if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n else {\n failure = parseURL(baseState = {}, String(base));\n if (failure) throw TypeError(failure);\n }\n }\n failure = parseURL(state, urlString, null, baseState);\n if (failure) throw TypeError(failure);\n var searchParams = state.searchParams = new URLSearchParams();\n var searchParamsState = getInternalSearchParamsState(searchParams);\n searchParamsState.updateSearchParams(state.query);\n searchParamsState.updateURL = function () {\n state.query = String(searchParams) || null;\n };\n if (!DESCRIPTORS) {\n that.href = serializeURL.call(that);\n that.origin = getOrigin.call(that);\n that.protocol = getProtocol.call(that);\n that.username = getUsername.call(that);\n that.password = getPassword.call(that);\n that.host = getHost.call(that);\n that.hostname = getHostname.call(that);\n that.port = getPort.call(that);\n that.pathname = getPathname.call(that);\n that.search = getSearch.call(that);\n that.searchParams = getSearchParams.call(that);\n that.hash = getHash.call(that);\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (includesCredentials(url)) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n};\n\nvar getOrigin = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var port = url.port;\n if (scheme == 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !isSpecial(url)) return 'null';\n return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n var url = getInternalURLState(this);\n var host = url.host;\n var port = url.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n var host = getInternalURLState(this).host;\n return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n var port = getInternalURLState(this).port;\n return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n var url = getInternalURLState(this);\n var path = url.path;\n return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n var query = getInternalURLState(this).query;\n return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n var fragment = getInternalURLState(this).fragment;\n return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor(serializeURL, function (href) {\n var url = getInternalURLState(this);\n var urlString = String(href);\n var failure = parseURL(url, urlString);\n if (failure) throw TypeError(failure);\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor(getOrigin),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor(getProtocol, function (protocol) {\n var url = getInternalURLState(this);\n parseURL(url, String(protocol) + ':', SCHEME_START);\n }),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor(getUsername, function (username) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(username));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor(getPassword, function (password) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(password));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor(getHost, function (host) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(host), HOST);\n }),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor(getHostname, function (hostname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(hostname), HOSTNAME);\n }),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor(getPort, function (port) {\n var url = getInternalURLState(this);\n if (cannotHaveUsernamePasswordPort(url)) return;\n port = String(port);\n if (port == '') url.port = null;\n else parseURL(url, port, PORT);\n }),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor(getPathname, function (pathname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n url.path = [];\n parseURL(url, pathname + '', PATH_START);\n }),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor(getSearch, function (search) {\n var url = getInternalURLState(this);\n search = String(search);\n if (search == '') {\n url.query = null;\n } else {\n if ('?' == search.charAt(0)) search = search.slice(1);\n url.query = '';\n parseURL(url, search, QUERY);\n }\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor(getSearchParams),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor(getHash, function (hash) {\n var url = getInternalURLState(this);\n hash = String(hash);\n if (hash == '') {\n url.fragment = null;\n return;\n }\n if ('#' == hash.charAt(0)) hash = hash.slice(1);\n url.fragment = '';\n parseURL(url, hash, FRAGMENT);\n })\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n return nativeCreateObjectURL.apply(NativeURL, arguments);\n });\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n return nativeRevokeObjectURL.apply(NativeURL, arguments);\n });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","var parent = require('../../es/array/from');\n\nmodule.exports = parent;\n","var parent = require('../../es/array/is-array');\n\nmodule.exports = parent;\n","var parent = require('../../../es/array/virtual/for-each');\n\nmodule.exports = parent;\n","var parent = require('../../es/instance/concat');\n\nmodule.exports = parent;\n","var parent = require('../../es/instance/filter');\n\nmodule.exports = parent;\n","var parent = require('../../es/instance/find');\n\nmodule.exports = parent;\n","require('../../modules/web.dom-collections.iterator');\nvar forEach = require('../array/virtual/for-each');\nvar classof = require('../../internals/classof');\nvar ArrayPrototype = Array.prototype;\n\nvar DOMIterables = {\n DOMTokenList: true,\n NodeList: true\n};\n\nmodule.exports = function (it) {\n var own = it.forEach;\n return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.forEach)\n // eslint-disable-next-line no-prototype-builtins -- safe\n || DOMIterables.hasOwnProperty(classof(it)) ? forEach : own;\n};\n","var parent = require('../../es/instance/index-of');\n\nmodule.exports = parent;\n","var parent = require('../../es/instance/map');\n\nmodule.exports = parent;\n","var parent = require('../../es/instance/slice');\n\nmodule.exports = parent;\n","var parent = require('../../es/json/stringify');\n\nmodule.exports = parent;\n","var parent = require('../../es/object/define-properties');\n\nmodule.exports = parent;\n","var parent = require('../../es/object/define-property');\n\nmodule.exports = parent;\n","var parent = require('../../es/object/entries');\n\nmodule.exports = parent;\n","var parent = require('../../es/object/from-entries');\n\nmodule.exports = parent;\n","var parent = require('../../es/object/get-own-property-descriptor');\n\nmodule.exports = parent;\n","var parent = require('../../es/object/get-own-property-descriptors');\n\nmodule.exports = parent;\n","var parent = require('../../es/object/get-own-property-symbols');\n\nmodule.exports = parent;\n","var parent = require('../../es/object/keys');\n\nmodule.exports = parent;\n","var parent = require('../../es/promise');\n\nmodule.exports = parent;\n","var parent = require('../../es/symbol');\n\nmodule.exports = parent;\n","var parent = require('../../web/url');\n\nmodule.exports = parent;\n","require('../modules/web.url');\nrequire('../modules/web.url.to-json');\nrequire('../modules/web.url-search-params');\nvar path = require('../internals/path');\n\nmodule.exports = path.URL;\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n redefine(String.prototype, KEY, methods[0]);\n redefine(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var toObject = require('../internals/to-object');\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n","module.exports = {};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = false;\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject -- old IE */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","'use strict';\n/* eslint-disable regexp/no-assertion-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeExec = RegExp.prototype.exec;\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n // eslint-disable-next-line max-statements -- TODO\n patchedExec = function exec(str) {\n var re = this;\n var state = getInternalState(re);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = patchedExec.call(raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var fails = require('../internals/fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\nvar RE = function (s, f) {\n return RegExp(s, f);\n};\n\nexports.UNSUPPORTED_Y = fails(function () {\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","var fails = require('./fails');\n\nmodule.exports = fails(function () {\n // babel-minify transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\n var re = RegExp('.', (typeof '').charAt(0));\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('./fails');\n\nmodule.exports = fails(function () {\n // babel-minify transpiles RegExp('.', 'g') -> /./g and it causes SyntaxError\n var re = RegExp('(?<a>b)', (typeof '').charAt(5));\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\n});\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.15.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && has(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n if (\n typeof replaceValue === 'string' &&\n replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1 &&\n replaceValue.indexOf('$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, this, string, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(this);\n var S = String(string);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","var global = typeof self !== 'undefined' ? self : this;\nvar __self__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = global.DOMException\n}\nF.prototype = global;\nreturn new F();\n})();\n(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n}({}));\n})(__self__);\n__self__.fetch.ponyfill = true;\n// Remove \"polyfill\" property added by whatwg-fetch\ndelete __self__.fetch.polyfill;\n// Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\nvar ctx = __self__; // this line disable service worker support temporarily\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function () {};\n\n return {\n s: F,\n n: function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function () {\n it = it.call(o);\n },\n n: function () {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function (e) {\n didErr = true;\n err = e;\n },\n f: function () {\n try {\n if (!normalCompletion && it.return != null) it.return();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\nvar hasOwnProp = Object.prototype.hasOwnProperty;\n/**\n* @typedef {null|boolean|number|string|PlainObject|GenericArray} JSONObject\n*/\n\n/**\n * Copies array and then pushes item into it.\n * @param {GenericArray} arr Array to copy and into which to push\n * @param {any} item Array item to add (to end)\n * @returns {GenericArray} Copy of the original array\n */\n\nfunction push(arr, item) {\n arr = arr.slice();\n arr.push(item);\n return arr;\n}\n/**\n * Copies array and then unshifts item into it.\n * @param {any} item Array item to add (to beginning)\n * @param {GenericArray} arr Array to copy and into which to unshift\n * @returns {GenericArray} Copy of the original array\n */\n\n\nfunction unshift(item, arr) {\n arr = arr.slice();\n arr.unshift(item);\n return arr;\n}\n/**\n * Caught when JSONPath is used without `new` but rethrown if with `new`\n * @extends Error\n */\n\n\nvar NewError = /*#__PURE__*/function (_Error) {\n _inherits(NewError, _Error);\n\n var _super = _createSuper(NewError);\n\n /**\n * @param {any} value The evaluated scalar value\n */\n function NewError(value) {\n var _this;\n\n _classCallCheck(this, NewError);\n\n _this = _super.call(this, 'JSONPath should not be called with \"new\" (it prevents return ' + 'of (unwrapped) scalar values)');\n _this.avoidNew = true;\n _this.value = value;\n _this.name = 'NewError';\n return _this;\n }\n\n return NewError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n/**\n* @typedef {PlainObject} ReturnObject\n* @property {string} path\n* @property {JSONObject} value\n* @property {PlainObject|GenericArray} parent\n* @property {string} parentProperty\n*/\n\n/**\n* @callback JSONPathCallback\n* @param {string|PlainObject} preferredOutput\n* @param {\"value\"|\"property\"} type\n* @param {ReturnObject} fullRetObj\n* @returns {void}\n*/\n\n/**\n* @callback OtherTypeCallback\n* @param {JSONObject} val\n* @param {string} path\n* @param {PlainObject|GenericArray} parent\n* @param {string} parentPropName\n* @returns {boolean}\n*/\n\n/* eslint-disable max-len -- Can make multiline type after https://github.com/syavorsky/comment-parser/issues/109 */\n\n/**\n * @typedef {PlainObject} JSONPathOptions\n * @property {JSON} json\n * @property {string|string[]} path\n * @property {\"value\"|\"path\"|\"pointer\"|\"parent\"|\"parentProperty\"|\"all\"} [resultType=\"value\"]\n * @property {boolean} [flatten=false]\n * @property {boolean} [wrap=true]\n * @property {PlainObject} [sandbox={}]\n * @property {boolean} [preventEval=false]\n * @property {PlainObject|GenericArray|null} [parent=null]\n * @property {string|null} [parentProperty=null]\n * @property {JSONPathCallback} [callback]\n * @property {OtherTypeCallback} [otherTypeCallback] Defaults to\n * function which throws on encountering `@other`\n * @property {boolean} [autostart=true]\n */\n\n/* eslint-enable max-len -- Can make multiline type after https://github.com/syavorsky/comment-parser/issues/109 */\n\n/**\n * @param {string|JSONPathOptions} opts If a string, will be treated as `expr`\n * @param {string} [expr] JSON path to evaluate\n * @param {JSON} [obj] JSON object to evaluate against\n * @param {JSONPathCallback} [callback] Passed 3 arguments: 1) desired payload\n * per `resultType`, 2) `\"value\"|\"property\"`, 3) Full returned object with\n * all payloads\n * @param {OtherTypeCallback} [otherTypeCallback] If `@other()` is at the end\n * of one's query, this will be invoked with the value of the item, its\n * path, its parent, and its parent's property name, and it should return\n * a boolean indicating whether the supplied value belongs to the \"other\"\n * type or not (or it may handle transformations and return `false`).\n * @returns {JSONPath}\n * @class\n */\n\n\nfunction JSONPath(opts, expr, obj, callback, otherTypeCallback) {\n // eslint-disable-next-line no-restricted-syntax\n if (!(this instanceof JSONPath)) {\n try {\n return new JSONPath(opts, expr, obj, callback, otherTypeCallback);\n } catch (e) {\n if (!e.avoidNew) {\n throw e;\n }\n\n return e.value;\n }\n }\n\n if (typeof opts === 'string') {\n otherTypeCallback = callback;\n callback = obj;\n obj = expr;\n expr = opts;\n opts = null;\n }\n\n var optObj = opts && _typeof(opts) === 'object';\n opts = opts || {};\n this.json = opts.json || obj;\n this.path = opts.path || expr;\n this.resultType = opts.resultType || 'value';\n this.flatten = opts.flatten || false;\n this.wrap = hasOwnProp.call(opts, 'wrap') ? opts.wrap : true;\n this.sandbox = opts.sandbox || {};\n this.preventEval = opts.preventEval || false;\n this.parent = opts.parent || null;\n this.parentProperty = opts.parentProperty || null;\n this.callback = opts.callback || callback || null;\n\n this.otherTypeCallback = opts.otherTypeCallback || otherTypeCallback || function () {\n throw new TypeError('You must supply an otherTypeCallback callback option ' + 'with the @other() operator.');\n };\n\n if (opts.autostart !== false) {\n var args = {\n path: optObj ? opts.path : expr\n };\n\n if (!optObj) {\n args.json = obj;\n } else if ('json' in opts) {\n args.json = opts.json;\n }\n\n var ret = this.evaluate(args);\n\n if (!ret || _typeof(ret) !== 'object') {\n throw new NewError(ret);\n }\n\n return ret;\n }\n} // PUBLIC METHODS\n\n\nJSONPath.prototype.evaluate = function (expr, json, callback, otherTypeCallback) {\n var _this2 = this;\n\n var currParent = this.parent,\n currParentProperty = this.parentProperty;\n var flatten = this.flatten,\n wrap = this.wrap;\n this.currResultType = this.resultType;\n this.currPreventEval = this.preventEval;\n this.currSandbox = this.sandbox;\n callback = callback || this.callback;\n this.currOtherTypeCallback = otherTypeCallback || this.otherTypeCallback;\n json = json || this.json;\n expr = expr || this.path;\n\n if (expr && _typeof(expr) === 'object' && !Array.isArray(expr)) {\n if (!expr.path && expr.path !== '') {\n throw new TypeError('You must supply a \"path\" property when providing an object ' + 'argument to JSONPath.evaluate().');\n }\n\n if (!hasOwnProp.call(expr, 'json')) {\n throw new TypeError('You must supply a \"json\" property when providing an object ' + 'argument to JSONPath.evaluate().');\n }\n\n var _expr = expr;\n json = _expr.json;\n flatten = hasOwnProp.call(expr, 'flatten') ? expr.flatten : flatten;\n this.currResultType = hasOwnProp.call(expr, 'resultType') ? expr.resultType : this.currResultType;\n this.currSandbox = hasOwnProp.call(expr, 'sandbox') ? expr.sandbox : this.currSandbox;\n wrap = hasOwnProp.call(expr, 'wrap') ? expr.wrap : wrap;\n this.currPreventEval = hasOwnProp.call(expr, 'preventEval') ? expr.preventEval : this.currPreventEval;\n callback = hasOwnProp.call(expr, 'callback') ? expr.callback : callback;\n this.currOtherTypeCallback = hasOwnProp.call(expr, 'otherTypeCallback') ? expr.otherTypeCallback : this.currOtherTypeCallback;\n currParent = hasOwnProp.call(expr, 'parent') ? expr.parent : currParent;\n currParentProperty = hasOwnProp.call(expr, 'parentProperty') ? expr.parentProperty : currParentProperty;\n expr = expr.path;\n }\n\n currParent = currParent || null;\n currParentProperty = currParentProperty || null;\n\n if (Array.isArray(expr)) {\n expr = JSONPath.toPathString(expr);\n }\n\n if (!expr && expr !== '' || !json) {\n return undefined;\n }\n\n var exprList = JSONPath.toPathArray(expr);\n\n if (exprList[0] === '$' && exprList.length > 1) {\n exprList.shift();\n }\n\n this._hasParentSelector = null;\n\n var result = this._trace(exprList, json, ['$'], currParent, currParentProperty, callback).filter(function (ea) {\n return ea && !ea.isParentSelector;\n });\n\n if (!result.length) {\n return wrap ? [] : undefined;\n }\n\n if (!wrap && result.length === 1 && !result[0].hasArrExpr) {\n return this._getPreferredOutput(result[0]);\n }\n\n return result.reduce(function (rslt, ea) {\n var valOrPath = _this2._getPreferredOutput(ea);\n\n if (flatten && Array.isArray(valOrPath)) {\n rslt = rslt.concat(valOrPath);\n } else {\n rslt.push(valOrPath);\n }\n\n return rslt;\n }, []);\n}; // PRIVATE METHODS\n\n\nJSONPath.prototype._getPreferredOutput = function (ea) {\n var resultType = this.currResultType;\n\n switch (resultType) {\n case 'all':\n {\n var path = Array.isArray(ea.path) ? ea.path : JSONPath.toPathArray(ea.path);\n ea.pointer = JSONPath.toPointer(path);\n ea.path = typeof ea.path === 'string' ? ea.path : JSONPath.toPathString(ea.path);\n return ea;\n }\n\n case 'value':\n case 'parent':\n case 'parentProperty':\n return ea[resultType];\n\n case 'path':\n return JSONPath.toPathString(ea[resultType]);\n\n case 'pointer':\n return JSONPath.toPointer(ea.path);\n\n default:\n throw new TypeError('Unknown result type');\n }\n};\n\nJSONPath.prototype._handleCallback = function (fullRetObj, callback, type) {\n if (callback) {\n var preferredOutput = this._getPreferredOutput(fullRetObj);\n\n fullRetObj.path = typeof fullRetObj.path === 'string' ? fullRetObj.path : JSONPath.toPathString(fullRetObj.path); // eslint-disable-next-line node/callback-return\n\n callback(preferredOutput, type, fullRetObj);\n }\n};\n/**\n *\n * @param {string} expr\n * @param {JSONObject} val\n * @param {string} path\n * @param {PlainObject|GenericArray} parent\n * @param {string} parentPropName\n * @param {JSONPathCallback} callback\n * @param {boolean} hasArrExpr\n * @param {boolean} literalPriority\n * @returns {ReturnObject|ReturnObject[]}\n */\n\n\nJSONPath.prototype._trace = function (expr, val, path, parent, parentPropName, callback, hasArrExpr, literalPriority) {\n var _this3 = this;\n\n // No expr to follow? return path and value as the result of\n // this trace branch\n var retObj;\n\n if (!expr.length) {\n retObj = {\n path: path,\n value: val,\n parent: parent,\n parentProperty: parentPropName,\n hasArrExpr: hasArrExpr\n };\n\n this._handleCallback(retObj, callback, 'value');\n\n return retObj;\n }\n\n var loc = expr[0],\n x = expr.slice(1); // We need to gather the return value of recursive trace calls in order to\n // do the parent sel computation.\n\n var ret = [];\n /**\n *\n * @param {ReturnObject|ReturnObject[]} elems\n * @returns {void}\n */\n\n function addRet(elems) {\n if (Array.isArray(elems)) {\n // This was causing excessive stack size in Node (with or\n // without Babel) against our performance test:\n // `ret.push(...elems);`\n elems.forEach(function (t) {\n ret.push(t);\n });\n } else {\n ret.push(elems);\n }\n }\n\n if ((typeof loc !== 'string' || literalPriority) && val && hasOwnProp.call(val, loc)) {\n // simple case--directly follow property\n addRet(this._trace(x, val[loc], push(path, loc), val, loc, callback, hasArrExpr)); // eslint-disable-next-line unicorn/prefer-switch -- Part of larger `if`\n } else if (loc === '*') {\n // all child properties\n this._walk(loc, x, val, path, parent, parentPropName, callback, function (m, l, _x, v, p, par, pr, cb) {\n addRet(_this3._trace(unshift(m, _x), v, p, par, pr, cb, true, true));\n });\n } else if (loc === '..') {\n // all descendent parent properties\n // Check remaining expression with val's immediate children\n addRet(this._trace(x, val, path, parent, parentPropName, callback, hasArrExpr));\n\n this._walk(loc, x, val, path, parent, parentPropName, callback, function (m, l, _x, v, p, par, pr, cb) {\n // We don't join m and x here because we only want parents,\n // not scalar values\n if (_typeof(v[m]) === 'object') {\n // Keep going with recursive descent on val's\n // object children\n addRet(_this3._trace(unshift(l, _x), v[m], push(p, m), v, m, cb, true));\n }\n }); // The parent sel computation is handled in the frame above using the\n // ancestor object of val\n\n } else if (loc === '^') {\n // This is not a final endpoint, so we do not invoke the callback here\n this._hasParentSelector = true;\n return {\n path: path.slice(0, -1),\n expr: x,\n isParentSelector: true\n };\n } else if (loc === '~') {\n // property name\n retObj = {\n path: push(path, loc),\n value: parentPropName,\n parent: parent,\n parentProperty: null\n };\n\n this._handleCallback(retObj, callback, 'property');\n\n return retObj;\n } else if (loc === '$') {\n // root only\n addRet(this._trace(x, val, path, null, null, callback, hasArrExpr));\n } else if (/^(\\x2D?[0-9]*):(\\x2D?[0-9]*):?([0-9]*)$/.test(loc)) {\n // [start:end:step] Python slice syntax\n addRet(this._slice(loc, x, val, path, parent, parentPropName, callback));\n } else if (loc.indexOf('?(') === 0) {\n // [?(expr)] (filtering)\n if (this.currPreventEval) {\n throw new Error('Eval [?(expr)] prevented in JSONPath expression.');\n }\n\n this._walk(loc, x, val, path, parent, parentPropName, callback, function (m, l, _x, v, p, par, pr, cb) {\n if (_this3._eval(l.replace(/^\\?\\(((?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*?)\\)$/, '$1'), v[m], m, p, par, pr)) {\n addRet(_this3._trace(unshift(m, _x), v, p, par, pr, cb, true));\n }\n });\n } else if (loc[0] === '(') {\n // [(expr)] (dynamic property/index)\n if (this.currPreventEval) {\n throw new Error('Eval [(expr)] prevented in JSONPath expression.');\n } // As this will resolve to a property name (but we don't know it\n // yet), property and parent information is relative to the\n // parent of the property to which this expression will resolve\n\n\n addRet(this._trace(unshift(this._eval(loc, val, path[path.length - 1], path.slice(0, -1), parent, parentPropName), x), val, path, parent, parentPropName, callback, hasArrExpr));\n } else if (loc[0] === '@') {\n // value type: @boolean(), etc.\n var addType = false;\n var valueType = loc.slice(1, -2);\n\n switch (valueType) {\n case 'scalar':\n if (!val || !['object', 'function'].includes(_typeof(val))) {\n addType = true;\n }\n\n break;\n\n case 'boolean':\n case 'string':\n case 'undefined':\n case 'function':\n // eslint-disable-next-line valid-typeof\n if (_typeof(val) === valueType) {\n addType = true;\n }\n\n break;\n\n case 'integer':\n if (Number.isFinite(val) && !(val % 1)) {\n addType = true;\n }\n\n break;\n\n case 'number':\n if (Number.isFinite(val)) {\n addType = true;\n }\n\n break;\n\n case 'nonFinite':\n if (typeof val === 'number' && !Number.isFinite(val)) {\n addType = true;\n }\n\n break;\n\n case 'object':\n // eslint-disable-next-line valid-typeof\n if (val && _typeof(val) === valueType) {\n addType = true;\n }\n\n break;\n\n case 'array':\n if (Array.isArray(val)) {\n addType = true;\n }\n\n break;\n\n case 'other':\n addType = this.currOtherTypeCallback(val, path, parent, parentPropName);\n break;\n\n case 'null':\n if (val === null) {\n addType = true;\n }\n\n break;\n\n /* istanbul ignore next */\n\n default:\n throw new TypeError('Unknown value type ' + valueType);\n }\n\n if (addType) {\n retObj = {\n path: path,\n value: val,\n parent: parent,\n parentProperty: parentPropName\n };\n\n this._handleCallback(retObj, callback, 'value');\n\n return retObj;\n } // `-escaped property\n\n } else if (loc[0] === '`' && val && hasOwnProp.call(val, loc.slice(1))) {\n var locProp = loc.slice(1);\n addRet(this._trace(x, val[locProp], push(path, locProp), val, locProp, callback, hasArrExpr, true));\n } else if (loc.includes(',')) {\n // [name1,name2,...]\n var parts = loc.split(',');\n\n var _iterator = _createForOfIteratorHelper(parts),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var part = _step.value;\n addRet(this._trace(unshift(part, x), val, path, parent, parentPropName, callback, true));\n } // simple case--directly follow property\n\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n } else if (!literalPriority && val && hasOwnProp.call(val, loc)) {\n addRet(this._trace(x, val[loc], push(path, loc), val, loc, callback, hasArrExpr, true));\n } // We check the resulting values for parent selections. For parent\n // selections we discard the value object and continue the trace with the\n // current val object\n\n\n if (this._hasParentSelector) {\n for (var t = 0; t < ret.length; t++) {\n var rett = ret[t];\n\n if (rett && rett.isParentSelector) {\n var tmp = this._trace(rett.expr, val, rett.path, parent, parentPropName, callback, hasArrExpr);\n\n if (Array.isArray(tmp)) {\n ret[t] = tmp[0];\n var tl = tmp.length;\n\n for (var tt = 1; tt < tl; tt++) {\n t++;\n ret.splice(t, 0, tmp[tt]);\n }\n } else {\n ret[t] = tmp;\n }\n }\n }\n }\n\n return ret;\n};\n\nJSONPath.prototype._walk = function (loc, expr, val, path, parent, parentPropName, callback, f) {\n if (Array.isArray(val)) {\n var n = val.length;\n\n for (var i = 0; i < n; i++) {\n f(i, loc, expr, val, path, parent, parentPropName, callback);\n }\n } else if (val && _typeof(val) === 'object') {\n Object.keys(val).forEach(function (m) {\n f(m, loc, expr, val, path, parent, parentPropName, callback);\n });\n }\n};\n\nJSONPath.prototype._slice = function (loc, expr, val, path, parent, parentPropName, callback) {\n if (!Array.isArray(val)) {\n return undefined;\n }\n\n var len = val.length,\n parts = loc.split(':'),\n step = parts[2] && Number.parseInt(parts[2]) || 1;\n var start = parts[0] && Number.parseInt(parts[0]) || 0,\n end = parts[1] && Number.parseInt(parts[1]) || len;\n start = start < 0 ? Math.max(0, start + len) : Math.min(len, start);\n end = end < 0 ? Math.max(0, end + len) : Math.min(len, end);\n var ret = [];\n\n for (var i = start; i < end; i += step) {\n var tmp = this._trace(unshift(i, expr), val, path, parent, parentPropName, callback, true); // Should only be possible to be an array here since first part of\n // ``unshift(i, expr)` passed in above would not be empty, nor `~`,\n // nor begin with `@` (as could return objects)\n // This was causing excessive stack size in Node (with or\n // without Babel) against our performance test: `ret.push(...tmp);`\n\n\n tmp.forEach(function (t) {\n ret.push(t);\n });\n }\n\n return ret;\n};\n\nJSONPath.prototype._eval = function (code, _v, _vname, path, parent, parentPropName) {\n if (code.includes('@parentProperty')) {\n this.currSandbox._$_parentProperty = parentPropName;\n code = code.replace(/@parentProperty/g, '_$_parentProperty');\n }\n\n if (code.includes('@parent')) {\n this.currSandbox._$_parent = parent;\n code = code.replace(/@parent/g, '_$_parent');\n }\n\n if (code.includes('@property')) {\n this.currSandbox._$_property = _vname;\n code = code.replace(/@property/g, '_$_property');\n }\n\n if (code.includes('@path')) {\n this.currSandbox._$_path = JSONPath.toPathString(path.concat([_vname]));\n code = code.replace(/@path/g, '_$_path');\n }\n\n if (code.includes('@root')) {\n this.currSandbox._$_root = this.json;\n code = code.replace(/@root/g, '_$_root');\n }\n\n if (/@([\\t-\\r \\)\\.\\[\\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF])/.test(code)) {\n this.currSandbox._$_v = _v;\n code = code.replace(/@([\\t-\\r \\)\\.\\[\\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF])/g, '_$_v$1');\n }\n\n try {\n return this.vm.runInNewContext(code, this.currSandbox);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.log(e);\n throw new Error('jsonPath: ' + e.message + ': ' + code);\n }\n}; // PUBLIC CLASS PROPERTIES AND METHODS\n// Could store the cache object itself\n\n\nJSONPath.cache = {};\n/**\n * @param {string[]} pathArr Array to convert\n * @returns {string} The path string\n */\n\nJSONPath.toPathString = function (pathArr) {\n var x = pathArr,\n n = x.length;\n var p = '$';\n\n for (var i = 1; i < n; i++) {\n if (!/^(~|\\^|@(?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*?\\(\\))$/.test(x[i])) {\n p += /^[\\*0-9]+$/.test(x[i]) ? '[' + x[i] + ']' : \"['\" + x[i] + \"']\";\n }\n }\n\n return p;\n};\n/**\n * @param {string} pointer JSON Path\n * @returns {string} JSON Pointer\n */\n\n\nJSONPath.toPointer = function (pointer) {\n var x = pointer,\n n = x.length;\n var p = '';\n\n for (var i = 1; i < n; i++) {\n if (!/^(~|\\^|@(?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*?\\(\\))$/.test(x[i])) {\n p += '/' + x[i].toString().replace(/~/g, '~0').replace(/\\//g, '~1');\n }\n }\n\n return p;\n};\n/**\n * @param {string} expr Expression to convert\n * @returns {string[]}\n */\n\n\nJSONPath.toPathArray = function (expr) {\n var cache = JSONPath.cache;\n\n if (cache[expr]) {\n return cache[expr].concat();\n }\n\n var subx = [];\n var normalized = expr // Properties\n .replace(/@(?:null|boolean|number|string|integer|undefined|nonFinite|scalar|array|object|function|other)\\(\\)/g, ';$&;') // Parenthetical evaluations (filtering and otherwise), directly\n // within brackets or single quotes\n .replace(/['\\[](\\??\\((?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*?\\))['\\]]/g, function ($0, $1) {\n return '[#' + (subx.push($1) - 1) + ']';\n }) // Escape periods and tildes within properties\n .replace(/\\[[\"']((?:(?!['\\]])[\\s\\S])*)[\"']\\]/g, function ($0, prop) {\n return \"['\" + prop.replace(/\\./g, '%@%').replace(/~/g, '%%@@%%') + \"']\";\n }) // Properties operator\n .replace(/~/g, ';~;') // Split by property boundaries\n .replace(/[\"']?\\.[\"']?(?!(?:(?!\\[)[\\s\\S])*\\])|\\[[\"']?/g, ';') // Reinsert periods within properties\n .replace(/%@%/g, '.') // Reinsert tildes within properties\n .replace(/%%@@%%/g, '~') // Parent\n .replace(/(?:;)?(\\^+)(?:;)?/g, function ($0, ups) {\n return ';' + ups.split('').join(';') + ';';\n }) // Descendents\n .replace(/;;;|;;/g, ';..;') // Remove trailing\n .replace(/;$|'?\\]|'$/g, '');\n var exprList = normalized.split(';').map(function (exp) {\n var match = exp.match(/#([0-9]+)/);\n return !match || !match[1] ? exp : subx[match[1]];\n });\n cache[expr] = exprList;\n return cache[expr].concat();\n};\n\n/**\n* @callback ConditionCallback\n* @param {any} item\n* @returns {boolean}\n*/\n\n/**\n * Copy items out of one array into another.\n * @param {GenericArray} source Array with items to copy\n * @param {GenericArray} target Array to which to copy\n * @param {ConditionCallback} conditionCb Callback passed the current item;\n * will move item if evaluates to `true`\n * @returns {void}\n */\n\nvar moveToAnotherArray = function moveToAnotherArray(source, target, conditionCb) {\n var il = source.length;\n\n for (var i = 0; i < il; i++) {\n var item = source[i];\n\n if (conditionCb(item)) {\n target.push(source.splice(i--, 1)[0]);\n }\n }\n};\n\nJSONPath.prototype.vm = {\n /**\n * @param {string} expr Expression to evaluate\n * @param {PlainObject} context Object whose items will be added\n * to evaluation\n * @returns {any} Result of evaluated code\n */\n runInNewContext: function runInNewContext(expr, context) {\n var keys = Object.keys(context);\n var funcs = [];\n moveToAnotherArray(keys, funcs, function (key) {\n return typeof context[key] === 'function';\n });\n var values = keys.map(function (vr, i) {\n return context[vr];\n });\n var funcString = funcs.reduce(function (s, func) {\n var fString = context[func].toString();\n\n if (!/function/.test(fString)) {\n fString = 'function ' + fString;\n }\n\n return 'var ' + func + '=' + fString + ';' + s;\n }, '');\n expr = funcString + expr; // Mitigate http://perfectionkills.com/global-eval-what-are-the-options/#new_function\n\n if (!/([\"'])use strict\\1/.test(expr) && !keys.includes('arguments')) {\n expr = 'var arguments = undefined;' + expr;\n } // Remove last semi so `return` will be inserted before\n // the previous one instead, allowing for the return\n // of a bare ending expression\n\n\n expr = expr.replace(/;[\\t-\\r \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]*$/, ''); // Insert `return`\n\n var lastStatementEnd = expr.lastIndexOf(';');\n var code = lastStatementEnd > -1 ? expr.slice(0, lastStatementEnd + 1) + ' return ' + expr.slice(lastStatementEnd + 1) : ' return ' + expr; // eslint-disable-next-line no-new-func\n\n return _construct(Function, _toConsumableArray(keys).concat([code])).apply(void 0, _toConsumableArray(values));\n }\n};\n\nexport { JSONPath };\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","function E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\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 */\nexport default class CustomError extends Error {\n constructor(message) {\n // https://stackoverflow.com/questions/41102060/typescript-extending-error-class\n super(message); // 'Error' breaks prototype chain here\n Object.setPrototypeOf(this, new.target.prototype); // restore prototype chain\n }\n}\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 */\nimport CustomError from './CustomError';\nexport default class AuthApiError extends CustomError {\n constructor(err, xhr) {\n const message = err.errorSummary;\n super(message);\n this.name = 'AuthApiError';\n this.errorSummary = err.errorSummary;\n this.errorCode = err.errorCode;\n this.errorLink = err.errorLink;\n this.errorId = err.errorId;\n this.errorCauses = err.errorCauses;\n if (xhr) {\n this.xhr = xhr;\n }\n }\n}\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 */\nimport CustomError from './CustomError';\nexport default class AuthPollStopError extends CustomError {\n constructor() {\n const message = 'The poll was stopped by the sdk';\n super(message);\n }\n}\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 */\nimport CustomError from './CustomError';\nexport default class AuthSdkError extends CustomError {\n constructor(msg, xhr) {\n super(msg);\n this.name = 'AuthSdkError';\n this.errorCode = 'INTERNAL';\n this.errorSummary = msg;\n this.errorLink = 'INTERNAL';\n this.errorId = 'INTERNAL';\n this.errorCauses = [];\n if (xhr) {\n this.xhr = xhr;\n }\n }\n}\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 */\nimport CustomError from './CustomError';\nexport default class OAuthError extends CustomError {\n constructor(errorCode, summary) {\n super(summary);\n this.name = 'OAuthError';\n this.errorCode = errorCode;\n this.errorSummary = summary;\n }\n}\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 */\nimport AuthApiError from './AuthApiError';\nimport AuthPollStopError from './AuthPollStopError';\nimport AuthSdkError from './AuthSdkError';\nimport OAuthError from './OAuthError';\nfunction isAuthApiError(obj) {\n return (obj instanceof AuthApiError);\n}\nexport { isAuthApiError, AuthApiError, AuthPollStopError, AuthSdkError, OAuthError };\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/* global atob, btoa, crypto */\nconst a = function (str) { return atob(str); };\nconst b = function (str) { return btoa(str); };\nconst c = typeof crypto === 'undefined' ? null : crypto;\nexport { a as atob, b as btoa, c as webcrypto };\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 */\nimport { AuthSdkError } from '../errors';\nimport { atob, btoa } from './webcrypto';\n// converts a string to base64 (url/filename safe variant)\nexport function stringToBase64Url(str) {\n var b64 = btoa(str);\n return base64ToBase64Url(b64);\n}\n// converts a standard base64-encoded string to a \"url/filename safe\" variant\nexport function base64ToBase64Url(b64) {\n return b64.replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\n}\n// converts a \"url/filename safe\" base64 string to a \"standard\" base64 string\nexport function base64UrlToBase64(b64u) {\n return b64u.replace(/-/g, '+').replace(/_/g, '/');\n}\nexport function base64UrlToString(b64u) {\n var b64 = base64UrlToBase64(b64u);\n switch (b64.length % 4) {\n case 0:\n break;\n case 2:\n b64 += '==';\n break;\n case 3:\n b64 += '=';\n break;\n default:\n throw new AuthSdkError('Not a valid Base64Url');\n }\n var utf8 = atob(b64);\n try {\n return decodeURIComponent(escape(utf8));\n }\n catch (e) {\n return utf8;\n }\n}\nexport function stringToBuffer(str) {\n var buffer = new Uint8Array(str.length);\n for (var i = 0; i < str.length; i++) {\n buffer[i] = str.charCodeAt(i);\n }\n return buffer;\n}\nexport function base64UrlDecode(str) {\n return atob(base64UrlToBase64(str));\n}\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/* global TextEncoder */\nimport { stringToBase64Url } from './base64';\nimport { webcrypto } from './webcrypto';\nexport function getOidcHash(str) {\n var buffer = new TextEncoder().encode(str);\n return webcrypto.subtle.digest('SHA-256', buffer).then(function (arrayBuffer) {\n var intBuffer = new Uint8Array(arrayBuffer);\n var firstHalf = intBuffer.slice(0, 16);\n var hash = String.fromCharCode.apply(null, firstHalf);\n var b64u = stringToBase64Url(hash); // url-safe base64 variant\n return b64u;\n });\n}\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 */\nexport function bind(fn, ctx) {\n var additionalArgs = Array.prototype.slice.call(arguments, 2);\n return function () {\n var args = Array.prototype.slice.call(arguments);\n args = additionalArgs.concat(args);\n return fn.apply(ctx, args);\n };\n}\n// TODO: replace all references with `Object.assign` then remove this function\nexport function extend() {\n // First object will be modified!\n var obj1 = arguments[0];\n // Properties from other objects will be copied over\n var objArray = [].slice.call(arguments, 1);\n objArray.forEach(function (obj) {\n for (var prop in obj) {\n // copy over all properties with defined values\n if (Object.prototype.hasOwnProperty.call(obj, prop) && obj[prop] !== undefined) {\n obj1[prop] = obj[prop];\n }\n }\n });\n return obj1; // return the modified object\n}\nexport function removeNils(obj) {\n var cleaned = {};\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n var value = obj[prop];\n if (value !== null && value !== undefined) {\n cleaned[prop] = value;\n }\n }\n }\n return cleaned;\n}\nexport function clone(obj) {\n if (obj) {\n var str = JSON.stringify(obj);\n if (str) {\n return JSON.parse(str);\n }\n }\n return obj;\n}\n// Analogous to _.omit\nexport function omit(obj, ...props) {\n // var props = Array.prototype.slice.call(arguments, 1);\n var newobj = {};\n for (var p in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, p) && props.indexOf(p) == -1) {\n newobj[p] = obj[p];\n }\n }\n return clone(newobj);\n}\nexport function find(collection, searchParams) {\n var c = collection.length;\n while (c--) {\n var item = collection[c];\n var found = true;\n for (var prop in searchParams) {\n if (!Object.prototype.hasOwnProperty.call(searchParams, prop)) {\n continue;\n }\n if (item[prop] !== searchParams[prop]) {\n found = false;\n break;\n }\n }\n if (found) {\n return item;\n }\n }\n}\nexport function getLink(obj, linkName, altName) {\n if (!obj || !obj._links) {\n return;\n }\n var link = clone(obj._links[linkName]);\n // If a link has a name and we have an altName, return if they match\n if (link && link.name && altName) {\n if (link.name === altName) {\n return link;\n }\n }\n else {\n return link;\n }\n}\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 */\nimport { clone } from '../util';\nimport { stringToBuffer, base64UrlDecode } from './base64';\nimport { webcrypto } from './webcrypto';\nexport function verifyToken(idToken, key) {\n key = clone(key);\n var format = 'jwk';\n var algo = {\n name: 'RSASSA-PKCS1-v1_5',\n hash: { name: 'SHA-256' }\n };\n var extractable = true;\n var usages = ['verify'];\n // https://connect.microsoft.com/IE/feedback/details/2242108/webcryptoapi-importing-jwk-with-use-field-fails\n // This is a metadata tag that specifies the intent of how the key should be used.\n // It's not necessary to properly verify the jwt's signature.\n delete key.use;\n // @ts-ignore\n return webcrypto.subtle.importKey(format, key, algo, extractable, usages)\n .then(function (cryptoKey) {\n var jwt = idToken.split('.');\n var payload = stringToBuffer(jwt[0] + '.' + jwt[1]);\n var b64Signature = base64UrlDecode(jwt[2]);\n var signature = stringToBuffer(b64Signature);\n return webcrypto.subtle.verify(algo, cryptoKey, signature, payload);\n });\n}\n","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\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 */\nexport const STATE_TOKEN_KEY_NAME = 'oktaStateToken';\nexport const DEFAULT_POLLING_DELAY = 500;\nexport const DEFAULT_MAX_CLOCK_SKEW = 300;\nexport const DEFAULT_CACHE_DURATION = 86400;\nexport const REDIRECT_OAUTH_PARAMS_NAME = 'okta-oauth-redirect-params';\nexport const REDIRECT_STATE_COOKIE_NAME = 'okta-oauth-state';\nexport const REDIRECT_NONCE_COOKIE_NAME = 'okta-oauth-nonce';\nexport const TOKEN_STORAGE_NAME = 'okta-token-storage';\nexport const CACHE_STORAGE_NAME = 'okta-cache-storage';\nexport const PKCE_STORAGE_NAME = 'okta-pkce-storage';\nexport const TRANSACTION_STORAGE_NAME = 'okta-transaction-storage';\nexport const SHARED_TRANSACTION_STORAGE_NAME = 'okta-shared-transaction-storage';\nexport const ORIGINAL_URI_STORAGE_NAME = 'okta-original-uri-storage';\nexport const IDX_RESPONSE_STORAGE_NAME = 'okta-idx-response-storage';\nexport const ACCESS_TOKEN_STORAGE_KEY = 'accessToken';\nexport const ID_TOKEN_STORAGE_KEY = 'idToken';\nexport const REFRESH_TOKEN_STORAGE_KEY = 'refreshToken';\nexport const REFERRER_PATH_STORAGE_KEY = 'referrerPath';\n// Code verifier: Random URL-safe string with a minimum length of 43 characters.\n// Code challenge: Base64 URL-encoded SHA-256 hash of the code verifier.\nexport const MIN_VERIFIER_LENGTH = 43;\nexport const MAX_VERIFIER_LENGTH = 128;\nexport const DEFAULT_CODE_CHALLENGE_METHOD = 'S256';\nexport const IDX_API_VERSION = '1.0.0';\n","export function setRequestHeader(authClient, headerName, headerValue) {\n authClient.options.headers = authClient.options.headers || {};\n authClient.options.headers[headerName] = headerValue;\n}\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 */\nexport function isString(obj) {\n return Object.prototype.toString.call(obj) === '[object String]';\n}\nexport function isObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\nexport function isNumber(obj) {\n return Object.prototype.toString.call(obj) === '[object Number]';\n}\nexport function isFunction(fn) {\n return !!fn && {}.toString.call(fn) === '[object Function]';\n}\nexport function isPromise(obj) {\n return obj && obj.finally && (typeof obj.finally === 'function');\n}\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 */\nexport function isAbsoluteUrl(url) {\n return /^(?:[a-z]+:)?\\/\\//i.test(url);\n}\nexport function toAbsoluteUrl(url = '', baseUrl) {\n if (isAbsoluteUrl(url)) {\n return url;\n }\n baseUrl = removeTrailingSlash(baseUrl);\n return url[0] === '/' ? `${baseUrl}${url}` : `${baseUrl}/${url}`;\n}\nexport function toRelativeUrl(url = '', baseUrl) {\n if (isAbsoluteUrl(url)) {\n url = url.substring(baseUrl.length);\n }\n return url[0] === '/' ? url : `/${url}`;\n}\nexport function toQueryString(obj) {\n var str = [];\n if (obj !== null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) &&\n obj[key] !== undefined &&\n obj[key] !== null) {\n str.push(key + '=' + encodeURIComponent(obj[key]));\n }\n }\n }\n if (str.length) {\n return '?' + str.join('&');\n }\n else {\n return '';\n }\n}\nexport function removeTrailingSlash(path) {\n if (!path) {\n return;\n }\n // Remove any whitespace before or after string\n var trimmed = path.replace(/^\\s+|\\s+$/gm, '');\n // Remove trailing slash(es)\n trimmed = trimmed.replace(/\\/+$/, '');\n return trimmed;\n}\n","/* 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/* eslint-disable complexity */\nimport { isString, clone, isAbsoluteUrl, removeNils } from '../util';\nimport AuthApiError from '../errors/AuthApiError';\nimport { STATE_TOKEN_KEY_NAME, DEFAULT_CACHE_DURATION } from '../constants';\nexport function httpRequest(sdk, options) {\n options = options || {};\n var url = options.url, method = options.method, args = options.args, saveAuthnState = options.saveAuthnState, accessToken = options.accessToken, withCredentials = options.withCredentials === true, // default value is false\n storageUtil = sdk.options.storageUtil, storage = storageUtil.storage, httpCache = sdk.storageManager.getHttpCache(sdk.options.cookies);\n if (options.cacheResponse) {\n var cacheContents = httpCache.getStorage();\n var cachedResponse = cacheContents[url];\n if (cachedResponse && Date.now() / 1000 < cachedResponse.expiresAt) {\n return Promise.resolve(cachedResponse.response);\n }\n }\n var oktaUserAgentHeader = sdk._oktaUserAgent.getHttpHeader();\n var headers = Object.assign({ 'Accept': 'application/json', 'Content-Type': 'application/json' }, oktaUserAgentHeader);\n Object.assign(headers, sdk.options.headers, options.headers);\n headers = removeNils(headers);\n if (accessToken && isString(accessToken)) {\n headers['Authorization'] = 'Bearer ' + accessToken;\n }\n var ajaxOptions = {\n headers,\n data: args || undefined,\n withCredentials\n };\n var err, res;\n return sdk.options.httpRequestClient(method, url, ajaxOptions)\n .then(function (resp) {\n res = resp.responseText;\n if (res && isString(res)) {\n res = JSON.parse(res);\n if (res && typeof res === 'object' && !res.headers) {\n res.headers = resp.headers;\n }\n }\n if (saveAuthnState) {\n if (!res.stateToken) {\n storage.delete(STATE_TOKEN_KEY_NAME);\n }\n }\n if (res && res.stateToken && res.expiresAt) {\n storage.set(STATE_TOKEN_KEY_NAME, res.stateToken, res.expiresAt, sdk.options.cookies);\n }\n if (res && options.cacheResponse) {\n httpCache.updateStorage(url, {\n expiresAt: Math.floor(Date.now() / 1000) + DEFAULT_CACHE_DURATION,\n response: res\n });\n }\n return res;\n })\n .catch(function (resp) {\n var serverErr = resp.responseText || {};\n if (isString(serverErr)) {\n try {\n serverErr = JSON.parse(serverErr);\n }\n catch (e) {\n serverErr = {\n errorSummary: 'Unknown error'\n };\n }\n }\n if (resp.status >= 500) {\n serverErr.errorSummary = 'Unknown error';\n }\n if (sdk.options.transformErrorXHR) {\n resp = sdk.options.transformErrorXHR(clone(resp));\n }\n err = new AuthApiError(serverErr, resp);\n if (err.errorCode === 'E0000011') {\n storage.delete(STATE_TOKEN_KEY_NAME);\n }\n throw err;\n });\n}\nexport function get(sdk, url, options) {\n url = isAbsoluteUrl(url) ? url : sdk.getIssuerOrigin() + url;\n var getOptions = {\n url: url,\n method: 'GET'\n };\n Object.assign(getOptions, options);\n return httpRequest(sdk, getOptions);\n}\nexport function post(sdk, url, args, options) {\n url = isAbsoluteUrl(url) ? url : sdk.getIssuerOrigin() + url;\n var postOptions = {\n url: url,\n method: 'POST',\n args: args,\n saveAuthnState: true\n };\n Object.assign(postOptions, options);\n return httpRequest(sdk, postOptions);\n}\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 */\nexport function addStateToken(res, options) {\n var builtArgs = {};\n Object.assign(builtArgs, options);\n // Add the stateToken if one isn't passed and we have one\n if (!builtArgs.stateToken && res.stateToken) {\n builtArgs.stateToken = res.stateToken;\n }\n return builtArgs;\n}\nexport function getStateToken(res) {\n return addStateToken(res);\n}\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 */\nexport function isoToUTCString(str) {\n var parts = str.match(/\\d+/g), isoTime = Date.UTC(parts[0], parts[1] - 1, parts[2], parts[3], parts[4], parts[5]), isoDate = new Date(isoTime);\n return isoDate.toUTCString();\n}\nexport function genRandomString(length) {\n var randomCharset = 'abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\n var random = '';\n for (var c = 0, cl = randomCharset.length; c < length; ++c) {\n random += randomCharset[Math.floor(Math.random() * cl)];\n }\n return random;\n}\nexport function delay(ms) {\n return new Promise(function (resolve) {\n setTimeout(resolve, ms);\n });\n}\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 { post } from '../http';\nimport { isNumber, isObject, getLink, toQueryString, delay as delayFn } from '../util';\nimport { DEFAULT_POLLING_DELAY } from '../constants';\nimport AuthSdkError from '../errors/AuthSdkError';\nimport AuthPollStopError from '../errors/AuthPollStopError';\nimport { AuthTransaction } from './AuthTransaction';\nimport { getStateToken } from './util';\nexport function getPollFn(sdk, res, ref) {\n return function (options) {\n var delay;\n var rememberDevice;\n var autoPush;\n var transactionCallBack;\n if (isNumber(options)) {\n delay = options;\n }\n else if (isObject(options)) {\n options = options;\n delay = options.delay;\n rememberDevice = options.rememberDevice;\n autoPush = options.autoPush;\n transactionCallBack = options.transactionCallBack;\n }\n if (!delay && delay !== 0) {\n delay = DEFAULT_POLLING_DELAY;\n }\n // Get the poll function\n var pollLink = getLink(res, 'next', 'poll');\n // eslint-disable-next-line complexity\n function pollFn() {\n var opts = {};\n if (typeof autoPush === 'function') {\n try {\n opts.autoPush = !!autoPush();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('AutoPush resulted in an error.'));\n }\n }\n else if (autoPush !== undefined && autoPush !== null) {\n opts.autoPush = !!autoPush;\n }\n if (typeof rememberDevice === 'function') {\n try {\n opts.rememberDevice = !!rememberDevice();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('RememberDevice resulted in an error.'));\n }\n }\n else if (rememberDevice !== undefined && rememberDevice !== null) {\n opts.rememberDevice = !!rememberDevice;\n }\n var href = pollLink.href + toQueryString(opts);\n return post(sdk, href, getStateToken(res), {\n saveAuthnState: false,\n withCredentials: true\n });\n }\n ref.isPolling = true;\n var retryCount = 0;\n var recursivePoll = function () {\n // If the poll was manually stopped during the delay\n if (!ref.isPolling) {\n return Promise.reject(new AuthPollStopError());\n }\n return pollFn()\n .then(function (pollRes) {\n // Reset our retry counter on success\n retryCount = 0;\n // If we're still waiting\n if (pollRes.factorResult && pollRes.factorResult === 'WAITING') {\n // If the poll was manually stopped while the pollFn was called\n if (!ref.isPolling) {\n throw new AuthPollStopError();\n }\n if (typeof transactionCallBack === 'function') {\n transactionCallBack(pollRes);\n }\n // Continue poll\n return delayFn(delay).then(recursivePoll);\n }\n else {\n // Any non-waiting result, even if polling was stopped\n // during a request, will return\n ref.isPolling = false;\n return new AuthTransaction(sdk, pollRes);\n }\n })\n .catch(function (err) {\n // Exponential backoff, up to 16 seconds\n if (err.xhr &&\n (err.xhr.status === 0 || err.xhr.status === 429) &&\n retryCount <= 4) {\n var delayLength = Math.pow(2, retryCount) * 1000;\n retryCount++;\n return delayFn(delayLength)\n .then(recursivePoll);\n }\n throw err;\n });\n };\n return recursivePoll()\n .catch(function (err) {\n ref.isPolling = false;\n throw err;\n });\n };\n}\n","/*!\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 { get } from '../http';\nimport { find, omit, toQueryString, clone, isObject } from '../util';\nimport AuthSdkError from '../errors/AuthSdkError';\nimport { addStateToken } from './util';\nimport { getPollFn } from './poll';\nimport { postToTransaction } from './api';\nexport class AuthTransaction {\n constructor(sdk, res = null) {\n this.data = undefined;\n this.status = undefined;\n if (res) {\n this.data = res;\n if (this.data.interactionHandle) {\n this.status = res.status;\n return;\n }\n // Parse response from Authn V1\n Object.assign(this, flattenEmbedded(sdk, res, res, {}));\n delete this.stateToken;\n // RECOVERY_CHALLENGE has some responses without _links.\n // Without _links, we emulate cancel to make it intuitive\n // to return to the starting state. We may remove this\n // when OKTA-75434 is resolved\n if (res.status === 'RECOVERY_CHALLENGE' && !res._links) {\n this.cancel = function () {\n return Promise.resolve(new AuthTransaction(sdk));\n };\n }\n }\n }\n}\nfunction link2fn(sdk, res, obj, link, ref) {\n if (Array.isArray(link)) {\n return function (name, opts) {\n if (!name) {\n throw new AuthSdkError('Must provide a link name');\n }\n var lk = find(link, { name: name });\n if (!lk) {\n throw new AuthSdkError('No link found for that name');\n }\n return link2fn(sdk, res, obj, lk, ref)(opts);\n };\n }\n else if (link.hints &&\n link.hints.allow &&\n link.hints.allow.length === 1) {\n var method = link.hints.allow[0];\n switch (method) {\n case 'GET':\n return function () {\n return get(sdk, link.href, { withCredentials: true });\n };\n case 'POST':\n // eslint-disable-next-line max-statements,complexity\n return function (opts) {\n if (ref && ref.isPolling) {\n ref.isPolling = false;\n }\n var data = addStateToken(res, opts);\n if (res.status === 'MFA_ENROLL' || res.status === 'FACTOR_ENROLL') {\n // Add factorType and provider\n Object.assign(data, {\n factorType: obj.factorType,\n provider: obj.provider\n });\n }\n var params = {};\n var autoPush = data.autoPush;\n if (autoPush !== undefined) {\n if (typeof autoPush === 'function') {\n try {\n params.autoPush = !!autoPush();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('AutoPush resulted in an error.'));\n }\n }\n else if (autoPush !== null) {\n params.autoPush = !!autoPush;\n }\n data = omit(data, 'autoPush');\n }\n var rememberDevice = data.rememberDevice;\n if (rememberDevice !== undefined) {\n if (typeof rememberDevice === 'function') {\n try {\n params.rememberDevice = !!rememberDevice();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('RememberDevice resulted in an error.'));\n }\n }\n else if (rememberDevice !== null) {\n params.rememberDevice = !!rememberDevice;\n }\n data = omit(data, 'rememberDevice');\n }\n else if (data.profile &&\n data.profile.updatePhone !== undefined) {\n if (data.profile.updatePhone) {\n params.updatePhone = true;\n }\n data.profile = omit(data.profile, 'updatePhone');\n }\n var href = link.href + toQueryString(params);\n return postToTransaction(sdk, href, data);\n };\n }\n }\n}\nfunction links2fns(sdk, res, obj, ref) {\n var fns = {};\n for (var linkName in obj._links) {\n if (!Object.prototype.hasOwnProperty.call(obj._links, linkName)) {\n continue;\n }\n var link = obj._links[linkName];\n if (linkName === 'next') {\n linkName = link.name;\n }\n if (link.type) {\n fns[linkName] = link;\n continue;\n }\n switch (linkName) {\n // poll is only found at the transaction\n // level, so we don't need to pass the link\n case 'poll':\n fns.poll = getPollFn(sdk, res, ref);\n break;\n default:\n var fn = link2fn(sdk, res, obj, link, ref);\n if (fn) {\n fns[linkName] = fn;\n }\n }\n }\n return fns;\n}\n// eslint-disable-next-line complexity\nfunction flattenEmbedded(sdk, res, obj, ref) {\n obj = obj || res;\n obj = clone(obj);\n if (Array.isArray(obj)) {\n var objArr = [];\n for (var o = 0, ol = obj.length; o < ol; o++) {\n objArr.push(flattenEmbedded(sdk, res, obj[o], ref));\n }\n return objArr;\n }\n var embedded = obj._embedded || {};\n for (var key in embedded) {\n if (!Object.prototype.hasOwnProperty.call(embedded, key)) {\n continue;\n }\n // Flatten any nested _embedded objects\n if (isObject(embedded[key]) || Array.isArray(embedded[key])) {\n embedded[key] = flattenEmbedded(sdk, res, embedded[key], ref);\n }\n }\n // Convert any links on the embedded object\n var fns = links2fns(sdk, res, obj, ref);\n Object.assign(embedded, fns);\n obj = omit(obj, '_embedded', '_links');\n Object.assign(obj, embedded);\n return obj;\n}\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/* eslint-disable complexity, max-statements */\nimport { post } from '../http';\nimport AuthSdkError from '../errors/AuthSdkError';\nimport { STATE_TOKEN_KEY_NAME } from '../constants';\nimport { addStateToken } from './util';\nimport { AuthTransaction } from './AuthTransaction';\nexport function transactionStatus(sdk, args) {\n args = addStateToken(sdk, args);\n return post(sdk, sdk.getIssuerOrigin() + '/api/v1/authn', args, { withCredentials: true });\n}\nexport function resumeTransaction(sdk, args) {\n if (!args || !args.stateToken) {\n var stateToken = sdk.tx.exists._get(STATE_TOKEN_KEY_NAME);\n if (stateToken) {\n args = {\n stateToken: stateToken\n };\n }\n else {\n return Promise.reject(new AuthSdkError('No transaction to resume'));\n }\n }\n return sdk.tx.status(args)\n .then(function (res) {\n return new AuthTransaction(sdk, res);\n });\n}\nexport function introspectAuthn(sdk, args) {\n if (!args || !args.stateToken) {\n var stateToken = sdk.tx.exists._get(STATE_TOKEN_KEY_NAME);\n if (stateToken) {\n args = {\n stateToken: stateToken\n };\n }\n else {\n return Promise.reject(new AuthSdkError('No transaction to evaluate'));\n }\n }\n return transactionStep(sdk, args)\n .then(function (res) {\n return new AuthTransaction(sdk, res);\n });\n}\nexport function transactionStep(sdk, args) {\n args = addStateToken(sdk, args);\n // v1 pipeline introspect API\n return post(sdk, sdk.getIssuerOrigin() + '/api/v1/authn/introspect', args, { withCredentials: true });\n}\nexport function transactionExists(sdk) {\n // We have a cookie state token\n return !!sdk.tx.exists._get(STATE_TOKEN_KEY_NAME);\n}\nexport function postToTransaction(sdk, url, args, options) {\n options = Object.assign({ withCredentials: true }, options);\n return post(sdk, url, args, options)\n .then(function (res) {\n return new AuthTransaction(sdk, res);\n });\n}\n","/*!\n * Copyright (c) 2019-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n/* eslint-disable complexity, max-statements */\nimport { stringToBase64Url } from '../../crypto';\nimport { MIN_VERIFIER_LENGTH, MAX_VERIFIER_LENGTH, DEFAULT_CODE_CHALLENGE_METHOD } from '../../constants';\nimport { webcrypto } from '../../crypto';\nfunction dec2hex(dec) {\n return ('0' + dec.toString(16)).substr(-2);\n}\nfunction getRandomString(length) {\n var a = new Uint8Array(Math.ceil(length / 2));\n webcrypto.getRandomValues(a);\n var str = Array.from(a, dec2hex).join('');\n return str.slice(0, length);\n}\nfunction generateVerifier(prefix) {\n var verifier = prefix || '';\n if (verifier.length < MIN_VERIFIER_LENGTH) {\n verifier = verifier + getRandomString(MIN_VERIFIER_LENGTH - verifier.length);\n }\n return encodeURIComponent(verifier).slice(0, MAX_VERIFIER_LENGTH);\n}\nfunction computeChallenge(str) {\n var buffer = new TextEncoder().encode(str);\n return webcrypto.subtle.digest('SHA-256', buffer).then(function (arrayBuffer) {\n var hash = String.fromCharCode.apply(null, new Uint8Array(arrayBuffer));\n var b64u = stringToBase64Url(hash); // url-safe base64 variant\n return b64u;\n });\n}\nexport default {\n DEFAULT_CODE_CHALLENGE_METHOD,\n generateVerifier,\n computeChallenge\n};\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/* global window */\nimport { omit, getLink, toQueryString } from './util';\nimport { get, post, httpRequest } from './http';\nfunction sessionExists(sdk) {\n return sdk.session.get()\n .then(function (res) {\n if (res.status === 'ACTIVE') {\n return true;\n }\n return false;\n })\n .catch(function () {\n return false;\n });\n}\nfunction getSession(sdk) {\n return get(sdk, '/api/v1/sessions/me', { withCredentials: true })\n .then(function (session) {\n var res = omit(session, '_links');\n res.refresh = function () {\n return post(sdk, getLink(session, 'refresh').href, {}, { withCredentials: true });\n };\n res.user = function () {\n return get(sdk, getLink(session, 'user').href, { withCredentials: true });\n };\n return res;\n })\n .catch(function () {\n // Return INACTIVE status on failure\n return { status: 'INACTIVE' };\n });\n}\nfunction closeSession(sdk) {\n return httpRequest(sdk, {\n url: sdk.getIssuerOrigin() + '/api/v1/sessions/me',\n method: 'DELETE',\n withCredentials: true\n });\n}\nfunction refreshSession(sdk) {\n return post(sdk, '/api/v1/sessions/me/lifecycle/refresh', {}, { withCredentials: true });\n}\nfunction setCookieAndRedirect(sdk, sessionToken, redirectUrl) {\n redirectUrl = redirectUrl || window.location.href;\n window.location.assign(sdk.getIssuerOrigin() + '/login/sessionCookieRedirect' +\n toQueryString({\n checkAccountSetupComplete: true,\n token: sessionToken,\n redirectUrl: redirectUrl\n }));\n}\nexport { sessionExists, getSession, closeSession, refreshSession, setCookieAndRedirect };\n","/* 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 */\nimport { isString, removeNils, toQueryString } from '../../util';\nimport { AuthSdkError } from '../../errors';\nexport function convertTokenParamsToOAuthParams(tokenParams) {\n // Quick validation\n if (!tokenParams.clientId) {\n throw new AuthSdkError('A clientId must be specified in the OktaAuth constructor to get a token');\n }\n if (isString(tokenParams.responseType) && tokenParams.responseType.indexOf(' ') !== -1) {\n throw new AuthSdkError('Multiple OAuth responseTypes must be defined as an array');\n }\n // Convert our params to their actual OAuth equivalents\n var oauthParams = {\n 'client_id': tokenParams.clientId,\n 'code_challenge': tokenParams.codeChallenge,\n 'code_challenge_method': tokenParams.codeChallengeMethod,\n 'display': tokenParams.display,\n 'idp': tokenParams.idp,\n 'idp_scope': tokenParams.idpScope,\n 'login_hint': tokenParams.loginHint,\n 'max_age': tokenParams.maxAge,\n 'nonce': tokenParams.nonce,\n 'prompt': tokenParams.prompt,\n 'redirect_uri': tokenParams.redirectUri,\n 'response_mode': tokenParams.responseMode,\n 'response_type': tokenParams.responseType,\n 'sessionToken': tokenParams.sessionToken,\n 'state': tokenParams.state,\n };\n oauthParams = removeNils(oauthParams);\n ['idp_scope', 'response_type'].forEach(function (mayBeArray) {\n if (Array.isArray(oauthParams[mayBeArray])) {\n oauthParams[mayBeArray] = oauthParams[mayBeArray].join(' ');\n }\n });\n if (tokenParams.responseType.indexOf('id_token') !== -1 &&\n tokenParams.scopes.indexOf('openid') === -1) {\n throw new AuthSdkError('openid scope must be specified in the scopes argument when requesting an id_token');\n }\n else {\n oauthParams.scope = tokenParams.scopes.join(' ');\n }\n return oauthParams;\n}\nexport function buildAuthorizeParams(tokenParams) {\n var oauthQueryParams = convertTokenParamsToOAuthParams(tokenParams);\n return toQueryString(Object.assign(Object.assign({}, oauthQueryParams), (tokenParams.extraParams && Object.assign({}, tokenParams.extraParams))));\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\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 */\nimport { AuthSdkError } from '../../errors';\nimport { removeNils, toQueryString } from '../../util';\nimport { httpRequest } from '../../http';\nfunction validateOptions(options) {\n // Quick validation\n if (!options.clientId) {\n throw new AuthSdkError('A clientId must be specified in the OktaAuth constructor to get a token');\n }\n if (!options.redirectUri) {\n throw new AuthSdkError('The redirectUri passed to /authorize must also be passed to /token');\n }\n if (!options.authorizationCode && !options.interactionCode) {\n throw new AuthSdkError('An authorization code (returned from /authorize) must be passed to /token');\n }\n if (!options.codeVerifier) {\n throw new AuthSdkError('The \"codeVerifier\" (generated and saved by your app) must be passed to /token');\n }\n}\nfunction getPostData(sdk, options) {\n // Convert Token params to OAuth params, sent to the /token endpoint\n var params = removeNils({\n 'client_id': options.clientId,\n 'redirect_uri': options.redirectUri,\n 'grant_type': options.interactionCode ? 'interaction_code' : 'authorization_code',\n 'code_verifier': options.codeVerifier\n });\n if (options.interactionCode) {\n params['interaction_code'] = options.interactionCode;\n }\n else if (options.authorizationCode) {\n params.code = options.authorizationCode;\n }\n const { clientSecret } = sdk.options;\n if (clientSecret) {\n params['client_secret'] = clientSecret;\n }\n // Encode as URL string\n return toQueryString(params).slice(1);\n}\n// exchange authorization code for an access token\nexport function postToTokenEndpoint(sdk, options, urls) {\n validateOptions(options);\n var data = getPostData(sdk, options);\n const headers = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n };\n return httpRequest(sdk, {\n url: urls.tokenUrl,\n method: 'POST',\n args: data,\n headers\n });\n}\nexport function postRefreshToken(sdk, options, refreshToken) {\n return httpRequest(sdk, {\n url: refreshToken.tokenUrl,\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n args: Object.entries({\n client_id: options.clientId,\n grant_type: 'refresh_token',\n scope: refreshToken.scopes.join(' '),\n refresh_token: refreshToken.refreshToken, // eslint-disable-line camelcase\n }).map(function ([name, value]) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return name + '=' + encodeURIComponent(value);\n }).join('&'),\n });\n}\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\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 { get } from '../../http';\nimport { find } from '../../util';\nimport AuthSdkError from '../../errors/AuthSdkError';\nexport function getWellKnown(sdk, issuer) {\n var authServerUri = (issuer || sdk.options.issuer);\n return get(sdk, authServerUri + '/.well-known/openid-configuration', {\n cacheResponse: true\n });\n}\nexport function getKey(sdk, issuer, kid) {\n var httpCache = sdk.storageManager.getHttpCache(sdk.options.cookies);\n return getWellKnown(sdk, issuer)\n .then(function (wellKnown) {\n var jwksUri = wellKnown['jwks_uri'];\n // Check our kid against the cached version (if it exists and isn't expired)\n var cacheContents = httpCache.getStorage();\n var cachedResponse = cacheContents[jwksUri];\n if (cachedResponse && Date.now() / 1000 < cachedResponse.expiresAt) {\n var cachedKey = find(cachedResponse.response.keys, {\n kid: kid\n });\n if (cachedKey) {\n return cachedKey;\n }\n }\n // Remove cache for the key\n httpCache.clearStorage(jwksUri);\n // Pull the latest keys if the key wasn't in the cache\n return get(sdk, jwksUri, {\n cacheResponse: true\n })\n .then(function (res) {\n var key = find(res.keys, {\n kid: kid\n });\n if (key) {\n return key;\n }\n throw new AuthSdkError('The key id, ' + kid + ', was not found in the server\\'s keys');\n });\n });\n}\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/* global window, document */\n/* eslint-disable complexity, max-statements */\nimport { AuthSdkError } from '../../errors';\nexport function addListener(eventTarget, name, fn) {\n if (eventTarget.addEventListener) {\n eventTarget.addEventListener(name, fn);\n }\n else {\n eventTarget.attachEvent('on' + name, fn);\n }\n}\nexport function removeListener(eventTarget, name, fn) {\n if (eventTarget.removeEventListener) {\n eventTarget.removeEventListener(name, fn);\n }\n else {\n eventTarget.detachEvent('on' + name, fn);\n }\n}\nexport function loadFrame(src) {\n var iframe = document.createElement('iframe');\n iframe.style.display = 'none';\n iframe.src = src;\n return document.body.appendChild(iframe);\n}\nexport function loadPopup(src, options) {\n var title = options.popupTitle || 'External Identity Provider User Authentication';\n var appearance = 'toolbar=no, scrollbars=yes, resizable=yes, ' +\n 'top=100, left=500, width=600, height=600';\n return window.open(src, title, appearance);\n}\nexport function addPostMessageListener(sdk, timeout, state) {\n var responseHandler;\n var timeoutId;\n var msgReceivedOrTimeout = new Promise(function (resolve, reject) {\n responseHandler = function responseHandler(e) {\n if (!e.data || e.data.state !== state) {\n // A message not meant for us\n return;\n }\n // Configuration mismatch between saved token and current app instance\n // This may happen if apps with different issuers are running on the same host url\n // If they share the same storage key, they may read and write tokens in the same location.\n // Common when developing against http://localhost\n if (e.origin !== sdk.getIssuerOrigin()) {\n return reject(new AuthSdkError('The request does not match client configuration'));\n }\n resolve(e.data);\n };\n addListener(window, 'message', responseHandler);\n timeoutId = setTimeout(function () {\n reject(new AuthSdkError('OAuth flow timed out'));\n }, timeout || 120000);\n });\n return msgReceivedOrTimeout\n .finally(function () {\n clearTimeout(timeoutId);\n removeListener(window, 'message', responseHandler);\n });\n}\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/* eslint-disable complexity, max-statements */\nimport { genRandomString, removeTrailingSlash } from '../../util';\nimport AuthSdkError from '../../errors/AuthSdkError';\nexport function generateState() {\n return genRandomString(64);\n}\nexport function generateNonce() {\n return genRandomString(64);\n}\nfunction getIssuer(sdk, options = {}) {\n const issuer = removeTrailingSlash(options.issuer) || sdk.options.issuer;\n return issuer;\n}\nexport function getOAuthBaseUrl(sdk, options = {}) {\n const issuer = getIssuer(sdk, options);\n const baseUrl = issuer.indexOf('/oauth2') > 0 ? issuer : issuer + '/oauth2';\n return baseUrl;\n}\nexport function getOAuthDomain(sdk, options = {}) {\n const issuer = getIssuer(sdk, options);\n const domain = issuer.split('/oauth2')[0];\n return domain;\n}\nexport function getOAuthUrls(sdk, options) {\n if (arguments.length > 2) {\n throw new AuthSdkError('As of version 3.0, \"getOAuthUrls\" takes only a single set of options');\n }\n options = options || {};\n // Get user-supplied arguments\n var authorizeUrl = removeTrailingSlash(options.authorizeUrl) || sdk.options.authorizeUrl;\n var issuer = getIssuer(sdk, options);\n var userinfoUrl = removeTrailingSlash(options.userinfoUrl) || sdk.options.userinfoUrl;\n var tokenUrl = removeTrailingSlash(options.tokenUrl) || sdk.options.tokenUrl;\n var logoutUrl = removeTrailingSlash(options.logoutUrl) || sdk.options.logoutUrl;\n var revokeUrl = removeTrailingSlash(options.revokeUrl) || sdk.options.revokeUrl;\n var baseUrl = getOAuthBaseUrl(sdk, options);\n authorizeUrl = authorizeUrl || baseUrl + '/v1/authorize';\n userinfoUrl = userinfoUrl || baseUrl + '/v1/userinfo';\n tokenUrl = tokenUrl || baseUrl + '/v1/token';\n revokeUrl = revokeUrl || baseUrl + '/v1/revoke';\n logoutUrl = logoutUrl || baseUrl + '/v1/logout';\n return {\n issuer: issuer,\n authorizeUrl: authorizeUrl,\n userinfoUrl: userinfoUrl,\n tokenUrl: tokenUrl,\n revokeUrl: revokeUrl,\n logoutUrl: logoutUrl\n };\n}\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/* eslint-disable node/no-unsupported-features/node-builtins */\n/* global document, window, TextEncoder, navigator */\nimport { webcrypto } from './crypto';\nconst isWindowsPhone = /windows phone|iemobile|wpdesktop/i;\nexport function isBrowser() {\n return typeof document !== 'undefined' && typeof window !== 'undefined';\n}\nexport function isIE11OrLess() {\n if (!isBrowser()) {\n return false;\n }\n const documentMode = document.documentMode;\n return !!documentMode && documentMode <= 11;\n}\nexport function getUserAgent() {\n return navigator.userAgent;\n}\nexport function isFingerprintSupported() {\n const agent = getUserAgent();\n return agent && !isWindowsPhone.test(agent);\n}\nexport function isPopupPostMessageSupported() {\n if (!isBrowser()) {\n return false;\n }\n const documentMode = document.documentMode;\n var isIE8or9 = documentMode && documentMode < 10;\n if (typeof window.postMessage !== 'undefined' && !isIE8or9) {\n return true;\n }\n return false;\n}\nexport function isTokenVerifySupported() {\n return typeof webcrypto !== 'undefined'\n && webcrypto !== null\n && typeof webcrypto.subtle !== 'undefined'\n && typeof Uint8Array !== 'undefined';\n}\nexport function hasTextEncoder() {\n return typeof TextEncoder !== 'undefined';\n}\nexport function isPKCESupported() {\n return isTokenVerifySupported() && hasTextEncoder();\n}\nexport function isHTTPS() {\n if (!isBrowser()) {\n return false;\n }\n return window.location.protocol === 'https:';\n}\nexport function isLocalhost() {\n // eslint-disable-next-line compat/compat\n return isBrowser() && window.location.hostname === 'localhost';\n}\n","/* global window */\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 { generateNonce, generateState } from './oauth';\nimport { isBrowser } from '../../features';\nimport { removeNils } from '../../util';\nexport function getDefaultTokenParams(sdk) {\n const { pkce, clientId, redirectUri, responseType, responseMode, scopes, state, ignoreSignature } = sdk.options;\n const defaultRedirectUri = isBrowser() ? window.location.href : undefined;\n return removeNils({\n pkce,\n clientId,\n redirectUri: redirectUri || defaultRedirectUri,\n responseType: responseType || ['token', 'id_token'],\n responseMode,\n state: state || generateState(),\n nonce: generateNonce(),\n scopes: scopes || ['openid', 'email'],\n ignoreSignature\n });\n}\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 */\nexport function isInteractionRequiredError(error) {\n if (error.name !== 'OAuthError') {\n return false;\n }\n const oauthError = error;\n return (oauthError.errorCode === 'interaction_required');\n}\nexport function isAuthorizationCodeError(sdk, error) {\n if (error.name !== 'AuthApiError') {\n return false;\n }\n const authApiError = error;\n // xhr property doesn't seem to match XMLHttpRequest type\n const errorResponse = authApiError.xhr;\n const responseJSON = errorResponse === null || errorResponse === void 0 ? void 0 : errorResponse.responseJSON;\n return sdk.options.pkce && ((responseJSON === null || responseJSON === void 0 ? void 0 : responseJSON.error) === 'invalid_grant');\n}\n","export function hasTokensInHash(hash) {\n return /((id|access)_token=)/i.test(hash);\n}\n// authorization_code\nexport function hasAuthorizationCode(hashOrSearch) {\n return /(code=)/i.test(hashOrSearch);\n}\n// interaction_code\nexport function hasInteractionCode(hashOrSearch) {\n return /(interaction_code=)/i.test(hashOrSearch);\n}\nexport function hasErrorInUrl(hashOrSearch) {\n return /(error=)/i.test(hashOrSearch) || /(error_description)/i.test(hashOrSearch);\n}\nexport function isRedirectUri(uri, sdk) {\n var authParams = sdk.options;\n if (!uri || !authParams.redirectUri) {\n return false;\n }\n return uri.indexOf(authParams.redirectUri) === 0;\n}\nexport function isCodeFlow(options) {\n return options.pkce || options.responseType === 'code' || options.responseMode === 'query';\n}\nexport function getHashOrSearch(options) {\n var codeFlow = isCodeFlow(options);\n var useQuery = codeFlow && options.responseMode !== 'fragment';\n return useQuery ? window.location.search : window.location.hash;\n}\n/**\n * Check if tokens or a code have been passed back into the url, which happens in\n * the OIDC (including social auth IDP) redirect flow.\n */\nexport function isLoginRedirect(sdk) {\n // First check, is this a redirect URI?\n if (!isRedirectUri(window.location.href, sdk)) {\n return false;\n }\n // The location contains either a code, token, or an error + error_description\n var codeFlow = isCodeFlow(sdk.options);\n var hashOrSearch = getHashOrSearch(sdk.options);\n if (hasErrorInUrl(hashOrSearch)) {\n return true;\n }\n if (codeFlow) {\n var hasCode = hasAuthorizationCode(hashOrSearch) || hasInteractionCode(hashOrSearch);\n return hasCode;\n }\n // implicit flow, will always be hash fragment\n return hasTokensInHash(window.location.hash);\n}\n/**\n * Check if error=interaction_required has been passed back in the url, which happens in\n * the social auth IDP redirect flow.\n */\nexport function isInteractionRequired(sdk, hashOrSearch) {\n if (!hashOrSearch) { // web only\n // First check, is this a redirect URI?\n if (!isLoginRedirect(sdk)) {\n return false;\n }\n hashOrSearch = getHashOrSearch(sdk.options);\n }\n return /(error=interaction_required)/i.test(hashOrSearch);\n}\n","import { getOAuthUrls } from './oauth';\nexport function createOAuthMeta(sdk, tokenParams) {\n const issuer = sdk.options.issuer;\n const urls = getOAuthUrls(sdk, tokenParams);\n const oauthMeta = {\n issuer,\n urls,\n clientId: tokenParams.clientId,\n redirectUri: tokenParams.redirectUri,\n responseType: tokenParams.responseType,\n responseMode: tokenParams.responseMode,\n scopes: tokenParams.scopes,\n state: tokenParams.state,\n nonce: tokenParams.nonce,\n ignoreSignature: tokenParams.ignoreSignature,\n };\n if (tokenParams.pkce === false) {\n // Implicit flow or authorization_code without PKCE\n return oauthMeta;\n }\n const pkceMeta = Object.assign(Object.assign({}, oauthMeta), { codeVerifier: tokenParams.codeVerifier, codeChallengeMethod: tokenParams.codeChallengeMethod, codeChallenge: tokenParams.codeChallenge });\n return pkceMeta;\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/* eslint-disable complexity */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { getWellKnown } from '../endpoints/well-known';\nimport { AuthSdkError } from '../../errors';\nimport { clone } from '../../util';\nimport { getDefaultTokenParams } from './defaultTokenParams';\nimport { DEFAULT_CODE_CHALLENGE_METHOD } from '../../constants';\nimport PKCE from './pkce';\nexport function assertPKCESupport(sdk) {\n if (!sdk.features.isPKCESupported()) {\n var errorMessage = 'PKCE requires a modern browser with encryption support running in a secure context.';\n if (!sdk.features.isHTTPS()) {\n // eslint-disable-next-line max-len\n errorMessage += '\\nThe current page is not being served with HTTPS protocol. PKCE requires secure HTTPS protocol.';\n }\n if (!sdk.features.hasTextEncoder()) {\n // eslint-disable-next-line max-len\n errorMessage += '\\n\"TextEncoder\" is not defined. To use PKCE, you may need to include a polyfill/shim for this browser.';\n }\n throw new AuthSdkError(errorMessage);\n }\n}\nexport function validateCodeChallengeMethod(sdk, codeChallengeMethod) {\n return __awaiter(this, void 0, void 0, function* () {\n // set default code challenge method, if none provided\n codeChallengeMethod = codeChallengeMethod || sdk.options.codeChallengeMethod || DEFAULT_CODE_CHALLENGE_METHOD;\n // validate against .well-known/openid-configuration\n const wellKnownResponse = yield getWellKnown(sdk);\n var methods = wellKnownResponse['code_challenge_methods_supported'] || [];\n if (methods.indexOf(codeChallengeMethod) === -1) {\n throw new AuthSdkError('Invalid code_challenge_method');\n }\n return codeChallengeMethod;\n });\n}\nexport function preparePKCE(sdk, tokenParams) {\n return __awaiter(this, void 0, void 0, function* () {\n let { codeVerifier, codeChallenge, codeChallengeMethod } = tokenParams;\n // PKCE calculations can be avoided by passing a codeChallenge\n codeChallenge = codeChallenge || sdk.options.codeChallenge;\n if (!codeChallenge) {\n assertPKCESupport(sdk);\n codeVerifier = codeVerifier || PKCE.generateVerifier();\n codeChallenge = yield PKCE.computeChallenge(codeVerifier);\n }\n codeChallengeMethod = yield validateCodeChallengeMethod(sdk, codeChallengeMethod);\n // Clone/copy the params. Set PKCE values\n tokenParams = Object.assign(Object.assign({}, tokenParams), { responseType: 'code', // responseType is forced\n codeVerifier,\n codeChallenge,\n codeChallengeMethod });\n return tokenParams;\n });\n}\n// Prepares params for a call to /authorize or /token\nexport function prepareTokenParams(sdk, tokenParams = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n // build params using defaults + options\n const defaults = getDefaultTokenParams(sdk);\n tokenParams = Object.assign({}, defaults, clone(tokenParams));\n if (tokenParams.pkce === false) {\n // Implicit flow or authorization_code without PKCE\n return tokenParams;\n }\n return preparePKCE(sdk, tokenParams);\n });\n}\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 */\nexport var IdxStatus;\n(function (IdxStatus) {\n IdxStatus[\"SUCCESS\"] = \"SUCCESS\";\n IdxStatus[\"PENDING\"] = \"PENDING\";\n IdxStatus[\"FAILURE\"] = \"FAILURE\";\n IdxStatus[\"TERMINAL\"] = \"TERMINAL\";\n IdxStatus[\"CANCELED\"] = \"CANCELED\";\n})(IdxStatus || (IdxStatus = {}));\nexport var AuthenticatorKey;\n(function (AuthenticatorKey) {\n AuthenticatorKey[\"OKTA_PASSWORD\"] = \"okta_password\";\n AuthenticatorKey[\"OKTA_EMAIL\"] = \"okta_email\";\n AuthenticatorKey[\"PHONE_NUMBER\"] = \"phone_number\";\n AuthenticatorKey[\"GOOGLE_AUTHENTICATOR\"] = \"google_otp\";\n AuthenticatorKey[\"SECURITY_QUESTION\"] = \"security_question\";\n AuthenticatorKey[\"OKTA_VERIFY\"] = \"okta_verify\";\n})(AuthenticatorKey || (AuthenticatorKey = {}));\nexport var IdxFeature;\n(function (IdxFeature) {\n IdxFeature[\"PASSWORD_RECOVERY\"] = \"recover-password\";\n IdxFeature[\"REGISTRATION\"] = \"enroll-profile\";\n IdxFeature[\"SOCIAL_IDP\"] = \"redirect-idp\";\n})(IdxFeature || (IdxFeature = {}));\n","import { isAuthApiError } from '../../errors';\nexport function isSameRefreshToken(a, b) {\n return (a.refreshToken === b.refreshToken);\n}\nexport function isRefreshTokenError(err) {\n if (!isAuthApiError(err)) {\n return false;\n }\n if (!err.xhr || !err.xhr.responseJSON) {\n return false;\n }\n const { responseJSON } = err.xhr;\n if (responseJSON.error === 'invalid_grant') {\n return true;\n }\n return false;\n}\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/* eslint-disable complexity, max-statements */\nexport function urlParamsToObject(hashOrSearch) {\n // Predefine regexs for parsing hash\n var plus2space = /\\+/g;\n var paramSplit = /([^&=]+)=?([^&]*)/g;\n var fragment = hashOrSearch || '';\n // Some hash based routers will automatically add a / character after the hash\n if (fragment.charAt(0) === '#' && fragment.charAt(1) === '/') {\n fragment = fragment.substring(2);\n }\n // Remove the leading # or ?\n if (fragment.charAt(0) === '#' || fragment.charAt(0) === '?') {\n fragment = fragment.substring(1);\n }\n var obj = {};\n // Loop until we have no more params\n var param;\n while (true) { // eslint-disable-line no-constant-condition\n param = paramSplit.exec(fragment);\n if (!param) {\n break;\n }\n var key = param[1];\n var value = param[2];\n // id_token should remain base64url encoded\n if (key === 'id_token' || key === 'access_token' || key === 'code') {\n obj[key] = value;\n }\n else {\n obj[key] = decodeURIComponent(value.replace(plus2space, ' '));\n }\n }\n return obj;\n}\n","/* 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/* eslint-disable complexity, max-statements */\nimport AuthSdkError from '../../errors/AuthSdkError';\nexport function validateClaims(sdk, claims, validationParams) {\n var aud = validationParams.clientId;\n var iss = validationParams.issuer;\n var nonce = validationParams.nonce;\n if (!claims || !iss || !aud) {\n throw new AuthSdkError('The jwt, iss, and aud arguments are all required');\n }\n if (nonce && claims.nonce !== nonce) {\n throw new AuthSdkError('OAuth flow response nonce doesn\\'t match request nonce');\n }\n var now = Math.floor(Date.now() / 1000);\n if (claims.iss !== iss) {\n throw new AuthSdkError('The issuer [' + claims.iss + '] ' +\n 'does not match [' + iss + ']');\n }\n if (claims.aud !== aud) {\n throw new AuthSdkError('The audience [' + claims.aud + '] ' +\n 'does not match [' + aud + ']');\n }\n if (claims.iat > claims.exp) {\n throw new AuthSdkError('The JWT expired before it was issued');\n }\n if (!sdk.options.ignoreLifetime) {\n if ((now - sdk.options.maxClockSkew) > claims.exp) {\n throw new AuthSdkError('The JWT expired and is no longer valid');\n }\n if (claims.iat > (now + sdk.options.maxClockSkew)) {\n throw new AuthSdkError('The JWT was issued in the future');\n }\n }\n}\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 */\nfunction isObjectWithProperties(obj) {\n if (!obj || typeof obj !== 'object' || Object.values(obj).length === 0) {\n return false;\n }\n return true;\n}\nexport function isOAuthTransactionMeta(obj) {\n if (!isObjectWithProperties(obj)) {\n return false;\n }\n return !!obj.redirectUri || !!obj.responseType;\n}\nexport function isPKCETransactionMeta(obj) {\n if (!isOAuthTransactionMeta(obj)) {\n return false;\n }\n return !!obj.codeVerifier;\n}\nexport function isIdxTransactionMeta(obj) {\n if (!isPKCETransactionMeta(obj)) {\n return false;\n }\n return !!obj.interactionHandle;\n}\nexport function isCustomAuthTransactionMeta(obj) {\n if (!isObjectWithProperties(obj)) {\n return false;\n }\n const isAllStringValues = Object.values(obj).find((value) => (typeof value !== 'string')) === undefined;\n return isAllStringValues;\n}\nexport function isTransactionMeta(obj) {\n if (isOAuthTransactionMeta(obj) || isCustomAuthTransactionMeta(obj)) {\n return true;\n }\n return false;\n}\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 */\nexport function isToken(obj) {\n if (obj &&\n (obj.accessToken || obj.idToken || obj.refreshToken) &&\n Array.isArray(obj.scopes)) {\n return true;\n }\n return false;\n}\nexport function isAccessToken(obj) {\n return obj && obj.accessToken;\n}\nexport function isIDToken(obj) {\n return obj && obj.idToken;\n}\nexport function isRefreshToken(obj) {\n return obj && obj.refreshToken;\n}\n","/* eslint-disable complexity */\nimport { AuthSdkError } from '../../errors';\nimport { isAccessToken, isIDToken, isRefreshToken } from '../../types';\nexport function validateToken(token, type) {\n if (!isIDToken(token) && !isAccessToken(token) && !isRefreshToken(token)) {\n throw new AuthSdkError('Token must be an Object with scopes, expiresAt, and one of: an idToken, accessToken, or refreshToken property');\n }\n if (type === 'accessToken' && !isAccessToken(token)) {\n throw new AuthSdkError('invalid accessToken');\n }\n if (type === 'idToken' && !isIDToken(token)) {\n throw new AuthSdkError('invalid idToken');\n }\n if (type === 'refreshToken' && !isRefreshToken(token)) {\n throw new AuthSdkError('invalid refreshToken');\n }\n}\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 { AuthSdkError } from '../errors';\nimport { base64UrlToString } from '../crypto';\nexport function decodeToken(token) {\n var jwt = token.split('.');\n var decodedToken;\n try {\n decodedToken = {\n header: JSON.parse(base64UrlToString(jwt[0])),\n payload: JSON.parse(base64UrlToString(jwt[1])),\n signature: jwt[2]\n };\n }\n catch (e) {\n throw new AuthSdkError('Malformed token');\n }\n return decodedToken;\n}\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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/* eslint complexity:[0,8] */\nimport { post } from '../http';\nimport { toQueryString } from '../util';\nimport { getOAuthUrls, } from './util/oauth';\nimport { btoa } from '../crypto';\nimport AuthSdkError from '../errors/AuthSdkError';\n// refresh tokens have precedence to be revoked if no token is specified\nexport function revokeToken(sdk, token) {\n return __awaiter(this, void 0, void 0, function* () {\n let accessToken = '';\n let refreshToken = '';\n if (token) {\n accessToken = token.accessToken;\n refreshToken = token.refreshToken;\n }\n if (!accessToken && !refreshToken) {\n throw new AuthSdkError('A valid access or refresh token object is required');\n }\n var clientId = sdk.options.clientId;\n var clientSecret = sdk.options.clientSecret;\n if (!clientId) {\n throw new AuthSdkError('A clientId must be specified in the OktaAuth constructor to revoke a token');\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n var revokeUrl = getOAuthUrls(sdk).revokeUrl;\n var args = toQueryString({\n // eslint-disable-next-line camelcase\n token_type_hint: refreshToken ? 'refresh_token' : 'access_token',\n token: refreshToken || accessToken,\n }).slice(1);\n var creds = clientSecret ? btoa(`${clientId}:${clientSecret}`) : btoa(clientId);\n return post(sdk, revokeUrl, args, {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Authorization': 'Basic ' + creds\n }\n });\n });\n}\n","import { getOAuthUrls, getDefaultTokenParams } from './util';\nimport { clone } from '../util';\nimport { postToTokenEndpoint } from './endpoints/token';\nimport { handleOAuthResponse } from './handleOAuthResponse';\n// codeVerifier is required. May pass either an authorizationCode or interactionCode\nexport function exchangeCodeForTokens(sdk, tokenParams, urls) {\n urls = urls || getOAuthUrls(sdk, tokenParams);\n // build params using defaults + options\n tokenParams = Object.assign({}, getDefaultTokenParams(sdk), clone(tokenParams));\n const { authorizationCode, interactionCode, codeVerifier, clientId, redirectUri, scopes, ignoreSignature, state } = tokenParams;\n var getTokenOptions = {\n clientId,\n redirectUri,\n authorizationCode,\n interactionCode,\n codeVerifier,\n };\n return postToTokenEndpoint(sdk, getTokenOptions, urls)\n .then((response) => {\n // `handleOAuthResponse` hanadles responses from both `/authorize` and `/token` endpoints\n // Here we modify the response from `/token` so that it more closely matches a response from `/authorize`\n // `responseType` is used to validate that the expected tokens were returned\n const responseType = ['token']; // an accessToken will always be returned\n if (scopes.indexOf('openid') !== -1) {\n responseType.push('id_token'); // an idToken will be returned if \"openid\" is in the scopes\n }\n const handleResponseOptions = {\n clientId,\n redirectUri,\n scopes,\n responseType,\n ignoreSignature,\n };\n return handleOAuthResponse(sdk, handleResponseOptions, response, urls)\n .then((response) => {\n // For compatibility, \"code\" is returned in the TokenResponse. OKTA-326091\n response.code = authorizationCode;\n response.state = state;\n return response;\n });\n })\n .finally(() => {\n sdk.transactionManager.clear();\n });\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/* eslint-disable max-len */\n/* eslint-disable complexity */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { getWellKnown, getKey } from './endpoints/well-known';\nimport { validateClaims } from './util';\nimport { AuthSdkError } from '../errors';\nimport { decodeToken } from './decodeToken';\nimport * as sdkCrypto from '../crypto';\n// Verify the id token\nexport function verifyToken(sdk, token, validationParams) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!token || !token.idToken) {\n throw new AuthSdkError('Only idTokens may be verified');\n }\n // Decode the Jwt object (may throw)\n var jwt = decodeToken(token.idToken);\n // The configured issuer may point to a frontend proxy.\n // Get the \"real\" issuer from .well-known/openid-configuration\n const configuredIssuer = (validationParams === null || validationParams === void 0 ? void 0 : validationParams.issuer) || sdk.options.issuer;\n const { issuer } = yield getWellKnown(sdk, configuredIssuer);\n var validationOptions = Object.assign({\n // base options, can be overridden by params\n clientId: sdk.options.clientId,\n ignoreSignature: sdk.options.ignoreSignature\n }, validationParams, {\n // final options, cannot be overridden\n issuer\n });\n // Standard claim validation (may throw)\n validateClaims(sdk, jwt.payload, validationOptions);\n // If the browser doesn't support native crypto or we choose not\n // to verify the signature, bail early\n if (validationOptions.ignoreSignature == true || !sdk.features.isTokenVerifySupported()) {\n return token;\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const key = yield getKey(sdk, token.issuer, jwt.header.kid);\n const valid = yield sdkCrypto.verifyToken(token.idToken, key);\n if (!valid) {\n throw new AuthSdkError('The token signature is not valid');\n }\n if (validationParams && validationParams.accessToken && token.claims.at_hash) {\n const hash = yield sdkCrypto.getOidcHash(validationParams.accessToken);\n if (hash !== token.claims.at_hash) {\n throw new AuthSdkError('Token hash verification failed');\n }\n }\n return token;\n });\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/* eslint-disable complexity, max-statements */\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 { clone } from '../util';\nimport { getOAuthUrls, } from './util/oauth';\nimport { AuthSdkError, OAuthError } from '../errors';\nimport { exchangeCodeForTokens } from './exchangeCodeForTokens';\nimport { verifyToken } from './verifyToken';\nimport { getDefaultTokenParams } from './util';\nfunction validateResponse(res, oauthParams) {\n if (res['error'] && res['error_description']) {\n throw new OAuthError(res['error'], res['error_description']);\n }\n if (res.state !== oauthParams.state) {\n throw new AuthSdkError('OAuth flow response state doesn\\'t match request state');\n }\n}\nexport function handleOAuthResponse(sdk, tokenParams, res, urls) {\n return __awaiter(this, void 0, void 0, function* () {\n var pkce = sdk.options.pkce !== false;\n // The result contains an authorization_code and PKCE is enabled \n // `exchangeCodeForTokens` will call /token then call `handleOauthResponse` recursively with the result\n if (pkce && (res.code || res.interaction_code)) {\n return exchangeCodeForTokens(sdk, Object.assign({}, tokenParams, {\n authorizationCode: res.code,\n interactionCode: res.interaction_code\n }), urls);\n }\n tokenParams = tokenParams || getDefaultTokenParams(sdk);\n urls = urls || getOAuthUrls(sdk, tokenParams);\n var responseType = tokenParams.responseType || [];\n if (!Array.isArray(responseType)) {\n responseType = [responseType];\n }\n var scopes;\n if (res.scope) {\n scopes = res.scope.split(' ');\n }\n else {\n scopes = clone(tokenParams.scopes);\n }\n var clientId = tokenParams.clientId || sdk.options.clientId;\n // Handling the result from implicit flow or PKCE token exchange\n validateResponse(res, tokenParams);\n var tokenDict = {};\n var expiresIn = res.expires_in;\n var tokenType = res.token_type;\n var accessToken = res.access_token;\n var idToken = res.id_token;\n var refreshToken = res.refresh_token;\n var now = Math.floor(Date.now() / 1000);\n if (accessToken) {\n var accessJwt = sdk.token.decode(accessToken);\n tokenDict.accessToken = {\n accessToken: accessToken,\n claims: accessJwt.payload,\n expiresAt: Number(expiresIn) + now,\n tokenType: tokenType,\n scopes: scopes,\n authorizeUrl: urls.authorizeUrl,\n userinfoUrl: urls.userinfoUrl\n };\n }\n if (refreshToken) {\n tokenDict.refreshToken = {\n refreshToken: refreshToken,\n // should not be used, this is the accessToken expire time\n // TODO: remove \"expiresAt\" in the next major version OKTA-407224\n expiresAt: Number(expiresIn) + now,\n scopes: scopes,\n tokenUrl: urls.tokenUrl,\n authorizeUrl: urls.authorizeUrl,\n issuer: urls.issuer,\n };\n }\n if (idToken) {\n var idJwt = sdk.token.decode(idToken);\n var idTokenObj = {\n idToken: idToken,\n claims: idJwt.payload,\n expiresAt: idJwt.payload.exp - idJwt.payload.iat + now,\n scopes: scopes,\n authorizeUrl: urls.authorizeUrl,\n issuer: urls.issuer,\n clientId: clientId\n };\n var validationParams = {\n clientId: clientId,\n issuer: urls.issuer,\n nonce: tokenParams.nonce,\n accessToken: accessToken\n };\n if (tokenParams.ignoreSignature !== undefined) {\n validationParams.ignoreSignature = tokenParams.ignoreSignature;\n }\n yield verifyToken(sdk, idTokenObj, validationParams);\n tokenDict.idToken = idTokenObj;\n }\n // Validate received tokens against requested response types \n if (responseType.indexOf('token') !== -1 && !tokenDict.accessToken) {\n // eslint-disable-next-line max-len\n throw new AuthSdkError('Unable to parse OAuth flow response: response type \"token\" was requested but \"access_token\" was not returned.');\n }\n if (responseType.indexOf('id_token') !== -1 && !tokenDict.idToken) {\n // eslint-disable-next-line max-len\n throw new AuthSdkError('Unable to parse OAuth flow response: response type \"id_token\" was requested but \"id_token\" was not returned.');\n }\n return {\n tokens: tokenDict,\n state: res.state,\n code: res.code\n };\n });\n}\n","/* global document */\n/* eslint-disable complexity, max-statements */\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 { getOAuthUrls, loadFrame, } from './util';\nimport AuthSdkError from '../errors/AuthSdkError';\nimport { prepareTokenParams } from './util/prepareTokenParams';\nimport { buildAuthorizeParams } from './endpoints/authorize';\nimport { addPostMessageListener } from './util';\nimport { handleOAuthResponse } from './handleOAuthResponse';\n/*\n * Retrieve an idToken from an Okta or a third party idp\n *\n * Two main flows:\n *\n * 1) Exchange a sessionToken for a token\n *\n * Required:\n * clientId: passed via the OktaAuth constructor or into getToken\n * sessionToken: 'yourtoken'\n *\n * Optional:\n * redirectUri: defaults to window.location.href\n * scopes: defaults to ['openid', 'email']\n *\n * Forced:\n * prompt: 'none'\n * responseMode: 'okta_post_message'\n * display: undefined\n *\n * 2) Get a token from an idp\n *\n * Required:\n * clientId: passed via the OktaAuth constructor or into getToken\n *\n * Optional:\n * redirectUri: defaults to window.location.href\n * scopes: defaults to ['openid', 'email']\n * idp: defaults to Okta as an idp\n * prompt: no default. Pass 'none' to throw an error if user is not signed in\n *\n * Forced:\n * display: 'popup'\n *\n * Only common optional params shown. Any OAuth parameters not explicitly forced are available to override\n *\n * @param {Object} oauthOptions\n * @param {String} [oauthOptions.clientId] ID of this client\n * @param {String} [oauthOptions.redirectUri] URI that the iframe or popup will go to once authenticated\n * @param {String[]} [oauthOptions.scopes] OAuth 2.0 scopes to request (openid must be specified)\n * @param {String} [oauthOptions.idp] ID of an external IdP to use for user authentication\n * @param {String} [oauthOptions.sessionToken] Bootstrap Session Token returned by the Okta Authentication API\n * @param {String} [oauthOptions.prompt] Determines whether the Okta login will be displayed on failure.\n * Use 'none' to prevent this behavior\n *\n * @param {Object} options\n * @param {Integer} [options.timeout] Time in ms before the flow is automatically terminated. Defaults to 120000\n * @param {String} [options.popupTitle] Title dispayed in the popup.\n * Defaults to 'External Identity Provider User Authentication'\n */\nexport function getToken(sdk, options) {\n if (arguments.length > 2) {\n return Promise.reject(new AuthSdkError('As of version 3.0, \"getToken\" takes only a single set of options'));\n }\n options = options || {};\n // window object cannot be serialized, save for later use\n // TODO: move popup related params into a separate options object\n const popupWindow = options.popupWindow;\n options.popupWindow = undefined;\n return prepareTokenParams(sdk, options)\n .then(function (tokenParams) {\n // Start overriding any options that don't make sense\n var sessionTokenOverrides = {\n prompt: 'none',\n responseMode: 'okta_post_message',\n display: null\n };\n var idpOverrides = {\n display: 'popup'\n };\n if (options.sessionToken) {\n Object.assign(tokenParams, sessionTokenOverrides);\n }\n else if (options.idp) {\n Object.assign(tokenParams, idpOverrides);\n }\n // Use the query params to build the authorize url\n var requestUrl, endpoint, urls;\n // Get authorizeUrl and issuer\n urls = getOAuthUrls(sdk, tokenParams);\n endpoint = options.codeVerifier ? urls.tokenUrl : urls.authorizeUrl;\n requestUrl = endpoint + buildAuthorizeParams(tokenParams);\n // Determine the flow type\n var flowType;\n if (tokenParams.sessionToken || tokenParams.display === null) {\n flowType = 'IFRAME';\n }\n else if (tokenParams.display === 'popup') {\n flowType = 'POPUP';\n }\n else {\n flowType = 'IMPLICIT';\n }\n // Execute the flow type\n switch (flowType) {\n case 'IFRAME':\n var iframePromise = addPostMessageListener(sdk, options.timeout, tokenParams.state);\n var iframeEl = loadFrame(requestUrl);\n return iframePromise\n .then(function (res) {\n return handleOAuthResponse(sdk, tokenParams, res, urls);\n })\n .finally(function () {\n var _a;\n if (document.body.contains(iframeEl)) {\n (_a = iframeEl.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(iframeEl);\n }\n });\n case 'POPUP':\n var oauthPromise; // resolves with OAuth response\n // Add listener on postMessage before window creation, so\n // postMessage isn't triggered before we're listening\n if (tokenParams.responseMode === 'okta_post_message') {\n if (!sdk.features.isPopupPostMessageSupported()) {\n throw new AuthSdkError('This browser doesn\\'t have full postMessage support');\n }\n oauthPromise = addPostMessageListener(sdk, options.timeout, tokenParams.state);\n }\n // Redirect for authorization\n // popupWindown can be null when popup is blocked\n if (popupWindow) {\n popupWindow.location.assign(requestUrl);\n }\n // The popup may be closed without receiving an OAuth response. Setup a poller to monitor the window.\n var popupPromise = new Promise(function (resolve, reject) {\n var closePoller = setInterval(function () {\n if (!popupWindow || popupWindow.closed) {\n clearInterval(closePoller);\n reject(new AuthSdkError('Unable to parse OAuth flow response'));\n }\n }, 100);\n // Proxy the OAuth promise results\n oauthPromise\n .then(function (res) {\n clearInterval(closePoller);\n resolve(res);\n })\n .catch(function (err) {\n clearInterval(closePoller);\n reject(err);\n });\n });\n return popupPromise\n .then(function (res) {\n return handleOAuthResponse(sdk, tokenParams, res, urls);\n })\n .finally(function () {\n if (popupWindow && !popupWindow.closed) {\n popupWindow.close();\n }\n });\n default:\n throw new AuthSdkError('The full page redirect flow is not supported');\n }\n });\n}\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 { AuthSdkError } from '../errors';\nimport { clone } from '../util';\nimport { getToken } from './getToken';\nexport function getWithoutPrompt(sdk, options) {\n if (arguments.length > 2) {\n return Promise.reject(new AuthSdkError('As of version 3.0, \"getWithoutPrompt\" takes only a single set of options'));\n }\n options = clone(options) || {};\n Object.assign(options, {\n prompt: 'none',\n responseMode: 'okta_post_message',\n display: null\n });\n return getToken(sdk, options);\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\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 { AuthSdkError } from '../errors';\nimport { getOAuthUrls } from './util/oauth';\nimport { isSameRefreshToken } from './util/refreshToken';\nimport { handleOAuthResponse } from './handleOAuthResponse';\nimport { postRefreshToken } from './endpoints/token';\nexport function renewTokensWithRefresh(sdk, tokenParams, refreshTokenObject) {\n return __awaiter(this, void 0, void 0, function* () {\n const { clientId } = sdk.options;\n if (!clientId) {\n throw new AuthSdkError('A clientId must be specified in the OktaAuth constructor to renew tokens');\n }\n const renewTokenParams = Object.assign({}, tokenParams, {\n clientId,\n });\n const tokenResponse = yield postRefreshToken(sdk, renewTokenParams, refreshTokenObject);\n const urls = getOAuthUrls(sdk, tokenParams);\n const { tokens } = yield handleOAuthResponse(sdk, renewTokenParams, tokenResponse, urls);\n // Support rotating refresh tokens\n const { refreshToken } = tokens;\n if (refreshToken && !isSameRefreshToken(refreshToken, refreshTokenObject)) {\n sdk.tokenManager.updateRefreshToken(refreshToken);\n }\n return tokens;\n });\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\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 { AuthSdkError } from '../errors';\nimport { isAccessToken, isIDToken } from '../types';\nimport { getWithoutPrompt } from './getWithoutPrompt';\nimport { renewTokensWithRefresh } from './renewTokensWithRefresh';\nfunction throwInvalidTokenError() {\n throw new AuthSdkError('Renew must be passed a token with an array of scopes and an accessToken or idToken');\n}\n// Multiple tokens may have come back. Return only the token which was requested.\nfunction getSingleToken(originalToken, tokens) {\n if (isIDToken(originalToken)) {\n return tokens.idToken;\n }\n if (isAccessToken(originalToken)) {\n return tokens.accessToken;\n }\n throwInvalidTokenError();\n}\n// If we have a refresh token, renew using that, otherwise getWithoutPrompt\nexport function renewToken(sdk, token) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!isIDToken(token) && !isAccessToken(token)) {\n throwInvalidTokenError();\n }\n let tokens = sdk.tokenManager.getTokensSync();\n if (tokens.refreshToken) {\n tokens = yield renewTokensWithRefresh(sdk, {\n scopes: token.scopes,\n }, tokens.refreshToken);\n return getSingleToken(token, tokens);\n }\n var responseType;\n if (sdk.options.pkce) {\n responseType = 'code';\n }\n else if (isAccessToken(token)) {\n responseType = 'token';\n }\n else {\n responseType = 'id_token';\n }\n const { scopes, authorizeUrl, userinfoUrl, issuer } = token;\n return getWithoutPrompt(sdk, {\n responseType,\n scopes,\n authorizeUrl,\n userinfoUrl,\n issuer\n })\n .then(function (res) {\n return getSingleToken(token, res.tokens);\n });\n });\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\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 { AuthSdkError } from '../errors';\nimport { getWithoutPrompt } from './getWithoutPrompt';\nimport { renewTokensWithRefresh } from './renewTokensWithRefresh';\nimport { getDefaultTokenParams } from './util';\n// If we have a refresh token, renew using that, otherwise getWithoutPrompt\n// eslint-disable-next-line complexity\nexport function renewTokens(sdk, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const tokens = sdk.tokenManager.getTokensSync();\n if (tokens.refreshToken) {\n return renewTokensWithRefresh(sdk, options || {}, tokens.refreshToken);\n }\n if (!tokens.accessToken && !tokens.idToken) {\n throw new AuthSdkError('renewTokens() was called but there is no existing token');\n }\n const accessToken = tokens.accessToken || {};\n const idToken = tokens.idToken || {};\n const scopes = accessToken.scopes || idToken.scopes;\n if (!scopes) {\n throw new AuthSdkError('renewTokens: invalid tokens: could not read scopes');\n }\n const authorizeUrl = accessToken.authorizeUrl || idToken.authorizeUrl;\n if (!authorizeUrl) {\n throw new AuthSdkError('renewTokens: invalid tokens: could not read authorizeUrl');\n }\n const userinfoUrl = accessToken.userinfoUrl || sdk.options.userinfoUrl;\n const issuer = idToken.issuer || sdk.options.issuer;\n // Get tokens using the SSO cookie\n options = Object.assign({\n scopes,\n authorizeUrl,\n userinfoUrl,\n issuer\n }, options);\n if (sdk.options.pkce) {\n options.responseType = 'code';\n }\n else {\n const { responseType } = getDefaultTokenParams(sdk);\n options.responseType = responseType;\n }\n return getWithoutPrompt(sdk, options)\n .then(res => res.tokens);\n });\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/* eslint-disable complexity */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { isFunction } from '../util';\nimport { AuthSdkError, OAuthError } from '../errors';\nimport { httpRequest } from '../http';\nimport { isAccessToken, isIDToken } from '../types';\nexport function getUserInfo(sdk, accessTokenObject, idTokenObject) {\n return __awaiter(this, void 0, void 0, function* () {\n // If token objects were not passed, attempt to read from the TokenManager\n if (!accessTokenObject) {\n accessTokenObject = (yield sdk.tokenManager.getTokens()).accessToken;\n }\n if (!idTokenObject) {\n idTokenObject = (yield sdk.tokenManager.getTokens()).idToken;\n }\n if (!accessTokenObject || !isAccessToken(accessTokenObject)) {\n return Promise.reject(new AuthSdkError('getUserInfo requires an access token object'));\n }\n if (!idTokenObject || !isIDToken(idTokenObject)) {\n return Promise.reject(new AuthSdkError('getUserInfo requires an ID token object'));\n }\n return httpRequest(sdk, {\n url: accessTokenObject.userinfoUrl,\n method: 'GET',\n accessToken: accessTokenObject.accessToken\n })\n .then(userInfo => {\n // Only return the userinfo response if subjects match to mitigate token substitution attacks\n if (userInfo.sub === idTokenObject.claims.sub) {\n return userInfo;\n }\n return Promise.reject(new AuthSdkError('getUserInfo request was rejected due to token mismatch'));\n })\n .catch(function (err) {\n if (err.xhr && (err.xhr.status === 401 || err.xhr.status === 403)) {\n var authenticateHeader;\n if (err.xhr.headers && isFunction(err.xhr.headers.get) && err.xhr.headers.get('WWW-Authenticate')) {\n authenticateHeader = err.xhr.headers.get('WWW-Authenticate');\n }\n else if (isFunction(err.xhr.getResponseHeader)) {\n authenticateHeader = err.xhr.getResponseHeader('WWW-Authenticate');\n }\n if (authenticateHeader) {\n var errorMatches = authenticateHeader.match(/error=\"(.*?)\"/) || [];\n var errorDescriptionMatches = authenticateHeader.match(/error_description=\"(.*?)\"/) || [];\n var error = errorMatches[1];\n var errorDescription = errorDescriptionMatches[1];\n if (error && errorDescription) {\n err = new OAuthError(error, errorDescription);\n }\n }\n }\n throw err;\n });\n });\n}\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 { AuthSdkError } from '../errors';\nimport { clone } from '../util';\nimport { getToken } from './getToken';\nimport { loadPopup } from './util';\nexport function getWithPopup(sdk, options) {\n if (arguments.length > 2) {\n return Promise.reject(new AuthSdkError('As of version 3.0, \"getWithPopup\" takes only a single set of options'));\n }\n // some browsers (safari, firefox) block popup if it's initialed from an async process\n // here we create the popup window immediately after user interaction\n // then redirect to the /authorize endpoint when the requestUrl is available\n const popupWindow = loadPopup('/', options);\n options = clone(options) || {};\n Object.assign(options, {\n display: 'popup',\n responseMode: 'okta_post_message',\n popupWindow\n });\n return getToken(sdk, options);\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/* 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 { AuthSdkError } from '../errors';\nimport { clone } from '../util';\nimport { prepareTokenParams, createOAuthMeta } from './util';\nimport { buildAuthorizeParams } from './endpoints/authorize';\nexport function getWithRedirect(sdk, options) {\n return __awaiter(this, arguments, void 0, function* () {\n if (arguments.length > 2) {\n return Promise.reject(new AuthSdkError('As of version 3.0, \"getWithRedirect\" takes only a single set of options'));\n }\n options = clone(options) || {};\n const tokenParams = yield prepareTokenParams(sdk, options);\n const meta = createOAuthMeta(sdk, tokenParams);\n const requestUrl = meta.urls.authorizeUrl + buildAuthorizeParams(tokenParams);\n sdk.transactionManager.save(meta, { oauth: true });\n sdk.token.getWithRedirect._setLocation(requestUrl);\n });\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/* eslint-disable complexity */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { AuthSdkError } from '../errors';\nimport { isInteractionRequiredError, urlParamsToObject } from './util';\nimport { isString } from '../util';\nimport { handleOAuthResponse } from './handleOAuthResponse';\nfunction removeHash(sdk) {\n var nativeHistory = sdk.token.parseFromUrl._getHistory();\n var nativeDoc = sdk.token.parseFromUrl._getDocument();\n var nativeLoc = sdk.token.parseFromUrl._getLocation();\n if (nativeHistory && nativeHistory.replaceState) {\n nativeHistory.replaceState(null, nativeDoc.title, nativeLoc.pathname + nativeLoc.search);\n }\n else {\n nativeLoc.hash = '';\n }\n}\nfunction removeSearch(sdk) {\n var nativeHistory = sdk.token.parseFromUrl._getHistory();\n var nativeDoc = sdk.token.parseFromUrl._getDocument();\n var nativeLoc = sdk.token.parseFromUrl._getLocation();\n if (nativeHistory && nativeHistory.replaceState) {\n nativeHistory.replaceState(null, nativeDoc.title, nativeLoc.pathname + nativeLoc.hash);\n }\n else {\n nativeLoc.search = '';\n }\n}\nexport function getResponseMode(sdk) {\n // https://openid.net/specs/openid-connect-core-1_0.html#Authentication\n var defaultResponseMode = sdk.options.pkce ? 'query' : 'fragment';\n var responseMode = sdk.options.responseMode || defaultResponseMode;\n return responseMode;\n}\nexport function parseOAuthResponseFromUrl(sdk, options) {\n options = options || {};\n if (isString(options)) {\n options = { url: options };\n }\n else {\n options = options;\n }\n var url = options.url;\n var responseMode = options.responseMode || getResponseMode(sdk);\n var nativeLoc = sdk.token.parseFromUrl._getLocation();\n var paramStr;\n if (responseMode === 'query') {\n paramStr = url ? url.substring(url.indexOf('?')) : nativeLoc.search;\n }\n else {\n paramStr = url ? url.substring(url.indexOf('#')) : nativeLoc.hash;\n }\n if (!paramStr) {\n throw new AuthSdkError('Unable to parse a token from the url');\n }\n return urlParamsToObject(paramStr);\n}\nexport function cleanOAuthResponseFromUrl(sdk, options) {\n // Clean hash or search from the url\n const responseMode = options.responseMode || getResponseMode(sdk);\n responseMode === 'query' ? removeSearch(sdk) : removeHash(sdk);\n}\nexport function parseFromUrl(sdk, options) {\n return __awaiter(this, void 0, void 0, function* () {\n options = options || {};\n if (isString(options)) {\n options = { url: options };\n }\n else {\n options = options;\n }\n const res = parseOAuthResponseFromUrl(sdk, options);\n const state = res.state;\n const oauthParams = sdk.transactionManager.load({\n oauth: true,\n pkce: sdk.options.pkce,\n state\n });\n if (!oauthParams) {\n return Promise.reject(new AuthSdkError('Unable to retrieve OAuth redirect params from storage'));\n }\n const urls = oauthParams.urls;\n delete oauthParams.urls;\n if (!options.url) {\n // Clean hash or search from the url\n cleanOAuthResponseFromUrl(sdk, options);\n }\n return handleOAuthResponse(sdk, oauthParams, res, urls)\n .catch(err => {\n if (!isInteractionRequiredError(err)) {\n sdk.transactionManager.clear({\n state\n });\n }\n throw err;\n })\n .then(res => {\n sdk.transactionManager.clear({\n state\n });\n return res;\n });\n });\n}\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/* global window */\nexport function getNativeConsole() {\n if (typeof window !== 'undefined') {\n return window.console;\n }\n else if (typeof console !== 'undefined') {\n return console;\n }\n else {\n return undefined;\n }\n}\nexport function getConsole() {\n var nativeConsole = getNativeConsole();\n if (nativeConsole && nativeConsole.log) {\n return nativeConsole;\n }\n return {\n log: function () { },\n warn: function () { },\n group: function () { },\n groupEnd: function () { }\n };\n}\nexport function warn(text) {\n /* eslint-disable no-console */\n getConsole().warn('[okta-auth-sdk] WARN: ' + text);\n /* eslint-enable */\n}\nexport function deprecate(text) {\n /* eslint-disable no-console */\n getConsole().warn('[okta-auth-sdk] DEPRECATION: ' + text);\n /* eslint-enable */\n}\nexport function deprecateWrap(text, fn) {\n return function () {\n deprecate(text);\n return fn.apply(null, arguments);\n };\n}\n","/* 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 AuthSdkError from '../errors/AuthSdkError';\nimport { warn } from '../util';\nconst Cookies = require('js-cookie');\n// Building this as an object allows us to mock the functions in our tests\nvar storageUtil = {\n // These are shimmed in `OktaAuthBase.ts`\n getHttpCache() {\n return null;\n },\n getPKCEStorage() {\n return null;\n },\n // IE11 bug that Microsoft doesn't plan to fix\n // https://connect.microsoft.com/IE/Feedback/Details/1496040\n browserHasLocalStorage: function () {\n try {\n var storage = storageUtil.getLocalStorage();\n return storageUtil.testStorage(storage);\n }\n catch (e) {\n return false;\n }\n },\n browserHasSessionStorage: function () {\n try {\n var storage = storageUtil.getSessionStorage();\n return storageUtil.testStorage(storage);\n }\n catch (e) {\n return false;\n }\n },\n testStorageType: function (storageType) {\n var supported = false;\n switch (storageType) {\n case 'sessionStorage':\n supported = storageUtil.browserHasSessionStorage();\n break;\n case 'localStorage':\n supported = storageUtil.browserHasLocalStorage();\n break;\n case 'cookie':\n case 'memory':\n supported = true;\n break;\n default:\n supported = false;\n break;\n }\n return supported;\n },\n getStorageByType: function (storageType, options) {\n let storageProvider;\n switch (storageType) {\n case 'sessionStorage':\n storageProvider = storageUtil.getSessionStorage();\n break;\n case 'localStorage':\n storageProvider = storageUtil.getLocalStorage();\n break;\n case 'cookie':\n storageProvider = storageUtil.getCookieStorage(options);\n break;\n case 'memory':\n storageProvider = storageUtil.getInMemoryStorage();\n break;\n default:\n throw new AuthSdkError(`Unrecognized storage option: ${storageType}`);\n break;\n }\n return storageProvider;\n },\n findStorageType: function (types) {\n let curType;\n let nextType;\n types = types.slice(); // copy array\n curType = types.shift();\n nextType = types.length ? types[0] : null;\n if (!nextType) {\n return curType;\n }\n if (storageUtil.testStorageType(curType)) {\n return curType;\n }\n // preferred type was unsupported.\n warn(`This browser doesn't support ${curType}. Switching to ${nextType}.`);\n // fallback to the next type. this is a recursive call\n return storageUtil.findStorageType(types);\n },\n getLocalStorage: function () {\n return localStorage;\n },\n getSessionStorage: function () {\n return sessionStorage;\n },\n // Provides webStorage-like interface for cookies\n getCookieStorage: function (options) {\n const secure = options.secure;\n const sameSite = options.sameSite;\n const sessionCookie = options.sessionCookie;\n if (typeof secure === 'undefined' || typeof sameSite === 'undefined') {\n throw new AuthSdkError('getCookieStorage: \"secure\" and \"sameSite\" options must be provided');\n }\n const storage = {\n getItem: storageUtil.storage.get,\n setItem: function (key, value, expiresAt = '2200-01-01T00:00:00.000Z') {\n // By defauilt, cookie shouldn't expire\n expiresAt = (sessionCookie ? null : expiresAt);\n storageUtil.storage.set(key, value, expiresAt, {\n secure: secure,\n sameSite: sameSite,\n });\n },\n removeItem: function (key) {\n storageUtil.storage.delete(key);\n }\n };\n if (!options.useSeparateCookies) {\n return storage;\n }\n // Tokens are stored separately because cookies have size limits.\n // Can only be used when storing an object value. Object properties will be saved to separate cookies.\n // Each property of the object must also be an object.\n return {\n getItem: function (key) {\n var data = storage.getItem(); // read all cookies\n var value = {};\n Object.keys(data).forEach(k => {\n if (k.indexOf(key) === 0) { // filter out unrelated cookies\n value[k.replace(`${key}_`, '')] = JSON.parse(data[k]); // populate with cookie data\n }\n });\n return JSON.stringify(value);\n },\n setItem: function (key, value) {\n var existingValues = JSON.parse(this.getItem(key));\n value = JSON.parse(value);\n // Set key-value pairs from input to cookies\n Object.keys(value).forEach(k => {\n var storageKey = key + '_' + k;\n var valueToStore = JSON.stringify(value[k]);\n storage.setItem(storageKey, valueToStore);\n delete existingValues[k];\n });\n // Delete unmatched keys from existing cookies\n Object.keys(existingValues).forEach(k => {\n storage.removeItem(key + '_' + k);\n });\n },\n removeItem: function (key) {\n var existingValues = JSON.parse(this.getItem(key));\n Object.keys(existingValues).forEach(k => {\n storage.removeItem(key + '_' + k);\n });\n }\n };\n },\n // Provides an in-memory solution\n inMemoryStore: {},\n getInMemoryStorage: function () {\n return {\n getItem: (key) => {\n return this.inMemoryStore[key];\n },\n setItem: (key, value) => {\n this.inMemoryStore[key] = value;\n }\n };\n },\n testStorage: function (storage) {\n var key = 'okta-test-storage';\n try {\n storage.setItem(key, key);\n storage.removeItem(key);\n return true;\n }\n catch (e) {\n return false;\n }\n },\n storage: {\n set: function (name, value, expiresAt, options) {\n const { sameSite, secure } = options;\n if (typeof secure === 'undefined' || typeof sameSite === 'undefined') {\n throw new AuthSdkError('storage.set: \"secure\" and \"sameSite\" options must be provided');\n }\n var cookieOptions = {\n path: options.path || '/',\n secure,\n sameSite\n };\n // eslint-disable-next-line no-extra-boolean-cast\n if (!!(Date.parse(expiresAt))) {\n // Expires value can be converted to a Date object.\n //\n // If the 'expiresAt' value is not provided, or the value cannot be\n // parsed as a Date object, the cookie will set as a session cookie.\n cookieOptions.expires = new Date(expiresAt);\n }\n Cookies.set(name, value, cookieOptions);\n return storageUtil.storage.get(name);\n },\n get: function (name) {\n return Cookies.get(name);\n },\n delete: function (name) {\n return Cookies.remove(name, { path: '/' });\n }\n }\n};\nexport default storageUtil;\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 */\nexport default class SdkClock {\n constructor(localOffset) {\n // Calculated local clock offset from server time (in milliseconds). Can be positive or negative.\n this.localOffset = parseInt(localOffset || 0);\n }\n // factory method. Create an instance of a clock from current context.\n static create( /* sdk, options */) {\n // TODO: calculate localOffset\n var localOffset = 0;\n return new SdkClock(localOffset);\n }\n // Return the current time (in seconds)\n now() {\n var now = (Date.now() + this.localOffset) / 1000;\n return now;\n }\n}\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/* global window */\nimport { EVENT_EXPIRED } from '../TokenManager';\nimport { AuthSdkError } from '../errors';\nimport { isBrowser } from '../features';\nfunction shouldThrottleRenew(renewTimeQueue) {\n let res = false;\n renewTimeQueue.push(Date.now());\n if (renewTimeQueue.length >= 10) {\n // get and remove first item from queue\n const firstTime = renewTimeQueue.shift();\n const lastTime = renewTimeQueue[renewTimeQueue.length - 1];\n res = lastTime - firstTime < 30 * 1000;\n }\n return res;\n}\nexport class TokenService {\n constructor(tokenManager, options = {}) {\n this.tokenManager = tokenManager;\n this.options = options;\n this.storageListener = undefined;\n this.onTokenExpiredHandler = undefined;\n }\n start() {\n const renewTimeQueue = [];\n this.onTokenExpiredHandler = (key) => {\n if (this.options.autoRenew) {\n if (shouldThrottleRenew(renewTimeQueue)) {\n const error = new AuthSdkError('Too many token renew requests');\n this.tokenManager.emitError(error);\n }\n else {\n this.tokenManager.renew(key).catch(() => { }); // Renew errors will emit an \"error\" event \n }\n }\n else if (this.options.autoRemove) {\n this.tokenManager.remove(key);\n }\n };\n this.tokenManager.on(EVENT_EXPIRED, this.onTokenExpiredHandler);\n this.tokenManager.setExpireEventTimeoutAll();\n if (this.options.syncStorage && isBrowser()) {\n // Sync authState cross multiple tabs when localStorage is used as the storageProvider\n // A StorageEvent is sent to a window when a storage area it has access to is changed \n // within the context of another document.\n // https://developer.mozilla.org/en-US/docs/Web/API/StorageEvent\n this.storageListener = ({ key, newValue, oldValue }) => {\n const handleCrossTabsStorageChange = () => {\n this.tokenManager.resetExpireEventTimeoutAll();\n this.tokenManager.emitEventsForCrossTabsStorageUpdate(newValue, oldValue);\n };\n // Skip if:\n // not from localStorage.clear (event.key is null)\n // event.key is not the storageKey\n // oldValue === newValue\n if (key && (key !== this.options.storageKey || newValue === oldValue)) {\n return;\n }\n // LocalStorage cross tabs update is not synced in IE, set a 1s timer by default to read latest value\n // https://stackoverflow.com/questions/24077117/localstorage-in-win8-1-ie11-does-not-synchronize\n this.syncTimeout = setTimeout(() => handleCrossTabsStorageChange(), this.options._storageEventDelay);\n };\n window.addEventListener('storage', this.storageListener);\n }\n }\n stop() {\n this.tokenManager.clearExpireEventTimeoutAll();\n this.tokenManager.off(EVENT_EXPIRED, this.onTokenExpiredHandler);\n if (this.options.syncStorage && isBrowser()) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n window.removeEventListener('storage', this.storageListener);\n clearTimeout(this.syncTimeout);\n }\n }\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\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 { removeNils, clone } from './util';\nimport { AuthSdkError } from './errors';\nimport { isRefreshTokenError, validateToken } from './oidc/util';\nimport { isLocalhost, isIE11OrLess } from './features';\nimport { TOKEN_STORAGE_NAME } from './constants';\nimport SdkClock from './clock';\nimport { isIDToken, isAccessToken, isRefreshToken } from './types';\nimport { REFRESH_TOKEN_STORAGE_KEY } from './constants';\nimport { TokenService } from './services/TokenService';\nconst DEFAULT_OPTIONS = {\n autoRenew: true,\n autoRemove: true,\n clearPendingRemoveTokens: true,\n storage: undefined,\n expireEarlySeconds: 30,\n storageKey: TOKEN_STORAGE_NAME,\n syncStorage: true,\n _storageEventDelay: 0\n};\nexport const EVENT_EXPIRED = 'expired';\nexport const EVENT_RENEWED = 'renewed';\nexport const EVENT_ADDED = 'added';\nexport const EVENT_REMOVED = 'removed';\nexport const EVENT_ERROR = 'error';\nfunction defaultState() {\n return {\n expireTimeouts: {},\n renewPromise: null\n };\n}\nexport class TokenManager {\n constructor(sdk, options = {}) {\n this.sdk = sdk;\n this.emitter = sdk.emitter;\n if (!this.emitter) {\n throw new AuthSdkError('Emitter should be initialized before TokenManager');\n }\n this.service = null;\n options = Object.assign({}, DEFAULT_OPTIONS, removeNils(options));\n if (isIE11OrLess()) {\n options._storageEventDelay = options._storageEventDelay || 1000;\n }\n if (!isLocalhost()) {\n options.expireEarlySeconds = DEFAULT_OPTIONS.expireEarlySeconds;\n }\n this.options = options;\n const storageOptions = removeNils({\n storageKey: options.storageKey,\n secure: options.secure,\n });\n if (typeof options.storage === 'object') {\n // A custom storage provider must implement getItem(key) and setItem(key, val)\n storageOptions.storageProvider = options.storage;\n }\n else if (options.storage) {\n storageOptions.storageType = options.storage;\n }\n this.storage = sdk.storageManager.getTokenStorage(Object.assign(Object.assign({}, storageOptions), { useSeparateCookies: true }));\n this.clock = SdkClock.create( /* sdk, options */);\n this.state = defaultState();\n this.on = this.emitter.on.bind(this.emitter);\n this.off = this.emitter.off.bind(this.emitter);\n }\n start() {\n if (this.service) {\n this.stop();\n }\n if (this.options.clearPendingRemoveTokens) {\n this.clearPendingRemoveTokens();\n }\n this.service = new TokenService(this, this.getOptions());\n this.service.start();\n }\n stop() {\n if (this.service) {\n this.service.stop();\n this.service = null;\n }\n }\n getOptions() {\n return clone(this.options);\n }\n getExpireTime(token) {\n const expireEarlySeconds = this.options.expireEarlySeconds || 0;\n var expireTime = token.expiresAt - expireEarlySeconds;\n return expireTime;\n }\n hasExpired(token) {\n var expireTime = this.getExpireTime(token);\n return expireTime <= this.clock.now();\n }\n emitExpired(key, token) {\n this.emitter.emit(EVENT_EXPIRED, key, token);\n }\n emitRenewed(key, freshToken, oldToken) {\n this.emitter.emit(EVENT_RENEWED, key, freshToken, oldToken);\n }\n emitAdded(key, token) {\n this.emitter.emit(EVENT_ADDED, key, token);\n }\n emitRemoved(key, token) {\n this.emitter.emit(EVENT_REMOVED, key, token);\n }\n emitError(error) {\n this.emitter.emit(EVENT_ERROR, error);\n }\n emitEventsForCrossTabsStorageUpdate(newValue, oldValue) {\n const oldTokens = this.getTokensFromStorageValue(oldValue);\n const newTokens = this.getTokensFromStorageValue(newValue);\n Object.keys(newTokens).forEach(key => {\n const oldToken = oldTokens[key];\n const newToken = newTokens[key];\n if (JSON.stringify(oldToken) !== JSON.stringify(newToken)) {\n this.emitAdded(key, newToken);\n }\n });\n Object.keys(oldTokens).forEach(key => {\n const oldToken = oldTokens[key];\n const newToken = newTokens[key];\n if (!newToken) {\n this.emitRemoved(key, oldToken);\n }\n });\n }\n clearExpireEventTimeout(key) {\n clearTimeout(this.state.expireTimeouts[key]);\n delete this.state.expireTimeouts[key];\n // Remove the renew promise (if it exists)\n this.state.renewPromise = null;\n }\n clearExpireEventTimeoutAll() {\n var expireTimeouts = this.state.expireTimeouts;\n for (var key in expireTimeouts) {\n if (!Object.prototype.hasOwnProperty.call(expireTimeouts, key)) {\n continue;\n }\n this.clearExpireEventTimeout(key);\n }\n }\n setExpireEventTimeout(key, token) {\n if (isRefreshToken(token)) {\n return;\n }\n var expireTime = this.getExpireTime(token);\n var expireEventWait = Math.max(expireTime - this.clock.now(), 0) * 1000;\n // Clear any existing timeout\n this.clearExpireEventTimeout(key);\n var expireEventTimeout = setTimeout(() => {\n this.emitExpired(key, token);\n }, expireEventWait);\n // Add a new timeout\n this.state.expireTimeouts[key] = expireEventTimeout;\n }\n setExpireEventTimeoutAll() {\n var tokenStorage = this.storage.getStorage();\n for (var key in tokenStorage) {\n if (!Object.prototype.hasOwnProperty.call(tokenStorage, key)) {\n continue;\n }\n var token = tokenStorage[key];\n this.setExpireEventTimeout(key, token);\n }\n }\n // reset timeouts to setup autoRenew for tokens from other document context (tabs)\n resetExpireEventTimeoutAll() {\n this.clearExpireEventTimeoutAll();\n this.setExpireEventTimeoutAll();\n }\n add(key, token) {\n var tokenStorage = this.storage.getStorage();\n validateToken(token);\n tokenStorage[key] = token;\n this.storage.setStorage(tokenStorage);\n this.emitAdded(key, token);\n this.setExpireEventTimeout(key, token);\n }\n getSync(key) {\n var tokenStorage = this.storage.getStorage();\n return tokenStorage[key];\n }\n get(key) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.getSync(key);\n });\n }\n getTokensSync() {\n const tokens = {};\n const tokenStorage = this.storage.getStorage();\n Object.keys(tokenStorage).forEach(key => {\n const token = tokenStorage[key];\n if (isAccessToken(token)) {\n tokens.accessToken = token;\n }\n else if (isIDToken(token)) {\n tokens.idToken = token;\n }\n else if (isRefreshToken(token)) {\n tokens.refreshToken = token;\n }\n });\n return tokens;\n }\n getTokens() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.getTokensSync();\n });\n }\n getStorageKeyByType(type) {\n const tokenStorage = this.storage.getStorage();\n const key = Object.keys(tokenStorage).filter(key => {\n const token = tokenStorage[key];\n return (isAccessToken(token) && type === 'accessToken')\n || (isIDToken(token) && type === 'idToken')\n || (isRefreshToken(token) && type === 'refreshToken');\n })[0];\n return key;\n }\n getTokenType(token) {\n if (isAccessToken(token)) {\n return 'accessToken';\n }\n if (isIDToken(token)) {\n return 'idToken';\n }\n if (isRefreshToken(token)) {\n return 'refreshToken';\n }\n throw new AuthSdkError('Unknown token type');\n }\n setTokens(tokens, \n // TODO: callbacks can be removed in the next major version OKTA-407224\n accessTokenCb, idTokenCb, refreshTokenCb) {\n const handleTokenCallback = (key, token) => {\n const type = this.getTokenType(token);\n if (type === 'accessToken') {\n accessTokenCb && accessTokenCb(key, token);\n }\n else if (type === 'idToken') {\n idTokenCb && idTokenCb(key, token);\n }\n else if (type === 'refreshToken') {\n refreshTokenCb && refreshTokenCb(key, token);\n }\n };\n const handleAdded = (key, token) => {\n this.emitAdded(key, token);\n this.setExpireEventTimeout(key, token);\n handleTokenCallback(key, token);\n };\n const handleRenewed = (key, token, oldToken) => {\n this.emitRenewed(key, token, oldToken);\n this.clearExpireEventTimeout(key);\n this.setExpireEventTimeout(key, token);\n handleTokenCallback(key, token);\n };\n const handleRemoved = (key, token) => {\n this.clearExpireEventTimeout(key);\n this.emitRemoved(key, token);\n handleTokenCallback(key, token);\n };\n const types = ['idToken', 'accessToken', 'refreshToken'];\n const existingTokens = this.getTokensSync();\n // valid tokens\n types.forEach((type) => {\n const token = tokens[type];\n if (token) {\n validateToken(token, type);\n }\n });\n // add token to storage\n const storage = types.reduce((storage, type) => {\n const token = tokens[type];\n if (token) {\n const storageKey = this.getStorageKeyByType(type) || type;\n storage[storageKey] = token;\n }\n return storage;\n }, {});\n this.storage.setStorage(storage);\n // emit event and start expiration timer\n types.forEach(type => {\n const newToken = tokens[type];\n const existingToken = existingTokens[type];\n const storageKey = this.getStorageKeyByType(type) || type;\n if (newToken && existingToken) { // renew\n // call handleRemoved first, since it clears timers\n handleRemoved(storageKey, existingToken);\n handleAdded(storageKey, newToken);\n handleRenewed(storageKey, newToken, existingToken);\n }\n else if (newToken) { // add\n handleAdded(storageKey, newToken);\n }\n else if (existingToken) { //remove\n handleRemoved(storageKey, existingToken);\n }\n });\n }\n remove(key) {\n // Clear any listener for this token\n this.clearExpireEventTimeout(key);\n var tokenStorage = this.storage.getStorage();\n var removedToken = tokenStorage[key];\n delete tokenStorage[key];\n this.storage.setStorage(tokenStorage);\n this.emitRemoved(key, removedToken);\n }\n // TODO: this methods is redundant and can be removed in the next major version OKTA-407224\n renewToken(token) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n return (_a = this.sdk.token) === null || _a === void 0 ? void 0 : _a.renew(token);\n });\n }\n // TODO: this methods is redundant and can be removed in the next major version OKTA-407224\n validateToken(token) {\n return validateToken(token);\n }\n // TODO: renew method should take no param, change in the next major version OKTA-407224\n renew(key) {\n // Multiple callers may receive the same promise. They will all resolve or reject from the same request.\n if (this.state.renewPromise) {\n return this.state.renewPromise;\n }\n try {\n var token = this.getSync(key);\n if (!token) {\n throw new AuthSdkError('The tokenManager has no token for the key: ' + key);\n }\n }\n catch (e) {\n return Promise.reject(e);\n }\n // Remove existing autoRenew timeout\n this.clearExpireEventTimeout(key);\n // A refresh token means a replace instead of renewal\n // Store the renew promise state, to avoid renewing again\n this.state.renewPromise = this.sdk.token.renewTokens()\n .then(tokens => {\n this.setTokens(tokens);\n // resolve token based on the key\n const tokenType = this.getTokenType(token);\n return tokens[tokenType];\n })\n .catch(err => {\n // If renew fails, remove token and emit error\n if (isRefreshTokenError(err) || err.name === 'OAuthError' || err.name === 'AuthSdkError') {\n // remove token from storage\n this.remove(key);\n }\n err.tokenKey = key;\n this.emitError(err);\n throw err;\n })\n .finally(() => {\n // Remove existing promise key\n this.state.renewPromise = null;\n });\n return this.state.renewPromise;\n }\n clear() {\n this.clearExpireEventTimeoutAll();\n this.storage.clearStorage();\n }\n clearPendingRemoveTokens() {\n const tokens = this.getTokensSync();\n Object.keys(tokens).forEach(key => {\n if (tokens[key].pendingRemove) {\n this.remove(key);\n }\n });\n }\n getTokensFromStorageValue(value) {\n let tokens;\n try {\n tokens = JSON.parse(value) || {};\n }\n catch (e) {\n tokens = {};\n }\n return tokens;\n }\n updateRefreshToken(token) {\n const key = this.getStorageKeyByType('refreshToken') || REFRESH_TOKEN_STORAGE_KEY;\n // do not emit any event\n var tokenStorage = this.storage.getStorage();\n validateToken(token);\n tokenStorage[key] = token;\n this.storage.setStorage(tokenStorage);\n }\n addPendingRemoveFlags() {\n const tokens = this.getTokensSync();\n Object.keys(tokens).forEach(key => {\n tokens[key].pendingRemove = true;\n });\n this.setTokens(tokens);\n }\n}\n","/*!\n * 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// Implements a queue for synchronous or asynchronous methods\n// Methods will be wrapped in a promise and execute sequentially\n// This can be used to prevent concurrent calls to a single method or a set of methods\nimport { isPromise, warn } from './util';\nclass PromiseQueue {\n constructor() {\n this.queue = [];\n this.running = false;\n }\n // Returns a promise\n // If the method is synchronous, it will resolve when the method completes\n // If the method returns a promise, it will resolve (or reject) with the value from the method's promise\n push(method, thisObject, ...args) {\n return new Promise((resolve, reject) => {\n if (this.queue.length > 0) {\n warn('Async method is being called but another async method is already running. ' +\n 'The new method will be delayed until the previous method completes.');\n }\n this.queue.push({\n method,\n thisObject,\n args,\n resolve,\n reject\n });\n this.run();\n });\n }\n run() {\n if (this.running) {\n return;\n }\n if (this.queue.length === 0) {\n return;\n }\n this.running = true;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n var queueItem = this.queue.shift();\n var res = queueItem.method.apply(queueItem.thisObject, queueItem.args);\n if (isPromise(res)) {\n res.then(queueItem.resolve, queueItem.reject).finally(() => {\n this.running = false;\n this.run();\n });\n }\n else {\n queueItem.resolve(res);\n this.running = false;\n this.run();\n }\n }\n}\nexport default PromiseQueue;\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 */\nimport { AuthSdkError } from '../errors';\nimport { isFingerprintSupported } from '../features';\nimport { addListener, removeListener } from '../oidc';\nexport default function fingerprint(sdk, options) {\n options = options || {};\n if (!isFingerprintSupported()) {\n return Promise.reject(new AuthSdkError('Fingerprinting is not supported on this device'));\n }\n var timeout;\n var iframe;\n var listener;\n var promise = new Promise(function (resolve, reject) {\n iframe = document.createElement('iframe');\n iframe.style.display = 'none';\n // eslint-disable-next-line complexity\n listener = function listener(e) {\n if (!e || !e.data || e.origin !== sdk.getIssuerOrigin()) {\n return;\n }\n try {\n var msg = JSON.parse(e.data);\n }\n catch (err) {\n // iframe messages should all be parsable\n // skip not parsable messages come from other sources in same origin (browser extensions)\n // TODO: add namespace flag in okta-core to distinguish messages that come from other sources\n return;\n }\n if (!msg) {\n return;\n }\n if (msg.type === 'FingerprintAvailable') {\n return resolve(msg.fingerprint);\n }\n if (msg.type === 'FingerprintServiceReady') {\n e.source.postMessage(JSON.stringify({\n type: 'GetFingerprint'\n }), e.origin);\n }\n };\n addListener(window, 'message', listener);\n iframe.src = sdk.getIssuerOrigin() + '/auth/services/devicefingerprint';\n document.body.appendChild(iframe);\n timeout = setTimeout(function () {\n reject(new AuthSdkError('Fingerprinting timed out'));\n }, (options === null || options === void 0 ? void 0 : options.timeout) || 15000);\n });\n return promise.finally(function () {\n clearTimeout(timeout);\n removeListener(window, 'message', listener);\n if (document.body.contains(iframe)) {\n iframe.parentElement.removeChild(iframe);\n }\n });\n}\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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { AuthSdkError } from './errors';\nimport { getConsole } from './util';\nimport { EVENT_ADDED, EVENT_REMOVED } from './TokenManager';\nconst PCancelable = require('p-cancelable');\nexport const INITIAL_AUTH_STATE = null;\nconst DEFAULT_PENDING = {\n updateAuthStatePromise: null,\n canceledTimes: 0\n};\nconst EVENT_AUTH_STATE_CHANGE = 'authStateChange';\nconst MAX_PROMISE_CANCEL_TIMES = 10;\n// only compare first level of authState\nconst isSameAuthState = (prevState, state) => {\n // initial state is null\n if (!prevState) {\n return false;\n }\n return prevState.isAuthenticated === state.isAuthenticated\n && JSON.stringify(prevState.idToken) === JSON.stringify(state.idToken)\n && JSON.stringify(prevState.accessToken) === JSON.stringify(state.accessToken)\n && prevState.error === state.error;\n};\nexport class AuthStateManager {\n constructor(sdk) {\n if (!sdk.emitter) {\n throw new AuthSdkError('Emitter should be initialized before AuthStateManager');\n }\n this._sdk = sdk;\n this._pending = Object.assign({}, DEFAULT_PENDING);\n this._authState = INITIAL_AUTH_STATE;\n this._logOptions = {};\n this._prevAuthState = null;\n // Listen on tokenManager events to start updateState process\n // \"added\" event is emitted in both add and renew process\n // Only listen on \"added\" event to update auth state\n sdk.tokenManager.on(EVENT_ADDED, (key, token) => {\n this._setLogOptions({ event: EVENT_ADDED, key, token });\n this.updateAuthState();\n });\n sdk.tokenManager.on(EVENT_REMOVED, (key, token) => {\n this._setLogOptions({ event: EVENT_REMOVED, key, token });\n this.updateAuthState();\n });\n }\n _setLogOptions(options) {\n this._logOptions = options;\n }\n getAuthState() {\n return this._authState;\n }\n getPreviousAuthState() {\n return this._prevAuthState;\n }\n updateAuthState() {\n return __awaiter(this, void 0, void 0, function* () {\n const { transformAuthState, devMode } = this._sdk.options;\n const log = (status) => {\n const { event, key, token } = this._logOptions;\n getConsole().group(`OKTA-AUTH-JS:updateAuthState: Event:${event} Status:${status}`);\n getConsole().log(key, token);\n getConsole().log('Current authState', this._authState);\n getConsole().groupEnd();\n // clear log options after logging\n this._logOptions = {};\n };\n const emitAuthStateChange = (authState) => {\n if (isSameAuthState(this._authState, authState)) {\n devMode && log('unchanged');\n return;\n }\n this._prevAuthState = this._authState;\n this._authState = authState;\n // emit new authState object\n this._sdk.emitter.emit(EVENT_AUTH_STATE_CHANGE, Object.assign({}, authState));\n devMode && log('emitted');\n };\n const finalPromise = (origPromise) => {\n return this._pending.updateAuthStatePromise.then(() => {\n const curPromise = this._pending.updateAuthStatePromise;\n if (curPromise && curPromise !== origPromise) {\n return finalPromise(curPromise);\n }\n return this.getAuthState();\n });\n };\n if (this._pending.updateAuthStatePromise) {\n if (this._pending.canceledTimes >= MAX_PROMISE_CANCEL_TIMES) {\n // stop canceling then starting a new promise\n // let existing promise finish to prevent running into loops\n devMode && log('terminated');\n return finalPromise(this._pending.updateAuthStatePromise);\n }\n else {\n this._pending.updateAuthStatePromise.cancel();\n }\n }\n /* eslint-disable complexity */\n const cancelablePromise = new PCancelable((resolve, _, onCancel) => {\n onCancel.shouldReject = false;\n onCancel(() => {\n this._pending.updateAuthStatePromise = null;\n this._pending.canceledTimes = this._pending.canceledTimes + 1;\n devMode && log('canceled');\n });\n const emitAndResolve = (authState) => {\n if (cancelablePromise.isCanceled) {\n resolve();\n return;\n }\n // emit event and resolve promise \n emitAuthStateChange(authState);\n resolve();\n // clear pending states after resolve\n this._pending = Object.assign({}, DEFAULT_PENDING);\n };\n this._sdk.isAuthenticated()\n .then(() => {\n if (cancelablePromise.isCanceled) {\n resolve();\n return;\n }\n const { accessToken, idToken, refreshToken } = this._sdk.tokenManager.getTokensSync();\n const authState = {\n accessToken,\n idToken,\n refreshToken,\n isAuthenticated: !!(accessToken && idToken)\n };\n const promise = transformAuthState\n ? transformAuthState(this._sdk, authState)\n : Promise.resolve(authState);\n promise\n .then(authState => emitAndResolve(authState))\n .catch(error => emitAndResolve({\n accessToken,\n idToken,\n refreshToken,\n isAuthenticated: false,\n error\n }));\n });\n });\n /* eslint-enable complexity */\n this._pending.updateAuthStatePromise = cancelablePromise;\n return finalPromise(cancelablePromise);\n });\n }\n subscribe(handler) {\n this._sdk.emitter.on(EVENT_AUTH_STATE_CHANGE, handler);\n }\n unsubscribe(handler) {\n this._sdk.emitter.off(EVENT_AUTH_STATE_CHANGE, handler);\n }\n}\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 AuthSdkError from './errors/AuthSdkError';\n// formerly known as \"storageBuilder\". Represents an object saved under a key/name.\nexport default class SavedObject {\n constructor(storage, storageName) {\n if (!storage) {\n throw new AuthSdkError('\"storage\" is required');\n }\n if (typeof storageName !== 'string' || !storageName.length) {\n throw new AuthSdkError('\"storageName\" is required');\n }\n this.storageName = storageName;\n this.storageProvider = storage;\n }\n //\n // SimpleStorage interface\n //\n getItem(key) {\n return this.getStorage()[key];\n }\n setItem(key, value) {\n return this.updateStorage(key, value);\n }\n removeItem(key) {\n return this.clearStorage(key);\n }\n //\n // StorageProvider interface\n //\n getStorage() {\n var storageString = this.storageProvider.getItem(this.storageName);\n storageString = storageString || '{}';\n try {\n return JSON.parse(storageString);\n }\n catch (e) {\n throw new AuthSdkError('Unable to parse storage string: ' + this.storageName);\n }\n }\n setStorage(obj) {\n try {\n var storageString = obj ? JSON.stringify(obj) : '{}';\n this.storageProvider.setItem(this.storageName, storageString);\n }\n catch (e) {\n throw new AuthSdkError('Unable to set storage: ' + this.storageName);\n }\n }\n clearStorage(key) {\n if (!key) {\n // clear all\n if (this.storageProvider.removeItem) {\n this.storageProvider.removeItem(this.storageName);\n }\n else {\n this.setStorage();\n }\n return;\n }\n var obj = this.getStorage();\n delete obj[key];\n this.setStorage(obj);\n }\n updateStorage(key, value) {\n var obj = this.getStorage();\n obj[key] = value;\n this.setStorage(obj);\n }\n}\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 */\nimport { PKCE_STORAGE_NAME, TOKEN_STORAGE_NAME, TRANSACTION_STORAGE_NAME, SHARED_TRANSACTION_STORAGE_NAME, ORIGINAL_URI_STORAGE_NAME, IDX_RESPONSE_STORAGE_NAME, CACHE_STORAGE_NAME, REDIRECT_OAUTH_PARAMS_NAME } from './constants';\nimport SavedObject from './SavedObject';\nimport { isBrowser } from './features';\nimport { warn } from './util';\nimport { AuthSdkError } from './errors';\nfunction logServerSideMemoryStorageWarning(options) {\n if (!isBrowser() && !options.storageProvider && !options.storageProvider) {\n // eslint-disable-next-line max-len\n warn('Memory storage can only support simple single user use case on server side, please provide custom storageProvider or storageKey if advanced scenarios need to be supported.');\n }\n}\nexport default class StorageManager {\n constructor(storageManagerOptions, cookieOptions, storageUtil) {\n this.storageManagerOptions = storageManagerOptions;\n this.cookieOptions = cookieOptions;\n this.storageUtil = storageUtil;\n }\n // combines defaults in order\n getOptionsForSection(sectionName, overrideOptions) {\n return Object.assign({}, this.storageManagerOptions[sectionName], overrideOptions);\n }\n // generic method to get any available storage provider\n // eslint-disable-next-line complexity\n getStorage(options) {\n options = Object.assign({}, this.cookieOptions, options); // set defaults\n if (options.storageProvider) {\n return options.storageProvider;\n }\n let { storageType, storageTypes } = options;\n if (storageType === 'sessionStorage') {\n options.sessionCookie = true;\n }\n // Maintain compatibility. Automatically fallback. May change in next major version. OKTA-362589\n if (storageType && storageTypes) {\n const idx = storageTypes.indexOf(storageType);\n if (idx >= 0) {\n storageTypes = storageTypes.slice(idx);\n storageType = undefined;\n }\n }\n if (!storageType) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n storageType = this.storageUtil.findStorageType(storageTypes);\n }\n return this.storageUtil.getStorageByType(storageType, options);\n }\n // stateToken, interactionHandle\n getTransactionStorage(options) {\n options = this.getOptionsForSection('transaction', options);\n logServerSideMemoryStorageWarning(options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || TRANSACTION_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n getSharedTansactionStorage(options) {\n options = this.getOptionsForSection('shared-transaction', options);\n logServerSideMemoryStorageWarning(options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || SHARED_TRANSACTION_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n getOriginalUriStorage(options) {\n options = this.getOptionsForSection('original-uri', options);\n logServerSideMemoryStorageWarning(options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || ORIGINAL_URI_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n // intermediate idxResponse\n // store for network traffic optimazation purpose\n // TODO: revisit in auth-js 6.0 epic JIRA: OKTA-399791\n getIdxResponseStorage(options) {\n let storage;\n if (isBrowser()) {\n // on browser side only use memory storage \n try {\n storage = this.storageUtil.getStorageByType('memory', options);\n }\n catch (e) {\n // it's ok to miss response storage\n // eslint-disable-next-line max-len\n warn('No response storage found, you may want to provide custom implementation for intermediate idx responses to optimize the network traffic');\n }\n }\n else {\n // on server side re-use transaction custom storage\n const transactionStorage = this.getTransactionStorage(options);\n if (transactionStorage) {\n storage = {\n getItem: (key) => {\n const transaction = transactionStorage.getStorage();\n if (transaction && transaction[key]) {\n return transaction[key];\n }\n return null;\n },\n setItem: (key, val) => {\n const transaction = transactionStorage.getStorage();\n if (!transaction) {\n throw new AuthSdkError('Transaction has been cleared, failed to save idxState');\n }\n transaction[key] = val;\n transactionStorage.setStorage(transaction);\n },\n removeItem: (key) => {\n const transaction = transactionStorage.getStorage();\n if (!transaction) {\n return;\n }\n delete transaction[key];\n transactionStorage.setStorage(transaction);\n }\n };\n }\n }\n if (!storage) {\n return null;\n }\n return new SavedObject(storage, IDX_RESPONSE_STORAGE_NAME);\n }\n // access_token, id_token, refresh_token\n getTokenStorage(options) {\n options = this.getOptionsForSection('token', options);\n logServerSideMemoryStorageWarning(options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || TOKEN_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n // caches well-known response, among others\n getHttpCache(options) {\n options = this.getOptionsForSection('cache', options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || CACHE_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n // Will be removed in an upcoming major version. OKTA-362589\n getLegacyPKCEStorage(options) {\n options = this.getOptionsForSection('legacy-pkce', options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || PKCE_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n getLegacyOAuthParamsStorage(options) {\n options = this.getOptionsForSection('legacy-oauth-params', options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || REDIRECT_OAUTH_PARAMS_NAME;\n return new SavedObject(storage, storageKey);\n }\n}\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 */\nexport function isRawIdxResponse(obj) {\n return obj && obj.version;\n}\nexport function isIdxResponse(obj) {\n return obj && isRawIdxResponse(obj.rawIdxState);\n}\n","import { isTransactionMeta } from '../types';\nconst MAX_ENTRY_LIFETIME = 30 * 60 * 1000; // 30 minutes\nexport function pruneSharedStorage(storageManager) {\n const sharedStorage = storageManager.getSharedTansactionStorage();\n const entries = sharedStorage.getStorage();\n Object.keys(entries).forEach(state => {\n const entry = entries[state];\n const age = Date.now() - entry.dateCreated;\n if (age > MAX_ENTRY_LIFETIME) {\n delete entries[state];\n }\n });\n sharedStorage.setStorage(entries);\n}\nexport function saveTransactionToSharedStorage(storageManager, state, meta) {\n const sharedStorage = storageManager.getSharedTansactionStorage();\n const entries = sharedStorage.getStorage();\n entries[state] = {\n dateCreated: Date.now(),\n transaction: meta\n };\n sharedStorage.setStorage(entries);\n}\nexport function loadTransactionFromSharedStorage(storageManager, state) {\n const sharedStorage = storageManager.getSharedTansactionStorage();\n const entries = sharedStorage.getStorage();\n const entry = entries[state];\n if (entry && entry.transaction && isTransactionMeta(entry.transaction)) {\n return entry.transaction;\n }\n return null;\n}\nexport function clearTransactionFromSharedStorage(storageManager, state) {\n const sharedStorage = storageManager.getSharedTansactionStorage();\n const entries = sharedStorage.getStorage();\n delete entries[state];\n sharedStorage.setStorage(entries);\n}\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 */\nimport { AuthSdkError } from './errors';\nimport { REDIRECT_NONCE_COOKIE_NAME, REDIRECT_OAUTH_PARAMS_NAME, REDIRECT_STATE_COOKIE_NAME } from './constants';\nimport { isTransactionMeta, isOAuthTransactionMeta } from './types';\nimport { isRawIdxResponse } from './idx/types/idx-js';\nimport { warn } from './util';\nimport { clearTransactionFromSharedStorage, loadTransactionFromSharedStorage, pruneSharedStorage, saveTransactionToSharedStorage } from './util/sharedStorage';\nexport default class TransactionManager {\n constructor(options) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.storageManager = options.storageManager;\n this.legacyWidgetSupport = options.legacyWidgetSupport === false ? false : true;\n this.saveNonceCookie = options.saveNonceCookie === false ? false : true;\n this.saveStateCookie = options.saveStateCookie === false ? false : true;\n this.saveParamsCookie = options.saveParamsCookie === false ? false : true;\n this.enableSharedStorage = options.enableSharedStorage === false ? false : true;\n this.saveLastResponse = options.saveLastResponse === false ? false : true;\n this.options = options;\n }\n // eslint-disable-next-line complexity\n clear(options = {}) {\n const transactionStorage = this.storageManager.getTransactionStorage();\n const meta = transactionStorage.getStorage();\n // Clear primary storage (by default, sessionStorage on browser)\n transactionStorage.clearStorage();\n // clear IDX response storage\n this.clearIdxResponse();\n // Usually we want to also clear shared storage unless another tab may need it to continue/complete a flow\n if (this.enableSharedStorage && options.clearSharedStorage !== false) {\n const state = options.state || (meta === null || meta === void 0 ? void 0 : meta.state);\n if (state) {\n clearTransactionFromSharedStorage(this.storageManager, state);\n }\n }\n if (!this.legacyWidgetSupport) {\n return;\n }\n // This is for compatibility with older versions of the signin widget. OKTA-304806\n if (options.oauth) {\n this.clearLegacyOAuthParams();\n }\n if (options.pkce) {\n this.clearLegacyPKCE();\n }\n }\n // eslint-disable-next-line complexity\n save(meta, options = {}) {\n // There must be only one transaction executing at a time.\n // Before saving, check to see if a transaction is already stored.\n // An existing transaction indicates a concurrency/race/overlap condition\n let storage = this.storageManager.getTransactionStorage();\n const obj = storage.getStorage();\n // oie process may need to update transaction in the middle of process for tracking purpose\n // false alarm might be caused \n // TODO: revisit for a better solution, https://oktainc.atlassian.net/browse/OKTA-430919\n if (isTransactionMeta(obj) && !options.muteWarning) {\n // eslint-disable-next-line max-len\n warn('a saved auth transaction exists in storage. This may indicate another auth flow is already in progress.');\n }\n storage.setStorage(meta);\n // Shared storage allows continuation of transaction in another tab\n if (this.enableSharedStorage && meta.state) {\n saveTransactionToSharedStorage(this.storageManager, meta.state, meta);\n }\n if (!options.oauth) {\n return;\n }\n // Legacy cookie storage\n if (this.saveNonceCookie || this.saveStateCookie || this.saveParamsCookie) {\n const cookieStorage = this.storageManager.getStorage({ storageType: 'cookie' });\n if (this.saveParamsCookie) {\n const { responseType, state, nonce, scopes, clientId, urls, ignoreSignature } = meta;\n const oauthParams = {\n responseType,\n state,\n nonce,\n scopes,\n clientId,\n urls,\n ignoreSignature\n };\n cookieStorage.setItem(REDIRECT_OAUTH_PARAMS_NAME, JSON.stringify(oauthParams), null);\n }\n if (this.saveNonceCookie && meta.nonce) {\n // Set nonce cookie for servers to validate nonce in id_token\n cookieStorage.setItem(REDIRECT_NONCE_COOKIE_NAME, meta.nonce, null);\n }\n if (this.saveStateCookie && meta.state) {\n // Set state cookie for servers to validate state\n cookieStorage.setItem(REDIRECT_STATE_COOKIE_NAME, meta.state, null);\n }\n }\n }\n exists(options = {}) {\n try {\n const meta = this.load(options);\n return !!meta;\n }\n catch (_a) {\n return false;\n }\n }\n // load transaction meta from storage\n // eslint-disable-next-line complexity,max-statements\n load(options = {}) {\n let meta;\n // If state was passed, try loading transaction data from shared storage\n if (this.enableSharedStorage && options.state) {\n pruneSharedStorage(this.storageManager); // prune before load\n meta = loadTransactionFromSharedStorage(this.storageManager, options.state);\n if (isTransactionMeta(meta)) {\n return meta;\n }\n }\n let storage = this.storageManager.getTransactionStorage();\n meta = storage.getStorage();\n if (isTransactionMeta(meta)) {\n // if we have meta in the new location, there is no need to go further\n return meta;\n }\n if (!this.legacyWidgetSupport) {\n return null;\n }\n // This is for compatibility with older versions of the signin widget. OKTA-304806\n if (options.oauth) {\n try {\n const oauthParams = this.loadLegacyOAuthParams();\n Object.assign(meta, oauthParams);\n }\n finally {\n this.clearLegacyOAuthParams();\n }\n }\n if (options.pkce) {\n try {\n const pkceMeta = this.loadLegacyPKCE();\n Object.assign(meta, pkceMeta);\n }\n finally {\n this.clearLegacyPKCE();\n }\n }\n if (isTransactionMeta(meta)) {\n return meta;\n }\n return null;\n }\n // This is for compatibility with older versions of the signin widget. OKTA-304806\n clearLegacyPKCE() {\n // clear storages\n let storage;\n if (this.storageManager.storageUtil.testStorageType('localStorage')) {\n storage = this.storageManager.getLegacyPKCEStorage({ storageType: 'localStorage' });\n storage.clearStorage();\n }\n if (this.storageManager.storageUtil.testStorageType('sessionStorage')) {\n storage = this.storageManager.getLegacyPKCEStorage({ storageType: 'sessionStorage' });\n storage.clearStorage();\n }\n }\n loadLegacyPKCE() {\n let storage;\n let obj;\n // Try reading from localStorage first.\n if (this.storageManager.storageUtil.testStorageType('localStorage')) {\n storage = this.storageManager.getLegacyPKCEStorage({ storageType: 'localStorage' });\n obj = storage.getStorage();\n if (obj && obj.codeVerifier) {\n return obj;\n }\n }\n // If meta is not valid, read from sessionStorage. This is expected for more recent versions of the widget.\n if (this.storageManager.storageUtil.testStorageType('sessionStorage')) {\n storage = this.storageManager.getLegacyPKCEStorage({ storageType: 'sessionStorage' });\n obj = storage.getStorage();\n if (obj && obj.codeVerifier) {\n return obj;\n }\n }\n // If meta is not valid, throw an exception to avoid misleading server-side error\n // The most likely cause of this error is trying to handle a callback twice\n // eslint-disable-next-line max-len\n throw new AuthSdkError('Could not load PKCE codeVerifier from storage. This may indicate the auth flow has already completed or multiple auth flows are executing concurrently.', undefined);\n }\n clearLegacyOAuthParams() {\n // clear storages\n let storage;\n if (this.storageManager.storageUtil.testStorageType('sessionStorage')) {\n storage = this.storageManager.getLegacyOAuthParamsStorage({ storageType: 'sessionStorage' });\n storage.clearStorage();\n }\n if (this.storageManager.storageUtil.testStorageType('cookie')) {\n storage = this.storageManager.getLegacyOAuthParamsStorage({ storageType: 'cookie' });\n storage.clearStorage();\n }\n }\n loadLegacyOAuthParams() {\n let storage;\n let oauthParams;\n // load first from session storage\n if (this.storageManager.storageUtil.testStorageType('sessionStorage')) {\n storage = this.storageManager.getLegacyOAuthParamsStorage({ storageType: 'sessionStorage' });\n oauthParams = storage.getStorage();\n }\n if (isOAuthTransactionMeta(oauthParams)) {\n return oauthParams;\n }\n // try to load from cookie\n if (this.storageManager.storageUtil.testStorageType('cookie')) {\n storage = this.storageManager.getLegacyOAuthParamsStorage({ storageType: 'cookie' });\n oauthParams = storage.getStorage();\n }\n if (isOAuthTransactionMeta(oauthParams)) {\n return oauthParams;\n }\n throw new AuthSdkError('Unable to retrieve OAuth redirect params from storage');\n // Something is there but we don't recognize it\n // throw new AuthSdkError('Unable to parse the ' + REDIRECT_OAUTH_PARAMS_NAME + ' value from storage');\n }\n saveIdxResponse(idxResponse) {\n if (!this.saveLastResponse) {\n return;\n }\n const storage = this.storageManager.getIdxResponseStorage();\n if (!storage) {\n return;\n }\n storage.setStorage(idxResponse);\n }\n loadIdxResponse() {\n if (!this.saveLastResponse) {\n return null;\n }\n const storage = this.storageManager.getIdxResponseStorage();\n if (!storage) {\n return null;\n }\n const idxResponse = storage.getStorage();\n if (!isRawIdxResponse(idxResponse)) {\n return null;\n }\n return idxResponse;\n }\n clearIdxResponse() {\n if (!this.saveLastResponse) {\n return;\n }\n const storage = this.storageManager.getIdxResponseStorage();\n storage === null || storage === void 0 ? void 0 : storage.clearStorage();\n }\n}\n","/*!\n * Copyright (c) 2018-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\nimport AuthSdkError from './errors/AuthSdkError';\n// TODO: use @okta/configuration-validation (move module to this monorepo?)\n// eslint-disable-next-line complexity\nfunction assertValidConfig(args) {\n args = args || {};\n var scopes = args.scopes;\n if (scopes && !Array.isArray(scopes)) {\n throw new AuthSdkError('scopes must be a array of strings. ' +\n 'Required usage: new OktaAuth({scopes: [\"openid\", \"email\"]})');\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n var issuer = args.issuer;\n if (!issuer) {\n throw new AuthSdkError('No issuer passed to constructor. ' +\n 'Required usage: new OktaAuth({issuer: \"https://{yourOktaDomain}.com/oauth2/{authServerId}\"})');\n }\n var isUrlRegex = new RegExp('^http?s?://.+');\n if (!isUrlRegex.test(issuer)) {\n throw new AuthSdkError('Issuer must be a valid URL. ' +\n 'Required usage: new OktaAuth({issuer: \"https://{yourOktaDomain}.com/oauth2/{authServerId}\"})');\n }\n if (issuer.indexOf('-admin.') !== -1) {\n throw new AuthSdkError('Issuer URL passed to constructor contains \"-admin\" in subdomain. ' +\n 'Required usage: new OktaAuth({issuer: \"https://{yourOktaDomain}.com})');\n }\n}\nexport { assertValidConfig };\n","/*!\n * Copyright (c) 2018-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\nimport crossFetch from 'cross-fetch';\nfunction readData(response) {\n if (response.headers.get('Content-Type') &&\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n response.headers.get('Content-Type').toLowerCase().indexOf('application/json') >= 0) {\n return response.json()\n // JSON parse can fail if response is not a valid object\n .catch(e => {\n return {\n error: e,\n errorSummary: 'Could not parse server response'\n };\n });\n }\n else {\n return response.text();\n }\n}\nfunction formatResult(status, data, response) {\n const isObject = typeof data === 'object';\n const headers = {};\n for (const pair of response.headers.entries()) {\n headers[pair[0]] = pair[1];\n }\n const result = {\n responseText: isObject ? JSON.stringify(data) : data,\n status: status,\n headers\n };\n if (isObject) {\n result.responseType = 'json';\n result.responseJSON = data;\n }\n return result;\n}\n/* eslint-disable complexity */\nfunction fetchRequest(method, url, args) {\n var body = args.data;\n var headers = args.headers || {};\n var contentType = (headers['Content-Type'] || headers['content-type'] || '');\n // JSON encode body (if appropriate)\n if (contentType === 'application/json' && body && typeof body !== 'string') {\n body = JSON.stringify(body);\n }\n var fetch = global.fetch || crossFetch;\n var fetchPromise = fetch(url, {\n method: method,\n headers: args.headers,\n body: body,\n credentials: args.withCredentials ? 'include' : 'omit'\n });\n if (!fetchPromise.finally) {\n fetchPromise = Promise.resolve(fetchPromise);\n }\n return fetchPromise.then(function (response) {\n var error = !response.ok;\n var status = response.status;\n return readData(response)\n .then(data => {\n return formatResult(status, data, response);\n })\n .then(result => {\n var _a;\n if (error || ((_a = result.responseJSON) === null || _a === void 0 ? void 0 : _a.error)) {\n // Throwing result object since error handling is done in http.js\n throw result;\n }\n return result;\n });\n });\n}\nexport default fetchRequest;\n","/*!\n * Copyright (c) 2018-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { AuthSdkError } from '../errors';\nconst NodeCache = require('node-cache'); // commonJS module cannot be imported without esModuleInterop\n// this is a SHARED memory storage to support a stateless http server\nconst sharedStorage = typeof NodeCache === 'function' ? new NodeCache() : null;\nclass ServerCookies {\n constructor(nodeCache) {\n this.nodeCache = nodeCache;\n }\n set(name, value, expiresAt) {\n // eslint-disable-next-line no-extra-boolean-cast\n if (!!(Date.parse(expiresAt))) {\n // Time to expiration in seconds\n var ttl = (Date.parse(expiresAt) - Date.now()) / 1000;\n this.nodeCache.set(name, value, ttl);\n }\n else {\n this.nodeCache.set(name, value);\n }\n return this.get(name);\n }\n get(name) {\n return this.nodeCache.get(name);\n }\n delete(name) {\n return this.nodeCache.del(name);\n }\n}\n// Building this as an object allows us to mock the functions in our tests\nclass ServerStorage {\n constructor(nodeCache) {\n this.nodeCache = nodeCache;\n this.storage = new ServerCookies(nodeCache);\n }\n testStorageType(storageType) {\n var supported = false;\n switch (storageType) {\n case 'memory':\n supported = true;\n break;\n default:\n break;\n }\n return supported;\n }\n getStorageByType(storageType) {\n let storageProvider;\n switch (storageType) {\n case 'memory':\n storageProvider = this.getStorage();\n break;\n default:\n throw new AuthSdkError(`Unrecognized storage option: ${storageType}`);\n break;\n }\n return storageProvider;\n }\n findStorageType() {\n return 'memory';\n }\n // will be removed in next version. OKTA-362589\n getHttpCache() {\n return null; // stubbed in server.js\n }\n // shared in-memory using node cache\n getStorage() {\n return {\n getItem: this.nodeCache.get,\n setItem: (key, value) => {\n this.nodeCache.set(key, value, '2200-01-01T00:00:00.000Z');\n }\n };\n }\n}\nexport default new ServerStorage(sharedStorage);\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/* eslint-disable complexity */\nimport { removeTrailingSlash, warn, removeNils } from './util';\nimport { assertValidConfig } from './builderUtil';\nimport fetchRequest from './fetch/fetchRequest';\nimport browserStorage from './browser/browserStorage';\nimport serverStorage from './server/serverStorage';\nimport { isBrowser, isHTTPS } from './features';\nconst BROWSER_STORAGE = {\n token: {\n storageTypes: [\n 'localStorage',\n 'sessionStorage',\n 'cookie'\n ]\n },\n cache: {\n storageTypes: [\n 'localStorage',\n 'sessionStorage',\n 'cookie'\n ]\n },\n transaction: {\n storageTypes: [\n 'sessionStorage',\n 'localStorage',\n 'cookie'\n ]\n },\n 'shared-transaction': {\n storageTypes: [\n 'localStorage'\n ]\n },\n 'original-uri': {\n storageTypes: [\n 'localStorage'\n ]\n }\n};\nconst SERVER_STORAGE = {\n token: {\n storageTypes: [\n 'memory'\n ]\n },\n cache: {\n storageTypes: [\n 'memory'\n ]\n },\n transaction: {\n storageTypes: [\n 'memory'\n ]\n }\n};\nfunction getCookieSettings(args = {}, isHTTPS) {\n // Secure cookies will be automatically used on a HTTPS connection\n // Non-secure cookies will be automatically used on a HTTP connection\n // secure option can override the automatic behavior\n var cookieSettings = args.cookies || {};\n if (typeof cookieSettings.secure === 'undefined') {\n cookieSettings.secure = isHTTPS;\n }\n if (typeof cookieSettings.sameSite === 'undefined') {\n cookieSettings.sameSite = cookieSettings.secure ? 'none' : 'lax';\n }\n // If secure=true, but the connection is not HTTPS, set secure=false.\n if (cookieSettings.secure && !isHTTPS) {\n // eslint-disable-next-line no-console\n warn('The current page is not being served with the HTTPS protocol.\\n' +\n 'For security reasons, we strongly recommend using HTTPS.\\n' +\n 'If you cannot use HTTPS, set \"cookies.secure\" option to false.');\n cookieSettings.secure = false;\n }\n // Chrome >= 80 will block cookies with SameSite=None unless they are also Secure\n // If sameSite=none, but the connection is not HTTPS, set sameSite=lax.\n if (cookieSettings.sameSite === 'none' && !cookieSettings.secure) {\n cookieSettings.sameSite = 'lax';\n }\n return cookieSettings;\n}\nexport function getDefaultOptions() {\n const storageUtil = isBrowser() ? browserStorage : serverStorage;\n const storageManager = isBrowser() ? BROWSER_STORAGE : SERVER_STORAGE;\n const enableSharedStorage = isBrowser() ? true : false; // localStorage for multi-tab flows (browser only)\n return {\n devMode: false,\n httpRequestClient: fetchRequest,\n storageUtil,\n storageManager,\n transactionManager: {\n enableSharedStorage\n }\n };\n}\nfunction mergeOptions(options, args) {\n return Object.assign({}, options, removeNils(args), {\n storageManager: Object.assign({}, options.storageManager, args.storageManager),\n transactionManager: Object.assign({}, options.transactionManager, args.transactionManager),\n });\n}\nexport function buildOptions(args = {}) {\n assertValidConfig(args);\n args = mergeOptions(getDefaultOptions(), args);\n return removeNils({\n // OIDC configuration\n issuer: removeTrailingSlash(args.issuer),\n tokenUrl: removeTrailingSlash(args.tokenUrl),\n authorizeUrl: removeTrailingSlash(args.authorizeUrl),\n userinfoUrl: removeTrailingSlash(args.userinfoUrl),\n revokeUrl: removeTrailingSlash(args.revokeUrl),\n logoutUrl: removeTrailingSlash(args.logoutUrl),\n clientId: args.clientId,\n redirectUri: args.redirectUri,\n state: args.state,\n scopes: args.scopes,\n postLogoutRedirectUri: args.postLogoutRedirectUri,\n responseMode: args.responseMode,\n responseType: args.responseType,\n pkce: args.pkce === false ? false : true,\n useInteractionCodeFlow: args.useInteractionCodeFlow,\n // Internal options\n httpRequestClient: args.httpRequestClient,\n transformErrorXHR: args.transformErrorXHR,\n transformAuthState: args.transformAuthState,\n restoreOriginalUri: args.restoreOriginalUri,\n storageUtil: args.storageUtil,\n headers: args.headers,\n devMode: !!args.devMode,\n storageManager: args.storageManager,\n transactionManager: args.transactionManager,\n cookies: isBrowser() ? getCookieSettings(args, isHTTPS()) : args.cookies,\n flow: args.flow,\n codeChallenge: args.codeChallenge,\n codeChallengeMethod: args.codeChallengeMethod,\n recoveryToken: args.recoveryToken,\n activationToken: args.activationToken,\n // Give the developer the ability to disable token signature validation.\n ignoreSignature: !!args.ignoreSignature,\n // Server-side web applications\n clientSecret: args.clientSecret\n });\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2021, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { removeNils, warn } from '../util';\nimport { createOAuthMeta } from '../oidc';\n// Calculate new values\nexport function createTransactionMeta(authClient, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const tokenParams = yield authClient.token.prepareTokenParams(options);\n const pkceMeta = createOAuthMeta(authClient, tokenParams);\n let { flow = 'default', withCredentials = true, activationToken = undefined, recoveryToken = undefined, } = Object.assign(Object.assign({}, authClient.options), options); // local options override SDK options\n const meta = Object.assign(Object.assign({}, pkceMeta), { flow,\n withCredentials,\n activationToken,\n recoveryToken });\n return meta;\n });\n}\nexport function hasSavedInteractionHandle(authClient, options) {\n const savedMeta = getSavedTransactionMeta(authClient, options);\n if (savedMeta === null || savedMeta === void 0 ? void 0 : savedMeta.interactionHandle) {\n return true;\n }\n return false;\n}\n// Returns the saved transaction meta, if it exists and is valid\nexport function getSavedTransactionMeta(authClient, options) {\n options = removeNils(options);\n options = Object.assign(Object.assign({}, authClient.options), options); // local options override SDK options\n let savedMeta;\n try {\n savedMeta = authClient.transactionManager.load(options);\n }\n catch (e) {\n // ignore errors here\n }\n if (!savedMeta) {\n return;\n }\n if (isTransactionMetaValid(savedMeta, options)) {\n return savedMeta;\n }\n // existing meta is not valid for this configuration\n // this is common when changing configuration in local development environment\n // in a production environment, this may indicate that two apps are sharing a storage key\n warn('Saved transaction meta does not match the current configuration. ' +\n 'This may indicate that two apps are sharing a storage key.');\n}\nexport function getTransactionMeta(authClient, options) {\n return __awaiter(this, void 0, void 0, function* () {\n options = removeNils(options);\n options = Object.assign(Object.assign({}, authClient.options), options); // local options override SDK options\n // Load existing transaction meta from storage\n const validExistingMeta = getSavedTransactionMeta(authClient, options);\n if (validExistingMeta) {\n return validExistingMeta;\n }\n // No existing? Create new transaction meta.\n return createTransactionMeta(authClient, options);\n });\n}\nexport function saveTransactionMeta(authClient, meta) {\n authClient.transactionManager.save(meta, { muteWarning: true });\n}\nexport function clearTransactionMeta(authClient) {\n authClient.transactionManager.clear();\n}\nexport function isTransactionMetaValid(meta, options = {}) {\n // Validate against certain options. If these exist in options, they must match in meta\n const keys = [\n 'issuer',\n 'clientId',\n 'redirectUri',\n 'state',\n 'codeChallenge',\n 'codeChallengeMethod',\n 'activationToken',\n 'recoveryToken'\n ];\n if (isTransactionMetaValidForOptions(meta, options, keys) === false) {\n return false;\n }\n // Validate configured flow\n const { flow } = options;\n if (isTransactionMetaValidForFlow(meta, flow) === false) {\n return false;\n }\n return true;\n}\nexport function isTransactionMetaValidForFlow(meta, flow) {\n // Specific flows should not share transaction data\n const shouldValidateFlow = flow && flow !== 'default' && flow !== 'proceed';\n if (shouldValidateFlow) {\n if (flow !== meta.flow) {\n // The flow has changed; abandon the old transaction\n return false;\n }\n }\n return true;\n}\nexport function isTransactionMetaValidForOptions(meta, options, keys) {\n // returns false if values in meta do not match options\n // if the option does not have a value for a specific key, it is ignored\n const mismatch = keys.some(key => {\n const value = options[key];\n if (value && value !== meta[key]) {\n return true;\n }\n });\n return !mismatch;\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2021, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n/* eslint complexity:[0,8] */\nimport idx from '@okta/okta-idx-js';\nimport { getSavedTransactionMeta, saveTransactionMeta } from './transactionMeta';\nimport { getOAuthBaseUrl } from '../oidc';\nimport { createTransactionMeta } from '.';\nimport { removeNils } from '../util';\nfunction getResponse(meta) {\n return {\n meta,\n interactionHandle: meta.interactionHandle,\n state: meta.state\n };\n}\n// Begin or resume a transaction. Returns an interaction handle\nexport function interact(authClient, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n options = removeNils(options);\n let meta = getSavedTransactionMeta(authClient, options);\n // If meta exists, it has been validated against all options\n if (meta === null || meta === void 0 ? void 0 : meta.interactionHandle) {\n return getResponse(meta); // Saved transaction, return meta\n }\n // Create new meta, respecting previous meta if it has been set and is not overridden\n meta = yield createTransactionMeta(authClient, Object.assign(Object.assign({}, meta), options));\n const baseUrl = getOAuthBaseUrl(authClient);\n let { clientId, redirectUri, state, scopes, withCredentials, codeChallenge, codeChallengeMethod, activationToken, recoveryToken } = meta;\n const interactionHandle = yield idx.interact({\n withCredentials,\n // OAuth\n clientId,\n baseUrl,\n scopes,\n state,\n redirectUri,\n // PKCE\n codeChallenge,\n codeChallengeMethod,\n // Activation\n activationToken,\n // Recovery\n recoveryToken\n });\n const newMeta = Object.assign(Object.assign({}, meta), { interactionHandle,\n // Options which can be passed into interact() should be saved in the meta\n withCredentials,\n state,\n scopes,\n recoveryToken,\n activationToken });\n // Save transaction meta so it can be resumed\n saveTransactionMeta(authClient, newMeta);\n return getResponse(newMeta);\n });\n}\n","/*!\n * Copyright (c) 2021, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport idx from '@okta/okta-idx-js';\nimport { isRawIdxResponse } from './types/idx-js';\nimport { getOAuthDomain } from '../oidc';\nimport { IDX_API_VERSION } from '../constants';\nexport function introspect(authClient, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n // try load from storage first\n let rawIdxResponse = authClient.transactionManager.loadIdxResponse();\n // call idx.introspect if no existing idx response available in storage\n if (!rawIdxResponse) {\n const version = options.version || IDX_API_VERSION;\n const domain = getOAuthDomain(authClient);\n try {\n rawIdxResponse = yield idx.introspect(Object.assign(Object.assign({ domain }, options), { version }));\n }\n catch (err) {\n if (isRawIdxResponse(err)) {\n rawIdxResponse = err;\n }\n else {\n throw err;\n }\n }\n }\n const { withCredentials } = options;\n return idx.makeIdxState(rawIdxResponse, { withCredentials });\n });\n}\n","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\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 */\nexport function getAllValues(idxRemediation) {\n var _a;\n return (_a = idxRemediation.value) === null || _a === void 0 ? void 0 : _a.map(r => r.name);\n}\nexport function getRequiredValues(idxRemediation) {\n var _a;\n return (_a = idxRemediation.value) === null || _a === void 0 ? void 0 : _a.reduce((required, cur) => {\n if (cur.required) {\n required.push(cur.name);\n }\n return required;\n }, []);\n}\nexport function titleCase(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n}\nexport function getAuthenticatorFromRemediation(remediation) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return remediation.value.find(({ name }) => name === 'authenticator');\n}\n","/* 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/* eslint-disable complexity */\nimport { AuthSdkError } from '../../../errors';\nimport { getAllValues, getRequiredValues, titleCase } from '../util';\n// Base class - DO NOT expose static remediationName\nexport class Remediator {\n constructor(remediation, values = {}) {\n // assign fields to the instance\n this.values = Object.assign({}, values);\n this.formatAuthenticators();\n this.remediation = remediation;\n }\n formatAuthenticators() {\n this.values.authenticators = (this.values.authenticators || []);\n // add string authenticator from input to \"authenticators\" field\n if (this.values.authenticator) {\n const hasAuthenticatorInList = this.values.authenticators.some(authenticator => {\n if (typeof authenticator === 'string') {\n return authenticator === this.values.authenticator;\n }\n return authenticator.key === this.values.authenticator;\n });\n if (!hasAuthenticatorInList) {\n this.values.authenticators.push({\n key: this.values.authenticator\n });\n }\n }\n // transform items in \"authenticators\" into one format\n this.values.authenticators = this.values.authenticators.map(authenticator => {\n return typeof authenticator === 'string' ? { key: authenticator } : authenticator;\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 getName() {\n return this.remediation.name;\n }\n // Override this method to provide custom check\n canRemediate() {\n if (!this.map) {\n return false;\n }\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 // returns an object for the entire remediation form, or just a part\n getData(key) {\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 // Map value by \"map${Property}\" function in each subClass\n if (typeof this[`map${titleCase(key)}`] === 'function') {\n return this[`map${titleCase(key)}`](this.remediation.value.find(({ name }) => name === key));\n }\n if (!this.map) {\n return this.values[key];\n }\n // Handle general primitive types\n const entry = this.map[key];\n if (!entry) {\n return this.values[key];\n }\n // find the first aliased property that returns a truthy value\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 hasData(key // idx name\n ) {\n // no attempt to format, we want simple true/false\n // First see if the remediation has a mapping for this vale\n const data = this.getData(key);\n if (typeof data === 'object') {\n return !!Object.keys(data).find(key => !!data[key]);\n }\n return !!data;\n }\n getNextStep(_context) {\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 === null || authenticator === void 0 ? void 0 : authenticator.type;\n return Object.assign(Object.assign({ name,\n inputs }, (type && { type })), (authenticator && { authenticator }));\n }\n // Get inputs for the next step\n getInputs() {\n if (!this.map) {\n return [];\n }\n return Object.keys(this.map).reduce((inputs, key) => {\n const inputFromRemediation = this.remediation.value.find(item => item.name === key);\n if (!inputFromRemediation) {\n return inputs;\n }\n let input;\n const aliases = this.map[key];\n const { type } = inputFromRemediation;\n if (typeof this[`getInput${titleCase(key)}`] === 'function') {\n input = this[`getInput${titleCase(key)}`](inputFromRemediation);\n }\n else if (type !== 'object') {\n // handle general primitive types\n let name;\n if (aliases.length === 1) {\n name = aliases[0];\n }\n else {\n // try find key from values\n name = aliases.find(name => Object.keys(this.values).includes(name));\n }\n if (name) {\n input = Object.assign(Object.assign({}, inputFromRemediation), { name });\n }\n }\n if (!input) {\n throw new AuthSdkError(`Missing custom getInput${titleCase(key)} method in Remediator: ${this.getName()}`);\n }\n if (Array.isArray(input)) {\n input.forEach(i => inputs.push(i));\n }\n else {\n inputs.push(input);\n }\n return inputs;\n }, []);\n }\n static getMessages(remediation) {\n var _a, _b;\n if (!remediation.value) {\n return;\n }\n return (_b = (_a = remediation.value[0]) === null || _a === void 0 ? void 0 : _a.form) === null || _b === void 0 ? void 0 : _b.value.reduce((messages, field) => {\n if (field.messages) {\n messages = [...messages, ...field.messages.value];\n }\n return messages;\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() {\n const inputs = this.getInputs();\n for (const input of inputs) {\n delete this.values[input.name];\n }\n return this.values;\n }\n getAuthenticator() {\n var _a;\n return (_a = this.remediation.relatesTo) === null || _a === void 0 ? void 0 : _a.value;\n }\n}\n","export class Authenticator {\n constructor(authenticator) {\n this.meta = authenticator;\n }\n}\n","import { Authenticator } from './Authenticator';\n// general authenticator to handle \"verificationCode\" input\n// it can be used for \"email\", \"phone\", \"google authenticator\"\n// a new authenticator class should be created if special cases need to be handled\nexport class VerificationCodeAuthenticator extends Authenticator {\n canVerify(values) {\n return (values.verificationCode || values.otp);\n }\n mapCredentials(values) {\n return { passcode: values.verificationCode || values.otp };\n }\n getInputs(idxRemediationValue) {\n var _a;\n return Object.assign(Object.assign({}, (_a = idxRemediationValue.form) === null || _a === void 0 ? void 0 : _a.value[0]), { name: 'verificationCode', type: 'string', required: idxRemediationValue.required });\n }\n}\n","import { VerificationCodeAuthenticator } from './VerificationCodeAuthenticator';\nexport class OktaVerifyTotp extends VerificationCodeAuthenticator {\n mapCredentials(values) {\n return { totp: values.verificationCode };\n }\n}\n","import { Authenticator } from './Authenticator';\nexport class OktaPassword extends Authenticator {\n canVerify(values) {\n return !!values.password;\n }\n mapCredentials(values) {\n return { passcode: values.password };\n }\n getInputs(idxRemediationValue) {\n var _a;\n return Object.assign(Object.assign({}, (_a = idxRemediationValue.form) === null || _a === void 0 ? void 0 : _a.value[0]), { name: 'password', type: 'string', required: idxRemediationValue.required });\n }\n}\n","import { Authenticator } from './Authenticator';\nexport class SecurityQuestionEnrollment extends Authenticator {\n canVerify(values) {\n const { questionKey, question, answer } = values;\n return (questionKey && answer) || (question && answer);\n }\n mapCredentials(values) {\n const { questionKey, question, answer } = values;\n return {\n questionKey: question ? 'custom' : questionKey,\n question,\n answer\n };\n }\n getInputs() {\n return [\n { name: 'questionKey', type: 'string', require: true },\n { name: 'question', type: 'string', label: 'Create a security question' },\n { name: 'answer', type: 'string', label: 'Answer', required: true },\n ];\n }\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { Authenticator } from './Authenticator';\nexport class SecurityQuestionVerification extends Authenticator {\n canVerify(values) {\n return values.answer;\n }\n mapCredentials(values) {\n return {\n questionKey: this.meta.contextualData.enrolledQuestion.questionKey,\n answer: values.answer\n };\n }\n getInputs() {\n return [\n { name: 'answer', type: 'string', label: 'Answer', required: true }\n ];\n }\n}\n","import { OktaVerifyTotp } from './OktaVerifyTotp';\nimport { VerificationCodeAuthenticator } from './VerificationCodeAuthenticator';\nimport { OktaPassword } from './OktaPassword';\nimport { SecurityQuestionEnrollment } from './SecurityQuestionEnrollment';\nimport { SecurityQuestionVerification } from './SecurityQuestionVerification';\nimport { AuthenticatorKey } from '../types';\nexport function getAuthenticator(remediation) {\n var _a;\n const relatesTo = remediation.relatesTo;\n const value = (relatesTo === null || relatesTo === void 0 ? void 0 : relatesTo.value) || {};\n switch (value.key) {\n case AuthenticatorKey.OKTA_PASSWORD:\n return new OktaPassword(value);\n case AuthenticatorKey.SECURITY_QUESTION:\n if ((_a = value.contextualData) === null || _a === void 0 ? void 0 : _a.enrolledQuestion) {\n return new SecurityQuestionVerification(value);\n }\n else {\n return new SecurityQuestionEnrollment(value);\n }\n case AuthenticatorKey.OKTA_VERIFY:\n return new OktaVerifyTotp(value);\n default:\n return new VerificationCodeAuthenticator(value);\n }\n}\n","/*!\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 */\nimport { Remediator } from './Remediator';\nimport { getAuthenticator } from '../../authenticator';\n// Base class - DO NOT expose static remediationName\nexport class VerifyAuthenticator extends Remediator {\n constructor(remediation, values = {}) {\n super(remediation, values);\n this.map = {\n 'credentials': []\n };\n this.authenticator = getAuthenticator(remediation);\n }\n canRemediate() {\n return this.authenticator.canVerify(this.values);\n }\n mapCredentials() {\n return this.authenticator.mapCredentials(this.values);\n }\n getInputCredentials(input) {\n return this.authenticator.getInputs(input);\n }\n}\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 */\nimport { VerifyAuthenticator } from './Base/VerifyAuthenticator';\nexport class EnrollAuthenticator extends VerifyAuthenticator {\n}\nEnrollAuthenticator.remediationName = 'enroll-authenticator';\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\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 */\nimport { Remediator } from './Base/Remediator';\nexport class EnrollPoll extends Remediator {\n canRemediate() {\n return Boolean(this.values.startPolling);\n }\n getNextStep(context) {\n const common = super.getNextStep(context);\n let authenticator = this.getAuthenticator();\n if (!authenticator && (context === null || context === void 0 ? void 0 : context.currentAuthenticator)) {\n authenticator = context.currentAuthenticator.value;\n }\n return Object.assign(Object.assign({}, common), { authenticator, poll: {\n required: true,\n refresh: this.remediation.refresh\n } });\n }\n getValuesAfterProceed() {\n let trimmedValues = Object.keys(this.values).filter(valueKey => valueKey !== 'startPolling');\n return trimmedValues.reduce((values, valueKey) => (Object.assign(Object.assign({}, values), { [valueKey]: this.values[valueKey] })), {});\n }\n}\nEnrollPoll.remediationName = 'enroll-poll';\n","/*!\n * Copyright (c) 2021-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 */\nimport { Remediator } from './Base/Remediator';\nimport { getAuthenticatorFromRemediation } from './util';\nexport class SelectEnrollmentChannel extends Remediator {\n canRemediate() {\n return Boolean(this.values.channel);\n }\n getNextStep(context) {\n const common = super.getNextStep();\n const options = this.getChannels();\n const authenticator = context.currentAuthenticator.value;\n return Object.assign(Object.assign(Object.assign({}, common), (options && { options })), { authenticator });\n }\n getChannels() {\n var _a;\n const authenticator = getAuthenticatorFromRemediation(this.remediation);\n const remediationValue = authenticator.value;\n return (_a = remediationValue.form.value.find(({ name }) => name === 'channel')) === null || _a === void 0 ? void 0 : _a.options;\n }\n getData() {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const remediationValue = this.remediation.value[0].value;\n return {\n authenticator: {\n id: remediationValue.form.value[0].value,\n channel: this.values.channel,\n },\n stateHandle: this.values.stateHandle,\n };\n }\n getValuesAfterProceed() {\n let trimmedValues = Object.keys(this.values).filter(valueKey => valueKey !== 'channel');\n return trimmedValues.reduce((values, valueKey) => (Object.assign(Object.assign({}, values), { [valueKey]: this.values[valueKey] })), {});\n }\n}\nSelectEnrollmentChannel.remediationName = 'select-enrollment-channel';\n","/*!\n * Copyright (c) 2021-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 */\nimport { Remediator } from './Base/Remediator';\nexport class EnrollmentChannelData extends Remediator {\n constructor() {\n super(...arguments);\n this.map = {\n email: [],\n phoneNumber: []\n };\n }\n getInputEmail() {\n return [\n { name: 'email', type: 'string', required: true, label: 'Email' },\n ];\n }\n getInputPhoneNumber() {\n return [\n { name: 'phoneNumber', type: 'string', required: true, label: 'Phone Number' },\n ];\n }\n canRemediate() {\n return Boolean(this.values.email || this.values.phoneNumber);\n }\n getNextStep(context) {\n const common = super.getNextStep();\n const authenticator = context.currentAuthenticator.value;\n return Object.assign(Object.assign({}, common), { authenticator });\n }\n getData() {\n return {\n stateHandle: this.values.stateHandle,\n email: this.values.email,\n phoneNumber: this.values.phoneNumber\n };\n }\n getValuesAfterProceed() {\n let trimmedValues = Object.keys(this.values).filter(valueKey => !['email', 'phoneNumber'].includes(valueKey));\n return trimmedValues.reduce((values, valueKey) => (Object.assign(Object.assign({}, values), { [valueKey]: this.values[valueKey] })), {});\n }\n}\nEnrollmentChannelData.remediationName = 'enrollment-channel-data';\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 */\nimport { VerifyAuthenticator } from './Base/VerifyAuthenticator';\nexport class ChallengeAuthenticator extends VerifyAuthenticator {\n}\nChallengeAuthenticator.remediationName = 'challenge-authenticator';\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 */\nimport { EnrollPoll } from './EnrollPoll';\nexport class ChallengePoll extends EnrollPoll {\n}\nChallengePoll.remediationName = 'challenge-poll';\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 */\nimport { VerifyAuthenticator } from './Base/VerifyAuthenticator';\nexport class ResetAuthenticator extends VerifyAuthenticator {\n}\nResetAuthenticator.remediationName = 'reset-authenticator';\n","/* 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 */\nimport { Remediator } from './Base/Remediator';\nexport class EnrollProfile extends Remediator {\n constructor() {\n super(...arguments);\n this.map = {\n 'userProfile': []\n };\n }\n canRemediate() {\n const userProfileFromValues = this.getData().userProfile;\n // eslint-disable-next-line max-len\n const userProfileFromRemediation = this.remediation.value.find(({ name }) => name === 'userProfile');\n return userProfileFromRemediation.form.value.reduce((canRemediate, curr) => {\n if (curr.required) {\n canRemediate = canRemediate && !!userProfileFromValues[curr.name];\n }\n return canRemediate;\n }, true);\n }\n mapUserProfile({ form: { value: profileAttributes } }) {\n const attributeNames = profileAttributes.map(({ name }) => name);\n return attributeNames.reduce((attributeValues, attributeName) => (this.values[attributeName] ? Object.assign(Object.assign({}, attributeValues), { [attributeName]: this.values[attributeName] }) : attributeValues), {});\n }\n getInputUserProfile(input) {\n return [...input.form.value];\n }\n getErrorMessages(errorRemediation) {\n return errorRemediation.value[0].form.value.reduce((errors, field) => {\n if (field.messages) {\n errors.push(field.messages.value[0].message);\n }\n return errors;\n }, []);\n }\n}\nEnrollProfile.remediationName = 'enroll-profile';\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 */\nimport { Remediator } from './Base/Remediator';\nexport class Identify extends Remediator {\n constructor() {\n super(...arguments);\n this.map = {\n 'identifier': ['username'],\n 'credentials': [],\n 'rememberMe': ['rememberMe'],\n };\n }\n canRemediate() {\n const { identifier } = this.getData();\n return !!identifier;\n }\n mapCredentials() {\n return { passcode: this.values.password };\n }\n getInputCredentials(input) {\n return Object.assign(Object.assign({}, input.form.value[0]), { name: 'password', required: input.required });\n }\n}\nIdentify.remediationName = 'identify';\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 */\nimport { Remediator } from './Base/Remediator';\nexport class ReEnrollAuthenticator extends Remediator {\n constructor() {\n super(...arguments);\n this.map = {\n 'credentials': []\n };\n }\n mapCredentials() {\n return {\n passcode: this.values.newPassword,\n };\n }\n getInputCredentials(input) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const challengeType = this.getAuthenticator().type;\n const name = challengeType === 'password' ? 'newPassword' : 'verificationCode';\n return Object.assign(Object.assign({}, input.form.value[0]), { name });\n }\n}\nReEnrollAuthenticator.remediationName = 'reenroll-authenticator';\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 */\nimport { Remediator } from './Base/Remediator';\nexport class RedirectIdp extends Remediator {\n canRemediate() {\n return false;\n }\n getNextStep() {\n const { name, type, idp, href } = this.remediation;\n return {\n name,\n type,\n idp,\n href\n };\n }\n}\nRedirectIdp.remediationName = 'redirect-idp';\n","/* 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 */\nimport { Remediator } from './Remediator';\nimport { getAuthenticatorFromRemediation } from '../util';\n// Find matched authenticator in provided order\nfunction 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// Base class - DO NOT expose static remediationName\nexport class SelectAuthenticator extends Remediator {\n constructor() {\n super(...arguments);\n this.map = {\n authenticator: []\n };\n }\n canRemediate() {\n const { authenticators } = 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 // Proceed with provided authenticators\n const matchedOption = findMatchedOption(authenticators, options);\n if (matchedOption) {\n return true;\n }\n return false;\n }\n getNextStep() {\n const common = super.getNextStep();\n const authenticatorFromRemediation = getAuthenticatorFromRemediation(this.remediation);\n const options = authenticatorFromRemediation.options.map(option => {\n const { label, relatesTo } = option;\n const key = relatesTo.key;\n return { label, value: key };\n });\n return Object.assign(Object.assign({}, common), { options });\n }\n mapAuthenticator(remediationValue) {\n const { authenticators } = this.values;\n const { options } = remediationValue;\n const selectedOption = findMatchedOption(authenticators, options);\n // track the selected authenticator\n this.selectedAuthenticator = selectedOption.relatesTo;\n return {\n id: selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.value.form.value.find(({ name }) => name === 'id').value\n };\n }\n getInputAuthenticator() {\n return { name: 'authenticator', key: 'string' };\n }\n getValuesAfterProceed() {\n this.values = super.getValuesAfterProceed();\n // remove used authenticators\n const authenticators = this.values.authenticators\n .filter(authenticator => {\n return authenticator.key !== this.selectedAuthenticator.key;\n });\n return Object.assign(Object.assign({}, this.values), { authenticators });\n }\n}\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 */\nimport { SelectAuthenticator } from './Base/SelectAuthenticator';\nimport { getAuthenticatorFromRemediation } from './util';\nimport { AuthenticatorKey } from '../types';\nexport class SelectAuthenticatorAuthenticate extends SelectAuthenticator {\n constructor(remediation, values = {}) {\n var _a;\n super(remediation, values);\n // Preset password authenticator to trigger recover action\n const hasPasswordInOptions = (_a = getAuthenticatorFromRemediation(remediation)\n .options) === null || _a === void 0 ? void 0 : _a.some(({ relatesTo }) => (relatesTo === null || relatesTo === void 0 ? void 0 : relatesTo.key) === AuthenticatorKey.OKTA_PASSWORD);\n if (hasPasswordInOptions && (this.values.flow === 'recoverPassword' || this.values.password)) {\n this.values.authenticators = [\n ...this.values.authenticators || [],\n { key: AuthenticatorKey.OKTA_PASSWORD }\n ];\n }\n }\n}\nSelectAuthenticatorAuthenticate.remediationName = 'select-authenticator-authenticate';\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 */\nimport { SelectAuthenticator } from './Base/SelectAuthenticator';\nexport class SelectAuthenticatorEnroll extends SelectAuthenticator {\n}\nSelectAuthenticatorEnroll.remediationName = 'select-authenticator-enroll';\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 */\nimport { Remediator } from './Base/Remediator';\nexport class SelectEnrollProfile extends Remediator {\n canRemediate() {\n return true;\n }\n}\nSelectEnrollProfile.remediationName = 'select-enroll-profile';\n","/* 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 */\nimport { Remediator } from './Remediator';\n// Base class - DO NOT expose static remediationName\nexport class AuthenticatorData extends Remediator {\n constructor(remediation, values = {}) {\n super(remediation, values);\n this.map = {\n 'authenticator': []\n };\n // set before other data calculation\n this.authenticator = this.getAuthenticator();\n this.formatAuthenticatorData();\n }\n formatAuthenticatorData() {\n const authenticatorData = this.getAuthenticatorData();\n if (authenticatorData) {\n this.values.authenticatorsData = this.values.authenticatorsData.map(data => {\n if (data.key === this.authenticator.key) {\n return this.mapAuthenticatorDataFromValues(data);\n }\n return data;\n });\n }\n else {\n const data = this.mapAuthenticatorDataFromValues();\n if (data) {\n this.values.authenticatorsData.push(data);\n }\n }\n }\n getAuthenticatorData() {\n return this.values.authenticatorsData\n .find(({ key }) => key === this.authenticator.key);\n }\n canRemediate() {\n return this.values.authenticatorsData\n .some(data => data.key === this.authenticator.key);\n }\n getNextStep() {\n const common = super.getNextStep();\n const options = this.getMethodTypes();\n return Object.assign(Object.assign({}, common), (options && { options }));\n }\n mapAuthenticatorDataFromValues(authenticatorData) {\n // add methodType to authenticatorData if it exists in values\n const { methodType } = this.values;\n const data = Object.assign(Object.assign({ key: this.authenticator.key }, (authenticatorData && authenticatorData)), (methodType && { methodType }));\n return data.methodType ? data : null;\n }\n getAuthenticatorFromRemediation() {\n const authenticator = this.remediation.value\n .find(({ name }) => name === 'authenticator');\n return authenticator;\n }\n getMethodTypes() {\n var _a;\n const authenticator = this.getAuthenticatorFromRemediation();\n return (_a = authenticator.form.value.find(({ name }) => name === 'methodType')) === null || _a === void 0 ? void 0 : _a.options;\n }\n getValuesAfterProceed() {\n this.values = super.getValuesAfterProceed();\n // remove used authenticatorData\n const authenticatorsData = this.values.authenticatorsData\n .filter(data => data.key !== this.authenticator.key);\n return Object.assign(Object.assign({}, this.values), { authenticatorsData });\n }\n}\n","/* 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 */\nimport { AuthenticatorData } from './Base/AuthenticatorData';\nexport class AuthenticatorVerificationData extends AuthenticatorData {\n mapAuthenticator() {\n var _a;\n const authenticatorData = this.getAuthenticatorData();\n const authenticatorFromRemediation = this.getAuthenticatorFromRemediation();\n return {\n id: authenticatorFromRemediation.form.value\n .find(({ name }) => name === 'id').value,\n enrollmentId: (_a = authenticatorFromRemediation.form.value\n .find(({ name }) => name === 'enrollmentId')) === null || _a === void 0 ? void 0 : _a.value,\n methodType: authenticatorData.methodType,\n };\n }\n getInputAuthenticator() {\n const authenticator = this.getAuthenticatorFromRemediation();\n const methodType = authenticator.form.value.find(({ name }) => name === 'methodType');\n // if has methodType in form, let user select the methodType\n if (methodType && methodType.options) {\n return { name: 'methodType', type: 'string', required: true };\n }\n // no methodType, then return form values\n const inputs = [...authenticator.form.value];\n return inputs;\n }\n}\nAuthenticatorVerificationData.remediationName = 'authenticator-verification-data';\n","/* 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 */\nimport { AuthenticatorData } from './Base/AuthenticatorData';\nimport { getAuthenticatorFromRemediation } from './util';\nexport class AuthenticatorEnrollmentData extends AuthenticatorData {\n mapAuthenticator() {\n const authenticatorData = this.getAuthenticatorData();\n const authenticatorFromRemediation = getAuthenticatorFromRemediation(this.remediation);\n return {\n id: authenticatorFromRemediation.form.value\n .find(({ name }) => name === 'id').value,\n methodType: authenticatorData.methodType,\n phoneNumber: authenticatorData.phoneNumber,\n };\n }\n getInputAuthenticator() {\n return [\n { name: 'methodType', type: 'string', required: true },\n { name: 'phoneNumber', type: 'string', required: true, label: 'Phone Number' },\n ];\n }\n mapAuthenticatorDataFromValues(data) {\n // get mapped authenticator from base class\n data = super.mapAuthenticatorDataFromValues(data);\n // add phoneNumber to authenticator if it exists in values\n const { phoneNumber } = this.values;\n data = Object.assign(Object.assign({}, (data && data)), (phoneNumber && { phoneNumber }));\n return (data.phoneNumber && data.methodType) ? data : null;\n }\n}\nAuthenticatorEnrollmentData.remediationName = 'authenticator-enrollment-data';\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 */\nimport { Remediator } from './Base/Remediator';\nexport class Skip extends Remediator {\n constructor() {\n super(...arguments);\n this.map = {\n skip: ['skip']\n };\n }\n canRemediate() {\n return !!this.values.skip;\n }\n}\nSkip.remediationName = 'skip';\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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/* eslint-disable max-statements, max-depth, complexity */\nimport { AuthSdkError } from '../errors';\nimport { Remediator } from './remediators';\nimport { isIdxResponse, } from './types/idx-js';\n// Return first match idxRemediation in allowed remediators\nexport function getRemediator(idxRemediations, values, options) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const remediators = options.remediators;\n let remediator;\n // remediation name specified by caller - fast-track remediator lookup \n if (options.step) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const remediation = idxRemediations.find(({ name }) => name === options.step);\n const T = remediators[remediation.name];\n return new T(remediation, values);\n }\n const remediatorCandidates = [];\n for (let remediation of idxRemediations) {\n const isRemeditionInFlow = Object.keys(remediators).includes(remediation.name);\n if (!isRemeditionInFlow) {\n continue;\n }\n const T = remediators[remediation.name];\n remediator = new T(remediation, values);\n if (remediator.canRemediate()) {\n // found the remediator\n return remediator;\n }\n // remediator cannot handle the current values\n // maybe return for next step\n remediatorCandidates.push(remediator);\n }\n return remediatorCandidates[0];\n}\nfunction isTerminalResponse(idxResponse) {\n const { neededToProceed, interactionCode } = idxResponse;\n return !neededToProceed.length && !interactionCode;\n}\nfunction canSkipFn(idxResponse) {\n return idxResponse.neededToProceed.some(({ name }) => name === 'skip');\n}\nfunction canResendFn(idxResponse) {\n return Object.keys(idxResponse.actions).some(actionName => actionName.includes('resend'));\n}\nfunction getIdxMessages(idxResponse) {\n var _a;\n let messages = [];\n const { rawIdxState, neededToProceed } = idxResponse;\n // Handle global messages\n const globalMessages = (_a = rawIdxState.messages) === null || _a === void 0 ? void 0 : _a.value.map(message => message);\n if (globalMessages) {\n messages = [...messages, ...globalMessages];\n }\n // Handle field messages for current flow\n for (let remediation of neededToProceed) {\n const fieldMessages = Remediator.getMessages(remediation);\n if (fieldMessages) {\n messages = [...messages, ...fieldMessages];\n }\n }\n return messages;\n}\nfunction getNextStep(remediator, idxResponse) {\n const nextStep = remediator.getNextStep(idxResponse.context);\n const canSkip = canSkipFn(idxResponse);\n const canResend = canResendFn(idxResponse);\n return Object.assign(Object.assign(Object.assign({}, nextStep), (canSkip && { canSkip })), (canResend && { canResend }));\n}\nfunction handleIdxError(e, remediator) {\n // Handle idx messages\n const idxState = isIdxResponse(e) ? e : null;\n if (!idxState) {\n // Thrown error terminates the interaction with idx\n throw e;\n }\n const terminal = isTerminalResponse(idxState);\n const messages = getIdxMessages(idxState);\n if (terminal) {\n return { terminal, messages };\n }\n else {\n const nextStep = remediator && getNextStep(remediator, idxState);\n return Object.assign({ messages }, (nextStep && { nextStep }));\n }\n}\nfunction getActionFromValues(values, idxResponse) {\n // Currently support resend actions only\n return Object.keys(idxResponse.actions).find(action => !!values.resend && action.includes('-resend'));\n}\nfunction removeActionFromValues(values) {\n // Currently support resend actions only\n values.resend = undefined;\n return values;\n}\n// This function is called recursively until it reaches success or cannot be remediated\nexport function remediate(idxResponse, values, options) {\n return __awaiter(this, void 0, void 0, function* () {\n let { neededToProceed, interactionCode } = idxResponse;\n const { remediators, flow } = options;\n // If the response contains an interaction code, there is no need to remediate\n if (interactionCode) {\n return { idxResponse };\n }\n // Reach to terminal state\n const terminal = isTerminalResponse(idxResponse);\n const messages = getIdxMessages(idxResponse);\n if (terminal) {\n return { terminal, messages };\n }\n const remediator = getRemediator(neededToProceed, values, options);\n if (!remediator && flow === 'default') {\n return { idxResponse };\n }\n if (!remediator) {\n throw new AuthSdkError(`\n No remediation can match current flow, check policy settings in your org.\n Remediations: [${neededToProceed.reduce((acc, curr) => acc ? acc + ' ,' + curr.name : curr.name, '')}]\n `);\n }\n if (messages.length) {\n const nextStep = getNextStep(remediator, idxResponse);\n return { nextStep, messages };\n }\n // Try actions in idxResponse first\n const actionFromValues = getActionFromValues(values, idxResponse);\n const actions = [\n ...options.actions || [],\n ...(actionFromValues && [actionFromValues] || []),\n ];\n if (actions) {\n for (let action of actions) {\n let valuesWithoutExecutedAction = removeActionFromValues(values);\n if (typeof idxResponse.actions[action] === 'function') {\n try {\n idxResponse = yield idxResponse.actions[action]();\n }\n catch (e) {\n return handleIdxError(e, remediators);\n }\n if (action === 'cancel') {\n return { canceled: true };\n }\n return remediate(idxResponse, valuesWithoutExecutedAction, options); // recursive call\n }\n }\n }\n // Return next step to the caller\n if (!remediator.canRemediate()) {\n const nextStep = getNextStep(remediator, idxResponse);\n return { idxResponse, nextStep };\n }\n const name = remediator.getName();\n const data = remediator.getData();\n try {\n idxResponse = yield idxResponse.proceed(name, data);\n // We may want to trim the values bag for the next remediation\n // Let the remediator decide what the values should be (default to current values)\n values = remediator.getValuesAfterProceed();\n return remediate(idxResponse, values, options); // recursive call\n }\n catch (e) {\n return handleIdxError(e, remediator);\n }\n });\n}\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 */\nimport { Identify, SelectAuthenticatorAuthenticate, ChallengeAuthenticator, ReEnrollAuthenticator, RedirectIdp, AuthenticatorEnrollmentData, SelectAuthenticatorEnroll, EnrollAuthenticator, AuthenticatorVerificationData, EnrollPoll, ChallengePoll, Skip } from '../remediators';\nexport const AuthenticationFlow = {\n 'identify': Identify,\n 'select-authenticator-authenticate': SelectAuthenticatorAuthenticate,\n 'select-authenticator-enroll': SelectAuthenticatorEnroll,\n 'authenticator-enrollment-data': AuthenticatorEnrollmentData,\n 'authenticator-verification-data': AuthenticatorVerificationData,\n 'enroll-authenticator': EnrollAuthenticator,\n 'challenge-authenticator': ChallengeAuthenticator,\n 'challenge-poll': ChallengePoll,\n 'reenroll-authenticator': ReEnrollAuthenticator,\n 'enroll-poll': EnrollPoll,\n 'redirect-idp': RedirectIdp,\n 'skip': Skip,\n};\n","/*!\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 */\nimport { Identify, SelectAuthenticatorAuthenticate, ChallengeAuthenticator, AuthenticatorVerificationData, ResetAuthenticator, ReEnrollAuthenticator, } from '../remediators';\nexport const PasswordRecoveryFlow = {\n 'identify': Identify,\n 'identify-recovery': Identify,\n 'select-authenticator-authenticate': SelectAuthenticatorAuthenticate,\n 'challenge-authenticator': ChallengeAuthenticator,\n 'authenticator-verification-data': AuthenticatorVerificationData,\n 'reset-authenticator': ResetAuthenticator,\n 'reenroll-authenticator': ReEnrollAuthenticator,\n};\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 */\nimport { SelectEnrollProfile, EnrollPoll, SelectEnrollmentChannel, EnrollmentChannelData, EnrollProfile, SelectAuthenticatorEnroll, EnrollAuthenticator, AuthenticatorEnrollmentData, Skip, } from '../remediators';\nexport const RegistrationFlow = {\n 'select-enroll-profile': SelectEnrollProfile,\n 'enroll-profile': EnrollProfile,\n 'authenticator-enrollment-data': AuthenticatorEnrollmentData,\n 'select-authenticator-enroll': SelectAuthenticatorEnroll,\n 'enroll-poll': EnrollPoll,\n 'select-enrollment-channel': SelectEnrollmentChannel,\n 'enrollment-channel-data': EnrollmentChannelData,\n 'enroll-authenticator': EnrollAuthenticator,\n 'skip': Skip,\n};\n","import { AuthenticationFlow } from './AuthenticationFlow';\nimport { PasswordRecoveryFlow } from './PasswordRecoveryFlow';\nimport { RegistrationFlow } from './RegistrationFlow';\n// eslint-disable-next-line complexity\nexport function getFlowSpecification(oktaAuth, flow = 'default') {\n let remediators, actions, withCredentials = true;\n switch (flow) {\n case 'register':\n case 'signup':\n case 'enrollProfile':\n remediators = RegistrationFlow;\n withCredentials = false;\n break;\n case 'recoverPassword':\n case 'resetPassword':\n remediators = PasswordRecoveryFlow;\n actions = [\n 'currentAuthenticator-recover',\n 'currentAuthenticatorEnrollment-recover'\n ];\n withCredentials = false;\n break;\n case 'authenticate':\n case 'login':\n case 'signin':\n remediators = AuthenticationFlow;\n break;\n default:\n // default case has no flow monitor\n remediators = AuthenticationFlow;\n break;\n }\n return { flow, remediators, actions, withCredentials };\n}\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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/* eslint-disable max-statements, complexity, max-depth */\nimport { interact } from './interact';\nimport { introspect } from './introspect';\nimport { remediate } from './remediate';\nimport { getFlowSpecification } from './flow';\nimport * as remediators from './remediators';\nimport { IdxStatus, IdxFeature, } from '../types';\nimport { isIdxResponse } from './types/idx-js';\nimport { getSavedTransactionMeta } from './transactionMeta';\nfunction getEnabledFeatures(idxResponse) {\n const res = [];\n const { actions, neededToProceed } = idxResponse;\n if (actions['currentAuthenticator-recover']) {\n res.push(IdxFeature.PASSWORD_RECOVERY);\n }\n if (neededToProceed.some(({ name }) => name === 'select-enroll-profile')) {\n res.push(IdxFeature.REGISTRATION);\n }\n if (neededToProceed.some(({ name }) => name === 'redirect-idp')) {\n res.push(IdxFeature.SOCIAL_IDP);\n }\n return res;\n}\nfunction getAvailableSteps(idxResponse) {\n const res = [];\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 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));\n }\n }\n return res;\n}\nexport function run(authClient, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\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 try {\n let { flow, state, scopes, version, remediators, actions, withCredentials, exchangeCodeForTokens, autoRemediate, step } = options;\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 // Try to resume saved transaction\n metaFromResp = getSavedTransactionMeta(authClient, { state });\n interactionHandle = metaFromResp === null || metaFromResp === void 0 ? void 0 : metaFromResp.interactionHandle; // may be undefined\n if (!interactionHandle) {\n // start a new transaction\n authClient.transactionManager.clear();\n const interactResponse = yield interact(authClient, { withCredentials, state, scopes });\n interactionHandle = interactResponse.interactionHandle;\n metaFromResp = interactResponse.meta;\n withCredentials = metaFromResp.withCredentials;\n }\n // Introspect to get idx response\n idxResponse = yield introspect(authClient, { withCredentials, version, interactionHandle });\n enabledFeatures = getEnabledFeatures(idxResponse);\n availableSteps = getAvailableSteps(idxResponse);\n // Include meta in the transaction response\n meta = metaFromResp;\n if (autoRemediate !== false && (remediators || actions)) {\n const values = Object.assign(Object.assign({}, options), { stateHandle: idxResponse.rawIdxState.stateHandle });\n // Can we handle the remediations?\n const { idxResponse: idxResponseFromResp, nextStep: nextStepFromResp, terminal, canceled, messages: messagesFromResp, } = yield remediate(idxResponse, values, { remediators, actions, flow, step });\n idxResponse = idxResponseFromResp || idxResponse;\n // Track fields from remediation response\n nextStep = nextStepFromResp;\n messages = messagesFromResp;\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 if (terminal) {\n status = IdxStatus.TERMINAL;\n shouldClearTransaction = true;\n clearSharedStorage = false; // transaction may be continued in another tab\n }\n if (canceled) {\n status = IdxStatus.CANCELED;\n shouldClearTransaction = true;\n }\n else if (idxResponse === null || idxResponse === void 0 ? void 0 : idxResponse.interactionCode) {\n interactionCode = idxResponse.interactionCode;\n if (exchangeCodeForTokens === false) {\n status = IdxStatus.SUCCESS;\n shouldClearTransaction = false;\n }\n else {\n // exchange the interaction code for tokens\n const { clientId, codeVerifier, ignoreSignature, redirectUri, urls, scopes, } = metaFromResp;\n tokens = yield authClient.token.exchangeCodeForTokens({\n interactionCode,\n clientId,\n codeVerifier,\n ignoreSignature,\n redirectUri,\n scopes\n }, urls);\n status = IdxStatus.SUCCESS;\n shouldClearTransaction = true;\n }\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 }\n else {\n // error is not an IDX response, throw it like a regular error\n throw err;\n }\n }\n if (shouldClearTransaction) {\n authClient.transactionManager.clear({ clearSharedStorage });\n }\n // from idx-js, used by the widget\n const { actions, context, neededToProceed, proceed, rawIdxState } = idxResponse || {};\n return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ status }, (meta && { meta })), (enabledFeatures && { enabledFeatures })), (availableSteps && { availableSteps })), (tokens && { tokens: tokens.tokens })), (nextStep && { nextStep })), (messages && { messages })), (error && { error })), { interactionCode,\n // from idx-js\n actions,\n context,\n neededToProceed,\n proceed,\n rawIdxState });\n });\n}\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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { AuthenticatorKey } from '../types';\nimport { run } from './run';\nexport function authenticate(authClient, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n if (options.password && !options.authenticator) {\n options.authenticator = AuthenticatorKey.OKTA_PASSWORD;\n }\n return run(authClient, Object.assign(Object.assign({}, options), { flow: 'authenticate' }));\n });\n}\n","/*!\n * Copyright (c) 2021, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { run } from './run';\nimport { getFlowSpecification } from './flow';\nexport function cancel(authClient, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const meta = authClient.transactionManager.load();\n const flowSpec = getFlowSpecification(authClient, meta.flow);\n return run(authClient, Object.assign(Object.assign(Object.assign({}, options), flowSpec), { actions: ['cancel'] }));\n });\n}\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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport CustomError from '../errors/CustomError';\nimport { urlParamsToObject } from '../oidc/util/urlParams';\nexport class EmailVerifyCallbackError extends CustomError {\n constructor(state, otp) {\n super(`Enter the OTP code in the originating client: ${otp}`);\n this.name = 'EmailVerifyCallbackError';\n this.state = state;\n this.otp = otp;\n }\n}\nexport function isEmailVerifyCallbackError(error) {\n return (error.name === 'EmailVerifyCallbackError');\n}\n// Check if state && otp have been passed back in the url\nexport function isEmailVerifyCallback(urlPath) {\n return /(otp=)/i.test(urlPath) && /(state=)/i.test(urlPath);\n}\n// Parse state and otp from a urlPath (should be either a search or fragment from the URL)\nexport function parseEmailVerifyCallback(urlPath) {\n return urlParamsToObject(urlPath);\n}\nexport function handleEmailVerifyCallback(authClient, search) {\n return __awaiter(this, void 0, void 0, function* () {\n if (isEmailVerifyCallback(search)) {\n const { state, otp } = parseEmailVerifyCallback(search);\n if (authClient.idx.canProceed({ state })) {\n // same browser / device\n return yield authClient.idx.proceed({ state, otp });\n }\n else {\n // different browser or device\n throw new EmailVerifyCallbackError(state, otp);\n }\n }\n });\n}\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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { run } from './run';\nimport { getSavedTransactionMeta } from './transactionMeta';\nimport { AuthSdkError } from '../errors';\nexport function canProceed(authClient, options) {\n const meta = getSavedTransactionMeta(authClient, options);\n return !!meta;\n}\nexport function proceed(authClient, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const { state } = options;\n const meta = getSavedTransactionMeta(authClient, { state });\n // Proceed always needs saved transaction meta\n if (!meta) {\n throw new AuthSdkError('Unable to proceed: saved transaction could not be loaded');\n }\n // Determine the flow specification based on the saved flow\n const flow = meta === null || meta === void 0 ? void 0 : meta.flow;\n return run(authClient, Object.assign(Object.assign({}, options), { flow }));\n });\n}\n","/*!\n * Copyright (c) 2021-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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { proceed } from './proceed';\nimport { getSavedTransactionMeta } from './transactionMeta';\nimport { warn } from '../util';\nexport function poll(authClient, options = {}) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n let transaction = yield proceed(authClient, {\n startPolling: true\n });\n const meta = getSavedTransactionMeta(authClient);\n let availablePollingRemeditaions = (_a = meta === null || meta === void 0 ? void 0 : meta.remediations) === null || _a === void 0 ? void 0 : _a.find(remediation => remediation.includes('poll'));\n if (!(availablePollingRemeditaions === null || availablePollingRemeditaions === void 0 ? void 0 : availablePollingRemeditaions.length)) {\n warn('No polling remediations available at the current IDX flow stage');\n }\n if (Number.isInteger(options.refresh)) {\n return new Promise(function (resolve, reject) {\n setTimeout(function () {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const refresh = (_b = (_a = transaction.nextStep) === null || _a === void 0 ? void 0 : _a.poll) === null || _b === void 0 ? void 0 : _b.refresh;\n if (refresh) {\n resolve(poll(authClient, {\n refresh\n }));\n }\n else {\n resolve(transaction);\n }\n }\n catch (err) {\n reject(err);\n }\n });\n }, options.refresh);\n });\n }\n return transaction;\n });\n}\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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { run } from './run';\nexport function startTransaction(authClient, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n // Clear IDX response cache and saved transaction meta (if any)\n authClient.transactionManager.clear();\n return run(authClient, Object.assign({ exchangeCodeForTokens: false }, options));\n });\n}\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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { run } from './run';\nimport { hasSavedInteractionHandle } from './transactionMeta';\nimport { startTransaction } from './startTransaction';\nimport { AuthSdkError } from '../errors';\nimport { IdxFeature, } from '../types';\nexport function register(authClient, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n // Only check at the beginning of the transaction\n if (!hasSavedInteractionHandle(authClient)) {\n const { enabledFeatures, availableSteps } = yield startTransaction(authClient, Object.assign(Object.assign({}, options), { flow: 'register', autoRemediate: false }));\n if (!options.activationToken && enabledFeatures && !enabledFeatures.includes(IdxFeature.REGISTRATION)) {\n const error = new AuthSdkError('Registration is not supported based on your current org configuration.');\n throw error;\n // return { status: IdxStatus.FAILURE, error } as unknown as IdxTransaction; // TODO: wny not just throw the error?\n }\n if (options.activationToken && (availableSteps === null || availableSteps === void 0 ? void 0 : availableSteps.some(({ name }) => name === 'identify'))) {\n const error = new AuthSdkError('activationToken is not supported based on your current org configuration.');\n throw error;\n // return { status: IdxStatus.FAILURE, error } as unknown as IdxTransaction; // TODO: wny not just throw the error?\n }\n }\n return run(authClient, Object.assign(Object.assign({}, options), { flow: 'register' }));\n });\n}\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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { run } from './run';\nimport { getFlowSpecification } from './flow';\nexport function recoverPassword(authClient, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const flowSpec = getFlowSpecification(authClient, 'recoverPassword');\n return run(authClient, Object.assign(Object.assign({}, options), flowSpec));\n });\n}\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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { AuthSdkError, OAuthError } from '../errors';\nexport function handleInteractionCodeRedirect(authClient, url) {\n return __awaiter(this, void 0, void 0, function* () {\n const meta = authClient.transactionManager.load();\n if (!meta) {\n throw new AuthSdkError('No transaction data was found in storage');\n }\n const { codeVerifier, state: savedState } = meta;\n const { searchParams\n // URL API has been added to the polyfill\n // eslint-disable-next-line compat/compat\n } = new URL(url);\n const state = searchParams.get('state');\n const interactionCode = searchParams.get('interaction_code');\n // Error handling\n const error = searchParams.get('error');\n if (error) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n throw new OAuthError(error, searchParams.get('error_description'));\n }\n if (state !== savedState) {\n throw new AuthSdkError('State in redirect uri does not match with transaction state');\n }\n if (!interactionCode) {\n throw new AuthSdkError('Unable to parse interaction_code from the url');\n }\n // Save tokens to storage\n const { tokens } = yield authClient.token.exchangeCodeForTokens({ interactionCode, codeVerifier });\n authClient.tokenManager.setTokens(tokens);\n });\n}\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/* global SDK_VERSION */\nimport { isBrowser } from './features';\nexport class OktaUserAgent {\n constructor() {\n // add base sdk env\n this.environments = [`okta-auth-js/${SDK_VERSION}`];\n }\n addEnvironment(env) {\n this.environments.push(env);\n }\n getHttpHeader() {\n this.maybeAddNodeEnvironment();\n return { 'X-Okta-User-Agent-Extended': this.environments.join(' ') };\n }\n getVersion() {\n return SDK_VERSION;\n }\n maybeAddNodeEnvironment() {\n if (isBrowser() || !process || !process.versions) {\n return;\n }\n const { node: version } = process.versions;\n this.environments.push(`nodejs/${version}`);\n }\n}\n","/* eslint-disable max-statements */\n/* eslint-disable complexity */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n/* global window */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { DEFAULT_MAX_CLOCK_SKEW, REFERRER_PATH_STORAGE_KEY } from './constants';\nimport * as constants from './constants';\nimport { transactionStatus, resumeTransaction, transactionExists, introspectAuthn, postToTransaction } from './tx';\nimport PKCE from './oidc/util/pkce';\nimport { closeSession, sessionExists, getSession, refreshSession, setCookieAndRedirect } from './session';\nimport { getOAuthUrls, getWithoutPrompt, getWithPopup, getWithRedirect, isLoginRedirect, parseFromUrl, decodeToken, revokeToken, renewToken, renewTokens, renewTokensWithRefresh, getUserInfo, verifyToken, prepareTokenParams, exchangeCodeForTokens, isInteractionRequiredError, isInteractionRequired, } from './oidc';\nimport { isBrowser } from './features';\nimport * as features from './features';\nimport browserStorage from './browser/browserStorage';\nimport { toQueryString, toAbsoluteUrl, clone, } from './util';\nimport { TokenManager } from './TokenManager';\nimport { get, setRequestHeader } from './http';\nimport PromiseQueue from './PromiseQueue';\nimport fingerprint from './browser/fingerprint';\nimport { AuthStateManager } from './AuthStateManager';\nimport StorageManager from './StorageManager';\nimport TransactionManager from './TransactionManager';\nimport { buildOptions } from './options';\nimport { interact, introspect, authenticate, cancel, poll, proceed, register, recoverPassword, startTransaction, handleInteractionCodeRedirect, canProceed, handleEmailVerifyCallback, isEmailVerifyCallback, parseEmailVerifyCallback, isEmailVerifyCallbackError } from './idx';\nimport { createGlobalRequestInterceptor, setGlobalRequestInterceptor } from './idx/headers';\nimport { OktaUserAgent } from './OktaUserAgent';\nimport { parseOAuthResponseFromUrl } from './oidc/parseFromUrl';\nimport { getSavedTransactionMeta, createTransactionMeta, getTransactionMeta, saveTransactionMeta, clearTransactionMeta, isTransactionMetaValid } from './idx/transactionMeta';\nconst Emitter = require('tiny-emitter');\nclass OktaAuth {\n constructor(args) {\n const options = this.options = buildOptions(args);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.storageManager = new StorageManager(options.storageManager, options.cookies, options.storageUtil);\n this.transactionManager = new TransactionManager(Object.assign({\n storageManager: this.storageManager,\n }, options.transactionManager));\n this._oktaUserAgent = new OktaUserAgent();\n this.tx = {\n status: transactionStatus.bind(null, this),\n resume: resumeTransaction.bind(null, this),\n exists: Object.assign(transactionExists.bind(null, this), {\n _get: (name) => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const storage = options.storageUtil.storage;\n return storage.get(name);\n }\n }),\n introspect: introspectAuthn.bind(null, this)\n };\n this.pkce = {\n DEFAULT_CODE_CHALLENGE_METHOD: PKCE.DEFAULT_CODE_CHALLENGE_METHOD,\n generateVerifier: PKCE.generateVerifier,\n computeChallenge: PKCE.computeChallenge\n };\n // Add shims for compatibility, these will be removed in next major version. OKTA-362589\n Object.assign(this.options.storageUtil, {\n getPKCEStorage: this.storageManager.getLegacyPKCEStorage.bind(this.storageManager),\n getHttpCache: this.storageManager.getHttpCache.bind(this.storageManager),\n });\n this._pending = { handleLogin: false };\n if (isBrowser()) {\n this.options = Object.assign(this.options, {\n redirectUri: toAbsoluteUrl(args.redirectUri, window.location.origin), // allow relative URIs\n });\n }\n // Digital clocks will drift over time, so the server\n // can misalign with the time reported by the browser.\n // The maxClockSkew allows relaxing the time-based\n // validation of tokens (in seconds, not milliseconds).\n // It currently defaults to 300, because 5 min is the\n // default maximum tolerance allowed by Kerberos.\n // (https://technet.microsoft.com/en-us/library/cc976357.aspx)\n if (!args.maxClockSkew && args.maxClockSkew !== 0) {\n this.options.maxClockSkew = DEFAULT_MAX_CLOCK_SKEW;\n }\n else {\n this.options.maxClockSkew = args.maxClockSkew;\n }\n // As some end user's devices can have their date \n // and time incorrectly set, allow for the disabling\n // of the jwt liftetime validation\n this.options.ignoreLifetime = !!args.ignoreLifetime;\n this.session = {\n close: closeSession.bind(null, this),\n exists: sessionExists.bind(null, this),\n get: getSession.bind(null, this),\n refresh: refreshSession.bind(null, this),\n setCookieAndRedirect: setCookieAndRedirect.bind(null, this)\n };\n this._tokenQueue = new PromiseQueue();\n const useQueue = (method) => {\n return PromiseQueue.prototype.push.bind(this._tokenQueue, method, null);\n };\n // eslint-disable-next-line max-len\n const getWithRedirectFn = useQueue(getWithRedirect.bind(null, this));\n const getWithRedirectApi = Object.assign(getWithRedirectFn, {\n // This is exposed so we can set window.location in our tests\n _setLocation: function (url) {\n window.location = url;\n }\n });\n // eslint-disable-next-line max-len\n const parseFromUrlFn = useQueue(parseFromUrl.bind(null, this));\n const parseFromUrlApi = Object.assign(parseFromUrlFn, {\n // This is exposed so we can mock getting window.history in our tests\n _getHistory: function () {\n return window.history;\n },\n // This is exposed so we can mock getting window.location in our tests\n _getLocation: function () {\n return window.location;\n },\n // This is exposed so we can mock getting window.document in our tests\n _getDocument: function () {\n return window.document;\n }\n });\n this.token = {\n prepareTokenParams: prepareTokenParams.bind(null, this),\n exchangeCodeForTokens: exchangeCodeForTokens.bind(null, this),\n getWithoutPrompt: getWithoutPrompt.bind(null, this),\n getWithPopup: getWithPopup.bind(null, this),\n getWithRedirect: getWithRedirectApi,\n parseFromUrl: parseFromUrlApi,\n decode: decodeToken,\n revoke: revokeToken.bind(null, this),\n renew: renewToken.bind(null, this),\n renewTokensWithRefresh: renewTokensWithRefresh.bind(null, this),\n renewTokens: renewTokens.bind(null, this),\n getUserInfo: getUserInfo.bind(null, this),\n verify: verifyToken.bind(null, this),\n isLoginRedirect: isLoginRedirect.bind(null, this)\n };\n // Wrap all async token API methods using MethodQueue to avoid issues with concurrency\n const syncMethods = [\n // sync methods\n 'decode',\n 'isLoginRedirect',\n // already bound\n 'getWithRedirect',\n 'parseFromUrl'\n ];\n Object.keys(this.token).forEach(key => {\n if (syncMethods.indexOf(key) >= 0) { // sync methods should not be wrapped\n return;\n }\n var method = this.token[key];\n this.token[key] = PromiseQueue.prototype.push.bind(this._tokenQueue, method, null);\n });\n // IDX\n const boundStartTransaction = startTransaction.bind(null, this);\n this.idx = {\n interact: interact.bind(null, this),\n introspect: introspect.bind(null, this),\n authenticate: authenticate.bind(null, this),\n register: register.bind(null, this),\n start: boundStartTransaction,\n startTransaction: boundStartTransaction,\n poll: poll.bind(null, this),\n proceed: proceed.bind(null, this),\n cancel: cancel.bind(null, this),\n recoverPassword: recoverPassword.bind(null, this),\n // oauth redirect callback\n handleInteractionCodeRedirect: handleInteractionCodeRedirect.bind(null, this),\n // interaction required callback\n isInteractionRequired: isInteractionRequired.bind(null, this),\n isInteractionRequiredError,\n // email verify callback\n handleEmailVerifyCallback: handleEmailVerifyCallback.bind(null, this),\n isEmailVerifyCallback,\n parseEmailVerifyCallback,\n isEmailVerifyCallbackError,\n getSavedTransactionMeta: getSavedTransactionMeta.bind(null, this),\n createTransactionMeta: createTransactionMeta.bind(null, this),\n getTransactionMeta: getTransactionMeta.bind(null, this),\n saveTransactionMeta: saveTransactionMeta.bind(null, this),\n clearTransactionMeta: clearTransactionMeta.bind(null, this),\n isTransactionMetaValid,\n setFlow: (flow) => {\n this.options.flow = flow;\n },\n getFlow: () => {\n return this.options.flow;\n },\n canProceed: canProceed.bind(null, this),\n };\n setGlobalRequestInterceptor(createGlobalRequestInterceptor(this)); // to pass custom headers to IDX endpoints\n // HTTP\n this.http = {\n setRequestHeader: setRequestHeader.bind(null, this)\n };\n // Fingerprint API\n this.fingerprint = fingerprint.bind(null, this);\n this.emitter = new Emitter();\n // TokenManager\n this.tokenManager = new TokenManager(this, args.tokenManager);\n // AuthStateManager\n this.authStateManager = new AuthStateManager(this);\n }\n start() {\n this.tokenManager.start();\n if (!this.token.isLoginRedirect()) {\n this.authStateManager.updateAuthState();\n }\n }\n stop() {\n this.tokenManager.stop();\n }\n setHeaders(headers) {\n this.options.headers = Object.assign({}, this.options.headers, headers);\n }\n // Authn V1\n signIn(opts) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.signInWithCredentials(opts);\n });\n }\n // Authn V1\n signInWithCredentials(opts) {\n return __awaiter(this, void 0, void 0, function* () {\n opts = clone(opts || {});\n const _postToTransaction = (options) => {\n delete opts.sendFingerprint;\n return postToTransaction(this, '/api/v1/authn', opts, options);\n };\n if (!opts.sendFingerprint) {\n return _postToTransaction();\n }\n return this.fingerprint()\n .then(function (fingerprint) {\n return _postToTransaction({\n headers: {\n 'X-Device-Fingerprint': fingerprint\n }\n });\n });\n });\n }\n signInWithRedirect(opts = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const { originalUri } = opts, additionalParams = __rest(opts, [\"originalUri\"]);\n if (this._pending.handleLogin) {\n // Don't trigger second round\n return;\n }\n this._pending.handleLogin = true;\n try {\n // Trigger default signIn redirect flow\n if (originalUri) {\n this.setOriginalUri(originalUri);\n }\n const params = Object.assign({\n // TODO: remove this line when default scopes are changed OKTA-343294\n scopes: this.options.scopes || ['openid', 'email', 'profile']\n }, additionalParams);\n yield this.token.getWithRedirect(params);\n }\n finally {\n this._pending.handleLogin = false;\n }\n });\n }\n // Ends the current Okta SSO session without redirecting to Okta.\n closeSession() {\n return this.session.close() // DELETE /api/v1/sessions/me\n .then(() => __awaiter(this, void 0, void 0, function* () {\n // Clear all local tokens\n this.tokenManager.clear();\n }))\n .catch(function (e) {\n if (e.name === 'AuthApiError' && e.errorCode === 'E0000007') {\n // Session does not exist or has already been closed\n return null;\n }\n throw e;\n });\n }\n // Revokes the access token for the application session\n revokeAccessToken(accessToken) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!accessToken) {\n accessToken = (yield this.tokenManager.getTokens()).accessToken;\n const accessTokenKey = this.tokenManager.getStorageKeyByType('accessToken');\n this.tokenManager.remove(accessTokenKey);\n }\n // Access token may have been removed. In this case, we will silently succeed.\n if (!accessToken) {\n return Promise.resolve(null);\n }\n return this.token.revoke(accessToken);\n });\n }\n // Revokes the refresh token for the application session\n revokeRefreshToken(refreshToken) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!refreshToken) {\n refreshToken = (yield this.tokenManager.getTokens()).refreshToken;\n const refreshTokenKey = this.tokenManager.getStorageKeyByType('refreshToken');\n this.tokenManager.remove(refreshTokenKey);\n }\n // Refresh token may have been removed. In this case, we will silently succeed.\n if (!refreshToken) {\n return Promise.resolve(null);\n }\n return this.token.revoke(refreshToken);\n });\n }\n getSignOutRedirectUrl(options = {}) {\n let { idToken, postLogoutRedirectUri, state, } = options;\n if (!idToken) {\n idToken = this.tokenManager.getTokensSync().idToken;\n }\n if (!idToken) {\n return '';\n }\n if (!postLogoutRedirectUri) {\n postLogoutRedirectUri = this.options.postLogoutRedirectUri;\n }\n const logoutUrl = getOAuthUrls(this).logoutUrl;\n const idTokenHint = idToken.idToken; // a string\n let logoutUri = logoutUrl + '?id_token_hint=' + encodeURIComponent(idTokenHint);\n if (postLogoutRedirectUri) {\n logoutUri += '&post_logout_redirect_uri=' + encodeURIComponent(postLogoutRedirectUri);\n }\n // State allows option parameters to be passed to logout redirect uri\n if (state) {\n logoutUri += '&state=' + encodeURIComponent(state);\n }\n return logoutUri;\n }\n // Revokes refreshToken or accessToken, clears all local tokens, then redirects to Okta to end the SSO session.\n signOut(options) {\n return __awaiter(this, void 0, void 0, function* () {\n options = Object.assign({}, options);\n // postLogoutRedirectUri must be whitelisted in Okta Admin UI\n var defaultUri = window.location.origin;\n var currentUri = window.location.href;\n var postLogoutRedirectUri = options.postLogoutRedirectUri\n || this.options.postLogoutRedirectUri\n || defaultUri;\n var accessToken = options.accessToken;\n var refreshToken = options.refreshToken;\n var revokeAccessToken = options.revokeAccessToken !== false;\n var revokeRefreshToken = options.revokeRefreshToken !== false;\n if (revokeRefreshToken && typeof refreshToken === 'undefined') {\n refreshToken = this.tokenManager.getTokensSync().refreshToken;\n }\n if (revokeAccessToken && typeof accessToken === 'undefined') {\n accessToken = this.tokenManager.getTokensSync().accessToken;\n }\n if (!options.idToken) {\n options.idToken = this.tokenManager.getTokensSync().idToken;\n }\n if (revokeRefreshToken && refreshToken) {\n yield this.revokeRefreshToken(refreshToken);\n }\n if (revokeAccessToken && accessToken) {\n yield this.revokeAccessToken(accessToken);\n }\n const logoutUri = this.getSignOutRedirectUrl(Object.assign(Object.assign({}, options), { postLogoutRedirectUri }));\n // No logoutUri? This can happen if the storage was cleared.\n // Fallback to XHR signOut, then simulate a redirect to the post logout uri\n if (!logoutUri) {\n // local tokens are cleared once session is closed\n return this.closeSession() // can throw if the user cannot be signed out\n .then(function () {\n if (postLogoutRedirectUri === currentUri) {\n window.location.reload(); // force a hard reload if URI is not changing\n }\n else {\n window.location.assign(postLogoutRedirectUri);\n }\n });\n }\n else {\n if (options.clearTokensBeforeRedirect) {\n // Clear all local tokens\n this.tokenManager.clear();\n }\n else {\n this.tokenManager.addPendingRemoveFlags();\n }\n // Flow ends with logout redirect\n window.location.assign(logoutUri);\n }\n });\n }\n webfinger(opts) {\n var url = '/.well-known/webfinger' + toQueryString(opts);\n var options = {\n headers: {\n 'Accept': 'application/jrd+json'\n }\n };\n return get(this, url, options);\n }\n //\n // Common Methods from downstream SDKs\n //\n // Returns true if both accessToken and idToken are not expired\n // If `autoRenew` option is set, will attempt to renew expired tokens before returning.\n isAuthenticated() {\n return __awaiter(this, void 0, void 0, function* () {\n let { accessToken, idToken } = this.tokenManager.getTokensSync();\n const { autoRenew, autoRemove } = this.tokenManager.getOptions();\n if (accessToken && this.tokenManager.hasExpired(accessToken)) {\n accessToken = undefined;\n if (autoRenew) {\n try {\n accessToken = (yield this.tokenManager.renew('accessToken'));\n }\n catch (_a) {\n // Renew errors will emit an \"error\" event \n }\n }\n else if (autoRemove) {\n this.tokenManager.remove('accessToken');\n }\n }\n if (idToken && this.tokenManager.hasExpired(idToken)) {\n idToken = undefined;\n if (autoRenew) {\n try {\n idToken = (yield this.tokenManager.renew('idToken'));\n }\n catch (_b) {\n // Renew errors will emit an \"error\" event \n }\n }\n else if (autoRemove) {\n this.tokenManager.remove('idToken');\n }\n }\n return !!(accessToken && idToken);\n });\n }\n getUser() {\n return __awaiter(this, void 0, void 0, function* () {\n const { idToken, accessToken } = this.tokenManager.getTokensSync();\n return this.token.getUserInfo(accessToken, idToken);\n });\n }\n getIdToken() {\n const { idToken } = this.tokenManager.getTokensSync();\n return idToken ? idToken.idToken : undefined;\n }\n getAccessToken() {\n const { accessToken } = this.tokenManager.getTokensSync();\n return accessToken ? accessToken.accessToken : undefined;\n }\n getRefreshToken() {\n const { refreshToken } = this.tokenManager.getTokensSync();\n return refreshToken ? refreshToken.refreshToken : undefined;\n }\n /**\n * Store parsed tokens from redirect url\n */\n storeTokensFromRedirect() {\n return __awaiter(this, void 0, void 0, function* () {\n const { tokens } = yield this.token.parseFromUrl();\n this.tokenManager.setTokens(tokens);\n });\n }\n setOriginalUri(originalUri, state) {\n // always store in session storage\n const sessionStorage = browserStorage.getSessionStorage();\n sessionStorage.setItem(REFERRER_PATH_STORAGE_KEY, originalUri);\n // to support multi-tab flows, set a state in constructor or pass as param\n state = state || this.options.state;\n if (state) {\n const sharedStorage = this.storageManager.getOriginalUriStorage();\n sharedStorage.setItem(state, originalUri);\n }\n }\n getOriginalUri(state) {\n // Prefer shared storage (if state is available)\n state = state || this.options.state;\n if (state) {\n const sharedStorage = this.storageManager.getOriginalUriStorage();\n const originalUri = sharedStorage.getItem(state);\n if (originalUri) {\n return originalUri;\n }\n }\n // Try to load from session storage\n const storage = browserStorage.getSessionStorage();\n return storage ? storage.getItem(REFERRER_PATH_STORAGE_KEY) || undefined : undefined;\n }\n removeOriginalUri(state) {\n // Remove from sessionStorage\n const storage = browserStorage.getSessionStorage();\n storage.removeItem(REFERRER_PATH_STORAGE_KEY);\n // Also remove from shared storage\n state = state || this.options.state;\n if (state) {\n const sharedStorage = this.storageManager.getOriginalUriStorage();\n sharedStorage.removeItem && sharedStorage.removeItem(state);\n }\n }\n isLoginRedirect() {\n return isLoginRedirect(this);\n }\n handleLoginRedirect(tokens, originalUri) {\n return __awaiter(this, void 0, void 0, function* () {\n let state = this.options.state;\n // Store tokens and update AuthState by the emitted events\n if (tokens) {\n this.tokenManager.setTokens(tokens);\n originalUri = originalUri || this.getOriginalUri(this.options.state);\n }\n else if (this.isLoginRedirect()) {\n // For redirect flow, get state from the URL and use it to retrieve the originalUri\n const oAuthResponse = yield parseOAuthResponseFromUrl(this, {});\n state = oAuthResponse.state;\n originalUri = originalUri || this.getOriginalUri(state);\n yield this.storeTokensFromRedirect();\n }\n else {\n return; // nothing to do\n }\n // ensure auth state has been updated\n yield this.authStateManager.updateAuthState();\n // clear originalUri from storage\n this.removeOriginalUri(state);\n // Redirect to originalUri\n const { restoreOriginalUri } = this.options;\n if (restoreOriginalUri) {\n yield restoreOriginalUri(this, originalUri);\n }\n else if (originalUri) {\n window.location.replace(originalUri);\n }\n });\n }\n isPKCE() {\n return !!this.options.pkce;\n }\n hasResponseType(responseType) {\n let hasResponseType = false;\n if (Array.isArray(this.options.responseType) && this.options.responseType.length) {\n hasResponseType = this.options.responseType.indexOf(responseType) >= 0;\n }\n else {\n hasResponseType = this.options.responseType === responseType;\n }\n return hasResponseType;\n }\n isAuthorizationCodeFlow() {\n return this.hasResponseType('code');\n }\n // { username, password, (relayState), (context) }\n // signIn(opts: SignInWithCredentialsOptions): Promise<AuthTransaction> {\n // return postToTransaction(this, '/api/v1/authn', opts);\n // }\n getIssuerOrigin() {\n // Infer the URL from the issuer URL, omitting the /oauth2/{authServerId}\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this.options.issuer.split('/oauth2/')[0];\n }\n // { username, (relayState) }\n forgotPassword(opts) {\n return postToTransaction(this, '/api/v1/authn/recovery/password', opts);\n }\n // { username, (relayState) }\n unlockAccount(opts) {\n return postToTransaction(this, '/api/v1/authn/recovery/unlock', opts);\n }\n // { recoveryToken }\n verifyRecoveryToken(opts) {\n return postToTransaction(this, '/api/v1/authn/recovery/token', opts);\n }\n}\n// Hoist feature detection functions to static type\nOktaAuth.features = OktaAuth.prototype.features = features;\n// Also hoist constants for CommonJS users\nObject.assign(OktaAuth, {\n constants\n});\nexport default OktaAuth;\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 idx from '@okta/okta-idx-js';\nexport function setGlobalRequestInterceptor(fn) {\n idx.client.interceptors.request.use(fn);\n}\n// A factory which returns a function that can be passed to `setGlobalRequestInterceptor`\nexport function createGlobalRequestInterceptor(sdk) {\n return function (requestConfig) {\n // Set user-agent and any other custom headers set in the options\n var oktaUserAgentHeader = sdk._oktaUserAgent.getHttpHeader();\n const headers = Object.assign(Object.assign({}, oktaUserAgentHeader), sdk.options.headers);\n Object.keys(headers).forEach(name => {\n requestConfig.headers[name] = headers[name];\n });\n };\n}\n"],"names":["root","factory","exports","module","define","amd","self","arr","len","length","i","arr2","Array","__esModule","_Array$isArray","arrayLikeToArray","_Promise","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","then","fn","this","args","arguments","apply","err","undefined","_Object$defineProperty","obj","enumerable","configurable","writable","_Symbol","_getIteratorMethod","_Array$from","iter","_i","_s","_e","_arr","_n","_d","call","next","push","TypeError","_Object$getOwnPropertySymbols","_indexOfInstanceProperty","objectWithoutPropertiesLoose","source","excluded","target","sourceSymbolKeys","Object","prototype","propertyIsEnumerable","_Object$keys","sourceKeys","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","arrayWithoutHoles","iterableToArray","nonIterableSpread","_Symbol$iterator","_typeof","constructor","_sliceInstanceProperty","o","minLen","_context","n","toString","name","test","ReferenceError","instance","Constructor","setPrototypeOf","isNativeReflectConstruct","_construct","Parent","Class","Reflect","construct","a","Function","bind","_defineProperties","props","descriptor","defineProperty","protoProps","staticProps","_getPrototypeOf","getPrototypeOf","__proto__","subClass","superClass","create","indexOf","sham","Proxy","Boolean","valueOf","e","assertThisInitialized","_setPrototypeOf","p","Symbol","iterator","isNativeFunction","_wrapNativeSuper","_cache","Map","has","get","set","Wrapper","_filterInstanceProperty","_Object$getOwnPropertyDescriptor","_forEachInstanceProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_interopRequireDefault","request","HttpClient","_regenerator","_forEach","_defineProperty2","_asyncToGenerator2","_crossFetch","_userAgent","ownKeys","object","enumerableOnly","keys","symbols","sym","_objectSpread","_context3","default","_context4","interceptors","handlers","use","before","clear","_request","mark","_callee","_ref","_ref$method","method","_ref$headers","headers","_ref$credentials","credentials","body","requestOptions","url","wrap","_context2","prev","userAgentHeaders","interceptor","abrupt","stop","_x","_x2","_indexOf","_promise","_url","_introspect","_interact","_parsers","_client","_util","LATEST_SUPPORTED_IDX_API_VERSION","start","_start","_issuer","_issuer2","withCredentials","clientId","domain","issuer","stateHandle","interactionHandle","version","redirectUri","state","scopes","codeChallenge","codeChallengeMethod","activationToken","recoveryToken","baseUrl","toPersist","interactParams","interaction_handle","_parsersForVersion","_makeIdxState","idxResponse","idxState","replace","origin","validateVersionConfig","sent","t0","makeIdxState","catch","details","t1","_default","introspect","interact","client","_slicedToArray2","_map","_entries","_concat","parseAndReject","response","json","_ref$scopes","params","concat","client_id","scope","join","redirect_uri","code_challenge","code_challenge_method","activation_token","recovery_token","_ref2","_ref3","param","encodeURIComponent","ok","data","_stringify","stateToken","accept","Error","getUserAgent","_Array$isArray2","_getIterator","divideActionParamsByMutability","_isArray","_createForOfIteratorHelper","allowArrayLike","it","_arrayLikeToArray","_unsupportedIterableToArray","F","s","f","normalCompletion","didErr","step","_e2","return","isFieldMutable","field","mutable","divideSingleActionParamsByMutability","action","defaultParamsForAction","neededParamsForAction","immutableParamsForAction","_step","_iterator","_field$value","_field$value2","actionList","_step2","neededParams","defaultParams","immutableParams","_iterator2","_divideSingleActionPa","_forEachInstanceProperty","_actionParser","generateDirectFetch","actionDefinition","_ref$defaultParamsFor","_ref$immutableParamsF","href","accepts","respJson","status","ms","stepUp","generator","_divideActionParamsBy","_Object$keys2","_filterInstanceProperty2","parseIdxResponse","parseNonRemediations","_objectWithoutProperties2","_typeof2","_fromEntries","_filter","_keys","_remediationParser","_generateIdxAction","_jsonpathPlus","_context8","_context9","SKIP_FIELDS","actions","context","rel","_idxResponse$field","fieldValue","type","_context5","subField","expandRelatesTo","_context6","k","query","result","JSONPath","path","_context7","innerValue","convertRemediationAction","remediation","actionFn","generateRemediationFunctions","_idxResponse$remediat","remediationData","remediations","_parseNonRemediations","_find","_toConsumableArray2","_idxResponseParser","_rawIdxResponse$succe","rawIdxResponse","_parseIdxResponse","neededToProceed","proceed","remediationChoice","paramsFromUser","remediationChoiceObject","_args","interactionCode","successWithInteractionCode","item","rawIdxState","hasInteractionCode","remediationValue","CancelError","reason","PCancelable","executor","_cancelHandlers","_isPending","_isCanceled","_rejectOnCancel","Promise","_reject","onCancel","handler","defineProperties","shouldReject","boolean","onFulfilled","onRejected","onFinally","finally","userFn","arguments_","from","isArray","entryVirtual","filter","find","forEach","map","slice","ArrayPrototype","own","core","JSON","stringify","replacer","space","T","D","desc","entries","fromEntries","getOwnPropertyDescriptor","getOwnPropertyDescriptors","getOwnPropertySymbols","WrappedWellKnownSymbolModule","parent","getIteratorMethod","getIterator","String","isObject","$forEach","STRICT_METHOD","arrayMethodIsStrict","callbackfn","toObject","callWithSafeIterationClosing","isArrayIteratorMethod","toLength","createProperty","arrayLike","O","C","argumentsLength","mapfn","mapping","iteratorMethod","index","toIndexedObject","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","includes","IndexedObject","arraySpeciesCreate","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_OUT","NO_HOLES","that","specificCreate","boundFunction","some","every","findIndex","filterOut","fails","wellKnownSymbol","V8_VERSION","SPECIES","METHOD_NAME","array","foo","argument","originalArray","anObject","iteratorClose","ENTRIES","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","exec","SKIP_CLOSING","ITERATION_SUPPORT","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","CORRECT_ARGUMENTS","tag","tryGet","callee","IteratorPrototype","createPropertyDescriptor","setToStringTag","Iterators","returnThis","IteratorConstructor","NAME","DESCRIPTORS","definePropertyModule","bitmap","toPrimitive","propertyKey","$","createIteratorConstructor","createNonEnumerableProperty","redefine","IS_PURE","IteratorsCore","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","values","proto","forced","wrappedWellKnownSymbolModule","global","document","EXISTS","createElement","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","window","userAgent","classof","process","getBuiltIn","match","versions","v8","split","CONSTRUCTOR","isForced","wrapConstructor","NativeConstructor","b","c","options","USE_NATIVE","VIRTUAL_PROTOTYPE","sourceProperty","targetProperty","nativeProperty","resultProperty","TARGET","GLOBAL","STATIC","stat","PROTO","nativeSource","targetPrototype","noTargetGet","real","aFunction","variable","namespace","check","Math","globalThis","g","hasOwnProperty","hasOwn","console","store","functionToString","inspectSource","NATIVE_WEAK_MAP","objectHas","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","wmget","wmhas","wmset","metadata","facade","STATE","enforce","getterFor","replacement","feature","detection","normalize","POLYFILL","NATIVE","string","toLowerCase","Result","stopped","iterable","unboundFunction","iterFn","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","condition","callFn","returnMethod","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","flush","head","last","notify","toggle","node","promise","macrotask","IS_IOS","IS_WEBOS_WEBKIT","IS_NODE","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","exit","enter","nextTick","createTextNode","observe","characterData","task","symbol","URL","searchParams","pathname","toJSON","sort","URLSearchParams","username","host","hash","PromiseCapability","$$resolve","$$reject","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","$assign","assign","A","B","alphabet","chr","S","j","activeXDocument","enumBugKeys","html","documentCreateElement","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObject","ActiveXObject","iframeDocument","iframe","write","close","temp","parentWindow","NullProtoObjectViaActiveX","style","display","appendChild","src","contentWindow","open","Properties","IE8_DOM_DEFINE","$defineProperty","P","Attributes","$getOwnPropertyDescriptor","$getOwnPropertyNames","windowNames","getOwnPropertyNames","getWindowNames","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","names","$propertyIsEnumerable","NASHORN_BUG","V","aPossiblePrototype","setter","CORRECT_SETTER","TO_ENTRIES","getOwnPropertyNamesModule","newPromiseCapability","x","promiseCapability","unsafe","CONSTRUCTOR_NAME","TAG","SET_METHOD","uid","setGlobal","SHARED","mode","copyright","defaultConstructor","toInteger","requireObjectCoercible","CONVERT_TO_STRING","pos","first","second","position","size","charCodeAt","charAt","codeAt","maxInt","regexNonASCII","regexSeparators","OVERFLOW_ERROR","floor","stringFromCharCode","fromCharCode","digitToBasic","digit","adapt","delta","numPoints","firstTime","baseMinusTMin","base","encode","input","output","counter","extra","ucs2decode","currentValue","inputLength","bias","basicLength","handledCPCount","m","handledCPCountPlusOne","RangeError","q","t","qMinusT","baseMinusT","label","encoded","labels","defer","channel","port","location","setImmediate","clearImmediate","MessageChannel","Dispatch","queue","run","id","runner","listener","event","post","postMessage","protocol","now","port2","port1","onmessage","addEventListener","importScripts","removeChild","setTimeout","max","min","integer","ceil","isNaN","PREFERRED_STRING","val","postfix","random","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","iterate","$AggregateError","errors","message","errorsArray","AggregateError","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","E","$filter","$find","addToUnscopables","FIND","SKIPS_HOLES","checkCorrectnessOfIteration","$indexOf","nativeIndexOf","NEGATIVE_ZERO","searchElement","InternalStateModule","defineIterator","ARRAY_ITERATOR","setInternalState","getInternalState","iterated","kind","Arguments","$map","HAS_SPECIES_SUPPORT","nativeSlice","end","fin","$stringify","re","low","hi","fix","offset","$entries","v","nativeGetOwnPropertyDescriptor","FAILS_ON_PRIMITIVES","getOwnPropertyDescriptorModule","nativeKeys","newPromiseCapabilityModule","perform","allSettled","capability","promiseResolve","remaining","alreadyCalled","PROMISE_ANY_ERROR","any","alreadyResolved","alreadyRejected","NativePromise","speciesConstructor","isFunction","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","redefineAll","setSpecies","anInstance","microtask","hostReportErrors","IS_BROWSER","PROMISE","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromiseConstructorPrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","UNHANDLED_REJECTION","SUBCLASSING","GLOBAL_CORE_JS_PROMISE","FakePromise","INCORRECT_ITERATION","all","isThenable","isReject","notified","chain","reactions","exited","reaction","fail","rejection","onHandleUnhandled","onUnhandled","initEvent","isUnhandled","emit","unwrap","internalReject","internalResolve","wrapper","r","$promiseResolve","race","STRING_ITERATOR","point","defineWellKnownSymbol","nativeObjectCreate","getOwnPropertyNamesExternal","HIDDEN","SYMBOL","TO_PRIMITIVE","$Symbol","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","description","isSymbol","$defineProperties","properties","$getOwnPropertySymbols","IS_OBJECT_PROTOTYPE","keyFor","useSetter","useSimple","$replacer","DOMIterables","COLLECTION_NAME","Collection","CollectionPrototype","USE_NATIVE_URL","$fetch","Headers","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","plus","sequences","percentSequence","bytes","RegExp","percentDecode","sequence","decodeURIComponent","deserialize","serialize","parseSearchParams","attribute","entry","attributes","shift","updateSearchParams","validateArgumentsLength","passed","required","URLSearchParamsIterator","URLSearchParamsConstructor","entryIterator","entryNext","init","updateURL","URLSearchParamsPrototype","append","splice","getAll","found","entriesIndex","sliceIndex","callback","fetch","getState","EOF","arrayFrom","toASCII","URLSearchParamsModule","NativeURL","getInternalSearchParamsState","getInternalURLState","pow","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseHost","codePoints","parseIPv6","isSpecial","parseIPv4","percentEncode","C0ControlPercentEncodeSet","partsLength","numbers","part","radix","number","ipv4","parts","pop","parseInt","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","compress","pointer","char","serializeHost","ignore0","unshift","ipv6","maxIndex","maxLength","currStart","currLength","findLongestZeroSequence","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","code","specialSchemes","ftp","file","http","https","ws","wss","scheme","includesCredentials","password","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","third","shortenURLsPath","pathSize","isSingleDot","segment","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","bufferCodePoints","failure","buffer","seenAt","seenBracket","seenPasswordToken","fragment","codePoint","encodedCodePoints","URLConstructor","baseState","urlString","searchParamsState","serializeURL","getOrigin","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","getPathname","search","getSearch","getSearchParams","getHash","URLPrototype","accessorDescriptor","getter","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","blob","unicode","copyConstructorProperties","regexpExec","RegExpPrototype","SHAM","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","flags","nativeRegExpMethod","nativeMethod","regexp","str","arg2","forceStringMethod","$exec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","captures","namedCaptures","tailPos","ch","capture","enforceInternalState","TEMPLATE","simple","R","re1","re2","regexpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","lastIndex","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","group","raw","groups","sticky","charsAdded","strCopy","multiline","ignoreCase","dotAll","RE","nativeJoin","ES3_STRINGS","separator","FunctionPrototype","FunctionPrototypeToString","nameRE","fixRegExpWellKnownSymbolLogic","advanceStringIndex","getSubstitution","regExpExec","REPLACE","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","_","maybeCallNative","UNSAFE_SUBSTITUTE","searchValue","replaceValue","res","rx","functionalReplace","fullUnicode","results","accumulatedResult","nextSourcePosition","replacerArgs","__self__","DOMException","support","Blob","viewClasses","isArrayBufferView","ArrayBuffer","isView","normalizeName","normalizeValue","iteratorFor","items","header","consumed","bodyUsed","fileReaderReady","reader","onload","onerror","readBlobAsArrayBuffer","FileReader","readAsArrayBuffer","bufferClone","buf","view","Uint8Array","byteLength","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","DataView","_bodyArrayBuffer","rejected","arrayBuffer","text","readAsText","chars","readArrayBufferAsText","formData","decode","parse","oldValue","thisArg","Request","upcased","signal","toUpperCase","referrer","form","trim","Response","bodyInit","statusText","clone","redirectStatuses","redirect","stack","aborted","xhr","XMLHttpRequest","abortXhr","abort","rawHeaders","getAllResponseHeaders","line","responseURL","responseText","ontimeout","onabort","responseType","setRequestHeader","onreadystatechange","readyState","removeEventListener","send","polyfill","ponyfill","ctx","extend","converter","api","defaults","expires","Date","toUTCString","escape","stringifiedAttributes","attributeName","cookie","jar","cookies","read","getJSON","remove","withConverter","_isNativeReflectConstruct","_possibleConstructorReturn","_assertThisInitialized","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","hasOwnProp","NewError","_Error","_inherits","Derived","hasNativeReflectConstruct","_super","Super","NewTarget","_this","_classCallCheck","avoidNew","opts","expr","otherTypeCallback","optObj","resultType","flatten","sandbox","preventEval","parentProperty","autostart","ret","evaluate","_this2","currParent","currParentProperty","currResultType","currPreventEval","currSandbox","currOtherTypeCallback","toPathString","exprList","toPathArray","_hasParentSelector","_trace","ea","isParentSelector","hasArrExpr","reduce","rslt","valOrPath","_getPreferredOutput","toPointer","_handleCallback","fullRetObj","preferredOutput","parentPropName","literalPriority","retObj","_this3","loc","addRet","elems","_walk","l","par","pr","cb","_slice","_eval","addType","valueType","Number","isFinite","locProp","rett","tmp","tl","tt","_v","_vname","_$_parentProperty","_$_parent","_$_property","_$_path","_$_root","_$_v","vm","runInNewContext","log","cache","pathArr","subx","$0","$1","prop","ups","exp","funcs","conditionCb","il","moveToAnotherArray","vr","funcString","func","fString","lastStatementEnd","lastIndexOf","runtime","Op","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","displayName","isGeneratorFunction","genFun","ctor","awrap","async","reverse","skipTempReset","rootRecord","rval","exception","handle","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","on","once","off","evtArr","evts","liveEvents","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","d","definition","CustomError","AuthApiError","errorSummary","errorCode","errorLink","errorId","errorCauses","AuthPollStopError","AuthSdkError","msg","OAuthError","summary","isAuthApiError","atob","btoa","crypto","stringToBase64Url","base64ToBase64Url","b64","base64UrlToBase64","b64u","base64UrlToString","utf8","stringToBuffer","base64UrlDecode","getOidcHash","TextEncoder","webcrypto","firstHalf","additionalArgs","obj1","objArray","removeNils","cleaned","omit","newobj","collection","getLink","linkName","altName","_links","link","verifyToken","idToken","algo","cryptoKey","jwt","payload","signature","_createClass","STATE_TOKEN_KEY_NAME","DEFAULT_POLLING_DELAY","DEFAULT_MAX_CLOCK_SKEW","DEFAULT_CACHE_DURATION","REDIRECT_OAUTH_PARAMS_NAME","REDIRECT_STATE_COOKIE_NAME","REDIRECT_NONCE_COOKIE_NAME","TOKEN_STORAGE_NAME","CACHE_STORAGE_NAME","PKCE_STORAGE_NAME","TRANSACTION_STORAGE_NAME","SHARED_TRANSACTION_STORAGE_NAME","ORIGINAL_URI_STORAGE_NAME","IDX_RESPONSE_STORAGE_NAME","ACCESS_TOKEN_STORAGE_KEY","ID_TOKEN_STORAGE_KEY","REFRESH_TOKEN_STORAGE_KEY","REFERRER_PATH_STORAGE_KEY","MIN_VERIFIER_LENGTH","MAX_VERIFIER_LENGTH","DEFAULT_CODE_CHALLENGE_METHOD","IDX_API_VERSION","authClient","headerName","headerValue","isString","isNumber","isPromise","isAbsoluteUrl","toAbsoluteUrl","removeTrailingSlash","toRelativeUrl","substring","toQueryString","trimmed","httpRequest","sdk","saveAuthnState","accessToken","storage","storageUtil","httpCache","storageManager","getHttpCache","cacheResponse","cachedResponse","getStorage","expiresAt","oktaUserAgentHeader","_oktaUserAgent","getHttpHeader","ajaxOptions","httpRequestClient","resp","delete","updateStorage","serverErr","transformErrorXHR","getOptions","getIssuerOrigin","postOptions","addStateToken","builtArgs","getStateToken","isoToUTCString","isoTime","UTC","genRandomString","randomCharset","cl","delay","getPollFn","ref","rememberDevice","autoPush","transactionCallBack","pollLink","isPolling","retryCount","recursivePoll","pollFn","pollRes","factorResult","delayFn","AuthTransaction","delayLength","flattenEmbedded","cancel","link2fn","lk","hints","allow","factorType","provider","profile","updatePhone","postToTransaction","objArr","ol","embedded","_embedded","fns","poll","links2fns","transactionStatus","resumeTransaction","tx","exists","_get","introspectAuthn","transactionStep","transactionExists","dec2hex","dec","substr","generateVerifier","prefix","verifier","getRandomString","computeChallenge","sessionExists","session","getSession","refresh","user","closeSession","refreshSession","setCookieAndRedirect","sessionToken","redirectUrl","checkAccountSetupComplete","token","convertTokenParamsToOAuthParams","tokenParams","oauthParams","idp","idpScope","loginHint","maxAge","nonce","prompt","responseMode","mayBeArray","buildAuthorizeParams","oauthQueryParams","extraParams","postToTokenEndpoint","urls","authorizationCode","codeVerifier","validateOptions","clientSecret","getPostData","tokenUrl","postRefreshToken","refreshToken","grant_type","refresh_token","getWellKnown","getKey","kid","wellKnown","jwksUri","cachedKey","clearStorage","addListener","eventTarget","attachEvent","removeListener","detachEvent","loadFrame","loadPopup","title","popupTitle","addPostMessageListener","timeout","responseHandler","timeoutId","clearTimeout","generateState","generateNonce","getIssuer","getOAuthBaseUrl","getOAuthDomain","getOAuthUrls","authorizeUrl","userinfoUrl","logoutUrl","revokeUrl","isWindowsPhone","isBrowser","isIE11OrLess","documentMode","navigator","isFingerprintSupported","agent","isPopupPostMessageSupported","isIE8or9","isTokenVerifySupported","hasTextEncoder","isPKCESupported","isHTTPS","isLocalhost","getDefaultTokenParams","pkce","ignoreSignature","defaultRedirectUri","isInteractionRequiredError","isAuthorizationCodeError","errorResponse","responseJSON","hasTokensInHash","hasAuthorizationCode","hashOrSearch","hasErrorInUrl","isRedirectUri","uri","authParams","isCodeFlow","getHashOrSearch","isLoginRedirect","codeFlow","isInteractionRequired","createOAuthMeta","oauthMeta","IdxStatus","AuthenticatorKey","IdxFeature","__awaiter","_arguments","fulfilled","assertPKCESupport","features","errorMessage","validateCodeChallengeMethod","preparePKCE","PKCE","prepareTokenParams","isSameRefreshToken","isRefreshTokenError","urlParamsToObject","plus2space","paramSplit","validateClaims","claims","validationParams","aud","iss","iat","ignoreLifetime","maxClockSkew","isObjectWithProperties","isOAuthTransactionMeta","isPKCETransactionMeta","isIdxTransactionMeta","isCustomAuthTransactionMeta","isTransactionMeta","isToken","isAccessToken","isIDToken","isRefreshToken","validateToken","decodeToken","decodedToken","revokeToken","token_type_hint","creds","exchangeCodeForTokens","handleOAuthResponse","transactionManager","configuredIssuer","validationOptions","sdkCrypto","at_hash","validateResponse","interaction_code","tokenDict","expiresIn","expires_in","tokenType","token_type","access_token","id_token","accessJwt","idJwt","idTokenObj","tokens","getToken","popupWindow","requestUrl","iframePromise","iframeEl","_a","contains","parentElement","oauthPromise","closePoller","setInterval","closed","clearInterval","getWithoutPrompt","renewTokensWithRefresh","refreshTokenObject","renewTokenParams","tokenResponse","tokenManager","updateRefreshToken","throwInvalidTokenError","getSingleToken","originalToken","renewToken","getTokensSync","renewTokens","getUserInfo","accessTokenObject","idTokenObject","getTokens","userInfo","sub","authenticateHeader","getResponseHeader","errorMatches","errorDescriptionMatches","errorDescription","getWithPopup","getWithRedirect","meta","save","oauth","_setLocation","getResponseMode","defaultResponseMode","parseOAuthResponseFromUrl","paramStr","nativeLoc","parseFromUrl","_getLocation","cleanOAuthResponseFromUrl","nativeHistory","_getHistory","nativeDoc","_getDocument","replaceState","removeSearch","removeHash","load","getNativeConsole","getConsole","nativeConsole","warn","groupEnd","deprecate","deprecateWrap","Cookies","require","getPKCEStorage","browserHasLocalStorage","getLocalStorage","testStorage","browserHasSessionStorage","getSessionStorage","testStorageType","storageType","supported","getStorageByType","storageProvider","getCookieStorage","getInMemoryStorage","findStorageType","types","curType","nextType","localStorage","sessionStorage","secure","sameSite","sessionCookie","getItem","setItem","removeItem","useSeparateCookies","existingValues","storageKey","valueToStore","inMemoryStore","cookieOptions","SdkClock","localOffset","TokenService","storageListener","onTokenExpiredHandler","renewTimeQueue","autoRenew","shouldThrottleRenew","emitError","renew","autoRemove","EVENT_EXPIRED","setExpireEventTimeoutAll","syncStorage","newValue","syncTimeout","resetExpireEventTimeoutAll","emitEventsForCrossTabsStorageUpdate","_storageEventDelay","clearExpireEventTimeoutAll","DEFAULT_OPTIONS","clearPendingRemoveTokens","expireEarlySeconds","EVENT_RENEWED","EVENT_ADDED","EVENT_REMOVED","EVENT_ERROR","TokenManager","emitter","service","storageOptions","getTokenStorage","clock","expireTimeouts","renewPromise","getExpireTime","freshToken","oldToken","oldTokens","getTokensFromStorageValue","newTokens","newToken","emitAdded","emitRemoved","clearExpireEventTimeout","expireTime","expireEventWait","expireEventTimeout","emitExpired","tokenStorage","setExpireEventTimeout","setStorage","getSync","accessTokenCb","idTokenCb","refreshTokenCb","handleTokenCallback","getTokenType","handleAdded","handleRemoved","existingTokens","getStorageKeyByType","existingToken","emitRenewed","removedToken","setTokens","tokenKey","pendingRemove","PromiseQueue","running","thisObject","queueItem","fingerprint","INITIAL_AUTH_STATE","DEFAULT_PENDING","updateAuthStatePromise","canceledTimes","EVENT_AUTH_STATE_CHANGE","AuthStateManager","_sdk","_pending","_authState","_logOptions","_prevAuthState","_setLogOptions","updateAuthState","transformAuthState","devMode","emitAuthStateChange","authState","prevState","isAuthenticated","finalPromise","origPromise","curPromise","getAuthState","cancelablePromise","emitAndResolve","isCanceled","SavedObject","storageName","storageString","logServerSideMemoryStorageWarning","StorageManager","storageManagerOptions","sectionName","overrideOptions","storageTypes","idx","getOptionsForSection","transactionStorage","getTransactionStorage","transaction","isRawIdxResponse","isIdxResponse","pruneSharedStorage","sharedStorage","getSharedTansactionStorage","dateCreated","saveTransactionToSharedStorage","loadTransactionFromSharedStorage","clearTransactionFromSharedStorage","TransactionManager","legacyWidgetSupport","saveNonceCookie","saveStateCookie","saveParamsCookie","enableSharedStorage","saveLastResponse","clearIdxResponse","clearSharedStorage","clearLegacyOAuthParams","clearLegacyPKCE","muteWarning","cookieStorage","loadLegacyOAuthParams","pkceMeta","loadLegacyPKCE","getLegacyPKCEStorage","getLegacyOAuthParamsStorage","getIdxResponseStorage","assertValidConfig","fetchPromise","crossFetch","readData","pair","formatResult","NodeCache","ServerCookies","nodeCache","ttl","del","ServerStorage","BROWSER_STORAGE","SERVER_STORAGE","getCookieSettings","cookieSettings","getDefaultOptions","browserStorage","serverStorage","fetchRequest","mergeOptions","createTransactionMeta","flow","hasSavedInteractionHandle","savedMeta","getSavedTransactionMeta","isTransactionMetaValid","getTransactionMeta","validExistingMeta","saveTransactionMeta","clearTransactionMeta","isTransactionMetaValidForOptions","isTransactionMetaValidForFlow","getResponse","newMeta","loadIdxResponse","titleCase","getAuthenticatorFromRemediation","Remediator","formatAuthenticators","authenticators","authenticator","authenticatorsData","acc","idxRemediation","cur","hasData","getData","getName","inputs","getInputs","getAuthenticator","inputFromRemediation","aliases","relatesTo","_b","messages","Authenticator","VerificationCodeAuthenticator","verificationCode","otp","passcode","idxRemediationValue","OktaVerifyTotp","totp","OktaPassword","SecurityQuestionEnrollment","questionKey","question","answer","SecurityQuestionVerification","contextualData","enrolledQuestion","OKTA_PASSWORD","SECURITY_QUESTION","OKTA_VERIFY","VerifyAuthenticator","canVerify","mapCredentials","EnrollAuthenticator","_defineProperty","property","receiver","remediationName","EnrollPoll","startPolling","common","currentAuthenticator","valueKey","SelectEnrollmentChannel","getChannels","EnrollmentChannelData","email","phoneNumber","ChallengeAuthenticator","ChallengePoll","ResetAuthenticator","EnrollProfile","userProfileFromValues","userProfile","canRemediate","curr","attributeValues","errorRemediation","Identify","identifier","ReEnrollAuthenticator","newPassword","RedirectIdp","findMatchedOption","option","SelectAuthenticator","selectedOption","selectedAuthenticator","SelectAuthenticatorAuthenticate","hasPasswordInOptions","SelectAuthenticatorEnroll","SelectEnrollProfile","AuthenticatorData","formatAuthenticatorData","getAuthenticatorData","mapAuthenticatorDataFromValues","getMethodTypes","authenticatorData","methodType","AuthenticatorVerificationData","authenticatorFromRemediation","enrollmentId","AuthenticatorEnrollmentData","Skip","skip","getRemediator","idxRemediations","remediator","remediators","remediatorCandidates","isTerminalResponse","getIdxMessages","globalMessages","fieldMessages","getMessages","getNextStep","nextStep","canSkip","canSkipFn","canResend","actionName","canResendFn","handleIdxError","terminal","getActionFromValues","resend","removeActionFromValues","remediate","actionFromValues","valuesWithoutExecutedAction","canceled","getValuesAfterProceed","AuthenticationFlow","PasswordRecoveryFlow","RegistrationFlow","getFlowSpecification","oktaAuth","getEnabledFeatures","PASSWORD_RECOVERY","REGISTRATION","SOCIAL_IDP","getAvailableSteps","remediatorMap","remediatorClass","PENDING","shouldClearTransaction","autoRemediate","getFlow","setFlow","flowSpec","metaFromResp","interactResponse","enabledFeatures","availableSteps","idxResponseFromResp","nextStepFromResp","messagesFromResp","saveIdxResponse","TERMINAL","CANCELED","SUCCESS","FAILURE","authenticate","EmailVerifyCallbackError","isEmailVerifyCallbackError","isEmailVerifyCallback","urlPath","parseEmailVerifyCallback","handleEmailVerifyCallback","canProceed","availablePollingRemeditaions","isInteger","startTransaction","register","recoverPassword","handleInteractionCodeRedirect","savedState","OktaUserAgent","environments","SDK_VERSION","env","maybeAddNodeEnvironment","__rest","Emitter","OktaAuth","postLogoutRedirectUri","useInteractionCodeFlow","restoreOriginalUri","buildOptions","resume","handleLogin","_tokenQueue","useQueue","getWithRedirectFn","getWithRedirectApi","parseFromUrlFn","parseFromUrlApi","history","revoke","verify","syncMethods","boundStartTransaction","requestConfig","authStateManager","signInWithCredentials","_postToTransaction","sendFingerprint","originalUri","additionalParams","setOriginalUri","accessTokenKey","refreshTokenKey","idTokenHint","logoutUri","defaultUri","currentUri","revokeAccessToken","revokeRefreshToken","getSignOutRedirectUrl","reload","clearTokensBeforeRedirect","addPendingRemoveFlags","hasExpired","getOriginalUriStorage","getOriginalUri","oAuthResponse","storeTokensFromRedirect","removeOriginalUri","hasResponseType","constants"],"sourceRoot":""}
1
+ {"version":3,"file":"okta-auth-js.umd.js","mappings":"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","sources":["webpack://OktaAuth/webpack/universalModuleDefinition","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/construct.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/createClass.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/inherits.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/isNativeFunction.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/typeof.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/wrapNativeSuper.js","webpack://OktaAuth/./node_modules/@babel/runtime/regenerator/index.js","webpack://OktaAuth/./node_modules/p-cancelable/index.js","webpack://OktaAuth/./node_modules/cross-fetch/dist/browser-ponyfill.js","webpack://OktaAuth/./node_modules/js-cookie/src/js.cookie.js","webpack://OktaAuth/./node_modules/regenerator-runtime/runtime.js","webpack://OktaAuth/./node_modules/tiny-emitter/index.js","webpack://OktaAuth/webpack/bootstrap","webpack://OktaAuth/webpack/runtime/compat get default export","webpack://OktaAuth/webpack/runtime/define property getters","webpack://OktaAuth/webpack/runtime/global","webpack://OktaAuth/webpack/runtime/hasOwnProperty shorthand","webpack://OktaAuth/webpack/runtime/make namespace object","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://OktaAuth/./lib/errors/CustomError.ts","webpack://OktaAuth/./lib/errors/AuthApiError.ts","webpack://OktaAuth/./lib/errors/AuthPollStopError.ts","webpack://OktaAuth/./lib/errors/AuthSdkError.ts","webpack://OktaAuth/./lib/errors/OAuthError.ts","webpack://OktaAuth/./lib/errors/index.ts","webpack://OktaAuth/./lib/crypto/browser.ts","webpack://OktaAuth/./lib/crypto/base64.ts","webpack://OktaAuth/./lib/crypto/oidcHash.ts","webpack://OktaAuth/./lib/util/object.ts","webpack://OktaAuth/./lib/crypto/verifyToken.ts","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://OktaAuth/./lib/constants.ts","webpack://OktaAuth/./lib/http/headers.ts","webpack://OktaAuth/./lib/util/types.ts","webpack://OktaAuth/./lib/util/url.ts","webpack://OktaAuth/./lib/http/request.ts","webpack://OktaAuth/./lib/tx/util.ts","webpack://OktaAuth/./lib/util/misc.ts","webpack://OktaAuth/./lib/tx/poll.ts","webpack://OktaAuth/./lib/tx/AuthTransaction.ts","webpack://OktaAuth/./lib/tx/api.ts","webpack://OktaAuth/./lib/oidc/util/pkce.ts","webpack://OktaAuth/./lib/session.ts","webpack://OktaAuth/./lib/oidc/endpoints/authorize.ts","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://OktaAuth/./lib/oidc/endpoints/token.ts","webpack://OktaAuth/./lib/oidc/endpoints/well-known.ts","webpack://OktaAuth/./lib/oidc/util/browser.ts","webpack://OktaAuth/./lib/oidc/util/oauth.ts","webpack://OktaAuth/./lib/features.ts","webpack://OktaAuth/./lib/oidc/util/defaultTokenParams.ts","webpack://OktaAuth/./lib/oidc/util/errors.ts","webpack://OktaAuth/./lib/oidc/util/loginRedirect.ts","webpack://OktaAuth/./lib/oidc/util/oauthMeta.ts","webpack://OktaAuth/./lib/oidc/util/prepareTokenParams.ts","webpack://OktaAuth/./lib/idx/types/index.ts","webpack://OktaAuth/./lib/oidc/util/refreshToken.ts","webpack://OktaAuth/./lib/oidc/util/urlParams.ts","webpack://OktaAuth/./lib/oidc/util/validateClaims.ts","webpack://OktaAuth/./lib/types/Transaction.ts","webpack://OktaAuth/./lib/types/Token.ts","webpack://OktaAuth/./lib/oidc/util/validateToken.ts","webpack://OktaAuth/./lib/oidc/decodeToken.ts","webpack://OktaAuth/./lib/oidc/revokeToken.ts","webpack://OktaAuth/./lib/oidc/exchangeCodeForTokens.ts","webpack://OktaAuth/./lib/oidc/verifyToken.ts","webpack://OktaAuth/./lib/oidc/handleOAuthResponse.ts","webpack://OktaAuth/./lib/oidc/getToken.ts","webpack://OktaAuth/./lib/oidc/getWithoutPrompt.ts","webpack://OktaAuth/./lib/oidc/renewTokensWithRefresh.ts","webpack://OktaAuth/./lib/oidc/renewToken.ts","webpack://OktaAuth/./lib/oidc/renewTokens.ts","webpack://OktaAuth/./lib/oidc/getUserInfo.ts","webpack://OktaAuth/./lib/oidc/getWithPopup.ts","webpack://OktaAuth/./lib/oidc/getWithRedirect.ts","webpack://OktaAuth/./lib/oidc/parseFromUrl.ts","webpack://OktaAuth/./lib/crypto/webauthn.ts","webpack://OktaAuth/./lib/util/console.ts","webpack://OktaAuth/./lib/browser/browserStorage.ts","webpack://OktaAuth/./lib/clock.ts","webpack://OktaAuth/./lib/services/TokenService.ts","webpack://OktaAuth/./lib/TokenManager.ts","webpack://OktaAuth/./lib/PromiseQueue.ts","webpack://OktaAuth/./lib/browser/fingerprint.ts","webpack://OktaAuth/./lib/AuthStateManager.ts","webpack://OktaAuth/./lib/SavedObject.ts","webpack://OktaAuth/./lib/StorageManager.ts","webpack://OktaAuth/./lib/idx/types/idx-js.ts","webpack://OktaAuth/./lib/util/sharedStorage.ts","webpack://OktaAuth/./lib/TransactionManager.ts","webpack://OktaAuth/./lib/builderUtil.ts","webpack://OktaAuth/./lib/fetch/fetchRequest.ts","webpack://OktaAuth/./lib/server/serverStorage.ts","webpack://OktaAuth/./lib/options.ts","webpack://OktaAuth/./lib/idx/idx-js/client.ts","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://OktaAuth/./lib/idx/idx-js/v1/actionParser.ts","webpack://OktaAuth/./lib/idx/idx-js/v1/generateIdxAction.ts","webpack://OktaAuth/./node_modules/jsonpath-plus/dist/index-browser-esm.js","webpack://OktaAuth/./lib/idx/idx-js/v1/idxResponseParser.ts","webpack://OktaAuth/./lib/idx/idx-js/v1/remediationParser.ts","webpack://OktaAuth/./lib/idx/idx-js/v1/makeIdxState.ts","webpack://OktaAuth/./lib/idx/idx-js/v1/parsers.ts","webpack://OktaAuth/./lib/idx/idx-js/parsers.ts","webpack://OktaAuth/./lib/idx/idx-js/util.ts","webpack://OktaAuth/./lib/idx/idx-js/introspect.ts","webpack://OktaAuth/./lib/idx/idx-js/interact.ts","webpack://OktaAuth/./lib/idx/idx-js/index.ts","webpack://OktaAuth/./lib/idx/transactionMeta.ts","webpack://OktaAuth/./lib/idx/interact.ts","webpack://OktaAuth/./lib/idx/introspect.ts","webpack://OktaAuth/./lib/idx/remediators/util.ts","webpack://OktaAuth/./lib/idx/remediators/Base/Remediator.ts","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/get.js","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/superPropBase.js","webpack://OktaAuth/./lib/idx/authenticator/Authenticator.ts","webpack://OktaAuth/./lib/idx/authenticator/VerificationCodeAuthenticator.ts","webpack://OktaAuth/./lib/idx/authenticator/OktaVerifyTotp.ts","webpack://OktaAuth/./lib/idx/authenticator/OktaPassword.ts","webpack://OktaAuth/./lib/idx/authenticator/SecurityQuestionEnrollment.ts","webpack://OktaAuth/./lib/idx/authenticator/SecurityQuestionVerification.ts","webpack://OktaAuth/./lib/idx/authenticator/WebauthnEnrollment.ts","webpack://OktaAuth/./lib/idx/authenticator/WebauthnVerification.ts","webpack://OktaAuth/./lib/idx/authenticator/getAuthenticator.ts","webpack://OktaAuth/./lib/idx/remediators/Base/VerifyAuthenticator.ts","webpack://OktaAuth/./lib/idx/remediators/EnrollAuthenticator.ts","webpack://OktaAuth/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://OktaAuth/./lib/idx/remediators/EnrollPoll.ts","webpack://OktaAuth/./lib/idx/remediators/SelectEnrollmentChannel.ts","webpack://OktaAuth/./lib/idx/remediators/EnrollmentChannelData.ts","webpack://OktaAuth/./lib/idx/remediators/ChallengeAuthenticator.ts","webpack://OktaAuth/./lib/idx/remediators/ChallengePoll.ts","webpack://OktaAuth/./lib/idx/remediators/ResetAuthenticator.ts","webpack://OktaAuth/./lib/idx/remediators/EnrollProfile.ts","webpack://OktaAuth/./lib/idx/remediators/Identify.ts","webpack://OktaAuth/./lib/idx/remediators/ReEnrollAuthenticator.ts","webpack://OktaAuth/./lib/idx/remediators/RedirectIdp.ts","webpack://OktaAuth/./lib/idx/remediators/Base/SelectAuthenticator.ts","webpack://OktaAuth/./lib/idx/remediators/SelectAuthenticatorAuthenticate.ts","webpack://OktaAuth/./lib/idx/remediators/SelectAuthenticatorEnroll.ts","webpack://OktaAuth/./lib/idx/remediators/SelectAuthenticatorUnlockAccount.ts","webpack://OktaAuth/./lib/idx/remediators/SelectEnrollProfile.ts","webpack://OktaAuth/./lib/idx/remediators/Base/AuthenticatorData.ts","webpack://OktaAuth/./lib/idx/remediators/AuthenticatorVerificationData.ts","webpack://OktaAuth/./lib/idx/remediators/AuthenticatorEnrollmentData.ts","webpack://OktaAuth/./lib/idx/remediators/Skip.ts","webpack://OktaAuth/./lib/idx/remediate.ts","webpack://OktaAuth/./lib/idx/flow/AuthenticationFlow.ts","webpack://OktaAuth/./lib/idx/flow/PasswordRecoveryFlow.ts","webpack://OktaAuth/./lib/idx/flow/RegistrationFlow.ts","webpack://OktaAuth/./lib/idx/flow/AccountUnlockFlow.ts","webpack://OktaAuth/./lib/idx/flow/FlowSpecification.ts","webpack://OktaAuth/./lib/idx/run.ts","webpack://OktaAuth/./lib/idx/authenticate.ts","webpack://OktaAuth/./lib/idx/cancel.ts","webpack://OktaAuth/./lib/idx/emailVerify.ts","webpack://OktaAuth/./lib/idx/proceed.ts","webpack://OktaAuth/./lib/idx/poll.ts","webpack://OktaAuth/./lib/idx/startTransaction.ts","webpack://OktaAuth/./lib/idx/register.ts","webpack://OktaAuth/./lib/idx/recoverPassword.ts","webpack://OktaAuth/./lib/idx/handleInteractionCodeRedirect.ts","webpack://OktaAuth/./lib/idx/unlockAccount.ts","webpack://OktaAuth/./lib/OktaUserAgent.ts","webpack://OktaAuth/./lib/OktaAuth.ts","webpack://OktaAuth/./lib/idx/headers.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"OktaAuth\"] = factory();\n\telse\n\t\troot[\"OktaAuth\"] = factory();\n})(self, function() {\nreturn ","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _typeof = require(\"@babel/runtime/helpers/typeof\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nvar isNativeFunction = require(\"./isNativeFunction.js\");\n\nvar construct = require(\"./construct.js\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","module.exports = require(\"regenerator-runtime\");\n","'use strict';\n\nclass CancelError extends Error {\n\tconstructor(reason) {\n\t\tsuper(reason || 'Promise was canceled');\n\t\tthis.name = 'CancelError';\n\t}\n\n\tget isCanceled() {\n\t\treturn true;\n\t}\n}\n\nclass PCancelable {\n\tstatic fn(userFn) {\n\t\treturn (...arguments_) => {\n\t\t\treturn new PCancelable((resolve, reject, onCancel) => {\n\t\t\t\targuments_.push(onCancel);\n\t\t\t\t// eslint-disable-next-line promise/prefer-await-to-then\n\t\t\t\tuserFn(...arguments_).then(resolve, reject);\n\t\t\t});\n\t\t};\n\t}\n\n\tconstructor(executor) {\n\t\tthis._cancelHandlers = [];\n\t\tthis._isPending = true;\n\t\tthis._isCanceled = false;\n\t\tthis._rejectOnCancel = true;\n\n\t\tthis._promise = new Promise((resolve, reject) => {\n\t\t\tthis._reject = reject;\n\n\t\t\tconst onResolve = value => {\n\t\t\t\tif (!this._isCanceled || !onCancel.shouldReject) {\n\t\t\t\t\tthis._isPending = false;\n\t\t\t\t\tresolve(value);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst onReject = error => {\n\t\t\t\tthis._isPending = false;\n\t\t\t\treject(error);\n\t\t\t};\n\n\t\t\tconst onCancel = handler => {\n\t\t\t\tif (!this._isPending) {\n\t\t\t\t\tthrow new Error('The `onCancel` handler was attached after the promise settled.');\n\t\t\t\t}\n\n\t\t\t\tthis._cancelHandlers.push(handler);\n\t\t\t};\n\n\t\t\tObject.defineProperties(onCancel, {\n\t\t\t\tshouldReject: {\n\t\t\t\t\tget: () => this._rejectOnCancel,\n\t\t\t\t\tset: boolean => {\n\t\t\t\t\t\tthis._rejectOnCancel = boolean;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn executor(onResolve, onReject, onCancel);\n\t\t});\n\t}\n\n\tthen(onFulfilled, onRejected) {\n\t\t// eslint-disable-next-line promise/prefer-await-to-then\n\t\treturn this._promise.then(onFulfilled, onRejected);\n\t}\n\n\tcatch(onRejected) {\n\t\treturn this._promise.catch(onRejected);\n\t}\n\n\tfinally(onFinally) {\n\t\treturn this._promise.finally(onFinally);\n\t}\n\n\tcancel(reason) {\n\t\tif (!this._isPending || this._isCanceled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isCanceled = true;\n\n\t\tif (this._cancelHandlers.length > 0) {\n\t\t\ttry {\n\t\t\t\tfor (const handler of this._cancelHandlers) {\n\t\t\t\t\thandler();\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tthis._reject(error);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (this._rejectOnCancel) {\n\t\t\tthis._reject(new CancelError(reason));\n\t\t}\n\t}\n\n\tget isCanceled() {\n\t\treturn this._isCanceled;\n\t}\n}\n\nObject.setPrototypeOf(PCancelable.prototype, Promise.prototype);\n\nmodule.exports = PCancelable;\nmodule.exports.CancelError = CancelError;\n","var global = typeof self !== 'undefined' ? self : this;\nvar __self__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = global.DOMException\n}\nF.prototype = global;\nreturn new F();\n})();\n(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n})({});\n})(__self__);\n__self__.fetch.ponyfill = true;\n// Remove \"polyfill\" property added by whatwg-fetch\ndelete __self__.fetch.polyfill;\n// Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\nvar ctx = __self__; // this line disable service worker support temporarily\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","function E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\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 */\nexport default class CustomError extends Error {\n constructor(message) {\n // https://stackoverflow.com/questions/41102060/typescript-extending-error-class\n super(message); // 'Error' breaks prototype chain here\n Object.setPrototypeOf(this, new.target.prototype); // restore prototype chain\n }\n}\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 */\nimport CustomError from './CustomError';\nexport default class AuthApiError extends CustomError {\n constructor(err, xhr) {\n const message = err.errorSummary;\n super(message);\n this.name = 'AuthApiError';\n this.errorSummary = err.errorSummary;\n this.errorCode = err.errorCode;\n this.errorLink = err.errorLink;\n this.errorId = err.errorId;\n this.errorCauses = err.errorCauses;\n if (xhr) {\n this.xhr = xhr;\n }\n }\n}\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 */\nimport CustomError from './CustomError';\nexport default class AuthPollStopError extends CustomError {\n constructor() {\n const message = 'The poll was stopped by the sdk';\n super(message);\n }\n}\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 */\nimport CustomError from './CustomError';\nexport default class AuthSdkError extends CustomError {\n constructor(msg, xhr) {\n super(msg);\n this.name = 'AuthSdkError';\n this.errorCode = 'INTERNAL';\n this.errorSummary = msg;\n this.errorLink = 'INTERNAL';\n this.errorId = 'INTERNAL';\n this.errorCauses = [];\n if (xhr) {\n this.xhr = xhr;\n }\n }\n}\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 */\nimport CustomError from './CustomError';\nexport default class OAuthError extends CustomError {\n constructor(errorCode, summary) {\n super(summary);\n this.name = 'OAuthError';\n this.errorCode = errorCode;\n this.errorSummary = summary;\n }\n}\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 */\nimport AuthApiError from './AuthApiError';\nimport AuthPollStopError from './AuthPollStopError';\nimport AuthSdkError from './AuthSdkError';\nimport OAuthError from './OAuthError';\nfunction isAuthApiError(obj) {\n return (obj instanceof AuthApiError);\n}\nexport { isAuthApiError, AuthApiError, AuthPollStopError, AuthSdkError, OAuthError };\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/* global atob, btoa, crypto */\nconst a = function (str) { return atob(str); };\nconst b = function (str) { return btoa(str); };\nconst c = typeof crypto === 'undefined' ? null : crypto;\nexport { a as atob, b as btoa, c as webcrypto };\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 */\nimport { AuthSdkError } from '../errors';\nimport { atob, btoa } from './webcrypto';\n// converts a string to base64 (url/filename safe variant)\nexport function stringToBase64Url(str) {\n var b64 = btoa(str);\n return base64ToBase64Url(b64);\n}\n// converts a standard base64-encoded string to a \"url/filename safe\" variant\nexport function base64ToBase64Url(b64) {\n return b64.replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\n}\n// converts a \"url/filename safe\" base64 string to a \"standard\" base64 string\nexport function base64UrlToBase64(b64u) {\n return b64u.replace(/-/g, '+').replace(/_/g, '/');\n}\nexport function base64UrlToString(b64u) {\n var b64 = base64UrlToBase64(b64u);\n switch (b64.length % 4) {\n case 0:\n break;\n case 2:\n b64 += '==';\n break;\n case 3:\n b64 += '=';\n break;\n default:\n throw new AuthSdkError('Not a valid Base64Url');\n }\n var utf8 = atob(b64);\n try {\n return decodeURIComponent(escape(utf8));\n }\n catch (e) {\n return utf8;\n }\n}\nexport function stringToBuffer(str) {\n var buffer = new Uint8Array(str.length);\n for (var i = 0; i < str.length; i++) {\n buffer[i] = str.charCodeAt(i);\n }\n return buffer;\n}\nexport function base64UrlDecode(str) {\n return atob(base64UrlToBase64(str));\n}\n// Converts base64 string to binary data view\nexport function base64UrlToBuffer(b64u) {\n return Uint8Array.from(base64UrlDecode(b64u), (c) => c.charCodeAt(0));\n}\n// Converts an ArrayBuffer object that contains binary data to base64 encoded string\nexport function bufferToBase64Url(bin) {\n return btoa(new Uint8Array(bin).reduce((s, byte) => s + String.fromCharCode(byte), ''));\n}\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/* global TextEncoder */\nimport { stringToBase64Url } from './base64';\nimport { webcrypto } from './webcrypto';\nexport function getOidcHash(str) {\n var buffer = new TextEncoder().encode(str);\n return webcrypto.subtle.digest('SHA-256', buffer).then(function (arrayBuffer) {\n var intBuffer = new Uint8Array(arrayBuffer);\n var firstHalf = intBuffer.slice(0, 16);\n var hash = String.fromCharCode.apply(null, firstHalf);\n var b64u = stringToBase64Url(hash); // url-safe base64 variant\n return b64u;\n });\n}\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 */\nexport function bind(fn, ctx) {\n var additionalArgs = Array.prototype.slice.call(arguments, 2);\n return function () {\n var args = Array.prototype.slice.call(arguments);\n args = additionalArgs.concat(args);\n return fn.apply(ctx, args);\n };\n}\n// TODO: replace all references with `Object.assign` then remove this function\nexport function extend() {\n // First object will be modified!\n var obj1 = arguments[0];\n // Properties from other objects will be copied over\n var objArray = [].slice.call(arguments, 1);\n objArray.forEach(function (obj) {\n for (var prop in obj) {\n // copy over all properties with defined values\n if (Object.prototype.hasOwnProperty.call(obj, prop) && obj[prop] !== undefined) {\n obj1[prop] = obj[prop];\n }\n }\n });\n return obj1; // return the modified object\n}\nexport function removeNils(obj) {\n var cleaned = {};\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n var value = obj[prop];\n if (value !== null && value !== undefined) {\n cleaned[prop] = value;\n }\n }\n }\n return cleaned;\n}\nexport function clone(obj) {\n if (obj) {\n var str = JSON.stringify(obj);\n if (str) {\n return JSON.parse(str);\n }\n }\n return obj;\n}\n// Analogous to _.omit\nexport function omit(obj, ...props) {\n // var props = Array.prototype.slice.call(arguments, 1);\n var newobj = {};\n for (var p in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, p) && props.indexOf(p) == -1) {\n newobj[p] = obj[p];\n }\n }\n return clone(newobj);\n}\nexport function find(collection, searchParams) {\n var c = collection.length;\n while (c--) {\n var item = collection[c];\n var found = true;\n for (var prop in searchParams) {\n if (!Object.prototype.hasOwnProperty.call(searchParams, prop)) {\n continue;\n }\n if (item[prop] !== searchParams[prop]) {\n found = false;\n break;\n }\n }\n if (found) {\n return item;\n }\n }\n}\nexport function getLink(obj, linkName, altName) {\n if (!obj || !obj._links) {\n return;\n }\n var link = clone(obj._links[linkName]);\n // If a link has a name and we have an altName, return if they match\n if (link && link.name && altName) {\n if (link.name === altName) {\n return link;\n }\n }\n else {\n return link;\n }\n}\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 */\nimport { clone } from '../util';\nimport { stringToBuffer, base64UrlDecode } from './base64';\nimport { webcrypto } from './webcrypto';\nexport function verifyToken(idToken, key) {\n key = clone(key);\n var format = 'jwk';\n var algo = {\n name: 'RSASSA-PKCS1-v1_5',\n hash: { name: 'SHA-256' }\n };\n var extractable = true;\n var usages = ['verify'];\n // https://connect.microsoft.com/IE/feedback/details/2242108/webcryptoapi-importing-jwk-with-use-field-fails\n // This is a metadata tag that specifies the intent of how the key should be used.\n // It's not necessary to properly verify the jwt's signature.\n delete key.use;\n // @ts-ignore\n return webcrypto.subtle.importKey(format, key, algo, extractable, usages)\n .then(function (cryptoKey) {\n var jwt = idToken.split('.');\n var payload = stringToBuffer(jwt[0] + '.' + jwt[1]);\n var b64Signature = base64UrlDecode(jwt[2]);\n var signature = stringToBuffer(b64Signature);\n return webcrypto.subtle.verify(algo, cryptoKey, signature, payload);\n });\n}\n","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\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 */\nexport const STATE_TOKEN_KEY_NAME = 'oktaStateToken';\nexport const DEFAULT_POLLING_DELAY = 500;\nexport const DEFAULT_MAX_CLOCK_SKEW = 300;\nexport const DEFAULT_CACHE_DURATION = 86400;\nexport const REDIRECT_OAUTH_PARAMS_NAME = 'okta-oauth-redirect-params';\nexport const REDIRECT_STATE_COOKIE_NAME = 'okta-oauth-state';\nexport const REDIRECT_NONCE_COOKIE_NAME = 'okta-oauth-nonce';\nexport const TOKEN_STORAGE_NAME = 'okta-token-storage';\nexport const CACHE_STORAGE_NAME = 'okta-cache-storage';\nexport const PKCE_STORAGE_NAME = 'okta-pkce-storage';\nexport const TRANSACTION_STORAGE_NAME = 'okta-transaction-storage';\nexport const SHARED_TRANSACTION_STORAGE_NAME = 'okta-shared-transaction-storage';\nexport const ORIGINAL_URI_STORAGE_NAME = 'okta-original-uri-storage';\nexport const IDX_RESPONSE_STORAGE_NAME = 'okta-idx-response-storage';\nexport const ACCESS_TOKEN_STORAGE_KEY = 'accessToken';\nexport const ID_TOKEN_STORAGE_KEY = 'idToken';\nexport const REFRESH_TOKEN_STORAGE_KEY = 'refreshToken';\nexport const REFERRER_PATH_STORAGE_KEY = 'referrerPath';\n// Code verifier: Random URL-safe string with a minimum length of 43 characters.\n// Code challenge: Base64 URL-encoded SHA-256 hash of the code verifier.\nexport const MIN_VERIFIER_LENGTH = 43;\nexport const MAX_VERIFIER_LENGTH = 128;\nexport const DEFAULT_CODE_CHALLENGE_METHOD = 'S256';\nexport const IDX_API_VERSION = '1.0.0';\n","export function setRequestHeader(authClient, headerName, headerValue) {\n authClient.options.headers = authClient.options.headers || {};\n authClient.options.headers[headerName] = headerValue;\n}\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 */\nexport function isString(obj) {\n return Object.prototype.toString.call(obj) === '[object String]';\n}\nexport function isObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\nexport function isNumber(obj) {\n return Object.prototype.toString.call(obj) === '[object Number]';\n}\nexport function isFunction(fn) {\n return !!fn && {}.toString.call(fn) === '[object Function]';\n}\nexport function isPromise(obj) {\n return obj && obj.finally && (typeof obj.finally === 'function');\n}\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 */\nexport function isAbsoluteUrl(url) {\n return /^(?:[a-z]+:)?\\/\\//i.test(url);\n}\nexport function toAbsoluteUrl(url = '', baseUrl) {\n if (isAbsoluteUrl(url)) {\n return url;\n }\n baseUrl = removeTrailingSlash(baseUrl);\n return url[0] === '/' ? `${baseUrl}${url}` : `${baseUrl}/${url}`;\n}\nexport function toRelativeUrl(url = '', baseUrl) {\n if (isAbsoluteUrl(url)) {\n url = url.substring(baseUrl.length);\n }\n return url[0] === '/' ? url : `/${url}`;\n}\nexport function toQueryString(obj) {\n var str = [];\n if (obj !== null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) &&\n obj[key] !== undefined &&\n obj[key] !== null) {\n str.push(key + '=' + encodeURIComponent(obj[key]));\n }\n }\n }\n if (str.length) {\n return '?' + str.join('&');\n }\n else {\n return '';\n }\n}\nexport function removeTrailingSlash(path) {\n if (!path) {\n return;\n }\n // Remove any whitespace before or after string\n var trimmed = path.replace(/^\\s+|\\s+$/gm, '');\n // Remove trailing slash(es)\n trimmed = trimmed.replace(/\\/+$/, '');\n return trimmed;\n}\n","/* 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/* eslint-disable complexity */\nimport { isString, clone, isAbsoluteUrl, removeNils } from '../util';\nimport AuthApiError from '../errors/AuthApiError';\nimport { STATE_TOKEN_KEY_NAME, DEFAULT_CACHE_DURATION } from '../constants';\nexport function httpRequest(sdk, options) {\n options = options || {};\n var url = options.url, method = options.method, args = options.args, saveAuthnState = options.saveAuthnState, accessToken = options.accessToken, withCredentials = options.withCredentials === true, // default value is false\n storageUtil = sdk.options.storageUtil, storage = storageUtil.storage, httpCache = sdk.storageManager.getHttpCache(sdk.options.cookies);\n if (options.cacheResponse) {\n var cacheContents = httpCache.getStorage();\n var cachedResponse = cacheContents[url];\n if (cachedResponse && Date.now() / 1000 < cachedResponse.expiresAt) {\n return Promise.resolve(cachedResponse.response);\n }\n }\n var oktaUserAgentHeader = sdk._oktaUserAgent.getHttpHeader();\n var headers = Object.assign({ 'Accept': 'application/json', 'Content-Type': 'application/json' }, oktaUserAgentHeader);\n Object.assign(headers, sdk.options.headers, options.headers);\n headers = removeNils(headers);\n if (accessToken && isString(accessToken)) {\n headers['Authorization'] = 'Bearer ' + accessToken;\n }\n var ajaxOptions = {\n headers,\n data: args || undefined,\n withCredentials\n };\n var err, res;\n return sdk.options.httpRequestClient(method, url, ajaxOptions)\n .then(function (resp) {\n res = resp.responseText;\n if (res && isString(res)) {\n res = JSON.parse(res);\n if (res && typeof res === 'object' && !res.headers) {\n res.headers = resp.headers;\n }\n }\n if (saveAuthnState) {\n if (!res.stateToken) {\n storage.delete(STATE_TOKEN_KEY_NAME);\n }\n }\n if (res && res.stateToken && res.expiresAt) {\n storage.set(STATE_TOKEN_KEY_NAME, res.stateToken, res.expiresAt, sdk.options.cookies);\n }\n if (res && options.cacheResponse) {\n httpCache.updateStorage(url, {\n expiresAt: Math.floor(Date.now() / 1000) + DEFAULT_CACHE_DURATION,\n response: res\n });\n }\n return res;\n })\n .catch(function (resp) {\n var serverErr = resp.responseText || {};\n if (isString(serverErr)) {\n try {\n serverErr = JSON.parse(serverErr);\n }\n catch (e) {\n serverErr = {\n errorSummary: 'Unknown error'\n };\n }\n }\n if (resp.status >= 500) {\n serverErr.errorSummary = 'Unknown error';\n }\n if (sdk.options.transformErrorXHR) {\n resp = sdk.options.transformErrorXHR(clone(resp));\n }\n err = new AuthApiError(serverErr, resp);\n if (err.errorCode === 'E0000011') {\n storage.delete(STATE_TOKEN_KEY_NAME);\n }\n throw err;\n });\n}\nexport function get(sdk, url, options) {\n url = isAbsoluteUrl(url) ? url : sdk.getIssuerOrigin() + url;\n var getOptions = {\n url: url,\n method: 'GET'\n };\n Object.assign(getOptions, options);\n return httpRequest(sdk, getOptions);\n}\nexport function post(sdk, url, args, options) {\n url = isAbsoluteUrl(url) ? url : sdk.getIssuerOrigin() + url;\n var postOptions = {\n url: url,\n method: 'POST',\n args: args,\n saveAuthnState: true\n };\n Object.assign(postOptions, options);\n return httpRequest(sdk, postOptions);\n}\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 */\nexport function addStateToken(res, options) {\n var builtArgs = {};\n Object.assign(builtArgs, options);\n // Add the stateToken if one isn't passed and we have one\n if (!builtArgs.stateToken && res.stateToken) {\n builtArgs.stateToken = res.stateToken;\n }\n return builtArgs;\n}\nexport function getStateToken(res) {\n return addStateToken(res);\n}\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 */\nexport function isoToUTCString(str) {\n var parts = str.match(/\\d+/g), isoTime = Date.UTC(parts[0], parts[1] - 1, parts[2], parts[3], parts[4], parts[5]), isoDate = new Date(isoTime);\n return isoDate.toUTCString();\n}\nexport function genRandomString(length) {\n var randomCharset = 'abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\n var random = '';\n for (var c = 0, cl = randomCharset.length; c < length; ++c) {\n random += randomCharset[Math.floor(Math.random() * cl)];\n }\n return random;\n}\nexport function delay(ms) {\n return new Promise(function (resolve) {\n setTimeout(resolve, ms);\n });\n}\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 { post } from '../http';\nimport { isNumber, isObject, getLink, toQueryString, delay as delayFn } from '../util';\nimport { DEFAULT_POLLING_DELAY } from '../constants';\nimport AuthSdkError from '../errors/AuthSdkError';\nimport AuthPollStopError from '../errors/AuthPollStopError';\nimport { AuthTransaction } from './AuthTransaction';\nimport { getStateToken } from './util';\nexport function getPollFn(sdk, res, ref) {\n return function (options) {\n var delay;\n var rememberDevice;\n var autoPush;\n var transactionCallBack;\n if (isNumber(options)) {\n delay = options;\n }\n else if (isObject(options)) {\n options = options;\n delay = options.delay;\n rememberDevice = options.rememberDevice;\n autoPush = options.autoPush;\n transactionCallBack = options.transactionCallBack;\n }\n if (!delay && delay !== 0) {\n delay = DEFAULT_POLLING_DELAY;\n }\n // Get the poll function\n var pollLink = getLink(res, 'next', 'poll');\n // eslint-disable-next-line complexity\n function pollFn() {\n var opts = {};\n if (typeof autoPush === 'function') {\n try {\n opts.autoPush = !!autoPush();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('AutoPush resulted in an error.'));\n }\n }\n else if (autoPush !== undefined && autoPush !== null) {\n opts.autoPush = !!autoPush;\n }\n if (typeof rememberDevice === 'function') {\n try {\n opts.rememberDevice = !!rememberDevice();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('RememberDevice resulted in an error.'));\n }\n }\n else if (rememberDevice !== undefined && rememberDevice !== null) {\n opts.rememberDevice = !!rememberDevice;\n }\n var href = pollLink.href + toQueryString(opts);\n return post(sdk, href, getStateToken(res), {\n saveAuthnState: false,\n withCredentials: true\n });\n }\n ref.isPolling = true;\n var retryCount = 0;\n var recursivePoll = function () {\n // If the poll was manually stopped during the delay\n if (!ref.isPolling) {\n return Promise.reject(new AuthPollStopError());\n }\n return pollFn()\n .then(function (pollRes) {\n // Reset our retry counter on success\n retryCount = 0;\n // If we're still waiting\n if (pollRes.factorResult && pollRes.factorResult === 'WAITING') {\n // If the poll was manually stopped while the pollFn was called\n if (!ref.isPolling) {\n throw new AuthPollStopError();\n }\n if (typeof transactionCallBack === 'function') {\n transactionCallBack(pollRes);\n }\n // Continue poll\n return delayFn(delay).then(recursivePoll);\n }\n else {\n // Any non-waiting result, even if polling was stopped\n // during a request, will return\n ref.isPolling = false;\n return new AuthTransaction(sdk, pollRes);\n }\n })\n .catch(function (err) {\n // Exponential backoff, up to 16 seconds\n if (err.xhr &&\n (err.xhr.status === 0 || err.xhr.status === 429) &&\n retryCount <= 4) {\n var delayLength = Math.pow(2, retryCount) * 1000;\n retryCount++;\n return delayFn(delayLength)\n .then(recursivePoll);\n }\n throw err;\n });\n };\n return recursivePoll()\n .catch(function (err) {\n ref.isPolling = false;\n throw err;\n });\n };\n}\n","/*!\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 { get } from '../http';\nimport { find, omit, toQueryString, clone, isObject } from '../util';\nimport AuthSdkError from '../errors/AuthSdkError';\nimport { addStateToken } from './util';\nimport { getPollFn } from './poll';\nimport { postToTransaction } from './api';\nexport class AuthTransaction {\n constructor(sdk, res = null) {\n this.data = undefined;\n this.status = undefined;\n if (res) {\n this.data = res;\n if (this.data.interactionHandle) {\n this.status = res.status;\n return;\n }\n // Parse response from Authn V1\n Object.assign(this, flattenEmbedded(sdk, res, res, {}));\n delete this.stateToken;\n // RECOVERY_CHALLENGE has some responses without _links.\n // Without _links, we emulate cancel to make it intuitive\n // to return to the starting state. We may remove this\n // when OKTA-75434 is resolved\n if (res.status === 'RECOVERY_CHALLENGE' && !res._links) {\n this.cancel = function () {\n return Promise.resolve(new AuthTransaction(sdk));\n };\n }\n }\n }\n}\nfunction link2fn(sdk, res, obj, link, ref) {\n if (Array.isArray(link)) {\n return function (name, opts) {\n if (!name) {\n throw new AuthSdkError('Must provide a link name');\n }\n var lk = find(link, { name: name });\n if (!lk) {\n throw new AuthSdkError('No link found for that name');\n }\n return link2fn(sdk, res, obj, lk, ref)(opts);\n };\n }\n else if (link.hints &&\n link.hints.allow &&\n link.hints.allow.length === 1) {\n var method = link.hints.allow[0];\n switch (method) {\n case 'GET':\n return function () {\n return get(sdk, link.href, { withCredentials: true });\n };\n case 'POST':\n // eslint-disable-next-line max-statements,complexity\n return function (opts) {\n if (ref && ref.isPolling) {\n ref.isPolling = false;\n }\n var data = addStateToken(res, opts);\n if (res.status === 'MFA_ENROLL' || res.status === 'FACTOR_ENROLL') {\n // Add factorType and provider\n Object.assign(data, {\n factorType: obj.factorType,\n provider: obj.provider\n });\n }\n var params = {};\n var autoPush = data.autoPush;\n if (autoPush !== undefined) {\n if (typeof autoPush === 'function') {\n try {\n params.autoPush = !!autoPush();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('AutoPush resulted in an error.'));\n }\n }\n else if (autoPush !== null) {\n params.autoPush = !!autoPush;\n }\n data = omit(data, 'autoPush');\n }\n var rememberDevice = data.rememberDevice;\n if (rememberDevice !== undefined) {\n if (typeof rememberDevice === 'function') {\n try {\n params.rememberDevice = !!rememberDevice();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('RememberDevice resulted in an error.'));\n }\n }\n else if (rememberDevice !== null) {\n params.rememberDevice = !!rememberDevice;\n }\n data = omit(data, 'rememberDevice');\n }\n else if (data.profile &&\n data.profile.updatePhone !== undefined) {\n if (data.profile.updatePhone) {\n params.updatePhone = true;\n }\n data.profile = omit(data.profile, 'updatePhone');\n }\n var href = link.href + toQueryString(params);\n return postToTransaction(sdk, href, data);\n };\n }\n }\n}\nfunction links2fns(sdk, res, obj, ref) {\n var fns = {};\n for (var linkName in obj._links) {\n if (!Object.prototype.hasOwnProperty.call(obj._links, linkName)) {\n continue;\n }\n var link = obj._links[linkName];\n if (linkName === 'next') {\n linkName = link.name;\n }\n if (link.type) {\n fns[linkName] = link;\n continue;\n }\n switch (linkName) {\n // poll is only found at the transaction\n // level, so we don't need to pass the link\n case 'poll':\n fns.poll = getPollFn(sdk, res, ref);\n break;\n default:\n var fn = link2fn(sdk, res, obj, link, ref);\n if (fn) {\n fns[linkName] = fn;\n }\n }\n }\n return fns;\n}\n// eslint-disable-next-line complexity\nfunction flattenEmbedded(sdk, res, obj, ref) {\n obj = obj || res;\n obj = clone(obj);\n if (Array.isArray(obj)) {\n var objArr = [];\n for (var o = 0, ol = obj.length; o < ol; o++) {\n objArr.push(flattenEmbedded(sdk, res, obj[o], ref));\n }\n return objArr;\n }\n var embedded = obj._embedded || {};\n for (var key in embedded) {\n if (!Object.prototype.hasOwnProperty.call(embedded, key)) {\n continue;\n }\n // Flatten any nested _embedded objects\n if (isObject(embedded[key]) || Array.isArray(embedded[key])) {\n embedded[key] = flattenEmbedded(sdk, res, embedded[key], ref);\n }\n }\n // Convert any links on the embedded object\n var fns = links2fns(sdk, res, obj, ref);\n Object.assign(embedded, fns);\n obj = omit(obj, '_embedded', '_links');\n Object.assign(obj, embedded);\n return obj;\n}\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/* eslint-disable complexity, max-statements */\nimport { post } from '../http';\nimport AuthSdkError from '../errors/AuthSdkError';\nimport { STATE_TOKEN_KEY_NAME } from '../constants';\nimport { addStateToken } from './util';\nimport { AuthTransaction } from './AuthTransaction';\nexport function transactionStatus(sdk, args) {\n args = addStateToken(sdk, args);\n return post(sdk, sdk.getIssuerOrigin() + '/api/v1/authn', args, { withCredentials: true });\n}\nexport function resumeTransaction(sdk, args) {\n if (!args || !args.stateToken) {\n var stateToken = sdk.tx.exists._get(STATE_TOKEN_KEY_NAME);\n if (stateToken) {\n args = {\n stateToken: stateToken\n };\n }\n else {\n return Promise.reject(new AuthSdkError('No transaction to resume'));\n }\n }\n return sdk.tx.status(args)\n .then(function (res) {\n return new AuthTransaction(sdk, res);\n });\n}\nexport function introspectAuthn(sdk, args) {\n if (!args || !args.stateToken) {\n var stateToken = sdk.tx.exists._get(STATE_TOKEN_KEY_NAME);\n if (stateToken) {\n args = {\n stateToken: stateToken\n };\n }\n else {\n return Promise.reject(new AuthSdkError('No transaction to evaluate'));\n }\n }\n return transactionStep(sdk, args)\n .then(function (res) {\n return new AuthTransaction(sdk, res);\n });\n}\nexport function transactionStep(sdk, args) {\n args = addStateToken(sdk, args);\n // v1 pipeline introspect API\n return post(sdk, sdk.getIssuerOrigin() + '/api/v1/authn/introspect', args, { withCredentials: true });\n}\nexport function transactionExists(sdk) {\n // We have a cookie state token\n return !!sdk.tx.exists._get(STATE_TOKEN_KEY_NAME);\n}\nexport function postToTransaction(sdk, url, args, options) {\n options = Object.assign({ withCredentials: true }, options);\n return post(sdk, url, args, options)\n .then(function (res) {\n return new AuthTransaction(sdk, res);\n });\n}\n","/*!\n * Copyright (c) 2019-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n/* eslint-disable complexity, max-statements */\nimport { stringToBase64Url, webcrypto } from '../../crypto';\nimport { MIN_VERIFIER_LENGTH, MAX_VERIFIER_LENGTH, DEFAULT_CODE_CHALLENGE_METHOD } from '../../constants';\nfunction dec2hex(dec) {\n return ('0' + dec.toString(16)).substr(-2);\n}\nfunction getRandomString(length) {\n var a = new Uint8Array(Math.ceil(length / 2));\n webcrypto.getRandomValues(a);\n var str = Array.from(a, dec2hex).join('');\n return str.slice(0, length);\n}\nfunction generateVerifier(prefix) {\n var verifier = prefix || '';\n if (verifier.length < MIN_VERIFIER_LENGTH) {\n verifier = verifier + getRandomString(MIN_VERIFIER_LENGTH - verifier.length);\n }\n return encodeURIComponent(verifier).slice(0, MAX_VERIFIER_LENGTH);\n}\nfunction computeChallenge(str) {\n var buffer = new TextEncoder().encode(str);\n return webcrypto.subtle.digest('SHA-256', buffer).then(function (arrayBuffer) {\n var hash = String.fromCharCode.apply(null, new Uint8Array(arrayBuffer));\n var b64u = stringToBase64Url(hash); // url-safe base64 variant\n return b64u;\n });\n}\nexport default {\n DEFAULT_CODE_CHALLENGE_METHOD,\n generateVerifier,\n computeChallenge\n};\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/* global window */\nimport { omit, getLink, toQueryString } from './util';\nimport { get, post, httpRequest } from './http';\nfunction sessionExists(sdk) {\n return sdk.session.get()\n .then(function (res) {\n if (res.status === 'ACTIVE') {\n return true;\n }\n return false;\n })\n .catch(function () {\n return false;\n });\n}\nfunction getSession(sdk) {\n return get(sdk, '/api/v1/sessions/me', { withCredentials: true })\n .then(function (session) {\n var res = omit(session, '_links');\n res.refresh = function () {\n return post(sdk, getLink(session, 'refresh').href, {}, { withCredentials: true });\n };\n res.user = function () {\n return get(sdk, getLink(session, 'user').href, { withCredentials: true });\n };\n return res;\n })\n .catch(function () {\n // Return INACTIVE status on failure\n return { status: 'INACTIVE' };\n });\n}\nfunction closeSession(sdk) {\n return httpRequest(sdk, {\n url: sdk.getIssuerOrigin() + '/api/v1/sessions/me',\n method: 'DELETE',\n withCredentials: true\n });\n}\nfunction refreshSession(sdk) {\n return post(sdk, '/api/v1/sessions/me/lifecycle/refresh', {}, { withCredentials: true });\n}\nfunction setCookieAndRedirect(sdk, sessionToken, redirectUrl) {\n redirectUrl = redirectUrl || window.location.href;\n window.location.assign(sdk.getIssuerOrigin() + '/login/sessionCookieRedirect' +\n toQueryString({\n checkAccountSetupComplete: true,\n token: sessionToken,\n redirectUrl: redirectUrl\n }));\n}\nexport { sessionExists, getSession, closeSession, refreshSession, setCookieAndRedirect };\n","/* 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 */\nimport { isString, removeNils, toQueryString } from '../../util';\nimport { AuthSdkError } from '../../errors';\nexport function convertTokenParamsToOAuthParams(tokenParams) {\n // Quick validation\n if (!tokenParams.clientId) {\n throw new AuthSdkError('A clientId must be specified in the OktaAuth constructor to get a token');\n }\n if (isString(tokenParams.responseType) && tokenParams.responseType.indexOf(' ') !== -1) {\n throw new AuthSdkError('Multiple OAuth responseTypes must be defined as an array');\n }\n // Convert our params to their actual OAuth equivalents\n var oauthParams = {\n 'client_id': tokenParams.clientId,\n 'code_challenge': tokenParams.codeChallenge,\n 'code_challenge_method': tokenParams.codeChallengeMethod,\n 'display': tokenParams.display,\n 'idp': tokenParams.idp,\n 'idp_scope': tokenParams.idpScope,\n 'login_hint': tokenParams.loginHint,\n 'max_age': tokenParams.maxAge,\n 'nonce': tokenParams.nonce,\n 'prompt': tokenParams.prompt,\n 'redirect_uri': tokenParams.redirectUri,\n 'response_mode': tokenParams.responseMode,\n 'response_type': tokenParams.responseType,\n 'sessionToken': tokenParams.sessionToken,\n 'state': tokenParams.state,\n };\n oauthParams = removeNils(oauthParams);\n ['idp_scope', 'response_type'].forEach(function (mayBeArray) {\n if (Array.isArray(oauthParams[mayBeArray])) {\n oauthParams[mayBeArray] = oauthParams[mayBeArray].join(' ');\n }\n });\n if (tokenParams.responseType.indexOf('id_token') !== -1 &&\n tokenParams.scopes.indexOf('openid') === -1) {\n throw new AuthSdkError('openid scope must be specified in the scopes argument when requesting an id_token');\n }\n else {\n oauthParams.scope = tokenParams.scopes.join(' ');\n }\n return oauthParams;\n}\nexport function buildAuthorizeParams(tokenParams) {\n var oauthQueryParams = convertTokenParamsToOAuthParams(tokenParams);\n return toQueryString(Object.assign(Object.assign({}, oauthQueryParams), (tokenParams.extraParams && Object.assign({}, tokenParams.extraParams))));\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\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 */\nimport { AuthSdkError } from '../../errors';\nimport { removeNils, toQueryString } from '../../util';\nimport { httpRequest } from '../../http';\nfunction validateOptions(options) {\n // Quick validation\n if (!options.clientId) {\n throw new AuthSdkError('A clientId must be specified in the OktaAuth constructor to get a token');\n }\n if (!options.redirectUri) {\n throw new AuthSdkError('The redirectUri passed to /authorize must also be passed to /token');\n }\n if (!options.authorizationCode && !options.interactionCode) {\n throw new AuthSdkError('An authorization code (returned from /authorize) must be passed to /token');\n }\n if (!options.codeVerifier) {\n throw new AuthSdkError('The \"codeVerifier\" (generated and saved by your app) must be passed to /token');\n }\n}\nfunction getPostData(sdk, options) {\n // Convert Token params to OAuth params, sent to the /token endpoint\n var params = removeNils({\n 'client_id': options.clientId,\n 'redirect_uri': options.redirectUri,\n 'grant_type': options.interactionCode ? 'interaction_code' : 'authorization_code',\n 'code_verifier': options.codeVerifier\n });\n if (options.interactionCode) {\n params['interaction_code'] = options.interactionCode;\n }\n else if (options.authorizationCode) {\n params.code = options.authorizationCode;\n }\n const { clientSecret } = sdk.options;\n if (clientSecret) {\n params['client_secret'] = clientSecret;\n }\n // Encode as URL string\n return toQueryString(params).slice(1);\n}\n// exchange authorization code for an access token\nexport function postToTokenEndpoint(sdk, options, urls) {\n validateOptions(options);\n var data = getPostData(sdk, options);\n const headers = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n };\n return httpRequest(sdk, {\n url: urls.tokenUrl,\n method: 'POST',\n args: data,\n headers\n });\n}\nexport function postRefreshToken(sdk, options, refreshToken) {\n return httpRequest(sdk, {\n url: refreshToken.tokenUrl,\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n args: Object.entries({\n client_id: options.clientId,\n grant_type: 'refresh_token',\n scope: refreshToken.scopes.join(' '),\n refresh_token: refreshToken.refreshToken, // eslint-disable-line camelcase\n }).map(function ([name, value]) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return name + '=' + encodeURIComponent(value);\n }).join('&'),\n });\n}\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 { get } from '../../http';\nimport { find } from '../../util';\nimport AuthSdkError from '../../errors/AuthSdkError';\nexport function getWellKnown(sdk, issuer) {\n var authServerUri = (issuer || sdk.options.issuer);\n return get(sdk, authServerUri + '/.well-known/openid-configuration', {\n cacheResponse: true\n });\n}\nexport function getKey(sdk, issuer, kid) {\n var httpCache = sdk.storageManager.getHttpCache(sdk.options.cookies);\n return getWellKnown(sdk, issuer)\n .then(function (wellKnown) {\n var jwksUri = wellKnown['jwks_uri'];\n // Check our kid against the cached version (if it exists and isn't expired)\n var cacheContents = httpCache.getStorage();\n var cachedResponse = cacheContents[jwksUri];\n if (cachedResponse && Date.now() / 1000 < cachedResponse.expiresAt) {\n var cachedKey = find(cachedResponse.response.keys, {\n kid: kid\n });\n if (cachedKey) {\n return cachedKey;\n }\n }\n // Remove cache for the key\n httpCache.clearStorage(jwksUri);\n // Pull the latest keys if the key wasn't in the cache\n return get(sdk, jwksUri, {\n cacheResponse: true\n })\n .then(function (res) {\n var key = find(res.keys, {\n kid: kid\n });\n if (key) {\n return key;\n }\n throw new AuthSdkError('The key id, ' + kid + ', was not found in the server\\'s keys');\n });\n });\n}\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/* global window, document */\n/* eslint-disable complexity, max-statements */\nimport { AuthSdkError } from '../../errors';\nexport function addListener(eventTarget, name, fn) {\n if (eventTarget.addEventListener) {\n eventTarget.addEventListener(name, fn);\n }\n else {\n eventTarget.attachEvent('on' + name, fn);\n }\n}\nexport function removeListener(eventTarget, name, fn) {\n if (eventTarget.removeEventListener) {\n eventTarget.removeEventListener(name, fn);\n }\n else {\n eventTarget.detachEvent('on' + name, fn);\n }\n}\nexport function loadFrame(src) {\n var iframe = document.createElement('iframe');\n iframe.style.display = 'none';\n iframe.src = src;\n return document.body.appendChild(iframe);\n}\nexport function loadPopup(src, options) {\n var title = options.popupTitle || 'External Identity Provider User Authentication';\n var appearance = 'toolbar=no, scrollbars=yes, resizable=yes, ' +\n 'top=100, left=500, width=600, height=600';\n return window.open(src, title, appearance);\n}\nexport function addPostMessageListener(sdk, timeout, state) {\n var responseHandler;\n var timeoutId;\n var msgReceivedOrTimeout = new Promise(function (resolve, reject) {\n responseHandler = function responseHandler(e) {\n if (!e.data || e.data.state !== state) {\n // A message not meant for us\n return;\n }\n // Configuration mismatch between saved token and current app instance\n // This may happen if apps with different issuers are running on the same host url\n // If they share the same storage key, they may read and write tokens in the same location.\n // Common when developing against http://localhost\n if (e.origin !== sdk.getIssuerOrigin()) {\n return reject(new AuthSdkError('The request does not match client configuration'));\n }\n resolve(e.data);\n };\n addListener(window, 'message', responseHandler);\n timeoutId = setTimeout(function () {\n reject(new AuthSdkError('OAuth flow timed out'));\n }, timeout || 120000);\n });\n return msgReceivedOrTimeout\n .finally(function () {\n clearTimeout(timeoutId);\n removeListener(window, 'message', responseHandler);\n });\n}\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/* eslint-disable complexity, max-statements */\nimport { genRandomString, removeTrailingSlash } from '../../util';\nimport AuthSdkError from '../../errors/AuthSdkError';\nexport function generateState() {\n return genRandomString(64);\n}\nexport function generateNonce() {\n return genRandomString(64);\n}\nfunction getIssuer(sdk, options = {}) {\n const issuer = removeTrailingSlash(options.issuer) || sdk.options.issuer;\n return issuer;\n}\nexport function getOAuthBaseUrl(sdk, options = {}) {\n const issuer = getIssuer(sdk, options);\n const baseUrl = issuer.indexOf('/oauth2') > 0 ? issuer : issuer + '/oauth2';\n return baseUrl;\n}\nexport function getOAuthDomain(sdk, options = {}) {\n const issuer = getIssuer(sdk, options);\n const domain = issuer.split('/oauth2')[0];\n return domain;\n}\nexport function getOAuthUrls(sdk, options) {\n if (arguments.length > 2) {\n throw new AuthSdkError('As of version 3.0, \"getOAuthUrls\" takes only a single set of options');\n }\n options = options || {};\n // Get user-supplied arguments\n var authorizeUrl = removeTrailingSlash(options.authorizeUrl) || sdk.options.authorizeUrl;\n var issuer = getIssuer(sdk, options);\n var userinfoUrl = removeTrailingSlash(options.userinfoUrl) || sdk.options.userinfoUrl;\n var tokenUrl = removeTrailingSlash(options.tokenUrl) || sdk.options.tokenUrl;\n var logoutUrl = removeTrailingSlash(options.logoutUrl) || sdk.options.logoutUrl;\n var revokeUrl = removeTrailingSlash(options.revokeUrl) || sdk.options.revokeUrl;\n var baseUrl = getOAuthBaseUrl(sdk, options);\n authorizeUrl = authorizeUrl || baseUrl + '/v1/authorize';\n userinfoUrl = userinfoUrl || baseUrl + '/v1/userinfo';\n tokenUrl = tokenUrl || baseUrl + '/v1/token';\n revokeUrl = revokeUrl || baseUrl + '/v1/revoke';\n logoutUrl = logoutUrl || baseUrl + '/v1/logout';\n return {\n issuer: issuer,\n authorizeUrl: authorizeUrl,\n userinfoUrl: userinfoUrl,\n tokenUrl: tokenUrl,\n revokeUrl: revokeUrl,\n logoutUrl: logoutUrl\n };\n}\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/* eslint-disable node/no-unsupported-features/node-builtins */\n/* global document, window, TextEncoder, navigator */\nimport { webcrypto } from './crypto';\nconst isWindowsPhone = /windows phone|iemobile|wpdesktop/i;\nexport function isBrowser() {\n return typeof document !== 'undefined' && typeof window !== 'undefined';\n}\nexport function isIE11OrLess() {\n if (!isBrowser()) {\n return false;\n }\n const documentMode = document.documentMode;\n return !!documentMode && documentMode <= 11;\n}\nexport function getUserAgent() {\n return navigator.userAgent;\n}\nexport function isFingerprintSupported() {\n const agent = getUserAgent();\n return agent && !isWindowsPhone.test(agent);\n}\nexport function isPopupPostMessageSupported() {\n if (!isBrowser()) {\n return false;\n }\n const documentMode = document.documentMode;\n var isIE8or9 = documentMode && documentMode < 10;\n if (typeof window.postMessage !== 'undefined' && !isIE8or9) {\n return true;\n }\n return false;\n}\nexport function isTokenVerifySupported() {\n return typeof webcrypto !== 'undefined'\n && webcrypto !== null\n && typeof webcrypto.subtle !== 'undefined'\n && typeof Uint8Array !== 'undefined';\n}\nexport function hasTextEncoder() {\n return typeof TextEncoder !== 'undefined';\n}\nexport function isPKCESupported() {\n return isTokenVerifySupported() && hasTextEncoder();\n}\nexport function isHTTPS() {\n if (!isBrowser()) {\n return false;\n }\n return window.location.protocol === 'https:';\n}\nexport function isLocalhost() {\n // eslint-disable-next-line compat/compat\n return isBrowser() && window.location.hostname === 'localhost';\n}\n","/* global window */\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 { generateNonce, generateState } from './oauth';\nimport { isBrowser } from '../../features';\nimport { removeNils } from '../../util';\nexport function getDefaultTokenParams(sdk) {\n const { pkce, clientId, redirectUri, responseType, responseMode, scopes, state, ignoreSignature } = sdk.options;\n const defaultRedirectUri = isBrowser() ? window.location.href : undefined;\n return removeNils({\n pkce,\n clientId,\n redirectUri: redirectUri || defaultRedirectUri,\n responseType: responseType || ['token', 'id_token'],\n responseMode,\n state: state || generateState(),\n nonce: generateNonce(),\n scopes: scopes || ['openid', 'email'],\n ignoreSignature\n });\n}\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 */\nexport function isInteractionRequiredError(error) {\n if (error.name !== 'OAuthError') {\n return false;\n }\n const oauthError = error;\n return (oauthError.errorCode === 'interaction_required');\n}\nexport function isAuthorizationCodeError(sdk, error) {\n if (error.name !== 'AuthApiError') {\n return false;\n }\n const authApiError = error;\n // xhr property doesn't seem to match XMLHttpRequest type\n const errorResponse = authApiError.xhr;\n const responseJSON = errorResponse === null || errorResponse === void 0 ? void 0 : errorResponse.responseJSON;\n return sdk.options.pkce && ((responseJSON === null || responseJSON === void 0 ? void 0 : responseJSON.error) === 'invalid_grant');\n}\n","export function hasTokensInHash(hash) {\n return /((id|access)_token=)/i.test(hash);\n}\n// authorization_code\nexport function hasAuthorizationCode(hashOrSearch) {\n return /(code=)/i.test(hashOrSearch);\n}\n// interaction_code\nexport function hasInteractionCode(hashOrSearch) {\n return /(interaction_code=)/i.test(hashOrSearch);\n}\nexport function hasErrorInUrl(hashOrSearch) {\n return /(error=)/i.test(hashOrSearch) || /(error_description)/i.test(hashOrSearch);\n}\nexport function isRedirectUri(uri, sdk) {\n var authParams = sdk.options;\n if (!uri || !authParams.redirectUri) {\n return false;\n }\n return uri.indexOf(authParams.redirectUri) === 0;\n}\nexport function isCodeFlow(options) {\n return options.pkce || options.responseType === 'code' || options.responseMode === 'query';\n}\nexport function getHashOrSearch(options) {\n var codeFlow = isCodeFlow(options);\n var useQuery = codeFlow && options.responseMode !== 'fragment';\n return useQuery ? window.location.search : window.location.hash;\n}\n/**\n * Check if tokens or a code have been passed back into the url, which happens in\n * the OIDC (including social auth IDP) redirect flow.\n */\nexport function isLoginRedirect(sdk) {\n // First check, is this a redirect URI?\n if (!isRedirectUri(window.location.href, sdk)) {\n return false;\n }\n // The location contains either a code, token, or an error + error_description\n var codeFlow = isCodeFlow(sdk.options);\n var hashOrSearch = getHashOrSearch(sdk.options);\n if (hasErrorInUrl(hashOrSearch)) {\n return true;\n }\n if (codeFlow) {\n var hasCode = hasAuthorizationCode(hashOrSearch) || hasInteractionCode(hashOrSearch);\n return hasCode;\n }\n // implicit flow, will always be hash fragment\n return hasTokensInHash(window.location.hash);\n}\n/**\n * Check if error=interaction_required has been passed back in the url, which happens in\n * the social auth IDP redirect flow.\n */\nexport function isInteractionRequired(sdk, hashOrSearch) {\n if (!hashOrSearch) { // web only\n // First check, is this a redirect URI?\n if (!isLoginRedirect(sdk)) {\n return false;\n }\n hashOrSearch = getHashOrSearch(sdk.options);\n }\n return /(error=interaction_required)/i.test(hashOrSearch);\n}\n","import { getOAuthUrls } from './oauth';\nexport function createOAuthMeta(sdk, tokenParams) {\n const issuer = sdk.options.issuer;\n const urls = getOAuthUrls(sdk, tokenParams);\n const oauthMeta = {\n issuer,\n urls,\n clientId: tokenParams.clientId,\n redirectUri: tokenParams.redirectUri,\n responseType: tokenParams.responseType,\n responseMode: tokenParams.responseMode,\n scopes: tokenParams.scopes,\n state: tokenParams.state,\n nonce: tokenParams.nonce,\n ignoreSignature: tokenParams.ignoreSignature,\n };\n if (tokenParams.pkce === false) {\n // Implicit flow or authorization_code without PKCE\n return oauthMeta;\n }\n const pkceMeta = Object.assign(Object.assign({}, oauthMeta), { codeVerifier: tokenParams.codeVerifier, codeChallengeMethod: tokenParams.codeChallengeMethod, codeChallenge: tokenParams.codeChallenge });\n return pkceMeta;\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/* eslint-disable complexity */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { getWellKnown } from '../endpoints/well-known';\nimport { AuthSdkError } from '../../errors';\nimport { getDefaultTokenParams } from './defaultTokenParams';\nimport { DEFAULT_CODE_CHALLENGE_METHOD } from '../../constants';\nimport PKCE from './pkce';\nexport function assertPKCESupport(sdk) {\n if (!sdk.features.isPKCESupported()) {\n var errorMessage = 'PKCE requires a modern browser with encryption support running in a secure context.';\n if (!sdk.features.isHTTPS()) {\n // eslint-disable-next-line max-len\n errorMessage += '\\nThe current page is not being served with HTTPS protocol. PKCE requires secure HTTPS protocol.';\n }\n if (!sdk.features.hasTextEncoder()) {\n // eslint-disable-next-line max-len\n errorMessage += '\\n\"TextEncoder\" is not defined. To use PKCE, you may need to include a polyfill/shim for this browser.';\n }\n throw new AuthSdkError(errorMessage);\n }\n}\nexport function validateCodeChallengeMethod(sdk, codeChallengeMethod) {\n return __awaiter(this, void 0, void 0, function* () {\n // set default code challenge method, if none provided\n codeChallengeMethod = codeChallengeMethod || sdk.options.codeChallengeMethod || DEFAULT_CODE_CHALLENGE_METHOD;\n // validate against .well-known/openid-configuration\n const wellKnownResponse = yield getWellKnown(sdk);\n var methods = wellKnownResponse['code_challenge_methods_supported'] || [];\n if (methods.indexOf(codeChallengeMethod) === -1) {\n throw new AuthSdkError('Invalid code_challenge_method');\n }\n return codeChallengeMethod;\n });\n}\nexport function preparePKCE(sdk, tokenParams) {\n return __awaiter(this, void 0, void 0, function* () {\n let { codeVerifier, codeChallenge, codeChallengeMethod } = tokenParams;\n // PKCE calculations can be avoided by passing a codeChallenge\n codeChallenge = codeChallenge || sdk.options.codeChallenge;\n if (!codeChallenge) {\n assertPKCESupport(sdk);\n codeVerifier = codeVerifier || PKCE.generateVerifier();\n codeChallenge = yield PKCE.computeChallenge(codeVerifier);\n }\n codeChallengeMethod = yield validateCodeChallengeMethod(sdk, codeChallengeMethod);\n // Clone/copy the params. Set PKCE values\n tokenParams = Object.assign(Object.assign({}, tokenParams), { responseType: 'code', // responseType is forced\n codeVerifier,\n codeChallenge,\n codeChallengeMethod });\n return tokenParams;\n });\n}\n// Prepares params for a call to /authorize or /token\nexport function prepareTokenParams(sdk, tokenParams = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n // build params using defaults + options\n const defaults = getDefaultTokenParams(sdk);\n tokenParams = Object.assign(Object.assign({}, defaults), tokenParams);\n if (tokenParams.pkce === false) {\n // Implicit flow or authorization_code without PKCE\n return tokenParams;\n }\n return preparePKCE(sdk, tokenParams);\n });\n}\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 */\nexport var IdxStatus;\n(function (IdxStatus) {\n IdxStatus[\"SUCCESS\"] = \"SUCCESS\";\n IdxStatus[\"PENDING\"] = \"PENDING\";\n IdxStatus[\"FAILURE\"] = \"FAILURE\";\n IdxStatus[\"TERMINAL\"] = \"TERMINAL\";\n IdxStatus[\"CANCELED\"] = \"CANCELED\";\n})(IdxStatus || (IdxStatus = {}));\nexport var AuthenticatorKey;\n(function (AuthenticatorKey) {\n AuthenticatorKey[\"OKTA_PASSWORD\"] = \"okta_password\";\n AuthenticatorKey[\"OKTA_EMAIL\"] = \"okta_email\";\n AuthenticatorKey[\"PHONE_NUMBER\"] = \"phone_number\";\n AuthenticatorKey[\"GOOGLE_AUTHENTICATOR\"] = \"google_otp\";\n AuthenticatorKey[\"SECURITY_QUESTION\"] = \"security_question\";\n AuthenticatorKey[\"OKTA_VERIFY\"] = \"okta_verify\";\n AuthenticatorKey[\"WEBAUTHN\"] = \"webauthn\";\n})(AuthenticatorKey || (AuthenticatorKey = {}));\nexport var IdxFeature;\n(function (IdxFeature) {\n IdxFeature[\"PASSWORD_RECOVERY\"] = \"recover-password\";\n IdxFeature[\"REGISTRATION\"] = \"enroll-profile\";\n IdxFeature[\"SOCIAL_IDP\"] = \"redirect-idp\";\n IdxFeature[\"ACCOUNT_UNLOCK\"] = \"unlock-account\";\n})(IdxFeature || (IdxFeature = {}));\n","import { isAuthApiError } from '../../errors';\nexport function isSameRefreshToken(a, b) {\n return (a.refreshToken === b.refreshToken);\n}\nexport function isRefreshTokenError(err) {\n if (!isAuthApiError(err)) {\n return false;\n }\n if (!err.xhr || !err.xhr.responseJSON) {\n return false;\n }\n const { responseJSON } = err.xhr;\n if (responseJSON.error === 'invalid_grant') {\n return true;\n }\n return false;\n}\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/* eslint-disable complexity, max-statements */\nexport function urlParamsToObject(hashOrSearch) {\n // Predefine regexs for parsing hash\n var plus2space = /\\+/g;\n var paramSplit = /([^&=]+)=?([^&]*)/g;\n var fragment = hashOrSearch || '';\n // Some hash based routers will automatically add a / character after the hash\n if (fragment.charAt(0) === '#' && fragment.charAt(1) === '/') {\n fragment = fragment.substring(2);\n }\n // Remove the leading # or ?\n if (fragment.charAt(0) === '#' || fragment.charAt(0) === '?') {\n fragment = fragment.substring(1);\n }\n var obj = {};\n // Loop until we have no more params\n var param;\n while (true) { // eslint-disable-line no-constant-condition\n param = paramSplit.exec(fragment);\n if (!param) {\n break;\n }\n var key = param[1];\n var value = param[2];\n // id_token should remain base64url encoded\n if (key === 'id_token' || key === 'access_token' || key === 'code') {\n obj[key] = value;\n }\n else {\n obj[key] = decodeURIComponent(value.replace(plus2space, ' '));\n }\n }\n return obj;\n}\n","/* 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/* eslint-disable complexity, max-statements */\nimport AuthSdkError from '../../errors/AuthSdkError';\nexport function validateClaims(sdk, claims, validationParams) {\n var aud = validationParams.clientId;\n var iss = validationParams.issuer;\n var nonce = validationParams.nonce;\n if (!claims || !iss || !aud) {\n throw new AuthSdkError('The jwt, iss, and aud arguments are all required');\n }\n if (nonce && claims.nonce !== nonce) {\n throw new AuthSdkError('OAuth flow response nonce doesn\\'t match request nonce');\n }\n var now = Math.floor(Date.now() / 1000);\n if (claims.iss !== iss) {\n throw new AuthSdkError('The issuer [' + claims.iss + '] ' +\n 'does not match [' + iss + ']');\n }\n if (claims.aud !== aud) {\n throw new AuthSdkError('The audience [' + claims.aud + '] ' +\n 'does not match [' + aud + ']');\n }\n if (claims.iat > claims.exp) {\n throw new AuthSdkError('The JWT expired before it was issued');\n }\n if (!sdk.options.ignoreLifetime) {\n if ((now - sdk.options.maxClockSkew) > claims.exp) {\n throw new AuthSdkError('The JWT expired and is no longer valid');\n }\n if (claims.iat > (now + sdk.options.maxClockSkew)) {\n throw new AuthSdkError('The JWT was issued in the future');\n }\n }\n}\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 */\nfunction isObjectWithProperties(obj) {\n if (!obj || typeof obj !== 'object' || Object.values(obj).length === 0) {\n return false;\n }\n return true;\n}\nexport function isOAuthTransactionMeta(obj) {\n if (!isObjectWithProperties(obj)) {\n return false;\n }\n return !!obj.redirectUri || !!obj.responseType;\n}\nexport function isPKCETransactionMeta(obj) {\n if (!isOAuthTransactionMeta(obj)) {\n return false;\n }\n return !!obj.codeVerifier;\n}\nexport function isIdxTransactionMeta(obj) {\n if (!isPKCETransactionMeta(obj)) {\n return false;\n }\n return !!obj.interactionHandle;\n}\nexport function isCustomAuthTransactionMeta(obj) {\n if (!isObjectWithProperties(obj)) {\n return false;\n }\n const isAllStringValues = Object.values(obj).find((value) => (typeof value !== 'string')) === undefined;\n return isAllStringValues;\n}\nexport function isTransactionMeta(obj) {\n if (isOAuthTransactionMeta(obj) || isCustomAuthTransactionMeta(obj)) {\n return true;\n }\n return false;\n}\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 */\nexport function isToken(obj) {\n if (obj &&\n (obj.accessToken || obj.idToken || obj.refreshToken) &&\n Array.isArray(obj.scopes)) {\n return true;\n }\n return false;\n}\nexport function isAccessToken(obj) {\n return obj && obj.accessToken;\n}\nexport function isIDToken(obj) {\n return obj && obj.idToken;\n}\nexport function isRefreshToken(obj) {\n return obj && obj.refreshToken;\n}\n","/* eslint-disable complexity */\nimport { AuthSdkError } from '../../errors';\nimport { isAccessToken, isIDToken, isRefreshToken } from '../../types';\nexport function validateToken(token, type) {\n if (!isIDToken(token) && !isAccessToken(token) && !isRefreshToken(token)) {\n throw new AuthSdkError('Token must be an Object with scopes, expiresAt, and one of: an idToken, accessToken, or refreshToken property');\n }\n if (type === 'accessToken' && !isAccessToken(token)) {\n throw new AuthSdkError('invalid accessToken');\n }\n if (type === 'idToken' && !isIDToken(token)) {\n throw new AuthSdkError('invalid idToken');\n }\n if (type === 'refreshToken' && !isRefreshToken(token)) {\n throw new AuthSdkError('invalid refreshToken');\n }\n}\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 { AuthSdkError } from '../errors';\nimport { base64UrlToString } from '../crypto';\nexport function decodeToken(token) {\n var jwt = token.split('.');\n var decodedToken;\n try {\n decodedToken = {\n header: JSON.parse(base64UrlToString(jwt[0])),\n payload: JSON.parse(base64UrlToString(jwt[1])),\n signature: jwt[2]\n };\n }\n catch (e) {\n throw new AuthSdkError('Malformed token');\n }\n return decodedToken;\n}\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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/* eslint complexity:[0,8] */\nimport { post } from '../http';\nimport { toQueryString } from '../util';\nimport { getOAuthUrls, } from './util/oauth';\nimport { btoa } from '../crypto';\nimport AuthSdkError from '../errors/AuthSdkError';\n// refresh tokens have precedence to be revoked if no token is specified\nexport function revokeToken(sdk, token) {\n return __awaiter(this, void 0, void 0, function* () {\n let accessToken = '';\n let refreshToken = '';\n if (token) {\n accessToken = token.accessToken;\n refreshToken = token.refreshToken;\n }\n if (!accessToken && !refreshToken) {\n throw new AuthSdkError('A valid access or refresh token object is required');\n }\n var clientId = sdk.options.clientId;\n var clientSecret = sdk.options.clientSecret;\n if (!clientId) {\n throw new AuthSdkError('A clientId must be specified in the OktaAuth constructor to revoke a token');\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n var revokeUrl = getOAuthUrls(sdk).revokeUrl;\n var args = toQueryString({\n // eslint-disable-next-line camelcase\n token_type_hint: refreshToken ? 'refresh_token' : 'access_token',\n token: refreshToken || accessToken,\n }).slice(1);\n var creds = clientSecret ? btoa(`${clientId}:${clientSecret}`) : btoa(clientId);\n return post(sdk, revokeUrl, args, {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Authorization': 'Basic ' + creds\n }\n });\n });\n}\n","import { getOAuthUrls, getDefaultTokenParams } from './util';\nimport { clone } from '../util';\nimport { postToTokenEndpoint } from './endpoints/token';\nimport { handleOAuthResponse } from './handleOAuthResponse';\n// codeVerifier is required. May pass either an authorizationCode or interactionCode\nexport function exchangeCodeForTokens(sdk, tokenParams, urls) {\n urls = urls || getOAuthUrls(sdk, tokenParams);\n // build params using defaults + options\n tokenParams = Object.assign({}, getDefaultTokenParams(sdk), clone(tokenParams));\n const { authorizationCode, interactionCode, codeVerifier, clientId, redirectUri, scopes, ignoreSignature, state } = tokenParams;\n var getTokenOptions = {\n clientId,\n redirectUri,\n authorizationCode,\n interactionCode,\n codeVerifier,\n };\n return postToTokenEndpoint(sdk, getTokenOptions, urls)\n .then((response) => {\n // `handleOAuthResponse` hanadles responses from both `/authorize` and `/token` endpoints\n // Here we modify the response from `/token` so that it more closely matches a response from `/authorize`\n // `responseType` is used to validate that the expected tokens were returned\n const responseType = ['token']; // an accessToken will always be returned\n if (scopes.indexOf('openid') !== -1) {\n responseType.push('id_token'); // an idToken will be returned if \"openid\" is in the scopes\n }\n const handleResponseOptions = {\n clientId,\n redirectUri,\n scopes,\n responseType,\n ignoreSignature,\n };\n return handleOAuthResponse(sdk, handleResponseOptions, response, urls)\n .then((response) => {\n // For compatibility, \"code\" is returned in the TokenResponse. OKTA-326091\n response.code = authorizationCode;\n response.state = state;\n return response;\n });\n })\n .finally(() => {\n sdk.transactionManager.clear();\n });\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/* eslint-disable max-len */\n/* eslint-disable complexity */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { getWellKnown, getKey } from './endpoints/well-known';\nimport { validateClaims } from './util';\nimport { AuthSdkError } from '../errors';\nimport { decodeToken } from './decodeToken';\nimport * as sdkCrypto from '../crypto';\n// Verify the id token\nexport function verifyToken(sdk, token, validationParams) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!token || !token.idToken) {\n throw new AuthSdkError('Only idTokens may be verified');\n }\n // Decode the Jwt object (may throw)\n var jwt = decodeToken(token.idToken);\n // The configured issuer may point to a frontend proxy.\n // Get the \"real\" issuer from .well-known/openid-configuration\n const configuredIssuer = (validationParams === null || validationParams === void 0 ? void 0 : validationParams.issuer) || sdk.options.issuer;\n const { issuer } = yield getWellKnown(sdk, configuredIssuer);\n var validationOptions = Object.assign({\n // base options, can be overridden by params\n clientId: sdk.options.clientId,\n ignoreSignature: sdk.options.ignoreSignature\n }, validationParams, {\n // final options, cannot be overridden\n issuer\n });\n // Standard claim validation (may throw)\n validateClaims(sdk, jwt.payload, validationOptions);\n // If the browser doesn't support native crypto or we choose not\n // to verify the signature, bail early\n if (validationOptions.ignoreSignature == true || !sdk.features.isTokenVerifySupported()) {\n return token;\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const key = yield getKey(sdk, token.issuer, jwt.header.kid);\n const valid = yield sdkCrypto.verifyToken(token.idToken, key);\n if (!valid) {\n throw new AuthSdkError('The token signature is not valid');\n }\n if (validationParams && validationParams.accessToken && token.claims.at_hash) {\n const hash = yield sdkCrypto.getOidcHash(validationParams.accessToken);\n if (hash !== token.claims.at_hash) {\n throw new AuthSdkError('Token hash verification failed');\n }\n }\n return token;\n });\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/* eslint-disable complexity, max-statements */\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 { clone } from '../util';\nimport { getOAuthUrls, } from './util/oauth';\nimport { AuthSdkError, OAuthError } from '../errors';\nimport { exchangeCodeForTokens } from './exchangeCodeForTokens';\nimport { verifyToken } from './verifyToken';\nimport { getDefaultTokenParams } from './util';\nfunction validateResponse(res, oauthParams) {\n if (res['error'] && res['error_description']) {\n throw new OAuthError(res['error'], res['error_description']);\n }\n if (res.state !== oauthParams.state) {\n throw new AuthSdkError('OAuth flow response state doesn\\'t match request state');\n }\n}\nexport function handleOAuthResponse(sdk, tokenParams, res, urls) {\n return __awaiter(this, void 0, void 0, function* () {\n var pkce = sdk.options.pkce !== false;\n // The result contains an authorization_code and PKCE is enabled \n // `exchangeCodeForTokens` will call /token then call `handleOauthResponse` recursively with the result\n if (pkce && (res.code || res.interaction_code)) {\n return exchangeCodeForTokens(sdk, Object.assign({}, tokenParams, {\n authorizationCode: res.code,\n interactionCode: res.interaction_code\n }), urls);\n }\n tokenParams = tokenParams || getDefaultTokenParams(sdk);\n urls = urls || getOAuthUrls(sdk, tokenParams);\n var responseType = tokenParams.responseType || [];\n if (!Array.isArray(responseType)) {\n responseType = [responseType];\n }\n var scopes;\n if (res.scope) {\n scopes = res.scope.split(' ');\n }\n else {\n scopes = clone(tokenParams.scopes);\n }\n var clientId = tokenParams.clientId || sdk.options.clientId;\n // Handling the result from implicit flow or PKCE token exchange\n validateResponse(res, tokenParams);\n var tokenDict = {};\n var expiresIn = res.expires_in;\n var tokenType = res.token_type;\n var accessToken = res.access_token;\n var idToken = res.id_token;\n var refreshToken = res.refresh_token;\n var now = Math.floor(Date.now() / 1000);\n if (accessToken) {\n var accessJwt = sdk.token.decode(accessToken);\n tokenDict.accessToken = {\n accessToken: accessToken,\n claims: accessJwt.payload,\n expiresAt: Number(expiresIn) + now,\n tokenType: tokenType,\n scopes: scopes,\n authorizeUrl: urls.authorizeUrl,\n userinfoUrl: urls.userinfoUrl\n };\n }\n if (refreshToken) {\n tokenDict.refreshToken = {\n refreshToken: refreshToken,\n // should not be used, this is the accessToken expire time\n // TODO: remove \"expiresAt\" in the next major version OKTA-407224\n expiresAt: Number(expiresIn) + now,\n scopes: scopes,\n tokenUrl: urls.tokenUrl,\n authorizeUrl: urls.authorizeUrl,\n issuer: urls.issuer,\n };\n }\n if (idToken) {\n var idJwt = sdk.token.decode(idToken);\n var idTokenObj = {\n idToken: idToken,\n claims: idJwt.payload,\n expiresAt: idJwt.payload.exp - idJwt.payload.iat + now,\n scopes: scopes,\n authorizeUrl: urls.authorizeUrl,\n issuer: urls.issuer,\n clientId: clientId\n };\n var validationParams = {\n clientId: clientId,\n issuer: urls.issuer,\n nonce: tokenParams.nonce,\n accessToken: accessToken\n };\n if (tokenParams.ignoreSignature !== undefined) {\n validationParams.ignoreSignature = tokenParams.ignoreSignature;\n }\n yield verifyToken(sdk, idTokenObj, validationParams);\n tokenDict.idToken = idTokenObj;\n }\n // Validate received tokens against requested response types \n if (responseType.indexOf('token') !== -1 && !tokenDict.accessToken) {\n // eslint-disable-next-line max-len\n throw new AuthSdkError('Unable to parse OAuth flow response: response type \"token\" was requested but \"access_token\" was not returned.');\n }\n if (responseType.indexOf('id_token') !== -1 && !tokenDict.idToken) {\n // eslint-disable-next-line max-len\n throw new AuthSdkError('Unable to parse OAuth flow response: response type \"id_token\" was requested but \"id_token\" was not returned.');\n }\n return {\n tokens: tokenDict,\n state: res.state,\n code: res.code\n };\n });\n}\n","/* global document */\n/* eslint-disable complexity, max-statements */\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 { getOAuthUrls, loadFrame, addPostMessageListener } from './util';\nimport AuthSdkError from '../errors/AuthSdkError';\nimport { prepareTokenParams } from './util/prepareTokenParams';\nimport { buildAuthorizeParams } from './endpoints/authorize';\nimport { handleOAuthResponse } from './handleOAuthResponse';\n/*\n * Retrieve an idToken from an Okta or a third party idp\n *\n * Two main flows:\n *\n * 1) Exchange a sessionToken for a token\n *\n * Required:\n * clientId: passed via the OktaAuth constructor or into getToken\n * sessionToken: 'yourtoken'\n *\n * Optional:\n * redirectUri: defaults to window.location.href\n * scopes: defaults to ['openid', 'email']\n *\n * Forced:\n * prompt: 'none'\n * responseMode: 'okta_post_message'\n * display: undefined\n *\n * 2) Get a token from an idp\n *\n * Required:\n * clientId: passed via the OktaAuth constructor or into getToken\n *\n * Optional:\n * redirectUri: defaults to window.location.href\n * scopes: defaults to ['openid', 'email']\n * idp: defaults to Okta as an idp\n * prompt: no default. Pass 'none' to throw an error if user is not signed in\n *\n * Forced:\n * display: 'popup'\n *\n * Only common optional params shown. Any OAuth parameters not explicitly forced are available to override\n *\n * @param {Object} oauthOptions\n * @param {String} [oauthOptions.clientId] ID of this client\n * @param {String} [oauthOptions.redirectUri] URI that the iframe or popup will go to once authenticated\n * @param {String[]} [oauthOptions.scopes] OAuth 2.0 scopes to request (openid must be specified)\n * @param {String} [oauthOptions.idp] ID of an external IdP to use for user authentication\n * @param {String} [oauthOptions.sessionToken] Bootstrap Session Token returned by the Okta Authentication API\n * @param {String} [oauthOptions.prompt] Determines whether the Okta login will be displayed on failure.\n * Use 'none' to prevent this behavior\n *\n * @param {Object} options\n * @param {Integer} [options.timeout] Time in ms before the flow is automatically terminated. Defaults to 120000\n * @param {String} [options.popupTitle] Title dispayed in the popup.\n * Defaults to 'External Identity Provider User Authentication'\n */\nexport function getToken(sdk, options) {\n if (arguments.length > 2) {\n return Promise.reject(new AuthSdkError('As of version 3.0, \"getToken\" takes only a single set of options'));\n }\n options = options || {};\n // window object cannot be serialized, save for later use\n // TODO: move popup related params into a separate options object\n const popupWindow = options.popupWindow;\n options.popupWindow = undefined;\n return prepareTokenParams(sdk, options)\n .then(function (tokenParams) {\n // Start overriding any options that don't make sense\n var sessionTokenOverrides = {\n prompt: 'none',\n responseMode: 'okta_post_message',\n display: null\n };\n var idpOverrides = {\n display: 'popup'\n };\n if (options.sessionToken) {\n Object.assign(tokenParams, sessionTokenOverrides);\n }\n else if (options.idp) {\n Object.assign(tokenParams, idpOverrides);\n }\n // Use the query params to build the authorize url\n var requestUrl, endpoint, urls;\n // Get authorizeUrl and issuer\n urls = getOAuthUrls(sdk, tokenParams);\n endpoint = options.codeVerifier ? urls.tokenUrl : urls.authorizeUrl;\n requestUrl = endpoint + buildAuthorizeParams(tokenParams);\n // Determine the flow type\n var flowType;\n if (tokenParams.sessionToken || tokenParams.display === null) {\n flowType = 'IFRAME';\n }\n else if (tokenParams.display === 'popup') {\n flowType = 'POPUP';\n }\n else {\n flowType = 'IMPLICIT';\n }\n // Execute the flow type\n switch (flowType) {\n case 'IFRAME':\n var iframePromise = addPostMessageListener(sdk, options.timeout, tokenParams.state);\n var iframeEl = loadFrame(requestUrl);\n return iframePromise\n .then(function (res) {\n return handleOAuthResponse(sdk, tokenParams, res, urls);\n })\n .finally(function () {\n var _a;\n if (document.body.contains(iframeEl)) {\n (_a = iframeEl.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(iframeEl);\n }\n });\n case 'POPUP':\n var oauthPromise; // resolves with OAuth response\n // Add listener on postMessage before window creation, so\n // postMessage isn't triggered before we're listening\n if (tokenParams.responseMode === 'okta_post_message') {\n if (!sdk.features.isPopupPostMessageSupported()) {\n throw new AuthSdkError('This browser doesn\\'t have full postMessage support');\n }\n oauthPromise = addPostMessageListener(sdk, options.timeout, tokenParams.state);\n }\n // Redirect for authorization\n // popupWindown can be null when popup is blocked\n if (popupWindow) {\n popupWindow.location.assign(requestUrl);\n }\n // The popup may be closed without receiving an OAuth response. Setup a poller to monitor the window.\n var popupPromise = new Promise(function (resolve, reject) {\n var closePoller = setInterval(function () {\n if (!popupWindow || popupWindow.closed) {\n clearInterval(closePoller);\n reject(new AuthSdkError('Unable to parse OAuth flow response'));\n }\n }, 100);\n // Proxy the OAuth promise results\n oauthPromise\n .then(function (res) {\n clearInterval(closePoller);\n resolve(res);\n })\n .catch(function (err) {\n clearInterval(closePoller);\n reject(err);\n });\n });\n return popupPromise\n .then(function (res) {\n return handleOAuthResponse(sdk, tokenParams, res, urls);\n })\n .finally(function () {\n if (popupWindow && !popupWindow.closed) {\n popupWindow.close();\n }\n });\n default:\n throw new AuthSdkError('The full page redirect flow is not supported');\n }\n });\n}\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 { AuthSdkError } from '../errors';\nimport { clone } from '../util';\nimport { getToken } from './getToken';\nexport function getWithoutPrompt(sdk, options) {\n if (arguments.length > 2) {\n return Promise.reject(new AuthSdkError('As of version 3.0, \"getWithoutPrompt\" takes only a single set of options'));\n }\n options = clone(options) || {};\n Object.assign(options, {\n prompt: 'none',\n responseMode: 'okta_post_message',\n display: null\n });\n return getToken(sdk, options);\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\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 { AuthSdkError } from '../errors';\nimport { getOAuthUrls } from './util/oauth';\nimport { isSameRefreshToken } from './util/refreshToken';\nimport { handleOAuthResponse } from './handleOAuthResponse';\nimport { postRefreshToken } from './endpoints/token';\nexport function renewTokensWithRefresh(sdk, tokenParams, refreshTokenObject) {\n return __awaiter(this, void 0, void 0, function* () {\n const { clientId } = sdk.options;\n if (!clientId) {\n throw new AuthSdkError('A clientId must be specified in the OktaAuth constructor to renew tokens');\n }\n const renewTokenParams = Object.assign({}, tokenParams, {\n clientId,\n });\n const tokenResponse = yield postRefreshToken(sdk, renewTokenParams, refreshTokenObject);\n const urls = getOAuthUrls(sdk, tokenParams);\n const { tokens } = yield handleOAuthResponse(sdk, renewTokenParams, tokenResponse, urls);\n // Support rotating refresh tokens\n const { refreshToken } = tokens;\n if (refreshToken && !isSameRefreshToken(refreshToken, refreshTokenObject)) {\n sdk.tokenManager.updateRefreshToken(refreshToken);\n }\n return tokens;\n });\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\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 { AuthSdkError } from '../errors';\nimport { isAccessToken, isIDToken } from '../types';\nimport { getWithoutPrompt } from './getWithoutPrompt';\nimport { renewTokensWithRefresh } from './renewTokensWithRefresh';\nfunction throwInvalidTokenError() {\n throw new AuthSdkError('Renew must be passed a token with an array of scopes and an accessToken or idToken');\n}\n// Multiple tokens may have come back. Return only the token which was requested.\nfunction getSingleToken(originalToken, tokens) {\n if (isIDToken(originalToken)) {\n return tokens.idToken;\n }\n if (isAccessToken(originalToken)) {\n return tokens.accessToken;\n }\n throwInvalidTokenError();\n}\n// If we have a refresh token, renew using that, otherwise getWithoutPrompt\nexport function renewToken(sdk, token) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!isIDToken(token) && !isAccessToken(token)) {\n throwInvalidTokenError();\n }\n let tokens = sdk.tokenManager.getTokensSync();\n if (tokens.refreshToken) {\n tokens = yield renewTokensWithRefresh(sdk, {\n scopes: token.scopes,\n }, tokens.refreshToken);\n return getSingleToken(token, tokens);\n }\n var responseType;\n if (sdk.options.pkce) {\n responseType = 'code';\n }\n else if (isAccessToken(token)) {\n responseType = 'token';\n }\n else {\n responseType = 'id_token';\n }\n const { scopes, authorizeUrl, userinfoUrl, issuer } = token;\n return getWithoutPrompt(sdk, {\n responseType,\n scopes,\n authorizeUrl,\n userinfoUrl,\n issuer\n })\n .then(function (res) {\n return getSingleToken(token, res.tokens);\n });\n });\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\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 { AuthSdkError } from '../errors';\nimport { getWithoutPrompt } from './getWithoutPrompt';\nimport { renewTokensWithRefresh } from './renewTokensWithRefresh';\nimport { getDefaultTokenParams } from './util';\n// If we have a refresh token, renew using that, otherwise getWithoutPrompt\n// eslint-disable-next-line complexity\nexport function renewTokens(sdk, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const tokens = sdk.tokenManager.getTokensSync();\n if (tokens.refreshToken) {\n return renewTokensWithRefresh(sdk, options || {}, tokens.refreshToken);\n }\n if (!tokens.accessToken && !tokens.idToken) {\n throw new AuthSdkError('renewTokens() was called but there is no existing token');\n }\n const accessToken = tokens.accessToken || {};\n const idToken = tokens.idToken || {};\n const scopes = accessToken.scopes || idToken.scopes;\n if (!scopes) {\n throw new AuthSdkError('renewTokens: invalid tokens: could not read scopes');\n }\n const authorizeUrl = accessToken.authorizeUrl || idToken.authorizeUrl;\n if (!authorizeUrl) {\n throw new AuthSdkError('renewTokens: invalid tokens: could not read authorizeUrl');\n }\n const userinfoUrl = accessToken.userinfoUrl || sdk.options.userinfoUrl;\n const issuer = idToken.issuer || sdk.options.issuer;\n // Get tokens using the SSO cookie\n options = Object.assign({\n scopes,\n authorizeUrl,\n userinfoUrl,\n issuer\n }, options);\n if (sdk.options.pkce) {\n options.responseType = 'code';\n }\n else {\n const { responseType } = getDefaultTokenParams(sdk);\n options.responseType = responseType;\n }\n return getWithoutPrompt(sdk, options)\n .then(res => res.tokens);\n });\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/* eslint-disable complexity */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { isFunction } from '../util';\nimport { AuthSdkError, OAuthError } from '../errors';\nimport { httpRequest } from '../http';\nimport { isAccessToken, isIDToken } from '../types';\nexport function getUserInfo(sdk, accessTokenObject, idTokenObject) {\n return __awaiter(this, void 0, void 0, function* () {\n // If token objects were not passed, attempt to read from the TokenManager\n if (!accessTokenObject) {\n accessTokenObject = (yield sdk.tokenManager.getTokens()).accessToken;\n }\n if (!idTokenObject) {\n idTokenObject = (yield sdk.tokenManager.getTokens()).idToken;\n }\n if (!accessTokenObject || !isAccessToken(accessTokenObject)) {\n return Promise.reject(new AuthSdkError('getUserInfo requires an access token object'));\n }\n if (!idTokenObject || !isIDToken(idTokenObject)) {\n return Promise.reject(new AuthSdkError('getUserInfo requires an ID token object'));\n }\n return httpRequest(sdk, {\n url: accessTokenObject.userinfoUrl,\n method: 'GET',\n accessToken: accessTokenObject.accessToken\n })\n .then(userInfo => {\n // Only return the userinfo response if subjects match to mitigate token substitution attacks\n if (userInfo.sub === idTokenObject.claims.sub) {\n return userInfo;\n }\n return Promise.reject(new AuthSdkError('getUserInfo request was rejected due to token mismatch'));\n })\n .catch(function (err) {\n if (err.xhr && (err.xhr.status === 401 || err.xhr.status === 403)) {\n var authenticateHeader;\n if (err.xhr.headers && isFunction(err.xhr.headers.get) && err.xhr.headers.get('WWW-Authenticate')) {\n authenticateHeader = err.xhr.headers.get('WWW-Authenticate');\n }\n else if (isFunction(err.xhr.getResponseHeader)) {\n authenticateHeader = err.xhr.getResponseHeader('WWW-Authenticate');\n }\n if (authenticateHeader) {\n var errorMatches = authenticateHeader.match(/error=\"(.*?)\"/) || [];\n var errorDescriptionMatches = authenticateHeader.match(/error_description=\"(.*?)\"/) || [];\n var error = errorMatches[1];\n var errorDescription = errorDescriptionMatches[1];\n if (error && errorDescription) {\n err = new OAuthError(error, errorDescription);\n }\n }\n }\n throw err;\n });\n });\n}\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 { AuthSdkError } from '../errors';\nimport { clone } from '../util';\nimport { getToken } from './getToken';\nimport { loadPopup } from './util';\nexport function getWithPopup(sdk, options) {\n if (arguments.length > 2) {\n return Promise.reject(new AuthSdkError('As of version 3.0, \"getWithPopup\" takes only a single set of options'));\n }\n // some browsers (safari, firefox) block popup if it's initialed from an async process\n // here we create the popup window immediately after user interaction\n // then redirect to the /authorize endpoint when the requestUrl is available\n const popupWindow = loadPopup('/', options);\n options = clone(options) || {};\n Object.assign(options, {\n display: 'popup',\n responseMode: 'okta_post_message',\n popupWindow\n });\n return getToken(sdk, options);\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/* 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 { AuthSdkError } from '../errors';\nimport { clone } from '../util';\nimport { prepareTokenParams, createOAuthMeta } from './util';\nimport { buildAuthorizeParams } from './endpoints/authorize';\nexport function getWithRedirect(sdk, options) {\n return __awaiter(this, arguments, void 0, function* () {\n if (arguments.length > 2) {\n return Promise.reject(new AuthSdkError('As of version 3.0, \"getWithRedirect\" takes only a single set of options'));\n }\n options = clone(options) || {};\n const tokenParams = yield prepareTokenParams(sdk, options);\n const meta = createOAuthMeta(sdk, tokenParams);\n const requestUrl = meta.urls.authorizeUrl + buildAuthorizeParams(tokenParams);\n sdk.transactionManager.save(meta, { oauth: true });\n sdk.token.getWithRedirect._setLocation(requestUrl);\n });\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/* eslint-disable complexity */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { AuthSdkError } from '../errors';\nimport { isInteractionRequiredError, urlParamsToObject } from './util';\nimport { isString } from '../util';\nimport { handleOAuthResponse } from './handleOAuthResponse';\nfunction removeHash(sdk) {\n var nativeHistory = sdk.token.parseFromUrl._getHistory();\n var nativeDoc = sdk.token.parseFromUrl._getDocument();\n var nativeLoc = sdk.token.parseFromUrl._getLocation();\n if (nativeHistory && nativeHistory.replaceState) {\n nativeHistory.replaceState(null, nativeDoc.title, nativeLoc.pathname + nativeLoc.search);\n }\n else {\n nativeLoc.hash = '';\n }\n}\nfunction removeSearch(sdk) {\n var nativeHistory = sdk.token.parseFromUrl._getHistory();\n var nativeDoc = sdk.token.parseFromUrl._getDocument();\n var nativeLoc = sdk.token.parseFromUrl._getLocation();\n if (nativeHistory && nativeHistory.replaceState) {\n nativeHistory.replaceState(null, nativeDoc.title, nativeLoc.pathname + nativeLoc.hash);\n }\n else {\n nativeLoc.search = '';\n }\n}\nexport function getResponseMode(sdk) {\n // https://openid.net/specs/openid-connect-core-1_0.html#Authentication\n var defaultResponseMode = sdk.options.pkce ? 'query' : 'fragment';\n var responseMode = sdk.options.responseMode || defaultResponseMode;\n return responseMode;\n}\nexport function parseOAuthResponseFromUrl(sdk, options) {\n options = options || {};\n if (isString(options)) {\n options = { url: options };\n }\n else {\n options = options;\n }\n var url = options.url;\n var responseMode = options.responseMode || getResponseMode(sdk);\n var nativeLoc = sdk.token.parseFromUrl._getLocation();\n var paramStr;\n if (responseMode === 'query') {\n paramStr = url ? url.substring(url.indexOf('?')) : nativeLoc.search;\n }\n else {\n paramStr = url ? url.substring(url.indexOf('#')) : nativeLoc.hash;\n }\n if (!paramStr) {\n throw new AuthSdkError('Unable to parse a token from the url');\n }\n return urlParamsToObject(paramStr);\n}\nexport function cleanOAuthResponseFromUrl(sdk, options) {\n // Clean hash or search from the url\n const responseMode = options.responseMode || getResponseMode(sdk);\n responseMode === 'query' ? removeSearch(sdk) : removeHash(sdk);\n}\nexport function parseFromUrl(sdk, options) {\n return __awaiter(this, void 0, void 0, function* () {\n options = options || {};\n if (isString(options)) {\n options = { url: options };\n }\n else {\n options = options;\n }\n const res = parseOAuthResponseFromUrl(sdk, options);\n const state = res.state;\n const oauthParams = sdk.transactionManager.load({\n oauth: true,\n pkce: sdk.options.pkce,\n state\n });\n if (!oauthParams) {\n return Promise.reject(new AuthSdkError('Unable to retrieve OAuth redirect params from storage'));\n }\n const urls = oauthParams.urls;\n delete oauthParams.urls;\n if (!options.url) {\n // Clean hash or search from the url\n cleanOAuthResponseFromUrl(sdk, options);\n }\n return handleOAuthResponse(sdk, oauthParams, res, urls)\n .catch(err => {\n if (!isInteractionRequiredError(err)) {\n sdk.transactionManager.clear({\n state\n });\n }\n throw err;\n })\n .then(res => {\n sdk.transactionManager.clear({\n state\n });\n return res;\n });\n });\n}\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 */\nimport { base64UrlToBuffer, bufferToBase64Url } from './base64';\n// Get known credentials from list of enrolled authenticators\nconst getEnrolledCredentials = (authenticatorEnrollments = []) => {\n const credentials = [];\n authenticatorEnrollments.forEach((enrollement) => {\n if (enrollement.key === 'webauthn') {\n credentials.push({\n type: 'public-key',\n id: base64UrlToBuffer(enrollement.credentialId),\n });\n }\n });\n return credentials;\n};\n// Build options for navigator.credentials.create\n// https://developer.mozilla.org/en-US/docs/Web/API/CredentialsContainer/create\nexport const buildCredentialCreationOptions = (activationData, authenticatorEnrollments) => {\n return {\n publicKey: {\n rp: activationData.rp,\n user: {\n id: base64UrlToBuffer(activationData.user.id),\n name: activationData.user.name,\n displayName: activationData.user.displayName\n },\n challenge: base64UrlToBuffer(activationData.challenge),\n pubKeyCredParams: activationData.pubKeyCredParams,\n attestation: activationData.attestation,\n authenticatorSelection: activationData.authenticatorSelection,\n excludeCredentials: getEnrolledCredentials(authenticatorEnrollments),\n }\n };\n};\n// Build options for navigator.credentials.get\n// https://developer.mozilla.org/en-US/docs/Web/API/CredentialsContainer/get\nexport const buildCredentialRequestOptions = (challengeData, authenticatorEnrollments) => {\n return {\n publicKey: {\n challenge: base64UrlToBuffer(challengeData.challenge),\n userVerification: challengeData.userVerification,\n allowCredentials: getEnrolledCredentials(authenticatorEnrollments),\n }\n };\n};\n// Build attestation for webauthn enroll\n// https://developer.mozilla.org/en-US/docs/Web/API/AuthenticatorAttestationResponse\nexport const getAttestation = (credential) => {\n const response = credential.response;\n const id = credential.id;\n const clientData = bufferToBase64Url(response.clientDataJSON);\n const attestation = bufferToBase64Url(response.attestationObject);\n return {\n id,\n clientData,\n attestation\n };\n};\n// Build assertion for webauthn verification\n// https://developer.mozilla.org/en-US/docs/Web/API/AuthenticatorAssertionResponse\nexport const getAssertion = (credential) => {\n const response = credential.response;\n const id = credential.id;\n const clientData = bufferToBase64Url(response.clientDataJSON);\n const authenticatorData = bufferToBase64Url(response.authenticatorData);\n const signatureData = bufferToBase64Url(response.signature);\n return {\n id,\n clientData,\n authenticatorData,\n signatureData\n };\n};\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/* global window */\nexport function getNativeConsole() {\n if (typeof window !== 'undefined') {\n return window.console;\n }\n else if (typeof console !== 'undefined') {\n return console;\n }\n else {\n return undefined;\n }\n}\nexport function getConsole() {\n var nativeConsole = getNativeConsole();\n if (nativeConsole && nativeConsole.log) {\n return nativeConsole;\n }\n return {\n log: function () { },\n warn: function () { },\n group: function () { },\n groupEnd: function () { }\n };\n}\nexport function warn(text) {\n /* eslint-disable no-console */\n getConsole().warn('[okta-auth-sdk] WARN: ' + text);\n /* eslint-enable */\n}\nexport function deprecate(text) {\n /* eslint-disable no-console */\n getConsole().warn('[okta-auth-sdk] DEPRECATION: ' + text);\n /* eslint-enable */\n}\nexport function deprecateWrap(text, fn) {\n return function () {\n deprecate(text);\n return fn.apply(null, arguments);\n };\n}\n","/* 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 AuthSdkError from '../errors/AuthSdkError';\nimport { warn } from '../util';\n// eslint-disable-next-line import/no-commonjs\nconst Cookies = require('js-cookie');\n// Building this as an object allows us to mock the functions in our tests\nvar storageUtil = {\n // These are shimmed in `OktaAuthBase.ts`\n getHttpCache() {\n return null;\n },\n getPKCEStorage() {\n return null;\n },\n // IE11 bug that Microsoft doesn't plan to fix\n // https://connect.microsoft.com/IE/Feedback/Details/1496040\n browserHasLocalStorage: function () {\n try {\n var storage = storageUtil.getLocalStorage();\n return storageUtil.testStorage(storage);\n }\n catch (e) {\n return false;\n }\n },\n browserHasSessionStorage: function () {\n try {\n var storage = storageUtil.getSessionStorage();\n return storageUtil.testStorage(storage);\n }\n catch (e) {\n return false;\n }\n },\n testStorageType: function (storageType) {\n var supported = false;\n switch (storageType) {\n case 'sessionStorage':\n supported = storageUtil.browserHasSessionStorage();\n break;\n case 'localStorage':\n supported = storageUtil.browserHasLocalStorage();\n break;\n case 'cookie':\n case 'memory':\n supported = true;\n break;\n default:\n supported = false;\n break;\n }\n return supported;\n },\n getStorageByType: function (storageType, options) {\n let storageProvider;\n switch (storageType) {\n case 'sessionStorage':\n storageProvider = storageUtil.getSessionStorage();\n break;\n case 'localStorage':\n storageProvider = storageUtil.getLocalStorage();\n break;\n case 'cookie':\n storageProvider = storageUtil.getCookieStorage(options);\n break;\n case 'memory':\n storageProvider = storageUtil.getInMemoryStorage();\n break;\n default:\n throw new AuthSdkError(`Unrecognized storage option: ${storageType}`);\n break;\n }\n return storageProvider;\n },\n findStorageType: function (types) {\n let curType;\n let nextType;\n types = types.slice(); // copy array\n curType = types.shift();\n nextType = types.length ? types[0] : null;\n if (!nextType) {\n return curType;\n }\n if (storageUtil.testStorageType(curType)) {\n return curType;\n }\n // preferred type was unsupported.\n warn(`This browser doesn't support ${curType}. Switching to ${nextType}.`);\n // fallback to the next type. this is a recursive call\n return storageUtil.findStorageType(types);\n },\n getLocalStorage: function () {\n return localStorage;\n },\n getSessionStorage: function () {\n return sessionStorage;\n },\n // Provides webStorage-like interface for cookies\n getCookieStorage: function (options) {\n const secure = options.secure;\n const sameSite = options.sameSite;\n const sessionCookie = options.sessionCookie;\n if (typeof secure === 'undefined' || typeof sameSite === 'undefined') {\n throw new AuthSdkError('getCookieStorage: \"secure\" and \"sameSite\" options must be provided');\n }\n const storage = {\n getItem: storageUtil.storage.get,\n setItem: function (key, value, expiresAt = '2200-01-01T00:00:00.000Z') {\n // By defauilt, cookie shouldn't expire\n expiresAt = (sessionCookie ? null : expiresAt);\n storageUtil.storage.set(key, value, expiresAt, {\n secure: secure,\n sameSite: sameSite,\n });\n },\n removeItem: function (key) {\n storageUtil.storage.delete(key);\n }\n };\n if (!options.useSeparateCookies) {\n return storage;\n }\n // Tokens are stored separately because cookies have size limits.\n // Can only be used when storing an object value. Object properties will be saved to separate cookies.\n // Each property of the object must also be an object.\n return {\n getItem: function (key) {\n var data = storage.getItem(); // read all cookies\n var value = {};\n Object.keys(data).forEach(k => {\n if (k.indexOf(key) === 0) { // filter out unrelated cookies\n value[k.replace(`${key}_`, '')] = JSON.parse(data[k]); // populate with cookie data\n }\n });\n return JSON.stringify(value);\n },\n setItem: function (key, value) {\n var existingValues = JSON.parse(this.getItem(key));\n value = JSON.parse(value);\n // Set key-value pairs from input to cookies\n Object.keys(value).forEach(k => {\n var storageKey = key + '_' + k;\n var valueToStore = JSON.stringify(value[k]);\n storage.setItem(storageKey, valueToStore);\n delete existingValues[k];\n });\n // Delete unmatched keys from existing cookies\n Object.keys(existingValues).forEach(k => {\n storage.removeItem(key + '_' + k);\n });\n },\n removeItem: function (key) {\n var existingValues = JSON.parse(this.getItem(key));\n Object.keys(existingValues).forEach(k => {\n storage.removeItem(key + '_' + k);\n });\n }\n };\n },\n // Provides an in-memory solution\n inMemoryStore: {},\n getInMemoryStorage: function () {\n return {\n getItem: (key) => {\n return this.inMemoryStore[key];\n },\n setItem: (key, value) => {\n this.inMemoryStore[key] = value;\n }\n };\n },\n testStorage: function (storage) {\n var key = 'okta-test-storage';\n try {\n storage.setItem(key, key);\n storage.removeItem(key);\n return true;\n }\n catch (e) {\n return false;\n }\n },\n storage: {\n set: function (name, value, expiresAt, options) {\n const { sameSite, secure } = options;\n if (typeof secure === 'undefined' || typeof sameSite === 'undefined') {\n throw new AuthSdkError('storage.set: \"secure\" and \"sameSite\" options must be provided');\n }\n var cookieOptions = {\n path: options.path || '/',\n secure,\n sameSite\n };\n // eslint-disable-next-line no-extra-boolean-cast\n if (!!(Date.parse(expiresAt))) {\n // Expires value can be converted to a Date object.\n //\n // If the 'expiresAt' value is not provided, or the value cannot be\n // parsed as a Date object, the cookie will set as a session cookie.\n cookieOptions.expires = new Date(expiresAt);\n }\n Cookies.set(name, value, cookieOptions);\n return storageUtil.storage.get(name);\n },\n get: function (name) {\n return Cookies.get(name);\n },\n delete: function (name) {\n return Cookies.remove(name, { path: '/' });\n }\n }\n};\nexport default storageUtil;\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 */\nexport default class SdkClock {\n constructor(localOffset) {\n // Calculated local clock offset from server time (in milliseconds). Can be positive or negative.\n this.localOffset = parseInt(localOffset || 0);\n }\n // factory method. Create an instance of a clock from current context.\n static create( /* sdk, options */) {\n // TODO: calculate localOffset\n var localOffset = 0;\n return new SdkClock(localOffset);\n }\n // Return the current time (in seconds)\n now() {\n var now = (Date.now() + this.localOffset) / 1000;\n return now;\n }\n}\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/* global window */\nimport { EVENT_EXPIRED } from '../TokenManager';\nimport { AuthSdkError } from '../errors';\nimport { isBrowser } from '../features';\nfunction shouldThrottleRenew(renewTimeQueue) {\n let res = false;\n renewTimeQueue.push(Date.now());\n if (renewTimeQueue.length >= 10) {\n // get and remove first item from queue\n const firstTime = renewTimeQueue.shift();\n const lastTime = renewTimeQueue[renewTimeQueue.length - 1];\n res = lastTime - firstTime < 30 * 1000;\n }\n return res;\n}\nexport class TokenService {\n constructor(tokenManager, options = {}) {\n this.tokenManager = tokenManager;\n this.options = options;\n this.storageListener = undefined;\n this.onTokenExpiredHandler = undefined;\n }\n start() {\n const renewTimeQueue = [];\n this.onTokenExpiredHandler = (key) => {\n if (this.options.autoRenew) {\n if (shouldThrottleRenew(renewTimeQueue)) {\n const error = new AuthSdkError('Too many token renew requests');\n this.tokenManager.emitError(error);\n }\n else {\n this.tokenManager.renew(key).catch(() => { }); // Renew errors will emit an \"error\" event \n }\n }\n else if (this.options.autoRemove) {\n this.tokenManager.remove(key);\n }\n };\n this.tokenManager.on(EVENT_EXPIRED, this.onTokenExpiredHandler);\n this.tokenManager.setExpireEventTimeoutAll();\n if (this.options.syncStorage && isBrowser()) {\n // Sync authState cross multiple tabs when localStorage is used as the storageProvider\n // A StorageEvent is sent to a window when a storage area it has access to is changed \n // within the context of another document.\n // https://developer.mozilla.org/en-US/docs/Web/API/StorageEvent\n this.storageListener = ({ key, newValue, oldValue }) => {\n const handleCrossTabsStorageChange = () => {\n this.tokenManager.resetExpireEventTimeoutAll();\n this.tokenManager.emitEventsForCrossTabsStorageUpdate(newValue, oldValue);\n };\n // Skip if:\n // not from localStorage.clear (event.key is null)\n // event.key is not the storageKey\n // oldValue === newValue\n if (key && (key !== this.options.storageKey || newValue === oldValue)) {\n return;\n }\n // LocalStorage cross tabs update is not synced in IE, set a 1s timer by default to read latest value\n // https://stackoverflow.com/questions/24077117/localstorage-in-win8-1-ie11-does-not-synchronize\n this.syncTimeout = setTimeout(() => handleCrossTabsStorageChange(), this.options._storageEventDelay);\n };\n window.addEventListener('storage', this.storageListener);\n }\n }\n stop() {\n this.tokenManager.clearExpireEventTimeoutAll();\n this.tokenManager.off(EVENT_EXPIRED, this.onTokenExpiredHandler);\n if (this.options.syncStorage && isBrowser()) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n window.removeEventListener('storage', this.storageListener);\n clearTimeout(this.syncTimeout);\n }\n }\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\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 { removeNils, clone } from './util';\nimport { AuthSdkError } from './errors';\nimport { validateToken } from './oidc/util';\nimport { isLocalhost, isIE11OrLess } from './features';\nimport SdkClock from './clock';\nimport { isIDToken, isAccessToken, isRefreshToken } from './types';\nimport { REFRESH_TOKEN_STORAGE_KEY, TOKEN_STORAGE_NAME } from './constants';\nimport { TokenService } from './services/TokenService';\nconst DEFAULT_OPTIONS = {\n autoRenew: true,\n autoRemove: true,\n clearPendingRemoveTokens: true,\n storage: undefined,\n expireEarlySeconds: 30,\n storageKey: TOKEN_STORAGE_NAME,\n syncStorage: true,\n _storageEventDelay: 0\n};\nexport const EVENT_EXPIRED = 'expired';\nexport const EVENT_RENEWED = 'renewed';\nexport const EVENT_ADDED = 'added';\nexport const EVENT_REMOVED = 'removed';\nexport const EVENT_ERROR = 'error';\nfunction defaultState() {\n return {\n expireTimeouts: {},\n renewPromise: null\n };\n}\nexport class TokenManager {\n constructor(sdk, options = {}) {\n this.sdk = sdk;\n this.emitter = sdk.emitter;\n if (!this.emitter) {\n throw new AuthSdkError('Emitter should be initialized before TokenManager');\n }\n this.service = null;\n options = Object.assign({}, DEFAULT_OPTIONS, removeNils(options));\n if (isIE11OrLess()) {\n options._storageEventDelay = options._storageEventDelay || 1000;\n }\n if (!isLocalhost()) {\n options.expireEarlySeconds = DEFAULT_OPTIONS.expireEarlySeconds;\n }\n this.options = options;\n const storageOptions = removeNils({\n storageKey: options.storageKey,\n secure: options.secure,\n });\n if (typeof options.storage === 'object') {\n // A custom storage provider must implement getItem(key) and setItem(key, val)\n storageOptions.storageProvider = options.storage;\n }\n else if (options.storage) {\n storageOptions.storageType = options.storage;\n }\n this.storage = sdk.storageManager.getTokenStorage(Object.assign(Object.assign({}, storageOptions), { useSeparateCookies: true }));\n this.clock = SdkClock.create( /* sdk, options */);\n this.state = defaultState();\n this.on = this.emitter.on.bind(this.emitter);\n this.off = this.emitter.off.bind(this.emitter);\n }\n start() {\n if (this.service) {\n this.stop();\n }\n if (this.options.clearPendingRemoveTokens) {\n this.clearPendingRemoveTokens();\n }\n this.service = new TokenService(this, this.getOptions());\n this.service.start();\n }\n stop() {\n if (this.service) {\n this.service.stop();\n this.service = null;\n }\n }\n getOptions() {\n return clone(this.options);\n }\n getExpireTime(token) {\n const expireEarlySeconds = this.options.expireEarlySeconds || 0;\n var expireTime = token.expiresAt - expireEarlySeconds;\n return expireTime;\n }\n hasExpired(token) {\n var expireTime = this.getExpireTime(token);\n return expireTime <= this.clock.now();\n }\n emitExpired(key, token) {\n this.emitter.emit(EVENT_EXPIRED, key, token);\n }\n emitRenewed(key, freshToken, oldToken) {\n this.emitter.emit(EVENT_RENEWED, key, freshToken, oldToken);\n }\n emitAdded(key, token) {\n this.emitter.emit(EVENT_ADDED, key, token);\n }\n emitRemoved(key, token) {\n this.emitter.emit(EVENT_REMOVED, key, token);\n }\n emitError(error) {\n this.emitter.emit(EVENT_ERROR, error);\n }\n emitEventsForCrossTabsStorageUpdate(newValue, oldValue) {\n const oldTokens = this.getTokensFromStorageValue(oldValue);\n const newTokens = this.getTokensFromStorageValue(newValue);\n Object.keys(newTokens).forEach(key => {\n const oldToken = oldTokens[key];\n const newToken = newTokens[key];\n if (JSON.stringify(oldToken) !== JSON.stringify(newToken)) {\n this.emitAdded(key, newToken);\n }\n });\n Object.keys(oldTokens).forEach(key => {\n const oldToken = oldTokens[key];\n const newToken = newTokens[key];\n if (!newToken) {\n this.emitRemoved(key, oldToken);\n }\n });\n }\n clearExpireEventTimeout(key) {\n clearTimeout(this.state.expireTimeouts[key]);\n delete this.state.expireTimeouts[key];\n // Remove the renew promise (if it exists)\n this.state.renewPromise = null;\n }\n clearExpireEventTimeoutAll() {\n var expireTimeouts = this.state.expireTimeouts;\n for (var key in expireTimeouts) {\n if (!Object.prototype.hasOwnProperty.call(expireTimeouts, key)) {\n continue;\n }\n this.clearExpireEventTimeout(key);\n }\n }\n setExpireEventTimeout(key, token) {\n if (isRefreshToken(token)) {\n return;\n }\n var expireTime = this.getExpireTime(token);\n var expireEventWait = Math.max(expireTime - this.clock.now(), 0) * 1000;\n // Clear any existing timeout\n this.clearExpireEventTimeout(key);\n var expireEventTimeout = setTimeout(() => {\n this.emitExpired(key, token);\n }, expireEventWait);\n // Add a new timeout\n this.state.expireTimeouts[key] = expireEventTimeout;\n }\n setExpireEventTimeoutAll() {\n var tokenStorage = this.storage.getStorage();\n for (var key in tokenStorage) {\n if (!Object.prototype.hasOwnProperty.call(tokenStorage, key)) {\n continue;\n }\n var token = tokenStorage[key];\n this.setExpireEventTimeout(key, token);\n }\n }\n // reset timeouts to setup autoRenew for tokens from other document context (tabs)\n resetExpireEventTimeoutAll() {\n this.clearExpireEventTimeoutAll();\n this.setExpireEventTimeoutAll();\n }\n add(key, token) {\n var tokenStorage = this.storage.getStorage();\n validateToken(token);\n tokenStorage[key] = token;\n this.storage.setStorage(tokenStorage);\n this.emitAdded(key, token);\n this.setExpireEventTimeout(key, token);\n }\n getSync(key) {\n var tokenStorage = this.storage.getStorage();\n return tokenStorage[key];\n }\n get(key) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.getSync(key);\n });\n }\n getTokensSync() {\n const tokens = {};\n const tokenStorage = this.storage.getStorage();\n Object.keys(tokenStorage).forEach(key => {\n const token = tokenStorage[key];\n if (isAccessToken(token)) {\n tokens.accessToken = token;\n }\n else if (isIDToken(token)) {\n tokens.idToken = token;\n }\n else if (isRefreshToken(token)) {\n tokens.refreshToken = token;\n }\n });\n return tokens;\n }\n getTokens() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.getTokensSync();\n });\n }\n getStorageKeyByType(type) {\n const tokenStorage = this.storage.getStorage();\n const key = Object.keys(tokenStorage).filter(key => {\n const token = tokenStorage[key];\n return (isAccessToken(token) && type === 'accessToken')\n || (isIDToken(token) && type === 'idToken')\n || (isRefreshToken(token) && type === 'refreshToken');\n })[0];\n return key;\n }\n getTokenType(token) {\n if (isAccessToken(token)) {\n return 'accessToken';\n }\n if (isIDToken(token)) {\n return 'idToken';\n }\n if (isRefreshToken(token)) {\n return 'refreshToken';\n }\n throw new AuthSdkError('Unknown token type');\n }\n setTokens(tokens, \n // TODO: callbacks can be removed in the next major version OKTA-407224\n accessTokenCb, idTokenCb, refreshTokenCb) {\n const handleTokenCallback = (key, token) => {\n const type = this.getTokenType(token);\n if (type === 'accessToken') {\n accessTokenCb && accessTokenCb(key, token);\n }\n else if (type === 'idToken') {\n idTokenCb && idTokenCb(key, token);\n }\n else if (type === 'refreshToken') {\n refreshTokenCb && refreshTokenCb(key, token);\n }\n };\n const handleAdded = (key, token) => {\n this.emitAdded(key, token);\n this.setExpireEventTimeout(key, token);\n handleTokenCallback(key, token);\n };\n const handleRenewed = (key, token, oldToken) => {\n this.emitRenewed(key, token, oldToken);\n this.clearExpireEventTimeout(key);\n this.setExpireEventTimeout(key, token);\n handleTokenCallback(key, token);\n };\n const handleRemoved = (key, token) => {\n this.clearExpireEventTimeout(key);\n this.emitRemoved(key, token);\n handleTokenCallback(key, token);\n };\n const types = ['idToken', 'accessToken', 'refreshToken'];\n const existingTokens = this.getTokensSync();\n // valid tokens\n types.forEach((type) => {\n const token = tokens[type];\n if (token) {\n validateToken(token, type);\n }\n });\n // add token to storage\n const storage = types.reduce((storage, type) => {\n const token = tokens[type];\n if (token) {\n const storageKey = this.getStorageKeyByType(type) || type;\n storage[storageKey] = token;\n }\n return storage;\n }, {});\n this.storage.setStorage(storage);\n // emit event and start expiration timer\n types.forEach(type => {\n const newToken = tokens[type];\n const existingToken = existingTokens[type];\n const storageKey = this.getStorageKeyByType(type) || type;\n if (newToken && existingToken) { // renew\n // call handleRemoved first, since it clears timers\n handleRemoved(storageKey, existingToken);\n handleAdded(storageKey, newToken);\n handleRenewed(storageKey, newToken, existingToken);\n }\n else if (newToken) { // add\n handleAdded(storageKey, newToken);\n }\n else if (existingToken) { //remove\n handleRemoved(storageKey, existingToken);\n }\n });\n }\n remove(key) {\n // Clear any listener for this token\n this.clearExpireEventTimeout(key);\n var tokenStorage = this.storage.getStorage();\n var removedToken = tokenStorage[key];\n delete tokenStorage[key];\n this.storage.setStorage(tokenStorage);\n this.emitRemoved(key, removedToken);\n }\n // TODO: this methods is redundant and can be removed in the next major version OKTA-407224\n renewToken(token) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n return (_a = this.sdk.token) === null || _a === void 0 ? void 0 : _a.renew(token);\n });\n }\n // TODO: this methods is redundant and can be removed in the next major version OKTA-407224\n validateToken(token) {\n return validateToken(token);\n }\n // TODO: renew method should take no param, change in the next major version OKTA-407224\n renew(key) {\n // Multiple callers may receive the same promise. They will all resolve or reject from the same request.\n if (this.state.renewPromise) {\n return this.state.renewPromise;\n }\n try {\n var token = this.getSync(key);\n if (!token) {\n throw new AuthSdkError('The tokenManager has no token for the key: ' + key);\n }\n }\n catch (e) {\n return Promise.reject(e);\n }\n // Remove existing autoRenew timeout\n this.clearExpireEventTimeout(key);\n // A refresh token means a replace instead of renewal\n // Store the renew promise state, to avoid renewing again\n this.state.renewPromise = this.sdk.token.renewTokens()\n .then(tokens => {\n this.setTokens(tokens);\n // resolve token based on the key\n const tokenType = this.getTokenType(token);\n return tokens[tokenType];\n })\n .catch(err => {\n // If renew fails, remove token from storage and emit error\n this.remove(key);\n err.tokenKey = key;\n this.emitError(err);\n throw err;\n })\n .finally(() => {\n // Remove existing promise key\n this.state.renewPromise = null;\n });\n return this.state.renewPromise;\n }\n clear() {\n this.clearExpireEventTimeoutAll();\n this.storage.clearStorage();\n }\n clearPendingRemoveTokens() {\n const tokens = this.getTokensSync();\n Object.keys(tokens).forEach(key => {\n if (tokens[key].pendingRemove) {\n this.remove(key);\n }\n });\n }\n getTokensFromStorageValue(value) {\n let tokens;\n try {\n tokens = JSON.parse(value) || {};\n }\n catch (e) {\n tokens = {};\n }\n return tokens;\n }\n updateRefreshToken(token) {\n const key = this.getStorageKeyByType('refreshToken') || REFRESH_TOKEN_STORAGE_KEY;\n // do not emit any event\n var tokenStorage = this.storage.getStorage();\n validateToken(token);\n tokenStorage[key] = token;\n this.storage.setStorage(tokenStorage);\n }\n addPendingRemoveFlags() {\n const tokens = this.getTokensSync();\n Object.keys(tokens).forEach(key => {\n tokens[key].pendingRemove = true;\n });\n this.setTokens(tokens);\n }\n}\n","/*!\n * 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// Implements a queue for synchronous or asynchronous methods\n// Methods will be wrapped in a promise and execute sequentially\n// This can be used to prevent concurrent calls to a single method or a set of methods\nimport { isPromise, warn } from './util';\nclass PromiseQueue {\n constructor() {\n this.queue = [];\n this.running = false;\n }\n // Returns a promise\n // If the method is synchronous, it will resolve when the method completes\n // If the method returns a promise, it will resolve (or reject) with the value from the method's promise\n push(method, thisObject, ...args) {\n return new Promise((resolve, reject) => {\n if (this.queue.length > 0) {\n warn('Async method is being called but another async method is already running. ' +\n 'The new method will be delayed until the previous method completes.');\n }\n this.queue.push({\n method,\n thisObject,\n args,\n resolve,\n reject\n });\n this.run();\n });\n }\n run() {\n if (this.running) {\n return;\n }\n if (this.queue.length === 0) {\n return;\n }\n this.running = true;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n var queueItem = this.queue.shift();\n var res = queueItem.method.apply(queueItem.thisObject, queueItem.args);\n if (isPromise(res)) {\n res.then(queueItem.resolve, queueItem.reject).finally(() => {\n this.running = false;\n this.run();\n });\n }\n else {\n queueItem.resolve(res);\n this.running = false;\n this.run();\n }\n }\n}\nexport default PromiseQueue;\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 */\nimport { AuthSdkError } from '../errors';\nimport { isFingerprintSupported } from '../features';\nimport { addListener, removeListener } from '../oidc';\nexport default function fingerprint(sdk, options) {\n options = options || {};\n if (!isFingerprintSupported()) {\n return Promise.reject(new AuthSdkError('Fingerprinting is not supported on this device'));\n }\n var timeout;\n var iframe;\n var listener;\n var promise = new Promise(function (resolve, reject) {\n iframe = document.createElement('iframe');\n iframe.style.display = 'none';\n // eslint-disable-next-line complexity\n listener = function listener(e) {\n if (!e || !e.data || e.origin !== sdk.getIssuerOrigin()) {\n return;\n }\n try {\n var msg = JSON.parse(e.data);\n }\n catch (err) {\n // iframe messages should all be parsable\n // skip not parsable messages come from other sources in same origin (browser extensions)\n // TODO: add namespace flag in okta-core to distinguish messages that come from other sources\n return;\n }\n if (!msg) {\n return;\n }\n if (msg.type === 'FingerprintAvailable') {\n return resolve(msg.fingerprint);\n }\n if (msg.type === 'FingerprintServiceReady') {\n e.source.postMessage(JSON.stringify({\n type: 'GetFingerprint'\n }), e.origin);\n }\n };\n addListener(window, 'message', listener);\n iframe.src = sdk.getIssuerOrigin() + '/auth/services/devicefingerprint';\n document.body.appendChild(iframe);\n timeout = setTimeout(function () {\n reject(new AuthSdkError('Fingerprinting timed out'));\n }, (options === null || options === void 0 ? void 0 : options.timeout) || 15000);\n });\n return promise.finally(function () {\n clearTimeout(timeout);\n removeListener(window, 'message', listener);\n if (document.body.contains(iframe)) {\n iframe.parentElement.removeChild(iframe);\n }\n });\n}\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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { AuthSdkError } from './errors';\nimport { getConsole } from './util';\nimport { EVENT_ADDED, EVENT_REMOVED } from './TokenManager';\n// eslint-disable-next-line import/no-commonjs\nconst PCancelable = require('p-cancelable');\nexport const INITIAL_AUTH_STATE = null;\nconst DEFAULT_PENDING = {\n updateAuthStatePromise: null,\n canceledTimes: 0\n};\nconst EVENT_AUTH_STATE_CHANGE = 'authStateChange';\nconst MAX_PROMISE_CANCEL_TIMES = 10;\n// only compare first level of authState\nconst isSameAuthState = (prevState, state) => {\n // initial state is null\n if (!prevState) {\n return false;\n }\n return prevState.isAuthenticated === state.isAuthenticated\n && JSON.stringify(prevState.idToken) === JSON.stringify(state.idToken)\n && JSON.stringify(prevState.accessToken) === JSON.stringify(state.accessToken)\n && prevState.error === state.error;\n};\nexport class AuthStateManager {\n constructor(sdk) {\n if (!sdk.emitter) {\n throw new AuthSdkError('Emitter should be initialized before AuthStateManager');\n }\n this._sdk = sdk;\n this._pending = Object.assign({}, DEFAULT_PENDING);\n this._authState = INITIAL_AUTH_STATE;\n this._logOptions = {};\n this._prevAuthState = null;\n // Listen on tokenManager events to start updateState process\n // \"added\" event is emitted in both add and renew process\n // Only listen on \"added\" event to update auth state\n sdk.tokenManager.on(EVENT_ADDED, (key, token) => {\n this._setLogOptions({ event: EVENT_ADDED, key, token });\n this.updateAuthState();\n });\n sdk.tokenManager.on(EVENT_REMOVED, (key, token) => {\n this._setLogOptions({ event: EVENT_REMOVED, key, token });\n this.updateAuthState();\n });\n }\n _setLogOptions(options) {\n this._logOptions = options;\n }\n getAuthState() {\n return this._authState;\n }\n getPreviousAuthState() {\n return this._prevAuthState;\n }\n updateAuthState() {\n return __awaiter(this, void 0, void 0, function* () {\n const { transformAuthState, devMode } = this._sdk.options;\n const log = (status) => {\n const { event, key, token } = this._logOptions;\n getConsole().group(`OKTA-AUTH-JS:updateAuthState: Event:${event} Status:${status}`);\n getConsole().log(key, token);\n getConsole().log('Current authState', this._authState);\n getConsole().groupEnd();\n // clear log options after logging\n this._logOptions = {};\n };\n const emitAuthStateChange = (authState) => {\n if (isSameAuthState(this._authState, authState)) {\n devMode && log('unchanged');\n return;\n }\n this._prevAuthState = this._authState;\n this._authState = authState;\n // emit new authState object\n this._sdk.emitter.emit(EVENT_AUTH_STATE_CHANGE, Object.assign({}, authState));\n devMode && log('emitted');\n };\n const finalPromise = (origPromise) => {\n return this._pending.updateAuthStatePromise.then(() => {\n const curPromise = this._pending.updateAuthStatePromise;\n if (curPromise && curPromise !== origPromise) {\n return finalPromise(curPromise);\n }\n return this.getAuthState();\n });\n };\n if (this._pending.updateAuthStatePromise) {\n if (this._pending.canceledTimes >= MAX_PROMISE_CANCEL_TIMES) {\n // stop canceling then starting a new promise\n // let existing promise finish to prevent running into loops\n devMode && log('terminated');\n return finalPromise(this._pending.updateAuthStatePromise);\n }\n else {\n this._pending.updateAuthStatePromise.cancel();\n }\n }\n /* eslint-disable complexity */\n const cancelablePromise = new PCancelable((resolve, _, onCancel) => {\n onCancel.shouldReject = false;\n onCancel(() => {\n this._pending.updateAuthStatePromise = null;\n this._pending.canceledTimes = this._pending.canceledTimes + 1;\n devMode && log('canceled');\n });\n const emitAndResolve = (authState) => {\n if (cancelablePromise.isCanceled) {\n resolve();\n return;\n }\n // emit event and resolve promise \n emitAuthStateChange(authState);\n resolve();\n // clear pending states after resolve\n this._pending = Object.assign({}, DEFAULT_PENDING);\n };\n this._sdk.isAuthenticated()\n .then(() => {\n if (cancelablePromise.isCanceled) {\n resolve();\n return;\n }\n const { accessToken, idToken, refreshToken } = this._sdk.tokenManager.getTokensSync();\n const authState = {\n accessToken,\n idToken,\n refreshToken,\n isAuthenticated: !!(accessToken && idToken)\n };\n const promise = transformAuthState\n ? transformAuthState(this._sdk, authState)\n : Promise.resolve(authState);\n promise\n .then(authState => emitAndResolve(authState))\n .catch(error => emitAndResolve({\n accessToken,\n idToken,\n refreshToken,\n isAuthenticated: false,\n error\n }));\n });\n });\n /* eslint-enable complexity */\n this._pending.updateAuthStatePromise = cancelablePromise;\n return finalPromise(cancelablePromise);\n });\n }\n subscribe(handler) {\n this._sdk.emitter.on(EVENT_AUTH_STATE_CHANGE, handler);\n }\n unsubscribe(handler) {\n this._sdk.emitter.off(EVENT_AUTH_STATE_CHANGE, handler);\n }\n}\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 AuthSdkError from './errors/AuthSdkError';\n// formerly known as \"storageBuilder\". Represents an object saved under a key/name.\nexport default class SavedObject {\n constructor(storage, storageName) {\n if (!storage) {\n throw new AuthSdkError('\"storage\" is required');\n }\n if (typeof storageName !== 'string' || !storageName.length) {\n throw new AuthSdkError('\"storageName\" is required');\n }\n this.storageName = storageName;\n this.storageProvider = storage;\n }\n //\n // SimpleStorage interface\n //\n getItem(key) {\n return this.getStorage()[key];\n }\n setItem(key, value) {\n return this.updateStorage(key, value);\n }\n removeItem(key) {\n return this.clearStorage(key);\n }\n //\n // StorageProvider interface\n //\n getStorage() {\n var storageString = this.storageProvider.getItem(this.storageName);\n storageString = storageString || '{}';\n try {\n return JSON.parse(storageString);\n }\n catch (e) {\n throw new AuthSdkError('Unable to parse storage string: ' + this.storageName);\n }\n }\n setStorage(obj) {\n try {\n var storageString = obj ? JSON.stringify(obj) : '{}';\n this.storageProvider.setItem(this.storageName, storageString);\n }\n catch (e) {\n throw new AuthSdkError('Unable to set storage: ' + this.storageName);\n }\n }\n clearStorage(key) {\n if (!key) {\n // clear all\n if (this.storageProvider.removeItem) {\n this.storageProvider.removeItem(this.storageName);\n }\n else {\n this.setStorage();\n }\n return;\n }\n var obj = this.getStorage();\n delete obj[key];\n this.setStorage(obj);\n }\n updateStorage(key, value) {\n var obj = this.getStorage();\n obj[key] = value;\n this.setStorage(obj);\n }\n}\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 */\nimport { PKCE_STORAGE_NAME, TOKEN_STORAGE_NAME, TRANSACTION_STORAGE_NAME, SHARED_TRANSACTION_STORAGE_NAME, ORIGINAL_URI_STORAGE_NAME, IDX_RESPONSE_STORAGE_NAME, CACHE_STORAGE_NAME, REDIRECT_OAUTH_PARAMS_NAME } from './constants';\nimport SavedObject from './SavedObject';\nimport { isBrowser } from './features';\nimport { warn } from './util';\nimport { AuthSdkError } from './errors';\nfunction logServerSideMemoryStorageWarning(options) {\n if (!isBrowser() && !options.storageProvider && !options.storageProvider) {\n // eslint-disable-next-line max-len\n warn('Memory storage can only support simple single user use case on server side, please provide custom storageProvider or storageKey if advanced scenarios need to be supported.');\n }\n}\nexport class StorageManager {\n constructor(storageManagerOptions, cookieOptions, storageUtil) {\n this.storageManagerOptions = storageManagerOptions;\n this.cookieOptions = cookieOptions;\n this.storageUtil = storageUtil;\n }\n // combines defaults in order\n getOptionsForSection(sectionName, overrideOptions) {\n return Object.assign({}, this.storageManagerOptions[sectionName], overrideOptions);\n }\n // generic method to get any available storage provider\n // eslint-disable-next-line complexity\n getStorage(options) {\n options = Object.assign({}, this.cookieOptions, options); // set defaults\n if (options.storageProvider) {\n return options.storageProvider;\n }\n let { storageType, storageTypes } = options;\n if (storageType === 'sessionStorage') {\n options.sessionCookie = true;\n }\n // Maintain compatibility. Automatically fallback. May change in next major version. OKTA-362589\n if (storageType && storageTypes) {\n const idx = storageTypes.indexOf(storageType);\n if (idx >= 0) {\n storageTypes = storageTypes.slice(idx);\n storageType = undefined;\n }\n }\n if (!storageType) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n storageType = this.storageUtil.findStorageType(storageTypes);\n }\n return this.storageUtil.getStorageByType(storageType, options);\n }\n // stateToken, interactionHandle\n getTransactionStorage(options) {\n options = this.getOptionsForSection('transaction', options);\n logServerSideMemoryStorageWarning(options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || TRANSACTION_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n getSharedTansactionStorage(options) {\n options = this.getOptionsForSection('shared-transaction', options);\n logServerSideMemoryStorageWarning(options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || SHARED_TRANSACTION_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n getOriginalUriStorage(options) {\n options = this.getOptionsForSection('original-uri', options);\n logServerSideMemoryStorageWarning(options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || ORIGINAL_URI_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n // intermediate idxResponse\n // store for network traffic optimazation purpose\n // TODO: revisit in auth-js 6.0 epic JIRA: OKTA-399791\n getIdxResponseStorage(options) {\n let storage;\n if (isBrowser()) {\n // on browser side only use memory storage \n try {\n storage = this.storageUtil.getStorageByType('memory', options);\n }\n catch (e) {\n // it's ok to miss response storage\n // eslint-disable-next-line max-len\n warn('No response storage found, you may want to provide custom implementation for intermediate idx responses to optimize the network traffic');\n }\n }\n else {\n // on server side re-use transaction custom storage\n const transactionStorage = this.getTransactionStorage(options);\n if (transactionStorage) {\n storage = {\n getItem: (key) => {\n const transaction = transactionStorage.getStorage();\n if (transaction && transaction[key]) {\n return transaction[key];\n }\n return null;\n },\n setItem: (key, val) => {\n const transaction = transactionStorage.getStorage();\n if (!transaction) {\n throw new AuthSdkError('Transaction has been cleared, failed to save idxState');\n }\n transaction[key] = val;\n transactionStorage.setStorage(transaction);\n },\n removeItem: (key) => {\n const transaction = transactionStorage.getStorage();\n if (!transaction) {\n return;\n }\n delete transaction[key];\n transactionStorage.setStorage(transaction);\n }\n };\n }\n }\n if (!storage) {\n return null;\n }\n return new SavedObject(storage, IDX_RESPONSE_STORAGE_NAME);\n }\n // access_token, id_token, refresh_token\n getTokenStorage(options) {\n options = this.getOptionsForSection('token', options);\n logServerSideMemoryStorageWarning(options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || TOKEN_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n // caches well-known response, among others\n getHttpCache(options) {\n options = this.getOptionsForSection('cache', options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || CACHE_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n // Will be removed in an upcoming major version. OKTA-362589\n getLegacyPKCEStorage(options) {\n options = this.getOptionsForSection('legacy-pkce', options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || PKCE_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n getLegacyOAuthParamsStorage(options) {\n options = this.getOptionsForSection('legacy-oauth-params', options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || REDIRECT_OAUTH_PARAMS_NAME;\n return new SavedObject(storage, storageKey);\n }\n}\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 */\nexport function isRawIdxResponse(obj) {\n return obj && obj.version;\n}\nexport function isIdxResponse(obj) {\n return obj && isRawIdxResponse(obj.rawIdxState);\n}\n","import { isTransactionMeta } from '../types';\nconst MAX_ENTRY_LIFETIME = 30 * 60 * 1000; // 30 minutes\nexport function pruneSharedStorage(storageManager) {\n const sharedStorage = storageManager.getSharedTansactionStorage();\n const entries = sharedStorage.getStorage();\n Object.keys(entries).forEach(state => {\n const entry = entries[state];\n const age = Date.now() - entry.dateCreated;\n if (age > MAX_ENTRY_LIFETIME) {\n delete entries[state];\n }\n });\n sharedStorage.setStorage(entries);\n}\nexport function saveTransactionToSharedStorage(storageManager, state, meta) {\n const sharedStorage = storageManager.getSharedTansactionStorage();\n const entries = sharedStorage.getStorage();\n entries[state] = {\n dateCreated: Date.now(),\n transaction: meta\n };\n sharedStorage.setStorage(entries);\n}\nexport function loadTransactionFromSharedStorage(storageManager, state) {\n const sharedStorage = storageManager.getSharedTansactionStorage();\n const entries = sharedStorage.getStorage();\n const entry = entries[state];\n if (entry && entry.transaction && isTransactionMeta(entry.transaction)) {\n return entry.transaction;\n }\n return null;\n}\nexport function clearTransactionFromSharedStorage(storageManager, state) {\n const sharedStorage = storageManager.getSharedTansactionStorage();\n const entries = sharedStorage.getStorage();\n delete entries[state];\n sharedStorage.setStorage(entries);\n}\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 */\nimport { AuthSdkError } from './errors';\nimport { REDIRECT_NONCE_COOKIE_NAME, REDIRECT_OAUTH_PARAMS_NAME, REDIRECT_STATE_COOKIE_NAME } from './constants';\nimport { isTransactionMeta, isOAuthTransactionMeta } from './types';\nimport { isRawIdxResponse } from './idx/types/idx-js';\nimport { warn } from './util';\nimport { clearTransactionFromSharedStorage, loadTransactionFromSharedStorage, pruneSharedStorage, saveTransactionToSharedStorage } from './util/sharedStorage';\nexport default class TransactionManager {\n constructor(options) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.storageManager = options.storageManager;\n this.legacyWidgetSupport = options.legacyWidgetSupport === false ? false : true;\n this.saveNonceCookie = options.saveNonceCookie === false ? false : true;\n this.saveStateCookie = options.saveStateCookie === false ? false : true;\n this.saveParamsCookie = options.saveParamsCookie === false ? false : true;\n this.enableSharedStorage = options.enableSharedStorage === false ? false : true;\n this.saveLastResponse = options.saveLastResponse === false ? false : true;\n this.options = options;\n }\n // eslint-disable-next-line complexity\n clear(options = {}) {\n const transactionStorage = this.storageManager.getTransactionStorage();\n const meta = transactionStorage.getStorage();\n // Clear primary storage (by default, sessionStorage on browser)\n transactionStorage.clearStorage();\n // clear IDX response storage\n this.clearIdxResponse();\n // Usually we want to also clear shared storage unless another tab may need it to continue/complete a flow\n if (this.enableSharedStorage && options.clearSharedStorage !== false) {\n const state = options.state || (meta === null || meta === void 0 ? void 0 : meta.state);\n if (state) {\n clearTransactionFromSharedStorage(this.storageManager, state);\n }\n }\n if (!this.legacyWidgetSupport) {\n return;\n }\n // This is for compatibility with older versions of the signin widget. OKTA-304806\n if (options.oauth) {\n this.clearLegacyOAuthParams();\n }\n if (options.pkce) {\n this.clearLegacyPKCE();\n }\n }\n // eslint-disable-next-line complexity\n save(meta, options = {}) {\n // There must be only one transaction executing at a time.\n // Before saving, check to see if a transaction is already stored.\n // An existing transaction indicates a concurrency/race/overlap condition\n let storage = this.storageManager.getTransactionStorage();\n const obj = storage.getStorage();\n // oie process may need to update transaction in the middle of process for tracking purpose\n // false alarm might be caused \n // TODO: revisit for a better solution, https://oktainc.atlassian.net/browse/OKTA-430919\n if (isTransactionMeta(obj) && !options.muteWarning) {\n // eslint-disable-next-line max-len\n warn('a saved auth transaction exists in storage. This may indicate another auth flow is already in progress.');\n }\n storage.setStorage(meta);\n // Shared storage allows continuation of transaction in another tab\n if (this.enableSharedStorage && meta.state) {\n saveTransactionToSharedStorage(this.storageManager, meta.state, meta);\n }\n if (!options.oauth) {\n return;\n }\n // Legacy cookie storage\n if (this.saveNonceCookie || this.saveStateCookie || this.saveParamsCookie) {\n const cookieStorage = this.storageManager.getStorage({ storageType: 'cookie' });\n if (this.saveParamsCookie) {\n const { responseType, state, nonce, scopes, clientId, urls, ignoreSignature } = meta;\n const oauthParams = {\n responseType,\n state,\n nonce,\n scopes,\n clientId,\n urls,\n ignoreSignature\n };\n cookieStorage.setItem(REDIRECT_OAUTH_PARAMS_NAME, JSON.stringify(oauthParams), null);\n }\n if (this.saveNonceCookie && meta.nonce) {\n // Set nonce cookie for servers to validate nonce in id_token\n cookieStorage.setItem(REDIRECT_NONCE_COOKIE_NAME, meta.nonce, null);\n }\n if (this.saveStateCookie && meta.state) {\n // Set state cookie for servers to validate state\n cookieStorage.setItem(REDIRECT_STATE_COOKIE_NAME, meta.state, null);\n }\n }\n }\n exists(options = {}) {\n try {\n const meta = this.load(options);\n return !!meta;\n }\n catch (_a) {\n return false;\n }\n }\n // load transaction meta from storage\n // eslint-disable-next-line complexity,max-statements\n load(options = {}) {\n let meta;\n // If state was passed, try loading transaction data from shared storage\n if (this.enableSharedStorage && options.state) {\n pruneSharedStorage(this.storageManager); // prune before load\n meta = loadTransactionFromSharedStorage(this.storageManager, options.state);\n if (isTransactionMeta(meta)) {\n return meta;\n }\n }\n let storage = this.storageManager.getTransactionStorage();\n meta = storage.getStorage();\n if (isTransactionMeta(meta)) {\n // if we have meta in the new location, there is no need to go further\n return meta;\n }\n if (!this.legacyWidgetSupport) {\n return null;\n }\n // This is for compatibility with older versions of the signin widget. OKTA-304806\n if (options.oauth) {\n try {\n const oauthParams = this.loadLegacyOAuthParams();\n Object.assign(meta, oauthParams);\n }\n finally {\n this.clearLegacyOAuthParams();\n }\n }\n if (options.pkce) {\n try {\n const pkceMeta = this.loadLegacyPKCE();\n Object.assign(meta, pkceMeta);\n }\n finally {\n this.clearLegacyPKCE();\n }\n }\n if (isTransactionMeta(meta)) {\n return meta;\n }\n return null;\n }\n // This is for compatibility with older versions of the signin widget. OKTA-304806\n clearLegacyPKCE() {\n // clear storages\n let storage;\n if (this.storageManager.storageUtil.testStorageType('localStorage')) {\n storage = this.storageManager.getLegacyPKCEStorage({ storageType: 'localStorage' });\n storage.clearStorage();\n }\n if (this.storageManager.storageUtil.testStorageType('sessionStorage')) {\n storage = this.storageManager.getLegacyPKCEStorage({ storageType: 'sessionStorage' });\n storage.clearStorage();\n }\n }\n loadLegacyPKCE() {\n let storage;\n let obj;\n // Try reading from localStorage first.\n if (this.storageManager.storageUtil.testStorageType('localStorage')) {\n storage = this.storageManager.getLegacyPKCEStorage({ storageType: 'localStorage' });\n obj = storage.getStorage();\n if (obj && obj.codeVerifier) {\n return obj;\n }\n }\n // If meta is not valid, read from sessionStorage. This is expected for more recent versions of the widget.\n if (this.storageManager.storageUtil.testStorageType('sessionStorage')) {\n storage = this.storageManager.getLegacyPKCEStorage({ storageType: 'sessionStorage' });\n obj = storage.getStorage();\n if (obj && obj.codeVerifier) {\n return obj;\n }\n }\n // If meta is not valid, throw an exception to avoid misleading server-side error\n // The most likely cause of this error is trying to handle a callback twice\n // eslint-disable-next-line max-len\n throw new AuthSdkError('Could not load PKCE codeVerifier from storage. This may indicate the auth flow has already completed or multiple auth flows are executing concurrently.', undefined);\n }\n clearLegacyOAuthParams() {\n // clear storages\n let storage;\n if (this.storageManager.storageUtil.testStorageType('sessionStorage')) {\n storage = this.storageManager.getLegacyOAuthParamsStorage({ storageType: 'sessionStorage' });\n storage.clearStorage();\n }\n if (this.storageManager.storageUtil.testStorageType('cookie')) {\n storage = this.storageManager.getLegacyOAuthParamsStorage({ storageType: 'cookie' });\n storage.clearStorage();\n }\n }\n loadLegacyOAuthParams() {\n let storage;\n let oauthParams;\n // load first from session storage\n if (this.storageManager.storageUtil.testStorageType('sessionStorage')) {\n storage = this.storageManager.getLegacyOAuthParamsStorage({ storageType: 'sessionStorage' });\n oauthParams = storage.getStorage();\n }\n if (isOAuthTransactionMeta(oauthParams)) {\n return oauthParams;\n }\n // try to load from cookie\n if (this.storageManager.storageUtil.testStorageType('cookie')) {\n storage = this.storageManager.getLegacyOAuthParamsStorage({ storageType: 'cookie' });\n oauthParams = storage.getStorage();\n }\n if (isOAuthTransactionMeta(oauthParams)) {\n return oauthParams;\n }\n throw new AuthSdkError('Unable to retrieve OAuth redirect params from storage');\n // Something is there but we don't recognize it\n // throw new AuthSdkError('Unable to parse the ' + REDIRECT_OAUTH_PARAMS_NAME + ' value from storage');\n }\n saveIdxResponse(idxResponse) {\n if (!this.saveLastResponse) {\n return;\n }\n const storage = this.storageManager.getIdxResponseStorage();\n if (!storage) {\n return;\n }\n storage.setStorage(idxResponse);\n }\n loadIdxResponse() {\n if (!this.saveLastResponse) {\n return null;\n }\n const storage = this.storageManager.getIdxResponseStorage();\n if (!storage) {\n return null;\n }\n const idxResponse = storage.getStorage();\n if (!isRawIdxResponse(idxResponse)) {\n return null;\n }\n return idxResponse;\n }\n clearIdxResponse() {\n if (!this.saveLastResponse) {\n return;\n }\n const storage = this.storageManager.getIdxResponseStorage();\n storage === null || storage === void 0 ? void 0 : storage.clearStorage();\n }\n}\n","/*!\n * Copyright (c) 2018-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\nimport AuthSdkError from './errors/AuthSdkError';\n// TODO: use @okta/configuration-validation (move module to this monorepo?)\n// eslint-disable-next-line complexity\nfunction assertValidConfig(args) {\n args = args || {};\n var scopes = args.scopes;\n if (scopes && !Array.isArray(scopes)) {\n throw new AuthSdkError('scopes must be a array of strings. ' +\n 'Required usage: new OktaAuth({scopes: [\"openid\", \"email\"]})');\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n var issuer = args.issuer;\n if (!issuer) {\n throw new AuthSdkError('No issuer passed to constructor. ' +\n 'Required usage: new OktaAuth({issuer: \"https://{yourOktaDomain}.com/oauth2/{authServerId}\"})');\n }\n var isUrlRegex = new RegExp('^http?s?://.+');\n if (!isUrlRegex.test(issuer)) {\n throw new AuthSdkError('Issuer must be a valid URL. ' +\n 'Required usage: new OktaAuth({issuer: \"https://{yourOktaDomain}.com/oauth2/{authServerId}\"})');\n }\n if (issuer.indexOf('-admin.') !== -1) {\n throw new AuthSdkError('Issuer URL passed to constructor contains \"-admin\" in subdomain. ' +\n 'Required usage: new OktaAuth({issuer: \"https://{yourOktaDomain}.com})');\n }\n}\nexport { assertValidConfig };\n","/*!\n * Copyright (c) 2018-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\nimport crossFetch from 'cross-fetch';\nfunction readData(response) {\n if (response.headers.get('Content-Type') &&\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n response.headers.get('Content-Type').toLowerCase().indexOf('application/json') >= 0) {\n return response.json()\n // JSON parse can fail if response is not a valid object\n .catch(e => {\n return {\n error: e,\n errorSummary: 'Could not parse server response'\n };\n });\n }\n else {\n return response.text();\n }\n}\nfunction formatResult(status, data, response) {\n const isObject = typeof data === 'object';\n const headers = {};\n for (const pair of response.headers.entries()) {\n headers[pair[0]] = pair[1];\n }\n const result = {\n responseText: isObject ? JSON.stringify(data) : data,\n status: status,\n headers\n };\n if (isObject) {\n result.responseType = 'json';\n result.responseJSON = data;\n }\n return result;\n}\n/* eslint-disable complexity */\nfunction fetchRequest(method, url, args) {\n var body = args.data;\n var headers = args.headers || {};\n var contentType = (headers['Content-Type'] || headers['content-type'] || '');\n // JSON encode body (if appropriate)\n if (contentType === 'application/json' && body && typeof body !== 'string') {\n body = JSON.stringify(body);\n }\n var fetch = global.fetch || crossFetch;\n var fetchPromise = fetch(url, {\n method: method,\n headers: args.headers,\n body: body,\n credentials: args.withCredentials ? 'include' : 'omit'\n });\n if (!fetchPromise.finally) {\n fetchPromise = Promise.resolve(fetchPromise);\n }\n return fetchPromise.then(function (response) {\n var error = !response.ok;\n var status = response.status;\n return readData(response)\n .then(data => {\n return formatResult(status, data, response);\n })\n .then(result => {\n var _a;\n if (error || ((_a = result.responseJSON) === null || _a === void 0 ? void 0 : _a.error)) {\n // Throwing result object since error handling is done in http.js\n throw result;\n }\n return result;\n });\n });\n}\nexport default fetchRequest;\n","/*!\n * Copyright (c) 2018-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { AuthSdkError } from '../errors';\n// eslint-disable-next-line import/no-commonjs\nconst NodeCache = require('node-cache'); // commonJS module cannot be imported without esModuleInterop\n// this is a SHARED memory storage to support a stateless http server\nconst sharedStorage = typeof NodeCache === 'function' ? new NodeCache() : null;\nclass ServerCookies {\n constructor(nodeCache) {\n this.nodeCache = nodeCache;\n }\n set(name, value, expiresAt) {\n // eslint-disable-next-line no-extra-boolean-cast\n if (!!(Date.parse(expiresAt))) {\n // Time to expiration in seconds\n var ttl = (Date.parse(expiresAt) - Date.now()) / 1000;\n this.nodeCache.set(name, value, ttl);\n }\n else {\n this.nodeCache.set(name, value);\n }\n return this.get(name);\n }\n get(name) {\n return this.nodeCache.get(name);\n }\n delete(name) {\n return this.nodeCache.del(name);\n }\n}\n// Building this as an object allows us to mock the functions in our tests\nclass ServerStorage {\n constructor(nodeCache) {\n this.nodeCache = nodeCache;\n this.storage = new ServerCookies(nodeCache);\n }\n testStorageType(storageType) {\n var supported = false;\n switch (storageType) {\n case 'memory':\n supported = true;\n break;\n default:\n break;\n }\n return supported;\n }\n getStorageByType(storageType) {\n let storageProvider;\n switch (storageType) {\n case 'memory':\n storageProvider = this.getStorage();\n break;\n default:\n throw new AuthSdkError(`Unrecognized storage option: ${storageType}`);\n break;\n }\n return storageProvider;\n }\n findStorageType() {\n return 'memory';\n }\n // will be removed in next version. OKTA-362589\n getHttpCache() {\n return null; // stubbed in server.js\n }\n // shared in-memory using node cache\n getStorage() {\n return {\n getItem: this.nodeCache.get,\n setItem: (key, value) => {\n this.nodeCache.set(key, value, '2200-01-01T00:00:00.000Z');\n }\n };\n }\n}\nexport default new ServerStorage(sharedStorage);\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/* eslint-disable complexity */\nimport { removeTrailingSlash, warn, removeNils } from './util';\nimport { assertValidConfig } from './builderUtil';\nimport fetchRequest from './fetch/fetchRequest';\nimport browserStorage from './browser/browserStorage';\nimport serverStorage from './server/serverStorage';\nimport { isBrowser, isHTTPS } from './features';\nconst BROWSER_STORAGE = {\n token: {\n storageTypes: [\n 'localStorage',\n 'sessionStorage',\n 'cookie'\n ]\n },\n cache: {\n storageTypes: [\n 'localStorage',\n 'sessionStorage',\n 'cookie'\n ]\n },\n transaction: {\n storageTypes: [\n 'sessionStorage',\n 'localStorage',\n 'cookie'\n ]\n },\n 'shared-transaction': {\n storageTypes: [\n 'localStorage'\n ]\n },\n 'original-uri': {\n storageTypes: [\n 'localStorage'\n ]\n }\n};\nconst SERVER_STORAGE = {\n token: {\n storageTypes: [\n 'memory'\n ]\n },\n cache: {\n storageTypes: [\n 'memory'\n ]\n },\n transaction: {\n storageTypes: [\n 'memory'\n ]\n }\n};\nfunction getCookieSettings(args = {}, isHTTPS) {\n // Secure cookies will be automatically used on a HTTPS connection\n // Non-secure cookies will be automatically used on a HTTP connection\n // secure option can override the automatic behavior\n var cookieSettings = args.cookies || {};\n if (typeof cookieSettings.secure === 'undefined') {\n cookieSettings.secure = isHTTPS;\n }\n if (typeof cookieSettings.sameSite === 'undefined') {\n cookieSettings.sameSite = cookieSettings.secure ? 'none' : 'lax';\n }\n // If secure=true, but the connection is not HTTPS, set secure=false.\n if (cookieSettings.secure && !isHTTPS) {\n // eslint-disable-next-line no-console\n warn('The current page is not being served with the HTTPS protocol.\\n' +\n 'For security reasons, we strongly recommend using HTTPS.\\n' +\n 'If you cannot use HTTPS, set \"cookies.secure\" option to false.');\n cookieSettings.secure = false;\n }\n // Chrome >= 80 will block cookies with SameSite=None unless they are also Secure\n // If sameSite=none, but the connection is not HTTPS, set sameSite=lax.\n if (cookieSettings.sameSite === 'none' && !cookieSettings.secure) {\n cookieSettings.sameSite = 'lax';\n }\n return cookieSettings;\n}\nexport function getDefaultOptions() {\n const storageUtil = isBrowser() ? browserStorage : serverStorage;\n const storageManager = isBrowser() ? BROWSER_STORAGE : SERVER_STORAGE;\n const enableSharedStorage = isBrowser() ? true : false; // localStorage for multi-tab flows (browser only)\n return {\n devMode: false,\n httpRequestClient: fetchRequest,\n storageUtil,\n storageManager,\n transactionManager: {\n enableSharedStorage\n }\n };\n}\nfunction mergeOptions(options, args) {\n return Object.assign({}, options, removeNils(args), {\n storageManager: Object.assign({}, options.storageManager, args.storageManager),\n transactionManager: Object.assign({}, options.transactionManager, args.transactionManager),\n });\n}\nexport function buildOptions(args = {}) {\n assertValidConfig(args);\n args = mergeOptions(getDefaultOptions(), args);\n return removeNils({\n // OIDC configuration\n issuer: removeTrailingSlash(args.issuer),\n tokenUrl: removeTrailingSlash(args.tokenUrl),\n authorizeUrl: removeTrailingSlash(args.authorizeUrl),\n userinfoUrl: removeTrailingSlash(args.userinfoUrl),\n revokeUrl: removeTrailingSlash(args.revokeUrl),\n logoutUrl: removeTrailingSlash(args.logoutUrl),\n clientId: args.clientId,\n redirectUri: args.redirectUri,\n state: args.state,\n scopes: args.scopes,\n postLogoutRedirectUri: args.postLogoutRedirectUri,\n responseMode: args.responseMode,\n responseType: args.responseType,\n pkce: args.pkce === false ? false : true,\n useInteractionCodeFlow: args.useInteractionCodeFlow,\n // Internal options\n httpRequestClient: args.httpRequestClient,\n transformErrorXHR: args.transformErrorXHR,\n transformAuthState: args.transformAuthState,\n restoreOriginalUri: args.restoreOriginalUri,\n storageUtil: args.storageUtil,\n headers: args.headers,\n devMode: !!args.devMode,\n storageManager: args.storageManager,\n transactionManager: args.transactionManager,\n cookies: isBrowser() ? getCookieSettings(args, isHTTPS()) : args.cookies,\n flow: args.flow,\n codeChallenge: args.codeChallenge,\n codeChallengeMethod: args.codeChallengeMethod,\n recoveryToken: args.recoveryToken,\n activationToken: args.activationToken,\n // Give the developer the ability to disable token signature validation.\n ignoreSignature: !!args.ignoreSignature,\n // Server-side web applications\n clientSecret: args.clientSecret\n });\n}\n","/*!\n * Copyright (c) 2021-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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n// @ts-nocheck\nimport fetch from 'cross-fetch';\n/**\n * Reusable interceptor interface\n */\nexport class Interceptor {\n constructor() {\n this.handlers = [];\n }\n // Adds a new interceptor to our HttpClient\n use(before) {\n this.handlers.push({\n before,\n });\n }\n // Clears all interceptors\n clear() {\n this.handlers = [];\n }\n}\n/**\n * Singleton instance of the IdX HTTP Client\n *\n * Invoke the `use` method to add a new interceptor:\n * - client.interceptors.request.use((requestConfig) => { some logic });\n */\nexport const HttpClient = {\n interceptors: {\n request: new Interceptor(),\n },\n};\nexport const request = (target, { method = 'POST', headers = {}, credentials = 'include', body }) => __awaiter(void 0, void 0, void 0, function* () {\n const requestOptions = {\n url: target,\n method,\n headers: Object.assign({}, headers),\n credentials,\n body,\n };\n if (HttpClient.interceptors) {\n HttpClient.interceptors.request.handlers.forEach(interceptor => {\n interceptor.before(requestOptions);\n });\n }\n // Extract the URL to adhere to the fetch API\n const { url } = requestOptions;\n delete requestOptions.url;\n return fetch(url, requestOptions);\n});\n","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","/*!\n * Copyright (c) 2021-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// @ts-nocheck\nconst isFieldMutable = function isFieldMutable(field) {\n // mutable defaults to true, annoyingly\n return (field.mutable !== false);\n};\nconst divideSingleActionParamsByMutability = function divideSingleActionParamsByMutability(action) {\n var _a, _b;\n const defaultParamsForAction = {}; // mutable and present\n const neededParamsForAction = []; // mutable values\n const immutableParamsForAction = {}; // immutable\n // TODO: remove assumption that form names are unique, neededParams being an array is a temp fix\n // not all actions have value (e.g. redirect)\n // making sure they are not empty and instead hold the remediation object\n if (!action.value) {\n neededParamsForAction.push(action);\n return { defaultParamsForAction, neededParamsForAction, immutableParamsForAction };\n }\n for (let field of action.value) {\n if (isFieldMutable(field)) {\n neededParamsForAction.push(field);\n if ((_a = field.value) !== null && _a !== void 0 ? _a : false) {\n defaultParamsForAction[field.name] = field.value;\n }\n }\n else {\n immutableParamsForAction[field.name] = (_b = field.value) !== null && _b !== void 0 ? _b : '';\n }\n }\n return { defaultParamsForAction, neededParamsForAction, immutableParamsForAction };\n};\nexport const divideActionParamsByMutability = function divideActionParamsByMutability(actionList) {\n // TODO: when removing form name is unique assumption, this may all be redundant\n actionList = Array.isArray(actionList) ? actionList : [actionList];\n const neededParams = [];\n const defaultParams = {};\n const immutableParams = {};\n for (let action of actionList) {\n const { defaultParamsForAction, neededParamsForAction, immutableParamsForAction } = divideSingleActionParamsByMutability(action);\n neededParams.push(neededParamsForAction);\n defaultParams[action.name] = defaultParamsForAction;\n immutableParams[action.name] = immutableParamsForAction;\n }\n return { defaultParams, neededParams, immutableParams };\n};\n","/*!\n * Copyright (c) 2021-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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/* eslint-disable max-len */\n// @ts-nocheck\nimport { request } from '../client';\nimport { divideActionParamsByMutability } from './actionParser';\nimport { makeIdxState } from './makeIdxState';\nconst generateDirectFetch = function generateDirectFetch({ actionDefinition, defaultParamsForAction = {}, immutableParamsForAction = {}, toPersist }) {\n const target = actionDefinition.href;\n return function (params) {\n return __awaiter(this, void 0, void 0, function* () {\n const headers = {\n 'content-type': 'application/json',\n 'accept': actionDefinition.accepts || 'application/ion+json',\n };\n const body = JSON.stringify(Object.assign(Object.assign(Object.assign({}, defaultParamsForAction), params), immutableParamsForAction));\n const credentials = toPersist && toPersist.withCredentials === false ? 'omit' : 'include';\n return request(target, { method: actionDefinition.method, headers, body, credentials })\n .then(response => {\n const respJson = response.json();\n if (response.ok) {\n return respJson;\n }\n else if (response.status === 401 && response.headers.get('WWW-Authenticate') === 'Oktadevicejwt realm=\"Okta Device\"') {\n // Okta server responds 401 status code with WWW-Authenticate header and new remediation\n // so that the iOS/MacOS credential SSO extension (Okta Verify) can intercept\n // the response reaches here when Okta Verify is not installed\n // we need to return an idx object so that\n // the SIW can proceed to the next step without showing error\n return respJson.then(err => {\n let ms = makeIdxState(err, toPersist);\n // set to true if flow should be continued without showing any errors\n ms.stepUp = true;\n return Promise.reject(ms);\n });\n }\n return respJson.then(err => {\n return Promise.reject(makeIdxState(err, toPersist));\n });\n })\n .then(idxResponse => makeIdxState(idxResponse, toPersist));\n });\n };\n};\n// TODO: Resolve in M2: Either build the final polling solution or remove this code\n// const generatePollingFetch = function generatePollingFetch( { actionDefinition, defaultParamsForAction = {}, immutableParamsForAction = {} } ) {\n// // TODO: Discussions ongoing about when/how to terminate polling: OKTA-246581\n// const target = actionDefinition.href;\n// return async function(params) {\n// return fetch(target, {\n// method: actionDefinition.method,\n// headers: {\n// 'content-type': actionDefinition.accepts,\n// },\n// body: JSON.stringify({ ...defaultParamsForAction, ...params, ...immutableParamsForAction })\n// })\n// .then( response => response.ok ? response.json() : response.json().then( err => Promise.reject(err)) )\n// .then( idxResponse => makeIdxState(idxResponse) );\n// };\n// };\nconst generateIdxAction = function generateIdxAction(actionDefinition, toPersist) {\n // TODO: leaving this here to see where the polling is EXPECTED to drop into the code, but removing any accidental trigger of incomplete code\n // const generator = actionDefinition.refresh ? generatePollingFetch : generateDirectFetch;\n const generator = generateDirectFetch;\n const { defaultParams, neededParams, immutableParams } = divideActionParamsByMutability(actionDefinition);\n const action = generator({\n actionDefinition,\n defaultParamsForAction: defaultParams[actionDefinition.name],\n immutableParamsForAction: immutableParams[actionDefinition.name],\n toPersist\n });\n action.neededParams = neededParams;\n return action;\n};\nexport default generateIdxAction;\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function () {};\n\n return {\n s: F,\n n: function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function () {\n it = it.call(o);\n },\n n: function () {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function (e) {\n didErr = true;\n err = e;\n },\n f: function () {\n try {\n if (!normalCompletion && it.return != null) it.return();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\nvar hasOwnProp = Object.prototype.hasOwnProperty;\n/**\n* @typedef {null|boolean|number|string|PlainObject|GenericArray} JSONObject\n*/\n\n/**\n * Copies array and then pushes item into it.\n * @param {GenericArray} arr Array to copy and into which to push\n * @param {any} item Array item to add (to end)\n * @returns {GenericArray} Copy of the original array\n */\n\nfunction push(arr, item) {\n arr = arr.slice();\n arr.push(item);\n return arr;\n}\n/**\n * Copies array and then unshifts item into it.\n * @param {any} item Array item to add (to beginning)\n * @param {GenericArray} arr Array to copy and into which to unshift\n * @returns {GenericArray} Copy of the original array\n */\n\n\nfunction unshift(item, arr) {\n arr = arr.slice();\n arr.unshift(item);\n return arr;\n}\n/**\n * Caught when JSONPath is used without `new` but rethrown if with `new`\n * @extends Error\n */\n\n\nvar NewError = /*#__PURE__*/function (_Error) {\n _inherits(NewError, _Error);\n\n var _super = _createSuper(NewError);\n\n /**\n * @param {any} value The evaluated scalar value\n */\n function NewError(value) {\n var _this;\n\n _classCallCheck(this, NewError);\n\n _this = _super.call(this, 'JSONPath should not be called with \"new\" (it prevents return ' + 'of (unwrapped) scalar values)');\n _this.avoidNew = true;\n _this.value = value;\n _this.name = 'NewError';\n return _this;\n }\n\n return NewError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n/**\n* @typedef {PlainObject} ReturnObject\n* @property {string} path\n* @property {JSONObject} value\n* @property {PlainObject|GenericArray} parent\n* @property {string} parentProperty\n*/\n\n/**\n* @callback JSONPathCallback\n* @param {string|PlainObject} preferredOutput\n* @param {\"value\"|\"property\"} type\n* @param {ReturnObject} fullRetObj\n* @returns {void}\n*/\n\n/**\n* @callback OtherTypeCallback\n* @param {JSONObject} val\n* @param {string} path\n* @param {PlainObject|GenericArray} parent\n* @param {string} parentPropName\n* @returns {boolean}\n*/\n\n/* eslint-disable max-len -- Can make multiline type after https://github.com/syavorsky/comment-parser/issues/109 */\n\n/**\n * @typedef {PlainObject} JSONPathOptions\n * @property {JSON} json\n * @property {string|string[]} path\n * @property {\"value\"|\"path\"|\"pointer\"|\"parent\"|\"parentProperty\"|\"all\"} [resultType=\"value\"]\n * @property {boolean} [flatten=false]\n * @property {boolean} [wrap=true]\n * @property {PlainObject} [sandbox={}]\n * @property {boolean} [preventEval=false]\n * @property {PlainObject|GenericArray|null} [parent=null]\n * @property {string|null} [parentProperty=null]\n * @property {JSONPathCallback} [callback]\n * @property {OtherTypeCallback} [otherTypeCallback] Defaults to\n * function which throws on encountering `@other`\n * @property {boolean} [autostart=true]\n */\n\n/* eslint-enable max-len -- Can make multiline type after https://github.com/syavorsky/comment-parser/issues/109 */\n\n/**\n * @param {string|JSONPathOptions} opts If a string, will be treated as `expr`\n * @param {string} [expr] JSON path to evaluate\n * @param {JSON} [obj] JSON object to evaluate against\n * @param {JSONPathCallback} [callback] Passed 3 arguments: 1) desired payload\n * per `resultType`, 2) `\"value\"|\"property\"`, 3) Full returned object with\n * all payloads\n * @param {OtherTypeCallback} [otherTypeCallback] If `@other()` is at the end\n * of one's query, this will be invoked with the value of the item, its\n * path, its parent, and its parent's property name, and it should return\n * a boolean indicating whether the supplied value belongs to the \"other\"\n * type or not (or it may handle transformations and return `false`).\n * @returns {JSONPath}\n * @class\n */\n\n\nfunction JSONPath(opts, expr, obj, callback, otherTypeCallback) {\n // eslint-disable-next-line no-restricted-syntax\n if (!(this instanceof JSONPath)) {\n try {\n return new JSONPath(opts, expr, obj, callback, otherTypeCallback);\n } catch (e) {\n if (!e.avoidNew) {\n throw e;\n }\n\n return e.value;\n }\n }\n\n if (typeof opts === 'string') {\n otherTypeCallback = callback;\n callback = obj;\n obj = expr;\n expr = opts;\n opts = null;\n }\n\n var optObj = opts && _typeof(opts) === 'object';\n opts = opts || {};\n this.json = opts.json || obj;\n this.path = opts.path || expr;\n this.resultType = opts.resultType || 'value';\n this.flatten = opts.flatten || false;\n this.wrap = hasOwnProp.call(opts, 'wrap') ? opts.wrap : true;\n this.sandbox = opts.sandbox || {};\n this.preventEval = opts.preventEval || false;\n this.parent = opts.parent || null;\n this.parentProperty = opts.parentProperty || null;\n this.callback = opts.callback || callback || null;\n\n this.otherTypeCallback = opts.otherTypeCallback || otherTypeCallback || function () {\n throw new TypeError('You must supply an otherTypeCallback callback option ' + 'with the @other() operator.');\n };\n\n if (opts.autostart !== false) {\n var args = {\n path: optObj ? opts.path : expr\n };\n\n if (!optObj) {\n args.json = obj;\n } else if ('json' in opts) {\n args.json = opts.json;\n }\n\n var ret = this.evaluate(args);\n\n if (!ret || _typeof(ret) !== 'object') {\n throw new NewError(ret);\n }\n\n return ret;\n }\n} // PUBLIC METHODS\n\n\nJSONPath.prototype.evaluate = function (expr, json, callback, otherTypeCallback) {\n var _this2 = this;\n\n var currParent = this.parent,\n currParentProperty = this.parentProperty;\n var flatten = this.flatten,\n wrap = this.wrap;\n this.currResultType = this.resultType;\n this.currPreventEval = this.preventEval;\n this.currSandbox = this.sandbox;\n callback = callback || this.callback;\n this.currOtherTypeCallback = otherTypeCallback || this.otherTypeCallback;\n json = json || this.json;\n expr = expr || this.path;\n\n if (expr && _typeof(expr) === 'object' && !Array.isArray(expr)) {\n if (!expr.path && expr.path !== '') {\n throw new TypeError('You must supply a \"path\" property when providing an object ' + 'argument to JSONPath.evaluate().');\n }\n\n if (!hasOwnProp.call(expr, 'json')) {\n throw new TypeError('You must supply a \"json\" property when providing an object ' + 'argument to JSONPath.evaluate().');\n }\n\n var _expr = expr;\n json = _expr.json;\n flatten = hasOwnProp.call(expr, 'flatten') ? expr.flatten : flatten;\n this.currResultType = hasOwnProp.call(expr, 'resultType') ? expr.resultType : this.currResultType;\n this.currSandbox = hasOwnProp.call(expr, 'sandbox') ? expr.sandbox : this.currSandbox;\n wrap = hasOwnProp.call(expr, 'wrap') ? expr.wrap : wrap;\n this.currPreventEval = hasOwnProp.call(expr, 'preventEval') ? expr.preventEval : this.currPreventEval;\n callback = hasOwnProp.call(expr, 'callback') ? expr.callback : callback;\n this.currOtherTypeCallback = hasOwnProp.call(expr, 'otherTypeCallback') ? expr.otherTypeCallback : this.currOtherTypeCallback;\n currParent = hasOwnProp.call(expr, 'parent') ? expr.parent : currParent;\n currParentProperty = hasOwnProp.call(expr, 'parentProperty') ? expr.parentProperty : currParentProperty;\n expr = expr.path;\n }\n\n currParent = currParent || null;\n currParentProperty = currParentProperty || null;\n\n if (Array.isArray(expr)) {\n expr = JSONPath.toPathString(expr);\n }\n\n if (!expr && expr !== '' || !json) {\n return undefined;\n }\n\n var exprList = JSONPath.toPathArray(expr);\n\n if (exprList[0] === '$' && exprList.length > 1) {\n exprList.shift();\n }\n\n this._hasParentSelector = null;\n\n var result = this._trace(exprList, json, ['$'], currParent, currParentProperty, callback).filter(function (ea) {\n return ea && !ea.isParentSelector;\n });\n\n if (!result.length) {\n return wrap ? [] : undefined;\n }\n\n if (!wrap && result.length === 1 && !result[0].hasArrExpr) {\n return this._getPreferredOutput(result[0]);\n }\n\n return result.reduce(function (rslt, ea) {\n var valOrPath = _this2._getPreferredOutput(ea);\n\n if (flatten && Array.isArray(valOrPath)) {\n rslt = rslt.concat(valOrPath);\n } else {\n rslt.push(valOrPath);\n }\n\n return rslt;\n }, []);\n}; // PRIVATE METHODS\n\n\nJSONPath.prototype._getPreferredOutput = function (ea) {\n var resultType = this.currResultType;\n\n switch (resultType) {\n case 'all':\n {\n var path = Array.isArray(ea.path) ? ea.path : JSONPath.toPathArray(ea.path);\n ea.pointer = JSONPath.toPointer(path);\n ea.path = typeof ea.path === 'string' ? ea.path : JSONPath.toPathString(ea.path);\n return ea;\n }\n\n case 'value':\n case 'parent':\n case 'parentProperty':\n return ea[resultType];\n\n case 'path':\n return JSONPath.toPathString(ea[resultType]);\n\n case 'pointer':\n return JSONPath.toPointer(ea.path);\n\n default:\n throw new TypeError('Unknown result type');\n }\n};\n\nJSONPath.prototype._handleCallback = function (fullRetObj, callback, type) {\n if (callback) {\n var preferredOutput = this._getPreferredOutput(fullRetObj);\n\n fullRetObj.path = typeof fullRetObj.path === 'string' ? fullRetObj.path : JSONPath.toPathString(fullRetObj.path); // eslint-disable-next-line node/callback-return\n\n callback(preferredOutput, type, fullRetObj);\n }\n};\n/**\n *\n * @param {string} expr\n * @param {JSONObject} val\n * @param {string} path\n * @param {PlainObject|GenericArray} parent\n * @param {string} parentPropName\n * @param {JSONPathCallback} callback\n * @param {boolean} hasArrExpr\n * @param {boolean} literalPriority\n * @returns {ReturnObject|ReturnObject[]}\n */\n\n\nJSONPath.prototype._trace = function (expr, val, path, parent, parentPropName, callback, hasArrExpr, literalPriority) {\n var _this3 = this;\n\n // No expr to follow? return path and value as the result of\n // this trace branch\n var retObj;\n\n if (!expr.length) {\n retObj = {\n path: path,\n value: val,\n parent: parent,\n parentProperty: parentPropName,\n hasArrExpr: hasArrExpr\n };\n\n this._handleCallback(retObj, callback, 'value');\n\n return retObj;\n }\n\n var loc = expr[0],\n x = expr.slice(1); // We need to gather the return value of recursive trace calls in order to\n // do the parent sel computation.\n\n var ret = [];\n /**\n *\n * @param {ReturnObject|ReturnObject[]} elems\n * @returns {void}\n */\n\n function addRet(elems) {\n if (Array.isArray(elems)) {\n // This was causing excessive stack size in Node (with or\n // without Babel) against our performance test:\n // `ret.push(...elems);`\n elems.forEach(function (t) {\n ret.push(t);\n });\n } else {\n ret.push(elems);\n }\n }\n\n if ((typeof loc !== 'string' || literalPriority) && val && hasOwnProp.call(val, loc)) {\n // simple case--directly follow property\n addRet(this._trace(x, val[loc], push(path, loc), val, loc, callback, hasArrExpr)); // eslint-disable-next-line unicorn/prefer-switch -- Part of larger `if`\n } else if (loc === '*') {\n // all child properties\n this._walk(loc, x, val, path, parent, parentPropName, callback, function (m, l, _x, v, p, par, pr, cb) {\n addRet(_this3._trace(unshift(m, _x), v, p, par, pr, cb, true, true));\n });\n } else if (loc === '..') {\n // all descendent parent properties\n // Check remaining expression with val's immediate children\n addRet(this._trace(x, val, path, parent, parentPropName, callback, hasArrExpr));\n\n this._walk(loc, x, val, path, parent, parentPropName, callback, function (m, l, _x, v, p, par, pr, cb) {\n // We don't join m and x here because we only want parents,\n // not scalar values\n if (_typeof(v[m]) === 'object') {\n // Keep going with recursive descent on val's\n // object children\n addRet(_this3._trace(unshift(l, _x), v[m], push(p, m), v, m, cb, true));\n }\n }); // The parent sel computation is handled in the frame above using the\n // ancestor object of val\n\n } else if (loc === '^') {\n // This is not a final endpoint, so we do not invoke the callback here\n this._hasParentSelector = true;\n return {\n path: path.slice(0, -1),\n expr: x,\n isParentSelector: true\n };\n } else if (loc === '~') {\n // property name\n retObj = {\n path: push(path, loc),\n value: parentPropName,\n parent: parent,\n parentProperty: null\n };\n\n this._handleCallback(retObj, callback, 'property');\n\n return retObj;\n } else if (loc === '$') {\n // root only\n addRet(this._trace(x, val, path, null, null, callback, hasArrExpr));\n } else if (/^(\\x2D?[0-9]*):(\\x2D?[0-9]*):?([0-9]*)$/.test(loc)) {\n // [start:end:step] Python slice syntax\n addRet(this._slice(loc, x, val, path, parent, parentPropName, callback));\n } else if (loc.indexOf('?(') === 0) {\n // [?(expr)] (filtering)\n if (this.currPreventEval) {\n throw new Error('Eval [?(expr)] prevented in JSONPath expression.');\n }\n\n this._walk(loc, x, val, path, parent, parentPropName, callback, function (m, l, _x, v, p, par, pr, cb) {\n if (_this3._eval(l.replace(/^\\?\\(((?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*?)\\)$/, '$1'), v[m], m, p, par, pr)) {\n addRet(_this3._trace(unshift(m, _x), v, p, par, pr, cb, true));\n }\n });\n } else if (loc[0] === '(') {\n // [(expr)] (dynamic property/index)\n if (this.currPreventEval) {\n throw new Error('Eval [(expr)] prevented in JSONPath expression.');\n } // As this will resolve to a property name (but we don't know it\n // yet), property and parent information is relative to the\n // parent of the property to which this expression will resolve\n\n\n addRet(this._trace(unshift(this._eval(loc, val, path[path.length - 1], path.slice(0, -1), parent, parentPropName), x), val, path, parent, parentPropName, callback, hasArrExpr));\n } else if (loc[0] === '@') {\n // value type: @boolean(), etc.\n var addType = false;\n var valueType = loc.slice(1, -2);\n\n switch (valueType) {\n case 'scalar':\n if (!val || !['object', 'function'].includes(_typeof(val))) {\n addType = true;\n }\n\n break;\n\n case 'boolean':\n case 'string':\n case 'undefined':\n case 'function':\n // eslint-disable-next-line valid-typeof\n if (_typeof(val) === valueType) {\n addType = true;\n }\n\n break;\n\n case 'integer':\n if (Number.isFinite(val) && !(val % 1)) {\n addType = true;\n }\n\n break;\n\n case 'number':\n if (Number.isFinite(val)) {\n addType = true;\n }\n\n break;\n\n case 'nonFinite':\n if (typeof val === 'number' && !Number.isFinite(val)) {\n addType = true;\n }\n\n break;\n\n case 'object':\n // eslint-disable-next-line valid-typeof\n if (val && _typeof(val) === valueType) {\n addType = true;\n }\n\n break;\n\n case 'array':\n if (Array.isArray(val)) {\n addType = true;\n }\n\n break;\n\n case 'other':\n addType = this.currOtherTypeCallback(val, path, parent, parentPropName);\n break;\n\n case 'null':\n if (val === null) {\n addType = true;\n }\n\n break;\n\n /* c8 ignore next 2 */\n\n default:\n throw new TypeError('Unknown value type ' + valueType);\n }\n\n if (addType) {\n retObj = {\n path: path,\n value: val,\n parent: parent,\n parentProperty: parentPropName\n };\n\n this._handleCallback(retObj, callback, 'value');\n\n return retObj;\n } // `-escaped property\n\n } else if (loc[0] === '`' && val && hasOwnProp.call(val, loc.slice(1))) {\n var locProp = loc.slice(1);\n addRet(this._trace(x, val[locProp], push(path, locProp), val, locProp, callback, hasArrExpr, true));\n } else if (loc.includes(',')) {\n // [name1,name2,...]\n var parts = loc.split(',');\n\n var _iterator = _createForOfIteratorHelper(parts),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var part = _step.value;\n addRet(this._trace(unshift(part, x), val, path, parent, parentPropName, callback, true));\n } // simple case--directly follow property\n\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n } else if (!literalPriority && val && hasOwnProp.call(val, loc)) {\n addRet(this._trace(x, val[loc], push(path, loc), val, loc, callback, hasArrExpr, true));\n } // We check the resulting values for parent selections. For parent\n // selections we discard the value object and continue the trace with the\n // current val object\n\n\n if (this._hasParentSelector) {\n for (var t = 0; t < ret.length; t++) {\n var rett = ret[t];\n\n if (rett && rett.isParentSelector) {\n var tmp = this._trace(rett.expr, val, rett.path, parent, parentPropName, callback, hasArrExpr);\n\n if (Array.isArray(tmp)) {\n ret[t] = tmp[0];\n var tl = tmp.length;\n\n for (var tt = 1; tt < tl; tt++) {\n t++;\n ret.splice(t, 0, tmp[tt]);\n }\n } else {\n ret[t] = tmp;\n }\n }\n }\n }\n\n return ret;\n};\n\nJSONPath.prototype._walk = function (loc, expr, val, path, parent, parentPropName, callback, f) {\n if (Array.isArray(val)) {\n var n = val.length;\n\n for (var i = 0; i < n; i++) {\n f(i, loc, expr, val, path, parent, parentPropName, callback);\n }\n } else if (val && _typeof(val) === 'object') {\n Object.keys(val).forEach(function (m) {\n f(m, loc, expr, val, path, parent, parentPropName, callback);\n });\n }\n};\n\nJSONPath.prototype._slice = function (loc, expr, val, path, parent, parentPropName, callback) {\n if (!Array.isArray(val)) {\n return undefined;\n }\n\n var len = val.length,\n parts = loc.split(':'),\n step = parts[2] && Number.parseInt(parts[2]) || 1;\n var start = parts[0] && Number.parseInt(parts[0]) || 0,\n end = parts[1] && Number.parseInt(parts[1]) || len;\n start = start < 0 ? Math.max(0, start + len) : Math.min(len, start);\n end = end < 0 ? Math.max(0, end + len) : Math.min(len, end);\n var ret = [];\n\n for (var i = start; i < end; i += step) {\n var tmp = this._trace(unshift(i, expr), val, path, parent, parentPropName, callback, true); // Should only be possible to be an array here since first part of\n // ``unshift(i, expr)` passed in above would not be empty, nor `~`,\n // nor begin with `@` (as could return objects)\n // This was causing excessive stack size in Node (with or\n // without Babel) against our performance test: `ret.push(...tmp);`\n\n\n tmp.forEach(function (t) {\n ret.push(t);\n });\n }\n\n return ret;\n};\n\nJSONPath.prototype._eval = function (code, _v, _vname, path, parent, parentPropName) {\n if (code.includes('@parentProperty')) {\n this.currSandbox._$_parentProperty = parentPropName;\n code = code.replace(/@parentProperty/g, '_$_parentProperty');\n }\n\n if (code.includes('@parent')) {\n this.currSandbox._$_parent = parent;\n code = code.replace(/@parent/g, '_$_parent');\n }\n\n if (code.includes('@property')) {\n this.currSandbox._$_property = _vname;\n code = code.replace(/@property/g, '_$_property');\n }\n\n if (code.includes('@path')) {\n this.currSandbox._$_path = JSONPath.toPathString(path.concat([_vname]));\n code = code.replace(/@path/g, '_$_path');\n }\n\n if (code.includes('@root')) {\n this.currSandbox._$_root = this.json;\n code = code.replace(/@root/g, '_$_root');\n }\n\n if (/@([\\t-\\r \\)\\.\\[\\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF])/.test(code)) {\n this.currSandbox._$_v = _v;\n code = code.replace(/@([\\t-\\r \\)\\.\\[\\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF])/g, '_$_v$1');\n }\n\n try {\n return this.vm.runInNewContext(code, this.currSandbox);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.log(e);\n throw new Error('jsonPath: ' + e.message + ': ' + code);\n }\n}; // PUBLIC CLASS PROPERTIES AND METHODS\n// Could store the cache object itself\n\n\nJSONPath.cache = {};\n/**\n * @param {string[]} pathArr Array to convert\n * @returns {string} The path string\n */\n\nJSONPath.toPathString = function (pathArr) {\n var x = pathArr,\n n = x.length;\n var p = '$';\n\n for (var i = 1; i < n; i++) {\n if (!/^(~|\\^|@(?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*?\\(\\))$/.test(x[i])) {\n p += /^[\\*0-9]+$/.test(x[i]) ? '[' + x[i] + ']' : \"['\" + x[i] + \"']\";\n }\n }\n\n return p;\n};\n/**\n * @param {string} pointer JSON Path\n * @returns {string} JSON Pointer\n */\n\n\nJSONPath.toPointer = function (pointer) {\n var x = pointer,\n n = x.length;\n var p = '';\n\n for (var i = 1; i < n; i++) {\n if (!/^(~|\\^|@(?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*?\\(\\))$/.test(x[i])) {\n p += '/' + x[i].toString().replace(/~/g, '~0').replace(/\\//g, '~1');\n }\n }\n\n return p;\n};\n/**\n * @param {string} expr Expression to convert\n * @returns {string[]}\n */\n\n\nJSONPath.toPathArray = function (expr) {\n var cache = JSONPath.cache;\n\n if (cache[expr]) {\n return cache[expr].concat();\n }\n\n var subx = [];\n var normalized = expr // Properties\n .replace(/@(?:null|boolean|number|string|integer|undefined|nonFinite|scalar|array|object|function|other)\\(\\)/g, ';$&;') // Parenthetical evaluations (filtering and otherwise), directly\n // within brackets or single quotes\n .replace(/['\\[](\\??\\((?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*?\\))['\\]]/g, function ($0, $1) {\n return '[#' + (subx.push($1) - 1) + ']';\n }) // Escape periods and tildes within properties\n .replace(/\\[[\"']((?:(?!['\\]])[\\s\\S])*)[\"']\\]/g, function ($0, prop) {\n return \"['\" + prop.replace(/\\./g, '%@%').replace(/~/g, '%%@@%%') + \"']\";\n }) // Properties operator\n .replace(/~/g, ';~;') // Split by property boundaries\n .replace(/[\"']?\\.[\"']?(?!(?:(?!\\[)[\\s\\S])*\\])|\\[[\"']?/g, ';') // Reinsert periods within properties\n .replace(/%@%/g, '.') // Reinsert tildes within properties\n .replace(/%%@@%%/g, '~') // Parent\n .replace(/(?:;)?(\\^+)(?:;)?/g, function ($0, ups) {\n return ';' + ups.split('').join(';') + ';';\n }) // Descendents\n .replace(/;;;|;;/g, ';..;') // Remove trailing\n .replace(/;$|'?\\]|'$/g, '');\n var exprList = normalized.split(';').map(function (exp) {\n var match = exp.match(/#([0-9]+)/);\n return !match || !match[1] ? exp : subx[match[1]];\n });\n cache[expr] = exprList;\n return cache[expr].concat();\n};\n\n/**\n* @callback ConditionCallback\n* @param {any} item\n* @returns {boolean}\n*/\n\n/**\n * Copy items out of one array into another.\n * @param {GenericArray} source Array with items to copy\n * @param {GenericArray} target Array to which to copy\n * @param {ConditionCallback} conditionCb Callback passed the current item;\n * will move item if evaluates to `true`\n * @returns {void}\n */\n\nvar moveToAnotherArray = function moveToAnotherArray(source, target, conditionCb) {\n var il = source.length;\n\n for (var i = 0; i < il; i++) {\n var item = source[i];\n\n if (conditionCb(item)) {\n target.push(source.splice(i--, 1)[0]);\n }\n }\n};\n\nJSONPath.prototype.vm = {\n /**\n * @param {string} expr Expression to evaluate\n * @param {PlainObject} context Object whose items will be added\n * to evaluation\n * @returns {any} Result of evaluated code\n */\n runInNewContext: function runInNewContext(expr, context) {\n var keys = Object.keys(context);\n var funcs = [];\n moveToAnotherArray(keys, funcs, function (key) {\n return typeof context[key] === 'function';\n });\n var values = keys.map(function (vr, i) {\n return context[vr];\n });\n var funcString = funcs.reduce(function (s, func) {\n var fString = context[func].toString();\n\n if (!/function/.test(fString)) {\n fString = 'function ' + fString;\n }\n\n return 'var ' + func + '=' + fString + ';' + s;\n }, '');\n expr = funcString + expr; // Mitigate http://perfectionkills.com/global-eval-what-are-the-options/#new_function\n\n if (!/([\"'])use strict\\1/.test(expr) && !keys.includes('arguments')) {\n expr = 'var arguments = undefined;' + expr;\n } // Remove last semi so `return` will be inserted before\n // the previous one instead, allowing for the return\n // of a bare ending expression\n\n\n expr = expr.replace(/;[\\t-\\r \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]*$/, ''); // Insert `return`\n\n var lastStatementEnd = expr.lastIndexOf(';');\n var code = lastStatementEnd > -1 ? expr.slice(0, lastStatementEnd + 1) + ' return ' + expr.slice(lastStatementEnd + 1) : ' return ' + expr; // eslint-disable-next-line no-new-func\n\n return _construct(Function, _toConsumableArray(keys).concat([code])).apply(void 0, _toConsumableArray(values));\n }\n};\n\nexport { JSONPath };\n","/*!\n * Copyright (c) 2021-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 */\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n/* eslint-disable max-len */\n// @ts-nocheck\nimport { generateRemediationFunctions } from './remediationParser';\nimport generateIdxAction from './generateIdxAction';\nimport { JSONPath } from 'jsonpath-plus';\nconst SKIP_FIELDS = Object.fromEntries([\n 'remediation',\n 'context', // the API response of 'context' isn't externally useful. We ignore it and put all non-action (contextual) info into idxState.context\n].map((field) => [field, !!'skip this field']));\nexport const parseNonRemediations = function parseNonRemediations(idxResponse, toPersist = {}) {\n const actions = {};\n const context = {};\n Object.keys(idxResponse)\n .filter(field => !SKIP_FIELDS[field])\n .forEach(field => {\n const fieldIsObject = typeof idxResponse[field] === 'object' && !!idxResponse[field];\n if (!fieldIsObject) {\n // simple fields are contextual info\n context[field] = idxResponse[field];\n return;\n }\n if (idxResponse[field].rel) {\n // top level actions\n actions[idxResponse[field].name] = generateIdxAction(idxResponse[field], toPersist);\n return;\n }\n const _a = idxResponse[field], { value: fieldValue, type } = _a, info = __rest(_a, [\"value\", \"type\"]);\n context[field] = Object.assign({ type }, info); // add the non-action parts as context\n if (type !== 'object') {\n // only object values hold actions\n context[field].value = fieldValue;\n return;\n }\n // We are an object field containing an object value\n context[field].value = {};\n Object.entries(fieldValue)\n .forEach(([subField, value]) => {\n if (value.rel) { // is [field].value[subField] an action?\n // add any \"action\" value subfields to actions\n actions[`${field}-${subField.name || subField}`] = generateIdxAction(value, toPersist);\n }\n else {\n // add non-action value subfields to context\n context[field].value[subField] = value;\n }\n });\n });\n return { context, actions };\n};\nconst expandRelatesTo = (idxResponse, value) => {\n Object.keys(value).forEach(k => {\n if (k === 'relatesTo') {\n const query = Array.isArray(value[k]) ? value[k][0] : value[k];\n if (typeof query === 'string') {\n // eslint-disable-next-line new-cap\n const result = JSONPath({ path: query, json: idxResponse })[0];\n if (result) {\n value[k] = result;\n return;\n }\n }\n }\n if (Array.isArray(value[k])) {\n value[k].forEach(innerValue => expandRelatesTo(idxResponse, innerValue));\n }\n });\n};\nconst convertRemediationAction = (remediation, toPersist) => {\n const remediationActions = generateRemediationFunctions([remediation], toPersist);\n const actionFn = remediationActions[remediation.name];\n return Object.assign(Object.assign({}, remediation), { action: actionFn });\n};\nexport const parseIdxResponse = function parseIdxResponse(idxResponse, toPersist = {}) {\n var _a;\n const remediationData = ((_a = idxResponse.remediation) === null || _a === void 0 ? void 0 : _a.value) || [];\n remediationData.forEach(remediation => expandRelatesTo(idxResponse, remediation));\n const remediations = remediationData.map(remediation => convertRemediationAction(remediation, toPersist));\n const { context, actions } = parseNonRemediations(idxResponse, toPersist);\n return {\n remediations,\n context,\n actions,\n };\n};\n","/*!\n * Copyright (c) 2021-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// @ts-nocheck\nimport generateIdxAction from './generateIdxAction';\nexport const generateRemediationFunctions = function generateRemediationFunctions(remediationValue, toPersist = {}) {\n return Object.fromEntries(remediationValue.map(remediation => {\n return [\n remediation.name,\n generateIdxAction(remediation, toPersist),\n ];\n }));\n};\n","/*!\n * Copyright (c) 2021-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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { parseIdxResponse } from './idxResponseParser';\nexport function makeIdxState(idxResponse, toPersist) {\n var _a;\n const rawIdxResponse = idxResponse;\n const { remediations, context, actions } = parseIdxResponse(idxResponse, toPersist);\n const neededToProceed = [...remediations];\n const proceed = function (remediationChoice, paramsFromUser = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n /*\n remediationChoice is the name attribute on each form\n name should remain unique for items inside the remediation that are considered forms(identify, select-factor)\n name can be duplicate for items like redirect where its not considered a form(redirect)\n when names are not unique its a redirect to a href, so widget wont POST to idx-js layer.\n */\n const remediationChoiceObject = remediations.find((remediation) => remediation.name === remediationChoice);\n if (!remediationChoiceObject) {\n return Promise.reject(`Unknown remediation choice: [${remediationChoice}]`);\n }\n return remediationChoiceObject.action(paramsFromUser);\n });\n };\n const findCode = item => item.name === 'interaction_code';\n const interactionCode = (_a = rawIdxResponse.successWithInteractionCode) === null || _a === void 0 ? void 0 : _a.value.find(findCode).value;\n return {\n proceed,\n neededToProceed,\n actions,\n context,\n rawIdxState: rawIdxResponse,\n interactionCode,\n toPersist,\n };\n}\n","/*!\n * Copyright (c) 2021-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// @ts-nocheck\nimport { makeIdxState } from './makeIdxState';\nexport default {\n makeIdxState,\n};\n","/*!\n * Copyright (c) 2021-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// We load all the current parsers, because we won't know in advance which version(s) we need to parse\n// Expect to only support current major - 1 (also suspect that this limit may never be hit)\n// @ts-nocheck\nimport v1 from './v1/parsers'; // More granularity to be defined as needed\nconst parsersForVersion = function parsersForVersion(version) {\n switch (version) {\n case '1.0.0':\n return v1;\n case undefined:\n case null:\n throw new Error('Api version is required');\n default:\n throw new Error(`Unknown api version: ${version}. Use an exact semver version.`);\n }\n};\nexport default parsersForVersion;\n","/*!\n * Copyright (c) 2021-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// @ts-nocheck\nimport parsersForVersion from './parsers';\nexport function validateVersionConfig(version) {\n if (!version) {\n throw new Error('version is required');\n }\n const cleanVersion = (version !== null && version !== void 0 ? version : '').replace(/[^0-9a-zA-Z._-]/, '');\n if (cleanVersion !== version || !version) {\n throw new Error('invalid version supplied - version is required and uses semver syntax');\n }\n parsersForVersion(version); // will throw for invalid version\n}\n","/*!\n * Copyright (c) 2021-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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { request } from './client';\nimport { validateVersionConfig } from './util';\nconst parseAndReject = response => response.json().then(err => Promise.reject(err));\nconst introspect = function introspect({ withCredentials, domain, interactionHandle, stateHandle, version, }) {\n return __awaiter(this, void 0, void 0, function* () {\n validateVersionConfig(version);\n const target = `${domain}/idp/idx/introspect`;\n const body = stateHandle ? { stateToken: stateHandle } : { interactionHandle };\n const headers = {\n 'content-type': `application/ion+json; okta-version=${version}`,\n accept: `application/ion+json; okta-version=${version}`,\n };\n const credentials = withCredentials === false ? 'omit' : 'include';\n return request(target, { credentials, headers, body: JSON.stringify(body) })\n .then(response => response.ok ? response.json() : parseAndReject(response));\n });\n};\nexport default introspect;\n","/*!\n * Copyright (c) 2021-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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/* eslint-disable camelcase */\n// @ts-nocheck\nimport { request } from './client';\nconst parseAndReject = response => response.json().then(err => Promise.reject(err));\nconst interact = function interact({ withCredentials, clientId, baseUrl, scopes = ['openid', 'email'], redirectUri, codeChallenge, codeChallengeMethod, state, activationToken, recoveryToken, clientSecret, }) {\n return __awaiter(this, void 0, void 0, function* () {\n const target = `${baseUrl}/v1/interact`;\n const params = {\n client_id: clientId,\n scope: scopes.join(' '),\n redirect_uri: redirectUri,\n code_challenge: codeChallenge,\n code_challenge_method: codeChallengeMethod,\n state,\n };\n if (activationToken) {\n params.activation_token = activationToken;\n }\n if (recoveryToken) {\n params.recovery_token = recoveryToken;\n }\n if (clientSecret) {\n params.client_secret = clientSecret;\n }\n const body = Object.entries(params)\n .map(([param, value]) => `${param}=${encodeURIComponent(value)}`)\n .join('&');\n const headers = {\n 'content-type': 'application/x-www-form-urlencoded',\n };\n const credentials = withCredentials === false ? 'omit' : 'include';\n return request(target, { credentials, headers, body })\n .then(response => response.ok ? response.json() : parseAndReject(response))\n .then(data => data.interaction_handle);\n });\n};\nexport default interact;\n","/*!\n * Copyright (c) 2021-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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/* eslint-disable complexity, max-statements, max-len, camelcase */\n// @ts-nocheck\nimport introspect from './introspect';\nimport interact from './interact';\nimport parsersForVersion from './parsers';\nimport { HttpClient } from './client';\nimport { validateVersionConfig } from './util';\nconst LATEST_SUPPORTED_IDX_API_VERSION = '1.0.0';\nconst start = function start({ withCredentials, clientId, domain, issuer, stateHandle, interactionHandle, version, redirectUri, state, scopes, codeChallenge, codeChallengeMethod, activationToken, recoveryToken }) {\n return __awaiter(this, void 0, void 0, function* () {\n issuer = issuer === null || issuer === void 0 ? void 0 : issuer.replace(/\\/+$/, '');\n const baseUrl = (issuer === null || issuer === void 0 ? void 0 : issuer.indexOf('/oauth2')) > 0 ? issuer : issuer + '/oauth2'; // org AS uses domain as AS, but we need the base url for calls\n const toPersist = {\n baseUrl,\n clientId,\n state,\n withCredentials\n };\n if (!domain && !issuer) {\n return Promise.reject({ error: 'issuer is required' });\n }\n if (!stateHandle && !clientId) { // redirectUri is only required on self-hosted flow\n return Promise.reject({ error: 'clientId is required' });\n }\n if (!stateHandle && !redirectUri) { // redirectUri is only required on self-hosted flow\n return Promise.reject({ error: 'redirectUri is required' });\n }\n if (!stateHandle && !(codeChallenge && codeChallengeMethod)) {\n return Promise.reject({ error: 'PKCE params (codeChallenge, codeChallengeMethod) are required' });\n }\n if (!domain) {\n domain = new URL(issuer).origin;\n }\n validateVersionConfig(version);\n if (!stateHandle && !interactionHandle) { // start a new transaction\n try {\n const interactParams = {\n withCredentials,\n clientId,\n baseUrl,\n scopes,\n redirectUri,\n codeChallenge,\n codeChallengeMethod,\n state,\n activationToken,\n recoveryToken\n };\n const interaction_handle = yield interact(interactParams);\n interactionHandle = interaction_handle;\n toPersist.interactionHandle = interactionHandle;\n }\n catch (error) {\n return Promise.reject({ error });\n }\n }\n try {\n const { makeIdxState } = parsersForVersion(version);\n const idxResponse = yield introspect({ withCredentials, domain, interactionHandle, stateHandle, version })\n .catch(err => Promise.reject({\n error: 'introspect call failed',\n // Transform all errors into an IdX State object.\n // This allows IdX based errors (messages) to optionally proceed with remediation forms\n details: makeIdxState(err, toPersist)\n }));\n const idxState = makeIdxState(idxResponse, toPersist);\n return idxState;\n }\n catch (error) {\n return Promise.reject({ error });\n }\n });\n};\nconst { makeIdxState } = parsersForVersion(LATEST_SUPPORTED_IDX_API_VERSION);\nexport default {\n start,\n introspect,\n interact,\n makeIdxState,\n client: HttpClient,\n LATEST_SUPPORTED_IDX_API_VERSION,\n};\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2021, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { removeNils, warn } from '../util';\nimport { createOAuthMeta } from '../oidc';\n// Calculate new values\nexport function createTransactionMeta(authClient, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const tokenParams = yield authClient.token.prepareTokenParams(options);\n const pkceMeta = createOAuthMeta(authClient, tokenParams);\n let { flow = 'default', withCredentials = true, activationToken = undefined, recoveryToken = undefined, } = Object.assign(Object.assign({}, authClient.options), options); // local options override SDK options\n const meta = Object.assign(Object.assign({}, pkceMeta), { flow,\n withCredentials,\n activationToken,\n recoveryToken });\n return meta;\n });\n}\nexport function hasSavedInteractionHandle(authClient, options) {\n const savedMeta = getSavedTransactionMeta(authClient, options);\n if (savedMeta === null || savedMeta === void 0 ? void 0 : savedMeta.interactionHandle) {\n return true;\n }\n return false;\n}\n// Returns the saved transaction meta, if it exists and is valid\nexport function getSavedTransactionMeta(authClient, options) {\n options = removeNils(options);\n options = Object.assign(Object.assign({}, authClient.options), options); // local options override SDK options\n let savedMeta;\n try {\n savedMeta = authClient.transactionManager.load(options);\n }\n catch (e) {\n // ignore errors here\n }\n if (!savedMeta) {\n return;\n }\n if (isTransactionMetaValid(savedMeta, options)) {\n return savedMeta;\n }\n // existing meta is not valid for this configuration\n // this is common when changing configuration in local development environment\n // in a production environment, this may indicate that two apps are sharing a storage key\n warn('Saved transaction meta does not match the current configuration. ' +\n 'This may indicate that two apps are sharing a storage key.');\n}\nexport function getTransactionMeta(authClient, options) {\n return __awaiter(this, void 0, void 0, function* () {\n options = removeNils(options);\n options = Object.assign(Object.assign({}, authClient.options), options); // local options override SDK options\n // Load existing transaction meta from storage\n const validExistingMeta = getSavedTransactionMeta(authClient, options);\n if (validExistingMeta) {\n return validExistingMeta;\n }\n // No existing? Create new transaction meta.\n return createTransactionMeta(authClient, options);\n });\n}\nexport function saveTransactionMeta(authClient, meta) {\n authClient.transactionManager.save(meta, { muteWarning: true });\n}\nexport function clearTransactionMeta(authClient) {\n authClient.transactionManager.clear();\n}\nexport function isTransactionMetaValid(meta, options = {}) {\n // Validate against certain options. If these exist in options, they must match in meta\n const keys = [\n 'issuer',\n 'clientId',\n 'redirectUri',\n 'state',\n 'codeChallenge',\n 'codeChallengeMethod',\n 'activationToken',\n 'recoveryToken'\n ];\n if (isTransactionMetaValidForOptions(meta, options, keys) === false) {\n return false;\n }\n // Validate configured flow\n const { flow } = options;\n if (isTransactionMetaValidForFlow(meta, flow) === false) {\n return false;\n }\n return true;\n}\nexport function isTransactionMetaValidForFlow(meta, flow) {\n // Specific flows should not share transaction data\n const shouldValidateFlow = flow && flow !== 'default' && flow !== 'proceed';\n if (shouldValidateFlow) {\n if (flow !== meta.flow) {\n // The flow has changed; abandon the old transaction\n return false;\n }\n }\n return true;\n}\nexport function isTransactionMetaValidForOptions(meta, options, keys) {\n // returns false if values in meta do not match options\n // if the option does not have a value for a specific key, it is ignored\n const mismatch = keys.some(key => {\n const value = options[key];\n if (value && value !== meta[key]) {\n return true;\n }\n });\n return !mismatch;\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2021, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n/* eslint complexity:[0,8] */\nimport idx from './idx-js';\nimport { getSavedTransactionMeta, saveTransactionMeta } from './transactionMeta';\nimport { getOAuthBaseUrl } from '../oidc';\nimport { createTransactionMeta } from '.';\nimport { removeNils } from '../util';\nfunction getResponse(meta) {\n return {\n meta,\n interactionHandle: meta.interactionHandle,\n state: meta.state\n };\n}\n// Begin or resume a transaction. Returns an interaction handle\nexport function interact(authClient, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n options = removeNils(options);\n let meta = getSavedTransactionMeta(authClient, options);\n // If meta exists, it has been validated against all options\n if (meta === null || meta === void 0 ? void 0 : meta.interactionHandle) {\n return getResponse(meta); // Saved transaction, return meta\n }\n // Create new meta, respecting previous meta if it has been set and is not overridden\n meta = yield createTransactionMeta(authClient, Object.assign(Object.assign({}, meta), options));\n const baseUrl = getOAuthBaseUrl(authClient);\n let { clientId, redirectUri, state, scopes, withCredentials, codeChallenge, codeChallengeMethod, activationToken, recoveryToken, } = meta;\n const clientSecret = options.clientSecret || authClient.options.clientSecret;\n const interactionHandle = yield idx.interact({\n withCredentials,\n // OAuth\n clientId,\n baseUrl,\n scopes,\n state,\n redirectUri,\n // PKCE\n codeChallenge,\n codeChallengeMethod,\n // Activation\n activationToken,\n // Recovery\n recoveryToken,\n // X-Device-Token header need to pair with `client_secret`\n // eslint-disable-next-line max-len\n // https://oktawiki.atlassian.net/wiki/spaces/eng/pages/2445902453/Support+Device+Binding+in+interact#Scenario-1%3A-Non-User-Agent-with-Confidential-Client-(top-priority)\n clientSecret\n });\n const newMeta = Object.assign(Object.assign({}, meta), { interactionHandle,\n // Options which can be passed into interact() should be saved in the meta\n withCredentials,\n state,\n scopes,\n recoveryToken,\n activationToken });\n // Save transaction meta so it can be resumed\n saveTransactionMeta(authClient, newMeta);\n return getResponse(newMeta);\n });\n}\n","/*!\n * Copyright (c) 2021, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport idx from './idx-js';\nimport { isRawIdxResponse } from './types/idx-js';\nimport { getOAuthDomain } from '../oidc';\nimport { IDX_API_VERSION } from '../constants';\nexport function introspect(authClient, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n // try load from storage first\n let rawIdxResponse = authClient.transactionManager.loadIdxResponse();\n // call idx.introspect if no existing idx response available in storage\n if (!rawIdxResponse) {\n const version = options.version || IDX_API_VERSION;\n const domain = getOAuthDomain(authClient);\n try {\n rawIdxResponse = yield idx.introspect(Object.assign(Object.assign({ domain }, options), { version }));\n }\n catch (err) {\n if (isRawIdxResponse(err)) {\n rawIdxResponse = err;\n }\n else {\n throw err;\n }\n }\n }\n const { withCredentials } = options;\n return idx.makeIdxState(rawIdxResponse, { withCredentials });\n });\n}\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 */\nexport function getAllValues(idxRemediation) {\n var _a;\n return (_a = idxRemediation.value) === null || _a === void 0 ? void 0 : _a.map(r => r.name);\n}\nexport function getRequiredValues(idxRemediation) {\n var _a;\n return (_a = idxRemediation.value) === null || _a === void 0 ? void 0 : _a.reduce((required, cur) => {\n if (cur.required) {\n required.push(cur.name);\n }\n return required;\n }, []);\n}\nexport function titleCase(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n}\nexport function getAuthenticatorFromRemediation(remediation) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return remediation.value.find(({ name }) => name === 'authenticator');\n}\n","/* 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/* eslint-disable complexity */\nimport { AuthSdkError } from '../../../errors';\nimport { getAllValues, getRequiredValues, titleCase } from '../util';\n// Base class - DO NOT expose static remediationName\nexport class Remediator {\n constructor(remediation, values = {}) {\n // assign fields to the instance\n this.values = Object.assign({}, values);\n this.formatAuthenticators();\n this.remediation = remediation;\n }\n formatAuthenticators() {\n this.values.authenticators = (this.values.authenticators || []);\n // add string authenticator from input to \"authenticators\" field\n if (this.values.authenticator) {\n const hasAuthenticatorInList = this.values.authenticators.some(authenticator => {\n if (typeof authenticator === 'string') {\n return authenticator === this.values.authenticator;\n }\n return authenticator.key === this.values.authenticator;\n });\n if (!hasAuthenticatorInList) {\n this.values.authenticators.push({\n key: this.values.authenticator\n });\n }\n }\n // transform items in \"authenticators\" into one format\n this.values.authenticators = this.values.authenticators.map(authenticator => {\n return typeof authenticator === 'string' ? { key: authenticator } : authenticator;\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 getName() {\n return this.remediation.name;\n }\n // Override this method to provide custom check\n /* eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars */\n canRemediate() {\n if (!this.map) {\n return false;\n }\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 // returns an object for the entire remediation form, or just a part\n getData(key) {\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 // Map value by \"map${Property}\" function in each subClass\n if (typeof this[`map${titleCase(key)}`] === 'function') {\n return this[`map${titleCase(key)}`](this.remediation.value.find(({ name }) => name === key));\n }\n if (!this.map) {\n return this.values[key];\n }\n // Handle general primitive types\n const entry = this.map[key];\n if (!entry) {\n return this.values[key];\n }\n // find the first aliased property that returns a truthy value\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 hasData(key // idx name\n ) {\n // no attempt to format, we want simple true/false\n // First see if the remediation has a mapping for this value\n const data = this.getData(key);\n if (typeof data === 'object') {\n return !!Object.keys(data).find(key => !!data[key]);\n }\n return !!data;\n }\n getNextStep(_context) {\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 === null || authenticator === void 0 ? void 0 : authenticator.type;\n return Object.assign(Object.assign({ name,\n inputs }, (type && { type })), (authenticator && { authenticator }));\n }\n // Get inputs for the next step\n getInputs() {\n if (!this.map) {\n return [];\n }\n return Object.keys(this.map).reduce((inputs, key) => {\n const inputFromRemediation = this.remediation.value.find(item => item.name === key);\n if (!inputFromRemediation) {\n return inputs;\n }\n let input;\n const aliases = this.map[key];\n const { type } = inputFromRemediation;\n if (typeof this[`getInput${titleCase(key)}`] === 'function') {\n input = this[`getInput${titleCase(key)}`](inputFromRemediation);\n }\n else if (type !== 'object') {\n // handle general primitive types\n let name;\n if (aliases.length === 1) {\n name = aliases[0];\n }\n else {\n // try find key from values\n name = aliases.find(name => Object.keys(this.values).includes(name));\n }\n if (name) {\n input = Object.assign(Object.assign({}, inputFromRemediation), { name });\n }\n }\n if (!input) {\n throw new AuthSdkError(`Missing custom getInput${titleCase(key)} method in Remediator: ${this.getName()}`);\n }\n if (Array.isArray(input)) {\n input.forEach(i => inputs.push(i));\n }\n else {\n inputs.push(input);\n }\n return inputs;\n }, []);\n }\n static getMessages(remediation) {\n var _a, _b;\n if (!remediation.value) {\n return;\n }\n return (_b = (_a = remediation.value[0]) === null || _a === void 0 ? void 0 : _a.form) === null || _b === void 0 ? void 0 : _b.value.reduce((messages, field) => {\n if (field.messages) {\n messages = [...messages, ...field.messages.value];\n }\n return messages;\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() {\n const inputs = this.getInputs();\n for (const input of inputs) {\n delete this.values[input.name];\n }\n return this.values;\n }\n getAuthenticator() {\n var _a;\n return (_a = this.remediation.relatesTo) === null || _a === void 0 ? void 0 : _a.value;\n }\n}\n","import superPropBase from \"./superPropBase.js\";\nexport default function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","export class Authenticator {\n constructor(authenticator) {\n this.meta = authenticator;\n }\n}\n","import { Authenticator } from './Authenticator';\n// general authenticator to handle \"verificationCode\" input\n// it can be used for \"email\", \"phone\", \"google authenticator\"\n// a new authenticator class should be created if special cases need to be handled\nexport class VerificationCodeAuthenticator extends Authenticator {\n canVerify(values) {\n return !!(values.verificationCode || values.otp);\n }\n mapCredentials(values) {\n return { passcode: values.verificationCode || values.otp };\n }\n getInputs(idxRemediationValue) {\n var _a;\n return Object.assign(Object.assign({}, (_a = idxRemediationValue.form) === null || _a === void 0 ? void 0 : _a.value[0]), { name: 'verificationCode', type: 'string', required: idxRemediationValue.required });\n }\n}\n","import { VerificationCodeAuthenticator } from './VerificationCodeAuthenticator';\nexport class OktaVerifyTotp extends VerificationCodeAuthenticator {\n mapCredentials(values) {\n return { totp: values.verificationCode };\n }\n}\n","import { Authenticator } from './Authenticator';\nexport class OktaPassword extends Authenticator {\n canVerify(values) {\n return !!values.password;\n }\n mapCredentials(values) {\n return { passcode: values.password };\n }\n getInputs(idxRemediationValue) {\n var _a;\n return Object.assign(Object.assign({}, (_a = idxRemediationValue.form) === null || _a === void 0 ? void 0 : _a.value[0]), { name: 'password', type: 'string', required: idxRemediationValue.required });\n }\n}\n","import { Authenticator } from './Authenticator';\nexport class SecurityQuestionEnrollment extends Authenticator {\n canVerify(values) {\n const { questionKey, question, answer } = values;\n return !!(questionKey && answer) || !!(question && answer);\n }\n mapCredentials(values) {\n const { questionKey, question, answer } = values;\n return {\n questionKey: question ? 'custom' : questionKey,\n question,\n answer\n };\n }\n getInputs() {\n return [\n { name: 'questionKey', type: 'string', require: true },\n { name: 'question', type: 'string', label: 'Create a security question' },\n { name: 'answer', type: 'string', label: 'Answer', required: true },\n ];\n }\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { Authenticator } from './Authenticator';\nexport class SecurityQuestionVerification extends Authenticator {\n canVerify(values) {\n return !!values.answer;\n }\n mapCredentials(values) {\n return {\n questionKey: this.meta.contextualData.enrolledQuestion.questionKey,\n answer: values.answer\n };\n }\n getInputs() {\n return [\n { name: 'answer', type: 'string', label: 'Answer', required: true }\n ];\n }\n}\n","import { Authenticator } from './Authenticator';\nexport class WebauthnEnrollment extends Authenticator {\n canVerify(values) {\n const { clientData, attestation } = values;\n return !!(clientData && attestation);\n }\n mapCredentials(values) {\n const { clientData, attestation } = values;\n return {\n clientData,\n attestation\n };\n }\n getInputs() {\n return [\n { name: 'clientData', type: 'string', required: true, visible: false, label: 'Client Data' },\n { name: 'attestation', type: 'string', required: true, visible: false, label: 'Attestation' },\n ];\n }\n}\n","import { Authenticator } from './Authenticator';\nexport class WebauthnVerification extends Authenticator {\n canVerify(values) {\n const { clientData, authenticatorData, signatureData } = values;\n return !!(clientData && authenticatorData && signatureData);\n }\n mapCredentials(values) {\n const { authenticatorData, clientData, signatureData } = values;\n return {\n authenticatorData,\n clientData,\n signatureData\n };\n }\n getInputs() {\n return [\n { name: 'authenticatorData', type: 'string', label: 'Authenticator Data', required: true, visible: false },\n { name: 'clientData', type: 'string', label: 'Client Data', required: true, visible: false },\n { name: 'signatureData', type: 'string', label: 'Signature Data', required: true, visible: false },\n ];\n }\n}\n","import { OktaVerifyTotp } from './OktaVerifyTotp';\nimport { VerificationCodeAuthenticator } from './VerificationCodeAuthenticator';\nimport { OktaPassword } from './OktaPassword';\nimport { SecurityQuestionEnrollment } from './SecurityQuestionEnrollment';\nimport { SecurityQuestionVerification } from './SecurityQuestionVerification';\nimport { WebauthnEnrollment } from './WebauthnEnrollment';\nimport { WebauthnVerification } from './WebauthnVerification';\nimport { AuthenticatorKey } from '../types';\n/* eslint complexity:[0,8] */\nexport function getAuthenticator(remediation) {\n var _a, _b;\n const relatesTo = remediation.relatesTo;\n const value = (relatesTo === null || relatesTo === void 0 ? void 0 : relatesTo.value) || {};\n switch (value.key) {\n case AuthenticatorKey.OKTA_PASSWORD:\n return new OktaPassword(value);\n case AuthenticatorKey.SECURITY_QUESTION:\n if ((_a = value.contextualData) === null || _a === void 0 ? void 0 : _a.enrolledQuestion) {\n return new SecurityQuestionVerification(value);\n }\n else {\n return new SecurityQuestionEnrollment(value);\n }\n case AuthenticatorKey.OKTA_VERIFY:\n return new OktaVerifyTotp(value);\n case AuthenticatorKey.WEBAUTHN:\n if ((_b = value.contextualData) === null || _b === void 0 ? void 0 : _b.challengeData) {\n return new WebauthnVerification(value);\n }\n else {\n return new WebauthnEnrollment(value);\n }\n default:\n return new VerificationCodeAuthenticator(value);\n }\n}\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 */\nimport { Remediator } from './Remediator';\nimport { getAuthenticator } from '../../authenticator';\n// Base class - DO NOT expose static remediationName\nexport class VerifyAuthenticator extends Remediator {\n constructor(remediation, values = {}) {\n super(remediation, values);\n this.map = {\n 'credentials': []\n };\n this.authenticator = getAuthenticator(remediation);\n }\n getNextStep(context) {\n var _a;\n const nextStep = super.getNextStep(context);\n const authenticatorEnrollments = (_a = context === null || context === void 0 ? void 0 : context.authenticatorEnrollments) === null || _a === void 0 ? void 0 : _a.value;\n return Object.assign(Object.assign({}, nextStep), { authenticatorEnrollments });\n }\n canRemediate() {\n return this.authenticator.canVerify(this.values);\n }\n mapCredentials() {\n return this.authenticator.mapCredentials(this.values);\n }\n getInputCredentials(input) {\n return this.authenticator.getInputs(input);\n }\n}\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 */\nimport { VerifyAuthenticator } from './Base/VerifyAuthenticator';\nexport class EnrollAuthenticator extends VerifyAuthenticator {\n}\nEnrollAuthenticator.remediationName = 'enroll-authenticator';\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\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 */\nimport { Remediator } from './Base/Remediator';\nexport class EnrollPoll extends Remediator {\n canRemediate() {\n return Boolean(this.values.startPolling);\n }\n getNextStep(context) {\n const common = super.getNextStep(context);\n let authenticator = this.getAuthenticator();\n if (!authenticator && (context === null || context === void 0 ? void 0 : context.currentAuthenticator)) {\n authenticator = context.currentAuthenticator.value;\n }\n return Object.assign(Object.assign({}, common), { authenticator, poll: {\n required: true,\n refresh: this.remediation.refresh\n } });\n }\n getValuesAfterProceed() {\n let trimmedValues = Object.keys(this.values).filter(valueKey => valueKey !== 'startPolling');\n return trimmedValues.reduce((values, valueKey) => (Object.assign(Object.assign({}, values), { [valueKey]: this.values[valueKey] })), {});\n }\n}\nEnrollPoll.remediationName = 'enroll-poll';\n","/*!\n * Copyright (c) 2021-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 */\nimport { Remediator } from './Base/Remediator';\nimport { getAuthenticatorFromRemediation } from './util';\nexport class SelectEnrollmentChannel extends Remediator {\n canRemediate() {\n return Boolean(this.values.channel);\n }\n getNextStep(context) {\n const common = super.getNextStep();\n const options = this.getChannels();\n const authenticator = context.currentAuthenticator.value;\n return Object.assign(Object.assign(Object.assign({}, common), (options && { options })), { authenticator });\n }\n getChannels() {\n var _a;\n const authenticator = getAuthenticatorFromRemediation(this.remediation);\n const remediationValue = authenticator.value;\n return (_a = remediationValue.form.value.find(({ name }) => name === 'channel')) === null || _a === void 0 ? void 0 : _a.options;\n }\n getData() {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const remediationValue = this.remediation.value[0].value;\n return {\n authenticator: {\n id: remediationValue.form.value[0].value,\n channel: this.values.channel,\n },\n stateHandle: this.values.stateHandle,\n };\n }\n getValuesAfterProceed() {\n let trimmedValues = Object.keys(this.values).filter(valueKey => valueKey !== 'channel');\n return trimmedValues.reduce((values, valueKey) => (Object.assign(Object.assign({}, values), { [valueKey]: this.values[valueKey] })), {});\n }\n}\nSelectEnrollmentChannel.remediationName = 'select-enrollment-channel';\n","/*!\n * Copyright (c) 2021-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 */\nimport { Remediator } from './Base/Remediator';\nexport class EnrollmentChannelData extends Remediator {\n constructor() {\n super(...arguments);\n this.map = {\n email: [],\n phoneNumber: []\n };\n }\n getInputEmail() {\n return [\n { name: 'email', type: 'string', required: true, label: 'Email' },\n ];\n }\n getInputPhoneNumber() {\n return [\n { name: 'phoneNumber', type: 'string', required: true, label: 'Phone Number' },\n ];\n }\n canRemediate() {\n return Boolean(this.values.email || this.values.phoneNumber);\n }\n getNextStep(context) {\n const common = super.getNextStep();\n const authenticator = context.currentAuthenticator.value;\n return Object.assign(Object.assign({}, common), { authenticator });\n }\n getData() {\n return {\n stateHandle: this.values.stateHandle,\n email: this.values.email,\n phoneNumber: this.values.phoneNumber\n };\n }\n getValuesAfterProceed() {\n let trimmedValues = Object.keys(this.values).filter(valueKey => !['email', 'phoneNumber'].includes(valueKey));\n return trimmedValues.reduce((values, valueKey) => (Object.assign(Object.assign({}, values), { [valueKey]: this.values[valueKey] })), {});\n }\n}\nEnrollmentChannelData.remediationName = 'enrollment-channel-data';\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 */\nimport { VerifyAuthenticator } from './Base/VerifyAuthenticator';\nexport class ChallengeAuthenticator extends VerifyAuthenticator {\n}\nChallengeAuthenticator.remediationName = 'challenge-authenticator';\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 */\nimport { EnrollPoll } from './EnrollPoll';\nexport class ChallengePoll extends EnrollPoll {\n}\nChallengePoll.remediationName = 'challenge-poll';\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 */\nimport { VerifyAuthenticator } from './Base/VerifyAuthenticator';\nexport class ResetAuthenticator extends VerifyAuthenticator {\n}\nResetAuthenticator.remediationName = 'reset-authenticator';\n","/* 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 */\nimport { Remediator } from './Base/Remediator';\nexport class EnrollProfile extends Remediator {\n constructor() {\n super(...arguments);\n this.map = {\n 'userProfile': []\n };\n }\n canRemediate() {\n const userProfileFromValues = this.getData().userProfile;\n // eslint-disable-next-line max-len\n const userProfileFromRemediation = this.remediation.value.find(({ name }) => name === 'userProfile');\n return userProfileFromRemediation.form.value.reduce((canRemediate, curr) => {\n if (curr.required) {\n canRemediate = canRemediate && !!userProfileFromValues[curr.name];\n }\n return canRemediate;\n }, true);\n }\n mapUserProfile({ form: { value: profileAttributes } }) {\n const attributeNames = profileAttributes.map(({ name }) => name);\n return attributeNames.reduce((attributeValues, attributeName) => (this.values[attributeName] ? Object.assign(Object.assign({}, attributeValues), { [attributeName]: this.values[attributeName] }) : attributeValues), {});\n }\n getInputUserProfile(input) {\n return [...input.form.value];\n }\n getErrorMessages(errorRemediation) {\n return errorRemediation.value[0].form.value.reduce((errors, field) => {\n if (field.messages) {\n errors.push(field.messages.value[0].message);\n }\n return errors;\n }, []);\n }\n}\nEnrollProfile.remediationName = 'enroll-profile';\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 */\nimport { Remediator } from './Base/Remediator';\nexport class Identify extends Remediator {\n constructor() {\n super(...arguments);\n this.map = {\n 'identifier': ['username'],\n 'credentials': [],\n 'rememberMe': ['rememberMe'],\n };\n }\n canRemediate() {\n const { identifier } = this.getData();\n return !!identifier;\n }\n mapCredentials() {\n return { passcode: this.values.password };\n }\n getInputCredentials(input) {\n return Object.assign(Object.assign({}, input.form.value[0]), { name: 'password', required: input.required });\n }\n}\nIdentify.remediationName = 'identify';\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 */\nimport { Remediator } from './Base/Remediator';\nexport class ReEnrollAuthenticator extends Remediator {\n constructor() {\n super(...arguments);\n this.map = {\n 'credentials': []\n };\n }\n mapCredentials() {\n return {\n passcode: this.values.newPassword,\n };\n }\n getInputCredentials(input) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const challengeType = this.getAuthenticator().type;\n const name = challengeType === 'password' ? 'newPassword' : 'verificationCode';\n return Object.assign(Object.assign({}, input.form.value[0]), { name });\n }\n}\nReEnrollAuthenticator.remediationName = 'reenroll-authenticator';\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 */\nimport { Remediator } from './Base/Remediator';\nexport class RedirectIdp extends Remediator {\n canRemediate() {\n return false;\n }\n getNextStep() {\n const { name, type, idp, href } = this.remediation;\n return {\n name,\n type,\n idp,\n href\n };\n }\n}\nRedirectIdp.remediationName = 'redirect-idp';\n","/* 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 */\nimport { Remediator } from './Remediator';\nimport { getAuthenticatorFromRemediation } from '../util';\n// Base class - DO NOT expose static remediationName\nexport class SelectAuthenticator extends Remediator {\n constructor() {\n super(...arguments);\n this.map = {\n authenticator: []\n };\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 canRemediate() {\n const { authenticators } = 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 // Proceed with provided authenticators\n const matchedOption = this.findMatchedOption(authenticators, options);\n if (matchedOption) {\n return true;\n }\n return false;\n }\n getNextStep() {\n const common = super.getNextStep();\n const authenticatorFromRemediation = getAuthenticatorFromRemediation(this.remediation);\n const options = authenticatorFromRemediation.options.map(option => {\n const { label, relatesTo } = option;\n const key = relatesTo.key;\n return { label, value: key };\n });\n return Object.assign(Object.assign({}, common), { options });\n }\n mapAuthenticator(remediationValue) {\n const { authenticators } = this.values;\n const { options } = remediationValue;\n const selectedOption = this.findMatchedOption(authenticators, options);\n // track the selected authenticator\n this.selectedAuthenticator = selectedOption.relatesTo;\n this.selectedOption = selectedOption;\n return {\n id: selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.value.form.value.find(({ name }) => name === 'id').value\n };\n }\n getInputAuthenticator() {\n return { name: 'authenticator', key: 'string' };\n }\n getValuesAfterProceed() {\n this.values = super.getValuesAfterProceed();\n // remove used authenticators\n const authenticators = this.values.authenticators\n .filter(authenticator => {\n return authenticator.key !== this.selectedAuthenticator.key;\n });\n return Object.assign(Object.assign({}, this.values), { authenticators });\n }\n}\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 */\nimport { SelectAuthenticator } from './Base/SelectAuthenticator';\nimport { getAuthenticatorFromRemediation } from './util';\nimport { AuthenticatorKey } from '../types';\nexport class SelectAuthenticatorAuthenticate extends SelectAuthenticator {\n constructor(remediation, values = {}) {\n var _a;\n super(remediation, values);\n // Preset password authenticator to trigger recover action\n const hasPasswordInOptions = (_a = getAuthenticatorFromRemediation(remediation)\n .options) === null || _a === void 0 ? void 0 : _a.some(({ relatesTo }) => (relatesTo === null || relatesTo === void 0 ? void 0 : relatesTo.key) === AuthenticatorKey.OKTA_PASSWORD);\n if (hasPasswordInOptions && (this.values.flow === 'recoverPassword' || this.values.password)) {\n this.values.authenticators = [\n ...this.values.authenticators || [],\n { key: AuthenticatorKey.OKTA_PASSWORD }\n ];\n }\n }\n}\nSelectAuthenticatorAuthenticate.remediationName = 'select-authenticator-authenticate';\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 */\nimport { SelectAuthenticator } from './Base/SelectAuthenticator';\nexport class SelectAuthenticatorEnroll extends SelectAuthenticator {\n}\nSelectAuthenticatorEnroll.remediationName = 'select-authenticator-enroll';\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 */\nimport { SelectAuthenticator } from './Base/SelectAuthenticator';\nexport class SelectAuthenticatorUnlockAccount extends SelectAuthenticator {\n constructor() {\n super(...arguments);\n this.map = {\n authenticator: [],\n identifier: ['username']\n };\n }\n canRemediate() {\n const identifier = this.getData('identifier');\n return !!identifier && super.canRemediate();\n }\n mapAuthenticator(remediationValue) {\n var _a, _b, _c;\n const authenticatorMap = super.mapAuthenticator(remediationValue);\n const methodTypeOption = (_a = this.selectedOption) === null || _a === void 0 ? void 0 : _a.value.form.value.find(({ name }) => name === 'methodType');\n // defaults to 'manually defined' value\n // 2nd: option may have pre-defined value, like stateHandle\n // 3rd: if only a single OV option is available, default to that option\n const methodTypeValue = this.values.methodType ||\n (methodTypeOption === null || methodTypeOption === void 0 ? void 0 : methodTypeOption.value) || ((_c = (_b = methodTypeOption === null || methodTypeOption === void 0 ? void 0 : methodTypeOption.options) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.value);\n if (methodTypeValue) {\n return Object.assign(Object.assign({}, authenticatorMap), { methodType: methodTypeValue });\n }\n return authenticatorMap;\n }\n getInputUsername() {\n return { name: 'username', key: 'string' };\n }\n}\nSelectAuthenticatorUnlockAccount.remediationName = 'select-authenticator-unlock-account';\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 */\nimport { Remediator } from './Base/Remediator';\nexport class SelectEnrollProfile extends Remediator {\n canRemediate() {\n return true;\n }\n}\nSelectEnrollProfile.remediationName = 'select-enroll-profile';\n","/* 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 */\nimport { Remediator } from './Remediator';\n// Base class - DO NOT expose static remediationName\nexport class AuthenticatorData extends Remediator {\n constructor(remediation, values = {}) {\n super(remediation, values);\n this.map = {\n 'authenticator': []\n };\n // set before other data calculation\n this.authenticator = this.getAuthenticator();\n this.formatAuthenticatorData();\n }\n formatAuthenticatorData() {\n const authenticatorData = this.getAuthenticatorData();\n if (authenticatorData) {\n this.values.authenticatorsData = this.values.authenticatorsData.map(data => {\n if (data.key === this.authenticator.key) {\n return this.mapAuthenticatorDataFromValues(data);\n }\n return data;\n });\n }\n else {\n const data = this.mapAuthenticatorDataFromValues();\n if (data) {\n this.values.authenticatorsData.push(data);\n }\n }\n }\n getAuthenticatorData() {\n return this.values.authenticatorsData\n .find(({ key }) => key === this.authenticator.key);\n }\n canRemediate() {\n return this.values.authenticatorsData\n .some(data => data.key === this.authenticator.key);\n }\n getNextStep() {\n const common = super.getNextStep();\n const options = this.getMethodTypes();\n return Object.assign(Object.assign({}, common), (options && { options }));\n }\n mapAuthenticatorDataFromValues(authenticatorData) {\n // add methodType to authenticatorData if it exists in values\n const { methodType } = this.values;\n const data = Object.assign(Object.assign({ key: this.authenticator.key }, (authenticatorData && authenticatorData)), (methodType && { methodType }));\n return data.methodType ? data : null;\n }\n getAuthenticatorFromRemediation() {\n const authenticator = this.remediation.value\n .find(({ name }) => name === 'authenticator');\n return authenticator;\n }\n getMethodTypes() {\n var _a;\n const authenticator = this.getAuthenticatorFromRemediation();\n return (_a = authenticator.form.value.find(({ name }) => name === 'methodType')) === null || _a === void 0 ? void 0 : _a.options;\n }\n getValuesAfterProceed() {\n this.values = super.getValuesAfterProceed();\n // remove used authenticatorData\n const authenticatorsData = this.values.authenticatorsData\n .filter(data => data.key !== this.authenticator.key);\n return Object.assign(Object.assign({}, this.values), { authenticatorsData });\n }\n}\n","/* 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 */\nimport { AuthenticatorData } from './Base/AuthenticatorData';\nexport class AuthenticatorVerificationData extends AuthenticatorData {\n mapAuthenticator() {\n var _a;\n const authenticatorData = this.getAuthenticatorData();\n const authenticatorFromRemediation = this.getAuthenticatorFromRemediation();\n return {\n id: authenticatorFromRemediation.form.value\n .find(({ name }) => name === 'id').value,\n enrollmentId: (_a = authenticatorFromRemediation.form.value\n .find(({ name }) => name === 'enrollmentId')) === null || _a === void 0 ? void 0 : _a.value,\n methodType: authenticatorData.methodType,\n };\n }\n getInputAuthenticator() {\n const authenticator = this.getAuthenticatorFromRemediation();\n const methodType = authenticator.form.value.find(({ name }) => name === 'methodType');\n // if has methodType in form, let user select the methodType\n if (methodType && methodType.options) {\n return { name: 'methodType', type: 'string', required: true };\n }\n // no methodType, then return form values\n const inputs = [...authenticator.form.value];\n return inputs;\n }\n}\nAuthenticatorVerificationData.remediationName = 'authenticator-verification-data';\n","/* 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 */\nimport { AuthenticatorData } from './Base/AuthenticatorData';\nimport { getAuthenticatorFromRemediation } from './util';\nexport class AuthenticatorEnrollmentData extends AuthenticatorData {\n mapAuthenticator() {\n const authenticatorData = this.getAuthenticatorData();\n const authenticatorFromRemediation = getAuthenticatorFromRemediation(this.remediation);\n return {\n id: authenticatorFromRemediation.form.value\n .find(({ name }) => name === 'id').value,\n methodType: authenticatorData.methodType,\n phoneNumber: authenticatorData.phoneNumber,\n };\n }\n getInputAuthenticator() {\n return [\n { name: 'methodType', type: 'string', required: true },\n { name: 'phoneNumber', type: 'string', required: true, label: 'Phone Number' },\n ];\n }\n mapAuthenticatorDataFromValues(data) {\n // get mapped authenticator from base class\n data = super.mapAuthenticatorDataFromValues(data);\n // add phoneNumber to authenticator if it exists in values\n const { phoneNumber } = this.values;\n data = Object.assign(Object.assign({}, (data && data)), (phoneNumber && { phoneNumber }));\n return (data.phoneNumber && data.methodType) ? data : null;\n }\n}\nAuthenticatorEnrollmentData.remediationName = 'authenticator-enrollment-data';\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 */\nimport { Remediator } from './Base/Remediator';\nexport class Skip extends Remediator {\n constructor() {\n super(...arguments);\n this.map = {\n skip: ['skip']\n };\n }\n canRemediate() {\n return !!this.values.skip;\n }\n}\nSkip.remediationName = 'skip';\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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/* eslint-disable max-statements, max-depth, complexity */\nimport { AuthSdkError } from '../errors';\nimport { Remediator } from './remediators';\nimport { isIdxResponse, } from './types/idx-js';\n// Return first match idxRemediation in allowed remediators\nexport function getRemediator(idxRemediations, values, options) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const remediators = options.remediators;\n let remediator;\n // remediation name specified by caller - fast-track remediator lookup \n if (options.step) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const remediation = idxRemediations.find(({ name }) => name === options.step);\n const T = remediators[remediation.name];\n return new T(remediation, values);\n }\n const remediatorCandidates = [];\n for (let remediation of idxRemediations) {\n const isRemeditionInFlow = Object.keys(remediators).includes(remediation.name);\n if (!isRemeditionInFlow) {\n continue;\n }\n const T = remediators[remediation.name];\n remediator = new T(remediation, values);\n if (remediator.canRemediate()) {\n // found the remediator\n return remediator;\n }\n // remediator cannot handle the current values\n // maybe return for next step\n remediatorCandidates.push(remediator);\n }\n return remediatorCandidates[0];\n}\nfunction isTerminalResponse(idxResponse) {\n const { neededToProceed, interactionCode } = idxResponse;\n return !neededToProceed.length && !interactionCode;\n}\nfunction canSkipFn(idxResponse) {\n return idxResponse.neededToProceed.some(({ name }) => name === 'skip');\n}\nfunction canResendFn(idxResponse) {\n return Object.keys(idxResponse.actions).some(actionName => actionName.includes('resend'));\n}\nfunction getIdxMessages(idxResponse) {\n var _a;\n let messages = [];\n const { rawIdxState, neededToProceed } = idxResponse;\n // Handle global messages\n const globalMessages = (_a = rawIdxState.messages) === null || _a === void 0 ? void 0 : _a.value.map(message => message);\n if (globalMessages) {\n messages = [...messages, ...globalMessages];\n }\n // Handle field messages for current flow\n for (let remediation of neededToProceed) {\n const fieldMessages = Remediator.getMessages(remediation);\n if (fieldMessages) {\n messages = [...messages, ...fieldMessages];\n }\n }\n return messages;\n}\nfunction getNextStep(remediator, idxResponse) {\n const nextStep = remediator.getNextStep(idxResponse.context);\n const canSkip = canSkipFn(idxResponse);\n const canResend = canResendFn(idxResponse);\n return Object.assign(Object.assign(Object.assign({}, nextStep), (canSkip && { canSkip })), (canResend && { canResend }));\n}\nfunction handleIdxError(e, remediator) {\n // Handle idx messages\n const idxState = isIdxResponse(e) ? e : null;\n if (!idxState) {\n // Thrown error terminates the interaction with idx\n throw e;\n }\n const terminal = isTerminalResponse(idxState);\n const messages = getIdxMessages(idxState);\n if (terminal) {\n return { terminal, messages };\n }\n else {\n const nextStep = remediator && getNextStep(remediator, idxState);\n return Object.assign({ messages }, (nextStep && { nextStep }));\n }\n}\nfunction getActionFromValues(values, idxResponse) {\n // Currently support resend actions only\n return Object.keys(idxResponse.actions).find(action => !!values.resend && action.includes('-resend'));\n}\nfunction removeActionFromValues(values) {\n // Currently support resend actions only\n values.resend = undefined;\n return values;\n}\n// This function is called recursively until it reaches success or cannot be remediated\nexport function remediate(idxResponse, values, options) {\n return __awaiter(this, void 0, void 0, function* () {\n let { neededToProceed, interactionCode } = idxResponse;\n const { remediators, flow } = options;\n // If the response contains an interaction code, there is no need to remediate\n if (interactionCode) {\n return { idxResponse };\n }\n // Reach to terminal state\n const terminal = isTerminalResponse(idxResponse);\n const messages = getIdxMessages(idxResponse);\n if (terminal) {\n return { terminal, messages };\n }\n // Try actions in idxResponse first\n const actionFromValues = getActionFromValues(values, idxResponse);\n const actions = [\n ...options.actions || [],\n ...(actionFromValues && [actionFromValues] || []),\n ];\n if (actions) {\n for (let action of actions) {\n let valuesWithoutExecutedAction = removeActionFromValues(values);\n if (typeof idxResponse.actions[action] === 'function') {\n try {\n idxResponse = yield idxResponse.actions[action]();\n }\n catch (e) {\n return handleIdxError(e, remediators);\n }\n if (action === 'cancel') {\n return { canceled: true };\n }\n return remediate(idxResponse, valuesWithoutExecutedAction, options); // recursive call\n }\n // search for action in remediation list\n const remediationAction = neededToProceed.find(({ name }) => name === action);\n if (remediationAction) {\n try {\n idxResponse = yield idxResponse.proceed(action, {});\n }\n catch (e) {\n return handleIdxError(e, remediators);\n }\n return remediate(idxResponse, values, options); // recursive call\n }\n }\n }\n const remediator = getRemediator(neededToProceed, values, options);\n if (!remediator && flow === 'default') {\n return { idxResponse };\n }\n if (!remediator) {\n throw new AuthSdkError(`\n No remediation can match current flow, check policy settings in your org.\n Remediations: [${neededToProceed.reduce((acc, curr) => acc ? acc + ' ,' + curr.name : curr.name, '')}]\n `);\n }\n if (messages.length) {\n const nextStep = getNextStep(remediator, idxResponse);\n return { nextStep, messages };\n }\n // Return next step to the caller\n if (!remediator.canRemediate()) {\n const nextStep = getNextStep(remediator, idxResponse);\n return { idxResponse, nextStep };\n }\n const name = remediator.getName();\n const data = remediator.getData();\n try {\n idxResponse = yield idxResponse.proceed(name, data);\n // We may want to trim the values bag for the next remediation\n // Let the remediator decide what the values should be (default to current values)\n values = remediator.getValuesAfterProceed();\n return remediate(idxResponse, values, options); // recursive call\n }\n catch (e) {\n return handleIdxError(e, remediator);\n }\n });\n}\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 */\nimport { Identify, SelectAuthenticatorAuthenticate, ChallengeAuthenticator, ReEnrollAuthenticator, RedirectIdp, AuthenticatorEnrollmentData, SelectAuthenticatorEnroll, EnrollAuthenticator, AuthenticatorVerificationData, EnrollPoll, ChallengePoll, Skip } from '../remediators';\nexport const AuthenticationFlow = {\n 'identify': Identify,\n 'select-authenticator-authenticate': SelectAuthenticatorAuthenticate,\n 'select-authenticator-enroll': SelectAuthenticatorEnroll,\n 'authenticator-enrollment-data': AuthenticatorEnrollmentData,\n 'authenticator-verification-data': AuthenticatorVerificationData,\n 'enroll-authenticator': EnrollAuthenticator,\n 'challenge-authenticator': ChallengeAuthenticator,\n 'challenge-poll': ChallengePoll,\n 'reenroll-authenticator': ReEnrollAuthenticator,\n 'enroll-poll': EnrollPoll,\n 'redirect-idp': RedirectIdp,\n 'skip': Skip,\n};\n","/*!\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 */\nimport { Identify, SelectAuthenticatorAuthenticate, ChallengeAuthenticator, AuthenticatorVerificationData, ResetAuthenticator, ReEnrollAuthenticator, SelectAuthenticatorEnroll, AuthenticatorEnrollmentData, EnrollPoll } from '../remediators';\nexport const PasswordRecoveryFlow = {\n 'identify': Identify,\n 'identify-recovery': Identify,\n 'select-authenticator-authenticate': SelectAuthenticatorAuthenticate,\n 'select-authenticator-enroll': SelectAuthenticatorEnroll,\n 'challenge-authenticator': ChallengeAuthenticator,\n 'authenticator-verification-data': AuthenticatorVerificationData,\n 'authenticator-enrollment-data': AuthenticatorEnrollmentData,\n 'reset-authenticator': ResetAuthenticator,\n 'reenroll-authenticator': ReEnrollAuthenticator,\n 'enroll-poll': EnrollPoll,\n};\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 */\nimport { SelectEnrollProfile, EnrollPoll, SelectEnrollmentChannel, EnrollmentChannelData, EnrollProfile, SelectAuthenticatorEnroll, EnrollAuthenticator, AuthenticatorEnrollmentData, Skip, } from '../remediators';\nexport const RegistrationFlow = {\n 'select-enroll-profile': SelectEnrollProfile,\n 'enroll-profile': EnrollProfile,\n 'authenticator-enrollment-data': AuthenticatorEnrollmentData,\n 'select-authenticator-enroll': SelectAuthenticatorEnroll,\n 'enroll-poll': EnrollPoll,\n 'select-enrollment-channel': SelectEnrollmentChannel,\n 'enrollment-channel-data': EnrollmentChannelData,\n 'enroll-authenticator': EnrollAuthenticator,\n 'skip': Skip,\n};\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 */\nimport { Identify, SelectAuthenticatorUnlockAccount, SelectAuthenticatorAuthenticate, ChallengeAuthenticator, ChallengePoll, AuthenticatorVerificationData } from '../remediators';\nexport const AccountUnlockFlow = {\n 'identify': Identify,\n // NOTE: unlock-account is purposely not included. Handled as action\n // because it's a rememdiation which requires no input\n // 'unlock-account': UnlockAccount,\n 'select-authenticator-unlock-account': SelectAuthenticatorUnlockAccount,\n 'select-authenticator-authenticate': SelectAuthenticatorAuthenticate,\n 'challenge-authenticator': ChallengeAuthenticator,\n 'challenge-poll': ChallengePoll,\n 'authenticator-verification-data': AuthenticatorVerificationData,\n};\n","import { AuthenticationFlow } from './AuthenticationFlow';\nimport { PasswordRecoveryFlow } from './PasswordRecoveryFlow';\nimport { RegistrationFlow } from './RegistrationFlow';\nimport { AccountUnlockFlow } from './AccountUnlockFlow';\n// eslint-disable-next-line complexity\nexport function getFlowSpecification(oktaAuth, flow = 'default') {\n let remediators, actions, withCredentials = true;\n switch (flow) {\n case 'register':\n case 'signup':\n case 'enrollProfile':\n remediators = RegistrationFlow;\n withCredentials = false;\n break;\n case 'recoverPassword':\n case 'resetPassword':\n remediators = PasswordRecoveryFlow;\n actions = [\n 'currentAuthenticator-recover',\n 'currentAuthenticatorEnrollment-recover'\n ];\n withCredentials = false;\n break;\n case 'unlockAccount':\n remediators = AccountUnlockFlow;\n withCredentials = false;\n actions = [\n 'unlock-account'\n ];\n break;\n case 'authenticate':\n case 'login':\n case 'signin':\n remediators = AuthenticationFlow;\n break;\n default:\n // default case has no flow monitor\n remediators = AuthenticationFlow;\n break;\n }\n return { flow, remediators, actions, withCredentials };\n}\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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/* eslint-disable max-statements, complexity, max-depth */\nimport { interact } from './interact';\nimport { introspect } from './introspect';\nimport { remediate } from './remediate';\nimport { getFlowSpecification } from './flow';\nimport * as remediators from './remediators';\nimport { IdxStatus, IdxFeature, } from '../types';\nimport { isIdxResponse } from './types/idx-js';\nimport { getSavedTransactionMeta } from './transactionMeta';\nfunction getEnabledFeatures(idxResponse) {\n const res = [];\n const { actions, neededToProceed } = idxResponse;\n if (actions['currentAuthenticator-recover']) {\n res.push(IdxFeature.PASSWORD_RECOVERY);\n }\n if (neededToProceed.some(({ name }) => name === 'select-enroll-profile')) {\n res.push(IdxFeature.REGISTRATION);\n }\n if (neededToProceed.some(({ name }) => name === 'redirect-idp')) {\n res.push(IdxFeature.SOCIAL_IDP);\n }\n if (neededToProceed.some(({ name }) => name === 'unlock-account')) {\n res.push(IdxFeature.ACCOUNT_UNLOCK);\n }\n return res;\n}\nfunction getAvailableSteps(idxResponse) {\n const res = [];\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 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));\n }\n }\n return res;\n}\nexport function run(authClient, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\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 try {\n let { flow, state, scopes, version, remediators, actions, withCredentials, exchangeCodeForTokens, autoRemediate, step, recoveryToken, activationToken } = options;\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 // Try to resume saved transaction\n metaFromResp = getSavedTransactionMeta(authClient, { state, recoveryToken, activationToken });\n interactionHandle = metaFromResp === null || metaFromResp === void 0 ? void 0 : metaFromResp.interactionHandle; // may be undefined\n if (!interactionHandle) {\n // start a new transaction\n authClient.transactionManager.clear();\n const interactResponse = yield interact(authClient, {\n withCredentials,\n state,\n scopes,\n activationToken,\n recoveryToken\n });\n interactionHandle = interactResponse.interactionHandle;\n metaFromResp = interactResponse.meta;\n withCredentials = metaFromResp.withCredentials;\n }\n // Introspect to get idx response\n idxResponse = yield introspect(authClient, { withCredentials, version, interactionHandle });\n enabledFeatures = getEnabledFeatures(idxResponse);\n availableSteps = getAvailableSteps(idxResponse);\n // Include meta in the transaction response\n meta = metaFromResp;\n if (autoRemediate !== false && (remediators || actions)) {\n const values = Object.assign(Object.assign({}, options), { stateHandle: idxResponse.rawIdxState.stateHandle });\n // Can we handle the remediations?\n const { idxResponse: idxResponseFromResp, nextStep: nextStepFromResp, terminal, canceled, messages: messagesFromResp, } = yield remediate(idxResponse, values, { remediators, actions, flow, step });\n idxResponse = idxResponseFromResp || idxResponse;\n // Track fields from remediation response\n nextStep = nextStepFromResp;\n messages = messagesFromResp;\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 if (terminal) {\n status = IdxStatus.TERMINAL;\n shouldClearTransaction = true;\n clearSharedStorage = false; // transaction may be continued in another tab\n }\n if (canceled) {\n status = IdxStatus.CANCELED;\n shouldClearTransaction = true;\n }\n else if (idxResponse === null || idxResponse === void 0 ? void 0 : idxResponse.interactionCode) {\n interactionCode = idxResponse.interactionCode;\n if (exchangeCodeForTokens === false) {\n status = IdxStatus.SUCCESS;\n shouldClearTransaction = false;\n }\n else {\n // exchange the interaction code for tokens\n const { clientId, codeVerifier, ignoreSignature, redirectUri, urls, scopes, } = metaFromResp;\n tokens = yield authClient.token.exchangeCodeForTokens({\n interactionCode,\n clientId,\n codeVerifier,\n ignoreSignature,\n redirectUri,\n scopes\n }, urls);\n status = IdxStatus.SUCCESS;\n shouldClearTransaction = true;\n }\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 }\n else {\n // error is not an IDX response, throw it like a regular error\n throw err;\n }\n }\n if (shouldClearTransaction) {\n authClient.transactionManager.clear({ clearSharedStorage });\n }\n // from idx-js, used by the widget\n const { actions, context, neededToProceed, proceed, rawIdxState } = idxResponse || {};\n return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ status }, (meta && { meta })), (enabledFeatures && { enabledFeatures })), (availableSteps && { availableSteps })), (tokens && { tokens: tokens.tokens })), (nextStep && { nextStep })), (messages && { messages })), (error && { error })), { interactionCode,\n // from idx-js\n actions,\n context,\n neededToProceed,\n proceed,\n rawIdxState });\n });\n}\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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { AuthenticatorKey } from '../types';\nimport { run } from './run';\nexport function authenticate(authClient, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n if (options.password && !options.authenticator) {\n options.authenticator = AuthenticatorKey.OKTA_PASSWORD;\n }\n return run(authClient, Object.assign(Object.assign({}, options), { flow: 'authenticate' }));\n });\n}\n","/*!\n * Copyright (c) 2021, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { run } from './run';\nimport { getFlowSpecification } from './flow';\nexport function cancel(authClient, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const meta = authClient.transactionManager.load();\n const flowSpec = getFlowSpecification(authClient, meta.flow);\n return run(authClient, Object.assign(Object.assign(Object.assign({}, options), flowSpec), { actions: ['cancel'] }));\n });\n}\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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport CustomError from '../errors/CustomError';\nimport { urlParamsToObject } from '../oidc/util/urlParams';\nexport class EmailVerifyCallbackError extends CustomError {\n constructor(state, otp) {\n super(`Enter the OTP code in the originating client: ${otp}`);\n this.name = 'EmailVerifyCallbackError';\n this.state = state;\n this.otp = otp;\n }\n}\nexport function isEmailVerifyCallbackError(error) {\n return (error.name === 'EmailVerifyCallbackError');\n}\n// Check if state && otp have been passed back in the url\nexport function isEmailVerifyCallback(urlPath) {\n return /(otp=)/i.test(urlPath) && /(state=)/i.test(urlPath);\n}\n// Parse state and otp from a urlPath (should be either a search or fragment from the URL)\nexport function parseEmailVerifyCallback(urlPath) {\n return urlParamsToObject(urlPath);\n}\nexport function handleEmailVerifyCallback(authClient, search) {\n return __awaiter(this, void 0, void 0, function* () {\n if (isEmailVerifyCallback(search)) {\n const { state, otp } = parseEmailVerifyCallback(search);\n if (authClient.idx.canProceed({ state })) {\n // same browser / device\n return yield authClient.idx.proceed({ state, otp });\n }\n else {\n // different browser or device\n throw new EmailVerifyCallbackError(state, otp);\n }\n }\n });\n}\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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { run } from './run';\nimport { getSavedTransactionMeta } from './transactionMeta';\nimport { AuthSdkError } from '../errors';\nexport function canProceed(authClient, options) {\n const meta = getSavedTransactionMeta(authClient, options);\n return !!meta;\n}\nexport function proceed(authClient, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const { state } = options;\n const meta = getSavedTransactionMeta(authClient, { state });\n // Proceed always needs saved transaction meta\n if (!meta) {\n throw new AuthSdkError('Unable to proceed: saved transaction could not be loaded');\n }\n // Determine the flow specification based on the saved flow\n const flow = meta === null || meta === void 0 ? void 0 : meta.flow;\n return run(authClient, Object.assign(Object.assign({}, options), { flow }));\n });\n}\n","/*!\n * Copyright (c) 2021-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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { proceed } from './proceed';\nimport { getSavedTransactionMeta } from './transactionMeta';\nimport { warn } from '../util';\nexport function poll(authClient, options = {}) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n let transaction = yield proceed(authClient, {\n startPolling: true\n });\n const meta = getSavedTransactionMeta(authClient);\n let availablePollingRemeditaions = (_a = meta === null || meta === void 0 ? void 0 : meta.remediations) === null || _a === void 0 ? void 0 : _a.find(remediation => remediation.includes('poll'));\n if (!(availablePollingRemeditaions === null || availablePollingRemeditaions === void 0 ? void 0 : availablePollingRemeditaions.length)) {\n warn('No polling remediations available at the current IDX flow stage');\n }\n if (Number.isInteger(options.refresh)) {\n return new Promise(function (resolve, reject) {\n setTimeout(function () {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const refresh = (_b = (_a = transaction.nextStep) === null || _a === void 0 ? void 0 : _a.poll) === null || _b === void 0 ? void 0 : _b.refresh;\n if (refresh) {\n resolve(poll(authClient, {\n refresh\n }));\n }\n else {\n resolve(transaction);\n }\n }\n catch (err) {\n reject(err);\n }\n });\n }, options.refresh);\n });\n }\n return transaction;\n });\n}\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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { run } from './run';\nexport function startTransaction(authClient, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n // Clear IDX response cache and saved transaction meta (if any)\n authClient.transactionManager.clear();\n return run(authClient, Object.assign({ exchangeCodeForTokens: false }, options));\n });\n}\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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { run } from './run';\nimport { hasSavedInteractionHandle } from './transactionMeta';\nimport { startTransaction } from './startTransaction';\nimport { AuthSdkError } from '../errors';\nimport { IdxFeature, } from '../types';\nexport function register(authClient, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n // Only check at the beginning of the transaction\n if (!hasSavedInteractionHandle(authClient)) {\n const { enabledFeatures, availableSteps } = yield startTransaction(authClient, Object.assign(Object.assign({}, options), { flow: 'register', autoRemediate: false }));\n if (!options.activationToken && enabledFeatures && !enabledFeatures.includes(IdxFeature.REGISTRATION)) {\n const error = new AuthSdkError('Registration is not supported based on your current org configuration.');\n throw error;\n // return { status: IdxStatus.FAILURE, error } as unknown as IdxTransaction; // TODO: wny not just throw the error?\n }\n if (options.activationToken && (availableSteps === null || availableSteps === void 0 ? void 0 : availableSteps.some(({ name }) => name === 'identify'))) {\n const error = new AuthSdkError('activationToken is not supported based on your current org configuration.');\n throw error;\n // return { status: IdxStatus.FAILURE, error } as unknown as IdxTransaction; // TODO: wny not just throw the error?\n }\n }\n return run(authClient, Object.assign(Object.assign({}, options), { flow: 'register' }));\n });\n}\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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { run } from './run';\nimport { getFlowSpecification } from './flow';\nexport function recoverPassword(authClient, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const flowSpec = getFlowSpecification(authClient, 'recoverPassword');\n return run(authClient, Object.assign(Object.assign({}, options), flowSpec));\n });\n}\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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { AuthSdkError, OAuthError } from '../errors';\nexport function handleInteractionCodeRedirect(authClient, url) {\n return __awaiter(this, void 0, void 0, function* () {\n const meta = authClient.transactionManager.load();\n if (!meta) {\n throw new AuthSdkError('No transaction data was found in storage');\n }\n const { codeVerifier, state: savedState } = meta;\n const { searchParams\n // URL API has been added to the polyfill\n // eslint-disable-next-line compat/compat\n } = new URL(url);\n const state = searchParams.get('state');\n const interactionCode = searchParams.get('interaction_code');\n // Error handling\n const error = searchParams.get('error');\n if (error) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n throw new OAuthError(error, searchParams.get('error_description'));\n }\n if (state !== savedState) {\n throw new AuthSdkError('State in redirect uri does not match with transaction state');\n }\n if (!interactionCode) {\n throw new AuthSdkError('Unable to parse interaction_code from the url');\n }\n // Save tokens to storage\n const { tokens } = yield authClient.token.exchangeCodeForTokens({ interactionCode, codeVerifier });\n authClient.tokenManager.setTokens(tokens);\n });\n}\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 */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { run } from './run';\nimport { hasSavedInteractionHandle } from './transactionMeta';\nimport { startTransaction } from './startTransaction';\nimport { AuthSdkError } from '../errors';\nimport { IdxFeature, } from '../types';\nexport function unlockAccount(authClient, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n options.flow = 'unlockAccount';\n // Only check at the beginning of the transaction\n if (!hasSavedInteractionHandle(authClient)) {\n const { enabledFeatures } = yield startTransaction(authClient, Object.assign(Object.assign({}, options), { autoRemediate: false }));\n if (enabledFeatures && !enabledFeatures.includes(IdxFeature.ACCOUNT_UNLOCK)) {\n throw new AuthSdkError('Self Service Account Unlock is not supported based on your current org configuration.');\n }\n }\n return run(authClient, Object.assign({}, options));\n });\n}\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/* global SDK_VERSION */\nimport { isBrowser } from './features';\nexport class OktaUserAgent {\n constructor() {\n // add base sdk env\n this.environments = [`okta-auth-js/${SDK_VERSION}`];\n }\n addEnvironment(env) {\n this.environments.push(env);\n }\n getHttpHeader() {\n this.maybeAddNodeEnvironment();\n return { 'X-Okta-User-Agent-Extended': this.environments.join(' ') };\n }\n getVersion() {\n return SDK_VERSION;\n }\n maybeAddNodeEnvironment() {\n if (isBrowser() || !process || !process.versions) {\n return;\n }\n const { node: version } = process.versions;\n this.environments.push(`nodejs/${version}`);\n }\n}\n","/* eslint-disable max-statements */\n/* eslint-disable complexity */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n/* global window */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { DEFAULT_MAX_CLOCK_SKEW, REFERRER_PATH_STORAGE_KEY } from './constants';\nimport * as constants from './constants';\nimport { transactionStatus, resumeTransaction, transactionExists, introspectAuthn, postToTransaction } from './tx';\nimport PKCE from './oidc/util/pkce';\nimport { closeSession, sessionExists, getSession, refreshSession, setCookieAndRedirect } from './session';\nimport { getOAuthUrls, getWithoutPrompt, getWithPopup, getWithRedirect, isLoginRedirect, parseFromUrl, decodeToken, revokeToken, renewToken, renewTokens, renewTokensWithRefresh, getUserInfo, verifyToken, prepareTokenParams, exchangeCodeForTokens, isInteractionRequiredError, isInteractionRequired, } from './oidc';\nimport { isBrowser } from './features';\nimport * as features from './features';\nimport * as crypto from './crypto';\nimport * as webauthn from './crypto/webauthn';\nimport browserStorage from './browser/browserStorage';\nimport { toQueryString, toAbsoluteUrl, clone, } from './util';\nimport { TokenManager } from './TokenManager';\nimport { get, httpRequest, setRequestHeader } from './http';\nimport PromiseQueue from './PromiseQueue';\nimport fingerprint from './browser/fingerprint';\nimport { AuthStateManager } from './AuthStateManager';\nimport { StorageManager } from './StorageManager';\nimport TransactionManager from './TransactionManager';\nimport { buildOptions } from './options';\nimport { interact, introspect, authenticate, cancel, poll, proceed, register, recoverPassword, unlockAccount, startTransaction, handleInteractionCodeRedirect, canProceed, handleEmailVerifyCallback, isEmailVerifyCallback, parseEmailVerifyCallback, isEmailVerifyCallbackError } from './idx';\nimport { createGlobalRequestInterceptor, setGlobalRequestInterceptor } from './idx/headers';\nimport { OktaUserAgent } from './OktaUserAgent';\nimport { parseOAuthResponseFromUrl } from './oidc/parseFromUrl';\nimport { getSavedTransactionMeta, createTransactionMeta, getTransactionMeta, saveTransactionMeta, clearTransactionMeta, isTransactionMetaValid } from './idx/transactionMeta';\n// eslint-disable-next-line import/no-commonjs\nconst Emitter = require('tiny-emitter');\nclass OktaAuth {\n constructor(args) {\n const options = this.options = buildOptions(args);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.storageManager = new StorageManager(options.storageManager, options.cookies, options.storageUtil);\n this.transactionManager = new TransactionManager(Object.assign({\n storageManager: this.storageManager,\n }, options.transactionManager));\n this._oktaUserAgent = new OktaUserAgent();\n this.tx = {\n status: transactionStatus.bind(null, this),\n resume: resumeTransaction.bind(null, this),\n exists: Object.assign(transactionExists.bind(null, this), {\n _get: (name) => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const storage = options.storageUtil.storage;\n return storage.get(name);\n }\n }),\n introspect: introspectAuthn.bind(null, this)\n };\n this.pkce = {\n DEFAULT_CODE_CHALLENGE_METHOD: PKCE.DEFAULT_CODE_CHALLENGE_METHOD,\n generateVerifier: PKCE.generateVerifier,\n computeChallenge: PKCE.computeChallenge\n };\n // Add shims for compatibility, these will be removed in next major version. OKTA-362589\n Object.assign(this.options.storageUtil, {\n getPKCEStorage: this.storageManager.getLegacyPKCEStorage.bind(this.storageManager),\n getHttpCache: this.storageManager.getHttpCache.bind(this.storageManager),\n });\n this._pending = { handleLogin: false };\n if (isBrowser()) {\n this.options = Object.assign(this.options, {\n redirectUri: toAbsoluteUrl(args.redirectUri, window.location.origin), // allow relative URIs\n });\n }\n // Digital clocks will drift over time, so the server\n // can misalign with the time reported by the browser.\n // The maxClockSkew allows relaxing the time-based\n // validation of tokens (in seconds, not milliseconds).\n // It currently defaults to 300, because 5 min is the\n // default maximum tolerance allowed by Kerberos.\n // (https://technet.microsoft.com/en-us/library/cc976357.aspx)\n if (!args.maxClockSkew && args.maxClockSkew !== 0) {\n this.options.maxClockSkew = DEFAULT_MAX_CLOCK_SKEW;\n }\n else {\n this.options.maxClockSkew = args.maxClockSkew;\n }\n // As some end user's devices can have their date \n // and time incorrectly set, allow for the disabling\n // of the jwt liftetime validation\n this.options.ignoreLifetime = !!args.ignoreLifetime;\n this.session = {\n close: closeSession.bind(null, this),\n exists: sessionExists.bind(null, this),\n get: getSession.bind(null, this),\n refresh: refreshSession.bind(null, this),\n setCookieAndRedirect: setCookieAndRedirect.bind(null, this)\n };\n this._tokenQueue = new PromiseQueue();\n const useQueue = (method) => {\n return PromiseQueue.prototype.push.bind(this._tokenQueue, method, null);\n };\n // eslint-disable-next-line max-len\n const getWithRedirectFn = useQueue(getWithRedirect.bind(null, this));\n const getWithRedirectApi = Object.assign(getWithRedirectFn, {\n // This is exposed so we can set window.location in our tests\n _setLocation: function (url) {\n window.location = url;\n }\n });\n // eslint-disable-next-line max-len\n const parseFromUrlFn = useQueue(parseFromUrl.bind(null, this));\n const parseFromUrlApi = Object.assign(parseFromUrlFn, {\n // This is exposed so we can mock getting window.history in our tests\n _getHistory: function () {\n return window.history;\n },\n // This is exposed so we can mock getting window.location in our tests\n _getLocation: function () {\n return window.location;\n },\n // This is exposed so we can mock getting window.document in our tests\n _getDocument: function () {\n return window.document;\n }\n });\n this.token = {\n prepareTokenParams: prepareTokenParams.bind(null, this),\n exchangeCodeForTokens: exchangeCodeForTokens.bind(null, this),\n getWithoutPrompt: getWithoutPrompt.bind(null, this),\n getWithPopup: getWithPopup.bind(null, this),\n getWithRedirect: getWithRedirectApi,\n parseFromUrl: parseFromUrlApi,\n decode: decodeToken,\n revoke: revokeToken.bind(null, this),\n renew: renewToken.bind(null, this),\n renewTokensWithRefresh: renewTokensWithRefresh.bind(null, this),\n renewTokens: renewTokens.bind(null, this),\n getUserInfo: getUserInfo.bind(null, this),\n verify: verifyToken.bind(null, this),\n isLoginRedirect: isLoginRedirect.bind(null, this)\n };\n // Wrap all async token API methods using MethodQueue to avoid issues with concurrency\n const syncMethods = [\n // sync methods\n 'decode',\n 'isLoginRedirect',\n // already bound\n 'getWithRedirect',\n 'parseFromUrl'\n ];\n Object.keys(this.token).forEach(key => {\n if (syncMethods.indexOf(key) >= 0) { // sync methods should not be wrapped\n return;\n }\n var method = this.token[key];\n this.token[key] = PromiseQueue.prototype.push.bind(this._tokenQueue, method, null);\n });\n // IDX\n const boundStartTransaction = startTransaction.bind(null, this);\n this.idx = {\n interact: interact.bind(null, this),\n introspect: introspect.bind(null, this),\n authenticate: authenticate.bind(null, this),\n register: register.bind(null, this),\n start: boundStartTransaction,\n startTransaction: boundStartTransaction,\n poll: poll.bind(null, this),\n proceed: proceed.bind(null, this),\n cancel: cancel.bind(null, this),\n recoverPassword: recoverPassword.bind(null, this),\n // oauth redirect callback\n handleInteractionCodeRedirect: handleInteractionCodeRedirect.bind(null, this),\n // interaction required callback\n isInteractionRequired: isInteractionRequired.bind(null, this),\n isInteractionRequiredError,\n // email verify callback\n handleEmailVerifyCallback: handleEmailVerifyCallback.bind(null, this),\n isEmailVerifyCallback,\n parseEmailVerifyCallback,\n isEmailVerifyCallbackError,\n getSavedTransactionMeta: getSavedTransactionMeta.bind(null, this),\n createTransactionMeta: createTransactionMeta.bind(null, this),\n getTransactionMeta: getTransactionMeta.bind(null, this),\n saveTransactionMeta: saveTransactionMeta.bind(null, this),\n clearTransactionMeta: clearTransactionMeta.bind(null, this),\n isTransactionMetaValid,\n setFlow: (flow) => {\n this.options.flow = flow;\n },\n getFlow: () => {\n return this.options.flow;\n },\n canProceed: canProceed.bind(null, this),\n unlockAccount: unlockAccount.bind(null, this),\n };\n setGlobalRequestInterceptor(createGlobalRequestInterceptor(this)); // to pass custom headers to IDX endpoints\n // HTTP\n this.http = {\n setRequestHeader: setRequestHeader.bind(null, this)\n };\n // Fingerprint API\n this.fingerprint = fingerprint.bind(null, this);\n this.emitter = new Emitter();\n // TokenManager\n this.tokenManager = new TokenManager(this, args.tokenManager);\n // AuthStateManager\n this.authStateManager = new AuthStateManager(this);\n }\n start() {\n this.tokenManager.start();\n if (!this.token.isLoginRedirect()) {\n this.authStateManager.updateAuthState();\n }\n }\n stop() {\n this.tokenManager.stop();\n }\n setHeaders(headers) {\n this.options.headers = Object.assign({}, this.options.headers, headers);\n }\n // Authn V1\n signIn(opts) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.signInWithCredentials(opts);\n });\n }\n // Authn V1\n signInWithCredentials(opts) {\n return __awaiter(this, void 0, void 0, function* () {\n opts = clone(opts || {});\n const _postToTransaction = (options) => {\n delete opts.sendFingerprint;\n return postToTransaction(this, '/api/v1/authn', opts, options);\n };\n if (!opts.sendFingerprint) {\n return _postToTransaction();\n }\n return this.fingerprint()\n .then(function (fingerprint) {\n return _postToTransaction({\n headers: {\n 'X-Device-Fingerprint': fingerprint\n }\n });\n });\n });\n }\n signInWithRedirect(opts = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const { originalUri } = opts, additionalParams = __rest(opts, [\"originalUri\"]);\n if (this._pending.handleLogin) {\n // Don't trigger second round\n return;\n }\n this._pending.handleLogin = true;\n try {\n // Trigger default signIn redirect flow\n if (originalUri) {\n this.setOriginalUri(originalUri);\n }\n const params = Object.assign({\n // TODO: remove this line when default scopes are changed OKTA-343294\n scopes: this.options.scopes || ['openid', 'email', 'profile']\n }, additionalParams);\n yield this.token.getWithRedirect(params);\n }\n finally {\n this._pending.handleLogin = false;\n }\n });\n }\n // Ends the current Okta SSO session without redirecting to Okta.\n closeSession() {\n return this.session.close() // DELETE /api/v1/sessions/me\n .then(() => __awaiter(this, void 0, void 0, function* () {\n // Clear all local tokens\n this.tokenManager.clear();\n }))\n .catch(function (e) {\n if (e.name === 'AuthApiError' && e.errorCode === 'E0000007') {\n // Session does not exist or has already been closed\n return null;\n }\n throw e;\n });\n }\n // Revokes the access token for the application session\n revokeAccessToken(accessToken) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!accessToken) {\n accessToken = (yield this.tokenManager.getTokens()).accessToken;\n const accessTokenKey = this.tokenManager.getStorageKeyByType('accessToken');\n this.tokenManager.remove(accessTokenKey);\n }\n // Access token may have been removed. In this case, we will silently succeed.\n if (!accessToken) {\n return Promise.resolve(null);\n }\n return this.token.revoke(accessToken);\n });\n }\n // Revokes the refresh token for the application session\n revokeRefreshToken(refreshToken) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!refreshToken) {\n refreshToken = (yield this.tokenManager.getTokens()).refreshToken;\n const refreshTokenKey = this.tokenManager.getStorageKeyByType('refreshToken');\n this.tokenManager.remove(refreshTokenKey);\n }\n // Refresh token may have been removed. In this case, we will silently succeed.\n if (!refreshToken) {\n return Promise.resolve(null);\n }\n return this.token.revoke(refreshToken);\n });\n }\n getSignOutRedirectUrl(options = {}) {\n let { idToken, postLogoutRedirectUri, state, } = options;\n if (!idToken) {\n idToken = this.tokenManager.getTokensSync().idToken;\n }\n if (!idToken) {\n return '';\n }\n if (!postLogoutRedirectUri) {\n postLogoutRedirectUri = this.options.postLogoutRedirectUri;\n }\n const logoutUrl = getOAuthUrls(this).logoutUrl;\n const idTokenHint = idToken.idToken; // a string\n let logoutUri = logoutUrl + '?id_token_hint=' + encodeURIComponent(idTokenHint);\n if (postLogoutRedirectUri) {\n logoutUri += '&post_logout_redirect_uri=' + encodeURIComponent(postLogoutRedirectUri);\n }\n // State allows option parameters to be passed to logout redirect uri\n if (state) {\n logoutUri += '&state=' + encodeURIComponent(state);\n }\n return logoutUri;\n }\n // Revokes refreshToken or accessToken, clears all local tokens, then redirects to Okta to end the SSO session.\n signOut(options) {\n return __awaiter(this, void 0, void 0, function* () {\n options = Object.assign({}, options);\n // postLogoutRedirectUri must be whitelisted in Okta Admin UI\n var defaultUri = window.location.origin;\n var currentUri = window.location.href;\n var postLogoutRedirectUri = options.postLogoutRedirectUri\n || this.options.postLogoutRedirectUri\n || defaultUri;\n var accessToken = options.accessToken;\n var refreshToken = options.refreshToken;\n var revokeAccessToken = options.revokeAccessToken !== false;\n var revokeRefreshToken = options.revokeRefreshToken !== false;\n if (revokeRefreshToken && typeof refreshToken === 'undefined') {\n refreshToken = this.tokenManager.getTokensSync().refreshToken;\n }\n if (revokeAccessToken && typeof accessToken === 'undefined') {\n accessToken = this.tokenManager.getTokensSync().accessToken;\n }\n if (!options.idToken) {\n options.idToken = this.tokenManager.getTokensSync().idToken;\n }\n if (revokeRefreshToken && refreshToken) {\n yield this.revokeRefreshToken(refreshToken);\n }\n if (revokeAccessToken && accessToken) {\n yield this.revokeAccessToken(accessToken);\n }\n const logoutUri = this.getSignOutRedirectUrl(Object.assign(Object.assign({}, options), { postLogoutRedirectUri }));\n // No logoutUri? This can happen if the storage was cleared.\n // Fallback to XHR signOut, then simulate a redirect to the post logout uri\n if (!logoutUri) {\n // local tokens are cleared once session is closed\n return this.closeSession() // can throw if the user cannot be signed out\n .then(function () {\n if (postLogoutRedirectUri === currentUri) {\n window.location.reload(); // force a hard reload if URI is not changing\n }\n else {\n window.location.assign(postLogoutRedirectUri);\n }\n });\n }\n else {\n if (options.clearTokensBeforeRedirect) {\n // Clear all local tokens\n this.tokenManager.clear();\n }\n else {\n this.tokenManager.addPendingRemoveFlags();\n }\n // Flow ends with logout redirect\n window.location.assign(logoutUri);\n }\n });\n }\n webfinger(opts) {\n var url = '/.well-known/webfinger' + toQueryString(opts);\n var options = {\n headers: {\n 'Accept': 'application/jrd+json'\n }\n };\n return get(this, url, options);\n }\n //\n // Common Methods from downstream SDKs\n //\n // Returns true if both accessToken and idToken are not expired\n // If `autoRenew` option is set, will attempt to renew expired tokens before returning.\n isAuthenticated() {\n return __awaiter(this, void 0, void 0, function* () {\n let { accessToken, idToken } = this.tokenManager.getTokensSync();\n const { autoRenew, autoRemove } = this.tokenManager.getOptions();\n if (accessToken && this.tokenManager.hasExpired(accessToken)) {\n accessToken = undefined;\n if (autoRenew) {\n try {\n accessToken = (yield this.tokenManager.renew('accessToken'));\n }\n catch (_a) {\n // Renew errors will emit an \"error\" event \n }\n }\n else if (autoRemove) {\n this.tokenManager.remove('accessToken');\n }\n }\n if (idToken && this.tokenManager.hasExpired(idToken)) {\n idToken = undefined;\n if (autoRenew) {\n try {\n idToken = (yield this.tokenManager.renew('idToken'));\n }\n catch (_b) {\n // Renew errors will emit an \"error\" event \n }\n }\n else if (autoRemove) {\n this.tokenManager.remove('idToken');\n }\n }\n return !!(accessToken && idToken);\n });\n }\n getUser() {\n return __awaiter(this, void 0, void 0, function* () {\n const { idToken, accessToken } = this.tokenManager.getTokensSync();\n return this.token.getUserInfo(accessToken, idToken);\n });\n }\n getIdToken() {\n const { idToken } = this.tokenManager.getTokensSync();\n return idToken ? idToken.idToken : undefined;\n }\n getAccessToken() {\n const { accessToken } = this.tokenManager.getTokensSync();\n return accessToken ? accessToken.accessToken : undefined;\n }\n getRefreshToken() {\n const { refreshToken } = this.tokenManager.getTokensSync();\n return refreshToken ? refreshToken.refreshToken : undefined;\n }\n /**\n * Store parsed tokens from redirect url\n */\n storeTokensFromRedirect() {\n return __awaiter(this, void 0, void 0, function* () {\n const { tokens } = yield this.token.parseFromUrl();\n this.tokenManager.setTokens(tokens);\n });\n }\n setOriginalUri(originalUri, state) {\n // always store in session storage\n const sessionStorage = browserStorage.getSessionStorage();\n sessionStorage.setItem(REFERRER_PATH_STORAGE_KEY, originalUri);\n // to support multi-tab flows, set a state in constructor or pass as param\n state = state || this.options.state;\n if (state) {\n const sharedStorage = this.storageManager.getOriginalUriStorage();\n sharedStorage.setItem(state, originalUri);\n }\n }\n getOriginalUri(state) {\n // Prefer shared storage (if state is available)\n state = state || this.options.state;\n if (state) {\n const sharedStorage = this.storageManager.getOriginalUriStorage();\n const originalUri = sharedStorage.getItem(state);\n if (originalUri) {\n return originalUri;\n }\n }\n // Try to load from session storage\n const storage = browserStorage.getSessionStorage();\n return storage ? storage.getItem(REFERRER_PATH_STORAGE_KEY) || undefined : undefined;\n }\n removeOriginalUri(state) {\n // Remove from sessionStorage\n const storage = browserStorage.getSessionStorage();\n storage.removeItem(REFERRER_PATH_STORAGE_KEY);\n // Also remove from shared storage\n state = state || this.options.state;\n if (state) {\n const sharedStorage = this.storageManager.getOriginalUriStorage();\n sharedStorage.removeItem && sharedStorage.removeItem(state);\n }\n }\n isLoginRedirect() {\n return isLoginRedirect(this);\n }\n handleLoginRedirect(tokens, originalUri) {\n return __awaiter(this, void 0, void 0, function* () {\n let state = this.options.state;\n // Store tokens and update AuthState by the emitted events\n if (tokens) {\n this.tokenManager.setTokens(tokens);\n originalUri = originalUri || this.getOriginalUri(this.options.state);\n }\n else if (this.isLoginRedirect()) {\n try {\n // For redirect flow, get state from the URL and use it to retrieve the originalUri\n const oAuthResponse = yield parseOAuthResponseFromUrl(this, {});\n state = oAuthResponse.state;\n originalUri = originalUri || this.getOriginalUri(state);\n yield this.storeTokensFromRedirect();\n }\n catch (e) {\n // auth state should be updated\n yield this.authStateManager.updateAuthState();\n throw e;\n }\n }\n else {\n return; // nothing to do\n }\n // ensure auth state has been updated\n yield this.authStateManager.updateAuthState();\n // clear originalUri from storage\n this.removeOriginalUri(state);\n // Redirect to originalUri\n const { restoreOriginalUri } = this.options;\n if (restoreOriginalUri) {\n yield restoreOriginalUri(this, originalUri);\n }\n else if (originalUri) {\n window.location.replace(originalUri);\n }\n });\n }\n isPKCE() {\n return !!this.options.pkce;\n }\n hasResponseType(responseType) {\n let hasResponseType = false;\n if (Array.isArray(this.options.responseType) && this.options.responseType.length) {\n hasResponseType = this.options.responseType.indexOf(responseType) >= 0;\n }\n else {\n hasResponseType = this.options.responseType === responseType;\n }\n return hasResponseType;\n }\n isAuthorizationCodeFlow() {\n return this.hasResponseType('code');\n }\n // { username, password, (relayState), (context) }\n // signIn(opts: SignInWithCredentialsOptions): Promise<AuthTransaction> {\n // return postToTransaction(this, '/api/v1/authn', opts);\n // }\n getIssuerOrigin() {\n // Infer the URL from the issuer URL, omitting the /oauth2/{authServerId}\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this.options.issuer.split('/oauth2/')[0];\n }\n // { username, (relayState) }\n forgotPassword(opts) {\n return postToTransaction(this, '/api/v1/authn/recovery/password', opts);\n }\n // { username, (relayState) }\n unlockAccount(opts) {\n return postToTransaction(this, '/api/v1/authn/recovery/unlock', opts);\n }\n // { recoveryToken }\n verifyRecoveryToken(opts) {\n return postToTransaction(this, '/api/v1/authn/recovery/token', opts);\n }\n // Escape hatch method to make arbitrary OKTA API call\n invokeApiMethod(options) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!options.accessToken) {\n const accessToken = (yield this.tokenManager.getTokens()).accessToken;\n options.accessToken = accessToken === null || accessToken === void 0 ? void 0 : accessToken.accessToken;\n }\n return httpRequest(this, options);\n });\n }\n}\n// Hoist feature detection functions to static type\nOktaAuth.features = OktaAuth.prototype.features = features;\n// Hoist crypto utils to static type\nOktaAuth.crypto = crypto;\n// Hoist webauthn utils to static type\nOktaAuth.webauthn = webauthn;\n// Also hoist constants for CommonJS users\nObject.assign(OktaAuth, {\n constants\n});\nexport default OktaAuth;\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 idx from './idx-js';\nexport function setGlobalRequestInterceptor(fn) {\n idx.client.interceptors.request.use(fn);\n}\nexport function clearGlobalRequestInterceptor() {\n idx.client.interceptors.request.clear();\n}\n// A factory which returns a function that can be passed to `setGlobalRequestInterceptor`\nexport function createGlobalRequestInterceptor(sdk) {\n return function (requestConfig) {\n // Set user-agent and any other custom headers set in the options\n var oktaUserAgentHeader = sdk._oktaUserAgent.getHttpHeader();\n const headers = Object.assign(Object.assign({}, oktaUserAgentHeader), sdk.options.headers);\n Object.keys(headers).forEach(name => {\n // X-Device-Token may only be specified if the /interact request includes a `client_secret`\n // which indicates a trusted client which is allowed to present this information on behalf of the end user. \n // https://oktainc.atlassian.net/browse/OKTA-441021\n if (!sdk.options.clientSecret && name === 'X-Device-Token') {\n return;\n }\n requestConfig.headers[name] = headers[name];\n });\n };\n}\n"],"names":["root","factory","exports","module","define","amd","self","ReferenceError","__esModule","instance","Constructor","TypeError","setPrototypeOf","isNativeReflectConstruct","_construct","Parent","args","Class","Reflect","construct","a","push","apply","Function","bind","prototype","arguments","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","_getPrototypeOf","o","getPrototypeOf","__proto__","subClass","superClass","create","constructor","value","fn","toString","call","indexOf","sham","Proxy","Boolean","valueOf","e","_typeof","assertThisInitialized","_setPrototypeOf","p","obj","Symbol","iterator","isNativeFunction","_wrapNativeSuper","_cache","Map","undefined","has","get","set","Wrapper","this","CancelError","reason","name","Error","PCancelable","executor","_cancelHandlers","_isPending","_isCanceled","_rejectOnCancel","_promise","Promise","resolve","reject","_reject","onCancel","handler","defineProperties","shouldReject","boolean","error","onFulfilled","onRejected","then","catch","onFinally","finally","userFn","arguments_","global","__self__","F","fetch","DOMException","support","Blob","viewClasses","isArrayBufferView","ArrayBuffer","isView","normalizeName","String","test","toLowerCase","normalizeValue","iteratorFor","items","next","shift","done","Headers","headers","map","forEach","append","Array","isArray","header","getOwnPropertyNames","consumed","body","bodyUsed","fileReaderReady","reader","onload","result","onerror","readBlobAsArrayBuffer","blob","FileReader","promise","readAsArrayBuffer","bufferClone","buf","slice","view","Uint8Array","byteLength","buffer","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","DataView","_bodyArrayBuffer","type","rejected","arrayBuffer","text","readAsText","chars","fromCharCode","join","readArrayBufferAsText","formData","decode","json","JSON","parse","oldValue","hasOwnProperty","callback","thisArg","keys","values","entries","methods","Request","input","options","method","upcased","url","credentials","mode","signal","toUpperCase","referrer","form","trim","split","bytes","replace","decodeURIComponent","Response","bodyInit","status","ok","statusText","clone","response","redirectStatuses","redirect","RangeError","location","err","message","stack","init","request","aborted","xhr","XMLHttpRequest","abortXhr","abort","rawHeaders","getAllResponseHeaders","line","parts","responseURL","responseText","ontimeout","onabort","open","withCredentials","responseType","setRequestHeader","addEventListener","onreadystatechange","readyState","removeEventListener","send","polyfill","ponyfill","ctx","extend","attributes","s","converter","api","document","path","defaults","expires","Date","toUTCString","stringify","write","encodeURIComponent","escape","stringifiedAttributes","attributeName","cookie","jar","cookies","charAt","read","getJSON","remove","withConverter","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","state","GenStateSuspendedStart","arg","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","iter","object","reverse","pop","skipTempReset","prev","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","E","on","once","listener","off","_","emit","data","evtArr","len","evts","liveEvents","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","d","definition","g","globalThis","window","prop","r","_classCallCheck","_inherits","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","CustomError","AuthApiError","errorSummary","errorCode","errorLink","errorId","errorCauses","AuthPollStopError","AuthSdkError","msg","OAuthError","summary","isAuthApiError","str","atob","b","btoa","c","crypto","stringToBase64Url","base64ToBase64Url","b64","base64UrlToBase64","b64u","base64UrlToString","utf8","stringToBuffer","charCodeAt","base64UrlDecode","base64UrlToBuffer","from","bufferToBase64Url","bin","reduce","byte","getOidcHash","TextEncoder","encode","webcrypto","firstHalf","additionalArgs","concat","obj1","objArray","removeNils","cleaned","omit","newobj","find","collection","searchParams","item","found","getLink","linkName","altName","_links","link","verifyToken","idToken","algo","hash","use","cryptoKey","jwt","payload","signature","_createClass","STATE_TOKEN_KEY_NAME","DEFAULT_POLLING_DELAY","DEFAULT_MAX_CLOCK_SKEW","DEFAULT_CACHE_DURATION","REDIRECT_OAUTH_PARAMS_NAME","REDIRECT_STATE_COOKIE_NAME","REDIRECT_NONCE_COOKIE_NAME","TOKEN_STORAGE_NAME","CACHE_STORAGE_NAME","PKCE_STORAGE_NAME","TRANSACTION_STORAGE_NAME","SHARED_TRANSACTION_STORAGE_NAME","ORIGINAL_URI_STORAGE_NAME","IDX_RESPONSE_STORAGE_NAME","ACCESS_TOKEN_STORAGE_KEY","ID_TOKEN_STORAGE_KEY","REFRESH_TOKEN_STORAGE_KEY","REFERRER_PATH_STORAGE_KEY","MIN_VERIFIER_LENGTH","MAX_VERIFIER_LENGTH","DEFAULT_CODE_CHALLENGE_METHOD","IDX_API_VERSION","authClient","headerName","headerValue","isString","isObject","isNumber","isFunction","isPromise","isAbsoluteUrl","toAbsoluteUrl","baseUrl","removeTrailingSlash","toRelativeUrl","substring","toQueryString","trimmed","httpRequest","sdk","saveAuthnState","accessToken","storage","storageUtil","httpCache","storageManager","getHttpCache","cacheResponse","cachedResponse","getStorage","now","expiresAt","oktaUserAgentHeader","_oktaUserAgent","getHttpHeader","assign","res","ajaxOptions","httpRequestClient","resp","stateToken","delete","updateStorage","Math","floor","serverErr","transformErrorXHR","getOptions","getIssuerOrigin","post","postOptions","addStateToken","builtArgs","getStateToken","isoToUTCString","match","isoTime","UTC","genRandomString","randomCharset","random","cl","delay","ms","setTimeout","getPollFn","ref","rememberDevice","autoPush","transactionCallBack","pollLink","isPolling","retryCount","recursivePoll","opts","href","pollFn","pollRes","factorResult","delayFn","AuthTransaction","delayLength","pow","interactionHandle","flattenEmbedded","cancel","link2fn","lk","hints","allow","factorType","provider","params","profile","updatePhone","postToTransaction","objArr","ol","embedded","_embedded","fns","poll","links2fns","transactionStatus","resumeTransaction","tx","exists","_get","introspectAuthn","transactionStep","transactionExists","dec2hex","dec","substr","generateVerifier","prefix","verifier","ceil","getRandomString","computeChallenge","sessionExists","session","getSession","refresh","user","closeSession","refreshSession","setCookieAndRedirect","sessionToken","redirectUrl","checkAccountSetupComplete","token","convertTokenParamsToOAuthParams","tokenParams","clientId","oauthParams","codeChallenge","codeChallengeMethod","display","idp","idpScope","loginHint","maxAge","nonce","prompt","redirectUri","responseMode","mayBeArray","scopes","scope","buildAuthorizeParams","oauthQueryParams","extraParams","_arrayLikeToArray","arr","arr2","_unsupportedIterableToArray","minLen","_slicedToArray","_i","_s","_e","_arr","_n","_d","postToTokenEndpoint","urls","authorizationCode","interactionCode","codeVerifier","validateOptions","code","clientSecret","getPostData","tokenUrl","postRefreshToken","refreshToken","client_id","grant_type","refresh_token","getWellKnown","issuer","getKey","kid","wellKnown","jwksUri","cachedKey","clearStorage","addListener","eventTarget","attachEvent","removeListener","detachEvent","loadFrame","src","iframe","createElement","style","appendChild","loadPopup","title","popupTitle","addPostMessageListener","timeout","responseHandler","timeoutId","origin","clearTimeout","generateState","generateNonce","getIssuer","getOAuthBaseUrl","getOAuthDomain","domain","getOAuthUrls","authorizeUrl","userinfoUrl","logoutUrl","revokeUrl","isWindowsPhone","isBrowser","isIE11OrLess","documentMode","getUserAgent","navigator","userAgent","isFingerprintSupported","agent","isPopupPostMessageSupported","isIE8or9","postMessage","isTokenVerifySupported","hasTextEncoder","isPKCESupported","isHTTPS","protocol","isLocalhost","hostname","getDefaultTokenParams","pkce","ignoreSignature","defaultRedirectUri","isInteractionRequiredError","isAuthorizationCodeError","errorResponse","responseJSON","hasTokensInHash","hasAuthorizationCode","hashOrSearch","hasInteractionCode","hasErrorInUrl","isRedirectUri","uri","authParams","isCodeFlow","getHashOrSearch","search","isLoginRedirect","codeFlow","isInteractionRequired","createOAuthMeta","oauthMeta","IdxStatus","AuthenticatorKey","IdxFeature","__awaiter","_arguments","P","fulfilled","step","assertPKCESupport","features","errorMessage","validateCodeChallengeMethod","preparePKCE","PKCE","prepareTokenParams","isSameRefreshToken","isRefreshTokenError","urlParamsToObject","plus2space","paramSplit","fragment","param","exec","validateClaims","claims","validationParams","aud","iss","iat","exp","ignoreLifetime","maxClockSkew","isObjectWithProperties","isOAuthTransactionMeta","isPKCETransactionMeta","isIdxTransactionMeta","isCustomAuthTransactionMeta","isTransactionMeta","isToken","isAccessToken","isIDToken","isRefreshToken","validateToken","decodeToken","decodedToken","revokeToken","token_type_hint","creds","exchangeCodeForTokens","handleOAuthResponse","transactionManager","clear","configuredIssuer","validationOptions","sdkCrypto","at_hash","validateResponse","interaction_code","tokenDict","expiresIn","expires_in","tokenType","token_type","access_token","id_token","accessJwt","Number","idJwt","idTokenObj","tokens","getToken","popupWindow","requestUrl","iframePromise","iframeEl","_a","contains","parentElement","removeChild","oauthPromise","closePoller","setInterval","closed","clearInterval","close","getWithoutPrompt","renewTokensWithRefresh","refreshTokenObject","renewTokenParams","tokenResponse","tokenManager","updateRefreshToken","throwInvalidTokenError","getSingleToken","originalToken","renewToken","getTokensSync","renewTokens","getUserInfo","accessTokenObject","idTokenObject","getTokens","userInfo","sub","authenticateHeader","getResponseHeader","errorMatches","errorDescriptionMatches","errorDescription","getWithPopup","getWithRedirect","meta","save","oauth","_setLocation","getResponseMode","defaultResponseMode","parseOAuthResponseFromUrl","paramStr","nativeLoc","parseFromUrl","_getLocation","cleanOAuthResponseFromUrl","nativeHistory","_getHistory","nativeDoc","_getDocument","replaceState","pathname","removeSearch","removeHash","load","getEnrolledCredentials","authenticatorEnrollments","enrollement","id","credentialId","buildCredentialCreationOptions","activationData","publicKey","rp","challenge","pubKeyCredParams","attestation","authenticatorSelection","excludeCredentials","buildCredentialRequestOptions","challengeData","userVerification","allowCredentials","getAttestation","credential","clientData","clientDataJSON","attestationObject","getAssertion","authenticatorData","signatureData","getNativeConsole","console","getConsole","nativeConsole","log","warn","group","groupEnd","deprecate","deprecateWrap","Cookies","require","getPKCEStorage","browserHasLocalStorage","getLocalStorage","testStorage","browserHasSessionStorage","getSessionStorage","testStorageType","storageType","supported","getStorageByType","storageProvider","getCookieStorage","getInMemoryStorage","findStorageType","types","curType","nextType","localStorage","sessionStorage","secure","sameSite","sessionCookie","getItem","setItem","removeItem","useSeparateCookies","k","existingValues","storageKey","valueToStore","inMemoryStore","cookieOptions","SdkClock","localOffset","parseInt","TokenService","storageListener","onTokenExpiredHandler","renewTimeQueue","autoRenew","firstTime","shouldThrottleRenew","emitError","renew","autoRemove","EVENT_EXPIRED","setExpireEventTimeoutAll","syncStorage","newValue","syncTimeout","resetExpireEventTimeoutAll","emitEventsForCrossTabsStorageUpdate","_storageEventDelay","clearExpireEventTimeoutAll","DEFAULT_OPTIONS","clearPendingRemoveTokens","expireEarlySeconds","EVENT_RENEWED","EVENT_ADDED","EVENT_REMOVED","EVENT_ERROR","TokenManager","emitter","service","storageOptions","getTokenStorage","clock","expireTimeouts","renewPromise","start","getExpireTime","freshToken","oldToken","oldTokens","getTokensFromStorageValue","newTokens","newToken","emitAdded","emitRemoved","clearExpireEventTimeout","expireTime","expireEventWait","max","expireEventTimeout","emitExpired","tokenStorage","setExpireEventTimeout","setStorage","getSync","filter","accessTokenCb","idTokenCb","refreshTokenCb","handleTokenCallback","getTokenType","handleAdded","handleRemoved","existingTokens","getStorageKeyByType","existingToken","emitRenewed","removedToken","setTokens","tokenKey","pendingRemove","PromiseQueue","queue","running","thisObject","run","queueItem","fingerprint","source","INITIAL_AUTH_STATE","DEFAULT_PENDING","updateAuthStatePromise","canceledTimes","EVENT_AUTH_STATE_CHANGE","AuthStateManager","_sdk","_pending","_authState","_logOptions","_prevAuthState","_setLogOptions","event","updateAuthState","transformAuthState","devMode","emitAuthStateChange","authState","prevState","isAuthenticated","finalPromise","origPromise","curPromise","getAuthState","cancelablePromise","emitAndResolve","isCanceled","SavedObject","storageName","storageString","logServerSideMemoryStorageWarning","StorageManager","storageManagerOptions","sectionName","overrideOptions","storageTypes","idx","getOptionsForSection","transactionStorage","getTransactionStorage","transaction","val","isRawIdxResponse","version","isIdxResponse","rawIdxState","pruneSharedStorage","sharedStorage","getSharedTansactionStorage","dateCreated","saveTransactionToSharedStorage","loadTransactionFromSharedStorage","clearTransactionFromSharedStorage","TransactionManager","legacyWidgetSupport","saveNonceCookie","saveStateCookie","saveParamsCookie","enableSharedStorage","saveLastResponse","clearIdxResponse","clearSharedStorage","clearLegacyOAuthParams","clearLegacyPKCE","muteWarning","cookieStorage","loadLegacyOAuthParams","pkceMeta","loadLegacyPKCE","getLegacyPKCEStorage","getLegacyOAuthParamsStorage","idxResponse","getIdxResponseStorage","assertValidConfig","RegExp","fetchPromise","crossFetch","readData","pair","formatResult","NodeCache","ServerCookies","nodeCache","ttl","del","ServerStorage","BROWSER_STORAGE","cache","SERVER_STORAGE","getCookieSettings","cookieSettings","getDefaultOptions","browserStorage","serverStorage","fetchRequest","mergeOptions","HttpClient","interceptors","handlers","before","requestOptions","interceptor","_toConsumableArray","isFieldMutable","field","mutable","divideSingleActionParamsByMutability","action","_b","defaultParamsForAction","neededParamsForAction","immutableParamsForAction","generateDirectFetch","actionDefinition","toPersist","accepts","respJson","makeIdxState","stepUp","actionList","neededParams","defaultParams","immutableParams","divideActionParamsByMutability","hasOwnProp","unshift","NewError","_Error","Derived","hasNativeReflectConstruct","_super","Super","NewTarget","_this","avoidNew","JSONPath","expr","otherTypeCallback","optObj","resultType","flatten","sandbox","preventEval","parent","parentProperty","autostart","ret","evaluate","_this2","currParent","currParentProperty","currResultType","currPreventEval","currSandbox","currOtherTypeCallback","toPathString","exprList","toPathArray","_hasParentSelector","_trace","ea","isParentSelector","hasArrExpr","rslt","valOrPath","_getPreferredOutput","pointer","toPointer","_handleCallback","fullRetObj","preferredOutput","parentPropName","literalPriority","retObj","_this3","x","addRet","elems","t","_walk","m","l","_x","v","par","pr","cb","_slice","_eval","addType","valueType","includes","isFinite","locProp","_step","_iterator","allowArrayLike","it","f","normalCompletion","didErr","return","part","rett","tmp","tl","tt","splice","end","min","_v","_vname","_$_parentProperty","_$_parent","_$_property","_$_path","_$_root","_$_v","vm","runInNewContext","pathArr","subx","$0","$1","ups","funcs","conditionCb","il","moveToAnotherArray","vr","funcString","func","fString","lastStatementEnd","lastIndexOf","__rest","getOwnPropertySymbols","propertyIsEnumerable","SKIP_FIELDS","fromEntries","parseNonRemediations","actions","rel","generateIdxAction","fieldValue","subField","expandRelatesTo","query","innerValue","convertRemediationAction","remediation","remediationActions","remediationValue","generateRemediationFunctions","actionFn","rawIdxResponse","remediationData","remediations","parseIdxResponse","proceed","remediationChoice","paramsFromUser","remediationChoiceObject","neededToProceed","successWithInteractionCode","v1","validateVersionConfig","parsersForVersion","parseAndReject","stateHandle","accept","activationToken","recoveryToken","redirect_uri","code_challenge","code_challenge_method","activation_token","recovery_token","client_secret","interaction_handle","LATEST_SUPPORTED_IDX_API_VERSION","URL","interactParams","interact","introspect","details","idxState","client","createTransactionMeta","flow","hasSavedInteractionHandle","savedMeta","getSavedTransactionMeta","isTransactionMetaValid","getTransactionMeta","validExistingMeta","saveTransactionMeta","clearTransactionMeta","isTransactionMetaValidForOptions","isTransactionMetaValidForFlow","some","getResponse","newMeta","loadIdxResponse","titleCase","getAuthenticatorFromRemediation","Remediator","formatAuthenticators","authenticators","authenticator","authenticatorsData","acc","idxRemediation","required","cur","hasData","getData","_context","getName","inputs","getInputs","getAuthenticator","inputFromRemediation","aliases","relatesTo","messages","property","receiver","base","desc","getOwnPropertyDescriptor","Authenticator","VerificationCodeAuthenticator","verificationCode","otp","passcode","idxRemediationValue","OktaVerifyTotp","totp","OktaPassword","password","SecurityQuestionEnrollment","questionKey","question","answer","label","SecurityQuestionVerification","contextualData","enrolledQuestion","WebauthnEnrollment","visible","WebauthnVerification","OKTA_PASSWORD","SECURITY_QUESTION","OKTA_VERIFY","WEBAUTHN","VerifyAuthenticator","nextStep","canVerify","mapCredentials","EnrollAuthenticator","_defineProperty","remediationName","EnrollPoll","startPolling","common","currentAuthenticator","valueKey","SelectEnrollmentChannel","channel","getChannels","EnrollmentChannelData","email","phoneNumber","ChallengeAuthenticator","ChallengePoll","ResetAuthenticator","EnrollProfile","userProfileFromValues","userProfile","canRemediate","curr","attributeValues","errorRemediation","errors","Identify","identifier","ReEnrollAuthenticator","newPassword","RedirectIdp","SelectAuthenticator","option","findMatchedOption","selectedOption","selectedAuthenticator","SelectAuthenticatorAuthenticate","hasPasswordInOptions","SelectAuthenticatorEnroll","SelectAuthenticatorUnlockAccount","_c","authenticatorMap","methodTypeOption","methodTypeValue","methodType","SelectEnrollProfile","AuthenticatorData","formatAuthenticatorData","getAuthenticatorData","mapAuthenticatorDataFromValues","getMethodTypes","AuthenticatorVerificationData","authenticatorFromRemediation","enrollmentId","AuthenticatorEnrollmentData","Skip","skip","getRemediator","idxRemediations","remediator","remediators","T","remediatorCandidates","isTerminalResponse","getIdxMessages","globalMessages","fieldMessages","getMessages","getNextStep","canSkip","canSkipFn","canResend","actionName","canResendFn","handleIdxError","terminal","getActionFromValues","resend","removeActionFromValues","remediate","actionFromValues","valuesWithoutExecutedAction","canceled","getValuesAfterProceed","AuthenticationFlow","PasswordRecoveryFlow","RegistrationFlow","AccountUnlockFlow","getFlowSpecification","oktaAuth","getEnabledFeatures","PASSWORD_RECOVERY","REGISTRATION","SOCIAL_IDP","ACCOUNT_UNLOCK","getAvailableSteps","remediatorMap","remediatorClass","PENDING","shouldClearTransaction","autoRemediate","getFlow","setFlow","flowSpec","metaFromResp","interactResponse","enabledFeatures","availableSteps","idxResponseFromResp","nextStepFromResp","messagesFromResp","saveIdxResponse","TERMINAL","CANCELED","SUCCESS","FAILURE","authenticate","EmailVerifyCallbackError","isEmailVerifyCallbackError","isEmailVerifyCallback","urlPath","parseEmailVerifyCallback","handleEmailVerifyCallback","canProceed","availablePollingRemeditaions","isInteger","startTransaction","register","recoverPassword","handleInteractionCodeRedirect","savedState","unlockAccount","OktaUserAgent","environments","SDK_VERSION","env","maybeAddNodeEnvironment","process","versions","node","Emitter","OktaAuth","postLogoutRedirectUri","useInteractionCodeFlow","restoreOriginalUri","buildOptions","resume","handleLogin","_tokenQueue","useQueue","getWithRedirectFn","getWithRedirectApi","parseFromUrlFn","parseFromUrlApi","history","revoke","verify","syncMethods","boundStartTransaction","requestConfig","http","authStateManager","signInWithCredentials","_postToTransaction","sendFingerprint","originalUri","additionalParams","setOriginalUri","accessTokenKey","refreshTokenKey","idTokenHint","logoutUri","defaultUri","currentUri","revokeAccessToken","revokeRefreshToken","getSignOutRedirectUrl","reload","clearTokensBeforeRedirect","addPendingRemoveFlags","hasExpired","getOriginalUriStorage","getOriginalUri","oAuthResponse","storeTokensFromRedirect","removeOriginalUri","hasResponseType","webauthn","constants"],"sourceRoot":""}