@okta/okta-auth-js 6.3.2 → 6.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/CHANGELOG.md +28 -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/TokenManager.js.map +1 -1
  9. package/cjs/crypto/verifyToken.js +2 -1
  10. package/cjs/crypto/verifyToken.js.map +1 -1
  11. package/cjs/errors/AuthApiError.js.map +1 -1
  12. package/cjs/errors/OAuthError.js +7 -1
  13. package/cjs/errors/OAuthError.js.map +1 -1
  14. package/cjs/fetch/fetchRequest.js +17 -3
  15. package/cjs/fetch/fetchRequest.js.map +1 -1
  16. package/cjs/http/request.js +7 -3
  17. package/cjs/http/request.js.map +1 -1
  18. package/cjs/idx/idxState/index.js +55 -0
  19. package/cjs/idx/idxState/index.js.map +1 -0
  20. package/cjs/idx/{idx-js → idxState}/v1/actionParser.js +1 -0
  21. package/cjs/idx/idxState/v1/actionParser.js.map +1 -0
  22. package/cjs/idx/{idx-js → idxState}/v1/generateIdxAction.js +43 -30
  23. package/cjs/idx/idxState/v1/generateIdxAction.js.map +1 -0
  24. package/cjs/idx/{idx-js → idxState}/v1/idxResponseParser.js +8 -8
  25. package/cjs/idx/idxState/v1/idxResponseParser.js.map +1 -0
  26. package/cjs/idx/{idx-js → idxState}/v1/makeIdxState.js +3 -2
  27. package/cjs/idx/idxState/v1/makeIdxState.js.map +1 -0
  28. package/cjs/idx/{idx-js → idxState}/v1/parsers.js +1 -0
  29. package/cjs/idx/idxState/v1/parsers.js.map +1 -0
  30. package/cjs/idx/{idx-js → idxState}/v1/remediationParser.js +4 -2
  31. package/cjs/idx/idxState/v1/remediationParser.js.map +1 -0
  32. package/cjs/idx/interact.js +42 -21
  33. package/cjs/idx/interact.js.map +1 -1
  34. package/cjs/idx/introspect.js +37 -12
  35. package/cjs/idx/introspect.js.map +1 -1
  36. package/cjs/idx/remediate.js +56 -132
  37. package/cjs/idx/remediate.js.map +1 -1
  38. package/cjs/idx/remediators/AuthenticatorEnrollmentData.js.map +1 -1
  39. package/cjs/idx/remediators/AuthenticatorVerificationData.js +7 -6
  40. package/cjs/idx/remediators/AuthenticatorVerificationData.js.map +1 -1
  41. package/cjs/idx/remediators/Base/AuthenticatorData.js.map +1 -1
  42. package/cjs/idx/remediators/Base/Remediator.js +12 -2
  43. package/cjs/idx/remediators/Base/Remediator.js.map +1 -1
  44. package/cjs/idx/remediators/Base/SelectAuthenticator.js.map +1 -1
  45. package/cjs/idx/remediators/Base/VerifyAuthenticator.js.map +1 -1
  46. package/cjs/idx/remediators/ChallengeAuthenticator.js.map +1 -1
  47. package/cjs/idx/remediators/EnrollAuthenticator.js.map +1 -1
  48. package/cjs/idx/remediators/EnrollPoll.js.map +1 -1
  49. package/cjs/idx/remediators/EnrollProfile.js.map +1 -1
  50. package/cjs/idx/remediators/EnrollmentChannelData.js.map +1 -1
  51. package/cjs/idx/remediators/Identify.js.map +1 -1
  52. package/cjs/idx/remediators/ReEnrollAuthenticator.js.map +1 -1
  53. package/cjs/idx/remediators/ResetAuthenticator.js.map +1 -1
  54. package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js.map +1 -1
  55. package/cjs/idx/remediators/SelectAuthenticatorEnroll.js.map +1 -1
  56. package/cjs/idx/remediators/SelectAuthenticatorUnlockAccount.js.map +1 -1
  57. package/cjs/idx/remediators/SelectEnrollProfile.js.map +1 -1
  58. package/cjs/idx/remediators/SelectEnrollmentChannel.js.map +1 -1
  59. package/cjs/idx/remediators/Skip.js.map +1 -1
  60. package/cjs/idx/run.js +16 -12
  61. package/cjs/idx/run.js.map +1 -1
  62. package/cjs/idx/types/idx-js.js +2 -0
  63. package/cjs/idx/types/idx-js.js.map +1 -1
  64. package/cjs/idx/types/index.js +0 -138
  65. package/cjs/idx/types/index.js.map +1 -1
  66. package/cjs/idx/util.js +127 -5
  67. package/cjs/idx/util.js.map +1 -1
  68. package/cjs/server/serverStorage.js +1 -0
  69. package/cjs/server/serverStorage.js.map +1 -1
  70. package/cjs/tx/AuthTransaction.js.map +1 -1
  71. package/cjs/types/Token.js +0 -1
  72. package/cjs/types/Token.js.map +1 -1
  73. package/cjs/util/object.js.map +1 -1
  74. package/cjs/util/types.js.map +1 -1
  75. package/dist/okta-auth-js.min.js +1 -1
  76. package/dist/okta-auth-js.min.js.map +1 -1
  77. package/dist/okta-auth-js.umd.js +1 -1
  78. package/dist/okta-auth-js.umd.js.map +1 -1
  79. package/esm/esm.browser.js +599 -684
  80. package/esm/esm.browser.js.map +1 -1
  81. package/esm/esm.node.mjs +599 -684
  82. package/esm/esm.node.mjs.map +1 -1
  83. package/lib/TokenManager.d.ts +2 -2
  84. package/lib/errors/OAuthError.d.ts +2 -0
  85. package/lib/idx/flow/RemediationFlow.d.ts +2 -2
  86. package/lib/idx/idxState/index.d.ts +7 -0
  87. package/lib/idx/{idx-js → idxState}/v1/actionParser.d.ts +0 -0
  88. package/lib/idx/{idx-js → idxState}/v1/generateIdxAction.d.ts +3 -1
  89. package/lib/idx/{idx-js → idxState}/v1/idxResponseParser.d.ts +3 -2
  90. package/lib/idx/{idx-js → idxState}/v1/makeIdxState.d.ts +3 -2
  91. package/lib/idx/{idx-js → idxState}/v1/parsers.d.ts +0 -0
  92. package/lib/idx/{idx-js → idxState}/v1/remediationParser.d.ts +2 -1
  93. package/lib/idx/interact.d.ts +22 -0
  94. package/lib/idx/remediate.d.ts +9 -12
  95. package/lib/idx/remediators/AuthenticatorEnrollmentData.d.ts +1 -2
  96. package/lib/idx/remediators/AuthenticatorVerificationData.d.ts +3 -3
  97. package/lib/idx/remediators/Base/AuthenticatorData.d.ts +3 -4
  98. package/lib/idx/remediators/Base/Remediator.d.ts +8 -4
  99. package/lib/idx/remediators/Base/SelectAuthenticator.d.ts +2 -3
  100. package/lib/idx/remediators/Base/VerifyAuthenticator.d.ts +3 -4
  101. package/lib/idx/remediators/ChallengeAuthenticator.d.ts +1 -2
  102. package/lib/idx/remediators/EnrollAuthenticator.d.ts +1 -2
  103. package/lib/idx/remediators/EnrollPoll.d.ts +1 -2
  104. package/lib/idx/remediators/EnrollProfile.d.ts +1 -2
  105. package/lib/idx/remediators/EnrollmentChannelData.d.ts +1 -2
  106. package/lib/idx/remediators/Identify.d.ts +1 -2
  107. package/lib/idx/remediators/ReEnrollAuthenticator.d.ts +1 -2
  108. package/lib/idx/remediators/ResetAuthenticator.d.ts +1 -2
  109. package/lib/idx/remediators/SelectAuthenticatorAuthenticate.d.ts +1 -2
  110. package/lib/idx/remediators/SelectAuthenticatorEnroll.d.ts +1 -2
  111. package/lib/idx/remediators/SelectAuthenticatorUnlockAccount.d.ts +1 -2
  112. package/lib/idx/remediators/SelectEnrollProfile.d.ts +1 -2
  113. package/lib/idx/remediators/SelectEnrollmentChannel.d.ts +1 -2
  114. package/lib/idx/remediators/Skip.d.ts +1 -2
  115. package/lib/idx/types/idx-js.d.ts +5 -2
  116. package/lib/idx/types/index.d.ts +26 -17
  117. package/lib/idx/util.d.ts +7 -4
  118. package/lib/types/EventEmitter.d.ts +3 -3
  119. package/lib/types/Service.d.ts +6 -6
  120. package/lib/types/Storage.d.ts +6 -6
  121. package/lib/types/TokenManager.d.ts +5 -2
  122. package/lib/types/UserClaims.d.ts +1 -1
  123. package/lib/util/types.d.ts +1 -1
  124. package/package.json +9 -10
  125. package/cjs/idx/headers.js +0 -59
  126. package/cjs/idx/headers.js.map +0 -1
  127. package/cjs/idx/idx-js/client.js +0 -91
  128. package/cjs/idx/idx-js/client.js.map +0 -1
  129. package/cjs/idx/idx-js/index.js +0 -40
  130. package/cjs/idx/idx-js/index.js.map +0 -1
  131. package/cjs/idx/idx-js/interact.js +0 -83
  132. package/cjs/idx/idx-js/interact.js.map +0 -1
  133. package/cjs/idx/idx-js/introspect.js +0 -62
  134. package/cjs/idx/idx-js/introspect.js.map +0 -1
  135. package/cjs/idx/idx-js/parsers.js +0 -41
  136. package/cjs/idx/idx-js/parsers.js.map +0 -1
  137. package/cjs/idx/idx-js/util.js +0 -34
  138. package/cjs/idx/idx-js/util.js.map +0 -1
  139. package/cjs/idx/idx-js/v1/actionParser.js.map +0 -1
  140. package/cjs/idx/idx-js/v1/generateIdxAction.js.map +0 -1
  141. package/cjs/idx/idx-js/v1/idxResponseParser.js.map +0 -1
  142. package/cjs/idx/idx-js/v1/makeIdxState.js.map +0 -1
  143. package/cjs/idx/idx-js/v1/parsers.js.map +0 -1
  144. package/cjs/idx/idx-js/v1/remediationParser.js.map +0 -1
  145. package/lib/idx/headers.d.ts +0 -16
  146. package/lib/idx/idx-js/client.d.ts +0 -36
  147. package/lib/idx/idx-js/index.d.ts +0 -35
  148. package/lib/idx/idx-js/interact.d.ts +0 -25
  149. package/lib/idx/idx-js/introspect.d.ts +0 -21
  150. package/lib/idx/idx-js/parsers.d.ts +0 -15
  151. package/lib/idx/idx-js/util.d.ts +0 -12
@@ -145,6 +145,8 @@ var OAuthError = function (_CustomError) {
145
145
  _this.name = 'OAuthError';
146
146
  _this.errorCode = errorCode;
147
147
  _this.errorSummary = summary;
148
+ _this.error = errorCode;
149
+ _this.error_description = summary;
148
150
  return _this;
149
151
  }
150
152
  return OAuthError;
@@ -620,7 +622,11 @@ function httpRequest(sdk, options) {
620
622
  if (sdk.options.transformErrorXHR) {
621
623
  resp = sdk.options.transformErrorXHR(clone(resp));
622
624
  }
623
- 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
+ }
624
630
  if (err.errorCode === 'E0000011') {
625
631
  storage.delete(STATE_TOKEN_KEY_NAME);
626
632
  }
@@ -4493,8 +4499,9 @@ function assertValidConfig(args) {
4493
4499
  }
4494
4500
 
4495
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; } } }; }
4496
- 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); }
4497
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/;
4498
4505
  function readData(response) {
4499
4506
  var _context;
4500
4507
  if (response.headers.get('Content-Type') &&
@@ -4541,8 +4548,19 @@ function fetchRequest(method, url, args) {
4541
4548
  var body = args.data;
4542
4549
  var headers = args.headers || {};
4543
4550
  var contentType = headers['Content-Type'] || headers['content-type'] || '';
4544
- if (contentType === 'application/json' && body && typeof body !== 'string') {
4545
- 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
+ }
4546
4564
  }
4547
4565
  var fetch = window.fetch || crossFetch;
4548
4566
  var fetchPromise = fetch(url, {
@@ -4671,65 +4689,248 @@ function buildOptions() {
4671
4689
  });
4672
4690
  }
4673
4691
 
4674
- var Interceptor = function () {
4675
- function Interceptor() {
4676
- _classCallCheck(this, Interceptor);
4677
- this.handlers = [];
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;
4711
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
4712
+ while (1) {
4713
+ switch (_context.prev = _context.next) {
4714
+ case 0:
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:
4730
+ case "end":
4731
+ return _context.stop();
4732
+ }
4733
+ }
4734
+ }, _callee);
4735
+ }));
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;
4678
4742
  }
4679
- _createClass(Interceptor, [{
4680
- key: "use",
4681
- value: function use(before) {
4682
- this.handlers.push({
4683
- before: before
4684
- });
4685
- }
4686
- }, {
4687
- key: "clear",
4688
- value: function clear() {
4689
- this.handlers = [];
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;
4749
+ try {
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();
4784
+ }
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;
4690
4815
  }
4691
- }]);
4692
- return Interceptor;
4693
- }();
4694
- var HttpClient = {
4695
- interceptors: {
4696
- request: new Interceptor()
4697
4816
  }
4698
- };
4699
- var request = function () {
4700
- var _ref2 = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(target, _ref) {
4701
- var _ref$method, method, _ref$headers, headers, _ref$credentials, credentials, body, requestOptions, url;
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) {
4830
+ return {
4831
+ meta: meta,
4832
+ interactionHandle: meta.interactionHandle,
4833
+ state: meta.state
4834
+ };
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;
4702
4862
  return _regeneratorRuntime.wrap(function _callee$(_context) {
4703
4863
  while (1) {
4704
4864
  switch (_context.prev = _context.next) {
4705
4865
  case 0:
4706
- _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;
4707
- requestOptions = {
4708
- url: target,
4709
- method: method,
4710
- headers: _Object$assign({}, headers),
4711
- credentials: credentials,
4712
- body: body
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
4713
4891
  };
4714
- if (HttpClient.interceptors) {
4715
- HttpClient.interceptors.request.handlers.forEach(function (interceptor) {
4716
- interceptor.before(requestOptions);
4717
- });
4892
+ if (activationToken) {
4893
+ params.activation_token = activationToken;
4718
4894
  }
4719
- url = requestOptions.url;
4720
- delete requestOptions.url;
4721
- return _context.abrupt("return", crossFetch(url, requestOptions));
4722
- case 6:
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:
4723
4926
  case "end":
4724
4927
  return _context.stop();
4725
4928
  }
4726
4929
  }
4727
4930
  }, _callee);
4728
4931
  }));
4729
- return function request(_x, _x2) {
4730
- return _ref2.apply(this, arguments);
4731
- };
4732
- }();
4932
+ return _interact.apply(this, arguments);
4933
+ }
4733
4934
 
4734
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; } } }; }
4735
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); }
@@ -4805,71 +5006,80 @@ var divideActionParamsByMutability = function divideActionParamsByMutability(act
4805
5006
  };
4806
5007
  };
4807
5008
 
4808
- var generateDirectFetch = function generateDirectFetch(_ref) {
5009
+ var generateDirectFetch = function generateDirectFetch(authClient, _ref) {
4809
5010
  var actionDefinition = _ref.actionDefinition,
4810
5011
  _ref$defaultParamsFor = _ref.defaultParamsForAction,
4811
5012
  defaultParamsForAction = _ref$defaultParamsFor === void 0 ? {} : _ref$defaultParamsFor,
4812
5013
  _ref$immutableParamsF = _ref.immutableParamsForAction,
4813
5014
  immutableParamsForAction = _ref$immutableParamsF === void 0 ? {} : _ref$immutableParamsF,
4814
- toPersist = _ref.toPersist;
5015
+ _ref$toPersist = _ref.toPersist,
5016
+ toPersist = _ref$toPersist === void 0 ? {} : _ref$toPersist;
4815
5017
  var target = actionDefinition.href;
4816
- return function () {
4817
- var _ref2 = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(params) {
4818
- var headers, body, credentials, response, responseJSON, requestDidSucceed, idxResponse;
4819
- return _regeneratorRuntime.wrap(function _callee$(_context) {
4820
- while (1) {
4821
- switch (_context.prev = _context.next) {
4822
- case 0:
4823
- headers = {
4824
- 'content-type': 'application/json',
4825
- 'accept': actionDefinition.accepts || 'application/ion+json'
4826
- };
4827
- body = _JSON$stringify(_Object$assign(_Object$assign(_Object$assign({}, defaultParamsForAction), params), immutableParamsForAction));
4828
- credentials = toPersist && toPersist.withCredentials === false ? 'omit' : 'include';
4829
- _context.next = 5;
4830
- return request(target, {
4831
- method: actionDefinition.method,
4832
- headers: headers,
4833
- body: body,
4834
- credentials: credentials
4835
- });
4836
- case 5:
4837
- response = _context.sent;
4838
- _context.next = 8;
4839
- return response.json();
4840
- case 8:
4841
- responseJSON = _context.sent;
4842
- requestDidSucceed = response.ok;
4843
- idxResponse = makeIdxState$1(responseJSON, toPersist, requestDidSucceed);
4844
- if (response.status === 401 && response.headers.get('WWW-Authenticate') === 'Oktadevicejwt realm="Okta Device"') {
4845
- idxResponse.stepUp = true;
4846
- }
4847
- if (requestDidSucceed) {
4848
- _context.next = 14;
4849
- break;
4850
- }
4851
- throw idxResponse;
4852
- case 14:
4853
- return _context.abrupt("return", idxResponse);
4854
- case 15:
4855
- case "end":
4856
- return _context.stop();
4857
- }
4858
- }
4859
- }, _callee);
4860
- }));
4861
- return function (_x) {
4862
- return _ref2.apply(this, arguments);
4863
- };
4864
- }();
4865
- };
4866
- var generateIdxAction = function generateIdxAction(actionDefinition, toPersist) {
4867
- var generator = generateDirectFetch;
4868
- var _divideActionParamsBy = divideActionParamsByMutability(actionDefinition),
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();
5071
+ }
5072
+ }
5073
+ }, _callee, null, [[3, 10]]);
5074
+ }));
5075
+ };
5076
+ var generateIdxAction = function generateIdxAction(authClient, actionDefinition, toPersist) {
5077
+ var generator = generateDirectFetch;
5078
+ var _divideActionParamsBy = divideActionParamsByMutability(actionDefinition),
4869
5079
  defaultParams = _divideActionParamsBy.defaultParams,
4870
5080
  neededParams = _divideActionParamsBy.neededParams,
4871
5081
  immutableParams = _divideActionParamsBy.immutableParams;
4872
- var action = generator({
5082
+ var action = generator(authClient, {
4873
5083
  actionDefinition: actionDefinition,
4874
5084
  defaultParamsForAction: defaultParams[actionDefinition.name],
4875
5085
  immutableParamsForAction: immutableParams[actionDefinition.name],
@@ -4879,10 +5089,10 @@ var generateIdxAction = function generateIdxAction(actionDefinition, toPersist)
4879
5089
  return action;
4880
5090
  };
4881
5091
 
4882
- var generateRemediationFunctions = function generateRemediationFunctions(remediationValue) {
4883
- 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] : {};
4884
5094
  return _Object$fromEntries(_mapInstanceProperty(remediationValue).call(remediationValue, function (remediation) {
4885
- return [remediation.name, generateIdxAction(remediation, toPersist)];
5095
+ return [remediation.name, generateIdxAction(authClient, remediation, toPersist)];
4886
5096
  }));
4887
5097
  };
4888
5098
 
@@ -4891,9 +5101,9 @@ var SKIP_FIELDS = _Object$fromEntries(_mapInstanceProperty(_context = ['remediat
4891
5101
  ]).call(_context, function (field) {
4892
5102
  return [field, !!'skip this field'];
4893
5103
  }));
4894
- var parseNonRemediations = function parseNonRemediations(idxResponse) {
5104
+ var parseNonRemediations = function parseNonRemediations(authClient, idxResponse) {
4895
5105
  var _context2;
4896
- var toPersist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5106
+ var toPersist = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
4897
5107
  var actions = {};
4898
5108
  var context = {};
4899
5109
  _filterInstanceProperty(_context2 = _Object$keys(idxResponse)).call(_context2, function (field) {
@@ -4905,7 +5115,7 @@ var parseNonRemediations = function parseNonRemediations(idxResponse) {
4905
5115
  return;
4906
5116
  }
4907
5117
  if (idxResponse[field].rel) {
4908
- actions[idxResponse[field].name] = generateIdxAction(idxResponse[field], toPersist);
5118
+ actions[idxResponse[field].name] = generateIdxAction(authClient, idxResponse[field], toPersist);
4909
5119
  return;
4910
5120
  }
4911
5121
  var _a = idxResponse[field],
@@ -4926,7 +5136,7 @@ var parseNonRemediations = function parseNonRemediations(idxResponse) {
4926
5136
  value = _ref2[1];
4927
5137
  if (value.rel) {
4928
5138
  var _context3;
4929
- 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);
4930
5140
  } else {
4931
5141
  context[field].value[subField] = value;
4932
5142
  }
@@ -4959,24 +5169,24 @@ var expandRelatesTo = function expandRelatesTo(idxResponse, value) {
4959
5169
  }
4960
5170
  });
4961
5171
  };
4962
- var convertRemediationAction = function convertRemediationAction(remediation, toPersist) {
4963
- var remediationActions = generateRemediationFunctions([remediation], toPersist);
5172
+ var convertRemediationAction = function convertRemediationAction(authClient, remediation, toPersist) {
5173
+ var remediationActions = generateRemediationFunctions(authClient, [remediation], toPersist);
4964
5174
  var actionFn = remediationActions[remediation.name];
4965
5175
  return _Object$assign(_Object$assign({}, remediation), {
4966
5176
  action: actionFn
4967
5177
  });
4968
5178
  };
4969
- var parseIdxResponse = function parseIdxResponse(idxResponse) {
4970
- 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] : {};
4971
5181
  var _a;
4972
5182
  var remediationData = ((_a = idxResponse.remediation) === null || _a === void 0 ? void 0 : _a.value) || [];
4973
5183
  remediationData.forEach(function (remediation) {
4974
5184
  return expandRelatesTo(idxResponse, remediation);
4975
5185
  });
4976
5186
  var remediations = _mapInstanceProperty(remediationData).call(remediationData, function (remediation) {
4977
- return convertRemediationAction(remediation, toPersist);
5187
+ return convertRemediationAction(authClient, remediation, toPersist);
4978
5188
  });
4979
- var _parseNonRemediations = parseNonRemediations(idxResponse, toPersist),
5189
+ var _parseNonRemediations = parseNonRemediations(authClient, idxResponse, toPersist),
4980
5190
  context = _parseNonRemediations.context,
4981
5191
  actions = _parseNonRemediations.actions;
4982
5192
  return {
@@ -4986,10 +5196,10 @@ var parseIdxResponse = function parseIdxResponse(idxResponse) {
4986
5196
  };
4987
5197
  };
4988
5198
 
4989
- function makeIdxState$1(idxResponse, toPersist, requestDidSucceed) {
5199
+ function makeIdxState$1(authClient, idxResponse, toPersist, requestDidSucceed) {
4990
5200
  var _a, _b, _c;
4991
5201
  var rawIdxResponse = idxResponse;
4992
- var _parseIdxResponse = parseIdxResponse(idxResponse, toPersist),
5202
+ var _parseIdxResponse = parseIdxResponse(authClient, idxResponse, toPersist),
4993
5203
  remediations = _parseIdxResponse.remediations,
4994
5204
  context = _parseIdxResponse.context,
4995
5205
  actions = _parseIdxResponse.actions;
@@ -5056,7 +5266,6 @@ var parsersForVersion = function parsersForVersion(version) {
5056
5266
  throw new Error("Unknown api version: ".concat(version, ". Use an exact semver version."));
5057
5267
  }
5058
5268
  };
5059
-
5060
5269
  function validateVersionConfig(version) {
5061
5270
  if (!version) {
5062
5271
  throw new Error('version is required');
@@ -5067,356 +5276,15 @@ function validateVersionConfig(version) {
5067
5276
  }
5068
5277
  parsersForVersion(version);
5069
5278
  }
5070
-
5071
- var introspect$1 = function () {
5072
- var _introspect = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(_ref) {
5073
- var withCredentials, domain, interactionHandle, stateHandle, version, target, body, headers, credentials, response, requestDidSucceed, rawIdxResponse;
5074
- return _regeneratorRuntime.wrap(function _callee$(_context) {
5075
- while (1) {
5076
- switch (_context.prev = _context.next) {
5077
- case 0:
5078
- withCredentials = _ref.withCredentials, domain = _ref.domain, interactionHandle = _ref.interactionHandle, stateHandle = _ref.stateHandle, version = _ref.version;
5079
- validateVersionConfig(version);
5080
- target = "".concat(domain, "/idp/idx/introspect");
5081
- body = stateHandle ? {
5082
- stateToken: stateHandle
5083
- } : {
5084
- interactionHandle: interactionHandle
5085
- };
5086
- headers = {
5087
- 'content-type': "application/ion+json; okta-version=".concat(version),
5088
- accept: "application/ion+json; okta-version=".concat(version)
5089
- };
5090
- credentials = withCredentials === false ? 'omit' : 'include';
5091
- _context.next = 8;
5092
- return request(target, {
5093
- credentials: credentials,
5094
- headers: headers,
5095
- body: _JSON$stringify(body)
5096
- });
5097
- case 8:
5098
- response = _context.sent;
5099
- requestDidSucceed = response.ok;
5100
- _context.next = 12;
5101
- return response.json();
5102
- case 12:
5103
- rawIdxResponse = _context.sent;
5104
- if (requestDidSucceed) {
5105
- _context.next = 15;
5106
- break;
5107
- }
5108
- throw rawIdxResponse;
5109
- case 15:
5110
- return _context.abrupt("return", rawIdxResponse);
5111
- case 16:
5112
- case "end":
5113
- return _context.stop();
5114
- }
5115
- }
5116
- }, _callee);
5117
- }));
5118
- function introspect(_x) {
5119
- return _introspect.apply(this, arguments);
5120
- }
5121
- return introspect;
5122
- }();
5123
-
5124
- var parseAndReject = function parseAndReject(response) {
5125
- return response.json().then(function (err) {
5126
- return _Promise.reject(err);
5127
- });
5128
- };
5129
- var interact$1 = function () {
5130
- var _interact = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(_ref) {
5131
- var _context;
5132
- var withCredentials, clientId, baseUrl, _ref$scopes, scopes, redirectUri, codeChallenge, codeChallengeMethod, state, activationToken, recoveryToken, clientSecret, target, params, body, headers, credentials;
5133
- return _regeneratorRuntime.wrap(function _callee$(_context3) {
5134
- while (1) {
5135
- switch (_context3.prev = _context3.next) {
5136
- case 0:
5137
- 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;
5138
- target = "".concat(baseUrl, "/v1/interact");
5139
- params = {
5140
- client_id: clientId,
5141
- scope: scopes.join(' '),
5142
- redirect_uri: redirectUri,
5143
- code_challenge: codeChallenge,
5144
- code_challenge_method: codeChallengeMethod,
5145
- state: state
5146
- };
5147
- if (activationToken) {
5148
- params.activation_token = activationToken;
5149
- }
5150
- if (recoveryToken) {
5151
- params.recovery_token = recoveryToken;
5152
- }
5153
- if (clientSecret) {
5154
- params.client_secret = clientSecret;
5155
- }
5156
- body = _mapInstanceProperty(_context = _Object$entries(params)).call(_context, function (_ref2) {
5157
- var _context2;
5158
- var _ref3 = _slicedToArray(_ref2, 2),
5159
- param = _ref3[0],
5160
- value = _ref3[1];
5161
- return _concatInstanceProperty(_context2 = "".concat(param, "=")).call(_context2, encodeURIComponent(value));
5162
- }).join('&');
5163
- headers = {
5164
- 'content-type': 'application/x-www-form-urlencoded'
5165
- };
5166
- credentials = withCredentials === false ? 'omit' : 'include';
5167
- return _context3.abrupt("return", request(target, {
5168
- credentials: credentials,
5169
- headers: headers,
5170
- body: body
5171
- }).then(function (response) {
5172
- return response.ok ? response.json() : parseAndReject(response);
5173
- }).then(function (data) {
5174
- return data.interaction_handle;
5175
- }));
5176
- case 10:
5177
- case "end":
5178
- return _context3.stop();
5179
- }
5180
- }
5181
- }, _callee);
5182
- }));
5183
- function interact(_x) {
5184
- return _interact.apply(this, arguments);
5185
- }
5186
- return interact;
5187
- }();
5188
-
5189
- var LATEST_SUPPORTED_IDX_API_VERSION = '1.0.0';
5190
- var _parsersForVersion = parsersForVersion(LATEST_SUPPORTED_IDX_API_VERSION),
5191
- makeIdxState = _parsersForVersion.makeIdxState;
5192
- var idx = {
5193
- introspect: introspect$1,
5194
- interact: interact$1,
5195
- makeIdxState: makeIdxState,
5196
- client: HttpClient,
5197
- LATEST_SUPPORTED_IDX_API_VERSION: LATEST_SUPPORTED_IDX_API_VERSION
5198
- };
5199
-
5200
- function createTransactionMeta(_x) {
5201
- return _createTransactionMeta.apply(this, arguments);
5202
- }
5203
- function _createTransactionMeta() {
5204
- _createTransactionMeta = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(authClient) {
5205
- var options,
5206
- tokenParams,
5207
- pkceMeta,
5208
- _Object$assign2,
5209
- _Object$assign2$flow,
5210
- flow,
5211
- _Object$assign2$withC,
5212
- withCredentials,
5213
- _Object$assign2$activ,
5214
- activationToken,
5215
- _Object$assign2$recov,
5216
- recoveryToken,
5217
- meta,
5218
- _args = arguments;
5219
- return _regeneratorRuntime.wrap(function _callee$(_context) {
5220
- while (1) {
5221
- switch (_context.prev = _context.next) {
5222
- case 0:
5223
- options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
5224
- _context.next = 3;
5225
- return authClient.token.prepareTokenParams(options);
5226
- case 3:
5227
- tokenParams = _context.sent;
5228
- pkceMeta = createOAuthMeta(authClient, tokenParams);
5229
- _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;
5230
- meta = _Object$assign(_Object$assign({}, pkceMeta), {
5231
- flow: flow,
5232
- withCredentials: withCredentials,
5233
- activationToken: activationToken,
5234
- recoveryToken: recoveryToken
5235
- });
5236
- return _context.abrupt("return", meta);
5237
- case 8:
5238
- case "end":
5239
- return _context.stop();
5240
- }
5241
- }
5242
- }, _callee);
5243
- }));
5244
- return _createTransactionMeta.apply(this, arguments);
5245
- }
5246
- function hasSavedInteractionHandle(authClient, options) {
5247
- var savedMeta = getSavedTransactionMeta(authClient, options);
5248
- if (savedMeta === null || savedMeta === void 0 ? void 0 : savedMeta.interactionHandle) {
5249
- return true;
5250
- }
5251
- return false;
5252
- }
5253
- function getSavedTransactionMeta(authClient, options) {
5254
- options = removeNils(options);
5255
- options = _Object$assign(_Object$assign({}, authClient.options), options);
5256
- var savedMeta;
5257
- try {
5258
- savedMeta = authClient.transactionManager.load(options);
5259
- } catch (e) {
5260
- }
5261
- if (!savedMeta) {
5262
- return;
5263
- }
5264
- if (isTransactionMetaValid(savedMeta, options)) {
5265
- return savedMeta;
5266
- }
5267
- warn('Saved transaction meta does not match the current configuration. ' + 'This may indicate that two apps are sharing a storage key.');
5268
- }
5269
- function getTransactionMeta(_x2, _x3) {
5270
- return _getTransactionMeta.apply(this, arguments);
5271
- }
5272
- function _getTransactionMeta() {
5273
- _getTransactionMeta = _asyncToGenerator( _regeneratorRuntime.mark(function _callee2(authClient, options) {
5274
- var validExistingMeta;
5275
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
5276
- while (1) {
5277
- switch (_context2.prev = _context2.next) {
5278
- case 0:
5279
- options = removeNils(options);
5280
- options = _Object$assign(_Object$assign({}, authClient.options), options);
5281
- validExistingMeta = getSavedTransactionMeta(authClient, options);
5282
- if (!validExistingMeta) {
5283
- _context2.next = 5;
5284
- break;
5285
- }
5286
- return _context2.abrupt("return", validExistingMeta);
5287
- case 5:
5288
- return _context2.abrupt("return", createTransactionMeta(authClient, options));
5289
- case 6:
5290
- case "end":
5291
- return _context2.stop();
5292
- }
5293
- }
5294
- }, _callee2);
5295
- }));
5296
- return _getTransactionMeta.apply(this, arguments);
5297
- }
5298
- function saveTransactionMeta(authClient, meta) {
5299
- authClient.transactionManager.save(meta, {
5300
- muteWarning: true
5301
- });
5302
- }
5303
- function clearTransactionMeta(authClient) {
5304
- authClient.transactionManager.clear();
5305
- }
5306
- function isTransactionMetaValid(meta) {
5307
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5308
- var keys = ['issuer', 'clientId', 'redirectUri', 'state', 'codeChallenge', 'codeChallengeMethod', 'activationToken', 'recoveryToken'];
5309
- if (isTransactionMetaValidForOptions(meta, options, keys) === false) {
5310
- return false;
5311
- }
5312
- var flow = options.flow;
5313
- if (isTransactionMetaValidForFlow(meta, flow) === false) {
5314
- return false;
5315
- }
5316
- return true;
5317
- }
5318
- function isTransactionMetaValidForFlow(meta, flow) {
5319
- var shouldValidateFlow = flow && flow !== 'default' && flow !== 'proceed';
5320
- if (shouldValidateFlow) {
5321
- if (flow !== meta.flow) {
5322
- return false;
5323
- }
5324
- }
5325
- return true;
5326
- }
5327
- function isTransactionMetaValidForOptions(meta, options, keys) {
5328
- var mismatch = keys.some(function (key) {
5329
- var value = options[key];
5330
- if (value && value !== meta[key]) {
5331
- return true;
5332
- }
5333
- });
5334
- return !mismatch;
5335
- }
5336
-
5337
- function getResponse(meta) {
5338
- return {
5339
- meta: meta,
5340
- interactionHandle: meta.interactionHandle,
5341
- state: meta.state
5342
- };
5343
- }
5344
- function interact(_x) {
5345
- return _interact.apply(this, arguments);
5346
- }
5347
- function _interact() {
5348
- _interact = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(authClient) {
5349
- var options,
5350
- meta,
5351
- baseUrl,
5352
- _meta,
5353
- clientId,
5354
- redirectUri,
5355
- state,
5356
- scopes,
5357
- withCredentials,
5358
- codeChallenge,
5359
- codeChallengeMethod,
5360
- activationToken,
5361
- recoveryToken,
5362
- clientSecret,
5363
- interactionHandle,
5364
- newMeta,
5365
- _args = arguments;
5366
- return _regeneratorRuntime.wrap(function _callee$(_context) {
5367
- while (1) {
5368
- switch (_context.prev = _context.next) {
5369
- case 0:
5370
- options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
5371
- options = removeNils(options);
5372
- meta = getSavedTransactionMeta(authClient, options);
5373
- if (!(meta === null || meta === void 0 ? void 0 : meta.interactionHandle)) {
5374
- _context.next = 5;
5375
- break;
5376
- }
5377
- return _context.abrupt("return", getResponse(meta));
5378
- case 5:
5379
- _context.next = 7;
5380
- return createTransactionMeta(authClient, _Object$assign(_Object$assign({}, meta), options));
5381
- case 7:
5382
- meta = _context.sent;
5383
- baseUrl = getOAuthBaseUrl(authClient);
5384
- _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;
5385
- clientSecret = options.clientSecret || authClient.options.clientSecret;
5386
- _context.next = 13;
5387
- return idx.interact({
5388
- withCredentials: withCredentials,
5389
- clientId: clientId,
5390
- baseUrl: baseUrl,
5391
- scopes: scopes,
5392
- state: state,
5393
- redirectUri: redirectUri,
5394
- codeChallenge: codeChallenge,
5395
- codeChallengeMethod: codeChallengeMethod,
5396
- activationToken: activationToken,
5397
- recoveryToken: recoveryToken,
5398
- clientSecret: clientSecret
5399
- });
5400
- case 13:
5401
- interactionHandle = _context.sent;
5402
- newMeta = _Object$assign(_Object$assign({}, meta), {
5403
- interactionHandle: interactionHandle,
5404
- withCredentials: withCredentials,
5405
- state: state,
5406
- scopes: scopes,
5407
- recoveryToken: recoveryToken,
5408
- activationToken: activationToken
5409
- });
5410
- saveTransactionMeta(authClient, newMeta);
5411
- return _context.abrupt("return", getResponse(newMeta));
5412
- case 17:
5413
- case "end":
5414
- return _context.stop();
5415
- }
5416
- }
5417
- }, _callee);
5418
- }));
5419
- 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);
5420
5288
  }
5421
5289
 
5422
5290
  function introspect(_x) {
@@ -5425,11 +5293,18 @@ function introspect(_x) {
5425
5293
  function _introspect() {
5426
5294
  _introspect = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(authClient) {
5427
5295
  var options,
5296
+ _a,
5428
5297
  rawIdxResponse,
5429
5298
  requestDidSucceed,
5430
5299
  savedIdxResponse,
5431
5300
  version,
5432
5301
  domain,
5302
+ interactionHandle,
5303
+ stateHandle,
5304
+ _withCredentials,
5305
+ url,
5306
+ body,
5307
+ headers,
5433
5308
  withCredentials,
5434
5309
  _args = arguments;
5435
5310
  return _regeneratorRuntime.wrap(function _callee$(_context) {
@@ -5443,47 +5318,62 @@ function _introspect() {
5443
5318
  requestDidSucceed = savedIdxResponse.requestDidSucceed;
5444
5319
  }
5445
5320
  if (rawIdxResponse) {
5446
- _context.next = 21;
5321
+ _context.next = 27;
5447
5322
  break;
5448
5323
  }
5449
5324
  version = options.version || IDX_API_VERSION;
5450
5325
  domain = getOAuthDomain(authClient);
5451
- _context.prev = 6;
5452
- _context.next = 9;
5453
- return idx.introspect(_Object$assign(_Object$assign({
5454
- domain: domain
5455
- }, options), {
5456
- version: version
5457
- }));
5458
- case 9:
5459
- 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;
5460
5329
  requestDidSucceed = true;
5461
- _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;
5462
5352
  break;
5463
- case 13:
5464
- _context.prev = 13;
5465
- _context.t0 = _context["catch"](6);
5466
- if (!isRawIdxResponse(_context.t0)) {
5467
- _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;
5468
5358
  break;
5469
5359
  }
5470
- rawIdxResponse = _context.t0;
5360
+ rawIdxResponse = _context.t0.xhr.responseJSON;
5471
5361
  requestDidSucceed = false;
5472
- _context.next = 21;
5362
+ _context.next = 27;
5473
5363
  break;
5474
- case 20:
5364
+ case 26:
5475
5365
  throw _context.t0;
5476
- case 21:
5366
+ case 27:
5477
5367
  withCredentials = options.withCredentials;
5478
- return _context.abrupt("return", idx.makeIdxState(rawIdxResponse, {
5368
+ return _context.abrupt("return", makeIdxState(authClient, rawIdxResponse, {
5479
5369
  withCredentials: withCredentials
5480
5370
  }, requestDidSucceed));
5481
- case 23:
5371
+ case 29:
5482
5372
  case "end":
5483
5373
  return _context.stop();
5484
5374
  }
5485
5375
  }
5486
- }, _callee, null, [[6, 13]]);
5376
+ }, _callee, null, [[8, 19]]);
5487
5377
  }));
5488
5378
  return _introspect.apply(this, arguments);
5489
5379
  }
@@ -5570,7 +5460,7 @@ function findMatchedOption(authenticators, options) {
5570
5460
  }
5571
5461
 
5572
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; } } }; }
5573
- 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); }
5574
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; }
5575
5465
  var Remediator = function () {
5576
5466
  function Remediator(remediation) {
@@ -5689,7 +5579,8 @@ var Remediator = function () {
5689
5579
  var input;
5690
5580
  var name = inputFromRemediation.name,
5691
5581
  type = inputFromRemediation.type,
5692
- visible = inputFromRemediation.visible;
5582
+ visible = inputFromRemediation.visible,
5583
+ messages = inputFromRemediation.messages;
5693
5584
  if (visible === false) {
5694
5585
  return;
5695
5586
  }
@@ -5720,6 +5611,9 @@ var Remediator = function () {
5720
5611
  return inputs.push(i);
5721
5612
  });
5722
5613
  } else {
5614
+ if (messages) {
5615
+ input.messages = messages;
5616
+ }
5723
5617
  inputs.push(input);
5724
5618
  }
5725
5619
  });
@@ -5729,7 +5623,10 @@ var Remediator = function () {
5729
5623
  key: "getValuesAfterProceed",
5730
5624
  value:
5731
5625
  function getValuesAfterProceed() {
5732
- 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));
5733
5630
  var _iterator = _createForOfIteratorHelper$3(inputs),
5734
5631
  _step;
5735
5632
  try {
@@ -5747,7 +5644,7 @@ var Remediator = function () {
5747
5644
  }, {
5748
5645
  key: "getAuthenticator",
5749
5646
  value: function getAuthenticator() {
5750
- var _context6, _context7;
5647
+ var _context7, _context8;
5751
5648
  var _a, _b;
5752
5649
  var relatesTo = (_a = this.remediation.relatesTo) === null || _a === void 0 ? void 0 : _a.value;
5753
5650
  if (!relatesTo) {
@@ -5757,11 +5654,11 @@ var Remediator = function () {
5757
5654
  if (!authenticatorFromRemediation) {
5758
5655
  return relatesTo;
5759
5656
  }
5760
- var id = _findInstanceProperty(_context6 = authenticatorFromRemediation.form.value).call(_context6, function (_ref2) {
5657
+ var id = _findInstanceProperty(_context7 = authenticatorFromRemediation.form.value).call(_context7, function (_ref2) {
5761
5658
  var name = _ref2.name;
5762
5659
  return name === 'id';
5763
5660
  }).value;
5764
- 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) {
5765
5662
  var name = _ref3.name;
5766
5663
  return name === 'enrollmentId';
5767
5664
  })) === null || _b === void 0 ? void 0 : _b.value;
@@ -5773,15 +5670,15 @@ var Remediator = function () {
5773
5670
  }], [{
5774
5671
  key: "getMessages",
5775
5672
  value: function getMessages(remediation) {
5776
- var _context8;
5673
+ var _context9;
5777
5674
  var _a, _b;
5778
5675
  if (!remediation.value) {
5779
5676
  return;
5780
5677
  }
5781
- 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) {
5782
5679
  if (field.messages) {
5783
- var _context9;
5784
- 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));
5785
5682
  }
5786
5683
  return messages;
5787
5684
  }, []);
@@ -6976,15 +6873,16 @@ var AuthenticatorVerificationData = function (_AuthenticatorData) {
6976
6873
  function AuthenticatorVerificationData(remediation) {
6977
6874
  var _this;
6978
6875
  var values = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
6876
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
6979
6877
  _classCallCheck(this, AuthenticatorVerificationData);
6980
6878
  _this = _super.call(this, remediation, values);
6981
- _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';
6982
6880
  return _this;
6983
6881
  }
6984
6882
  _createClass(AuthenticatorVerificationData, [{
6985
6883
  key: "canRemediate",
6986
6884
  value: function canRemediate() {
6987
- if (this.shouldProceedWithEmailAuthenticator) {
6885
+ if (this.shouldProceedWithEmailAuthenticator !== false) {
6988
6886
  return true;
6989
6887
  }
6990
6888
  return _get(_getPrototypeOf(AuthenticatorVerificationData.prototype), "canRemediate", this).call(this);
@@ -6993,7 +6891,7 @@ var AuthenticatorVerificationData = function (_AuthenticatorData) {
6993
6891
  key: "mapAuthenticator",
6994
6892
  value: function mapAuthenticator() {
6995
6893
  var _a;
6996
- if (this.shouldProceedWithEmailAuthenticator) {
6894
+ if (this.shouldProceedWithEmailAuthenticator !== false) {
6997
6895
  var _context;
6998
6896
  var authenticatorFromRemediation = this.getAuthenticatorFromRemediation();
6999
6897
  return (_a = authenticatorFromRemediation.form) === null || _a === void 0 ? void 0 : _reduceInstanceProperty(_context = _a.value).call(_context, function (acc, curr) {
@@ -7144,7 +7042,7 @@ var remediators = /*#__PURE__*/Object.freeze({
7144
7042
  });
7145
7043
 
7146
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; } } }; }
7147
- 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); }
7148
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; }
7149
7047
  function isTerminalResponse(idxResponse) {
7150
7048
  var neededToProceed = idxResponse.neededToProceed,
@@ -7289,25 +7187,34 @@ function getAvailableSteps(idxResponse) {
7289
7187
  }
7290
7188
  return res;
7291
7189
  }
7292
- function filterValuesForRemediation(idxResponse, values) {
7190
+ function filterValuesForRemediation(idxResponse, remediationName, values) {
7293
7191
  var _context10;
7294
- var valuesForRemediation = _reduceInstanceProperty(_context10 = idxResponse.neededToProceed[0].value).call(_context10, function (res, entry) {
7295
- var name = entry.name;
7296
- 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
+ }
7297
7208
  return res;
7298
7209
  }, {});
7299
7210
  return valuesForRemediation;
7300
7211
  }
7301
-
7302
- 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; } } }; }
7303
- 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); }
7304
- 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; }
7305
7212
  function getRemediator(idxRemediations, values, options) {
7306
7213
  var remediators = options.remediators;
7307
7214
  var remediator;
7308
7215
  if (options.step) {
7309
- var remediation = _findInstanceProperty(idxRemediations).call(idxRemediations, function (_ref) {
7310
- var name = _ref.name;
7216
+ var remediation = _findInstanceProperty(idxRemediations).call(idxRemediations, function (_ref5) {
7217
+ var name = _ref5.name;
7311
7218
  return name === options.step;
7312
7219
  });
7313
7220
  if (remediation) {
@@ -7319,13 +7226,13 @@ function getRemediator(idxRemediations, values, options) {
7319
7226
  }
7320
7227
  }
7321
7228
  var remediatorCandidates = [];
7322
- var _iterator = _createForOfIteratorHelper(idxRemediations),
7323
- _step;
7229
+ var _iterator3 = _createForOfIteratorHelper$1(idxRemediations),
7230
+ _step3;
7324
7231
  try {
7325
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
7326
- var _context;
7327
- var _remediation = _step.value;
7328
- 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);
7329
7236
  if (!isRemeditionInFlow) {
7330
7237
  continue;
7331
7238
  }
@@ -7337,9 +7244,9 @@ function getRemediator(idxRemediations, values, options) {
7337
7244
  remediatorCandidates.push(remediator);
7338
7245
  }
7339
7246
  } catch (err) {
7340
- _iterator.e(err);
7247
+ _iterator3.e(err);
7341
7248
  } finally {
7342
- _iterator.f();
7249
+ _iterator3.f();
7343
7250
  }
7344
7251
  return remediatorCandidates[0];
7345
7252
  }
@@ -7358,7 +7265,9 @@ function handleIdxError(e, remediator) {
7358
7265
  if (!idxResponse) {
7359
7266
  throw e;
7360
7267
  }
7361
- idxResponse.requestDidSucceed = false;
7268
+ idxResponse = _Object$assign(_Object$assign({}, idxResponse), {
7269
+ requestDidSucceed: false
7270
+ });
7362
7271
  var terminal = isTerminalResponse(idxResponse);
7363
7272
  var messages = getMessagesFromResponse(idxResponse);
7364
7273
  if (terminal) {
@@ -7377,44 +7286,61 @@ function handleIdxError(e, remediator) {
7377
7286
  });
7378
7287
  }
7379
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; }
7380
7293
  function getActionFromValues(values, idxResponse) {
7381
- var _context2;
7382
- 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) {
7383
7296
  return !!values.resend && _includesInstanceProperty(action).call(action, '-resend');
7384
7297
  });
7385
7298
  }
7386
7299
  function removeActionFromValues(values) {
7387
- values.resend = undefined;
7388
- 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
+ });
7389
7315
  }
7390
7316
  function remediate(_x, _x2, _x3) {
7391
7317
  return _remediate.apply(this, arguments);
7392
7318
  }
7393
7319
  function _remediate() {
7394
7320
  _remediate = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(idxResponse, values, options) {
7395
- var _context3;
7396
- var _idxResponse, neededToProceed, interactionCode, flow, terminal, messages, remediator, actionFromValues, actionFromOptions, actions, _iterator2, _step2, _loop, _ret, nextStep, _nextStep, name, data;
7397
- 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) {
7398
7324
  while (1) {
7399
- switch (_context5.prev = _context5.next) {
7325
+ switch (_context4.prev = _context4.next) {
7400
7326
  case 0:
7401
7327
  _idxResponse = idxResponse, neededToProceed = _idxResponse.neededToProceed, interactionCode = _idxResponse.interactionCode;
7402
- flow = options.flow;
7328
+ _options = options, flow = _options.flow;
7403
7329
  if (!interactionCode) {
7404
- _context5.next = 4;
7330
+ _context4.next = 4;
7405
7331
  break;
7406
7332
  }
7407
- return _context5.abrupt("return", {
7333
+ return _context4.abrupt("return", {
7408
7334
  idxResponse: idxResponse
7409
7335
  });
7410
7336
  case 4:
7411
7337
  terminal = isTerminalResponse(idxResponse);
7412
7338
  messages = getMessagesFromResponse(idxResponse);
7413
7339
  if (!terminal) {
7414
- _context5.next = 8;
7340
+ _context4.next = 8;
7415
7341
  break;
7416
7342
  }
7417
- return _context5.abrupt("return", {
7343
+ return _context4.abrupt("return", {
7418
7344
  idxResponse: idxResponse,
7419
7345
  terminal: terminal,
7420
7346
  messages: messages
@@ -7423,150 +7349,157 @@ function _remediate() {
7423
7349
  remediator = getRemediator(neededToProceed, values, options);
7424
7350
  actionFromValues = getActionFromValues(values, idxResponse);
7425
7351
  actionFromOptions = options.actions || [];
7426
- actions = _concatInstanceProperty(_context3 = []).call(_context3, _toConsumableArray(actionFromOptions), _toConsumableArray(actionFromValues && [actionFromValues] || []));
7352
+ actions = _concatInstanceProperty(_context2 = []).call(_context2, _toConsumableArray(actionFromOptions), _toConsumableArray(actionFromValues && [actionFromValues] || []));
7427
7353
  if (!actions) {
7428
- _context5.next = 32;
7354
+ _context4.next = 32;
7429
7355
  break;
7430
7356
  }
7431
- _iterator2 = _createForOfIteratorHelper(actions);
7432
- _context5.prev = 14;
7357
+ _iterator = _createForOfIteratorHelper(actions);
7358
+ _context4.prev = 14;
7433
7359
  _loop = _regeneratorRuntime.mark(function _loop() {
7434
- var action, valuesWithoutExecutedAction, optionsWithoutExecutedAction, remediationAction;
7435
- return _regeneratorRuntime.wrap(function _loop$(_context4) {
7360
+ var action, params, valuesWithoutExecutedAction, optionsWithoutExecutedAction, remediationAction;
7361
+ return _regeneratorRuntime.wrap(function _loop$(_context3) {
7436
7362
  while (1) {
7437
- switch (_context4.prev = _context4.next) {
7363
+ switch (_context3.prev = _context3.next) {
7438
7364
  case 0:
7439
- action = _step2.value;
7365
+ action = _step.value;
7366
+ params = {};
7367
+ if (typeof action !== 'string') {
7368
+ params = action.params || {};
7369
+ action = action.name;
7370
+ }
7440
7371
  valuesWithoutExecutedAction = removeActionFromValues(values);
7441
- optionsWithoutExecutedAction = _Object$assign(_Object$assign({}, options), {
7442
- actions: _filterInstanceProperty(actionFromOptions).call(actionFromOptions, function (entry) {
7443
- return entry !== action;
7444
- })
7445
- });
7372
+ optionsWithoutExecutedAction = removeActionFromOptions(options, action);
7446
7373
  if (!(typeof idxResponse.actions[action] === 'function')) {
7447
- _context4.next = 17;
7374
+ _context3.next = 19;
7448
7375
  break;
7449
7376
  }
7450
- _context4.prev = 4;
7451
- _context4.next = 7;
7452
- return idxResponse.actions[action]();
7453
- case 7:
7454
- idxResponse = _context4.sent;
7455
- idxResponse.requestDidSucceed = true;
7456
- _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;
7457
7386
  break;
7458
- case 11:
7459
- _context4.prev = 11;
7460
- _context4.t0 = _context4["catch"](4);
7461
- return _context4.abrupt("return", {
7462
- 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)
7463
7392
  });
7464
- case 14:
7393
+ case 16:
7465
7394
  if (!(action === 'cancel')) {
7466
- _context4.next = 16;
7395
+ _context3.next = 18;
7467
7396
  break;
7468
7397
  }
7469
- return _context4.abrupt("return", {
7398
+ return _context3.abrupt("return", {
7470
7399
  v: {
7471
7400
  idxResponse: idxResponse,
7472
7401
  canceled: true
7473
7402
  }
7474
7403
  });
7475
- case 16:
7476
- return _context4.abrupt("return", {
7404
+ case 18:
7405
+ return _context3.abrupt("return", {
7477
7406
  v: remediate(idxResponse, valuesWithoutExecutedAction, optionsWithoutExecutedAction)
7478
7407
  });
7479
- case 17:
7480
- remediationAction = _findInstanceProperty(neededToProceed).call(neededToProceed, function (_ref2) {
7481
- var name = _ref2.name;
7408
+ case 19:
7409
+ remediationAction = _findInstanceProperty(neededToProceed).call(neededToProceed, function (_ref) {
7410
+ var name = _ref.name;
7482
7411
  return name === action;
7483
7412
  });
7484
7413
  if (!remediationAction) {
7485
- _context4.next = 30;
7414
+ _context3.next = 32;
7486
7415
  break;
7487
7416
  }
7488
- _context4.prev = 19;
7489
- _context4.next = 22;
7490
- return idxResponse.proceed(action, {});
7491
- case 22:
7492
- idxResponse = _context4.sent;
7493
- idxResponse.requestDidSucceed = true;
7494
- _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;
7495
7426
  break;
7496
- case 26:
7497
- _context4.prev = 26;
7498
- _context4.t1 = _context4["catch"](19);
7499
- return _context4.abrupt("return", {
7500
- 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)
7501
7432
  });
7502
- case 29:
7503
- return _context4.abrupt("return", {
7433
+ case 31:
7434
+ return _context3.abrupt("return", {
7504
7435
  v: remediate(idxResponse, values, optionsWithoutExecutedAction)
7505
7436
  });
7506
- case 30:
7437
+ case 32:
7507
7438
  case "end":
7508
- return _context4.stop();
7439
+ return _context3.stop();
7509
7440
  }
7510
7441
  }
7511
- }, _loop, null, [[4, 11], [19, 26]]);
7442
+ }, _loop, null, [[6, 13], [21, 28]]);
7512
7443
  });
7513
- _iterator2.s();
7444
+ _iterator.s();
7514
7445
  case 17:
7515
- if ((_step2 = _iterator2.n()).done) {
7516
- _context5.next = 24;
7446
+ if ((_step = _iterator.n()).done) {
7447
+ _context4.next = 24;
7517
7448
  break;
7518
7449
  }
7519
- return _context5.delegateYield(_loop(), "t0", 19);
7450
+ return _context4.delegateYield(_loop(), "t0", 19);
7520
7451
  case 19:
7521
- _ret = _context5.t0;
7452
+ _ret = _context4.t0;
7522
7453
  if (!(_typeof(_ret) === "object")) {
7523
- _context5.next = 22;
7454
+ _context4.next = 22;
7524
7455
  break;
7525
7456
  }
7526
- return _context5.abrupt("return", _ret.v);
7457
+ return _context4.abrupt("return", _ret.v);
7527
7458
  case 22:
7528
- _context5.next = 17;
7459
+ _context4.next = 17;
7529
7460
  break;
7530
7461
  case 24:
7531
- _context5.next = 29;
7462
+ _context4.next = 29;
7532
7463
  break;
7533
7464
  case 26:
7534
- _context5.prev = 26;
7535
- _context5.t1 = _context5["catch"](14);
7536
- _iterator2.e(_context5.t1);
7465
+ _context4.prev = 26;
7466
+ _context4.t1 = _context4["catch"](14);
7467
+ _iterator.e(_context4.t1);
7537
7468
  case 29:
7538
- _context5.prev = 29;
7539
- _iterator2.f();
7540
- return _context5.finish(29);
7469
+ _context4.prev = 29;
7470
+ _iterator.f();
7471
+ return _context4.finish(29);
7541
7472
  case 32:
7542
7473
  if (remediator) {
7543
- _context5.next = 49;
7474
+ _context4.next = 49;
7544
7475
  break;
7545
7476
  }
7546
7477
  if (!options.step) {
7547
- _context5.next = 46;
7478
+ _context4.next = 46;
7548
7479
  break;
7549
7480
  }
7550
- values = filterValuesForRemediation(idxResponse, values);
7551
- _context5.prev = 35;
7552
- _context5.next = 38;
7481
+ values = filterValuesForRemediation(idxResponse, options.step, values);
7482
+ _context4.prev = 35;
7483
+ _context4.next = 38;
7553
7484
  return idxResponse.proceed(options.step, values);
7554
7485
  case 38:
7555
- idxResponse = _context5.sent;
7556
- idxResponse.requestDidSucceed = true;
7557
- return _context5.abrupt("return", {
7486
+ idxResponse = _context4.sent;
7487
+ idxResponse = _Object$assign(_Object$assign({}, idxResponse), {
7488
+ requestDidSucceed: true
7489
+ });
7490
+ return _context4.abrupt("return", {
7558
7491
  idxResponse: idxResponse
7559
7492
  });
7560
7493
  case 43:
7561
- _context5.prev = 43;
7562
- _context5.t2 = _context5["catch"](35);
7563
- 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));
7564
7497
  case 46:
7565
7498
  if (!(flow === 'default')) {
7566
- _context5.next = 48;
7499
+ _context4.next = 48;
7567
7500
  break;
7568
7501
  }
7569
- return _context5.abrupt("return", {
7502
+ return _context4.abrupt("return", {
7570
7503
  idxResponse: idxResponse
7571
7504
  });
7572
7505
  case 48:
@@ -7574,48 +7507,42 @@ function _remediate() {
7574
7507
  return acc ? acc + ' ,' + curr.name : curr.name;
7575
7508
  }, ''), "]\n "));
7576
7509
  case 49:
7577
- if (!messages.length) {
7578
- _context5.next = 52;
7510
+ if (remediator.canRemediate()) {
7511
+ _context4.next = 52;
7579
7512
  break;
7580
7513
  }
7581
7514
  nextStep = getNextStep(remediator, idxResponse);
7582
- return _context5.abrupt("return", {
7515
+ return _context4.abrupt("return", {
7583
7516
  idxResponse: idxResponse,
7584
7517
  nextStep: nextStep,
7585
- messages: messages
7518
+ messages: messages.length ? messages : undefined
7586
7519
  });
7587
7520
  case 52:
7588
- if (remediator.canRemediate()) {
7589
- _context5.next = 55;
7590
- break;
7591
- }
7592
- _nextStep = getNextStep(remediator, idxResponse);
7593
- return _context5.abrupt("return", {
7594
- idxResponse: idxResponse,
7595
- nextStep: _nextStep
7596
- });
7597
- case 55:
7598
7521
  name = remediator.getName();
7599
7522
  data = remediator.getData();
7600
- _context5.prev = 57;
7601
- _context5.next = 60;
7523
+ _context4.prev = 54;
7524
+ _context4.next = 57;
7602
7525
  return idxResponse.proceed(name, data);
7603
- case 60:
7604
- idxResponse = _context5.sent;
7605
- idxResponse.requestDidSucceed = true;
7526
+ case 57:
7527
+ idxResponse = _context4.sent;
7528
+ idxResponse = _Object$assign(_Object$assign({}, idxResponse), {
7529
+ requestDidSucceed: true
7530
+ });
7606
7531
  values = remediator.getValuesAfterProceed();
7607
- delete options.step;
7608
- 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));
7609
7540
  case 67:
7610
- _context5.prev = 67;
7611
- _context5.t3 = _context5["catch"](57);
7612
- return _context5.abrupt("return", handleIdxError(_context5.t3, remediator));
7613
- case 70:
7614
7541
  case "end":
7615
- return _context5.stop();
7542
+ return _context4.stop();
7616
7543
  }
7617
7544
  }
7618
- }, _callee, null, [[14, 26, 29, 32], [35, 43], [57, 67]]);
7545
+ }, _callee, null, [[14, 26, 29, 32], [35, 43], [54, 64]]);
7619
7546
  }));
7620
7547
  return _remediate.apply(this, arguments);
7621
7548
  }
@@ -7710,7 +7637,7 @@ function getFlowSpecification(oktaAuth) {
7710
7637
  }
7711
7638
 
7712
7639
  function initializeValues(options) {
7713
- var knownOptions = ['flow', 'remediators', 'actions', 'withCredentials', 'step'];
7640
+ var knownOptions = ['flow', 'remediators', 'actions', 'withCredentials', 'step', 'shouldProceedWithEmailAuthenticator'];
7714
7641
  var values = _Object$assign({}, options);
7715
7642
  knownOptions.forEach(function (option) {
7716
7643
  delete values[option];
@@ -7754,26 +7681,26 @@ function _getDataFromIntrospect() {
7754
7681
  case 0:
7755
7682
  options = data.options;
7756
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
+ });
7757
7689
  if (!stateHandle) {
7758
- _context.next = 8;
7690
+ _context.next = 9;
7759
7691
  break;
7760
7692
  }
7761
- _context.next = 5;
7693
+ _context.next = 6;
7762
7694
  return introspect(authClient, {
7763
7695
  withCredentials: withCredentials,
7764
7696
  version: version,
7765
7697
  stateHandle: stateHandle
7766
7698
  });
7767
- case 5:
7699
+ case 6:
7768
7700
  idxResponse = _context.sent;
7769
7701
  _context.next = 20;
7770
7702
  break;
7771
- case 8:
7772
- meta = getSavedTransactionMeta(authClient, {
7773
- state: state,
7774
- recoveryToken: recoveryToken,
7775
- activationToken: activationToken
7776
- });
7703
+ case 9:
7777
7704
  interactionHandle = meta === null || meta === void 0 ? void 0 : meta.interactionHandle;
7778
7705
  if (interactionHandle) {
7779
7706
  _context.next = 17;
@@ -7820,13 +7747,13 @@ function getDataFromRemediate(_x3) {
7820
7747
  }
7821
7748
  function _getDataFromRemediate() {
7822
7749
  _getDataFromRemediate = _asyncToGenerator( _regeneratorRuntime.mark(function _callee2(data) {
7823
- 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;
7824
7751
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
7825
7752
  while (1) {
7826
7753
  switch (_context2.prev = _context2.next) {
7827
7754
  case 0:
7828
7755
  idxResponse = data.idxResponse, options = data.options, values = _valuesInstanceProperty(data);
7829
- 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;
7830
7757
  shouldRemediate = autoRemediate !== false && (remediators || actions || step);
7831
7758
  if (shouldRemediate) {
7832
7759
  _context2.next = 5;
@@ -7842,7 +7769,8 @@ function _getDataFromRemediate() {
7842
7769
  remediators: remediators,
7843
7770
  actions: actions,
7844
7771
  flow: flow,
7845
- step: step
7772
+ step: step,
7773
+ shouldProceedWithEmailAuthenticator: shouldProceedWithEmailAuthenticator
7846
7774
  });
7847
7775
  case 8:
7848
7776
  _yield$remediate = _context2.sent;
@@ -8016,13 +7944,14 @@ function _run() {
8016
7944
  error,
8017
7945
  interactionCode,
8018
7946
  rawIdxResponse,
8019
- requestDidSucceed,
7947
+ _requestDidSucceed,
8020
7948
  _ref,
8021
7949
  actions,
8022
7950
  context,
8023
7951
  neededToProceed,
8024
7952
  proceed,
8025
7953
  rawIdxState,
7954
+ requestDidSucceed,
8026
7955
  _args5 = arguments;
8027
7956
  return _regeneratorRuntime.wrap(function _callee5$(_context5) {
8028
7957
  while (1) {
@@ -8062,14 +7991,14 @@ function _run() {
8062
7991
  } else {
8063
7992
  saveTransactionMeta(authClient, _Object$assign({}, meta));
8064
7993
  if (idxResponse) {
8065
- rawIdxResponse = idxResponse.rawIdxState, requestDidSucceed = idxResponse.requestDidSucceed;
7994
+ rawIdxResponse = idxResponse.rawIdxState, _requestDidSucceed = idxResponse.requestDidSucceed;
8066
7995
  authClient.transactionManager.saveIdxResponse({
8067
7996
  rawIdxResponse: rawIdxResponse,
8068
- requestDidSucceed: requestDidSucceed
7997
+ requestDidSucceed: _requestDidSucceed
8069
7998
  });
8070
7999
  }
8071
8000
  }
8072
- _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;
8073
8002
  return _context5.abrupt("return", _Object$assign(_Object$assign(_Object$assign(_Object$assign(_Object$assign(_Object$assign(_Object$assign(_Object$assign({
8074
8003
  status: status
8075
8004
  }, meta && {
@@ -8092,7 +8021,8 @@ function _run() {
8092
8021
  context: context,
8093
8022
  neededToProceed: neededToProceed,
8094
8023
  proceed: proceed,
8095
- rawIdxState: rawIdxState
8024
+ rawIdxState: rawIdxState,
8025
+ requestDidSucceed: requestDidSucceed
8096
8026
  }));
8097
8027
  case 22:
8098
8028
  case "end":
@@ -8553,26 +8483,10 @@ function _unlockAccount() {
8553
8483
  return _unlockAccount.apply(this, arguments);
8554
8484
  }
8555
8485
 
8556
- function setGlobalRequestInterceptor(fn) {
8557
- idx.client.interceptors.request.use(fn);
8558
- }
8559
- function createGlobalRequestInterceptor(sdk) {
8560
- return function (requestConfig) {
8561
- var oktaUserAgentHeader = sdk._oktaUserAgent.getHttpHeader();
8562
- var headers = _Object$assign(_Object$assign({}, oktaUserAgentHeader), sdk.options.headers);
8563
- _Object$keys(headers).forEach(function (name) {
8564
- if (!sdk.options.clientSecret && name === 'X-Device-Token') {
8565
- return;
8566
- }
8567
- requestConfig.headers[name] = headers[name];
8568
- });
8569
- };
8570
- }
8571
-
8572
8486
  var OktaUserAgent = function () {
8573
8487
  function OktaUserAgent() {
8574
8488
  _classCallCheck(this, OktaUserAgent);
8575
- this.environments = ["okta-auth-js/".concat("6.3.2")];
8489
+ this.environments = ["okta-auth-js/".concat("6.4.0")];
8576
8490
  }
8577
8491
  _createClass(OktaUserAgent, [{
8578
8492
  key: "addEnvironment",
@@ -8590,7 +8504,7 @@ var OktaUserAgent = function () {
8590
8504
  }, {
8591
8505
  key: "getVersion",
8592
8506
  value: function getVersion() {
8593
- return "6.3.2";
8507
+ return "6.4.0";
8594
8508
  }
8595
8509
  }, {
8596
8510
  key: "maybeAddNodeEnvironment",
@@ -8609,6 +8523,7 @@ var OktaAuth = function () {
8609
8523
  function OktaAuth(args) {
8610
8524
  var _this = this;
8611
8525
  _classCallCheck(this, OktaAuth);
8526
+ this.features = features;
8612
8527
  var options = this.options = buildOptions(args);
8613
8528
  this.storageManager = new StorageManager(options.storageManager, options.cookies, options.storageUtil);
8614
8529
  this.transactionManager = new TransactionManager(_Object$assign({
@@ -8738,7 +8653,6 @@ var OktaAuth = function () {
8738
8653
  canProceed: canProceed.bind(null, this),
8739
8654
  unlockAccount: unlockAccount.bind(null, this)
8740
8655
  };
8741
- setGlobalRequestInterceptor(createGlobalRequestInterceptor(this));
8742
8656
  this.http = {
8743
8657
  setRequestHeader: setRequestHeader.bind(null, this)
8744
8658
  };
@@ -9450,9 +9364,10 @@ var OktaAuth = function () {
9450
9364
  }]);
9451
9365
  return OktaAuth;
9452
9366
  }();
9453
- OktaAuth.features = OktaAuth.prototype.features = features;
9367
+ OktaAuth.features = features;
9454
9368
  OktaAuth.crypto = crypto$1;
9455
9369
  OktaAuth.webauthn = webauthn;
9370
+ OktaAuth.features = OktaAuth.prototype.features = features;
9456
9371
  _Object$assign(OktaAuth, {
9457
9372
  constants: constants
9458
9373
  });