@okta/okta-auth-js 7.0.0 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (569) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +2 -0
  3. package/cjs/authn/AuthnTransactionImpl.js +6 -8
  4. package/cjs/authn/AuthnTransactionImpl.js.map +1 -1
  5. package/cjs/authn/api.js +3 -18
  6. package/cjs/authn/api.js.map +1 -1
  7. package/cjs/authn/factory.js +1 -7
  8. package/cjs/authn/factory.js.map +1 -1
  9. package/cjs/authn/index.js +0 -5
  10. package/cjs/authn/index.js.map +1 -1
  11. package/cjs/authn/mixin.js +14 -22
  12. package/cjs/authn/mixin.js.map +1 -1
  13. package/cjs/authn/util/flattenEmbedded.js +5 -12
  14. package/cjs/authn/util/flattenEmbedded.js.map +1 -1
  15. package/cjs/authn/util/link2fn.js +0 -22
  16. package/cjs/authn/util/link2fn.js.map +1 -1
  17. package/cjs/authn/util/links2fns.js +0 -12
  18. package/cjs/authn/util/links2fns.js.map +1 -1
  19. package/cjs/authn/util/poll.js +9 -27
  20. package/cjs/authn/util/poll.js.map +1 -1
  21. package/cjs/authn/util/stateToken.js +3 -4
  22. package/cjs/authn/util/stateToken.js.map +1 -1
  23. package/cjs/base/factory.js +6 -14
  24. package/cjs/base/factory.js.map +1 -1
  25. package/cjs/base/index.js +0 -5
  26. package/cjs/base/index.js.map +1 -1
  27. package/cjs/base/options.js +1 -2
  28. package/cjs/base/options.js.map +1 -1
  29. package/cjs/browser/browserStorage.js +15 -43
  30. package/cjs/browser/browserStorage.js.map +1 -1
  31. package/cjs/browser/fingerprint.js +3 -15
  32. package/cjs/browser/fingerprint.js.map +1 -1
  33. package/cjs/clock.js +5 -7
  34. package/cjs/clock.js.map +1 -1
  35. package/cjs/constants.js +4 -3
  36. package/cjs/constants.js.map +1 -1
  37. package/cjs/core/AuthStateManager.js +24 -48
  38. package/cjs/core/AuthStateManager.js.map +1 -1
  39. package/cjs/core/ServiceManager/browser.js +13 -33
  40. package/cjs/core/ServiceManager/browser.js.map +1 -1
  41. package/cjs/core/ServiceManager/index.js +0 -1
  42. package/cjs/core/ServiceManager/index.js.map +1 -1
  43. package/cjs/core/ServiceManager/node.js +3 -9
  44. package/cjs/core/ServiceManager/node.js.map +1 -1
  45. package/cjs/core/factory.js +0 -7
  46. package/cjs/core/factory.js.map +1 -1
  47. package/cjs/core/index.js +0 -13
  48. package/cjs/core/index.js.map +1 -1
  49. package/cjs/core/mixin.js +16 -20
  50. package/cjs/core/mixin.js.map +1 -1
  51. package/cjs/core/options.js +1 -3
  52. package/cjs/core/options.js.map +1 -1
  53. package/cjs/core/storage.js +0 -2
  54. package/cjs/core/storage.js.map +1 -1
  55. package/cjs/core/types/index.js +0 -5
  56. package/cjs/core/types/index.js.map +1 -1
  57. package/cjs/crypto/base64.js +9 -22
  58. package/cjs/crypto/base64.js.map +1 -1
  59. package/cjs/crypto/browser.js +0 -4
  60. package/cjs/crypto/browser.js.map +1 -1
  61. package/cjs/crypto/index.js +0 -9
  62. package/cjs/crypto/index.js.map +1 -1
  63. package/cjs/crypto/node.js +0 -13
  64. package/cjs/crypto/node.js.map +1 -1
  65. package/cjs/crypto/oidcHash.js +1 -4
  66. package/cjs/crypto/oidcHash.js.map +1 -1
  67. package/cjs/crypto/verifyToken.js +6 -7
  68. package/cjs/crypto/verifyToken.js.map +1 -1
  69. package/cjs/crypto/webcrypto.js +0 -1
  70. package/cjs/crypto/webcrypto.js.map +1 -1
  71. package/cjs/errors/AuthApiError.js +1 -7
  72. package/cjs/errors/AuthApiError.js.map +1 -1
  73. package/cjs/errors/AuthPollStopError.js +1 -5
  74. package/cjs/errors/AuthPollStopError.js.map +1 -1
  75. package/cjs/errors/AuthSdkError.js +1 -6
  76. package/cjs/errors/AuthSdkError.js.map +1 -1
  77. package/cjs/errors/CustomError.js +1 -4
  78. package/cjs/errors/CustomError.js.map +1 -1
  79. package/cjs/errors/OAuthError.js +4 -7
  80. package/cjs/errors/OAuthError.js.map +1 -1
  81. package/cjs/errors/index.js +1 -9
  82. package/cjs/errors/index.js.map +1 -1
  83. package/cjs/exports/authn.js +0 -9
  84. package/cjs/exports/authn.js.map +1 -1
  85. package/cjs/exports/cdn/authn.js +0 -2
  86. package/cjs/exports/cdn/authn.js.map +1 -1
  87. package/cjs/exports/cdn/core.js +0 -2
  88. package/cjs/exports/cdn/core.js.map +1 -1
  89. package/cjs/exports/cdn/default.js +0 -2
  90. package/cjs/exports/cdn/default.js.map +1 -1
  91. package/cjs/exports/cdn/idx.js +0 -2
  92. package/cjs/exports/cdn/idx.js.map +1 -1
  93. package/cjs/exports/cdn/myaccount.js +0 -2
  94. package/cjs/exports/cdn/myaccount.js.map +1 -1
  95. package/cjs/exports/common.js +0 -22
  96. package/cjs/exports/common.js.map +1 -1
  97. package/cjs/exports/core.js +0 -9
  98. package/cjs/exports/core.js.map +1 -1
  99. package/cjs/exports/default.js +2 -12
  100. package/cjs/exports/default.js.map +1 -1
  101. package/cjs/exports/idx.js +3 -7
  102. package/cjs/exports/idx.js.map +1 -1
  103. package/cjs/exports/myaccount.js +0 -9
  104. package/cjs/exports/myaccount.js.map +1 -1
  105. package/cjs/features.js +1 -18
  106. package/cjs/features.js.map +1 -1
  107. package/cjs/fetch/fetchRequest.js +6 -20
  108. package/cjs/fetch/fetchRequest.js.map +1 -1
  109. package/cjs/http/OktaUserAgent.js +3 -11
  110. package/cjs/http/OktaUserAgent.js.map +1 -1
  111. package/cjs/http/headers.js +1 -1
  112. package/cjs/http/headers.js.map +1 -1
  113. package/cjs/http/index.js +0 -11
  114. package/cjs/http/index.js.map +1 -1
  115. package/cjs/http/mixin.js +2 -10
  116. package/cjs/http/mixin.js.map +1 -1
  117. package/cjs/http/options.js +1 -5
  118. package/cjs/http/options.js.map +1 -1
  119. package/cjs/http/request.js +75 -57
  120. package/cjs/http/request.js.map +1 -1
  121. package/cjs/idx/IdxTransactionManager.js +2 -22
  122. package/cjs/idx/IdxTransactionManager.js.map +1 -1
  123. package/cjs/idx/authenticate.js +3 -5
  124. package/cjs/idx/authenticate.js.map +1 -1
  125. package/cjs/idx/authenticator/Authenticator.js +2 -4
  126. package/cjs/idx/authenticator/Authenticator.js.map +1 -1
  127. package/cjs/idx/authenticator/OktaPassword.js +2 -10
  128. package/cjs/idx/authenticator/OktaPassword.js.map +1 -1
  129. package/cjs/idx/authenticator/OktaVerifyTotp.js +0 -6
  130. package/cjs/idx/authenticator/OktaVerifyTotp.js.map +1 -1
  131. package/cjs/idx/authenticator/SecurityQuestionEnrollment.js +0 -10
  132. package/cjs/idx/authenticator/SecurityQuestionEnrollment.js.map +1 -1
  133. package/cjs/idx/authenticator/SecurityQuestionVerification.js +1 -10
  134. package/cjs/idx/authenticator/SecurityQuestionVerification.js.map +1 -1
  135. package/cjs/idx/authenticator/VerificationCodeAuthenticator.js +2 -10
  136. package/cjs/idx/authenticator/VerificationCodeAuthenticator.js.map +1 -1
  137. package/cjs/idx/authenticator/WebauthnEnrollment.js +0 -8
  138. package/cjs/idx/authenticator/WebauthnEnrollment.js.map +1 -1
  139. package/cjs/idx/authenticator/WebauthnVerification.js +0 -8
  140. package/cjs/idx/authenticator/WebauthnVerification.js.map +1 -1
  141. package/cjs/idx/authenticator/getAuthenticator.js +0 -15
  142. package/cjs/idx/authenticator/getAuthenticator.js.map +1 -1
  143. package/cjs/idx/authenticator/index.js +0 -15
  144. package/cjs/idx/authenticator/index.js.map +1 -1
  145. package/cjs/idx/authenticator/util.js +8 -18
  146. package/cjs/idx/authenticator/util.js.map +1 -1
  147. package/cjs/idx/cancel.js +3 -4
  148. package/cjs/idx/cancel.js.map +1 -1
  149. package/cjs/idx/emailVerify.js +5 -13
  150. package/cjs/idx/emailVerify.js.map +1 -1
  151. package/cjs/idx/factory/OktaAuthIdx.js +0 -3
  152. package/cjs/idx/factory/OktaAuthIdx.js.map +1 -1
  153. package/cjs/idx/factory/api.js +1 -17
  154. package/cjs/idx/factory/api.js.map +1 -1
  155. package/cjs/idx/factory/index.js +0 -3
  156. package/cjs/idx/factory/index.js.map +1 -1
  157. package/cjs/idx/flow/AccountUnlockFlow.js +1 -2
  158. package/cjs/idx/flow/AccountUnlockFlow.js.map +1 -1
  159. package/cjs/idx/flow/AuthenticationFlow.js +1 -2
  160. package/cjs/idx/flow/AuthenticationFlow.js.map +1 -1
  161. package/cjs/idx/flow/FlowSpecification.js +2 -13
  162. package/cjs/idx/flow/FlowSpecification.js.map +1 -1
  163. package/cjs/idx/flow/PasswordRecoveryFlow.js +1 -2
  164. package/cjs/idx/flow/PasswordRecoveryFlow.js.map +1 -1
  165. package/cjs/idx/flow/RegistrationFlow.js +1 -2
  166. package/cjs/idx/flow/RegistrationFlow.js.map +1 -1
  167. package/cjs/idx/flow/index.js +0 -11
  168. package/cjs/idx/flow/index.js.map +1 -1
  169. package/cjs/idx/handleInteractionCodeRedirect.js +7 -12
  170. package/cjs/idx/handleInteractionCodeRedirect.js.map +1 -1
  171. package/cjs/idx/idxState/index.js +1 -11
  172. package/cjs/idx/idxState/index.js.map +1 -1
  173. package/cjs/idx/idxState/v1/actionParser.js +1 -12
  174. package/cjs/idx/idxState/v1/actionParser.js.map +1 -1
  175. package/cjs/idx/idxState/v1/generateIdxAction.js +10 -15
  176. package/cjs/idx/idxState/v1/generateIdxAction.js.map +1 -1
  177. package/cjs/idx/idxState/v1/idxResponseParser.js +7 -23
  178. package/cjs/idx/idxState/v1/idxResponseParser.js.map +1 -1
  179. package/cjs/idx/idxState/v1/makeIdxState.js +2 -10
  180. package/cjs/idx/idxState/v1/makeIdxState.js.map +1 -1
  181. package/cjs/idx/idxState/v1/parsers.js +0 -2
  182. package/cjs/idx/idxState/v1/parsers.js.map +1 -1
  183. package/cjs/idx/idxState/v1/remediationParser.js +2 -4
  184. package/cjs/idx/idxState/v1/remediationParser.js.map +1 -1
  185. package/cjs/idx/index.js +0 -26
  186. package/cjs/idx/index.js.map +1 -1
  187. package/cjs/idx/interact.js +18 -18
  188. package/cjs/idx/interact.js.map +1 -1
  189. package/cjs/idx/introspect.js +5 -14
  190. package/cjs/idx/introspect.js.map +1 -1
  191. package/cjs/idx/mixin.js +0 -9
  192. package/cjs/idx/mixin.js.map +1 -1
  193. package/cjs/idx/options.js +2 -3
  194. package/cjs/idx/options.js.map +1 -1
  195. package/cjs/idx/poll.js +1 -10
  196. package/cjs/idx/poll.js.map +1 -1
  197. package/cjs/idx/proceed.js +3 -9
  198. package/cjs/idx/proceed.js.map +1 -1
  199. package/cjs/idx/recoverPassword.js +3 -4
  200. package/cjs/idx/recoverPassword.js.map +1 -1
  201. package/cjs/idx/register.js +5 -11
  202. package/cjs/idx/register.js.map +1 -1
  203. package/cjs/idx/remediate.js +24 -45
  204. package/cjs/idx/remediate.js.map +1 -1
  205. package/cjs/idx/remediators/AuthenticatorEnrollmentData.js +7 -16
  206. package/cjs/idx/remediators/AuthenticatorEnrollmentData.js.map +1 -1
  207. package/cjs/idx/remediators/AuthenticatorVerificationData.js +7 -15
  208. package/cjs/idx/remediators/AuthenticatorVerificationData.js.map +1 -1
  209. package/cjs/idx/remediators/Base/AuthenticatorData.js +7 -22
  210. package/cjs/idx/remediators/Base/AuthenticatorData.js.map +1 -1
  211. package/cjs/idx/remediators/Base/Remediator.js +38 -67
  212. package/cjs/idx/remediators/Base/Remediator.js.map +1 -1
  213. package/cjs/idx/remediators/Base/SelectAuthenticator.js +13 -30
  214. package/cjs/idx/remediators/Base/SelectAuthenticator.js.map +1 -1
  215. package/cjs/idx/remediators/Base/VerifyAuthenticator.js +5 -13
  216. package/cjs/idx/remediators/Base/VerifyAuthenticator.js.map +1 -1
  217. package/cjs/idx/remediators/ChallengeAuthenticator.js +1 -5
  218. package/cjs/idx/remediators/ChallengeAuthenticator.js.map +1 -1
  219. package/cjs/idx/remediators/ChallengePoll.js +1 -6
  220. package/cjs/idx/remediators/ChallengePoll.js.map +1 -1
  221. package/cjs/idx/remediators/EnrollAuthenticator.js +1 -5
  222. package/cjs/idx/remediators/EnrollAuthenticator.js.map +1 -1
  223. package/cjs/idx/remediators/EnrollPoll.js +5 -12
  224. package/cjs/idx/remediators/EnrollPoll.js.map +1 -1
  225. package/cjs/idx/remediators/EnrollProfile.js +8 -30
  226. package/cjs/idx/remediators/EnrollProfile.js.map +1 -1
  227. package/cjs/idx/remediators/EnrollmentChannelData.js +5 -13
  228. package/cjs/idx/remediators/EnrollmentChannelData.js.map +1 -1
  229. package/cjs/idx/remediators/GenericRemediator/GenericRemediator.js +13 -19
  230. package/cjs/idx/remediators/GenericRemediator/GenericRemediator.js.map +1 -1
  231. package/cjs/idx/remediators/GenericRemediator/index.js +0 -1
  232. package/cjs/idx/remediators/GenericRemediator/index.js.map +1 -1
  233. package/cjs/idx/remediators/GenericRemediator/util.js +19 -31
  234. package/cjs/idx/remediators/GenericRemediator/util.js.map +1 -1
  235. package/cjs/idx/remediators/Identify.js +3 -12
  236. package/cjs/idx/remediators/Identify.js.map +1 -1
  237. package/cjs/idx/remediators/ReEnrollAuthenticator.js +3 -10
  238. package/cjs/idx/remediators/ReEnrollAuthenticator.js.map +1 -1
  239. package/cjs/idx/remediators/RedirectIdp.js +1 -7
  240. package/cjs/idx/remediators/RedirectIdp.js.map +1 -1
  241. package/cjs/idx/remediators/ResetAuthenticator.js +1 -5
  242. package/cjs/idx/remediators/ResetAuthenticator.js.map +1 -1
  243. package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js +3 -11
  244. package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js.map +1 -1
  245. package/cjs/idx/remediators/SelectAuthenticatorEnroll.js +1 -5
  246. package/cjs/idx/remediators/SelectAuthenticatorEnroll.js.map +1 -1
  247. package/cjs/idx/remediators/SelectAuthenticatorUnlockAccount.js +6 -15
  248. package/cjs/idx/remediators/SelectAuthenticatorUnlockAccount.js.map +1 -1
  249. package/cjs/idx/remediators/SelectEnrollProfile.js +1 -6
  250. package/cjs/idx/remediators/SelectEnrollProfile.js.map +1 -1
  251. package/cjs/idx/remediators/SelectEnrollmentChannel.js +5 -16
  252. package/cjs/idx/remediators/SelectEnrollmentChannel.js.map +1 -1
  253. package/cjs/idx/remediators/Skip.js +1 -6
  254. package/cjs/idx/remediators/Skip.js.map +1 -1
  255. package/cjs/idx/remediators/index.js +0 -39
  256. package/cjs/idx/remediators/index.js.map +1 -1
  257. package/cjs/idx/remediators/util.js +1 -7
  258. package/cjs/idx/remediators/util.js.map +1 -1
  259. package/cjs/idx/run.js +39 -54
  260. package/cjs/idx/run.js.map +1 -1
  261. package/cjs/idx/startTransaction.js +1 -2
  262. package/cjs/idx/startTransaction.js.map +1 -1
  263. package/cjs/idx/storage.js +3 -22
  264. package/cjs/idx/storage.js.map +1 -1
  265. package/cjs/idx/transactionMeta.js +24 -42
  266. package/cjs/idx/transactionMeta.js.map +1 -1
  267. package/cjs/idx/types/api.js +1 -9
  268. package/cjs/idx/types/api.js.map +1 -1
  269. package/cjs/idx/types/idx-js.js +3 -3
  270. package/cjs/idx/types/idx-js.js.map +1 -1
  271. package/cjs/idx/types/index.js +0 -7
  272. package/cjs/idx/types/index.js.map +1 -1
  273. package/cjs/idx/types/meta.js.map +1 -1
  274. package/cjs/idx/types/options.js.map +1 -1
  275. package/cjs/idx/unlockAccount.js +7 -11
  276. package/cjs/idx/unlockAccount.js.map +1 -1
  277. package/cjs/idx/util.js +24 -76
  278. package/cjs/idx/util.js.map +1 -1
  279. package/cjs/idx/webauthn.js +13 -18
  280. package/cjs/idx/webauthn.js.map +1 -1
  281. package/cjs/myaccount/api.js +0 -5
  282. package/cjs/myaccount/api.js.map +1 -1
  283. package/cjs/myaccount/emailApi.js +6 -21
  284. package/cjs/myaccount/emailApi.js.map +1 -1
  285. package/cjs/myaccount/factory.js +0 -3
  286. package/cjs/myaccount/factory.js.map +1 -1
  287. package/cjs/myaccount/index.js +0 -7
  288. package/cjs/myaccount/index.js.map +1 -1
  289. package/cjs/myaccount/mixin.js +0 -5
  290. package/cjs/myaccount/mixin.js.map +1 -1
  291. package/cjs/myaccount/phoneApi.js +5 -18
  292. package/cjs/myaccount/phoneApi.js.map +1 -1
  293. package/cjs/myaccount/profileApi.js +2 -9
  294. package/cjs/myaccount/profileApi.js.map +1 -1
  295. package/cjs/myaccount/request.js +12 -78
  296. package/cjs/myaccount/request.js.map +1 -1
  297. package/cjs/myaccount/transactions/Base.js +5 -7
  298. package/cjs/myaccount/transactions/Base.js.map +1 -1
  299. package/cjs/myaccount/transactions/EmailChallengeTransaction.js +5 -10
  300. package/cjs/myaccount/transactions/EmailChallengeTransaction.js.map +1 -1
  301. package/cjs/myaccount/transactions/EmailStatusTransaction.js +2 -7
  302. package/cjs/myaccount/transactions/EmailStatusTransaction.js.map +1 -1
  303. package/cjs/myaccount/transactions/EmailTransaction.js +5 -13
  304. package/cjs/myaccount/transactions/EmailTransaction.js.map +1 -1
  305. package/cjs/myaccount/transactions/PhoneTransaction.js +5 -12
  306. package/cjs/myaccount/transactions/PhoneTransaction.js.map +1 -1
  307. package/cjs/myaccount/transactions/ProfileSchemaTransaction.js +0 -5
  308. package/cjs/myaccount/transactions/ProfileSchemaTransaction.js.map +1 -1
  309. package/cjs/myaccount/transactions/ProfileTransaction.js +0 -5
  310. package/cjs/myaccount/transactions/ProfileTransaction.js.map +1 -1
  311. package/cjs/myaccount/transactions/index.js +0 -8
  312. package/cjs/myaccount/transactions/index.js.map +1 -1
  313. package/cjs/myaccount/types.js +0 -5
  314. package/cjs/myaccount/types.js.map +1 -1
  315. package/cjs/oidc/TokenManager.js +39 -100
  316. package/cjs/oidc/TokenManager.js.map +1 -1
  317. package/cjs/oidc/TransactionManager.js +19 -26
  318. package/cjs/oidc/TransactionManager.js.map +1 -1
  319. package/cjs/oidc/decodeToken.js +1 -5
  320. package/cjs/oidc/decodeToken.js.map +1 -1
  321. package/cjs/oidc/endpoints/authorize.js +9 -13
  322. package/cjs/oidc/endpoints/authorize.js.map +1 -1
  323. package/cjs/oidc/endpoints/index.js +0 -5
  324. package/cjs/oidc/endpoints/index.js.map +1 -1
  325. package/cjs/oidc/endpoints/token.js +5 -17
  326. package/cjs/oidc/endpoints/token.js.map +1 -1
  327. package/cjs/oidc/endpoints/well-known.js +7 -14
  328. package/cjs/oidc/endpoints/well-known.js.map +1 -1
  329. package/cjs/oidc/exchangeCodeForTokens.js +7 -12
  330. package/cjs/oidc/exchangeCodeForTokens.js.map +1 -1
  331. package/cjs/oidc/factory/OktaAuthOAuth.js +0 -6
  332. package/cjs/oidc/factory/OktaAuthOAuth.js.map +1 -1
  333. package/cjs/oidc/factory/api.js +6 -20
  334. package/cjs/oidc/factory/api.js.map +1 -1
  335. package/cjs/oidc/factory/index.js +0 -3
  336. package/cjs/oidc/factory/index.js.map +1 -1
  337. package/cjs/oidc/getToken.js +18 -30
  338. package/cjs/oidc/getToken.js.map +1 -1
  339. package/cjs/oidc/getUserInfo.js +1 -15
  340. package/cjs/oidc/getUserInfo.js.map +1 -1
  341. package/cjs/oidc/getWithPopup.js +4 -8
  342. package/cjs/oidc/getWithPopup.js.map +1 -1
  343. package/cjs/oidc/getWithRedirect.js +1 -8
  344. package/cjs/oidc/getWithRedirect.js.map +1 -1
  345. package/cjs/oidc/getWithoutPrompt.js +1 -5
  346. package/cjs/oidc/getWithoutPrompt.js.map +1 -1
  347. package/cjs/oidc/handleOAuthResponse.js +23 -40
  348. package/cjs/oidc/handleOAuthResponse.js.map +1 -1
  349. package/cjs/oidc/index.js +0 -32
  350. package/cjs/oidc/index.js.map +1 -1
  351. package/cjs/oidc/mixin/browser.js +6 -18
  352. package/cjs/oidc/mixin/browser.js.map +1 -1
  353. package/cjs/oidc/mixin/index.js +37 -89
  354. package/cjs/oidc/mixin/index.js.map +1 -1
  355. package/cjs/oidc/mixin/node.js +2 -9
  356. package/cjs/oidc/mixin/node.js.map +1 -1
  357. package/cjs/oidc/options/OAuthOptionsConstructor.js +17 -24
  358. package/cjs/oidc/options/OAuthOptionsConstructor.js.map +1 -1
  359. package/cjs/oidc/options/browser.js.map +1 -1
  360. package/cjs/oidc/options/index.js +0 -1
  361. package/cjs/oidc/options/index.js.map +1 -1
  362. package/cjs/oidc/options/node.js.map +1 -1
  363. package/cjs/oidc/parseFromUrl.js +1 -32
  364. package/cjs/oidc/parseFromUrl.js.map +1 -1
  365. package/cjs/oidc/renewToken.js +5 -16
  366. package/cjs/oidc/renewToken.js.map +1 -1
  367. package/cjs/oidc/renewTokens.js +3 -15
  368. package/cjs/oidc/renewTokens.js.map +1 -1
  369. package/cjs/oidc/renewTokensWithRefresh.js +3 -13
  370. package/cjs/oidc/renewTokensWithRefresh.js.map +1 -1
  371. package/cjs/oidc/revokeToken.js +3 -14
  372. package/cjs/oidc/revokeToken.js.map +1 -1
  373. package/cjs/oidc/storage.js +0 -8
  374. package/cjs/oidc/storage.js.map +1 -1
  375. package/cjs/oidc/types/Token.js +1 -5
  376. package/cjs/oidc/types/Token.js.map +1 -1
  377. package/cjs/oidc/types/TokenManager.js +1 -1
  378. package/cjs/oidc/types/TokenManager.js.map +1 -1
  379. package/cjs/oidc/types/Transaction.js +1 -12
  380. package/cjs/oidc/types/Transaction.js.map +1 -1
  381. package/cjs/oidc/types/UserClaims.js.map +1 -1
  382. package/cjs/oidc/types/api.js.map +1 -1
  383. package/cjs/oidc/types/index.js +0 -21
  384. package/cjs/oidc/types/index.js.map +1 -1
  385. package/cjs/oidc/types/meta.js.map +1 -1
  386. package/cjs/oidc/types/options.js.map +1 -1
  387. package/cjs/oidc/types/proto.js.map +1 -1
  388. package/cjs/oidc/util/browser.js +4 -13
  389. package/cjs/oidc/util/browser.js.map +1 -1
  390. package/cjs/oidc/util/defaultTokenParams.js +5 -5
  391. package/cjs/oidc/util/defaultTokenParams.js.map +1 -1
  392. package/cjs/oidc/util/errors.js +3 -8
  393. package/cjs/oidc/util/errors.js.map +1 -1
  394. package/cjs/oidc/util/index.js +0 -24
  395. package/cjs/oidc/util/index.js.map +1 -1
  396. package/cjs/oidc/util/loginRedirect.js +11 -25
  397. package/cjs/oidc/util/loginRedirect.js.map +1 -1
  398. package/cjs/oidc/util/oauth.js +3 -12
  399. package/cjs/oidc/util/oauth.js.map +1 -1
  400. package/cjs/oidc/util/oauthMeta.js +5 -6
  401. package/cjs/oidc/util/oauthMeta.js.map +1 -1
  402. package/cjs/oidc/util/pkce.js +1 -12
  403. package/cjs/oidc/util/pkce.js.map +1 -1
  404. package/cjs/oidc/util/prepareTokenParams.js +13 -26
  405. package/cjs/oidc/util/prepareTokenParams.js.map +1 -1
  406. package/cjs/oidc/util/refreshToken.js +0 -7
  407. package/cjs/oidc/util/refreshToken.js.map +1 -1
  408. package/cjs/oidc/util/sharedStorage.js +0 -8
  409. package/cjs/oidc/util/sharedStorage.js.map +1 -1
  410. package/cjs/oidc/util/urlParams.js +9 -12
  411. package/cjs/oidc/util/urlParams.js.map +1 -1
  412. package/cjs/oidc/util/validateClaims.js +9 -17
  413. package/cjs/oidc/util/validateClaims.js.map +1 -1
  414. package/cjs/oidc/util/validateToken.js +1 -6
  415. package/cjs/oidc/util/validateToken.js.map +1 -1
  416. package/cjs/oidc/verifyToken.js +13 -23
  417. package/cjs/oidc/verifyToken.js.map +1 -1
  418. package/cjs/server/serverStorage.js +9 -27
  419. package/cjs/server/serverStorage.js.map +1 -1
  420. package/cjs/services/AutoRenewService.js +1 -17
  421. package/cjs/services/AutoRenewService.js.map +1 -1
  422. package/cjs/services/LeaderElectionService.js +1 -23
  423. package/cjs/services/LeaderElectionService.js.map +1 -1
  424. package/cjs/services/SyncStorageService.js +3 -37
  425. package/cjs/services/SyncStorageService.js.map +1 -1
  426. package/cjs/services/index.js +0 -5
  427. package/cjs/services/index.js.map +1 -1
  428. package/cjs/session/api.js +1 -12
  429. package/cjs/session/api.js.map +1 -1
  430. package/cjs/session/factory.js +0 -2
  431. package/cjs/session/factory.js.map +1 -1
  432. package/cjs/session/index.js +0 -7
  433. package/cjs/session/index.js.map +1 -1
  434. package/cjs/session/mixin.js +2 -6
  435. package/cjs/session/mixin.js.map +1 -1
  436. package/cjs/storage/BaseStorageManager.js +13 -25
  437. package/cjs/storage/BaseStorageManager.js.map +1 -1
  438. package/cjs/storage/SavedObject.js +7 -19
  439. package/cjs/storage/SavedObject.js.map +1 -1
  440. package/cjs/storage/index.js +0 -9
  441. package/cjs/storage/index.js.map +1 -1
  442. package/cjs/storage/mixin.js +2 -4
  443. package/cjs/storage/mixin.js.map +1 -1
  444. package/cjs/storage/options/StorageOptionsConstructor.js +3 -6
  445. package/cjs/storage/options/StorageOptionsConstructor.js.map +1 -1
  446. package/cjs/storage/options/browser.js +7 -15
  447. package/cjs/storage/options/browser.js.map +1 -1
  448. package/cjs/storage/options/node.js +3 -6
  449. package/cjs/storage/options/node.js.map +1 -1
  450. package/cjs/util/PromiseQueue.js +7 -15
  451. package/cjs/util/PromiseQueue.js.map +1 -1
  452. package/cjs/util/console.js +3 -7
  453. package/cjs/util/console.js.map +1 -1
  454. package/cjs/util/index.js +0 -11
  455. package/cjs/util/index.js.map +1 -1
  456. package/cjs/util/misc.js +3 -8
  457. package/cjs/util/misc.js.map +1 -1
  458. package/cjs/util/object.js +9 -23
  459. package/cjs/util/object.js.map +1 -1
  460. package/cjs/util/types.js +1 -5
  461. package/cjs/util/types.js.map +1 -1
  462. package/cjs/util/url.js +5 -14
  463. package/cjs/util/url.js.map +1 -1
  464. package/dist/okta-auth-js.authn.min.analyzer.html +3 -3
  465. package/dist/okta-auth-js.authn.min.js +1 -1
  466. package/dist/okta-auth-js.authn.min.js.LICENSE.txt +2 -0
  467. package/dist/okta-auth-js.authn.min.js.map +1 -1
  468. package/dist/okta-auth-js.core.min.analyzer.html +3 -3
  469. package/dist/okta-auth-js.core.min.js +1 -1
  470. package/dist/okta-auth-js.core.min.js.LICENSE.txt +2 -0
  471. package/dist/okta-auth-js.core.min.js.map +1 -1
  472. package/dist/okta-auth-js.idx.min.analyzer.html +3 -3
  473. package/dist/okta-auth-js.idx.min.js +1 -1
  474. package/dist/okta-auth-js.idx.min.js.LICENSE.txt +2 -0
  475. package/dist/okta-auth-js.idx.min.js.map +1 -1
  476. package/dist/okta-auth-js.min.analyzer.html +3 -3
  477. package/dist/okta-auth-js.min.js +1 -1
  478. package/dist/okta-auth-js.min.js.LICENSE.txt +2 -0
  479. package/dist/okta-auth-js.min.js.map +1 -1
  480. package/dist/okta-auth-js.myaccount.min.analyzer.html +3 -3
  481. package/dist/okta-auth-js.myaccount.min.js +1 -1
  482. package/dist/okta-auth-js.myaccount.min.js.LICENSE.txt +2 -0
  483. package/dist/okta-auth-js.myaccount.min.js.map +1 -1
  484. package/dist/okta-auth-js.polyfill.js +1 -1
  485. package/dist/okta-auth-js.polyfill.js.map +1 -1
  486. package/esm/browser/http/OktaUserAgent.js +2 -2
  487. package/esm/browser/http/request.js +56 -23
  488. package/esm/browser/http/request.js.map +1 -1
  489. package/esm/browser/idx/interact.js +2 -2
  490. package/esm/browser/idx/interact.js.map +1 -1
  491. package/esm/browser/idx/run.js +3 -2
  492. package/esm/browser/idx/run.js.map +1 -1
  493. package/esm/browser/idx/transactionMeta.js +3 -2
  494. package/esm/browser/idx/transactionMeta.js.map +1 -1
  495. package/esm/browser/myaccount/request.js +2 -43
  496. package/esm/browser/myaccount/request.js.map +1 -1
  497. package/esm/browser/oidc/endpoints/authorize.js +1 -0
  498. package/esm/browser/oidc/endpoints/authorize.js.map +1 -1
  499. package/esm/browser/oidc/exchangeCodeForTokens.js +2 -1
  500. package/esm/browser/oidc/exchangeCodeForTokens.js.map +1 -1
  501. package/esm/browser/oidc/handleOAuthResponse.js +17 -16
  502. package/esm/browser/oidc/handleOAuthResponse.js.map +1 -1
  503. package/esm/browser/oidc/options/OAuthOptionsConstructor.js +2 -0
  504. package/esm/browser/oidc/options/OAuthOptionsConstructor.js.map +1 -1
  505. package/esm/browser/oidc/util/defaultTokenParams.js +3 -1
  506. package/esm/browser/oidc/util/defaultTokenParams.js.map +1 -1
  507. package/esm/browser/oidc/util/oauthMeta.js +1 -0
  508. package/esm/browser/oidc/util/oauthMeta.js.map +1 -1
  509. package/esm/browser/oidc/util/validateClaims.js +9 -4
  510. package/esm/browser/oidc/util/validateClaims.js.map +1 -1
  511. package/esm/browser/oidc/verifyToken.js +2 -2
  512. package/esm/browser/oidc/verifyToken.js.map +1 -1
  513. package/esm/browser/package.json +1 -1
  514. package/esm/node/http/OktaUserAgent.js +2 -2
  515. package/esm/node/http/request.js +56 -23
  516. package/esm/node/http/request.js.map +1 -1
  517. package/esm/node/idx/interact.js +2 -2
  518. package/esm/node/idx/interact.js.map +1 -1
  519. package/esm/node/idx/run.js +3 -2
  520. package/esm/node/idx/run.js.map +1 -1
  521. package/esm/node/idx/transactionMeta.js +3 -2
  522. package/esm/node/idx/transactionMeta.js.map +1 -1
  523. package/esm/node/myaccount/request.js +2 -43
  524. package/esm/node/myaccount/request.js.map +1 -1
  525. package/esm/node/oidc/endpoints/authorize.js +1 -0
  526. package/esm/node/oidc/endpoints/authorize.js.map +1 -1
  527. package/esm/node/oidc/exchangeCodeForTokens.js +2 -1
  528. package/esm/node/oidc/exchangeCodeForTokens.js.map +1 -1
  529. package/esm/node/oidc/handleOAuthResponse.js +17 -16
  530. package/esm/node/oidc/handleOAuthResponse.js.map +1 -1
  531. package/esm/node/oidc/options/OAuthOptionsConstructor.js +2 -0
  532. package/esm/node/oidc/options/OAuthOptionsConstructor.js.map +1 -1
  533. package/esm/node/oidc/util/defaultTokenParams.js +3 -1
  534. package/esm/node/oidc/util/defaultTokenParams.js.map +1 -1
  535. package/esm/node/oidc/util/oauthMeta.js +1 -0
  536. package/esm/node/oidc/util/oauthMeta.js.map +1 -1
  537. package/esm/node/oidc/util/validateClaims.js +9 -4
  538. package/esm/node/oidc/util/validateClaims.js.map +1 -1
  539. package/esm/node/oidc/verifyToken.js +2 -2
  540. package/esm/node/oidc/verifyToken.js.map +1 -1
  541. package/esm/node/package.json +1 -1
  542. package/package.json +12 -13
  543. package/polyfill/index.js +8 -5
  544. package/types/lib/core/options.d.ts +2 -0
  545. package/types/lib/idx/interact.d.ts +1 -0
  546. package/types/lib/idx/options.d.ts +2 -0
  547. package/types/lib/idx/types/meta.d.ts +1 -0
  548. package/types/lib/idx/types/options.d.ts +1 -0
  549. package/types/lib/oidc/options/OAuthOptionsConstructor.d.ts +2 -0
  550. package/types/lib/oidc/types/UserClaims.d.ts +1 -0
  551. package/types/lib/oidc/types/api.d.ts +1 -0
  552. package/types/lib/oidc/types/meta.d.ts +1 -1
  553. package/types/lib/oidc/types/options.d.ts +2 -1
  554. package/types/lib/oidc/types/proto.d.ts +1 -0
  555. package/umd/authn.js +1 -1
  556. package/umd/authn.js.LICENSE.txt +2 -0
  557. package/umd/authn.js.map +1 -1
  558. package/umd/core.js +1 -1
  559. package/umd/core.js.LICENSE.txt +2 -0
  560. package/umd/core.js.map +1 -1
  561. package/umd/default.js +1 -1
  562. package/umd/default.js.LICENSE.txt +2 -0
  563. package/umd/default.js.map +1 -1
  564. package/umd/idx.js +1 -1
  565. package/umd/idx.js.LICENSE.txt +2 -0
  566. package/umd/idx.js.map +1 -1
  567. package/umd/myaccount.js +1 -1
  568. package/umd/myaccount.js.LICENSE.txt +2 -0
  569. package/umd/myaccount.js.map +1 -1
@@ -1,34 +1,20 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  exports.mixinOAuth = mixinOAuth;
6
-
7
5
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
8
-
9
6
  var _http = require("../../http");
10
-
11
7
  var _util = require("../../util");
12
-
13
8
  var crypto = _interopRequireWildcard(require("../../crypto"));
14
-
15
9
  var _pkce = _interopRequireDefault(require("../util/pkce"));
16
-
17
10
  var _factory = require("../factory");
18
-
19
11
  var _TokenManager = require("../TokenManager");
20
-
21
12
  var _util2 = require("../util");
22
-
23
13
  var _node = require("./node");
24
-
25
14
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
26
-
27
15
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
28
-
29
16
  function mixinOAuth(Base, TransactionManagerConstructor) {
30
17
  var _class;
31
-
32
18
  const WithOriginalUri = (0, _node.provideOriginalUri)(Base);
33
19
  return _class = class OktaAuthOAuth extends WithOriginalUri {
34
20
  constructor(...args) {
@@ -45,21 +31,23 @@ function mixinOAuth(Base, TransactionManagerConstructor) {
45
31
  handleLogin: false
46
32
  };
47
33
  this._tokenQueue = new _util.PromiseQueue();
48
- this.token = (0, _factory.createTokenAPI)(this, this._tokenQueue); // TokenManager
34
+ this.token = (0, _factory.createTokenAPI)(this, this._tokenQueue);
49
35
 
36
+ // TokenManager
50
37
  this.tokenManager = new _TokenManager.TokenManager(this, this.options.tokenManager);
51
- } // inherited from subclass
52
-
38
+ }
53
39
 
40
+ // inherited from subclass
54
41
  clearStorage() {
55
- super.clearStorage(); // Clear all local tokens
42
+ super.clearStorage();
56
43
 
44
+ // Clear all local tokens
57
45
  this.tokenManager.clear();
58
- } // Returns true if both accessToken and idToken are not expired
46
+ }
47
+
48
+ // Returns true if both accessToken and idToken are not expired
59
49
  // If `autoRenew` option is set, will attempt to renew expired tokens before returning.
60
50
  // eslint-disable-next-line complexity
61
-
62
-
63
51
  async isAuthenticated(options = {}) {
64
52
  // TODO: remove dependency on tokenManager options in next major version - OKTA-473815
65
53
  const {
@@ -71,59 +59,50 @@ function mixinOAuth(Base, TransactionManagerConstructor) {
71
59
  let {
72
60
  accessToken
73
61
  } = this.tokenManager.getTokensSync();
74
-
75
62
  if (accessToken && this.tokenManager.hasExpired(accessToken)) {
76
63
  accessToken = undefined;
77
-
78
64
  if (shouldRenew) {
79
65
  try {
80
66
  accessToken = await this.tokenManager.renew('accessToken');
81
- } catch {// Renew errors will emit an "error" event
67
+ } catch {
68
+ // Renew errors will emit an "error" event
82
69
  }
83
70
  } else if (shouldRemove) {
84
71
  this.tokenManager.remove('accessToken');
85
72
  }
86
73
  }
87
-
88
74
  let {
89
75
  idToken
90
76
  } = this.tokenManager.getTokensSync();
91
-
92
77
  if (idToken && this.tokenManager.hasExpired(idToken)) {
93
78
  idToken = undefined;
94
-
95
79
  if (shouldRenew) {
96
80
  try {
97
81
  idToken = await this.tokenManager.renew('idToken');
98
- } catch {// Renew errors will emit an "error" event
82
+ } catch {
83
+ // Renew errors will emit an "error" event
99
84
  }
100
85
  } else if (shouldRemove) {
101
86
  this.tokenManager.remove('idToken');
102
87
  }
103
88
  }
104
-
105
89
  return !!(accessToken && idToken);
106
90
  }
107
-
108
91
  async signInWithRedirect(opts = {}) {
109
92
  const {
110
93
  originalUri,
111
94
  ...additionalParams
112
95
  } = opts;
113
-
114
96
  if (this._pending.handleLogin) {
115
97
  // Don't trigger second round
116
98
  return;
117
99
  }
118
-
119
100
  this._pending.handleLogin = true;
120
-
121
101
  try {
122
102
  // Trigger default signIn redirect flow
123
103
  if (originalUri) {
124
104
  this.setOriginalUri(originalUri);
125
105
  }
126
-
127
106
  const params = Object.assign({
128
107
  // TODO: remove this line when default scopes are changed OKTA-343294
129
108
  scopes: this.options.scopes || ['openid', 'email', 'profile']
@@ -133,7 +112,6 @@ function mixinOAuth(Base, TransactionManagerConstructor) {
133
112
  this._pending.handleLogin = false;
134
113
  }
135
114
  }
136
-
137
115
  async getUser() {
138
116
  const {
139
117
  idToken,
@@ -141,146 +119,123 @@ function mixinOAuth(Base, TransactionManagerConstructor) {
141
119
  } = this.tokenManager.getTokensSync();
142
120
  return this.token.getUserInfo(accessToken, idToken);
143
121
  }
144
-
145
122
  getIdToken() {
146
123
  const {
147
124
  idToken
148
125
  } = this.tokenManager.getTokensSync();
149
126
  return idToken ? idToken.idToken : undefined;
150
127
  }
151
-
152
128
  getAccessToken() {
153
129
  const {
154
130
  accessToken
155
131
  } = this.tokenManager.getTokensSync();
156
132
  return accessToken ? accessToken.accessToken : undefined;
157
133
  }
158
-
159
134
  getRefreshToken() {
160
135
  const {
161
136
  refreshToken
162
137
  } = this.tokenManager.getTokensSync();
163
138
  return refreshToken ? refreshToken.refreshToken : undefined;
164
139
  }
140
+
165
141
  /**
166
142
  * Store parsed tokens from redirect url
167
143
  */
168
-
169
-
170
144
  async storeTokensFromRedirect() {
171
145
  const {
172
146
  tokens
173
147
  } = await this.token.parseFromUrl();
174
148
  this.tokenManager.setTokens(tokens);
175
149
  }
176
-
177
150
  isLoginRedirect() {
178
151
  return (0, _util2.isLoginRedirect)(this);
179
152
  }
180
-
181
153
  isPKCE() {
182
154
  return !!this.options.pkce;
183
155
  }
184
-
185
156
  hasResponseType(responseType) {
186
157
  let hasResponseType = false;
187
-
188
158
  if (Array.isArray(this.options.responseType) && this.options.responseType.length) {
189
159
  hasResponseType = this.options.responseType.indexOf(responseType) >= 0;
190
160
  } else {
191
161
  hasResponseType = this.options.responseType === responseType;
192
162
  }
193
-
194
163
  return hasResponseType;
195
164
  }
196
-
197
165
  isAuthorizationCodeFlow() {
198
166
  return this.hasResponseType('code');
199
- } // Escape hatch method to make arbitrary OKTA API call
200
-
167
+ }
201
168
 
169
+ // Escape hatch method to make arbitrary OKTA API call
202
170
  async invokeApiMethod(options) {
203
171
  if (!options.accessToken) {
204
172
  const accessToken = (await this.tokenManager.getTokens()).accessToken;
205
173
  options.accessToken = accessToken === null || accessToken === void 0 ? void 0 : accessToken.accessToken;
206
174
  }
207
-
208
175
  return (0, _http.httpRequest)(this, options);
209
- } // Revokes the access token for the application session
210
-
176
+ }
211
177
 
178
+ // Revokes the access token for the application session
212
179
  async revokeAccessToken(accessToken) {
213
180
  if (!accessToken) {
214
181
  accessToken = (await this.tokenManager.getTokens()).accessToken;
215
182
  const accessTokenKey = this.tokenManager.getStorageKeyByType('accessToken');
216
183
  this.tokenManager.remove(accessTokenKey);
217
- } // Access token may have been removed. In this case, we will silently succeed.
218
-
219
-
184
+ }
185
+ // Access token may have been removed. In this case, we will silently succeed.
220
186
  if (!accessToken) {
221
187
  return Promise.resolve(null);
222
188
  }
223
-
224
189
  return this.token.revoke(accessToken);
225
- } // Revokes the refresh token for the application session
226
-
190
+ }
227
191
 
192
+ // Revokes the refresh token for the application session
228
193
  async revokeRefreshToken(refreshToken) {
229
194
  if (!refreshToken) {
230
195
  refreshToken = (await this.tokenManager.getTokens()).refreshToken;
231
196
  const refreshTokenKey = this.tokenManager.getStorageKeyByType('refreshToken');
232
197
  this.tokenManager.remove(refreshTokenKey);
233
- } // Refresh token may have been removed. In this case, we will silently succeed.
234
-
235
-
198
+ }
199
+ // Refresh token may have been removed. In this case, we will silently succeed.
236
200
  if (!refreshToken) {
237
201
  return Promise.resolve(null);
238
202
  }
239
-
240
203
  return this.token.revoke(refreshToken);
241
204
  }
242
-
243
205
  getSignOutRedirectUrl(options = {}) {
244
206
  let {
245
207
  idToken,
246
208
  postLogoutRedirectUri,
247
209
  state
248
210
  } = options;
249
-
250
211
  if (!idToken) {
251
212
  idToken = this.tokenManager.getTokensSync().idToken;
252
213
  }
253
-
254
214
  if (!idToken) {
255
215
  return '';
256
216
  }
257
-
258
217
  if (!postLogoutRedirectUri) {
259
218
  postLogoutRedirectUri = this.options.postLogoutRedirectUri;
260
219
  }
261
-
262
220
  const logoutUrl = (0, _util2.getOAuthUrls)(this).logoutUrl;
263
221
  const idTokenHint = idToken.idToken; // a string
264
-
265
222
  let logoutUri = logoutUrl + '?id_token_hint=' + encodeURIComponent(idTokenHint);
266
-
267
223
  if (postLogoutRedirectUri) {
268
224
  logoutUri += '&post_logout_redirect_uri=' + encodeURIComponent(postLogoutRedirectUri);
269
- } // State allows option parameters to be passed to logout redirect uri
270
-
271
-
225
+ }
226
+ // State allows option parameters to be passed to logout redirect uri
272
227
  if (state) {
273
228
  logoutUri += '&state=' + encodeURIComponent(state);
274
229
  }
275
-
276
230
  return logoutUri;
277
- } // Revokes refreshToken or accessToken, clears all local tokens, then redirects to Okta to end the SSO session.
278
- // eslint-disable-next-line complexity
279
-
231
+ }
280
232
 
233
+ // Revokes refreshToken or accessToken, clears all local tokens, then redirects to Okta to end the SSO session.
234
+ // eslint-disable-next-line complexity
281
235
  async signOut(options) {
282
- options = Object.assign({}, options); // postLogoutRedirectUri must be whitelisted in Okta Admin UI
236
+ options = Object.assign({}, options);
283
237
 
238
+ // postLogoutRedirectUri must be whitelisted in Okta Admin UI
284
239
  var defaultUri = window.location.origin;
285
240
  var currentUri = window.location.href;
286
241
  var postLogoutRedirectUri = options.postLogoutRedirectUri || this.options.postLogoutRedirectUri || defaultUri;
@@ -288,32 +243,27 @@ function mixinOAuth(Base, TransactionManagerConstructor) {
288
243
  var refreshToken = options.refreshToken;
289
244
  var revokeAccessToken = options.revokeAccessToken !== false;
290
245
  var revokeRefreshToken = options.revokeRefreshToken !== false;
291
-
292
246
  if (revokeRefreshToken && typeof refreshToken === 'undefined') {
293
247
  refreshToken = this.tokenManager.getTokensSync().refreshToken;
294
248
  }
295
-
296
249
  if (revokeAccessToken && typeof accessToken === 'undefined') {
297
250
  accessToken = this.tokenManager.getTokensSync().accessToken;
298
251
  }
299
-
300
252
  if (!options.idToken) {
301
253
  options.idToken = this.tokenManager.getTokensSync().idToken;
302
254
  }
303
-
304
255
  if (revokeRefreshToken && refreshToken) {
305
256
  await this.revokeRefreshToken(refreshToken);
306
257
  }
307
-
308
258
  if (revokeAccessToken && accessToken) {
309
259
  await this.revokeAccessToken(accessToken);
310
260
  }
311
-
312
- const logoutUri = this.getSignOutRedirectUrl({ ...options,
261
+ const logoutUri = this.getSignOutRedirectUrl({
262
+ ...options,
313
263
  postLogoutRedirectUri
314
- }); // No logoutUri? This can happen if the storage was cleared.
264
+ });
265
+ // No logoutUri? This can happen if the storage was cleared.
315
266
  // Fallback to XHR signOut, then simulate a redirect to the post logout uri
316
-
317
267
  if (!logoutUri) {
318
268
  // local tokens are cleared once session is closed
319
269
  return this.closeSession() // can throw if the user cannot be signed out
@@ -330,13 +280,11 @@ function mixinOAuth(Base, TransactionManagerConstructor) {
330
280
  this.tokenManager.clear();
331
281
  } else {
332
282
  this.tokenManager.addPendingRemoveFlags();
333
- } // Flow ends with logout redirect
334
-
335
-
283
+ }
284
+ // Flow ends with logout redirect
336
285
  window.location.assign(logoutUri);
337
286
  }
338
287
  }
339
-
340
288
  }, (0, _defineProperty2.default)(_class, "crypto", crypto), _class;
341
289
  }
342
290
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["mixinOAuth","Base","TransactionManagerConstructor","WithOriginalUri","provideOriginalUri","OktaAuthOAuth","constructor","args","transactionManager","Object","assign","storageManager","options","pkce","DEFAULT_CODE_CHALLENGE_METHOD","PKCE","generateVerifier","computeChallenge","_pending","handleLogin","_tokenQueue","PromiseQueue","token","createTokenAPI","tokenManager","TokenManager","clearStorage","clear","isAuthenticated","autoRenew","autoRemove","getOptions","shouldRenew","onExpiredToken","shouldRemove","accessToken","getTokensSync","hasExpired","undefined","renew","remove","idToken","signInWithRedirect","opts","originalUri","additionalParams","setOriginalUri","params","scopes","getWithRedirect","getUser","getUserInfo","getIdToken","getAccessToken","getRefreshToken","refreshToken","storeTokensFromRedirect","tokens","parseFromUrl","setTokens","isLoginRedirect","isPKCE","hasResponseType","responseType","Array","isArray","length","indexOf","isAuthorizationCodeFlow","invokeApiMethod","getTokens","httpRequest","revokeAccessToken","accessTokenKey","getStorageKeyByType","Promise","resolve","revoke","revokeRefreshToken","refreshTokenKey","getSignOutRedirectUrl","postLogoutRedirectUri","state","logoutUrl","getOAuthUrls","idTokenHint","logoutUri","encodeURIComponent","signOut","defaultUri","window","location","origin","currentUri","href","closeSession","then","reload","clearTokensBeforeRedirect","addPendingRemoveFlags","crypto"],"sources":["../../../../lib/oidc/mixin/index.ts"],"sourcesContent":["import { httpRequest, RequestOptions } from '../../http';\nimport { OktaAuthConstructor } from '../../base/types';\nimport { \n PromiseQueue,\n} from '../../util';\nimport { CryptoAPI } from '../../crypto/types';\nimport * as crypto from '../../crypto';\nimport {\n AccessToken,\n CustomUserClaims,\n IDToken,\n IsAuthenticatedOptions,\n OAuthResponseType,\n OAuthStorageManagerInterface,\n OAuthTransactionMeta,\n OktaAuthOAuthInterface,\n OktaAuthOAuthOptions,\n PkceAPI,\n PKCETransactionMeta,\n RefreshToken,\n SigninWithRedirectOptions,\n SignoutOptions,\n SignoutRedirectUrlOptions,\n TokenAPI,\n TransactionManagerInterface,\n TransactionManagerConstructor,\n UserClaims,\n} from '../types';\nimport PKCE from '../util/pkce';\nimport { createTokenAPI } from '../factory';\nimport { TokenManager } from '../TokenManager';\nimport { getOAuthUrls, isLoginRedirect } from '../util';\n\nimport { OktaAuthSessionInterface } from '../../session/types';\nimport { provideOriginalUri } from './node';\nexport function mixinOAuth\n<\n M extends OAuthTransactionMeta = PKCETransactionMeta,\n S extends OAuthStorageManagerInterface<M> = OAuthStorageManagerInterface<M>,\n O extends OktaAuthOAuthOptions = OktaAuthOAuthOptions,\n TM extends TransactionManagerInterface = TransactionManagerInterface,\n TBase extends OktaAuthConstructor<OktaAuthSessionInterface<S, O>>\n = OktaAuthConstructor<OktaAuthSessionInterface<S, O>>\n>\n(\n Base: TBase,\n TransactionManagerConstructor: TransactionManagerConstructor<TM>,\n): TBase & OktaAuthConstructor<OktaAuthOAuthInterface<M, S, O, TM>>\n{\n const WithOriginalUri = provideOriginalUri(Base);\n return class OktaAuthOAuth extends WithOriginalUri\n implements OktaAuthOAuthInterface<M, S, O, TM>\n {\n static crypto: CryptoAPI = crypto;\n token: TokenAPI;\n tokenManager: TokenManager;\n transactionManager: TM;\n pkce: PkceAPI;\n\n _pending: { handleLogin: boolean };\n _tokenQueue: PromiseQueue;\n \n constructor(...args: any[]) {\n super(...args);\n\n this.transactionManager = new TransactionManagerConstructor(Object.assign({\n storageManager: this.storageManager,\n }, this.options.transactionManager));\n \n this.pkce = {\n DEFAULT_CODE_CHALLENGE_METHOD: PKCE.DEFAULT_CODE_CHALLENGE_METHOD,\n generateVerifier: PKCE.generateVerifier,\n computeChallenge: PKCE.computeChallenge\n };\n \n this._pending = { handleLogin: false };\n\n this._tokenQueue = new PromiseQueue();\n\n this.token = createTokenAPI(this, this._tokenQueue);\n\n // TokenManager\n this.tokenManager = new TokenManager(this, this.options.tokenManager);\n }\n\n // inherited from subclass\n clearStorage(): void {\n super.clearStorage();\n \n // Clear all local tokens\n this.tokenManager.clear();\n }\n\n // Returns true if both accessToken and idToken are not expired\n // If `autoRenew` option is set, will attempt to renew expired tokens before returning.\n // eslint-disable-next-line complexity\n async isAuthenticated(options: IsAuthenticatedOptions = {}): Promise<boolean> {\n // TODO: remove dependency on tokenManager options in next major version - OKTA-473815\n const { autoRenew, autoRemove } = this.tokenManager.getOptions();\n\n const shouldRenew = options.onExpiredToken ? options.onExpiredToken === 'renew' : autoRenew;\n const shouldRemove = options.onExpiredToken ? options.onExpiredToken === 'remove' : autoRemove;\n\n let { accessToken } = this.tokenManager.getTokensSync();\n if (accessToken && this.tokenManager.hasExpired(accessToken)) {\n accessToken = undefined;\n if (shouldRenew) {\n try {\n accessToken = await this.tokenManager.renew('accessToken') as AccessToken;\n } catch {\n // Renew errors will emit an \"error\" event \n }\n } else if (shouldRemove) {\n this.tokenManager.remove('accessToken');\n }\n }\n\n let { idToken } = this.tokenManager.getTokensSync();\n if (idToken && this.tokenManager.hasExpired(idToken)) {\n idToken = undefined;\n if (shouldRenew) {\n try {\n idToken = await this.tokenManager.renew('idToken') as IDToken;\n } catch {\n // Renew errors will emit an \"error\" event \n }\n } else if (shouldRemove) {\n this.tokenManager.remove('idToken');\n }\n }\n\n return !!(accessToken && idToken);\n }\n\n\n async signInWithRedirect(opts: SigninWithRedirectOptions = {}) {\n const { originalUri, ...additionalParams } = opts;\n if(this._pending.handleLogin) { \n // Don't trigger second round\n return;\n }\n\n this._pending.handleLogin = true;\n try {\n // Trigger default signIn redirect flow\n if (originalUri) {\n this.setOriginalUri(originalUri);\n }\n const params = Object.assign({\n // TODO: remove this line when default scopes are changed OKTA-343294\n scopes: this.options.scopes || ['openid', 'email', 'profile']\n }, additionalParams);\n await this.token.getWithRedirect(params);\n } finally {\n this._pending.handleLogin = false;\n }\n }\n\n async getUser<T extends CustomUserClaims = CustomUserClaims>(): Promise<UserClaims<T>> {\n const { idToken, accessToken } = this.tokenManager.getTokensSync();\n return this.token.getUserInfo(accessToken, idToken);\n }\n \n getIdToken(): string | undefined {\n const { idToken } = this.tokenManager.getTokensSync();\n return idToken ? idToken.idToken : undefined;\n }\n \n getAccessToken(): string | undefined {\n const { accessToken } = this.tokenManager.getTokensSync();\n return accessToken ? accessToken.accessToken : undefined;\n }\n \n getRefreshToken(): string | undefined {\n const { refreshToken } = this.tokenManager.getTokensSync();\n return refreshToken ? refreshToken.refreshToken : undefined;\n }\n \n /**\n * Store parsed tokens from redirect url\n */\n async storeTokensFromRedirect(): Promise<void> {\n const { tokens } = await this.token.parseFromUrl();\n this.tokenManager.setTokens(tokens);\n }\n \n isLoginRedirect(): boolean {\n return isLoginRedirect(this);\n }\n\n \n isPKCE(): boolean {\n return !!this.options.pkce;\n }\n \n hasResponseType(responseType: OAuthResponseType): boolean {\n let hasResponseType = false;\n if (Array.isArray(this.options.responseType) && this.options.responseType.length) {\n hasResponseType = this.options.responseType.indexOf(responseType) >= 0;\n } else {\n hasResponseType = this.options.responseType === responseType;\n }\n return hasResponseType;\n }\n \n isAuthorizationCodeFlow(): boolean {\n return this.hasResponseType('code');\n }\n\n // Escape hatch method to make arbitrary OKTA API call\n async invokeApiMethod(options: RequestOptions): Promise<unknown> {\n if (!options.accessToken) {\n const accessToken = (await this.tokenManager.getTokens()).accessToken as AccessToken;\n options.accessToken = accessToken?.accessToken;\n }\n return httpRequest(this, options);\n }\n \n // Revokes the access token for the application session\n async revokeAccessToken(accessToken?: AccessToken): Promise<unknown> {\n if (!accessToken) {\n accessToken = (await this.tokenManager.getTokens()).accessToken as AccessToken;\n const accessTokenKey = this.tokenManager.getStorageKeyByType('accessToken');\n this.tokenManager.remove(accessTokenKey);\n }\n // Access token may have been removed. In this case, we will silently succeed.\n if (!accessToken) {\n return Promise.resolve(null);\n }\n return this.token.revoke(accessToken);\n }\n\n // Revokes the refresh token for the application session\n async revokeRefreshToken(refreshToken?: RefreshToken): Promise<unknown> {\n if (!refreshToken) {\n refreshToken = (await this.tokenManager.getTokens()).refreshToken as RefreshToken;\n const refreshTokenKey = this.tokenManager.getStorageKeyByType('refreshToken');\n this.tokenManager.remove(refreshTokenKey);\n }\n // Refresh token may have been removed. In this case, we will silently succeed.\n if (!refreshToken) {\n return Promise.resolve(null);\n }\n return this.token.revoke(refreshToken);\n }\n\n getSignOutRedirectUrl(options: SignoutRedirectUrlOptions = {}) {\n let {\n idToken,\n postLogoutRedirectUri,\n state,\n } = options;\n if (!idToken) {\n idToken = this.tokenManager.getTokensSync().idToken as IDToken;\n }\n if (!idToken) {\n return '';\n }\n if (!postLogoutRedirectUri) {\n postLogoutRedirectUri = this.options.postLogoutRedirectUri;\n }\n\n const logoutUrl = getOAuthUrls(this).logoutUrl;\n const idTokenHint = idToken.idToken; // a string\n let logoutUri = logoutUrl + '?id_token_hint=' + encodeURIComponent(idTokenHint);\n if (postLogoutRedirectUri) {\n logoutUri += '&post_logout_redirect_uri=' + encodeURIComponent(postLogoutRedirectUri);\n } \n // State allows option parameters to be passed to logout redirect uri\n if (state) {\n logoutUri += '&state=' + encodeURIComponent(state);\n }\n\n return logoutUri;\n }\n\n // Revokes refreshToken or accessToken, clears all local tokens, then redirects to Okta to end the SSO session.\n // eslint-disable-next-line complexity\n async signOut(options?: SignoutOptions): Promise<void> {\n options = Object.assign({}, options);\n \n // postLogoutRedirectUri must be whitelisted in Okta Admin UI\n var defaultUri = window.location.origin;\n var currentUri = window.location.href;\n var postLogoutRedirectUri = options.postLogoutRedirectUri\n || this.options.postLogoutRedirectUri\n || defaultUri;\n \n var accessToken = options.accessToken;\n var refreshToken = options.refreshToken;\n var revokeAccessToken = options.revokeAccessToken !== false;\n var revokeRefreshToken = options.revokeRefreshToken !== false;\n \n if (revokeRefreshToken && typeof refreshToken === 'undefined') {\n refreshToken = this.tokenManager.getTokensSync().refreshToken as RefreshToken;\n }\n\n if (revokeAccessToken && typeof accessToken === 'undefined') {\n accessToken = this.tokenManager.getTokensSync().accessToken as AccessToken;\n }\n \n if (!options.idToken) {\n options.idToken = this.tokenManager.getTokensSync().idToken as IDToken;\n }\n\n if (revokeRefreshToken && refreshToken) {\n await this.revokeRefreshToken(refreshToken);\n }\n\n if (revokeAccessToken && accessToken) {\n await this.revokeAccessToken(accessToken);\n }\n\n const logoutUri = this.getSignOutRedirectUrl({ ...options, postLogoutRedirectUri });\n // No logoutUri? This can happen if the storage was cleared.\n // Fallback to XHR signOut, then simulate a redirect to the post logout uri\n if (!logoutUri) {\n // local tokens are cleared once session is closed\n return this.closeSession() // can throw if the user cannot be signed out\n .then(function() {\n if (postLogoutRedirectUri === currentUri) {\n window.location.reload(); // force a hard reload if URI is not changing\n } else {\n window.location.assign(postLogoutRedirectUri);\n }\n });\n } else {\n if (options.clearTokensBeforeRedirect) {\n // Clear all local tokens\n this.tokenManager.clear();\n } else {\n this.tokenManager.addPendingRemoveFlags();\n }\n // Flow ends with logout redirect\n window.location.assign(logoutUri);\n }\n }\n\n };\n\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["mixinOAuth","Base","TransactionManagerConstructor","WithOriginalUri","provideOriginalUri","OktaAuthOAuth","constructor","args","transactionManager","Object","assign","storageManager","options","pkce","DEFAULT_CODE_CHALLENGE_METHOD","PKCE","generateVerifier","computeChallenge","_pending","handleLogin","_tokenQueue","PromiseQueue","token","createTokenAPI","tokenManager","TokenManager","clearStorage","clear","isAuthenticated","autoRenew","autoRemove","getOptions","shouldRenew","onExpiredToken","shouldRemove","accessToken","getTokensSync","hasExpired","undefined","renew","remove","idToken","signInWithRedirect","opts","originalUri","additionalParams","setOriginalUri","params","scopes","getWithRedirect","getUser","getUserInfo","getIdToken","getAccessToken","getRefreshToken","refreshToken","storeTokensFromRedirect","tokens","parseFromUrl","setTokens","isLoginRedirect","isPKCE","hasResponseType","responseType","Array","isArray","length","indexOf","isAuthorizationCodeFlow","invokeApiMethod","getTokens","httpRequest","revokeAccessToken","accessTokenKey","getStorageKeyByType","Promise","resolve","revoke","revokeRefreshToken","refreshTokenKey","getSignOutRedirectUrl","postLogoutRedirectUri","state","logoutUrl","getOAuthUrls","idTokenHint","logoutUri","encodeURIComponent","signOut","defaultUri","window","location","origin","currentUri","href","closeSession","then","reload","clearTokensBeforeRedirect","addPendingRemoveFlags","crypto"],"sources":["../../../../lib/oidc/mixin/index.ts"],"sourcesContent":["import { httpRequest, RequestOptions } from '../../http';\nimport { OktaAuthConstructor } from '../../base/types';\nimport { \n PromiseQueue,\n} from '../../util';\nimport { CryptoAPI } from '../../crypto/types';\nimport * as crypto from '../../crypto';\nimport {\n AccessToken,\n CustomUserClaims,\n IDToken,\n IsAuthenticatedOptions,\n OAuthResponseType,\n OAuthStorageManagerInterface,\n OAuthTransactionMeta,\n OktaAuthOAuthInterface,\n OktaAuthOAuthOptions,\n PkceAPI,\n PKCETransactionMeta,\n RefreshToken,\n SigninWithRedirectOptions,\n SignoutOptions,\n SignoutRedirectUrlOptions,\n TokenAPI,\n TransactionManagerInterface,\n TransactionManagerConstructor,\n UserClaims,\n} from '../types';\nimport PKCE from '../util/pkce';\nimport { createTokenAPI } from '../factory';\nimport { TokenManager } from '../TokenManager';\nimport { getOAuthUrls, isLoginRedirect } from '../util';\n\nimport { OktaAuthSessionInterface } from '../../session/types';\nimport { provideOriginalUri } from './node';\nexport function mixinOAuth\n<\n M extends OAuthTransactionMeta = PKCETransactionMeta,\n S extends OAuthStorageManagerInterface<M> = OAuthStorageManagerInterface<M>,\n O extends OktaAuthOAuthOptions = OktaAuthOAuthOptions,\n TM extends TransactionManagerInterface = TransactionManagerInterface,\n TBase extends OktaAuthConstructor<OktaAuthSessionInterface<S, O>>\n = OktaAuthConstructor<OktaAuthSessionInterface<S, O>>\n>\n(\n Base: TBase,\n TransactionManagerConstructor: TransactionManagerConstructor<TM>,\n): TBase & OktaAuthConstructor<OktaAuthOAuthInterface<M, S, O, TM>>\n{\n const WithOriginalUri = provideOriginalUri(Base);\n return class OktaAuthOAuth extends WithOriginalUri\n implements OktaAuthOAuthInterface<M, S, O, TM>\n {\n static crypto: CryptoAPI = crypto;\n token: TokenAPI;\n tokenManager: TokenManager;\n transactionManager: TM;\n pkce: PkceAPI;\n\n _pending: { handleLogin: boolean };\n _tokenQueue: PromiseQueue;\n \n constructor(...args: any[]) {\n super(...args);\n\n this.transactionManager = new TransactionManagerConstructor(Object.assign({\n storageManager: this.storageManager,\n }, this.options.transactionManager));\n \n this.pkce = {\n DEFAULT_CODE_CHALLENGE_METHOD: PKCE.DEFAULT_CODE_CHALLENGE_METHOD,\n generateVerifier: PKCE.generateVerifier,\n computeChallenge: PKCE.computeChallenge\n };\n \n this._pending = { handleLogin: false };\n\n this._tokenQueue = new PromiseQueue();\n\n this.token = createTokenAPI(this, this._tokenQueue);\n\n // TokenManager\n this.tokenManager = new TokenManager(this, this.options.tokenManager);\n }\n\n // inherited from subclass\n clearStorage(): void {\n super.clearStorage();\n \n // Clear all local tokens\n this.tokenManager.clear();\n }\n\n // Returns true if both accessToken and idToken are not expired\n // If `autoRenew` option is set, will attempt to renew expired tokens before returning.\n // eslint-disable-next-line complexity\n async isAuthenticated(options: IsAuthenticatedOptions = {}): Promise<boolean> {\n // TODO: remove dependency on tokenManager options in next major version - OKTA-473815\n const { autoRenew, autoRemove } = this.tokenManager.getOptions();\n\n const shouldRenew = options.onExpiredToken ? options.onExpiredToken === 'renew' : autoRenew;\n const shouldRemove = options.onExpiredToken ? options.onExpiredToken === 'remove' : autoRemove;\n\n let { accessToken } = this.tokenManager.getTokensSync();\n if (accessToken && this.tokenManager.hasExpired(accessToken)) {\n accessToken = undefined;\n if (shouldRenew) {\n try {\n accessToken = await this.tokenManager.renew('accessToken') as AccessToken;\n } catch {\n // Renew errors will emit an \"error\" event \n }\n } else if (shouldRemove) {\n this.tokenManager.remove('accessToken');\n }\n }\n\n let { idToken } = this.tokenManager.getTokensSync();\n if (idToken && this.tokenManager.hasExpired(idToken)) {\n idToken = undefined;\n if (shouldRenew) {\n try {\n idToken = await this.tokenManager.renew('idToken') as IDToken;\n } catch {\n // Renew errors will emit an \"error\" event \n }\n } else if (shouldRemove) {\n this.tokenManager.remove('idToken');\n }\n }\n\n return !!(accessToken && idToken);\n }\n\n\n async signInWithRedirect(opts: SigninWithRedirectOptions = {}) {\n const { originalUri, ...additionalParams } = opts;\n if(this._pending.handleLogin) { \n // Don't trigger second round\n return;\n }\n\n this._pending.handleLogin = true;\n try {\n // Trigger default signIn redirect flow\n if (originalUri) {\n this.setOriginalUri(originalUri);\n }\n const params = Object.assign({\n // TODO: remove this line when default scopes are changed OKTA-343294\n scopes: this.options.scopes || ['openid', 'email', 'profile']\n }, additionalParams);\n await this.token.getWithRedirect(params);\n } finally {\n this._pending.handleLogin = false;\n }\n }\n\n async getUser<T extends CustomUserClaims = CustomUserClaims>(): Promise<UserClaims<T>> {\n const { idToken, accessToken } = this.tokenManager.getTokensSync();\n return this.token.getUserInfo(accessToken, idToken);\n }\n \n getIdToken(): string | undefined {\n const { idToken } = this.tokenManager.getTokensSync();\n return idToken ? idToken.idToken : undefined;\n }\n \n getAccessToken(): string | undefined {\n const { accessToken } = this.tokenManager.getTokensSync();\n return accessToken ? accessToken.accessToken : undefined;\n }\n \n getRefreshToken(): string | undefined {\n const { refreshToken } = this.tokenManager.getTokensSync();\n return refreshToken ? refreshToken.refreshToken : undefined;\n }\n \n /**\n * Store parsed tokens from redirect url\n */\n async storeTokensFromRedirect(): Promise<void> {\n const { tokens } = await this.token.parseFromUrl();\n this.tokenManager.setTokens(tokens);\n }\n \n isLoginRedirect(): boolean {\n return isLoginRedirect(this);\n }\n\n \n isPKCE(): boolean {\n return !!this.options.pkce;\n }\n \n hasResponseType(responseType: OAuthResponseType): boolean {\n let hasResponseType = false;\n if (Array.isArray(this.options.responseType) && this.options.responseType.length) {\n hasResponseType = this.options.responseType.indexOf(responseType) >= 0;\n } else {\n hasResponseType = this.options.responseType === responseType;\n }\n return hasResponseType;\n }\n \n isAuthorizationCodeFlow(): boolean {\n return this.hasResponseType('code');\n }\n\n // Escape hatch method to make arbitrary OKTA API call\n async invokeApiMethod(options: RequestOptions): Promise<unknown> {\n if (!options.accessToken) {\n const accessToken = (await this.tokenManager.getTokens()).accessToken as AccessToken;\n options.accessToken = accessToken?.accessToken;\n }\n return httpRequest(this, options);\n }\n \n // Revokes the access token for the application session\n async revokeAccessToken(accessToken?: AccessToken): Promise<unknown> {\n if (!accessToken) {\n accessToken = (await this.tokenManager.getTokens()).accessToken as AccessToken;\n const accessTokenKey = this.tokenManager.getStorageKeyByType('accessToken');\n this.tokenManager.remove(accessTokenKey);\n }\n // Access token may have been removed. In this case, we will silently succeed.\n if (!accessToken) {\n return Promise.resolve(null);\n }\n return this.token.revoke(accessToken);\n }\n\n // Revokes the refresh token for the application session\n async revokeRefreshToken(refreshToken?: RefreshToken): Promise<unknown> {\n if (!refreshToken) {\n refreshToken = (await this.tokenManager.getTokens()).refreshToken as RefreshToken;\n const refreshTokenKey = this.tokenManager.getStorageKeyByType('refreshToken');\n this.tokenManager.remove(refreshTokenKey);\n }\n // Refresh token may have been removed. In this case, we will silently succeed.\n if (!refreshToken) {\n return Promise.resolve(null);\n }\n return this.token.revoke(refreshToken);\n }\n\n getSignOutRedirectUrl(options: SignoutRedirectUrlOptions = {}) {\n let {\n idToken,\n postLogoutRedirectUri,\n state,\n } = options;\n if (!idToken) {\n idToken = this.tokenManager.getTokensSync().idToken as IDToken;\n }\n if (!idToken) {\n return '';\n }\n if (!postLogoutRedirectUri) {\n postLogoutRedirectUri = this.options.postLogoutRedirectUri;\n }\n\n const logoutUrl = getOAuthUrls(this).logoutUrl;\n const idTokenHint = idToken.idToken; // a string\n let logoutUri = logoutUrl + '?id_token_hint=' + encodeURIComponent(idTokenHint);\n if (postLogoutRedirectUri) {\n logoutUri += '&post_logout_redirect_uri=' + encodeURIComponent(postLogoutRedirectUri);\n } \n // State allows option parameters to be passed to logout redirect uri\n if (state) {\n logoutUri += '&state=' + encodeURIComponent(state);\n }\n\n return logoutUri;\n }\n\n // Revokes refreshToken or accessToken, clears all local tokens, then redirects to Okta to end the SSO session.\n // eslint-disable-next-line complexity\n async signOut(options?: SignoutOptions): Promise<void> {\n options = Object.assign({}, options);\n \n // postLogoutRedirectUri must be whitelisted in Okta Admin UI\n var defaultUri = window.location.origin;\n var currentUri = window.location.href;\n var postLogoutRedirectUri = options.postLogoutRedirectUri\n || this.options.postLogoutRedirectUri\n || defaultUri;\n \n var accessToken = options.accessToken;\n var refreshToken = options.refreshToken;\n var revokeAccessToken = options.revokeAccessToken !== false;\n var revokeRefreshToken = options.revokeRefreshToken !== false;\n \n if (revokeRefreshToken && typeof refreshToken === 'undefined') {\n refreshToken = this.tokenManager.getTokensSync().refreshToken as RefreshToken;\n }\n\n if (revokeAccessToken && typeof accessToken === 'undefined') {\n accessToken = this.tokenManager.getTokensSync().accessToken as AccessToken;\n }\n \n if (!options.idToken) {\n options.idToken = this.tokenManager.getTokensSync().idToken as IDToken;\n }\n\n if (revokeRefreshToken && refreshToken) {\n await this.revokeRefreshToken(refreshToken);\n }\n\n if (revokeAccessToken && accessToken) {\n await this.revokeAccessToken(accessToken);\n }\n\n const logoutUri = this.getSignOutRedirectUrl({ ...options, postLogoutRedirectUri });\n // No logoutUri? This can happen if the storage was cleared.\n // Fallback to XHR signOut, then simulate a redirect to the post logout uri\n if (!logoutUri) {\n // local tokens are cleared once session is closed\n return this.closeSession() // can throw if the user cannot be signed out\n .then(function() {\n if (postLogoutRedirectUri === currentUri) {\n window.location.reload(); // force a hard reload if URI is not changing\n } else {\n window.location.assign(postLogoutRedirectUri);\n }\n });\n } else {\n if (options.clearTokensBeforeRedirect) {\n // Clear all local tokens\n this.tokenManager.clear();\n } else {\n this.tokenManager.addPendingRemoveFlags();\n }\n // Flow ends with logout redirect\n window.location.assign(logoutUri);\n }\n }\n\n };\n\n}\n"],"mappings":"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"}
@@ -1,44 +1,37 @@
1
1
  "use strict";
2
2
 
3
3
  exports.provideOriginalUri = provideOriginalUri;
4
-
5
- function provideOriginalUri(BaseClass) //: TBase & OktaAuthConstructor<O, I & OriginalUriApi>
4
+ function provideOriginalUri(BaseClass)
5
+ //: TBase & OktaAuthConstructor<O, I & OriginalUriApi>
6
6
  {
7
7
  return class NodeOriginalUri extends BaseClass {
8
8
  setOriginalUri(originalUri, state) {
9
9
  // to support multi-tab flows, set a state in constructor or pass as param
10
10
  state = state || this.options.state;
11
-
12
11
  if (state) {
13
12
  const sharedStorage = this.storageManager.getOriginalUriStorage();
14
13
  sharedStorage.setItem(state, originalUri);
15
14
  }
16
15
  }
17
-
18
16
  getOriginalUri(state) {
19
17
  // Prefer shared storage (if state is available)
20
18
  state = state || this.options.state;
21
-
22
19
  if (state) {
23
20
  const sharedStorage = this.storageManager.getOriginalUriStorage();
24
21
  const originalUri = sharedStorage.getItem(state);
25
-
26
22
  if (originalUri) {
27
23
  return originalUri;
28
24
  }
29
25
  }
30
26
  }
31
-
32
27
  removeOriginalUri(state) {
33
28
  // remove from shared storage
34
29
  state = state || this.options.state;
35
-
36
30
  if (state) {
37
31
  const sharedStorage = this.storageManager.getOriginalUriStorage();
38
32
  sharedStorage.removeItem && sharedStorage.removeItem(state);
39
33
  }
40
34
  }
41
-
42
35
  };
43
36
  }
44
37
  //# sourceMappingURL=node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","names":["provideOriginalUri","BaseClass","NodeOriginalUri","setOriginalUri","originalUri","state","options","sharedStorage","storageManager","getOriginalUriStorage","setItem","getOriginalUri","getItem","removeOriginalUri","removeItem"],"sources":["../../../../lib/oidc/mixin/node.ts"],"sourcesContent":["\nimport { OktaAuthStorageInterface } from '../../storage';\nimport { OktaAuthConstructor } from '../../base';\nimport {\n OAuthStorageManagerInterface,\n OAuthTransactionMeta,\n OktaAuthOAuthOptions,\n OriginalUriApi,\n PKCETransactionMeta,\n} from '../types';\n\nexport function provideOriginalUri\n<\n M extends OAuthTransactionMeta = PKCETransactionMeta,\n S extends OAuthStorageManagerInterface<M> = OAuthStorageManagerInterface<M>,\n O extends OktaAuthOAuthOptions = OktaAuthOAuthOptions,\n TBase extends OktaAuthConstructor<OktaAuthStorageInterface<S, O>>\n = OktaAuthConstructor<OktaAuthStorageInterface<S, O>> \n>\n(BaseClass: TBase) //: TBase & OktaAuthConstructor<O, I & OriginalUriApi>\n{\n return class NodeOriginalUri extends BaseClass implements OriginalUriApi {\n setOriginalUri(originalUri: string, state?: string): void {\n // to support multi-tab flows, set a state in constructor or pass as param\n state = state || this.options.state;\n if (state) {\n const sharedStorage = this.storageManager.getOriginalUriStorage();\n sharedStorage.setItem(state, originalUri);\n }\n }\n \n getOriginalUri(state?: string): string | undefined {\n // Prefer shared storage (if state is available)\n state = state || this.options.state;\n if (state) {\n const sharedStorage = this.storageManager.getOriginalUriStorage();\n const originalUri = sharedStorage.getItem(state);\n if (originalUri) {\n return originalUri;\n }\n }\n }\n \n removeOriginalUri(state?: string): void {\n // remove from shared storage\n state = state || this.options.state;\n if (state) {\n const sharedStorage = this.storageManager.getOriginalUriStorage();\n sharedStorage.removeItem && sharedStorage.removeItem(state);\n }\n }\n };\n}\n"],"mappings":";;;;AAWO,SAASA,kBAAT,CAQNC,SARM,EAQY;AACnB;EACE,OAAO,MAAMC,eAAN,SAA8BD,SAA9B,CAAkE;IACvEE,cAAc,CAACC,WAAD,EAAsBC,KAAtB,EAA4C;MACxD;MACAA,KAAK,GAAGA,KAAK,IAAI,KAAKC,OAAL,CAAaD,KAA9B;;MACA,IAAIA,KAAJ,EAAW;QACT,MAAME,aAAa,GAAG,KAAKC,cAAL,CAAoBC,qBAApB,EAAtB;QACAF,aAAa,CAACG,OAAd,CAAsBL,KAAtB,EAA6BD,WAA7B;MACD;IACF;;IAEDO,cAAc,CAACN,KAAD,EAAqC;MACjD;MACAA,KAAK,GAAGA,KAAK,IAAI,KAAKC,OAAL,CAAaD,KAA9B;;MACA,IAAIA,KAAJ,EAAW;QACT,MAAME,aAAa,GAAG,KAAKC,cAAL,CAAoBC,qBAApB,EAAtB;QACA,MAAML,WAAW,GAAGG,aAAa,CAACK,OAAd,CAAsBP,KAAtB,CAApB;;QACA,IAAID,WAAJ,EAAiB;UACf,OAAOA,WAAP;QACD;MACF;IACF;;IAEDS,iBAAiB,CAACR,KAAD,EAAuB;MACtC;MACAA,KAAK,GAAGA,KAAK,IAAI,KAAKC,OAAL,CAAaD,KAA9B;;MACA,IAAIA,KAAJ,EAAW;QACT,MAAME,aAAa,GAAG,KAAKC,cAAL,CAAoBC,qBAApB,EAAtB;QACAF,aAAa,CAACO,UAAd,IAA4BP,aAAa,CAACO,UAAd,CAAyBT,KAAzB,CAA5B;MACD;IACF;;EA7BsE,CAAzE;AA+BD"}
1
+ {"version":3,"file":"node.js","names":["provideOriginalUri","BaseClass","NodeOriginalUri","setOriginalUri","originalUri","state","options","sharedStorage","storageManager","getOriginalUriStorage","setItem","getOriginalUri","getItem","removeOriginalUri","removeItem"],"sources":["../../../../lib/oidc/mixin/node.ts"],"sourcesContent":["\nimport { OktaAuthStorageInterface } from '../../storage';\nimport { OktaAuthConstructor } from '../../base';\nimport {\n OAuthStorageManagerInterface,\n OAuthTransactionMeta,\n OktaAuthOAuthOptions,\n OriginalUriApi,\n PKCETransactionMeta,\n} from '../types';\n\nexport function provideOriginalUri\n<\n M extends OAuthTransactionMeta = PKCETransactionMeta,\n S extends OAuthStorageManagerInterface<M> = OAuthStorageManagerInterface<M>,\n O extends OktaAuthOAuthOptions = OktaAuthOAuthOptions,\n TBase extends OktaAuthConstructor<OktaAuthStorageInterface<S, O>>\n = OktaAuthConstructor<OktaAuthStorageInterface<S, O>> \n>\n(BaseClass: TBase) //: TBase & OktaAuthConstructor<O, I & OriginalUriApi>\n{\n return class NodeOriginalUri extends BaseClass implements OriginalUriApi {\n setOriginalUri(originalUri: string, state?: string): void {\n // to support multi-tab flows, set a state in constructor or pass as param\n state = state || this.options.state;\n if (state) {\n const sharedStorage = this.storageManager.getOriginalUriStorage();\n sharedStorage.setItem(state, originalUri);\n }\n }\n \n getOriginalUri(state?: string): string | undefined {\n // Prefer shared storage (if state is available)\n state = state || this.options.state;\n if (state) {\n const sharedStorage = this.storageManager.getOriginalUriStorage();\n const originalUri = sharedStorage.getItem(state);\n if (originalUri) {\n return originalUri;\n }\n }\n }\n \n removeOriginalUri(state?: string): void {\n // remove from shared storage\n state = state || this.options.state;\n if (state) {\n const sharedStorage = this.storageManager.getOriginalUriStorage();\n sharedStorage.removeItem && sharedStorage.removeItem(state);\n }\n }\n };\n}\n"],"mappings":";;;AAWO,SAASA,kBAAkB,CAQjCC,SAAgB;AAAE;AACnB;EACE,OAAO,MAAMC,eAAe,SAASD,SAAS,CAA2B;IACvEE,cAAc,CAACC,WAAmB,EAAEC,KAAc,EAAQ;MACxD;MACAA,KAAK,GAAGA,KAAK,IAAI,IAAI,CAACC,OAAO,CAACD,KAAK;MACnC,IAAIA,KAAK,EAAE;QACT,MAAME,aAAa,GAAG,IAAI,CAACC,cAAc,CAACC,qBAAqB,EAAE;QACjEF,aAAa,CAACG,OAAO,CAACL,KAAK,EAAED,WAAW,CAAC;MAC3C;IACF;IAEAO,cAAc,CAACN,KAAc,EAAsB;MACjD;MACAA,KAAK,GAAGA,KAAK,IAAI,IAAI,CAACC,OAAO,CAACD,KAAK;MACnC,IAAIA,KAAK,EAAE;QACT,MAAME,aAAa,GAAG,IAAI,CAACC,cAAc,CAACC,qBAAqB,EAAE;QACjE,MAAML,WAAW,GAAGG,aAAa,CAACK,OAAO,CAACP,KAAK,CAAC;QAChD,IAAID,WAAW,EAAE;UACf,OAAOA,WAAW;QACpB;MACF;IACF;IAEAS,iBAAiB,CAACR,KAAc,EAAQ;MACtC;MACAA,KAAK,GAAGA,KAAK,IAAI,IAAI,CAACC,OAAO,CAACD,KAAK;MACnC,IAAIA,KAAK,EAAE;QACT,MAAME,aAAa,GAAG,IAAI,CAACC,cAAc,CAACC,qBAAqB,EAAE;QACjEF,aAAa,CAACO,UAAU,IAAIP,aAAa,CAACO,UAAU,CAACT,KAAK,CAAC;MAC7D;IACF;EACF,CAAC;AACH"}
@@ -1,21 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  exports.createOAuthOptionsConstructor = createOAuthOptionsConstructor;
6
-
7
5
  var _constants = require("../../constants");
8
-
9
6
  var _url = require("../../util/url");
10
-
11
7
  var _features = require("../../features");
12
-
13
8
  var _options = require("../../http/options");
14
-
15
9
  var _node = require("./node");
16
-
17
10
  var _AuthSdkError = _interopRequireDefault(require("../../errors/AuthSdkError"));
18
-
19
11
  /*!
20
12
  * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
21
13
  * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
@@ -27,40 +19,40 @@ var _AuthSdkError = _interopRequireDefault(require("../../errors/AuthSdkError"))
27
19
  *
28
20
  * See the License for the specific language governing permissions and limitations under the License.
29
21
  */
22
+
30
23
  function assertValidConfig(args) {
31
24
  args = args || {};
32
25
  var scopes = args.scopes;
33
-
34
26
  if (scopes && !Array.isArray(scopes)) {
35
27
  throw new _AuthSdkError.default('scopes must be a array of strings. ' + 'Required usage: new OktaAuth({scopes: ["openid", "email"]})');
36
- } // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
37
-
28
+ }
38
29
 
30
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
39
31
  var issuer = args.issuer;
40
-
41
32
  if (!issuer) {
42
33
  throw new _AuthSdkError.default('No issuer passed to constructor. ' + 'Required usage: new OktaAuth({issuer: "https://{yourOktaDomain}.com/oauth2/{authServerId}"})');
43
34
  }
44
-
45
35
  var isUrlRegex = new RegExp('^http?s?://.+');
46
-
47
36
  if (!isUrlRegex.test(issuer)) {
48
37
  throw new _AuthSdkError.default('Issuer must be a valid URL. ' + 'Required usage: new OktaAuth({issuer: "https://{yourOktaDomain}.com/oauth2/{authServerId}"})');
49
38
  }
50
-
51
39
  if (issuer.indexOf('-admin.') !== -1) {
52
40
  throw new _AuthSdkError.default('Issuer URL passed to constructor contains "-admin" in subdomain. ' + 'Required usage: new OktaAuth({issuer: "https://{yourOktaDomain}.com})');
53
41
  }
54
42
  }
55
-
56
43
  function createOAuthOptionsConstructor() {
57
44
  const HttpOptionsConstructor = (0, _options.createHttpOptionsConstructor)();
58
45
  return class OAuthOptionsConstructor extends HttpOptionsConstructor {
59
46
  // CustomUrls
47
+
60
48
  // TokenParams
49
+
61
50
  // Additional options
51
+
62
52
  // For server-side web applications ONLY!
53
+
63
54
  // Workaround for bad client time/clock
55
+
64
56
  // eslint-disable-next-line max-statements
65
57
  constructor(options) {
66
58
  super(options);
@@ -72,10 +64,8 @@ function createOAuthOptionsConstructor() {
72
64
  this.revokeUrl = (0, _url.removeTrailingSlash)(options.revokeUrl);
73
65
  this.logoutUrl = (0, _url.removeTrailingSlash)(options.logoutUrl);
74
66
  this.pkce = options.pkce === false ? false : true; // PKCE defaults to true
75
-
76
67
  this.clientId = options.clientId;
77
68
  this.redirectUri = options.redirectUri;
78
-
79
69
  if ((0, _features.isBrowser)()) {
80
70
  this.redirectUri = (0, _url.toAbsoluteUrl)(options.redirectUri, window.location.origin); // allow relative URIs
81
71
  }
@@ -83,11 +73,13 @@ function createOAuthOptionsConstructor() {
83
73
  this.responseType = options.responseType;
84
74
  this.responseMode = options.responseMode;
85
75
  this.state = options.state;
86
- this.scopes = options.scopes; // Give the developer the ability to disable token signature validation.
87
-
76
+ this.scopes = options.scopes;
77
+ // Give the developer the ability to disable token signature validation.
88
78
  this.ignoreSignature = !!options.ignoreSignature;
89
79
  this.codeChallenge = options.codeChallenge;
90
80
  this.codeChallengeMethod = options.codeChallengeMethod;
81
+ this.acrValues = options.acrValues;
82
+ this.maxAge = options.maxAge;
91
83
  this.tokenManager = options.tokenManager;
92
84
  this.postLogoutRedirectUri = options.postLogoutRedirectUri;
93
85
  this.restoreOriginalUri = options.restoreOriginalUri;
@@ -96,25 +88,26 @@ function createOAuthOptionsConstructor() {
96
88
  ...options.transactionManager
97
89
  };
98
90
  this.clientSecret = options.clientSecret;
99
- this.setLocation = options.setLocation; // As some end user's devices can have their date
91
+ this.setLocation = options.setLocation;
92
+
93
+ // As some end user's devices can have their date
100
94
  // and time incorrectly set, allow for the disabling
101
95
  // of the jwt liftetime validation
96
+ this.ignoreLifetime = !!options.ignoreLifetime;
102
97
 
103
- this.ignoreLifetime = !!options.ignoreLifetime; // Digital clocks will drift over time, so the server
98
+ // Digital clocks will drift over time, so the server
104
99
  // can misalign with the time reported by the browser.
105
100
  // The maxClockSkew allows relaxing the time-based
106
101
  // validation of tokens (in seconds, not milliseconds).
107
102
  // It currently defaults to 300, because 5 min is the
108
103
  // default maximum tolerance allowed by Kerberos.
109
104
  // (https://technet.microsoft.com/en-us/library/cc976357.aspx)
110
-
111
105
  if (!options.maxClockSkew && options.maxClockSkew !== 0) {
112
106
  this.maxClockSkew = _constants.DEFAULT_MAX_CLOCK_SKEW;
113
107
  } else {
114
108
  this.maxClockSkew = options.maxClockSkew;
115
109
  }
116
110
  }
117
-
118
111
  };
119
112
  }
120
113
  //# sourceMappingURL=OAuthOptionsConstructor.js.map