@okta/okta-auth-js 6.3.1 → 6.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +6 -0
  3. package/cjs/AuthStateManager.js +1 -0
  4. package/cjs/AuthStateManager.js.map +1 -1
  5. package/cjs/OktaAuth.js +10 -11
  6. package/cjs/OktaAuth.js.map +1 -1
  7. package/cjs/OktaUserAgent.js +2 -2
  8. package/cjs/ServiceManager.js +1 -1
  9. package/cjs/ServiceManager.js.map +1 -1
  10. package/cjs/TokenManager.js.map +1 -1
  11. package/cjs/crypto/verifyToken.js +2 -1
  12. package/cjs/crypto/verifyToken.js.map +1 -1
  13. package/cjs/errors/AuthApiError.js.map +1 -1
  14. package/cjs/errors/OAuthError.js +7 -1
  15. package/cjs/errors/OAuthError.js.map +1 -1
  16. package/cjs/fetch/fetchRequest.js +17 -3
  17. package/cjs/fetch/fetchRequest.js.map +1 -1
  18. package/cjs/http/request.js +7 -3
  19. package/cjs/http/request.js.map +1 -1
  20. package/cjs/idx/idxState/index.js +55 -0
  21. package/cjs/idx/idxState/index.js.map +1 -0
  22. package/cjs/idx/{idx-js → idxState}/v1/actionParser.js +1 -0
  23. package/cjs/idx/idxState/v1/actionParser.js.map +1 -0
  24. package/cjs/idx/{idx-js → idxState}/v1/generateIdxAction.js +43 -30
  25. package/cjs/idx/idxState/v1/generateIdxAction.js.map +1 -0
  26. package/cjs/idx/{idx-js → idxState}/v1/idxResponseParser.js +8 -8
  27. package/cjs/idx/idxState/v1/idxResponseParser.js.map +1 -0
  28. package/cjs/idx/{idx-js → idxState}/v1/makeIdxState.js +3 -2
  29. package/cjs/idx/idxState/v1/makeIdxState.js.map +1 -0
  30. package/cjs/idx/{idx-js → idxState}/v1/parsers.js +1 -0
  31. package/cjs/idx/idxState/v1/parsers.js.map +1 -0
  32. package/cjs/idx/{idx-js → idxState}/v1/remediationParser.js +4 -2
  33. package/cjs/idx/idxState/v1/remediationParser.js.map +1 -0
  34. package/cjs/idx/interact.js +42 -21
  35. package/cjs/idx/interact.js.map +1 -1
  36. package/cjs/idx/introspect.js +37 -12
  37. package/cjs/idx/introspect.js.map +1 -1
  38. package/cjs/idx/remediate.js +56 -132
  39. package/cjs/idx/remediate.js.map +1 -1
  40. package/cjs/idx/remediators/AuthenticatorEnrollmentData.js.map +1 -1
  41. package/cjs/idx/remediators/AuthenticatorVerificationData.js +7 -6
  42. package/cjs/idx/remediators/AuthenticatorVerificationData.js.map +1 -1
  43. package/cjs/idx/remediators/Base/AuthenticatorData.js.map +1 -1
  44. package/cjs/idx/remediators/Base/Remediator.js +12 -2
  45. package/cjs/idx/remediators/Base/Remediator.js.map +1 -1
  46. package/cjs/idx/remediators/Base/SelectAuthenticator.js.map +1 -1
  47. package/cjs/idx/remediators/Base/VerifyAuthenticator.js.map +1 -1
  48. package/cjs/idx/remediators/ChallengeAuthenticator.js.map +1 -1
  49. package/cjs/idx/remediators/EnrollAuthenticator.js.map +1 -1
  50. package/cjs/idx/remediators/EnrollPoll.js.map +1 -1
  51. package/cjs/idx/remediators/EnrollProfile.js.map +1 -1
  52. package/cjs/idx/remediators/EnrollmentChannelData.js.map +1 -1
  53. package/cjs/idx/remediators/Identify.js.map +1 -1
  54. package/cjs/idx/remediators/ReEnrollAuthenticator.js.map +1 -1
  55. package/cjs/idx/remediators/ResetAuthenticator.js.map +1 -1
  56. package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js.map +1 -1
  57. package/cjs/idx/remediators/SelectAuthenticatorEnroll.js.map +1 -1
  58. package/cjs/idx/remediators/SelectAuthenticatorUnlockAccount.js.map +1 -1
  59. package/cjs/idx/remediators/SelectEnrollProfile.js.map +1 -1
  60. package/cjs/idx/remediators/SelectEnrollmentChannel.js.map +1 -1
  61. package/cjs/idx/remediators/Skip.js.map +1 -1
  62. package/cjs/idx/run.js +16 -12
  63. package/cjs/idx/run.js.map +1 -1
  64. package/cjs/idx/types/idx-js.js +2 -0
  65. package/cjs/idx/types/idx-js.js.map +1 -1
  66. package/cjs/idx/types/index.js +0 -138
  67. package/cjs/idx/types/index.js.map +1 -1
  68. package/cjs/idx/util.js +127 -5
  69. package/cjs/idx/util.js.map +1 -1
  70. package/cjs/server/serverStorage.js +1 -0
  71. package/cjs/server/serverStorage.js.map +1 -1
  72. package/cjs/tx/AuthTransaction.js.map +1 -1
  73. package/cjs/types/Token.js +0 -1
  74. package/cjs/types/Token.js.map +1 -1
  75. package/cjs/util/object.js.map +1 -1
  76. package/cjs/util/types.js.map +1 -1
  77. package/dist/okta-auth-js.min.js +1 -1
  78. package/dist/okta-auth-js.min.js.map +1 -1
  79. package/dist/okta-auth-js.umd.js +1 -1
  80. package/dist/okta-auth-js.umd.js.map +1 -1
  81. package/esm/esm.browser.js +744 -928
  82. package/esm/esm.browser.js.map +1 -1
  83. package/esm/esm.node.mjs +609 -730
  84. package/esm/esm.node.mjs.map +1 -1
  85. package/lib/TokenManager.d.ts +2 -2
  86. package/lib/errors/OAuthError.d.ts +2 -0
  87. package/lib/idx/flow/RemediationFlow.d.ts +2 -2
  88. package/lib/idx/idxState/index.d.ts +7 -0
  89. package/lib/idx/{idx-js → idxState}/v1/actionParser.d.ts +0 -0
  90. package/lib/idx/{idx-js → idxState}/v1/generateIdxAction.d.ts +3 -1
  91. package/lib/idx/{idx-js → idxState}/v1/idxResponseParser.d.ts +3 -2
  92. package/lib/idx/{idx-js → idxState}/v1/makeIdxState.d.ts +3 -2
  93. package/lib/idx/{idx-js → idxState}/v1/parsers.d.ts +0 -0
  94. package/lib/idx/{idx-js → idxState}/v1/remediationParser.d.ts +2 -1
  95. package/lib/idx/interact.d.ts +22 -0
  96. package/lib/idx/remediate.d.ts +9 -12
  97. package/lib/idx/remediators/AuthenticatorEnrollmentData.d.ts +1 -2
  98. package/lib/idx/remediators/AuthenticatorVerificationData.d.ts +3 -3
  99. package/lib/idx/remediators/Base/AuthenticatorData.d.ts +3 -4
  100. package/lib/idx/remediators/Base/Remediator.d.ts +8 -4
  101. package/lib/idx/remediators/Base/SelectAuthenticator.d.ts +2 -3
  102. package/lib/idx/remediators/Base/VerifyAuthenticator.d.ts +3 -4
  103. package/lib/idx/remediators/ChallengeAuthenticator.d.ts +1 -2
  104. package/lib/idx/remediators/EnrollAuthenticator.d.ts +1 -2
  105. package/lib/idx/remediators/EnrollPoll.d.ts +1 -2
  106. package/lib/idx/remediators/EnrollProfile.d.ts +1 -2
  107. package/lib/idx/remediators/EnrollmentChannelData.d.ts +1 -2
  108. package/lib/idx/remediators/Identify.d.ts +1 -2
  109. package/lib/idx/remediators/ReEnrollAuthenticator.d.ts +1 -2
  110. package/lib/idx/remediators/ResetAuthenticator.d.ts +1 -2
  111. package/lib/idx/remediators/SelectAuthenticatorAuthenticate.d.ts +1 -2
  112. package/lib/idx/remediators/SelectAuthenticatorEnroll.d.ts +1 -2
  113. package/lib/idx/remediators/SelectAuthenticatorUnlockAccount.d.ts +1 -2
  114. package/lib/idx/remediators/SelectEnrollProfile.d.ts +1 -2
  115. package/lib/idx/remediators/SelectEnrollmentChannel.d.ts +1 -2
  116. package/lib/idx/remediators/Skip.d.ts +1 -2
  117. package/lib/idx/types/idx-js.d.ts +5 -2
  118. package/lib/idx/types/index.d.ts +26 -17
  119. package/lib/idx/util.d.ts +7 -4
  120. package/lib/types/EventEmitter.d.ts +3 -3
  121. package/lib/types/Service.d.ts +6 -6
  122. package/lib/types/Storage.d.ts +6 -6
  123. package/lib/types/TokenManager.d.ts +5 -2
  124. package/lib/types/UserClaims.d.ts +1 -1
  125. package/lib/util/types.d.ts +1 -1
  126. package/package.json +10 -10
  127. package/cjs/idx/headers.js +0 -59
  128. package/cjs/idx/headers.js.map +0 -1
  129. package/cjs/idx/idx-js/client.js +0 -91
  130. package/cjs/idx/idx-js/client.js.map +0 -1
  131. package/cjs/idx/idx-js/index.js +0 -40
  132. package/cjs/idx/idx-js/index.js.map +0 -1
  133. package/cjs/idx/idx-js/interact.js +0 -83
  134. package/cjs/idx/idx-js/interact.js.map +0 -1
  135. package/cjs/idx/idx-js/introspect.js +0 -62
  136. package/cjs/idx/idx-js/introspect.js.map +0 -1
  137. package/cjs/idx/idx-js/parsers.js +0 -41
  138. package/cjs/idx/idx-js/parsers.js.map +0 -1
  139. package/cjs/idx/idx-js/util.js +0 -34
  140. package/cjs/idx/idx-js/util.js.map +0 -1
  141. package/cjs/idx/idx-js/v1/actionParser.js.map +0 -1
  142. package/cjs/idx/idx-js/v1/generateIdxAction.js.map +0 -1
  143. package/cjs/idx/idx-js/v1/idxResponseParser.js.map +0 -1
  144. package/cjs/idx/idx-js/v1/makeIdxState.js.map +0 -1
  145. package/cjs/idx/idx-js/v1/parsers.js.map +0 -1
  146. package/cjs/idx/idx-js/v1/remediationParser.js.map +0 -1
  147. package/cjs/options.js +0 -170
  148. package/cjs/options.js.map +0 -1
  149. package/lib/idx/headers.d.ts +0 -16
  150. package/lib/idx/idx-js/client.d.ts +0 -36
  151. package/lib/idx/idx-js/index.d.ts +0 -35
  152. package/lib/idx/idx-js/interact.d.ts +0 -25
  153. package/lib/idx/idx-js/introspect.d.ts +0 -21
  154. package/lib/idx/idx-js/parsers.d.ts +0 -15
  155. package/lib/idx/idx-js/util.d.ts +0 -12
  156. package/lib/options.d.ts +0 -14
@@ -49,7 +49,6 @@ import { BroadcastChannel, createLeaderElection } from 'broadcast-channel';
49
49
  import PCancelable from 'p-cancelable';
50
50
  import _entriesInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/entries';
51
51
  import crossFetch from 'cross-fetch';
52
- import NodeCache from 'node-cache';
53
52
  import _Object$fromEntries from '@babel/runtime-corejs3/core-js-stable/object/from-entries';
54
53
  import { JSONPath } from 'jsonpath-plus';
55
54
  import _includesInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/includes';
@@ -146,6 +145,8 @@ var OAuthError = function (_CustomError) {
146
145
  _this.name = 'OAuthError';
147
146
  _this.errorCode = errorCode;
148
147
  _this.errorSummary = summary;
148
+ _this.error = errorCode;
149
+ _this.error_description = summary;
149
150
  return _this;
150
151
  }
151
152
  return OAuthError;
@@ -621,7 +622,11 @@ function httpRequest(sdk, options) {
621
622
  if (sdk.options.transformErrorXHR) {
622
623
  resp = sdk.options.transformErrorXHR(clone(resp));
623
624
  }
624
- err = new AuthApiError(serverErr, resp);
625
+ if (serverErr.error && serverErr.error_description) {
626
+ err = new OAuthError(serverErr.error, serverErr.error_description);
627
+ } else {
628
+ err = new AuthApiError(serverErr, resp);
629
+ }
625
630
  if (err.errorCode === 'E0000011') {
626
631
  storage.delete(STATE_TOKEN_KEY_NAME);
627
632
  }
@@ -3526,7 +3531,7 @@ var ServiceManager = function () {
3526
3531
  key: "start",
3527
3532
  value: function start() {
3528
3533
  if (this.started) {
3529
- this.stop();
3534
+ return;
3530
3535
  }
3531
3536
  if (this.isLeaderRequired()) {
3532
3537
  this.startElector();
@@ -4494,8 +4499,9 @@ function assertValidConfig(args) {
4494
4499
  }
4495
4500
 
4496
4501
  function _createForOfIteratorHelper$6(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && _getIteratorMethod(o) || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$6(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
4497
- function _unsupportedIterableToArray$6(o, minLen) { var _context3; if (!o) return; if (typeof o === "string") return _arrayLikeToArray$6(o, minLen); var n = _sliceInstanceProperty(_context3 = Object.prototype.toString.call(o)).call(_context3, 8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$6(o, minLen); }
4502
+ function _unsupportedIterableToArray$6(o, minLen) { var _context5; if (!o) return; if (typeof o === "string") return _arrayLikeToArray$6(o, minLen); var n = _sliceInstanceProperty(_context5 = Object.prototype.toString.call(o)).call(_context5, 8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$6(o, minLen); }
4498
4503
  function _arrayLikeToArray$6(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
4504
+ var appJsonContentTypeRegex = /application\/\w*\+?json/;
4499
4505
  function readData(response) {
4500
4506
  var _context;
4501
4507
  if (response.headers.get('Content-Type') &&
@@ -4542,8 +4548,19 @@ function fetchRequest(method, url, args) {
4542
4548
  var body = args.data;
4543
4549
  var headers = args.headers || {};
4544
4550
  var contentType = headers['Content-Type'] || headers['content-type'] || '';
4545
- if (contentType === 'application/json' && body && typeof body !== 'string') {
4546
- body = _JSON$stringify(body);
4551
+ if (body && typeof body !== 'string') {
4552
+ if (appJsonContentTypeRegex.test(contentType)) {
4553
+ body = _JSON$stringify(body);
4554
+ } else if (contentType === 'application/x-www-form-urlencoded') {
4555
+ var _context3;
4556
+ body = _mapInstanceProperty(_context3 = _Object$entries(body)).call(_context3, function (_ref) {
4557
+ var _context4;
4558
+ var _ref2 = _slicedToArray(_ref, 2),
4559
+ param = _ref2[0],
4560
+ value = _ref2[1];
4561
+ return _concatInstanceProperty(_context4 = "".concat(param, "=")).call(_context4, encodeURIComponent(value));
4562
+ }).join('&');
4563
+ }
4547
4564
  }
4548
4565
  var fetch = window.fetch || crossFetch;
4549
4566
  var fetchPromise = fetch(url, {
@@ -4570,93 +4587,13 @@ function fetchRequest(method, url, args) {
4570
4587
  });
4571
4588
  }
4572
4589
 
4573
- var sharedStorage = typeof NodeCache === 'function' ? new NodeCache() : null;
4574
- var ServerCookies = function () {
4575
- function ServerCookies(nodeCache) {
4576
- _classCallCheck(this, ServerCookies);
4577
- this.nodeCache = nodeCache;
4578
- }
4579
- _createClass(ServerCookies, [{
4580
- key: "set",
4581
- value: function set(name, value, expiresAt) {
4582
- if (!!Date.parse(expiresAt)) {
4583
- var ttl = (Date.parse(expiresAt) - Date.now()) / 1000;
4584
- this.nodeCache.set(name, value, ttl);
4585
- } else {
4586
- this.nodeCache.set(name, value);
4587
- }
4588
- return this.get(name);
4589
- }
4590
- }, {
4591
- key: "get",
4592
- value: function get(name) {
4593
- return this.nodeCache.get(name);
4594
- }
4595
- }, {
4596
- key: "delete",
4597
- value: function _delete(name) {
4598
- return this.nodeCache.del(name);
4599
- }
4600
- }]);
4601
- return ServerCookies;
4602
- }();
4603
- var ServerStorage = function () {
4604
- function ServerStorage(nodeCache) {
4605
- _classCallCheck(this, ServerStorage);
4606
- this.nodeCache = nodeCache;
4607
- this.storage = new ServerCookies(nodeCache);
4608
- }
4609
- _createClass(ServerStorage, [{
4610
- key: "testStorageType",
4611
- value: function testStorageType(storageType) {
4612
- var supported = false;
4613
- switch (storageType) {
4614
- case 'memory':
4615
- supported = true;
4616
- break;
4617
- }
4618
- return supported;
4619
- }
4620
- }, {
4621
- key: "getStorageByType",
4622
- value: function getStorageByType(storageType) {
4623
- var storageProvider;
4624
- switch (storageType) {
4625
- case 'memory':
4626
- storageProvider = this.getStorage();
4627
- break;
4628
- default:
4629
- throw new AuthSdkError("Unrecognized storage option: ".concat(storageType));
4630
- }
4631
- return storageProvider;
4632
- }
4633
- }, {
4634
- key: "findStorageType",
4635
- value: function findStorageType() {
4636
- return 'memory';
4637
- }
4638
- }, {
4639
- key: "getHttpCache",
4640
- value: function getHttpCache() {
4641
- return null;
4642
- }
4643
- }, {
4644
- key: "getStorage",
4645
- value: function getStorage() {
4646
- var _this = this;
4647
- return {
4648
- getItem: this.nodeCache.get,
4649
- setItem: function setItem(key, value) {
4650
- _this.nodeCache.set(key, value, '2200-01-01T00:00:00.000Z');
4651
- }
4652
- };
4653
- }
4654
- }]);
4655
- return ServerStorage;
4656
- }();
4657
- var serverStorage = new ServerStorage(sharedStorage);
4658
-
4659
- var BROWSER_STORAGE = {
4590
+ function getStorage() {
4591
+ var storageUtil$1 = _Object$assign({}, storageUtil, {
4592
+ inMemoryStore: {}
4593
+ });
4594
+ return storageUtil$1;
4595
+ }
4596
+ var STORAGE_MANAGER_OPTIONS = {
4660
4597
  token: {
4661
4598
  storageTypes: ['localStorage', 'sessionStorage', 'cookie']
4662
4599
  },
@@ -4673,17 +4610,7 @@ var BROWSER_STORAGE = {
4673
4610
  storageTypes: ['localStorage']
4674
4611
  }
4675
4612
  };
4676
- var SERVER_STORAGE = {
4677
- token: {
4678
- storageTypes: ['memory']
4679
- },
4680
- cache: {
4681
- storageTypes: ['memory']
4682
- },
4683
- transaction: {
4684
- storageTypes: ['memory']
4685
- }
4686
- };
4613
+ var enableSharedStorage = true;
4687
4614
  function getCookieSettings() {
4688
4615
  var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
4689
4616
  var isHTTPS = arguments.length > 1 ? arguments[1] : undefined;
@@ -4703,26 +4630,18 @@ function getCookieSettings() {
4703
4630
  }
4704
4631
  return cookieSettings;
4705
4632
  }
4633
+
4706
4634
  function getDefaultOptions() {
4707
- var storageUtil$1;
4708
- if (isBrowser()) {
4709
- storageUtil$1 = _Object$assign({}, storageUtil, {
4710
- inMemoryStore: {}
4711
- });
4712
- } else {
4713
- storageUtil$1 = serverStorage;
4714
- }
4715
- var storageManager = isBrowser() ? BROWSER_STORAGE : SERVER_STORAGE;
4716
- var enableSharedStorage = isBrowser() ? true : false;
4717
- return {
4635
+ var options = {
4718
4636
  devMode: false,
4719
4637
  httpRequestClient: fetchRequest,
4720
- storageUtil: storageUtil$1,
4721
- storageManager: storageManager,
4638
+ storageUtil: getStorage(),
4639
+ storageManager: STORAGE_MANAGER_OPTIONS,
4722
4640
  transactionManager: {
4723
4641
  enableSharedStorage: enableSharedStorage
4724
4642
  }
4725
4643
  };
4644
+ return options;
4726
4645
  }
4727
4646
  function mergeOptions(options, args) {
4728
4647
  return _Object$assign({}, options, removeNils(args), {
@@ -4759,7 +4678,7 @@ function buildOptions() {
4759
4678
  devMode: !!args.devMode,
4760
4679
  storageManager: args.storageManager,
4761
4680
  transactionManager: args.transactionManager,
4762
- cookies: isBrowser() ? getCookieSettings(args, isHTTPS()) : args.cookies,
4681
+ cookies: getCookieSettings(args, isHTTPS()),
4763
4682
  flow: args.flow,
4764
4683
  codeChallenge: args.codeChallenge,
4765
4684
  codeChallengeMethod: args.codeChallengeMethod,
@@ -4770,127 +4689,310 @@ function buildOptions() {
4770
4689
  });
4771
4690
  }
4772
4691
 
4773
- var Interceptor = function () {
4774
- function Interceptor() {
4775
- _classCallCheck(this, Interceptor);
4776
- this.handlers = [];
4777
- }
4778
- _createClass(Interceptor, [{
4779
- key: "use",
4780
- value: function use(before) {
4781
- this.handlers.push({
4782
- before: before
4783
- });
4784
- }
4785
- }, {
4786
- key: "clear",
4787
- value: function clear() {
4788
- this.handlers = [];
4789
- }
4790
- }]);
4791
- return Interceptor;
4792
- }();
4793
- var HttpClient = {
4794
- interceptors: {
4795
- request: new Interceptor()
4796
- }
4797
- };
4798
- var request = function () {
4799
- var _ref2 = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(target, _ref) {
4800
- var _ref$method, method, _ref$headers, headers, _ref$credentials, credentials, body, requestOptions, url;
4692
+ function createTransactionMeta(_x) {
4693
+ return _createTransactionMeta.apply(this, arguments);
4694
+ }
4695
+ function _createTransactionMeta() {
4696
+ _createTransactionMeta = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(authClient) {
4697
+ var options,
4698
+ tokenParams,
4699
+ pkceMeta,
4700
+ _Object$assign2,
4701
+ _Object$assign2$flow,
4702
+ flow,
4703
+ _Object$assign2$withC,
4704
+ withCredentials,
4705
+ _Object$assign2$activ,
4706
+ activationToken,
4707
+ _Object$assign2$recov,
4708
+ recoveryToken,
4709
+ meta,
4710
+ _args = arguments;
4801
4711
  return _regeneratorRuntime.wrap(function _callee$(_context) {
4802
4712
  while (1) {
4803
4713
  switch (_context.prev = _context.next) {
4804
4714
  case 0:
4805
- _ref$method = _ref.method, method = _ref$method === void 0 ? 'POST' : _ref$method, _ref$headers = _ref.headers, headers = _ref$headers === void 0 ? {} : _ref$headers, _ref$credentials = _ref.credentials, credentials = _ref$credentials === void 0 ? 'include' : _ref$credentials, body = _ref.body;
4806
- requestOptions = {
4807
- url: target,
4808
- method: method,
4809
- headers: _Object$assign({}, headers),
4810
- credentials: credentials,
4811
- body: body
4812
- };
4813
- if (HttpClient.interceptors) {
4814
- HttpClient.interceptors.request.handlers.forEach(function (interceptor) {
4815
- interceptor.before(requestOptions);
4816
- });
4817
- }
4818
- url = requestOptions.url;
4819
- delete requestOptions.url;
4820
- return _context.abrupt("return", crossFetch(url, requestOptions));
4821
- case 6:
4715
+ options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
4716
+ _context.next = 3;
4717
+ return authClient.token.prepareTokenParams(options);
4718
+ case 3:
4719
+ tokenParams = _context.sent;
4720
+ pkceMeta = createOAuthMeta(authClient, tokenParams);
4721
+ _Object$assign2 = _Object$assign(_Object$assign({}, authClient.options), options), _Object$assign2$flow = _Object$assign2.flow, flow = _Object$assign2$flow === void 0 ? 'default' : _Object$assign2$flow, _Object$assign2$withC = _Object$assign2.withCredentials, withCredentials = _Object$assign2$withC === void 0 ? true : _Object$assign2$withC, _Object$assign2$activ = _Object$assign2.activationToken, activationToken = _Object$assign2$activ === void 0 ? undefined : _Object$assign2$activ, _Object$assign2$recov = _Object$assign2.recoveryToken, recoveryToken = _Object$assign2$recov === void 0 ? undefined : _Object$assign2$recov;
4722
+ meta = _Object$assign(_Object$assign({}, pkceMeta), {
4723
+ flow: flow,
4724
+ withCredentials: withCredentials,
4725
+ activationToken: activationToken,
4726
+ recoveryToken: recoveryToken
4727
+ });
4728
+ return _context.abrupt("return", meta);
4729
+ case 8:
4822
4730
  case "end":
4823
4731
  return _context.stop();
4824
4732
  }
4825
4733
  }
4826
4734
  }, _callee);
4827
4735
  }));
4828
- return function request(_x, _x2) {
4829
- return _ref2.apply(this, arguments);
4830
- };
4831
- }();
4832
-
4833
- function _createForOfIteratorHelper$5(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && _getIteratorMethod(o) || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$5(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
4834
- function _unsupportedIterableToArray$5(o, minLen) { var _context; if (!o) return; if (typeof o === "string") return _arrayLikeToArray$5(o, minLen); var n = _sliceInstanceProperty(_context = Object.prototype.toString.call(o)).call(_context, 8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$5(o, minLen); }
4835
- function _arrayLikeToArray$5(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
4836
- var isFieldMutable = function isFieldMutable(field) {
4837
- return field.mutable !== false;
4838
- };
4839
- var divideSingleActionParamsByMutability = function divideSingleActionParamsByMutability(action) {
4840
- var _a, _b;
4841
- var defaultParamsForAction = {};
4842
- var neededParamsForAction = [];
4843
- var immutableParamsForAction = {};
4844
- if (!action.value) {
4845
- neededParamsForAction.push(action);
4846
- return {
4847
- defaultParamsForAction: defaultParamsForAction,
4848
- neededParamsForAction: neededParamsForAction,
4849
- immutableParamsForAction: immutableParamsForAction
4850
- };
4736
+ return _createTransactionMeta.apply(this, arguments);
4737
+ }
4738
+ function hasSavedInteractionHandle(authClient, options) {
4739
+ var savedMeta = getSavedTransactionMeta(authClient, options);
4740
+ if (savedMeta === null || savedMeta === void 0 ? void 0 : savedMeta.interactionHandle) {
4741
+ return true;
4851
4742
  }
4852
- var _iterator = _createForOfIteratorHelper$5(action.value),
4853
- _step;
4743
+ return false;
4744
+ }
4745
+ function getSavedTransactionMeta(authClient, options) {
4746
+ options = removeNils(options);
4747
+ options = _Object$assign(_Object$assign({}, authClient.options), options);
4748
+ var savedMeta;
4854
4749
  try {
4855
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
4856
- var field = _step.value;
4857
- if (isFieldMutable(field)) {
4858
- neededParamsForAction.push(field);
4859
- if ((_a = field.value) !== null && _a !== void 0 ? _a : false) {
4860
- defaultParamsForAction[field.name] = field.value;
4750
+ savedMeta = authClient.transactionManager.load(options);
4751
+ } catch (e) {
4752
+ }
4753
+ if (!savedMeta) {
4754
+ return;
4755
+ }
4756
+ if (isTransactionMetaValid(savedMeta, options)) {
4757
+ return savedMeta;
4758
+ }
4759
+ warn('Saved transaction meta does not match the current configuration. ' + 'This may indicate that two apps are sharing a storage key.');
4760
+ }
4761
+ function getTransactionMeta(_x2, _x3) {
4762
+ return _getTransactionMeta.apply(this, arguments);
4763
+ }
4764
+ function _getTransactionMeta() {
4765
+ _getTransactionMeta = _asyncToGenerator( _regeneratorRuntime.mark(function _callee2(authClient, options) {
4766
+ var validExistingMeta;
4767
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
4768
+ while (1) {
4769
+ switch (_context2.prev = _context2.next) {
4770
+ case 0:
4771
+ options = removeNils(options);
4772
+ options = _Object$assign(_Object$assign({}, authClient.options), options);
4773
+ validExistingMeta = getSavedTransactionMeta(authClient, options);
4774
+ if (!validExistingMeta) {
4775
+ _context2.next = 5;
4776
+ break;
4777
+ }
4778
+ return _context2.abrupt("return", validExistingMeta);
4779
+ case 5:
4780
+ return _context2.abrupt("return", createTransactionMeta(authClient, options));
4781
+ case 6:
4782
+ case "end":
4783
+ return _context2.stop();
4861
4784
  }
4862
- } else {
4863
- immutableParamsForAction[field.name] = (_b = field.value) !== null && _b !== void 0 ? _b : '';
4864
4785
  }
4786
+ }, _callee2);
4787
+ }));
4788
+ return _getTransactionMeta.apply(this, arguments);
4789
+ }
4790
+ function saveTransactionMeta(authClient, meta) {
4791
+ authClient.transactionManager.save(meta, {
4792
+ muteWarning: true
4793
+ });
4794
+ }
4795
+ function clearTransactionMeta(authClient) {
4796
+ authClient.transactionManager.clear();
4797
+ }
4798
+ function isTransactionMetaValid(meta) {
4799
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
4800
+ var keys = ['issuer', 'clientId', 'redirectUri', 'state', 'codeChallenge', 'codeChallengeMethod', 'activationToken', 'recoveryToken'];
4801
+ if (isTransactionMetaValidForOptions(meta, options, keys) === false) {
4802
+ return false;
4803
+ }
4804
+ var flow = options.flow;
4805
+ if (isTransactionMetaValidForFlow(meta, flow) === false) {
4806
+ return false;
4807
+ }
4808
+ return true;
4809
+ }
4810
+ function isTransactionMetaValidForFlow(meta, flow) {
4811
+ var shouldValidateFlow = flow && flow !== 'default' && flow !== 'proceed';
4812
+ if (shouldValidateFlow) {
4813
+ if (flow !== meta.flow) {
4814
+ return false;
4865
4815
  }
4866
- } catch (err) {
4867
- _iterator.e(err);
4868
- } finally {
4869
- _iterator.f();
4870
4816
  }
4817
+ return true;
4818
+ }
4819
+ function isTransactionMetaValidForOptions(meta, options, keys) {
4820
+ var mismatch = keys.some(function (key) {
4821
+ var value = options[key];
4822
+ if (value && value !== meta[key]) {
4823
+ return true;
4824
+ }
4825
+ });
4826
+ return !mismatch;
4827
+ }
4828
+
4829
+ function getResponse(meta) {
4871
4830
  return {
4872
- defaultParamsForAction: defaultParamsForAction,
4873
- neededParamsForAction: neededParamsForAction,
4874
- immutableParamsForAction: immutableParamsForAction
4831
+ meta: meta,
4832
+ interactionHandle: meta.interactionHandle,
4833
+ state: meta.state
4875
4834
  };
4876
- };
4877
- var divideActionParamsByMutability = function divideActionParamsByMutability(actionList) {
4878
- actionList = Array.isArray(actionList) ? actionList : [actionList];
4879
- var neededParams = [];
4880
- var defaultParams = {};
4881
- var immutableParams = {};
4882
- var _iterator2 = _createForOfIteratorHelper$5(actionList),
4883
- _step2;
4884
- try {
4885
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
4886
- var action = _step2.value;
4887
- var _divideSingleActionPa = divideSingleActionParamsByMutability(action),
4888
- defaultParamsForAction = _divideSingleActionPa.defaultParamsForAction,
4889
- neededParamsForAction = _divideSingleActionPa.neededParamsForAction,
4890
- immutableParamsForAction = _divideSingleActionPa.immutableParamsForAction;
4891
- neededParams.push(neededParamsForAction);
4892
- defaultParams[action.name] = defaultParamsForAction;
4893
- immutableParams[action.name] = immutableParamsForAction;
4835
+ }
4836
+ function interact(_x) {
4837
+ return _interact.apply(this, arguments);
4838
+ }
4839
+ function _interact() {
4840
+ _interact = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(authClient) {
4841
+ var options,
4842
+ meta,
4843
+ baseUrl,
4844
+ _meta,
4845
+ clientId,
4846
+ redirectUri,
4847
+ state,
4848
+ scopes,
4849
+ withCredentials,
4850
+ codeChallenge,
4851
+ codeChallengeMethod,
4852
+ activationToken,
4853
+ recoveryToken,
4854
+ clientSecret,
4855
+ url,
4856
+ params,
4857
+ headers,
4858
+ resp,
4859
+ interactionHandle,
4860
+ newMeta,
4861
+ _args = arguments;
4862
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
4863
+ while (1) {
4864
+ switch (_context.prev = _context.next) {
4865
+ case 0:
4866
+ options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
4867
+ options = removeNils(options);
4868
+ meta = getSavedTransactionMeta(authClient, options);
4869
+ if (!(meta === null || meta === void 0 ? void 0 : meta.interactionHandle)) {
4870
+ _context.next = 5;
4871
+ break;
4872
+ }
4873
+ return _context.abrupt("return", getResponse(meta));
4874
+ case 5:
4875
+ _context.next = 7;
4876
+ return createTransactionMeta(authClient, _Object$assign(_Object$assign({}, meta), options));
4877
+ case 7:
4878
+ meta = _context.sent;
4879
+ baseUrl = getOAuthBaseUrl(authClient);
4880
+ _meta = meta, clientId = _meta.clientId, redirectUri = _meta.redirectUri, state = _meta.state, scopes = _meta.scopes, withCredentials = _meta.withCredentials, codeChallenge = _meta.codeChallenge, codeChallengeMethod = _meta.codeChallengeMethod, activationToken = _meta.activationToken, recoveryToken = _meta.recoveryToken;
4881
+ clientSecret = options.clientSecret || authClient.options.clientSecret;
4882
+ withCredentials = withCredentials !== null && withCredentials !== void 0 ? withCredentials : true;
4883
+ url = "".concat(baseUrl, "/v1/interact");
4884
+ params = {
4885
+ client_id: clientId,
4886
+ scope: scopes.join(' '),
4887
+ redirect_uri: redirectUri,
4888
+ code_challenge: codeChallenge,
4889
+ code_challenge_method: codeChallengeMethod,
4890
+ state: state
4891
+ };
4892
+ if (activationToken) {
4893
+ params.activation_token = activationToken;
4894
+ }
4895
+ if (recoveryToken) {
4896
+ params.recovery_token = recoveryToken;
4897
+ }
4898
+ if (clientSecret) {
4899
+ params.client_secret = clientSecret;
4900
+ }
4901
+ headers = {
4902
+ 'Content-Type': 'application/x-www-form-urlencoded'
4903
+ };
4904
+ _context.next = 20;
4905
+ return httpRequest(authClient, {
4906
+ method: 'POST',
4907
+ url: url,
4908
+ headers: headers,
4909
+ withCredentials: withCredentials,
4910
+ args: params
4911
+ });
4912
+ case 20:
4913
+ resp = _context.sent;
4914
+ interactionHandle = resp.interaction_handle;
4915
+ newMeta = _Object$assign(_Object$assign({}, meta), {
4916
+ interactionHandle: interactionHandle,
4917
+ withCredentials: withCredentials,
4918
+ state: state,
4919
+ scopes: scopes,
4920
+ recoveryToken: recoveryToken,
4921
+ activationToken: activationToken
4922
+ });
4923
+ saveTransactionMeta(authClient, newMeta);
4924
+ return _context.abrupt("return", getResponse(newMeta));
4925
+ case 25:
4926
+ case "end":
4927
+ return _context.stop();
4928
+ }
4929
+ }
4930
+ }, _callee);
4931
+ }));
4932
+ return _interact.apply(this, arguments);
4933
+ }
4934
+
4935
+ function _createForOfIteratorHelper$5(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && _getIteratorMethod(o) || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$5(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
4936
+ function _unsupportedIterableToArray$5(o, minLen) { var _context; if (!o) return; if (typeof o === "string") return _arrayLikeToArray$5(o, minLen); var n = _sliceInstanceProperty(_context = Object.prototype.toString.call(o)).call(_context, 8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$5(o, minLen); }
4937
+ function _arrayLikeToArray$5(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
4938
+ var isFieldMutable = function isFieldMutable(field) {
4939
+ return field.mutable !== false;
4940
+ };
4941
+ var divideSingleActionParamsByMutability = function divideSingleActionParamsByMutability(action) {
4942
+ var _a, _b;
4943
+ var defaultParamsForAction = {};
4944
+ var neededParamsForAction = [];
4945
+ var immutableParamsForAction = {};
4946
+ if (!action.value) {
4947
+ neededParamsForAction.push(action);
4948
+ return {
4949
+ defaultParamsForAction: defaultParamsForAction,
4950
+ neededParamsForAction: neededParamsForAction,
4951
+ immutableParamsForAction: immutableParamsForAction
4952
+ };
4953
+ }
4954
+ var _iterator = _createForOfIteratorHelper$5(action.value),
4955
+ _step;
4956
+ try {
4957
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
4958
+ var field = _step.value;
4959
+ if (isFieldMutable(field)) {
4960
+ neededParamsForAction.push(field);
4961
+ if ((_a = field.value) !== null && _a !== void 0 ? _a : false) {
4962
+ defaultParamsForAction[field.name] = field.value;
4963
+ }
4964
+ } else {
4965
+ immutableParamsForAction[field.name] = (_b = field.value) !== null && _b !== void 0 ? _b : '';
4966
+ }
4967
+ }
4968
+ } catch (err) {
4969
+ _iterator.e(err);
4970
+ } finally {
4971
+ _iterator.f();
4972
+ }
4973
+ return {
4974
+ defaultParamsForAction: defaultParamsForAction,
4975
+ neededParamsForAction: neededParamsForAction,
4976
+ immutableParamsForAction: immutableParamsForAction
4977
+ };
4978
+ };
4979
+ var divideActionParamsByMutability = function divideActionParamsByMutability(actionList) {
4980
+ actionList = Array.isArray(actionList) ? actionList : [actionList];
4981
+ var neededParams = [];
4982
+ var defaultParams = {};
4983
+ var immutableParams = {};
4984
+ var _iterator2 = _createForOfIteratorHelper$5(actionList),
4985
+ _step2;
4986
+ try {
4987
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
4988
+ var action = _step2.value;
4989
+ var _divideSingleActionPa = divideSingleActionParamsByMutability(action),
4990
+ defaultParamsForAction = _divideSingleActionPa.defaultParamsForAction,
4991
+ neededParamsForAction = _divideSingleActionPa.neededParamsForAction,
4992
+ immutableParamsForAction = _divideSingleActionPa.immutableParamsForAction;
4993
+ neededParams.push(neededParamsForAction);
4994
+ defaultParams[action.name] = defaultParamsForAction;
4995
+ immutableParams[action.name] = immutableParamsForAction;
4894
4996
  }
4895
4997
  } catch (err) {
4896
4998
  _iterator2.e(err);
@@ -4904,71 +5006,80 @@ var divideActionParamsByMutability = function divideActionParamsByMutability(act
4904
5006
  };
4905
5007
  };
4906
5008
 
4907
- var generateDirectFetch = function generateDirectFetch(_ref) {
5009
+ var generateDirectFetch = function generateDirectFetch(authClient, _ref) {
4908
5010
  var actionDefinition = _ref.actionDefinition,
4909
5011
  _ref$defaultParamsFor = _ref.defaultParamsForAction,
4910
5012
  defaultParamsForAction = _ref$defaultParamsFor === void 0 ? {} : _ref$defaultParamsFor,
4911
5013
  _ref$immutableParamsF = _ref.immutableParamsForAction,
4912
5014
  immutableParamsForAction = _ref$immutableParamsF === void 0 ? {} : _ref$immutableParamsF,
4913
- toPersist = _ref.toPersist;
5015
+ _ref$toPersist = _ref.toPersist,
5016
+ toPersist = _ref$toPersist === void 0 ? {} : _ref$toPersist;
4914
5017
  var target = actionDefinition.href;
4915
- return function () {
4916
- var _ref2 = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(params) {
4917
- var headers, body, credentials, response, responseJSON, requestDidSucceed, idxResponse;
4918
- return _regeneratorRuntime.wrap(function _callee$(_context) {
4919
- while (1) {
4920
- switch (_context.prev = _context.next) {
4921
- case 0:
4922
- headers = {
4923
- 'content-type': 'application/json',
4924
- 'accept': actionDefinition.accepts || 'application/ion+json'
4925
- };
4926
- body = _JSON$stringify(_Object$assign(_Object$assign(_Object$assign({}, defaultParamsForAction), params), immutableParamsForAction));
4927
- credentials = toPersist && toPersist.withCredentials === false ? 'omit' : 'include';
4928
- _context.next = 5;
4929
- return request(target, {
4930
- method: actionDefinition.method,
4931
- headers: headers,
4932
- body: body,
4933
- credentials: credentials
4934
- });
4935
- case 5:
4936
- response = _context.sent;
4937
- _context.next = 8;
4938
- return response.json();
4939
- case 8:
4940
- responseJSON = _context.sent;
4941
- requestDidSucceed = response.ok;
4942
- idxResponse = makeIdxState$1(responseJSON, toPersist, requestDidSucceed);
4943
- if (response.status === 401 && response.headers.get('WWW-Authenticate') === 'Oktadevicejwt realm="Okta Device"') {
4944
- idxResponse.stepUp = true;
4945
- }
4946
- if (requestDidSucceed) {
4947
- _context.next = 14;
4948
- break;
4949
- }
4950
- throw idxResponse;
4951
- case 14:
4952
- return _context.abrupt("return", idxResponse);
4953
- case 15:
4954
- case "end":
4955
- return _context.stop();
4956
- }
5018
+ return _asyncToGenerator( _regeneratorRuntime.mark(function _callee() {
5019
+ var params,
5020
+ _a,
5021
+ headers,
5022
+ body,
5023
+ response,
5024
+ _response,
5025
+ payload,
5026
+ wwwAuthHeader,
5027
+ idxResponse,
5028
+ _args = arguments;
5029
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
5030
+ while (1) {
5031
+ switch (_context.prev = _context.next) {
5032
+ case 0:
5033
+ params = _args.length > 0 && _args[0] !== undefined ? _args[0] : {};
5034
+ headers = {
5035
+ 'Content-Type': 'application/json',
5036
+ 'Accept': actionDefinition.accepts || 'application/ion+json'
5037
+ };
5038
+ body = _JSON$stringify(_Object$assign(_Object$assign(_Object$assign({}, defaultParamsForAction), params), immutableParamsForAction));
5039
+ _context.prev = 3;
5040
+ _context.next = 6;
5041
+ return httpRequest(authClient, {
5042
+ url: target,
5043
+ method: actionDefinition.method,
5044
+ headers: headers,
5045
+ args: body,
5046
+ withCredentials: (_a = toPersist === null || toPersist === void 0 ? void 0 : toPersist.withCredentials) !== null && _a !== void 0 ? _a : true
5047
+ });
5048
+ case 6:
5049
+ response = _context.sent;
5050
+ return _context.abrupt("return", makeIdxState$1(authClient, _Object$assign({}, response), toPersist, true));
5051
+ case 10:
5052
+ _context.prev = 10;
5053
+ _context.t0 = _context["catch"](3);
5054
+ if (!(!(_context.t0 instanceof AuthApiError) || !(_context.t0 === null || _context.t0 === void 0 ? void 0 : _context.t0.xhr))) {
5055
+ _context.next = 14;
5056
+ break;
5057
+ }
5058
+ throw _context.t0;
5059
+ case 14:
5060
+ _response = _context.t0.xhr;
5061
+ payload = _response.responseJSON || JSON.parse(_response.responseText);
5062
+ wwwAuthHeader = _response.headers['WWW-Authenticate'] || _response.headers['www-authenticate'];
5063
+ idxResponse = makeIdxState$1(authClient, _Object$assign({}, payload), toPersist, false);
5064
+ if (_response.status === 401 && wwwAuthHeader === 'Oktadevicejwt realm="Okta Device"') {
5065
+ idxResponse.stepUp = true;
5066
+ }
5067
+ throw idxResponse;
5068
+ case 20:
5069
+ case "end":
5070
+ return _context.stop();
4957
5071
  }
4958
- }, _callee);
4959
- }));
4960
- return function (_x) {
4961
- return _ref2.apply(this, arguments);
4962
- };
4963
- }();
5072
+ }
5073
+ }, _callee, null, [[3, 10]]);
5074
+ }));
4964
5075
  };
4965
- var generateIdxAction = function generateIdxAction(actionDefinition, toPersist) {
5076
+ var generateIdxAction = function generateIdxAction(authClient, actionDefinition, toPersist) {
4966
5077
  var generator = generateDirectFetch;
4967
5078
  var _divideActionParamsBy = divideActionParamsByMutability(actionDefinition),
4968
5079
  defaultParams = _divideActionParamsBy.defaultParams,
4969
5080
  neededParams = _divideActionParamsBy.neededParams,
4970
5081
  immutableParams = _divideActionParamsBy.immutableParams;
4971
- var action = generator({
5082
+ var action = generator(authClient, {
4972
5083
  actionDefinition: actionDefinition,
4973
5084
  defaultParamsForAction: defaultParams[actionDefinition.name],
4974
5085
  immutableParamsForAction: immutableParams[actionDefinition.name],
@@ -4978,10 +5089,10 @@ var generateIdxAction = function generateIdxAction(actionDefinition, toPersist)
4978
5089
  return action;
4979
5090
  };
4980
5091
 
4981
- var generateRemediationFunctions = function generateRemediationFunctions(remediationValue) {
4982
- var toPersist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5092
+ var generateRemediationFunctions = function generateRemediationFunctions(authClient, remediationValue) {
5093
+ var toPersist = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
4983
5094
  return _Object$fromEntries(_mapInstanceProperty(remediationValue).call(remediationValue, function (remediation) {
4984
- return [remediation.name, generateIdxAction(remediation, toPersist)];
5095
+ return [remediation.name, generateIdxAction(authClient, remediation, toPersist)];
4985
5096
  }));
4986
5097
  };
4987
5098
 
@@ -4990,9 +5101,9 @@ var SKIP_FIELDS = _Object$fromEntries(_mapInstanceProperty(_context = ['remediat
4990
5101
  ]).call(_context, function (field) {
4991
5102
  return [field, !!'skip this field'];
4992
5103
  }));
4993
- var parseNonRemediations = function parseNonRemediations(idxResponse) {
5104
+ var parseNonRemediations = function parseNonRemediations(authClient, idxResponse) {
4994
5105
  var _context2;
4995
- var toPersist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5106
+ var toPersist = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
4996
5107
  var actions = {};
4997
5108
  var context = {};
4998
5109
  _filterInstanceProperty(_context2 = _Object$keys(idxResponse)).call(_context2, function (field) {
@@ -5004,7 +5115,7 @@ var parseNonRemediations = function parseNonRemediations(idxResponse) {
5004
5115
  return;
5005
5116
  }
5006
5117
  if (idxResponse[field].rel) {
5007
- actions[idxResponse[field].name] = generateIdxAction(idxResponse[field], toPersist);
5118
+ actions[idxResponse[field].name] = generateIdxAction(authClient, idxResponse[field], toPersist);
5008
5119
  return;
5009
5120
  }
5010
5121
  var _a = idxResponse[field],
@@ -5025,7 +5136,7 @@ var parseNonRemediations = function parseNonRemediations(idxResponse) {
5025
5136
  value = _ref2[1];
5026
5137
  if (value.rel) {
5027
5138
  var _context3;
5028
- actions[_concatInstanceProperty(_context3 = "".concat(field, "-")).call(_context3, subField.name || subField)] = generateIdxAction(value, toPersist);
5139
+ actions[_concatInstanceProperty(_context3 = "".concat(field, "-")).call(_context3, subField.name || subField)] = generateIdxAction(authClient, value, toPersist);
5029
5140
  } else {
5030
5141
  context[field].value[subField] = value;
5031
5142
  }
@@ -5058,24 +5169,24 @@ var expandRelatesTo = function expandRelatesTo(idxResponse, value) {
5058
5169
  }
5059
5170
  });
5060
5171
  };
5061
- var convertRemediationAction = function convertRemediationAction(remediation, toPersist) {
5062
- var remediationActions = generateRemediationFunctions([remediation], toPersist);
5172
+ var convertRemediationAction = function convertRemediationAction(authClient, remediation, toPersist) {
5173
+ var remediationActions = generateRemediationFunctions(authClient, [remediation], toPersist);
5063
5174
  var actionFn = remediationActions[remediation.name];
5064
5175
  return _Object$assign(_Object$assign({}, remediation), {
5065
5176
  action: actionFn
5066
5177
  });
5067
5178
  };
5068
- var parseIdxResponse = function parseIdxResponse(idxResponse) {
5069
- var toPersist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5179
+ var parseIdxResponse = function parseIdxResponse(authClient, idxResponse) {
5180
+ var toPersist = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
5070
5181
  var _a;
5071
5182
  var remediationData = ((_a = idxResponse.remediation) === null || _a === void 0 ? void 0 : _a.value) || [];
5072
5183
  remediationData.forEach(function (remediation) {
5073
5184
  return expandRelatesTo(idxResponse, remediation);
5074
5185
  });
5075
5186
  var remediations = _mapInstanceProperty(remediationData).call(remediationData, function (remediation) {
5076
- return convertRemediationAction(remediation, toPersist);
5187
+ return convertRemediationAction(authClient, remediation, toPersist);
5077
5188
  });
5078
- var _parseNonRemediations = parseNonRemediations(idxResponse, toPersist),
5189
+ var _parseNonRemediations = parseNonRemediations(authClient, idxResponse, toPersist),
5079
5190
  context = _parseNonRemediations.context,
5080
5191
  actions = _parseNonRemediations.actions;
5081
5192
  return {
@@ -5083,439 +5194,97 @@ var parseIdxResponse = function parseIdxResponse(idxResponse) {
5083
5194
  context: context,
5084
5195
  actions: actions
5085
5196
  };
5086
- };
5087
-
5088
- function makeIdxState$1(idxResponse, toPersist, requestDidSucceed) {
5089
- var _a, _b, _c;
5090
- var rawIdxResponse = idxResponse;
5091
- var _parseIdxResponse = parseIdxResponse(idxResponse, toPersist),
5092
- remediations = _parseIdxResponse.remediations,
5093
- context = _parseIdxResponse.context,
5094
- actions = _parseIdxResponse.actions;
5095
- var neededToProceed = _toConsumableArray(remediations);
5096
- var proceed = function () {
5097
- var _ref = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(remediationChoice) {
5098
- var paramsFromUser,
5099
- remediationChoiceObject,
5100
- _args = arguments;
5101
- return _regeneratorRuntime.wrap(function _callee$(_context) {
5102
- while (1) {
5103
- switch (_context.prev = _context.next) {
5104
- case 0:
5105
- paramsFromUser = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
5106
- remediationChoiceObject = _findInstanceProperty(remediations).call(remediations, function (remediation) {
5107
- return remediation.name === remediationChoice;
5108
- });
5109
- if (remediationChoiceObject) {
5110
- _context.next = 4;
5111
- break;
5112
- }
5113
- return _context.abrupt("return", _Promise.reject("Unknown remediation choice: [".concat(remediationChoice, "]")));
5114
- case 4:
5115
- return _context.abrupt("return", remediationChoiceObject.action(paramsFromUser));
5116
- case 5:
5117
- case "end":
5118
- return _context.stop();
5119
- }
5120
- }
5121
- }, _callee);
5122
- }));
5123
- return function proceed(_x) {
5124
- return _ref.apply(this, arguments);
5125
- };
5126
- }();
5127
- var findCode = function findCode(item) {
5128
- return item.name === 'interaction_code';
5129
- };
5130
- var interactionCode = (_c = (_b = (_a = rawIdxResponse.successWithInteractionCode) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _findInstanceProperty(_b).call(_b, findCode)) === null || _c === void 0 ? void 0 : _c.value;
5131
- return {
5132
- proceed: proceed,
5133
- neededToProceed: neededToProceed,
5134
- actions: actions,
5135
- context: context,
5136
- rawIdxState: rawIdxResponse,
5137
- interactionCode: interactionCode,
5138
- toPersist: toPersist,
5139
- requestDidSucceed: requestDidSucceed
5140
- };
5141
- }
5142
-
5143
- var v1 = {
5144
- makeIdxState: makeIdxState$1
5145
- };
5146
-
5147
- var parsersForVersion = function parsersForVersion(version) {
5148
- switch (version) {
5149
- case '1.0.0':
5150
- return v1;
5151
- case undefined:
5152
- case null:
5153
- throw new Error('Api version is required');
5154
- default:
5155
- throw new Error("Unknown api version: ".concat(version, ". Use an exact semver version."));
5156
- }
5157
- };
5158
-
5159
- function validateVersionConfig(version) {
5160
- if (!version) {
5161
- throw new Error('version is required');
5162
- }
5163
- var cleanVersion = (version !== null && version !== void 0 ? version : '').replace(/[^0-9a-zA-Z._-]/, '');
5164
- if (cleanVersion !== version || !version) {
5165
- throw new Error('invalid version supplied - version is required and uses semver syntax');
5166
- }
5167
- parsersForVersion(version);
5168
- }
5169
-
5170
- var introspect$1 = function () {
5171
- var _introspect = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(_ref) {
5172
- var withCredentials, domain, interactionHandle, stateHandle, version, target, body, headers, credentials, response, requestDidSucceed, rawIdxResponse;
5173
- return _regeneratorRuntime.wrap(function _callee$(_context) {
5174
- while (1) {
5175
- switch (_context.prev = _context.next) {
5176
- case 0:
5177
- withCredentials = _ref.withCredentials, domain = _ref.domain, interactionHandle = _ref.interactionHandle, stateHandle = _ref.stateHandle, version = _ref.version;
5178
- validateVersionConfig(version);
5179
- target = "".concat(domain, "/idp/idx/introspect");
5180
- body = stateHandle ? {
5181
- stateToken: stateHandle
5182
- } : {
5183
- interactionHandle: interactionHandle
5184
- };
5185
- headers = {
5186
- 'content-type': "application/ion+json; okta-version=".concat(version),
5187
- accept: "application/ion+json; okta-version=".concat(version)
5188
- };
5189
- credentials = withCredentials === false ? 'omit' : 'include';
5190
- _context.next = 8;
5191
- return request(target, {
5192
- credentials: credentials,
5193
- headers: headers,
5194
- body: _JSON$stringify(body)
5195
- });
5196
- case 8:
5197
- response = _context.sent;
5198
- requestDidSucceed = response.ok;
5199
- _context.next = 12;
5200
- return response.json();
5201
- case 12:
5202
- rawIdxResponse = _context.sent;
5203
- if (requestDidSucceed) {
5204
- _context.next = 15;
5205
- break;
5206
- }
5207
- throw rawIdxResponse;
5208
- case 15:
5209
- return _context.abrupt("return", rawIdxResponse);
5210
- case 16:
5211
- case "end":
5212
- return _context.stop();
5213
- }
5214
- }
5215
- }, _callee);
5216
- }));
5217
- function introspect(_x) {
5218
- return _introspect.apply(this, arguments);
5219
- }
5220
- return introspect;
5221
- }();
5222
-
5223
- var parseAndReject = function parseAndReject(response) {
5224
- return response.json().then(function (err) {
5225
- return _Promise.reject(err);
5226
- });
5227
- };
5228
- var interact$1 = function () {
5229
- var _interact = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(_ref) {
5230
- var _context;
5231
- var withCredentials, clientId, baseUrl, _ref$scopes, scopes, redirectUri, codeChallenge, codeChallengeMethod, state, activationToken, recoveryToken, clientSecret, target, params, body, headers, credentials;
5232
- return _regeneratorRuntime.wrap(function _callee$(_context3) {
5233
- while (1) {
5234
- switch (_context3.prev = _context3.next) {
5235
- case 0:
5236
- withCredentials = _ref.withCredentials, clientId = _ref.clientId, baseUrl = _ref.baseUrl, _ref$scopes = _ref.scopes, scopes = _ref$scopes === void 0 ? ['openid', 'email'] : _ref$scopes, redirectUri = _ref.redirectUri, codeChallenge = _ref.codeChallenge, codeChallengeMethod = _ref.codeChallengeMethod, state = _ref.state, activationToken = _ref.activationToken, recoveryToken = _ref.recoveryToken, clientSecret = _ref.clientSecret;
5237
- target = "".concat(baseUrl, "/v1/interact");
5238
- params = {
5239
- client_id: clientId,
5240
- scope: scopes.join(' '),
5241
- redirect_uri: redirectUri,
5242
- code_challenge: codeChallenge,
5243
- code_challenge_method: codeChallengeMethod,
5244
- state: state
5245
- };
5246
- if (activationToken) {
5247
- params.activation_token = activationToken;
5248
- }
5249
- if (recoveryToken) {
5250
- params.recovery_token = recoveryToken;
5251
- }
5252
- if (clientSecret) {
5253
- params.client_secret = clientSecret;
5254
- }
5255
- body = _mapInstanceProperty(_context = _Object$entries(params)).call(_context, function (_ref2) {
5256
- var _context2;
5257
- var _ref3 = _slicedToArray(_ref2, 2),
5258
- param = _ref3[0],
5259
- value = _ref3[1];
5260
- return _concatInstanceProperty(_context2 = "".concat(param, "=")).call(_context2, encodeURIComponent(value));
5261
- }).join('&');
5262
- headers = {
5263
- 'content-type': 'application/x-www-form-urlencoded'
5264
- };
5265
- credentials = withCredentials === false ? 'omit' : 'include';
5266
- return _context3.abrupt("return", request(target, {
5267
- credentials: credentials,
5268
- headers: headers,
5269
- body: body
5270
- }).then(function (response) {
5271
- return response.ok ? response.json() : parseAndReject(response);
5272
- }).then(function (data) {
5273
- return data.interaction_handle;
5274
- }));
5275
- case 10:
5276
- case "end":
5277
- return _context3.stop();
5278
- }
5279
- }
5280
- }, _callee);
5281
- }));
5282
- function interact(_x) {
5283
- return _interact.apply(this, arguments);
5284
- }
5285
- return interact;
5286
- }();
5287
-
5288
- var LATEST_SUPPORTED_IDX_API_VERSION = '1.0.0';
5289
- var _parsersForVersion = parsersForVersion(LATEST_SUPPORTED_IDX_API_VERSION),
5290
- makeIdxState = _parsersForVersion.makeIdxState;
5291
- var idx = {
5292
- introspect: introspect$1,
5293
- interact: interact$1,
5294
- makeIdxState: makeIdxState,
5295
- client: HttpClient,
5296
- LATEST_SUPPORTED_IDX_API_VERSION: LATEST_SUPPORTED_IDX_API_VERSION
5297
- };
5298
-
5299
- function createTransactionMeta(_x) {
5300
- return _createTransactionMeta.apply(this, arguments);
5301
- }
5302
- function _createTransactionMeta() {
5303
- _createTransactionMeta = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(authClient) {
5304
- var options,
5305
- tokenParams,
5306
- pkceMeta,
5307
- _Object$assign2,
5308
- _Object$assign2$flow,
5309
- flow,
5310
- _Object$assign2$withC,
5311
- withCredentials,
5312
- _Object$assign2$activ,
5313
- activationToken,
5314
- _Object$assign2$recov,
5315
- recoveryToken,
5316
- meta,
5317
- _args = arguments;
5318
- return _regeneratorRuntime.wrap(function _callee$(_context) {
5319
- while (1) {
5320
- switch (_context.prev = _context.next) {
5321
- case 0:
5322
- options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
5323
- _context.next = 3;
5324
- return authClient.token.prepareTokenParams(options);
5325
- case 3:
5326
- tokenParams = _context.sent;
5327
- pkceMeta = createOAuthMeta(authClient, tokenParams);
5328
- _Object$assign2 = _Object$assign(_Object$assign({}, authClient.options), options), _Object$assign2$flow = _Object$assign2.flow, flow = _Object$assign2$flow === void 0 ? 'default' : _Object$assign2$flow, _Object$assign2$withC = _Object$assign2.withCredentials, withCredentials = _Object$assign2$withC === void 0 ? true : _Object$assign2$withC, _Object$assign2$activ = _Object$assign2.activationToken, activationToken = _Object$assign2$activ === void 0 ? undefined : _Object$assign2$activ, _Object$assign2$recov = _Object$assign2.recoveryToken, recoveryToken = _Object$assign2$recov === void 0 ? undefined : _Object$assign2$recov;
5329
- meta = _Object$assign(_Object$assign({}, pkceMeta), {
5330
- flow: flow,
5331
- withCredentials: withCredentials,
5332
- activationToken: activationToken,
5333
- recoveryToken: recoveryToken
5334
- });
5335
- return _context.abrupt("return", meta);
5336
- case 8:
5337
- case "end":
5338
- return _context.stop();
5339
- }
5340
- }
5341
- }, _callee);
5342
- }));
5343
- return _createTransactionMeta.apply(this, arguments);
5344
- }
5345
- function hasSavedInteractionHandle(authClient, options) {
5346
- var savedMeta = getSavedTransactionMeta(authClient, options);
5347
- if (savedMeta === null || savedMeta === void 0 ? void 0 : savedMeta.interactionHandle) {
5348
- return true;
5349
- }
5350
- return false;
5351
- }
5352
- function getSavedTransactionMeta(authClient, options) {
5353
- options = removeNils(options);
5354
- options = _Object$assign(_Object$assign({}, authClient.options), options);
5355
- var savedMeta;
5356
- try {
5357
- savedMeta = authClient.transactionManager.load(options);
5358
- } catch (e) {
5359
- }
5360
- if (!savedMeta) {
5361
- return;
5362
- }
5363
- if (isTransactionMetaValid(savedMeta, options)) {
5364
- return savedMeta;
5365
- }
5366
- warn('Saved transaction meta does not match the current configuration. ' + 'This may indicate that two apps are sharing a storage key.');
5367
- }
5368
- function getTransactionMeta(_x2, _x3) {
5369
- return _getTransactionMeta.apply(this, arguments);
5370
- }
5371
- function _getTransactionMeta() {
5372
- _getTransactionMeta = _asyncToGenerator( _regeneratorRuntime.mark(function _callee2(authClient, options) {
5373
- var validExistingMeta;
5374
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
5375
- while (1) {
5376
- switch (_context2.prev = _context2.next) {
5377
- case 0:
5378
- options = removeNils(options);
5379
- options = _Object$assign(_Object$assign({}, authClient.options), options);
5380
- validExistingMeta = getSavedTransactionMeta(authClient, options);
5381
- if (!validExistingMeta) {
5382
- _context2.next = 5;
5383
- break;
5384
- }
5385
- return _context2.abrupt("return", validExistingMeta);
5386
- case 5:
5387
- return _context2.abrupt("return", createTransactionMeta(authClient, options));
5388
- case 6:
5389
- case "end":
5390
- return _context2.stop();
5391
- }
5392
- }
5393
- }, _callee2);
5394
- }));
5395
- return _getTransactionMeta.apply(this, arguments);
5396
- }
5397
- function saveTransactionMeta(authClient, meta) {
5398
- authClient.transactionManager.save(meta, {
5399
- muteWarning: true
5400
- });
5401
- }
5402
- function clearTransactionMeta(authClient) {
5403
- authClient.transactionManager.clear();
5404
- }
5405
- function isTransactionMetaValid(meta) {
5406
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5407
- var keys = ['issuer', 'clientId', 'redirectUri', 'state', 'codeChallenge', 'codeChallengeMethod', 'activationToken', 'recoveryToken'];
5408
- if (isTransactionMetaValidForOptions(meta, options, keys) === false) {
5409
- return false;
5410
- }
5411
- var flow = options.flow;
5412
- if (isTransactionMetaValidForFlow(meta, flow) === false) {
5413
- return false;
5414
- }
5415
- return true;
5416
- }
5417
- function isTransactionMetaValidForFlow(meta, flow) {
5418
- var shouldValidateFlow = flow && flow !== 'default' && flow !== 'proceed';
5419
- if (shouldValidateFlow) {
5420
- if (flow !== meta.flow) {
5421
- return false;
5422
- }
5423
- }
5424
- return true;
5425
- }
5426
- function isTransactionMetaValidForOptions(meta, options, keys) {
5427
- var mismatch = keys.some(function (key) {
5428
- var value = options[key];
5429
- if (value && value !== meta[key]) {
5430
- return true;
5431
- }
5432
- });
5433
- return !mismatch;
5434
- }
5197
+ };
5435
5198
 
5436
- function getResponse(meta) {
5199
+ function makeIdxState$1(authClient, idxResponse, toPersist, requestDidSucceed) {
5200
+ var _a, _b, _c;
5201
+ var rawIdxResponse = idxResponse;
5202
+ var _parseIdxResponse = parseIdxResponse(authClient, idxResponse, toPersist),
5203
+ remediations = _parseIdxResponse.remediations,
5204
+ context = _parseIdxResponse.context,
5205
+ actions = _parseIdxResponse.actions;
5206
+ var neededToProceed = _toConsumableArray(remediations);
5207
+ var proceed = function () {
5208
+ var _ref = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(remediationChoice) {
5209
+ var paramsFromUser,
5210
+ remediationChoiceObject,
5211
+ _args = arguments;
5212
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
5213
+ while (1) {
5214
+ switch (_context.prev = _context.next) {
5215
+ case 0:
5216
+ paramsFromUser = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
5217
+ remediationChoiceObject = _findInstanceProperty(remediations).call(remediations, function (remediation) {
5218
+ return remediation.name === remediationChoice;
5219
+ });
5220
+ if (remediationChoiceObject) {
5221
+ _context.next = 4;
5222
+ break;
5223
+ }
5224
+ return _context.abrupt("return", _Promise.reject("Unknown remediation choice: [".concat(remediationChoice, "]")));
5225
+ case 4:
5226
+ return _context.abrupt("return", remediationChoiceObject.action(paramsFromUser));
5227
+ case 5:
5228
+ case "end":
5229
+ return _context.stop();
5230
+ }
5231
+ }
5232
+ }, _callee);
5233
+ }));
5234
+ return function proceed(_x) {
5235
+ return _ref.apply(this, arguments);
5236
+ };
5237
+ }();
5238
+ var findCode = function findCode(item) {
5239
+ return item.name === 'interaction_code';
5240
+ };
5241
+ var interactionCode = (_c = (_b = (_a = rawIdxResponse.successWithInteractionCode) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _findInstanceProperty(_b).call(_b, findCode)) === null || _c === void 0 ? void 0 : _c.value;
5437
5242
  return {
5438
- meta: meta,
5439
- interactionHandle: meta.interactionHandle,
5440
- state: meta.state
5243
+ proceed: proceed,
5244
+ neededToProceed: neededToProceed,
5245
+ actions: actions,
5246
+ context: context,
5247
+ rawIdxState: rawIdxResponse,
5248
+ interactionCode: interactionCode,
5249
+ toPersist: toPersist,
5250
+ requestDidSucceed: requestDidSucceed
5441
5251
  };
5442
5252
  }
5443
- function interact(_x) {
5444
- return _interact.apply(this, arguments);
5253
+
5254
+ var v1 = {
5255
+ makeIdxState: makeIdxState$1
5256
+ };
5257
+
5258
+ var parsersForVersion = function parsersForVersion(version) {
5259
+ switch (version) {
5260
+ case '1.0.0':
5261
+ return v1;
5262
+ case undefined:
5263
+ case null:
5264
+ throw new Error('Api version is required');
5265
+ default:
5266
+ throw new Error("Unknown api version: ".concat(version, ". Use an exact semver version."));
5267
+ }
5268
+ };
5269
+ function validateVersionConfig(version) {
5270
+ if (!version) {
5271
+ throw new Error('version is required');
5272
+ }
5273
+ var cleanVersion = (version !== null && version !== void 0 ? version : '').replace(/[^0-9a-zA-Z._-]/, '');
5274
+ if (cleanVersion !== version || !version) {
5275
+ throw new Error('invalid version supplied - version is required and uses semver syntax');
5276
+ }
5277
+ parsersForVersion(version);
5445
5278
  }
5446
- function _interact() {
5447
- _interact = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(authClient) {
5448
- var options,
5449
- meta,
5450
- baseUrl,
5451
- _meta,
5452
- clientId,
5453
- redirectUri,
5454
- state,
5455
- scopes,
5456
- withCredentials,
5457
- codeChallenge,
5458
- codeChallengeMethod,
5459
- activationToken,
5460
- recoveryToken,
5461
- clientSecret,
5462
- interactionHandle,
5463
- newMeta,
5464
- _args = arguments;
5465
- return _regeneratorRuntime.wrap(function _callee$(_context) {
5466
- while (1) {
5467
- switch (_context.prev = _context.next) {
5468
- case 0:
5469
- options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
5470
- options = removeNils(options);
5471
- meta = getSavedTransactionMeta(authClient, options);
5472
- if (!(meta === null || meta === void 0 ? void 0 : meta.interactionHandle)) {
5473
- _context.next = 5;
5474
- break;
5475
- }
5476
- return _context.abrupt("return", getResponse(meta));
5477
- case 5:
5478
- _context.next = 7;
5479
- return createTransactionMeta(authClient, _Object$assign(_Object$assign({}, meta), options));
5480
- case 7:
5481
- meta = _context.sent;
5482
- baseUrl = getOAuthBaseUrl(authClient);
5483
- _meta = meta, clientId = _meta.clientId, redirectUri = _meta.redirectUri, state = _meta.state, scopes = _meta.scopes, withCredentials = _meta.withCredentials, codeChallenge = _meta.codeChallenge, codeChallengeMethod = _meta.codeChallengeMethod, activationToken = _meta.activationToken, recoveryToken = _meta.recoveryToken;
5484
- clientSecret = options.clientSecret || authClient.options.clientSecret;
5485
- _context.next = 13;
5486
- return idx.interact({
5487
- withCredentials: withCredentials,
5488
- clientId: clientId,
5489
- baseUrl: baseUrl,
5490
- scopes: scopes,
5491
- state: state,
5492
- redirectUri: redirectUri,
5493
- codeChallenge: codeChallenge,
5494
- codeChallengeMethod: codeChallengeMethod,
5495
- activationToken: activationToken,
5496
- recoveryToken: recoveryToken,
5497
- clientSecret: clientSecret
5498
- });
5499
- case 13:
5500
- interactionHandle = _context.sent;
5501
- newMeta = _Object$assign(_Object$assign({}, meta), {
5502
- interactionHandle: interactionHandle,
5503
- withCredentials: withCredentials,
5504
- state: state,
5505
- scopes: scopes,
5506
- recoveryToken: recoveryToken,
5507
- activationToken: activationToken
5508
- });
5509
- saveTransactionMeta(authClient, newMeta);
5510
- return _context.abrupt("return", getResponse(newMeta));
5511
- case 17:
5512
- case "end":
5513
- return _context.stop();
5514
- }
5515
- }
5516
- }, _callee);
5517
- }));
5518
- return _interact.apply(this, arguments);
5279
+ function makeIdxState(authClient, rawIdxResponse) {
5280
+ var toPersist = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
5281
+ var requestDidSucceed = arguments.length > 3 ? arguments[3] : undefined;
5282
+ var _a;
5283
+ var version = (_a = rawIdxResponse === null || rawIdxResponse === void 0 ? void 0 : rawIdxResponse.version) !== null && _a !== void 0 ? _a : IDX_API_VERSION;
5284
+ validateVersionConfig(version);
5285
+ var _parsersForVersion = parsersForVersion(version),
5286
+ makeIdxState = _parsersForVersion.makeIdxState;
5287
+ return makeIdxState(authClient, rawIdxResponse, toPersist, requestDidSucceed);
5519
5288
  }
5520
5289
 
5521
5290
  function introspect(_x) {
@@ -5524,11 +5293,18 @@ function introspect(_x) {
5524
5293
  function _introspect() {
5525
5294
  _introspect = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(authClient) {
5526
5295
  var options,
5296
+ _a,
5527
5297
  rawIdxResponse,
5528
5298
  requestDidSucceed,
5529
5299
  savedIdxResponse,
5530
5300
  version,
5531
5301
  domain,
5302
+ interactionHandle,
5303
+ stateHandle,
5304
+ _withCredentials,
5305
+ url,
5306
+ body,
5307
+ headers,
5532
5308
  withCredentials,
5533
5309
  _args = arguments;
5534
5310
  return _regeneratorRuntime.wrap(function _callee$(_context) {
@@ -5542,47 +5318,62 @@ function _introspect() {
5542
5318
  requestDidSucceed = savedIdxResponse.requestDidSucceed;
5543
5319
  }
5544
5320
  if (rawIdxResponse) {
5545
- _context.next = 21;
5321
+ _context.next = 27;
5546
5322
  break;
5547
5323
  }
5548
5324
  version = options.version || IDX_API_VERSION;
5549
5325
  domain = getOAuthDomain(authClient);
5550
- _context.prev = 6;
5551
- _context.next = 9;
5552
- return idx.introspect(_Object$assign(_Object$assign({
5553
- domain: domain
5554
- }, options), {
5555
- version: version
5556
- }));
5557
- case 9:
5558
- rawIdxResponse = _context.sent;
5326
+ interactionHandle = options.interactionHandle, stateHandle = options.stateHandle;
5327
+ _withCredentials = (_a = options.withCredentials) !== null && _a !== void 0 ? _a : true;
5328
+ _context.prev = 8;
5559
5329
  requestDidSucceed = true;
5560
- _context.next = 21;
5330
+ validateVersionConfig(version);
5331
+ url = "".concat(domain, "/idp/idx/introspect");
5332
+ body = stateHandle ? {
5333
+ stateToken: stateHandle
5334
+ } : {
5335
+ interactionHandle: interactionHandle
5336
+ };
5337
+ headers = {
5338
+ 'Content-Type': "application/ion+json; okta-version=".concat(version),
5339
+ Accept: "application/ion+json; okta-version=".concat(version)
5340
+ };
5341
+ _context.next = 16;
5342
+ return httpRequest(authClient, {
5343
+ method: 'POST',
5344
+ url: url,
5345
+ headers: headers,
5346
+ withCredentials: _withCredentials,
5347
+ args: body
5348
+ });
5349
+ case 16:
5350
+ rawIdxResponse = _context.sent;
5351
+ _context.next = 27;
5561
5352
  break;
5562
- case 13:
5563
- _context.prev = 13;
5564
- _context.t0 = _context["catch"](6);
5565
- if (!isRawIdxResponse(_context.t0)) {
5566
- _context.next = 20;
5353
+ case 19:
5354
+ _context.prev = 19;
5355
+ _context.t0 = _context["catch"](8);
5356
+ if (!(isAuthApiError(_context.t0) && _context.t0.xhr && isRawIdxResponse(_context.t0.xhr.responseJSON))) {
5357
+ _context.next = 26;
5567
5358
  break;
5568
5359
  }
5569
- rawIdxResponse = _context.t0;
5360
+ rawIdxResponse = _context.t0.xhr.responseJSON;
5570
5361
  requestDidSucceed = false;
5571
- _context.next = 21;
5362
+ _context.next = 27;
5572
5363
  break;
5573
- case 20:
5364
+ case 26:
5574
5365
  throw _context.t0;
5575
- case 21:
5366
+ case 27:
5576
5367
  withCredentials = options.withCredentials;
5577
- return _context.abrupt("return", idx.makeIdxState(rawIdxResponse, {
5368
+ return _context.abrupt("return", makeIdxState(authClient, rawIdxResponse, {
5578
5369
  withCredentials: withCredentials
5579
5370
  }, requestDidSucceed));
5580
- case 23:
5371
+ case 29:
5581
5372
  case "end":
5582
5373
  return _context.stop();
5583
5374
  }
5584
5375
  }
5585
- }, _callee, null, [[6, 13]]);
5376
+ }, _callee, null, [[8, 19]]);
5586
5377
  }));
5587
5378
  return _introspect.apply(this, arguments);
5588
5379
  }
@@ -5669,7 +5460,7 @@ function findMatchedOption(authenticators, options) {
5669
5460
  }
5670
5461
 
5671
5462
  function _createForOfIteratorHelper$3(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && _getIteratorMethod(o) || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$3(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
5672
- function _unsupportedIterableToArray$3(o, minLen) { var _context10; if (!o) return; if (typeof o === "string") return _arrayLikeToArray$3(o, minLen); var n = _sliceInstanceProperty(_context10 = Object.prototype.toString.call(o)).call(_context10, 8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$3(o, minLen); }
5463
+ function _unsupportedIterableToArray$3(o, minLen) { var _context11; if (!o) return; if (typeof o === "string") return _arrayLikeToArray$3(o, minLen); var n = _sliceInstanceProperty(_context11 = Object.prototype.toString.call(o)).call(_context11, 8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$3(o, minLen); }
5673
5464
  function _arrayLikeToArray$3(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
5674
5465
  var Remediator = function () {
5675
5466
  function Remediator(remediation) {
@@ -5788,7 +5579,8 @@ var Remediator = function () {
5788
5579
  var input;
5789
5580
  var name = inputFromRemediation.name,
5790
5581
  type = inputFromRemediation.type,
5791
- visible = inputFromRemediation.visible;
5582
+ visible = inputFromRemediation.visible,
5583
+ messages = inputFromRemediation.messages;
5792
5584
  if (visible === false) {
5793
5585
  return;
5794
5586
  }
@@ -5819,6 +5611,9 @@ var Remediator = function () {
5819
5611
  return inputs.push(i);
5820
5612
  });
5821
5613
  } else {
5614
+ if (messages) {
5615
+ input.messages = messages;
5616
+ }
5822
5617
  inputs.push(input);
5823
5618
  }
5824
5619
  });
@@ -5828,7 +5623,10 @@ var Remediator = function () {
5828
5623
  key: "getValuesAfterProceed",
5829
5624
  value:
5830
5625
  function getValuesAfterProceed() {
5831
- var inputs = this.getInputs();
5626
+ var _context6;
5627
+ var inputsFromRemediation = this.remediation.value || [];
5628
+ var inputsFromRemediator = this.getInputs();
5629
+ var inputs = _concatInstanceProperty(_context6 = []).call(_context6, _toConsumableArray(inputsFromRemediation), _toConsumableArray(inputsFromRemediator));
5832
5630
  var _iterator = _createForOfIteratorHelper$3(inputs),
5833
5631
  _step;
5834
5632
  try {
@@ -5846,7 +5644,7 @@ var Remediator = function () {
5846
5644
  }, {
5847
5645
  key: "getAuthenticator",
5848
5646
  value: function getAuthenticator() {
5849
- var _context6, _context7;
5647
+ var _context7, _context8;
5850
5648
  var _a, _b;
5851
5649
  var relatesTo = (_a = this.remediation.relatesTo) === null || _a === void 0 ? void 0 : _a.value;
5852
5650
  if (!relatesTo) {
@@ -5856,11 +5654,11 @@ var Remediator = function () {
5856
5654
  if (!authenticatorFromRemediation) {
5857
5655
  return relatesTo;
5858
5656
  }
5859
- var id = _findInstanceProperty(_context6 = authenticatorFromRemediation.form.value).call(_context6, function (_ref2) {
5657
+ var id = _findInstanceProperty(_context7 = authenticatorFromRemediation.form.value).call(_context7, function (_ref2) {
5860
5658
  var name = _ref2.name;
5861
5659
  return name === 'id';
5862
5660
  }).value;
5863
- var enrollmentId = (_b = _findInstanceProperty(_context7 = authenticatorFromRemediation.form.value).call(_context7, function (_ref3) {
5661
+ var enrollmentId = (_b = _findInstanceProperty(_context8 = authenticatorFromRemediation.form.value).call(_context8, function (_ref3) {
5864
5662
  var name = _ref3.name;
5865
5663
  return name === 'enrollmentId';
5866
5664
  })) === null || _b === void 0 ? void 0 : _b.value;
@@ -5872,15 +5670,15 @@ var Remediator = function () {
5872
5670
  }], [{
5873
5671
  key: "getMessages",
5874
5672
  value: function getMessages(remediation) {
5875
- var _context8;
5673
+ var _context9;
5876
5674
  var _a, _b;
5877
5675
  if (!remediation.value) {
5878
5676
  return;
5879
5677
  }
5880
- return (_b = (_a = remediation.value[0]) === null || _a === void 0 ? void 0 : _a.form) === null || _b === void 0 ? void 0 : _reduceInstanceProperty(_context8 = _b.value).call(_context8, function (messages, field) {
5678
+ return (_b = (_a = remediation.value[0]) === null || _a === void 0 ? void 0 : _a.form) === null || _b === void 0 ? void 0 : _reduceInstanceProperty(_context9 = _b.value).call(_context9, function (messages, field) {
5881
5679
  if (field.messages) {
5882
- var _context9;
5883
- messages = _concatInstanceProperty(_context9 = []).call(_context9, _toConsumableArray(messages), _toConsumableArray(field.messages.value));
5680
+ var _context10;
5681
+ messages = _concatInstanceProperty(_context10 = []).call(_context10, _toConsumableArray(messages), _toConsumableArray(field.messages.value));
5884
5682
  }
5885
5683
  return messages;
5886
5684
  }, []);
@@ -7075,15 +6873,16 @@ var AuthenticatorVerificationData = function (_AuthenticatorData) {
7075
6873
  function AuthenticatorVerificationData(remediation) {
7076
6874
  var _this;
7077
6875
  var values = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
6876
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
7078
6877
  _classCallCheck(this, AuthenticatorVerificationData);
7079
6878
  _this = _super.call(this, remediation, values);
7080
- _this.shouldProceedWithEmailAuthenticator = _this.authenticator.methods.length === 1 && _this.authenticator.methods[0].type === 'email';
6879
+ _this.shouldProceedWithEmailAuthenticator = options.shouldProceedWithEmailAuthenticator !== false && _this.authenticator.methods.length === 1 && _this.authenticator.methods[0].type === 'email';
7081
6880
  return _this;
7082
6881
  }
7083
6882
  _createClass(AuthenticatorVerificationData, [{
7084
6883
  key: "canRemediate",
7085
6884
  value: function canRemediate() {
7086
- if (this.shouldProceedWithEmailAuthenticator) {
6885
+ if (this.shouldProceedWithEmailAuthenticator !== false) {
7087
6886
  return true;
7088
6887
  }
7089
6888
  return _get(_getPrototypeOf(AuthenticatorVerificationData.prototype), "canRemediate", this).call(this);
@@ -7092,7 +6891,7 @@ var AuthenticatorVerificationData = function (_AuthenticatorData) {
7092
6891
  key: "mapAuthenticator",
7093
6892
  value: function mapAuthenticator() {
7094
6893
  var _a;
7095
- if (this.shouldProceedWithEmailAuthenticator) {
6894
+ if (this.shouldProceedWithEmailAuthenticator !== false) {
7096
6895
  var _context;
7097
6896
  var authenticatorFromRemediation = this.getAuthenticatorFromRemediation();
7098
6897
  return (_a = authenticatorFromRemediation.form) === null || _a === void 0 ? void 0 : _reduceInstanceProperty(_context = _a.value).call(_context, function (acc, curr) {
@@ -7243,7 +7042,7 @@ var remediators = /*#__PURE__*/Object.freeze({
7243
7042
  });
7244
7043
 
7245
7044
  function _createForOfIteratorHelper$1(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && _getIteratorMethod(o) || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$1(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
7246
- function _unsupportedIterableToArray$1(o, minLen) { var _context11; if (!o) return; if (typeof o === "string") return _arrayLikeToArray$1(o, minLen); var n = _sliceInstanceProperty(_context11 = Object.prototype.toString.call(o)).call(_context11, 8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen); }
7045
+ function _unsupportedIterableToArray$1(o, minLen) { var _context12; if (!o) return; if (typeof o === "string") return _arrayLikeToArray$1(o, minLen); var n = _sliceInstanceProperty(_context12 = Object.prototype.toString.call(o)).call(_context12, 8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen); }
7247
7046
  function _arrayLikeToArray$1(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
7248
7047
  function isTerminalResponse(idxResponse) {
7249
7048
  var neededToProceed = idxResponse.neededToProceed,
@@ -7388,25 +7187,34 @@ function getAvailableSteps(idxResponse) {
7388
7187
  }
7389
7188
  return res;
7390
7189
  }
7391
- function filterValuesForRemediation(idxResponse, values) {
7190
+ function filterValuesForRemediation(idxResponse, remediationName, values) {
7392
7191
  var _context10;
7393
- var valuesForRemediation = _reduceInstanceProperty(_context10 = idxResponse.neededToProceed[0].value).call(_context10, function (res, entry) {
7394
- var name = entry.name;
7395
- res[name] = values[name];
7192
+ var remediations = idxResponse.neededToProceed || [];
7193
+ var remediation = _findInstanceProperty(remediations).call(remediations, function (r) {
7194
+ return r.name === remediationName;
7195
+ });
7196
+ if (!remediation) {
7197
+ warn("filterValuesForRemediation: \"".concat(remediationName, "\" did not match any remediations"));
7198
+ return values;
7199
+ }
7200
+ var valuesForRemediation = _reduceInstanceProperty(_context10 = remediation.value).call(_context10, function (res, entry) {
7201
+ var name = entry.name,
7202
+ value = entry.value;
7203
+ if (name === 'stateHandle') {
7204
+ res[name] = value;
7205
+ } else {
7206
+ res[name] = values[name];
7207
+ }
7396
7208
  return res;
7397
7209
  }, {});
7398
7210
  return valuesForRemediation;
7399
7211
  }
7400
-
7401
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && _getIteratorMethod(o) || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
7402
- function _unsupportedIterableToArray(o, minLen) { var _context6; if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = _sliceInstanceProperty(_context6 = Object.prototype.toString.call(o)).call(_context6, 8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
7403
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
7404
7212
  function getRemediator(idxRemediations, values, options) {
7405
7213
  var remediators = options.remediators;
7406
7214
  var remediator;
7407
7215
  if (options.step) {
7408
- var remediation = _findInstanceProperty(idxRemediations).call(idxRemediations, function (_ref) {
7409
- var name = _ref.name;
7216
+ var remediation = _findInstanceProperty(idxRemediations).call(idxRemediations, function (_ref5) {
7217
+ var name = _ref5.name;
7410
7218
  return name === options.step;
7411
7219
  });
7412
7220
  if (remediation) {
@@ -7418,13 +7226,13 @@ function getRemediator(idxRemediations, values, options) {
7418
7226
  }
7419
7227
  }
7420
7228
  var remediatorCandidates = [];
7421
- var _iterator = _createForOfIteratorHelper(idxRemediations),
7422
- _step;
7229
+ var _iterator3 = _createForOfIteratorHelper$1(idxRemediations),
7230
+ _step3;
7423
7231
  try {
7424
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
7425
- var _context;
7426
- var _remediation = _step.value;
7427
- var isRemeditionInFlow = _includesInstanceProperty(_context = _Object$keys(remediators)).call(_context, _remediation.name);
7232
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
7233
+ var _context11;
7234
+ var _remediation = _step3.value;
7235
+ var isRemeditionInFlow = _includesInstanceProperty(_context11 = _Object$keys(remediators)).call(_context11, _remediation.name);
7428
7236
  if (!isRemeditionInFlow) {
7429
7237
  continue;
7430
7238
  }
@@ -7436,9 +7244,9 @@ function getRemediator(idxRemediations, values, options) {
7436
7244
  remediatorCandidates.push(remediator);
7437
7245
  }
7438
7246
  } catch (err) {
7439
- _iterator.e(err);
7247
+ _iterator3.e(err);
7440
7248
  } finally {
7441
- _iterator.f();
7249
+ _iterator3.f();
7442
7250
  }
7443
7251
  return remediatorCandidates[0];
7444
7252
  }
@@ -7457,7 +7265,9 @@ function handleIdxError(e, remediator) {
7457
7265
  if (!idxResponse) {
7458
7266
  throw e;
7459
7267
  }
7460
- idxResponse.requestDidSucceed = false;
7268
+ idxResponse = _Object$assign(_Object$assign({}, idxResponse), {
7269
+ requestDidSucceed: false
7270
+ });
7461
7271
  var terminal = isTerminalResponse(idxResponse);
7462
7272
  var messages = getMessagesFromResponse(idxResponse);
7463
7273
  if (terminal) {
@@ -7476,44 +7286,61 @@ function handleIdxError(e, remediator) {
7476
7286
  });
7477
7287
  }
7478
7288
  }
7289
+
7290
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && _getIteratorMethod(o) || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
7291
+ function _unsupportedIterableToArray(o, minLen) { var _context5; if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = _sliceInstanceProperty(_context5 = Object.prototype.toString.call(o)).call(_context5, 8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
7292
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
7479
7293
  function getActionFromValues(values, idxResponse) {
7480
- var _context2;
7481
- return _findInstanceProperty(_context2 = _Object$keys(idxResponse.actions)).call(_context2, function (action) {
7294
+ var _context;
7295
+ return _findInstanceProperty(_context = _Object$keys(idxResponse.actions)).call(_context, function (action) {
7482
7296
  return !!values.resend && _includesInstanceProperty(action).call(action, '-resend');
7483
7297
  });
7484
7298
  }
7485
7299
  function removeActionFromValues(values) {
7486
- values.resend = undefined;
7487
- return values;
7300
+ return _Object$assign(_Object$assign({}, values), {
7301
+ resend: undefined
7302
+ });
7303
+ }
7304
+ function removeActionFromOptions(options, actionName) {
7305
+ var actions = options.actions || [];
7306
+ actions = _filterInstanceProperty(actions).call(actions, function (entry) {
7307
+ if (typeof entry === 'string') {
7308
+ return entry !== actionName;
7309
+ }
7310
+ return entry.name !== actionName;
7311
+ });
7312
+ return _Object$assign(_Object$assign({}, options), {
7313
+ actions: actions
7314
+ });
7488
7315
  }
7489
7316
  function remediate(_x, _x2, _x3) {
7490
7317
  return _remediate.apply(this, arguments);
7491
7318
  }
7492
7319
  function _remediate() {
7493
7320
  _remediate = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(idxResponse, values, options) {
7494
- var _context3;
7495
- var _idxResponse, neededToProceed, interactionCode, flow, terminal, messages, remediator, actionFromValues, actionFromOptions, actions, _iterator2, _step2, _loop, _ret, nextStep, _nextStep, name, data;
7496
- return _regeneratorRuntime.wrap(function _callee$(_context5) {
7321
+ var _context2;
7322
+ var _idxResponse, neededToProceed, interactionCode, _options, flow, terminal, messages, remediator, actionFromValues, actionFromOptions, actions, _iterator, _step, _loop, _ret, nextStep, name, data;
7323
+ return _regeneratorRuntime.wrap(function _callee$(_context4) {
7497
7324
  while (1) {
7498
- switch (_context5.prev = _context5.next) {
7325
+ switch (_context4.prev = _context4.next) {
7499
7326
  case 0:
7500
7327
  _idxResponse = idxResponse, neededToProceed = _idxResponse.neededToProceed, interactionCode = _idxResponse.interactionCode;
7501
- flow = options.flow;
7328
+ _options = options, flow = _options.flow;
7502
7329
  if (!interactionCode) {
7503
- _context5.next = 4;
7330
+ _context4.next = 4;
7504
7331
  break;
7505
7332
  }
7506
- return _context5.abrupt("return", {
7333
+ return _context4.abrupt("return", {
7507
7334
  idxResponse: idxResponse
7508
7335
  });
7509
7336
  case 4:
7510
7337
  terminal = isTerminalResponse(idxResponse);
7511
7338
  messages = getMessagesFromResponse(idxResponse);
7512
7339
  if (!terminal) {
7513
- _context5.next = 8;
7340
+ _context4.next = 8;
7514
7341
  break;
7515
7342
  }
7516
- return _context5.abrupt("return", {
7343
+ return _context4.abrupt("return", {
7517
7344
  idxResponse: idxResponse,
7518
7345
  terminal: terminal,
7519
7346
  messages: messages
@@ -7522,150 +7349,157 @@ function _remediate() {
7522
7349
  remediator = getRemediator(neededToProceed, values, options);
7523
7350
  actionFromValues = getActionFromValues(values, idxResponse);
7524
7351
  actionFromOptions = options.actions || [];
7525
- actions = _concatInstanceProperty(_context3 = []).call(_context3, _toConsumableArray(actionFromOptions), _toConsumableArray(actionFromValues && [actionFromValues] || []));
7352
+ actions = _concatInstanceProperty(_context2 = []).call(_context2, _toConsumableArray(actionFromOptions), _toConsumableArray(actionFromValues && [actionFromValues] || []));
7526
7353
  if (!actions) {
7527
- _context5.next = 32;
7354
+ _context4.next = 32;
7528
7355
  break;
7529
7356
  }
7530
- _iterator2 = _createForOfIteratorHelper(actions);
7531
- _context5.prev = 14;
7357
+ _iterator = _createForOfIteratorHelper(actions);
7358
+ _context4.prev = 14;
7532
7359
  _loop = _regeneratorRuntime.mark(function _loop() {
7533
- var action, valuesWithoutExecutedAction, optionsWithoutExecutedAction, remediationAction;
7534
- return _regeneratorRuntime.wrap(function _loop$(_context4) {
7360
+ var action, params, valuesWithoutExecutedAction, optionsWithoutExecutedAction, remediationAction;
7361
+ return _regeneratorRuntime.wrap(function _loop$(_context3) {
7535
7362
  while (1) {
7536
- switch (_context4.prev = _context4.next) {
7363
+ switch (_context3.prev = _context3.next) {
7537
7364
  case 0:
7538
- action = _step2.value;
7365
+ action = _step.value;
7366
+ params = {};
7367
+ if (typeof action !== 'string') {
7368
+ params = action.params || {};
7369
+ action = action.name;
7370
+ }
7539
7371
  valuesWithoutExecutedAction = removeActionFromValues(values);
7540
- optionsWithoutExecutedAction = _Object$assign(_Object$assign({}, options), {
7541
- actions: _filterInstanceProperty(actionFromOptions).call(actionFromOptions, function (entry) {
7542
- return entry !== action;
7543
- })
7544
- });
7372
+ optionsWithoutExecutedAction = removeActionFromOptions(options, action);
7545
7373
  if (!(typeof idxResponse.actions[action] === 'function')) {
7546
- _context4.next = 17;
7374
+ _context3.next = 19;
7547
7375
  break;
7548
7376
  }
7549
- _context4.prev = 4;
7550
- _context4.next = 7;
7551
- return idxResponse.actions[action]();
7552
- case 7:
7553
- idxResponse = _context4.sent;
7554
- idxResponse.requestDidSucceed = true;
7555
- _context4.next = 14;
7377
+ _context3.prev = 6;
7378
+ _context3.next = 9;
7379
+ return idxResponse.actions[action](params);
7380
+ case 9:
7381
+ idxResponse = _context3.sent;
7382
+ idxResponse = _Object$assign(_Object$assign({}, idxResponse), {
7383
+ requestDidSucceed: true
7384
+ });
7385
+ _context3.next = 16;
7556
7386
  break;
7557
- case 11:
7558
- _context4.prev = 11;
7559
- _context4.t0 = _context4["catch"](4);
7560
- return _context4.abrupt("return", {
7561
- v: handleIdxError(_context4.t0, remediator)
7387
+ case 13:
7388
+ _context3.prev = 13;
7389
+ _context3.t0 = _context3["catch"](6);
7390
+ return _context3.abrupt("return", {
7391
+ v: handleIdxError(_context3.t0, remediator)
7562
7392
  });
7563
- case 14:
7393
+ case 16:
7564
7394
  if (!(action === 'cancel')) {
7565
- _context4.next = 16;
7395
+ _context3.next = 18;
7566
7396
  break;
7567
7397
  }
7568
- return _context4.abrupt("return", {
7398
+ return _context3.abrupt("return", {
7569
7399
  v: {
7570
7400
  idxResponse: idxResponse,
7571
7401
  canceled: true
7572
7402
  }
7573
7403
  });
7574
- case 16:
7575
- return _context4.abrupt("return", {
7404
+ case 18:
7405
+ return _context3.abrupt("return", {
7576
7406
  v: remediate(idxResponse, valuesWithoutExecutedAction, optionsWithoutExecutedAction)
7577
7407
  });
7578
- case 17:
7579
- remediationAction = _findInstanceProperty(neededToProceed).call(neededToProceed, function (_ref2) {
7580
- var name = _ref2.name;
7408
+ case 19:
7409
+ remediationAction = _findInstanceProperty(neededToProceed).call(neededToProceed, function (_ref) {
7410
+ var name = _ref.name;
7581
7411
  return name === action;
7582
7412
  });
7583
7413
  if (!remediationAction) {
7584
- _context4.next = 30;
7414
+ _context3.next = 32;
7585
7415
  break;
7586
7416
  }
7587
- _context4.prev = 19;
7588
- _context4.next = 22;
7589
- return idxResponse.proceed(action, {});
7590
- case 22:
7591
- idxResponse = _context4.sent;
7592
- idxResponse.requestDidSucceed = true;
7593
- _context4.next = 29;
7417
+ _context3.prev = 21;
7418
+ _context3.next = 24;
7419
+ return idxResponse.proceed(action, params);
7420
+ case 24:
7421
+ idxResponse = _context3.sent;
7422
+ idxResponse = _Object$assign(_Object$assign({}, idxResponse), {
7423
+ requestDidSucceed: true
7424
+ });
7425
+ _context3.next = 31;
7594
7426
  break;
7595
- case 26:
7596
- _context4.prev = 26;
7597
- _context4.t1 = _context4["catch"](19);
7598
- return _context4.abrupt("return", {
7599
- v: handleIdxError(_context4.t1, remediator)
7427
+ case 28:
7428
+ _context3.prev = 28;
7429
+ _context3.t1 = _context3["catch"](21);
7430
+ return _context3.abrupt("return", {
7431
+ v: handleIdxError(_context3.t1, remediator)
7600
7432
  });
7601
- case 29:
7602
- return _context4.abrupt("return", {
7433
+ case 31:
7434
+ return _context3.abrupt("return", {
7603
7435
  v: remediate(idxResponse, values, optionsWithoutExecutedAction)
7604
7436
  });
7605
- case 30:
7437
+ case 32:
7606
7438
  case "end":
7607
- return _context4.stop();
7439
+ return _context3.stop();
7608
7440
  }
7609
7441
  }
7610
- }, _loop, null, [[4, 11], [19, 26]]);
7442
+ }, _loop, null, [[6, 13], [21, 28]]);
7611
7443
  });
7612
- _iterator2.s();
7444
+ _iterator.s();
7613
7445
  case 17:
7614
- if ((_step2 = _iterator2.n()).done) {
7615
- _context5.next = 24;
7446
+ if ((_step = _iterator.n()).done) {
7447
+ _context4.next = 24;
7616
7448
  break;
7617
7449
  }
7618
- return _context5.delegateYield(_loop(), "t0", 19);
7450
+ return _context4.delegateYield(_loop(), "t0", 19);
7619
7451
  case 19:
7620
- _ret = _context5.t0;
7452
+ _ret = _context4.t0;
7621
7453
  if (!(_typeof(_ret) === "object")) {
7622
- _context5.next = 22;
7454
+ _context4.next = 22;
7623
7455
  break;
7624
7456
  }
7625
- return _context5.abrupt("return", _ret.v);
7457
+ return _context4.abrupt("return", _ret.v);
7626
7458
  case 22:
7627
- _context5.next = 17;
7459
+ _context4.next = 17;
7628
7460
  break;
7629
7461
  case 24:
7630
- _context5.next = 29;
7462
+ _context4.next = 29;
7631
7463
  break;
7632
7464
  case 26:
7633
- _context5.prev = 26;
7634
- _context5.t1 = _context5["catch"](14);
7635
- _iterator2.e(_context5.t1);
7465
+ _context4.prev = 26;
7466
+ _context4.t1 = _context4["catch"](14);
7467
+ _iterator.e(_context4.t1);
7636
7468
  case 29:
7637
- _context5.prev = 29;
7638
- _iterator2.f();
7639
- return _context5.finish(29);
7469
+ _context4.prev = 29;
7470
+ _iterator.f();
7471
+ return _context4.finish(29);
7640
7472
  case 32:
7641
7473
  if (remediator) {
7642
- _context5.next = 49;
7474
+ _context4.next = 49;
7643
7475
  break;
7644
7476
  }
7645
7477
  if (!options.step) {
7646
- _context5.next = 46;
7478
+ _context4.next = 46;
7647
7479
  break;
7648
7480
  }
7649
- values = filterValuesForRemediation(idxResponse, values);
7650
- _context5.prev = 35;
7651
- _context5.next = 38;
7481
+ values = filterValuesForRemediation(idxResponse, options.step, values);
7482
+ _context4.prev = 35;
7483
+ _context4.next = 38;
7652
7484
  return idxResponse.proceed(options.step, values);
7653
7485
  case 38:
7654
- idxResponse = _context5.sent;
7655
- idxResponse.requestDidSucceed = true;
7656
- return _context5.abrupt("return", {
7486
+ idxResponse = _context4.sent;
7487
+ idxResponse = _Object$assign(_Object$assign({}, idxResponse), {
7488
+ requestDidSucceed: true
7489
+ });
7490
+ return _context4.abrupt("return", {
7657
7491
  idxResponse: idxResponse
7658
7492
  });
7659
7493
  case 43:
7660
- _context5.prev = 43;
7661
- _context5.t2 = _context5["catch"](35);
7662
- return _context5.abrupt("return", handleIdxError(_context5.t2));
7494
+ _context4.prev = 43;
7495
+ _context4.t2 = _context4["catch"](35);
7496
+ return _context4.abrupt("return", handleIdxError(_context4.t2));
7663
7497
  case 46:
7664
7498
  if (!(flow === 'default')) {
7665
- _context5.next = 48;
7499
+ _context4.next = 48;
7666
7500
  break;
7667
7501
  }
7668
- return _context5.abrupt("return", {
7502
+ return _context4.abrupt("return", {
7669
7503
  idxResponse: idxResponse
7670
7504
  });
7671
7505
  case 48:
@@ -7673,48 +7507,42 @@ function _remediate() {
7673
7507
  return acc ? acc + ' ,' + curr.name : curr.name;
7674
7508
  }, ''), "]\n "));
7675
7509
  case 49:
7676
- if (!messages.length) {
7677
- _context5.next = 52;
7510
+ if (remediator.canRemediate()) {
7511
+ _context4.next = 52;
7678
7512
  break;
7679
7513
  }
7680
7514
  nextStep = getNextStep(remediator, idxResponse);
7681
- return _context5.abrupt("return", {
7515
+ return _context4.abrupt("return", {
7682
7516
  idxResponse: idxResponse,
7683
7517
  nextStep: nextStep,
7684
- messages: messages
7518
+ messages: messages.length ? messages : undefined
7685
7519
  });
7686
7520
  case 52:
7687
- if (remediator.canRemediate()) {
7688
- _context5.next = 55;
7689
- break;
7690
- }
7691
- _nextStep = getNextStep(remediator, idxResponse);
7692
- return _context5.abrupt("return", {
7693
- idxResponse: idxResponse,
7694
- nextStep: _nextStep
7695
- });
7696
- case 55:
7697
7521
  name = remediator.getName();
7698
7522
  data = remediator.getData();
7699
- _context5.prev = 57;
7700
- _context5.next = 60;
7523
+ _context4.prev = 54;
7524
+ _context4.next = 57;
7701
7525
  return idxResponse.proceed(name, data);
7702
- case 60:
7703
- idxResponse = _context5.sent;
7704
- idxResponse.requestDidSucceed = true;
7526
+ case 57:
7527
+ idxResponse = _context4.sent;
7528
+ idxResponse = _Object$assign(_Object$assign({}, idxResponse), {
7529
+ requestDidSucceed: true
7530
+ });
7705
7531
  values = remediator.getValuesAfterProceed();
7706
- delete options.step;
7707
- return _context5.abrupt("return", remediate(idxResponse, values, options));
7532
+ options = _Object$assign(_Object$assign({}, options), {
7533
+ step: undefined
7534
+ });
7535
+ return _context4.abrupt("return", remediate(idxResponse, values, options));
7536
+ case 64:
7537
+ _context4.prev = 64;
7538
+ _context4.t3 = _context4["catch"](54);
7539
+ return _context4.abrupt("return", handleIdxError(_context4.t3, remediator));
7708
7540
  case 67:
7709
- _context5.prev = 67;
7710
- _context5.t3 = _context5["catch"](57);
7711
- return _context5.abrupt("return", handleIdxError(_context5.t3, remediator));
7712
- case 70:
7713
7541
  case "end":
7714
- return _context5.stop();
7542
+ return _context4.stop();
7715
7543
  }
7716
7544
  }
7717
- }, _callee, null, [[14, 26, 29, 32], [35, 43], [57, 67]]);
7545
+ }, _callee, null, [[14, 26, 29, 32], [35, 43], [54, 64]]);
7718
7546
  }));
7719
7547
  return _remediate.apply(this, arguments);
7720
7548
  }
@@ -7809,7 +7637,7 @@ function getFlowSpecification(oktaAuth) {
7809
7637
  }
7810
7638
 
7811
7639
  function initializeValues(options) {
7812
- var knownOptions = ['flow', 'remediators', 'actions', 'withCredentials', 'step'];
7640
+ var knownOptions = ['flow', 'remediators', 'actions', 'withCredentials', 'step', 'shouldProceedWithEmailAuthenticator'];
7813
7641
  var values = _Object$assign({}, options);
7814
7642
  knownOptions.forEach(function (option) {
7815
7643
  delete values[option];
@@ -7853,26 +7681,26 @@ function _getDataFromIntrospect() {
7853
7681
  case 0:
7854
7682
  options = data.options;
7855
7683
  stateHandle = options.stateHandle, withCredentials = options.withCredentials, version = options.version, state = options.state, scopes = options.scopes, recoveryToken = options.recoveryToken, activationToken = options.activationToken;
7684
+ meta = getSavedTransactionMeta(authClient, {
7685
+ state: state,
7686
+ recoveryToken: recoveryToken,
7687
+ activationToken: activationToken
7688
+ });
7856
7689
  if (!stateHandle) {
7857
- _context.next = 8;
7690
+ _context.next = 9;
7858
7691
  break;
7859
7692
  }
7860
- _context.next = 5;
7693
+ _context.next = 6;
7861
7694
  return introspect(authClient, {
7862
7695
  withCredentials: withCredentials,
7863
7696
  version: version,
7864
7697
  stateHandle: stateHandle
7865
7698
  });
7866
- case 5:
7699
+ case 6:
7867
7700
  idxResponse = _context.sent;
7868
7701
  _context.next = 20;
7869
7702
  break;
7870
- case 8:
7871
- meta = getSavedTransactionMeta(authClient, {
7872
- state: state,
7873
- recoveryToken: recoveryToken,
7874
- activationToken: activationToken
7875
- });
7703
+ case 9:
7876
7704
  interactionHandle = meta === null || meta === void 0 ? void 0 : meta.interactionHandle;
7877
7705
  if (interactionHandle) {
7878
7706
  _context.next = 17;
@@ -7919,13 +7747,13 @@ function getDataFromRemediate(_x3) {
7919
7747
  }
7920
7748
  function _getDataFromRemediate() {
7921
7749
  _getDataFromRemediate = _asyncToGenerator( _regeneratorRuntime.mark(function _callee2(data) {
7922
- var idxResponse, options, values, autoRemediate, remediators, actions, flow, step, shouldRemediate, _yield$remediate, idxResponseFromRemediation, nextStep, canceled;
7750
+ var idxResponse, options, values, autoRemediate, remediators, actions, flow, step, shouldProceedWithEmailAuthenticator, shouldRemediate, _yield$remediate, idxResponseFromRemediation, nextStep, canceled;
7923
7751
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
7924
7752
  while (1) {
7925
7753
  switch (_context2.prev = _context2.next) {
7926
7754
  case 0:
7927
7755
  idxResponse = data.idxResponse, options = data.options, values = _valuesInstanceProperty(data);
7928
- autoRemediate = options.autoRemediate, remediators = options.remediators, actions = options.actions, flow = options.flow, step = options.step;
7756
+ autoRemediate = options.autoRemediate, remediators = options.remediators, actions = options.actions, flow = options.flow, step = options.step, shouldProceedWithEmailAuthenticator = options.shouldProceedWithEmailAuthenticator;
7929
7757
  shouldRemediate = autoRemediate !== false && (remediators || actions || step);
7930
7758
  if (shouldRemediate) {
7931
7759
  _context2.next = 5;
@@ -7941,7 +7769,8 @@ function _getDataFromRemediate() {
7941
7769
  remediators: remediators,
7942
7770
  actions: actions,
7943
7771
  flow: flow,
7944
- step: step
7772
+ step: step,
7773
+ shouldProceedWithEmailAuthenticator: shouldProceedWithEmailAuthenticator
7945
7774
  });
7946
7775
  case 8:
7947
7776
  _yield$remediate = _context2.sent;
@@ -8115,13 +7944,14 @@ function _run() {
8115
7944
  error,
8116
7945
  interactionCode,
8117
7946
  rawIdxResponse,
8118
- requestDidSucceed,
7947
+ _requestDidSucceed,
8119
7948
  _ref,
8120
7949
  actions,
8121
7950
  context,
8122
7951
  neededToProceed,
8123
7952
  proceed,
8124
7953
  rawIdxState,
7954
+ requestDidSucceed,
8125
7955
  _args5 = arguments;
8126
7956
  return _regeneratorRuntime.wrap(function _callee5$(_context5) {
8127
7957
  while (1) {
@@ -8161,14 +7991,14 @@ function _run() {
8161
7991
  } else {
8162
7992
  saveTransactionMeta(authClient, _Object$assign({}, meta));
8163
7993
  if (idxResponse) {
8164
- rawIdxResponse = idxResponse.rawIdxState, requestDidSucceed = idxResponse.requestDidSucceed;
7994
+ rawIdxResponse = idxResponse.rawIdxState, _requestDidSucceed = idxResponse.requestDidSucceed;
8165
7995
  authClient.transactionManager.saveIdxResponse({
8166
7996
  rawIdxResponse: rawIdxResponse,
8167
- requestDidSucceed: requestDidSucceed
7997
+ requestDidSucceed: _requestDidSucceed
8168
7998
  });
8169
7999
  }
8170
8000
  }
8171
- _ref = idxResponse || {}, actions = _ref.actions, context = _ref.context, neededToProceed = _ref.neededToProceed, proceed = _ref.proceed, rawIdxState = _ref.rawIdxState;
8001
+ _ref = idxResponse || {}, actions = _ref.actions, context = _ref.context, neededToProceed = _ref.neededToProceed, proceed = _ref.proceed, rawIdxState = _ref.rawIdxState, requestDidSucceed = _ref.requestDidSucceed;
8172
8002
  return _context5.abrupt("return", _Object$assign(_Object$assign(_Object$assign(_Object$assign(_Object$assign(_Object$assign(_Object$assign(_Object$assign({
8173
8003
  status: status
8174
8004
  }, meta && {
@@ -8191,7 +8021,8 @@ function _run() {
8191
8021
  context: context,
8192
8022
  neededToProceed: neededToProceed,
8193
8023
  proceed: proceed,
8194
- rawIdxState: rawIdxState
8024
+ rawIdxState: rawIdxState,
8025
+ requestDidSucceed: requestDidSucceed
8195
8026
  }));
8196
8027
  case 22:
8197
8028
  case "end":
@@ -8652,26 +8483,10 @@ function _unlockAccount() {
8652
8483
  return _unlockAccount.apply(this, arguments);
8653
8484
  }
8654
8485
 
8655
- function setGlobalRequestInterceptor(fn) {
8656
- idx.client.interceptors.request.use(fn);
8657
- }
8658
- function createGlobalRequestInterceptor(sdk) {
8659
- return function (requestConfig) {
8660
- var oktaUserAgentHeader = sdk._oktaUserAgent.getHttpHeader();
8661
- var headers = _Object$assign(_Object$assign({}, oktaUserAgentHeader), sdk.options.headers);
8662
- _Object$keys(headers).forEach(function (name) {
8663
- if (!sdk.options.clientSecret && name === 'X-Device-Token') {
8664
- return;
8665
- }
8666
- requestConfig.headers[name] = headers[name];
8667
- });
8668
- };
8669
- }
8670
-
8671
8486
  var OktaUserAgent = function () {
8672
8487
  function OktaUserAgent() {
8673
8488
  _classCallCheck(this, OktaUserAgent);
8674
- this.environments = ["okta-auth-js/".concat("6.3.1")];
8489
+ this.environments = ["okta-auth-js/".concat("6.4.1")];
8675
8490
  }
8676
8491
  _createClass(OktaUserAgent, [{
8677
8492
  key: "addEnvironment",
@@ -8689,7 +8504,7 @@ var OktaUserAgent = function () {
8689
8504
  }, {
8690
8505
  key: "getVersion",
8691
8506
  value: function getVersion() {
8692
- return "6.3.1";
8507
+ return "6.4.1";
8693
8508
  }
8694
8509
  }, {
8695
8510
  key: "maybeAddNodeEnvironment",
@@ -8708,6 +8523,7 @@ var OktaAuth = function () {
8708
8523
  function OktaAuth(args) {
8709
8524
  var _this = this;
8710
8525
  _classCallCheck(this, OktaAuth);
8526
+ this.features = features;
8711
8527
  var options = this.options = buildOptions(args);
8712
8528
  this.storageManager = new StorageManager(options.storageManager, options.cookies, options.storageUtil);
8713
8529
  this.transactionManager = new TransactionManager(_Object$assign({
@@ -8837,7 +8653,6 @@ var OktaAuth = function () {
8837
8653
  canProceed: canProceed.bind(null, this),
8838
8654
  unlockAccount: unlockAccount.bind(null, this)
8839
8655
  };
8840
- setGlobalRequestInterceptor(createGlobalRequestInterceptor(this));
8841
8656
  this.http = {
8842
8657
  setRequestHeader: setRequestHeader.bind(null, this)
8843
8658
  };
@@ -9549,9 +9364,10 @@ var OktaAuth = function () {
9549
9364
  }]);
9550
9365
  return OktaAuth;
9551
9366
  }();
9552
- OktaAuth.features = OktaAuth.prototype.features = features;
9367
+ OktaAuth.features = features;
9553
9368
  OktaAuth.crypto = crypto$1;
9554
9369
  OktaAuth.webauthn = webauthn;
9370
+ OktaAuth.features = OktaAuth.prototype.features = features;
9555
9371
  _Object$assign(OktaAuth, {
9556
9372
  constants: constants
9557
9373
  });