@okta/okta-auth-js 6.7.3 → 6.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/cjs/OktaUserAgent.js +2 -2
- package/cjs/idx/remediators/SelectEnrollmentChannel.js +24 -3
- package/cjs/idx/remediators/SelectEnrollmentChannel.js.map +1 -1
- package/cjs/idx/types/api.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.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/remediators/SelectEnrollmentChannel.js +16 -3
- package/esm/browser/idx/remediators/SelectEnrollmentChannel.js.map +1 -1
- package/esm/browser/idx/types/api.js.map +1 -1
- package/esm/node/OktaUserAgent.js +2 -2
- package/esm/node/idx/remediators/SelectEnrollmentChannel.js +16 -3
- package/esm/node/idx/remediators/SelectEnrollmentChannel.js.map +1 -1
- package/esm/node/idx/types/api.js.map +1 -1
- package/lib/idx/remediators/SelectEnrollmentChannel.d.ts +6 -6
- package/lib/idx/types/api.d.ts +1 -0
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 6.7.4
|
|
4
|
+
|
|
5
|
+
### Fixes
|
|
6
|
+
- [#1263](https://github.com/okta/okta-auth-js/pull/1263) (IDX) `select-enrollment-channel` remediation now accepts protocol defined inputs, as well as conveniences
|
|
7
|
+
- [#1262](https://github.com/okta/okta-auth-js/pull/1262) Freezes `broadcast-channel` version at `4.13.0`, `4.14.0` requires node 14+
|
|
8
|
+
|
|
3
9
|
## 6.7.3
|
|
4
10
|
|
|
5
11
|
- [#1264](https://github.com/okta/okta-auth-js/pull/1264) IDX GenericRemediator patches (beta):
|
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.7.
|
|
24
|
+
this.environments = [`okta-auth-js/${"6.7.4"}`];
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
addEnvironment(env) {
|
|
@@ -36,7 +36,7 @@ class OktaUserAgent {
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
getVersion() {
|
|
39
|
-
return "6.7.
|
|
39
|
+
return "6.7.4";
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
maybeAddNodeEnvironment() {
|
|
@@ -33,7 +33,22 @@ var _util = require("./util");
|
|
|
33
33
|
*/
|
|
34
34
|
class SelectEnrollmentChannel extends _Remediator.Remediator {
|
|
35
35
|
canRemediate() {
|
|
36
|
-
|
|
36
|
+
if ((0, _values.default)(this).channel) {
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if ((0, _values.default)(this).authenticator) {
|
|
41
|
+
const {
|
|
42
|
+
id,
|
|
43
|
+
channel
|
|
44
|
+
} = (0, _values.default)(this).authenticator;
|
|
45
|
+
|
|
46
|
+
if (!!id && !!channel) {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return false;
|
|
37
52
|
}
|
|
38
53
|
|
|
39
54
|
getNextStep(authClient, context) {
|
|
@@ -60,12 +75,14 @@ class SelectEnrollmentChannel extends _Remediator.Remediator {
|
|
|
60
75
|
}
|
|
61
76
|
|
|
62
77
|
getData() {
|
|
78
|
+
var _this$values$authenti;
|
|
79
|
+
|
|
63
80
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
64
81
|
const remediationValue = this.remediation.value[0].value;
|
|
65
82
|
return {
|
|
66
83
|
authenticator: {
|
|
67
84
|
id: remediationValue.form.value[0].value,
|
|
68
|
-
channel: (0, _values.default)(this).channel
|
|
85
|
+
channel: ((_this$values$authenti = (0, _values.default)(this).authenticator) === null || _this$values$authenti === void 0 ? void 0 : _this$values$authenti.channel) || (0, _values.default)(this).channel
|
|
69
86
|
},
|
|
70
87
|
stateHandle: (0, _values.default)(this).stateHandle
|
|
71
88
|
};
|
|
@@ -74,7 +91,11 @@ class SelectEnrollmentChannel extends _Remediator.Remediator {
|
|
|
74
91
|
getValuesAfterProceed() {
|
|
75
92
|
var _context2;
|
|
76
93
|
|
|
77
|
-
|
|
94
|
+
this.values = super.getValuesAfterProceed();
|
|
95
|
+
delete (0, _values.default)(this).authenticators; // required to prevent infinite loops from auto-remediating via values
|
|
96
|
+
|
|
97
|
+
const filterKey = (0, _values.default)(this).channel ? 'channel' : 'authenticator';
|
|
98
|
+
let trimmedValues = (0, _filter.default)(_context2 = (0, _keys.default)((0, _values.default)(this))).call(_context2, valueKey => valueKey !== filterKey);
|
|
78
99
|
return (0, _reduce.default)(trimmedValues).call(trimmedValues, (values, valueKey) => ({ ...values,
|
|
79
100
|
[valueKey]: (0, _values.default)(this)[valueKey]
|
|
80
101
|
}), {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectEnrollmentChannel.js","names":["SelectEnrollmentChannel","Remediator","canRemediate","
|
|
1
|
+
{"version":3,"file":"SelectEnrollmentChannel.js","names":["SelectEnrollmentChannel","Remediator","canRemediate","channel","authenticator","id","getNextStep","authClient","context","common","options","getChannels","currentAuthenticator","value","remediation","remediationValue","form","name","getData","stateHandle","getValuesAfterProceed","values","authenticators","filterKey","trimmedValues","valueKey"],"sources":["../../../../lib/idx/remediators/SelectEnrollmentChannel.ts"],"sourcesContent":["/*!\n * Copyright (c) 2021-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { Remediator, RemediationValues } from './Base/Remediator';\nimport { IdxRemediationValueForm, IdxOption, IdxRemediationValue, IdxContext } from '../types/idx-js';\nimport { Authenticator } from '../types';\nimport { getAuthenticatorFromRemediation } from './util';\nimport { OktaAuthIdxInterface } from '../../types';\n\n\nexport type SelectEnrollmentChannelValues = RemediationValues & {\n channel?: string;\n};\n\nexport class SelectEnrollmentChannel extends Remediator<SelectEnrollmentChannelValues> {\n static remediationName = 'select-enrollment-channel';\n\n canRemediate() {\n if (this.values.channel) {\n return true;\n }\n\n if (this.values.authenticator) {\n const { id, channel } = this.values.authenticator as Authenticator;\n if (!!id && !!channel) {\n return true;\n }\n }\n\n return false;\n }\n\n getNextStep(authClient: OktaAuthIdxInterface, context: IdxContext) {\n const common = super.getNextStep(authClient, context);\n const options = this.getChannels();\n const authenticator = context.currentAuthenticator.value;\n return {\n ...common,\n // TODO: remove options field in the next major version - OKTA-491236\n ...(options && { options }),\n authenticator,\n };\n }\n\n private getChannels(): IdxOption[] | undefined {\n const authenticator: IdxRemediationValue = getAuthenticatorFromRemediation(this.remediation);\n const remediationValue = authenticator.value as IdxRemediationValueForm;\n return remediationValue.form.value.find(({ name }) => name === 'channel')?.options;\n }\n\n getData() {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const remediationValue = this.remediation!.value![0].value as IdxRemediationValueForm;\n return {\n authenticator: {\n id: remediationValue.form.value[0].value,\n channel: (this.values.authenticator as Authenticator)?.channel || this.values.channel,\n },\n stateHandle: this.values.stateHandle,\n\n };\n }\n\n getValuesAfterProceed(): SelectEnrollmentChannelValues {\n this.values = super.getValuesAfterProceed();\n delete this.values.authenticators; // required to prevent infinite loops from auto-remediating via values\n const filterKey = this.values.channel ? 'channel' : 'authenticator';\n let trimmedValues = Object.keys(this.values).filter(valueKey => valueKey !== filterKey);\n return trimmedValues.reduce((values, valueKey) => ({...values, [valueKey]: this.values[valueKey]}), {});\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAaA;;AAGA;;AAhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAcO,MAAMA,uBAAN,SAAsCC,sBAAtC,CAAgF;EAGrFC,YAAY,GAAG;IACb,IAAI,2BAAYC,OAAhB,EAAyB;MACvB,OAAO,IAAP;IACD;;IAED,IAAI,2BAAYC,aAAhB,EAA+B;MAC7B,MAAM;QAAEC,EAAF;QAAMF;MAAN,IAAkB,2BAAYC,aAApC;;MACA,IAAI,CAAC,CAACC,EAAF,IAAQ,CAAC,CAACF,OAAd,EAAuB;QACrB,OAAO,IAAP;MACD;IACF;;IAED,OAAO,KAAP;EACD;;EAEDG,WAAW,CAACC,UAAD,EAAmCC,OAAnC,EAAwD;IACjE,MAAMC,MAAM,GAAG,MAAMH,WAAN,CAAkBC,UAAlB,EAA8BC,OAA9B,CAAf;IACA,MAAME,OAAO,GAAG,KAAKC,WAAL,EAAhB;IACA,MAAMP,aAAa,GAAGI,OAAO,CAACI,oBAAR,CAA6BC,KAAnD;IACA,OAAO,EACL,GAAGJ,MADE;MAEL;MACA,IAAIC,OAAO,IAAI;QAAEA;MAAF,CAAf,CAHK;MAILN;IAJK,CAAP;EAMD;;EAEOO,WAAW,GAA4B;IAAA;;IAC7C,MAAMP,aAAkC,GAAG,2CAAgC,KAAKU,WAArC,CAA3C;IACA,MAAMC,gBAAgB,GAAGX,aAAa,CAACS,KAAvC;IACA,gCAAO,8BAAAE,gBAAgB,CAACC,IAAjB,CAAsBH,KAAtB,iBAAiC,CAAC;MAAEI;IAAF,CAAD,KAAcA,IAAI,KAAK,SAAxD,CAAP,0DAAO,sBAAoEP,OAA3E;EACD;;EAEDQ,OAAO,GAAG;IAAA;;IACR;IACA,MAAMH,gBAAgB,GAAG,KAAKD,WAAL,CAAkBD,KAAlB,CAAyB,CAAzB,EAA4BA,KAArD;IACA,OAAO;MACLT,aAAa,EAAE;QACbC,EAAE,EAAEU,gBAAgB,CAACC,IAAjB,CAAsBH,KAAtB,CAA4B,CAA5B,EAA+BA,KADtB;QAEbV,OAAO,EAAE,0BAAC,2BAAYC,aAAb,gFAA8CD,OAA9C,KAAyD,2BAAYA;MAFjE,CADV;MAKLgB,WAAW,EAAE,2BAAYA;IALpB,CAAP;EAQD;;EAEDC,qBAAqB,GAAkC;IAAA;;IACrD,KAAKC,MAAL,GAAc,MAAMD,qBAAN,EAAd;IACA,OAAO,2BAAYE,cAAnB,CAFqD,CAEf;;IACtC,MAAMC,SAAS,GAAG,2BAAYpB,OAAZ,GAAsB,SAAtB,GAAkC,eAApD;IACA,IAAIqB,aAAa,GAAG,yEAAY,IAAZ,oBAAgCC,QAAQ,IAAIA,QAAQ,KAAKF,SAAzD,CAApB;IACA,OAAO,qBAAAC,aAAa,MAAb,CAAAA,aAAa,EAAQ,CAACH,MAAD,EAASI,QAAT,MAAuB,EAAC,GAAGJ,MAAJ;MAAY,CAACI,QAAD,GAAY,2BAAYA,QAAZ;IAAxB,CAAvB,CAAR,EAAgF,EAAhF,CAApB;EACD;;AAvDoF;;;8BAA1EzB,uB,qBACc,2B"}
|
package/cjs/idx/types/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","names":["IdxStatus","AuthenticatorKey","IdxFeature","isAuthenticator","obj","key","id"],"sources":["../../../../lib/idx/types/api.ts"],"sourcesContent":["import { APIError } from '../../types/api';\nimport { Tokens } from '../../types/Token';\nimport { PKCETransactionMeta } from '../../types/Transaction';\nimport { FlowIdentifier } from './FlowIdentifier';\nimport {\n IdxActions,\n IdxAuthenticator,\n IdxContext,\n IdxForm,\n IdxMessage,\n IdxOption,\n IdxRemediation,\n IdxResponse,\n RawIdxResponse,\n IdxActionParams,\n IdpConfig,\n} from './idx-js';\n\nexport enum IdxStatus {\n SUCCESS = 'SUCCESS',\n PENDING = 'PENDING',\n FAILURE = 'FAILURE',\n TERMINAL = 'TERMINAL',\n CANCELED = 'CANCELED',\n}\n\nexport enum AuthenticatorKey {\n OKTA_PASSWORD = 'okta_password',\n OKTA_EMAIL = 'okta_email',\n PHONE_NUMBER = 'phone_number',\n GOOGLE_AUTHENTICATOR = 'google_otp',\n SECURITY_QUESTION = 'security_question',\n OKTA_VERIFY = 'okta_verify',\n WEBAUTHN = 'webauthn',\n}\n\nexport type Input = {\n name: string;\n key?: string;\n type?: string;\n label?: string;\n value?: string | {form: IdxForm} | Input[];\n minLength?: number;\n maxLength?: number;\n secret?: boolean;\n required?: boolean;\n options?: IdxOption[];\n mutable?: boolean;\n visible?: boolean;\n}\n\n\nexport interface IdxPollOptions {\n required?: boolean;\n refresh?: number;\n}\n\nexport type NextStep = {\n name: string;\n authenticator?: IdxAuthenticator;\n canSkip?: boolean;\n canResend?: boolean;\n inputs?: Input[];\n options?: IdxOption[];\n poll?: IdxPollOptions;\n authenticatorEnrollments?: IdxAuthenticator[];\n // eslint-disable-next-line no-use-before-define\n action?: (params?: IdxActionParams) => Promise<IdxTransaction>;\n idp?: IdpConfig;\n href?: string;\n relatesTo?: {\n type?: string;\n value: IdxAuthenticator;\n };\n refresh?: number;\n}\n\nexport enum IdxFeature {\n PASSWORD_RECOVERY = 'recover-password',\n REGISTRATION = 'enroll-profile',\n SOCIAL_IDP = 'redirect-idp',\n ACCOUNT_UNLOCK = 'unlock-account',\n}\n\nexport interface IdxTransactionMeta extends PKCETransactionMeta {\n interactionHandle?: string;\n remediations?: string[];\n flow?: FlowIdentifier;\n withCredentials?: boolean;\n activationToken?: string;\n recoveryToken?: string;\n maxAge?: string | number;\n}\n\nexport interface IdxTransaction {\n status: IdxStatus;\n tokens?: Tokens;\n nextStep?: NextStep;\n messages?: IdxMessage[];\n error?: APIError | IdxResponse;\n meta?: IdxTransactionMeta;\n enabledFeatures?: IdxFeature[];\n availableSteps?: NextStep[];\n requestDidSucceed?: boolean;\n stepUp?: boolean;\n \n // from idx-js, used by signin widget\n proceed: (remediationName: string, params: unknown) => Promise<IdxResponse>;\n neededToProceed: IdxRemediation[];\n rawIdxState: RawIdxResponse;\n interactionCode?: string;\n actions: IdxActions;\n context: IdxContext;\n}\n\n\nexport type Authenticator = {\n id?: string;\n key?: string;\n methodType?: string;\n phoneNumber?: string;\n};\n\nexport function isAuthenticator(obj: any): obj is Authenticator {\n return obj && (obj.key || obj.id);\n}\n\nexport interface RemediationResponse {\n idxResponse: IdxResponse;\n nextStep?: NextStep;\n messages?: IdxMessage[];\n terminal?: boolean;\n canceled?: boolean;\n}\n\nexport interface InteractResponse {\n state?: string;\n interactionHandle: string;\n meta: IdxTransactionMeta;\n}\n"],"mappings":";;;;IAkBYA,S;;;WAAAA,S;EAAAA,S;EAAAA,S;EAAAA,S;EAAAA,S;EAAAA,S;GAAAA,S,yBAAAA,S;;IAQAC,gB;;;WAAAA,gB;EAAAA,gB;EAAAA,gB;EAAAA,gB;EAAAA,gB;EAAAA,gB;EAAAA,gB;EAAAA,gB;GAAAA,gB,gCAAAA,gB;;IAmDAC,U;;;WAAAA,U;EAAAA,U;EAAAA,U;EAAAA,U;EAAAA,U;GAAAA,U,0BAAAA,U;;
|
|
1
|
+
{"version":3,"file":"api.js","names":["IdxStatus","AuthenticatorKey","IdxFeature","isAuthenticator","obj","key","id"],"sources":["../../../../lib/idx/types/api.ts"],"sourcesContent":["import { APIError } from '../../types/api';\nimport { Tokens } from '../../types/Token';\nimport { PKCETransactionMeta } from '../../types/Transaction';\nimport { FlowIdentifier } from './FlowIdentifier';\nimport {\n IdxActions,\n IdxAuthenticator,\n IdxContext,\n IdxForm,\n IdxMessage,\n IdxOption,\n IdxRemediation,\n IdxResponse,\n RawIdxResponse,\n IdxActionParams,\n IdpConfig,\n} from './idx-js';\n\nexport enum IdxStatus {\n SUCCESS = 'SUCCESS',\n PENDING = 'PENDING',\n FAILURE = 'FAILURE',\n TERMINAL = 'TERMINAL',\n CANCELED = 'CANCELED',\n}\n\nexport enum AuthenticatorKey {\n OKTA_PASSWORD = 'okta_password',\n OKTA_EMAIL = 'okta_email',\n PHONE_NUMBER = 'phone_number',\n GOOGLE_AUTHENTICATOR = 'google_otp',\n SECURITY_QUESTION = 'security_question',\n OKTA_VERIFY = 'okta_verify',\n WEBAUTHN = 'webauthn',\n}\n\nexport type Input = {\n name: string;\n key?: string;\n type?: string;\n label?: string;\n value?: string | {form: IdxForm} | Input[];\n minLength?: number;\n maxLength?: number;\n secret?: boolean;\n required?: boolean;\n options?: IdxOption[];\n mutable?: boolean;\n visible?: boolean;\n}\n\n\nexport interface IdxPollOptions {\n required?: boolean;\n refresh?: number;\n}\n\nexport type NextStep = {\n name: string;\n authenticator?: IdxAuthenticator;\n canSkip?: boolean;\n canResend?: boolean;\n inputs?: Input[];\n options?: IdxOption[];\n poll?: IdxPollOptions;\n authenticatorEnrollments?: IdxAuthenticator[];\n // eslint-disable-next-line no-use-before-define\n action?: (params?: IdxActionParams) => Promise<IdxTransaction>;\n idp?: IdpConfig;\n href?: string;\n relatesTo?: {\n type?: string;\n value: IdxAuthenticator;\n };\n refresh?: number;\n}\n\nexport enum IdxFeature {\n PASSWORD_RECOVERY = 'recover-password',\n REGISTRATION = 'enroll-profile',\n SOCIAL_IDP = 'redirect-idp',\n ACCOUNT_UNLOCK = 'unlock-account',\n}\n\nexport interface IdxTransactionMeta extends PKCETransactionMeta {\n interactionHandle?: string;\n remediations?: string[];\n flow?: FlowIdentifier;\n withCredentials?: boolean;\n activationToken?: string;\n recoveryToken?: string;\n maxAge?: string | number;\n}\n\nexport interface IdxTransaction {\n status: IdxStatus;\n tokens?: Tokens;\n nextStep?: NextStep;\n messages?: IdxMessage[];\n error?: APIError | IdxResponse;\n meta?: IdxTransactionMeta;\n enabledFeatures?: IdxFeature[];\n availableSteps?: NextStep[];\n requestDidSucceed?: boolean;\n stepUp?: boolean;\n \n // from idx-js, used by signin widget\n proceed: (remediationName: string, params: unknown) => Promise<IdxResponse>;\n neededToProceed: IdxRemediation[];\n rawIdxState: RawIdxResponse;\n interactionCode?: string;\n actions: IdxActions;\n context: IdxContext;\n}\n\n\nexport type Authenticator = {\n id?: string;\n key?: string;\n methodType?: string;\n phoneNumber?: string;\n channel?: string;\n};\n\nexport function isAuthenticator(obj: any): obj is Authenticator {\n return obj && (obj.key || obj.id);\n}\n\nexport interface RemediationResponse {\n idxResponse: IdxResponse;\n nextStep?: NextStep;\n messages?: IdxMessage[];\n terminal?: boolean;\n canceled?: boolean;\n}\n\nexport interface InteractResponse {\n state?: string;\n interactionHandle: string;\n meta: IdxTransactionMeta;\n}\n"],"mappings":";;;;IAkBYA,S;;;WAAAA,S;EAAAA,S;EAAAA,S;EAAAA,S;EAAAA,S;EAAAA,S;GAAAA,S,yBAAAA,S;;IAQAC,gB;;;WAAAA,gB;EAAAA,gB;EAAAA,gB;EAAAA,gB;EAAAA,gB;EAAAA,gB;EAAAA,gB;EAAAA,gB;GAAAA,gB,gCAAAA,gB;;IAmDAC,U;;;WAAAA,U;EAAAA,U;EAAAA,U;EAAAA,U;EAAAA,U;GAAAA,U,0BAAAA,U;;AA+CL,SAASC,eAAT,CAAyBC,GAAzB,EAAyD;EAC9D,OAAOA,GAAG,KAAKA,GAAG,CAACC,GAAJ,IAAWD,GAAG,CAACE,EAApB,CAAV;AACD"}
|