@okta/okta-auth-js 6.8.1 → 6.9.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 +4 -0
- package/cjs/OktaUserAgent.js +2 -2
- package/cjs/idx/interact.js +5 -1
- package/cjs/idx/interact.js.map +1 -1
- package/cjs/idx/run.js +4 -2
- package/cjs/idx/run.js.map +1 -1
- package/cjs/idx/types/options.js.map +1 -1
- package/dist/myaccount.umd.js.map +1 -1
- package/dist/okta-auth-js.min.js +1 -1
- package/dist/okta-auth-js.min.js.map +1 -1
- package/dist/okta-auth-js.polyfill.js +1 -1
- package/dist/okta-auth-js.polyfill.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/browser/OktaUserAgent.js +2 -2
- package/esm/browser/idx/interact.js +2 -2
- package/esm/browser/idx/interact.js.map +1 -1
- package/esm/browser/idx/run.js +2 -1
- package/esm/browser/idx/run.js.map +1 -1
- package/esm/node/OktaUserAgent.js +2 -2
- package/esm/node/idx/interact.js +2 -2
- package/esm/node/idx/interact.js.map +1 -1
- package/esm/node/idx/run.js +2 -1
- package/esm/node/idx/run.js.map +1 -1
- package/esm/package.json +1 -1
- package/lib/idx/interact.d.ts +1 -0
- package/lib/idx/types/options.d.ts +1 -0
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
package/cjs/OktaUserAgent.js
CHANGED
|
@@ -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.
|
|
24
|
+
this.environments = [`okta-auth-js/${"6.9.0"}`];
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
addEnvironment(env) {
|
|
@@ -36,7 +36,7 @@ class OktaUserAgent {
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
getVersion() {
|
|
39
|
-
return "6.
|
|
39
|
+
return "6.9.0";
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
maybeAddNodeEnvironment() {
|
package/cjs/idx/interact.js
CHANGED
|
@@ -61,7 +61,8 @@ async function interact(authClient, options = {}) {
|
|
|
61
61
|
codeChallengeMethod,
|
|
62
62
|
activationToken,
|
|
63
63
|
recoveryToken,
|
|
64
|
-
maxAge
|
|
64
|
+
maxAge,
|
|
65
|
+
nonce
|
|
65
66
|
} = meta;
|
|
66
67
|
const clientSecret = options.clientSecret || authClient.options.clientSecret;
|
|
67
68
|
withCredentials = (_withCredentials = withCredentials) !== null && _withCredentials !== void 0 ? _withCredentials : true;
|
|
@@ -89,6 +90,9 @@ async function interact(authClient, options = {}) {
|
|
|
89
90
|
}),
|
|
90
91
|
...(maxAge && {
|
|
91
92
|
max_age: maxAge
|
|
93
|
+
}),
|
|
94
|
+
...(nonce && {
|
|
95
|
+
nonce
|
|
92
96
|
})
|
|
93
97
|
};
|
|
94
98
|
/* eslint-enable camelcase */
|
package/cjs/idx/interact.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interact.js","names":["getResponse","meta","interactionHandle","state","interact","authClient","options","removeNils","getSavedTransactionMeta","createTransactionMeta","baseUrl","getOAuthBaseUrl","clientId","redirectUri","scopes","withCredentials","codeChallenge","codeChallengeMethod","activationToken","recoveryToken","maxAge","clientSecret","url","params","client_id","scope","join","redirect_uri","code_challenge","code_challenge_method","activation_token","recovery_token","client_secret","max_age","headers","resp","httpRequest","method","args","interaction_handle","newMeta","saveTransactionMeta"],"sources":["../../../lib/idx/interact.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\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/* eslint complexity:[0,8] */\nimport { OktaAuthIdxInterface, IdxTransactionMeta, InteractOptions, InteractResponse } from '../types';\nimport { getSavedTransactionMeta, saveTransactionMeta, createTransactionMeta } from './transactionMeta';\nimport { getOAuthBaseUrl } from '../oidc';\nimport { removeNils } from '../util';\nimport { httpRequest } from '../http';\n\n\n/* eslint-disable camelcase */\nexport interface InteractParams {\n client_id: string;\n scope: string;\n redirect_uri: string;\n code_challenge: string;\n code_challenge_method: string;\n state: string;\n activation_token?: string;\n recovery_token?: string;\n client_secret?: string;\n max_age?: string | number;\n}\n/* eslint-enable camelcase */\n\nfunction getResponse(meta: IdxTransactionMeta): InteractResponse {\n return {\n meta,\n interactionHandle: meta.interactionHandle!,\n state: meta.state\n };\n}\n\n// Begin or resume a transaction. Returns an interaction handle\nexport async function interact (\n authClient: OktaAuthIdxInterface, \n options: InteractOptions = {}\n): Promise<InteractResponse> {\n options = removeNils(options);\n\n let meta = getSavedTransactionMeta(authClient, options);\n // If meta exists, it has been validated against all options\n\n if (meta?.interactionHandle) {\n return getResponse(meta); // Saved transaction, return meta\n }\n\n // Create new meta, respecting previous meta if it has been set and is not overridden\n meta = await createTransactionMeta(authClient, { ...meta, ...options });\n const baseUrl = getOAuthBaseUrl(authClient);\n let {\n clientId,\n redirectUri,\n state,\n scopes,\n withCredentials,\n codeChallenge,\n codeChallengeMethod,\n activationToken,\n recoveryToken,\n maxAge\n } = meta as IdxTransactionMeta;\n const clientSecret = options.clientSecret || authClient.options.clientSecret;\n withCredentials = withCredentials ?? true;\n\n /* eslint-disable camelcase */\n const url = `${baseUrl}/v1/interact`;\n const params = {\n client_id: clientId,\n scope: scopes!.join(' '),\n redirect_uri: redirectUri,\n code_challenge: codeChallenge,\n code_challenge_method: codeChallengeMethod,\n state,\n ...(activationToken && { activation_token: activationToken }),\n ...(recoveryToken && { recovery_token: recoveryToken }),\n // X-Device-Token header need to pair with `client_secret`\n // eslint-disable-next-line max-len\n // https://oktawiki.atlassian.net/wiki/spaces/eng/pages/2445902453/Support+Device+Binding+in+interact#Scenario-1%3A-Non-User-Agent-with-Confidential-Client-(top-priority)\n ...(clientSecret && { client_secret: clientSecret }),\n ...(maxAge && { max_age: maxAge })
|
|
1
|
+
{"version":3,"file":"interact.js","names":["getResponse","meta","interactionHandle","state","interact","authClient","options","removeNils","getSavedTransactionMeta","createTransactionMeta","baseUrl","getOAuthBaseUrl","clientId","redirectUri","scopes","withCredentials","codeChallenge","codeChallengeMethod","activationToken","recoveryToken","maxAge","nonce","clientSecret","url","params","client_id","scope","join","redirect_uri","code_challenge","code_challenge_method","activation_token","recovery_token","client_secret","max_age","headers","resp","httpRequest","method","args","interaction_handle","newMeta","saveTransactionMeta"],"sources":["../../../lib/idx/interact.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\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/* eslint complexity:[0,8] */\nimport { OktaAuthIdxInterface, IdxTransactionMeta, InteractOptions, InteractResponse } from '../types';\nimport { getSavedTransactionMeta, saveTransactionMeta, createTransactionMeta } from './transactionMeta';\nimport { getOAuthBaseUrl } from '../oidc';\nimport { removeNils } from '../util';\nimport { httpRequest } from '../http';\n\n\n/* eslint-disable camelcase */\nexport interface InteractParams {\n client_id: string;\n scope: string;\n redirect_uri: string;\n code_challenge: string;\n code_challenge_method: string;\n state: string;\n activation_token?: string;\n recovery_token?: string;\n client_secret?: string;\n max_age?: string | number;\n nonce?: string;\n}\n/* eslint-enable camelcase */\n\nfunction getResponse(meta: IdxTransactionMeta): InteractResponse {\n return {\n meta,\n interactionHandle: meta.interactionHandle!,\n state: meta.state\n };\n}\n\n// Begin or resume a transaction. Returns an interaction handle\nexport async function interact (\n authClient: OktaAuthIdxInterface, \n options: InteractOptions = {}\n): Promise<InteractResponse> {\n options = removeNils(options);\n\n let meta = getSavedTransactionMeta(authClient, options);\n // If meta exists, it has been validated against all options\n\n if (meta?.interactionHandle) {\n return getResponse(meta); // Saved transaction, return meta\n }\n\n // Create new meta, respecting previous meta if it has been set and is not overridden\n meta = await createTransactionMeta(authClient, { ...meta, ...options });\n const baseUrl = getOAuthBaseUrl(authClient);\n let {\n clientId,\n redirectUri,\n state,\n scopes,\n withCredentials,\n codeChallenge,\n codeChallengeMethod,\n activationToken,\n recoveryToken,\n maxAge,\n nonce\n } = meta as IdxTransactionMeta;\n const clientSecret = options.clientSecret || authClient.options.clientSecret;\n withCredentials = withCredentials ?? true;\n\n /* eslint-disable camelcase */\n const url = `${baseUrl}/v1/interact`;\n const params = {\n client_id: clientId,\n scope: scopes!.join(' '),\n redirect_uri: redirectUri,\n code_challenge: codeChallenge,\n code_challenge_method: codeChallengeMethod,\n state,\n ...(activationToken && { activation_token: activationToken }),\n ...(recoveryToken && { recovery_token: recoveryToken }),\n // X-Device-Token header need to pair with `client_secret`\n // eslint-disable-next-line max-len\n // https://oktawiki.atlassian.net/wiki/spaces/eng/pages/2445902453/Support+Device+Binding+in+interact#Scenario-1%3A-Non-User-Agent-with-Confidential-Client-(top-priority)\n ...(clientSecret && { client_secret: clientSecret }),\n ...(maxAge && { max_age: maxAge }),\n ...(nonce && { nonce }),\n } as InteractParams;\n /* eslint-enable camelcase */\n\n const headers = {\n 'Content-Type': 'application/x-www-form-urlencoded',\n };\n\n const resp = await httpRequest(authClient, {\n method: 'POST',\n url,\n headers,\n withCredentials,\n args: params\n });\n const interactionHandle = resp.interaction_handle;\n\n const newMeta = {\n ...meta,\n interactionHandle,\n \n // Options which can be passed into interact() should be saved in the meta\n withCredentials,\n state,\n scopes,\n recoveryToken,\n activationToken\n };\n // Save transaction meta so it can be resumed\n saveTransactionMeta(authClient, newMeta);\n\n return getResponse(newMeta);\n}\n"],"mappings":";;;;AAcA;;AACA;;AACA;;AACA;;AAjBA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;AAsBA;AAEA,SAASA,WAAT,CAAqBC,IAArB,EAAiE;EAC/D,OAAO;IACLA,IADK;IAELC,iBAAiB,EAAED,IAAI,CAACC,iBAFnB;IAGLC,KAAK,EAAEF,IAAI,CAACE;EAHP,CAAP;AAKD,C,CAED;;;AACO,eAAeC,QAAf,CACLC,UADK,EAELC,OAAwB,GAAG,EAFtB,EAGsB;EAAA;;EAC3BA,OAAO,GAAG,IAAAC,gBAAA,EAAWD,OAAX,CAAV;EAEA,IAAIL,IAAI,GAAG,IAAAO,wCAAA,EAAwBH,UAAxB,EAAoCC,OAApC,CAAX,CAH2B,CAI3B;;EAEA,aAAIL,IAAJ,kCAAI,MAAMC,iBAAV,EAA6B;IAC3B,OAAOF,WAAW,CAACC,IAAD,CAAlB,CAD2B,CACD;EAC3B,CAR0B,CAU3B;;;EACAA,IAAI,GAAG,MAAM,IAAAQ,sCAAA,EAAsBJ,UAAtB,EAAkC,EAAE,GAAGJ,IAAL;IAAW,GAAGK;EAAd,CAAlC,CAAb;EACA,MAAMI,OAAO,GAAG,IAAAC,qBAAA,EAAgBN,UAAhB,CAAhB;EACA,IAAI;IACFO,QADE;IAEFC,WAFE;IAGFV,KAHE;IAIFW,MAJE;IAKFC,eALE;IAMFC,aANE;IAOFC,mBAPE;IAQFC,eARE;IASFC,aATE;IAUFC,MAVE;IAWFC;EAXE,IAYApB,IAZJ;EAaA,MAAMqB,YAAY,GAAGhB,OAAO,CAACgB,YAAR,IAAwBjB,UAAU,CAACC,OAAX,CAAmBgB,YAAhE;EACAP,eAAe,uBAAGA,eAAH,+DAAsB,IAArC;EAEA;;EACA,MAAMQ,GAAG,GAAI,GAAEb,OAAQ,cAAvB;EACA,MAAMc,MAAM,GAAG;IACbC,SAAS,EAAEb,QADE;IAEbc,KAAK,EAAEZ,MAAM,CAAEa,IAAR,CAAa,GAAb,CAFM;IAGbC,YAAY,EAAEf,WAHD;IAIbgB,cAAc,EAAEb,aAJH;IAKbc,qBAAqB,EAAEb,mBALV;IAMbd,KANa;IAOb,IAAIe,eAAe,IAAI;MAAEa,gBAAgB,EAAEb;IAApB,CAAvB,CAPa;IAQb,IAAIC,aAAa,IAAI;MAAEa,cAAc,EAAEb;IAAlB,CAArB,CARa;IASb;IACA;IACA;IACA,IAAIG,YAAY,IAAI;MAAEW,aAAa,EAAEX;IAAjB,CAApB,CAZa;IAab,IAAIF,MAAM,IAAI;MAAEc,OAAO,EAAEd;IAAX,CAAd,CAba;IAcb,IAAIC,KAAK,IAAI;MAAEA;IAAF,CAAb;EAda,CAAf;EAgBA;;EAEA,MAAMc,OAAO,GAAG;IACd,gBAAgB;EADF,CAAhB;EAIA,MAAMC,IAAI,GAAG,MAAM,IAAAC,iBAAA,EAAYhC,UAAZ,EAAwB;IACzCiC,MAAM,EAAE,MADiC;IAEzCf,GAFyC;IAGzCY,OAHyC;IAIzCpB,eAJyC;IAKzCwB,IAAI,EAAEf;EALmC,CAAxB,CAAnB;EAOA,MAAMtB,iBAAiB,GAAGkC,IAAI,CAACI,kBAA/B;EAEA,MAAMC,OAAO,GAAG,EACd,GAAGxC,IADW;IAEdC,iBAFc;IAId;IACAa,eALc;IAMdZ,KANc;IAOdW,MAPc;IAQdK,aARc;IASdD;EATc,CAAhB,CA9D2B,CAyE3B;;EACA,IAAAwB,oCAAA,EAAoBrC,UAApB,EAAgCoC,OAAhC;EAEA,OAAOzC,WAAW,CAACyC,OAAD,CAAlB;AACD"}
|
package/cjs/idx/run.js
CHANGED
|
@@ -99,7 +99,8 @@ async function getDataFromIntrospect(authClient, data) {
|
|
|
99
99
|
scopes,
|
|
100
100
|
recoveryToken,
|
|
101
101
|
activationToken,
|
|
102
|
-
maxAge
|
|
102
|
+
maxAge,
|
|
103
|
+
nonce
|
|
103
104
|
} = options;
|
|
104
105
|
let idxResponse;
|
|
105
106
|
let meta = (0, _transactionMeta.getSavedTransactionMeta)(authClient, {
|
|
@@ -128,7 +129,8 @@ async function getDataFromIntrospect(authClient, data) {
|
|
|
128
129
|
scopes,
|
|
129
130
|
activationToken,
|
|
130
131
|
recoveryToken,
|
|
131
|
-
maxAge
|
|
132
|
+
maxAge,
|
|
133
|
+
nonce
|
|
132
134
|
});
|
|
133
135
|
interactionHandle = interactResponse.interactionHandle;
|
|
134
136
|
meta = interactResponse.meta;
|
package/cjs/idx/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","names":["initializeValues","options","knownOptions","values","forEach","option","initializeData","authClient","data","idx","flow","withCredentials","remediators","actions","status","IdxStatus","PENDING","getFlow","setFlow","flowSpec","getFlowSpecification","getDataFromIntrospect","stateHandle","version","state","scopes","recoveryToken","activationToken","maxAge","idxResponse","meta","getSavedTransactionMeta","introspect","interactionHandle","transactionManager","clear","interactResponse","interact","getDataFromRemediate","autoRemediate","step","shouldProceedWithEmailAuthenticator","useGenericRemediator","shouldRemediate","rawIdxState","idxResponseFromRemediation","nextStep","canceled","remediate","getTokens","interactionCode","clientId","codeVerifier","ignoreSignature","redirectUri","urls","tokenResponse","token","exchangeCodeForTokens","tokens","finalizeData","shouldSaveResponse","shouldClearTransaction","clearSharedStorage","enabledFeatures","availableSteps","messages","terminal","requestDidSucceed","stepUp","getEnabledFeatures","getAvailableSteps","getMessagesFromResponse","isTerminalResponse","TERMINAL","hasActions","length","hasErrors","msg","class","isTerminalSuccess","CANCELED","SUCCESS","handleError","err","error","isIdxResponse","FAILURE","run","saveTransactionMeta","rawIdxResponse","saveIdxResponse","context","neededToProceed","proceed"],"sources":["../../../lib/idx/run.ts"],"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\n/* eslint-disable max-statements, complexity, max-depth */\nimport { interact } from './interact';\nimport { introspect } from './introspect';\nimport { remediate } from './remediate';\nimport { getFlowSpecification } from './flow';\nimport * as remediators from './remediators';\nimport { \n OktaAuthIdxInterface,\n IdxStatus,\n IdxTransaction,\n IdxFeature,\n NextStep,\n RunOptions,\n IdxTransactionMeta,\n Tokens,\n APIError,\n} from '../types';\nimport { IdxMessage, IdxResponse, isIdxResponse } from './types/idx-js';\nimport { getSavedTransactionMeta, saveTransactionMeta } from './transactionMeta';\nimport { getAvailableSteps, getEnabledFeatures, getMessagesFromResponse, isTerminalResponse } from './util';\ndeclare interface RunData {\n options: RunOptions;\n values: remediators.RemediationValues;\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 idxResponse?: IdxResponse;\n canceled?: boolean;\n interactionCode?: string;\n shouldSaveResponse?: boolean;\n shouldClearTransaction?: boolean;\n clearSharedStorage?: boolean;\n terminal?: boolean;\n}\n\nfunction initializeValues(options: RunOptions) {\n // remove known options, everything else is assumed to be a value\n const knownOptions = [\n 'flow', \n 'remediators', \n 'actions', \n 'withCredentials', \n 'step',\n 'useGenericRemediator',\n 'exchangeCodeForTokens',\n 'shouldProceedWithEmailAuthenticator'\n ];\n const values = { ...options };\n knownOptions.forEach(option => {\n delete values[option];\n });\n return values;\n}\n\nfunction initializeData(authClient, data: RunData): RunData {\n let { options } = data;\n options = {\n ...authClient.options.idx,\n ...options\n };\n let {\n flow,\n withCredentials,\n remediators,\n actions,\n } = options;\n\n const status = IdxStatus.PENDING;\n\n // certain options can be set by the flow specification\n flow = flow || authClient.idx.getFlow() || 'default';\n if (flow) {\n authClient.idx.setFlow(flow);\n const flowSpec = getFlowSpecification(authClient, flow);\n // Favor option values over flow spec\n withCredentials = (typeof withCredentials !== 'undefined') ? withCredentials : flowSpec.withCredentials;\n remediators = remediators || flowSpec.remediators;\n actions = actions || flowSpec.actions;\n }\n\n return { \n ...data,\n options: { \n ...options, \n flow, \n withCredentials, \n remediators, \n actions,\n },\n status\n };\n}\n\nasync function getDataFromIntrospect(authClient, data: RunData): Promise<RunData> {\n const { options } = data;\n const {\n stateHandle,\n withCredentials,\n version,\n state,\n scopes,\n recoveryToken,\n activationToken,\n maxAge,\n } = options;\n\n let idxResponse;\n let meta = getSavedTransactionMeta(authClient, { state, recoveryToken, activationToken }); // may be undefined\n\n if (stateHandle) {\n idxResponse = await introspect(authClient, { withCredentials, version, stateHandle });\n } else {\n let interactionHandle = meta?.interactionHandle; // may be undefined\n if (!interactionHandle) {\n // start a new transaction\n authClient.transactionManager.clear();\n const interactResponse = await interact(authClient, {\n withCredentials,\n state,\n scopes,\n activationToken,\n recoveryToken,\n maxAge,\n }); \n interactionHandle = interactResponse.interactionHandle;\n meta = interactResponse.meta;\n }\n \n // Introspect to get idx response\n idxResponse = await introspect(authClient, { withCredentials, version, interactionHandle });\n }\n return { ...data, idxResponse, meta };\n}\n\nasync function getDataFromRemediate(authClient, data: RunData): Promise<RunData> {\n let {\n idxResponse,\n options,\n values\n } = data;\n\n const {\n autoRemediate,\n remediators,\n actions,\n flow,\n step,\n shouldProceedWithEmailAuthenticator, // will be removed in next major version\n useGenericRemediator,\n } = options;\n \n const shouldRemediate = (autoRemediate !== false && (remediators || actions || step));\n if (!shouldRemediate) {\n return data;\n }\n\n values = { \n ...values, \n stateHandle: idxResponse!.rawIdxState.stateHandle \n };\n\n // Can we handle the remediations?\n const { \n idxResponse: idxResponseFromRemediation, \n nextStep,\n canceled,\n } = await remediate(\n authClient,\n idxResponse!, \n values, \n {\n remediators,\n actions,\n flow,\n step,\n shouldProceedWithEmailAuthenticator, // will be removed in next major version\n useGenericRemediator,\n }\n );\n idxResponse = idxResponseFromRemediation;\n\n return { ...data, idxResponse, nextStep, canceled };\n}\n\nasync function getTokens(authClient, data: RunData): Promise<Tokens> {\n let { meta, idxResponse } = data;\n const { interactionCode } = idxResponse as IdxResponse;\n const {\n clientId,\n codeVerifier,\n ignoreSignature,\n redirectUri,\n urls,\n scopes,\n } = meta as IdxTransactionMeta;\n const tokenResponse = await authClient.token.exchangeCodeForTokens({\n interactionCode,\n clientId,\n codeVerifier,\n ignoreSignature,\n redirectUri,\n scopes\n }, urls);\n return tokenResponse.tokens;\n}\n\nasync function finalizeData(authClient, data: RunData): Promise<RunData> {\n let {\n options,\n idxResponse,\n canceled,\n status,\n } = data;\n const { exchangeCodeForTokens } = options;\n let shouldSaveResponse = false;\n let shouldClearTransaction = false;\n let clearSharedStorage = true;\n let interactionCode;\n let tokens;\n let enabledFeatures;\n let availableSteps;\n let messages;\n let terminal;\n\n if (idxResponse) {\n shouldSaveResponse = !!(idxResponse.requestDidSucceed || idxResponse.stepUp);\n enabledFeatures = getEnabledFeatures(idxResponse);\n availableSteps = getAvailableSteps(authClient, idxResponse, options.useGenericRemediator);\n messages = getMessagesFromResponse(idxResponse, options);\n terminal = isTerminalResponse(idxResponse);\n }\n\n if (terminal) {\n status = IdxStatus.TERMINAL;\n\n // In most cases a terminal response should not clear transaction data. The user should cancel or skip to continue.\n // A terminal \"success\" is a non-error response with no further actions available.\n // In these narrow cases, saved transaction data should be cleared.\n // One example of a terminal success is when the email verify flow is continued in another tab\n const hasActions = Object.keys(idxResponse!.actions).length > 0;\n const hasErrors = !!messages.find(msg => msg.class === 'ERROR');\n const isTerminalSuccess = !hasActions && !hasErrors && idxResponse!.requestDidSucceed === true;\n if (isTerminalSuccess) {\n shouldClearTransaction = true;\n } else {\n // only save response if there are actions available (ignore messages)\n shouldSaveResponse = shouldSaveResponse && hasActions;\n }\n // leave shared storage intact so the transaction can be continued in another tab\n clearSharedStorage = false;\n } else if (canceled) {\n status = IdxStatus.CANCELED;\n shouldClearTransaction = true;\n } else if (idxResponse?.interactionCode) { \n interactionCode = idxResponse.interactionCode;\n if (exchangeCodeForTokens === false) {\n status = IdxStatus.SUCCESS;\n shouldClearTransaction = false;\n } else {\n tokens = await getTokens(authClient, data);\n status = IdxStatus.SUCCESS;\n shouldClearTransaction = true;\n }\n }\n return {\n ...data,\n status,\n interactionCode,\n tokens,\n shouldSaveResponse,\n shouldClearTransaction,\n clearSharedStorage,\n enabledFeatures,\n availableSteps,\n messages,\n terminal\n };\n}\n\nfunction handleError(err, data: RunData): RunData {\n let { error, status, shouldClearTransaction } = data;\n\n // current version of idx-js will throw/reject IDX responses. Handle these differently than regular errors\n if (isIdxResponse(err)) {\n error = err;\n status = IdxStatus.FAILURE;\n shouldClearTransaction = true;\n } else {\n // error is not an IDX response, throw it like a regular error\n throw err;\n }\n\n return { ...data, error, status, shouldClearTransaction };\n}\n\nexport async function run(\n authClient: OktaAuthIdxInterface, \n options: RunOptions = {},\n): Promise<IdxTransaction> {\n let data: RunData = {\n options,\n values: initializeValues(options)\n };\n\n data = initializeData(authClient, data);\n try {\n data = await getDataFromIntrospect(authClient, data);\n data = await getDataFromRemediate(authClient, data);\n } catch (err) {\n data = handleError(err, data);\n }\n data = await finalizeData(authClient, data);\n\n const {\n idxResponse,\n meta,\n shouldSaveResponse,\n shouldClearTransaction,\n clearSharedStorage,\n status,\n enabledFeatures,\n availableSteps,\n tokens,\n nextStep,\n messages,\n error,\n interactionCode\n } = data;\n\n if (shouldClearTransaction) {\n authClient.transactionManager.clear({ clearSharedStorage });\n }\n else {\n // ensures state is saved to sessionStorage\n saveTransactionMeta(authClient, { ...meta });\n\n if (shouldSaveResponse) {\n // Save intermediate idx response in storage to reduce introspect call\n const { rawIdxState: rawIdxResponse, requestDidSucceed } = idxResponse!;\n authClient.transactionManager.saveIdxResponse({\n rawIdxResponse,\n requestDidSucceed,\n stateHandle: idxResponse!.context?.stateHandle,\n interactionHandle: meta?.interactionHandle\n });\n }\n }\n \n // copy all fields from idxResponse which are needed by the widget\n const { actions, context, neededToProceed, proceed, rawIdxState, requestDidSucceed, stepUp } = idxResponse || {};\n return {\n status: status!,\n ...(meta && { meta }),\n ...(enabledFeatures && { enabledFeatures }),\n ...(availableSteps && { availableSteps }),\n ...(tokens && { tokens }),\n ...(nextStep && { nextStep }),\n ...(messages && messages.length && { messages }),\n ...(error && { error }),\n ...(stepUp && { stepUp }),\n interactionCode, // if options.exchangeCodeForTokens is false\n\n // from idx-js\n actions: actions!,\n context: context!,\n neededToProceed: neededToProceed!,\n proceed: proceed!,\n rawIdxState: rawIdxState!,\n requestDidSucceed\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","names":["initializeValues","options","knownOptions","values","forEach","option","initializeData","authClient","data","idx","flow","withCredentials","remediators","actions","status","IdxStatus","PENDING","getFlow","setFlow","flowSpec","getFlowSpecification","getDataFromIntrospect","stateHandle","version","state","scopes","recoveryToken","activationToken","maxAge","nonce","idxResponse","meta","getSavedTransactionMeta","introspect","interactionHandle","transactionManager","clear","interactResponse","interact","getDataFromRemediate","autoRemediate","step","shouldProceedWithEmailAuthenticator","useGenericRemediator","shouldRemediate","rawIdxState","idxResponseFromRemediation","nextStep","canceled","remediate","getTokens","interactionCode","clientId","codeVerifier","ignoreSignature","redirectUri","urls","tokenResponse","token","exchangeCodeForTokens","tokens","finalizeData","shouldSaveResponse","shouldClearTransaction","clearSharedStorage","enabledFeatures","availableSteps","messages","terminal","requestDidSucceed","stepUp","getEnabledFeatures","getAvailableSteps","getMessagesFromResponse","isTerminalResponse","TERMINAL","hasActions","length","hasErrors","msg","class","isTerminalSuccess","CANCELED","SUCCESS","handleError","err","error","isIdxResponse","FAILURE","run","saveTransactionMeta","rawIdxResponse","saveIdxResponse","context","neededToProceed","proceed"],"sources":["../../../lib/idx/run.ts"],"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\n/* eslint-disable max-statements, complexity, max-depth */\nimport { interact } from './interact';\nimport { introspect } from './introspect';\nimport { remediate } from './remediate';\nimport { getFlowSpecification } from './flow';\nimport * as remediators from './remediators';\nimport { \n OktaAuthIdxInterface,\n IdxStatus,\n IdxTransaction,\n IdxFeature,\n NextStep,\n RunOptions,\n IdxTransactionMeta,\n Tokens,\n APIError,\n} from '../types';\nimport { IdxMessage, IdxResponse, isIdxResponse } from './types/idx-js';\nimport { getSavedTransactionMeta, saveTransactionMeta } from './transactionMeta';\nimport { getAvailableSteps, getEnabledFeatures, getMessagesFromResponse, isTerminalResponse } from './util';\ndeclare interface RunData {\n options: RunOptions;\n values: remediators.RemediationValues;\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 idxResponse?: IdxResponse;\n canceled?: boolean;\n interactionCode?: string;\n shouldSaveResponse?: boolean;\n shouldClearTransaction?: boolean;\n clearSharedStorage?: boolean;\n terminal?: boolean;\n}\n\nfunction initializeValues(options: RunOptions) {\n // remove known options, everything else is assumed to be a value\n const knownOptions = [\n 'flow', \n 'remediators', \n 'actions', \n 'withCredentials', \n 'step',\n 'useGenericRemediator',\n 'exchangeCodeForTokens',\n 'shouldProceedWithEmailAuthenticator'\n ];\n const values = { ...options };\n knownOptions.forEach(option => {\n delete values[option];\n });\n return values;\n}\n\nfunction initializeData(authClient, data: RunData): RunData {\n let { options } = data;\n options = {\n ...authClient.options.idx,\n ...options\n };\n let {\n flow,\n withCredentials,\n remediators,\n actions,\n } = options;\n\n const status = IdxStatus.PENDING;\n\n // certain options can be set by the flow specification\n flow = flow || authClient.idx.getFlow() || 'default';\n if (flow) {\n authClient.idx.setFlow(flow);\n const flowSpec = getFlowSpecification(authClient, flow);\n // Favor option values over flow spec\n withCredentials = (typeof withCredentials !== 'undefined') ? withCredentials : flowSpec.withCredentials;\n remediators = remediators || flowSpec.remediators;\n actions = actions || flowSpec.actions;\n }\n\n return { \n ...data,\n options: { \n ...options, \n flow, \n withCredentials, \n remediators, \n actions,\n },\n status\n };\n}\n\nasync function getDataFromIntrospect(authClient, data: RunData): Promise<RunData> {\n const { options } = data;\n const {\n stateHandle,\n withCredentials,\n version,\n state,\n scopes,\n recoveryToken,\n activationToken,\n maxAge,\n nonce,\n } = options;\n\n let idxResponse;\n let meta = getSavedTransactionMeta(authClient, { state, recoveryToken, activationToken }); // may be undefined\n\n if (stateHandle) {\n idxResponse = await introspect(authClient, { withCredentials, version, stateHandle });\n } else {\n let interactionHandle = meta?.interactionHandle; // may be undefined\n if (!interactionHandle) {\n // start a new transaction\n authClient.transactionManager.clear();\n const interactResponse = await interact(authClient, {\n withCredentials,\n state,\n scopes,\n activationToken,\n recoveryToken,\n maxAge,\n nonce,\n }); \n interactionHandle = interactResponse.interactionHandle;\n meta = interactResponse.meta;\n }\n \n // Introspect to get idx response\n idxResponse = await introspect(authClient, { withCredentials, version, interactionHandle });\n }\n return { ...data, idxResponse, meta };\n}\n\nasync function getDataFromRemediate(authClient, data: RunData): Promise<RunData> {\n let {\n idxResponse,\n options,\n values\n } = data;\n\n const {\n autoRemediate,\n remediators,\n actions,\n flow,\n step,\n shouldProceedWithEmailAuthenticator, // will be removed in next major version\n useGenericRemediator,\n } = options;\n \n const shouldRemediate = (autoRemediate !== false && (remediators || actions || step));\n if (!shouldRemediate) {\n return data;\n }\n\n values = { \n ...values, \n stateHandle: idxResponse!.rawIdxState.stateHandle \n };\n\n // Can we handle the remediations?\n const { \n idxResponse: idxResponseFromRemediation, \n nextStep,\n canceled,\n } = await remediate(\n authClient,\n idxResponse!, \n values, \n {\n remediators,\n actions,\n flow,\n step,\n shouldProceedWithEmailAuthenticator, // will be removed in next major version\n useGenericRemediator,\n }\n );\n idxResponse = idxResponseFromRemediation;\n\n return { ...data, idxResponse, nextStep, canceled };\n}\n\nasync function getTokens(authClient, data: RunData): Promise<Tokens> {\n let { meta, idxResponse } = data;\n const { interactionCode } = idxResponse as IdxResponse;\n const {\n clientId,\n codeVerifier,\n ignoreSignature,\n redirectUri,\n urls,\n scopes,\n } = meta as IdxTransactionMeta;\n const tokenResponse = await authClient.token.exchangeCodeForTokens({\n interactionCode,\n clientId,\n codeVerifier,\n ignoreSignature,\n redirectUri,\n scopes\n }, urls);\n return tokenResponse.tokens;\n}\n\nasync function finalizeData(authClient, data: RunData): Promise<RunData> {\n let {\n options,\n idxResponse,\n canceled,\n status,\n } = data;\n const { exchangeCodeForTokens } = options;\n let shouldSaveResponse = false;\n let shouldClearTransaction = false;\n let clearSharedStorage = true;\n let interactionCode;\n let tokens;\n let enabledFeatures;\n let availableSteps;\n let messages;\n let terminal;\n\n if (idxResponse) {\n shouldSaveResponse = !!(idxResponse.requestDidSucceed || idxResponse.stepUp);\n enabledFeatures = getEnabledFeatures(idxResponse);\n availableSteps = getAvailableSteps(authClient, idxResponse, options.useGenericRemediator);\n messages = getMessagesFromResponse(idxResponse, options);\n terminal = isTerminalResponse(idxResponse);\n }\n\n if (terminal) {\n status = IdxStatus.TERMINAL;\n\n // In most cases a terminal response should not clear transaction data. The user should cancel or skip to continue.\n // A terminal \"success\" is a non-error response with no further actions available.\n // In these narrow cases, saved transaction data should be cleared.\n // One example of a terminal success is when the email verify flow is continued in another tab\n const hasActions = Object.keys(idxResponse!.actions).length > 0;\n const hasErrors = !!messages.find(msg => msg.class === 'ERROR');\n const isTerminalSuccess = !hasActions && !hasErrors && idxResponse!.requestDidSucceed === true;\n if (isTerminalSuccess) {\n shouldClearTransaction = true;\n } else {\n // only save response if there are actions available (ignore messages)\n shouldSaveResponse = shouldSaveResponse && hasActions;\n }\n // leave shared storage intact so the transaction can be continued in another tab\n clearSharedStorage = false;\n } else if (canceled) {\n status = IdxStatus.CANCELED;\n shouldClearTransaction = true;\n } else if (idxResponse?.interactionCode) { \n interactionCode = idxResponse.interactionCode;\n if (exchangeCodeForTokens === false) {\n status = IdxStatus.SUCCESS;\n shouldClearTransaction = false;\n } else {\n tokens = await getTokens(authClient, data);\n status = IdxStatus.SUCCESS;\n shouldClearTransaction = true;\n }\n }\n return {\n ...data,\n status,\n interactionCode,\n tokens,\n shouldSaveResponse,\n shouldClearTransaction,\n clearSharedStorage,\n enabledFeatures,\n availableSteps,\n messages,\n terminal\n };\n}\n\nfunction handleError(err, data: RunData): RunData {\n let { error, status, shouldClearTransaction } = data;\n\n // current version of idx-js will throw/reject IDX responses. Handle these differently than regular errors\n if (isIdxResponse(err)) {\n error = err;\n status = IdxStatus.FAILURE;\n shouldClearTransaction = true;\n } else {\n // error is not an IDX response, throw it like a regular error\n throw err;\n }\n\n return { ...data, error, status, shouldClearTransaction };\n}\n\nexport async function run(\n authClient: OktaAuthIdxInterface, \n options: RunOptions = {},\n): Promise<IdxTransaction> {\n let data: RunData = {\n options,\n values: initializeValues(options)\n };\n\n data = initializeData(authClient, data);\n try {\n data = await getDataFromIntrospect(authClient, data);\n data = await getDataFromRemediate(authClient, data);\n } catch (err) {\n data = handleError(err, data);\n }\n data = await finalizeData(authClient, data);\n\n const {\n idxResponse,\n meta,\n shouldSaveResponse,\n shouldClearTransaction,\n clearSharedStorage,\n status,\n enabledFeatures,\n availableSteps,\n tokens,\n nextStep,\n messages,\n error,\n interactionCode\n } = data;\n\n if (shouldClearTransaction) {\n authClient.transactionManager.clear({ clearSharedStorage });\n }\n else {\n // ensures state is saved to sessionStorage\n saveTransactionMeta(authClient, { ...meta });\n\n if (shouldSaveResponse) {\n // Save intermediate idx response in storage to reduce introspect call\n const { rawIdxState: rawIdxResponse, requestDidSucceed } = idxResponse!;\n authClient.transactionManager.saveIdxResponse({\n rawIdxResponse,\n requestDidSucceed,\n stateHandle: idxResponse!.context?.stateHandle,\n interactionHandle: meta?.interactionHandle\n });\n }\n }\n \n // copy all fields from idxResponse which are needed by the widget\n const { actions, context, neededToProceed, proceed, rawIdxState, requestDidSucceed, stepUp } = idxResponse || {};\n return {\n status: status!,\n ...(meta && { meta }),\n ...(enabledFeatures && { enabledFeatures }),\n ...(availableSteps && { availableSteps }),\n ...(tokens && { tokens }),\n ...(nextStep && { nextStep }),\n ...(messages && messages.length && { messages }),\n ...(error && { error }),\n ...(stepUp && { stepUp }),\n interactionCode, // if options.exchangeCodeForTokens is false\n\n // from idx-js\n actions: actions!,\n context: context!,\n neededToProceed: neededToProceed!,\n proceed: proceed!,\n rawIdxState: rawIdxState!,\n requestDidSucceed\n };\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","names":[],"sources":["../../../../lib/idx/types/options.ts"],"sourcesContent":["import { RemediationFlow } from '../flow';\nimport { RemediateAction } from '../remediate';\nimport { FlowIdentifier } from './FlowIdentifier';\nimport {\n AuthenticatorVerificationDataValues,\n EnrollProfileValues,\n ResetAuthenticatorValues,\n SelectAuthenticatorUnlockAccountValues,\n SkipValues,\n EnrollPollValues as EnrollPollOptions,\n SelectEnrollmentChannelValues as SelectEnrollmentChannelOptions,\n IdentifyValues,\n SelectAuthenticatorAuthenticateValues,\n ChallengeAuthenticatorValues,\n ReEnrollAuthenticatorValues,\n AuthenticatorEnrollmentDataValues,\n SelectAuthenticatorEnrollValues,\n EnrollAuthenticatorValues,\n} from '../remediators';\n\nexport interface IdxOptions {\n flow?: FlowIdentifier;\n exchangeCodeForTokens?: boolean;\n autoRemediate?: boolean;\n step?: string;\n withCredentials?: boolean;\n}\n\nexport interface InteractOptions extends IdxOptions {\n state?: string;\n scopes?: string[];\n codeChallenge?: string;\n codeChallengeMethod?: string;\n activationToken?: string;\n recoveryToken?: string;\n clientSecret?: string;\n maxAge?: string | number;\n}\n\nexport interface IntrospectOptions extends IdxOptions {\n interactionHandle?: string;\n stateHandle?: string;\n version?: string;\n}\n\nexport interface RemediateOptions extends IdxOptions {\n remediators?: RemediationFlow;\n actions?: RemediateAction[];\n shouldProceedWithEmailAuthenticator?: boolean; // will be removed in next major version\n useGenericRemediator?: boolean; // beta\n}\n\nexport interface RunOptions extends RemediateOptions, InteractOptions, IntrospectOptions {}\n\nexport interface AuthenticationOptions extends\n RunOptions, \n IdentifyValues,\n SelectAuthenticatorAuthenticateValues,\n SelectAuthenticatorEnrollValues,\n ChallengeAuthenticatorValues,\n ReEnrollAuthenticatorValues,\n AuthenticatorEnrollmentDataValues,\n EnrollAuthenticatorValues\n{}\n\nexport interface RegistrationOptions extends\n RunOptions,\n IdentifyValues,\n EnrollProfileValues,\n SelectAuthenticatorEnrollValues,\n EnrollAuthenticatorValues,\n AuthenticatorEnrollmentDataValues,\n SkipValues\n{}\n\nexport interface PasswordRecoveryOptions extends \n RunOptions,\n IdentifyValues,\n SelectAuthenticatorAuthenticateValues,\n ChallengeAuthenticatorValues,\n ResetAuthenticatorValues,\n AuthenticatorVerificationDataValues,\n ReEnrollAuthenticatorValues\n{}\n\nexport interface AccountUnlockOptions extends\n RunOptions,\n IdentifyValues,\n SelectAuthenticatorUnlockAccountValues,\n SelectAuthenticatorAuthenticateValues,\n ChallengeAuthenticatorValues,\n AuthenticatorVerificationDataValues\n{}\n\nexport interface ProceedOptions extends\n AuthenticationOptions,\n RegistrationOptions,\n PasswordRecoveryOptions,\n AccountUnlockOptions,\n EnrollPollOptions,\n SelectEnrollmentChannelOptions\n{}\n\nexport type CancelOptions = IdxOptions\n\nexport type StartOptions = RunOptions\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"options.js","names":[],"sources":["../../../../lib/idx/types/options.ts"],"sourcesContent":["import { RemediationFlow } from '../flow';\nimport { RemediateAction } from '../remediate';\nimport { FlowIdentifier } from './FlowIdentifier';\nimport {\n AuthenticatorVerificationDataValues,\n EnrollProfileValues,\n ResetAuthenticatorValues,\n SelectAuthenticatorUnlockAccountValues,\n SkipValues,\n EnrollPollValues as EnrollPollOptions,\n SelectEnrollmentChannelValues as SelectEnrollmentChannelOptions,\n IdentifyValues,\n SelectAuthenticatorAuthenticateValues,\n ChallengeAuthenticatorValues,\n ReEnrollAuthenticatorValues,\n AuthenticatorEnrollmentDataValues,\n SelectAuthenticatorEnrollValues,\n EnrollAuthenticatorValues,\n} from '../remediators';\n\nexport interface IdxOptions {\n flow?: FlowIdentifier;\n exchangeCodeForTokens?: boolean;\n autoRemediate?: boolean;\n step?: string;\n withCredentials?: boolean;\n}\n\nexport interface InteractOptions extends IdxOptions {\n state?: string;\n scopes?: string[];\n codeChallenge?: string;\n codeChallengeMethod?: string;\n activationToken?: string;\n recoveryToken?: string;\n clientSecret?: string;\n maxAge?: string | number;\n nonce?: string;\n}\n\nexport interface IntrospectOptions extends IdxOptions {\n interactionHandle?: string;\n stateHandle?: string;\n version?: string;\n}\n\nexport interface RemediateOptions extends IdxOptions {\n remediators?: RemediationFlow;\n actions?: RemediateAction[];\n shouldProceedWithEmailAuthenticator?: boolean; // will be removed in next major version\n useGenericRemediator?: boolean; // beta\n}\n\nexport interface RunOptions extends RemediateOptions, InteractOptions, IntrospectOptions {}\n\nexport interface AuthenticationOptions extends\n RunOptions, \n IdentifyValues,\n SelectAuthenticatorAuthenticateValues,\n SelectAuthenticatorEnrollValues,\n ChallengeAuthenticatorValues,\n ReEnrollAuthenticatorValues,\n AuthenticatorEnrollmentDataValues,\n EnrollAuthenticatorValues\n{}\n\nexport interface RegistrationOptions extends\n RunOptions,\n IdentifyValues,\n EnrollProfileValues,\n SelectAuthenticatorEnrollValues,\n EnrollAuthenticatorValues,\n AuthenticatorEnrollmentDataValues,\n SkipValues\n{}\n\nexport interface PasswordRecoveryOptions extends \n RunOptions,\n IdentifyValues,\n SelectAuthenticatorAuthenticateValues,\n ChallengeAuthenticatorValues,\n ResetAuthenticatorValues,\n AuthenticatorVerificationDataValues,\n ReEnrollAuthenticatorValues\n{}\n\nexport interface AccountUnlockOptions extends\n RunOptions,\n IdentifyValues,\n SelectAuthenticatorUnlockAccountValues,\n SelectAuthenticatorAuthenticateValues,\n ChallengeAuthenticatorValues,\n AuthenticatorVerificationDataValues\n{}\n\nexport interface ProceedOptions extends\n AuthenticationOptions,\n RegistrationOptions,\n PasswordRecoveryOptions,\n AccountUnlockOptions,\n EnrollPollOptions,\n SelectEnrollmentChannelOptions\n{}\n\nexport type CancelOptions = IdxOptions\n\nexport type StartOptions = RunOptions\n"],"mappings":""}
|