@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
package/esm/esm.node.mjs CHANGED
@@ -149,6 +149,8 @@ var OAuthError = function (_CustomError) {
149
149
  _this.name = 'OAuthError';
150
150
  _this.errorCode = errorCode;
151
151
  _this.errorSummary = summary;
152
+ _this.error = errorCode;
153
+ _this.error_description = summary;
152
154
  return _this;
153
155
  }
154
156
  return OAuthError;
@@ -656,7 +658,11 @@ function httpRequest(sdk, options) {
656
658
  if (sdk.options.transformErrorXHR) {
657
659
  resp = sdk.options.transformErrorXHR(clone(resp));
658
660
  }
659
- err = new AuthApiError(serverErr, resp);
661
+ if (serverErr.error && serverErr.error_description) {
662
+ err = new OAuthError(serverErr.error, serverErr.error_description);
663
+ } else {
664
+ err = new AuthApiError(serverErr, resp);
665
+ }
660
666
  if (err.errorCode === 'E0000011') {
661
667
  storage.delete(STATE_TOKEN_KEY_NAME);
662
668
  }
@@ -4529,8 +4535,9 @@ function assertValidConfig(args) {
4529
4535
  }
4530
4536
 
4531
4537
  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; } } }; }
4532
- 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); }
4538
+ 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); }
4533
4539
  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; }
4540
+ var appJsonContentTypeRegex = /application\/\w*\+?json/;
4534
4541
  function readData(response) {
4535
4542
  var _context;
4536
4543
  if (response.headers.get('Content-Type') &&
@@ -4577,8 +4584,19 @@ function fetchRequest(method, url, args) {
4577
4584
  var body = args.data;
4578
4585
  var headers = args.headers || {};
4579
4586
  var contentType = headers['Content-Type'] || headers['content-type'] || '';
4580
- if (contentType === 'application/json' && body && typeof body !== 'string') {
4581
- body = _JSON$stringify(body);
4587
+ if (body && typeof body !== 'string') {
4588
+ if (appJsonContentTypeRegex.test(contentType)) {
4589
+ body = _JSON$stringify(body);
4590
+ } else if (contentType === 'application/x-www-form-urlencoded') {
4591
+ var _context3;
4592
+ body = _mapInstanceProperty(_context3 = _Object$entries(body)).call(_context3, function (_ref) {
4593
+ var _context4;
4594
+ var _ref2 = _slicedToArray(_ref, 2),
4595
+ param = _ref2[0],
4596
+ value = _ref2[1];
4597
+ return _concatInstanceProperty(_context4 = "".concat(param, "=")).call(_context4, encodeURIComponent(value));
4598
+ }).join('&');
4599
+ }
4582
4600
  }
4583
4601
  var fetch = window.fetch || crossFetch;
4584
4602
  var fetchPromise = fetch(url, {
@@ -4769,65 +4787,248 @@ function buildOptions() {
4769
4787
  });
4770
4788
  }
4771
4789
 
4772
- var Interceptor = function () {
4773
- function Interceptor() {
4774
- _classCallCheck(this, Interceptor);
4775
- this.handlers = [];
4790
+ function createTransactionMeta(_x) {
4791
+ return _createTransactionMeta.apply(this, arguments);
4792
+ }
4793
+ function _createTransactionMeta() {
4794
+ _createTransactionMeta = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(authClient) {
4795
+ var options,
4796
+ tokenParams,
4797
+ pkceMeta,
4798
+ _Object$assign2,
4799
+ _Object$assign2$flow,
4800
+ flow,
4801
+ _Object$assign2$withC,
4802
+ withCredentials,
4803
+ _Object$assign2$activ,
4804
+ activationToken,
4805
+ _Object$assign2$recov,
4806
+ recoveryToken,
4807
+ meta,
4808
+ _args = arguments;
4809
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
4810
+ while (1) {
4811
+ switch (_context.prev = _context.next) {
4812
+ case 0:
4813
+ options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
4814
+ _context.next = 3;
4815
+ return authClient.token.prepareTokenParams(options);
4816
+ case 3:
4817
+ tokenParams = _context.sent;
4818
+ pkceMeta = createOAuthMeta(authClient, tokenParams);
4819
+ _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;
4820
+ meta = _Object$assign(_Object$assign({}, pkceMeta), {
4821
+ flow: flow,
4822
+ withCredentials: withCredentials,
4823
+ activationToken: activationToken,
4824
+ recoveryToken: recoveryToken
4825
+ });
4826
+ return _context.abrupt("return", meta);
4827
+ case 8:
4828
+ case "end":
4829
+ return _context.stop();
4830
+ }
4831
+ }
4832
+ }, _callee);
4833
+ }));
4834
+ return _createTransactionMeta.apply(this, arguments);
4835
+ }
4836
+ function hasSavedInteractionHandle(authClient, options) {
4837
+ var savedMeta = getSavedTransactionMeta(authClient, options);
4838
+ if (savedMeta === null || savedMeta === void 0 ? void 0 : savedMeta.interactionHandle) {
4839
+ return true;
4776
4840
  }
4777
- _createClass(Interceptor, [{
4778
- key: "use",
4779
- value: function use(before) {
4780
- this.handlers.push({
4781
- before: before
4782
- });
4783
- }
4784
- }, {
4785
- key: "clear",
4786
- value: function clear() {
4787
- this.handlers = [];
4841
+ return false;
4842
+ }
4843
+ function getSavedTransactionMeta(authClient, options) {
4844
+ options = removeNils(options);
4845
+ options = _Object$assign(_Object$assign({}, authClient.options), options);
4846
+ var savedMeta;
4847
+ try {
4848
+ savedMeta = authClient.transactionManager.load(options);
4849
+ } catch (e) {
4850
+ }
4851
+ if (!savedMeta) {
4852
+ return;
4853
+ }
4854
+ if (isTransactionMetaValid(savedMeta, options)) {
4855
+ return savedMeta;
4856
+ }
4857
+ warn('Saved transaction meta does not match the current configuration. ' + 'This may indicate that two apps are sharing a storage key.');
4858
+ }
4859
+ function getTransactionMeta(_x2, _x3) {
4860
+ return _getTransactionMeta.apply(this, arguments);
4861
+ }
4862
+ function _getTransactionMeta() {
4863
+ _getTransactionMeta = _asyncToGenerator( _regeneratorRuntime.mark(function _callee2(authClient, options) {
4864
+ var validExistingMeta;
4865
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
4866
+ while (1) {
4867
+ switch (_context2.prev = _context2.next) {
4868
+ case 0:
4869
+ options = removeNils(options);
4870
+ options = _Object$assign(_Object$assign({}, authClient.options), options);
4871
+ validExistingMeta = getSavedTransactionMeta(authClient, options);
4872
+ if (!validExistingMeta) {
4873
+ _context2.next = 5;
4874
+ break;
4875
+ }
4876
+ return _context2.abrupt("return", validExistingMeta);
4877
+ case 5:
4878
+ return _context2.abrupt("return", createTransactionMeta(authClient, options));
4879
+ case 6:
4880
+ case "end":
4881
+ return _context2.stop();
4882
+ }
4883
+ }
4884
+ }, _callee2);
4885
+ }));
4886
+ return _getTransactionMeta.apply(this, arguments);
4887
+ }
4888
+ function saveTransactionMeta(authClient, meta) {
4889
+ authClient.transactionManager.save(meta, {
4890
+ muteWarning: true
4891
+ });
4892
+ }
4893
+ function clearTransactionMeta(authClient) {
4894
+ authClient.transactionManager.clear();
4895
+ }
4896
+ function isTransactionMetaValid(meta) {
4897
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
4898
+ var keys = ['issuer', 'clientId', 'redirectUri', 'state', 'codeChallenge', 'codeChallengeMethod', 'activationToken', 'recoveryToken'];
4899
+ if (isTransactionMetaValidForOptions(meta, options, keys) === false) {
4900
+ return false;
4901
+ }
4902
+ var flow = options.flow;
4903
+ if (isTransactionMetaValidForFlow(meta, flow) === false) {
4904
+ return false;
4905
+ }
4906
+ return true;
4907
+ }
4908
+ function isTransactionMetaValidForFlow(meta, flow) {
4909
+ var shouldValidateFlow = flow && flow !== 'default' && flow !== 'proceed';
4910
+ if (shouldValidateFlow) {
4911
+ if (flow !== meta.flow) {
4912
+ return false;
4788
4913
  }
4789
- }]);
4790
- return Interceptor;
4791
- }();
4792
- var HttpClient = {
4793
- interceptors: {
4794
- request: new Interceptor()
4795
4914
  }
4796
- };
4797
- var request = function () {
4798
- var _ref2 = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(target, _ref) {
4799
- var _ref$method, method, _ref$headers, headers, _ref$credentials, credentials, body, requestOptions, url;
4915
+ return true;
4916
+ }
4917
+ function isTransactionMetaValidForOptions(meta, options, keys) {
4918
+ var mismatch = keys.some(function (key) {
4919
+ var value = options[key];
4920
+ if (value && value !== meta[key]) {
4921
+ return true;
4922
+ }
4923
+ });
4924
+ return !mismatch;
4925
+ }
4926
+
4927
+ function getResponse(meta) {
4928
+ return {
4929
+ meta: meta,
4930
+ interactionHandle: meta.interactionHandle,
4931
+ state: meta.state
4932
+ };
4933
+ }
4934
+ function interact(_x) {
4935
+ return _interact.apply(this, arguments);
4936
+ }
4937
+ function _interact() {
4938
+ _interact = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(authClient) {
4939
+ var options,
4940
+ meta,
4941
+ baseUrl,
4942
+ _meta,
4943
+ clientId,
4944
+ redirectUri,
4945
+ state,
4946
+ scopes,
4947
+ withCredentials,
4948
+ codeChallenge,
4949
+ codeChallengeMethod,
4950
+ activationToken,
4951
+ recoveryToken,
4952
+ clientSecret,
4953
+ url,
4954
+ params,
4955
+ headers,
4956
+ resp,
4957
+ interactionHandle,
4958
+ newMeta,
4959
+ _args = arguments;
4800
4960
  return _regeneratorRuntime.wrap(function _callee$(_context) {
4801
4961
  while (1) {
4802
4962
  switch (_context.prev = _context.next) {
4803
4963
  case 0:
4804
- _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;
4805
- requestOptions = {
4806
- url: target,
4807
- method: method,
4808
- headers: _Object$assign({}, headers),
4809
- credentials: credentials,
4810
- body: body
4964
+ options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
4965
+ options = removeNils(options);
4966
+ meta = getSavedTransactionMeta(authClient, options);
4967
+ if (!(meta === null || meta === void 0 ? void 0 : meta.interactionHandle)) {
4968
+ _context.next = 5;
4969
+ break;
4970
+ }
4971
+ return _context.abrupt("return", getResponse(meta));
4972
+ case 5:
4973
+ _context.next = 7;
4974
+ return createTransactionMeta(authClient, _Object$assign(_Object$assign({}, meta), options));
4975
+ case 7:
4976
+ meta = _context.sent;
4977
+ baseUrl = getOAuthBaseUrl(authClient);
4978
+ _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;
4979
+ clientSecret = options.clientSecret || authClient.options.clientSecret;
4980
+ withCredentials = withCredentials !== null && withCredentials !== void 0 ? withCredentials : true;
4981
+ url = "".concat(baseUrl, "/v1/interact");
4982
+ params = {
4983
+ client_id: clientId,
4984
+ scope: scopes.join(' '),
4985
+ redirect_uri: redirectUri,
4986
+ code_challenge: codeChallenge,
4987
+ code_challenge_method: codeChallengeMethod,
4988
+ state: state
4811
4989
  };
4812
- if (HttpClient.interceptors) {
4813
- HttpClient.interceptors.request.handlers.forEach(function (interceptor) {
4814
- interceptor.before(requestOptions);
4815
- });
4990
+ if (activationToken) {
4991
+ params.activation_token = activationToken;
4816
4992
  }
4817
- url = requestOptions.url;
4818
- delete requestOptions.url;
4819
- return _context.abrupt("return", crossFetch(url, requestOptions));
4820
- case 6:
4993
+ if (recoveryToken) {
4994
+ params.recovery_token = recoveryToken;
4995
+ }
4996
+ if (clientSecret) {
4997
+ params.client_secret = clientSecret;
4998
+ }
4999
+ headers = {
5000
+ 'Content-Type': 'application/x-www-form-urlencoded'
5001
+ };
5002
+ _context.next = 20;
5003
+ return httpRequest(authClient, {
5004
+ method: 'POST',
5005
+ url: url,
5006
+ headers: headers,
5007
+ withCredentials: withCredentials,
5008
+ args: params
5009
+ });
5010
+ case 20:
5011
+ resp = _context.sent;
5012
+ interactionHandle = resp.interaction_handle;
5013
+ newMeta = _Object$assign(_Object$assign({}, meta), {
5014
+ interactionHandle: interactionHandle,
5015
+ withCredentials: withCredentials,
5016
+ state: state,
5017
+ scopes: scopes,
5018
+ recoveryToken: recoveryToken,
5019
+ activationToken: activationToken
5020
+ });
5021
+ saveTransactionMeta(authClient, newMeta);
5022
+ return _context.abrupt("return", getResponse(newMeta));
5023
+ case 25:
4821
5024
  case "end":
4822
5025
  return _context.stop();
4823
5026
  }
4824
5027
  }
4825
5028
  }, _callee);
4826
5029
  }));
4827
- return function request(_x, _x2) {
4828
- return _ref2.apply(this, arguments);
4829
- };
4830
- }();
5030
+ return _interact.apply(this, arguments);
5031
+ }
4831
5032
 
4832
5033
  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; } } }; }
4833
5034
  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); }
@@ -4903,71 +5104,80 @@ var divideActionParamsByMutability = function divideActionParamsByMutability(act
4903
5104
  };
4904
5105
  };
4905
5106
 
4906
- var generateDirectFetch = function generateDirectFetch(_ref) {
5107
+ var generateDirectFetch = function generateDirectFetch(authClient, _ref) {
4907
5108
  var actionDefinition = _ref.actionDefinition,
4908
5109
  _ref$defaultParamsFor = _ref.defaultParamsForAction,
4909
5110
  defaultParamsForAction = _ref$defaultParamsFor === void 0 ? {} : _ref$defaultParamsFor,
4910
5111
  _ref$immutableParamsF = _ref.immutableParamsForAction,
4911
5112
  immutableParamsForAction = _ref$immutableParamsF === void 0 ? {} : _ref$immutableParamsF,
4912
- toPersist = _ref.toPersist;
5113
+ _ref$toPersist = _ref.toPersist,
5114
+ toPersist = _ref$toPersist === void 0 ? {} : _ref$toPersist;
4913
5115
  var target = actionDefinition.href;
4914
- return function () {
4915
- var _ref2 = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(params) {
4916
- var headers, body, credentials, response, responseJSON, requestDidSucceed, idxResponse;
4917
- return _regeneratorRuntime.wrap(function _callee$(_context) {
4918
- while (1) {
4919
- switch (_context.prev = _context.next) {
4920
- case 0:
4921
- headers = {
4922
- 'content-type': 'application/json',
4923
- 'accept': actionDefinition.accepts || 'application/ion+json'
4924
- };
4925
- body = _JSON$stringify(_Object$assign(_Object$assign(_Object$assign({}, defaultParamsForAction), params), immutableParamsForAction));
4926
- credentials = toPersist && toPersist.withCredentials === false ? 'omit' : 'include';
4927
- _context.next = 5;
4928
- return request(target, {
4929
- method: actionDefinition.method,
4930
- headers: headers,
4931
- body: body,
4932
- credentials: credentials
4933
- });
4934
- case 5:
4935
- response = _context.sent;
4936
- _context.next = 8;
4937
- return response.json();
4938
- case 8:
4939
- responseJSON = _context.sent;
4940
- requestDidSucceed = response.ok;
4941
- idxResponse = makeIdxState$1(responseJSON, toPersist, requestDidSucceed);
4942
- if (response.status === 401 && response.headers.get('WWW-Authenticate') === 'Oktadevicejwt realm="Okta Device"') {
4943
- idxResponse.stepUp = true;
4944
- }
4945
- if (requestDidSucceed) {
4946
- _context.next = 14;
4947
- break;
4948
- }
4949
- throw idxResponse;
4950
- case 14:
4951
- return _context.abrupt("return", idxResponse);
4952
- case 15:
4953
- case "end":
4954
- return _context.stop();
4955
- }
4956
- }
4957
- }, _callee);
4958
- }));
4959
- return function (_x) {
4960
- return _ref2.apply(this, arguments);
4961
- };
4962
- }();
4963
- };
4964
- var generateIdxAction = function generateIdxAction(actionDefinition, toPersist) {
4965
- var generator = generateDirectFetch;
4966
- var _divideActionParamsBy = divideActionParamsByMutability(actionDefinition),
5116
+ return _asyncToGenerator( _regeneratorRuntime.mark(function _callee() {
5117
+ var params,
5118
+ _a,
5119
+ headers,
5120
+ body,
5121
+ response,
5122
+ _response,
5123
+ payload,
5124
+ wwwAuthHeader,
5125
+ idxResponse,
5126
+ _args = arguments;
5127
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
5128
+ while (1) {
5129
+ switch (_context.prev = _context.next) {
5130
+ case 0:
5131
+ params = _args.length > 0 && _args[0] !== undefined ? _args[0] : {};
5132
+ headers = {
5133
+ 'Content-Type': 'application/json',
5134
+ 'Accept': actionDefinition.accepts || 'application/ion+json'
5135
+ };
5136
+ body = _JSON$stringify(_Object$assign(_Object$assign(_Object$assign({}, defaultParamsForAction), params), immutableParamsForAction));
5137
+ _context.prev = 3;
5138
+ _context.next = 6;
5139
+ return httpRequest(authClient, {
5140
+ url: target,
5141
+ method: actionDefinition.method,
5142
+ headers: headers,
5143
+ args: body,
5144
+ withCredentials: (_a = toPersist === null || toPersist === void 0 ? void 0 : toPersist.withCredentials) !== null && _a !== void 0 ? _a : true
5145
+ });
5146
+ case 6:
5147
+ response = _context.sent;
5148
+ return _context.abrupt("return", makeIdxState$1(authClient, _Object$assign({}, response), toPersist, true));
5149
+ case 10:
5150
+ _context.prev = 10;
5151
+ _context.t0 = _context["catch"](3);
5152
+ if (!(!(_context.t0 instanceof AuthApiError) || !(_context.t0 === null || _context.t0 === void 0 ? void 0 : _context.t0.xhr))) {
5153
+ _context.next = 14;
5154
+ break;
5155
+ }
5156
+ throw _context.t0;
5157
+ case 14:
5158
+ _response = _context.t0.xhr;
5159
+ payload = _response.responseJSON || JSON.parse(_response.responseText);
5160
+ wwwAuthHeader = _response.headers['WWW-Authenticate'] || _response.headers['www-authenticate'];
5161
+ idxResponse = makeIdxState$1(authClient, _Object$assign({}, payload), toPersist, false);
5162
+ if (_response.status === 401 && wwwAuthHeader === 'Oktadevicejwt realm="Okta Device"') {
5163
+ idxResponse.stepUp = true;
5164
+ }
5165
+ throw idxResponse;
5166
+ case 20:
5167
+ case "end":
5168
+ return _context.stop();
5169
+ }
5170
+ }
5171
+ }, _callee, null, [[3, 10]]);
5172
+ }));
5173
+ };
5174
+ var generateIdxAction = function generateIdxAction(authClient, actionDefinition, toPersist) {
5175
+ var generator = generateDirectFetch;
5176
+ var _divideActionParamsBy = divideActionParamsByMutability(actionDefinition),
4967
5177
  defaultParams = _divideActionParamsBy.defaultParams,
4968
5178
  neededParams = _divideActionParamsBy.neededParams,
4969
5179
  immutableParams = _divideActionParamsBy.immutableParams;
4970
- var action = generator({
5180
+ var action = generator(authClient, {
4971
5181
  actionDefinition: actionDefinition,
4972
5182
  defaultParamsForAction: defaultParams[actionDefinition.name],
4973
5183
  immutableParamsForAction: immutableParams[actionDefinition.name],
@@ -4977,10 +5187,10 @@ var generateIdxAction = function generateIdxAction(actionDefinition, toPersist)
4977
5187
  return action;
4978
5188
  };
4979
5189
 
4980
- var generateRemediationFunctions = function generateRemediationFunctions(remediationValue) {
4981
- var toPersist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5190
+ var generateRemediationFunctions = function generateRemediationFunctions(authClient, remediationValue) {
5191
+ var toPersist = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
4982
5192
  return _Object$fromEntries(_mapInstanceProperty(remediationValue).call(remediationValue, function (remediation) {
4983
- return [remediation.name, generateIdxAction(remediation, toPersist)];
5193
+ return [remediation.name, generateIdxAction(authClient, remediation, toPersist)];
4984
5194
  }));
4985
5195
  };
4986
5196
 
@@ -4989,9 +5199,9 @@ var SKIP_FIELDS = _Object$fromEntries(_mapInstanceProperty(_context = ['remediat
4989
5199
  ]).call(_context, function (field) {
4990
5200
  return [field, !!'skip this field'];
4991
5201
  }));
4992
- var parseNonRemediations = function parseNonRemediations(idxResponse) {
5202
+ var parseNonRemediations = function parseNonRemediations(authClient, idxResponse) {
4993
5203
  var _context2;
4994
- var toPersist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5204
+ var toPersist = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
4995
5205
  var actions = {};
4996
5206
  var context = {};
4997
5207
  _filterInstanceProperty(_context2 = _Object$keys(idxResponse)).call(_context2, function (field) {
@@ -5003,7 +5213,7 @@ var parseNonRemediations = function parseNonRemediations(idxResponse) {
5003
5213
  return;
5004
5214
  }
5005
5215
  if (idxResponse[field].rel) {
5006
- actions[idxResponse[field].name] = generateIdxAction(idxResponse[field], toPersist);
5216
+ actions[idxResponse[field].name] = generateIdxAction(authClient, idxResponse[field], toPersist);
5007
5217
  return;
5008
5218
  }
5009
5219
  var _a = idxResponse[field],
@@ -5024,7 +5234,7 @@ var parseNonRemediations = function parseNonRemediations(idxResponse) {
5024
5234
  value = _ref2[1];
5025
5235
  if (value.rel) {
5026
5236
  var _context3;
5027
- actions[_concatInstanceProperty(_context3 = "".concat(field, "-")).call(_context3, subField.name || subField)] = generateIdxAction(value, toPersist);
5237
+ actions[_concatInstanceProperty(_context3 = "".concat(field, "-")).call(_context3, subField.name || subField)] = generateIdxAction(authClient, value, toPersist);
5028
5238
  } else {
5029
5239
  context[field].value[subField] = value;
5030
5240
  }
@@ -5057,24 +5267,24 @@ var expandRelatesTo = function expandRelatesTo(idxResponse, value) {
5057
5267
  }
5058
5268
  });
5059
5269
  };
5060
- var convertRemediationAction = function convertRemediationAction(remediation, toPersist) {
5061
- var remediationActions = generateRemediationFunctions([remediation], toPersist);
5270
+ var convertRemediationAction = function convertRemediationAction(authClient, remediation, toPersist) {
5271
+ var remediationActions = generateRemediationFunctions(authClient, [remediation], toPersist);
5062
5272
  var actionFn = remediationActions[remediation.name];
5063
5273
  return _Object$assign(_Object$assign({}, remediation), {
5064
5274
  action: actionFn
5065
5275
  });
5066
5276
  };
5067
- var parseIdxResponse = function parseIdxResponse(idxResponse) {
5068
- var toPersist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5277
+ var parseIdxResponse = function parseIdxResponse(authClient, idxResponse) {
5278
+ var toPersist = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
5069
5279
  var _a;
5070
5280
  var remediationData = ((_a = idxResponse.remediation) === null || _a === void 0 ? void 0 : _a.value) || [];
5071
5281
  remediationData.forEach(function (remediation) {
5072
5282
  return expandRelatesTo(idxResponse, remediation);
5073
5283
  });
5074
5284
  var remediations = _mapInstanceProperty(remediationData).call(remediationData, function (remediation) {
5075
- return convertRemediationAction(remediation, toPersist);
5285
+ return convertRemediationAction(authClient, remediation, toPersist);
5076
5286
  });
5077
- var _parseNonRemediations = parseNonRemediations(idxResponse, toPersist),
5287
+ var _parseNonRemediations = parseNonRemediations(authClient, idxResponse, toPersist),
5078
5288
  context = _parseNonRemediations.context,
5079
5289
  actions = _parseNonRemediations.actions;
5080
5290
  return {
@@ -5084,10 +5294,10 @@ var parseIdxResponse = function parseIdxResponse(idxResponse) {
5084
5294
  };
5085
5295
  };
5086
5296
 
5087
- function makeIdxState$1(idxResponse, toPersist, requestDidSucceed) {
5297
+ function makeIdxState$1(authClient, idxResponse, toPersist, requestDidSucceed) {
5088
5298
  var _a, _b, _c;
5089
5299
  var rawIdxResponse = idxResponse;
5090
- var _parseIdxResponse = parseIdxResponse(idxResponse, toPersist),
5300
+ var _parseIdxResponse = parseIdxResponse(authClient, idxResponse, toPersist),
5091
5301
  remediations = _parseIdxResponse.remediations,
5092
5302
  context = _parseIdxResponse.context,
5093
5303
  actions = _parseIdxResponse.actions;
@@ -5154,7 +5364,6 @@ var parsersForVersion = function parsersForVersion(version) {
5154
5364
  throw new Error("Unknown api version: ".concat(version, ". Use an exact semver version."));
5155
5365
  }
5156
5366
  };
5157
-
5158
5367
  function validateVersionConfig(version) {
5159
5368
  if (!version) {
5160
5369
  throw new Error('version is required');
@@ -5165,356 +5374,15 @@ function validateVersionConfig(version) {
5165
5374
  }
5166
5375
  parsersForVersion(version);
5167
5376
  }
5168
-
5169
- var introspect$1 = function () {
5170
- var _introspect = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(_ref) {
5171
- var withCredentials, domain, interactionHandle, stateHandle, version, target, body, headers, credentials, response, requestDidSucceed, rawIdxResponse;
5172
- return _regeneratorRuntime.wrap(function _callee$(_context) {
5173
- while (1) {
5174
- switch (_context.prev = _context.next) {
5175
- case 0:
5176
- withCredentials = _ref.withCredentials, domain = _ref.domain, interactionHandle = _ref.interactionHandle, stateHandle = _ref.stateHandle, version = _ref.version;
5177
- validateVersionConfig(version);
5178
- target = "".concat(domain, "/idp/idx/introspect");
5179
- body = stateHandle ? {
5180
- stateToken: stateHandle
5181
- } : {
5182
- interactionHandle: interactionHandle
5183
- };
5184
- headers = {
5185
- 'content-type': "application/ion+json; okta-version=".concat(version),
5186
- accept: "application/ion+json; okta-version=".concat(version)
5187
- };
5188
- credentials = withCredentials === false ? 'omit' : 'include';
5189
- _context.next = 8;
5190
- return request(target, {
5191
- credentials: credentials,
5192
- headers: headers,
5193
- body: _JSON$stringify(body)
5194
- });
5195
- case 8:
5196
- response = _context.sent;
5197
- requestDidSucceed = response.ok;
5198
- _context.next = 12;
5199
- return response.json();
5200
- case 12:
5201
- rawIdxResponse = _context.sent;
5202
- if (requestDidSucceed) {
5203
- _context.next = 15;
5204
- break;
5205
- }
5206
- throw rawIdxResponse;
5207
- case 15:
5208
- return _context.abrupt("return", rawIdxResponse);
5209
- case 16:
5210
- case "end":
5211
- return _context.stop();
5212
- }
5213
- }
5214
- }, _callee);
5215
- }));
5216
- function introspect(_x) {
5217
- return _introspect.apply(this, arguments);
5218
- }
5219
- return introspect;
5220
- }();
5221
-
5222
- var parseAndReject = function parseAndReject(response) {
5223
- return response.json().then(function (err) {
5224
- return _Promise.reject(err);
5225
- });
5226
- };
5227
- var interact$1 = function () {
5228
- var _interact = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(_ref) {
5229
- var _context;
5230
- var withCredentials, clientId, baseUrl, _ref$scopes, scopes, redirectUri, codeChallenge, codeChallengeMethod, state, activationToken, recoveryToken, clientSecret, target, params, body, headers, credentials;
5231
- return _regeneratorRuntime.wrap(function _callee$(_context3) {
5232
- while (1) {
5233
- switch (_context3.prev = _context3.next) {
5234
- case 0:
5235
- 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;
5236
- target = "".concat(baseUrl, "/v1/interact");
5237
- params = {
5238
- client_id: clientId,
5239
- scope: scopes.join(' '),
5240
- redirect_uri: redirectUri,
5241
- code_challenge: codeChallenge,
5242
- code_challenge_method: codeChallengeMethod,
5243
- state: state
5244
- };
5245
- if (activationToken) {
5246
- params.activation_token = activationToken;
5247
- }
5248
- if (recoveryToken) {
5249
- params.recovery_token = recoveryToken;
5250
- }
5251
- if (clientSecret) {
5252
- params.client_secret = clientSecret;
5253
- }
5254
- body = _mapInstanceProperty(_context = _Object$entries(params)).call(_context, function (_ref2) {
5255
- var _context2;
5256
- var _ref3 = _slicedToArray(_ref2, 2),
5257
- param = _ref3[0],
5258
- value = _ref3[1];
5259
- return _concatInstanceProperty(_context2 = "".concat(param, "=")).call(_context2, encodeURIComponent(value));
5260
- }).join('&');
5261
- headers = {
5262
- 'content-type': 'application/x-www-form-urlencoded'
5263
- };
5264
- credentials = withCredentials === false ? 'omit' : 'include';
5265
- return _context3.abrupt("return", request(target, {
5266
- credentials: credentials,
5267
- headers: headers,
5268
- body: body
5269
- }).then(function (response) {
5270
- return response.ok ? response.json() : parseAndReject(response);
5271
- }).then(function (data) {
5272
- return data.interaction_handle;
5273
- }));
5274
- case 10:
5275
- case "end":
5276
- return _context3.stop();
5277
- }
5278
- }
5279
- }, _callee);
5280
- }));
5281
- function interact(_x) {
5282
- return _interact.apply(this, arguments);
5283
- }
5284
- return interact;
5285
- }();
5286
-
5287
- var LATEST_SUPPORTED_IDX_API_VERSION = '1.0.0';
5288
- var _parsersForVersion = parsersForVersion(LATEST_SUPPORTED_IDX_API_VERSION),
5289
- makeIdxState = _parsersForVersion.makeIdxState;
5290
- var idx = {
5291
- introspect: introspect$1,
5292
- interact: interact$1,
5293
- makeIdxState: makeIdxState,
5294
- client: HttpClient,
5295
- LATEST_SUPPORTED_IDX_API_VERSION: LATEST_SUPPORTED_IDX_API_VERSION
5296
- };
5297
-
5298
- function createTransactionMeta(_x) {
5299
- return _createTransactionMeta.apply(this, arguments);
5300
- }
5301
- function _createTransactionMeta() {
5302
- _createTransactionMeta = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(authClient) {
5303
- var options,
5304
- tokenParams,
5305
- pkceMeta,
5306
- _Object$assign2,
5307
- _Object$assign2$flow,
5308
- flow,
5309
- _Object$assign2$withC,
5310
- withCredentials,
5311
- _Object$assign2$activ,
5312
- activationToken,
5313
- _Object$assign2$recov,
5314
- recoveryToken,
5315
- meta,
5316
- _args = arguments;
5317
- return _regeneratorRuntime.wrap(function _callee$(_context) {
5318
- while (1) {
5319
- switch (_context.prev = _context.next) {
5320
- case 0:
5321
- options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
5322
- _context.next = 3;
5323
- return authClient.token.prepareTokenParams(options);
5324
- case 3:
5325
- tokenParams = _context.sent;
5326
- pkceMeta = createOAuthMeta(authClient, tokenParams);
5327
- _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;
5328
- meta = _Object$assign(_Object$assign({}, pkceMeta), {
5329
- flow: flow,
5330
- withCredentials: withCredentials,
5331
- activationToken: activationToken,
5332
- recoveryToken: recoveryToken
5333
- });
5334
- return _context.abrupt("return", meta);
5335
- case 8:
5336
- case "end":
5337
- return _context.stop();
5338
- }
5339
- }
5340
- }, _callee);
5341
- }));
5342
- return _createTransactionMeta.apply(this, arguments);
5343
- }
5344
- function hasSavedInteractionHandle(authClient, options) {
5345
- var savedMeta = getSavedTransactionMeta(authClient, options);
5346
- if (savedMeta === null || savedMeta === void 0 ? void 0 : savedMeta.interactionHandle) {
5347
- return true;
5348
- }
5349
- return false;
5350
- }
5351
- function getSavedTransactionMeta(authClient, options) {
5352
- options = removeNils(options);
5353
- options = _Object$assign(_Object$assign({}, authClient.options), options);
5354
- var savedMeta;
5355
- try {
5356
- savedMeta = authClient.transactionManager.load(options);
5357
- } catch (e) {
5358
- }
5359
- if (!savedMeta) {
5360
- return;
5361
- }
5362
- if (isTransactionMetaValid(savedMeta, options)) {
5363
- return savedMeta;
5364
- }
5365
- warn('Saved transaction meta does not match the current configuration. ' + 'This may indicate that two apps are sharing a storage key.');
5366
- }
5367
- function getTransactionMeta(_x2, _x3) {
5368
- return _getTransactionMeta.apply(this, arguments);
5369
- }
5370
- function _getTransactionMeta() {
5371
- _getTransactionMeta = _asyncToGenerator( _regeneratorRuntime.mark(function _callee2(authClient, options) {
5372
- var validExistingMeta;
5373
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
5374
- while (1) {
5375
- switch (_context2.prev = _context2.next) {
5376
- case 0:
5377
- options = removeNils(options);
5378
- options = _Object$assign(_Object$assign({}, authClient.options), options);
5379
- validExistingMeta = getSavedTransactionMeta(authClient, options);
5380
- if (!validExistingMeta) {
5381
- _context2.next = 5;
5382
- break;
5383
- }
5384
- return _context2.abrupt("return", validExistingMeta);
5385
- case 5:
5386
- return _context2.abrupt("return", createTransactionMeta(authClient, options));
5387
- case 6:
5388
- case "end":
5389
- return _context2.stop();
5390
- }
5391
- }
5392
- }, _callee2);
5393
- }));
5394
- return _getTransactionMeta.apply(this, arguments);
5395
- }
5396
- function saveTransactionMeta(authClient, meta) {
5397
- authClient.transactionManager.save(meta, {
5398
- muteWarning: true
5399
- });
5400
- }
5401
- function clearTransactionMeta(authClient) {
5402
- authClient.transactionManager.clear();
5403
- }
5404
- function isTransactionMetaValid(meta) {
5405
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5406
- var keys = ['issuer', 'clientId', 'redirectUri', 'state', 'codeChallenge', 'codeChallengeMethod', 'activationToken', 'recoveryToken'];
5407
- if (isTransactionMetaValidForOptions(meta, options, keys) === false) {
5408
- return false;
5409
- }
5410
- var flow = options.flow;
5411
- if (isTransactionMetaValidForFlow(meta, flow) === false) {
5412
- return false;
5413
- }
5414
- return true;
5415
- }
5416
- function isTransactionMetaValidForFlow(meta, flow) {
5417
- var shouldValidateFlow = flow && flow !== 'default' && flow !== 'proceed';
5418
- if (shouldValidateFlow) {
5419
- if (flow !== meta.flow) {
5420
- return false;
5421
- }
5422
- }
5423
- return true;
5424
- }
5425
- function isTransactionMetaValidForOptions(meta, options, keys) {
5426
- var mismatch = keys.some(function (key) {
5427
- var value = options[key];
5428
- if (value && value !== meta[key]) {
5429
- return true;
5430
- }
5431
- });
5432
- return !mismatch;
5433
- }
5434
-
5435
- function getResponse(meta) {
5436
- return {
5437
- meta: meta,
5438
- interactionHandle: meta.interactionHandle,
5439
- state: meta.state
5440
- };
5441
- }
5442
- function interact(_x) {
5443
- return _interact.apply(this, arguments);
5444
- }
5445
- function _interact() {
5446
- _interact = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(authClient) {
5447
- var options,
5448
- meta,
5449
- baseUrl,
5450
- _meta,
5451
- clientId,
5452
- redirectUri,
5453
- state,
5454
- scopes,
5455
- withCredentials,
5456
- codeChallenge,
5457
- codeChallengeMethod,
5458
- activationToken,
5459
- recoveryToken,
5460
- clientSecret,
5461
- interactionHandle,
5462
- newMeta,
5463
- _args = arguments;
5464
- return _regeneratorRuntime.wrap(function _callee$(_context) {
5465
- while (1) {
5466
- switch (_context.prev = _context.next) {
5467
- case 0:
5468
- options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
5469
- options = removeNils(options);
5470
- meta = getSavedTransactionMeta(authClient, options);
5471
- if (!(meta === null || meta === void 0 ? void 0 : meta.interactionHandle)) {
5472
- _context.next = 5;
5473
- break;
5474
- }
5475
- return _context.abrupt("return", getResponse(meta));
5476
- case 5:
5477
- _context.next = 7;
5478
- return createTransactionMeta(authClient, _Object$assign(_Object$assign({}, meta), options));
5479
- case 7:
5480
- meta = _context.sent;
5481
- baseUrl = getOAuthBaseUrl(authClient);
5482
- _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;
5483
- clientSecret = options.clientSecret || authClient.options.clientSecret;
5484
- _context.next = 13;
5485
- return idx.interact({
5486
- withCredentials: withCredentials,
5487
- clientId: clientId,
5488
- baseUrl: baseUrl,
5489
- scopes: scopes,
5490
- state: state,
5491
- redirectUri: redirectUri,
5492
- codeChallenge: codeChallenge,
5493
- codeChallengeMethod: codeChallengeMethod,
5494
- activationToken: activationToken,
5495
- recoveryToken: recoveryToken,
5496
- clientSecret: clientSecret
5497
- });
5498
- case 13:
5499
- interactionHandle = _context.sent;
5500
- newMeta = _Object$assign(_Object$assign({}, meta), {
5501
- interactionHandle: interactionHandle,
5502
- withCredentials: withCredentials,
5503
- state: state,
5504
- scopes: scopes,
5505
- recoveryToken: recoveryToken,
5506
- activationToken: activationToken
5507
- });
5508
- saveTransactionMeta(authClient, newMeta);
5509
- return _context.abrupt("return", getResponse(newMeta));
5510
- case 17:
5511
- case "end":
5512
- return _context.stop();
5513
- }
5514
- }
5515
- }, _callee);
5516
- }));
5517
- return _interact.apply(this, arguments);
5377
+ function makeIdxState(authClient, rawIdxResponse) {
5378
+ var toPersist = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
5379
+ var requestDidSucceed = arguments.length > 3 ? arguments[3] : undefined;
5380
+ var _a;
5381
+ var version = (_a = rawIdxResponse === null || rawIdxResponse === void 0 ? void 0 : rawIdxResponse.version) !== null && _a !== void 0 ? _a : IDX_API_VERSION;
5382
+ validateVersionConfig(version);
5383
+ var _parsersForVersion = parsersForVersion(version),
5384
+ makeIdxState = _parsersForVersion.makeIdxState;
5385
+ return makeIdxState(authClient, rawIdxResponse, toPersist, requestDidSucceed);
5518
5386
  }
5519
5387
 
5520
5388
  function introspect(_x) {
@@ -5523,11 +5391,18 @@ function introspect(_x) {
5523
5391
  function _introspect() {
5524
5392
  _introspect = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(authClient) {
5525
5393
  var options,
5394
+ _a,
5526
5395
  rawIdxResponse,
5527
5396
  requestDidSucceed,
5528
5397
  savedIdxResponse,
5529
5398
  version,
5530
5399
  domain,
5400
+ interactionHandle,
5401
+ stateHandle,
5402
+ _withCredentials,
5403
+ url,
5404
+ body,
5405
+ headers,
5531
5406
  withCredentials,
5532
5407
  _args = arguments;
5533
5408
  return _regeneratorRuntime.wrap(function _callee$(_context) {
@@ -5541,47 +5416,62 @@ function _introspect() {
5541
5416
  requestDidSucceed = savedIdxResponse.requestDidSucceed;
5542
5417
  }
5543
5418
  if (rawIdxResponse) {
5544
- _context.next = 21;
5419
+ _context.next = 27;
5545
5420
  break;
5546
5421
  }
5547
5422
  version = options.version || IDX_API_VERSION;
5548
5423
  domain = getOAuthDomain(authClient);
5549
- _context.prev = 6;
5550
- _context.next = 9;
5551
- return idx.introspect(_Object$assign(_Object$assign({
5552
- domain: domain
5553
- }, options), {
5554
- version: version
5555
- }));
5556
- case 9:
5557
- rawIdxResponse = _context.sent;
5424
+ interactionHandle = options.interactionHandle, stateHandle = options.stateHandle;
5425
+ _withCredentials = (_a = options.withCredentials) !== null && _a !== void 0 ? _a : true;
5426
+ _context.prev = 8;
5558
5427
  requestDidSucceed = true;
5559
- _context.next = 21;
5428
+ validateVersionConfig(version);
5429
+ url = "".concat(domain, "/idp/idx/introspect");
5430
+ body = stateHandle ? {
5431
+ stateToken: stateHandle
5432
+ } : {
5433
+ interactionHandle: interactionHandle
5434
+ };
5435
+ headers = {
5436
+ 'Content-Type': "application/ion+json; okta-version=".concat(version),
5437
+ Accept: "application/ion+json; okta-version=".concat(version)
5438
+ };
5439
+ _context.next = 16;
5440
+ return httpRequest(authClient, {
5441
+ method: 'POST',
5442
+ url: url,
5443
+ headers: headers,
5444
+ withCredentials: _withCredentials,
5445
+ args: body
5446
+ });
5447
+ case 16:
5448
+ rawIdxResponse = _context.sent;
5449
+ _context.next = 27;
5560
5450
  break;
5561
- case 13:
5562
- _context.prev = 13;
5563
- _context.t0 = _context["catch"](6);
5564
- if (!isRawIdxResponse(_context.t0)) {
5565
- _context.next = 20;
5451
+ case 19:
5452
+ _context.prev = 19;
5453
+ _context.t0 = _context["catch"](8);
5454
+ if (!(isAuthApiError(_context.t0) && _context.t0.xhr && isRawIdxResponse(_context.t0.xhr.responseJSON))) {
5455
+ _context.next = 26;
5566
5456
  break;
5567
5457
  }
5568
- rawIdxResponse = _context.t0;
5458
+ rawIdxResponse = _context.t0.xhr.responseJSON;
5569
5459
  requestDidSucceed = false;
5570
- _context.next = 21;
5460
+ _context.next = 27;
5571
5461
  break;
5572
- case 20:
5462
+ case 26:
5573
5463
  throw _context.t0;
5574
- case 21:
5464
+ case 27:
5575
5465
  withCredentials = options.withCredentials;
5576
- return _context.abrupt("return", idx.makeIdxState(rawIdxResponse, {
5466
+ return _context.abrupt("return", makeIdxState(authClient, rawIdxResponse, {
5577
5467
  withCredentials: withCredentials
5578
5468
  }, requestDidSucceed));
5579
- case 23:
5469
+ case 29:
5580
5470
  case "end":
5581
5471
  return _context.stop();
5582
5472
  }
5583
5473
  }
5584
- }, _callee, null, [[6, 13]]);
5474
+ }, _callee, null, [[8, 19]]);
5585
5475
  }));
5586
5476
  return _introspect.apply(this, arguments);
5587
5477
  }
@@ -5668,7 +5558,7 @@ function findMatchedOption(authenticators, options) {
5668
5558
  }
5669
5559
 
5670
5560
  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; } } }; }
5671
- 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); }
5561
+ 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); }
5672
5562
  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; }
5673
5563
  var Remediator = function () {
5674
5564
  function Remediator(remediation) {
@@ -5787,7 +5677,8 @@ var Remediator = function () {
5787
5677
  var input;
5788
5678
  var name = inputFromRemediation.name,
5789
5679
  type = inputFromRemediation.type,
5790
- visible = inputFromRemediation.visible;
5680
+ visible = inputFromRemediation.visible,
5681
+ messages = inputFromRemediation.messages;
5791
5682
  if (visible === false) {
5792
5683
  return;
5793
5684
  }
@@ -5818,6 +5709,9 @@ var Remediator = function () {
5818
5709
  return inputs.push(i);
5819
5710
  });
5820
5711
  } else {
5712
+ if (messages) {
5713
+ input.messages = messages;
5714
+ }
5821
5715
  inputs.push(input);
5822
5716
  }
5823
5717
  });
@@ -5827,7 +5721,10 @@ var Remediator = function () {
5827
5721
  key: "getValuesAfterProceed",
5828
5722
  value:
5829
5723
  function getValuesAfterProceed() {
5830
- var inputs = this.getInputs();
5724
+ var _context6;
5725
+ var inputsFromRemediation = this.remediation.value || [];
5726
+ var inputsFromRemediator = this.getInputs();
5727
+ var inputs = _concatInstanceProperty(_context6 = []).call(_context6, _toConsumableArray(inputsFromRemediation), _toConsumableArray(inputsFromRemediator));
5831
5728
  var _iterator = _createForOfIteratorHelper$3(inputs),
5832
5729
  _step;
5833
5730
  try {
@@ -5845,7 +5742,7 @@ var Remediator = function () {
5845
5742
  }, {
5846
5743
  key: "getAuthenticator",
5847
5744
  value: function getAuthenticator() {
5848
- var _context6, _context7;
5745
+ var _context7, _context8;
5849
5746
  var _a, _b;
5850
5747
  var relatesTo = (_a = this.remediation.relatesTo) === null || _a === void 0 ? void 0 : _a.value;
5851
5748
  if (!relatesTo) {
@@ -5855,11 +5752,11 @@ var Remediator = function () {
5855
5752
  if (!authenticatorFromRemediation) {
5856
5753
  return relatesTo;
5857
5754
  }
5858
- var id = _findInstanceProperty(_context6 = authenticatorFromRemediation.form.value).call(_context6, function (_ref2) {
5755
+ var id = _findInstanceProperty(_context7 = authenticatorFromRemediation.form.value).call(_context7, function (_ref2) {
5859
5756
  var name = _ref2.name;
5860
5757
  return name === 'id';
5861
5758
  }).value;
5862
- var enrollmentId = (_b = _findInstanceProperty(_context7 = authenticatorFromRemediation.form.value).call(_context7, function (_ref3) {
5759
+ var enrollmentId = (_b = _findInstanceProperty(_context8 = authenticatorFromRemediation.form.value).call(_context8, function (_ref3) {
5863
5760
  var name = _ref3.name;
5864
5761
  return name === 'enrollmentId';
5865
5762
  })) === null || _b === void 0 ? void 0 : _b.value;
@@ -5871,15 +5768,15 @@ var Remediator = function () {
5871
5768
  }], [{
5872
5769
  key: "getMessages",
5873
5770
  value: function getMessages(remediation) {
5874
- var _context8;
5771
+ var _context9;
5875
5772
  var _a, _b;
5876
5773
  if (!remediation.value) {
5877
5774
  return;
5878
5775
  }
5879
- 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) {
5776
+ 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) {
5880
5777
  if (field.messages) {
5881
- var _context9;
5882
- messages = _concatInstanceProperty(_context9 = []).call(_context9, _toConsumableArray(messages), _toConsumableArray(field.messages.value));
5778
+ var _context10;
5779
+ messages = _concatInstanceProperty(_context10 = []).call(_context10, _toConsumableArray(messages), _toConsumableArray(field.messages.value));
5883
5780
  }
5884
5781
  return messages;
5885
5782
  }, []);
@@ -7074,15 +6971,16 @@ var AuthenticatorVerificationData = function (_AuthenticatorData) {
7074
6971
  function AuthenticatorVerificationData(remediation) {
7075
6972
  var _this;
7076
6973
  var values = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
6974
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
7077
6975
  _classCallCheck(this, AuthenticatorVerificationData);
7078
6976
  _this = _super.call(this, remediation, values);
7079
- _this.shouldProceedWithEmailAuthenticator = _this.authenticator.methods.length === 1 && _this.authenticator.methods[0].type === 'email';
6977
+ _this.shouldProceedWithEmailAuthenticator = options.shouldProceedWithEmailAuthenticator !== false && _this.authenticator.methods.length === 1 && _this.authenticator.methods[0].type === 'email';
7080
6978
  return _this;
7081
6979
  }
7082
6980
  _createClass(AuthenticatorVerificationData, [{
7083
6981
  key: "canRemediate",
7084
6982
  value: function canRemediate() {
7085
- if (this.shouldProceedWithEmailAuthenticator) {
6983
+ if (this.shouldProceedWithEmailAuthenticator !== false) {
7086
6984
  return true;
7087
6985
  }
7088
6986
  return _get(_getPrototypeOf(AuthenticatorVerificationData.prototype), "canRemediate", this).call(this);
@@ -7091,7 +6989,7 @@ var AuthenticatorVerificationData = function (_AuthenticatorData) {
7091
6989
  key: "mapAuthenticator",
7092
6990
  value: function mapAuthenticator() {
7093
6991
  var _a;
7094
- if (this.shouldProceedWithEmailAuthenticator) {
6992
+ if (this.shouldProceedWithEmailAuthenticator !== false) {
7095
6993
  var _context;
7096
6994
  var authenticatorFromRemediation = this.getAuthenticatorFromRemediation();
7097
6995
  return (_a = authenticatorFromRemediation.form) === null || _a === void 0 ? void 0 : _reduceInstanceProperty(_context = _a.value).call(_context, function (acc, curr) {
@@ -7242,7 +7140,7 @@ var remediators = /*#__PURE__*/Object.freeze({
7242
7140
  });
7243
7141
 
7244
7142
  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; } } }; }
7245
- 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); }
7143
+ 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); }
7246
7144
  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; }
7247
7145
  function isTerminalResponse(idxResponse) {
7248
7146
  var neededToProceed = idxResponse.neededToProceed,
@@ -7387,25 +7285,34 @@ function getAvailableSteps(idxResponse) {
7387
7285
  }
7388
7286
  return res;
7389
7287
  }
7390
- function filterValuesForRemediation(idxResponse, values) {
7288
+ function filterValuesForRemediation(idxResponse, remediationName, values) {
7391
7289
  var _context10;
7392
- var valuesForRemediation = _reduceInstanceProperty(_context10 = idxResponse.neededToProceed[0].value).call(_context10, function (res, entry) {
7393
- var name = entry.name;
7394
- res[name] = values[name];
7290
+ var remediations = idxResponse.neededToProceed || [];
7291
+ var remediation = _findInstanceProperty(remediations).call(remediations, function (r) {
7292
+ return r.name === remediationName;
7293
+ });
7294
+ if (!remediation) {
7295
+ warn("filterValuesForRemediation: \"".concat(remediationName, "\" did not match any remediations"));
7296
+ return values;
7297
+ }
7298
+ var valuesForRemediation = _reduceInstanceProperty(_context10 = remediation.value).call(_context10, function (res, entry) {
7299
+ var name = entry.name,
7300
+ value = entry.value;
7301
+ if (name === 'stateHandle') {
7302
+ res[name] = value;
7303
+ } else {
7304
+ res[name] = values[name];
7305
+ }
7395
7306
  return res;
7396
7307
  }, {});
7397
7308
  return valuesForRemediation;
7398
7309
  }
7399
-
7400
- 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; } } }; }
7401
- 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); }
7402
- 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; }
7403
7310
  function getRemediator(idxRemediations, values, options) {
7404
7311
  var remediators = options.remediators;
7405
7312
  var remediator;
7406
7313
  if (options.step) {
7407
- var remediation = _findInstanceProperty(idxRemediations).call(idxRemediations, function (_ref) {
7408
- var name = _ref.name;
7314
+ var remediation = _findInstanceProperty(idxRemediations).call(idxRemediations, function (_ref5) {
7315
+ var name = _ref5.name;
7409
7316
  return name === options.step;
7410
7317
  });
7411
7318
  if (remediation) {
@@ -7417,13 +7324,13 @@ function getRemediator(idxRemediations, values, options) {
7417
7324
  }
7418
7325
  }
7419
7326
  var remediatorCandidates = [];
7420
- var _iterator = _createForOfIteratorHelper(idxRemediations),
7421
- _step;
7327
+ var _iterator3 = _createForOfIteratorHelper$1(idxRemediations),
7328
+ _step3;
7422
7329
  try {
7423
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
7424
- var _context;
7425
- var _remediation = _step.value;
7426
- var isRemeditionInFlow = _includesInstanceProperty(_context = _Object$keys(remediators)).call(_context, _remediation.name);
7330
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
7331
+ var _context11;
7332
+ var _remediation = _step3.value;
7333
+ var isRemeditionInFlow = _includesInstanceProperty(_context11 = _Object$keys(remediators)).call(_context11, _remediation.name);
7427
7334
  if (!isRemeditionInFlow) {
7428
7335
  continue;
7429
7336
  }
@@ -7435,9 +7342,9 @@ function getRemediator(idxRemediations, values, options) {
7435
7342
  remediatorCandidates.push(remediator);
7436
7343
  }
7437
7344
  } catch (err) {
7438
- _iterator.e(err);
7345
+ _iterator3.e(err);
7439
7346
  } finally {
7440
- _iterator.f();
7347
+ _iterator3.f();
7441
7348
  }
7442
7349
  return remediatorCandidates[0];
7443
7350
  }
@@ -7456,7 +7363,9 @@ function handleIdxError(e, remediator) {
7456
7363
  if (!idxResponse) {
7457
7364
  throw e;
7458
7365
  }
7459
- idxResponse.requestDidSucceed = false;
7366
+ idxResponse = _Object$assign(_Object$assign({}, idxResponse), {
7367
+ requestDidSucceed: false
7368
+ });
7460
7369
  var terminal = isTerminalResponse(idxResponse);
7461
7370
  var messages = getMessagesFromResponse(idxResponse);
7462
7371
  if (terminal) {
@@ -7475,44 +7384,61 @@ function handleIdxError(e, remediator) {
7475
7384
  });
7476
7385
  }
7477
7386
  }
7387
+
7388
+ 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; } } }; }
7389
+ 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); }
7390
+ 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; }
7478
7391
  function getActionFromValues(values, idxResponse) {
7479
- var _context2;
7480
- return _findInstanceProperty(_context2 = _Object$keys(idxResponse.actions)).call(_context2, function (action) {
7392
+ var _context;
7393
+ return _findInstanceProperty(_context = _Object$keys(idxResponse.actions)).call(_context, function (action) {
7481
7394
  return !!values.resend && _includesInstanceProperty(action).call(action, '-resend');
7482
7395
  });
7483
7396
  }
7484
7397
  function removeActionFromValues(values) {
7485
- values.resend = undefined;
7486
- return values;
7398
+ return _Object$assign(_Object$assign({}, values), {
7399
+ resend: undefined
7400
+ });
7401
+ }
7402
+ function removeActionFromOptions(options, actionName) {
7403
+ var actions = options.actions || [];
7404
+ actions = _filterInstanceProperty(actions).call(actions, function (entry) {
7405
+ if (typeof entry === 'string') {
7406
+ return entry !== actionName;
7407
+ }
7408
+ return entry.name !== actionName;
7409
+ });
7410
+ return _Object$assign(_Object$assign({}, options), {
7411
+ actions: actions
7412
+ });
7487
7413
  }
7488
7414
  function remediate(_x, _x2, _x3) {
7489
7415
  return _remediate.apply(this, arguments);
7490
7416
  }
7491
7417
  function _remediate() {
7492
7418
  _remediate = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(idxResponse, values, options) {
7493
- var _context3;
7494
- var _idxResponse, neededToProceed, interactionCode, flow, terminal, messages, remediator, actionFromValues, actionFromOptions, actions, _iterator2, _step2, _loop, _ret, nextStep, _nextStep, name, data;
7495
- return _regeneratorRuntime.wrap(function _callee$(_context5) {
7419
+ var _context2;
7420
+ var _idxResponse, neededToProceed, interactionCode, _options, flow, terminal, messages, remediator, actionFromValues, actionFromOptions, actions, _iterator, _step, _loop, _ret, nextStep, name, data;
7421
+ return _regeneratorRuntime.wrap(function _callee$(_context4) {
7496
7422
  while (1) {
7497
- switch (_context5.prev = _context5.next) {
7423
+ switch (_context4.prev = _context4.next) {
7498
7424
  case 0:
7499
7425
  _idxResponse = idxResponse, neededToProceed = _idxResponse.neededToProceed, interactionCode = _idxResponse.interactionCode;
7500
- flow = options.flow;
7426
+ _options = options, flow = _options.flow;
7501
7427
  if (!interactionCode) {
7502
- _context5.next = 4;
7428
+ _context4.next = 4;
7503
7429
  break;
7504
7430
  }
7505
- return _context5.abrupt("return", {
7431
+ return _context4.abrupt("return", {
7506
7432
  idxResponse: idxResponse
7507
7433
  });
7508
7434
  case 4:
7509
7435
  terminal = isTerminalResponse(idxResponse);
7510
7436
  messages = getMessagesFromResponse(idxResponse);
7511
7437
  if (!terminal) {
7512
- _context5.next = 8;
7438
+ _context4.next = 8;
7513
7439
  break;
7514
7440
  }
7515
- return _context5.abrupt("return", {
7441
+ return _context4.abrupt("return", {
7516
7442
  idxResponse: idxResponse,
7517
7443
  terminal: terminal,
7518
7444
  messages: messages
@@ -7521,150 +7447,157 @@ function _remediate() {
7521
7447
  remediator = getRemediator(neededToProceed, values, options);
7522
7448
  actionFromValues = getActionFromValues(values, idxResponse);
7523
7449
  actionFromOptions = options.actions || [];
7524
- actions = _concatInstanceProperty(_context3 = []).call(_context3, _toConsumableArray(actionFromOptions), _toConsumableArray(actionFromValues && [actionFromValues] || []));
7450
+ actions = _concatInstanceProperty(_context2 = []).call(_context2, _toConsumableArray(actionFromOptions), _toConsumableArray(actionFromValues && [actionFromValues] || []));
7525
7451
  if (!actions) {
7526
- _context5.next = 32;
7452
+ _context4.next = 32;
7527
7453
  break;
7528
7454
  }
7529
- _iterator2 = _createForOfIteratorHelper(actions);
7530
- _context5.prev = 14;
7455
+ _iterator = _createForOfIteratorHelper(actions);
7456
+ _context4.prev = 14;
7531
7457
  _loop = _regeneratorRuntime.mark(function _loop() {
7532
- var action, valuesWithoutExecutedAction, optionsWithoutExecutedAction, remediationAction;
7533
- return _regeneratorRuntime.wrap(function _loop$(_context4) {
7458
+ var action, params, valuesWithoutExecutedAction, optionsWithoutExecutedAction, remediationAction;
7459
+ return _regeneratorRuntime.wrap(function _loop$(_context3) {
7534
7460
  while (1) {
7535
- switch (_context4.prev = _context4.next) {
7461
+ switch (_context3.prev = _context3.next) {
7536
7462
  case 0:
7537
- action = _step2.value;
7463
+ action = _step.value;
7464
+ params = {};
7465
+ if (typeof action !== 'string') {
7466
+ params = action.params || {};
7467
+ action = action.name;
7468
+ }
7538
7469
  valuesWithoutExecutedAction = removeActionFromValues(values);
7539
- optionsWithoutExecutedAction = _Object$assign(_Object$assign({}, options), {
7540
- actions: _filterInstanceProperty(actionFromOptions).call(actionFromOptions, function (entry) {
7541
- return entry !== action;
7542
- })
7543
- });
7470
+ optionsWithoutExecutedAction = removeActionFromOptions(options, action);
7544
7471
  if (!(typeof idxResponse.actions[action] === 'function')) {
7545
- _context4.next = 17;
7472
+ _context3.next = 19;
7546
7473
  break;
7547
7474
  }
7548
- _context4.prev = 4;
7549
- _context4.next = 7;
7550
- return idxResponse.actions[action]();
7551
- case 7:
7552
- idxResponse = _context4.sent;
7553
- idxResponse.requestDidSucceed = true;
7554
- _context4.next = 14;
7475
+ _context3.prev = 6;
7476
+ _context3.next = 9;
7477
+ return idxResponse.actions[action](params);
7478
+ case 9:
7479
+ idxResponse = _context3.sent;
7480
+ idxResponse = _Object$assign(_Object$assign({}, idxResponse), {
7481
+ requestDidSucceed: true
7482
+ });
7483
+ _context3.next = 16;
7555
7484
  break;
7556
- case 11:
7557
- _context4.prev = 11;
7558
- _context4.t0 = _context4["catch"](4);
7559
- return _context4.abrupt("return", {
7560
- v: handleIdxError(_context4.t0, remediator)
7485
+ case 13:
7486
+ _context3.prev = 13;
7487
+ _context3.t0 = _context3["catch"](6);
7488
+ return _context3.abrupt("return", {
7489
+ v: handleIdxError(_context3.t0, remediator)
7561
7490
  });
7562
- case 14:
7491
+ case 16:
7563
7492
  if (!(action === 'cancel')) {
7564
- _context4.next = 16;
7493
+ _context3.next = 18;
7565
7494
  break;
7566
7495
  }
7567
- return _context4.abrupt("return", {
7496
+ return _context3.abrupt("return", {
7568
7497
  v: {
7569
7498
  idxResponse: idxResponse,
7570
7499
  canceled: true
7571
7500
  }
7572
7501
  });
7573
- case 16:
7574
- return _context4.abrupt("return", {
7502
+ case 18:
7503
+ return _context3.abrupt("return", {
7575
7504
  v: remediate(idxResponse, valuesWithoutExecutedAction, optionsWithoutExecutedAction)
7576
7505
  });
7577
- case 17:
7578
- remediationAction = _findInstanceProperty(neededToProceed).call(neededToProceed, function (_ref2) {
7579
- var name = _ref2.name;
7506
+ case 19:
7507
+ remediationAction = _findInstanceProperty(neededToProceed).call(neededToProceed, function (_ref) {
7508
+ var name = _ref.name;
7580
7509
  return name === action;
7581
7510
  });
7582
7511
  if (!remediationAction) {
7583
- _context4.next = 30;
7512
+ _context3.next = 32;
7584
7513
  break;
7585
7514
  }
7586
- _context4.prev = 19;
7587
- _context4.next = 22;
7588
- return idxResponse.proceed(action, {});
7589
- case 22:
7590
- idxResponse = _context4.sent;
7591
- idxResponse.requestDidSucceed = true;
7592
- _context4.next = 29;
7515
+ _context3.prev = 21;
7516
+ _context3.next = 24;
7517
+ return idxResponse.proceed(action, params);
7518
+ case 24:
7519
+ idxResponse = _context3.sent;
7520
+ idxResponse = _Object$assign(_Object$assign({}, idxResponse), {
7521
+ requestDidSucceed: true
7522
+ });
7523
+ _context3.next = 31;
7593
7524
  break;
7594
- case 26:
7595
- _context4.prev = 26;
7596
- _context4.t1 = _context4["catch"](19);
7597
- return _context4.abrupt("return", {
7598
- v: handleIdxError(_context4.t1, remediator)
7525
+ case 28:
7526
+ _context3.prev = 28;
7527
+ _context3.t1 = _context3["catch"](21);
7528
+ return _context3.abrupt("return", {
7529
+ v: handleIdxError(_context3.t1, remediator)
7599
7530
  });
7600
- case 29:
7601
- return _context4.abrupt("return", {
7531
+ case 31:
7532
+ return _context3.abrupt("return", {
7602
7533
  v: remediate(idxResponse, values, optionsWithoutExecutedAction)
7603
7534
  });
7604
- case 30:
7535
+ case 32:
7605
7536
  case "end":
7606
- return _context4.stop();
7537
+ return _context3.stop();
7607
7538
  }
7608
7539
  }
7609
- }, _loop, null, [[4, 11], [19, 26]]);
7540
+ }, _loop, null, [[6, 13], [21, 28]]);
7610
7541
  });
7611
- _iterator2.s();
7542
+ _iterator.s();
7612
7543
  case 17:
7613
- if ((_step2 = _iterator2.n()).done) {
7614
- _context5.next = 24;
7544
+ if ((_step = _iterator.n()).done) {
7545
+ _context4.next = 24;
7615
7546
  break;
7616
7547
  }
7617
- return _context5.delegateYield(_loop(), "t0", 19);
7548
+ return _context4.delegateYield(_loop(), "t0", 19);
7618
7549
  case 19:
7619
- _ret = _context5.t0;
7550
+ _ret = _context4.t0;
7620
7551
  if (!(_typeof(_ret) === "object")) {
7621
- _context5.next = 22;
7552
+ _context4.next = 22;
7622
7553
  break;
7623
7554
  }
7624
- return _context5.abrupt("return", _ret.v);
7555
+ return _context4.abrupt("return", _ret.v);
7625
7556
  case 22:
7626
- _context5.next = 17;
7557
+ _context4.next = 17;
7627
7558
  break;
7628
7559
  case 24:
7629
- _context5.next = 29;
7560
+ _context4.next = 29;
7630
7561
  break;
7631
7562
  case 26:
7632
- _context5.prev = 26;
7633
- _context5.t1 = _context5["catch"](14);
7634
- _iterator2.e(_context5.t1);
7563
+ _context4.prev = 26;
7564
+ _context4.t1 = _context4["catch"](14);
7565
+ _iterator.e(_context4.t1);
7635
7566
  case 29:
7636
- _context5.prev = 29;
7637
- _iterator2.f();
7638
- return _context5.finish(29);
7567
+ _context4.prev = 29;
7568
+ _iterator.f();
7569
+ return _context4.finish(29);
7639
7570
  case 32:
7640
7571
  if (remediator) {
7641
- _context5.next = 49;
7572
+ _context4.next = 49;
7642
7573
  break;
7643
7574
  }
7644
7575
  if (!options.step) {
7645
- _context5.next = 46;
7576
+ _context4.next = 46;
7646
7577
  break;
7647
7578
  }
7648
- values = filterValuesForRemediation(idxResponse, values);
7649
- _context5.prev = 35;
7650
- _context5.next = 38;
7579
+ values = filterValuesForRemediation(idxResponse, options.step, values);
7580
+ _context4.prev = 35;
7581
+ _context4.next = 38;
7651
7582
  return idxResponse.proceed(options.step, values);
7652
7583
  case 38:
7653
- idxResponse = _context5.sent;
7654
- idxResponse.requestDidSucceed = true;
7655
- return _context5.abrupt("return", {
7584
+ idxResponse = _context4.sent;
7585
+ idxResponse = _Object$assign(_Object$assign({}, idxResponse), {
7586
+ requestDidSucceed: true
7587
+ });
7588
+ return _context4.abrupt("return", {
7656
7589
  idxResponse: idxResponse
7657
7590
  });
7658
7591
  case 43:
7659
- _context5.prev = 43;
7660
- _context5.t2 = _context5["catch"](35);
7661
- return _context5.abrupt("return", handleIdxError(_context5.t2));
7592
+ _context4.prev = 43;
7593
+ _context4.t2 = _context4["catch"](35);
7594
+ return _context4.abrupt("return", handleIdxError(_context4.t2));
7662
7595
  case 46:
7663
7596
  if (!(flow === 'default')) {
7664
- _context5.next = 48;
7597
+ _context4.next = 48;
7665
7598
  break;
7666
7599
  }
7667
- return _context5.abrupt("return", {
7600
+ return _context4.abrupt("return", {
7668
7601
  idxResponse: idxResponse
7669
7602
  });
7670
7603
  case 48:
@@ -7672,48 +7605,42 @@ function _remediate() {
7672
7605
  return acc ? acc + ' ,' + curr.name : curr.name;
7673
7606
  }, ''), "]\n "));
7674
7607
  case 49:
7675
- if (!messages.length) {
7676
- _context5.next = 52;
7608
+ if (remediator.canRemediate()) {
7609
+ _context4.next = 52;
7677
7610
  break;
7678
7611
  }
7679
7612
  nextStep = getNextStep(remediator, idxResponse);
7680
- return _context5.abrupt("return", {
7613
+ return _context4.abrupt("return", {
7681
7614
  idxResponse: idxResponse,
7682
7615
  nextStep: nextStep,
7683
- messages: messages
7616
+ messages: messages.length ? messages : undefined
7684
7617
  });
7685
7618
  case 52:
7686
- if (remediator.canRemediate()) {
7687
- _context5.next = 55;
7688
- break;
7689
- }
7690
- _nextStep = getNextStep(remediator, idxResponse);
7691
- return _context5.abrupt("return", {
7692
- idxResponse: idxResponse,
7693
- nextStep: _nextStep
7694
- });
7695
- case 55:
7696
7619
  name = remediator.getName();
7697
7620
  data = remediator.getData();
7698
- _context5.prev = 57;
7699
- _context5.next = 60;
7621
+ _context4.prev = 54;
7622
+ _context4.next = 57;
7700
7623
  return idxResponse.proceed(name, data);
7701
- case 60:
7702
- idxResponse = _context5.sent;
7703
- idxResponse.requestDidSucceed = true;
7624
+ case 57:
7625
+ idxResponse = _context4.sent;
7626
+ idxResponse = _Object$assign(_Object$assign({}, idxResponse), {
7627
+ requestDidSucceed: true
7628
+ });
7704
7629
  values = remediator.getValuesAfterProceed();
7705
- delete options.step;
7706
- return _context5.abrupt("return", remediate(idxResponse, values, options));
7630
+ options = _Object$assign(_Object$assign({}, options), {
7631
+ step: undefined
7632
+ });
7633
+ return _context4.abrupt("return", remediate(idxResponse, values, options));
7634
+ case 64:
7635
+ _context4.prev = 64;
7636
+ _context4.t3 = _context4["catch"](54);
7637
+ return _context4.abrupt("return", handleIdxError(_context4.t3, remediator));
7707
7638
  case 67:
7708
- _context5.prev = 67;
7709
- _context5.t3 = _context5["catch"](57);
7710
- return _context5.abrupt("return", handleIdxError(_context5.t3, remediator));
7711
- case 70:
7712
7639
  case "end":
7713
- return _context5.stop();
7640
+ return _context4.stop();
7714
7641
  }
7715
7642
  }
7716
- }, _callee, null, [[14, 26, 29, 32], [35, 43], [57, 67]]);
7643
+ }, _callee, null, [[14, 26, 29, 32], [35, 43], [54, 64]]);
7717
7644
  }));
7718
7645
  return _remediate.apply(this, arguments);
7719
7646
  }
@@ -7808,7 +7735,7 @@ function getFlowSpecification(oktaAuth) {
7808
7735
  }
7809
7736
 
7810
7737
  function initializeValues(options) {
7811
- var knownOptions = ['flow', 'remediators', 'actions', 'withCredentials', 'step'];
7738
+ var knownOptions = ['flow', 'remediators', 'actions', 'withCredentials', 'step', 'shouldProceedWithEmailAuthenticator'];
7812
7739
  var values = _Object$assign({}, options);
7813
7740
  knownOptions.forEach(function (option) {
7814
7741
  delete values[option];
@@ -7852,26 +7779,26 @@ function _getDataFromIntrospect() {
7852
7779
  case 0:
7853
7780
  options = data.options;
7854
7781
  stateHandle = options.stateHandle, withCredentials = options.withCredentials, version = options.version, state = options.state, scopes = options.scopes, recoveryToken = options.recoveryToken, activationToken = options.activationToken;
7782
+ meta = getSavedTransactionMeta(authClient, {
7783
+ state: state,
7784
+ recoveryToken: recoveryToken,
7785
+ activationToken: activationToken
7786
+ });
7855
7787
  if (!stateHandle) {
7856
- _context.next = 8;
7788
+ _context.next = 9;
7857
7789
  break;
7858
7790
  }
7859
- _context.next = 5;
7791
+ _context.next = 6;
7860
7792
  return introspect(authClient, {
7861
7793
  withCredentials: withCredentials,
7862
7794
  version: version,
7863
7795
  stateHandle: stateHandle
7864
7796
  });
7865
- case 5:
7797
+ case 6:
7866
7798
  idxResponse = _context.sent;
7867
7799
  _context.next = 20;
7868
7800
  break;
7869
- case 8:
7870
- meta = getSavedTransactionMeta(authClient, {
7871
- state: state,
7872
- recoveryToken: recoveryToken,
7873
- activationToken: activationToken
7874
- });
7801
+ case 9:
7875
7802
  interactionHandle = meta === null || meta === void 0 ? void 0 : meta.interactionHandle;
7876
7803
  if (interactionHandle) {
7877
7804
  _context.next = 17;
@@ -7918,13 +7845,13 @@ function getDataFromRemediate(_x3) {
7918
7845
  }
7919
7846
  function _getDataFromRemediate() {
7920
7847
  _getDataFromRemediate = _asyncToGenerator( _regeneratorRuntime.mark(function _callee2(data) {
7921
- var idxResponse, options, values, autoRemediate, remediators, actions, flow, step, shouldRemediate, _yield$remediate, idxResponseFromRemediation, nextStep, canceled;
7848
+ var idxResponse, options, values, autoRemediate, remediators, actions, flow, step, shouldProceedWithEmailAuthenticator, shouldRemediate, _yield$remediate, idxResponseFromRemediation, nextStep, canceled;
7922
7849
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
7923
7850
  while (1) {
7924
7851
  switch (_context2.prev = _context2.next) {
7925
7852
  case 0:
7926
7853
  idxResponse = data.idxResponse, options = data.options, values = _valuesInstanceProperty(data);
7927
- autoRemediate = options.autoRemediate, remediators = options.remediators, actions = options.actions, flow = options.flow, step = options.step;
7854
+ autoRemediate = options.autoRemediate, remediators = options.remediators, actions = options.actions, flow = options.flow, step = options.step, shouldProceedWithEmailAuthenticator = options.shouldProceedWithEmailAuthenticator;
7928
7855
  shouldRemediate = autoRemediate !== false && (remediators || actions || step);
7929
7856
  if (shouldRemediate) {
7930
7857
  _context2.next = 5;
@@ -7940,7 +7867,8 @@ function _getDataFromRemediate() {
7940
7867
  remediators: remediators,
7941
7868
  actions: actions,
7942
7869
  flow: flow,
7943
- step: step
7870
+ step: step,
7871
+ shouldProceedWithEmailAuthenticator: shouldProceedWithEmailAuthenticator
7944
7872
  });
7945
7873
  case 8:
7946
7874
  _yield$remediate = _context2.sent;
@@ -8114,13 +8042,14 @@ function _run() {
8114
8042
  error,
8115
8043
  interactionCode,
8116
8044
  rawIdxResponse,
8117
- requestDidSucceed,
8045
+ _requestDidSucceed,
8118
8046
  _ref,
8119
8047
  actions,
8120
8048
  context,
8121
8049
  neededToProceed,
8122
8050
  proceed,
8123
8051
  rawIdxState,
8052
+ requestDidSucceed,
8124
8053
  _args5 = arguments;
8125
8054
  return _regeneratorRuntime.wrap(function _callee5$(_context5) {
8126
8055
  while (1) {
@@ -8160,14 +8089,14 @@ function _run() {
8160
8089
  } else {
8161
8090
  saveTransactionMeta(authClient, _Object$assign({}, meta));
8162
8091
  if (idxResponse) {
8163
- rawIdxResponse = idxResponse.rawIdxState, requestDidSucceed = idxResponse.requestDidSucceed;
8092
+ rawIdxResponse = idxResponse.rawIdxState, _requestDidSucceed = idxResponse.requestDidSucceed;
8164
8093
  authClient.transactionManager.saveIdxResponse({
8165
8094
  rawIdxResponse: rawIdxResponse,
8166
- requestDidSucceed: requestDidSucceed
8095
+ requestDidSucceed: _requestDidSucceed
8167
8096
  });
8168
8097
  }
8169
8098
  }
8170
- _ref = idxResponse || {}, actions = _ref.actions, context = _ref.context, neededToProceed = _ref.neededToProceed, proceed = _ref.proceed, rawIdxState = _ref.rawIdxState;
8099
+ _ref = idxResponse || {}, actions = _ref.actions, context = _ref.context, neededToProceed = _ref.neededToProceed, proceed = _ref.proceed, rawIdxState = _ref.rawIdxState, requestDidSucceed = _ref.requestDidSucceed;
8171
8100
  return _context5.abrupt("return", _Object$assign(_Object$assign(_Object$assign(_Object$assign(_Object$assign(_Object$assign(_Object$assign(_Object$assign({
8172
8101
  status: status
8173
8102
  }, meta && {
@@ -8190,7 +8119,8 @@ function _run() {
8190
8119
  context: context,
8191
8120
  neededToProceed: neededToProceed,
8192
8121
  proceed: proceed,
8193
- rawIdxState: rawIdxState
8122
+ rawIdxState: rawIdxState,
8123
+ requestDidSucceed: requestDidSucceed
8194
8124
  }));
8195
8125
  case 22:
8196
8126
  case "end":
@@ -8651,26 +8581,10 @@ function _unlockAccount() {
8651
8581
  return _unlockAccount.apply(this, arguments);
8652
8582
  }
8653
8583
 
8654
- function setGlobalRequestInterceptor(fn) {
8655
- idx.client.interceptors.request.use(fn);
8656
- }
8657
- function createGlobalRequestInterceptor(sdk) {
8658
- return function (requestConfig) {
8659
- var oktaUserAgentHeader = sdk._oktaUserAgent.getHttpHeader();
8660
- var headers = _Object$assign(_Object$assign({}, oktaUserAgentHeader), sdk.options.headers);
8661
- _Object$keys(headers).forEach(function (name) {
8662
- if (!sdk.options.clientSecret && name === 'X-Device-Token') {
8663
- return;
8664
- }
8665
- requestConfig.headers[name] = headers[name];
8666
- });
8667
- };
8668
- }
8669
-
8670
8584
  var OktaUserAgent = function () {
8671
8585
  function OktaUserAgent() {
8672
8586
  _classCallCheck(this, OktaUserAgent);
8673
- this.environments = ["okta-auth-js/".concat("6.3.2")];
8587
+ this.environments = ["okta-auth-js/".concat("6.4.0")];
8674
8588
  }
8675
8589
  _createClass(OktaUserAgent, [{
8676
8590
  key: "addEnvironment",
@@ -8688,7 +8602,7 @@ var OktaUserAgent = function () {
8688
8602
  }, {
8689
8603
  key: "getVersion",
8690
8604
  value: function getVersion() {
8691
- return "6.3.2";
8605
+ return "6.4.0";
8692
8606
  }
8693
8607
  }, {
8694
8608
  key: "maybeAddNodeEnvironment",
@@ -8707,6 +8621,7 @@ var OktaAuth = function () {
8707
8621
  function OktaAuth(args) {
8708
8622
  var _this = this;
8709
8623
  _classCallCheck(this, OktaAuth);
8624
+ this.features = features;
8710
8625
  var options = this.options = buildOptions(args);
8711
8626
  this.storageManager = new StorageManager(options.storageManager, options.cookies, options.storageUtil);
8712
8627
  this.transactionManager = new TransactionManager(_Object$assign({
@@ -8836,7 +8751,6 @@ var OktaAuth = function () {
8836
8751
  canProceed: canProceed.bind(null, this),
8837
8752
  unlockAccount: unlockAccount.bind(null, this)
8838
8753
  };
8839
- setGlobalRequestInterceptor(createGlobalRequestInterceptor(this));
8840
8754
  this.http = {
8841
8755
  setRequestHeader: setRequestHeader.bind(null, this)
8842
8756
  };
@@ -9548,9 +9462,10 @@ var OktaAuth = function () {
9548
9462
  }]);
9549
9463
  return OktaAuth;
9550
9464
  }();
9551
- OktaAuth.features = OktaAuth.prototype.features = features;
9465
+ OktaAuth.features = features;
9552
9466
  OktaAuth.crypto = crypto;
9553
9467
  OktaAuth.webauthn = webauthn;
9468
+ OktaAuth.features = OktaAuth.prototype.features = features;
9554
9469
  _Object$assign(OktaAuth, {
9555
9470
  constants: constants
9556
9471
  });