@mxenabled/connect-widget 2.5.2 → 2.5.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/dist/index.es.js +50 -34
- package/dist/index.es.js.map +1 -1
- package/dist/lastBuild.txt +1 -1
- package/package.json +1 -1
package/dist/index.es.js
CHANGED
|
@@ -9167,7 +9167,10 @@ const ACTIONABLE_ERROR_CODES = {
|
|
|
9167
9167
|
NO_ELIGIBLE_ACCOUNTS: 1e3
|
|
9168
9168
|
};
|
|
9169
9169
|
const ACTIVE_ACTIONABLE_ERROR_CODES = Object.values(ACTIONABLE_ERROR_CODES);
|
|
9170
|
-
const canHandleActionableError = (errorCode) => {
|
|
9170
|
+
const canHandleActionableError = (errorCode, mode) => {
|
|
9171
|
+
if (errorCode === ACTIONABLE_ERROR_CODES.NO_ELIGIBLE_ACCOUNTS && mode !== VERIFY_MODE) {
|
|
9172
|
+
return false;
|
|
9173
|
+
}
|
|
9171
9174
|
return ACTIVE_ACTIONABLE_ERROR_CODES.includes(errorCode);
|
|
9172
9175
|
};
|
|
9173
9176
|
|
|
@@ -9460,7 +9463,7 @@ const stepToMicrodeposits = (state) => ({
|
|
|
9460
9463
|
location: pushLocation(state.location, STEPS.MICRODEPOSITS)
|
|
9461
9464
|
});
|
|
9462
9465
|
const jobComplete = (state, action) => {
|
|
9463
|
-
const { member, job } = action.payload;
|
|
9466
|
+
const { member, job, mode = AGG_MODE } = action.payload;
|
|
9464
9467
|
const members = upsertMember(state, { payload: member });
|
|
9465
9468
|
if (member.connection_status === ReadableStatuses$1.CONNECTED) {
|
|
9466
9469
|
const scheduledJobs = onJobFinished(state.jobSchedule, job);
|
|
@@ -9469,7 +9472,7 @@ const jobComplete = (state, action) => {
|
|
|
9469
9472
|
return {
|
|
9470
9473
|
...state,
|
|
9471
9474
|
currentMemberGuid: member.guid,
|
|
9472
|
-
location: pushLocation(state.location, getStepFromMember(member)),
|
|
9475
|
+
location: pushLocation(state.location, getStepFromMember(member, mode)),
|
|
9473
9476
|
members,
|
|
9474
9477
|
updateCredentials: member.connection_status === ReadableStatuses$1.DENIED || state.updateCredentials
|
|
9475
9478
|
};
|
|
@@ -9597,7 +9600,7 @@ function getStartingStep(members, member, microdeposit, config, institution, wid
|
|
|
9597
9600
|
else if (shouldUpdateCredentials)
|
|
9598
9601
|
return STEPS.ENTER_CREDENTIALS;
|
|
9599
9602
|
else if (member && config.current_member_guid)
|
|
9600
|
-
return shouldStepToConnecting ? STEPS.CONNECTING : getStepFromMember(member);
|
|
9603
|
+
return shouldStepToConnecting ? STEPS.CONNECTING : getStepFromMember(member, config.mode);
|
|
9601
9604
|
else if (shouldStepToMicrodeposits)
|
|
9602
9605
|
return STEPS.MICRODEPOSITS;
|
|
9603
9606
|
else if (widgetProfile.display_disclosure_in_connect)
|
|
@@ -9608,11 +9611,11 @@ function getStartingStep(members, member, microdeposit, config, institution, wid
|
|
|
9608
9611
|
return getIavMembers(members).length > 0 ? STEPS.VERIFY_EXISTING_MEMBER : STEPS.SEARCH;
|
|
9609
9612
|
else return STEPS.SEARCH;
|
|
9610
9613
|
}
|
|
9611
|
-
function getStepFromMember(member) {
|
|
9614
|
+
function getStepFromMember(member, mode = AGG_MODE) {
|
|
9612
9615
|
const connection_status = member.connection_status;
|
|
9613
9616
|
if (member && memberIsBlockedForCostReasons(member)) {
|
|
9614
9617
|
return STEPS.INSTITUTION_DISABLED;
|
|
9615
|
-
} else if (member?.error?.error_code && canHandleActionableError(member?.error?.error_code) || hasNoSingleAccountSelectOptions(member))
|
|
9618
|
+
} else if (member?.error?.error_code && canHandleActionableError(member?.error?.error_code, mode) || hasNoSingleAccountSelectOptions(member))
|
|
9616
9619
|
return STEPS.ACTIONABLE_ERROR;
|
|
9617
9620
|
else if (connection_status === ReadableStatuses$1.CHALLENGED)
|
|
9618
9621
|
return STEPS.MFA;
|
|
@@ -73878,12 +73881,14 @@ const DEFAULT_POLLING_STATE = {
|
|
|
73878
73881
|
// previous response from last poll
|
|
73879
73882
|
currentResponse: {},
|
|
73880
73883
|
// current response
|
|
73881
|
-
|
|
73884
|
+
pollingIsDone: false,
|
|
73882
73885
|
// whether or not we should stop polling
|
|
73883
|
-
userMessage: CONNECTING_MESSAGES.STARTING
|
|
73886
|
+
userMessage: CONNECTING_MESSAGES.STARTING,
|
|
73884
73887
|
// message to show the end user
|
|
73888
|
+
initialDataReady: false
|
|
73889
|
+
// whether the initial data ready event has been sent
|
|
73885
73890
|
};
|
|
73886
|
-
function pollMember(memberGuid, api,
|
|
73891
|
+
function pollMember(memberGuid, api, clientLocale) {
|
|
73887
73892
|
return interval(3e3).pipe(
|
|
73888
73893
|
switchMap(
|
|
73889
73894
|
() => (
|
|
@@ -73892,13 +73897,7 @@ function pollMember(memberGuid, api, onPostMessage, sendAnalyticsEvent, clientLo
|
|
|
73892
73897
|
defer(() => api.loadMemberByGuid(memberGuid, clientLocale)).pipe(
|
|
73893
73898
|
mergeMap(
|
|
73894
73899
|
(member) => defer(() => api.loadJob(member.most_recent_job_guid)).pipe(
|
|
73895
|
-
map((job) => {
|
|
73896
|
-
if (job.async_account_data_ready) {
|
|
73897
|
-
onPostMessage("connect/initialDataReady", { member_guid: member.guid });
|
|
73898
|
-
sendAnalyticsEvent(AnalyticEvents.INITIAL_DATA_READY, { member_guid: member.guid });
|
|
73899
|
-
}
|
|
73900
|
-
return member;
|
|
73901
|
-
})
|
|
73900
|
+
map((job) => ({ member, job }))
|
|
73902
73901
|
)
|
|
73903
73902
|
),
|
|
73904
73903
|
catchError((error) => of(error))
|
|
@@ -73916,13 +73915,18 @@ function pollMember(memberGuid, api, onPostMessage, sendAnalyticsEvent, clientLo
|
|
|
73916
73915
|
// dont update previous response if this is an error
|
|
73917
73916
|
previousResponse: isError ? acc.previousResponse : acc.currentResponse,
|
|
73918
73917
|
// dont update current response if this is an error
|
|
73919
|
-
currentResponse: isError ? acc.currentResponse : response
|
|
73918
|
+
currentResponse: isError ? acc.currentResponse : response,
|
|
73919
|
+
// preserve the initialDataReadySent flag
|
|
73920
|
+
initialDataReady: acc.initialDataReady
|
|
73920
73921
|
};
|
|
73922
|
+
if (!isError && !acc.initialDataReady && response?.job?.async_account_data_ready) {
|
|
73923
|
+
pollingState.initialDataReady = true;
|
|
73924
|
+
}
|
|
73921
73925
|
const [shouldStopPolling, messageKey] = handlePollingResponse(pollingState);
|
|
73922
73926
|
return {
|
|
73923
73927
|
...pollingState,
|
|
73924
73928
|
// we should keep polling based on the member
|
|
73925
|
-
|
|
73929
|
+
pollingIsDone: isError ? false : shouldStopPolling,
|
|
73926
73930
|
userMessage: messageKey
|
|
73927
73931
|
};
|
|
73928
73932
|
},
|
|
@@ -73931,8 +73935,9 @@ function pollMember(memberGuid, api, onPostMessage, sendAnalyticsEvent, clientLo
|
|
|
73931
73935
|
);
|
|
73932
73936
|
}
|
|
73933
73937
|
function handlePollingResponse(pollingState) {
|
|
73934
|
-
const polledMember = pollingState.currentResponse;
|
|
73935
|
-
const previousMember = pollingState.previousResponse;
|
|
73938
|
+
const polledMember = pollingState.currentResponse?.member || {};
|
|
73939
|
+
const previousMember = pollingState.previousResponse?.member || {};
|
|
73940
|
+
const polledJob = pollingState.currentResponse?.job || {};
|
|
73936
73941
|
const justFinishedAggregating = previousMember.is_being_aggregated === true && polledMember.is_being_aggregated === false;
|
|
73937
73942
|
const isNotAggregatingAtAll = previousMember.is_being_aggregated === false && polledMember.is_being_aggregated === false;
|
|
73938
73943
|
if (polledMember.connection_status === ReadableStatuses$1.CHALLENGED) {
|
|
@@ -73941,6 +73946,9 @@ function handlePollingResponse(pollingState) {
|
|
|
73941
73946
|
if (ProcessingStatuses.indexOf(polledMember.connection_status) !== -1) {
|
|
73942
73947
|
return [false, CONNECTING_MESSAGES.VERIFYING];
|
|
73943
73948
|
}
|
|
73949
|
+
if (polledJob.async_account_data_ready) {
|
|
73950
|
+
return [true, CONNECTING_MESSAGES.FINISHING];
|
|
73951
|
+
}
|
|
73944
73952
|
if (polledMember.connection_status === ReadableStatuses$1.CONNECTED) {
|
|
73945
73953
|
if (polledMember.is_being_aggregated) {
|
|
73946
73954
|
return [false, CONNECTING_MESSAGES.SYNCING];
|
|
@@ -76367,25 +76375,33 @@ const Connecting = (props) => {
|
|
|
76367
76375
|
const activeJob = getActiveJob(jobSchedule);
|
|
76368
76376
|
const needsToInitializeJobSchedule = jobSchedule.isInitialized === false;
|
|
76369
76377
|
function handleMemberPoll(pollingState) {
|
|
76370
|
-
if (pollingState.pollingCount > 15 && pollingState.currentResponse?.connection_status !== ReadableStatuses$1.PENDING) {
|
|
76378
|
+
if (pollingState.pollingCount > 15 && pollingState.currentResponse?.member?.connection_status !== ReadableStatuses$1.PENDING) {
|
|
76371
76379
|
setTimedOut(true);
|
|
76372
76380
|
}
|
|
76373
76381
|
const overrideStatusChanged = postMessageEventOverrides?.memberStatusUpdate?.getHasStatusChanged({
|
|
76374
|
-
currentMember: pollingState.currentResponse,
|
|
76375
|
-
previousMember: pollingState.previousResponse
|
|
76382
|
+
currentMember: pollingState.currentResponse?.member,
|
|
76383
|
+
previousMember: pollingState.previousResponse?.member
|
|
76376
76384
|
});
|
|
76377
76385
|
const overrideEventData = postMessageEventOverrides?.memberStatusUpdate?.createEventData?.({
|
|
76378
76386
|
institution: selectedInstitution,
|
|
76379
|
-
member: pollingState.currentResponse
|
|
76387
|
+
member: pollingState.currentResponse?.member
|
|
76380
76388
|
});
|
|
76381
|
-
const statusChanged = pollingState.previousResponse?.connection_status !== pollingState.currentResponse?.connection_status;
|
|
76389
|
+
const statusChanged = pollingState.previousResponse?.member?.connection_status !== pollingState.currentResponse?.member?.connection_status;
|
|
76382
76390
|
const eventData = overrideEventData || {
|
|
76383
|
-
member_guid: pollingState.currentResponse
|
|
76384
|
-
connection_status: pollingState.currentResponse
|
|
76391
|
+
member_guid: pollingState.currentResponse?.member?.guid,
|
|
76392
|
+
connection_status: pollingState.currentResponse?.member?.connection_status
|
|
76385
76393
|
};
|
|
76386
76394
|
if (pollingState.previousResponse != null && (statusChanged || overrideStatusChanged)) {
|
|
76387
76395
|
onPostMessage("connect/memberStatusUpdate", eventData);
|
|
76388
76396
|
}
|
|
76397
|
+
if (pollingState.initialDataReady) {
|
|
76398
|
+
onPostMessage("connect/initialDataReady", {
|
|
76399
|
+
member_guid: pollingState.currentResponse?.member?.guid
|
|
76400
|
+
});
|
|
76401
|
+
sendAnalyticsEvent(AnalyticEvents.INITIAL_DATA_READY, {
|
|
76402
|
+
member_guid: pollingState.currentResponse?.member?.guid
|
|
76403
|
+
});
|
|
76404
|
+
}
|
|
76389
76405
|
setMessage(pollingState.userMessage);
|
|
76390
76406
|
}
|
|
76391
76407
|
useEffect(() => {
|
|
@@ -76485,14 +76501,14 @@ const Connecting = (props) => {
|
|
|
76485
76501
|
return needsJobStarted ? startJob$ : of(currentMember);
|
|
76486
76502
|
}).pipe(
|
|
76487
76503
|
concatMap(
|
|
76488
|
-
(member) => pollMember(member.guid, api,
|
|
76504
|
+
(member) => pollMember(member.guid, api, clientLocale).pipe(
|
|
76489
76505
|
tap((pollingState) => handleMemberPoll(pollingState)),
|
|
76490
|
-
filter((pollingState) => pollingState.
|
|
76506
|
+
filter((pollingState) => pollingState.pollingIsDone),
|
|
76491
76507
|
pluck("currentResponse"),
|
|
76492
76508
|
take(1),
|
|
76493
|
-
mergeMap((
|
|
76509
|
+
mergeMap((polledResponse) => {
|
|
76494
76510
|
const loadLatestJob$ = defer(() => api.loadJob(member.most_recent_job_guid)).pipe(
|
|
76495
|
-
map((job) => ({ member:
|
|
76511
|
+
map((job) => ({ member: polledResponse.member, job }))
|
|
76496
76512
|
);
|
|
76497
76513
|
return loadLatestJob$;
|
|
76498
76514
|
})
|
|
@@ -76504,10 +76520,10 @@ const Connecting = (props) => {
|
|
|
76504
76520
|
}
|
|
76505
76521
|
if (ErrorStatuses$1.includes(member.connection_status)) {
|
|
76506
76522
|
return fadeOut(connectingRef.current, "down").then(() => {
|
|
76507
|
-
dispatch(jobComplete$1(member, job));
|
|
76523
|
+
dispatch(jobComplete$1(member, job, connectConfig.mode));
|
|
76508
76524
|
});
|
|
76509
76525
|
} else {
|
|
76510
|
-
return dispatch(jobComplete$1(member, job));
|
|
76526
|
+
return dispatch(jobComplete$1(member, job, connectConfig.mode));
|
|
76511
76527
|
}
|
|
76512
76528
|
});
|
|
76513
76529
|
return () => connectMember$.unsubscribe();
|
|
@@ -82592,7 +82608,7 @@ const RenderConnectStep = (props) => {
|
|
|
82592
82608
|
);
|
|
82593
82609
|
} else if (step === STEPS.ACTIONABLE_ERROR) {
|
|
82594
82610
|
const errorCode = currentMember?.error?.error_code ?? null;
|
|
82595
|
-
connectStepView = canHandleActionableError(errorCode) ? /* @__PURE__ */ jsxRuntimeExports.jsx(ActionableError, {}) : /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
82611
|
+
connectStepView = canHandleActionableError(errorCode, connectConfig.mode) ? /* @__PURE__ */ jsxRuntimeExports.jsx(ActionableError, {}) : /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
82596
82612
|
LoginError,
|
|
82597
82613
|
{
|
|
82598
82614
|
institution: selectedInstitution,
|