@okta/okta-auth-js 6.7.1 → 6.7.4

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 (32) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/cjs/OktaUserAgent.js +2 -2
  3. package/cjs/idx/flow/AuthenticationFlow.js +2 -0
  4. package/cjs/idx/flow/AuthenticationFlow.js.map +1 -1
  5. package/cjs/idx/remediators/GenericRemediator/GenericRemediator.js +19 -17
  6. package/cjs/idx/remediators/GenericRemediator/GenericRemediator.js.map +1 -1
  7. package/cjs/idx/remediators/SelectEnrollmentChannel.js +24 -3
  8. package/cjs/idx/remediators/SelectEnrollmentChannel.js.map +1 -1
  9. package/cjs/idx/types/api.js.map +1 -1
  10. package/dist/okta-auth-js.min.js +1 -1
  11. package/dist/okta-auth-js.min.js.map +1 -1
  12. package/dist/okta-auth-js.umd.js +1 -1
  13. package/dist/okta-auth-js.umd.js.map +1 -1
  14. package/esm/browser/OktaUserAgent.js +2 -2
  15. package/esm/browser/idx/flow/AuthenticationFlow.js +4 -2
  16. package/esm/browser/idx/flow/AuthenticationFlow.js.map +1 -1
  17. package/esm/browser/idx/remediators/GenericRemediator/GenericRemediator.js +7 -4
  18. package/esm/browser/idx/remediators/GenericRemediator/GenericRemediator.js.map +1 -1
  19. package/esm/browser/idx/remediators/SelectEnrollmentChannel.js +16 -3
  20. package/esm/browser/idx/remediators/SelectEnrollmentChannel.js.map +1 -1
  21. package/esm/browser/idx/types/api.js.map +1 -1
  22. package/esm/node/OktaUserAgent.js +2 -2
  23. package/esm/node/idx/flow/AuthenticationFlow.js +4 -2
  24. package/esm/node/idx/flow/AuthenticationFlow.js.map +1 -1
  25. package/esm/node/idx/remediators/GenericRemediator/GenericRemediator.js +7 -4
  26. package/esm/node/idx/remediators/GenericRemediator/GenericRemediator.js.map +1 -1
  27. package/esm/node/idx/remediators/SelectEnrollmentChannel.js +16 -3
  28. package/esm/node/idx/remediators/SelectEnrollmentChannel.js.map +1 -1
  29. package/esm/node/idx/types/api.js.map +1 -1
  30. package/lib/idx/remediators/SelectEnrollmentChannel.d.ts +6 -6
  31. package/lib/idx/types/api.d.ts +1 -0
  32. package/package.json +4 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## 6.7.4
4
+
5
+ ### Fixes
6
+ - [#1263](https://github.com/okta/okta-auth-js/pull/1263) (IDX) `select-enrollment-channel` remediation now accepts protocol defined inputs, as well as conveniences
7
+ - [#1262](https://github.com/okta/okta-auth-js/pull/1262) Freezes `broadcast-channel` version at `4.13.0`, `4.14.0` requires node 14+
8
+
9
+ ## 6.7.3
10
+
11
+ - [#1264](https://github.com/okta/okta-auth-js/pull/1264) IDX GenericRemediator patches (beta):
12
+ - allows proceeding when `options.step` is available
13
+
14
+ ## 6.7.2
15
+
16
+ ### Fixes
17
+
18
+ - [#1251](https://github.com/okta/okta-auth-js/pull/1251) IDX GenericRemediator patches (beta):
19
+ - allows flow entry point requests
20
+
3
21
  ## 6.7.1
4
22
 
5
23
  ### Fixes
@@ -10,6 +28,8 @@
10
28
  - adds missing types to `IdxAuthenticator`
11
29
  - adds missing action meta to `IdxTransaction.availableSteps`
12
30
 
31
+ - [#1247](https://github.com/okta/okta-auth-js/pull/1247) - Fixes OV enrollment flow issue in authentication flow.
32
+
13
33
  ## 6.7.0
14
34
 
15
35
  ### Features
@@ -21,7 +21,7 @@ var _features = require("./features");
21
21
  class OktaUserAgent {
22
22
  constructor() {
23
23
  // add base sdk env
24
- this.environments = [`okta-auth-js/${"6.7.1"}`];
24
+ this.environments = [`okta-auth-js/${"6.7.4"}`];
25
25
  }
26
26
 
27
27
  addEnvironment(env) {
@@ -36,7 +36,7 @@ class OktaUserAgent {
36
36
  }
37
37
 
38
38
  getVersion() {
39
- return "6.7.1";
39
+ return "6.7.4";
40
40
  }
41
41
 
42
42
  maybeAddNodeEnvironment() {
@@ -26,6 +26,8 @@ const AuthenticationFlow = {
26
26
  'challenge-poll': _remediators.ChallengePoll,
27
27
  'reenroll-authenticator': _remediators.ReEnrollAuthenticator,
28
28
  'enroll-poll': _remediators.EnrollPoll,
29
+ 'select-enrollment-channel': _remediators.SelectEnrollmentChannel,
30
+ 'enrollment-channel-data': _remediators.EnrollmentChannelData,
29
31
  'redirect-idp': _remediators.RedirectIdp,
30
32
  'skip': _remediators.Skip
31
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"AuthenticationFlow.js","names":["AuthenticationFlow","Identify","SelectAuthenticatorAuthenticate","SelectAuthenticatorEnroll","AuthenticatorEnrollmentData","AuthenticatorVerificationData","EnrollAuthenticator","ChallengeAuthenticator","ChallengePoll","ReEnrollAuthenticator","EnrollPoll","RedirectIdp","Skip"],"sources":["../../../../lib/idx/flow/AuthenticationFlow.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { RemediationFlow } from './RemediationFlow';\nimport { \n Identify,\n SelectAuthenticatorAuthenticate,\n ChallengeAuthenticator,\n ReEnrollAuthenticator,\n RedirectIdp,\n AuthenticatorEnrollmentData,\n SelectAuthenticatorEnroll,\n EnrollAuthenticator,\n AuthenticatorVerificationData,\n EnrollPoll,\n ChallengePoll, \n Skip\n} from '../remediators';\n\nexport const AuthenticationFlow: RemediationFlow = {\n 'identify': Identify,\n 'select-authenticator-authenticate': SelectAuthenticatorAuthenticate,\n 'select-authenticator-enroll': SelectAuthenticatorEnroll,\n 'authenticator-enrollment-data': AuthenticatorEnrollmentData,\n 'authenticator-verification-data': AuthenticatorVerificationData,\n 'enroll-authenticator': EnrollAuthenticator,\n 'challenge-authenticator': ChallengeAuthenticator,\n 'challenge-poll': ChallengePoll,\n 'reenroll-authenticator': ReEnrollAuthenticator,\n 'enroll-poll': EnrollPoll,\n 'redirect-idp': RedirectIdp,\n 'skip': Skip,\n};\n"],"mappings":";;;;AAcA;;AAdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAmBO,MAAMA,kBAAmC,GAAG;EACjD,YAAYC,qBADqC;EAEjD,qCAAqCC,4CAFY;EAGjD,+BAA+BC,sCAHkB;EAIjD,iCAAiCC,wCAJgB;EAKjD,mCAAmCC,0CALc;EAMjD,wBAAwBC,gCANyB;EAOjD,2BAA2BC,mCAPsB;EAQjD,kBAAkBC,0BAR+B;EASjD,0BAA0BC,kCATuB;EAUjD,eAAeC,uBAVkC;EAWjD,gBAAgBC,wBAXiC;EAYjD,QAAQC;AAZyC,CAA5C"}
1
+ {"version":3,"file":"AuthenticationFlow.js","names":["AuthenticationFlow","Identify","SelectAuthenticatorAuthenticate","SelectAuthenticatorEnroll","AuthenticatorEnrollmentData","AuthenticatorVerificationData","EnrollAuthenticator","ChallengeAuthenticator","ChallengePoll","ReEnrollAuthenticator","EnrollPoll","SelectEnrollmentChannel","EnrollmentChannelData","RedirectIdp","Skip"],"sources":["../../../../lib/idx/flow/AuthenticationFlow.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { RemediationFlow } from './RemediationFlow';\nimport { \n Identify,\n SelectAuthenticatorAuthenticate,\n ChallengeAuthenticator,\n ReEnrollAuthenticator,\n RedirectIdp,\n AuthenticatorEnrollmentData,\n SelectAuthenticatorEnroll,\n EnrollAuthenticator,\n AuthenticatorVerificationData,\n EnrollPoll,\n ChallengePoll,\n SelectEnrollmentChannel,\n EnrollmentChannelData,\n Skip\n} from '../remediators';\n\nexport const AuthenticationFlow: RemediationFlow = {\n 'identify': Identify,\n 'select-authenticator-authenticate': SelectAuthenticatorAuthenticate,\n 'select-authenticator-enroll': SelectAuthenticatorEnroll,\n 'authenticator-enrollment-data': AuthenticatorEnrollmentData,\n 'authenticator-verification-data': AuthenticatorVerificationData,\n 'enroll-authenticator': EnrollAuthenticator,\n 'challenge-authenticator': ChallengeAuthenticator,\n 'challenge-poll': ChallengePoll,\n 'reenroll-authenticator': ReEnrollAuthenticator,\n 'enroll-poll': EnrollPoll,\n 'select-enrollment-channel': SelectEnrollmentChannel,\n 'enrollment-channel-data': EnrollmentChannelData,\n 'redirect-idp': RedirectIdp,\n 'skip': Skip,\n};\n"],"mappings":";;;;AAcA;;AAdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAqBO,MAAMA,kBAAmC,GAAG;EACjD,YAAYC,qBADqC;EAEjD,qCAAqCC,4CAFY;EAGjD,+BAA+BC,sCAHkB;EAIjD,iCAAiCC,wCAJgB;EAKjD,mCAAmCC,0CALc;EAMjD,wBAAwBC,gCANyB;EAOjD,2BAA2BC,mCAPsB;EAQjD,kBAAkBC,0BAR+B;EASjD,0BAA0BC,kCATuB;EAUjD,eAAeC,uBAVkC;EAWjD,6BAA6BC,oCAXoB;EAYjD,2BAA2BC,kCAZsB;EAajD,gBAAgBC,wBAbiC;EAcjD,QAAQC;AAdyC,CAA5C"}
@@ -4,15 +4,13 @@ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequ
4
4
 
5
5
  exports.GenericRemediator = void 0;
6
6
 
7
- var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
7
+ var _endsWith = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/ends-with"));
8
8
 
9
9
  var _reduce = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/reduce"));
10
10
 
11
- var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
12
-
13
11
  var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/values"));
14
12
 
15
- var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
13
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
16
14
 
17
15
  var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
18
16
 
@@ -22,12 +20,12 @@ var _util = require("./util");
22
20
 
23
21
  class GenericRemediator extends _Remediator.Remediator {
24
22
  canRemediate() {
25
- var _context2, _context3;
23
+ var _context2;
26
24
 
27
25
  // only handle remediations that are able to submit form (xhr)
28
26
  if (typeof this.remediation.action !== 'function') {
29
27
  return false;
30
- } // DO NOT REMOVE - bring it back when enable client side validation for GenericRemediator
28
+ } // DO NOT REMOVE - bring it back when enable client side validation for GenericRemediator - OKTA-512003
31
29
  // const inputs = this.getInputs();
32
30
  // const res = inputs.reduce((acc, input) => {
33
31
  // return acc && hasValidInputValue(input, this.values);
@@ -35,18 +33,22 @@ class GenericRemediator extends _Remediator.Remediator {
35
33
  // return res;
36
34
 
37
35
 
38
- const inputKeys = (0, _map.default)(_context2 = this.getInputs()).call(_context2, ({
39
- name
40
- }) => name);
41
- return (0, _reduce.default)(_context3 = (0, _keys.default)((0, _values.default)(this))).call(_context3, (acc, curr) => {
42
- return acc || (0, _includes.default)(inputKeys).call(inputKeys, curr);
43
- }, false);
36
+ if (this.remediation.name === 'poll' || (0, _endsWith.default)(_context2 = this.remediation.name).call(_context2, '-poll')) {
37
+ return true;
38
+ }
39
+
40
+ if (this.options.step) {
41
+ return true;
42
+ } // disable auto proceed for unknown remediations
43
+
44
+
45
+ return false;
44
46
  }
45
47
 
46
48
  getData() {
47
- var _context4;
49
+ var _context3;
48
50
 
49
- const data = (0, _reduce.default)(_context4 = this.getInputs()).call(_context4, (acc, {
51
+ const data = (0, _reduce.default)(_context3 = this.getInputs()).call(_context3, (acc, {
50
52
  name
51
53
  }) => {
52
54
  acc[name] = (0, _values.default)(this)[name];
@@ -97,11 +99,11 @@ class GenericRemediator extends _Remediator.Remediator {
97
99
  }
98
100
 
99
101
  getInputs() {
100
- var _context5, _context6, _context7;
102
+ var _context4, _context5, _context6;
101
103
 
102
- return (0, _map.default)(_context5 = (0, _map.default)(_context6 = (0, _filter.default)(_context7 = this.remediation.value || []).call(_context7, ({
104
+ return (0, _map.default)(_context4 = (0, _map.default)(_context5 = (0, _filter.default)(_context6 = this.remediation.value || []).call(_context6, ({
103
105
  name
104
- }) => name !== 'stateHandle')).call(_context6, _util.unwrapFormValue)).call(_context5, input => {
106
+ }) => name !== 'stateHandle')).call(_context5, _util.unwrapFormValue)).call(_context4, input => {
105
107
  // use string as default input type
106
108
  input.type = input.type || 'string';
107
109
  return input;
@@ -1 +1 @@
1
- {"version":3,"file":"GenericRemediator.js","names":["GenericRemediator","Remediator","canRemediate","remediation","action","inputKeys","getInputs","name","acc","curr","getData","data","getNextStep","authClient","_context","getName","inputs","href","method","rel","accepts","produces","value","rest","length","params","idx","proceed","step","unwrapFormValue","input","type"],"sources":["../../../../../lib/idx/remediators/GenericRemediator/GenericRemediator.ts"],"sourcesContent":["import { IdxContext, NextStep, Input } from '../../types';\nimport { Remediator } from '../Base/Remediator';\nimport { unwrapFormValue } from './util';\nimport { OktaAuthIdxInterface } from '../../../types';\n\nexport class GenericRemediator extends Remediator {\n canRemediate(): boolean {\n // only handle remediations that are able to submit form (xhr)\n if (typeof this.remediation.action !== 'function') {\n return false;\n }\n\n // DO NOT REMOVE - bring it back when enable client side validation for GenericRemediator\n // const inputs = this.getInputs();\n // const res = inputs.reduce((acc, input) => {\n // return acc && hasValidInputValue(input, this.values);\n // }, true);\n // return res;\n \n const inputKeys = this.getInputs().map(({ name }) => name);\n return Object.keys(this.values).reduce((acc: boolean, curr) => {\n return acc || inputKeys.includes(curr);\n }, false);\n }\n\n getData() {\n const data = this.getInputs().reduce((acc, { name }) => {\n acc[name] = this.values[name];\n return acc;\n }, {});\n return data;\n }\n\n getNextStep(authClient: OktaAuthIdxInterface, _context?: IdxContext): NextStep {\n const name = this.getName();\n const inputs = this.getInputs();\n \n /* eslint-disable no-unused-vars, @typescript-eslint/no-unused-vars */\n // excludes transformed fields\n const { \n // http metas have been transformed to action\n href, \n method, \n rel, \n accepts, \n produces, \n // value has been transform to inputs\n value,\n // will be transformed to a function that resolves IdxTransaction\n action,\n ...rest \n } = this.remediation;\n /* eslint-enable no-unused-vars, @typescript-eslint/no-unused-vars */\n\n // step to handle form submission\n if (action) {\n return { \n ...rest,\n ...(!!inputs.length && { inputs }),\n action: async (params?) => {\n return authClient.idx.proceed({\n step: name,\n ...params\n });\n }\n };\n }\n\n // return whole remediation data for other steps, eg \"redirect-idp\"\n return { ...this.remediation } as NextStep;\n \n }\n\n getInputs(): Input[] {\n return (this.remediation.value || [])\n .filter(({ name }) => name !== 'stateHandle')\n .map(unwrapFormValue)\n .map(input => {\n // use string as default input type\n input.type = input.type || 'string';\n return input;\n });\n }\n\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AACA;;AACA;;AAGO,MAAMA,iBAAN,SAAgCC,sBAAhC,CAA2C;EAChDC,YAAY,GAAY;IAAA;;IACtB;IACA,IAAI,OAAO,KAAKC,WAAL,CAAiBC,MAAxB,KAAmC,UAAvC,EAAmD;MACjD,OAAO,KAAP;IACD,CAJqB,CAMtB;IACA;IACA;IACA;IACA;IACA;;;IAEA,MAAMC,SAAS,GAAG,mCAAKC,SAAL,oBAAqB,CAAC;MAAEC;IAAF,CAAD,KAAcA,IAAnC,CAAlB;IACA,OAAO,yEAAY,IAAZ,oBAAgC,CAACC,GAAD,EAAeC,IAAf,KAAwB;MAC7D,OAAOD,GAAG,IAAI,uBAAAH,SAAS,MAAT,CAAAA,SAAS,EAAUI,IAAV,CAAvB;IACD,CAFM,EAEJ,KAFI,CAAP;EAGD;;EAEDC,OAAO,GAAG;IAAA;;IACR,MAAMC,IAAI,GAAG,sCAAKL,SAAL,oBAAwB,CAACE,GAAD,EAAM;MAAED;IAAF,CAAN,KAAmB;MACtDC,GAAG,CAACD,IAAD,CAAH,GAAY,2BAAYA,IAAZ,CAAZ;MACA,OAAOC,GAAP;IACD,CAHY,EAGV,EAHU,CAAb;IAIA,OAAOG,IAAP;EACD;;EAEDC,WAAW,CAACC,UAAD,EAAmCC,QAAnC,EAAoE;IAC7E,MAAMP,IAAI,GAAG,KAAKQ,OAAL,EAAb;IACA,MAAMC,MAAM,GAAG,KAAKV,SAAL,EAAf;IAEA;IACA;;IACA,MAAM;MACJ;MACAW,IAFI;MAGJC,MAHI;MAIJC,GAJI;MAKJC,OALI;MAMJC,QANI;MAOJ;MACAC,KARI;MASJ;MACAlB,MAVI;MAWJ,GAAGmB;IAXC,IAYF,KAAKpB,WAZT;IAaA;IAEA;;IACA,IAAIC,MAAJ,EAAY;MACV,OAAO,EACL,GAAGmB,IADE;QAEL,IAAI,CAAC,CAACP,MAAM,CAACQ,MAAT,IAAmB;UAAER;QAAF,CAAvB,CAFK;QAGLZ,MAAM,EAAE,MAAOqB,MAAP,IAAmB;UACzB,OAAOZ,UAAU,CAACa,GAAX,CAAeC,OAAf,CAAuB;YAC5BC,IAAI,EAAErB,IADsB;YAE5B,GAAGkB;UAFyB,CAAvB,CAAP;QAID;MARI,CAAP;IAUD,CAjC4E,CAmC7E;;;IACA,OAAO,EAAE,GAAG,KAAKtB;IAAV,CAAP;EAED;;EAEDG,SAAS,GAAY;IAAA;;IACnB,OAAO,6FAAC,KAAKH,WAAL,CAAiBmB,KAAjB,IAA0B,EAA3B,kBACG,CAAC;MAAEf;IAAF,CAAD,KAAcA,IAAI,KAAK,aAD1B,mBAEAsB,qBAFA,mBAGAC,KAAK,IAAI;MACZ;MACAA,KAAK,CAACC,IAAN,GAAaD,KAAK,CAACC,IAAN,IAAc,QAA3B;MACA,OAAOD,KAAP;IACD,CAPI,CAAP;EAQD;;AA7E+C"}
1
+ {"version":3,"file":"GenericRemediator.js","names":["GenericRemediator","Remediator","canRemediate","remediation","action","name","options","step","getData","data","getInputs","acc","getNextStep","authClient","_context","getName","inputs","href","method","rel","accepts","produces","value","rest","length","params","idx","proceed","unwrapFormValue","input","type"],"sources":["../../../../../lib/idx/remediators/GenericRemediator/GenericRemediator.ts"],"sourcesContent":["import { IdxContext, NextStep, Input } from '../../types';\nimport { Remediator } from '../Base/Remediator';\nimport { unwrapFormValue } from './util';\nimport { OktaAuthIdxInterface } from '../../../types';\n\nexport class GenericRemediator extends Remediator {\n canRemediate(): boolean {\n // only handle remediations that are able to submit form (xhr)\n if (typeof this.remediation.action !== 'function') {\n return false;\n }\n\n // DO NOT REMOVE - bring it back when enable client side validation for GenericRemediator - OKTA-512003\n // const inputs = this.getInputs();\n // const res = inputs.reduce((acc, input) => {\n // return acc && hasValidInputValue(input, this.values);\n // }, true);\n // return res;\n\n if (this.remediation.name === 'poll' || this.remediation.name.endsWith('-poll')) {\n return true;\n }\n\n if (this.options.step) {\n return true;\n }\n \n // disable auto proceed for unknown remediations\n return false;\n }\n\n getData() {\n const data = this.getInputs().reduce((acc, { name }) => {\n acc[name] = this.values[name];\n return acc;\n }, {});\n return data;\n }\n\n getNextStep(authClient: OktaAuthIdxInterface, _context?: IdxContext): NextStep {\n const name = this.getName();\n const inputs = this.getInputs();\n \n /* eslint-disable no-unused-vars, @typescript-eslint/no-unused-vars */\n // excludes transformed fields\n const { \n // http metas have been transformed to action\n href, \n method, \n rel, \n accepts, \n produces, \n // value has been transform to inputs\n value,\n // will be transformed to a function that resolves IdxTransaction\n action,\n ...rest \n } = this.remediation;\n /* eslint-enable no-unused-vars, @typescript-eslint/no-unused-vars */\n\n // step to handle form submission\n if (action) {\n return { \n ...rest,\n ...(!!inputs.length && { inputs }),\n action: async (params?) => {\n return authClient.idx.proceed({\n step: name,\n ...params\n });\n }\n };\n }\n\n // return whole remediation data for other steps, eg \"redirect-idp\"\n return { ...this.remediation } as NextStep;\n \n }\n\n getInputs(): Input[] {\n return (this.remediation.value || [])\n .filter(({ name }) => name !== 'stateHandle')\n .map(unwrapFormValue)\n .map(input => {\n // use string as default input type\n input.type = input.type || 'string';\n return input;\n });\n }\n\n}\n"],"mappings":";;;;;;;;;;;;;;;;AACA;;AACA;;AAGO,MAAMA,iBAAN,SAAgCC,sBAAhC,CAA2C;EAChDC,YAAY,GAAY;IAAA;;IACtB;IACA,IAAI,OAAO,KAAKC,WAAL,CAAiBC,MAAxB,KAAmC,UAAvC,EAAmD;MACjD,OAAO,KAAP;IACD,CAJqB,CAMtB;IACA;IACA;IACA;IACA;IACA;;;IAEA,IAAI,KAAKD,WAAL,CAAiBE,IAAjB,KAA0B,MAA1B,IAAoC,wCAAKF,WAAL,CAAiBE,IAAjB,kBAA+B,OAA/B,CAAxC,EAAiF;MAC/E,OAAO,IAAP;IACD;;IAED,IAAI,KAAKC,OAAL,CAAaC,IAAjB,EAAuB;MACrB,OAAO,IAAP;IACD,CAnBqB,CAqBtB;;;IACA,OAAO,KAAP;EACD;;EAEDC,OAAO,GAAG;IAAA;;IACR,MAAMC,IAAI,GAAG,sCAAKC,SAAL,oBAAwB,CAACC,GAAD,EAAM;MAAEN;IAAF,CAAN,KAAmB;MACtDM,GAAG,CAACN,IAAD,CAAH,GAAY,2BAAYA,IAAZ,CAAZ;MACA,OAAOM,GAAP;IACD,CAHY,EAGV,EAHU,CAAb;IAIA,OAAOF,IAAP;EACD;;EAEDG,WAAW,CAACC,UAAD,EAAmCC,QAAnC,EAAoE;IAC7E,MAAMT,IAAI,GAAG,KAAKU,OAAL,EAAb;IACA,MAAMC,MAAM,GAAG,KAAKN,SAAL,EAAf;IAEA;IACA;;IACA,MAAM;MACJ;MACAO,IAFI;MAGJC,MAHI;MAIJC,GAJI;MAKJC,OALI;MAMJC,QANI;MAOJ;MACAC,KARI;MASJ;MACAlB,MAVI;MAWJ,GAAGmB;IAXC,IAYF,KAAKpB,WAZT;IAaA;IAEA;;IACA,IAAIC,MAAJ,EAAY;MACV,OAAO,EACL,GAAGmB,IADE;QAEL,IAAI,CAAC,CAACP,MAAM,CAACQ,MAAT,IAAmB;UAAER;QAAF,CAAvB,CAFK;QAGLZ,MAAM,EAAE,MAAOqB,MAAP,IAAmB;UACzB,OAAOZ,UAAU,CAACa,GAAX,CAAeC,OAAf,CAAuB;YAC5BpB,IAAI,EAAEF,IADsB;YAE5B,GAAGoB;UAFyB,CAAvB,CAAP;QAID;MARI,CAAP;IAUD,CAjC4E,CAmC7E;;;IACA,OAAO,EAAE,GAAG,KAAKtB;IAAV,CAAP;EAED;;EAEDO,SAAS,GAAY;IAAA;;IACnB,OAAO,6FAAC,KAAKP,WAAL,CAAiBmB,KAAjB,IAA0B,EAA3B,kBACG,CAAC;MAAEjB;IAAF,CAAD,KAAcA,IAAI,KAAK,aAD1B,mBAEAuB,qBAFA,mBAGAC,KAAK,IAAI;MACZ;MACAA,KAAK,CAACC,IAAN,GAAaD,KAAK,CAACC,IAAN,IAAc,QAA3B;MACA,OAAOD,KAAP;IACD,CAPI,CAAP;EAQD;;AAnF+C"}
@@ -33,7 +33,22 @@ var _util = require("./util");
33
33
  */
34
34
  class SelectEnrollmentChannel extends _Remediator.Remediator {
35
35
  canRemediate() {
36
- return Boolean((0, _values.default)(this).channel);
36
+ if ((0, _values.default)(this).channel) {
37
+ return true;
38
+ }
39
+
40
+ if ((0, _values.default)(this).authenticator) {
41
+ const {
42
+ id,
43
+ channel
44
+ } = (0, _values.default)(this).authenticator;
45
+
46
+ if (!!id && !!channel) {
47
+ return true;
48
+ }
49
+ }
50
+
51
+ return false;
37
52
  }
38
53
 
39
54
  getNextStep(authClient, context) {
@@ -60,12 +75,14 @@ class SelectEnrollmentChannel extends _Remediator.Remediator {
60
75
  }
61
76
 
62
77
  getData() {
78
+ var _this$values$authenti;
79
+
63
80
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
64
81
  const remediationValue = this.remediation.value[0].value;
65
82
  return {
66
83
  authenticator: {
67
84
  id: remediationValue.form.value[0].value,
68
- channel: (0, _values.default)(this).channel
85
+ channel: ((_this$values$authenti = (0, _values.default)(this).authenticator) === null || _this$values$authenti === void 0 ? void 0 : _this$values$authenti.channel) || (0, _values.default)(this).channel
69
86
  },
70
87
  stateHandle: (0, _values.default)(this).stateHandle
71
88
  };
@@ -74,7 +91,11 @@ class SelectEnrollmentChannel extends _Remediator.Remediator {
74
91
  getValuesAfterProceed() {
75
92
  var _context2;
76
93
 
77
- let trimmedValues = (0, _filter.default)(_context2 = (0, _keys.default)((0, _values.default)(this))).call(_context2, valueKey => valueKey !== 'channel');
94
+ this.values = super.getValuesAfterProceed();
95
+ delete (0, _values.default)(this).authenticators; // required to prevent infinite loops from auto-remediating via values
96
+
97
+ const filterKey = (0, _values.default)(this).channel ? 'channel' : 'authenticator';
98
+ let trimmedValues = (0, _filter.default)(_context2 = (0, _keys.default)((0, _values.default)(this))).call(_context2, valueKey => valueKey !== filterKey);
78
99
  return (0, _reduce.default)(trimmedValues).call(trimmedValues, (values, valueKey) => ({ ...values,
79
100
  [valueKey]: (0, _values.default)(this)[valueKey]
80
101
  }), {});
@@ -1 +1 @@
1
- {"version":3,"file":"SelectEnrollmentChannel.js","names":["SelectEnrollmentChannel","Remediator","canRemediate","Boolean","channel","getNextStep","authClient","context","common","options","getChannels","authenticator","currentAuthenticator","value","remediation","remediationValue","form","name","getData","id","stateHandle","getValuesAfterProceed","trimmedValues","valueKey","values"],"sources":["../../../../lib/idx/remediators/SelectEnrollmentChannel.ts"],"sourcesContent":["/*!\n * Copyright (c) 2021-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { Remediator, RemediationValues } from './Base/Remediator';\nimport { IdxRemediationValueForm, IdxOption, IdxRemediationValue, IdxContext } from '../types/idx-js';\nimport { getAuthenticatorFromRemediation } from './util';\nimport { OktaAuthIdxInterface } from '../../types';\n\n\nexport type SelectEnrollmentChannelValues = RemediationValues & {\n channel?: string;\n};\n\nexport class SelectEnrollmentChannel extends Remediator<SelectEnrollmentChannelValues> {\n static remediationName = 'select-enrollment-channel';\n\n canRemediate() {\n return Boolean(this.values.channel);\n }\n\n getNextStep(authClient: OktaAuthIdxInterface, context: IdxContext) {\n const common = super.getNextStep(authClient, context);\n const options = this.getChannels();\n const authenticator = context.currentAuthenticator.value;\n return {\n ...common,\n // TODO: remove options field in the next major version - OKTA-491236\n ...(options && { options }),\n authenticator,\n };\n }\n\n private getChannels(): IdxOption[] | undefined {\n const authenticator: IdxRemediationValue = getAuthenticatorFromRemediation(this.remediation);\n const remediationValue = authenticator.value as IdxRemediationValueForm;\n return remediationValue.form.value.find(({ name }) => name === 'channel')?.options;\n }\n\n getData() {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const remediationValue = this.remediation!.value![0].value as IdxRemediationValueForm;\n return {\n authenticator: {\n id: remediationValue.form.value[0].value,\n channel: this.values.channel,\n },\n stateHandle: this.values.stateHandle,\n\n };\n }\n\n getValuesAfterProceed(): SelectEnrollmentChannelValues {\n let trimmedValues = Object.keys(this.values).filter(valueKey => valueKey !== 'channel');\n return trimmedValues.reduce((values, valueKey) => ({...values, [valueKey]: this.values[valueKey]}), {});\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAaA;;AAEA;;AAfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAaO,MAAMA,uBAAN,SAAsCC,sBAAtC,CAAgF;EAGrFC,YAAY,GAAG;IACb,OAAOC,OAAO,CAAC,2BAAYC,OAAb,CAAd;EACD;;EAEDC,WAAW,CAACC,UAAD,EAAmCC,OAAnC,EAAwD;IACjE,MAAMC,MAAM,GAAG,MAAMH,WAAN,CAAkBC,UAAlB,EAA8BC,OAA9B,CAAf;IACA,MAAME,OAAO,GAAG,KAAKC,WAAL,EAAhB;IACA,MAAMC,aAAa,GAAGJ,OAAO,CAACK,oBAAR,CAA6BC,KAAnD;IACA,OAAO,EACL,GAAGL,MADE;MAEL;MACA,IAAIC,OAAO,IAAI;QAAEA;MAAF,CAAf,CAHK;MAILE;IAJK,CAAP;EAMD;;EAEOD,WAAW,GAA4B;IAAA;;IAC7C,MAAMC,aAAkC,GAAG,2CAAgC,KAAKG,WAArC,CAA3C;IACA,MAAMC,gBAAgB,GAAGJ,aAAa,CAACE,KAAvC;IACA,gCAAO,8BAAAE,gBAAgB,CAACC,IAAjB,CAAsBH,KAAtB,iBAAiC,CAAC;MAAEI;IAAF,CAAD,KAAcA,IAAI,KAAK,SAAxD,CAAP,0DAAO,sBAAoER,OAA3E;EACD;;EAEDS,OAAO,GAAG;IACR;IACA,MAAMH,gBAAgB,GAAG,KAAKD,WAAL,CAAkBD,KAAlB,CAAyB,CAAzB,EAA4BA,KAArD;IACA,OAAO;MACLF,aAAa,EAAE;QACbQ,EAAE,EAAEJ,gBAAgB,CAACC,IAAjB,CAAsBH,KAAtB,CAA4B,CAA5B,EAA+BA,KADtB;QAEbT,OAAO,EAAE,2BAAYA;MAFR,CADV;MAKLgB,WAAW,EAAE,2BAAYA;IALpB,CAAP;EAQD;;EAEDC,qBAAqB,GAAkC;IAAA;;IACrD,IAAIC,aAAa,GAAG,yEAAY,IAAZ,oBAAgCC,QAAQ,IAAIA,QAAQ,KAAK,SAAzD,CAApB;IACA,OAAO,qBAAAD,aAAa,MAAb,CAAAA,aAAa,EAAQ,CAACE,MAAD,EAASD,QAAT,MAAuB,EAAC,GAAGC,MAAJ;MAAY,CAACD,QAAD,GAAY,2BAAYA,QAAZ;IAAxB,CAAvB,CAAR,EAAgF,EAAhF,CAApB;EACD;;AAzCoF;;;8BAA1EvB,uB,qBACc,2B"}
1
+ {"version":3,"file":"SelectEnrollmentChannel.js","names":["SelectEnrollmentChannel","Remediator","canRemediate","channel","authenticator","id","getNextStep","authClient","context","common","options","getChannels","currentAuthenticator","value","remediation","remediationValue","form","name","getData","stateHandle","getValuesAfterProceed","values","authenticators","filterKey","trimmedValues","valueKey"],"sources":["../../../../lib/idx/remediators/SelectEnrollmentChannel.ts"],"sourcesContent":["/*!\n * Copyright (c) 2021-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { Remediator, RemediationValues } from './Base/Remediator';\nimport { IdxRemediationValueForm, IdxOption, IdxRemediationValue, IdxContext } from '../types/idx-js';\nimport { Authenticator } from '../types';\nimport { getAuthenticatorFromRemediation } from './util';\nimport { OktaAuthIdxInterface } from '../../types';\n\n\nexport type SelectEnrollmentChannelValues = RemediationValues & {\n channel?: string;\n};\n\nexport class SelectEnrollmentChannel extends Remediator<SelectEnrollmentChannelValues> {\n static remediationName = 'select-enrollment-channel';\n\n canRemediate() {\n if (this.values.channel) {\n return true;\n }\n\n if (this.values.authenticator) {\n const { id, channel } = this.values.authenticator as Authenticator;\n if (!!id && !!channel) {\n return true;\n }\n }\n\n return false;\n }\n\n getNextStep(authClient: OktaAuthIdxInterface, context: IdxContext) {\n const common = super.getNextStep(authClient, context);\n const options = this.getChannels();\n const authenticator = context.currentAuthenticator.value;\n return {\n ...common,\n // TODO: remove options field in the next major version - OKTA-491236\n ...(options && { options }),\n authenticator,\n };\n }\n\n private getChannels(): IdxOption[] | undefined {\n const authenticator: IdxRemediationValue = getAuthenticatorFromRemediation(this.remediation);\n const remediationValue = authenticator.value as IdxRemediationValueForm;\n return remediationValue.form.value.find(({ name }) => name === 'channel')?.options;\n }\n\n getData() {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const remediationValue = this.remediation!.value![0].value as IdxRemediationValueForm;\n return {\n authenticator: {\n id: remediationValue.form.value[0].value,\n channel: (this.values.authenticator as Authenticator)?.channel || this.values.channel,\n },\n stateHandle: this.values.stateHandle,\n\n };\n }\n\n getValuesAfterProceed(): SelectEnrollmentChannelValues {\n this.values = super.getValuesAfterProceed();\n delete this.values.authenticators; // required to prevent infinite loops from auto-remediating via values\n const filterKey = this.values.channel ? 'channel' : 'authenticator';\n let trimmedValues = Object.keys(this.values).filter(valueKey => valueKey !== filterKey);\n return trimmedValues.reduce((values, valueKey) => ({...values, [valueKey]: this.values[valueKey]}), {});\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAaA;;AAGA;;AAhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAcO,MAAMA,uBAAN,SAAsCC,sBAAtC,CAAgF;EAGrFC,YAAY,GAAG;IACb,IAAI,2BAAYC,OAAhB,EAAyB;MACvB,OAAO,IAAP;IACD;;IAED,IAAI,2BAAYC,aAAhB,EAA+B;MAC7B,MAAM;QAAEC,EAAF;QAAMF;MAAN,IAAkB,2BAAYC,aAApC;;MACA,IAAI,CAAC,CAACC,EAAF,IAAQ,CAAC,CAACF,OAAd,EAAuB;QACrB,OAAO,IAAP;MACD;IACF;;IAED,OAAO,KAAP;EACD;;EAEDG,WAAW,CAACC,UAAD,EAAmCC,OAAnC,EAAwD;IACjE,MAAMC,MAAM,GAAG,MAAMH,WAAN,CAAkBC,UAAlB,EAA8BC,OAA9B,CAAf;IACA,MAAME,OAAO,GAAG,KAAKC,WAAL,EAAhB;IACA,MAAMP,aAAa,GAAGI,OAAO,CAACI,oBAAR,CAA6BC,KAAnD;IACA,OAAO,EACL,GAAGJ,MADE;MAEL;MACA,IAAIC,OAAO,IAAI;QAAEA;MAAF,CAAf,CAHK;MAILN;IAJK,CAAP;EAMD;;EAEOO,WAAW,GAA4B;IAAA;;IAC7C,MAAMP,aAAkC,GAAG,2CAAgC,KAAKU,WAArC,CAA3C;IACA,MAAMC,gBAAgB,GAAGX,aAAa,CAACS,KAAvC;IACA,gCAAO,8BAAAE,gBAAgB,CAACC,IAAjB,CAAsBH,KAAtB,iBAAiC,CAAC;MAAEI;IAAF,CAAD,KAAcA,IAAI,KAAK,SAAxD,CAAP,0DAAO,sBAAoEP,OAA3E;EACD;;EAEDQ,OAAO,GAAG;IAAA;;IACR;IACA,MAAMH,gBAAgB,GAAG,KAAKD,WAAL,CAAkBD,KAAlB,CAAyB,CAAzB,EAA4BA,KAArD;IACA,OAAO;MACLT,aAAa,EAAE;QACbC,EAAE,EAAEU,gBAAgB,CAACC,IAAjB,CAAsBH,KAAtB,CAA4B,CAA5B,EAA+BA,KADtB;QAEbV,OAAO,EAAE,0BAAC,2BAAYC,aAAb,gFAA8CD,OAA9C,KAAyD,2BAAYA;MAFjE,CADV;MAKLgB,WAAW,EAAE,2BAAYA;IALpB,CAAP;EAQD;;EAEDC,qBAAqB,GAAkC;IAAA;;IACrD,KAAKC,MAAL,GAAc,MAAMD,qBAAN,EAAd;IACA,OAAO,2BAAYE,cAAnB,CAFqD,CAEf;;IACtC,MAAMC,SAAS,GAAG,2BAAYpB,OAAZ,GAAsB,SAAtB,GAAkC,eAApD;IACA,IAAIqB,aAAa,GAAG,yEAAY,IAAZ,oBAAgCC,QAAQ,IAAIA,QAAQ,KAAKF,SAAzD,CAApB;IACA,OAAO,qBAAAC,aAAa,MAAb,CAAAA,aAAa,EAAQ,CAACH,MAAD,EAASI,QAAT,MAAuB,EAAC,GAAGJ,MAAJ;MAAY,CAACI,QAAD,GAAY,2BAAYA,QAAZ;IAAxB,CAAvB,CAAR,EAAgF,EAAhF,CAApB;EACD;;AAvDoF;;;8BAA1EzB,uB,qBACc,2B"}
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","names":["IdxStatus","AuthenticatorKey","IdxFeature","isAuthenticator","obj","key","id"],"sources":["../../../../lib/idx/types/api.ts"],"sourcesContent":["import { APIError } from '../../types/api';\nimport { Tokens } from '../../types/Token';\nimport { PKCETransactionMeta } from '../../types/Transaction';\nimport { FlowIdentifier } from './FlowIdentifier';\nimport {\n IdxActions,\n IdxAuthenticator,\n IdxContext,\n IdxForm,\n IdxMessage,\n IdxOption,\n IdxRemediation,\n IdxResponse,\n RawIdxResponse,\n IdxActionParams,\n IdpConfig,\n} from './idx-js';\n\nexport enum IdxStatus {\n SUCCESS = 'SUCCESS',\n PENDING = 'PENDING',\n FAILURE = 'FAILURE',\n TERMINAL = 'TERMINAL',\n CANCELED = 'CANCELED',\n}\n\nexport enum AuthenticatorKey {\n OKTA_PASSWORD = 'okta_password',\n OKTA_EMAIL = 'okta_email',\n PHONE_NUMBER = 'phone_number',\n GOOGLE_AUTHENTICATOR = 'google_otp',\n SECURITY_QUESTION = 'security_question',\n OKTA_VERIFY = 'okta_verify',\n WEBAUTHN = 'webauthn',\n}\n\nexport type Input = {\n name: string;\n key?: string;\n type?: string;\n label?: string;\n value?: string | {form: IdxForm} | Input[];\n minLength?: number;\n maxLength?: number;\n secret?: boolean;\n required?: boolean;\n options?: IdxOption[];\n mutable?: boolean;\n visible?: boolean;\n}\n\n\nexport interface IdxPollOptions {\n required?: boolean;\n refresh?: number;\n}\n\nexport type NextStep = {\n name: string;\n authenticator?: IdxAuthenticator;\n canSkip?: boolean;\n canResend?: boolean;\n inputs?: Input[];\n options?: IdxOption[];\n poll?: IdxPollOptions;\n authenticatorEnrollments?: IdxAuthenticator[];\n // eslint-disable-next-line no-use-before-define\n action?: (params?: IdxActionParams) => Promise<IdxTransaction>;\n idp?: IdpConfig;\n href?: string;\n relatesTo?: {\n type?: string;\n value: IdxAuthenticator;\n };\n refresh?: number;\n}\n\nexport enum IdxFeature {\n PASSWORD_RECOVERY = 'recover-password',\n REGISTRATION = 'enroll-profile',\n SOCIAL_IDP = 'redirect-idp',\n ACCOUNT_UNLOCK = 'unlock-account',\n}\n\nexport interface IdxTransactionMeta extends PKCETransactionMeta {\n interactionHandle?: string;\n remediations?: string[];\n flow?: FlowIdentifier;\n withCredentials?: boolean;\n activationToken?: string;\n recoveryToken?: string;\n maxAge?: string | number;\n}\n\nexport interface IdxTransaction {\n status: IdxStatus;\n tokens?: Tokens;\n nextStep?: NextStep;\n messages?: IdxMessage[];\n error?: APIError | IdxResponse;\n meta?: IdxTransactionMeta;\n enabledFeatures?: IdxFeature[];\n availableSteps?: NextStep[];\n requestDidSucceed?: boolean;\n stepUp?: boolean;\n \n // from idx-js, used by signin widget\n proceed: (remediationName: string, params: unknown) => Promise<IdxResponse>;\n neededToProceed: IdxRemediation[];\n rawIdxState: RawIdxResponse;\n interactionCode?: string;\n actions: IdxActions;\n context: IdxContext;\n}\n\n\nexport type Authenticator = {\n id?: string;\n key?: string;\n methodType?: string;\n phoneNumber?: string;\n};\n\nexport function isAuthenticator(obj: any): obj is Authenticator {\n return obj && (obj.key || obj.id);\n}\n\nexport interface RemediationResponse {\n idxResponse: IdxResponse;\n nextStep?: NextStep;\n messages?: IdxMessage[];\n terminal?: boolean;\n canceled?: boolean;\n}\n\nexport interface InteractResponse {\n state?: string;\n interactionHandle: string;\n meta: IdxTransactionMeta;\n}\n"],"mappings":";;;;IAkBYA,S;;;WAAAA,S;EAAAA,S;EAAAA,S;EAAAA,S;EAAAA,S;EAAAA,S;GAAAA,S,yBAAAA,S;;IAQAC,gB;;;WAAAA,gB;EAAAA,gB;EAAAA,gB;EAAAA,gB;EAAAA,gB;EAAAA,gB;EAAAA,gB;EAAAA,gB;GAAAA,gB,gCAAAA,gB;;IAmDAC,U;;;WAAAA,U;EAAAA,U;EAAAA,U;EAAAA,U;EAAAA,U;GAAAA,U,0BAAAA,U;;AA8CL,SAASC,eAAT,CAAyBC,GAAzB,EAAyD;EAC9D,OAAOA,GAAG,KAAKA,GAAG,CAACC,GAAJ,IAAWD,GAAG,CAACE,EAApB,CAAV;AACD"}
1
+ {"version":3,"file":"api.js","names":["IdxStatus","AuthenticatorKey","IdxFeature","isAuthenticator","obj","key","id"],"sources":["../../../../lib/idx/types/api.ts"],"sourcesContent":["import { APIError } from '../../types/api';\nimport { Tokens } from '../../types/Token';\nimport { PKCETransactionMeta } from '../../types/Transaction';\nimport { FlowIdentifier } from './FlowIdentifier';\nimport {\n IdxActions,\n IdxAuthenticator,\n IdxContext,\n IdxForm,\n IdxMessage,\n IdxOption,\n IdxRemediation,\n IdxResponse,\n RawIdxResponse,\n IdxActionParams,\n IdpConfig,\n} from './idx-js';\n\nexport enum IdxStatus {\n SUCCESS = 'SUCCESS',\n PENDING = 'PENDING',\n FAILURE = 'FAILURE',\n TERMINAL = 'TERMINAL',\n CANCELED = 'CANCELED',\n}\n\nexport enum AuthenticatorKey {\n OKTA_PASSWORD = 'okta_password',\n OKTA_EMAIL = 'okta_email',\n PHONE_NUMBER = 'phone_number',\n GOOGLE_AUTHENTICATOR = 'google_otp',\n SECURITY_QUESTION = 'security_question',\n OKTA_VERIFY = 'okta_verify',\n WEBAUTHN = 'webauthn',\n}\n\nexport type Input = {\n name: string;\n key?: string;\n type?: string;\n label?: string;\n value?: string | {form: IdxForm} | Input[];\n minLength?: number;\n maxLength?: number;\n secret?: boolean;\n required?: boolean;\n options?: IdxOption[];\n mutable?: boolean;\n visible?: boolean;\n}\n\n\nexport interface IdxPollOptions {\n required?: boolean;\n refresh?: number;\n}\n\nexport type NextStep = {\n name: string;\n authenticator?: IdxAuthenticator;\n canSkip?: boolean;\n canResend?: boolean;\n inputs?: Input[];\n options?: IdxOption[];\n poll?: IdxPollOptions;\n authenticatorEnrollments?: IdxAuthenticator[];\n // eslint-disable-next-line no-use-before-define\n action?: (params?: IdxActionParams) => Promise<IdxTransaction>;\n idp?: IdpConfig;\n href?: string;\n relatesTo?: {\n type?: string;\n value: IdxAuthenticator;\n };\n refresh?: number;\n}\n\nexport enum IdxFeature {\n PASSWORD_RECOVERY = 'recover-password',\n REGISTRATION = 'enroll-profile',\n SOCIAL_IDP = 'redirect-idp',\n ACCOUNT_UNLOCK = 'unlock-account',\n}\n\nexport interface IdxTransactionMeta extends PKCETransactionMeta {\n interactionHandle?: string;\n remediations?: string[];\n flow?: FlowIdentifier;\n withCredentials?: boolean;\n activationToken?: string;\n recoveryToken?: string;\n maxAge?: string | number;\n}\n\nexport interface IdxTransaction {\n status: IdxStatus;\n tokens?: Tokens;\n nextStep?: NextStep;\n messages?: IdxMessage[];\n error?: APIError | IdxResponse;\n meta?: IdxTransactionMeta;\n enabledFeatures?: IdxFeature[];\n availableSteps?: NextStep[];\n requestDidSucceed?: boolean;\n stepUp?: boolean;\n \n // from idx-js, used by signin widget\n proceed: (remediationName: string, params: unknown) => Promise<IdxResponse>;\n neededToProceed: IdxRemediation[];\n rawIdxState: RawIdxResponse;\n interactionCode?: string;\n actions: IdxActions;\n context: IdxContext;\n}\n\n\nexport type Authenticator = {\n id?: string;\n key?: string;\n methodType?: string;\n phoneNumber?: string;\n channel?: string;\n};\n\nexport function isAuthenticator(obj: any): obj is Authenticator {\n return obj && (obj.key || obj.id);\n}\n\nexport interface RemediationResponse {\n idxResponse: IdxResponse;\n nextStep?: NextStep;\n messages?: IdxMessage[];\n terminal?: boolean;\n canceled?: boolean;\n}\n\nexport interface InteractResponse {\n state?: string;\n interactionHandle: string;\n meta: IdxTransactionMeta;\n}\n"],"mappings":";;;;IAkBYA,S;;;WAAAA,S;EAAAA,S;EAAAA,S;EAAAA,S;EAAAA,S;EAAAA,S;GAAAA,S,yBAAAA,S;;IAQAC,gB;;;WAAAA,gB;EAAAA,gB;EAAAA,gB;EAAAA,gB;EAAAA,gB;EAAAA,gB;EAAAA,gB;EAAAA,gB;GAAAA,gB,gCAAAA,gB;;IAmDAC,U;;;WAAAA,U;EAAAA,U;EAAAA,U;EAAAA,U;EAAAA,U;GAAAA,U,0BAAAA,U;;AA+CL,SAASC,eAAT,CAAyBC,GAAzB,EAAyD;EAC9D,OAAOA,GAAG,KAAKA,GAAG,CAACC,GAAJ,IAAWD,GAAG,CAACE,EAApB,CAAV;AACD"}