@okta/okta-auth-js 7.0.0 → 7.0.2
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 +14 -0
- package/cjs/http/OktaUserAgent.js +2 -2
- package/cjs/idx/register.js +1 -8
- package/cjs/idx/register.js.map +1 -1
- package/cjs/idx/run.js +2 -2
- package/cjs/idx/run.js.map +1 -1
- package/cjs/idx/types/idx-js.js.map +1 -1
- package/cjs/idx/types/index.js.map +1 -1
- package/dist/okta-auth-js.authn.min.analyzer.html +1 -1
- package/dist/okta-auth-js.authn.min.js +1 -1
- package/dist/okta-auth-js.core.min.analyzer.html +1 -1
- package/dist/okta-auth-js.core.min.js +1 -1
- package/dist/okta-auth-js.idx.min.analyzer.html +2 -2
- package/dist/okta-auth-js.idx.min.js +1 -1
- package/dist/okta-auth-js.idx.min.js.map +1 -1
- package/dist/okta-auth-js.min.analyzer.html +2 -2
- package/dist/okta-auth-js.min.js +1 -1
- package/dist/okta-auth-js.min.js.map +1 -1
- package/dist/okta-auth-js.myaccount.min.analyzer.html +2 -2
- package/dist/okta-auth-js.myaccount.min.js +1 -1
- package/esm/browser/http/OktaUserAgent.js +2 -2
- package/esm/browser/idx/register.js +1 -4
- package/esm/browser/idx/register.js.map +1 -1
- package/esm/browser/idx/run.js +1 -1
- package/esm/browser/idx/run.js.map +1 -1
- package/esm/browser/idx/types/idx-js.js.map +1 -1
- package/esm/browser/package.json +1 -1
- package/esm/node/http/OktaUserAgent.js +2 -2
- package/esm/node/idx/register.js +1 -4
- package/esm/node/idx/register.js.map +1 -1
- package/esm/node/idx/run.js +1 -1
- package/esm/node/idx/run.js.map +1 -1
- package/esm/node/idx/types/idx-js.js.map +1 -1
- package/esm/node/package.json +1 -1
- package/package.json +3 -3
- package/types/lib/idx/types/idx-js.d.ts +9 -0
- package/types/lib/idx/types/index.d.ts +1 -1
- package/umd/authn.js +1 -1
- package/umd/core.js +1 -1
- package/umd/default.js +1 -1
- package/umd/default.js.map +1 -1
- package/umd/idx.js +1 -1
- package/umd/idx.js.map +1 -1
- package/umd/myaccount.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 7.0.2
|
|
4
|
+
|
|
5
|
+
### Fixes
|
|
6
|
+
|
|
7
|
+
- [#1335](https://github.com/okta/okta-auth-js/pull/1335) IDX: adds `uiDisplay` property to `IdxContext` type
|
|
8
|
+
- [#1336](https://github.com/okta/okta-auth-js/pull/1319) IDX: adds `deviceKnown` property to `IdxAuthenticator` type
|
|
9
|
+
- [#1337](https://github.com/okta/okta-auth-js/pull/1337) IDX: fixes account activation flow by removing check for `identify` remediation
|
|
10
|
+
|
|
11
|
+
## 7.0.1
|
|
12
|
+
|
|
13
|
+
### Fixes
|
|
14
|
+
|
|
15
|
+
- [#1319](https://github.com/okta/okta-auth-js/pull/1319) IDX: fixes cancel request issue in terminal status
|
|
16
|
+
|
|
3
17
|
## 7.0.0
|
|
4
18
|
|
|
5
19
|
### Breaking Changes
|
|
@@ -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/${"7.0.
|
|
24
|
+
this.environments = [`okta-auth-js/${"7.0.2"}`];
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
addEnvironment(env) {
|
|
@@ -36,7 +36,7 @@ class OktaUserAgent {
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
getVersion() {
|
|
39
|
-
return "7.0.
|
|
39
|
+
return "7.0.2";
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
maybeAddNodeEnvironment() {
|
package/cjs/idx/register.js
CHANGED
|
@@ -27,8 +27,7 @@ async function register(authClient, options = {}) {
|
|
|
27
27
|
// Only check at the beginning of the transaction
|
|
28
28
|
if (!(0, _transactionMeta.hasSavedInteractionHandle)(authClient)) {
|
|
29
29
|
const {
|
|
30
|
-
enabledFeatures
|
|
31
|
-
availableSteps
|
|
30
|
+
enabledFeatures
|
|
32
31
|
} = await (0, _startTransaction.startTransaction)(authClient, { ...options,
|
|
33
32
|
flow: 'register',
|
|
34
33
|
autoRemediate: false
|
|
@@ -37,12 +36,6 @@ async function register(authClient, options = {}) {
|
|
|
37
36
|
if (!options.activationToken && enabledFeatures && !enabledFeatures.includes(_types.IdxFeature.REGISTRATION)) {
|
|
38
37
|
throw new _errors.AuthSdkError('Registration is not supported based on your current org configuration.');
|
|
39
38
|
}
|
|
40
|
-
|
|
41
|
-
if (options.activationToken && availableSteps !== null && availableSteps !== void 0 && availableSteps.some(({
|
|
42
|
-
name
|
|
43
|
-
}) => name === 'identify')) {
|
|
44
|
-
throw new _errors.AuthSdkError('activationToken is not supported based on your current org configuration.');
|
|
45
|
-
}
|
|
46
39
|
}
|
|
47
40
|
|
|
48
41
|
return (0, _run.run)(authClient, { ...options,
|
package/cjs/idx/register.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","names":["register","authClient","options","hasSavedInteractionHandle","enabledFeatures","
|
|
1
|
+
{"version":3,"file":"register.js","names":["register","authClient","options","hasSavedInteractionHandle","enabledFeatures","startTransaction","flow","autoRemediate","activationToken","includes","IdxFeature","REGISTRATION","AuthSdkError","run"],"sources":["../../../lib/idx/register.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { run } from './run';\nimport { hasSavedInteractionHandle } from './transactionMeta';\nimport { startTransaction } from './startTransaction';\nimport { AuthSdkError } from '../errors';\nimport { \n RegistrationOptions, \n IdxTransaction, \n OktaAuthIdxInterface, \n IdxFeature,\n} from './types';\n\nexport async function register(\n authClient: OktaAuthIdxInterface, options: RegistrationOptions = {}\n): Promise<IdxTransaction> {\n\n // Only check at the beginning of the transaction\n if (!hasSavedInteractionHandle(authClient)) {\n const { enabledFeatures } = await startTransaction(authClient, {\n ...options,\n flow: 'register',\n autoRemediate: false\n });\n if (!options.activationToken && enabledFeatures && !enabledFeatures.includes(IdxFeature.REGISTRATION)) {\n throw new AuthSdkError('Registration is not supported based on your current org configuration.');\n }\n }\n\n return run(authClient, {\n ...options,\n flow: 'register'\n });\n}\n"],"mappings":";;;;AAaA;;AACA;;AACA;;AACA;;AACA;;AAjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAcO,eAAeA,QAAf,CACLC,UADK,EAC6BC,OAA4B,GAAG,EAD5D,EAEoB;EAEzB;EACA,IAAI,CAAC,IAAAC,0CAAA,EAA0BF,UAA1B,CAAL,EAA4C;IAC1C,MAAM;MAAEG;IAAF,IAAsB,MAAM,IAAAC,kCAAA,EAAiBJ,UAAjB,EAA6B,EAC7D,GAAGC,OAD0D;MAE7DI,IAAI,EAAE,UAFuD;MAG7DC,aAAa,EAAE;IAH8C,CAA7B,CAAlC;;IAKA,IAAI,CAACL,OAAO,CAACM,eAAT,IAA4BJ,eAA5B,IAA+C,CAACA,eAAe,CAACK,QAAhB,CAAyBC,iBAAA,CAAWC,YAApC,CAApD,EAAuG;MACrG,MAAM,IAAIC,oBAAJ,CAAiB,wEAAjB,CAAN;IACD;EACF;;EAED,OAAO,IAAAC,QAAA,EAAIZ,UAAJ,EAAgB,EACrB,GAAGC,OADkB;IAErBI,IAAI,EAAE;EAFe,CAAhB,CAAP;AAID"}
|
package/cjs/idx/run.js
CHANGED
|
@@ -253,8 +253,8 @@ async function finalizeData(authClient, data) {
|
|
|
253
253
|
if (isTerminalSuccess) {
|
|
254
254
|
shouldClearTransaction = true;
|
|
255
255
|
} else {
|
|
256
|
-
//
|
|
257
|
-
shouldSaveResponse =
|
|
256
|
+
// save response if there are actions available (ignore messages)
|
|
257
|
+
shouldSaveResponse = !!hasActions;
|
|
258
258
|
} // leave shared storage intact so the transaction can be continued in another tab
|
|
259
259
|
|
|
260
260
|
|
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","nonce","idxResponse","meta","getSavedTransactionMeta","introspect","interactionHandle","transactionManager","clear","interactResponse","interact","getDataFromRemediate","autoRemediate","step","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","Object","keys","length","hasErrors","find","msg","class","isTerminalSuccess","CANCELED","SUCCESS","run","error","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} from './types';\nimport { IdxMessage, IdxResponse } from './types/idx-js';\nimport { getSavedTransactionMeta, saveTransactionMeta } from './transactionMeta';\nimport { getAvailableSteps, getEnabledFeatures, getMessagesFromResponse, isTerminalResponse } from './util';\nimport { Tokens } from '../oidc/types';\nimport { APIError } from '../errors/types';\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 ];\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 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 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\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 data = await getDataFromIntrospect(authClient, data);\n data = await getDataFromRemediate(authClient, data);\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","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","Object","keys","length","hasErrors","find","msg","class","isTerminalSuccess","CANCELED","SUCCESS","run","error","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} from './types';\nimport { IdxMessage, IdxResponse } from './types/idx-js';\nimport { getSavedTransactionMeta, saveTransactionMeta } from './transactionMeta';\nimport { getAvailableSteps, getEnabledFeatures, getMessagesFromResponse, isTerminalResponse } from './util';\nimport { Tokens } from '../oidc/types';\nimport { APIError } from '../errors/types';\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 ];\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 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 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 // save response if there are actions available (ignore messages)\n 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\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 data = await getDataFromIntrospect(authClient, data);\n data = await getDataFromRemediate(authClient, data);\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":"idx-js.js","names":["isRawIdxResponse","obj","version","isIdxResponse","rawIdxState"],"sources":["../../../../lib/idx/types/idx-js.ts"],"sourcesContent":["/* eslint-disable no-use-before-define */\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\nimport { Input } from './api';\n\n\n// TODO: remove when idx-js provides type information\n\nexport interface ChallengeData {\n challenge: string; \n userVerification: string; \n extensions?: {\n appid: string;\n };\n}\nexport interface ActivationData {\n challenge: string;\n rp: {\n name: string;\n };\n user: {\n id: string;\n name: string;\n displayName: string;\n };\n pubKeyCredParams: {\n type: string;\n alg: number;\n }[];\n attestation?: string;\n authenticatorSelection?: {\n userVerification?: string;\n authenticatorAttachment?: string;\n requireResidentKey?: boolean;\n residentKey?: string;\n };\n excludeCredentials?: {\n id: string;\n type: string;\n }[];\n}\nexport interface IdxAuthenticatorMethod {\n type: string;\n}\nexport interface IdxAuthenticator {\n displayName: string;\n id: string;\n key: string;\n methods: IdxAuthenticatorMethod[];\n type: string;\n settings?: {\n complexity?: unknown;\n age?: unknown;\n };\n contextualData?: {\n enrolledQuestion?: {\n question: string;\n questionKey: string;\n };\n qrcode?: { \n href: string; \n method: string; \n type: string; \n };\n sharedSecret?: string;\n questions?: {\n questionKey: string;\n question: string;\n }[];\n questionKeys?: string[];\n selectedChannel?: string;\n activationData?: ActivationData;\n challengeData?: ChallengeData;\n };\n credentialId?: string;\n enrollmentId?: string;\n profile?: Record<string, unknown>;\n resend?: Record<string, unknown>;\n poll?: Record<string, unknown>;\n recover?: Record<string, unknown>;\n}\n\nexport interface IdxForm {\n value: IdxRemediationValue[];\n}\n\nexport interface IdxOption {\n value: string | {form: IdxForm} | Input[];\n label: string;\n relatesTo?: IdxAuthenticator;\n}\n\nexport interface IdpConfig {\n id: string;\n name: string;\n}\n\nexport interface IdxRemediationValueForm {\n form: IdxForm;\n}\n\nexport interface IdxRemediationValue {\n name: string;\n type?: string;\n required?: boolean;\n secret?: boolean;\n visible?: boolean;\n mutable?: boolean;\n value?: string | IdxRemediationValueForm;\n label?: string;\n form?: IdxForm;\n options?: IdxOption[];\n messages?: IdxMessages;\n minLength?: number;\n maxLength?: number;\n relatesTo?: {\n type?: string;\n value: IdxAuthenticator;\n };\n}\n\nexport interface IdxRemediation {\n name: string;\n label?: string;\n value?: IdxRemediationValue[];\n relatesTo?: {\n type?: string;\n value: IdxAuthenticator;\n };\n idp?: IdpConfig;\n href?: string;\n method?: string;\n type?: string;\n accepts?: string;\n produces?: string;\n refresh?: number;\n rel?: string[];\n action?: (payload?: IdxActionParams) => Promise<IdxResponse>;\n}\n\nexport interface IdxContext {\n version: string;\n stateHandle: string;\n expiresAt: string;\n intent: string;\n currentAuthenticator: {\n type: string;\n value: IdxAuthenticator;\n };\n authenticators: {\n type: string;\n value: IdxAuthenticator[];\n };\n authenticatorEnrollments: {\n type: string;\n value: IdxAuthenticator[];\n };\n enrollmentAuthenticator: {\n type: string;\n value: IdxAuthenticator;\n };\n user?: {\n type: string;\n value: Record<string, unknown>;\n };\n app: {\n type: string;\n value: Record<string, unknown>;\n };\n messages?: IdxMessages;\n success?: IdxRemediation;\n failure?: IdxRemediation;\n}\n\nexport interface IdxMessage {\n message: string;\n class: string;\n i18n: {\n key: string;\n params?: unknown[];\n };\n}\n\nexport interface IdxMessages {\n type: 'array';\n value: IdxMessage[];\n}\n\n// JSON response from the server\nexport interface RawIdxResponse {\n version: string;\n stateHandle: string;\n intent?: string;\n expiresAt?: string;\n remediation?: {\n type: 'array';\n value: IdxRemediation[];\n };\n messages?: IdxMessages;\n success?: boolean;\n successWithInteractionCode?: IdxRemediation;\n currentAuthenticator?: {\n type: string;\n value: IdxAuthenticator;\n };\n currentAuthenticatorEnrollment?: {\n type: string;\n value: IdxAuthenticator;\n };\n}\n\nexport function isRawIdxResponse(obj: any): obj is RawIdxResponse {\n return obj && obj.version;\n}\n\nexport interface IdxActionParams {\n [key: string]: string | boolean | number | object;\n}\n\nexport interface IdxActions {\n [key: string]: (params?: IdxActionParams) => Promise<IdxResponse>;\n}\n\nexport interface IdxToPersist {\n interactionHandle?: string;\n withCredentials?: boolean;\n}\n\nexport interface IdxActionFunction {\n (params: IdxActionParams): Promise<IdxResponse>;\n neededParams?: Array<Array<IdxRemediationValue>>;\n}\n\nexport interface IdxResponse {\n proceed: (remediationName: string, params: unknown) => Promise<IdxResponse>;\n neededToProceed: IdxRemediation[];\n rawIdxState: RawIdxResponse;\n interactionCode?: string;\n actions: IdxActions;\n toPersist: IdxToPersist;\n context?: IdxContext;\n requestDidSucceed?: boolean;\n stepUp?: boolean;\n}\n\nexport function isIdxResponse(obj: any): obj is IdxResponse {\n return obj && isRawIdxResponse(obj.rawIdxState);\n}\n"],"mappings":";;;;;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;
|
|
1
|
+
{"version":3,"file":"idx-js.js","names":["isRawIdxResponse","obj","version","isIdxResponse","rawIdxState"],"sources":["../../../../lib/idx/types/idx-js.ts"],"sourcesContent":["/* eslint-disable no-use-before-define */\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\nimport { Input } from './api';\n\n\n// TODO: remove when idx-js provides type information\n\nexport interface ChallengeData {\n challenge: string; \n userVerification: string; \n extensions?: {\n appid: string;\n };\n}\nexport interface ActivationData {\n challenge: string;\n rp: {\n name: string;\n };\n user: {\n id: string;\n name: string;\n displayName: string;\n };\n pubKeyCredParams: {\n type: string;\n alg: number;\n }[];\n attestation?: string;\n authenticatorSelection?: {\n userVerification?: string;\n authenticatorAttachment?: string;\n requireResidentKey?: boolean;\n residentKey?: string;\n };\n excludeCredentials?: {\n id: string;\n type: string;\n }[];\n}\nexport interface IdxAuthenticatorMethod {\n type: string;\n}\nexport interface IdxAuthenticator {\n displayName: string;\n id: string;\n key: string;\n methods: IdxAuthenticatorMethod[];\n type: string;\n settings?: {\n complexity?: unknown;\n age?: unknown;\n };\n contextualData?: {\n enrolledQuestion?: {\n question: string;\n questionKey: string;\n };\n qrcode?: { \n href: string; \n method: string; \n type: string; \n };\n sharedSecret?: string;\n questions?: {\n questionKey: string;\n question: string;\n }[];\n questionKeys?: string[];\n selectedChannel?: string;\n activationData?: ActivationData;\n challengeData?: ChallengeData;\n };\n credentialId?: string;\n enrollmentId?: string;\n profile?: Record<string, unknown>;\n resend?: Record<string, unknown>;\n poll?: Record<string, unknown>;\n recover?: Record<string, unknown>;\n deviceKnown?: boolean;\n}\n\nexport interface IdxForm {\n value: IdxRemediationValue[];\n}\n\nexport interface IdxOption {\n value: string | {form: IdxForm} | Input[];\n label: string;\n relatesTo?: IdxAuthenticator;\n}\n\nexport interface IdpConfig {\n id: string;\n name: string;\n}\n\nexport interface IdxRemediationValueForm {\n form: IdxForm;\n}\n\nexport interface IdxRemediationValue {\n name: string;\n type?: string;\n required?: boolean;\n secret?: boolean;\n visible?: boolean;\n mutable?: boolean;\n value?: string | IdxRemediationValueForm;\n label?: string;\n form?: IdxForm;\n options?: IdxOption[];\n messages?: IdxMessages;\n minLength?: number;\n maxLength?: number;\n relatesTo?: {\n type?: string;\n value: IdxAuthenticator;\n };\n}\n\nexport interface IdxRemediation {\n name: string;\n label?: string;\n value?: IdxRemediationValue[];\n relatesTo?: {\n type?: string;\n value: IdxAuthenticator;\n };\n idp?: IdpConfig;\n href?: string;\n method?: string;\n type?: string;\n accepts?: string;\n produces?: string;\n refresh?: number;\n rel?: string[];\n action?: (payload?: IdxActionParams) => Promise<IdxResponse>;\n}\n\nexport interface IdxContext {\n version: string;\n stateHandle: string;\n expiresAt: string;\n intent: string;\n currentAuthenticator: {\n type: string;\n value: IdxAuthenticator;\n };\n authenticators: {\n type: string;\n value: IdxAuthenticator[];\n };\n authenticatorEnrollments: {\n type: string;\n value: IdxAuthenticator[];\n };\n enrollmentAuthenticator: {\n type: string;\n value: IdxAuthenticator;\n };\n user?: {\n type: string;\n value: Record<string, unknown>;\n };\n uiDisplay?: IdxContextUIDisplay\n app: {\n type: string;\n value: Record<string, unknown>;\n };\n messages?: IdxMessages;\n success?: IdxRemediation;\n failure?: IdxRemediation;\n}\n\nexport interface IdxContextUIDisplay {\n type: string;\n value: {\n label?: string;\n buttonLabel?: string;\n }\n}\n\nexport interface IdxMessage {\n message: string;\n class: string;\n i18n: {\n key: string;\n params?: unknown[];\n };\n}\n\nexport interface IdxMessages {\n type: 'array';\n value: IdxMessage[];\n}\n\n// JSON response from the server\nexport interface RawIdxResponse {\n version: string;\n stateHandle: string;\n intent?: string;\n expiresAt?: string;\n remediation?: {\n type: 'array';\n value: IdxRemediation[];\n };\n messages?: IdxMessages;\n success?: boolean;\n successWithInteractionCode?: IdxRemediation;\n currentAuthenticator?: {\n type: string;\n value: IdxAuthenticator;\n };\n currentAuthenticatorEnrollment?: {\n type: string;\n value: IdxAuthenticator;\n };\n}\n\nexport function isRawIdxResponse(obj: any): obj is RawIdxResponse {\n return obj && obj.version;\n}\n\nexport interface IdxActionParams {\n [key: string]: string | boolean | number | object;\n}\n\nexport interface IdxActions {\n [key: string]: (params?: IdxActionParams) => Promise<IdxResponse>;\n}\n\nexport interface IdxToPersist {\n interactionHandle?: string;\n withCredentials?: boolean;\n}\n\nexport interface IdxActionFunction {\n (params: IdxActionParams): Promise<IdxResponse>;\n neededParams?: Array<Array<IdxRemediationValue>>;\n}\n\nexport interface IdxResponse {\n proceed: (remediationName: string, params: unknown) => Promise<IdxResponse>;\n neededToProceed: IdxRemediation[];\n rawIdxState: RawIdxResponse;\n interactionCode?: string;\n actions: IdxActions;\n toPersist: IdxToPersist;\n context?: IdxContext;\n requestDidSucceed?: boolean;\n stepUp?: boolean;\n}\n\nexport function isIdxResponse(obj: any): obj is IdxResponse {\n return obj && isRawIdxResponse(obj.rawIdxState);\n}\n"],"mappings":";;;;;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AAgMA;AAuBO,SAASA,gBAAT,CAA0BC,GAA1B,EAA2D;EAChE,OAAOA,GAAG,IAAIA,GAAG,CAACC,OAAlB;AACD;;AAgCM,SAASC,aAAT,CAAuBF,GAAvB,EAAqD;EAC1D,OAAOA,GAAG,IAAID,gBAAgB,CAACC,GAAG,CAACG,WAAL,CAA9B;AACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../lib/idx/types/index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nexport * from './api';\nexport * from './options';\nexport type {\n IdxMessage,\n IdxMessages,\n ChallengeData,\n ActivationData,\n IdxResponse,\n IdxContext,\n RawIdxResponse,\n IdxRemediation,\n IdxAuthenticator,\n IdxActionParams,\n} from './idx-js';\nexport * from './meta';\nexport type { FlowIdentifier } from './FlowIdentifier';\nexport type { WebauthnEnrollValues } from '../authenticator/WebauthnEnrollment';\nexport type { WebauthnVerificationValues } from '../authenticator/WebauthnVerification';\nexport * from './storage';\n"],"mappings":";;AAaA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../lib/idx/types/index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nexport * from './api';\nexport * from './options';\nexport type {\n IdxMessage,\n IdxMessages,\n ChallengeData,\n ActivationData,\n IdxResponse,\n IdxContext,\n RawIdxResponse,\n IdxRemediation,\n IdxAuthenticator,\n IdxActionParams,\n IdxContextUIDisplay,\n\n} from './idx-js';\nexport * from './meta';\nexport type { FlowIdentifier } from './FlowIdentifier';\nexport type { WebauthnEnrollValues } from '../authenticator/WebauthnEnrollment';\nexport type { WebauthnVerificationValues } from '../authenticator/WebauthnVerification';\nexport * from './storage';\n"],"mappings":";;AAaA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AAeA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AAIA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8"/>
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
6
|
-
<title>@okta/okta-auth-js [
|
|
6
|
+
<title>@okta/okta-auth-js [9 Nov 2022 at 11:18]</title>
|
|
7
7
|
<link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
|
|
8
8
|
|
|
9
9
|
<script>
|