@okta/okta-auth-js 6.4.0 → 6.4.3

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 (84) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/cjs/OktaAuth.js.map +1 -1
  3. package/cjs/OktaUserAgent.js +2 -2
  4. package/cjs/ServiceManager.js +1 -1
  5. package/cjs/ServiceManager.js.map +1 -1
  6. package/cjs/TransactionManager.js +25 -13
  7. package/cjs/TransactionManager.js.map +1 -1
  8. package/cjs/crypto/node.js +11 -16
  9. package/cjs/crypto/node.js.map +1 -1
  10. package/cjs/errors/AuthApiError.js.map +1 -1
  11. package/cjs/errors/AuthSdkError.js.map +1 -1
  12. package/cjs/idx/authenticate.js.map +1 -1
  13. package/cjs/idx/authenticator/SecurityQuestionEnrollment.js +1 -1
  14. package/cjs/idx/authenticator/SecurityQuestionEnrollment.js.map +1 -1
  15. package/cjs/idx/authenticator/SecurityQuestionVerification.js +12 -1
  16. package/cjs/idx/authenticator/SecurityQuestionVerification.js.map +1 -1
  17. package/cjs/idx/cancel.js.map +1 -1
  18. package/cjs/idx/idxState/v1/generateIdxAction.js +0 -2
  19. package/cjs/idx/idxState/v1/generateIdxAction.js.map +1 -1
  20. package/cjs/idx/interact.js.map +1 -1
  21. package/cjs/idx/introspect.js +1 -1
  22. package/cjs/idx/introspect.js.map +1 -1
  23. package/cjs/idx/proceed.js.map +1 -1
  24. package/cjs/idx/recoverPassword.js.map +1 -1
  25. package/cjs/idx/register.js.map +1 -1
  26. package/cjs/idx/remediate.js +12 -12
  27. package/cjs/idx/remediate.js.map +1 -1
  28. package/cjs/idx/remediators/AuthenticatorVerificationData.js.map +1 -1
  29. package/cjs/idx/remediators/Base/Remediator.js.map +1 -1
  30. package/cjs/idx/remediators/EnrollmentChannelData.js.map +1 -1
  31. package/cjs/idx/remediators/SelectEnrollmentChannel.js.map +1 -1
  32. package/cjs/idx/run.js +33 -4
  33. package/cjs/idx/run.js.map +1 -1
  34. package/cjs/idx/startTransaction.js.map +1 -1
  35. package/cjs/idx/types/api.js +42 -0
  36. package/cjs/idx/types/api.js.map +1 -0
  37. package/cjs/idx/types/idx-js.js.map +1 -1
  38. package/cjs/idx/types/index.js +27 -51
  39. package/cjs/idx/types/index.js.map +1 -1
  40. package/cjs/idx/types/options.js +2 -0
  41. package/cjs/idx/types/options.js.map +1 -0
  42. package/cjs/idx/unlockAccount.js.map +1 -1
  43. package/cjs/oidc/exchangeCodeForTokens.js.map +1 -1
  44. package/cjs/types/Transaction.js.map +1 -1
  45. package/dist/okta-auth-js.min.js +1 -1
  46. package/dist/okta-auth-js.min.js.map +1 -1
  47. package/dist/okta-auth-js.umd.js +1 -1
  48. package/dist/okta-auth-js.umd.js.map +1 -1
  49. package/esm/esm.browser.js +93 -65
  50. package/esm/esm.browser.js.map +1 -1
  51. package/esm/esm.node.mjs +93 -65
  52. package/esm/esm.node.mjs.map +1 -1
  53. package/lib/OktaAuth.d.ts +2 -2
  54. package/lib/TransactionManager.d.ts +4 -3
  55. package/lib/errors/AuthApiError.d.ts +2 -2
  56. package/lib/errors/AuthSdkError.d.ts +2 -2
  57. package/lib/idx/authenticate.d.ts +1 -3
  58. package/lib/idx/authenticator/SecurityQuestionVerification.d.ts +1 -0
  59. package/lib/idx/cancel.d.ts +2 -3
  60. package/lib/idx/emailVerify.d.ts +1 -1
  61. package/lib/idx/idxState/v1/generateIdxAction.d.ts +2 -2
  62. package/lib/idx/interact.d.ts +1 -16
  63. package/lib/idx/introspect.d.ts +1 -7
  64. package/lib/idx/proceed.d.ts +1 -9
  65. package/lib/idx/recoverPassword.d.ts +1 -3
  66. package/lib/idx/register.d.ts +1 -3
  67. package/lib/idx/remediate.d.ts +1 -9
  68. package/lib/idx/remediators/AuthenticatorVerificationData.d.ts +1 -2
  69. package/lib/idx/remediators/Base/Remediator.d.ts +2 -2
  70. package/lib/idx/remediators/EnrollmentChannelData.d.ts +3 -3
  71. package/lib/idx/remediators/SelectEnrollmentChannel.d.ts +3 -3
  72. package/lib/idx/run.d.ts +1 -10
  73. package/lib/idx/startTransaction.d.ts +2 -3
  74. package/lib/idx/types/api.d.ts +98 -0
  75. package/lib/idx/types/idx-js.d.ts +10 -3
  76. package/lib/idx/types/index.d.ts +4 -110
  77. package/lib/idx/types/options.d.ts +44 -0
  78. package/lib/idx/unlockAccount.d.ts +1 -3
  79. package/lib/types/OAuth.d.ts +2 -0
  80. package/lib/types/OktaAuthOptions.d.ts +27 -11
  81. package/lib/types/Storage.d.ts +2 -1
  82. package/lib/types/Transaction.d.ts +8 -28
  83. package/lib/types/api.d.ts +12 -36
  84. package/package.json +4 -3
package/esm/esm.node.mjs CHANGED
@@ -3567,7 +3567,7 @@ var ServiceManager = function () {
3567
3567
  key: "start",
3568
3568
  value: function start() {
3569
3569
  if (this.started) {
3570
- this.stop();
3570
+ return;
3571
3571
  }
3572
3572
  if (this.isLeaderRequired()) {
3573
3573
  this.startElector();
@@ -4269,13 +4269,15 @@ var TransactionManager = function () {
4269
4269
  var transactionStorage = this.storageManager.getTransactionStorage();
4270
4270
  var meta = transactionStorage.getStorage();
4271
4271
  transactionStorage.clearStorage();
4272
- this.clearIdxResponse();
4273
4272
  if (this.enableSharedStorage && options.clearSharedStorage !== false) {
4274
4273
  var state = options.state || (meta === null || meta === void 0 ? void 0 : meta.state);
4275
4274
  if (state) {
4276
4275
  clearTransactionFromSharedStorage(this.storageManager, state);
4277
4276
  }
4278
4277
  }
4278
+ if (options.clearIdxResponse !== false) {
4279
+ this.clearIdxResponse();
4280
+ }
4279
4281
  if (!this.legacyWidgetSupport) {
4280
4282
  return;
4281
4283
  }
@@ -4471,9 +4473,7 @@ var TransactionManager = function () {
4471
4473
  }
4472
4474
  }, {
4473
4475
  key: "saveIdxResponse",
4474
- value: function saveIdxResponse(_ref) {
4475
- var rawIdxResponse = _ref.rawIdxResponse,
4476
- requestDidSucceed = _ref.requestDidSucceed;
4476
+ value: function saveIdxResponse(data) {
4477
4477
  if (!this.saveLastResponse) {
4478
4478
  return;
4479
4479
  }
@@ -4481,14 +4481,11 @@ var TransactionManager = function () {
4481
4481
  if (!storage) {
4482
4482
  return;
4483
4483
  }
4484
- storage.setStorage({
4485
- rawIdxResponse: rawIdxResponse,
4486
- requestDidSucceed: requestDidSucceed
4487
- });
4484
+ storage.setStorage(data);
4488
4485
  }
4489
4486
  }, {
4490
4487
  key: "loadIdxResponse",
4491
- value: function loadIdxResponse() {
4488
+ value: function loadIdxResponse(options) {
4492
4489
  if (!this.saveLastResponse) {
4493
4490
  return null;
4494
4491
  }
@@ -4500,6 +4497,16 @@ var TransactionManager = function () {
4500
4497
  if (!storedValue || !isRawIdxResponse(storedValue.rawIdxResponse)) {
4501
4498
  return null;
4502
4499
  }
4500
+ if (options) {
4501
+ var stateHandle = options.stateHandle,
4502
+ interactionHandle = options.interactionHandle;
4503
+ if (stateHandle && storedValue.stateHandle !== stateHandle) {
4504
+ return null;
4505
+ }
4506
+ if (interactionHandle && storedValue.interactionHandle !== interactionHandle) {
4507
+ return null;
4508
+ }
4509
+ }
4503
4510
  return storedValue;
4504
4511
  }
4505
4512
  }, {
@@ -5410,7 +5417,7 @@ function _introspect() {
5410
5417
  switch (_context.prev = _context.next) {
5411
5418
  case 0:
5412
5419
  options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
5413
- savedIdxResponse = authClient.transactionManager.loadIdxResponse();
5420
+ savedIdxResponse = authClient.transactionManager.loadIdxResponse(options);
5414
5421
  if (savedIdxResponse) {
5415
5422
  rawIdxResponse = savedIdxResponse.rawIdxResponse;
5416
5423
  requestDidSucceed = savedIdxResponse.requestDidSucceed;
@@ -5922,7 +5929,7 @@ var SecurityQuestionEnrollment = function (_Authenticator) {
5922
5929
  var questionKey = values.questionKey,
5923
5930
  question = values.question,
5924
5931
  answer = values.answer;
5925
- if (!questionKey && !question && !answer) {
5932
+ if (!answer || !questionKey && !question) {
5926
5933
  return;
5927
5934
  }
5928
5935
  return {
@@ -5965,7 +5972,12 @@ var SecurityQuestionVerification = function (_Authenticator) {
5965
5972
  _createClass(SecurityQuestionVerification, [{
5966
5973
  key: "canVerify",
5967
5974
  value: function canVerify(values) {
5968
- return !!values.answer;
5975
+ var credentials = values.credentials;
5976
+ if (credentials && credentials.answer) {
5977
+ return true;
5978
+ }
5979
+ var answer = values.answer;
5980
+ return !!answer;
5969
5981
  }
5970
5982
  }, {
5971
5983
  key: "mapCredentials",
@@ -7417,7 +7429,7 @@ function remediate(_x, _x2, _x3) {
7417
7429
  function _remediate() {
7418
7430
  _remediate = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(idxResponse, values, options) {
7419
7431
  var _context2;
7420
- var _idxResponse, neededToProceed, interactionCode, _options, flow, terminal, messages, remediator, actionFromValues, actionFromOptions, actions, _iterator, _step, _loop, _ret, nextStep, name, data;
7432
+ var _idxResponse, neededToProceed, interactionCode, _options, flow, remediator, actionFromValues, actionFromOptions, actions, _iterator, _step, _loop, _ret, terminal, messages, nextStep, name, data;
7421
7433
  return _regeneratorRuntime.wrap(function _callee$(_context4) {
7422
7434
  while (1) {
7423
7435
  switch (_context4.prev = _context4.next) {
@@ -7432,28 +7444,16 @@ function _remediate() {
7432
7444
  idxResponse: idxResponse
7433
7445
  });
7434
7446
  case 4:
7435
- terminal = isTerminalResponse(idxResponse);
7436
- messages = getMessagesFromResponse(idxResponse);
7437
- if (!terminal) {
7438
- _context4.next = 8;
7439
- break;
7440
- }
7441
- return _context4.abrupt("return", {
7442
- idxResponse: idxResponse,
7443
- terminal: terminal,
7444
- messages: messages
7445
- });
7446
- case 8:
7447
7447
  remediator = getRemediator(neededToProceed, values, options);
7448
7448
  actionFromValues = getActionFromValues(values, idxResponse);
7449
7449
  actionFromOptions = options.actions || [];
7450
7450
  actions = _concatInstanceProperty(_context2 = []).call(_context2, _toConsumableArray(actionFromOptions), _toConsumableArray(actionFromValues && [actionFromValues] || []));
7451
7451
  if (!actions) {
7452
- _context4.next = 32;
7452
+ _context4.next = 28;
7453
7453
  break;
7454
7454
  }
7455
7455
  _iterator = _createForOfIteratorHelper(actions);
7456
- _context4.prev = 14;
7456
+ _context4.prev = 10;
7457
7457
  _loop = _regeneratorRuntime.mark(function _loop() {
7458
7458
  var action, params, valuesWithoutExecutedAction, optionsWithoutExecutedAction, remediationAction;
7459
7459
  return _regeneratorRuntime.wrap(function _loop$(_context3) {
@@ -7540,33 +7540,45 @@ function _remediate() {
7540
7540
  }, _loop, null, [[6, 13], [21, 28]]);
7541
7541
  });
7542
7542
  _iterator.s();
7543
- case 17:
7543
+ case 13:
7544
7544
  if ((_step = _iterator.n()).done) {
7545
- _context4.next = 24;
7545
+ _context4.next = 20;
7546
7546
  break;
7547
7547
  }
7548
- return _context4.delegateYield(_loop(), "t0", 19);
7549
- case 19:
7548
+ return _context4.delegateYield(_loop(), "t0", 15);
7549
+ case 15:
7550
7550
  _ret = _context4.t0;
7551
7551
  if (!(_typeof(_ret) === "object")) {
7552
- _context4.next = 22;
7552
+ _context4.next = 18;
7553
7553
  break;
7554
7554
  }
7555
7555
  return _context4.abrupt("return", _ret.v);
7556
- case 22:
7557
- _context4.next = 17;
7556
+ case 18:
7557
+ _context4.next = 13;
7558
7558
  break;
7559
- case 24:
7560
- _context4.next = 29;
7559
+ case 20:
7560
+ _context4.next = 25;
7561
7561
  break;
7562
- case 26:
7563
- _context4.prev = 26;
7564
- _context4.t1 = _context4["catch"](14);
7562
+ case 22:
7563
+ _context4.prev = 22;
7564
+ _context4.t1 = _context4["catch"](10);
7565
7565
  _iterator.e(_context4.t1);
7566
- case 29:
7567
- _context4.prev = 29;
7566
+ case 25:
7567
+ _context4.prev = 25;
7568
7568
  _iterator.f();
7569
- return _context4.finish(29);
7569
+ return _context4.finish(25);
7570
+ case 28:
7571
+ terminal = isTerminalResponse(idxResponse);
7572
+ messages = getMessagesFromResponse(idxResponse);
7573
+ if (!terminal) {
7574
+ _context4.next = 32;
7575
+ break;
7576
+ }
7577
+ return _context4.abrupt("return", {
7578
+ idxResponse: idxResponse,
7579
+ terminal: terminal,
7580
+ messages: messages
7581
+ });
7570
7582
  case 32:
7571
7583
  if (remediator) {
7572
7584
  _context4.next = 49;
@@ -7640,7 +7652,7 @@ function _remediate() {
7640
7652
  return _context4.stop();
7641
7653
  }
7642
7654
  }
7643
- }, _callee, null, [[14, 26, 29, 32], [35, 43], [54, 64]]);
7655
+ }, _callee, null, [[10, 22, 25, 28], [35, 43], [54, 64]]);
7644
7656
  }));
7645
7657
  return _remediate.apply(this, arguments);
7646
7658
  }
@@ -7929,65 +7941,77 @@ function finalizeData(_x6, _x7) {
7929
7941
  }
7930
7942
  function _finalizeData() {
7931
7943
  _finalizeData = _asyncToGenerator( _regeneratorRuntime.mark(function _callee4(authClient, data) {
7932
- var options, idxResponse, canceled, status, exchangeCodeForTokens, shouldClearTransaction, clearSharedStorage, interactionCode, tokens, enabledFeatures, availableSteps, messages, terminal;
7944
+ var options, idxResponse, canceled, status, exchangeCodeForTokens, shouldSaveResponse, shouldClearTransaction, clearSharedStorage, interactionCode, tokens, enabledFeatures, availableSteps, messages, terminal, hasActions, hasErrors, isTerminalSuccess;
7933
7945
  return _regeneratorRuntime.wrap(function _callee4$(_context4) {
7934
7946
  while (1) {
7935
7947
  switch (_context4.prev = _context4.next) {
7936
7948
  case 0:
7937
7949
  options = data.options, idxResponse = data.idxResponse, canceled = data.canceled, status = data.status;
7938
7950
  exchangeCodeForTokens = options.exchangeCodeForTokens;
7951
+ shouldSaveResponse = false;
7939
7952
  shouldClearTransaction = false;
7940
7953
  clearSharedStorage = true;
7941
7954
  if (idxResponse) {
7955
+ shouldSaveResponse = !!(idxResponse.requestDidSucceed || idxResponse.stepUp);
7942
7956
  enabledFeatures = getEnabledFeatures(idxResponse);
7943
7957
  availableSteps = getAvailableSteps(idxResponse);
7944
7958
  messages = getMessagesFromResponse(idxResponse);
7945
7959
  terminal = isTerminalResponse(idxResponse);
7946
7960
  }
7947
7961
  if (!terminal) {
7948
- _context4.next = 11;
7962
+ _context4.next = 15;
7949
7963
  break;
7950
7964
  }
7951
7965
  status = IdxStatus.TERMINAL;
7952
- shouldClearTransaction = true;
7966
+ hasActions = _Object$keys(idxResponse.actions).length > 0;
7967
+ hasErrors = !!_findInstanceProperty(messages).call(messages, function (msg) {
7968
+ return msg.class === 'ERROR';
7969
+ });
7970
+ isTerminalSuccess = !hasActions && !hasErrors && idxResponse.requestDidSucceed === true;
7971
+ if (isTerminalSuccess) {
7972
+ shouldClearTransaction = true;
7973
+ } else {
7974
+ shouldSaveResponse = shouldSaveResponse && hasActions;
7975
+ }
7953
7976
  clearSharedStorage = false;
7954
- _context4.next = 28;
7977
+ _context4.next = 32;
7955
7978
  break;
7956
- case 11:
7979
+ case 15:
7957
7980
  if (!canceled) {
7958
- _context4.next = 16;
7981
+ _context4.next = 20;
7959
7982
  break;
7960
7983
  }
7961
7984
  status = IdxStatus.CANCELED;
7962
7985
  shouldClearTransaction = true;
7963
- _context4.next = 28;
7986
+ _context4.next = 32;
7964
7987
  break;
7965
- case 16:
7988
+ case 20:
7966
7989
  if (!(idxResponse === null || idxResponse === void 0 ? void 0 : idxResponse.interactionCode)) {
7967
- _context4.next = 28;
7990
+ _context4.next = 32;
7968
7991
  break;
7969
7992
  }
7970
7993
  interactionCode = idxResponse.interactionCode;
7971
7994
  if (!(exchangeCodeForTokens === false)) {
7972
- _context4.next = 23;
7995
+ _context4.next = 27;
7973
7996
  break;
7974
7997
  }
7975
7998
  status = IdxStatus.SUCCESS;
7976
7999
  shouldClearTransaction = false;
7977
- _context4.next = 28;
8000
+ _context4.next = 32;
7978
8001
  break;
7979
- case 23:
7980
- _context4.next = 25;
8002
+ case 27:
8003
+ _context4.next = 29;
7981
8004
  return getTokens(authClient, data);
7982
- case 25:
8005
+ case 29:
7983
8006
  tokens = _context4.sent;
7984
8007
  status = IdxStatus.SUCCESS;
7985
8008
  shouldClearTransaction = true;
7986
- case 28:
8009
+ case 32:
7987
8010
  return _context4.abrupt("return", _Object$assign(_Object$assign({}, data), {
7988
8011
  status: status,
7989
8012
  interactionCode: interactionCode,
7990
8013
  tokens: tokens,
8014
+ shouldSaveResponse: shouldSaveResponse,
7991
8015
  shouldClearTransaction: shouldClearTransaction,
7992
8016
  clearSharedStorage: clearSharedStorage,
7993
8017
  enabledFeatures: enabledFeatures,
@@ -7995,7 +8019,7 @@ function _finalizeData() {
7995
8019
  messages: messages,
7996
8020
  terminal: terminal
7997
8021
  }));
7998
- case 29:
8022
+ case 33:
7999
8023
  case "end":
8000
8024
  return _context4.stop();
8001
8025
  }
@@ -8027,10 +8051,12 @@ function run(_x8) {
8027
8051
  function _run() {
8028
8052
  _run = _asyncToGenerator( _regeneratorRuntime.mark(function _callee5(authClient) {
8029
8053
  var options,
8054
+ _a,
8030
8055
  data,
8031
8056
  _data,
8032
8057
  idxResponse,
8033
8058
  meta,
8059
+ shouldSaveResponse,
8034
8060
  shouldClearTransaction,
8035
8061
  clearSharedStorage,
8036
8062
  status,
@@ -8081,18 +8107,20 @@ function _run() {
8081
8107
  return finalizeData(authClient, data);
8082
8108
  case 17:
8083
8109
  data = _context5.sent;
8084
- _data = data, idxResponse = _data.idxResponse, meta = _data.meta, shouldClearTransaction = _data.shouldClearTransaction, clearSharedStorage = _data.clearSharedStorage, status = _data.status, enabledFeatures = _data.enabledFeatures, availableSteps = _data.availableSteps, tokens = _data.tokens, nextStep = _data.nextStep, messages = _data.messages, error = _data.error, interactionCode = _data.interactionCode;
8110
+ _data = data, idxResponse = _data.idxResponse, meta = _data.meta, shouldSaveResponse = _data.shouldSaveResponse, shouldClearTransaction = _data.shouldClearTransaction, clearSharedStorage = _data.clearSharedStorage, status = _data.status, enabledFeatures = _data.enabledFeatures, availableSteps = _data.availableSteps, tokens = _data.tokens, nextStep = _data.nextStep, messages = _data.messages, error = _data.error, interactionCode = _data.interactionCode;
8085
8111
  if (shouldClearTransaction) {
8086
8112
  authClient.transactionManager.clear({
8087
8113
  clearSharedStorage: clearSharedStorage
8088
8114
  });
8089
8115
  } else {
8090
8116
  saveTransactionMeta(authClient, _Object$assign({}, meta));
8091
- if (idxResponse) {
8117
+ if (shouldSaveResponse) {
8092
8118
  rawIdxResponse = idxResponse.rawIdxState, _requestDidSucceed = idxResponse.requestDidSucceed;
8093
8119
  authClient.transactionManager.saveIdxResponse({
8094
8120
  rawIdxResponse: rawIdxResponse,
8095
- requestDidSucceed: _requestDidSucceed
8121
+ requestDidSucceed: _requestDidSucceed,
8122
+ stateHandle: (_a = idxResponse.context) === null || _a === void 0 ? void 0 : _a.stateHandle,
8123
+ interactionHandle: meta === null || meta === void 0 ? void 0 : meta.interactionHandle
8096
8124
  });
8097
8125
  }
8098
8126
  }
@@ -8584,7 +8612,7 @@ function _unlockAccount() {
8584
8612
  var OktaUserAgent = function () {
8585
8613
  function OktaUserAgent() {
8586
8614
  _classCallCheck(this, OktaUserAgent);
8587
- this.environments = ["okta-auth-js/".concat("6.4.0")];
8615
+ this.environments = ["okta-auth-js/".concat("6.4.3")];
8588
8616
  }
8589
8617
  _createClass(OktaUserAgent, [{
8590
8618
  key: "addEnvironment",
@@ -8602,7 +8630,7 @@ var OktaUserAgent = function () {
8602
8630
  }, {
8603
8631
  key: "getVersion",
8604
8632
  value: function getVersion() {
8605
- return "6.4.0";
8633
+ return "6.4.3";
8606
8634
  }
8607
8635
  }, {
8608
8636
  key: "maybeAddNodeEnvironment",