@okta/okta-auth-js 6.2.0 → 6.3.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.
- package/CHANGELOG.md +23 -0
- package/cjs/AuthStateManager.js +9 -3
- package/cjs/AuthStateManager.js.map +1 -1
- package/cjs/OktaUserAgent.js +2 -2
- package/cjs/PromiseQueue.js +9 -2
- package/cjs/PromiseQueue.js.map +1 -1
- package/cjs/ServiceManager.js +3 -3
- package/cjs/ServiceManager.js.map +1 -1
- package/cjs/TransactionManager.js +8 -2
- package/cjs/TransactionManager.js.map +1 -1
- package/cjs/browser/browserStorage.js +19 -18
- package/cjs/browser/browserStorage.js.map +1 -1
- package/cjs/idx/authenticator/Authenticator.js.map +1 -1
- package/cjs/idx/authenticator/OktaPassword.js +12 -3
- package/cjs/idx/authenticator/OktaPassword.js.map +1 -1
- package/cjs/idx/authenticator/OktaVerifyTotp.js +9 -1
- package/cjs/idx/authenticator/OktaVerifyTotp.js.map +1 -1
- package/cjs/idx/authenticator/SecurityQuestionEnrollment.js +14 -1
- package/cjs/idx/authenticator/SecurityQuestionEnrollment.js.map +1 -1
- package/cjs/idx/authenticator/SecurityQuestionVerification.js +9 -1
- package/cjs/idx/authenticator/SecurityQuestionVerification.js.map +1 -1
- package/cjs/idx/authenticator/VerificationCodeAuthenticator.js +13 -3
- package/cjs/idx/authenticator/VerificationCodeAuthenticator.js.map +1 -1
- package/cjs/idx/authenticator/WebauthnEnrollment.js +5 -0
- package/cjs/idx/authenticator/WebauthnEnrollment.js.map +1 -1
- package/cjs/idx/authenticator/WebauthnVerification.js +5 -0
- package/cjs/idx/authenticator/WebauthnVerification.js.map +1 -1
- package/cjs/idx/authenticator/util.js +64 -0
- package/cjs/idx/authenticator/util.js.map +1 -0
- package/cjs/idx/idx-js/index.js +0 -122
- package/cjs/idx/idx-js/index.js.map +1 -1
- package/cjs/idx/idx-js/introspect.js +10 -6
- package/cjs/idx/idx-js/introspect.js.map +1 -1
- package/cjs/idx/idx-js/v1/generateIdxAction.js +17 -23
- package/cjs/idx/idx-js/v1/generateIdxAction.js.map +1 -1
- package/cjs/idx/idx-js/v1/makeIdxState.js +5 -4
- package/cjs/idx/idx-js/v1/makeIdxState.js.map +1 -1
- package/cjs/idx/introspect.js +13 -3
- package/cjs/idx/introspect.js.map +1 -1
- package/cjs/idx/proceed.js +14 -11
- package/cjs/idx/proceed.js.map +1 -1
- package/cjs/idx/remediate.js +65 -72
- package/cjs/idx/remediate.js.map +1 -1
- package/cjs/idx/remediators/AuthenticatorEnrollmentData.js +6 -2
- package/cjs/idx/remediators/AuthenticatorEnrollmentData.js.map +1 -1
- package/cjs/idx/remediators/AuthenticatorVerificationData.js +23 -19
- package/cjs/idx/remediators/AuthenticatorVerificationData.js.map +1 -1
- package/cjs/idx/remediators/Base/AuthenticatorData.js +22 -14
- package/cjs/idx/remediators/Base/AuthenticatorData.js.map +1 -1
- package/cjs/idx/remediators/Base/Remediator.js +85 -85
- package/cjs/idx/remediators/Base/Remediator.js.map +1 -1
- package/cjs/idx/remediators/Base/SelectAuthenticator.js +24 -15
- package/cjs/idx/remediators/Base/SelectAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/Base/VerifyAuthenticator.js +15 -4
- package/cjs/idx/remediators/Base/VerifyAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/ChallengePoll.js +8 -1
- package/cjs/idx/remediators/ChallengePoll.js.map +1 -1
- package/cjs/idx/remediators/EnrollPoll.js +1 -1
- package/cjs/idx/remediators/EnrollPoll.js.map +1 -1
- package/cjs/idx/remediators/EnrollProfile.js +15 -9
- package/cjs/idx/remediators/EnrollProfile.js.map +1 -1
- package/cjs/idx/remediators/EnrollmentChannelData.js +0 -8
- package/cjs/idx/remediators/EnrollmentChannelData.js.map +1 -1
- package/cjs/idx/remediators/Identify.js +12 -5
- package/cjs/idx/remediators/Identify.js.map +1 -1
- package/cjs/idx/remediators/ReEnrollAuthenticator.js +9 -8
- package/cjs/idx/remediators/ReEnrollAuthenticator.js.map +1 -1
- package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js +4 -3
- package/cjs/idx/remediators/SelectAuthenticatorAuthenticate.js.map +1 -1
- package/cjs/idx/remediators/SelectAuthenticatorUnlockAccount.js +0 -1
- package/cjs/idx/remediators/SelectAuthenticatorUnlockAccount.js.map +1 -1
- package/cjs/idx/remediators/Skip.js +1 -8
- package/cjs/idx/remediators/Skip.js.map +1 -1
- package/cjs/idx/remediators/util.js.map +1 -1
- package/cjs/idx/run.js +267 -198
- package/cjs/idx/run.js.map +1 -1
- package/cjs/idx/types/idx-js.js.map +1 -1
- package/cjs/idx/types/index.js +37 -0
- package/cjs/idx/types/index.js.map +1 -1
- package/cjs/idx/util.js +198 -0
- package/cjs/idx/util.js.map +1 -0
- package/cjs/options/browser.js +11 -6
- package/cjs/options/browser.js.map +1 -1
- package/cjs/options/index.js +1 -1
- package/cjs/options/index.js.map +1 -1
- package/cjs/options/node.js +5 -6
- package/cjs/options/node.js.map +1 -1
- package/cjs/options.js +170 -0
- package/cjs/options.js.map +1 -0
- package/dist/okta-auth-js.min.js +1 -1
- package/dist/okta-auth-js.min.js.map +1 -1
- package/dist/okta-auth-js.umd.js +1 -1
- package/dist/okta-auth-js.umd.js.map +1 -1
- package/esm/esm.browser.js +1178 -794
- package/esm/esm.browser.js.map +1 -1
- package/esm/esm.node.mjs +1099 -781
- package/esm/esm.node.mjs.map +1 -1
- package/lib/AuthStateManager.d.ts +2 -0
- package/lib/PromiseQueue.d.ts +6 -2
- package/lib/TransactionManager.d.ts +3 -4
- package/lib/idx/authenticator/Authenticator.d.ts +1 -1
- package/lib/idx/authenticator/OktaPassword.d.ts +2 -1
- package/lib/idx/authenticator/OktaVerifyTotp.d.ts +1 -1
- package/lib/idx/authenticator/SecurityQuestionEnrollment.d.ts +3 -5
- package/lib/idx/authenticator/SecurityQuestionVerification.d.ts +1 -1
- package/lib/idx/authenticator/VerificationCodeAuthenticator.d.ts +2 -1
- package/lib/idx/authenticator/WebauthnEnrollment.d.ts +1 -1
- package/lib/idx/authenticator/WebauthnVerification.d.ts +1 -1
- package/lib/idx/authenticator/util.d.ts +4 -0
- package/lib/idx/idx-js/index.d.ts +1 -17
- package/lib/idx/idx-js/introspect.d.ts +2 -1
- package/lib/idx/idx-js/v1/generateIdxAction.d.ts +1 -1
- package/lib/idx/idx-js/v1/makeIdxState.d.ts +2 -2
- package/lib/idx/proceed.d.ts +1 -3
- package/lib/idx/remediate.d.ts +2 -2
- package/lib/idx/remediators/AuthenticatorVerificationData.d.ts +1 -0
- package/lib/idx/remediators/Base/AuthenticatorData.d.ts +0 -3
- package/lib/idx/remediators/Base/Remediator.d.ts +5 -4
- package/lib/idx/remediators/Base/SelectAuthenticator.d.ts +7 -9
- package/lib/idx/remediators/Base/VerifyAuthenticator.d.ts +2 -4
- package/lib/idx/remediators/ChallengePoll.d.ts +1 -0
- package/lib/idx/remediators/EnrollProfile.d.ts +0 -3
- package/lib/idx/remediators/EnrollmentChannelData.d.ts +0 -4
- package/lib/idx/remediators/Identify.d.ts +3 -5
- package/lib/idx/remediators/ReEnrollAuthenticator.d.ts +2 -5
- package/lib/idx/remediators/SelectAuthenticatorAuthenticate.d.ts +2 -1
- package/lib/idx/remediators/SelectAuthenticatorUnlockAccount.d.ts +1 -2
- package/lib/idx/remediators/Skip.d.ts +0 -3
- package/lib/idx/types/idx-js.d.ts +5 -1
- package/lib/idx/types/index.d.ts +7 -3
- package/lib/idx/util.d.ts +11 -0
- package/lib/options/browser.d.ts +2 -2
- package/lib/options/node.d.ts +2 -2
- package/lib/options.d.ts +14 -0
- package/lib/types/Storage.d.ts +7 -5
- package/lib/types/api.d.ts +1 -3
- package/package.json +7 -6
|
@@ -21,8 +21,8 @@ var _idxResponseParser = require("./idxResponseParser");
|
|
|
21
21
|
*
|
|
22
22
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
23
23
|
*/
|
|
24
|
-
function makeIdxState(idxResponse, toPersist) {
|
|
25
|
-
var _rawIdxResponse$succe,
|
|
24
|
+
function makeIdxState(idxResponse, toPersist, requestDidSucceed) {
|
|
25
|
+
var _rawIdxResponse$succe, _rawIdxResponse$succe2, _rawIdxResponse$succe3;
|
|
26
26
|
|
|
27
27
|
const rawIdxResponse = idxResponse;
|
|
28
28
|
const {
|
|
@@ -50,7 +50,7 @@ function makeIdxState(idxResponse, toPersist) {
|
|
|
50
50
|
|
|
51
51
|
const findCode = item => item.name === 'interaction_code';
|
|
52
52
|
|
|
53
|
-
const interactionCode = (_rawIdxResponse$succe = rawIdxResponse.successWithInteractionCode) === null || _rawIdxResponse$succe === void 0 ? void 0 : (0, _find.default)(
|
|
53
|
+
const interactionCode = (_rawIdxResponse$succe = rawIdxResponse.successWithInteractionCode) === null || _rawIdxResponse$succe === void 0 ? void 0 : (_rawIdxResponse$succe2 = _rawIdxResponse$succe.value) === null || _rawIdxResponse$succe2 === void 0 ? void 0 : (_rawIdxResponse$succe3 = (0, _find.default)(_rawIdxResponse$succe2).call(_rawIdxResponse$succe2, findCode)) === null || _rawIdxResponse$succe3 === void 0 ? void 0 : _rawIdxResponse$succe3.value;
|
|
54
54
|
return {
|
|
55
55
|
proceed,
|
|
56
56
|
neededToProceed,
|
|
@@ -58,7 +58,8 @@ function makeIdxState(idxResponse, toPersist) {
|
|
|
58
58
|
context,
|
|
59
59
|
rawIdxState: rawIdxResponse,
|
|
60
60
|
interactionCode,
|
|
61
|
-
toPersist
|
|
61
|
+
toPersist,
|
|
62
|
+
requestDidSucceed
|
|
62
63
|
};
|
|
63
64
|
}
|
|
64
65
|
//# sourceMappingURL=makeIdxState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../lib/idx/idx-js/v1/makeIdxState.ts"],"names":["makeIdxState","idxResponse","toPersist","rawIdxResponse","remediations","context","actions","neededToProceed","proceed","remediationChoice","paramsFromUser","remediationChoiceObject","remediation","name","reject","action","findCode","item","interactionCode","successWithInteractionCode","value","rawIdxState"],"mappings":";;;;;;;;;;AAaA;;AAbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKO,SAASA,YAAT,CAAuBC,WAAvB,
|
|
1
|
+
{"version":3,"sources":["../../../../../lib/idx/idx-js/v1/makeIdxState.ts"],"names":["makeIdxState","idxResponse","toPersist","requestDidSucceed","rawIdxResponse","remediations","context","actions","neededToProceed","proceed","remediationChoice","paramsFromUser","remediationChoiceObject","remediation","name","reject","action","findCode","item","interactionCode","successWithInteractionCode","value","rawIdxState"],"mappings":";;;;;;;;;;AAaA;;AAbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKO,SAASA,YAAT,CAAuBC,WAAvB,EAAoDC,SAApD,EAA+DC,iBAA/D,EAAyG;AAAA;;AAC9G,QAAMC,cAAc,GAAIH,WAAxB;AACA,QAAM;AAAEI,IAAAA,YAAF;AAAgBC,IAAAA,OAAhB;AAAyBC,IAAAA;AAAzB,MAAqC,yCAAkBN,WAAlB,EAA+BC,SAA/B,CAA3C;AACA,QAAMM,eAAe,GAAG,CAAC,GAAGH,YAAJ,CAAxB;;AAEA,QAAMI,OAA+B,GAAG,gBAAgBC,iBAAhB,EAAmCC,cAAc,GAAG,EAApD,EAAyD;AAC/F;AACJ;AACA;AACA;AACA;AACA;AACI,UAAMC,uBAAuB,GAAG,mBAAAP,YAAY,MAAZ,CAAAA,YAAY,EAAOQ,WAAD,IAAiBA,WAAW,CAACC,IAAZ,KAAqBJ,iBAA5C,CAA5C;;AACA,QAAK,CAACE,uBAAN,EAAgC;AAC9B,aAAO,iBAAQG,MAAR,CAAgB,gCAA+BL,iBAAkB,GAAjE,CAAP;AACD;;AAED,WAAOE,uBAAuB,CAACI,MAAxB,CAA+BL,cAA/B,CAAP;AACD,GAbD;;AAeA,QAAMM,QAAQ,GAAGC,IAAI,IAAIA,IAAI,CAACJ,IAAL,KAAc,kBAAvC;;AACA,QAAMK,eAAe,4BAAGf,cAAc,CAACgB,0BAAlB,oFAAG,sBAA2CC,KAA9C,qFAAG,wEAAwDJ,QAAxD,CAAH,2DAAG,uBAAoEI,KAA5F;AAEA,SAAO;AACLZ,IAAAA,OADK;AAELD,IAAAA,eAFK;AAGLD,IAAAA,OAHK;AAILD,IAAAA,OAJK;AAKLgB,IAAAA,WAAW,EAAElB,cALR;AAMLe,IAAAA,eANK;AAOLjB,IAAAA,SAPK;AAQLC,IAAAA;AARK,GAAP;AAUD","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\nimport { IdxResponse, RawIdxResponse } from '../../types/idx-js';\nimport { parseIdxResponse } from './idxResponseParser';\n\nexport function makeIdxState( idxResponse: RawIdxResponse, toPersist, requestDidSucceed: boolean ): IdxResponse {\n const rawIdxResponse = idxResponse;\n const { remediations, context, actions } = parseIdxResponse( idxResponse, toPersist );\n const neededToProceed = [...remediations];\n\n const proceed: IdxResponse['proceed'] = async function( remediationChoice, paramsFromUser = {} ) {\n /*\n remediationChoice is the name attribute on each form\n name should remain unique for items inside the remediation that are considered forms(identify, select-factor)\n name can be duplicate for items like redirect where its not considered a form(redirect)\n when names are not unique its a redirect to a href, so widget wont POST to idx-js layer.\n */\n const remediationChoiceObject = remediations.find((remediation) => remediation.name === remediationChoice);\n if ( !remediationChoiceObject ) {\n return Promise.reject(`Unknown remediation choice: [${remediationChoice}]`);\n }\n\n return remediationChoiceObject.action(paramsFromUser);\n };\n\n const findCode = item => item.name === 'interaction_code';\n const interactionCode = rawIdxResponse.successWithInteractionCode?.value?.find( findCode )?.value as string;\n\n return {\n proceed,\n neededToProceed,\n actions,\n context,\n rawIdxState: rawIdxResponse,\n interactionCode,\n toPersist,\n requestDidSucceed,\n };\n}\n"],"file":"makeIdxState.js"}
|
package/cjs/idx/introspect.js
CHANGED
|
@@ -24,8 +24,16 @@ var _constants = require("../constants");
|
|
|
24
24
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
25
25
|
*/
|
|
26
26
|
async function introspect(authClient, options = {}) {
|
|
27
|
-
|
|
28
|
-
let
|
|
27
|
+
let rawIdxResponse;
|
|
28
|
+
let requestDidSucceed; // try load from storage first
|
|
29
|
+
|
|
30
|
+
const savedIdxResponse = authClient.transactionManager.loadIdxResponse();
|
|
31
|
+
|
|
32
|
+
if (savedIdxResponse) {
|
|
33
|
+
rawIdxResponse = savedIdxResponse.rawIdxResponse;
|
|
34
|
+
requestDidSucceed = savedIdxResponse.requestDidSucceed;
|
|
35
|
+
} // call idx.introspect if no existing idx response available in storage
|
|
36
|
+
|
|
29
37
|
|
|
30
38
|
if (!rawIdxResponse) {
|
|
31
39
|
const version = options.version || _constants.IDX_API_VERSION;
|
|
@@ -37,9 +45,11 @@ async function introspect(authClient, options = {}) {
|
|
|
37
45
|
...options,
|
|
38
46
|
version
|
|
39
47
|
});
|
|
48
|
+
requestDidSucceed = true;
|
|
40
49
|
} catch (err) {
|
|
41
50
|
if ((0, _idxJs2.isRawIdxResponse)(err)) {
|
|
42
51
|
rawIdxResponse = err;
|
|
52
|
+
requestDidSucceed = false;
|
|
43
53
|
} else {
|
|
44
54
|
throw err;
|
|
45
55
|
}
|
|
@@ -51,6 +61,6 @@ async function introspect(authClient, options = {}) {
|
|
|
51
61
|
} = options;
|
|
52
62
|
return _idxJs.default.makeIdxState(rawIdxResponse, {
|
|
53
63
|
withCredentials
|
|
54
|
-
});
|
|
64
|
+
}, requestDidSucceed);
|
|
55
65
|
}
|
|
56
66
|
//# sourceMappingURL=introspect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/idx/introspect.ts"],"names":["introspect","authClient","options","rawIdxResponse","transactionManager","loadIdxResponse","version","IDX_API_VERSION","domain","idx","err","withCredentials","makeIdxState"],"mappings":";;;;;;AAYA;;AAEA;;AACA;;AACA;;AAhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAeO,eAAeA,UAAf,CACLC,UADK,EAELC,OAA0B,GAAG,EAFxB,EAGiB;AACtB;AACA,MAAIC,
|
|
1
|
+
{"version":3,"sources":["../../../lib/idx/introspect.ts"],"names":["introspect","authClient","options","rawIdxResponse","requestDidSucceed","savedIdxResponse","transactionManager","loadIdxResponse","version","IDX_API_VERSION","domain","idx","err","withCredentials","makeIdxState"],"mappings":";;;;;;AAYA;;AAEA;;AACA;;AACA;;AAhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAeO,eAAeA,UAAf,CACLC,UADK,EAELC,OAA0B,GAAG,EAFxB,EAGiB;AACtB,MAAIC,cAAJ;AACA,MAAIC,iBAAJ,CAFsB,CAItB;;AACA,QAAMC,gBAAgB,GAAGJ,UAAU,CAACK,kBAAX,CAA8BC,eAA9B,EAAzB;;AACA,MAAIF,gBAAJ,EAAsB;AACpBF,IAAAA,cAAc,GAAGE,gBAAgB,CAACF,cAAlC;AACAC,IAAAA,iBAAiB,GAAGC,gBAAgB,CAACD,iBAArC;AACD,GATqB,CAWtB;;;AACA,MAAI,CAACD,cAAL,EAAqB;AACnB,UAAMK,OAAO,GAAGN,OAAO,CAACM,OAAR,IAAmBC,0BAAnC;AACA,UAAMC,MAAM,GAAG,0BAAeT,UAAf,CAAf;;AACA,QAAI;AACFE,MAAAA,cAAc,GAAG,MAAMQ,eAAIX,UAAJ,CAAe;AAAEU,QAAAA,MAAF;AAAU,WAAGR,OAAb;AAAsBM,QAAAA;AAAtB,OAAf,CAAvB;AACAJ,MAAAA,iBAAiB,GAAG,IAApB;AACD,KAHD,CAGE,OAAOQ,GAAP,EAAY;AACZ,UAAI,8BAAiBA,GAAjB,CAAJ,EAA2B;AACzBT,QAAAA,cAAc,GAAGS,GAAjB;AACAR,QAAAA,iBAAiB,GAAG,KAApB;AACD,OAHD,MAGO;AACL,cAAMQ,GAAN;AACD;AACF;AACF;;AAED,QAAM;AAAEC,IAAAA;AAAF,MAAsBX,OAA5B;AACA,SAAOS,eAAIG,YAAJ,CAAiBX,cAAjB,EAAiC;AAAEU,IAAAA;AAAF,GAAjC,EAAsDT,iBAAtD,CAAP;AACD","sourcesContent":["/*!\n * Copyright (c) 2021, 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\nimport idx from './idx-js';\nimport { OktaAuthInterface } from '../types';\nimport { IdxResponse, isRawIdxResponse } from './types/idx-js';\nimport { getOAuthDomain } from '../oidc';\nimport { IDX_API_VERSION } from '../constants';\n\nexport interface IntrospectOptions {\n withCredentials?: boolean;\n interactionHandle?: string;\n stateHandle?: string;\n version?: string;\n}\n\nexport async function introspect (\n authClient: OktaAuthInterface, \n options: IntrospectOptions = {}\n): Promise<IdxResponse> {\n let rawIdxResponse;\n let requestDidSucceed;\n\n // try load from storage first\n const savedIdxResponse = authClient.transactionManager.loadIdxResponse();\n if (savedIdxResponse) {\n rawIdxResponse = savedIdxResponse.rawIdxResponse;\n requestDidSucceed = savedIdxResponse.requestDidSucceed;\n }\n\n // call idx.introspect if no existing idx response available in storage\n if (!rawIdxResponse) {\n const version = options.version || IDX_API_VERSION;\n const domain = getOAuthDomain(authClient);\n try {\n rawIdxResponse = await idx.introspect({ domain, ...options, version });\n requestDidSucceed = true;\n } catch (err) {\n if (isRawIdxResponse(err)) {\n rawIdxResponse = err;\n requestDidSucceed = false;\n } else {\n throw err;\n }\n }\n }\n\n const { withCredentials } = options;\n return idx.makeIdxState(rawIdxResponse, { withCredentials }, requestDidSucceed);\n}\n"],"file":"introspect.js"}
|
package/cjs/idx/proceed.js
CHANGED
|
@@ -20,25 +20,28 @@ var _errors = require("../errors");
|
|
|
20
20
|
*
|
|
21
21
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
22
22
|
*/
|
|
23
|
-
function canProceed(authClient, options) {
|
|
23
|
+
function canProceed(authClient, options = {}) {
|
|
24
24
|
const meta = (0, _transactionMeta.getSavedTransactionMeta)(authClient, options);
|
|
25
|
-
return !!meta;
|
|
25
|
+
return !!(meta || options.stateHandle);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
async function proceed(authClient, options = {}) {
|
|
29
|
-
|
|
29
|
+
if (!canProceed(authClient, options)) {
|
|
30
|
+
throw new _errors.AuthSdkError('Unable to proceed: saved transaction could not be loaded');
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
let {
|
|
34
|
+
flow,
|
|
30
35
|
state
|
|
31
36
|
} = options;
|
|
32
|
-
const meta = (0, _transactionMeta.getSavedTransactionMeta)(authClient, {
|
|
33
|
-
state
|
|
34
|
-
}); // Proceed always needs saved transaction meta
|
|
35
|
-
|
|
36
|
-
if (!meta) {
|
|
37
|
-
throw new _errors.AuthSdkError('Unable to proceed: saved transaction could not be loaded');
|
|
38
|
-
} // Determine the flow specification based on the saved flow
|
|
39
37
|
|
|
38
|
+
if (!flow) {
|
|
39
|
+
const meta = (0, _transactionMeta.getSavedTransactionMeta)(authClient, {
|
|
40
|
+
state
|
|
41
|
+
});
|
|
42
|
+
flow = meta === null || meta === void 0 ? void 0 : meta.flow;
|
|
43
|
+
}
|
|
40
44
|
|
|
41
|
-
const flow = meta === null || meta === void 0 ? void 0 : meta.flow;
|
|
42
45
|
return (0, _run.run)(authClient, { ...options,
|
|
43
46
|
flow
|
|
44
47
|
});
|
package/cjs/idx/proceed.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/idx/proceed.ts"],"names":["canProceed","authClient","options","meta","
|
|
1
|
+
{"version":3,"sources":["../../../lib/idx/proceed.ts"],"names":["canProceed","authClient","options","meta","stateHandle","proceed","AuthSdkError","flow","state"],"mappings":";;;;;AAiBA;;AASA;;AACA;;AA3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BO,SAASA,UAAT,CAAoBC,UAApB,EAAmDC,OAAuB,GAAG,EAA7E,EAA0F;AAC/F,QAAMC,IAAI,GAAG,8CAAwBF,UAAxB,EAAoCC,OAApC,CAAb;AACA,SAAO,CAAC,EAAEC,IAAI,IAAID,OAAO,CAACE,WAAlB,CAAR;AACD;;AAEM,eAAeC,OAAf,CACLJ,UADK,EAELC,OAAuB,GAAG,EAFrB,EAGoB;AAEzB,MAAI,CAACF,UAAU,CAACC,UAAD,EAAaC,OAAb,CAAf,EAAsC;AACpC,UAAM,IAAII,oBAAJ,CAAiB,0DAAjB,CAAN;AACD;;AAED,MAAI;AAAEC,IAAAA,IAAF;AAAQC,IAAAA;AAAR,MAAkBN,OAAtB;;AACA,MAAI,CAACK,IAAL,EAAW;AACT,UAAMJ,IAAI,GAAG,8CAAwBF,UAAxB,EAAoC;AAAEO,MAAAA;AAAF,KAApC,CAAb;AACAD,IAAAA,IAAI,GAAGJ,IAAH,aAAGA,IAAH,uBAAGA,IAAI,CAAEI,IAAb;AACD;;AAED,SAAO,cAAIN,UAAJ,EAAgB,EACrB,GAAGC,OADkB;AAErBK,IAAAA;AAFqB,GAAhB,CAAP;AAID","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 { \n OktaAuthInterface,\n IdxTransaction,\n} from '../types';\nimport { run } from './run';\nimport { AuthenticationOptions } from './authenticate';\nimport {\n EnrollPollValues as EnrollPollOptions,\n SelectEnrollmentChannelValues as SelectEnrollmentChannelOptions\n} from './remediators';\nimport { RegistrationOptions } from './register';\nimport { PasswordRecoveryOptions } from './recoverPassword';\nimport { AccountUnlockOptions } from './unlockAccount';\nimport { getSavedTransactionMeta } from './transactionMeta';\nimport { AuthSdkError } from '../errors';\n\nexport type ProceedOptions = AuthenticationOptions\n & RegistrationOptions\n & PasswordRecoveryOptions\n & AccountUnlockOptions\n & EnrollPollOptions\n & SelectEnrollmentChannelOptions\n & { step?: string };\n\nexport function canProceed(authClient: OktaAuthInterface, options: ProceedOptions = {}): boolean {\n const meta = getSavedTransactionMeta(authClient, options);\n return !!(meta || options.stateHandle);\n}\n\nexport async function proceed(\n authClient: OktaAuthInterface,\n options: ProceedOptions = {}\n): Promise<IdxTransaction> {\n\n if (!canProceed(authClient, options)) {\n throw new AuthSdkError('Unable to proceed: saved transaction could not be loaded');\n }\n\n let { flow, state } = options;\n if (!flow) {\n const meta = getSavedTransactionMeta(authClient, { state });\n flow = meta?.flow;\n }\n\n return run(authClient, { \n ...options, \n flow\n });\n}\n"],"file":"proceed.js"}
|
package/cjs/idx/remediate.js
CHANGED
|
@@ -11,16 +11,18 @@ var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-s
|
|
|
11
11
|
|
|
12
12
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
|
|
15
15
|
|
|
16
16
|
var _reduce = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/reduce"));
|
|
17
17
|
|
|
18
18
|
var _errors = require("../errors");
|
|
19
19
|
|
|
20
|
-
var _remediators = require("./remediators");
|
|
21
|
-
|
|
22
20
|
var _idxJs = require("./types/idx-js");
|
|
23
21
|
|
|
22
|
+
var _util = require("./util");
|
|
23
|
+
|
|
24
|
+
var _util2 = require("../util");
|
|
25
|
+
|
|
24
26
|
/*!
|
|
25
27
|
* Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
|
|
26
28
|
* The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
|
|
@@ -45,8 +47,15 @@ function getRemediator(idxRemediations, values, options) {
|
|
|
45
47
|
const remediation = (0, _find.default)(idxRemediations).call(idxRemediations, ({
|
|
46
48
|
name
|
|
47
49
|
}) => name === options.step);
|
|
48
|
-
|
|
49
|
-
|
|
50
|
+
|
|
51
|
+
if (remediation) {
|
|
52
|
+
const T = remediation ? remediators[remediation.name] : undefined;
|
|
53
|
+
return T ? new T(remediation, values, options) : undefined;
|
|
54
|
+
} else {
|
|
55
|
+
// step was specified, but remediation was not found. This is unexpected!
|
|
56
|
+
(0, _util2.warn)(`step "${options.step}" did not match any remediations`);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
50
59
|
}
|
|
51
60
|
|
|
52
61
|
const remediatorCandidates = [];
|
|
@@ -61,7 +70,7 @@ function getRemediator(idxRemediations, values, options) {
|
|
|
61
70
|
}
|
|
62
71
|
|
|
63
72
|
const T = remediators[remediation.name];
|
|
64
|
-
remediator = new T(remediation, values);
|
|
73
|
+
remediator = new T(remediation, values, options);
|
|
65
74
|
|
|
66
75
|
if (remediator.canRemediate()) {
|
|
67
76
|
// found the remediator
|
|
@@ -76,55 +85,10 @@ function getRemediator(idxRemediations, values, options) {
|
|
|
76
85
|
return remediatorCandidates[0];
|
|
77
86
|
}
|
|
78
87
|
|
|
79
|
-
function isTerminalResponse(idxResponse) {
|
|
80
|
-
const {
|
|
81
|
-
neededToProceed,
|
|
82
|
-
interactionCode
|
|
83
|
-
} = idxResponse;
|
|
84
|
-
return !neededToProceed.length && !interactionCode;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
function canSkipFn(idxResponse) {
|
|
88
|
-
return idxResponse.neededToProceed.some(({
|
|
89
|
-
name
|
|
90
|
-
}) => name === 'skip');
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
function canResendFn(idxResponse) {
|
|
94
|
-
return (0, _keys.default)(idxResponse.actions).some(actionName => (0, _includes.default)(actionName).call(actionName, 'resend'));
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
function getIdxMessages(idxResponse) {
|
|
98
|
-
var _rawIdxState$messages, _context2;
|
|
99
|
-
|
|
100
|
-
let messages = [];
|
|
101
|
-
const {
|
|
102
|
-
rawIdxState,
|
|
103
|
-
neededToProceed
|
|
104
|
-
} = idxResponse; // Handle global messages
|
|
105
|
-
|
|
106
|
-
const globalMessages = (_rawIdxState$messages = rawIdxState.messages) === null || _rawIdxState$messages === void 0 ? void 0 : (0, _map.default)(_context2 = _rawIdxState$messages.value).call(_context2, message => message);
|
|
107
|
-
|
|
108
|
-
if (globalMessages) {
|
|
109
|
-
messages = [...messages, ...globalMessages];
|
|
110
|
-
} // Handle field messages for current flow
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
for (let remediation of neededToProceed) {
|
|
114
|
-
const fieldMessages = _remediators.Remediator.getMessages(remediation);
|
|
115
|
-
|
|
116
|
-
if (fieldMessages) {
|
|
117
|
-
messages = [...messages, ...fieldMessages];
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
return messages;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
88
|
function getNextStep(remediator, idxResponse) {
|
|
125
89
|
const nextStep = remediator.getNextStep(idxResponse.context);
|
|
126
|
-
const canSkip = canSkipFn(idxResponse);
|
|
127
|
-
const canResend = canResendFn(idxResponse);
|
|
90
|
+
const canSkip = (0, _util.canSkipFn)(idxResponse);
|
|
91
|
+
const canResend = (0, _util.canResendFn)(idxResponse);
|
|
128
92
|
return { ...nextStep,
|
|
129
93
|
...(canSkip && {
|
|
130
94
|
canSkip
|
|
@@ -137,24 +101,27 @@ function getNextStep(remediator, idxResponse) {
|
|
|
137
101
|
|
|
138
102
|
function handleIdxError(e, remediator) {
|
|
139
103
|
// Handle idx messages
|
|
140
|
-
const
|
|
104
|
+
const idxResponse = (0, _idxJs.isIdxResponse)(e) ? e : null;
|
|
141
105
|
|
|
142
|
-
if (!
|
|
106
|
+
if (!idxResponse) {
|
|
143
107
|
// Thrown error terminates the interaction with idx
|
|
144
108
|
throw e;
|
|
145
109
|
}
|
|
146
110
|
|
|
147
|
-
|
|
148
|
-
const
|
|
111
|
+
idxResponse.requestDidSucceed = false;
|
|
112
|
+
const terminal = (0, _util.isTerminalResponse)(idxResponse);
|
|
113
|
+
const messages = (0, _util.getMessagesFromResponse)(idxResponse);
|
|
149
114
|
|
|
150
115
|
if (terminal) {
|
|
151
116
|
return {
|
|
117
|
+
idxResponse,
|
|
152
118
|
terminal,
|
|
153
119
|
messages
|
|
154
120
|
};
|
|
155
121
|
} else {
|
|
156
|
-
const nextStep = remediator && getNextStep(remediator,
|
|
122
|
+
const nextStep = remediator && getNextStep(remediator, idxResponse);
|
|
157
123
|
return {
|
|
124
|
+
idxResponse,
|
|
158
125
|
messages,
|
|
159
126
|
...(nextStep && {
|
|
160
127
|
nextStep
|
|
@@ -164,10 +131,10 @@ function handleIdxError(e, remediator) {
|
|
|
164
131
|
}
|
|
165
132
|
|
|
166
133
|
function getActionFromValues(values, idxResponse) {
|
|
167
|
-
var
|
|
134
|
+
var _context2;
|
|
168
135
|
|
|
169
136
|
// Currently support resend actions only
|
|
170
|
-
return (0, _find.default)(
|
|
137
|
+
return (0, _find.default)(_context2 = (0, _keys.default)(idxResponse.actions)).call(_context2, action => !!values.resend && (0, _includes.default)(action).call(action, '-resend'));
|
|
171
138
|
}
|
|
172
139
|
|
|
173
140
|
function removeActionFromValues(values) {
|
|
@@ -194,11 +161,12 @@ async function remediate(idxResponse, values, options) {
|
|
|
194
161
|
} // Reach to terminal state
|
|
195
162
|
|
|
196
163
|
|
|
197
|
-
const terminal = isTerminalResponse(idxResponse);
|
|
198
|
-
const messages =
|
|
164
|
+
const terminal = (0, _util.isTerminalResponse)(idxResponse);
|
|
165
|
+
const messages = (0, _util.getMessagesFromResponse)(idxResponse);
|
|
199
166
|
|
|
200
167
|
if (terminal) {
|
|
201
168
|
return {
|
|
169
|
+
idxResponse,
|
|
202
170
|
terminal,
|
|
203
171
|
messages
|
|
204
172
|
};
|
|
@@ -206,26 +174,32 @@ async function remediate(idxResponse, values, options) {
|
|
|
206
174
|
|
|
207
175
|
|
|
208
176
|
const actionFromValues = getActionFromValues(values, idxResponse);
|
|
209
|
-
const
|
|
177
|
+
const actionFromOptions = options.actions || [];
|
|
178
|
+
const actions = [...actionFromOptions, ...(actionFromValues && [actionFromValues] || [])];
|
|
210
179
|
|
|
211
180
|
if (actions) {
|
|
212
181
|
for (let action of actions) {
|
|
213
182
|
let valuesWithoutExecutedAction = removeActionFromValues(values);
|
|
183
|
+
let optionsWithoutExecutedAction = { ...options,
|
|
184
|
+
actions: (0, _filter.default)(actionFromOptions).call(actionFromOptions, entry => entry !== action)
|
|
185
|
+
};
|
|
214
186
|
|
|
215
187
|
if (typeof idxResponse.actions[action] === 'function') {
|
|
216
188
|
try {
|
|
217
189
|
idxResponse = await idxResponse.actions[action]();
|
|
190
|
+
idxResponse.requestDidSucceed = true;
|
|
218
191
|
} catch (e) {
|
|
219
192
|
return handleIdxError(e, remediators);
|
|
220
193
|
}
|
|
221
194
|
|
|
222
195
|
if (action === 'cancel') {
|
|
223
196
|
return {
|
|
197
|
+
idxResponse,
|
|
224
198
|
canceled: true
|
|
225
199
|
};
|
|
226
200
|
}
|
|
227
201
|
|
|
228
|
-
return remediate(idxResponse, valuesWithoutExecutedAction,
|
|
202
|
+
return remediate(idxResponse, valuesWithoutExecutedAction, optionsWithoutExecutedAction); // recursive call
|
|
229
203
|
} // search for action in remediation list
|
|
230
204
|
|
|
231
205
|
|
|
@@ -236,24 +210,39 @@ async function remediate(idxResponse, values, options) {
|
|
|
236
210
|
if (remediationAction) {
|
|
237
211
|
try {
|
|
238
212
|
idxResponse = await idxResponse.proceed(action, {});
|
|
213
|
+
idxResponse.requestDidSucceed = true;
|
|
239
214
|
} catch (e) {
|
|
240
215
|
return handleIdxError(e, remediators);
|
|
241
216
|
}
|
|
242
217
|
|
|
243
|
-
return remediate(idxResponse, values,
|
|
218
|
+
return remediate(idxResponse, values, optionsWithoutExecutedAction); // recursive call
|
|
244
219
|
}
|
|
245
220
|
}
|
|
246
221
|
}
|
|
247
222
|
|
|
248
223
|
const remediator = getRemediator(neededToProceed, values, options);
|
|
249
224
|
|
|
250
|
-
if (!remediator && flow === 'default') {
|
|
251
|
-
return {
|
|
252
|
-
idxResponse
|
|
253
|
-
};
|
|
254
|
-
}
|
|
255
|
-
|
|
256
225
|
if (!remediator) {
|
|
226
|
+
if (options.step) {
|
|
227
|
+
values = (0, _util.filterValuesForRemediation)(idxResponse, values); // include only requested values
|
|
228
|
+
|
|
229
|
+
try {
|
|
230
|
+
idxResponse = await idxResponse.proceed(options.step, values);
|
|
231
|
+
idxResponse.requestDidSucceed = true;
|
|
232
|
+
return {
|
|
233
|
+
idxResponse
|
|
234
|
+
};
|
|
235
|
+
} catch (e) {
|
|
236
|
+
return handleIdxError(e);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
if (flow === 'default') {
|
|
241
|
+
return {
|
|
242
|
+
idxResponse
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
|
|
257
246
|
throw new _errors.AuthSdkError(`
|
|
258
247
|
No remediation can match current flow, check policy settings in your org.
|
|
259
248
|
Remediations: [${(0, _reduce.default)(neededToProceed).call(neededToProceed, (acc, curr) => acc ? acc + ' ,' + curr.name : curr.name, '')}]
|
|
@@ -263,6 +252,7 @@ async function remediate(idxResponse, values, options) {
|
|
|
263
252
|
if (messages.length) {
|
|
264
253
|
const nextStep = getNextStep(remediator, idxResponse);
|
|
265
254
|
return {
|
|
255
|
+
idxResponse,
|
|
266
256
|
nextStep,
|
|
267
257
|
messages
|
|
268
258
|
};
|
|
@@ -281,10 +271,13 @@ async function remediate(idxResponse, values, options) {
|
|
|
281
271
|
const data = remediator.getData();
|
|
282
272
|
|
|
283
273
|
try {
|
|
284
|
-
idxResponse = await idxResponse.proceed(name, data);
|
|
274
|
+
idxResponse = await idxResponse.proceed(name, data);
|
|
275
|
+
idxResponse.requestDidSucceed = true; // We may want to trim the values bag for the next remediation
|
|
285
276
|
// Let the remediator decide what the values should be (default to current values)
|
|
286
277
|
|
|
287
278
|
values = remediator.getValuesAfterProceed();
|
|
279
|
+
delete options.step; // do not re-use the step
|
|
280
|
+
|
|
288
281
|
return remediate(idxResponse, values, options); // recursive call
|
|
289
282
|
} catch (e) {
|
|
290
283
|
return handleIdxError(e, remediator);
|
package/cjs/idx/remediate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/idx/remediate.ts"],"names":["getRemediator","idxRemediations","values","options","remediators","remediator","step","remediation","name","T","remediatorCandidates","isRemeditionInFlow","canRemediate","push","isTerminalResponse","idxResponse","neededToProceed","interactionCode","length","canSkipFn","some","canResendFn","actions","actionName","getIdxMessages","messages","rawIdxState","globalMessages","value","message","fieldMessages","Remediator","getMessages","getNextStep","nextStep","context","canSkip","canResend","handleIdxError","e","idxState","terminal","getActionFromValues","action","resend","removeActionFromValues","undefined","remediate","flow","actionFromValues","valuesWithoutExecutedAction","canceled","remediationAction","proceed","AuthSdkError","acc","curr","getName","data","getData","getValuesAfterProceed"],"mappings":"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","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\n/* eslint-disable max-statements, max-depth, complexity */\nimport { AuthSdkError } from '../errors';\nimport { Remediator, RemediationValues } from './remediators';\nimport { NextStep, IdxMessage, FlowIdentifier } from './types';\nimport { RemediationFlow } from './flow';\nimport { \n IdxResponse, \n IdxRemediation,\n isIdxResponse, \n} from './types/idx-js';\n\ninterface RemediationResponse {\n idxResponse?: IdxResponse;\n nextStep?: NextStep;\n messages?: IdxMessage[];\n terminal?: boolean;\n canceled?: boolean;\n}\nexport interface RemediateOptions {\n remediators?: RemediationFlow;\n actions?: string[];\n flow?: FlowIdentifier;\n step?: string;\n}\n\n// Return first match idxRemediation in allowed remediators\nexport function getRemediator(\n idxRemediations: IdxRemediation[],\n values: RemediationValues,\n options: RemediateOptions,\n): Remediator {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const remediators = options.remediators!;\n\n let remediator;\n // remediation name specified by caller - fast-track remediator lookup \n if (options.step) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const remediation = idxRemediations.find(({ name }) => name === options.step)!;\n const T = remediators[remediation.name];\n return new T(remediation, values);\n }\n\n const remediatorCandidates = [];\n for (let remediation of idxRemediations) {\n const isRemeditionInFlow = Object.keys(remediators as object).includes(remediation.name);\n if (!isRemeditionInFlow) {\n continue;\n }\n\n const T = remediators[remediation.name];\n remediator = new T(remediation, values);\n if (remediator.canRemediate()) {\n // found the remediator\n return remediator;\n }\n // remediator cannot handle the current values\n // maybe return for next step\n remediatorCandidates.push(remediator as never); \n }\n \n return remediatorCandidates[0];\n}\n\nfunction isTerminalResponse(idxResponse: IdxResponse) {\n const { neededToProceed, interactionCode } = idxResponse;\n return !neededToProceed.length && !interactionCode;\n}\n\nfunction canSkipFn(idxResponse: IdxResponse) {\n return idxResponse.neededToProceed.some(({ name }) => name === 'skip');\n}\n\nfunction canResendFn(idxResponse: IdxResponse) {\n return Object.keys(idxResponse.actions).some(actionName => actionName.includes('resend'));\n}\n\nfunction getIdxMessages(idxResponse: IdxResponse): IdxMessage[] {\n let messages = [];\n const { rawIdxState, neededToProceed } = idxResponse;\n\n // Handle global messages\n const globalMessages = rawIdxState.messages?.value.map(message => message);\n if (globalMessages) {\n messages = [...messages, ...globalMessages] as never;\n }\n\n // Handle field messages for current flow\n for (let remediation of neededToProceed) {\n const fieldMessages = Remediator.getMessages(remediation);\n if (fieldMessages) {\n messages = [...messages, ...fieldMessages] as never;\n }\n }\n\n return messages;\n}\n\nfunction getNextStep(\n remediator: Remediator, idxResponse: IdxResponse\n): NextStep {\n const nextStep = remediator.getNextStep(idxResponse.context);\n const canSkip = canSkipFn(idxResponse);\n const canResend = canResendFn(idxResponse);\n return {\n ...nextStep,\n ...(canSkip && {canSkip}),\n ...(canResend && {canResend}),\n };\n}\n\nfunction handleIdxError(e, remediator?) {\n // Handle idx messages\n const idxState = isIdxResponse(e) ? e : null;\n if (!idxState) {\n // Thrown error terminates the interaction with idx\n throw e;\n }\n const terminal = isTerminalResponse(idxState);\n const messages = getIdxMessages(idxState);\n if (terminal) {\n return { terminal, messages };\n } else {\n const nextStep = remediator && getNextStep(remediator, idxState);\n return { \n messages, \n ...(nextStep && { nextStep }) \n };\n }\n}\n\nfunction getActionFromValues(values, idxResponse: IdxResponse): string | undefined {\n // Currently support resend actions only\n return Object.keys(idxResponse.actions).find(action => !!values.resend && action.includes('-resend'));\n}\n\nfunction removeActionFromValues(values) {\n // Currently support resend actions only\n values.resend = undefined;\n return values;\n}\n\n// This function is called recursively until it reaches success or cannot be remediated\nexport async function remediate(\n idxResponse: IdxResponse,\n values: RemediationValues,\n options: RemediateOptions\n): Promise<RemediationResponse> {\n let { neededToProceed, interactionCode } = idxResponse;\n const { remediators, flow } = options;\n\n // If the response contains an interaction code, there is no need to remediate\n if (interactionCode) {\n return { idxResponse };\n }\n\n // Reach to terminal state\n const terminal = isTerminalResponse(idxResponse);\n const messages = getIdxMessages(idxResponse);\n if (terminal) {\n return { terminal, messages };\n }\n \n // Try actions in idxResponse first\n const actionFromValues = getActionFromValues(values, idxResponse);\n const actions = [\n ...options.actions || [],\n ...(actionFromValues && [actionFromValues] || []),\n ];\n if (actions) {\n for (let action of actions) {\n let valuesWithoutExecutedAction = removeActionFromValues(values);\n if (typeof idxResponse.actions[action] === 'function') {\n try {\n idxResponse = await idxResponse.actions[action]();\n } catch (e) {\n return handleIdxError(e, remediators);\n }\n if (action === 'cancel') {\n return { canceled: true };\n }\n return remediate(idxResponse, valuesWithoutExecutedAction, options); // recursive call\n }\n\n // search for action in remediation list\n const remediationAction = neededToProceed.find(({ name }) => name === action);\n if (remediationAction) {\n try {\n idxResponse = await idxResponse.proceed(action, {});\n }\n catch (e) {\n return handleIdxError(e, remediators);\n }\n\n return remediate(idxResponse, values, options); // recursive call\n }\n }\n }\n\n const remediator = getRemediator(neededToProceed, values, options);\n if (!remediator && flow === 'default') {\n return { idxResponse };\n }\n\n if (!remediator) {\n throw new AuthSdkError(`\n No remediation can match current flow, check policy settings in your org.\n Remediations: [${neededToProceed.reduce((acc, curr) => acc ? acc + ' ,' + curr.name : curr.name, '')}]\n `);\n }\n\n if (messages.length) {\n const nextStep = getNextStep(remediator, idxResponse);\n return { nextStep, messages };\n }\n\n // Return next step to the caller\n if (!remediator.canRemediate()) {\n const nextStep = getNextStep(remediator, idxResponse);\n return { idxResponse, nextStep };\n }\n\n const name = remediator.getName();\n const data = remediator.getData();\n try {\n idxResponse = await idxResponse.proceed(name, data);\n\n // We may want to trim the values bag for the next remediation\n // Let the remediator decide what the values should be (default to current values)\n values = remediator.getValuesAfterProceed();\n return remediate(idxResponse, values, options); // recursive call\n } catch (e) {\n return handleIdxError(e, remediator);\n }\n}\n"],"file":"remediate.js"}
|
|
1
|
+
{"version":3,"sources":["../../../lib/idx/remediate.ts"],"names":["getRemediator","idxRemediations","values","options","remediators","remediator","step","remediation","name","T","undefined","remediatorCandidates","isRemeditionInFlow","canRemediate","push","getNextStep","idxResponse","nextStep","context","canSkip","canResend","handleIdxError","e","requestDidSucceed","terminal","messages","getActionFromValues","actions","action","resend","removeActionFromValues","remediate","neededToProceed","interactionCode","flow","actionFromValues","actionFromOptions","valuesWithoutExecutedAction","optionsWithoutExecutedAction","entry","canceled","remediationAction","proceed","AuthSdkError","acc","curr","length","getName","data","getData","getValuesAfterProceed"],"mappings":"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","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\n/* eslint-disable max-statements, max-depth, complexity */\nimport { AuthSdkError } from '../errors';\nimport { Remediator, RemediationValues } from './remediators';\nimport { NextStep, IdxMessage, FlowIdentifier } from './types';\nimport { RemediationFlow } from './flow';\nimport { \n IdxResponse, \n IdxRemediation,\n isIdxResponse, \n} from './types/idx-js';\nimport {\n canResendFn,\n canSkipFn,\n getMessagesFromResponse,\n isTerminalResponse,\n filterValuesForRemediation\n} from './util';\nimport { warn } from '../util';\n\ninterface RemediationResponse {\n idxResponse: IdxResponse;\n nextStep?: NextStep;\n messages?: IdxMessage[];\n terminal?: boolean;\n canceled?: boolean;\n}\nexport interface RemediateOptions {\n remediators?: RemediationFlow;\n actions?: string[];\n flow?: FlowIdentifier;\n step?: string;\n}\n\n// Return first match idxRemediation in allowed remediators\nexport function getRemediator(\n idxRemediations: IdxRemediation[],\n values: RemediationValues,\n options: RemediateOptions,\n): Remediator | undefined {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const remediators = options.remediators!;\n\n let remediator;\n // remediation name specified by caller - fast-track remediator lookup \n if (options.step) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const remediation = idxRemediations.find(({ name }) => name === options.step)!;\n if (remediation) {\n const T = remediation ? remediators[remediation.name] : undefined;\n return T ? new T(remediation, values, options) : undefined;\n } else {\n // step was specified, but remediation was not found. This is unexpected!\n warn(`step \"${options.step}\" did not match any remediations`);\n return;\n }\n }\n\n const remediatorCandidates = [];\n for (let remediation of idxRemediations) {\n const isRemeditionInFlow = Object.keys(remediators as object).includes(remediation.name);\n if (!isRemeditionInFlow) {\n continue;\n }\n\n const T = remediators[remediation.name];\n remediator = new T(remediation, values, options);\n if (remediator.canRemediate()) {\n // found the remediator\n return remediator;\n }\n // remediator cannot handle the current values\n // maybe return for next step\n remediatorCandidates.push(remediator as never); \n }\n \n return remediatorCandidates[0];\n}\n\nfunction getNextStep(\n remediator: Remediator, idxResponse: IdxResponse\n): NextStep {\n const nextStep = remediator.getNextStep(idxResponse.context);\n const canSkip = canSkipFn(idxResponse);\n const canResend = canResendFn(idxResponse);\n return {\n ...nextStep,\n ...(canSkip && {canSkip}),\n ...(canResend && {canResend}),\n };\n}\n\nfunction handleIdxError(e, remediator?): RemediationResponse {\n // Handle idx messages\n const idxResponse = isIdxResponse(e) ? e : null;\n if (!idxResponse) {\n // Thrown error terminates the interaction with idx\n throw e;\n }\n idxResponse.requestDidSucceed = false;\n const terminal = isTerminalResponse(idxResponse);\n const messages = getMessagesFromResponse(idxResponse);\n if (terminal) {\n return { idxResponse, terminal, messages };\n } else {\n const nextStep = remediator && getNextStep(remediator, idxResponse);\n return { \n idxResponse,\n messages, \n ...(nextStep && { nextStep }) \n };\n }\n}\n\nfunction getActionFromValues(values, idxResponse: IdxResponse): string | undefined {\n // Currently support resend actions only\n return Object.keys(idxResponse.actions).find(action => !!values.resend && action.includes('-resend'));\n}\n\nfunction removeActionFromValues(values) {\n // Currently support resend actions only\n values.resend = undefined;\n return values;\n}\n\n// This function is called recursively until it reaches success or cannot be remediated\nexport async function remediate(\n idxResponse: IdxResponse,\n values: RemediationValues,\n options: RemediateOptions\n): Promise<RemediationResponse> {\n let { neededToProceed, interactionCode } = idxResponse;\n const { remediators, flow } = options;\n\n // If the response contains an interaction code, there is no need to remediate\n if (interactionCode) {\n return { idxResponse };\n }\n\n // Reach to terminal state\n const terminal = isTerminalResponse(idxResponse);\n const messages = getMessagesFromResponse(idxResponse);\n if (terminal) {\n return { idxResponse, terminal, messages };\n }\n \n // Try actions in idxResponse first\n const actionFromValues = getActionFromValues(values, idxResponse);\n const actionFromOptions = options.actions || [];\n const actions = [\n ...actionFromOptions,\n ...(actionFromValues && [actionFromValues] || []),\n ];\n if (actions) {\n for (let action of actions) {\n let valuesWithoutExecutedAction = removeActionFromValues(values);\n let optionsWithoutExecutedAction = { ...options, actions: actionFromOptions.filter(entry => entry !== action) };\n if (typeof idxResponse.actions[action] === 'function') {\n try {\n idxResponse = await idxResponse.actions[action]();\n idxResponse.requestDidSucceed = true;\n } catch (e) {\n return handleIdxError(e, remediators);\n }\n if (action === 'cancel') {\n return { idxResponse, canceled: true };\n }\n return remediate(idxResponse, valuesWithoutExecutedAction, optionsWithoutExecutedAction); // recursive call\n }\n\n // search for action in remediation list\n const remediationAction = neededToProceed.find(({ name }) => name === action);\n if (remediationAction) {\n try {\n idxResponse = await idxResponse.proceed(action, {});\n idxResponse.requestDidSucceed = true;\n }\n catch (e) {\n return handleIdxError(e, remediators);\n }\n\n return remediate(idxResponse, values, optionsWithoutExecutedAction); // recursive call\n }\n }\n }\n\n const remediator = getRemediator(neededToProceed, values, options);\n if (!remediator) {\n if (options.step) {\n values = filterValuesForRemediation(idxResponse, values); // include only requested values\n try {\n idxResponse = await idxResponse.proceed(options.step, values);\n idxResponse.requestDidSucceed = true;\n return { idxResponse };\n } catch(e) {\n return handleIdxError(e);\n }\n }\n if (flow === 'default') {\n return { idxResponse };\n }\n throw new AuthSdkError(`\n No remediation can match current flow, check policy settings in your org.\n Remediations: [${neededToProceed.reduce((acc, curr) => acc ? acc + ' ,' + curr.name : curr.name, '')}]\n `);\n }\n\n if (messages.length) {\n const nextStep = getNextStep(remediator, idxResponse);\n return { idxResponse, nextStep, messages };\n }\n\n // Return next step to the caller\n if (!remediator.canRemediate()) {\n const nextStep = getNextStep(remediator, idxResponse);\n return { idxResponse, nextStep };\n }\n\n const name = remediator.getName();\n const data = remediator.getData();\n try {\n idxResponse = await idxResponse.proceed(name, data);\n idxResponse.requestDidSucceed = true;\n // We may want to trim the values bag for the next remediation\n // Let the remediator decide what the values should be (default to current values)\n values = remediator.getValuesAfterProceed();\n delete options.step; // do not re-use the step\n return remediate(idxResponse, values, options); // recursive call\n } catch (e) {\n return handleIdxError(e, remediator);\n }\n}\n"],"file":"remediate.js"}
|
|
@@ -62,12 +62,16 @@ class AuthenticatorEnrollmentData extends _AuthenticatorData.AuthenticatorData {
|
|
|
62
62
|
const {
|
|
63
63
|
phoneNumber
|
|
64
64
|
} = (0, _values.default)(this);
|
|
65
|
-
|
|
65
|
+
|
|
66
|
+
if (!data && !phoneNumber) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return { ...(data && data),
|
|
66
71
|
...(phoneNumber && {
|
|
67
72
|
phoneNumber
|
|
68
73
|
})
|
|
69
74
|
};
|
|
70
|
-
return data.phoneNumber && data.methodType ? data : null;
|
|
71
75
|
}
|
|
72
76
|
|
|
73
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../lib/idx/remediators/AuthenticatorEnrollmentData.ts"],"names":["AuthenticatorEnrollmentData","AuthenticatorData","mapAuthenticator","authenticatorData","getAuthenticatorData","authenticatorFromRemediation","remediation","id","form","value","name","methodType","phoneNumber","getInputAuthenticator","type","required","label","mapAuthenticatorDataFromValues","data"],"mappings":";;;;;;;;;;;;AAcA;;AACA;;AAfA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAUO,MAAMA,2BAAN,SAA0CC,oCAA1C,CAA4D;AAKjEC,EAAAA,gBAAgB,GAAG;AAAA;;AACjB,UAAMC,iBAAiB,GAAG,KAAKC,oBAAL,EAA1B;AACA,UAAMC,4BAA4B,GAAG,2CAAgC,KAAKC,WAArC,CAArC;AACA,WAAO;AACLC,MAAAA,EAAE,EAAE,8BAAAF,4BAA4B,CAACG,IAA7B,CAAmCC,KAAnC,iBACI,CAAC;AAAEC,QAAAA;AAAF,OAAD,KAAcA,IAAI,KAAK,IAD3B,EACkCD,KAFjC;AAGLE,MAAAA,UAAU,EAAER,iBAAiB,CAAEQ,UAH1B;AAILC,MAAAA,WAAW,EAAET,iBAAiB,CAAES;AAJ3B,KAAP;AAMD;;AAEDC,EAAAA,qBAAqB,GAAG;AACtB,WAAO,CACL;AAAEH,MAAAA,IAAI,EAAE,YAAR;AAAsBI,MAAAA,IAAI,EAAE,QAA5B;AAAsCC,MAAAA,QAAQ,EAAE;AAAhD,KADK,EAEL;AAAEL,MAAAA,IAAI,EAAE,aAAR;AAAuBI,MAAAA,IAAI,EAAE,QAA7B;AAAuCC,MAAAA,QAAQ,EAAE,IAAjD;AAAuDC,MAAAA,KAAK,EAAE;AAA9D,KAFK,CAAP;AAID;;AAESC,EAAAA,8BAA8B,CAACC,IAAD,EAAQ;AAC9C;AACAA,IAAAA,IAAI,GAAG,MAAMD,8BAAN,CAAqCC,IAArC,CAAP,CAF8C,CAG9C;;AACA,UAAM;AAAEN,MAAAA;AAAF,6BAAkB,IAAlB,CAAN
|
|
1
|
+
{"version":3,"sources":["../../../../lib/idx/remediators/AuthenticatorEnrollmentData.ts"],"names":["AuthenticatorEnrollmentData","AuthenticatorData","mapAuthenticator","authenticatorData","getAuthenticatorData","authenticatorFromRemediation","remediation","id","form","value","name","methodType","phoneNumber","getInputAuthenticator","type","required","label","mapAuthenticatorDataFromValues","data"],"mappings":";;;;;;;;;;;;AAcA;;AACA;;AAfA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAUO,MAAMA,2BAAN,SAA0CC,oCAA1C,CAA4D;AAKjEC,EAAAA,gBAAgB,GAAG;AAAA;;AACjB,UAAMC,iBAAiB,GAAG,KAAKC,oBAAL,EAA1B;AACA,UAAMC,4BAA4B,GAAG,2CAAgC,KAAKC,WAArC,CAArC;AACA,WAAO;AACLC,MAAAA,EAAE,EAAE,8BAAAF,4BAA4B,CAACG,IAA7B,CAAmCC,KAAnC,iBACI,CAAC;AAAEC,QAAAA;AAAF,OAAD,KAAcA,IAAI,KAAK,IAD3B,EACkCD,KAFjC;AAGLE,MAAAA,UAAU,EAAER,iBAAiB,CAAEQ,UAH1B;AAILC,MAAAA,WAAW,EAAET,iBAAiB,CAAES;AAJ3B,KAAP;AAMD;;AAEDC,EAAAA,qBAAqB,GAAG;AACtB,WAAO,CACL;AAAEH,MAAAA,IAAI,EAAE,YAAR;AAAsBI,MAAAA,IAAI,EAAE,QAA5B;AAAsCC,MAAAA,QAAQ,EAAE;AAAhD,KADK,EAEL;AAAEL,MAAAA,IAAI,EAAE,aAAR;AAAuBI,MAAAA,IAAI,EAAE,QAA7B;AAAuCC,MAAAA,QAAQ,EAAE,IAAjD;AAAuDC,MAAAA,KAAK,EAAE;AAA9D,KAFK,CAAP;AAID;;AAESC,EAAAA,8BAA8B,CAACC,IAAD,EAAQ;AAC9C;AACAA,IAAAA,IAAI,GAAG,MAAMD,8BAAN,CAAqCC,IAArC,CAAP,CAF8C,CAG9C;;AACA,UAAM;AAAEN,MAAAA;AAAF,6BAAkB,IAAlB,CAAN;;AACA,QAAI,CAACM,IAAD,IAAS,CAACN,WAAd,EAA2B;AACzB;AACD;;AAED,WAAO,EACL,IAAIM,IAAI,IAAIA,IAAZ,CADK;AAEL,UAAIN,WAAW,IAAI;AAAEA,QAAAA;AAAF,OAAnB;AAFK,KAAP;AAID;;AApCgE;;;8BAAtDZ,2B,qBACc,+B","sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\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 { AuthenticatorData, AuthenticatorDataValues } from './Base/AuthenticatorData';\nimport { getAuthenticatorFromRemediation } from './util';\n\nexport type AuthenticatorEnrollmentDataValues = AuthenticatorDataValues & {\n phoneNumber?: string;\n resend?: boolean; // resend is not a remediator value - revise when IdxResponse structure is updated\n}\nexport class AuthenticatorEnrollmentData extends AuthenticatorData {\n static remediationName = 'authenticator-enrollment-data';\n\n values!: AuthenticatorEnrollmentDataValues;\n\n mapAuthenticator() {\n const authenticatorData = this.getAuthenticatorData();\n const authenticatorFromRemediation = getAuthenticatorFromRemediation(this.remediation)!;\n return { \n id: authenticatorFromRemediation.form!.value\n .find(({ name }) => name === 'id')!.value,\n methodType: authenticatorData!.methodType,\n phoneNumber: authenticatorData!.phoneNumber,\n };\n }\n\n getInputAuthenticator() {\n return [\n { name: 'methodType', type: 'string', required: true },\n { name: 'phoneNumber', type: 'string', required: true, label: 'Phone Number' },\n ];\n }\n\n protected mapAuthenticatorDataFromValues(data?) {\n // get mapped authenticator from base class\n data = super.mapAuthenticatorDataFromValues(data);\n // add phoneNumber to authenticator if it exists in values\n const { phoneNumber } = this.values;\n if (!data && !phoneNumber) {\n return;\n }\n\n return { \n ...(data && data), \n ...(phoneNumber && { phoneNumber }) \n };\n }\n\n}\n"],"file":"AuthenticatorEnrollmentData.js"}
|
|
@@ -8,6 +8,12 @@ var _reduce = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-sta
|
|
|
8
8
|
|
|
9
9
|
var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
|
|
10
10
|
|
|
11
|
+
var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
|
|
12
|
+
|
|
13
|
+
var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
|
|
14
|
+
|
|
15
|
+
var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/values"));
|
|
16
|
+
|
|
11
17
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
12
18
|
|
|
13
19
|
var _errors = require("../../errors");
|
|
@@ -44,14 +50,11 @@ class AuthenticatorVerificationData extends _AuthenticatorData.AuthenticatorData
|
|
|
44
50
|
}
|
|
45
51
|
|
|
46
52
|
mapAuthenticator() {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
const authenticatorData = this.getAuthenticatorData();
|
|
50
|
-
const authenticatorFromRemediation = this.getAuthenticatorFromRemediation(); // auto proceed with the only methodType option
|
|
51
|
-
|
|
53
|
+
// auto proceed with the only methodType option
|
|
52
54
|
if (this.shouldProceedWithEmailAuthenticator) {
|
|
53
55
|
var _authenticatorFromRem, _context;
|
|
54
56
|
|
|
57
|
+
const authenticatorFromRemediation = this.getAuthenticatorFromRemediation();
|
|
55
58
|
return (_authenticatorFromRem = authenticatorFromRemediation.form) === null || _authenticatorFromRem === void 0 ? void 0 : (0, _reduce.default)(_context = _authenticatorFromRem.value).call(_context, (acc, curr) => {
|
|
56
59
|
if (curr.value) {
|
|
57
60
|
acc[curr.name] = curr.value;
|
|
@@ -63,25 +66,16 @@ class AuthenticatorVerificationData extends _AuthenticatorData.AuthenticatorData
|
|
|
63
66
|
|
|
64
67
|
return acc;
|
|
65
68
|
}, {});
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
return {
|
|
70
|
-
id: (0, _find.default)(_context2 = authenticatorFromRemediation.form.value).call(_context2, ({
|
|
71
|
-
name
|
|
72
|
-
}) => name === 'id').value,
|
|
73
|
-
enrollmentId: (_value$find = (0, _find.default)(_context3 = authenticatorFromRemediation.form.value).call(_context3, ({
|
|
74
|
-
name
|
|
75
|
-
}) => name === 'enrollmentId')) === null || _value$find === void 0 ? void 0 : _value$find.value,
|
|
76
|
-
methodType: authenticatorData === null || authenticatorData === void 0 ? void 0 : authenticatorData.methodType
|
|
77
|
-
};
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
return this.getAuthenticatorData();
|
|
78
72
|
}
|
|
79
73
|
|
|
80
74
|
getInputAuthenticator() {
|
|
81
|
-
var
|
|
75
|
+
var _context2;
|
|
82
76
|
|
|
83
77
|
const authenticator = this.getAuthenticatorFromRemediation();
|
|
84
|
-
const methodType = (0, _find.default)(
|
|
78
|
+
const methodType = (0, _find.default)(_context2 = authenticator.form.value).call(_context2, ({
|
|
85
79
|
name
|
|
86
80
|
}) => name === 'methodType'); // if has methodType in form, let user select the methodType
|
|
87
81
|
|
|
@@ -98,6 +92,16 @@ class AuthenticatorVerificationData extends _AuthenticatorData.AuthenticatorData
|
|
|
98
92
|
return inputs;
|
|
99
93
|
}
|
|
100
94
|
|
|
95
|
+
getValuesAfterProceed() {
|
|
96
|
+
var _context3;
|
|
97
|
+
|
|
98
|
+
this.values = super.getValuesAfterProceed();
|
|
99
|
+
let trimmedValues = (0, _filter.default)(_context3 = (0, _keys.default)((0, _values.default)(this))).call(_context3, valueKey => valueKey !== 'authenticator');
|
|
100
|
+
return (0, _reduce.default)(trimmedValues).call(trimmedValues, (values, valueKey) => ({ ...values,
|
|
101
|
+
[valueKey]: (0, _values.default)(this)[valueKey]
|
|
102
|
+
}), {});
|
|
103
|
+
}
|
|
104
|
+
|
|
101
105
|
}
|
|
102
106
|
|
|
103
107
|
exports.AuthenticatorVerificationData = AuthenticatorVerificationData;
|