From c96555b85c7fddc564864854f17c1bb72efa702b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 May 2026 12:09:32 +0000 Subject: [PATCH 1/5] Bump ws from 8.18.0 to 8.20.1 Bumps [ws](https://github.com/websockets/ws) from 8.18.0 to 8.20.1. - [Release notes](https://github.com/websockets/ws/releases) - [Commits](https://github.com/websockets/ws/compare/8.18.0...8.20.1) --- updated-dependencies: - dependency-name: ws dependency-version: 8.20.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index adf3b71c..88c6ec13 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21667,7 +21667,9 @@ } }, "node_modules/ws": { - "version": "8.18.0", + "version": "8.20.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.1.tgz", + "integrity": "sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w==", "dev": true, "license": "MIT", "engines": { From 61d28ac56f95f388d9ef182f589cf016226dbc1f Mon Sep 17 00:00:00 2001 From: Jeremy-Z Date: Thu, 21 May 2026 13:55:49 -0400 Subject: [PATCH 2/5] Added initial detailed bailout messaging. --- src/constants/analytics.js | 1 + src/layouts/bailout-page/bailout-page.vue | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/constants/analytics.js b/src/constants/analytics.js index be55304d..43e17ba1 100644 --- a/src/constants/analytics.js +++ b/src/constants/analytics.js @@ -15,6 +15,7 @@ const GaEvents = Object.freeze({ const GaCategories = Object.freeze({ API_RESPONSE: 'Api_Response', BAILOUT: 'Bailout', + BAILOUT_DETAILS: 'Bailout-Details', CONFIRMATION_CLICKED: "confirmation clicked", CONFIRMATION_CLICKED_INSHOP: "inshop confirmation clicked", CONFIRMATION_CLICKED_MOBILE: "mobile confirmation clicked", diff --git a/src/layouts/bailout-page/bailout-page.vue b/src/layouts/bailout-page/bailout-page.vue index dbd250d4..15516488 100644 --- a/src/layouts/bailout-page/bailout-page.vue +++ b/src/layouts/bailout-page/bailout-page.vue @@ -119,10 +119,12 @@ export default { // Only log bailout event if user is coming from a different page. // This ensures that we cannot get stuck in a loop, if the bailout-page ever bails out. if (fromPage !== issPageValues.BAILOUT_PAGE) { - const bailoutCode = useMainStore().pageData(issPageValues.BAILOUT_PAGE).bailoutCode; + const bailoutCode = useMainStore().pageData(issPageValues.BAILOUT_PAGE).bailoutCode; + const bailoutErrorMessage = useMainStore().pageData(issPageValues.BAILOUT_PAGE).errorMessage; const bailoutString = Object.keys(BailoutCode).find(key => BailoutCode[key] === bailoutCode); + analyticsMixIn.methods.pushEventToGA(GaCategories.BAILOUT_DETAILS, bailoutString, "Page: " + fromPage + " - Error Message: " + bailoutErrorMessage, true, null, null); analyticsMixIn.methods.pushEventToGA(GaCategories.BAILOUT, bailoutString, fromPage, true, null, null); - } + } // Call APIs const cmsContentPromise = fetchCmsContentForPage(to.query.issPage); From 8f411c56b3a38e0fbb1998ff19f60c2e1ef93c44 Mon Sep 17 00:00:00 2001 From: Katie Kroell Date: Fri, 22 May 2026 11:02:28 -0400 Subject: [PATCH 3/5] styling fixes --- src/layouts/tpa-submit/tpa-submit.vue | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/layouts/tpa-submit/tpa-submit.vue b/src/layouts/tpa-submit/tpa-submit.vue index 30dea5aa..d5489ad0 100644 --- a/src/layouts/tpa-submit/tpa-submit.vue +++ b/src/layouts/tpa-submit/tpa-submit.vue @@ -395,7 +395,7 @@ export default { margin: 0rem; padding: 1.25rem 1.25rem .625rem 1.25rem; .modal-title { - font-weight: $font-weight-bolder; + font-weight: 600; font-size: .875rem; line-height: 1.25rem; text-align: start; @@ -416,6 +416,12 @@ export default { font-weight: $font-weight-bold; color: $black; } + .recal-modal-body { + font-size: .9375rem; + b { + color: $black; + } + } .recal-modal-image { width: 100%; height: auto; From c4bd1de9925df3ac42f6bccc210b8cd5a0ff0d50 Mon Sep 17 00:00:00 2001 From: Jeremy-Z Date: Fri, 22 May 2026 11:19:42 -0400 Subject: [PATCH 4/5] Adding adidtional bailout and error information logging. --- src/helpers/logger.js | 39 ++++++++++++++++++++++++--------------- src/store/index.js | 1 - 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/src/helpers/logger.js b/src/helpers/logger.js index 620f3bd0..705138d8 100644 --- a/src/helpers/logger.js +++ b/src/helpers/logger.js @@ -33,30 +33,39 @@ export class Logger { formatLogEntry(message, details) { let json = ''; - if (details) { - if (details instanceof Error) { - json = JSON.stringify(details, Object.getOwnPropertyNames(details), 2); - } else { - json = JSON.stringify(details, undefined, 2) + const store = useMainStore(); + const sessionKey = getSessionKeyValue(); + + try + { + if (details) { + if (details instanceof Error) { + json = JSON.stringify(details, Object.getOwnPropertyNames(details), 2); + } else { + json = JSON.stringify(details, undefined, 2) + } } + } catch (error) { + json = `Failed to serialize log details: ${error}`; } - return `Application: ${applicationConfig.APPLICATION_NAME} \n${message} \n${json}`; + return `Application: ${applicationConfig.APPLICATION_NAME} + ClientTag: ${store.issConfig?.clientTag} + ParentAccountNumber: ${store.issConfig?.parentAccountNumber} + ClientName: ${store.issConfig?.clientName} + LastPageVisited: ${store.applicationUser?.lastPageVisited} + SessionLogSequenceNumber: ${sessionKey} + ReferralSequenceNumber: ${store.order?.referralSequenceNumber} + ReferralNumber: ${store.order?.referralNumber} + EON: ${store.order?.eon} + Message: ${message} + JSON: ${json}`; } writeLogEntry(endpoint, logEntry) { const store = useMainStore(); const sessionKey = getSessionKeyValue(); - // TODO: Work in progress. -/* - if ( store.applicationUser.logErrorCalls> 10 ) { - console.error("Exceeded maximum log error calls for this session. Further logging will be suppressed to prevent potential infinite loops."); - return; - } - - store.applicationUser.logErrorCalls += 1; -*/ return new Promise((resolve, reject) => { // If running locally or in the Dev environment show the log entries in the console. if ( diff --git a/src/store/index.js b/src/store/index.js index b23f4d47..6b6cd308 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -245,7 +245,6 @@ export const getDefaultState = () => ({ duplicateOrders: [], hasSentSaveQuoteEmail: null, coverageLookupAttempts: 0, - //logErrorCalls: 0, firstHit: true }, issConfig: { From 98f0197b473578eb840b6c384cb59a1fe4af7b20 Mon Sep 17 00:00:00 2001 From: Jeremy-Z Date: Fri, 22 May 2026 11:50:03 -0400 Subject: [PATCH 5/5] Some refinement. --- src/constants/analytics.js | 1 - src/helpers/logger.js | 24 ++++++++++++----------- src/layouts/bailout-page/bailout-page.vue | 11 ++++++++--- 3 files changed, 21 insertions(+), 15 deletions(-) diff --git a/src/constants/analytics.js b/src/constants/analytics.js index 43e17ba1..be55304d 100644 --- a/src/constants/analytics.js +++ b/src/constants/analytics.js @@ -15,7 +15,6 @@ const GaEvents = Object.freeze({ const GaCategories = Object.freeze({ API_RESPONSE: 'Api_Response', BAILOUT: 'Bailout', - BAILOUT_DETAILS: 'Bailout-Details', CONFIRMATION_CLICKED: "confirmation clicked", CONFIRMATION_CLICKED_INSHOP: "inshop confirmation clicked", CONFIRMATION_CLICKED_MOBILE: "mobile confirmation clicked", diff --git a/src/helpers/logger.js b/src/helpers/logger.js index 705138d8..e583f7c1 100644 --- a/src/helpers/logger.js +++ b/src/helpers/logger.js @@ -49,17 +49,19 @@ export class Logger { json = `Failed to serialize log details: ${error}`; } - return `Application: ${applicationConfig.APPLICATION_NAME} - ClientTag: ${store.issConfig?.clientTag} - ParentAccountNumber: ${store.issConfig?.parentAccountNumber} - ClientName: ${store.issConfig?.clientName} - LastPageVisited: ${store.applicationUser?.lastPageVisited} - SessionLogSequenceNumber: ${sessionKey} - ReferralSequenceNumber: ${store.order?.referralSequenceNumber} - ReferralNumber: ${store.order?.referralNumber} - EON: ${store.order?.eon} - Message: ${message} - JSON: ${json}`; + return [ + `Application: ${applicationConfig.APPLICATION_NAME}`, + `ClientTag: ${store.issConfig?.clientTag}`, + `ParentAccountNumber: ${store.issConfig?.parentAccountNumber}`, + `ClientName: ${store.issConfig?.clientName}`, + `LastPageVisited: ${store.applicationUser?.lastPageVisited}`, + `SessionLogSequenceNumber: ${sessionKey}`, + `ReferralSequenceNumber: ${store.order?.referralSequenceNumber}`, + `ReferralNumber: ${store.order?.referralNumber}`, + `EON: ${store.order?.eon}`, + `Message: ${message}`, + `JSON: ${json}` + ].join('\n'); } writeLogEntry(endpoint, logEntry) { diff --git a/src/layouts/bailout-page/bailout-page.vue b/src/layouts/bailout-page/bailout-page.vue index 15516488..8e7fa5dd 100644 --- a/src/layouts/bailout-page/bailout-page.vue +++ b/src/layouts/bailout-page/bailout-page.vue @@ -116,13 +116,18 @@ export default { mixins: [BaseFormMixin, analyticsMixIn], async beforeRouteEnter(to, from, next) { const fromPage = from?.query?.issPage || 'external'; + // Only log bailout event if user is coming from a different page. // This ensures that we cannot get stuck in a loop, if the bailout-page ever bails out. if (fromPage !== issPageValues.BAILOUT_PAGE) { - const bailoutCode = useMainStore().pageData(issPageValues.BAILOUT_PAGE).bailoutCode; - const bailoutErrorMessage = useMainStore().pageData(issPageValues.BAILOUT_PAGE).errorMessage; + const bailoutPageData = useMainStore().pageData(issPageValues.BAILOUT_PAGE); + const bailoutCode = bailoutPageData.bailoutCode; const bailoutString = Object.keys(BailoutCode).find(key => BailoutCode[key] === bailoutCode); - analyticsMixIn.methods.pushEventToGA(GaCategories.BAILOUT_DETAILS, bailoutString, "Page: " + fromPage + " - Error Message: " + bailoutErrorMessage, true, null, null); + + // Log Bailout info to the error log for quick searching. + global.$logger.logError(`Bailout - Page: ${fromPage} - BailoutCode: ${bailoutCode} - BailoutString: ${bailoutString}`, bailoutPageData); + + // Log a couple main bailout items to GA and session log events. analyticsMixIn.methods.pushEventToGA(GaCategories.BAILOUT, bailoutString, fromPage, true, null, null); }