@okta/okta-auth-js 5.8.0 → 5.9.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 (350) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/cjs/OktaAuth.js +11 -3
  3. package/cjs/OktaAuth.js.map +1 -1
  4. package/cjs/OktaUserAgent.js +2 -2
  5. package/cjs/TransactionManager.js +6 -2
  6. package/cjs/TransactionManager.js.map +1 -1
  7. package/cjs/features.js +1 -1
  8. package/cjs/features.js.map +1 -1
  9. package/cjs/idx/authenticate.js +3 -18
  10. package/cjs/idx/authenticate.js.map +1 -1
  11. package/cjs/idx/flow/AuthenticationFlow.js +30 -0
  12. package/cjs/idx/flow/AuthenticationFlow.js.map +1 -0
  13. package/cjs/idx/{flowMonitors → flow}/AuthenticationFlowMonitor.js +0 -0
  14. package/cjs/idx/flow/AuthenticationFlowMonitor.js.map +1 -0
  15. package/cjs/idx/{flowMonitors → flow}/FlowMonitor.js +0 -0
  16. package/cjs/idx/flow/FlowMonitor.js.map +1 -0
  17. package/cjs/idx/flow/FlowSpecification.js +49 -0
  18. package/cjs/idx/flow/FlowSpecification.js.map +1 -0
  19. package/cjs/idx/flow/PasswordRecoveryFlow.js +28 -0
  20. package/cjs/idx/flow/PasswordRecoveryFlow.js.map +1 -0
  21. package/cjs/idx/{flowMonitors → flow}/PasswordRecoveryFlowMonitor.js +0 -0
  22. package/cjs/idx/flow/PasswordRecoveryFlowMonitor.js.map +1 -0
  23. package/{esm/crypto/browser.js → cjs/idx/flow/RegistrationFlow.js} +15 -12
  24. package/cjs/idx/flow/RegistrationFlow.js.map +1 -0
  25. package/cjs/idx/{flowMonitors → flow}/RegistrationFlowMonitor.js +0 -0
  26. package/cjs/idx/flow/RegistrationFlowMonitor.js.map +1 -0
  27. package/cjs/idx/flow/RemediationFlow.js +2 -0
  28. package/{esm/types/Cookies.js.map → cjs/idx/flow/RemediationFlow.js.map} +1 -1
  29. package/cjs/idx/flow/index.js +119 -0
  30. package/cjs/idx/flow/index.js.map +1 -0
  31. package/cjs/idx/index.js +26 -0
  32. package/cjs/idx/index.js.map +1 -1
  33. package/cjs/idx/interact.js.map +1 -1
  34. package/cjs/idx/proceed.js +49 -0
  35. package/cjs/idx/proceed.js.map +1 -0
  36. package/cjs/idx/recoverPassword.js +3 -17
  37. package/cjs/idx/recoverPassword.js.map +1 -1
  38. package/cjs/idx/register.js +7 -16
  39. package/cjs/idx/register.js.map +1 -1
  40. package/cjs/idx/remediate.js +13 -13
  41. package/cjs/idx/remediate.js.map +1 -1
  42. package/cjs/idx/remediators/Identify.js +2 -1
  43. package/cjs/idx/remediators/Identify.js.map +1 -1
  44. package/cjs/idx/run.js +18 -12
  45. package/cjs/idx/run.js.map +1 -1
  46. package/cjs/idx/startTransaction.js +2 -0
  47. package/cjs/idx/startTransaction.js.map +1 -1
  48. package/cjs/idx/transactionMeta.js +67 -42
  49. package/cjs/idx/transactionMeta.js.map +1 -1
  50. package/cjs/idx/types/FlowIdentifier.js +2 -0
  51. package/{esm/types/AuthState.js.map → cjs/idx/types/FlowIdentifier.js.map} +1 -1
  52. package/cjs/idx/types/idx-js.js.map +1 -1
  53. package/cjs/idx/types/index.js +16 -0
  54. package/cjs/idx/types/index.js.map +1 -1
  55. package/cjs/oidc/endpoints/authorize.js +4 -1
  56. package/cjs/oidc/endpoints/authorize.js.map +1 -1
  57. package/cjs/types/Transaction.js.map +1 -1
  58. package/dist/okta-auth-js.min.js +1 -1
  59. package/dist/okta-auth-js.min.js.map +1 -1
  60. package/dist/okta-auth-js.umd.js +1 -1
  61. package/dist/okta-auth-js.umd.js.map +1 -1
  62. package/esm/index.js +8368 -16
  63. package/esm/index.js.map +1 -1
  64. package/lib/TransactionManager.d.ts +1 -0
  65. package/{esm/crypto/webcrypto.js → lib/idx/flow/AuthenticationFlow.d.ts} +3 -4
  66. package/lib/idx/{flowMonitors → flow}/AuthenticationFlowMonitor.d.ts +0 -0
  67. package/lib/idx/{flowMonitors → flow}/FlowMonitor.d.ts +0 -0
  68. package/lib/idx/flow/FlowSpecification.d.ts +10 -0
  69. package/{esm/oidc/endpoints/index.js → lib/idx/flow/PasswordRecoveryFlow.d.ts} +3 -5
  70. package/lib/idx/{flowMonitors → flow}/PasswordRecoveryFlowMonitor.d.ts +0 -0
  71. package/{esm/tx/TransactionState.js → lib/idx/flow/RegistrationFlow.d.ts} +3 -3
  72. package/lib/idx/{flowMonitors → flow}/RegistrationFlowMonitor.d.ts +0 -0
  73. package/{esm/crypto/index.js → lib/idx/flow/RemediationFlow.d.ts} +3 -6
  74. package/lib/idx/{flowMonitors → flow}/index.d.ts +7 -2
  75. package/lib/idx/index.d.ts +2 -0
  76. package/{esm/errors/AuthPollStopError.js → lib/idx/proceed.d.ts} +9 -9
  77. package/lib/idx/remediators/Identify.d.ts +1 -0
  78. package/lib/idx/run.d.ts +9 -10
  79. package/lib/idx/transactionMeta.d.ts +24 -1
  80. package/lib/idx/types/FlowIdentifier.d.ts +1 -0
  81. package/lib/idx/types/idx-js.d.ts +3 -0
  82. package/lib/idx/types/index.d.ts +8 -1
  83. package/lib/types/OktaAuthOptions.d.ts +2 -0
  84. package/lib/types/Transaction.d.ts +2 -0
  85. package/lib/types/api.d.ts +12 -1
  86. package/package.json +18 -7
  87. package/cjs/idx/flowMonitors/AuthenticationFlowMonitor.js.map +0 -1
  88. package/cjs/idx/flowMonitors/FlowMonitor.js.map +0 -1
  89. package/cjs/idx/flowMonitors/PasswordRecoveryFlowMonitor.js.map +0 -1
  90. package/cjs/idx/flowMonitors/RegistrationFlowMonitor.js.map +0 -1
  91. package/cjs/idx/flowMonitors/index.js +0 -54
  92. package/cjs/idx/flowMonitors/index.js.map +0 -1
  93. package/esm/AuthStateManager.js +0 -214
  94. package/esm/AuthStateManager.js.map +0 -1
  95. package/esm/OktaAuth.js +0 -705
  96. package/esm/OktaAuth.js.map +0 -1
  97. package/esm/OktaUserAgent.js +0 -49
  98. package/esm/OktaUserAgent.js.map +0 -1
  99. package/esm/PromiseQueue.js +0 -71
  100. package/esm/PromiseQueue.js.map +0 -1
  101. package/esm/SavedObject.js +0 -91
  102. package/esm/SavedObject.js.map +0 -1
  103. package/esm/StorageManager.js +0 -190
  104. package/esm/StorageManager.js.map +0 -1
  105. package/esm/TokenManager.js +0 -455
  106. package/esm/TokenManager.js.map +0 -1
  107. package/esm/TransactionManager.js +0 -324
  108. package/esm/TransactionManager.js.map +0 -1
  109. package/esm/browser/browserStorage.js +0 -256
  110. package/esm/browser/browserStorage.js.map +0 -1
  111. package/esm/browser/fingerprint.js +0 -74
  112. package/esm/browser/fingerprint.js.map +0 -1
  113. package/esm/builderUtil.js +0 -56
  114. package/esm/builderUtil.js.map +0 -1
  115. package/esm/clock.js +0 -32
  116. package/esm/clock.js.map +0 -1
  117. package/esm/constants.js +0 -36
  118. package/esm/constants.js.map +0 -1
  119. package/esm/crypto/base64.js +0 -66
  120. package/esm/crypto/base64.js.map +0 -1
  121. package/esm/crypto/browser.js.map +0 -1
  122. package/esm/crypto/index.js.map +0 -1
  123. package/esm/crypto/node.js +0 -54
  124. package/esm/crypto/node.js.map +0 -1
  125. package/esm/crypto/oidcHash.js +0 -27
  126. package/esm/crypto/oidcHash.js.map +0 -1
  127. package/esm/crypto/verifyToken.js +0 -39
  128. package/esm/crypto/verifyToken.js.map +0 -1
  129. package/esm/crypto/webcrypto.js.map +0 -1
  130. package/esm/errors/AuthApiError.js +0 -30
  131. package/esm/errors/AuthApiError.js.map +0 -1
  132. package/esm/errors/AuthPollStopError.js.map +0 -1
  133. package/esm/errors/AuthSdkError.js +0 -29
  134. package/esm/errors/AuthSdkError.js.map +0 -1
  135. package/esm/errors/CustomError.js +0 -21
  136. package/esm/errors/CustomError.js.map +0 -1
  137. package/esm/errors/OAuthError.js +0 -22
  138. package/esm/errors/OAuthError.js.map +0 -1
  139. package/esm/errors/index.js +0 -22
  140. package/esm/errors/index.js.map +0 -1
  141. package/esm/features.js +0 -64
  142. package/esm/features.js.map +0 -1
  143. package/esm/fetch/fetchRequest.js +0 -92
  144. package/esm/fetch/fetchRequest.js.map +0 -1
  145. package/esm/http/headers.js +0 -17
  146. package/esm/http/headers.js.map +0 -1
  147. package/esm/http/index.js +0 -3
  148. package/esm/http/index.js.map +0 -1
  149. package/esm/http/request.js +0 -145
  150. package/esm/http/request.js.map +0 -1
  151. package/esm/idx/authenticate.js +0 -47
  152. package/esm/idx/authenticate.js.map +0 -1
  153. package/esm/idx/cancel.js +0 -32
  154. package/esm/idx/cancel.js.map +0 -1
  155. package/esm/idx/flowMonitors/AuthenticationFlowMonitor.js +0 -41
  156. package/esm/idx/flowMonitors/AuthenticationFlowMonitor.js.map +0 -1
  157. package/esm/idx/flowMonitors/FlowMonitor.js +0 -73
  158. package/esm/idx/flowMonitors/FlowMonitor.js.map +0 -1
  159. package/esm/idx/flowMonitors/PasswordRecoveryFlowMonitor.js +0 -57
  160. package/esm/idx/flowMonitors/PasswordRecoveryFlowMonitor.js.map +0 -1
  161. package/esm/idx/flowMonitors/RegistrationFlowMonitor.js +0 -28
  162. package/esm/idx/flowMonitors/RegistrationFlowMonitor.js.map +0 -1
  163. package/esm/idx/flowMonitors/index.js +0 -16
  164. package/esm/idx/flowMonitors/index.js.map +0 -1
  165. package/esm/idx/handleInteractionCodeRedirect.js +0 -64
  166. package/esm/idx/handleInteractionCodeRedirect.js.map +0 -1
  167. package/esm/idx/headers.js +0 -39
  168. package/esm/idx/headers.js.map +0 -1
  169. package/esm/idx/index.js +0 -20
  170. package/esm/idx/index.js.map +0 -1
  171. package/esm/idx/interact.js +0 -86
  172. package/esm/idx/interact.js.map +0 -1
  173. package/esm/idx/introspect.js +0 -61
  174. package/esm/idx/introspect.js.map +0 -1
  175. package/esm/idx/recoverPassword.js +0 -46
  176. package/esm/idx/recoverPassword.js.map +0 -1
  177. package/esm/idx/register.js +0 -63
  178. package/esm/idx/register.js.map +0 -1
  179. package/esm/idx/remediate.js +0 -302
  180. package/esm/idx/remediate.js.map +0 -1
  181. package/esm/idx/remediators/AuthenticatorEnrollmentData.js +0 -68
  182. package/esm/idx/remediators/AuthenticatorEnrollmentData.js.map +0 -1
  183. package/esm/idx/remediators/AuthenticatorVerificationData.js +0 -66
  184. package/esm/idx/remediators/AuthenticatorVerificationData.js.map +0 -1
  185. package/esm/idx/remediators/Base/AuthenticatorData.js +0 -105
  186. package/esm/idx/remediators/Base/AuthenticatorData.js.map +0 -1
  187. package/esm/idx/remediators/Base/Remediator.js +0 -221
  188. package/esm/idx/remediators/Base/Remediator.js.map +0 -1
  189. package/esm/idx/remediators/Base/SelectAuthenticator.js +0 -140
  190. package/esm/idx/remediators/Base/SelectAuthenticator.js.map +0 -1
  191. package/esm/idx/remediators/Base/VerifyAuthenticator.js +0 -65
  192. package/esm/idx/remediators/Base/VerifyAuthenticator.js.map +0 -1
  193. package/esm/idx/remediators/ChallengeAuthenticator.js +0 -18
  194. package/esm/idx/remediators/ChallengeAuthenticator.js.map +0 -1
  195. package/esm/idx/remediators/EnrollAuthenticator.js +0 -18
  196. package/esm/idx/remediators/EnrollAuthenticator.js.map +0 -1
  197. package/esm/idx/remediators/EnrollProfile.js +0 -79
  198. package/esm/idx/remediators/EnrollProfile.js.map +0 -1
  199. package/esm/idx/remediators/Identify.js +0 -87
  200. package/esm/idx/remediators/Identify.js.map +0 -1
  201. package/esm/idx/remediators/ReEnrollAuthenticator.js +0 -45
  202. package/esm/idx/remediators/ReEnrollAuthenticator.js.map +0 -1
  203. package/esm/idx/remediators/RedirectIdp.js +0 -38
  204. package/esm/idx/remediators/RedirectIdp.js.map +0 -1
  205. package/esm/idx/remediators/ResetAuthenticator.js +0 -18
  206. package/esm/idx/remediators/ResetAuthenticator.js.map +0 -1
  207. package/esm/idx/remediators/SelectAuthenticatorAuthenticate.js +0 -18
  208. package/esm/idx/remediators/SelectAuthenticatorAuthenticate.js.map +0 -1
  209. package/esm/idx/remediators/SelectAuthenticatorEnroll.js +0 -18
  210. package/esm/idx/remediators/SelectAuthenticatorEnroll.js.map +0 -1
  211. package/esm/idx/remediators/SelectEnrollProfile.js +0 -24
  212. package/esm/idx/remediators/SelectEnrollProfile.js.map +0 -1
  213. package/esm/idx/remediators/Skip.js +0 -23
  214. package/esm/idx/remediators/Skip.js.map +0 -1
  215. package/esm/idx/remediators/index.js +0 -26
  216. package/esm/idx/remediators/index.js.map +0 -1
  217. package/esm/idx/remediators/util.js +0 -35
  218. package/esm/idx/remediators/util.js.map +0 -1
  219. package/esm/idx/run.js +0 -222
  220. package/esm/idx/run.js.map +0 -1
  221. package/esm/idx/startTransaction.js +0 -27
  222. package/esm/idx/startTransaction.js.map +0 -1
  223. package/esm/idx/transactionMeta.js +0 -125
  224. package/esm/idx/transactionMeta.js.map +0 -1
  225. package/esm/idx/types/idx-js.js +0 -20
  226. package/esm/idx/types/idx-js.js.map +0 -1
  227. package/esm/idx/types/index.js +0 -44
  228. package/esm/idx/types/index.js.map +0 -1
  229. package/esm/oidc/decodeToken.js +0 -31
  230. package/esm/oidc/decodeToken.js.map +0 -1
  231. package/esm/oidc/endpoints/authorize.js +0 -61
  232. package/esm/oidc/endpoints/authorize.js.map +0 -1
  233. package/esm/oidc/endpoints/index.js.map +0 -1
  234. package/esm/oidc/endpoints/token.js +0 -97
  235. package/esm/oidc/endpoints/token.js.map +0 -1
  236. package/esm/oidc/endpoints/well-known.js +0 -58
  237. package/esm/oidc/endpoints/well-known.js.map +0 -1
  238. package/esm/oidc/exchangeCodeForTokens.js +0 -69
  239. package/esm/oidc/exchangeCodeForTokens.js.map +0 -1
  240. package/esm/oidc/getToken.js +0 -180
  241. package/esm/oidc/getToken.js.map +0 -1
  242. package/esm/oidc/getUserInfo.js +0 -82
  243. package/esm/oidc/getUserInfo.js.map +0 -1
  244. package/esm/oidc/getWithPopup.js +0 -34
  245. package/esm/oidc/getWithPopup.js.map +0 -1
  246. package/esm/oidc/getWithRedirect.js +0 -61
  247. package/esm/oidc/getWithRedirect.js.map +0 -1
  248. package/esm/oidc/getWithoutPrompt.js +0 -29
  249. package/esm/oidc/getWithoutPrompt.js.map +0 -1
  250. package/esm/oidc/handleOAuthResponse.js +0 -148
  251. package/esm/oidc/handleOAuthResponse.js.map +0 -1
  252. package/esm/oidc/index.js +0 -29
  253. package/esm/oidc/index.js.map +0 -1
  254. package/esm/oidc/parseFromUrl.js +0 -144
  255. package/esm/oidc/parseFromUrl.js.map +0 -1
  256. package/esm/oidc/renewToken.js +0 -85
  257. package/esm/oidc/renewToken.js.map +0 -1
  258. package/esm/oidc/renewTokens.js +0 -74
  259. package/esm/oidc/renewTokens.js.map +0 -1
  260. package/esm/oidc/renewTokensWithRefresh.js +0 -55
  261. package/esm/oidc/renewTokensWithRefresh.js.map +0 -1
  262. package/esm/oidc/revokeToken.js +0 -57
  263. package/esm/oidc/revokeToken.js.map +0 -1
  264. package/esm/oidc/util/browser.js +0 -74
  265. package/esm/oidc/util/browser.js.map +0 -1
  266. package/esm/oidc/util/defaultTokenParams.js +0 -42
  267. package/esm/oidc/util/defaultTokenParams.js.map +0 -1
  268. package/esm/oidc/util/errors.js +0 -31
  269. package/esm/oidc/util/errors.js.map +0 -1
  270. package/esm/oidc/util/index.js +0 -25
  271. package/esm/oidc/util/index.js.map +0 -1
  272. package/esm/oidc/util/loginRedirect.js +0 -88
  273. package/esm/oidc/util/loginRedirect.js.map +0 -1
  274. package/esm/oidc/util/oauth.js +0 -70
  275. package/esm/oidc/util/oauth.js.map +0 -1
  276. package/esm/oidc/util/pkce.js +0 -55
  277. package/esm/oidc/util/pkce.js.map +0 -1
  278. package/esm/oidc/util/prepareTokenParams.js +0 -75
  279. package/esm/oidc/util/prepareTokenParams.js.map +0 -1
  280. package/esm/oidc/util/refreshToken.js +0 -24
  281. package/esm/oidc/util/refreshToken.js.map +0 -1
  282. package/esm/oidc/util/urlParams.js +0 -54
  283. package/esm/oidc/util/urlParams.js.map +0 -1
  284. package/esm/oidc/util/validateClaims.js +0 -53
  285. package/esm/oidc/util/validateClaims.js.map +0 -1
  286. package/esm/oidc/util/validateToken.js +0 -21
  287. package/esm/oidc/util/validateToken.js.map +0 -1
  288. package/esm/oidc/verifyToken.js +0 -78
  289. package/esm/oidc/verifyToken.js.map +0 -1
  290. package/esm/options.js +0 -144
  291. package/esm/options.js.map +0 -1
  292. package/esm/server/serverStorage.js +0 -111
  293. package/esm/server/serverStorage.js.map +0 -1
  294. package/esm/services/TokenService.js +0 -103
  295. package/esm/services/TokenService.js.map +0 -1
  296. package/esm/session.js +0 -81
  297. package/esm/session.js.map +0 -1
  298. package/esm/tx/AuthTransaction.js +0 -213
  299. package/esm/tx/AuthTransaction.js.map +0 -1
  300. package/esm/tx/TransactionState.js.map +0 -1
  301. package/esm/tx/api.js +0 -87
  302. package/esm/tx/api.js.map +0 -1
  303. package/esm/tx/index.js +0 -18
  304. package/esm/tx/index.js.map +0 -1
  305. package/esm/tx/poll.js +0 -124
  306. package/esm/tx/poll.js.map +0 -1
  307. package/esm/tx/util.js +0 -26
  308. package/esm/tx/util.js.map +0 -1
  309. package/esm/types/AuthState.js +0 -3
  310. package/esm/types/Cookies.js +0 -3
  311. package/esm/types/EventEmitter.js +0 -3
  312. package/esm/types/EventEmitter.js.map +0 -1
  313. package/esm/types/JWT.js +0 -3
  314. package/esm/types/JWT.js.map +0 -1
  315. package/esm/types/OAuth.js +0 -3
  316. package/esm/types/OAuth.js.map +0 -1
  317. package/esm/types/OktaAuthOptions.js +0 -3
  318. package/esm/types/OktaAuthOptions.js.map +0 -1
  319. package/esm/types/Storage.js +0 -3
  320. package/esm/types/Storage.js.map +0 -1
  321. package/esm/types/Token.js +0 -29
  322. package/esm/types/Token.js.map +0 -1
  323. package/esm/types/TokenManager.js +0 -3
  324. package/esm/types/TokenManager.js.map +0 -1
  325. package/esm/types/Transaction.js +0 -57
  326. package/esm/types/Transaction.js.map +0 -1
  327. package/esm/types/UserClaims.js +0 -3
  328. package/esm/types/UserClaims.js.map +0 -1
  329. package/esm/types/api.js +0 -3
  330. package/esm/types/api.js.map +0 -1
  331. package/esm/types/http.js +0 -3
  332. package/esm/types/http.js.map +0 -1
  333. package/esm/types/index.js +0 -27
  334. package/esm/types/index.js.map +0 -1
  335. package/esm/util/console.js +0 -53
  336. package/esm/util/console.js.map +0 -1
  337. package/esm/util/emailVerify.js +0 -21
  338. package/esm/util/emailVerify.js.map +0 -1
  339. package/esm/util/index.js +0 -18
  340. package/esm/util/index.js.map +0 -1
  341. package/esm/util/misc.js +0 -33
  342. package/esm/util/misc.js.map +0 -1
  343. package/esm/util/object.js +0 -117
  344. package/esm/util/object.js.map +0 -1
  345. package/esm/util/sharedStorage.js +0 -43
  346. package/esm/util/sharedStorage.js.map +0 -1
  347. package/esm/util/types.js +0 -27
  348. package/esm/util/types.js.map +0 -1
  349. package/esm/util/url.js +0 -64
  350. package/esm/util/url.js.map +0 -1
@@ -1,103 +0,0 @@
1
- /*!
2
- * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
3
- * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
4
- *
5
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
6
- * Unless required by applicable law or agreed to in writing, software
7
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
8
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
- *
10
- * See the License for the specific language governing permissions and limitations under the License.
11
- */
12
-
13
- /* global window */
14
- import { EVENT_EXPIRED } from '../TokenManager';
15
- import { AuthSdkError } from '../errors';
16
- import { isBrowser } from '../features';
17
-
18
- function shouldThrottleRenew(renewTimeQueue) {
19
- var res = false;
20
- renewTimeQueue.push(Date.now());
21
-
22
- if (renewTimeQueue.length >= 10) {
23
- // get and remove first item from queue
24
- var firstTime = renewTimeQueue.shift();
25
- var lastTime = renewTimeQueue[renewTimeQueue.length - 1];
26
- res = lastTime - firstTime < 30 * 1000;
27
- }
28
-
29
- return res;
30
- }
31
-
32
- export class TokenService {
33
- constructor(tokenManager) {
34
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
35
- this.tokenManager = tokenManager;
36
- this.options = options;
37
- }
38
-
39
- start() {
40
- var renewTimeQueue = [];
41
-
42
- this.onTokenExpiredHandler = key => {
43
- if (this.options.autoRenew) {
44
- if (shouldThrottleRenew(renewTimeQueue)) {
45
- var error = new AuthSdkError('Too many token renew requests');
46
- this.tokenManager.emitError(error);
47
- } else {
48
- this.tokenManager.renew(key).catch(() => {}); // Renew errors will emit an "error" event
49
- }
50
- } else if (this.options.autoRemove) {
51
- this.tokenManager.remove(key);
52
- }
53
- };
54
-
55
- this.tokenManager.on(EVENT_EXPIRED, this.onTokenExpiredHandler);
56
- this.tokenManager.setExpireEventTimeoutAll();
57
-
58
- if (this.options.syncStorage && isBrowser()) {
59
- // Sync authState cross multiple tabs when localStorage is used as the storageProvider
60
- // A StorageEvent is sent to a window when a storage area it has access to is changed
61
- // within the context of another document.
62
- // https://developer.mozilla.org/en-US/docs/Web/API/StorageEvent
63
- this.storageListener = _ref => {
64
- var {
65
- key,
66
- newValue,
67
- oldValue
68
- } = _ref;
69
-
70
- var handleCrossTabsStorageChange = () => {
71
- this.tokenManager.resetExpireEventTimeoutAll();
72
- this.tokenManager.emitEventsForCrossTabsStorageUpdate(newValue, oldValue);
73
- }; // Skip if:
74
- // not from localStorage.clear (event.key is null)
75
- // event.key is not the storageKey
76
- // oldValue === newValue
77
-
78
-
79
- if (key && (key !== this.options.storageKey || newValue === oldValue)) {
80
- return;
81
- } // LocalStorage cross tabs update is not synced in IE, set a 1s timer by default to read latest value
82
- // https://stackoverflow.com/questions/24077117/localstorage-in-win8-1-ie11-does-not-synchronize
83
-
84
-
85
- this.syncTimeout = setTimeout(() => handleCrossTabsStorageChange(), this.options._storageEventDelay);
86
- };
87
-
88
- window.addEventListener('storage', this.storageListener);
89
- }
90
- }
91
-
92
- stop() {
93
- this.tokenManager.clearExpireEventTimeoutAll();
94
- this.tokenManager.off(EVENT_EXPIRED, this.onTokenExpiredHandler);
95
-
96
- if (this.options.syncStorage && isBrowser()) {
97
- window.removeEventListener('storage', this.storageListener);
98
- clearTimeout(this.syncTimeout);
99
- }
100
- }
101
-
102
- }
103
- //# sourceMappingURL=TokenService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../lib/services/TokenService.ts"],"names":["EVENT_EXPIRED","AuthSdkError","isBrowser","shouldThrottleRenew","renewTimeQueue","res","push","Date","now","length","firstTime","shift","lastTime","TokenService","constructor","tokenManager","options","start","onTokenExpiredHandler","key","autoRenew","error","emitError","renew","catch","autoRemove","remove","on","setExpireEventTimeoutAll","syncStorage","storageListener","newValue","oldValue","handleCrossTabsStorageChange","resetExpireEventTimeoutAll","emitEventsForCrossTabsStorageUpdate","storageKey","syncTimeout","setTimeout","_storageEventDelay","window","addEventListener","stop","clearExpireEventTimeoutAll","off","removeEventListener","clearTimeout"],"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/* global window */\nimport { TokenManager, EVENT_EXPIRED } from '../TokenManager';\nimport { AuthSdkError } from '../errors';\nimport { isBrowser } from '../features';\nimport { TokenManagerOptions } from '../types';\n\nfunction shouldThrottleRenew(renewTimeQueue) {\n let res = false;\n renewTimeQueue.push(Date.now());\n if (renewTimeQueue.length >= 10) {\n // get and remove first item from queue\n const firstTime = renewTimeQueue.shift();\n const lastTime = renewTimeQueue[renewTimeQueue.length - 1];\n res = lastTime - firstTime < 30 * 1000;\n }\n return res;\n}\n\nexport class TokenService {\n private tokenManager: TokenManager;\n private options: TokenManagerOptions;\n private storageListener: (event: StorageEvent) => void;\n private onTokenExpiredHandler: (key: string) => void;\n private syncTimeout: unknown;\n\n constructor(tokenManager: TokenManager, options: TokenManagerOptions = {}) {\n this.tokenManager = tokenManager;\n this.options = options;\n }\n\n start() {\n const renewTimeQueue = [];\n this.onTokenExpiredHandler = (key) => {\n if (this.options.autoRenew) {\n if (shouldThrottleRenew(renewTimeQueue)) {\n const error = new AuthSdkError('Too many token renew requests');\n this.tokenManager.emitError(error);\n } else {\n this.tokenManager.renew(key).catch(() => {}); // Renew errors will emit an \"error\" event \n }\n } else if (this.options.autoRemove) {\n this.tokenManager.remove(key);\n }\n };\n this.tokenManager.on(EVENT_EXPIRED, this.onTokenExpiredHandler);\n\n this.tokenManager.setExpireEventTimeoutAll();\n\n if (this.options.syncStorage && isBrowser()) {\n // Sync authState cross multiple tabs when localStorage is used as the storageProvider\n // A StorageEvent is sent to a window when a storage area it has access to is changed \n // within the context of another document.\n // https://developer.mozilla.org/en-US/docs/Web/API/StorageEvent\n\n this.storageListener = ({ key, newValue, oldValue }: StorageEvent) => {\n const handleCrossTabsStorageChange = () => {\n this.tokenManager.resetExpireEventTimeoutAll();\n this.tokenManager.emitEventsForCrossTabsStorageUpdate(newValue, oldValue);\n };\n\n // Skip if:\n // not from localStorage.clear (event.key is null)\n // event.key is not the storageKey\n // oldValue === newValue\n if (key && (key !== this.options.storageKey || newValue === oldValue)) {\n return;\n }\n\n // LocalStorage cross tabs update is not synced in IE, set a 1s timer by default to read latest value\n // https://stackoverflow.com/questions/24077117/localstorage-in-win8-1-ie11-does-not-synchronize\n this.syncTimeout = setTimeout(() => handleCrossTabsStorageChange(), this.options._storageEventDelay);\n };\n\n window.addEventListener('storage', this.storageListener);\n }\n }\n\n stop() {\n this.tokenManager.clearExpireEventTimeoutAll();\n this.tokenManager.off(EVENT_EXPIRED, this.onTokenExpiredHandler);\n if (this.options.syncStorage && isBrowser()) {\n window.removeEventListener('storage', this.storageListener);\n clearTimeout(this.syncTimeout as any);\n }\n }\n}"],"file":"TokenService.js"}
package/esm/session.js DELETED
@@ -1,81 +0,0 @@
1
- /*!
2
- * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
3
- * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
4
- *
5
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
6
- * Unless required by applicable law or agreed to in writing, software
7
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
8
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
- *
10
- * See the License for the specific language governing permissions and limitations under the License.
11
- *
12
- */
13
-
14
- /* global window */
15
- import { omit, getLink, toQueryString } from './util';
16
- import { get, post, httpRequest } from './http';
17
-
18
- function sessionExists(sdk) {
19
- return sdk.session.get().then(function (res) {
20
- if (res.status === 'ACTIVE') {
21
- return true;
22
- }
23
-
24
- return false;
25
- }).catch(function () {
26
- return false;
27
- });
28
- }
29
-
30
- function getSession(sdk) {
31
- return get(sdk, '/api/v1/sessions/me', {
32
- withCredentials: true
33
- }).then(function (session) {
34
- var res = omit(session, '_links');
35
-
36
- res.refresh = function () {
37
- return post(sdk, getLink(session, 'refresh').href, {}, {
38
- withCredentials: true
39
- });
40
- };
41
-
42
- res.user = function () {
43
- return get(sdk, getLink(session, 'user').href, {
44
- withCredentials: true
45
- });
46
- };
47
-
48
- return res;
49
- }).catch(function () {
50
- // Return INACTIVE status on failure
51
- return {
52
- status: 'INACTIVE'
53
- };
54
- });
55
- }
56
-
57
- function closeSession(sdk) {
58
- return httpRequest(sdk, {
59
- url: sdk.getIssuerOrigin() + '/api/v1/sessions/me',
60
- method: 'DELETE',
61
- withCredentials: true
62
- });
63
- }
64
-
65
- function refreshSession(sdk) {
66
- return post(sdk, '/api/v1/sessions/me/lifecycle/refresh', {}, {
67
- withCredentials: true
68
- });
69
- }
70
-
71
- function setCookieAndRedirect(sdk, sessionToken, redirectUrl) {
72
- redirectUrl = redirectUrl || window.location.href;
73
- window.location.assign(sdk.getIssuerOrigin() + '/login/sessionCookieRedirect' + toQueryString({
74
- checkAccountSetupComplete: true,
75
- token: sessionToken,
76
- redirectUrl: redirectUrl
77
- }));
78
- }
79
-
80
- export { sessionExists, getSession, closeSession, refreshSession, setCookieAndRedirect };
81
- //# sourceMappingURL=session.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../lib/session.ts"],"names":["omit","getLink","toQueryString","get","post","httpRequest","sessionExists","sdk","session","then","res","status","catch","getSession","withCredentials","refresh","href","user","closeSession","url","getIssuerOrigin","method","refreshSession","setCookieAndRedirect","sessionToken","redirectUrl","window","location","assign","checkAccountSetupComplete","token"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA,SAASA,IAAT,EAAeC,OAAf,EAAwBC,aAAxB,QAA6C,QAA7C;AACA,SAASC,GAAT,EAAcC,IAAd,EAAoBC,WAApB,QAAuC,QAAvC;;AAEA,SAASC,aAAT,CAAuBC,GAAvB,EAA4B;AAC1B,SAAOA,GAAG,CAACC,OAAJ,CAAYL,GAAZ,GACJM,IADI,CACC,UAASC,GAAT,EAAc;AAClB,QAAIA,GAAG,CAACC,MAAJ,KAAe,QAAnB,EAA6B;AAC3B,aAAO,IAAP;AACD;;AACD,WAAO,KAAP;AACD,GANI,EAOJC,KAPI,CAOE,YAAW;AAChB,WAAO,KAAP;AACD,GATI,CAAP;AAUD;;AAED,SAASC,UAAT,CAAoBN,GAApB,EAAyB;AACvB,SAAOJ,GAAG,CAACI,GAAD,EAAM,qBAAN,EAA6B;AAAEO,IAAAA,eAAe,EAAE;AAAnB,GAA7B,CAAH,CACNL,IADM,CACD,UAASD,OAAT,EAAkB;AACtB,QAAIE,GAAG,GAAGV,IAAI,CAACQ,OAAD,EAAU,QAAV,CAAd;;AAEAE,IAAAA,GAAG,CAACK,OAAJ,GAAc,YAAW;AACvB,aAAOX,IAAI,CAACG,GAAD,EAAMN,OAAO,CAACO,OAAD,EAAU,SAAV,CAAP,CAA4BQ,IAAlC,EAAwC,EAAxC,EAA4C;AAAEF,QAAAA,eAAe,EAAE;AAAnB,OAA5C,CAAX;AACD,KAFD;;AAIAJ,IAAAA,GAAG,CAACO,IAAJ,GAAW,YAAW;AACpB,aAAOd,GAAG,CAACI,GAAD,EAAMN,OAAO,CAACO,OAAD,EAAU,MAAV,CAAP,CAAyBQ,IAA/B,EAAqC;AAAEF,QAAAA,eAAe,EAAE;AAAnB,OAArC,CAAV;AACD,KAFD;;AAIA,WAAOJ,GAAP;AACD,GAbM,EAcNE,KAdM,CAcA,YAAW;AAChB;AACA,WAAO;AAACD,MAAAA,MAAM,EAAE;AAAT,KAAP;AACD,GAjBM,CAAP;AAkBD;;AAED,SAASO,YAAT,CAAsBX,GAAtB,EAA2B;AACzB,SAAOF,WAAW,CAACE,GAAD,EAAM;AACtBY,IAAAA,GAAG,EAAEZ,GAAG,CAACa,eAAJ,KAAwB,qBADP;AAEtBC,IAAAA,MAAM,EAAE,QAFc;AAGtBP,IAAAA,eAAe,EAAE;AAHK,GAAN,CAAlB;AAKD;;AAED,SAASQ,cAAT,CAAwBf,GAAxB,EAA6B;AAC3B,SAAOH,IAAI,CAACG,GAAD,EAAM,uCAAN,EAA+C,EAA/C,EAAmD;AAAEO,IAAAA,eAAe,EAAE;AAAnB,GAAnD,CAAX;AACD;;AAED,SAASS,oBAAT,CAA8BhB,GAA9B,EAAmCiB,YAAnC,EAAiDC,WAAjD,EAA8D;AAC5DA,EAAAA,WAAW,GAAGA,WAAW,IAAIC,MAAM,CAACC,QAAP,CAAgBX,IAA7C;AACAU,EAAAA,MAAM,CAACC,QAAP,CAAgBC,MAAhB,CAAuBrB,GAAG,CAACa,eAAJ,KAAwB,8BAAxB,GACrBlB,aAAa,CAAC;AACZ2B,IAAAA,yBAAyB,EAAE,IADf;AAEZC,IAAAA,KAAK,EAAEN,YAFK;AAGZC,IAAAA,WAAW,EAAEA;AAHD,GAAD,CADf;AAMD;;AAED,SACEnB,aADF,EAEEO,UAFF,EAGEK,YAHF,EAIEI,cAJF,EAKEC,oBALF","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/* global window */\nimport { omit, getLink, toQueryString } from './util';\nimport { get, post, httpRequest } from './http';\n\nfunction sessionExists(sdk) {\n return sdk.session.get()\n .then(function(res) {\n if (res.status === 'ACTIVE') {\n return true;\n }\n return false;\n })\n .catch(function() {\n return false;\n });\n}\n\nfunction getSession(sdk) { \n return get(sdk, '/api/v1/sessions/me', { withCredentials: true })\n .then(function(session) {\n var res = omit(session, '_links');\n\n res.refresh = function() {\n return post(sdk, getLink(session, 'refresh').href, {}, { withCredentials: true });\n };\n\n res.user = function() {\n return get(sdk, getLink(session, 'user').href, { withCredentials: true });\n };\n\n return res;\n })\n .catch(function() {\n // Return INACTIVE status on failure\n return {status: 'INACTIVE'};\n });\n}\n\nfunction closeSession(sdk) {\n return httpRequest(sdk, {\n url: sdk.getIssuerOrigin() + '/api/v1/sessions/me',\n method: 'DELETE',\n withCredentials: true\n });\n}\n\nfunction refreshSession(sdk) {\n return post(sdk, '/api/v1/sessions/me/lifecycle/refresh', {}, { withCredentials: true });\n}\n\nfunction setCookieAndRedirect(sdk, sessionToken, redirectUrl) {\n redirectUrl = redirectUrl || window.location.href;\n window.location.assign(sdk.getIssuerOrigin() + '/login/sessionCookieRedirect' +\n toQueryString({\n checkAccountSetupComplete: true,\n token: sessionToken,\n redirectUrl: redirectUrl\n }));\n}\n\nexport {\n sessionExists,\n getSession,\n closeSession,\n refreshSession,\n setCookieAndRedirect\n};\n"],"file":"session.js"}
@@ -1,213 +0,0 @@
1
- /*!
2
- * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
3
- * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
4
- *
5
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
6
- * Unless required by applicable law or agreed to in writing, software
7
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
8
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
- *
10
- * See the License for the specific language governing permissions and limitations under the License.
11
- *
12
- */
13
- import { get } from '../http';
14
- import { find, omit, toQueryString, clone, isObject } from '../util';
15
- import AuthSdkError from '../errors/AuthSdkError';
16
- import { addStateToken } from './util';
17
- import { getPollFn } from './poll';
18
- import { postToTransaction } from './api';
19
- export class AuthTransaction {
20
- constructor(sdk) {
21
- var res = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
22
-
23
- if (res) {
24
- this.data = res;
25
-
26
- if (this.data.interactionHandle) {
27
- this.status = res.status;
28
- return;
29
- } // Parse response from Authn V1
30
-
31
-
32
- Object.assign(this, flattenEmbedded(sdk, res, res, {}));
33
- delete this.stateToken; // RECOVERY_CHALLENGE has some responses without _links.
34
- // Without _links, we emulate cancel to make it intuitive
35
- // to return to the starting state. We may remove this
36
- // when OKTA-75434 is resolved
37
-
38
- if (res.status === 'RECOVERY_CHALLENGE' && !res._links) {
39
- this.cancel = function () {
40
- return Promise.resolve(new AuthTransaction(sdk));
41
- };
42
- }
43
- }
44
- }
45
-
46
- }
47
-
48
- function link2fn(sdk, res, obj, link, ref) {
49
- if (Array.isArray(link)) {
50
- return function (name, opts) {
51
- if (!name) {
52
- throw new AuthSdkError('Must provide a link name');
53
- }
54
-
55
- var lk = find(link, {
56
- name: name
57
- });
58
-
59
- if (!lk) {
60
- throw new AuthSdkError('No link found for that name');
61
- }
62
-
63
- return link2fn(sdk, res, obj, lk, ref)(opts);
64
- };
65
- } else if (link.hints && link.hints.allow && link.hints.allow.length === 1) {
66
- var method = link.hints.allow[0];
67
-
68
- switch (method) {
69
- case 'GET':
70
- return function () {
71
- return get(sdk, link.href, {
72
- withCredentials: true
73
- });
74
- };
75
-
76
- case 'POST':
77
- // eslint-disable-next-line max-statements,complexity
78
- return function (opts) {
79
- if (ref && ref.isPolling) {
80
- ref.isPolling = false;
81
- }
82
-
83
- var data = addStateToken(res, opts);
84
-
85
- if (res.status === 'MFA_ENROLL' || res.status === 'FACTOR_ENROLL') {
86
- // Add factorType and provider
87
- Object.assign(data, {
88
- factorType: obj.factorType,
89
- provider: obj.provider
90
- });
91
- }
92
-
93
- var params = {};
94
- var autoPush = data.autoPush;
95
-
96
- if (autoPush !== undefined) {
97
- if (typeof autoPush === 'function') {
98
- try {
99
- params.autoPush = !!autoPush();
100
- } catch (e) {
101
- return Promise.reject(new AuthSdkError('AutoPush resulted in an error.'));
102
- }
103
- } else if (autoPush !== null) {
104
- params.autoPush = !!autoPush;
105
- }
106
-
107
- data = omit(data, 'autoPush');
108
- }
109
-
110
- var rememberDevice = data.rememberDevice;
111
-
112
- if (rememberDevice !== undefined) {
113
- if (typeof rememberDevice === 'function') {
114
- try {
115
- params.rememberDevice = !!rememberDevice();
116
- } catch (e) {
117
- return Promise.reject(new AuthSdkError('RememberDevice resulted in an error.'));
118
- }
119
- } else if (rememberDevice !== null) {
120
- params.rememberDevice = !!rememberDevice;
121
- }
122
-
123
- data = omit(data, 'rememberDevice');
124
- } else if (data.profile && data.profile.updatePhone !== undefined) {
125
- if (data.profile.updatePhone) {
126
- params.updatePhone = true;
127
- }
128
-
129
- data.profile = omit(data.profile, 'updatePhone');
130
- }
131
-
132
- var href = link.href + toQueryString(params);
133
- return postToTransaction(sdk, href, data);
134
- };
135
- }
136
- }
137
- }
138
-
139
- function links2fns(sdk, res, obj, ref) {
140
- var fns = {};
141
-
142
- for (var linkName in obj._links) {
143
- if (!Object.prototype.hasOwnProperty.call(obj._links, linkName)) {
144
- continue;
145
- }
146
-
147
- var link = obj._links[linkName];
148
-
149
- if (linkName === 'next') {
150
- linkName = link.name;
151
- }
152
-
153
- if (link.type) {
154
- fns[linkName] = link;
155
- continue;
156
- }
157
-
158
- switch (linkName) {
159
- // poll is only found at the transaction
160
- // level, so we don't need to pass the link
161
- case 'poll':
162
- fns.poll = getPollFn(sdk, res, ref);
163
- break;
164
-
165
- default:
166
- var fn = link2fn(sdk, res, obj, link, ref);
167
-
168
- if (fn) {
169
- fns[linkName] = fn;
170
- }
171
-
172
- }
173
- }
174
-
175
- return fns;
176
- } // eslint-disable-next-line complexity
177
-
178
-
179
- function flattenEmbedded(sdk, res, obj, ref) {
180
- obj = obj || res;
181
- obj = clone(obj);
182
-
183
- if (Array.isArray(obj)) {
184
- var objArr = [];
185
-
186
- for (var o = 0, ol = obj.length; o < ol; o++) {
187
- objArr.push(flattenEmbedded(sdk, res, obj[o], ref));
188
- }
189
-
190
- return objArr;
191
- }
192
-
193
- var embedded = obj._embedded || {};
194
-
195
- for (var key in embedded) {
196
- if (!Object.prototype.hasOwnProperty.call(embedded, key)) {
197
- continue;
198
- } // Flatten any nested _embedded objects
199
-
200
-
201
- if (isObject(embedded[key]) || Array.isArray(embedded[key])) {
202
- embedded[key] = flattenEmbedded(sdk, res, embedded[key], ref);
203
- }
204
- } // Convert any links on the embedded object
205
-
206
-
207
- var fns = links2fns(sdk, res, obj, ref);
208
- Object.assign(embedded, fns);
209
- obj = omit(obj, '_embedded', '_links');
210
- Object.assign(obj, embedded);
211
- return obj;
212
- }
213
- //# sourceMappingURL=AuthTransaction.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../lib/tx/AuthTransaction.ts"],"names":["get","find","omit","toQueryString","clone","isObject","AuthSdkError","addStateToken","getPollFn","postToTransaction","AuthTransaction","constructor","sdk","res","data","interactionHandle","status","Object","assign","flattenEmbedded","stateToken","_links","cancel","Promise","resolve","link2fn","obj","link","ref","Array","isArray","name","opts","lk","hints","allow","length","method","href","withCredentials","isPolling","factorType","provider","params","autoPush","undefined","e","reject","rememberDevice","profile","updatePhone","links2fns","fns","linkName","prototype","hasOwnProperty","call","type","poll","fn","objArr","o","ol","push","embedded","_embedded","key"],"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 { get } from '../http';\nimport { find, omit, toQueryString, clone, isObject } from '../util';\nimport AuthSdkError from '../errors/AuthSdkError';\nimport { TransactionState } from './TransactionState';\nimport { addStateToken } from './util';\nimport { getPollFn } from './poll';\nimport { postToTransaction } from './api';\nimport { IdxStatus } from '../idx/types';\n\ninterface PostToTransactionParams {\n autoPush?: boolean;\n rememberDevice?: boolean;\n updatePhone?: boolean;\n}\n\ntype AuthTransactionFunction = (obj?: any) => Promise<AuthTransaction>;\n\ninterface AuthTransactionFunctions {\n // common\n next?: AuthTransactionFunction;\n cancel?: AuthTransactionFunction;\n skip?: AuthTransactionFunction;\n // locked_out\n unlock?: AuthTransactionFunction;\n // password\n changePassword?: AuthTransactionFunction;\n resetPassword?: AuthTransactionFunction;\n // recovery\n answer?: AuthTransactionFunction;\n recovery?: AuthTransactionFunction;\n // recovery_challenge\n verify?: AuthTransactionFunction;\n resend?: AuthTransactionFunction;\n // mfa_enroll_activate\n activate?: AuthTransactionFunction;\n poll?: AuthTransactionFunction;\n prev?: AuthTransactionFunction;\n}\n\nexport class AuthTransaction implements TransactionState, AuthTransactionFunctions {\n next?: AuthTransactionFunction;\n cancel?: AuthTransactionFunction;\n skip?: AuthTransactionFunction;\n unlock?: AuthTransactionFunction;\n changePassword?: AuthTransactionFunction;\n resetPassword?: AuthTransactionFunction;\n answer?: AuthTransactionFunction;\n recovery?: AuthTransactionFunction;\n verify?: AuthTransactionFunction;\n resend?: AuthTransactionFunction;\n activate?: AuthTransactionFunction;\n poll?: AuthTransactionFunction;\n prev?: AuthTransactionFunction;\n\n data: TransactionState;\n stateToken?: string;\n sessionToken?: string;\n status: string | IdxStatus;\n user?: Record<string, any>;\n factor?: Record<string, any>;\n factors?: Array<Record<string, any> >;\n policy?: Record<string, any>;\n scopes?: Array<Record<string, any> >;\n target?: Record<string, any>;\n authentication?: Record<string, any>;\n constructor(sdk, res = null) {\n if (res) {\n this.data = res;\n\n if (this.data.interactionHandle) {\n this.status = res.status;\n return;\n }\n\n // Parse response from Authn V1\n Object.assign(this, flattenEmbedded(sdk, res, res, {}));\n delete this.stateToken;\n\n // RECOVERY_CHALLENGE has some responses without _links.\n // Without _links, we emulate cancel to make it intuitive\n // to return to the starting state. We may remove this\n // when OKTA-75434 is resolved\n if (res.status === 'RECOVERY_CHALLENGE' && !res._links) {\n this.cancel = function() {\n return Promise.resolve(new AuthTransaction(sdk));\n };\n }\n }\n }\n}\n\nfunction link2fn(sdk, res, obj, link, ref) {\n if (Array.isArray(link)) {\n return function(name, opts?) {\n if (!name) {\n throw new AuthSdkError('Must provide a link name');\n }\n\n var lk = find(link, {name: name});\n if (!lk) {\n throw new AuthSdkError('No link found for that name');\n }\n\n return link2fn(sdk, res, obj, lk, ref)(opts);\n };\n\n } else if (link.hints &&\n link.hints.allow &&\n link.hints.allow.length === 1) {\n var method = link.hints.allow[0];\n switch (method) {\n\n case 'GET':\n return function() {\n return get(sdk, link.href, { withCredentials: true });\n };\n\n case 'POST':\n // eslint-disable-next-line max-statements,complexity\n return function(opts: TransactionState) {\n if (ref && ref.isPolling) {\n ref.isPolling = false;\n }\n\n var data = addStateToken(res, opts);\n\n if (res.status === 'MFA_ENROLL' || res.status === 'FACTOR_ENROLL') {\n // Add factorType and provider\n Object.assign(data, {\n factorType: obj.factorType,\n provider: obj.provider\n });\n }\n\n var params = {} as PostToTransactionParams;\n var autoPush = data.autoPush;\n if (autoPush !== undefined) {\n if (typeof autoPush === 'function') {\n try {\n params.autoPush = !!autoPush();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('AutoPush resulted in an error.'));\n }\n }\n else if (autoPush !== null) {\n params.autoPush = !!autoPush;\n }\n data = omit(data, 'autoPush');\n }\n\n var rememberDevice = data.rememberDevice;\n if (rememberDevice !== undefined) {\n if (typeof rememberDevice === 'function') {\n try {\n params.rememberDevice = !!rememberDevice();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('RememberDevice resulted in an error.'));\n }\n }\n else if (rememberDevice !== null) {\n params.rememberDevice = !!rememberDevice;\n }\n data = omit(data, 'rememberDevice');\n\n } else if (data.profile &&\n data.profile.updatePhone !== undefined) {\n if (data.profile.updatePhone) {\n params.updatePhone = true;\n }\n data.profile = omit(data.profile, 'updatePhone');\n }\n var href = link.href + toQueryString(params);\n return postToTransaction(sdk, href, data);\n };\n }\n }\n}\n\nfunction links2fns(sdk, res, obj, ref) {\n var fns = {} as AuthTransactionFunctions;\n for (var linkName in obj._links) {\n if (!Object.prototype.hasOwnProperty.call(obj._links, linkName)) {\n continue;\n }\n\n var link = obj._links[linkName];\n \n if (linkName === 'next') {\n linkName = link.name;\n }\n\n if (link.type) {\n fns[linkName] = link;\n continue;\n }\n\n switch (linkName) {\n // poll is only found at the transaction\n // level, so we don't need to pass the link\n case 'poll':\n fns.poll = getPollFn(sdk, res, ref);\n break;\n\n default:\n var fn = link2fn(sdk, res, obj, link, ref);\n if (fn) {\n fns[linkName] = fn;\n }\n }\n }\n return fns;\n}\n\n// eslint-disable-next-line complexity\nfunction flattenEmbedded(sdk, res, obj, ref) {\n obj = obj || res;\n obj = clone(obj);\n\n if (Array.isArray(obj)) {\n var objArr = [];\n for (var o = 0, ol = obj.length; o < ol; o++) {\n objArr.push(flattenEmbedded(sdk, res, obj[o], ref));\n }\n return objArr;\n }\n\n var embedded = obj._embedded || {};\n\n for (var key in embedded) {\n if (!Object.prototype.hasOwnProperty.call(embedded, key)) {\n continue;\n }\n\n // Flatten any nested _embedded objects\n if (isObject(embedded[key]) || Array.isArray(embedded[key])) {\n embedded[key] = flattenEmbedded(sdk, res, embedded[key], ref);\n }\n }\n\n // Convert any links on the embedded object\n var fns = links2fns(sdk, res, obj, ref);\n Object.assign(embedded, fns);\n\n obj = omit(obj, '_embedded', '_links');\n Object.assign(obj, embedded);\n return obj;\n}\n"],"file":"AuthTransaction.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../lib/tx/TransactionState.ts"],"names":["TransactionState"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA,OAAO,MAAMA,gBAAN,CAAuB","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\nexport class TransactionState {\n interactionHandle?: string;\n\n// Authn V1 only\n stateToken?: string;\n type?: string;\n expiresAt?: string;\n relayState?: string;\n factorResult?: string;\n factorType?: string;\n recoveryToken?: string;\n recoveryType?: string;\n autoPush?: boolean | (() => boolean);\n rememberDevice?: boolean | (() => boolean);\n profile?: {\n updatePhone?: boolean;\n };\n}"],"file":"TransactionState.js"}
package/esm/tx/api.js DELETED
@@ -1,87 +0,0 @@
1
- /*!
2
- * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
3
- * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
4
- *
5
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
6
- * Unless required by applicable law or agreed to in writing, software
7
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
8
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
- *
10
- * See the License for the specific language governing permissions and limitations under the License.
11
- *
12
- */
13
-
14
- /* eslint-disable complexity, max-statements */
15
- import { post } from '../http';
16
- import AuthSdkError from '../errors/AuthSdkError';
17
- import { STATE_TOKEN_KEY_NAME } from '../constants';
18
- import { addStateToken } from './util';
19
- import { AuthTransaction } from './AuthTransaction';
20
-
21
- function transactionStatus(sdk, args) {
22
- args = addStateToken(sdk, args);
23
- return post(sdk, sdk.getIssuerOrigin() + '/api/v1/authn', args, {
24
- withCredentials: true
25
- });
26
- }
27
-
28
- function resumeTransaction(sdk, args) {
29
- if (!args || !args.stateToken) {
30
- var stateToken = sdk.tx.exists._get(STATE_TOKEN_KEY_NAME);
31
-
32
- if (stateToken) {
33
- args = {
34
- stateToken: stateToken
35
- };
36
- } else {
37
- return Promise.reject(new AuthSdkError('No transaction to resume'));
38
- }
39
- }
40
-
41
- return sdk.tx.status(args).then(function (res) {
42
- return new AuthTransaction(sdk, res);
43
- });
44
- }
45
-
46
- function introspect(sdk, args) {
47
- if (!args || !args.stateToken) {
48
- var stateToken = sdk.tx.exists._get(STATE_TOKEN_KEY_NAME);
49
-
50
- if (stateToken) {
51
- args = {
52
- stateToken: stateToken
53
- };
54
- } else {
55
- return Promise.reject(new AuthSdkError('No transaction to evaluate'));
56
- }
57
- }
58
-
59
- return transactionStep(sdk, args).then(function (res) {
60
- return new AuthTransaction(sdk, res);
61
- });
62
- }
63
-
64
- function transactionStep(sdk, args) {
65
- args = addStateToken(sdk, args); // v1 pipeline introspect API
66
-
67
- return post(sdk, sdk.getIssuerOrigin() + '/api/v1/authn/introspect', args, {
68
- withCredentials: true
69
- });
70
- }
71
-
72
- function transactionExists(sdk) {
73
- // We have a cookie state token
74
- return !!sdk.tx.exists._get(STATE_TOKEN_KEY_NAME);
75
- }
76
-
77
- function postToTransaction(sdk, url, args, options) {
78
- options = Object.assign({
79
- withCredentials: true
80
- }, options);
81
- return post(sdk, url, args, options).then(function (res) {
82
- return new AuthTransaction(sdk, res);
83
- });
84
- }
85
-
86
- export { transactionStatus, resumeTransaction, transactionExists, postToTransaction, introspect };
87
- //# sourceMappingURL=api.js.map
package/esm/tx/api.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../lib/tx/api.ts"],"names":["post","AuthSdkError","STATE_TOKEN_KEY_NAME","addStateToken","AuthTransaction","transactionStatus","sdk","args","getIssuerOrigin","withCredentials","resumeTransaction","stateToken","tx","exists","_get","Promise","reject","status","then","res","introspect","transactionStep","transactionExists","postToTransaction","url","options","Object","assign"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASA,IAAT,QAAqB,SAArB;AACA,OAAOC,YAAP,MAAyB,wBAAzB;AACA,SAASC,oBAAT,QAAqC,cAArC;AACA,SAASC,aAAT,QAA8B,QAA9B;AACA,SAASC,eAAT,QAAgC,mBAAhC;;AAEA,SAASC,iBAAT,CAA2BC,GAA3B,EAAgCC,IAAhC,EAAsC;AACpCA,EAAAA,IAAI,GAAGJ,aAAa,CAACG,GAAD,EAAMC,IAAN,CAApB;AACA,SAAOP,IAAI,CAACM,GAAD,EAAMA,GAAG,CAACE,eAAJ,KAAwB,eAA9B,EAA+CD,IAA/C,EAAqD;AAAEE,IAAAA,eAAe,EAAE;AAAnB,GAArD,CAAX;AACD;;AAED,SAASC,iBAAT,CAA2BJ,GAA3B,EAAgCC,IAAhC,EAAsC;AACpC,MAAI,CAACA,IAAD,IAAS,CAACA,IAAI,CAACI,UAAnB,EAA+B;AAC7B,QAAIA,UAAU,GAAGL,GAAG,CAACM,EAAJ,CAAOC,MAAP,CAAcC,IAAd,CAAmBZ,oBAAnB,CAAjB;;AACA,QAAIS,UAAJ,EAAgB;AACdJ,MAAAA,IAAI,GAAG;AACLI,QAAAA,UAAU,EAAEA;AADP,OAAP;AAGD,KAJD,MAIO;AACL,aAAOI,OAAO,CAACC,MAAR,CAAe,IAAIf,YAAJ,CAAiB,0BAAjB,CAAf,CAAP;AACD;AACF;;AACD,SAAOK,GAAG,CAACM,EAAJ,CAAOK,MAAP,CAAcV,IAAd,EACJW,IADI,CACC,UAASC,GAAT,EAAc;AAClB,WAAO,IAAIf,eAAJ,CAAoBE,GAApB,EAAyBa,GAAzB,CAAP;AACD,GAHI,CAAP;AAID;;AAED,SAASC,UAAT,CAAqBd,GAArB,EAA0BC,IAA1B,EAAgC;AAC9B,MAAI,CAACA,IAAD,IAAS,CAACA,IAAI,CAACI,UAAnB,EAA+B;AAC7B,QAAIA,UAAU,GAAGL,GAAG,CAACM,EAAJ,CAAOC,MAAP,CAAcC,IAAd,CAAmBZ,oBAAnB,CAAjB;;AACA,QAAIS,UAAJ,EAAgB;AACdJ,MAAAA,IAAI,GAAG;AACLI,QAAAA,UAAU,EAAEA;AADP,OAAP;AAGD,KAJD,MAIO;AACL,aAAOI,OAAO,CAACC,MAAR,CAAe,IAAIf,YAAJ,CAAiB,4BAAjB,CAAf,CAAP;AACD;AACF;;AACD,SAAOoB,eAAe,CAACf,GAAD,EAAMC,IAAN,CAAf,CACJW,IADI,CACC,UAAUC,GAAV,EAAe;AACnB,WAAO,IAAIf,eAAJ,CAAoBE,GAApB,EAAyBa,GAAzB,CAAP;AACD,GAHI,CAAP;AAID;;AAED,SAASE,eAAT,CAAyBf,GAAzB,EAA8BC,IAA9B,EAAoC;AAClCA,EAAAA,IAAI,GAAGJ,aAAa,CAACG,GAAD,EAAMC,IAAN,CAApB,CADkC,CAElC;;AACA,SAAOP,IAAI,CAACM,GAAD,EAAMA,GAAG,CAACE,eAAJ,KAAwB,0BAA9B,EAA0DD,IAA1D,EAAgE;AAAEE,IAAAA,eAAe,EAAE;AAAnB,GAAhE,CAAX;AACD;;AAED,SAASa,iBAAT,CAA2BhB,GAA3B,EAAgC;AAC9B;AACA,SAAO,CAAC,CAACA,GAAG,CAACM,EAAJ,CAAOC,MAAP,CAAcC,IAAd,CAAmBZ,oBAAnB,CAAT;AACD;;AAED,SAASqB,iBAAT,CAA2BjB,GAA3B,EAAgCkB,GAAhC,EAAqCjB,IAArC,EAA2CkB,OAA3C,EAAqD;AACnDA,EAAAA,OAAO,GAAGC,MAAM,CAACC,MAAP,CAAc;AAAElB,IAAAA,eAAe,EAAE;AAAnB,GAAd,EAAyCgB,OAAzC,CAAV;AACA,SAAOzB,IAAI,CAACM,GAAD,EAAMkB,GAAN,EAAWjB,IAAX,EAAiBkB,OAAjB,CAAJ,CACJP,IADI,CACC,UAASC,GAAT,EAAc;AAClB,WAAO,IAAIf,eAAJ,CAAoBE,GAApB,EAAyBa,GAAzB,CAAP;AACD,GAHI,CAAP;AAID;;AAED,SACEd,iBADF,EAEEK,iBAFF,EAGEY,iBAHF,EAIEC,iBAJF,EAKEH,UALF","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/* eslint-disable complexity, max-statements */\nimport { post } from '../http';\nimport AuthSdkError from '../errors/AuthSdkError';\nimport { STATE_TOKEN_KEY_NAME } from '../constants';\nimport { addStateToken } from './util';\nimport { AuthTransaction } from './AuthTransaction';\n\nfunction transactionStatus(sdk, args) {\n args = addStateToken(sdk, args);\n return post(sdk, sdk.getIssuerOrigin() + '/api/v1/authn', args, { withCredentials: true });\n}\n\nfunction resumeTransaction(sdk, args) {\n if (!args || !args.stateToken) {\n var stateToken = sdk.tx.exists._get(STATE_TOKEN_KEY_NAME);\n if (stateToken) {\n args = {\n stateToken: stateToken\n };\n } else {\n return Promise.reject(new AuthSdkError('No transaction to resume'));\n }\n }\n return sdk.tx.status(args)\n .then(function(res) {\n return new AuthTransaction(sdk, res);\n });\n}\n\nfunction introspect (sdk, args) {\n if (!args || !args.stateToken) {\n var stateToken = sdk.tx.exists._get(STATE_TOKEN_KEY_NAME);\n if (stateToken) {\n args = {\n stateToken: stateToken\n };\n } else {\n return Promise.reject(new AuthSdkError('No transaction to evaluate'));\n }\n }\n return transactionStep(sdk, args)\n .then(function (res) {\n return new AuthTransaction(sdk, res);\n });\n}\n\nfunction transactionStep(sdk, args) {\n args = addStateToken(sdk, args);\n // v1 pipeline introspect API\n return post(sdk, sdk.getIssuerOrigin() + '/api/v1/authn/introspect', args, { withCredentials: true });\n}\n\nfunction transactionExists(sdk) {\n // We have a cookie state token\n return !!sdk.tx.exists._get(STATE_TOKEN_KEY_NAME);\n}\n\nfunction postToTransaction(sdk, url, args, options?) {\n options = Object.assign({ withCredentials: true }, options);\n return post(sdk, url, args, options)\n .then(function(res) {\n return new AuthTransaction(sdk, res);\n });\n}\n\nexport {\n transactionStatus,\n resumeTransaction,\n transactionExists,\n postToTransaction,\n introspect,\n};\n"],"file":"api.js"}
package/esm/tx/index.js DELETED
@@ -1,18 +0,0 @@
1
- /*!
2
- * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
3
- * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
4
- *
5
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
6
- * Unless required by applicable law or agreed to in writing, software
7
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
8
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
- *
10
- * See the License for the specific language governing permissions and limitations under the License.
11
- *
12
- */
13
- export * from './api';
14
- export * from './AuthTransaction';
15
- export * from './poll';
16
- export * from './TransactionState';
17
- export * from './util';
18
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../lib/tx/index.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,cAAc,OAAd;AACA,cAAc,mBAAd;AACA,cAAc,QAAd;AACA,cAAc,oBAAd;AACA,cAAc,QAAd","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\nexport * from './api';\nexport * from './AuthTransaction';\nexport * from './poll';\nexport * from './TransactionState';\nexport * from './util';\n"],"file":"index.js"}