@okta/okta-auth-js 6.6.1 → 6.7.1

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 (924) hide show
  1. package/CHANGELOG.md +28 -1
  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 +7 -11
  84. package/cjs/idx/remediate.js.map +1 -1
  85. package/cjs/idx/remediators/AuthenticatorEnrollmentData.js.map +1 -1
  86. package/cjs/idx/remediators/AuthenticatorVerificationData.js.map +1 -1
  87. package/cjs/idx/remediators/Base/AuthenticatorData.js.map +1 -1
  88. package/cjs/idx/remediators/Base/Remediator.js.map +1 -1
  89. package/cjs/idx/remediators/Base/SelectAuthenticator.js.map +1 -1
  90. package/cjs/idx/remediators/Base/VerifyAuthenticator.js.map +1 -1
  91. package/cjs/idx/remediators/ChallengeAuthenticator.js.map +1 -1
  92. package/cjs/idx/remediators/ChallengePoll.js.map +1 -1
  93. package/cjs/idx/remediators/EnrollAuthenticator.js.map +1 -1
  94. package/cjs/idx/remediators/EnrollPoll.js.map +1 -1
  95. package/cjs/idx/remediators/EnrollProfile.js.map +1 -1
  96. package/cjs/idx/remediators/EnrollmentChannelData.js.map +1 -1
  97. package/cjs/idx/remediators/GenericRemediator/GenericRemediator.js +25 -12
  98. package/cjs/idx/remediators/GenericRemediator/GenericRemediator.js.map +1 -1
  99. package/cjs/idx/remediators/GenericRemediator/index.js.map +1 -1
  100. package/cjs/idx/remediators/GenericRemediator/util.js +20 -6
  101. package/cjs/idx/remediators/GenericRemediator/util.js.map +1 -1
  102. package/cjs/idx/remediators/Identify.js.map +1 -1
  103. package/cjs/idx/remediators/ReEnrollAuthenticator.js.map +1 -1
  104. package/cjs/idx/remediators/RedirectIdp.js.map +1 -1
  105. package/cjs/idx/remediators/ResetAuthenticator.js.map +1 -1
  106. package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js.map +1 -1
  107. package/cjs/idx/remediators/SelectAuthenticatorEnroll.js.map +1 -1
  108. package/cjs/idx/remediators/SelectAuthenticatorUnlockAccount.js.map +1 -1
  109. package/cjs/idx/remediators/SelectEnrollProfile.js.map +1 -1
  110. package/cjs/idx/remediators/SelectEnrollmentChannel.js.map +1 -1
  111. package/cjs/idx/remediators/Skip.js.map +1 -1
  112. package/cjs/idx/remediators/index.js.map +1 -1
  113. package/cjs/idx/remediators/util.js.map +1 -1
  114. package/cjs/idx/run.js +1 -1
  115. package/cjs/idx/run.js.map +1 -1
  116. package/cjs/idx/startTransaction.js.map +1 -1
  117. package/cjs/idx/transactionMeta.js.map +1 -1
  118. package/cjs/idx/types/FlowIdentifier.js.map +1 -1
  119. package/cjs/idx/types/api.js.map +1 -1
  120. package/cjs/idx/types/idx-js.js.map +1 -1
  121. package/cjs/idx/types/index.js.map +1 -1
  122. package/cjs/idx/types/options.js.map +1 -1
  123. package/cjs/idx/unlockAccount.js.map +1 -1
  124. package/cjs/idx/util.js +55 -26
  125. package/cjs/idx/util.js.map +1 -1
  126. package/cjs/index.js.map +1 -1
  127. package/cjs/myaccount/api.js +43 -0
  128. package/cjs/myaccount/api.js.map +1 -0
  129. package/cjs/myaccount/emailApi.js +144 -0
  130. package/cjs/myaccount/emailApi.js.map +1 -0
  131. package/cjs/myaccount/index.js +30 -0
  132. package/cjs/myaccount/index.js.map +1 -0
  133. package/cjs/myaccount/phoneApi.js +123 -0
  134. package/cjs/myaccount/phoneApi.js.map +1 -0
  135. package/cjs/myaccount/profileApi.js +58 -0
  136. package/cjs/myaccount/profileApi.js.map +1 -0
  137. package/cjs/myaccount/request.js +168 -0
  138. package/cjs/myaccount/request.js.map +1 -0
  139. package/cjs/myaccount/transactions/Base.js +38 -0
  140. package/cjs/myaccount/transactions/Base.js.map +1 -0
  141. package/cjs/myaccount/transactions/EmailChallengeTransaction.js +58 -0
  142. package/cjs/myaccount/transactions/EmailChallengeTransaction.js.map +1 -0
  143. package/cjs/myaccount/transactions/EmailStatusTransaction.js +32 -0
  144. package/cjs/myaccount/transactions/EmailStatusTransaction.js.map +1 -0
  145. package/cjs/myaccount/transactions/EmailTransaction.js +94 -0
  146. package/cjs/myaccount/transactions/EmailTransaction.js.map +1 -0
  147. package/cjs/myaccount/transactions/PhoneTransaction.js +78 -0
  148. package/cjs/myaccount/transactions/PhoneTransaction.js.map +1 -0
  149. package/cjs/myaccount/transactions/ProfileSchemaTransaction.js +19 -0
  150. package/cjs/myaccount/transactions/ProfileSchemaTransaction.js.map +1 -0
  151. package/cjs/myaccount/transactions/ProfileTransaction.js +26 -0
  152. package/cjs/myaccount/transactions/ProfileTransaction.js.map +1 -0
  153. package/cjs/myaccount/transactions/index.js +61 -0
  154. package/cjs/myaccount/transactions/index.js.map +1 -0
  155. package/cjs/myaccount/types.js +64 -0
  156. package/cjs/myaccount/types.js.map +1 -0
  157. package/cjs/oidc/decodeToken.js.map +1 -1
  158. package/cjs/oidc/endpoints/authorize.js.map +1 -1
  159. package/cjs/oidc/endpoints/index.js.map +1 -1
  160. package/cjs/oidc/endpoints/token.js.map +1 -1
  161. package/cjs/oidc/endpoints/well-known.js.map +1 -1
  162. package/cjs/oidc/exchangeCodeForTokens.js.map +1 -1
  163. package/cjs/oidc/getToken.js.map +1 -1
  164. package/cjs/oidc/getUserInfo.js.map +1 -1
  165. package/cjs/oidc/getWithPopup.js.map +1 -1
  166. package/cjs/oidc/getWithRedirect.js.map +1 -1
  167. package/cjs/oidc/getWithoutPrompt.js.map +1 -1
  168. package/cjs/oidc/handleOAuthResponse.js.map +1 -1
  169. package/cjs/oidc/index.js.map +1 -1
  170. package/cjs/oidc/parseFromUrl.js.map +1 -1
  171. package/cjs/oidc/renewToken.js.map +1 -1
  172. package/cjs/oidc/renewTokens.js.map +1 -1
  173. package/cjs/oidc/renewTokensWithRefresh.js.map +1 -1
  174. package/cjs/oidc/revokeToken.js.map +1 -1
  175. package/cjs/oidc/util/browser.js.map +1 -1
  176. package/cjs/oidc/util/defaultTokenParams.js.map +1 -1
  177. package/cjs/oidc/util/errors.js.map +1 -1
  178. package/cjs/oidc/util/index.js.map +1 -1
  179. package/cjs/oidc/util/loginRedirect.js.map +1 -1
  180. package/cjs/oidc/util/oauth.js.map +1 -1
  181. package/cjs/oidc/util/oauthMeta.js.map +1 -1
  182. package/cjs/oidc/util/pkce.js.map +1 -1
  183. package/cjs/oidc/util/prepareTokenParams.js.map +1 -1
  184. package/cjs/oidc/util/refreshToken.js.map +1 -1
  185. package/cjs/oidc/util/urlParams.js.map +1 -1
  186. package/cjs/oidc/util/validateClaims.js.map +1 -1
  187. package/cjs/oidc/util/validateToken.js.map +1 -1
  188. package/cjs/oidc/verifyToken.js.map +1 -1
  189. package/cjs/options/browser.js.map +1 -1
  190. package/cjs/options/index.js +3 -1
  191. package/cjs/options/index.js.map +1 -1
  192. package/cjs/options/node.js.map +1 -1
  193. package/cjs/server/serverStorage.js +2 -1
  194. package/cjs/server/serverStorage.js.map +1 -1
  195. package/cjs/services/AutoRenewService.js +7 -7
  196. package/cjs/services/AutoRenewService.js.map +1 -1
  197. package/cjs/services/LeaderElectionService.js +103 -0
  198. package/cjs/services/LeaderElectionService.js.map +1 -0
  199. package/cjs/services/SyncStorageService.js +121 -39
  200. package/cjs/services/SyncStorageService.js.map +1 -1
  201. package/cjs/services/index.js +13 -0
  202. package/cjs/services/index.js.map +1 -1
  203. package/cjs/session.js.map +1 -1
  204. package/cjs/tx/AuthTransaction.js.map +1 -1
  205. package/cjs/tx/TransactionState.js.map +1 -1
  206. package/cjs/tx/api.js.map +1 -1
  207. package/cjs/tx/index.js.map +1 -1
  208. package/cjs/tx/poll.js.map +1 -1
  209. package/cjs/tx/util.js.map +1 -1
  210. package/cjs/types/AuthState.js.map +1 -1
  211. package/cjs/types/Cookies.js.map +1 -1
  212. package/cjs/types/EventEmitter.js.map +1 -1
  213. package/cjs/types/JWT.js.map +1 -1
  214. package/cjs/types/OAuth.js.map +1 -1
  215. package/cjs/types/OktaAuthOptions.js.map +1 -1
  216. package/cjs/types/Service.js.map +1 -1
  217. package/cjs/types/Storage.js.map +1 -1
  218. package/cjs/types/Token.js.map +1 -1
  219. package/cjs/types/TokenManager.js +16 -0
  220. package/cjs/types/TokenManager.js.map +1 -1
  221. package/cjs/types/Transaction.js.map +1 -1
  222. package/cjs/types/UserClaims.js.map +1 -1
  223. package/cjs/types/api.js.map +1 -1
  224. package/cjs/types/http.js.map +1 -1
  225. package/cjs/types/index.js +13 -0
  226. package/cjs/types/index.js.map +1 -1
  227. package/cjs/util/console.js +2 -1
  228. package/cjs/util/console.js.map +1 -1
  229. package/cjs/util/index.js.map +1 -1
  230. package/cjs/util/misc.js +8 -0
  231. package/cjs/util/misc.js.map +1 -1
  232. package/cjs/util/object.js.map +1 -1
  233. package/cjs/util/sharedStorage.js.map +1 -1
  234. package/cjs/util/types.js.map +1 -1
  235. package/cjs/util/url.js.map +1 -1
  236. package/dist/myaccount.umd.js +3 -0
  237. package/dist/myaccount.umd.js.LICENSE.txt +12 -0
  238. package/dist/myaccount.umd.js.map +1 -0
  239. package/dist/okta-auth-js.min.js +1 -1
  240. package/dist/okta-auth-js.min.js.map +1 -1
  241. package/dist/okta-auth-js.polyfill.js +1 -1
  242. package/dist/okta-auth-js.polyfill.js.map +1 -1
  243. package/dist/okta-auth-js.umd.js +1 -1
  244. package/dist/okta-auth-js.umd.js.map +1 -1
  245. package/esm/browser/AuthStateManager.js +161 -0
  246. package/esm/browser/AuthStateManager.js.map +1 -0
  247. package/esm/browser/OktaAuth.js +560 -0
  248. package/esm/browser/OktaAuth.js.map +1 -0
  249. package/esm/browser/OktaUserAgent.js +39 -0
  250. package/esm/browser/OktaUserAgent.js.map +1 -0
  251. package/esm/browser/PromiseQueue.js +65 -0
  252. package/esm/browser/PromiseQueue.js.map +1 -0
  253. package/esm/browser/SavedObject.js +81 -0
  254. package/esm/browser/SavedObject.js.map +1 -0
  255. package/esm/browser/ServiceManager.js +115 -0
  256. package/esm/browser/ServiceManager.js.map +1 -0
  257. package/esm/browser/StorageManager.js +148 -0
  258. package/esm/browser/StorageManager.js.map +1 -0
  259. package/esm/browser/TokenManager.js +386 -0
  260. package/esm/browser/TokenManager.js.map +1 -0
  261. package/esm/browser/TransactionManager.js +244 -0
  262. package/esm/browser/TransactionManager.js.map +1 -0
  263. package/esm/browser/_virtual/_tslib.js +41 -0
  264. package/esm/browser/_virtual/_tslib.js.map +1 -0
  265. package/esm/browser/browser/browserStorage.js +216 -0
  266. package/esm/browser/browser/browserStorage.js.map +1 -0
  267. package/esm/browser/browser/fingerprint.js +69 -0
  268. package/esm/browser/browser/fingerprint.js.map +1 -0
  269. package/esm/browser/builderUtil.js +39 -0
  270. package/esm/browser/builderUtil.js.map +1 -0
  271. package/esm/browser/clock.js +28 -0
  272. package/esm/browser/clock.js.map +1 -0
  273. package/esm/browser/constants.js +37 -0
  274. package/esm/browser/constants.js.map +1 -0
  275. package/esm/browser/crypto/base64.js +66 -0
  276. package/esm/browser/crypto/base64.js.map +1 -0
  277. package/esm/browser/crypto/browser.js +18 -0
  278. package/esm/browser/crypto/browser.js.map +1 -0
  279. package/esm/browser/crypto/index.js +17 -0
  280. package/esm/browser/crypto/index.js.map +1 -0
  281. package/esm/browser/crypto/oidcHash.js +28 -0
  282. package/esm/browser/crypto/oidcHash.js.map +1 -0
  283. package/esm/browser/crypto/verifyToken.js +38 -0
  284. package/esm/browser/crypto/verifyToken.js.map +1 -0
  285. package/esm/browser/crypto/webauthn.js +79 -0
  286. package/esm/browser/crypto/webauthn.js.map +1 -0
  287. package/esm/browser/errors/AuthApiError.js +35 -0
  288. package/esm/browser/errors/AuthApiError.js.map +1 -0
  289. package/esm/browser/errors/AuthPollStopError.js +23 -0
  290. package/esm/browser/errors/AuthPollStopError.js.map +1 -0
  291. package/esm/browser/errors/AuthSdkError.js +31 -0
  292. package/esm/browser/errors/AuthSdkError.js.map +1 -0
  293. package/esm/browser/errors/CustomError.js +21 -0
  294. package/esm/browser/errors/CustomError.js.map +1 -0
  295. package/esm/browser/errors/OAuthError.js +27 -0
  296. package/esm/browser/errors/OAuthError.js.map +1 -0
  297. package/esm/browser/errors/index.js +26 -0
  298. package/esm/browser/errors/index.js.map +1 -0
  299. package/esm/browser/features.js +67 -0
  300. package/esm/browser/features.js.map +1 -0
  301. package/esm/browser/fetch/fetchRequest.js +90 -0
  302. package/esm/browser/fetch/fetchRequest.js.map +1 -0
  303. package/esm/browser/http/headers.js +19 -0
  304. package/esm/browser/http/headers.js.map +1 -0
  305. package/esm/browser/http/request.js +133 -0
  306. package/esm/browser/http/request.js.map +1 -0
  307. package/esm/browser/idx/authenticate.js +25 -0
  308. package/esm/browser/idx/authenticate.js.map +1 -0
  309. package/esm/browser/idx/authenticator/Authenticator.js +20 -0
  310. package/esm/browser/idx/authenticator/Authenticator.js.map +1 -0
  311. package/esm/browser/idx/authenticator/OktaPassword.js +33 -0
  312. package/esm/browser/idx/authenticator/OktaPassword.js.map +1 -0
  313. package/esm/browser/idx/authenticator/OktaVerifyTotp.js +26 -0
  314. package/esm/browser/idx/authenticator/OktaVerifyTotp.js.map +1 -0
  315. package/esm/browser/idx/authenticator/SecurityQuestionEnrollment.js +45 -0
  316. package/esm/browser/idx/authenticator/SecurityQuestionEnrollment.js.map +1 -0
  317. package/esm/browser/idx/authenticator/SecurityQuestionVerification.js +42 -0
  318. package/esm/browser/idx/authenticator/SecurityQuestionVerification.js.map +1 -0
  319. package/esm/browser/idx/authenticator/VerificationCodeAuthenticator.js +33 -0
  320. package/esm/browser/idx/authenticator/VerificationCodeAuthenticator.js.map +1 -0
  321. package/esm/browser/idx/authenticator/WebauthnEnrollment.js +41 -0
  322. package/esm/browser/idx/authenticator/WebauthnEnrollment.js.map +1 -0
  323. package/esm/browser/idx/authenticator/WebauthnVerification.js +43 -0
  324. package/esm/browser/idx/authenticator/WebauthnVerification.js.map +1 -0
  325. package/esm/browser/idx/authenticator/getAuthenticator.js +51 -0
  326. package/esm/browser/idx/authenticator/getAuthenticator.js.map +1 -0
  327. package/esm/browser/idx/authenticator/util.js +55 -0
  328. package/esm/browser/idx/authenticator/util.js.map +1 -0
  329. package/esm/browser/idx/cancel.js +42 -0
  330. package/esm/browser/idx/cancel.js.map +1 -0
  331. package/esm/browser/idx/emailVerify.js +46 -0
  332. package/esm/browser/idx/emailVerify.js.map +1 -0
  333. package/esm/browser/idx/flow/AccountUnlockFlow.js +43 -0
  334. package/esm/browser/idx/flow/AccountUnlockFlow.js.map +1 -0
  335. package/esm/browser/idx/flow/AuthenticationFlow.js +49 -0
  336. package/esm/browser/idx/flow/AuthenticationFlow.js.map +1 -0
  337. package/esm/browser/idx/flow/FlowSpecification.js +56 -0
  338. package/esm/browser/idx/flow/FlowSpecification.js.map +1 -0
  339. package/esm/browser/idx/flow/PasswordRecoveryFlow.js +47 -0
  340. package/esm/browser/idx/flow/PasswordRecoveryFlow.js.map +1 -0
  341. package/esm/browser/idx/flow/RegistrationFlow.js +46 -0
  342. package/esm/browser/idx/flow/RegistrationFlow.js.map +1 -0
  343. package/esm/browser/idx/handleInteractionCodeRedirect.js +41 -0
  344. package/esm/browser/idx/handleInteractionCodeRedirect.js.map +1 -0
  345. package/esm/browser/idx/idxState/index.js +46 -0
  346. package/esm/browser/idx/idxState/index.js.map +1 -0
  347. package/esm/browser/idx/idxState/v1/actionParser.js +53 -0
  348. package/esm/browser/idx/idxState/v1/actionParser.js.map +1 -0
  349. package/esm/browser/idx/idxState/v1/generateIdxAction.js +65 -0
  350. package/esm/browser/idx/idxState/v1/generateIdxAction.js.map +1 -0
  351. package/esm/browser/idx/idxState/v1/idxResponseParser.js +95 -0
  352. package/esm/browser/idx/idxState/v1/idxResponseParser.js.map +1 -0
  353. package/esm/browser/idx/idxState/v1/makeIdxState.js +46 -0
  354. package/esm/browser/idx/idxState/v1/makeIdxState.js.map +1 -0
  355. package/esm/browser/idx/idxState/v1/parsers.js +20 -0
  356. package/esm/browser/idx/idxState/v1/parsers.js.map +1 -0
  357. package/esm/browser/idx/idxState/v1/remediationParser.js +25 -0
  358. package/esm/browser/idx/idxState/v1/remediationParser.js.map +1 -0
  359. package/esm/browser/idx/interact.js +62 -0
  360. package/esm/browser/idx/interact.js.map +1 -0
  361. package/esm/browser/idx/introspect.js +68 -0
  362. package/esm/browser/idx/introspect.js.map +1 -0
  363. package/esm/browser/idx/poll.js +52 -0
  364. package/esm/browser/idx/poll.js.map +1 -0
  365. package/esm/browser/idx/proceed.js +34 -0
  366. package/esm/browser/idx/proceed.js.map +1 -0
  367. package/esm/browser/idx/recoverPassword.js +41 -0
  368. package/esm/browser/idx/recoverPassword.js.map +1 -0
  369. package/esm/browser/idx/register.js +36 -0
  370. package/esm/browser/idx/register.js.map +1 -0
  371. package/esm/browser/idx/remediate.js +134 -0
  372. package/esm/browser/idx/remediate.js.map +1 -0
  373. package/esm/browser/idx/remediators/AuthenticatorEnrollmentData.js +48 -0
  374. package/esm/browser/idx/remediators/AuthenticatorEnrollmentData.js.map +1 -0
  375. package/esm/browser/idx/remediators/AuthenticatorVerificationData.js +71 -0
  376. package/esm/browser/idx/remediators/AuthenticatorVerificationData.js.map +1 -0
  377. package/esm/browser/idx/remediators/Base/AuthenticatorData.js +82 -0
  378. package/esm/browser/idx/remediators/Base/AuthenticatorData.js.map +1 -0
  379. package/esm/browser/idx/remediators/Base/Remediator.js +177 -0
  380. package/esm/browser/idx/remediators/Base/Remediator.js.map +1 -0
  381. package/esm/browser/idx/remediators/Base/SelectAuthenticator.js +90 -0
  382. package/esm/browser/idx/remediators/Base/SelectAuthenticator.js.map +1 -0
  383. package/esm/browser/idx/remediators/Base/VerifyAuthenticator.js +44 -0
  384. package/esm/browser/idx/remediators/Base/VerifyAuthenticator.js.map +1 -0
  385. package/esm/browser/idx/remediators/ChallengeAuthenticator.js +20 -0
  386. package/esm/browser/idx/remediators/ChallengeAuthenticator.js.map +1 -0
  387. package/esm/browser/idx/remediators/ChallengePoll.js +23 -0
  388. package/esm/browser/idx/remediators/ChallengePoll.js.map +1 -0
  389. package/esm/browser/idx/remediators/EnrollAuthenticator.js +20 -0
  390. package/esm/browser/idx/remediators/EnrollAuthenticator.js.map +1 -0
  391. package/esm/browser/idx/remediators/EnrollPoll.js +38 -0
  392. package/esm/browser/idx/remediators/EnrollPoll.js.map +1 -0
  393. package/esm/browser/idx/remediators/EnrollProfile.js +52 -0
  394. package/esm/browser/idx/remediators/EnrollProfile.js.map +1 -0
  395. package/esm/browser/idx/remediators/EnrollmentChannelData.js +49 -0
  396. package/esm/browser/idx/remediators/EnrollmentChannelData.js.map +1 -0
  397. package/esm/browser/idx/remediators/GenericRemediator/GenericRemediator.js +60 -0
  398. package/esm/browser/idx/remediators/GenericRemediator/GenericRemediator.js.map +1 -0
  399. package/esm/browser/idx/remediators/GenericRemediator/util.js +50 -0
  400. package/esm/browser/idx/remediators/GenericRemediator/util.js.map +1 -0
  401. package/esm/browser/idx/remediators/Identify.js +40 -0
  402. package/esm/browser/idx/remediators/Identify.js.map +1 -0
  403. package/esm/browser/idx/remediators/ReEnrollAuthenticator.js +34 -0
  404. package/esm/browser/idx/remediators/ReEnrollAuthenticator.js.map +1 -0
  405. package/esm/browser/idx/remediators/RedirectIdp.js +32 -0
  406. package/esm/browser/idx/remediators/RedirectIdp.js.map +1 -0
  407. package/esm/browser/idx/remediators/ResetAuthenticator.js +20 -0
  408. package/esm/browser/idx/remediators/ResetAuthenticator.js.map +1 -0
  409. package/esm/browser/idx/remediators/SelectAuthenticatorAuthenticate.js +35 -0
  410. package/esm/browser/idx/remediators/SelectAuthenticatorAuthenticate.js.map +1 -0
  411. package/esm/browser/idx/remediators/SelectAuthenticatorEnroll.js +20 -0
  412. package/esm/browser/idx/remediators/SelectAuthenticatorEnroll.js.map +1 -0
  413. package/esm/browser/idx/remediators/SelectAuthenticatorUnlockAccount.js +44 -0
  414. package/esm/browser/idx/remediators/SelectAuthenticatorUnlockAccount.js.map +1 -0
  415. package/esm/browser/idx/remediators/SelectEnrollProfile.js +23 -0
  416. package/esm/browser/idx/remediators/SelectEnrollProfile.js.map +1 -0
  417. package/esm/browser/idx/remediators/SelectEnrollmentChannel.js +50 -0
  418. package/esm/browser/idx/remediators/SelectEnrollmentChannel.js.map +1 -0
  419. package/esm/browser/idx/remediators/Skip.js +23 -0
  420. package/esm/browser/idx/remediators/Skip.js.map +1 -0
  421. package/esm/browser/idx/remediators/index.js +33 -0
  422. package/esm/browser/idx/remediators/index.js.map +1 -0
  423. package/esm/browser/idx/remediators/util.js +34 -0
  424. package/esm/browser/idx/remediators/util.js.map +1 -0
  425. package/esm/browser/idx/run.js +245 -0
  426. package/esm/browser/idx/run.js.map +1 -0
  427. package/esm/browser/idx/startTransaction.js +21 -0
  428. package/esm/browser/idx/startTransaction.js.map +1 -0
  429. package/esm/browser/idx/transactionMeta.js +110 -0
  430. package/esm/browser/idx/transactionMeta.js.map +1 -0
  431. package/esm/browser/idx/types/api.js +43 -0
  432. package/esm/browser/idx/types/api.js.map +1 -0
  433. package/esm/browser/idx/types/idx-js.js +21 -0
  434. package/esm/browser/idx/types/idx-js.js.map +1 -0
  435. package/esm/browser/idx/unlockAccount.js +32 -0
  436. package/esm/browser/idx/unlockAccount.js.map +1 -0
  437. package/esm/browser/idx/util.js +223 -0
  438. package/esm/browser/idx/util.js.map +1 -0
  439. package/esm/browser/index.js +91 -0
  440. package/esm/browser/index.js.map +1 -0
  441. package/esm/browser/myaccount/emailApi.js +86 -0
  442. package/esm/browser/myaccount/emailApi.js.map +1 -0
  443. package/esm/browser/myaccount/myaccount/index.js +24 -0
  444. package/esm/browser/myaccount/myaccount/index.js.map +1 -0
  445. package/esm/browser/myaccount/phoneApi.js +76 -0
  446. package/esm/browser/myaccount/phoneApi.js.map +1 -0
  447. package/esm/browser/myaccount/profileApi.js +46 -0
  448. package/esm/browser/myaccount/profileApi.js.map +1 -0
  449. package/esm/browser/myaccount/request.js +121 -0
  450. package/esm/browser/myaccount/request.js.map +1 -0
  451. package/esm/browser/myaccount/transactions/Base.js +32 -0
  452. package/esm/browser/myaccount/transactions/Base.js.map +1 -0
  453. package/esm/browser/myaccount/transactions/EmailChallengeTransaction.js +48 -0
  454. package/esm/browser/myaccount/transactions/EmailChallengeTransaction.js.map +1 -0
  455. package/esm/browser/myaccount/transactions/EmailStatusTransaction.js +28 -0
  456. package/esm/browser/myaccount/transactions/EmailStatusTransaction.js.map +1 -0
  457. package/esm/browser/myaccount/transactions/EmailTransaction.js +81 -0
  458. package/esm/browser/myaccount/transactions/EmailTransaction.js.map +1 -0
  459. package/esm/browser/myaccount/transactions/PhoneTransaction.js +67 -0
  460. package/esm/browser/myaccount/transactions/PhoneTransaction.js.map +1 -0
  461. package/esm/browser/myaccount/transactions/ProfileSchemaTransaction.js +23 -0
  462. package/esm/browser/myaccount/transactions/ProfileSchemaTransaction.js.map +1 -0
  463. package/esm/browser/myaccount/transactions/ProfileTransaction.js +26 -0
  464. package/esm/browser/myaccount/transactions/ProfileTransaction.js.map +1 -0
  465. package/esm/browser/myaccount/types.js +25 -0
  466. package/esm/browser/myaccount/types.js.map +1 -0
  467. package/esm/browser/oidc/decodeToken.js +33 -0
  468. package/esm/browser/oidc/decodeToken.js.map +1 -0
  469. package/esm/browser/oidc/endpoints/authorize.js +63 -0
  470. package/esm/browser/oidc/endpoints/authorize.js.map +1 -0
  471. package/esm/browser/oidc/endpoints/token.js +83 -0
  472. package/esm/browser/oidc/endpoints/token.js.map +1 -0
  473. package/esm/browser/oidc/endpoints/well-known.js +55 -0
  474. package/esm/browser/oidc/endpoints/well-known.js.map +1 -0
  475. package/esm/browser/oidc/exchangeCodeForTokens.js +58 -0
  476. package/esm/browser/oidc/exchangeCodeForTokens.js.map +1 -0
  477. package/esm/browser/oidc/getToken.js +117 -0
  478. package/esm/browser/oidc/getToken.js.map +1 -0
  479. package/esm/browser/oidc/getUserInfo.js +69 -0
  480. package/esm/browser/oidc/getUserInfo.js.map +1 -0
  481. package/esm/browser/oidc/getWithPopup.js +35 -0
  482. package/esm/browser/oidc/getWithPopup.js.map +1 -0
  483. package/esm/browser/oidc/getWithRedirect.js +34 -0
  484. package/esm/browser/oidc/getWithRedirect.js.map +1 -0
  485. package/esm/browser/oidc/getWithoutPrompt.js +31 -0
  486. package/esm/browser/oidc/getWithoutPrompt.js.map +1 -0
  487. package/esm/browser/oidc/handleOAuthResponse.js +119 -0
  488. package/esm/browser/oidc/handleOAuthResponse.js.map +1 -0
  489. package/esm/browser/oidc/parseFromUrl.js +116 -0
  490. package/esm/browser/oidc/parseFromUrl.js.map +1 -0
  491. package/esm/browser/oidc/renewToken.js +67 -0
  492. package/esm/browser/oidc/renewToken.js.map +1 -0
  493. package/esm/browser/oidc/renewTokens.js +58 -0
  494. package/esm/browser/oidc/renewTokens.js.map +1 -0
  495. package/esm/browser/oidc/renewTokensWithRefresh.js +47 -0
  496. package/esm/browser/oidc/renewTokensWithRefresh.js.map +1 -0
  497. package/esm/browser/oidc/revokeToken.js +49 -0
  498. package/esm/browser/oidc/revokeToken.js.map +1 -0
  499. package/esm/browser/oidc/util/browser.js +69 -0
  500. package/esm/browser/oidc/util/browser.js.map +1 -0
  501. package/esm/browser/oidc/util/defaultTokenParams.js +34 -0
  502. package/esm/browser/oidc/util/defaultTokenParams.js.map +1 -0
  503. package/esm/browser/oidc/util/errors.js +38 -0
  504. package/esm/browser/oidc/util/errors.js.map +1 -0
  505. package/esm/browser/oidc/util/loginRedirect.js +66 -0
  506. package/esm/browser/oidc/util/loginRedirect.js.map +1 -0
  507. package/esm/browser/oidc/util/oauth.js +65 -0
  508. package/esm/browser/oidc/util/oauth.js.map +1 -0
  509. package/esm/browser/oidc/util/oauthMeta.js +38 -0
  510. package/esm/browser/oidc/util/oauthMeta.js.map +1 -0
  511. package/esm/browser/oidc/util/pkce.js +48 -0
  512. package/esm/browser/oidc/util/pkce.js.map +1 -0
  513. package/esm/browser/oidc/util/prepareTokenParams.js +65 -0
  514. package/esm/browser/oidc/util/prepareTokenParams.js.map +1 -0
  515. package/esm/browser/oidc/util/refreshToken.js +33 -0
  516. package/esm/browser/oidc/util/refreshToken.js.map +1 -0
  517. package/esm/browser/oidc/util/urlParams.js +43 -0
  518. package/esm/browser/oidc/util/urlParams.js.map +1 -0
  519. package/esm/browser/oidc/util/validateClaims.js +48 -0
  520. package/esm/browser/oidc/util/validateClaims.js.map +1 -0
  521. package/esm/browser/oidc/util/validateToken.js +34 -0
  522. package/esm/browser/oidc/util/validateToken.js.map +1 -0
  523. package/esm/browser/oidc/verifyToken.js +54 -0
  524. package/esm/browser/oidc/verifyToken.js.map +1 -0
  525. package/esm/browser/options/browser.js +77 -0
  526. package/esm/browser/options/browser.js.map +1 -0
  527. package/esm/browser/options/index.js +85 -0
  528. package/esm/browser/options/index.js.map +1 -0
  529. package/esm/browser/services/AutoRenewService.js +77 -0
  530. package/esm/browser/services/AutoRenewService.js.map +1 -0
  531. package/esm/browser/services/LeaderElectionService.js +74 -0
  532. package/esm/browser/services/LeaderElectionService.js.map +1 -0
  533. package/esm/browser/services/SyncStorageService.js +130 -0
  534. package/esm/browser/services/SyncStorageService.js.map +1 -0
  535. package/esm/browser/session.js +66 -0
  536. package/esm/browser/session.js.map +1 -0
  537. package/esm/browser/tx/AuthTransaction.js +174 -0
  538. package/esm/browser/tx/AuthTransaction.js.map +1 -0
  539. package/esm/browser/tx/api.js +72 -0
  540. package/esm/browser/tx/api.js.map +1 -0
  541. package/esm/browser/tx/poll.js +117 -0
  542. package/esm/browser/tx/poll.js.map +1 -0
  543. package/esm/browser/tx/util.js +26 -0
  544. package/esm/browser/tx/util.js.map +1 -0
  545. package/esm/browser/types/Token.js +32 -0
  546. package/esm/browser/types/Token.js.map +1 -0
  547. package/esm/browser/types/TokenManager.js +21 -0
  548. package/esm/browser/types/TokenManager.js.map +1 -0
  549. package/esm/browser/types/Transaction.js +52 -0
  550. package/esm/browser/types/Transaction.js.map +1 -0
  551. package/esm/browser/util/console.js +50 -0
  552. package/esm/browser/util/console.js.map +1 -0
  553. package/esm/browser/util/misc.js +39 -0
  554. package/esm/browser/util/misc.js.map +1 -0
  555. package/esm/browser/util/object.js +98 -0
  556. package/esm/browser/util/object.js.map +1 -0
  557. package/esm/browser/util/sharedStorage.js +56 -0
  558. package/esm/browser/util/sharedStorage.js.map +1 -0
  559. package/esm/browser/util/types.js +30 -0
  560. package/esm/browser/util/types.js.map +1 -0
  561. package/esm/browser/util/url.js +57 -0
  562. package/esm/browser/util/url.js.map +1 -0
  563. package/esm/node/AuthStateManager.js +161 -0
  564. package/esm/node/AuthStateManager.js.map +1 -0
  565. package/esm/node/OktaAuth.js +560 -0
  566. package/esm/node/OktaAuth.js.map +1 -0
  567. package/esm/node/OktaUserAgent.js +39 -0
  568. package/esm/node/OktaUserAgent.js.map +1 -0
  569. package/esm/node/PromiseQueue.js +65 -0
  570. package/esm/node/PromiseQueue.js.map +1 -0
  571. package/esm/node/SavedObject.js +81 -0
  572. package/esm/node/SavedObject.js.map +1 -0
  573. package/esm/node/ServiceManager.js +115 -0
  574. package/esm/node/ServiceManager.js.map +1 -0
  575. package/esm/node/StorageManager.js +148 -0
  576. package/esm/node/StorageManager.js.map +1 -0
  577. package/esm/node/TokenManager.js +387 -0
  578. package/esm/node/TokenManager.js.map +1 -0
  579. package/esm/node/TransactionManager.js +244 -0
  580. package/esm/node/TransactionManager.js.map +1 -0
  581. package/esm/node/_virtual/_tslib.js +41 -0
  582. package/esm/node/_virtual/_tslib.js.map +1 -0
  583. package/esm/node/browser/browserStorage.js +216 -0
  584. package/esm/node/browser/browserStorage.js.map +1 -0
  585. package/esm/node/browser/fingerprint.js +70 -0
  586. package/esm/node/browser/fingerprint.js.map +1 -0
  587. package/esm/node/builderUtil.js +39 -0
  588. package/esm/node/builderUtil.js.map +1 -0
  589. package/esm/node/clock.js +28 -0
  590. package/esm/node/clock.js.map +1 -0
  591. package/esm/node/constants.js +37 -0
  592. package/esm/node/constants.js.map +1 -0
  593. package/esm/node/crypto/base64.js +66 -0
  594. package/esm/node/crypto/base64.js.map +1 -0
  595. package/esm/node/crypto/index.js +17 -0
  596. package/esm/node/crypto/index.js.map +1 -0
  597. package/esm/node/crypto/node.js +48 -0
  598. package/esm/node/crypto/node.js.map +1 -0
  599. package/esm/node/crypto/oidcHash.js +28 -0
  600. package/esm/node/crypto/oidcHash.js.map +1 -0
  601. package/esm/node/crypto/verifyToken.js +38 -0
  602. package/esm/node/crypto/verifyToken.js.map +1 -0
  603. package/esm/node/crypto/webauthn.js +79 -0
  604. package/esm/node/crypto/webauthn.js.map +1 -0
  605. package/esm/node/errors/AuthApiError.js +35 -0
  606. package/esm/node/errors/AuthApiError.js.map +1 -0
  607. package/esm/node/errors/AuthPollStopError.js +23 -0
  608. package/esm/node/errors/AuthPollStopError.js.map +1 -0
  609. package/esm/node/errors/AuthSdkError.js +31 -0
  610. package/esm/node/errors/AuthSdkError.js.map +1 -0
  611. package/esm/node/errors/CustomError.js +21 -0
  612. package/esm/node/errors/CustomError.js.map +1 -0
  613. package/esm/node/errors/OAuthError.js +27 -0
  614. package/esm/node/errors/OAuthError.js.map +1 -0
  615. package/esm/node/errors/index.js +26 -0
  616. package/esm/node/errors/index.js.map +1 -0
  617. package/esm/node/features.js +67 -0
  618. package/esm/node/features.js.map +1 -0
  619. package/esm/node/fetch/fetchRequest.js +90 -0
  620. package/esm/node/fetch/fetchRequest.js.map +1 -0
  621. package/esm/node/http/headers.js +19 -0
  622. package/esm/node/http/headers.js.map +1 -0
  623. package/esm/node/http/request.js +133 -0
  624. package/esm/node/http/request.js.map +1 -0
  625. package/esm/node/idx/authenticate.js +25 -0
  626. package/esm/node/idx/authenticate.js.map +1 -0
  627. package/esm/node/idx/authenticator/Authenticator.js +20 -0
  628. package/esm/node/idx/authenticator/Authenticator.js.map +1 -0
  629. package/esm/node/idx/authenticator/OktaPassword.js +33 -0
  630. package/esm/node/idx/authenticator/OktaPassword.js.map +1 -0
  631. package/esm/node/idx/authenticator/OktaVerifyTotp.js +26 -0
  632. package/esm/node/idx/authenticator/OktaVerifyTotp.js.map +1 -0
  633. package/esm/node/idx/authenticator/SecurityQuestionEnrollment.js +45 -0
  634. package/esm/node/idx/authenticator/SecurityQuestionEnrollment.js.map +1 -0
  635. package/esm/node/idx/authenticator/SecurityQuestionVerification.js +42 -0
  636. package/esm/node/idx/authenticator/SecurityQuestionVerification.js.map +1 -0
  637. package/esm/node/idx/authenticator/VerificationCodeAuthenticator.js +33 -0
  638. package/esm/node/idx/authenticator/VerificationCodeAuthenticator.js.map +1 -0
  639. package/esm/node/idx/authenticator/WebauthnEnrollment.js +41 -0
  640. package/esm/node/idx/authenticator/WebauthnEnrollment.js.map +1 -0
  641. package/esm/node/idx/authenticator/WebauthnVerification.js +43 -0
  642. package/esm/node/idx/authenticator/WebauthnVerification.js.map +1 -0
  643. package/esm/node/idx/authenticator/getAuthenticator.js +51 -0
  644. package/esm/node/idx/authenticator/getAuthenticator.js.map +1 -0
  645. package/esm/node/idx/authenticator/util.js +55 -0
  646. package/esm/node/idx/authenticator/util.js.map +1 -0
  647. package/esm/node/idx/cancel.js +42 -0
  648. package/esm/node/idx/cancel.js.map +1 -0
  649. package/esm/node/idx/emailVerify.js +46 -0
  650. package/esm/node/idx/emailVerify.js.map +1 -0
  651. package/esm/node/idx/flow/AccountUnlockFlow.js +43 -0
  652. package/esm/node/idx/flow/AccountUnlockFlow.js.map +1 -0
  653. package/esm/node/idx/flow/AuthenticationFlow.js +49 -0
  654. package/esm/node/idx/flow/AuthenticationFlow.js.map +1 -0
  655. package/esm/node/idx/flow/FlowSpecification.js +56 -0
  656. package/esm/node/idx/flow/FlowSpecification.js.map +1 -0
  657. package/esm/node/idx/flow/PasswordRecoveryFlow.js +47 -0
  658. package/esm/node/idx/flow/PasswordRecoveryFlow.js.map +1 -0
  659. package/esm/node/idx/flow/RegistrationFlow.js +46 -0
  660. package/esm/node/idx/flow/RegistrationFlow.js.map +1 -0
  661. package/esm/node/idx/handleInteractionCodeRedirect.js +41 -0
  662. package/esm/node/idx/handleInteractionCodeRedirect.js.map +1 -0
  663. package/esm/node/idx/idxState/index.js +46 -0
  664. package/esm/node/idx/idxState/index.js.map +1 -0
  665. package/esm/node/idx/idxState/v1/actionParser.js +53 -0
  666. package/esm/node/idx/idxState/v1/actionParser.js.map +1 -0
  667. package/esm/node/idx/idxState/v1/generateIdxAction.js +65 -0
  668. package/esm/node/idx/idxState/v1/generateIdxAction.js.map +1 -0
  669. package/esm/node/idx/idxState/v1/idxResponseParser.js +95 -0
  670. package/esm/node/idx/idxState/v1/idxResponseParser.js.map +1 -0
  671. package/esm/node/idx/idxState/v1/makeIdxState.js +46 -0
  672. package/esm/node/idx/idxState/v1/makeIdxState.js.map +1 -0
  673. package/esm/node/idx/idxState/v1/parsers.js +20 -0
  674. package/esm/node/idx/idxState/v1/parsers.js.map +1 -0
  675. package/esm/node/idx/idxState/v1/remediationParser.js +25 -0
  676. package/esm/node/idx/idxState/v1/remediationParser.js.map +1 -0
  677. package/esm/node/idx/interact.js +63 -0
  678. package/esm/node/idx/interact.js.map +1 -0
  679. package/esm/node/idx/introspect.js +69 -0
  680. package/esm/node/idx/introspect.js.map +1 -0
  681. package/esm/node/idx/poll.js +52 -0
  682. package/esm/node/idx/poll.js.map +1 -0
  683. package/esm/node/idx/proceed.js +34 -0
  684. package/esm/node/idx/proceed.js.map +1 -0
  685. package/esm/node/idx/recoverPassword.js +41 -0
  686. package/esm/node/idx/recoverPassword.js.map +1 -0
  687. package/esm/node/idx/register.js +36 -0
  688. package/esm/node/idx/register.js.map +1 -0
  689. package/esm/node/idx/remediate.js +134 -0
  690. package/esm/node/idx/remediate.js.map +1 -0
  691. package/esm/node/idx/remediators/AuthenticatorEnrollmentData.js +48 -0
  692. package/esm/node/idx/remediators/AuthenticatorEnrollmentData.js.map +1 -0
  693. package/esm/node/idx/remediators/AuthenticatorVerificationData.js +71 -0
  694. package/esm/node/idx/remediators/AuthenticatorVerificationData.js.map +1 -0
  695. package/esm/node/idx/remediators/Base/AuthenticatorData.js +82 -0
  696. package/esm/node/idx/remediators/Base/AuthenticatorData.js.map +1 -0
  697. package/esm/node/idx/remediators/Base/Remediator.js +177 -0
  698. package/esm/node/idx/remediators/Base/Remediator.js.map +1 -0
  699. package/esm/node/idx/remediators/Base/SelectAuthenticator.js +90 -0
  700. package/esm/node/idx/remediators/Base/SelectAuthenticator.js.map +1 -0
  701. package/esm/node/idx/remediators/Base/VerifyAuthenticator.js +44 -0
  702. package/esm/node/idx/remediators/Base/VerifyAuthenticator.js.map +1 -0
  703. package/esm/node/idx/remediators/ChallengeAuthenticator.js +20 -0
  704. package/esm/node/idx/remediators/ChallengeAuthenticator.js.map +1 -0
  705. package/esm/node/idx/remediators/ChallengePoll.js +23 -0
  706. package/esm/node/idx/remediators/ChallengePoll.js.map +1 -0
  707. package/esm/node/idx/remediators/EnrollAuthenticator.js +20 -0
  708. package/esm/node/idx/remediators/EnrollAuthenticator.js.map +1 -0
  709. package/esm/node/idx/remediators/EnrollPoll.js +38 -0
  710. package/esm/node/idx/remediators/EnrollPoll.js.map +1 -0
  711. package/esm/node/idx/remediators/EnrollProfile.js +52 -0
  712. package/esm/node/idx/remediators/EnrollProfile.js.map +1 -0
  713. package/esm/node/idx/remediators/EnrollmentChannelData.js +49 -0
  714. package/esm/node/idx/remediators/EnrollmentChannelData.js.map +1 -0
  715. package/esm/node/idx/remediators/GenericRemediator/GenericRemediator.js +60 -0
  716. package/esm/node/idx/remediators/GenericRemediator/GenericRemediator.js.map +1 -0
  717. package/esm/node/idx/remediators/GenericRemediator/util.js +50 -0
  718. package/esm/node/idx/remediators/GenericRemediator/util.js.map +1 -0
  719. package/esm/node/idx/remediators/Identify.js +40 -0
  720. package/esm/node/idx/remediators/Identify.js.map +1 -0
  721. package/esm/node/idx/remediators/ReEnrollAuthenticator.js +34 -0
  722. package/esm/node/idx/remediators/ReEnrollAuthenticator.js.map +1 -0
  723. package/esm/node/idx/remediators/RedirectIdp.js +32 -0
  724. package/esm/node/idx/remediators/RedirectIdp.js.map +1 -0
  725. package/esm/node/idx/remediators/ResetAuthenticator.js +20 -0
  726. package/esm/node/idx/remediators/ResetAuthenticator.js.map +1 -0
  727. package/esm/node/idx/remediators/SelectAuthenticatorAuthenticate.js +35 -0
  728. package/esm/node/idx/remediators/SelectAuthenticatorAuthenticate.js.map +1 -0
  729. package/esm/node/idx/remediators/SelectAuthenticatorEnroll.js +20 -0
  730. package/esm/node/idx/remediators/SelectAuthenticatorEnroll.js.map +1 -0
  731. package/esm/node/idx/remediators/SelectAuthenticatorUnlockAccount.js +44 -0
  732. package/esm/node/idx/remediators/SelectAuthenticatorUnlockAccount.js.map +1 -0
  733. package/esm/node/idx/remediators/SelectEnrollProfile.js +23 -0
  734. package/esm/node/idx/remediators/SelectEnrollProfile.js.map +1 -0
  735. package/esm/node/idx/remediators/SelectEnrollmentChannel.js +50 -0
  736. package/esm/node/idx/remediators/SelectEnrollmentChannel.js.map +1 -0
  737. package/esm/node/idx/remediators/Skip.js +23 -0
  738. package/esm/node/idx/remediators/Skip.js.map +1 -0
  739. package/esm/node/idx/remediators/index.js +33 -0
  740. package/esm/node/idx/remediators/index.js.map +1 -0
  741. package/esm/node/idx/remediators/util.js +34 -0
  742. package/esm/node/idx/remediators/util.js.map +1 -0
  743. package/esm/node/idx/run.js +245 -0
  744. package/esm/node/idx/run.js.map +1 -0
  745. package/esm/node/idx/startTransaction.js +21 -0
  746. package/esm/node/idx/startTransaction.js.map +1 -0
  747. package/esm/node/idx/transactionMeta.js +111 -0
  748. package/esm/node/idx/transactionMeta.js.map +1 -0
  749. package/esm/node/idx/types/api.js +43 -0
  750. package/esm/node/idx/types/api.js.map +1 -0
  751. package/esm/node/idx/types/idx-js.js +21 -0
  752. package/esm/node/idx/types/idx-js.js.map +1 -0
  753. package/esm/node/idx/unlockAccount.js +32 -0
  754. package/esm/node/idx/unlockAccount.js.map +1 -0
  755. package/esm/node/idx/util.js +223 -0
  756. package/esm/node/idx/util.js.map +1 -0
  757. package/esm/node/index.js +91 -0
  758. package/esm/node/index.js.map +1 -0
  759. package/esm/node/myaccount/emailApi.js +86 -0
  760. package/esm/node/myaccount/emailApi.js.map +1 -0
  761. package/esm/node/myaccount/myaccount/index.js +24 -0
  762. package/esm/node/myaccount/myaccount/index.js.map +1 -0
  763. package/esm/node/myaccount/phoneApi.js +76 -0
  764. package/esm/node/myaccount/phoneApi.js.map +1 -0
  765. package/esm/node/myaccount/profileApi.js +46 -0
  766. package/esm/node/myaccount/profileApi.js.map +1 -0
  767. package/esm/node/myaccount/request.js +121 -0
  768. package/esm/node/myaccount/request.js.map +1 -0
  769. package/esm/node/myaccount/transactions/Base.js +32 -0
  770. package/esm/node/myaccount/transactions/Base.js.map +1 -0
  771. package/esm/node/myaccount/transactions/EmailChallengeTransaction.js +48 -0
  772. package/esm/node/myaccount/transactions/EmailChallengeTransaction.js.map +1 -0
  773. package/esm/node/myaccount/transactions/EmailStatusTransaction.js +28 -0
  774. package/esm/node/myaccount/transactions/EmailStatusTransaction.js.map +1 -0
  775. package/esm/node/myaccount/transactions/EmailTransaction.js +81 -0
  776. package/esm/node/myaccount/transactions/EmailTransaction.js.map +1 -0
  777. package/esm/node/myaccount/transactions/PhoneTransaction.js +67 -0
  778. package/esm/node/myaccount/transactions/PhoneTransaction.js.map +1 -0
  779. package/esm/node/myaccount/transactions/ProfileSchemaTransaction.js +23 -0
  780. package/esm/node/myaccount/transactions/ProfileSchemaTransaction.js.map +1 -0
  781. package/esm/node/myaccount/transactions/ProfileTransaction.js +26 -0
  782. package/esm/node/myaccount/transactions/ProfileTransaction.js.map +1 -0
  783. package/esm/node/myaccount/types.js +25 -0
  784. package/esm/node/myaccount/types.js.map +1 -0
  785. package/esm/node/oidc/decodeToken.js +34 -0
  786. package/esm/node/oidc/decodeToken.js.map +1 -0
  787. package/esm/node/oidc/endpoints/authorize.js +63 -0
  788. package/esm/node/oidc/endpoints/authorize.js.map +1 -0
  789. package/esm/node/oidc/endpoints/token.js +83 -0
  790. package/esm/node/oidc/endpoints/token.js.map +1 -0
  791. package/esm/node/oidc/endpoints/well-known.js +55 -0
  792. package/esm/node/oidc/endpoints/well-known.js.map +1 -0
  793. package/esm/node/oidc/exchangeCodeForTokens.js +59 -0
  794. package/esm/node/oidc/exchangeCodeForTokens.js.map +1 -0
  795. package/esm/node/oidc/getToken.js +118 -0
  796. package/esm/node/oidc/getToken.js.map +1 -0
  797. package/esm/node/oidc/getUserInfo.js +69 -0
  798. package/esm/node/oidc/getUserInfo.js.map +1 -0
  799. package/esm/node/oidc/getWithPopup.js +36 -0
  800. package/esm/node/oidc/getWithPopup.js.map +1 -0
  801. package/esm/node/oidc/getWithRedirect.js +35 -0
  802. package/esm/node/oidc/getWithRedirect.js.map +1 -0
  803. package/esm/node/oidc/getWithoutPrompt.js +31 -0
  804. package/esm/node/oidc/getWithoutPrompt.js.map +1 -0
  805. package/esm/node/oidc/handleOAuthResponse.js +120 -0
  806. package/esm/node/oidc/handleOAuthResponse.js.map +1 -0
  807. package/esm/node/oidc/parseFromUrl.js +117 -0
  808. package/esm/node/oidc/parseFromUrl.js.map +1 -0
  809. package/esm/node/oidc/renewToken.js +67 -0
  810. package/esm/node/oidc/renewToken.js.map +1 -0
  811. package/esm/node/oidc/renewTokens.js +59 -0
  812. package/esm/node/oidc/renewTokens.js.map +1 -0
  813. package/esm/node/oidc/renewTokensWithRefresh.js +47 -0
  814. package/esm/node/oidc/renewTokensWithRefresh.js.map +1 -0
  815. package/esm/node/oidc/revokeToken.js +49 -0
  816. package/esm/node/oidc/revokeToken.js.map +1 -0
  817. package/esm/node/oidc/util/browser.js +69 -0
  818. package/esm/node/oidc/util/browser.js.map +1 -0
  819. package/esm/node/oidc/util/defaultTokenParams.js +34 -0
  820. package/esm/node/oidc/util/defaultTokenParams.js.map +1 -0
  821. package/esm/node/oidc/util/errors.js +38 -0
  822. package/esm/node/oidc/util/errors.js.map +1 -0
  823. package/esm/node/oidc/util/loginRedirect.js +66 -0
  824. package/esm/node/oidc/util/loginRedirect.js.map +1 -0
  825. package/esm/node/oidc/util/oauth.js +65 -0
  826. package/esm/node/oidc/util/oauth.js.map +1 -0
  827. package/esm/node/oidc/util/oauthMeta.js +38 -0
  828. package/esm/node/oidc/util/oauthMeta.js.map +1 -0
  829. package/esm/node/oidc/util/pkce.js +48 -0
  830. package/esm/node/oidc/util/pkce.js.map +1 -0
  831. package/esm/node/oidc/util/prepareTokenParams.js +65 -0
  832. package/esm/node/oidc/util/prepareTokenParams.js.map +1 -0
  833. package/esm/node/oidc/util/refreshToken.js +33 -0
  834. package/esm/node/oidc/util/refreshToken.js.map +1 -0
  835. package/esm/node/oidc/util/urlParams.js +43 -0
  836. package/esm/node/oidc/util/urlParams.js.map +1 -0
  837. package/esm/node/oidc/util/validateClaims.js +48 -0
  838. package/esm/node/oidc/util/validateClaims.js.map +1 -0
  839. package/esm/node/oidc/util/validateToken.js +34 -0
  840. package/esm/node/oidc/util/validateToken.js.map +1 -0
  841. package/esm/node/oidc/verifyToken.js +55 -0
  842. package/esm/node/oidc/verifyToken.js.map +1 -0
  843. package/esm/node/options/index.js +85 -0
  844. package/esm/node/options/index.js.map +1 -0
  845. package/esm/node/options/node.js +41 -0
  846. package/esm/node/options/node.js.map +1 -0
  847. package/esm/node/server/serverStorage.js +82 -0
  848. package/esm/node/server/serverStorage.js.map +1 -0
  849. package/esm/node/services/AutoRenewService.js +77 -0
  850. package/esm/node/services/AutoRenewService.js.map +1 -0
  851. package/esm/node/services/LeaderElectionService.js +74 -0
  852. package/esm/node/services/LeaderElectionService.js.map +1 -0
  853. package/esm/node/services/SyncStorageService.js +130 -0
  854. package/esm/node/services/SyncStorageService.js.map +1 -0
  855. package/esm/node/session.js +66 -0
  856. package/esm/node/session.js.map +1 -0
  857. package/esm/node/tx/AuthTransaction.js +174 -0
  858. package/esm/node/tx/AuthTransaction.js.map +1 -0
  859. package/esm/node/tx/api.js +72 -0
  860. package/esm/node/tx/api.js.map +1 -0
  861. package/esm/node/tx/poll.js +117 -0
  862. package/esm/node/tx/poll.js.map +1 -0
  863. package/esm/node/tx/util.js +26 -0
  864. package/esm/node/tx/util.js.map +1 -0
  865. package/esm/node/types/Token.js +32 -0
  866. package/esm/node/types/Token.js.map +1 -0
  867. package/esm/node/types/TokenManager.js +21 -0
  868. package/esm/node/types/TokenManager.js.map +1 -0
  869. package/esm/node/types/Transaction.js +52 -0
  870. package/esm/node/types/Transaction.js.map +1 -0
  871. package/esm/node/util/console.js +50 -0
  872. package/esm/node/util/console.js.map +1 -0
  873. package/esm/node/util/misc.js +39 -0
  874. package/esm/node/util/misc.js.map +1 -0
  875. package/esm/node/util/object.js +98 -0
  876. package/esm/node/util/object.js.map +1 -0
  877. package/esm/node/util/sharedStorage.js +56 -0
  878. package/esm/node/util/sharedStorage.js.map +1 -0
  879. package/esm/node/util/types.js +30 -0
  880. package/esm/node/util/types.js.map +1 -0
  881. package/esm/node/util/url.js +57 -0
  882. package/esm/node/util/url.js.map +1 -0
  883. package/esm/package.json +3 -0
  884. package/lib/SavedObject.d.ts +1 -0
  885. package/lib/ServiceManager.d.ts +1 -7
  886. package/lib/TokenManager.d.ts +12 -10
  887. package/lib/cdnEntry.d.ts +18 -0
  888. package/lib/errors/AuthApiError.d.ts +2 -1
  889. package/lib/idx/idxState/v1/idxResponseParser.d.ts +2 -2
  890. package/lib/idx/types/idx-js.d.ts +12 -0
  891. package/lib/idx/util.d.ts +3 -3
  892. package/lib/myaccount/api.d.ts +14 -0
  893. package/lib/myaccount/emailApi.d.ts +29 -0
  894. package/lib/myaccount/index.d.ts +13 -0
  895. package/lib/myaccount/phoneApi.d.ts +25 -0
  896. package/lib/myaccount/profileApi.d.ts +13 -0
  897. package/lib/myaccount/request.d.ts +29 -0
  898. package/lib/myaccount/transactions/Base.d.ts +15 -0
  899. package/lib/myaccount/transactions/EmailChallengeTransaction.d.ts +12 -0
  900. package/lib/myaccount/transactions/EmailStatusTransaction.d.ts +9 -0
  901. package/lib/myaccount/transactions/EmailTransaction.d.ts +15 -0
  902. package/lib/myaccount/transactions/PhoneTransaction.d.ts +12 -0
  903. package/lib/myaccount/transactions/ProfileSchemaTransaction.d.ts +5 -0
  904. package/lib/myaccount/transactions/ProfileTransaction.d.ts +7 -0
  905. package/lib/myaccount/transactions/index.d.ts +7 -0
  906. package/lib/myaccount/types.d.ts +55 -0
  907. package/lib/services/AutoRenewService.d.ts +2 -2
  908. package/lib/services/LeaderElectionService.d.ts +33 -0
  909. package/lib/services/SyncStorageService.d.ts +17 -5
  910. package/lib/services/index.d.ts +1 -0
  911. package/lib/types/JWT.d.ts +4 -1
  912. package/lib/types/OktaAuthOptions.d.ts +4 -2
  913. package/lib/types/Service.d.ts +7 -4
  914. package/lib/types/Storage.d.ts +2 -0
  915. package/lib/types/TokenManager.d.ts +20 -4
  916. package/lib/types/api.d.ts +2 -1
  917. package/lib/types/index.d.ts +1 -0
  918. package/lib/util/misc.d.ts +1 -0
  919. package/package.json +42 -18
  920. package/polyfill/index.js +7 -0
  921. package/esm/esm.browser.js +0 -9834
  922. package/esm/esm.browser.js.map +0 -1
  923. package/esm/esm.node.mjs +0 -9932
  924. package/esm/esm.node.mjs.map +0 -1
@@ -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"}
@@ -10,13 +10,13 @@ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable
10
10
 
11
11
  var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/values"));
12
12
 
13
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
13
+ var _entries = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/entries"));
14
14
 
15
- var _broadcastChannel = require("broadcast-channel");
15
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
16
16
 
17
17
  var _services = require("./services");
18
18
 
19
- var _features = require("./features");
19
+ var _util = require("./util");
20
20
 
21
21
  /*!
22
22
  * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
@@ -29,24 +29,31 @@ var _features = require("./features");
29
29
  *
30
30
  * See the License for the specific language governing permissions and limitations under the License.
31
31
  */
32
+ const AUTO_RENEW = 'autoRenew';
33
+ const SYNC_STORAGE = 'syncStorage';
34
+ const LEADER_ELECTION = 'leaderElection';
35
+
32
36
  class ServiceManager {
33
37
  constructor(sdk, options = {}) {
34
- this.sdk = sdk; // TODO: backwards compatibility, remove in next major version - OKTA-473815
38
+ this.sdk = sdk;
39
+ this.onLeader = this.onLeader.bind(this); // TODO: backwards compatibility, remove in next major version - OKTA-473815
35
40
 
36
41
  const {
37
42
  autoRenew,
38
43
  autoRemove,
39
44
  syncStorage
40
45
  } = sdk.tokenManager.getOptions();
46
+ options.electionChannelName = options.electionChannelName || options.broadcastChannelName;
41
47
  this.options = (0, _assign.default)({}, ServiceManager.defaultOptions, {
42
48
  autoRenew,
43
49
  autoRemove,
44
50
  syncStorage
45
- }, options);
51
+ }, {
52
+ electionChannelName: `${sdk.options.clientId}-election`,
53
+ syncChannelName: `${sdk.options.clientId}-sync`
54
+ }, (0, _util.removeNils)(options));
46
55
  this.started = false;
47
56
  this.services = new _map.default();
48
- this.onLeaderDuplicate = this.onLeaderDuplicate.bind(this);
49
- this.onLeader = this.onLeader.bind(this);
50
57
  ServiceManager.knownServices.forEach(name => {
51
58
  const svc = this.createService(name);
52
59
 
@@ -56,54 +63,36 @@ class ServiceManager {
56
63
  });
57
64
  }
58
65
 
59
- static canUseLeaderElection() {
60
- return (0, _features.isBrowser)();
61
- }
62
-
63
- onLeader() {
66
+ async onLeader() {
64
67
  if (this.started) {
65
68
  // Start services that requires leadership
66
- this.startServices();
69
+ await this.startServices();
67
70
  }
68
71
  }
69
72
 
70
- onLeaderDuplicate() {}
71
-
72
73
  isLeader() {
73
- var _this$elector;
74
+ var _this$getService;
74
75
 
75
- return !!((_this$elector = this.elector) !== null && _this$elector !== void 0 && _this$elector.isLeader);
76
- }
77
-
78
- hasLeader() {
79
- var _this$elector2;
80
-
81
- return (_this$elector2 = this.elector) === null || _this$elector2 === void 0 ? void 0 : _this$elector2.hasLeader;
76
+ return (_this$getService = this.getService(LEADER_ELECTION)) === null || _this$getService === void 0 ? void 0 : _this$getService.isLeader();
82
77
  }
83
78
 
84
79
  isLeaderRequired() {
85
80
  var _context;
86
81
 
87
- return [...(0, _values.default)(_context = this.services).call(_context)].some(srv => srv.requiresLeadership());
82
+ return [...(0, _values.default)(_context = this.services).call(_context)].some(srv => srv.canStart() && srv.requiresLeadership());
88
83
  }
89
84
 
90
85
  async start() {
91
86
  if (this.started) {
92
87
  return; // noop if services have already started
93
- } // only start election if a leader is required
94
-
95
-
96
- if (this.isLeaderRequired()) {
97
- await this.startElector();
98
88
  }
99
89
 
100
- this.startServices();
90
+ await this.startServices();
101
91
  this.started = true;
102
92
  }
103
93
 
104
94
  async stop() {
105
- await this.stopElector();
106
- this.stopServices();
95
+ await this.stopServices();
107
96
  this.started = false;
108
97
  }
109
98
 
@@ -111,54 +100,35 @@ class ServiceManager {
111
100
  return this.services.get(name);
112
101
  }
113
102
 
114
- startServices() {
115
- for (const srv of (0, _values.default)(_context2 = this.services).call(_context2)) {
103
+ async startServices() {
104
+ for (const [name, srv] of (0, _entries.default)(_context2 = this.services).call(_context2)) {
116
105
  var _context2;
117
106
 
118
- const canStart = srv.canStart() && !srv.isStarted() && (srv.requiresLeadership() ? this.isLeader() : true);
119
-
120
- if (canStart) {
121
- srv.start();
107
+ if (this.canStartService(name, srv)) {
108
+ await srv.start();
122
109
  }
123
110
  }
124
111
  }
125
112
 
126
- stopServices() {
113
+ async stopServices() {
127
114
  for (const srv of (0, _values.default)(_context3 = this.services).call(_context3)) {
128
115
  var _context3;
129
116
 
130
- srv.stop();
117
+ await srv.stop();
131
118
  }
132
- }
119
+ } // eslint-disable-next-line complexity
133
120
 
134
- async startElector() {
135
- await this.stopElector();
136
121
 
137
- if (ServiceManager.canUseLeaderElection()) {
138
- if (!this.channel) {
139
- const {
140
- broadcastChannelName
141
- } = this.options;
142
- this.channel = new _broadcastChannel.BroadcastChannel(broadcastChannelName);
143
- }
122
+ canStartService(name, srv) {
123
+ let canStart = srv.canStart() && !srv.isStarted(); // only start election if a leader is required
144
124
 
145
- if (!this.elector) {
146
- this.elector = (0, _broadcastChannel.createLeaderElection)(this.channel);
147
- this.elector.onduplicate = this.onLeaderDuplicate;
148
- this.elector.awaitLeadership().then(this.onLeader);
149
- }
125
+ if (name === LEADER_ELECTION) {
126
+ canStart && (canStart = this.isLeaderRequired());
127
+ } else if (srv.requiresLeadership()) {
128
+ canStart && (canStart = this.isLeader());
150
129
  }
151
- }
152
130
 
153
- async stopElector() {
154
- if (this.elector) {
155
- var _this$elector3, _this$channel;
156
-
157
- await ((_this$elector3 = this.elector) === null || _this$elector3 === void 0 ? void 0 : _this$elector3.die());
158
- this.elector = undefined;
159
- await ((_this$channel = this.channel) === null || _this$channel === void 0 ? void 0 : _this$channel.close());
160
- this.channel = undefined;
161
- }
131
+ return canStart;
162
132
  }
163
133
 
164
134
  createService(name) {
@@ -166,12 +136,18 @@ class ServiceManager {
166
136
  let service;
167
137
 
168
138
  switch (name) {
169
- case 'autoRenew':
139
+ case LEADER_ELECTION:
140
+ service = new _services.LeaderElectionService({ ...this.options,
141
+ onLeader: this.onLeader
142
+ });
143
+ break;
144
+
145
+ case AUTO_RENEW:
170
146
  service = new _services.AutoRenewService(tokenManager, { ...this.options
171
147
  });
172
148
  break;
173
149
 
174
- case 'syncStorage':
150
+ case SYNC_STORAGE:
175
151
  service = new _services.SyncStorageService(tokenManager, { ...this.options
176
152
  });
177
153
  break;
@@ -186,7 +162,7 @@ class ServiceManager {
186
162
  }
187
163
 
188
164
  exports.ServiceManager = ServiceManager;
189
- (0, _defineProperty2.default)(ServiceManager, "knownServices", ['autoRenew', 'syncStorage']);
165
+ (0, _defineProperty2.default)(ServiceManager, "knownServices", [AUTO_RENEW, SYNC_STORAGE, LEADER_ELECTION]);
190
166
  (0, _defineProperty2.default)(ServiceManager, "defaultOptions", {
191
167
  autoRenew: true,
192
168
  autoRemove: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../lib/ServiceManager.ts"],"names":["ServiceManager","constructor","sdk","options","autoRenew","autoRemove","syncStorage","tokenManager","getOptions","defaultOptions","started","services","onLeaderDuplicate","bind","onLeader","knownServices","forEach","name","svc","createService","set","canUseLeaderElection","startServices","isLeader","elector","hasLeader","isLeaderRequired","some","srv","requiresLeadership","start","startElector","stop","stopElector","stopServices","getService","get","canStart","isStarted","channel","broadcastChannelName","BroadcastChannel","onduplicate","awaitLeadership","then","die","undefined","close","service","AutoRenewService","SyncStorageService","Error"],"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\nimport {\n ServiceManagerInterface,\n ServiceInterface,\n ServiceManagerOptions\n} from './types';\nimport { OktaAuth } from '.';\nimport {\n BroadcastChannel,\n createLeaderElection,\n LeaderElector\n} from 'broadcast-channel';\nimport { AutoRenewService, SyncStorageService } from './services';\nimport { isBrowser } from './features';\n\nexport class ServiceManager implements ServiceManagerInterface {\n private sdk: OktaAuth;\n private options: ServiceManagerOptions;\n private services: Map<string, ServiceInterface>;\n private channel?: BroadcastChannel;\n private elector?: LeaderElector;\n private started: boolean;\n\n private static knownServices = ['autoRenew', 'syncStorage'];\n\n private static defaultOptions = {\n autoRenew: true,\n autoRemove: true,\n syncStorage: true\n };\n\n constructor(sdk: OktaAuth, options: ServiceManagerOptions = {}) {\n this.sdk = sdk;\n\n // TODO: backwards compatibility, remove in next major version - OKTA-473815\n const { autoRenew, autoRemove, syncStorage } = sdk.tokenManager.getOptions();\n this.options = Object.assign({}, \n ServiceManager.defaultOptions,\n { autoRenew, autoRemove, syncStorage },\n options\n );\n\n this.started = false;\n this.services = new Map();\n this.onLeaderDuplicate = this.onLeaderDuplicate.bind(this);\n this.onLeader = this.onLeader.bind(this);\n\n ServiceManager.knownServices.forEach(name => {\n const svc = this.createService(name);\n if (svc) {\n this.services.set(name, svc);\n }\n });\n }\n\n public static canUseLeaderElection() {\n return isBrowser();\n }\n\n private onLeader() {\n if (this.started) {\n // Start services that requires leadership\n this.startServices();\n }\n }\n\n private onLeaderDuplicate() {\n }\n\n isLeader() {\n return !!this.elector?.isLeader;\n }\n\n hasLeader() {\n return this.elector?.hasLeader;\n }\n\n isLeaderRequired() {\n return [...this.services.values()].some(srv => srv.requiresLeadership());\n }\n\n async start() {\n if (this.started) {\n return; // noop if services have already started\n }\n // only start election if a leader is required\n if (this.isLeaderRequired()) {\n await this.startElector();\n }\n this.startServices();\n this.started = true;\n }\n \n async stop() {\n await this.stopElector();\n this.stopServices();\n this.started = false;\n }\n\n getService(name: string): ServiceInterface | undefined {\n return this.services.get(name);\n }\n\n private startServices() {\n for (const srv of this.services.values()) {\n const canStart = srv.canStart() && !srv.isStarted() && (srv.requiresLeadership() ? this.isLeader() : true);\n if (canStart) {\n srv.start();\n }\n }\n }\n\n private stopServices() {\n for (const srv of this.services.values()) {\n srv.stop();\n }\n }\n\n private async startElector() {\n await this.stopElector();\n if (ServiceManager.canUseLeaderElection()) {\n if (!this.channel) {\n const { broadcastChannelName } = this.options;\n this.channel = new BroadcastChannel(broadcastChannelName as string);\n }\n if (!this.elector) {\n this.elector = createLeaderElection(this.channel);\n this.elector.onduplicate = this.onLeaderDuplicate;\n this.elector.awaitLeadership().then(this.onLeader);\n }\n }\n }\n\n private async stopElector() {\n if (this.elector) {\n await this.elector?.die();\n this.elector = undefined;\n await this.channel?.close();\n this.channel = undefined;\n }\n }\n\n private createService(name: string): ServiceInterface {\n const tokenManager = this.sdk.tokenManager;\n\n let service: ServiceInterface | undefined;\n switch (name) {\n case 'autoRenew':\n service = new AutoRenewService(tokenManager, {...this.options});\n break;\n case 'syncStorage':\n service = new SyncStorageService(tokenManager, {...this.options});\n break;\n default:\n throw new Error(`Unknown service ${name}`);\n }\n return service;\n }\n\n}\n"],"file":"ServiceManager.js"}
1
+ {"version":3,"file":"ServiceManager.js","names":["AUTO_RENEW","SYNC_STORAGE","LEADER_ELECTION","ServiceManager","constructor","sdk","options","onLeader","bind","autoRenew","autoRemove","syncStorage","tokenManager","getOptions","electionChannelName","broadcastChannelName","defaultOptions","clientId","syncChannelName","started","services","knownServices","forEach","name","svc","createService","set","startServices","isLeader","getService","isLeaderRequired","some","srv","canStart","requiresLeadership","start","stop","stopServices","get","canStartService","isStarted","service","LeaderElectionService","AutoRenewService","SyncStorageService","Error"],"sources":["../../lib/ServiceManager.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 {\n ServiceManagerInterface,\n ServiceInterface,\n ServiceManagerOptions\n} from './types';\nimport { OktaAuth } from '.';\nimport { AutoRenewService, SyncStorageService, LeaderElectionService } from './services';\nimport { removeNils } from './util';\n\nconst AUTO_RENEW = 'autoRenew';\nconst SYNC_STORAGE = 'syncStorage';\nconst LEADER_ELECTION = 'leaderElection';\n\nexport class ServiceManager implements ServiceManagerInterface {\n private sdk: OktaAuth;\n private options: ServiceManagerOptions;\n private services: Map<string, ServiceInterface>;\n private started: boolean;\n\n private static knownServices = [AUTO_RENEW, SYNC_STORAGE, LEADER_ELECTION];\n\n private static defaultOptions = {\n autoRenew: true,\n autoRemove: true,\n syncStorage: true\n };\n\n constructor(sdk: OktaAuth, options: ServiceManagerOptions = {}) {\n this.sdk = sdk;\n this.onLeader = this.onLeader.bind(this);\n\n // TODO: backwards compatibility, remove in next major version - OKTA-473815\n const { autoRenew, autoRemove, syncStorage } = sdk.tokenManager.getOptions();\n options.electionChannelName = options.electionChannelName || options.broadcastChannelName;\n this.options = Object.assign({}, \n ServiceManager.defaultOptions,\n { autoRenew, autoRemove, syncStorage }, \n {\n electionChannelName: `${sdk.options.clientId}-election`,\n syncChannelName: `${sdk.options.clientId}-sync`,\n },\n removeNils(options)\n );\n\n this.started = false;\n this.services = new Map();\n\n ServiceManager.knownServices.forEach(name => {\n const svc = this.createService(name);\n if (svc) {\n this.services.set(name, svc);\n }\n });\n }\n\n private async onLeader() {\n if (this.started) {\n // Start services that requires leadership\n await this.startServices();\n }\n }\n\n isLeader() {\n return (this.getService(LEADER_ELECTION) as LeaderElectionService)?.isLeader();\n }\n\n isLeaderRequired() {\n return [...this.services.values()].some(srv => srv.canStart() && srv.requiresLeadership());\n }\n\n async start() {\n if (this.started) {\n return; // noop if services have already started\n }\n await this.startServices();\n this.started = true;\n }\n \n async stop() {\n await this.stopServices();\n this.started = false;\n }\n\n getService(name: string): ServiceInterface | undefined {\n return this.services.get(name);\n }\n\n private async startServices() {\n for (const [name, srv] of this.services.entries()) {\n if (this.canStartService(name, srv)) {\n await srv.start();\n }\n }\n }\n\n private async stopServices() {\n for (const srv of this.services.values()) {\n await srv.stop();\n }\n }\n\n // eslint-disable-next-line complexity\n private canStartService(name: string, srv: ServiceInterface): boolean {\n let canStart = srv.canStart() && !srv.isStarted();\n // only start election if a leader is required\n if (name === LEADER_ELECTION) {\n canStart &&= this.isLeaderRequired();\n } else if (srv.requiresLeadership()) {\n canStart &&= this.isLeader();\n }\n return canStart;\n }\n\n private createService(name: string): ServiceInterface {\n const tokenManager = this.sdk.tokenManager;\n\n let service: ServiceInterface;\n switch (name) {\n case LEADER_ELECTION:\n service = new LeaderElectionService({...this.options, onLeader: this.onLeader});\n break;\n case AUTO_RENEW:\n service = new AutoRenewService(tokenManager, {...this.options});\n break;\n case SYNC_STORAGE:\n service = new SyncStorageService(tokenManager, {...this.options});\n break;\n default:\n throw new Error(`Unknown service ${name}`);\n }\n return service;\n }\n\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../lib/StorageManager.ts"],"names":["logServerSideMemoryStorageWarning","options","storageProvider","StorageManager","constructor","storageManagerOptions","cookieOptions","storageUtil","getOptionsForSection","sectionName","overrideOptions","getStorage","storageType","storageTypes","sessionCookie","idx","undefined","findStorageType","getStorageByType","getTransactionStorage","storage","storageKey","TRANSACTION_STORAGE_NAME","SavedObject","getSharedTansactionStorage","SHARED_TRANSACTION_STORAGE_NAME","getOriginalUriStorage","ORIGINAL_URI_STORAGE_NAME","getIdxResponseStorage","e","transactionStorage","getItem","key","transaction","setItem","val","AuthSdkError","setStorage","removeItem","IDX_RESPONSE_STORAGE_NAME","getTokenStorage","TOKEN_STORAGE_NAME","getHttpCache","CACHE_STORAGE_NAME","getLegacyPKCEStorage","PKCE_STORAGE_NAME","getLegacyOAuthParamsStorage","REDIRECT_OAUTH_PARAMS_NAME"],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\n\nimport {\n PKCE_STORAGE_NAME,\n TOKEN_STORAGE_NAME,\n TRANSACTION_STORAGE_NAME,\n SHARED_TRANSACTION_STORAGE_NAME,\n ORIGINAL_URI_STORAGE_NAME,\n IDX_RESPONSE_STORAGE_NAME,\n CACHE_STORAGE_NAME,\n REDIRECT_OAUTH_PARAMS_NAME\n} from './constants';\nimport {\n StorageUtil,\n StorageProvider,\n StorageOptions,\n PKCEStorage,\n CookieOptions,\n TransactionStorage,\n IdxResponseStorage,\n StorageManagerOptions,\n SimpleStorage\n} from './types';\nimport SavedObject from './SavedObject';\nimport { isBrowser } from './features';\nimport { warn } from './util';\nimport { AuthSdkError } from './errors';\n\nfunction logServerSideMemoryStorageWarning(options: StorageOptions) {\n if (!isBrowser() && !options.storageProvider && !options.storageProvider) {\n // eslint-disable-next-line max-len\n warn('Memory storage can only support simple single user use case on server side, please provide custom storageProvider or storageKey if advanced scenarios need to be supported.');\n }\n}\n\nexport class StorageManager {\n storageManagerOptions: StorageManagerOptions;\n cookieOptions: CookieOptions;\n storageUtil: StorageUtil;\n\n constructor(storageManagerOptions: StorageManagerOptions, cookieOptions: CookieOptions, storageUtil: StorageUtil) {\n this.storageManagerOptions = storageManagerOptions;\n this.cookieOptions = cookieOptions;\n this.storageUtil = storageUtil;\n }\n\n // combines defaults in order\n getOptionsForSection(sectionName: string, overrideOptions?: StorageOptions) {\n return Object.assign({}, this.storageManagerOptions[sectionName], overrideOptions);\n }\n \n // generic method to get any available storage provider\n // eslint-disable-next-line complexity\n getStorage(options: StorageOptions): SimpleStorage {\n options = Object.assign({}, this.cookieOptions, options); // set defaults\n\n if (options.storageProvider) {\n return options.storageProvider;\n }\n\n let { storageType, storageTypes } = options;\n\n if(storageType === 'sessionStorage') {\n options.sessionCookie = true;\n }\n\n // Maintain compatibility. Automatically fallback. May change in next major version. OKTA-362589\n if (storageType && storageTypes) {\n const idx = storageTypes.indexOf(storageType);\n if (idx >= 0) {\n storageTypes = storageTypes.slice(idx);\n storageType = undefined;\n }\n }\n\n if (!storageType) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n storageType = this.storageUtil.findStorageType(storageTypes!);\n }\n return this.storageUtil.getStorageByType(storageType, options);\n }\n\n // stateToken, interactionHandle\n getTransactionStorage(options?: StorageOptions): TransactionStorage {\n options = this.getOptionsForSection('transaction', options);\n logServerSideMemoryStorageWarning(options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || TRANSACTION_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n\n getSharedTansactionStorage(options?: StorageOptions): TransactionStorage {\n options = this.getOptionsForSection('shared-transaction', options);\n logServerSideMemoryStorageWarning(options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || SHARED_TRANSACTION_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n\n getOriginalUriStorage(options?: StorageOptions): TransactionStorage {\n options = this.getOptionsForSection('original-uri', options);\n logServerSideMemoryStorageWarning(options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || ORIGINAL_URI_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n\n // intermediate idxResponse\n // store for network traffic optimazation purpose\n // TODO: revisit in auth-js 6.0 epic JIRA: OKTA-399791\n getIdxResponseStorage(options?: StorageOptions): IdxResponseStorage | null {\n let storage;\n if (isBrowser()) {\n // on browser side only use memory storage \n try {\n storage = this.storageUtil.getStorageByType('memory', options);\n } catch (e) {\n // it's ok to miss response storage\n // eslint-disable-next-line max-len\n warn('No response storage found, you may want to provide custom implementation for intermediate idx responses to optimize the network traffic');\n }\n } else {\n // on server side re-use transaction custom storage\n const transactionStorage = this.getTransactionStorage(options);\n if (transactionStorage) {\n storage = {\n getItem: (key) => {\n const transaction = transactionStorage.getStorage();\n if (transaction && transaction[key]) {\n return transaction[key];\n }\n return null;\n },\n setItem: (key, val) => {\n const transaction = transactionStorage.getStorage();\n if (!transaction) {\n throw new AuthSdkError('Transaction has been cleared, failed to save idxState');\n }\n transaction[key] = val;\n transactionStorage.setStorage(transaction);\n },\n removeItem: (key) => {\n const transaction = transactionStorage.getStorage();\n if (!transaction) {\n return;\n }\n delete transaction[key];\n transactionStorage.setStorage(transaction);\n }\n };\n }\n }\n\n if (!storage) {\n return null;\n }\n\n return new SavedObject(storage, IDX_RESPONSE_STORAGE_NAME);\n }\n\n // access_token, id_token, refresh_token\n getTokenStorage(options?: StorageOptions): StorageProvider {\n options = this.getOptionsForSection('token', options);\n logServerSideMemoryStorageWarning(options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || TOKEN_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n\n // caches well-known response, among others\n getHttpCache(options?: StorageOptions): StorageProvider {\n options = this.getOptionsForSection('cache', options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || CACHE_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n\n // Will be removed in an upcoming major version. OKTA-362589\n getLegacyPKCEStorage(options?: StorageOptions): PKCEStorage {\n options = this.getOptionsForSection('legacy-pkce', options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || PKCE_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n\n getLegacyOAuthParamsStorage(options?: StorageOptions): StorageProvider {\n options = this.getOptionsForSection('legacy-oauth-params', options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || REDIRECT_OAUTH_PARAMS_NAME;\n return new SavedObject(storage, storageKey);\n }\n}\n"],"file":"StorageManager.js"}
1
+ {"version":3,"file":"StorageManager.js","names":["logServerSideMemoryStorageWarning","options","storageProvider","StorageManager","constructor","storageManagerOptions","cookieOptions","storageUtil","getOptionsForSection","sectionName","overrideOptions","getStorage","storageType","storageTypes","sessionCookie","idx","undefined","findStorageType","getStorageByType","getTransactionStorage","storage","storageKey","TRANSACTION_STORAGE_NAME","SavedObject","getSharedTansactionStorage","SHARED_TRANSACTION_STORAGE_NAME","getOriginalUriStorage","ORIGINAL_URI_STORAGE_NAME","getIdxResponseStorage","e","transactionStorage","getItem","key","transaction","setItem","val","AuthSdkError","setStorage","removeItem","IDX_RESPONSE_STORAGE_NAME","getTokenStorage","TOKEN_STORAGE_NAME","getHttpCache","CACHE_STORAGE_NAME","getLegacyPKCEStorage","PKCE_STORAGE_NAME","getLegacyOAuthParamsStorage","REDIRECT_OAUTH_PARAMS_NAME"],"sources":["../../lib/StorageManager.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\nimport {\n PKCE_STORAGE_NAME,\n TOKEN_STORAGE_NAME,\n TRANSACTION_STORAGE_NAME,\n SHARED_TRANSACTION_STORAGE_NAME,\n ORIGINAL_URI_STORAGE_NAME,\n IDX_RESPONSE_STORAGE_NAME,\n CACHE_STORAGE_NAME,\n REDIRECT_OAUTH_PARAMS_NAME\n} from './constants';\nimport {\n StorageUtil,\n StorageProvider,\n StorageOptions,\n PKCEStorage,\n CookieOptions,\n TransactionStorage,\n IdxResponseStorage,\n StorageManagerOptions,\n SimpleStorage\n} from './types';\nimport SavedObject from './SavedObject';\nimport { isBrowser } from './features';\nimport { warn } from './util';\nimport { AuthSdkError } from './errors';\n\nfunction logServerSideMemoryStorageWarning(options: StorageOptions) {\n if (!isBrowser() && !options.storageProvider && !options.storageProvider) {\n // eslint-disable-next-line max-len\n warn('Memory storage can only support simple single user use case on server side, please provide custom storageProvider or storageKey if advanced scenarios need to be supported.');\n }\n}\n\nexport class StorageManager {\n storageManagerOptions: StorageManagerOptions;\n cookieOptions: CookieOptions;\n storageUtil: StorageUtil;\n\n constructor(storageManagerOptions: StorageManagerOptions, cookieOptions: CookieOptions, storageUtil: StorageUtil) {\n this.storageManagerOptions = storageManagerOptions;\n this.cookieOptions = cookieOptions;\n this.storageUtil = storageUtil;\n }\n\n // combines defaults in order\n getOptionsForSection(sectionName: string, overrideOptions?: StorageOptions) {\n return Object.assign({}, this.storageManagerOptions[sectionName], overrideOptions);\n }\n \n // generic method to get any available storage provider\n // eslint-disable-next-line complexity\n getStorage(options: StorageOptions): SimpleStorage {\n options = Object.assign({}, this.cookieOptions, options); // set defaults\n\n if (options.storageProvider) {\n return options.storageProvider;\n }\n\n let { storageType, storageTypes } = options;\n\n if(storageType === 'sessionStorage') {\n options.sessionCookie = true;\n }\n\n // Maintain compatibility. Automatically fallback. May change in next major version. OKTA-362589\n if (storageType && storageTypes) {\n const idx = storageTypes.indexOf(storageType);\n if (idx >= 0) {\n storageTypes = storageTypes.slice(idx);\n storageType = undefined;\n }\n }\n\n if (!storageType) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n storageType = this.storageUtil.findStorageType(storageTypes!);\n }\n return this.storageUtil.getStorageByType(storageType, options);\n }\n\n // stateToken, interactionHandle\n getTransactionStorage(options?: StorageOptions): TransactionStorage {\n options = this.getOptionsForSection('transaction', options);\n logServerSideMemoryStorageWarning(options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || TRANSACTION_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n\n getSharedTansactionStorage(options?: StorageOptions): TransactionStorage {\n options = this.getOptionsForSection('shared-transaction', options);\n logServerSideMemoryStorageWarning(options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || SHARED_TRANSACTION_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n\n getOriginalUriStorage(options?: StorageOptions): TransactionStorage {\n options = this.getOptionsForSection('original-uri', options);\n logServerSideMemoryStorageWarning(options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || ORIGINAL_URI_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n\n // intermediate idxResponse\n // store for network traffic optimazation purpose\n // TODO: revisit in auth-js 6.0 epic JIRA: OKTA-399791\n getIdxResponseStorage(options?: StorageOptions): IdxResponseStorage | null {\n let storage;\n if (isBrowser()) {\n // on browser side only use memory storage \n try {\n storage = this.storageUtil.getStorageByType('memory', options);\n } catch (e) {\n // it's ok to miss response storage\n // eslint-disable-next-line max-len\n warn('No response storage found, you may want to provide custom implementation for intermediate idx responses to optimize the network traffic');\n }\n } else {\n // on server side re-use transaction custom storage\n const transactionStorage = this.getTransactionStorage(options);\n if (transactionStorage) {\n storage = {\n getItem: (key) => {\n const transaction = transactionStorage.getStorage();\n if (transaction && transaction[key]) {\n return transaction[key];\n }\n return null;\n },\n setItem: (key, val) => {\n const transaction = transactionStorage.getStorage();\n if (!transaction) {\n throw new AuthSdkError('Transaction has been cleared, failed to save idxState');\n }\n transaction[key] = val;\n transactionStorage.setStorage(transaction);\n },\n removeItem: (key) => {\n const transaction = transactionStorage.getStorage();\n if (!transaction) {\n return;\n }\n delete transaction[key];\n transactionStorage.setStorage(transaction);\n }\n };\n }\n }\n\n if (!storage) {\n return null;\n }\n\n return new SavedObject(storage, IDX_RESPONSE_STORAGE_NAME);\n }\n\n // access_token, id_token, refresh_token\n getTokenStorage(options?: StorageOptions): StorageProvider {\n options = this.getOptionsForSection('token', options);\n logServerSideMemoryStorageWarning(options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || TOKEN_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n\n // caches well-known response, among others\n getHttpCache(options?: StorageOptions): StorageProvider {\n options = this.getOptionsForSection('cache', options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || CACHE_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n\n // Will be removed in an upcoming major version. OKTA-362589\n getLegacyPKCEStorage(options?: StorageOptions): PKCEStorage {\n options = this.getOptionsForSection('legacy-pkce', options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || PKCE_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n\n getLegacyOAuthParamsStorage(options?: StorageOptions): StorageProvider {\n options = this.getOptionsForSection('legacy-oauth-params', options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || REDIRECT_OAUTH_PARAMS_NAME;\n return new SavedObject(storage, storageKey);\n }\n}\n"],"mappings":"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"}
@@ -2,14 +2,12 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
4
 
5
- exports.TokenManager = exports.EVENT_ERROR = exports.EVENT_REMOVED = exports.EVENT_ADDED = exports.EVENT_RENEWED = exports.EVENT_EXPIRED = void 0;
5
+ exports.TokenManager = void 0;
6
6
 
7
7
  var _assign = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/assign"));
8
8
 
9
9
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
10
10
 
11
- var _stringify = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/json/stringify"));
12
-
13
11
  var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
14
12
 
15
13
  var _reduce = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/reduce"));
@@ -52,19 +50,8 @@ const DEFAULT_OPTIONS = {
52
50
  storage: undefined,
53
51
  // will use value from storageManager config
54
52
  expireEarlySeconds: 30,
55
- storageKey: _constants.TOKEN_STORAGE_NAME,
56
- _storageEventDelay: 0
53
+ storageKey: _constants.TOKEN_STORAGE_NAME
57
54
  };
58
- const EVENT_EXPIRED = 'expired';
59
- exports.EVENT_EXPIRED = EVENT_EXPIRED;
60
- const EVENT_RENEWED = 'renewed';
61
- exports.EVENT_RENEWED = EVENT_RENEWED;
62
- const EVENT_ADDED = 'added';
63
- exports.EVENT_ADDED = EVENT_ADDED;
64
- const EVENT_REMOVED = 'removed';
65
- exports.EVENT_REMOVED = EVENT_REMOVED;
66
- const EVENT_ERROR = 'error';
67
- exports.EVENT_ERROR = EVENT_ERROR;
68
55
 
69
56
  function defaultState() {
70
57
  return {
@@ -74,7 +61,23 @@ function defaultState() {
74
61
  }
75
62
 
76
63
  class TokenManager {
77
- // eslint-disable-next-line complexity
64
+ on(event, handler, context) {
65
+ if (context) {
66
+ this.emitter.on(event, handler, context);
67
+ } else {
68
+ this.emitter.on(event, handler);
69
+ }
70
+ }
71
+
72
+ off(event, handler) {
73
+ if (handler) {
74
+ this.emitter.off(event, handler);
75
+ } else {
76
+ this.emitter.off(event);
77
+ }
78
+ } // eslint-disable-next-line complexity
79
+
80
+
78
81
  constructor(sdk, options = {}) {
79
82
  this.sdk = sdk;
80
83
  this.emitter = sdk.emitter;
@@ -85,10 +88,6 @@ class TokenManager {
85
88
 
86
89
  options = (0, _assign.default)({}, DEFAULT_OPTIONS, (0, _util.removeNils)(options));
87
90
 
88
- if ((0, _features.isIE11OrLess)()) {
89
- options._storageEventDelay = options._storageEventDelay || 1000;
90
- }
91
-
92
91
  if (!(0, _features.isLocalhost)()) {
93
92
  options.expireEarlySeconds = DEFAULT_OPTIONS.expireEarlySeconds;
94
93
  }
@@ -111,8 +110,10 @@ class TokenManager {
111
110
  });
112
111
  this.clock = _clock.default.create();
113
112
  this.state = defaultState();
114
- this.on = this.emitter.on.bind(this.emitter);
115
- this.off = this.emitter.off.bind(this.emitter);
113
+ }
114
+
115
+ hasSharedStorage() {
116
+ return this.storage.isSharedStorage();
116
117
  }
117
118
 
118
119
  start() {
@@ -143,44 +144,23 @@ class TokenManager {
143
144
  }
144
145
 
145
146
  emitExpired(key, token) {
146
- this.emitter.emit(EVENT_EXPIRED, key, token);
147
+ this.emitter.emit(_types.EVENT_EXPIRED, key, token);
147
148
  }
148
149
 
149
150
  emitRenewed(key, freshToken, oldToken) {
150
- this.emitter.emit(EVENT_RENEWED, key, freshToken, oldToken);
151
+ this.emitter.emit(_types.EVENT_RENEWED, key, freshToken, oldToken);
151
152
  }
152
153
 
153
154
  emitAdded(key, token) {
154
- this.emitter.emit(EVENT_ADDED, key, token);
155
+ this.emitter.emit(_types.EVENT_ADDED, key, token);
155
156
  }
156
157
 
157
158
  emitRemoved(key, token) {
158
- this.emitter.emit(EVENT_REMOVED, key, token);
159
+ this.emitter.emit(_types.EVENT_REMOVED, key, token);
159
160
  }
160
161
 
161
162
  emitError(error) {
162
- this.emitter.emit(EVENT_ERROR, error);
163
- }
164
-
165
- emitEventsForCrossTabsStorageUpdate(newValue, oldValue) {
166
- const oldTokens = this.getTokensFromStorageValue(oldValue);
167
- const newTokens = this.getTokensFromStorageValue(newValue);
168
- (0, _keys.default)(newTokens).forEach(key => {
169
- const oldToken = oldTokens[key];
170
- const newToken = newTokens[key];
171
-
172
- if ((0, _stringify.default)(oldToken) !== (0, _stringify.default)(newToken)) {
173
- this.emitAdded(key, newToken);
174
- }
175
- });
176
- (0, _keys.default)(oldTokens).forEach(key => {
177
- const oldToken = oldTokens[key];
178
- const newToken = newTokens[key];
179
-
180
- if (!newToken) {
181
- this.emitRemoved(key, oldToken);
182
- }
183
- });
163
+ this.emitter.emit(_types.EVENT_ERROR, error);
184
164
  }
185
165
 
186
166
  clearExpireEventTimeout(key) {
@@ -242,6 +222,7 @@ class TokenManager {
242
222
  (0, _util2.validateToken)(token);
243
223
  tokenStorage[key] = token;
244
224
  this.storage.setStorage(tokenStorage);
225
+ this.emitSetStorageEvent();
245
226
  this.emitAdded(key, token);
246
227
  this.setExpireEventTimeout(key, token);
247
228
  }
@@ -301,6 +282,19 @@ class TokenManager {
301
282
  }
302
283
 
303
284
  throw new _errors.AuthSdkError('Unknown token type');
285
+ } // for synchronization of LocalStorage cross tabs for IE11
286
+
287
+
288
+ emitSetStorageEvent() {
289
+ if ((0, _features.isIE11OrLess)()) {
290
+ const storage = this.storage.getStorage();
291
+ this.emitter.emit(_types.EVENT_SET_STORAGE, storage);
292
+ }
293
+ } // used in `SyncStorageService` for synchronization of LocalStorage cross tabs for IE11
294
+
295
+
296
+ getStorage() {
297
+ return this.storage;
304
298
  }
305
299
 
306
300
  setTokens(tokens, // TODO: callbacks can be removed in the next major version OKTA-407224
@@ -357,7 +351,8 @@ class TokenManager {
357
351
 
358
352
  return storage;
359
353
  }, {});
360
- this.storage.setStorage(storage); // emit event and start expiration timer
354
+ this.storage.setStorage(storage);
355
+ this.emitSetStorageEvent(); // emit event and start expiration timer
361
356
 
362
357
  types.forEach(type => {
363
358
  const newToken = tokens[type];
@@ -387,6 +382,7 @@ class TokenManager {
387
382
  var removedToken = tokenStorage[key];
388
383
  delete tokenStorage[key];
389
384
  this.storage.setStorage(tokenStorage);
385
+ this.emitSetStorageEvent();
390
386
  this.emitRemoved(key, removedToken);
391
387
  } // TODO: this methods is redundant and can be removed in the next major version OKTA-407224
392
388
 
@@ -442,29 +438,30 @@ class TokenManager {
442
438
  }
443
439
 
444
440
  clear() {
441
+ const tokens = this.getTokensSync();
445
442
  this.clearExpireEventTimeoutAll();
446
443
  this.storage.clearStorage();
444
+ this.emitSetStorageEvent();
445
+ (0, _keys.default)(tokens).forEach(key => {
446
+ this.emitRemoved(key, tokens[key]);
447
+ });
447
448
  }
448
449
 
449
450
  clearPendingRemoveTokens() {
450
- const tokens = this.getTokensSync();
451
- (0, _keys.default)(tokens).forEach(key => {
452
- if (tokens[key].pendingRemove) {
453
- this.remove(key);
451
+ const tokenStorage = this.storage.getStorage();
452
+ const removedTokens = {};
453
+ (0, _keys.default)(tokenStorage).forEach(key => {
454
+ if (tokenStorage[key].pendingRemove) {
455
+ removedTokens[key] = tokenStorage[key];
456
+ delete tokenStorage[key];
454
457
  }
455
458
  });
456
- }
457
-
458
- getTokensFromStorageValue(value) {
459
- let tokens;
460
-
461
- try {
462
- tokens = JSON.parse(value) || {};
463
- } catch (e) {
464
- tokens = {};
465
- }
466
-
467
- return tokens;
459
+ this.storage.setStorage(tokenStorage);
460
+ this.emitSetStorageEvent();
461
+ (0, _keys.default)(removedTokens).forEach(key => {
462
+ this.clearExpireEventTimeout(key);
463
+ this.emitRemoved(key, removedTokens[key]);
464
+ });
468
465
  }
469
466
 
470
467
  updateRefreshToken(token) {
@@ -475,6 +472,7 @@ class TokenManager {
475
472
  (0, _util2.validateToken)(token);
476
473
  tokenStorage[key] = token;
477
474
  this.storage.setStorage(tokenStorage);
475
+ this.emitSetStorageEvent();
478
476
  }
479
477
 
480
478
  removeRefreshToken() {