@okta/okta-auth-js 6.6.2 → 6.7.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 (915) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +20 -5
  3. package/cjs/AuthStateManager.js +6 -6
  4. package/cjs/AuthStateManager.js.map +1 -1
  5. package/cjs/OktaAuth.js +17 -7
  6. package/cjs/OktaAuth.js.map +1 -1
  7. package/cjs/OktaUserAgent.js +2 -2
  8. package/cjs/OktaUserAgent.js.map +1 -1
  9. package/cjs/PromiseQueue.js.map +1 -1
  10. package/cjs/SavedObject.js +6 -0
  11. package/cjs/SavedObject.js.map +1 -1
  12. package/cjs/ServiceManager.js +44 -68
  13. package/cjs/ServiceManager.js.map +1 -1
  14. package/cjs/StorageManager.js.map +1 -1
  15. package/cjs/TokenManager.js +63 -65
  16. package/cjs/TokenManager.js.map +1 -1
  17. package/cjs/TransactionManager.js.map +1 -1
  18. package/cjs/browser/browserStorage.js +13 -3
  19. package/cjs/browser/browserStorage.js.map +1 -1
  20. package/cjs/browser/fingerprint.js.map +1 -1
  21. package/cjs/builderUtil.js.map +1 -1
  22. package/cjs/cdnEntry.js +52 -0
  23. package/cjs/cdnEntry.js.map +1 -0
  24. package/cjs/clock.js.map +1 -1
  25. package/cjs/constants.js.map +1 -1
  26. package/cjs/crypto/base64.js.map +1 -1
  27. package/cjs/crypto/browser.js.map +1 -1
  28. package/cjs/crypto/index.js.map +1 -1
  29. package/cjs/crypto/node.js.map +1 -1
  30. package/cjs/crypto/oidcHash.js.map +1 -1
  31. package/cjs/crypto/verifyToken.js.map +1 -1
  32. package/cjs/crypto/webauthn.js.map +1 -1
  33. package/cjs/crypto/webcrypto.js.map +1 -1
  34. package/cjs/errors/AuthApiError.js +5 -1
  35. package/cjs/errors/AuthApiError.js.map +1 -1
  36. package/cjs/errors/AuthPollStopError.js.map +1 -1
  37. package/cjs/errors/AuthSdkError.js.map +1 -1
  38. package/cjs/errors/CustomError.js.map +1 -1
  39. package/cjs/errors/OAuthError.js.map +1 -1
  40. package/cjs/errors/index.js.map +1 -1
  41. package/cjs/features.js.map +1 -1
  42. package/cjs/fetch/fetchRequest.js.map +1 -1
  43. package/cjs/http/headers.js.map +1 -1
  44. package/cjs/http/index.js.map +1 -1
  45. package/cjs/http/request.js +14 -1
  46. package/cjs/http/request.js.map +1 -1
  47. package/cjs/idx/authenticate.js.map +1 -1
  48. package/cjs/idx/authenticator/Authenticator.js.map +1 -1
  49. package/cjs/idx/authenticator/OktaPassword.js.map +1 -1
  50. package/cjs/idx/authenticator/OktaVerifyTotp.js.map +1 -1
  51. package/cjs/idx/authenticator/SecurityQuestionEnrollment.js.map +1 -1
  52. package/cjs/idx/authenticator/SecurityQuestionVerification.js.map +1 -1
  53. package/cjs/idx/authenticator/VerificationCodeAuthenticator.js.map +1 -1
  54. package/cjs/idx/authenticator/WebauthnEnrollment.js.map +1 -1
  55. package/cjs/idx/authenticator/WebauthnVerification.js.map +1 -1
  56. package/cjs/idx/authenticator/getAuthenticator.js.map +1 -1
  57. package/cjs/idx/authenticator/index.js.map +1 -1
  58. package/cjs/idx/authenticator/util.js.map +1 -1
  59. package/cjs/idx/cancel.js.map +1 -1
  60. package/cjs/idx/emailVerify.js.map +1 -1
  61. package/cjs/idx/flow/AccountUnlockFlow.js.map +1 -1
  62. package/cjs/idx/flow/AuthenticationFlow.js.map +1 -1
  63. package/cjs/idx/flow/FlowSpecification.js.map +1 -1
  64. package/cjs/idx/flow/PasswordRecoveryFlow.js.map +1 -1
  65. package/cjs/idx/flow/RegistrationFlow.js.map +1 -1
  66. package/cjs/idx/flow/RemediationFlow.js.map +1 -1
  67. package/cjs/idx/flow/index.js.map +1 -1
  68. package/cjs/idx/handleInteractionCodeRedirect.js.map +1 -1
  69. package/cjs/idx/idxState/index.js.map +1 -1
  70. package/cjs/idx/idxState/v1/actionParser.js.map +1 -1
  71. package/cjs/idx/idxState/v1/generateIdxAction.js.map +1 -1
  72. package/cjs/idx/idxState/v1/idxResponseParser.js.map +1 -1
  73. package/cjs/idx/idxState/v1/makeIdxState.js.map +1 -1
  74. package/cjs/idx/idxState/v1/parsers.js.map +1 -1
  75. package/cjs/idx/idxState/v1/remediationParser.js.map +1 -1
  76. package/cjs/idx/index.js.map +1 -1
  77. package/cjs/idx/interact.js.map +1 -1
  78. package/cjs/idx/introspect.js.map +1 -1
  79. package/cjs/idx/poll.js.map +1 -1
  80. package/cjs/idx/proceed.js.map +1 -1
  81. package/cjs/idx/recoverPassword.js.map +1 -1
  82. package/cjs/idx/register.js.map +1 -1
  83. package/cjs/idx/remediate.js.map +1 -1
  84. package/cjs/idx/remediators/AuthenticatorEnrollmentData.js.map +1 -1
  85. package/cjs/idx/remediators/AuthenticatorVerificationData.js.map +1 -1
  86. package/cjs/idx/remediators/Base/AuthenticatorData.js.map +1 -1
  87. package/cjs/idx/remediators/Base/Remediator.js.map +1 -1
  88. package/cjs/idx/remediators/Base/SelectAuthenticator.js.map +1 -1
  89. package/cjs/idx/remediators/Base/VerifyAuthenticator.js.map +1 -1
  90. package/cjs/idx/remediators/ChallengeAuthenticator.js.map +1 -1
  91. package/cjs/idx/remediators/ChallengePoll.js.map +1 -1
  92. package/cjs/idx/remediators/EnrollAuthenticator.js.map +1 -1
  93. package/cjs/idx/remediators/EnrollPoll.js.map +1 -1
  94. package/cjs/idx/remediators/EnrollProfile.js.map +1 -1
  95. package/cjs/idx/remediators/EnrollmentChannelData.js.map +1 -1
  96. package/cjs/idx/remediators/GenericRemediator/GenericRemediator.js.map +1 -1
  97. package/cjs/idx/remediators/GenericRemediator/index.js.map +1 -1
  98. package/cjs/idx/remediators/GenericRemediator/util.js.map +1 -1
  99. package/cjs/idx/remediators/Identify.js.map +1 -1
  100. package/cjs/idx/remediators/ReEnrollAuthenticator.js.map +1 -1
  101. package/cjs/idx/remediators/RedirectIdp.js.map +1 -1
  102. package/cjs/idx/remediators/ResetAuthenticator.js.map +1 -1
  103. package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js.map +1 -1
  104. package/cjs/idx/remediators/SelectAuthenticatorEnroll.js.map +1 -1
  105. package/cjs/idx/remediators/SelectAuthenticatorUnlockAccount.js.map +1 -1
  106. package/cjs/idx/remediators/SelectEnrollProfile.js.map +1 -1
  107. package/cjs/idx/remediators/SelectEnrollmentChannel.js.map +1 -1
  108. package/cjs/idx/remediators/Skip.js.map +1 -1
  109. package/cjs/idx/remediators/index.js.map +1 -1
  110. package/cjs/idx/remediators/util.js.map +1 -1
  111. package/cjs/idx/run.js.map +1 -1
  112. package/cjs/idx/startTransaction.js.map +1 -1
  113. package/cjs/idx/transactionMeta.js.map +1 -1
  114. package/cjs/idx/types/FlowIdentifier.js.map +1 -1
  115. package/cjs/idx/types/api.js.map +1 -1
  116. package/cjs/idx/types/idx-js.js.map +1 -1
  117. package/cjs/idx/types/index.js.map +1 -1
  118. package/cjs/idx/types/options.js.map +1 -1
  119. package/cjs/idx/unlockAccount.js.map +1 -1
  120. package/cjs/idx/util.js.map +1 -1
  121. package/cjs/index.js.map +1 -1
  122. package/cjs/myaccount/api.js +43 -0
  123. package/cjs/myaccount/api.js.map +1 -0
  124. package/cjs/myaccount/emailApi.js +144 -0
  125. package/cjs/myaccount/emailApi.js.map +1 -0
  126. package/cjs/myaccount/index.js +30 -0
  127. package/cjs/myaccount/index.js.map +1 -0
  128. package/cjs/myaccount/phoneApi.js +123 -0
  129. package/cjs/myaccount/phoneApi.js.map +1 -0
  130. package/cjs/myaccount/profileApi.js +58 -0
  131. package/cjs/myaccount/profileApi.js.map +1 -0
  132. package/cjs/myaccount/request.js +168 -0
  133. package/cjs/myaccount/request.js.map +1 -0
  134. package/cjs/myaccount/transactions/Base.js +38 -0
  135. package/cjs/myaccount/transactions/Base.js.map +1 -0
  136. package/cjs/myaccount/transactions/EmailChallengeTransaction.js +58 -0
  137. package/cjs/myaccount/transactions/EmailChallengeTransaction.js.map +1 -0
  138. package/cjs/myaccount/transactions/EmailStatusTransaction.js +32 -0
  139. package/cjs/myaccount/transactions/EmailStatusTransaction.js.map +1 -0
  140. package/cjs/myaccount/transactions/EmailTransaction.js +94 -0
  141. package/cjs/myaccount/transactions/EmailTransaction.js.map +1 -0
  142. package/cjs/myaccount/transactions/PhoneTransaction.js +78 -0
  143. package/cjs/myaccount/transactions/PhoneTransaction.js.map +1 -0
  144. package/cjs/myaccount/transactions/ProfileSchemaTransaction.js +19 -0
  145. package/cjs/myaccount/transactions/ProfileSchemaTransaction.js.map +1 -0
  146. package/cjs/myaccount/transactions/ProfileTransaction.js +26 -0
  147. package/cjs/myaccount/transactions/ProfileTransaction.js.map +1 -0
  148. package/cjs/myaccount/transactions/index.js +61 -0
  149. package/cjs/myaccount/transactions/index.js.map +1 -0
  150. package/cjs/myaccount/types.js +64 -0
  151. package/cjs/myaccount/types.js.map +1 -0
  152. package/cjs/oidc/decodeToken.js.map +1 -1
  153. package/cjs/oidc/endpoints/authorize.js.map +1 -1
  154. package/cjs/oidc/endpoints/index.js.map +1 -1
  155. package/cjs/oidc/endpoints/token.js.map +1 -1
  156. package/cjs/oidc/endpoints/well-known.js.map +1 -1
  157. package/cjs/oidc/exchangeCodeForTokens.js.map +1 -1
  158. package/cjs/oidc/getToken.js.map +1 -1
  159. package/cjs/oidc/getUserInfo.js.map +1 -1
  160. package/cjs/oidc/getWithPopup.js.map +1 -1
  161. package/cjs/oidc/getWithRedirect.js.map +1 -1
  162. package/cjs/oidc/getWithoutPrompt.js.map +1 -1
  163. package/cjs/oidc/handleOAuthResponse.js.map +1 -1
  164. package/cjs/oidc/index.js.map +1 -1
  165. package/cjs/oidc/parseFromUrl.js.map +1 -1
  166. package/cjs/oidc/renewToken.js.map +1 -1
  167. package/cjs/oidc/renewTokens.js.map +1 -1
  168. package/cjs/oidc/renewTokensWithRefresh.js.map +1 -1
  169. package/cjs/oidc/revokeToken.js.map +1 -1
  170. package/cjs/oidc/util/browser.js.map +1 -1
  171. package/cjs/oidc/util/defaultTokenParams.js.map +1 -1
  172. package/cjs/oidc/util/errors.js.map +1 -1
  173. package/cjs/oidc/util/index.js.map +1 -1
  174. package/cjs/oidc/util/loginRedirect.js.map +1 -1
  175. package/cjs/oidc/util/oauth.js.map +1 -1
  176. package/cjs/oidc/util/oauthMeta.js.map +1 -1
  177. package/cjs/oidc/util/pkce.js.map +1 -1
  178. package/cjs/oidc/util/prepareTokenParams.js.map +1 -1
  179. package/cjs/oidc/util/refreshToken.js.map +1 -1
  180. package/cjs/oidc/util/urlParams.js.map +1 -1
  181. package/cjs/oidc/util/validateClaims.js.map +1 -1
  182. package/cjs/oidc/util/validateToken.js.map +1 -1
  183. package/cjs/oidc/verifyToken.js.map +1 -1
  184. package/cjs/options/browser.js.map +1 -1
  185. package/cjs/options/index.js +3 -1
  186. package/cjs/options/index.js.map +1 -1
  187. package/cjs/options/node.js.map +1 -1
  188. package/cjs/server/serverStorage.js +2 -1
  189. package/cjs/server/serverStorage.js.map +1 -1
  190. package/cjs/services/AutoRenewService.js +7 -7
  191. package/cjs/services/AutoRenewService.js.map +1 -1
  192. package/cjs/services/LeaderElectionService.js +103 -0
  193. package/cjs/services/LeaderElectionService.js.map +1 -0
  194. package/cjs/services/SyncStorageService.js +121 -39
  195. package/cjs/services/SyncStorageService.js.map +1 -1
  196. package/cjs/services/index.js +13 -0
  197. package/cjs/services/index.js.map +1 -1
  198. package/cjs/session.js.map +1 -1
  199. package/cjs/tx/AuthTransaction.js.map +1 -1
  200. package/cjs/tx/TransactionState.js.map +1 -1
  201. package/cjs/tx/api.js.map +1 -1
  202. package/cjs/tx/index.js.map +1 -1
  203. package/cjs/tx/poll.js.map +1 -1
  204. package/cjs/tx/util.js.map +1 -1
  205. package/cjs/types/AuthState.js.map +1 -1
  206. package/cjs/types/Cookies.js.map +1 -1
  207. package/cjs/types/EventEmitter.js.map +1 -1
  208. package/cjs/types/JWT.js.map +1 -1
  209. package/cjs/types/OAuth.js.map +1 -1
  210. package/cjs/types/OktaAuthOptions.js.map +1 -1
  211. package/cjs/types/Service.js.map +1 -1
  212. package/cjs/types/Storage.js.map +1 -1
  213. package/cjs/types/Token.js.map +1 -1
  214. package/cjs/types/TokenManager.js +16 -0
  215. package/cjs/types/TokenManager.js.map +1 -1
  216. package/cjs/types/Transaction.js.map +1 -1
  217. package/cjs/types/UserClaims.js.map +1 -1
  218. package/cjs/types/api.js.map +1 -1
  219. package/cjs/types/http.js.map +1 -1
  220. package/cjs/types/index.js +13 -0
  221. package/cjs/types/index.js.map +1 -1
  222. package/cjs/util/console.js +2 -1
  223. package/cjs/util/console.js.map +1 -1
  224. package/cjs/util/index.js.map +1 -1
  225. package/cjs/util/misc.js.map +1 -1
  226. package/cjs/util/object.js.map +1 -1
  227. package/cjs/util/sharedStorage.js.map +1 -1
  228. package/cjs/util/types.js.map +1 -1
  229. package/cjs/util/url.js.map +1 -1
  230. package/dist/myaccount.umd.js +3 -0
  231. package/dist/myaccount.umd.js.LICENSE.txt +12 -0
  232. package/dist/myaccount.umd.js.map +1 -0
  233. package/dist/okta-auth-js.min.js +1 -1
  234. package/dist/okta-auth-js.min.js.map +1 -1
  235. package/dist/okta-auth-js.polyfill.js +1 -1
  236. package/dist/okta-auth-js.polyfill.js.map +1 -1
  237. package/dist/okta-auth-js.umd.js +1 -1
  238. package/dist/okta-auth-js.umd.js.map +1 -1
  239. package/esm/browser/AuthStateManager.js +161 -0
  240. package/esm/browser/AuthStateManager.js.map +1 -0
  241. package/esm/browser/OktaAuth.js +560 -0
  242. package/esm/browser/OktaAuth.js.map +1 -0
  243. package/esm/browser/OktaUserAgent.js +39 -0
  244. package/esm/browser/OktaUserAgent.js.map +1 -0
  245. package/esm/browser/PromiseQueue.js +65 -0
  246. package/esm/browser/PromiseQueue.js.map +1 -0
  247. package/esm/browser/SavedObject.js +81 -0
  248. package/esm/browser/SavedObject.js.map +1 -0
  249. package/esm/browser/ServiceManager.js +115 -0
  250. package/esm/browser/ServiceManager.js.map +1 -0
  251. package/esm/browser/StorageManager.js +148 -0
  252. package/esm/browser/StorageManager.js.map +1 -0
  253. package/esm/browser/TokenManager.js +386 -0
  254. package/esm/browser/TokenManager.js.map +1 -0
  255. package/esm/browser/TransactionManager.js +244 -0
  256. package/esm/browser/TransactionManager.js.map +1 -0
  257. package/esm/browser/_virtual/_tslib.js +41 -0
  258. package/esm/browser/_virtual/_tslib.js.map +1 -0
  259. package/esm/browser/browser/browserStorage.js +216 -0
  260. package/esm/browser/browser/browserStorage.js.map +1 -0
  261. package/esm/browser/browser/fingerprint.js +69 -0
  262. package/esm/browser/browser/fingerprint.js.map +1 -0
  263. package/esm/browser/builderUtil.js +39 -0
  264. package/esm/browser/builderUtil.js.map +1 -0
  265. package/esm/browser/clock.js +28 -0
  266. package/esm/browser/clock.js.map +1 -0
  267. package/esm/browser/constants.js +37 -0
  268. package/esm/browser/constants.js.map +1 -0
  269. package/esm/browser/crypto/base64.js +66 -0
  270. package/esm/browser/crypto/base64.js.map +1 -0
  271. package/esm/browser/crypto/browser.js +18 -0
  272. package/esm/browser/crypto/browser.js.map +1 -0
  273. package/esm/browser/crypto/index.js +17 -0
  274. package/esm/browser/crypto/index.js.map +1 -0
  275. package/esm/browser/crypto/oidcHash.js +28 -0
  276. package/esm/browser/crypto/oidcHash.js.map +1 -0
  277. package/esm/browser/crypto/verifyToken.js +38 -0
  278. package/esm/browser/crypto/verifyToken.js.map +1 -0
  279. package/esm/browser/crypto/webauthn.js +79 -0
  280. package/esm/browser/crypto/webauthn.js.map +1 -0
  281. package/esm/browser/errors/AuthApiError.js +35 -0
  282. package/esm/browser/errors/AuthApiError.js.map +1 -0
  283. package/esm/browser/errors/AuthPollStopError.js +23 -0
  284. package/esm/browser/errors/AuthPollStopError.js.map +1 -0
  285. package/esm/browser/errors/AuthSdkError.js +31 -0
  286. package/esm/browser/errors/AuthSdkError.js.map +1 -0
  287. package/esm/browser/errors/CustomError.js +21 -0
  288. package/esm/browser/errors/CustomError.js.map +1 -0
  289. package/esm/browser/errors/OAuthError.js +27 -0
  290. package/esm/browser/errors/OAuthError.js.map +1 -0
  291. package/esm/browser/errors/index.js +26 -0
  292. package/esm/browser/errors/index.js.map +1 -0
  293. package/esm/browser/features.js +67 -0
  294. package/esm/browser/features.js.map +1 -0
  295. package/esm/browser/fetch/fetchRequest.js +90 -0
  296. package/esm/browser/fetch/fetchRequest.js.map +1 -0
  297. package/esm/browser/http/headers.js +19 -0
  298. package/esm/browser/http/headers.js.map +1 -0
  299. package/esm/browser/http/request.js +133 -0
  300. package/esm/browser/http/request.js.map +1 -0
  301. package/esm/browser/idx/authenticate.js +25 -0
  302. package/esm/browser/idx/authenticate.js.map +1 -0
  303. package/esm/browser/idx/authenticator/Authenticator.js +20 -0
  304. package/esm/browser/idx/authenticator/Authenticator.js.map +1 -0
  305. package/esm/browser/idx/authenticator/OktaPassword.js +33 -0
  306. package/esm/browser/idx/authenticator/OktaPassword.js.map +1 -0
  307. package/esm/browser/idx/authenticator/OktaVerifyTotp.js +26 -0
  308. package/esm/browser/idx/authenticator/OktaVerifyTotp.js.map +1 -0
  309. package/esm/browser/idx/authenticator/SecurityQuestionEnrollment.js +45 -0
  310. package/esm/browser/idx/authenticator/SecurityQuestionEnrollment.js.map +1 -0
  311. package/esm/browser/idx/authenticator/SecurityQuestionVerification.js +42 -0
  312. package/esm/browser/idx/authenticator/SecurityQuestionVerification.js.map +1 -0
  313. package/esm/browser/idx/authenticator/VerificationCodeAuthenticator.js +33 -0
  314. package/esm/browser/idx/authenticator/VerificationCodeAuthenticator.js.map +1 -0
  315. package/esm/browser/idx/authenticator/WebauthnEnrollment.js +41 -0
  316. package/esm/browser/idx/authenticator/WebauthnEnrollment.js.map +1 -0
  317. package/esm/browser/idx/authenticator/WebauthnVerification.js +43 -0
  318. package/esm/browser/idx/authenticator/WebauthnVerification.js.map +1 -0
  319. package/esm/browser/idx/authenticator/getAuthenticator.js +51 -0
  320. package/esm/browser/idx/authenticator/getAuthenticator.js.map +1 -0
  321. package/esm/browser/idx/authenticator/util.js +55 -0
  322. package/esm/browser/idx/authenticator/util.js.map +1 -0
  323. package/esm/browser/idx/cancel.js +42 -0
  324. package/esm/browser/idx/cancel.js.map +1 -0
  325. package/esm/browser/idx/emailVerify.js +46 -0
  326. package/esm/browser/idx/emailVerify.js.map +1 -0
  327. package/esm/browser/idx/flow/AccountUnlockFlow.js +43 -0
  328. package/esm/browser/idx/flow/AccountUnlockFlow.js.map +1 -0
  329. package/esm/browser/idx/flow/AuthenticationFlow.js +49 -0
  330. package/esm/browser/idx/flow/AuthenticationFlow.js.map +1 -0
  331. package/esm/browser/idx/flow/FlowSpecification.js +56 -0
  332. package/esm/browser/idx/flow/FlowSpecification.js.map +1 -0
  333. package/esm/browser/idx/flow/PasswordRecoveryFlow.js +47 -0
  334. package/esm/browser/idx/flow/PasswordRecoveryFlow.js.map +1 -0
  335. package/esm/browser/idx/flow/RegistrationFlow.js +46 -0
  336. package/esm/browser/idx/flow/RegistrationFlow.js.map +1 -0
  337. package/esm/browser/idx/handleInteractionCodeRedirect.js +41 -0
  338. package/esm/browser/idx/handleInteractionCodeRedirect.js.map +1 -0
  339. package/esm/browser/idx/idxState/index.js +46 -0
  340. package/esm/browser/idx/idxState/index.js.map +1 -0
  341. package/esm/browser/idx/idxState/v1/actionParser.js +53 -0
  342. package/esm/browser/idx/idxState/v1/actionParser.js.map +1 -0
  343. package/esm/browser/idx/idxState/v1/generateIdxAction.js +65 -0
  344. package/esm/browser/idx/idxState/v1/generateIdxAction.js.map +1 -0
  345. package/esm/browser/idx/idxState/v1/idxResponseParser.js +95 -0
  346. package/esm/browser/idx/idxState/v1/idxResponseParser.js.map +1 -0
  347. package/esm/browser/idx/idxState/v1/makeIdxState.js +46 -0
  348. package/esm/browser/idx/idxState/v1/makeIdxState.js.map +1 -0
  349. package/esm/browser/idx/idxState/v1/parsers.js +20 -0
  350. package/esm/browser/idx/idxState/v1/parsers.js.map +1 -0
  351. package/esm/browser/idx/idxState/v1/remediationParser.js +25 -0
  352. package/esm/browser/idx/idxState/v1/remediationParser.js.map +1 -0
  353. package/esm/browser/idx/interact.js +62 -0
  354. package/esm/browser/idx/interact.js.map +1 -0
  355. package/esm/browser/idx/introspect.js +68 -0
  356. package/esm/browser/idx/introspect.js.map +1 -0
  357. package/esm/browser/idx/poll.js +52 -0
  358. package/esm/browser/idx/poll.js.map +1 -0
  359. package/esm/browser/idx/proceed.js +34 -0
  360. package/esm/browser/idx/proceed.js.map +1 -0
  361. package/esm/browser/idx/recoverPassword.js +41 -0
  362. package/esm/browser/idx/recoverPassword.js.map +1 -0
  363. package/esm/browser/idx/register.js +36 -0
  364. package/esm/browser/idx/register.js.map +1 -0
  365. package/esm/browser/idx/remediate.js +134 -0
  366. package/esm/browser/idx/remediate.js.map +1 -0
  367. package/esm/browser/idx/remediators/AuthenticatorEnrollmentData.js +48 -0
  368. package/esm/browser/idx/remediators/AuthenticatorEnrollmentData.js.map +1 -0
  369. package/esm/browser/idx/remediators/AuthenticatorVerificationData.js +71 -0
  370. package/esm/browser/idx/remediators/AuthenticatorVerificationData.js.map +1 -0
  371. package/esm/browser/idx/remediators/Base/AuthenticatorData.js +82 -0
  372. package/esm/browser/idx/remediators/Base/AuthenticatorData.js.map +1 -0
  373. package/esm/browser/idx/remediators/Base/Remediator.js +177 -0
  374. package/esm/browser/idx/remediators/Base/Remediator.js.map +1 -0
  375. package/esm/browser/idx/remediators/Base/SelectAuthenticator.js +90 -0
  376. package/esm/browser/idx/remediators/Base/SelectAuthenticator.js.map +1 -0
  377. package/esm/browser/idx/remediators/Base/VerifyAuthenticator.js +44 -0
  378. package/esm/browser/idx/remediators/Base/VerifyAuthenticator.js.map +1 -0
  379. package/esm/browser/idx/remediators/ChallengeAuthenticator.js +20 -0
  380. package/esm/browser/idx/remediators/ChallengeAuthenticator.js.map +1 -0
  381. package/esm/browser/idx/remediators/ChallengePoll.js +23 -0
  382. package/esm/browser/idx/remediators/ChallengePoll.js.map +1 -0
  383. package/esm/browser/idx/remediators/EnrollAuthenticator.js +20 -0
  384. package/esm/browser/idx/remediators/EnrollAuthenticator.js.map +1 -0
  385. package/esm/browser/idx/remediators/EnrollPoll.js +38 -0
  386. package/esm/browser/idx/remediators/EnrollPoll.js.map +1 -0
  387. package/esm/browser/idx/remediators/EnrollProfile.js +52 -0
  388. package/esm/browser/idx/remediators/EnrollProfile.js.map +1 -0
  389. package/esm/browser/idx/remediators/EnrollmentChannelData.js +49 -0
  390. package/esm/browser/idx/remediators/EnrollmentChannelData.js.map +1 -0
  391. package/esm/browser/idx/remediators/GenericRemediator/GenericRemediator.js +61 -0
  392. package/esm/browser/idx/remediators/GenericRemediator/GenericRemediator.js.map +1 -0
  393. package/esm/browser/idx/remediators/GenericRemediator/util.js +92 -0
  394. package/esm/browser/idx/remediators/GenericRemediator/util.js.map +1 -0
  395. package/esm/browser/idx/remediators/Identify.js +40 -0
  396. package/esm/browser/idx/remediators/Identify.js.map +1 -0
  397. package/esm/browser/idx/remediators/ReEnrollAuthenticator.js +34 -0
  398. package/esm/browser/idx/remediators/ReEnrollAuthenticator.js.map +1 -0
  399. package/esm/browser/idx/remediators/RedirectIdp.js +32 -0
  400. package/esm/browser/idx/remediators/RedirectIdp.js.map +1 -0
  401. package/esm/browser/idx/remediators/ResetAuthenticator.js +20 -0
  402. package/esm/browser/idx/remediators/ResetAuthenticator.js.map +1 -0
  403. package/esm/browser/idx/remediators/SelectAuthenticatorAuthenticate.js +35 -0
  404. package/esm/browser/idx/remediators/SelectAuthenticatorAuthenticate.js.map +1 -0
  405. package/esm/browser/idx/remediators/SelectAuthenticatorEnroll.js +20 -0
  406. package/esm/browser/idx/remediators/SelectAuthenticatorEnroll.js.map +1 -0
  407. package/esm/browser/idx/remediators/SelectAuthenticatorUnlockAccount.js +44 -0
  408. package/esm/browser/idx/remediators/SelectAuthenticatorUnlockAccount.js.map +1 -0
  409. package/esm/browser/idx/remediators/SelectEnrollProfile.js +23 -0
  410. package/esm/browser/idx/remediators/SelectEnrollProfile.js.map +1 -0
  411. package/esm/browser/idx/remediators/SelectEnrollmentChannel.js +50 -0
  412. package/esm/browser/idx/remediators/SelectEnrollmentChannel.js.map +1 -0
  413. package/esm/browser/idx/remediators/Skip.js +23 -0
  414. package/esm/browser/idx/remediators/Skip.js.map +1 -0
  415. package/esm/browser/idx/remediators/index.js +33 -0
  416. package/esm/browser/idx/remediators/index.js.map +1 -0
  417. package/esm/browser/idx/remediators/util.js +34 -0
  418. package/esm/browser/idx/remediators/util.js.map +1 -0
  419. package/esm/browser/idx/run.js +245 -0
  420. package/esm/browser/idx/run.js.map +1 -0
  421. package/esm/browser/idx/startTransaction.js +21 -0
  422. package/esm/browser/idx/startTransaction.js.map +1 -0
  423. package/esm/browser/idx/transactionMeta.js +110 -0
  424. package/esm/browser/idx/transactionMeta.js.map +1 -0
  425. package/esm/browser/idx/types/api.js +43 -0
  426. package/esm/browser/idx/types/api.js.map +1 -0
  427. package/esm/browser/idx/types/idx-js.js +21 -0
  428. package/esm/browser/idx/types/idx-js.js.map +1 -0
  429. package/esm/browser/idx/unlockAccount.js +32 -0
  430. package/esm/browser/idx/unlockAccount.js.map +1 -0
  431. package/esm/browser/idx/util.js +212 -0
  432. package/esm/browser/idx/util.js.map +1 -0
  433. package/esm/browser/index.js +91 -0
  434. package/esm/browser/index.js.map +1 -0
  435. package/esm/browser/myaccount/emailApi.js +86 -0
  436. package/esm/browser/myaccount/emailApi.js.map +1 -0
  437. package/esm/browser/myaccount/myaccount/index.js +24 -0
  438. package/esm/browser/myaccount/myaccount/index.js.map +1 -0
  439. package/esm/browser/myaccount/phoneApi.js +76 -0
  440. package/esm/browser/myaccount/phoneApi.js.map +1 -0
  441. package/esm/browser/myaccount/profileApi.js +46 -0
  442. package/esm/browser/myaccount/profileApi.js.map +1 -0
  443. package/esm/browser/myaccount/request.js +121 -0
  444. package/esm/browser/myaccount/request.js.map +1 -0
  445. package/esm/browser/myaccount/transactions/Base.js +32 -0
  446. package/esm/browser/myaccount/transactions/Base.js.map +1 -0
  447. package/esm/browser/myaccount/transactions/EmailChallengeTransaction.js +48 -0
  448. package/esm/browser/myaccount/transactions/EmailChallengeTransaction.js.map +1 -0
  449. package/esm/browser/myaccount/transactions/EmailStatusTransaction.js +28 -0
  450. package/esm/browser/myaccount/transactions/EmailStatusTransaction.js.map +1 -0
  451. package/esm/browser/myaccount/transactions/EmailTransaction.js +81 -0
  452. package/esm/browser/myaccount/transactions/EmailTransaction.js.map +1 -0
  453. package/esm/browser/myaccount/transactions/PhoneTransaction.js +67 -0
  454. package/esm/browser/myaccount/transactions/PhoneTransaction.js.map +1 -0
  455. package/esm/browser/myaccount/transactions/ProfileSchemaTransaction.js +23 -0
  456. package/esm/browser/myaccount/transactions/ProfileSchemaTransaction.js.map +1 -0
  457. package/esm/browser/myaccount/transactions/ProfileTransaction.js +26 -0
  458. package/esm/browser/myaccount/transactions/ProfileTransaction.js.map +1 -0
  459. package/esm/browser/myaccount/types.js +25 -0
  460. package/esm/browser/myaccount/types.js.map +1 -0
  461. package/esm/browser/oidc/decodeToken.js +33 -0
  462. package/esm/browser/oidc/decodeToken.js.map +1 -0
  463. package/esm/browser/oidc/endpoints/authorize.js +63 -0
  464. package/esm/browser/oidc/endpoints/authorize.js.map +1 -0
  465. package/esm/browser/oidc/endpoints/token.js +83 -0
  466. package/esm/browser/oidc/endpoints/token.js.map +1 -0
  467. package/esm/browser/oidc/endpoints/well-known.js +55 -0
  468. package/esm/browser/oidc/endpoints/well-known.js.map +1 -0
  469. package/esm/browser/oidc/exchangeCodeForTokens.js +58 -0
  470. package/esm/browser/oidc/exchangeCodeForTokens.js.map +1 -0
  471. package/esm/browser/oidc/getToken.js +117 -0
  472. package/esm/browser/oidc/getToken.js.map +1 -0
  473. package/esm/browser/oidc/getUserInfo.js +69 -0
  474. package/esm/browser/oidc/getUserInfo.js.map +1 -0
  475. package/esm/browser/oidc/getWithPopup.js +35 -0
  476. package/esm/browser/oidc/getWithPopup.js.map +1 -0
  477. package/esm/browser/oidc/getWithRedirect.js +34 -0
  478. package/esm/browser/oidc/getWithRedirect.js.map +1 -0
  479. package/esm/browser/oidc/getWithoutPrompt.js +31 -0
  480. package/esm/browser/oidc/getWithoutPrompt.js.map +1 -0
  481. package/esm/browser/oidc/handleOAuthResponse.js +119 -0
  482. package/esm/browser/oidc/handleOAuthResponse.js.map +1 -0
  483. package/esm/browser/oidc/parseFromUrl.js +116 -0
  484. package/esm/browser/oidc/parseFromUrl.js.map +1 -0
  485. package/esm/browser/oidc/renewToken.js +67 -0
  486. package/esm/browser/oidc/renewToken.js.map +1 -0
  487. package/esm/browser/oidc/renewTokens.js +58 -0
  488. package/esm/browser/oidc/renewTokens.js.map +1 -0
  489. package/esm/browser/oidc/renewTokensWithRefresh.js +47 -0
  490. package/esm/browser/oidc/renewTokensWithRefresh.js.map +1 -0
  491. package/esm/browser/oidc/revokeToken.js +49 -0
  492. package/esm/browser/oidc/revokeToken.js.map +1 -0
  493. package/esm/browser/oidc/util/browser.js +69 -0
  494. package/esm/browser/oidc/util/browser.js.map +1 -0
  495. package/esm/browser/oidc/util/defaultTokenParams.js +34 -0
  496. package/esm/browser/oidc/util/defaultTokenParams.js.map +1 -0
  497. package/esm/browser/oidc/util/errors.js +38 -0
  498. package/esm/browser/oidc/util/errors.js.map +1 -0
  499. package/esm/browser/oidc/util/loginRedirect.js +66 -0
  500. package/esm/browser/oidc/util/loginRedirect.js.map +1 -0
  501. package/esm/browser/oidc/util/oauth.js +65 -0
  502. package/esm/browser/oidc/util/oauth.js.map +1 -0
  503. package/esm/browser/oidc/util/oauthMeta.js +38 -0
  504. package/esm/browser/oidc/util/oauthMeta.js.map +1 -0
  505. package/esm/browser/oidc/util/pkce.js +48 -0
  506. package/esm/browser/oidc/util/pkce.js.map +1 -0
  507. package/esm/browser/oidc/util/prepareTokenParams.js +65 -0
  508. package/esm/browser/oidc/util/prepareTokenParams.js.map +1 -0
  509. package/esm/browser/oidc/util/refreshToken.js +33 -0
  510. package/esm/browser/oidc/util/refreshToken.js.map +1 -0
  511. package/esm/browser/oidc/util/urlParams.js +43 -0
  512. package/esm/browser/oidc/util/urlParams.js.map +1 -0
  513. package/esm/browser/oidc/util/validateClaims.js +48 -0
  514. package/esm/browser/oidc/util/validateClaims.js.map +1 -0
  515. package/esm/browser/oidc/util/validateToken.js +34 -0
  516. package/esm/browser/oidc/util/validateToken.js.map +1 -0
  517. package/esm/browser/oidc/verifyToken.js +54 -0
  518. package/esm/browser/oidc/verifyToken.js.map +1 -0
  519. package/esm/browser/options/browser.js +77 -0
  520. package/esm/browser/options/browser.js.map +1 -0
  521. package/esm/browser/options/index.js +85 -0
  522. package/esm/browser/options/index.js.map +1 -0
  523. package/esm/browser/services/AutoRenewService.js +77 -0
  524. package/esm/browser/services/AutoRenewService.js.map +1 -0
  525. package/esm/browser/services/LeaderElectionService.js +74 -0
  526. package/esm/browser/services/LeaderElectionService.js.map +1 -0
  527. package/esm/browser/services/SyncStorageService.js +130 -0
  528. package/esm/browser/services/SyncStorageService.js.map +1 -0
  529. package/esm/browser/session.js +66 -0
  530. package/esm/browser/session.js.map +1 -0
  531. package/esm/browser/tx/AuthTransaction.js +174 -0
  532. package/esm/browser/tx/AuthTransaction.js.map +1 -0
  533. package/esm/browser/tx/api.js +72 -0
  534. package/esm/browser/tx/api.js.map +1 -0
  535. package/esm/browser/tx/poll.js +117 -0
  536. package/esm/browser/tx/poll.js.map +1 -0
  537. package/esm/browser/tx/util.js +26 -0
  538. package/esm/browser/tx/util.js.map +1 -0
  539. package/esm/browser/types/Token.js +32 -0
  540. package/esm/browser/types/Token.js.map +1 -0
  541. package/esm/browser/types/TokenManager.js +21 -0
  542. package/esm/browser/types/TokenManager.js.map +1 -0
  543. package/esm/browser/types/Transaction.js +52 -0
  544. package/esm/browser/types/Transaction.js.map +1 -0
  545. package/esm/browser/util/console.js +50 -0
  546. package/esm/browser/util/console.js.map +1 -0
  547. package/esm/browser/util/misc.js +32 -0
  548. package/esm/browser/util/misc.js.map +1 -0
  549. package/esm/browser/util/object.js +98 -0
  550. package/esm/browser/util/object.js.map +1 -0
  551. package/esm/browser/util/sharedStorage.js +56 -0
  552. package/esm/browser/util/sharedStorage.js.map +1 -0
  553. package/esm/browser/util/types.js +30 -0
  554. package/esm/browser/util/types.js.map +1 -0
  555. package/esm/browser/util/url.js +57 -0
  556. package/esm/browser/util/url.js.map +1 -0
  557. package/esm/node/AuthStateManager.js +161 -0
  558. package/esm/node/AuthStateManager.js.map +1 -0
  559. package/esm/node/OktaAuth.js +560 -0
  560. package/esm/node/OktaAuth.js.map +1 -0
  561. package/esm/node/OktaUserAgent.js +39 -0
  562. package/esm/node/OktaUserAgent.js.map +1 -0
  563. package/esm/node/PromiseQueue.js +65 -0
  564. package/esm/node/PromiseQueue.js.map +1 -0
  565. package/esm/node/SavedObject.js +81 -0
  566. package/esm/node/SavedObject.js.map +1 -0
  567. package/esm/node/ServiceManager.js +115 -0
  568. package/esm/node/ServiceManager.js.map +1 -0
  569. package/esm/node/StorageManager.js +148 -0
  570. package/esm/node/StorageManager.js.map +1 -0
  571. package/esm/node/TokenManager.js +387 -0
  572. package/esm/node/TokenManager.js.map +1 -0
  573. package/esm/node/TransactionManager.js +244 -0
  574. package/esm/node/TransactionManager.js.map +1 -0
  575. package/esm/node/_virtual/_tslib.js +41 -0
  576. package/esm/node/_virtual/_tslib.js.map +1 -0
  577. package/esm/node/browser/browserStorage.js +216 -0
  578. package/esm/node/browser/browserStorage.js.map +1 -0
  579. package/esm/node/browser/fingerprint.js +70 -0
  580. package/esm/node/browser/fingerprint.js.map +1 -0
  581. package/esm/node/builderUtil.js +39 -0
  582. package/esm/node/builderUtil.js.map +1 -0
  583. package/esm/node/clock.js +28 -0
  584. package/esm/node/clock.js.map +1 -0
  585. package/esm/node/constants.js +37 -0
  586. package/esm/node/constants.js.map +1 -0
  587. package/esm/node/crypto/base64.js +66 -0
  588. package/esm/node/crypto/base64.js.map +1 -0
  589. package/esm/node/crypto/index.js +17 -0
  590. package/esm/node/crypto/index.js.map +1 -0
  591. package/esm/node/crypto/node.js +48 -0
  592. package/esm/node/crypto/node.js.map +1 -0
  593. package/esm/node/crypto/oidcHash.js +28 -0
  594. package/esm/node/crypto/oidcHash.js.map +1 -0
  595. package/esm/node/crypto/verifyToken.js +38 -0
  596. package/esm/node/crypto/verifyToken.js.map +1 -0
  597. package/esm/node/crypto/webauthn.js +79 -0
  598. package/esm/node/crypto/webauthn.js.map +1 -0
  599. package/esm/node/errors/AuthApiError.js +35 -0
  600. package/esm/node/errors/AuthApiError.js.map +1 -0
  601. package/esm/node/errors/AuthPollStopError.js +23 -0
  602. package/esm/node/errors/AuthPollStopError.js.map +1 -0
  603. package/esm/node/errors/AuthSdkError.js +31 -0
  604. package/esm/node/errors/AuthSdkError.js.map +1 -0
  605. package/esm/node/errors/CustomError.js +21 -0
  606. package/esm/node/errors/CustomError.js.map +1 -0
  607. package/esm/node/errors/OAuthError.js +27 -0
  608. package/esm/node/errors/OAuthError.js.map +1 -0
  609. package/esm/node/errors/index.js +26 -0
  610. package/esm/node/errors/index.js.map +1 -0
  611. package/esm/node/features.js +67 -0
  612. package/esm/node/features.js.map +1 -0
  613. package/esm/node/fetch/fetchRequest.js +90 -0
  614. package/esm/node/fetch/fetchRequest.js.map +1 -0
  615. package/esm/node/http/headers.js +19 -0
  616. package/esm/node/http/headers.js.map +1 -0
  617. package/esm/node/http/request.js +133 -0
  618. package/esm/node/http/request.js.map +1 -0
  619. package/esm/node/idx/authenticate.js +25 -0
  620. package/esm/node/idx/authenticate.js.map +1 -0
  621. package/esm/node/idx/authenticator/Authenticator.js +20 -0
  622. package/esm/node/idx/authenticator/Authenticator.js.map +1 -0
  623. package/esm/node/idx/authenticator/OktaPassword.js +33 -0
  624. package/esm/node/idx/authenticator/OktaPassword.js.map +1 -0
  625. package/esm/node/idx/authenticator/OktaVerifyTotp.js +26 -0
  626. package/esm/node/idx/authenticator/OktaVerifyTotp.js.map +1 -0
  627. package/esm/node/idx/authenticator/SecurityQuestionEnrollment.js +45 -0
  628. package/esm/node/idx/authenticator/SecurityQuestionEnrollment.js.map +1 -0
  629. package/esm/node/idx/authenticator/SecurityQuestionVerification.js +42 -0
  630. package/esm/node/idx/authenticator/SecurityQuestionVerification.js.map +1 -0
  631. package/esm/node/idx/authenticator/VerificationCodeAuthenticator.js +33 -0
  632. package/esm/node/idx/authenticator/VerificationCodeAuthenticator.js.map +1 -0
  633. package/esm/node/idx/authenticator/WebauthnEnrollment.js +41 -0
  634. package/esm/node/idx/authenticator/WebauthnEnrollment.js.map +1 -0
  635. package/esm/node/idx/authenticator/WebauthnVerification.js +43 -0
  636. package/esm/node/idx/authenticator/WebauthnVerification.js.map +1 -0
  637. package/esm/node/idx/authenticator/getAuthenticator.js +51 -0
  638. package/esm/node/idx/authenticator/getAuthenticator.js.map +1 -0
  639. package/esm/node/idx/authenticator/util.js +55 -0
  640. package/esm/node/idx/authenticator/util.js.map +1 -0
  641. package/esm/node/idx/cancel.js +42 -0
  642. package/esm/node/idx/cancel.js.map +1 -0
  643. package/esm/node/idx/emailVerify.js +46 -0
  644. package/esm/node/idx/emailVerify.js.map +1 -0
  645. package/esm/node/idx/flow/AccountUnlockFlow.js +43 -0
  646. package/esm/node/idx/flow/AccountUnlockFlow.js.map +1 -0
  647. package/esm/node/idx/flow/AuthenticationFlow.js +49 -0
  648. package/esm/node/idx/flow/AuthenticationFlow.js.map +1 -0
  649. package/esm/node/idx/flow/FlowSpecification.js +56 -0
  650. package/esm/node/idx/flow/FlowSpecification.js.map +1 -0
  651. package/esm/node/idx/flow/PasswordRecoveryFlow.js +47 -0
  652. package/esm/node/idx/flow/PasswordRecoveryFlow.js.map +1 -0
  653. package/esm/node/idx/flow/RegistrationFlow.js +46 -0
  654. package/esm/node/idx/flow/RegistrationFlow.js.map +1 -0
  655. package/esm/node/idx/handleInteractionCodeRedirect.js +41 -0
  656. package/esm/node/idx/handleInteractionCodeRedirect.js.map +1 -0
  657. package/esm/node/idx/idxState/index.js +46 -0
  658. package/esm/node/idx/idxState/index.js.map +1 -0
  659. package/esm/node/idx/idxState/v1/actionParser.js +53 -0
  660. package/esm/node/idx/idxState/v1/actionParser.js.map +1 -0
  661. package/esm/node/idx/idxState/v1/generateIdxAction.js +65 -0
  662. package/esm/node/idx/idxState/v1/generateIdxAction.js.map +1 -0
  663. package/esm/node/idx/idxState/v1/idxResponseParser.js +95 -0
  664. package/esm/node/idx/idxState/v1/idxResponseParser.js.map +1 -0
  665. package/esm/node/idx/idxState/v1/makeIdxState.js +46 -0
  666. package/esm/node/idx/idxState/v1/makeIdxState.js.map +1 -0
  667. package/esm/node/idx/idxState/v1/parsers.js +20 -0
  668. package/esm/node/idx/idxState/v1/parsers.js.map +1 -0
  669. package/esm/node/idx/idxState/v1/remediationParser.js +25 -0
  670. package/esm/node/idx/idxState/v1/remediationParser.js.map +1 -0
  671. package/esm/node/idx/interact.js +63 -0
  672. package/esm/node/idx/interact.js.map +1 -0
  673. package/esm/node/idx/introspect.js +69 -0
  674. package/esm/node/idx/introspect.js.map +1 -0
  675. package/esm/node/idx/poll.js +52 -0
  676. package/esm/node/idx/poll.js.map +1 -0
  677. package/esm/node/idx/proceed.js +34 -0
  678. package/esm/node/idx/proceed.js.map +1 -0
  679. package/esm/node/idx/recoverPassword.js +41 -0
  680. package/esm/node/idx/recoverPassword.js.map +1 -0
  681. package/esm/node/idx/register.js +36 -0
  682. package/esm/node/idx/register.js.map +1 -0
  683. package/esm/node/idx/remediate.js +134 -0
  684. package/esm/node/idx/remediate.js.map +1 -0
  685. package/esm/node/idx/remediators/AuthenticatorEnrollmentData.js +48 -0
  686. package/esm/node/idx/remediators/AuthenticatorEnrollmentData.js.map +1 -0
  687. package/esm/node/idx/remediators/AuthenticatorVerificationData.js +71 -0
  688. package/esm/node/idx/remediators/AuthenticatorVerificationData.js.map +1 -0
  689. package/esm/node/idx/remediators/Base/AuthenticatorData.js +82 -0
  690. package/esm/node/idx/remediators/Base/AuthenticatorData.js.map +1 -0
  691. package/esm/node/idx/remediators/Base/Remediator.js +177 -0
  692. package/esm/node/idx/remediators/Base/Remediator.js.map +1 -0
  693. package/esm/node/idx/remediators/Base/SelectAuthenticator.js +90 -0
  694. package/esm/node/idx/remediators/Base/SelectAuthenticator.js.map +1 -0
  695. package/esm/node/idx/remediators/Base/VerifyAuthenticator.js +44 -0
  696. package/esm/node/idx/remediators/Base/VerifyAuthenticator.js.map +1 -0
  697. package/esm/node/idx/remediators/ChallengeAuthenticator.js +20 -0
  698. package/esm/node/idx/remediators/ChallengeAuthenticator.js.map +1 -0
  699. package/esm/node/idx/remediators/ChallengePoll.js +23 -0
  700. package/esm/node/idx/remediators/ChallengePoll.js.map +1 -0
  701. package/esm/node/idx/remediators/EnrollAuthenticator.js +20 -0
  702. package/esm/node/idx/remediators/EnrollAuthenticator.js.map +1 -0
  703. package/esm/node/idx/remediators/EnrollPoll.js +38 -0
  704. package/esm/node/idx/remediators/EnrollPoll.js.map +1 -0
  705. package/esm/node/idx/remediators/EnrollProfile.js +52 -0
  706. package/esm/node/idx/remediators/EnrollProfile.js.map +1 -0
  707. package/esm/node/idx/remediators/EnrollmentChannelData.js +49 -0
  708. package/esm/node/idx/remediators/EnrollmentChannelData.js.map +1 -0
  709. package/esm/node/idx/remediators/GenericRemediator/GenericRemediator.js +61 -0
  710. package/esm/node/idx/remediators/GenericRemediator/GenericRemediator.js.map +1 -0
  711. package/esm/node/idx/remediators/GenericRemediator/util.js +92 -0
  712. package/esm/node/idx/remediators/GenericRemediator/util.js.map +1 -0
  713. package/esm/node/idx/remediators/Identify.js +40 -0
  714. package/esm/node/idx/remediators/Identify.js.map +1 -0
  715. package/esm/node/idx/remediators/ReEnrollAuthenticator.js +34 -0
  716. package/esm/node/idx/remediators/ReEnrollAuthenticator.js.map +1 -0
  717. package/esm/node/idx/remediators/RedirectIdp.js +32 -0
  718. package/esm/node/idx/remediators/RedirectIdp.js.map +1 -0
  719. package/esm/node/idx/remediators/ResetAuthenticator.js +20 -0
  720. package/esm/node/idx/remediators/ResetAuthenticator.js.map +1 -0
  721. package/esm/node/idx/remediators/SelectAuthenticatorAuthenticate.js +35 -0
  722. package/esm/node/idx/remediators/SelectAuthenticatorAuthenticate.js.map +1 -0
  723. package/esm/node/idx/remediators/SelectAuthenticatorEnroll.js +20 -0
  724. package/esm/node/idx/remediators/SelectAuthenticatorEnroll.js.map +1 -0
  725. package/esm/node/idx/remediators/SelectAuthenticatorUnlockAccount.js +44 -0
  726. package/esm/node/idx/remediators/SelectAuthenticatorUnlockAccount.js.map +1 -0
  727. package/esm/node/idx/remediators/SelectEnrollProfile.js +23 -0
  728. package/esm/node/idx/remediators/SelectEnrollProfile.js.map +1 -0
  729. package/esm/node/idx/remediators/SelectEnrollmentChannel.js +50 -0
  730. package/esm/node/idx/remediators/SelectEnrollmentChannel.js.map +1 -0
  731. package/esm/node/idx/remediators/Skip.js +23 -0
  732. package/esm/node/idx/remediators/Skip.js.map +1 -0
  733. package/esm/node/idx/remediators/index.js +33 -0
  734. package/esm/node/idx/remediators/index.js.map +1 -0
  735. package/esm/node/idx/remediators/util.js +34 -0
  736. package/esm/node/idx/remediators/util.js.map +1 -0
  737. package/esm/node/idx/run.js +245 -0
  738. package/esm/node/idx/run.js.map +1 -0
  739. package/esm/node/idx/startTransaction.js +21 -0
  740. package/esm/node/idx/startTransaction.js.map +1 -0
  741. package/esm/node/idx/transactionMeta.js +111 -0
  742. package/esm/node/idx/transactionMeta.js.map +1 -0
  743. package/esm/node/idx/types/api.js +43 -0
  744. package/esm/node/idx/types/api.js.map +1 -0
  745. package/esm/node/idx/types/idx-js.js +21 -0
  746. package/esm/node/idx/types/idx-js.js.map +1 -0
  747. package/esm/node/idx/unlockAccount.js +32 -0
  748. package/esm/node/idx/unlockAccount.js.map +1 -0
  749. package/esm/node/idx/util.js +212 -0
  750. package/esm/node/idx/util.js.map +1 -0
  751. package/esm/node/index.js +91 -0
  752. package/esm/node/index.js.map +1 -0
  753. package/esm/node/myaccount/emailApi.js +86 -0
  754. package/esm/node/myaccount/emailApi.js.map +1 -0
  755. package/esm/node/myaccount/myaccount/index.js +24 -0
  756. package/esm/node/myaccount/myaccount/index.js.map +1 -0
  757. package/esm/node/myaccount/phoneApi.js +76 -0
  758. package/esm/node/myaccount/phoneApi.js.map +1 -0
  759. package/esm/node/myaccount/profileApi.js +46 -0
  760. package/esm/node/myaccount/profileApi.js.map +1 -0
  761. package/esm/node/myaccount/request.js +121 -0
  762. package/esm/node/myaccount/request.js.map +1 -0
  763. package/esm/node/myaccount/transactions/Base.js +32 -0
  764. package/esm/node/myaccount/transactions/Base.js.map +1 -0
  765. package/esm/node/myaccount/transactions/EmailChallengeTransaction.js +48 -0
  766. package/esm/node/myaccount/transactions/EmailChallengeTransaction.js.map +1 -0
  767. package/esm/node/myaccount/transactions/EmailStatusTransaction.js +28 -0
  768. package/esm/node/myaccount/transactions/EmailStatusTransaction.js.map +1 -0
  769. package/esm/node/myaccount/transactions/EmailTransaction.js +81 -0
  770. package/esm/node/myaccount/transactions/EmailTransaction.js.map +1 -0
  771. package/esm/node/myaccount/transactions/PhoneTransaction.js +67 -0
  772. package/esm/node/myaccount/transactions/PhoneTransaction.js.map +1 -0
  773. package/esm/node/myaccount/transactions/ProfileSchemaTransaction.js +23 -0
  774. package/esm/node/myaccount/transactions/ProfileSchemaTransaction.js.map +1 -0
  775. package/esm/node/myaccount/transactions/ProfileTransaction.js +26 -0
  776. package/esm/node/myaccount/transactions/ProfileTransaction.js.map +1 -0
  777. package/esm/node/myaccount/types.js +25 -0
  778. package/esm/node/myaccount/types.js.map +1 -0
  779. package/esm/node/oidc/decodeToken.js +34 -0
  780. package/esm/node/oidc/decodeToken.js.map +1 -0
  781. package/esm/node/oidc/endpoints/authorize.js +63 -0
  782. package/esm/node/oidc/endpoints/authorize.js.map +1 -0
  783. package/esm/node/oidc/endpoints/token.js +83 -0
  784. package/esm/node/oidc/endpoints/token.js.map +1 -0
  785. package/esm/node/oidc/endpoints/well-known.js +55 -0
  786. package/esm/node/oidc/endpoints/well-known.js.map +1 -0
  787. package/esm/node/oidc/exchangeCodeForTokens.js +59 -0
  788. package/esm/node/oidc/exchangeCodeForTokens.js.map +1 -0
  789. package/esm/node/oidc/getToken.js +118 -0
  790. package/esm/node/oidc/getToken.js.map +1 -0
  791. package/esm/node/oidc/getUserInfo.js +69 -0
  792. package/esm/node/oidc/getUserInfo.js.map +1 -0
  793. package/esm/node/oidc/getWithPopup.js +36 -0
  794. package/esm/node/oidc/getWithPopup.js.map +1 -0
  795. package/esm/node/oidc/getWithRedirect.js +35 -0
  796. package/esm/node/oidc/getWithRedirect.js.map +1 -0
  797. package/esm/node/oidc/getWithoutPrompt.js +31 -0
  798. package/esm/node/oidc/getWithoutPrompt.js.map +1 -0
  799. package/esm/node/oidc/handleOAuthResponse.js +120 -0
  800. package/esm/node/oidc/handleOAuthResponse.js.map +1 -0
  801. package/esm/node/oidc/parseFromUrl.js +117 -0
  802. package/esm/node/oidc/parseFromUrl.js.map +1 -0
  803. package/esm/node/oidc/renewToken.js +67 -0
  804. package/esm/node/oidc/renewToken.js.map +1 -0
  805. package/esm/node/oidc/renewTokens.js +59 -0
  806. package/esm/node/oidc/renewTokens.js.map +1 -0
  807. package/esm/node/oidc/renewTokensWithRefresh.js +47 -0
  808. package/esm/node/oidc/renewTokensWithRefresh.js.map +1 -0
  809. package/esm/node/oidc/revokeToken.js +49 -0
  810. package/esm/node/oidc/revokeToken.js.map +1 -0
  811. package/esm/node/oidc/util/browser.js +69 -0
  812. package/esm/node/oidc/util/browser.js.map +1 -0
  813. package/esm/node/oidc/util/defaultTokenParams.js +34 -0
  814. package/esm/node/oidc/util/defaultTokenParams.js.map +1 -0
  815. package/esm/node/oidc/util/errors.js +38 -0
  816. package/esm/node/oidc/util/errors.js.map +1 -0
  817. package/esm/node/oidc/util/loginRedirect.js +66 -0
  818. package/esm/node/oidc/util/loginRedirect.js.map +1 -0
  819. package/esm/node/oidc/util/oauth.js +65 -0
  820. package/esm/node/oidc/util/oauth.js.map +1 -0
  821. package/esm/node/oidc/util/oauthMeta.js +38 -0
  822. package/esm/node/oidc/util/oauthMeta.js.map +1 -0
  823. package/esm/node/oidc/util/pkce.js +48 -0
  824. package/esm/node/oidc/util/pkce.js.map +1 -0
  825. package/esm/node/oidc/util/prepareTokenParams.js +65 -0
  826. package/esm/node/oidc/util/prepareTokenParams.js.map +1 -0
  827. package/esm/node/oidc/util/refreshToken.js +33 -0
  828. package/esm/node/oidc/util/refreshToken.js.map +1 -0
  829. package/esm/node/oidc/util/urlParams.js +43 -0
  830. package/esm/node/oidc/util/urlParams.js.map +1 -0
  831. package/esm/node/oidc/util/validateClaims.js +48 -0
  832. package/esm/node/oidc/util/validateClaims.js.map +1 -0
  833. package/esm/node/oidc/util/validateToken.js +34 -0
  834. package/esm/node/oidc/util/validateToken.js.map +1 -0
  835. package/esm/node/oidc/verifyToken.js +55 -0
  836. package/esm/node/oidc/verifyToken.js.map +1 -0
  837. package/esm/node/options/index.js +85 -0
  838. package/esm/node/options/index.js.map +1 -0
  839. package/esm/node/options/node.js +41 -0
  840. package/esm/node/options/node.js.map +1 -0
  841. package/esm/node/server/serverStorage.js +82 -0
  842. package/esm/node/server/serverStorage.js.map +1 -0
  843. package/esm/node/services/AutoRenewService.js +77 -0
  844. package/esm/node/services/AutoRenewService.js.map +1 -0
  845. package/esm/node/services/LeaderElectionService.js +74 -0
  846. package/esm/node/services/LeaderElectionService.js.map +1 -0
  847. package/esm/node/services/SyncStorageService.js +130 -0
  848. package/esm/node/services/SyncStorageService.js.map +1 -0
  849. package/esm/node/session.js +66 -0
  850. package/esm/node/session.js.map +1 -0
  851. package/esm/node/tx/AuthTransaction.js +174 -0
  852. package/esm/node/tx/AuthTransaction.js.map +1 -0
  853. package/esm/node/tx/api.js +72 -0
  854. package/esm/node/tx/api.js.map +1 -0
  855. package/esm/node/tx/poll.js +117 -0
  856. package/esm/node/tx/poll.js.map +1 -0
  857. package/esm/node/tx/util.js +26 -0
  858. package/esm/node/tx/util.js.map +1 -0
  859. package/esm/node/types/Token.js +32 -0
  860. package/esm/node/types/Token.js.map +1 -0
  861. package/esm/node/types/TokenManager.js +21 -0
  862. package/esm/node/types/TokenManager.js.map +1 -0
  863. package/esm/node/types/Transaction.js +52 -0
  864. package/esm/node/types/Transaction.js.map +1 -0
  865. package/esm/node/util/console.js +50 -0
  866. package/esm/node/util/console.js.map +1 -0
  867. package/esm/node/util/misc.js +32 -0
  868. package/esm/node/util/misc.js.map +1 -0
  869. package/esm/node/util/object.js +98 -0
  870. package/esm/node/util/object.js.map +1 -0
  871. package/esm/node/util/sharedStorage.js +56 -0
  872. package/esm/node/util/sharedStorage.js.map +1 -0
  873. package/esm/node/util/types.js +30 -0
  874. package/esm/node/util/types.js.map +1 -0
  875. package/esm/node/util/url.js +57 -0
  876. package/esm/node/util/url.js.map +1 -0
  877. package/esm/package.json +3 -0
  878. package/lib/SavedObject.d.ts +1 -0
  879. package/lib/ServiceManager.d.ts +1 -7
  880. package/lib/TokenManager.d.ts +12 -10
  881. package/lib/cdnEntry.d.ts +18 -0
  882. package/lib/errors/AuthApiError.d.ts +2 -1
  883. package/lib/idx/idxState/v1/idxResponseParser.d.ts +2 -2
  884. package/lib/myaccount/api.d.ts +14 -0
  885. package/lib/myaccount/emailApi.d.ts +29 -0
  886. package/lib/myaccount/index.d.ts +13 -0
  887. package/lib/myaccount/phoneApi.d.ts +25 -0
  888. package/lib/myaccount/profileApi.d.ts +13 -0
  889. package/lib/myaccount/request.d.ts +29 -0
  890. package/lib/myaccount/transactions/Base.d.ts +15 -0
  891. package/lib/myaccount/transactions/EmailChallengeTransaction.d.ts +12 -0
  892. package/lib/myaccount/transactions/EmailStatusTransaction.d.ts +9 -0
  893. package/lib/myaccount/transactions/EmailTransaction.d.ts +15 -0
  894. package/lib/myaccount/transactions/PhoneTransaction.d.ts +12 -0
  895. package/lib/myaccount/transactions/ProfileSchemaTransaction.d.ts +5 -0
  896. package/lib/myaccount/transactions/ProfileTransaction.d.ts +7 -0
  897. package/lib/myaccount/transactions/index.d.ts +7 -0
  898. package/lib/myaccount/types.d.ts +55 -0
  899. package/lib/services/AutoRenewService.d.ts +2 -2
  900. package/lib/services/LeaderElectionService.d.ts +33 -0
  901. package/lib/services/SyncStorageService.d.ts +17 -5
  902. package/lib/services/index.d.ts +1 -0
  903. package/lib/types/JWT.d.ts +4 -1
  904. package/lib/types/OktaAuthOptions.d.ts +4 -2
  905. package/lib/types/Service.d.ts +7 -4
  906. package/lib/types/Storage.d.ts +2 -0
  907. package/lib/types/TokenManager.d.ts +20 -4
  908. package/lib/types/api.d.ts +2 -1
  909. package/lib/types/index.d.ts +1 -0
  910. package/package.json +43 -18
  911. package/polyfill/index.js +7 -0
  912. package/esm/esm.browser.js +0 -9829
  913. package/esm/esm.browser.js.map +0 -1
  914. package/esm/esm.node.mjs +0 -9927
  915. package/esm/esm.node.mjs.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # Changelog
2
2
 
3
+ ## 6.7.0
4
+
5
+ ## Features
6
+
7
+ - [#1197](https://github.com/okta/okta-auth-js/pull/1197)
8
+ - Changes implementation of `SyncStorageService` using `broadcast-channel` instead of using `StorageEvent`. Supports `localStorage` and `cookie` storage.
9
+ - Adds `LeaderElectionService` as separate service
10
+ - Fixes error `Channel is closed` while stopping leader election
11
+ - [#1158](https://github.com/okta/okta-auth-js/pull/1158) Adds MyAccount API. See [MyAccount API DOC](/docs/myaccount/README.md) for detailed information.
12
+
3
13
  ## 6.6.2
4
14
 
5
15
  ### Fixes
package/README.md CHANGED
@@ -234,12 +234,12 @@ var authClient = new OktaAuth(config);
234
234
 
235
235
  ### Running as a service
236
236
 
237
- By default, creating a new instance of `OktaAuth` will not create any asynchronous side-effects. However, certain features such as [token auto renew](#autorenew), [token auto remove](#autoremove) and [cross-tab synchronization](#syncstorage) require `OktaAuth` to be running as a service. This means timeouts are set in the background which will continue working until the service is stopped. To start the `OktaAuth` service, simply call the `start` method. To terminate all background processes, call `stop`. See [Service Configuration](#services) for more info.
237
+ By default, creating a new instance of `OktaAuth` will not create any asynchronous side-effects. However, certain features such as [token auto renew](#autorenew), [token auto remove](#autoremove) and [cross-tab synchronization](#syncstorage) require `OktaAuth` to be running as a service. This means timeouts are set in the background which will continue working until the service is stopped. To start the `OktaAuth` service, simply call the `start` method right after creation and before calling other methods like [handleLoginRedirect](#handleloginredirecttokens). To terminate all background processes, call `stop`. See [Service Configuration](#services) for more info.
238
238
 
239
239
  ```javascript
240
240
  var authClient = new OktaAuth(config);
241
- authClient.start(); // start the service
242
- authClient.stop(); // stop the service
241
+ await authClient.start(); // start the service
242
+ await authClient.stop(); // stop the service
243
243
  ```
244
244
 
245
245
  Starting the service will also call [authStateManager.updateAuthState](#authstatemanagerupdateauthstate).
@@ -539,6 +539,11 @@ Enables interaction code flow for direct auth clients.
539
539
 
540
540
  Used in authorization and interaction code flows by server-side web applications to obtain OAuth tokens. In a production application, this value should **never** be visible on the client side.
541
541
 
542
+ #### `setLocation`
543
+
544
+ Used in authorization and interaction code flows by server-side web applications to customize the redirect process.
545
+
546
+
542
547
  #### `httpRequestClient`
543
548
 
544
549
  The http request implementation. By default, this is implemented using [cross-fetch](https://github.com/lquixada/cross-fetch). To provide your own request library, implement the following interface:
@@ -829,7 +834,7 @@ When `tokenManager.autoRenew` is `true` both renew strategies are enabled. To di
829
834
  By default, the library will attempt to remove expired tokens when `autoRemove` is `true`. If you wish to disable auto removal of tokens, set `autoRemove` to `false`.
830
835
 
831
836
  #### `syncStorage`
832
- Automatically syncs tokens across browser tabs when token storage is `localStorage`. To disable this behavior, set `syncStorage` to false.
837
+ Automatically syncs tokens across browser tabs when token storage is `localStorage` or `cookie`. To disable this behavior, set `syncStorage` to false.
833
838
 
834
839
  This is accomplished by selecting a single tab to handle the network requests to refresh the tokens and broadcasting to the other tabs. This is done to avoid all tabs sending refresh requests simultaneously, which can cause rate limiting/throttling issues.
835
840
 
@@ -869,6 +874,7 @@ This is accomplished by selecting a single tab to handle the network requests to
869
874
  * [session.get](#sessionget)
870
875
  * [session.refresh](#sessionrefresh)
871
876
  * [idx](#idx)
877
+ * [myaccount](#myaccount)
872
878
  * [token](#token)
873
879
  * [token.getWithoutPrompt](#tokengetwithoutpromptoptions)
874
880
  * [token.getWithPopup](#tokengetwithpopupoptions)
@@ -903,11 +909,15 @@ This is accomplished by selecting a single tab to handle the network requests to
903
909
 
904
910
  ### `start()`
905
911
 
912
+ > :hourglass: async
913
+
906
914
  Starts the `OktaAuth` service. See [running as a service](#running-as-a-service) for more details.
907
915
 
908
916
  ### `stop()`
909
917
 
910
- Starts the `OktaAuth` service. See [running as a service](#running-as-a-service) for more details.
918
+ > :hourglass: async
919
+
920
+ Stops the `OktaAuth` service. See [running as a service](#running-as-a-service) for more details.
911
921
 
912
922
  ### `signIn(options)`
913
923
 
@@ -1256,6 +1266,11 @@ authClient.session.refresh()
1256
1266
 
1257
1267
  See detail in [IDX README](docs/idx.md)
1258
1268
 
1269
+ ### `myaccount`
1270
+
1271
+ See detail in [MyAccount API README](docs/myaccount/README.md)
1272
+
1273
+
1259
1274
  ### `token`
1260
1275
 
1261
1276
  #### Authorize options
@@ -12,9 +12,9 @@ var _pCancelable = _interopRequireDefault(require("p-cancelable"));
12
12
 
13
13
  var _errors = require("./errors");
14
14
 
15
- var _util = require("./util");
15
+ var _types = require("./types");
16
16
 
17
- var _TokenManager = require("./TokenManager");
17
+ var _util = require("./util");
18
18
 
19
19
  var _PromiseQueue = _interopRequireDefault(require("./PromiseQueue"));
20
20
 
@@ -68,18 +68,18 @@ class AuthStateManager {
68
68
  // "added" event is emitted in both add and renew process
69
69
  // Only listen on "added" event to update auth state
70
70
 
71
- sdk.tokenManager.on(_TokenManager.EVENT_ADDED, (key, token) => {
71
+ sdk.tokenManager.on(_types.EVENT_ADDED, (key, token) => {
72
72
  this._setLogOptions({
73
- event: _TokenManager.EVENT_ADDED,
73
+ event: _types.EVENT_ADDED,
74
74
  key,
75
75
  token
76
76
  });
77
77
 
78
78
  this.updateAuthState();
79
79
  });
80
- sdk.tokenManager.on(_TokenManager.EVENT_REMOVED, (key, token) => {
80
+ sdk.tokenManager.on(_types.EVENT_REMOVED, (key, token) => {
81
81
  this._setLogOptions({
82
- event: _TokenManager.EVENT_REMOVED,
82
+ event: _types.EVENT_REMOVED,
83
83
  key,
84
84
  token
85
85
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../lib/AuthStateManager.ts"],"names":["INITIAL_AUTH_STATE","DEFAULT_PENDING","updateAuthStatePromise","canceledTimes","EVENT_AUTH_STATE_CHANGE","MAX_PROMISE_CANCEL_TIMES","isSameAuthState","prevState","state","isAuthenticated","idToken","accessToken","error","AuthStateManager","constructor","sdk","emitter","AuthSdkError","_sdk","_pending","_authState","_logOptions","_prevAuthState","_transformQueue","PromiseQueue","quiet","tokenManager","on","EVENT_ADDED","key","token","_setLogOptions","event","updateAuthState","EVENT_REMOVED","options","getAuthState","getPreviousAuthState","transformAuthState","devMode","log","status","group","groupEnd","emitAuthStateChange","authState","emit","finalPromise","origPromise","then","curPromise","cancel","cancelablePromise","PCancelable","resolve","_","onCancel","shouldReject","emitAndResolve","isCanceled","refreshToken","getTokensSync","promise","push","catch","subscribe","handler","unsubscribe","off"],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n \n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore \n// Do not use this type in code, so it won't be emitted in the declaration output\nimport PCancelable from 'p-cancelable';\nimport { AuthSdkError } from './errors';\nimport { AuthState, AuthStateLogOptions } from './types';\nimport { OktaAuth } from '.';\nimport { getConsole } from './util';\nimport { EVENT_ADDED, EVENT_REMOVED } from './TokenManager';\nimport PromiseQueue from './PromiseQueue';\n\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\n// only compare first level of authState\nconst isSameAuthState = (prevState: AuthState | null, state: AuthState) => {\n // initial state is null\n if (!prevState) {\n return false;\n }\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};\n\n\nexport class AuthStateManager {\n _sdk: OktaAuth;\n _pending: { \n updateAuthStatePromise: any;\n canceledTimes: number; \n };\n _authState: AuthState | null;\n _prevAuthState: AuthState | null;\n _logOptions: AuthStateLogOptions;\n _transformQueue: PromiseQueue;\n\n constructor(sdk: OktaAuth) {\n if (!sdk.emitter) {\n throw new AuthSdkError('Emitter should be initialized before AuthStateManager');\n }\n\n this._sdk = sdk;\n this._pending = { ...DEFAULT_PENDING };\n this._authState = INITIAL_AUTH_STATE;\n this._logOptions = {};\n this._prevAuthState = null;\n this._transformQueue = new PromiseQueue({\n quiet: true\n });\n\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\n _setLogOptions(options) {\n this._logOptions = options;\n }\n\n getAuthState(): AuthState | null {\n return this._authState;\n }\n\n getPreviousAuthState(): AuthState | null {\n return this._prevAuthState;\n }\n\n async updateAuthState(): Promise<AuthState> {\n const { transformAuthState, devMode } = this._sdk.options;\n\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 \n // clear log options after logging\n this._logOptions = {};\n };\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, { ...authState });\n devMode && log('emitted');\n };\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\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 } else {\n this._pending.updateAuthStatePromise.cancel();\n }\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\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\n // clear pending states after resolve\n this._pending = { ...DEFAULT_PENDING };\n };\n\n this._sdk.isAuthenticated()\n .then(() => {\n if (cancelablePromise.isCanceled) {\n resolve();\n return;\n }\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\n // Enqueue transformAuthState so that it does not run concurrently\n const promise: Promise<AuthState> = transformAuthState\n ? this._transformQueue.push(transformAuthState, null, this._sdk, authState) as Promise<AuthState>\n : Promise.resolve(authState);\n\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\n return finalPromise(cancelablePromise);\n }\n\n subscribe(handler): void {\n this._sdk.emitter.on(EVENT_AUTH_STATE_CHANGE, handler);\n }\n\n unsubscribe(handler?): void {\n this._sdk.emitter.off(EVENT_AUTH_STATE_CHANGE, handler);\n }\n}\n"],"file":"AuthStateManager.js"}
1
+ {"version":3,"file":"AuthStateManager.js","names":["INITIAL_AUTH_STATE","DEFAULT_PENDING","updateAuthStatePromise","canceledTimes","EVENT_AUTH_STATE_CHANGE","MAX_PROMISE_CANCEL_TIMES","isSameAuthState","prevState","state","isAuthenticated","idToken","accessToken","error","AuthStateManager","constructor","sdk","emitter","AuthSdkError","_sdk","_pending","_authState","_logOptions","_prevAuthState","_transformQueue","PromiseQueue","quiet","tokenManager","on","EVENT_ADDED","key","token","_setLogOptions","event","updateAuthState","EVENT_REMOVED","options","getAuthState","getPreviousAuthState","transformAuthState","devMode","log","status","group","groupEnd","emitAuthStateChange","authState","emit","finalPromise","origPromise","then","curPromise","cancel","cancelablePromise","PCancelable","resolve","_","onCancel","shouldReject","emitAndResolve","isCanceled","refreshToken","getTokensSync","promise","push","catch","subscribe","handler","unsubscribe","off"],"sources":["../../lib/AuthStateManager.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n \n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore \n// Do not use this type in code, so it won't be emitted in the declaration output\nimport PCancelable from 'p-cancelable';\nimport { AuthSdkError } from './errors';\nimport { AuthState, AuthStateLogOptions, EVENT_ADDED, EVENT_REMOVED } from './types';\nimport { OktaAuth } from '.';\nimport { getConsole } from './util';\nimport PromiseQueue from './PromiseQueue';\n\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\n// only compare first level of authState\nconst isSameAuthState = (prevState: AuthState | null, state: AuthState) => {\n // initial state is null\n if (!prevState) {\n return false;\n }\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};\n\n\nexport class AuthStateManager {\n _sdk: OktaAuth;\n _pending: { \n updateAuthStatePromise: any;\n canceledTimes: number; \n };\n _authState: AuthState | null;\n _prevAuthState: AuthState | null;\n _logOptions: AuthStateLogOptions;\n _transformQueue: PromiseQueue;\n\n constructor(sdk: OktaAuth) {\n if (!sdk.emitter) {\n throw new AuthSdkError('Emitter should be initialized before AuthStateManager');\n }\n\n this._sdk = sdk;\n this._pending = { ...DEFAULT_PENDING };\n this._authState = INITIAL_AUTH_STATE;\n this._logOptions = {};\n this._prevAuthState = null;\n this._transformQueue = new PromiseQueue({\n quiet: true\n });\n\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\n _setLogOptions(options) {\n this._logOptions = options;\n }\n\n getAuthState(): AuthState | null {\n return this._authState;\n }\n\n getPreviousAuthState(): AuthState | null {\n return this._prevAuthState;\n }\n\n async updateAuthState(): Promise<AuthState> {\n const { transformAuthState, devMode } = this._sdk.options;\n\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 \n // clear log options after logging\n this._logOptions = {};\n };\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, { ...authState });\n devMode && log('emitted');\n };\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\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 } else {\n this._pending.updateAuthStatePromise.cancel();\n }\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\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\n // clear pending states after resolve\n this._pending = { ...DEFAULT_PENDING };\n };\n\n this._sdk.isAuthenticated()\n .then(() => {\n if (cancelablePromise.isCanceled) {\n resolve();\n return;\n }\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\n // Enqueue transformAuthState so that it does not run concurrently\n const promise: Promise<AuthState> = transformAuthState\n ? this._transformQueue.push(transformAuthState, null, this._sdk, authState) as Promise<AuthState>\n : Promise.resolve(authState);\n\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\n return finalPromise(cancelablePromise);\n }\n\n subscribe(handler): void {\n this._sdk.emitter.on(EVENT_AUTH_STATE_CHANGE, handler);\n }\n\n unsubscribe(handler?): void {\n this._sdk.emitter.off(EVENT_AUTH_STATE_CHANGE, handler);\n }\n}\n"],"mappings":"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"}
package/cjs/OktaAuth.js CHANGED
@@ -124,7 +124,7 @@ class OktaAuth {
124
124
  computeChallenge: _pkce.default.computeChallenge
125
125
  }; // Add shims for compatibility, these will be removed in next major version. OKTA-362589
126
126
 
127
- (0, _assign.default)(this.options.storageUtil, {
127
+ (0, _assign.default)(this.options.storageUtil || {}, {
128
128
  getPKCEStorage: this.storageManager.getLegacyPKCEStorage.bind(this.storageManager),
129
129
  getHttpCache: this.storageManager.getHttpCache.bind(this.storageManager)
130
130
  });
@@ -174,7 +174,11 @@ class OktaAuth {
174
174
  const getWithRedirectApi = (0, _assign.default)(getWithRedirectFn, {
175
175
  // This is exposed so we can set window.location in our tests
176
176
  _setLocation: function (url) {
177
- window.location = url;
177
+ if (options.setLocation) {
178
+ options.setLocation(url);
179
+ } else {
180
+ window.location = url;
181
+ }
178
182
  }
179
183
  }); // eslint-disable-next-line max-len
180
184
 
@@ -268,20 +272,26 @@ class OktaAuth {
268
272
 
269
273
  this.tokenManager = new _TokenManager.TokenManager(this, args.tokenManager); // AuthStateManager
270
274
 
271
- this.authStateManager = new _AuthStateManager.AuthStateManager(this); // ServiceManager
275
+ this.authStateManager = new _AuthStateManager.AuthStateManager(this); // Enable `syncStorage` only if token storage is shared across tabs (type is `localStorage` or `cookie`)
276
+
277
+ if (!this.tokenManager.hasSharedStorage()) {
278
+ args.services = { ...args.services,
279
+ syncStorage: false
280
+ };
281
+ } // ServiceManager
282
+
272
283
 
273
284
  this.serviceManager = new _ServiceManager.ServiceManager(this, args.services);
274
285
  }
275
286
 
276
287
  async start() {
277
- // TODO: review tokenManager.start
288
+ await this.serviceManager.start(); // TODO: review tokenManager.start
289
+
278
290
  this.tokenManager.start();
279
291
 
280
292
  if (!this.token.isLoginRedirect()) {
281
- this.authStateManager.updateAuthState();
293
+ await this.authStateManager.updateAuthState();
282
294
  }
283
-
284
- await this.serviceManager.start();
285
295
  }
286
296
 
287
297
  async stop() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../lib/OktaAuth.ts"],"names":["OktaAuth","constructor","args","features","options","storageManager","StorageManager","cookies","storageUtil","transactionManager","TransactionManager","_oktaUserAgent","OktaUserAgent","tx","status","transactionStatus","bind","resume","resumeTransaction","exists","transactionExists","_get","name","storage","get","introspect","introspectAuthn","createTransaction","res","AuthTransaction","postToTransaction","url","pkce","DEFAULT_CODE_CHALLENGE_METHOD","PKCE","generateVerifier","computeChallenge","getPKCEStorage","getLegacyPKCEStorage","getHttpCache","_pending","handleLogin","redirectUri","window","location","origin","maxClockSkew","DEFAULT_MAX_CLOCK_SKEW","ignoreLifetime","session","close","closeSession","sessionExists","getSession","refresh","refreshSession","setCookieAndRedirect","_tokenQueue","PromiseQueue","useQueue","method","prototype","push","getWithRedirectFn","getWithRedirect","getWithRedirectApi","_setLocation","parseFromUrlFn","parseFromUrl","parseFromUrlApi","_getHistory","history","_getLocation","_getDocument","document","token","prepareTokenParams","exchangeCodeForTokens","getWithoutPrompt","getWithPopup","decode","decodeToken","revoke","revokeToken","renew","renewToken","renewTokensWithRefresh","renewTokens","getUserInfo","accessTokenObject","idTokenObject","verify","verifyToken","isLoginRedirect","toWrap","forEach","key","boundStartTransaction","startTransaction","idx","interact","makeIdxResponse","makeIdxState","authenticate","register","start","poll","proceed","cancel","recoverPassword","handleInteractionCodeRedirect","isInteractionRequired","isInteractionRequiredError","handleEmailVerifyCallback","isEmailVerifyCallback","parseEmailVerifyCallback","isEmailVerifyCallbackError","getSavedTransactionMeta","createTransactionMeta","getTransactionMeta","saveTransactionMeta","clearTransactionMeta","isTransactionMetaValid","setFlow","flow","getFlow","canProceed","unlockAccount","http","setRequestHeader","fingerprint","emitter","Emitter","tokenManager","TokenManager","authStateManager","AuthStateManager","serviceManager","ServiceManager","services","updateAuthState","stop","setHeaders","headers","signIn","opts","signInWithCredentials","_postToTransaction","sendFingerprint","then","signInWithRedirect","originalUri","additionalParams","setOriginalUri","params","scopes","clear","catch","e","errorCode","revokeAccessToken","accessToken","getTokens","accessTokenKey","getStorageKeyByType","remove","resolve","revokeRefreshToken","refreshToken","refreshTokenKey","getSignOutRedirectUrl","idToken","postLogoutRedirectUri","state","getTokensSync","logoutUrl","idTokenHint","logoutUri","encodeURIComponent","signOut","defaultUri","currentUri","href","reload","assign","clearTokensBeforeRedirect","addPendingRemoveFlags","webfinger","isAuthenticated","autoRenew","autoRemove","getOptions","shouldRenew","onExpiredToken","shouldRemove","hasExpired","undefined","getUser","getIdToken","getAccessToken","getRefreshToken","storeTokensFromRedirect","tokens","setTokens","sessionStorage","browserStorage","getSessionStorage","setItem","REFERRER_PATH_STORAGE_KEY","sharedStorage","getOriginalUriStorage","getOriginalUri","getItem","removeOriginalUri","removeItem","handleLoginRedirect","oAuthResponse","restoreOriginalUri","replace","isPKCE","hasResponseType","responseType","Array","isArray","length","isAuthorizationCodeFlow","getIssuerOrigin","issuer","split","forgotPassword","verifyRecoveryToken","invokeApiMethod","crypto","webauthn","constants"],"mappings":"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","sourcesContent":["/* 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 */\n\nimport { \n DEFAULT_MAX_CLOCK_SKEW, \n REFERRER_PATH_STORAGE_KEY\n} from './constants';\nimport * as constants from './constants';\nimport {\n OktaAuthInterface,\n OktaAuthOptions, \n AccessToken, \n IDToken,\n RefreshToken,\n TokenAPI, \n FeaturesAPI, \n CryptoAPI,\n WebauthnAPI,\n SignoutAPI, \n FingerprintAPI,\n UserClaims, \n SigninWithRedirectOptions,\n SigninWithCredentialsOptions,\n SignoutOptions,\n Tokens,\n ForgotPasswordOptions,\n VerifyRecoveryTokenOptions,\n TransactionAPI,\n SessionAPI,\n SigninAPI,\n PkceAPI,\n SigninOptions,\n IdxAPI,\n SignoutRedirectUrlOptions,\n HttpAPI,\n FlowIdentifier,\n GetWithRedirectAPI,\n ParseFromUrlInterface,\n GetWithRedirectFunction,\n RequestOptions,\n IsAuthenticatedOptions,\n OAuthResponseType,\n CustomUserClaims,\n RequestData,\n} from './types';\nimport {\n transactionStatus,\n resumeTransaction,\n transactionExists,\n introspectAuthn,\n postToTransaction,\n AuthTransaction,\n TransactionState\n} from './tx';\nimport PKCE from './oidc/util/pkce';\nimport {\n closeSession,\n sessionExists,\n getSession,\n refreshSession,\n setCookieAndRedirect\n} from './session';\nimport {\n getOAuthUrls,\n getWithoutPrompt,\n getWithPopup,\n getWithRedirect,\n isLoginRedirect,\n parseFromUrl,\n decodeToken,\n revokeToken,\n renewToken,\n renewTokens,\n renewTokensWithRefresh,\n getUserInfo,\n verifyToken,\n prepareTokenParams,\n exchangeCodeForTokens,\n isInteractionRequiredError,\n isInteractionRequired,\n} 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 { \n toQueryString, \n toAbsoluteUrl,\n clone,\n} from './util';\nimport { TokenManager } from './TokenManager';\nimport { ServiceManager } from './ServiceManager';\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 {\n interact,\n introspect,\n authenticate,\n cancel,\n poll,\n proceed,\n register,\n recoverPassword,\n unlockAccount,\n startTransaction,\n handleInteractionCodeRedirect,\n canProceed,\n handleEmailVerifyCallback,\n isEmailVerifyCallback,\n parseEmailVerifyCallback,\n isEmailVerifyCallbackError\n} from './idx';\nimport { OktaUserAgent } from './OktaUserAgent';\nimport { parseOAuthResponseFromUrl } from './oidc/parseFromUrl';\nimport {\n getSavedTransactionMeta,\n createTransactionMeta,\n getTransactionMeta,\n saveTransactionMeta,\n clearTransactionMeta,\n isTransactionMetaValid\n} from './idx/transactionMeta';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore \n// Do not use this type in code, so it won't be emitted in the declaration output\nimport Emitter from 'tiny-emitter';\nimport { makeIdxState } from './idx/idxState';\n\nclass OktaAuth implements OktaAuthInterface, SigninAPI, SignoutAPI {\n options: OktaAuthOptions;\n storageManager: StorageManager;\n transactionManager: TransactionManager;\n tx: TransactionAPI;\n idx: IdxAPI;\n session: SessionAPI;\n pkce: PkceAPI;\n static features: FeaturesAPI = features;\n static crypto: CryptoAPI = crypto;\n static webauthn: WebauthnAPI = webauthn;\n features: FeaturesAPI = features;\n token: TokenAPI;\n _tokenQueue: PromiseQueue;\n emitter: any;\n tokenManager: TokenManager;\n authStateManager: AuthStateManager;\n serviceManager: ServiceManager;\n http: HttpAPI;\n fingerprint: FingerprintAPI;\n _oktaUserAgent: OktaUserAgent;\n _pending: { handleLogin: boolean };\n constructor(args: OktaAuthOptions) {\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\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 createTransaction: (res?: TransactionState) => {\n return new AuthTransaction(this, res);\n },\n postToTransaction: (url: string, args?: RequestData, options?: RequestOptions) => {\n return postToTransaction(this, url, args, options);\n }\n };\n\n this.pkce = {\n DEFAULT_CODE_CHALLENGE_METHOD: PKCE.DEFAULT_CODE_CHALLENGE_METHOD,\n generateVerifier: PKCE.generateVerifier,\n computeChallenge: PKCE.computeChallenge\n };\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\n this._pending = { handleLogin: false };\n\n if (isBrowser()) {\n this.options = Object.assign(this.options, {\n redirectUri: toAbsoluteUrl(args.redirectUri, window.location.origin), // allow relative URIs\n });\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 } else {\n this.options.maxClockSkew = args.maxClockSkew;\n }\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\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\n this._tokenQueue = new PromiseQueue();\n const useQueue = (method) => {\n return PromiseQueue.prototype.push.bind(this._tokenQueue, method, null);\n };\n\n // eslint-disable-next-line max-len\n const getWithRedirectFn = useQueue(getWithRedirect.bind(null, this)) as GetWithRedirectFunction;\n const getWithRedirectApi: 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)) as ParseFromUrlInterface;\n const parseFromUrlApi: ParseFromUrlInterface = 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\n // This is exposed so we can mock getting window.location in our tests\n _getLocation: function() {\n return window.location;\n },\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: <C extends CustomUserClaims = CustomUserClaims>(\n accessTokenObject: AccessToken,\n idTokenObject: IDToken\n ): Promise<UserClaims<C>> => {\n return getUserInfo(this, accessTokenObject, idTokenObject);\n },\n verify: verifyToken.bind(null, this),\n isLoginRedirect: isLoginRedirect.bind(null, this)\n };\n // Wrap certain async token API methods using PromiseQueue to avoid issues with concurrency\n // 'getWithRedirect' and 'parseFromUrl' are already wrapped\n const toWrap = [\n 'getWithoutPrompt',\n 'getWithPopup',\n 'revoke',\n 'renew',\n 'renewTokensWithRefresh',\n 'renewTokens'\n ];\n toWrap.forEach(key => {\n this.token[key] = useQueue(this.token[key]);\n });\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 makeIdxResponse: makeIdxState.bind(null, this),\n \n authenticate: authenticate.bind(null, this),\n register: register.bind(null, this),\n start: boundStartTransaction,\n startTransaction: boundStartTransaction, // Use `start` instead. `startTransaction` will be removed in 7.0\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\n // oauth redirect callback\n handleInteractionCodeRedirect: handleInteractionCodeRedirect.bind(null, this),\n\n // interaction required callback\n isInteractionRequired: isInteractionRequired.bind(null, this),\n isInteractionRequiredError,\n\n // email verify callback\n handleEmailVerifyCallback: handleEmailVerifyCallback.bind(null, this),\n isEmailVerifyCallback,\n parseEmailVerifyCallback,\n isEmailVerifyCallbackError,\n \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: FlowIdentifier) => {\n this.options.flow = flow;\n },\n getFlow: (): FlowIdentifier | undefined => {\n return this.options.flow;\n },\n canProceed: canProceed.bind(null, this),\n unlockAccount: unlockAccount.bind(null, this),\n };\n\n // HTTP\n this.http = {\n setRequestHeader: setRequestHeader.bind(null, this)\n };\n\n // Fingerprint API\n this.fingerprint = fingerprint.bind(null, this);\n\n this.emitter = new Emitter();\n\n // TokenManager\n this.tokenManager = new TokenManager(this, args.tokenManager);\n\n // AuthStateManager\n this.authStateManager = new AuthStateManager(this);\n\n // ServiceManager\n this.serviceManager = new ServiceManager(this, args.services);\n }\n\n async start() {\n // TODO: review tokenManager.start\n this.tokenManager.start();\n if (!this.token.isLoginRedirect()) {\n this.authStateManager.updateAuthState();\n }\n await this.serviceManager.start();\n }\n\n async stop() {\n // TODO: review tokenManager.stop\n this.tokenManager.stop();\n await this.serviceManager.stop();\n }\n\n setHeaders(headers) {\n this.options.headers = Object.assign({}, this.options.headers, headers);\n }\n\n\n // Authn V1\n async signIn(opts: SigninOptions): Promise<AuthTransaction> {\n return this.signInWithCredentials(opts as SigninWithCredentialsOptions);\n }\n\n // Authn V1\n async signInWithCredentials(opts: SigninWithCredentialsOptions): Promise<AuthTransaction> {\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 async signInWithRedirect(opts: SigninWithRedirectOptions = {}) {\n const { originalUri, ...additionalParams } = opts;\n if(this._pending.handleLogin) { \n // Don't trigger second round\n return;\n }\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 await this.token.getWithRedirect(params);\n } finally {\n this._pending.handleLogin = false;\n }\n }\n\n // Ends the current Okta SSO session without redirecting to Okta.\n closeSession(): Promise<unknown> {\n return this.session.close() // DELETE /api/v1/sessions/me\n .then(async () => {\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 \n // Revokes the access token for the application session\n async revokeAccessToken(accessToken?: AccessToken): Promise<unknown> {\n if (!accessToken) {\n accessToken = (await this.tokenManager.getTokens()).accessToken as 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 async revokeRefreshToken(refreshToken?: RefreshToken): Promise<unknown> {\n if (!refreshToken) {\n refreshToken = (await this.tokenManager.getTokens()).refreshToken as 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: SignoutRedirectUrlOptions = {}) {\n let {\n idToken,\n postLogoutRedirectUri,\n state,\n } = options;\n if (!idToken) {\n idToken = this.tokenManager.getTokensSync().idToken as IDToken;\n }\n if (!idToken) {\n return '';\n }\n if (!postLogoutRedirectUri) {\n postLogoutRedirectUri = this.options.postLogoutRedirectUri;\n }\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\n return logoutUri;\n }\n\n // Revokes refreshToken or accessToken, clears all local tokens, then redirects to Okta to end the SSO session.\n async signOut(options?: SignoutOptions) {\n options = Object.assign({}, options);\n \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 \n var accessToken = options.accessToken;\n var refreshToken = options.refreshToken;\n var revokeAccessToken = options.revokeAccessToken !== false;\n var revokeRefreshToken = options.revokeRefreshToken !== false;\n \n if (revokeRefreshToken && typeof refreshToken === 'undefined') {\n refreshToken = this.tokenManager.getTokensSync().refreshToken as RefreshToken;\n }\n\n if (revokeAccessToken && typeof accessToken === 'undefined') {\n accessToken = this.tokenManager.getTokensSync().accessToken as AccessToken;\n }\n \n if (!options.idToken) {\n options.idToken = this.tokenManager.getTokensSync().idToken as IDToken;\n }\n\n if (revokeRefreshToken && refreshToken) {\n await this.revokeRefreshToken(refreshToken);\n }\n\n if (revokeAccessToken && accessToken) {\n await this.revokeAccessToken(accessToken);\n }\n\n const logoutUri = this.getSignOutRedirectUrl({ ...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 } else {\n window.location.assign(postLogoutRedirectUri);\n }\n });\n } else {\n if (options.clearTokensBeforeRedirect) {\n // Clear all local tokens\n this.tokenManager.clear();\n } else {\n this.tokenManager.addPendingRemoveFlags();\n }\n // Flow ends with logout redirect\n window.location.assign(logoutUri);\n }\n }\n\n webfinger(opts): Promise<object> {\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 //\n // Common Methods from downstream SDKs\n //\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 async isAuthenticated(options: IsAuthenticatedOptions = {}): Promise<boolean> {\n // TODO: remove dependency on tokenManager options in next major version - OKTA-473815\n const { autoRenew, autoRemove } = this.tokenManager.getOptions();\n\n const shouldRenew = options.onExpiredToken ? options.onExpiredToken === 'renew' : autoRenew;\n const shouldRemove = options.onExpiredToken ? options.onExpiredToken === 'remove' : autoRemove;\n\n let { accessToken } = this.tokenManager.getTokensSync();\n if (accessToken && this.tokenManager.hasExpired(accessToken)) {\n accessToken = undefined;\n if (shouldRenew) {\n try {\n accessToken = await this.tokenManager.renew('accessToken') as AccessToken;\n } catch {\n // Renew errors will emit an \"error\" event \n }\n } else if (shouldRemove) {\n this.tokenManager.remove('accessToken');\n }\n }\n\n let { idToken } = this.tokenManager.getTokensSync();\n if (idToken && this.tokenManager.hasExpired(idToken)) {\n idToken = undefined;\n if (shouldRenew) {\n try {\n idToken = await this.tokenManager.renew('idToken') as IDToken;\n } catch {\n // Renew errors will emit an \"error\" event \n }\n } else if (shouldRemove) {\n this.tokenManager.remove('idToken');\n }\n }\n\n return !!(accessToken && idToken);\n }\n\n async getUser<T extends CustomUserClaims = CustomUserClaims>(): Promise<UserClaims<T>> {\n const { idToken, accessToken } = this.tokenManager.getTokensSync();\n return this.token.getUserInfo(accessToken, idToken);\n }\n\n getIdToken(): string | undefined {\n const { idToken } = this.tokenManager.getTokensSync();\n return idToken ? idToken.idToken : undefined;\n }\n\n getAccessToken(): string | undefined {\n const { accessToken } = this.tokenManager.getTokensSync();\n return accessToken ? accessToken.accessToken : undefined;\n }\n\n getRefreshToken(): string | undefined {\n const { refreshToken } = this.tokenManager.getTokensSync();\n return refreshToken ? refreshToken.refreshToken : undefined;\n }\n\n /**\n * Store parsed tokens from redirect url\n */\n async storeTokensFromRedirect(): Promise<void> {\n const { tokens } = await this.token.parseFromUrl();\n this.tokenManager.setTokens(tokens);\n }\n\n setOriginalUri(originalUri: string, state?: string): void {\n // always store in session storage\n const sessionStorage = browserStorage.getSessionStorage();\n sessionStorage.setItem(REFERRER_PATH_STORAGE_KEY, originalUri);\n\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\n getOriginalUri(state?: string): string | undefined {\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\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\n removeOriginalUri(state?: string): void {\n // Remove from sessionStorage\n const storage = browserStorage.getSessionStorage();\n storage.removeItem(REFERRER_PATH_STORAGE_KEY);\n\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\n isLoginRedirect(): boolean {\n return isLoginRedirect(this);\n }\n\n async handleLoginRedirect(tokens?: Tokens, originalUri?: string): Promise<void> {\n let state = this.options.state;\n\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 } 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 = await parseOAuthResponseFromUrl(this, {});\n state = oAuthResponse.state;\n originalUri = originalUri || this.getOriginalUri(state);\n await this.storeTokensFromRedirect();\n } catch(e) {\n // auth state should be updated\n await this.authStateManager.updateAuthState();\n throw e;\n }\n } else {\n return; // nothing to do\n }\n \n // ensure auth state has been updated\n await this.authStateManager.updateAuthState();\n\n // clear originalUri from storage\n this.removeOriginalUri(state);\n\n // Redirect to originalUri\n const { restoreOriginalUri } = this.options;\n if (restoreOriginalUri) {\n await restoreOriginalUri(this, originalUri);\n } else if (originalUri) {\n window.location.replace(originalUri);\n }\n }\n\n isPKCE(): boolean {\n return !!this.options.pkce;\n }\n\n hasResponseType(responseType: OAuthResponseType): boolean {\n let hasResponseType = false;\n if (Array.isArray(this.options.responseType) && this.options.responseType.length) {\n hasResponseType = this.options.responseType.indexOf(responseType) >= 0;\n } else {\n hasResponseType = this.options.responseType === responseType;\n }\n return hasResponseType;\n }\n\n isAuthorizationCodeFlow(): boolean {\n return this.hasResponseType('code');\n }\n\n // { username, password, (relayState), (context) }\n // signIn(opts: SignInWithCredentialsOptions): Promise<AuthTransaction> {\n // return postToTransaction(this, '/api/v1/authn', opts);\n // }\n\n getIssuerOrigin(): string {\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\n // { username, (relayState) }\n forgotPassword(opts): Promise<AuthTransaction> {\n return postToTransaction(this, '/api/v1/authn/recovery/password', opts);\n }\n\n // { username, (relayState) }\n unlockAccount(opts: ForgotPasswordOptions): Promise<AuthTransaction> {\n return postToTransaction(this, '/api/v1/authn/recovery/unlock', opts);\n }\n\n // { recoveryToken }\n verifyRecoveryToken(opts: VerifyRecoveryTokenOptions): Promise<AuthTransaction> {\n return postToTransaction(this, '/api/v1/authn/recovery/token', opts);\n }\n\n // Escape hatch method to make arbitrary OKTA API call\n async invokeApiMethod(options: RequestOptions): Promise<unknown> {\n if (!options.accessToken) {\n const accessToken = (await this.tokenManager.getTokens()).accessToken as AccessToken;\n options.accessToken = accessToken?.accessToken;\n }\n return httpRequest(this, options);\n }\n}\n\n// Hoist feature detection functions to prototype & static type\nOktaAuth.features = OktaAuth.prototype.features = features;\n\n// Also hoist constants for CommonJS users\nObject.assign(OktaAuth, {\n constants\n});\n\nexport default OktaAuth;"],"file":"OktaAuth.js"}
1
+ {"version":3,"file":"OktaAuth.js","names":["OktaAuth","constructor","args","features","options","storageManager","StorageManager","cookies","storageUtil","transactionManager","TransactionManager","_oktaUserAgent","OktaUserAgent","tx","status","transactionStatus","bind","resume","resumeTransaction","exists","transactionExists","_get","name","storage","get","introspect","introspectAuthn","createTransaction","res","AuthTransaction","postToTransaction","url","pkce","DEFAULT_CODE_CHALLENGE_METHOD","PKCE","generateVerifier","computeChallenge","getPKCEStorage","getLegacyPKCEStorage","getHttpCache","_pending","handleLogin","redirectUri","window","location","origin","maxClockSkew","DEFAULT_MAX_CLOCK_SKEW","ignoreLifetime","session","close","closeSession","sessionExists","getSession","refresh","refreshSession","setCookieAndRedirect","_tokenQueue","PromiseQueue","useQueue","method","prototype","push","getWithRedirectFn","getWithRedirect","getWithRedirectApi","_setLocation","setLocation","parseFromUrlFn","parseFromUrl","parseFromUrlApi","_getHistory","history","_getLocation","_getDocument","document","token","prepareTokenParams","exchangeCodeForTokens","getWithoutPrompt","getWithPopup","decode","decodeToken","revoke","revokeToken","renew","renewToken","renewTokensWithRefresh","renewTokens","getUserInfo","accessTokenObject","idTokenObject","verify","verifyToken","isLoginRedirect","toWrap","forEach","key","boundStartTransaction","startTransaction","idx","interact","makeIdxResponse","makeIdxState","authenticate","register","start","poll","proceed","cancel","recoverPassword","handleInteractionCodeRedirect","isInteractionRequired","isInteractionRequiredError","handleEmailVerifyCallback","isEmailVerifyCallback","parseEmailVerifyCallback","isEmailVerifyCallbackError","getSavedTransactionMeta","createTransactionMeta","getTransactionMeta","saveTransactionMeta","clearTransactionMeta","isTransactionMetaValid","setFlow","flow","getFlow","canProceed","unlockAccount","http","setRequestHeader","fingerprint","emitter","Emitter","tokenManager","TokenManager","authStateManager","AuthStateManager","hasSharedStorage","services","syncStorage","serviceManager","ServiceManager","updateAuthState","stop","setHeaders","headers","signIn","opts","signInWithCredentials","_postToTransaction","sendFingerprint","then","signInWithRedirect","originalUri","additionalParams","setOriginalUri","params","scopes","clear","catch","e","errorCode","revokeAccessToken","accessToken","getTokens","accessTokenKey","getStorageKeyByType","remove","resolve","revokeRefreshToken","refreshToken","refreshTokenKey","getSignOutRedirectUrl","idToken","postLogoutRedirectUri","state","getTokensSync","logoutUrl","idTokenHint","logoutUri","encodeURIComponent","signOut","defaultUri","currentUri","href","reload","assign","clearTokensBeforeRedirect","addPendingRemoveFlags","webfinger","isAuthenticated","autoRenew","autoRemove","getOptions","shouldRenew","onExpiredToken","shouldRemove","hasExpired","undefined","getUser","getIdToken","getAccessToken","getRefreshToken","storeTokensFromRedirect","tokens","setTokens","sessionStorage","browserStorage","getSessionStorage","setItem","REFERRER_PATH_STORAGE_KEY","sharedStorage","getOriginalUriStorage","getOriginalUri","getItem","removeOriginalUri","removeItem","handleLoginRedirect","oAuthResponse","restoreOriginalUri","replace","isPKCE","hasResponseType","responseType","Array","isArray","length","isAuthorizationCodeFlow","getIssuerOrigin","issuer","split","forgotPassword","verifyRecoveryToken","invokeApiMethod","crypto","webauthn","constants"],"sources":["../../lib/OktaAuth.ts"],"sourcesContent":["/* 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 */\n\nimport { \n DEFAULT_MAX_CLOCK_SKEW, \n REFERRER_PATH_STORAGE_KEY\n} from './constants';\nimport * as constants from './constants';\nimport {\n OktaAuthInterface,\n OktaAuthOptions, \n AccessToken, \n IDToken,\n RefreshToken,\n TokenAPI, \n FeaturesAPI, \n CryptoAPI,\n WebauthnAPI,\n SignoutAPI, \n FingerprintAPI,\n UserClaims, \n SigninWithRedirectOptions,\n SigninWithCredentialsOptions,\n SignoutOptions,\n Tokens,\n ForgotPasswordOptions,\n VerifyRecoveryTokenOptions,\n TransactionAPI,\n SessionAPI,\n SigninAPI,\n PkceAPI,\n SigninOptions,\n IdxAPI,\n SignoutRedirectUrlOptions,\n HttpAPI,\n FlowIdentifier,\n GetWithRedirectAPI,\n ParseFromUrlInterface,\n GetWithRedirectFunction,\n RequestOptions,\n IsAuthenticatedOptions,\n OAuthResponseType,\n CustomUserClaims,\n RequestData,\n} from './types';\nimport {\n transactionStatus,\n resumeTransaction,\n transactionExists,\n introspectAuthn,\n postToTransaction,\n AuthTransaction,\n TransactionState\n} from './tx';\nimport PKCE from './oidc/util/pkce';\nimport {\n closeSession,\n sessionExists,\n getSession,\n refreshSession,\n setCookieAndRedirect\n} from './session';\nimport {\n getOAuthUrls,\n getWithoutPrompt,\n getWithPopup,\n getWithRedirect,\n isLoginRedirect,\n parseFromUrl,\n decodeToken,\n revokeToken,\n renewToken,\n renewTokens,\n renewTokensWithRefresh,\n getUserInfo,\n verifyToken,\n prepareTokenParams,\n exchangeCodeForTokens,\n isInteractionRequiredError,\n isInteractionRequired,\n} 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 { \n toQueryString, \n toAbsoluteUrl,\n clone,\n} from './util';\nimport { TokenManager } from './TokenManager';\nimport { ServiceManager } from './ServiceManager';\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 {\n interact,\n introspect,\n authenticate,\n cancel,\n poll,\n proceed,\n register,\n recoverPassword,\n unlockAccount,\n startTransaction,\n handleInteractionCodeRedirect,\n canProceed,\n handleEmailVerifyCallback,\n isEmailVerifyCallback,\n parseEmailVerifyCallback,\n isEmailVerifyCallbackError\n} from './idx';\nimport { OktaUserAgent } from './OktaUserAgent';\nimport { parseOAuthResponseFromUrl } from './oidc/parseFromUrl';\nimport {\n getSavedTransactionMeta,\n createTransactionMeta,\n getTransactionMeta,\n saveTransactionMeta,\n clearTransactionMeta,\n isTransactionMetaValid\n} from './idx/transactionMeta';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore \n// Do not use this type in code, so it won't be emitted in the declaration output\nimport Emitter from 'tiny-emitter';\nimport { makeIdxState } from './idx/idxState';\n\nclass OktaAuth implements OktaAuthInterface, SigninAPI, SignoutAPI {\n options: OktaAuthOptions;\n storageManager: StorageManager;\n transactionManager: TransactionManager;\n tx: TransactionAPI;\n idx: IdxAPI;\n session: SessionAPI;\n pkce: PkceAPI;\n static features: FeaturesAPI = features;\n static crypto: CryptoAPI = crypto;\n static webauthn: WebauthnAPI = webauthn;\n features: FeaturesAPI = features;\n token: TokenAPI;\n _tokenQueue: PromiseQueue;\n emitter: any;\n tokenManager: TokenManager;\n authStateManager: AuthStateManager;\n serviceManager: ServiceManager;\n http: HttpAPI;\n fingerprint: FingerprintAPI;\n _oktaUserAgent: OktaUserAgent;\n _pending: { handleLogin: boolean };\n constructor(args: OktaAuthOptions) {\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\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 createTransaction: (res?: TransactionState) => {\n return new AuthTransaction(this, res);\n },\n postToTransaction: (url: string, args?: RequestData, options?: RequestOptions) => {\n return postToTransaction(this, url, args, options);\n }\n };\n\n this.pkce = {\n DEFAULT_CODE_CHALLENGE_METHOD: PKCE.DEFAULT_CODE_CHALLENGE_METHOD,\n generateVerifier: PKCE.generateVerifier,\n computeChallenge: PKCE.computeChallenge\n };\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\n this._pending = { handleLogin: false };\n\n if (isBrowser()) {\n this.options = Object.assign(this.options, {\n redirectUri: toAbsoluteUrl(args.redirectUri, window.location.origin), // allow relative URIs\n });\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 } else {\n this.options.maxClockSkew = args.maxClockSkew;\n }\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\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\n this._tokenQueue = new PromiseQueue();\n const useQueue = (method) => {\n return PromiseQueue.prototype.push.bind(this._tokenQueue, method, null);\n };\n\n // eslint-disable-next-line max-len\n const getWithRedirectFn = useQueue(getWithRedirect.bind(null, this)) as GetWithRedirectFunction;\n const getWithRedirectApi: GetWithRedirectAPI = Object.assign(getWithRedirectFn, {\n // This is exposed so we can set window.location in our tests\n _setLocation: function(url) {\n if (options.setLocation) {\n options.setLocation(url);\n } else {\n window.location = url;\n }\n }\n });\n // eslint-disable-next-line max-len\n const parseFromUrlFn = useQueue(parseFromUrl.bind(null, this)) as ParseFromUrlInterface;\n const parseFromUrlApi: ParseFromUrlInterface = 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\n // This is exposed so we can mock getting window.location in our tests\n _getLocation: function() {\n return window.location;\n },\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: <C extends CustomUserClaims = CustomUserClaims>(\n accessTokenObject: AccessToken,\n idTokenObject: IDToken\n ): Promise<UserClaims<C>> => {\n return getUserInfo(this, accessTokenObject, idTokenObject);\n },\n verify: verifyToken.bind(null, this),\n isLoginRedirect: isLoginRedirect.bind(null, this)\n };\n // Wrap certain async token API methods using PromiseQueue to avoid issues with concurrency\n // 'getWithRedirect' and 'parseFromUrl' are already wrapped\n const toWrap = [\n 'getWithoutPrompt',\n 'getWithPopup',\n 'revoke',\n 'renew',\n 'renewTokensWithRefresh',\n 'renewTokens'\n ];\n toWrap.forEach(key => {\n this.token[key] = useQueue(this.token[key]);\n });\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 makeIdxResponse: makeIdxState.bind(null, this),\n \n authenticate: authenticate.bind(null, this),\n register: register.bind(null, this),\n start: boundStartTransaction,\n startTransaction: boundStartTransaction, // Use `start` instead. `startTransaction` will be removed in 7.0\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\n // oauth redirect callback\n handleInteractionCodeRedirect: handleInteractionCodeRedirect.bind(null, this),\n\n // interaction required callback\n isInteractionRequired: isInteractionRequired.bind(null, this),\n isInteractionRequiredError,\n\n // email verify callback\n handleEmailVerifyCallback: handleEmailVerifyCallback.bind(null, this),\n isEmailVerifyCallback,\n parseEmailVerifyCallback,\n isEmailVerifyCallbackError,\n \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: FlowIdentifier) => {\n this.options.flow = flow;\n },\n getFlow: (): FlowIdentifier | undefined => {\n return this.options.flow;\n },\n canProceed: canProceed.bind(null, this),\n unlockAccount: unlockAccount.bind(null, this),\n };\n\n // HTTP\n this.http = {\n setRequestHeader: setRequestHeader.bind(null, this)\n };\n\n // Fingerprint API\n this.fingerprint = fingerprint.bind(null, this);\n\n this.emitter = new Emitter();\n\n // TokenManager\n this.tokenManager = new TokenManager(this, args.tokenManager);\n\n // AuthStateManager\n this.authStateManager = new AuthStateManager(this);\n\n // Enable `syncStorage` only if token storage is shared across tabs (type is `localStorage` or `cookie`)\n if (!this.tokenManager.hasSharedStorage()) {\n args.services = { ...args.services, syncStorage: false };\n }\n\n // ServiceManager\n this.serviceManager = new ServiceManager(this, args.services);\n }\n\n async start() {\n await this.serviceManager.start();\n // TODO: review tokenManager.start\n this.tokenManager.start();\n if (!this.token.isLoginRedirect()) {\n await this.authStateManager.updateAuthState();\n }\n }\n\n async stop() {\n // TODO: review tokenManager.stop\n this.tokenManager.stop();\n await this.serviceManager.stop();\n }\n\n setHeaders(headers) {\n this.options.headers = Object.assign({}, this.options.headers, headers);\n }\n\n\n // Authn V1\n async signIn(opts: SigninOptions): Promise<AuthTransaction> {\n return this.signInWithCredentials(opts as SigninWithCredentialsOptions);\n }\n\n // Authn V1\n async signInWithCredentials(opts: SigninWithCredentialsOptions): Promise<AuthTransaction> {\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 async signInWithRedirect(opts: SigninWithRedirectOptions = {}) {\n const { originalUri, ...additionalParams } = opts;\n if(this._pending.handleLogin) { \n // Don't trigger second round\n return;\n }\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 await this.token.getWithRedirect(params);\n } finally {\n this._pending.handleLogin = false;\n }\n }\n\n // Ends the current Okta SSO session without redirecting to Okta.\n closeSession(): Promise<unknown> {\n return this.session.close() // DELETE /api/v1/sessions/me\n .then(async () => {\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 \n // Revokes the access token for the application session\n async revokeAccessToken(accessToken?: AccessToken): Promise<unknown> {\n if (!accessToken) {\n accessToken = (await this.tokenManager.getTokens()).accessToken as 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 async revokeRefreshToken(refreshToken?: RefreshToken): Promise<unknown> {\n if (!refreshToken) {\n refreshToken = (await this.tokenManager.getTokens()).refreshToken as 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: SignoutRedirectUrlOptions = {}) {\n let {\n idToken,\n postLogoutRedirectUri,\n state,\n } = options;\n if (!idToken) {\n idToken = this.tokenManager.getTokensSync().idToken as IDToken;\n }\n if (!idToken) {\n return '';\n }\n if (!postLogoutRedirectUri) {\n postLogoutRedirectUri = this.options.postLogoutRedirectUri;\n }\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\n return logoutUri;\n }\n\n // Revokes refreshToken or accessToken, clears all local tokens, then redirects to Okta to end the SSO session.\n async signOut(options?: SignoutOptions) {\n options = Object.assign({}, options);\n \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 \n var accessToken = options.accessToken;\n var refreshToken = options.refreshToken;\n var revokeAccessToken = options.revokeAccessToken !== false;\n var revokeRefreshToken = options.revokeRefreshToken !== false;\n \n if (revokeRefreshToken && typeof refreshToken === 'undefined') {\n refreshToken = this.tokenManager.getTokensSync().refreshToken as RefreshToken;\n }\n\n if (revokeAccessToken && typeof accessToken === 'undefined') {\n accessToken = this.tokenManager.getTokensSync().accessToken as AccessToken;\n }\n \n if (!options.idToken) {\n options.idToken = this.tokenManager.getTokensSync().idToken as IDToken;\n }\n\n if (revokeRefreshToken && refreshToken) {\n await this.revokeRefreshToken(refreshToken);\n }\n\n if (revokeAccessToken && accessToken) {\n await this.revokeAccessToken(accessToken);\n }\n\n const logoutUri = this.getSignOutRedirectUrl({ ...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 } else {\n window.location.assign(postLogoutRedirectUri);\n }\n });\n } else {\n if (options.clearTokensBeforeRedirect) {\n // Clear all local tokens\n this.tokenManager.clear();\n } else {\n this.tokenManager.addPendingRemoveFlags();\n }\n // Flow ends with logout redirect\n window.location.assign(logoutUri);\n }\n }\n\n webfinger(opts): Promise<object> {\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 //\n // Common Methods from downstream SDKs\n //\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 async isAuthenticated(options: IsAuthenticatedOptions = {}): Promise<boolean> {\n // TODO: remove dependency on tokenManager options in next major version - OKTA-473815\n const { autoRenew, autoRemove } = this.tokenManager.getOptions();\n\n const shouldRenew = options.onExpiredToken ? options.onExpiredToken === 'renew' : autoRenew;\n const shouldRemove = options.onExpiredToken ? options.onExpiredToken === 'remove' : autoRemove;\n\n let { accessToken } = this.tokenManager.getTokensSync();\n if (accessToken && this.tokenManager.hasExpired(accessToken)) {\n accessToken = undefined;\n if (shouldRenew) {\n try {\n accessToken = await this.tokenManager.renew('accessToken') as AccessToken;\n } catch {\n // Renew errors will emit an \"error\" event \n }\n } else if (shouldRemove) {\n this.tokenManager.remove('accessToken');\n }\n }\n\n let { idToken } = this.tokenManager.getTokensSync();\n if (idToken && this.tokenManager.hasExpired(idToken)) {\n idToken = undefined;\n if (shouldRenew) {\n try {\n idToken = await this.tokenManager.renew('idToken') as IDToken;\n } catch {\n // Renew errors will emit an \"error\" event \n }\n } else if (shouldRemove) {\n this.tokenManager.remove('idToken');\n }\n }\n\n return !!(accessToken && idToken);\n }\n\n async getUser<T extends CustomUserClaims = CustomUserClaims>(): Promise<UserClaims<T>> {\n const { idToken, accessToken } = this.tokenManager.getTokensSync();\n return this.token.getUserInfo(accessToken, idToken);\n }\n\n getIdToken(): string | undefined {\n const { idToken } = this.tokenManager.getTokensSync();\n return idToken ? idToken.idToken : undefined;\n }\n\n getAccessToken(): string | undefined {\n const { accessToken } = this.tokenManager.getTokensSync();\n return accessToken ? accessToken.accessToken : undefined;\n }\n\n getRefreshToken(): string | undefined {\n const { refreshToken } = this.tokenManager.getTokensSync();\n return refreshToken ? refreshToken.refreshToken : undefined;\n }\n\n /**\n * Store parsed tokens from redirect url\n */\n async storeTokensFromRedirect(): Promise<void> {\n const { tokens } = await this.token.parseFromUrl();\n this.tokenManager.setTokens(tokens);\n }\n\n setOriginalUri(originalUri: string, state?: string): void {\n // always store in session storage\n const sessionStorage = browserStorage.getSessionStorage();\n sessionStorage.setItem(REFERRER_PATH_STORAGE_KEY, originalUri);\n\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\n getOriginalUri(state?: string): string | undefined {\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\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\n removeOriginalUri(state?: string): void {\n // Remove from sessionStorage\n const storage = browserStorage.getSessionStorage();\n storage.removeItem(REFERRER_PATH_STORAGE_KEY);\n\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\n isLoginRedirect(): boolean {\n return isLoginRedirect(this);\n }\n\n async handleLoginRedirect(tokens?: Tokens, originalUri?: string): Promise<void> {\n let state = this.options.state;\n\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 } 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 = await parseOAuthResponseFromUrl(this, {});\n state = oAuthResponse.state;\n originalUri = originalUri || this.getOriginalUri(state);\n await this.storeTokensFromRedirect();\n } catch(e) {\n // auth state should be updated\n await this.authStateManager.updateAuthState();\n throw e;\n }\n } else {\n return; // nothing to do\n }\n \n // ensure auth state has been updated\n await this.authStateManager.updateAuthState();\n\n // clear originalUri from storage\n this.removeOriginalUri(state);\n\n // Redirect to originalUri\n const { restoreOriginalUri } = this.options;\n if (restoreOriginalUri) {\n await restoreOriginalUri(this, originalUri);\n } else if (originalUri) {\n window.location.replace(originalUri);\n }\n }\n\n isPKCE(): boolean {\n return !!this.options.pkce;\n }\n\n hasResponseType(responseType: OAuthResponseType): boolean {\n let hasResponseType = false;\n if (Array.isArray(this.options.responseType) && this.options.responseType.length) {\n hasResponseType = this.options.responseType.indexOf(responseType) >= 0;\n } else {\n hasResponseType = this.options.responseType === responseType;\n }\n return hasResponseType;\n }\n\n isAuthorizationCodeFlow(): boolean {\n return this.hasResponseType('code');\n }\n\n // { username, password, (relayState), (context) }\n // signIn(opts: SignInWithCredentialsOptions): Promise<AuthTransaction> {\n // return postToTransaction(this, '/api/v1/authn', opts);\n // }\n\n getIssuerOrigin(): string {\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\n // { username, (relayState) }\n forgotPassword(opts): Promise<AuthTransaction> {\n return postToTransaction(this, '/api/v1/authn/recovery/password', opts);\n }\n\n // { username, (relayState) }\n unlockAccount(opts: ForgotPasswordOptions): Promise<AuthTransaction> {\n return postToTransaction(this, '/api/v1/authn/recovery/unlock', opts);\n }\n\n // { recoveryToken }\n verifyRecoveryToken(opts: VerifyRecoveryTokenOptions): Promise<AuthTransaction> {\n return postToTransaction(this, '/api/v1/authn/recovery/token', opts);\n }\n\n // Escape hatch method to make arbitrary OKTA API call\n async invokeApiMethod(options: RequestOptions): Promise<unknown> {\n if (!options.accessToken) {\n const accessToken = (await this.tokenManager.getTokens()).accessToken as AccessToken;\n options.accessToken = accessToken?.accessToken;\n }\n return httpRequest(this, options);\n }\n}\n\n// Hoist feature detection functions to prototype & static type\nOktaAuth.features = OktaAuth.prototype.features = features;\n\n// Also hoist constants for CommonJS users\nObject.assign(OktaAuth, {\n constants\n});\n\nexport default OktaAuth;"],"mappings":"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"}
@@ -21,7 +21,7 @@ var _features = require("./features");
21
21
  class OktaUserAgent {
22
22
  constructor() {
23
23
  // add base sdk env
24
- this.environments = [`okta-auth-js/${"6.6.2"}`];
24
+ this.environments = [`okta-auth-js/${"6.7.0"}`];
25
25
  }
26
26
 
27
27
  addEnvironment(env) {
@@ -36,7 +36,7 @@ class OktaUserAgent {
36
36
  }
37
37
 
38
38
  getVersion() {
39
- return "6.6.2";
39
+ return "6.7.0";
40
40
  }
41
41
 
42
42
  maybeAddNodeEnvironment() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../lib/OktaUserAgent.ts"],"names":["OktaUserAgent","constructor","environments","addEnvironment","env","push","getHttpHeader","maybeAddNodeEnvironment","join","getVersion","process","versions","node","version"],"mappings":";;;;AAeA;;AAfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAGO,MAAMA,aAAN,CAAoB;AAGzBC,EAAAA,WAAW,GAAG;AACZ;AACA,SAAKC,YAAL,GAAoB,CAAE,gBAAD,OAA4B,EAA7B,CAApB;AACD;;AAEDC,EAAAA,cAAc,CAACC,GAAD,EAAc;AAC1B,SAAKF,YAAL,CAAkBG,IAAlB,CAAuBD,GAAvB;AACD;;AAEDE,EAAAA,aAAa,GAAG;AACd,SAAKC,uBAAL;AACA,WAAO;AAAE,oCAA8B,KAAKL,YAAL,CAAkBM,IAAlB,CAAuB,GAAvB;AAAhC,KAAP;AACD;;AAEDC,EAAAA,UAAU,GAAG;AACX;AACD;;AAEOF,EAAAA,uBAAuB,GAAG;AAChC,QAAI,8BAAe,CAACG,OAAhB,IAA2B,CAACA,OAAO,CAACC,QAAxC,EAAkD;AAChD;AACD;;AACD,UAAM;AAAEC,MAAAA,IAAI,EAAEC;AAAR,QAAoBH,OAAO,CAACC,QAAlC;AACA,SAAKT,YAAL,CAAkBG,IAAlB,CAAwB,UAASQ,OAAQ,EAAzC;AACD;;AA3BwB","sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n\n/* global SDK_VERSION */\n\nimport { isBrowser } from './features';\nexport class OktaUserAgent {\n private environments: string[];\n\n constructor() {\n // add base sdk env\n this.environments = [`okta-auth-js/${SDK_VERSION}`];\n }\n\n addEnvironment(env: string) {\n this.environments.push(env);\n }\n\n getHttpHeader() {\n this.maybeAddNodeEnvironment();\n return { 'X-Okta-User-Agent-Extended': this.environments.join(' ') };\n }\n\n getVersion() {\n return SDK_VERSION;\n }\n\n private 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"],"file":"OktaUserAgent.js"}
1
+ {"version":3,"file":"OktaUserAgent.js","names":["OktaUserAgent","constructor","environments","addEnvironment","env","push","getHttpHeader","maybeAddNodeEnvironment","join","getVersion","process","versions","node","version"],"sources":["../../lib/OktaUserAgent.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n\n/* global SDK_VERSION */\n\nimport { isBrowser } from './features';\nexport class OktaUserAgent {\n private environments: string[];\n\n constructor() {\n // add base sdk env\n this.environments = [`okta-auth-js/${SDK_VERSION}`];\n }\n\n addEnvironment(env: string) {\n this.environments.push(env);\n }\n\n getHttpHeader() {\n this.maybeAddNodeEnvironment();\n return { 'X-Okta-User-Agent-Extended': this.environments.join(' ') };\n }\n\n getVersion() {\n return SDK_VERSION;\n }\n\n private 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"],"mappings":";;;;AAeA;;AAfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAGO,MAAMA,aAAN,CAAoB;EAGzBC,WAAW,GAAG;IACZ;IACA,KAAKC,YAAL,GAAoB,CAAE,gBAAD,OAA4B,EAA7B,CAApB;EACD;;EAEDC,cAAc,CAACC,GAAD,EAAc;IAC1B,KAAKF,YAAL,CAAkBG,IAAlB,CAAuBD,GAAvB;EACD;;EAEDE,aAAa,GAAG;IACd,KAAKC,uBAAL;IACA,OAAO;MAAE,8BAA8B,KAAKL,YAAL,CAAkBM,IAAlB,CAAuB,GAAvB;IAAhC,CAAP;EACD;;EAEDC,UAAU,GAAG;IACX;EACD;;EAEOF,uBAAuB,GAAG;IAChC,IAAI,8BAAe,CAACG,OAAhB,IAA2B,CAACA,OAAO,CAACC,QAAxC,EAAkD;MAChD;IACD;;IACD,MAAM;MAAEC,IAAI,EAAEC;IAAR,IAAoBH,OAAO,CAACC,QAAlC;IACA,KAAKT,YAAL,CAAkBG,IAAlB,CAAwB,UAASQ,OAAQ,EAAzC;EACD;;AA3BwB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../lib/PromiseQueue.ts"],"names":["PromiseQueue","constructor","options","quiet","queue","running","push","method","thisObject","args","resolve","reject","length","run","queueItem","shift","res","apply","then","finally"],"mappings":";;;;;;;;AAgBA;;AAhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAeA,MAAMA,YAAN,CAAmB;AAKjBC,EAAAA,WAAW,CAACC,OAA4B,GAAG;AAAEC,IAAAA,KAAK,EAAE;AAAT,GAAhC,EAAkD;AAC3D,SAAKC,KAAL,GAAa,EAAb;AACA,SAAKC,OAAL,GAAe,KAAf;AACA,SAAKH,OAAL,GAAeA,OAAf;AACD,GATgB,CAWjB;AACA;AACA;;;AACAI,EAAAA,IAAI,CAACC,MAAD,EAAgCC,UAAhC,EAAiD,GAAGC,IAApD,EAAiE;AACnE,WAAO,qBAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;AACtC,UAAI,KAAKP,KAAL,CAAWQ,MAAX,GAAoB,CAAxB,EAA2B;AACzB;AACA;AACA,YAAI,KAAKV,OAAL,CAAaC,KAAb,KAAuB,KAA3B,EAAkC;AAChC,0BACE,+EACA,qEAFF;AAID;AACF;;AACD,WAAKC,KAAL,CAAWE,IAAX,CAAgB;AACdC,QAAAA,MADc;AAEdC,QAAAA,UAFc;AAGdC,QAAAA,IAHc;AAIdC,QAAAA,OAJc;AAKdC,QAAAA;AALc,OAAhB;AAOA,WAAKE,GAAL;AACD,KAnBM,CAAP;AAoBD;;AAEDA,EAAAA,GAAG,GAAG;AACJ,QAAI,KAAKR,OAAT,EAAkB;AAChB;AACD;;AACD,QAAI,KAAKD,KAAL,CAAWQ,MAAX,KAAsB,CAA1B,EAA6B;AAC3B;AACD;;AACD,SAAKP,OAAL,GAAe,IAAf,CAPI,CAQJ;;AACA,QAAIS,SAAS,GAAG,KAAKV,KAAL,CAAWW,KAAX,EAAhB;AACA,QAAIC,GAAG,GAAGF,SAAS,CAACP,MAAV,CAAiBU,KAAjB,CAAuBH,SAAS,CAACN,UAAjC,EAA6CM,SAAS,CAACL,IAAvD,CAAV;;AACA,QAAI,qBAAUO,GAAV,CAAJ,EAAoB;AACjBA,MAAAA,GAAD,CAA0BE,IAA1B,CAA+BJ,SAAS,CAACJ,OAAzC,EAAkDI,SAAS,CAACH,MAA5D,EAAoEQ,OAApE,CAA4E,MAAM;AAChF,aAAKd,OAAL,GAAe,KAAf;AACA,aAAKQ,GAAL;AACD,OAHD;AAID,KALD,MAKO;AACLC,MAAAA,SAAS,CAACJ,OAAV,CAAkBM,GAAlB;AACA,WAAKX,OAAL,GAAe,KAAf;AACA,WAAKQ,GAAL;AACD;AACF;;AA1DgB;;eA6DJb,Y","sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n// 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\n\nimport { isPromise, warn } from './util';\n\ninterface QueueItem {\n method: () => void;\n thisObject: object;\n args: any[];\n resolve: (value?: unknown) => void;\n reject: (reason?: unknown) => void;\n}\n\ninterface PromiseQueueOptions {\n quiet?: boolean; // if false, concurrrency warnings will not be logged\n}\nclass PromiseQueue {\n queue: QueueItem[];\n running: boolean;\n options: PromiseQueueOptions;\n\n constructor(options: PromiseQueueOptions = { quiet: false }) {\n this.queue = [];\n this.running = false;\n this.options = options;\n }\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: (...args: any) => any, thisObject: any, ...args: any[]) {\n return new Promise((resolve, reject) => {\n if (this.queue.length > 0) {\n // There is at least one other pending call.\n // The PromiseQueue will prevent these methods from running concurrently.\n if (this.options.quiet !== false) {\n warn(\n '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 }\n }\n this.queue.push({\n method,\n thisObject,\n args,\n resolve,\n reject\n });\n this.run();\n });\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 as never) as unknown;\n if (isPromise(res)) {\n (res as Promise<unknown>).then(queueItem.resolve, queueItem.reject).finally(() => {\n this.running = false;\n this.run();\n });\n } else {\n queueItem.resolve(res);\n this.running = false;\n this.run();\n }\n }\n}\n\nexport default PromiseQueue;"],"file":"PromiseQueue.js"}
1
+ {"version":3,"file":"PromiseQueue.js","names":["PromiseQueue","constructor","options","quiet","queue","running","push","method","thisObject","args","resolve","reject","length","run","queueItem","shift","res","apply","then","finally"],"sources":["../../lib/PromiseQueue.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n// 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\n\nimport { isPromise, warn } from './util';\n\ninterface QueueItem {\n method: () => void;\n thisObject: object;\n args: any[];\n resolve: (value?: unknown) => void;\n reject: (reason?: unknown) => void;\n}\n\ninterface PromiseQueueOptions {\n quiet?: boolean; // if false, concurrrency warnings will not be logged\n}\nclass PromiseQueue {\n queue: QueueItem[];\n running: boolean;\n options: PromiseQueueOptions;\n\n constructor(options: PromiseQueueOptions = { quiet: false }) {\n this.queue = [];\n this.running = false;\n this.options = options;\n }\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: (...args: any) => any, thisObject: any, ...args: any[]) {\n return new Promise((resolve, reject) => {\n if (this.queue.length > 0) {\n // There is at least one other pending call.\n // The PromiseQueue will prevent these methods from running concurrently.\n if (this.options.quiet !== false) {\n warn(\n '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 }\n }\n this.queue.push({\n method,\n thisObject,\n args,\n resolve,\n reject\n });\n this.run();\n });\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 as never) as unknown;\n if (isPromise(res)) {\n (res as Promise<unknown>).then(queueItem.resolve, queueItem.reject).finally(() => {\n this.running = false;\n this.run();\n });\n } else {\n queueItem.resolve(res);\n this.running = false;\n this.run();\n }\n }\n}\n\nexport default PromiseQueue;"],"mappings":";;;;;;;;AAgBA;;AAhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAeA,MAAMA,YAAN,CAAmB;EAKjBC,WAAW,CAACC,OAA4B,GAAG;IAAEC,KAAK,EAAE;EAAT,CAAhC,EAAkD;IAC3D,KAAKC,KAAL,GAAa,EAAb;IACA,KAAKC,OAAL,GAAe,KAAf;IACA,KAAKH,OAAL,GAAeA,OAAf;EACD,CATgB,CAWjB;EACA;EACA;;;EACAI,IAAI,CAACC,MAAD,EAAgCC,UAAhC,EAAiD,GAAGC,IAApD,EAAiE;IACnE,OAAO,qBAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;MACtC,IAAI,KAAKP,KAAL,CAAWQ,MAAX,GAAoB,CAAxB,EAA2B;QACzB;QACA;QACA,IAAI,KAAKV,OAAL,CAAaC,KAAb,KAAuB,KAA3B,EAAkC;UAChC,gBACE,+EACA,qEAFF;QAID;MACF;;MACD,KAAKC,KAAL,CAAWE,IAAX,CAAgB;QACdC,MADc;QAEdC,UAFc;QAGdC,IAHc;QAIdC,OAJc;QAKdC;MALc,CAAhB;MAOA,KAAKE,GAAL;IACD,CAnBM,CAAP;EAoBD;;EAEDA,GAAG,GAAG;IACJ,IAAI,KAAKR,OAAT,EAAkB;MAChB;IACD;;IACD,IAAI,KAAKD,KAAL,CAAWQ,MAAX,KAAsB,CAA1B,EAA6B;MAC3B;IACD;;IACD,KAAKP,OAAL,GAAe,IAAf,CAPI,CAQJ;;IACA,IAAIS,SAAS,GAAG,KAAKV,KAAL,CAAWW,KAAX,EAAhB;IACA,IAAIC,GAAG,GAAGF,SAAS,CAACP,MAAV,CAAiBU,KAAjB,CAAuBH,SAAS,CAACN,UAAjC,EAA6CM,SAAS,CAACL,IAAvD,CAAV;;IACA,IAAI,qBAAUO,GAAV,CAAJ,EAAoB;MACjBA,GAAD,CAA0BE,IAA1B,CAA+BJ,SAAS,CAACJ,OAAzC,EAAkDI,SAAS,CAACH,MAA5D,EAAoEQ,OAApE,CAA4E,MAAM;QAChF,KAAKd,OAAL,GAAe,KAAf;QACA,KAAKQ,GAAL;MACD,CAHD;IAID,CALD,MAKO;MACLC,SAAS,CAACJ,OAAV,CAAkBM,GAAlB;MACA,KAAKX,OAAL,GAAe,KAAf;MACA,KAAKQ,GAAL;IACD;EACF;;AA1DgB;;eA6DJb,Y"}
@@ -53,6 +53,12 @@ class SavedObject {
53
53
  //
54
54
 
55
55
 
56
+ isSharedStorage() {
57
+ var _this$storageProvider, _this$storageProvider2;
58
+
59
+ return typeof localStorage !== 'undefined' && this.storageProvider === localStorage || !!((_this$storageProvider = (_this$storageProvider2 = this.storageProvider).isSharedStorage) !== null && _this$storageProvider !== void 0 && _this$storageProvider.call(_this$storageProvider2));
60
+ }
61
+
56
62
  getStorage() {
57
63
  var storageString = this.storageProvider.getItem(this.storageName);
58
64
  storageString = storageString || '{}';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../lib/SavedObject.ts"],"names":["SavedObject","constructor","storage","storageName","AuthSdkError","length","storageProvider","getItem","key","getStorage","setItem","value","updateStorage","removeItem","clearStorage","storageString","JSON","parse","e","setStorage","obj"],"mappings":";;;;;;;;AAaA;;AAbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACe,MAAMA,WAAN,CAA6C;AAI1DC,EAAAA,WAAW,CAACC,OAAD,EAAyBC,WAAzB,EAA8C;AACvD,QAAI,CAACD,OAAL,EAAc;AACZ,YAAM,IAAIE,qBAAJ,CAAiB,uBAAjB,CAAN;AACD;;AAED,QAAI,OAAOD,WAAP,KAAuB,QAAvB,IAAmC,CAACA,WAAW,CAACE,MAApD,EAA4D;AAC1D,YAAM,IAAID,qBAAJ,CAAiB,2BAAjB,CAAN;AACD;;AAED,SAAKD,WAAL,GAAmBA,WAAnB;AACA,SAAKG,eAAL,GAAuBJ,OAAvB;AACD,GAfyD,CAiB1D;AACA;AACA;;;AAEAK,EAAAA,OAAO,CAACC,GAAD,EAAc;AACnB,WAAO,KAAKC,UAAL,GAAkBD,GAAlB,CAAP;AACD;;AAEDE,EAAAA,OAAO,CAACF,GAAD,EAAcG,KAAd,EAA0B;AAC/B,WAAO,KAAKC,aAAL,CAAmBJ,GAAnB,EAAwBG,KAAxB,CAAP;AACD;;AAEDE,EAAAA,UAAU,CAACL,GAAD,EAAc;AACtB,WAAO,KAAKM,YAAL,CAAkBN,GAAlB,CAAP;AACD,GA/ByD,CAiC1D;AACA;AACA;;;AAEAC,EAAAA,UAAU,GAAG;AACX,QAAIM,aAAa,GAAG,KAAKT,eAAL,CAAqBC,OAArB,CAA6B,KAAKJ,WAAlC,CAApB;AACAY,IAAAA,aAAa,GAAGA,aAAa,IAAI,IAAjC;;AACA,QAAI;AACF,aAAOC,IAAI,CAACC,KAAL,CAAWF,aAAX,CAAP;AACD,KAFD,CAEE,OAAMG,CAAN,EAAS;AACT,YAAM,IAAId,qBAAJ,CAAiB,qCAAqC,KAAKD,WAA3D,CAAN;AACD;AACF;;AAEDgB,EAAAA,UAAU,CAACC,GAAD,EAAY;AACpB,QAAI;AACF,UAAIL,aAAa,GAAGK,GAAG,GAAG,wBAAeA,GAAf,CAAH,GAAyB,IAAhD;AACA,WAAKd,eAAL,CAAqBI,OAArB,CAA6B,KAAKP,WAAlC,EAA+CY,aAA/C;AACD,KAHD,CAGE,OAAMG,CAAN,EAAS;AACT,YAAM,IAAId,qBAAJ,CAAiB,4BAA4B,KAAKD,WAAlD,CAAN;AACD;AACF;;AAEDW,EAAAA,YAAY,CAACN,GAAD,EAAe;AACzB,QAAI,CAACA,GAAL,EAAU;AACR;AACA,UAAI,KAAKF,eAAL,CAAqBO,UAAzB,EAAqC;AACnC,aAAKP,eAAL,CAAqBO,UAArB,CAAgC,KAAKV,WAArC;AACD,OAFD,MAEO;AACL,aAAKgB,UAAL;AACD;;AACD;AACD;;AAED,QAAIC,GAAG,GAAG,KAAKX,UAAL,EAAV;AACA,WAAOW,GAAG,CAACZ,GAAD,CAAV;AACA,SAAKW,UAAL,CAAgBC,GAAhB;AACD;;AAEDR,EAAAA,aAAa,CAACJ,GAAD,EAAMG,KAAN,EAAa;AACxB,QAAIS,GAAG,GAAG,KAAKX,UAAL,EAAV;AACAW,IAAAA,GAAG,CAACZ,GAAD,CAAH,GAAWG,KAAX;AACA,SAAKQ,UAAL,CAAgBC,GAAhB;AACD;;AA5EyD","sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n\nimport AuthSdkError from './errors/AuthSdkError';\nimport { StorageProvider, SimpleStorage } from './types';\n\n// formerly known as \"storageBuilder\". Represents an object saved under a key/name.\nexport default class SavedObject implements StorageProvider {\n storageProvider: SimpleStorage;\n storageName: string;\n\n constructor(storage: SimpleStorage, storageName: string) {\n if (!storage) {\n throw new AuthSdkError('\"storage\" is required');\n }\n\n if (typeof storageName !== 'string' || !storageName.length) {\n throw new AuthSdkError('\"storageName\" is required');\n }\n\n this.storageName = storageName;\n this.storageProvider = storage;\n }\n\n //\n // SimpleStorage interface\n //\n\n getItem(key: string) {\n return this.getStorage()[key];\n }\n\n setItem(key: string, value: any) {\n return this.updateStorage(key, value);\n }\n\n removeItem(key: string) {\n return this.clearStorage(key);\n }\n\n //\n // StorageProvider interface\n //\n\n getStorage() {\n var storageString = this.storageProvider.getItem(this.storageName);\n storageString = storageString || '{}';\n try {\n return JSON.parse(storageString);\n } catch(e) {\n throw new AuthSdkError('Unable to parse storage string: ' + this.storageName);\n }\n }\n\n setStorage(obj?: any) {\n try {\n var storageString = obj ? JSON.stringify(obj) : '{}';\n this.storageProvider.setItem(this.storageName, storageString);\n } catch(e) {\n throw new AuthSdkError('Unable to set storage: ' + this.storageName);\n }\n }\n\n clearStorage(key?: string) {\n if (!key) {\n // clear all\n if (this.storageProvider.removeItem) {\n this.storageProvider.removeItem(this.storageName);\n } else {\n this.setStorage();\n }\n return;\n }\n\n var obj = this.getStorage();\n delete obj[key];\n this.setStorage(obj);\n }\n\n updateStorage(key, value) {\n var obj = this.getStorage();\n obj[key] = value;\n this.setStorage(obj);\n }\n}\n"],"file":"SavedObject.js"}
1
+ {"version":3,"file":"SavedObject.js","names":["SavedObject","constructor","storage","storageName","AuthSdkError","length","storageProvider","getItem","key","getStorage","setItem","value","updateStorage","removeItem","clearStorage","isSharedStorage","localStorage","storageString","JSON","parse","e","setStorage","obj"],"sources":["../../lib/SavedObject.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n\nimport AuthSdkError from './errors/AuthSdkError';\nimport { StorageProvider, SimpleStorage } from './types';\n\n// formerly known as \"storageBuilder\". Represents an object saved under a key/name.\nexport default class SavedObject implements StorageProvider {\n storageProvider: SimpleStorage;\n storageName: string;\n\n constructor(storage: SimpleStorage, storageName: string) {\n if (!storage) {\n throw new AuthSdkError('\"storage\" is required');\n }\n\n if (typeof storageName !== 'string' || !storageName.length) {\n throw new AuthSdkError('\"storageName\" is required');\n }\n\n this.storageName = storageName;\n this.storageProvider = storage;\n }\n\n //\n // SimpleStorage interface\n //\n\n getItem(key: string) {\n return this.getStorage()[key];\n }\n\n setItem(key: string, value: any) {\n return this.updateStorage(key, value);\n }\n\n removeItem(key: string) {\n return this.clearStorage(key);\n }\n\n //\n // StorageProvider interface\n //\n\n isSharedStorage() {\n return typeof localStorage !== 'undefined' && this.storageProvider === localStorage as any \n || !!this.storageProvider.isSharedStorage?.();\n }\n\n getStorage() {\n var storageString = this.storageProvider.getItem(this.storageName);\n storageString = storageString || '{}';\n try {\n return JSON.parse(storageString);\n } catch(e) {\n throw new AuthSdkError('Unable to parse storage string: ' + this.storageName);\n }\n }\n\n setStorage(obj?: any) {\n try {\n var storageString = obj ? JSON.stringify(obj) : '{}';\n this.storageProvider.setItem(this.storageName, storageString);\n } catch(e) {\n throw new AuthSdkError('Unable to set storage: ' + this.storageName);\n }\n }\n\n clearStorage(key?: string) {\n if (!key) {\n // clear all\n if (this.storageProvider.removeItem) {\n this.storageProvider.removeItem(this.storageName);\n } else {\n this.setStorage();\n }\n return;\n }\n\n var obj = this.getStorage();\n delete obj[key];\n this.setStorage(obj);\n }\n\n updateStorage(key, value) {\n var obj = this.getStorage();\n obj[key] = value;\n this.setStorage(obj);\n }\n}\n"],"mappings":";;;;;;;;AAaA;;AAbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACe,MAAMA,WAAN,CAA6C;EAI1DC,WAAW,CAACC,OAAD,EAAyBC,WAAzB,EAA8C;IACvD,IAAI,CAACD,OAAL,EAAc;MACZ,MAAM,IAAIE,qBAAJ,CAAiB,uBAAjB,CAAN;IACD;;IAED,IAAI,OAAOD,WAAP,KAAuB,QAAvB,IAAmC,CAACA,WAAW,CAACE,MAApD,EAA4D;MAC1D,MAAM,IAAID,qBAAJ,CAAiB,2BAAjB,CAAN;IACD;;IAED,KAAKD,WAAL,GAAmBA,WAAnB;IACA,KAAKG,eAAL,GAAuBJ,OAAvB;EACD,CAfyD,CAiB1D;EACA;EACA;;;EAEAK,OAAO,CAACC,GAAD,EAAc;IACnB,OAAO,KAAKC,UAAL,GAAkBD,GAAlB,CAAP;EACD;;EAEDE,OAAO,CAACF,GAAD,EAAcG,KAAd,EAA0B;IAC/B,OAAO,KAAKC,aAAL,CAAmBJ,GAAnB,EAAwBG,KAAxB,CAAP;EACD;;EAEDE,UAAU,CAACL,GAAD,EAAc;IACtB,OAAO,KAAKM,YAAL,CAAkBN,GAAlB,CAAP;EACD,CA/ByD,CAiC1D;EACA;EACA;;;EAEAO,eAAe,GAAG;IAAA;;IAChB,OAAO,OAAOC,YAAP,KAAwB,WAAxB,IAAuC,KAAKV,eAAL,KAAyBU,YAAhE,IACF,CAAC,2BAAC,+BAAKV,eAAL,EAAqBS,eAAtB,kDAAC,kDAAD,CADN;EAED;;EAEDN,UAAU,GAAG;IACX,IAAIQ,aAAa,GAAG,KAAKX,eAAL,CAAqBC,OAArB,CAA6B,KAAKJ,WAAlC,CAApB;IACAc,aAAa,GAAGA,aAAa,IAAI,IAAjC;;IACA,IAAI;MACF,OAAOC,IAAI,CAACC,KAAL,CAAWF,aAAX,CAAP;IACD,CAFD,CAEE,OAAMG,CAAN,EAAS;MACT,MAAM,IAAIhB,qBAAJ,CAAiB,qCAAqC,KAAKD,WAA3D,CAAN;IACD;EACF;;EAEDkB,UAAU,CAACC,GAAD,EAAY;IACpB,IAAI;MACF,IAAIL,aAAa,GAAGK,GAAG,GAAG,wBAAeA,GAAf,CAAH,GAAyB,IAAhD;MACA,KAAKhB,eAAL,CAAqBI,OAArB,CAA6B,KAAKP,WAAlC,EAA+Cc,aAA/C;IACD,CAHD,CAGE,OAAMG,CAAN,EAAS;MACT,MAAM,IAAIhB,qBAAJ,CAAiB,4BAA4B,KAAKD,WAAlD,CAAN;IACD;EACF;;EAEDW,YAAY,CAACN,GAAD,EAAe;IACzB,IAAI,CAACA,GAAL,EAAU;MACR;MACA,IAAI,KAAKF,eAAL,CAAqBO,UAAzB,EAAqC;QACnC,KAAKP,eAAL,CAAqBO,UAArB,CAAgC,KAAKV,WAArC;MACD,CAFD,MAEO;QACL,KAAKkB,UAAL;MACD;;MACD;IACD;;IAED,IAAIC,GAAG,GAAG,KAAKb,UAAL,EAAV;IACA,OAAOa,GAAG,CAACd,GAAD,CAAV;IACA,KAAKa,UAAL,CAAgBC,GAAhB;EACD;;EAEDV,aAAa,CAACJ,GAAD,EAAMG,KAAN,EAAa;IACxB,IAAIW,GAAG,GAAG,KAAKb,UAAL,EAAV;IACAa,GAAG,CAACd,GAAD,CAAH,GAAWG,KAAX;IACA,KAAKU,UAAL,CAAgBC,GAAhB;EACD;;AAjFyD"}