From fff4aec9e81f895ae3b2cd8f91aed413bf43b776 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Dec 2024 22:11:41 +0000 Subject: [PATCH 01/12] chore(deps): bump @types/node from 22.9.0 to 22.10.2 Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.9.0 to 22.10.2. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 16 ++++++++-------- package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index ef65f594fd1..5c53f725601 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "@sentry/utils": "^8.42.0", "@stripe/stripe-js": "^5.2.0", "@types/jsdom": "^21.1.7", - "@types/node": "^22.9.0", + "@types/node": "^22.10.2", "@types/react": "^18.3.12", "@types/react-dom": "^18.3.1", "canvas-confetti": "^1.9.3", @@ -10910,11 +10910,11 @@ } }, "node_modules/@types/node": { - "version": "22.9.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.0.tgz", - "integrity": "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==", + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", "dependencies": { - "undici-types": "~6.19.8" + "undici-types": "~6.20.0" } }, "node_modules/@types/nodemailer": { @@ -25751,9 +25751,9 @@ } }, "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==" }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", diff --git a/package.json b/package.json index f049b937c6d..f860052c574 100644 --- a/package.json +++ b/package.json @@ -86,7 +86,7 @@ "@sentry/utils": "^8.42.0", "@stripe/stripe-js": "^5.2.0", "@types/jsdom": "^21.1.7", - "@types/node": "^22.9.0", + "@types/node": "^22.10.2", "@types/react": "^18.3.12", "@types/react-dom": "^18.3.1", "canvas-confetti": "^1.9.3", From 2506005a2d24126f572e3a241526cf6863bce45a Mon Sep 17 00:00:00 2001 From: mozilla-pontoon Date: Tue, 17 Dec 2024 12:01:42 +0000 Subject: [PATCH 02/12] Import translations from l10n repository (2024-12-17) --- locales/cs/exposure-card.ftl | 2 +- locales/cy/fix.ftl | 2 +- locales/en-GB/fix.ftl | 2 +- locales/es-ES/exposure-card.ftl | 5 +++-- locales/es-ES/fix.ftl | 2 +- locales/es-ES/settings.ftl | 23 +++++++++++++++-------- locales/pt-BR/fix.ftl | 2 +- locales/uk/exposure-card.ftl | 4 +++- locales/uk/fix.ftl | 1 + locales/uk/settings.ftl | 23 +++++++++++++++-------- 10 files changed, 42 insertions(+), 24 deletions(-) diff --git a/locales/cs/exposure-card.ftl b/locales/cs/exposure-card.ftl index fcf265058b2..af9276530d8 100644 --- a/locales/cs/exposure-card.ftl +++ b/locales/cs/exposure-card.ftl @@ -31,7 +31,7 @@ exposure-card-your-exposed-info = Vaše odhalené informace: exposure-card-found-the-following-data = Aplikace { -brand-monitor } zjistila následující data o odhalení osoby: exposure-card-exposure-type-data-broker = Informace k prodeji exposure-card-exposure-type-data-breach = Únik údajů -exposure-card-resolve-exposures-cta = Vyřešte vystavení +exposure-card-resolve-exposures-cta = Vyřešit úniky exposure-card-label-company-logo = Logo společnosti exposure-card-label-company = Společnost # Status of the exposure card, could be In Progress, Fixed or Action Needed diff --git a/locales/cy/fix.ftl b/locales/cy/fix.ftl index c4a207f85c1..873cc6f5b57 100644 --- a/locales/cy/fix.ftl +++ b/locales/cy/fix.ftl @@ -5,9 +5,9 @@ fix-flow-nav-high-risk-data-breaches = Tor-data risg uchel fix-flow-nav-leaked-passwords = Cyfrineiriau wedi'u gollwng fix-flow-nav-security-recommendations = Argymhellion diogelwch - guided-resolution-flow-exit = Nôl i'r bwrdd gwaith guided-resolution-flow-next-arrow = Ymlaen i'r cam nesaf +guided-resolution-flow-next-arrow-sub-step = Ymlaen i'r canlyniad nesaf guided-resolution-flow-step-navigation-label = Camau tywys # Celebration screens diff --git a/locales/en-GB/fix.ftl b/locales/en-GB/fix.ftl index 8282273aff9..d9b6d4eb542 100644 --- a/locales/en-GB/fix.ftl +++ b/locales/en-GB/fix.ftl @@ -5,9 +5,9 @@ fix-flow-nav-high-risk-data-breaches = High risk data breaches fix-flow-nav-leaked-passwords = Leaked passwords fix-flow-nav-security-recommendations = Security recommendations - guided-resolution-flow-exit = Return to dashboard guided-resolution-flow-next-arrow = Go to next step +guided-resolution-flow-next-arrow-sub-step = Go to next result guided-resolution-flow-step-navigation-label = Guided steps # Celebration screens diff --git a/locales/es-ES/exposure-card.ftl b/locales/es-ES/exposure-card.ftl index 5ae563895c5..8ee4a9427aa 100644 --- a/locales/es-ES/exposure-card.ftl +++ b/locales/es-ES/exposure-card.ftl @@ -3,7 +3,6 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. chevron-alt = Detalles de la exposición - exposure-card-exposure-type = Tipo de exposición exposure-card-date-found = Fecha de la exposición @@ -29,9 +28,10 @@ exposure-card-other = Otros exposure-card-description-data-breach-action-needed = Tu información fue expuesta en la filtración de datos de { $data_breach_company } el { $data_breach_date }. Te guiaremos a través de los pasos para solucionarlo. exposure-card-description-data-breach-fixed = Has tomado las medidas necesarias para solucionar esta filtración. Controlaremos continuamente las filtraciones de datos y te avisaremos sobre cualquier nueva exposición. exposure-card-your-exposed-info = Tu información expuesta: +exposure-card-found-the-following-data = { -brand-monitor } encontró los siguientes datos expuestos: exposure-card-exposure-type-data-broker = Información a la venta exposure-card-exposure-type-data-breach = Filtración de datos -exposure-card-cta = Corregir todas las exposiciones +exposure-card-resolve-exposures-cta = Resolver exposiciones exposure-card-label-company-logo = Logo de la empresa exposure-card-label-company = Empresa # Status of the exposure card, could be In Progress, Fixed or Action Needed @@ -40,3 +40,4 @@ exposure-card-label-status = Estado # $category_label is the data breach exposure type that was leaked. Eg. Email, IP Address. # $count is the number of times that the data type was leaked. exposure-card-label-and-count = { $category_label }: { $count } +exposure-card-manual-resolution-praise = ¡Buen trabajo! Resolviste esta exposición. diff --git a/locales/es-ES/fix.ftl b/locales/es-ES/fix.ftl index 96a9e5d16e3..4146086b682 100644 --- a/locales/es-ES/fix.ftl +++ b/locales/es-ES/fix.ftl @@ -5,9 +5,9 @@ fix-flow-nav-high-risk-data-breaches = Filtraciones de datos de alto riesgo fix-flow-nav-leaked-passwords = Contraseñas filtradas fix-flow-nav-security-recommendations = Recomendaciones de seguridad - guided-resolution-flow-exit = Volver al panel guided-resolution-flow-next-arrow = Ir al siguiente paso +guided-resolution-flow-next-arrow-sub-step = Ir al siguiente resultado guided-resolution-flow-step-navigation-label = Pasos guiados # Celebration screens diff --git a/locales/es-ES/settings.ftl b/locales/es-ES/settings.ftl index 05bdc1b4c0e..e67462f8145 100644 --- a/locales/es-ES/settings.ftl +++ b/locales/es-ES/settings.ftl @@ -15,8 +15,6 @@ settings-alert-preferences-allow-breach-alerts-title = Alertas instantáneas sob settings-alert-preferences-allow-breach-alerts-subtitle = Estas alertas se envían inmediatamente una vez que se detecta una filtración de datos. settings-alert-preferences-option-one = Enviar alertas de filtraciones a las direcciones de correo afectadas settings-alert-preferences-option-two = Enviar todas las alertas de filtraciones al correo electrónico principal. -settings-alert-preferences-allow-monthly-monitor-report-title = Informe mensual de { -brand-monitor } -settings-alert-preferences-allow-monthly-monitor-report-subtitle = Una actualización mensual de nuevas exposiciones, lo que se ha corregido y lo que necesita tu atención. ## Monitored email addresses @@ -47,12 +45,6 @@ settings-email-number-of-breaches-info = *[other] Aparece en { $breachCount } filtraciones conocidas. } -## Deactivate account - -settings-deactivate-account-title = Desactivar cuenta -settings-deactivate-account-info-2 = Puedes desactivar { -product-short-name } eliminando tu { -brand-mozilla-account }. -settings-fxa-link-label-3 = Ir a ajustes de { -brand-mozilla-account } - ## Delete Monitor account settings-delete-monitor-free-account-title = Eliminar cuenta de { -brand-monitor } @@ -64,3 +56,18 @@ settings-delete-monitor-free-account-dialog-cta-label = Eliminar cuenta settings-delete-monitor-free-account-dialog-cancel-button-label = No importa, volvamos settings-delete-monitor-account-confirmation-toast-label-2 = Tu cuenta { -brand-monitor } ha sido eliminada. settings-delete-monitor-account-confirmation-toast-dismiss-label = Descartar + +## Monthly Monitor Report + +settings-alert-preferences-allow-monthly-monitor-report-title = Informe mensual de { -brand-monitor } +settings-alert-preferences-allow-monthly-monitor-report-subtitle = Una actualización mensual de nuevas exposiciones, lo que se ha corregido y lo que necesita tu atención. + +## Settings page redesign + +settings-tab-label-edit-info = Editar tu información +settings-tab-label-notifications = Establecer notificaciones +settings-tab-label-manage-account = Administrar cuenta +settings-tab-subtitle-manage-account = Administrar tu cuenta de { -product-name }. +settings-tab-notifications-marketing-title = Comunicaciones de marketing +settings-tab-notifications-marketing-text = Actualizaciones periódicas sobre { -brand-monitor }, { -brand-mozilla } y nuestros otros productos de seguridad. +settings-tab-notifications-marketing-link-label = Ir a los ajustes de correo electrónico de { -brand-mozilla } diff --git a/locales/pt-BR/fix.ftl b/locales/pt-BR/fix.ftl index f569fdeb008..a488c7df8fb 100644 --- a/locales/pt-BR/fix.ftl +++ b/locales/pt-BR/fix.ftl @@ -5,9 +5,9 @@ fix-flow-nav-high-risk-data-breaches = Vazamentos de dados de alto risco fix-flow-nav-leaked-passwords = Senhas vazadas fix-flow-nav-security-recommendations = Recomendações de segurança - guided-resolution-flow-exit = Voltar ao painel guided-resolution-flow-next-arrow = Ir para a próxima etapa +guided-resolution-flow-next-arrow-sub-step = Ir para o próximo resultado guided-resolution-flow-step-navigation-label = Etapas guiadas # Celebration screens diff --git a/locales/uk/exposure-card.ftl b/locales/uk/exposure-card.ftl index c42b5fe2fc0..1f0c54f3969 100644 --- a/locales/uk/exposure-card.ftl +++ b/locales/uk/exposure-card.ftl @@ -28,9 +28,10 @@ exposure-card-other = Інше exposure-card-description-data-breach-action-needed = { $data_breach_date } було розкрито вашу інформацію під час витоку даних { $data_breach_company }. Ми розповімо вам, як це виправити. exposure-card-description-data-breach-fixed = Ви вжили заходів, необхідних для усунення цього витоку. Ми постійно відстежуватимемо витоки даних і сповіщатимемо вас про будь-які нові розкриття. exposure-card-your-exposed-info = Ваша розкрита інформація: +exposure-card-found-the-following-data = { -brand-monitor } знайшов такі розкриті дані: exposure-card-exposure-type-data-broker = Продаж інформації exposure-card-exposure-type-data-breach = Витік даних -exposure-card-cta = Усунути всі розкриття +exposure-card-resolve-exposures-cta = Усунути витоки даних exposure-card-label-company-logo = Логотип компанії exposure-card-label-company = Компанія # Status of the exposure card, could be In Progress, Fixed or Action Needed @@ -39,3 +40,4 @@ exposure-card-label-status = Стан # $category_label is the data breach exposure type that was leaked. Eg. Email, IP Address. # $count is the number of times that the data type was leaked. exposure-card-label-and-count = { $category_label }: { $count } +exposure-card-manual-resolution-praise = Чудова робота! Ви усунули цю проблему. diff --git a/locales/uk/fix.ftl b/locales/uk/fix.ftl index bb6eaf10293..76709a7f1be 100644 --- a/locales/uk/fix.ftl +++ b/locales/uk/fix.ftl @@ -7,6 +7,7 @@ fix-flow-nav-leaked-passwords = Викриті паролі fix-flow-nav-security-recommendations = Рекомендації щодо безпеки guided-resolution-flow-exit = Повернутися до панелі керування guided-resolution-flow-next-arrow = Наступний крок +guided-resolution-flow-next-arrow-sub-step = Перейти до наступного результату guided-resolution-flow-step-navigation-label = Настанови # Celebration screens diff --git a/locales/uk/settings.ftl b/locales/uk/settings.ftl index b9f03f736dc..f0889f8978e 100644 --- a/locales/uk/settings.ftl +++ b/locales/uk/settings.ftl @@ -15,8 +15,6 @@ settings-alert-preferences-allow-breach-alerts-title = Миттєві спові settings-alert-preferences-allow-breach-alerts-subtitle = Ці сповіщення надсилаються одразу після виявлення витоку даних settings-alert-preferences-option-one = Надсилати сповіщення про витоки даних на відповідні адреси електронної пошти settings-alert-preferences-option-two = Надсилати попередження про всі витоки на основну адресу електронної пошти -settings-alert-preferences-allow-monthly-monitor-report-title = Щомісячний звіт { -brand-monitor } -settings-alert-preferences-allow-monthly-monitor-report-subtitle = Щомісячне оновлення про витоки даних, виправлені проблеми, а також інформацію про необхідні дії. ## Monitored email addresses @@ -51,12 +49,6 @@ settings-email-number-of-breaches-info = *[other] З'являється в { $breachCount } відомих витоках даних. } -## Deactivate account - -settings-deactivate-account-title = Деактивувати обліковий запис -settings-deactivate-account-info-2 = Ви можете деактивувати { -product-short-name }, видаливши свій { -brand-mozilla-account }. -settings-fxa-link-label-3 = Перейти до налаштувань { -brand-mozilla-account(case: "gen") } - ## Delete Monitor account settings-delete-monitor-free-account-title = Видалити обліковий запис { -brand-monitor } @@ -68,3 +60,18 @@ settings-delete-monitor-free-account-dialog-cta-label = Видалити обл settings-delete-monitor-free-account-dialog-cancel-button-label = Не зважайте, повернутися settings-delete-monitor-account-confirmation-toast-label-2 = Ваш обліковий запис { -brand-monitor } видалено. settings-delete-monitor-account-confirmation-toast-dismiss-label = Відхилити + +## Monthly Monitor Report + +settings-alert-preferences-allow-monthly-monitor-report-title = Щомісячний звіт { -brand-monitor } +settings-alert-preferences-allow-monthly-monitor-report-subtitle = Щомісячне оновлення про витоки даних, виправлені проблеми, а також інформацію про необхідні дії. + +## Settings page redesign + +settings-tab-label-edit-info = Редагувати свої дані +settings-tab-label-notifications = Налаштувати сповіщення +settings-tab-label-manage-account = Керувати обліковим записом +settings-tab-subtitle-manage-account = Керуйте своїм обліковим записом { -product-name }. +settings-tab-notifications-marketing-title = Маркетингові комунікації +settings-tab-notifications-marketing-text = Періодичні оновлення про { -brand-monitor }, { -brand-mozilla } та інші наші продукти безпеки. +settings-tab-notifications-marketing-link-label = Перейти до налаштувань е-пошти { -brand-mozilla } From bf58113e39fa9853d06dc5708c1fe4554abb7505 Mon Sep 17 00:00:00 2001 From: Joey Zhou Date: Wed, 18 Dec 2024 05:35:35 -0800 Subject: [PATCH 03/12] fix: orderby --- src/db/tables/onerep_scans.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/db/tables/onerep_scans.ts b/src/db/tables/onerep_scans.ts index ac44edad613..92e3c17f51b 100644 --- a/src/db/tables/onerep_scans.ts +++ b/src/db/tables/onerep_scans.ts @@ -437,6 +437,7 @@ async function getScanResultsWithBrokerUnderMaintenance( .andWhere("sr.manually_resolved", "false") .andWhereNot("sr.status", "removed") .join("onerep_data_brokers as db", "sr.data_broker", "db.data_broker") + .orderBy("link") .orderBy("sr.onerep_scan_result_id"); scanResults = scanResults.filter( From 60281996053b6dab3d35af348dc4919fe4dfed4d Mon Sep 17 00:00:00 2001 From: Joey Zhou Date: Wed, 18 Dec 2024 05:41:59 -0800 Subject: [PATCH 04/12] fix: add to other func --- src/db/tables/onerep_scans.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/db/tables/onerep_scans.ts b/src/db/tables/onerep_scans.ts index 92e3c17f51b..3606a4f0298 100644 --- a/src/db/tables/onerep_scans.ts +++ b/src/db/tables/onerep_scans.ts @@ -476,6 +476,7 @@ async function getScanResultsWithBroker( .innerJoin("onerep_scans as s", "sr.onerep_scan_id", "s.onerep_scan_id") .where("s.onerep_profile_id", onerepProfileId) .join("onerep_data_brokers as db", "sr.data_broker", "db.data_broker") + .orderBy("link") .orderBy("sr.onerep_scan_result_id"); } else { scanResults = (await getLatestOnerepScanResults(onerepProfileId)).results; From d1a6d27fe7e15c474933a4556d23b37df5aa313a Mon Sep 17 00:00:00 2001 From: Joey Zhou Date: Wed, 18 Dec 2024 10:36:28 -0800 Subject: [PATCH 05/12] fix: hardcode batch size --- src/scripts/cronjobs/monthlyActivityFree.tsx | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/scripts/cronjobs/monthlyActivityFree.tsx b/src/scripts/cronjobs/monthlyActivityFree.tsx index d682c491063..d6952df23a0 100644 --- a/src/scripts/cronjobs/monthlyActivityFree.tsx +++ b/src/scripts/cronjobs/monthlyActivityFree.tsx @@ -24,15 +24,7 @@ await run(); await createDbConnection().destroy(); async function run() { - const batchSize = Number.parseInt( - process.env.MONTHLY_ACTIVITY_FREE_EMAIL_BATCH_SIZE ?? "10", - 10, - ); - if (Number.isNaN(batchSize)) { - throw new Error( - `Could not send monthly activity emails, because the env var MONTHLY_ACTIVITY_FREE_EMAIL_BATCH_SIZE has a non-numeric value: [${process.env.MONTHLY_ACTIVITY_EMAIL_BATCH_SIZE}].`, - ); - } + const batchSize = 5; logger.info(`Getting free subscribers with batch size: ${batchSize}`); const subscribersToEmail = (await getFreeSubscribersWaitingForMonthlyEmail()) From b5982f2e8895429f5ee464243f16b75cddff8c6f Mon Sep 17 00:00:00 2001 From: Joey Zhou Date: Wed, 18 Dec 2024 10:50:23 -0800 Subject: [PATCH 06/12] fix: review comment --- src/constants.ts | 2 ++ src/scripts/cronjobs/monthlyActivityFree.tsx | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/constants.ts b/src/constants.ts index 1a6e1c088fa..1d87cc1fd1c 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -46,3 +46,5 @@ export const CONST_SETTINGS_TAB_SLUGS = [ "notifications", "manage-account", ] as const; + +export const MONTHLY_ACTIVITY_FREE_EMAIL_BATCH_SIZE = 5; diff --git a/src/scripts/cronjobs/monthlyActivityFree.tsx b/src/scripts/cronjobs/monthlyActivityFree.tsx index d6952df23a0..9439dbce2bf 100644 --- a/src/scripts/cronjobs/monthlyActivityFree.tsx +++ b/src/scripts/cronjobs/monthlyActivityFree.tsx @@ -19,12 +19,13 @@ import createDbConnection from "../../db/connect"; import { logger } from "../../app/functions/server/logging"; import { getMonthlyActivityFreeUnsubscribeLink } from "../../app/functions/cronjobs/unsubscribeLinks"; import { hasPremium } from "../../app/functions/universal/user"; +import { MONTHLY_ACTIVITY_FREE_EMAIL_BATCH_SIZE } from "../../constants"; await run(); await createDbConnection().destroy(); async function run() { - const batchSize = 5; + const batchSize = MONTHLY_ACTIVITY_FREE_EMAIL_BATCH_SIZE; logger.info(`Getting free subscribers with batch size: ${batchSize}`); const subscribersToEmail = (await getFreeSubscribersWaitingForMonthlyEmail()) From bcc3b7a2317be8b98d35045e74def9f717b9dfc0 Mon Sep 17 00:00:00 2001 From: Robert Helmer Date: Wed, 18 Dec 2024 15:25:55 -0800 Subject: [PATCH 07/12] MNTOR-3857 - move locale filtering from TS to SQL for monthly free activity report (#5431) * move locale filtering from TS to SQL for monthly free activity report --- src/db/tables/subscribers.ts | 44 ++++++++++++++------ src/scripts/cronjobs/monthlyActivityFree.tsx | 10 ++--- 2 files changed, 36 insertions(+), 18 deletions(-) diff --git a/src/db/tables/subscribers.ts b/src/db/tables/subscribers.ts index cf349310536..a20a061ad96 100644 --- a/src/db/tables/subscribers.ts +++ b/src/db/tables/subscribers.ts @@ -417,9 +417,10 @@ async function getPlusSubscribersWaitingForMonthlyEmail( // Not covered by tests; mostly side-effects. See test-coverage.md#mock-heavy /* c8 ignore start */ -async function getFreeSubscribersWaitingForMonthlyEmail(): Promise< - SubscriberRow[] -> { +async function getFreeSubscribersWaitingForMonthlyEmail( + batchSize: number, + countryCodes: string[], +): Promise { const flag = await getFeatureFlagData("MonthlyReportFreeUser"); const accountCutOffDate = parseIso8601Datetime( process.env.MONTHLY_ACTIVITY_FREE_EMAIL_ACCOUNT_CUTOFF_DATE ?? @@ -438,6 +439,24 @@ async function getFreeSubscribersWaitingForMonthlyEmail(): Promise< let query = knex("subscribers") .select("subscribers.*") + .select( + knex.raw( + `CASE + WHEN (fxa_profile_json->>'locale') ~ ',' THEN + CASE + WHEN split_part(fxa_profile_json->>'locale', ',', 1) ~ '-' THEN + split_part(split_part(fxa_profile_json->>'locale', ',', 1), '-', 2) -- Extract country code from first part + ELSE + split_part(fxa_profile_json->>'locale', ',', 1) -- Fallback to the language code + END + WHEN (fxa_profile_json->>'locale') ~ '-' THEN + split_part(fxa_profile_json->>'locale', '-', 2) -- Extract country code if present + ELSE + fxa_profile_json->>'locale' -- Fallback to the language code + END AS country_code`, + ), + ) + .leftJoin( "subscriber_email_preferences", "subscribers.id", @@ -494,16 +513,17 @@ async function getFreeSubscribersWaitingForMonthlyEmail(): Promise< // https://github.com/knex/knex/issues/1881#issuecomment-275433906 query = query.whereIn("subscribers.primary_email", flag.allow_list); } - // One thing to note as being absent from this query: a LIMIT clause. - // The reason for this is that we want to filter out people who had - // a language other than `en-US` set when signing up, but to do so, - // we need to parse the `accept-language` field, which we can only - // do after we have the query results. Thus, if we were to limit - // the result of this query, we would at some point end up filtering - // every returned row, and then never moving on to the rows after that. - const rows = await query; - return rows; + const wrappedQuery = knex + // @ts-ignore TODO MNTOR-3890 Move away from this approach and simplify query. + .from({ base_query: query }) // Use the existing query as a subquery + .select("*") + .whereIn("country_code", countryCodes) + .limit(batchSize); + + const rows = await wrappedQuery; + + return rows as SubscriberRow[]; } /* c8 ignore stop */ diff --git a/src/scripts/cronjobs/monthlyActivityFree.tsx b/src/scripts/cronjobs/monthlyActivityFree.tsx index 9439dbce2bf..309d9769f8e 100644 --- a/src/scripts/cronjobs/monthlyActivityFree.tsx +++ b/src/scripts/cronjobs/monthlyActivityFree.tsx @@ -28,12 +28,10 @@ async function run() { const batchSize = MONTHLY_ACTIVITY_FREE_EMAIL_BATCH_SIZE; logger.info(`Getting free subscribers with batch size: ${batchSize}`); - const subscribersToEmail = (await getFreeSubscribersWaitingForMonthlyEmail()) - .filter((subscriber) => { - const assumedCountryCode = getSignupLocaleCountry(subscriber); - return assumedCountryCode === "us"; - }) - .slice(0, batchSize); + const subscribersToEmail = await getFreeSubscribersWaitingForMonthlyEmail( + batchSize, + ["US"], + ); await initEmail(); for (const subscriber of subscribersToEmail) { From dfe636f888bc79c393232edb64d2edd77245255f Mon Sep 17 00:00:00 2001 From: mozilla-pontoon Date: Thu, 19 Dec 2024 12:01:53 +0000 Subject: [PATCH 08/12] Import translations from l10n repository (2024-12-19) --- locales/gn/fix.ftl | 1 + locales/gn/settings.ftl | 2 ++ 2 files changed, 3 insertions(+) diff --git a/locales/gn/fix.ftl b/locales/gn/fix.ftl index 32134d14cec..b89a84ecc84 100644 --- a/locales/gn/fix.ftl +++ b/locales/gn/fix.ftl @@ -7,6 +7,7 @@ fix-flow-nav-leaked-passwords = Ñe’ẽñemi mboguapyre fix-flow-nav-security-recommendations = Ñemoñe’ẽ tekorosãrã guided-resolution-flow-exit = Eguevijey mba’erupápe guided-resolution-flow-next-arrow = Eho upeiguávape +guided-resolution-flow-next-arrow-sub-step = Eho upeiguávape guided-resolution-flow-step-navigation-label = Jeguata ma’ẽgua # Celebration screens diff --git a/locales/gn/settings.ftl b/locales/gn/settings.ftl index 9c9dc97d7af..3c834d1bda1 100644 --- a/locales/gn/settings.ftl +++ b/locales/gn/settings.ftl @@ -69,3 +69,5 @@ settings-tab-label-edit-info = Embosako’i ne marandu settings-tab-label-notifications = Emboheko momarandu settings-tab-label-manage-account = Eñangareko mba’etére settings-tab-subtitle-manage-account = Eñangareko ne mba’etére { -product-name }. +settings-tab-notifications-marketing-title = Marketing ñemomarandu +settings-tab-notifications-marketing-link-label = Eho { -brand-mozilla } ñanduti veve moĩporãha ñembohekópe From 84b77b56f14d4e53c0dfbe50bc27861a0589d691 Mon Sep 17 00:00:00 2001 From: Joey Zhou Date: Thu, 19 Dec 2024 09:20:39 -0800 Subject: [PATCH 09/12] fix: rework to utilize env var if possible/correct --- src/constants.ts | 2 -- src/scripts/cronjobs/monthlyActivityFree.tsx | 12 ++++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/constants.ts b/src/constants.ts index 1d87cc1fd1c..1a6e1c088fa 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -46,5 +46,3 @@ export const CONST_SETTINGS_TAB_SLUGS = [ "notifications", "manage-account", ] as const; - -export const MONTHLY_ACTIVITY_FREE_EMAIL_BATCH_SIZE = 5; diff --git a/src/scripts/cronjobs/monthlyActivityFree.tsx b/src/scripts/cronjobs/monthlyActivityFree.tsx index 9439dbce2bf..eafbddb8346 100644 --- a/src/scripts/cronjobs/monthlyActivityFree.tsx +++ b/src/scripts/cronjobs/monthlyActivityFree.tsx @@ -19,13 +19,21 @@ import createDbConnection from "../../db/connect"; import { logger } from "../../app/functions/server/logging"; import { getMonthlyActivityFreeUnsubscribeLink } from "../../app/functions/cronjobs/unsubscribeLinks"; import { hasPremium } from "../../app/functions/universal/user"; -import { MONTHLY_ACTIVITY_FREE_EMAIL_BATCH_SIZE } from "../../constants"; await run(); await createDbConnection().destroy(); async function run() { - const batchSize = MONTHLY_ACTIVITY_FREE_EMAIL_BATCH_SIZE; + let batchSize = Number.parseInt( + process.env.MONTHLY_ACTIVITY_FREE_EMAIL_BATCH_SIZE ?? "10", + 10, + ); + if (Number.isNaN(batchSize)) { + batchSize = 10; + logger.warn( + `Could not send monthly activity emails, because the env var MONTHLY_ACTIVITY_FREE_EMAIL_BATCH_SIZE has a non-numeric value: [${process.env.MONTHLY_ACTIVITY_FREE_EMAIL_BATCH_SIZE}].`, + ); + } logger.info(`Getting free subscribers with batch size: ${batchSize}`); const subscribersToEmail = (await getFreeSubscribersWaitingForMonthlyEmail()) From dee9f112361693713350f994171ac9bf02d90167 Mon Sep 17 00:00:00 2001 From: Robert Helmer Date: Thu, 19 Dec 2024 11:31:23 -0800 Subject: [PATCH 10/12] MNTOR-3812 - switch to Cirrus v2 output (#5432) * switch to Nimbus/Cirrus v2 output, behind `CirrusV2` feature flag --- .../admin/feature-flags/page.tsx | 2 +- .../dashboard/Dashboard.stories.tsx | 4 +- .../(dashboard)/dashboard/Dashboard.test.tsx | 34 +++---- .../dashboard/DashboardNonUSUsers.stories.tsx | 2 +- .../dashboard/DashboardPlusUsers.stories.tsx | 2 +- .../dashboard/DashboardUSUsers.stories.tsx | 2 +- .../user/(dashboard)/dashboard/View.tsx | 2 +- .../user/(dashboard)/settings/CancelFlow.tsx | 2 +- .../settings/SettingsPage.test.tsx | 84 ++++++++--------- .../settings/SettingsPageRedesign.test.tsx | 94 +++++++++---------- .../user/(dashboard)/settings/View.tsx | 2 +- .../panels/SettingsPanelManageAccount.tsx | 2 +- .../user/welcome/EnterInfo.tsx | 2 +- .../user/welcome/Onboarding.stories.tsx | 2 +- .../(authenticated)/user/welcome/View.tsx | 2 +- .../(redesign)/(public)/FreeScanCta.tsx | 2 +- .../(public)/LandingView.stories.tsx | 3 +- .../(redesign)/(public)/LandingView.test.tsx | 22 ++--- .../(redesign)/(public)/LandingView.tsx | 2 +- .../(redesign)/(public)/SignUpForm.tsx | 2 +- .../client/ExposuresFilter.test.tsx | 4 +- src/app/components/client/ExposuresFilter.tsx | 2 +- .../client/csat_survey/CsatSurvey.test.tsx | 2 +- .../client/csat_survey/CsatSurvey.tsx | 2 +- .../client/csat_survey/surveys/csatSurvey.ts | 4 +- .../exposure_card/ExposureCard.stories.tsx | 2 +- .../client/exposure_card/ExposureCard.tsx | 2 +- .../client/exposure_card/ScanResultCard.tsx | 2 +- .../exposure_card/SubscriberBreachCard.tsx | 2 +- .../client/stories/CsatSurvey.stories.ts | 4 +- .../client/stories/UpsellCta.stories.tsx | 2 +- src/app/components/client/toolbar/Toolbar.tsx | 2 +- .../components/client/toolbar/UpsellBadge.tsx | 2 +- src/app/functions/server/getExperiments.ts | 30 ++++-- .../universal/getFreeScanSearchParams.ts | 2 +- src/db/tables/featureFlags.ts | 1 + src/scripts/build/nimbusTypes.js | 52 +++++++++- 37 files changed, 224 insertions(+), 162 deletions(-) diff --git a/src/app/(proper_react)/(redesign)/(authenticated)/admin/feature-flags/page.tsx b/src/app/(proper_react)/(redesign)/(authenticated)/admin/feature-flags/page.tsx index 8e65e37db75..04655553254 100644 --- a/src/app/(proper_react)/(redesign)/(authenticated)/admin/feature-flags/page.tsx +++ b/src/app/(proper_react)/(redesign)/(authenticated)/admin/feature-flags/page.tsx @@ -68,7 +68,7 @@ export default async function FeatureFlagPage() { lastScanDate={null} // We're not going to run experiments on the feature flag page (it's // not user-visible), so no need to fetch experiment data: - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} /> diff --git a/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/dashboard/Dashboard.stories.tsx b/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/dashboard/Dashboard.stories.tsx index 075053dc810..bddfe10f6a9 100644 --- a/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/dashboard/Dashboard.stories.tsx +++ b/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/dashboard/Dashboard.stories.tsx @@ -56,7 +56,7 @@ export type DashboardWrapperProps = ( totalNumberOfPerformedScans?: number; activeTab?: TabType; enabledFeatureFlags?: FeatureFlagName[]; - experimentData?: ExperimentData; + experimentData?: ExperimentData["Features"]; hasFirstMonitoringScan?: boolean; signInCount?: number; autoOpenUpsellDialog?: boolean; @@ -227,7 +227,7 @@ const DashboardWrapper = (props: DashboardWrapperProps) => { enabledFeatureFlags={props.enabledFeatureFlags ?? []} experimentData={ props.experimentData ?? { - ...defaultExperimentData, + ...defaultExperimentData["Features"], "last-scan-date": { enabled: true, }, diff --git a/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/dashboard/Dashboard.test.tsx b/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/dashboard/Dashboard.test.tsx index 6b1c5e6d699..8be6b7f9f9f 100644 --- a/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/dashboard/Dashboard.test.tsx +++ b/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/dashboard/Dashboard.test.tsx @@ -3487,7 +3487,7 @@ describe("CSAT survey banner", () => { activeTab="fixed" enabledFeatureFlags={["PetitionBannerCsatSurvey"]} experimentData={{ - ...defaultExperimentData, + ...defaultExperimentData["Features"], "data-privacy-petition-banner": { enabled: false, }, @@ -3515,7 +3515,7 @@ describe("CSAT survey banner", () => { activeTab="action-needed" enabledFeatureFlags={["PetitionBannerCsatSurvey"]} experimentData={{ - ...defaultExperimentData, + ...defaultExperimentData["Features"], "data-privacy-petition-banner": { enabled: false, }, @@ -3539,7 +3539,7 @@ describe("CSAT survey banner", () => { activeTab="fixed" enabledFeatureFlags={["PetitionBannerCsatSurvey"]} experimentData={{ - ...defaultExperimentData, + ...defaultExperimentData["Features"], "data-privacy-petition-banner": { enabled: true, }, @@ -3564,7 +3564,7 @@ describe("CSAT survey banner", () => { activeTab="fixed" enabledFeatureFlags={["PetitionBannerCsatSurvey"]} experimentData={{ - ...defaultExperimentData, + ...defaultExperimentData["Features"], "data-privacy-petition-banner": { enabled: true, }, @@ -3595,7 +3595,7 @@ describe("CSAT survey banner", () => { activeTab="fixed" enabledFeatureFlags={["PetitionBannerCsatSurvey"]} experimentData={{ - ...defaultExperimentData, + ...defaultExperimentData["Features"], "data-privacy-petition-banner": { enabled: true, }, @@ -3630,7 +3630,7 @@ describe("CSAT survey banner", () => { "AutomaticRemovalCsatSurvey", ]} experimentData={{ - ...defaultExperimentData, + ...defaultExperimentData["Features"], "data-privacy-petition-banner": { enabled: true, }, @@ -3659,7 +3659,7 @@ describe("CSAT survey banner", () => { activeTab="fixed" enabledFeatureFlags={["DataBrokerRemovalTimeEstimateCsat"]} experimentData={{ - ...defaultExperimentData, + ...defaultExperimentData["Features"], "data-broker-removal-time-estimates": { enabled: true, }, @@ -3683,7 +3683,7 @@ describe("CSAT survey banner", () => { activeTab="fixed" enabledFeatureFlags={["DataBrokerRemovalTimeEstimateCsat"]} experimentData={{ - ...defaultExperimentData, + ...defaultExperimentData["Features"], "data-broker-removal-time-estimates": { enabled: false, }, @@ -3707,7 +3707,7 @@ describe("CSAT survey banner", () => { activeTab="action-needed" enabledFeatureFlags={["DataBrokerRemovalTimeEstimateCsat"]} experimentData={{ - ...defaultExperimentData, + ...defaultExperimentData["Features"], "data-broker-removal-time-estimates": { enabled: true, }, @@ -3731,7 +3731,7 @@ describe("CSAT survey banner", () => { activeTab="fixed" enabledFeatureFlags={["DataBrokerRemovalTimeEstimateCsat"]} experimentData={{ - ...defaultExperimentData, + ...defaultExperimentData["Features"], "data-broker-removal-time-estimates": { enabled: true, }, @@ -3756,7 +3756,7 @@ describe("Data privacy petition banner", () => { { activeTab="fixed" enabledFeatureFlags={["PetitionBannerCsatSurvey"]} experimentData={{ - ...defaultExperimentData, + ...defaultExperimentData["Features"], "data-privacy-petition-banner": { enabled: true, }, @@ -3804,7 +3804,7 @@ describe("Data privacy petition banner", () => { activeTab="fixed" enabledFeatureFlags={["PetitionBannerCsatSurvey"]} experimentData={{ - ...defaultExperimentData, + ...defaultExperimentData["Features"], "data-privacy-petition-banner": { enabled: true, }, @@ -3827,7 +3827,7 @@ describe("Data privacy petition banner", () => { { { activeTab="fixed" enabledFeatureFlags={["PetitionBannerCsatSurvey"]} experimentData={{ - ...defaultExperimentData, + ...defaultExperimentData["Features"], "data-privacy-petition-banner": { enabled: true, }, @@ -3914,7 +3914,7 @@ describe("Data privacy petition banner", () => { activeTab="fixed" enabledFeatureFlags={["PetitionBannerCsatSurvey"]} experimentData={{ - ...defaultExperimentData, + ...defaultExperimentData["Features"], "data-privacy-petition-banner": { enabled: true, }, diff --git a/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/dashboard/DashboardNonUSUsers.stories.tsx b/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/dashboard/DashboardNonUSUsers.stories.tsx index fce5a13f713..971c49aeda1 100644 --- a/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/dashboard/DashboardNonUSUsers.stories.tsx +++ b/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/dashboard/DashboardNonUSUsers.stories.tsx @@ -194,7 +194,7 @@ const DashboardWrapper = (props: DashboardWrapperProps) => { enabledFeatureFlags={props.enabledFeatureFlags ?? []} experimentData={ props.experimentData ?? { - ...defaultExperimentData, + ...defaultExperimentData["Features"], "last-scan-date": { enabled: true, }, diff --git a/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/dashboard/DashboardPlusUsers.stories.tsx b/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/dashboard/DashboardPlusUsers.stories.tsx index 7623cb7ef49..e3d81a8a170 100644 --- a/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/dashboard/DashboardPlusUsers.stories.tsx +++ b/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/dashboard/DashboardPlusUsers.stories.tsx @@ -193,7 +193,7 @@ const DashboardWrapper = (props: DashboardWrapperProps) => { enabledFeatureFlags={props.enabledFeatureFlags ?? []} experimentData={ props.experimentData ?? { - ...defaultExperimentData, + ...defaultExperimentData["Features"], "last-scan-date": { enabled: true, }, diff --git a/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/dashboard/DashboardUSUsers.stories.tsx b/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/dashboard/DashboardUSUsers.stories.tsx index 58f7df97490..a588a5f8bf2 100644 --- a/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/dashboard/DashboardUSUsers.stories.tsx +++ b/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/dashboard/DashboardUSUsers.stories.tsx @@ -194,7 +194,7 @@ const DashboardWrapper = (props: DashboardWrapperProps) => { enabledFeatureFlags={props.enabledFeatureFlags ?? []} experimentData={ props.experimentData ?? { - ...defaultExperimentData, + ...defaultExperimentData["Features"], "last-scan-date": { enabled: true, }, diff --git a/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/dashboard/View.tsx b/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/dashboard/View.tsx index 0b14171b988..2d0042eeaf4 100644 --- a/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/dashboard/View.tsx +++ b/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/dashboard/View.tsx @@ -62,7 +62,7 @@ export type TabType = "action-needed" | "fixed"; export type Props = { enabledFeatureFlags: FeatureFlagName[]; - experimentData: ExperimentData; + experimentData: ExperimentData["Features"]; user: Session["user"]; userBreaches: SubscriberBreach[]; userScanData: LatestOnerepScanData; diff --git a/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/settings/CancelFlow.tsx b/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/settings/CancelFlow.tsx index 6627be2622c..603c01dd5a6 100644 --- a/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/settings/CancelFlow.tsx +++ b/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/settings/CancelFlow.tsx @@ -25,7 +25,7 @@ import { OpenInNew } from "../../../../../../components/server/Icons"; export type Props = { fxaSubscriptionsUrl: string; enableDiscountCoupon: boolean; - experimentData?: ExperimentData; + experimentData?: ExperimentData["Features"]; isMonthlySubscriber: boolean; }; diff --git a/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/settings/SettingsPage.test.tsx b/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/settings/SettingsPage.test.tsx index bcd92764935..d521ef41653 100644 --- a/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/settings/SettingsPage.test.tsx +++ b/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/settings/SettingsPage.test.tsx @@ -264,7 +264,7 @@ it("passes the axe accessibility audit", async () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} /> , @@ -305,7 +305,7 @@ it("Add email address button is not shown when email limit of five reached", () monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -350,7 +350,7 @@ it("Add email address button is shown when fewer than five emails", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -387,7 +387,7 @@ it("preselects 'Send all breach alerts to the primary email address' if that's t monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -432,7 +432,7 @@ it("preselects 'Send breach alerts to the affected email address' if that's the monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -477,7 +477,7 @@ it("disables breach alert notification options if a user opts out of breach aler monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["UpdatedEmailPreferencesOption"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -532,7 +532,7 @@ it("preselects primary email alert option", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["UpdatedEmailPreferencesOption"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -573,7 +573,7 @@ it("unselects the breach alerts checkbox and sends a null value to the API", asy monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["UpdatedEmailPreferencesOption"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -630,7 +630,7 @@ it("preselects the affected email comms option after a user decides to enable br monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["UpdatedEmailPreferencesOption"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -678,7 +678,7 @@ it("sends a call to the API to change the email alert preferences when changing monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["UpdatedEmailPreferencesOption"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -733,7 +733,7 @@ it("checks that monthly monitor report is available to free users", () => { "UpdatedEmailPreferencesOption", "MonthlyReportFreeUser", ]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={false} data={mockedFreeSubscriberEmailPreferences} /> @@ -775,7 +775,7 @@ it("checks that monthly monitor report is enabled", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["UpdatedEmailPreferencesOption"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -820,7 +820,7 @@ it("sends an API call to disable monthly monitor reports", async () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["UpdatedEmailPreferencesOption"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -872,7 +872,7 @@ it("calls the right telemetry event if a user opts out of monthly report", async monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["UpdatedEmailPreferencesOption"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -929,7 +929,7 @@ it("refreshes the session token after changing email alert preferences, to ensur monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -966,7 +966,7 @@ it("marks unverified email addresses as such", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1004,7 +1004,7 @@ it("calls the API to resend a verification email if requested to", async () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1052,7 +1052,7 @@ it("calls the 'remove' action when clicking the rubbish bin icon", async () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1090,7 +1090,7 @@ it("hides the Plus cancellation link if the user doesn't have Plus", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1127,7 +1127,7 @@ it("shows the Plus cancellation link if the user has Plus", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1171,7 +1171,7 @@ it("takes you through the cancellation dialog flow all the way to subplat", asyn monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["ConfirmCancellation", "CancellationFlow"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1250,7 +1250,7 @@ it("closes the cancellation survey if the user selects nevermind, take me back", monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["ConfirmCancellation", "CancellationFlow"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1308,7 +1308,7 @@ it("closes the cancellation dialog", async () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["CancellationFlow"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1359,7 +1359,7 @@ it("shows the account deletion button if the user does not have Plus", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1401,7 +1401,7 @@ it("warns about the consequences before deleting a free user's account", async ( monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1445,7 +1445,7 @@ it("shows a loading state while account deletion is in progress", async () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1490,7 +1490,7 @@ it("shows the account deletion button if the user has Plus", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1532,7 +1532,7 @@ it("warns about the consequences before deleting a Plus user's account", async ( monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1585,7 +1585,7 @@ it.skip("calls the 'add' action when adding another email address", async () => monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1621,7 +1621,7 @@ describe("to learn about usage", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1666,7 +1666,7 @@ describe("to learn about usage", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1711,7 +1711,7 @@ describe("to learn about usage", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1757,7 +1757,7 @@ describe("to learn about usage", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1802,7 +1802,7 @@ describe("to learn about usage", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1852,7 +1852,7 @@ describe("to learn about usage", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1898,7 +1898,7 @@ describe("to learn about usage", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1948,7 +1948,7 @@ describe("to learn about usage", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1993,7 +1993,7 @@ describe("to learn about usage", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -2043,7 +2043,7 @@ describe("to learn about usage", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -2105,7 +2105,7 @@ it("selects the coupon code discount cta and shows the all-set dialog step", asy "ConfirmCancellation", "DiscountCouponNextThreeMonths", ]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -2192,7 +2192,7 @@ it("shows error message if the applying the coupon code function was unsuccessfu "ConfirmCancellation", "DiscountCouponNextThreeMonths", ]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -2259,7 +2259,7 @@ it("does not show the coupon code if a user already has a coupon set", async () "ConfirmCancellation", "DiscountCouponNextThreeMonths", ]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> diff --git a/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/settings/SettingsPageRedesign.test.tsx b/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/settings/SettingsPageRedesign.test.tsx index 0b391d12583..938e28cc898 100644 --- a/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/settings/SettingsPageRedesign.test.tsx +++ b/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/settings/SettingsPageRedesign.test.tsx @@ -295,7 +295,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={[]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -333,7 +333,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -370,7 +370,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -408,7 +408,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} /> , @@ -442,7 +442,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -496,7 +496,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -542,7 +542,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -577,7 +577,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -616,7 +616,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -665,7 +665,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -710,7 +710,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -749,7 +749,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -795,7 +795,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -841,7 +841,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -891,7 +891,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -928,7 +928,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -966,7 +966,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1015,7 +1015,7 @@ describe("Settings page redesign", () => { "CancellationFlow", "SettingsPageRedesign", ]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1099,7 +1099,7 @@ describe("Settings page redesign", () => { "CancellationFlow", "SettingsPageRedesign", ]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1158,7 +1158,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["CancellationFlow", "SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1210,7 +1210,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1253,7 +1253,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1298,7 +1298,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1344,7 +1344,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1387,7 +1387,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1436,7 +1436,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1482,7 +1482,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1533,7 +1533,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1580,7 +1580,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1631,7 +1631,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1677,7 +1677,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1728,7 +1728,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1793,7 +1793,7 @@ describe("Settings page redesign", () => { "DiscountCouponNextThreeMonths", "SettingsPageRedesign", ]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1884,7 +1884,7 @@ describe("Settings page redesign", () => { "DiscountCouponNextThreeMonths", "SettingsPageRedesign", ]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1953,7 +1953,7 @@ describe("Settings page redesign", () => { "DiscountCouponNextThreeMonths", "SettingsPageRedesign", ]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -1996,7 +1996,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -2042,7 +2042,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -2091,7 +2091,7 @@ describe("Settings page redesign", () => { "UpdatedEmailPreferencesOption", "SettingsPageRedesign", ]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -2156,7 +2156,7 @@ describe("Settings page redesign", () => { "UpdatedEmailPreferencesOption", "SettingsPageRedesign", ]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -2201,7 +2201,7 @@ describe("Settings page redesign", () => { "UpdatedEmailPreferencesOption", "SettingsPageRedesign", ]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -2265,7 +2265,7 @@ describe("Settings page redesign", () => { "UpdatedEmailPreferencesOption", "SettingsPageRedesign", ]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -2317,7 +2317,7 @@ describe("Settings page redesign", () => { "UpdatedEmailPreferencesOption", "SettingsPageRedesign", ]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -2380,7 +2380,7 @@ describe("Settings page redesign", () => { "MonthlyReportFreeUser", "SettingsPageRedesign", ]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={false} data={mockedFreeSubscriberEmailPreferences} /> @@ -2426,7 +2426,7 @@ describe("Settings page redesign", () => { "UpdatedEmailPreferencesOption", "SettingsPageRedesign", ]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -2475,7 +2475,7 @@ describe("Settings page redesign", () => { "UpdatedEmailPreferencesOption", "SettingsPageRedesign", ]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -2534,7 +2534,7 @@ describe("Settings page redesign", () => { "UpdatedEmailPreferencesOption", "SettingsPageRedesign", ]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> @@ -2592,7 +2592,7 @@ describe("Settings page redesign", () => { monthlySubscriptionUrl="" subscriptionBillingAmount={mockedSubscriptionBillingAmount} enabledFeatureFlags={["SettingsPageRedesign"]} - experimentData={defaultExperimentData} + experimentData={defaultExperimentData["Features"]} isMonthlySubscriber={true} data={mockedPlusSubscriberEmailPreferences} /> diff --git a/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/settings/View.tsx b/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/settings/View.tsx index 2c306c2a79c..711890cc0ca 100644 --- a/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/settings/View.tsx +++ b/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/settings/View.tsx @@ -46,7 +46,7 @@ export type Props = { emailAddresses: EmailAddressRow[]; breachCountByEmailAddress: Record; enabledFeatureFlags: FeatureFlagName[]; - experimentData: ExperimentData; + experimentData: ExperimentData["Features"]; lastScanDate?: Date; isMonthlySubscriber: boolean; activeTab?: TabType; diff --git a/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/settings/panels/SettingsPanelManageAccount.tsx b/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/settings/panels/SettingsPanelManageAccount.tsx index 0fa7aba6700..b92f7ae2188 100644 --- a/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/settings/panels/SettingsPanelManageAccount.tsx +++ b/src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/settings/panels/SettingsPanelManageAccount.tsx @@ -17,7 +17,7 @@ import { DeleteAccountButton } from "../DeleteAccountButton"; export type SettingsPanelManageAccountProps = { enabledFeatureFlags: FeatureFlagName[]; - experimentData: ExperimentData; + experimentData: ExperimentData["Features"]; fxaSubscriptionsUrl: string; isMonthlySubscriber: boolean; user: Session["user"]; diff --git a/src/app/(proper_react)/(redesign)/(authenticated)/user/welcome/EnterInfo.tsx b/src/app/(proper_react)/(redesign)/(authenticated)/user/welcome/EnterInfo.tsx index 131d76bf4da..8da9053c192 100644 --- a/src/app/(proper_react)/(redesign)/(authenticated)/user/welcome/EnterInfo.tsx +++ b/src/app/(proper_react)/(redesign)/(authenticated)/user/welcome/EnterInfo.tsx @@ -63,7 +63,7 @@ export type Props = { user: Session["user"]; skipInitialStep: boolean; previousRoute: string | null; - experimentData: ExperimentData; + experimentData: ExperimentData["Features"]; }; export const EnterInfo = ({ diff --git a/src/app/(proper_react)/(redesign)/(authenticated)/user/welcome/Onboarding.stories.tsx b/src/app/(proper_react)/(redesign)/(authenticated)/user/welcome/Onboarding.stories.tsx index bba49ba0ed5..995f1f099fe 100644 --- a/src/app/(proper_react)/(redesign)/(authenticated)/user/welcome/Onboarding.stories.tsx +++ b/src/app/(proper_react)/(redesign)/(authenticated)/user/welcome/Onboarding.stories.tsx @@ -23,7 +23,7 @@ export const Onboarding: Story = { breachesTotalCount={678} previousRoute={props.previousRoute} experimentData={{ - ...defaultExperimentData, + ...defaultExperimentData["Features"], "welcome-scan-optional-info": { enabled: true, variant: "suffixAndMiddleName", diff --git a/src/app/(proper_react)/(redesign)/(authenticated)/user/welcome/View.tsx b/src/app/(proper_react)/(redesign)/(authenticated)/user/welcome/View.tsx index a089d9cab21..8dd6ff33fe2 100644 --- a/src/app/(proper_react)/(redesign)/(authenticated)/user/welcome/View.tsx +++ b/src/app/(proper_react)/(redesign)/(authenticated)/user/welcome/View.tsx @@ -30,7 +30,7 @@ export type Props = { breachesTotalCount: number; stepId?: StepId; previousRoute: string | null; - experimentData: ExperimentData; + experimentData: ExperimentData["Features"]; }; export const View = ({ diff --git a/src/app/(proper_react)/(redesign)/(public)/FreeScanCta.tsx b/src/app/(proper_react)/(redesign)/(public)/FreeScanCta.tsx index 4cc299bbd35..291776214f3 100644 --- a/src/app/(proper_react)/(redesign)/(public)/FreeScanCta.tsx +++ b/src/app/(proper_react)/(redesign)/(public)/FreeScanCta.tsx @@ -19,7 +19,7 @@ import { useViewTelemetry } from "../../../hooks/useViewTelemetry"; export const FreeScanCta = ( props: Props & { - experimentData: ExperimentData; + experimentData: ExperimentData["Features"]; }, ) => { const l10n = useL10n(); diff --git a/src/app/(proper_react)/(redesign)/(public)/LandingView.stories.tsx b/src/app/(proper_react)/(redesign)/(public)/LandingView.stories.tsx index a92d5ecd68a..4ebb5c93966 100644 --- a/src/app/(proper_react)/(redesign)/(public)/LandingView.stories.tsx +++ b/src/app/(proper_react)/(redesign)/(public)/LandingView.stories.tsx @@ -13,7 +13,8 @@ import { CONST_URL_MONITOR_LANDING_PAGE_ID } from "../../../../constants"; const meta: Meta = { title: "Pages/Public/Landing page", component: (props: ViewProps) => { - const experimentData = props.experimentData ?? defaultExperimentData; + const experimentData = + props.experimentData ?? defaultExperimentData["Features"]; return ( { render( { render( { render( { render( { render( { render( { render( { render( { render( { render( { diff --git a/src/app/(proper_react)/(redesign)/(public)/SignUpForm.tsx b/src/app/(proper_react)/(redesign)/(public)/SignUpForm.tsx index 095da9b28d0..9f57cfc2c9f 100644 --- a/src/app/(proper_react)/(redesign)/(public)/SignUpForm.tsx +++ b/src/app/(proper_react)/(redesign)/(public)/SignUpForm.tsx @@ -33,7 +33,7 @@ export type Props = { }; scanLimitReached: boolean; signUpCallbackUrl: string; - experimentData?: ExperimentData; + experimentData?: ExperimentData["Features"]; isHero?: boolean; placeholder?: string; }; diff --git a/src/app/components/client/ExposuresFilter.test.tsx b/src/app/components/client/ExposuresFilter.test.tsx index 279cfbed21a..e98af3221fc 100644 --- a/src/app/components/client/ExposuresFilter.test.tsx +++ b/src/app/components/client/ExposuresFilter.test.tsx @@ -53,7 +53,7 @@ it("shows and hides the removal time explainer dialog by clicking the “Got it isPlusSubscriber enabledFeatureFlags={["DataBrokerRemovalTimeEstimateLabel"]} experimentData={{ - ...defaultExperimentData, + ...defaultExperimentData["Features"], "data-broker-removal-time-estimates": { enabled: true, }, @@ -84,7 +84,7 @@ it("shows and hides the removal time explainer dialog by clicking the close butt isPlusSubscriber enabledFeatureFlags={["DataBrokerRemovalTimeEstimateLabel"]} experimentData={{ - ...defaultExperimentData, + ...defaultExperimentData["Features"], "data-broker-removal-time-estimates": { enabled: true, }, diff --git a/src/app/components/client/ExposuresFilter.tsx b/src/app/components/client/ExposuresFilter.tsx index 6732afb4380..6f7b294edb2 100644 --- a/src/app/components/client/ExposuresFilter.tsx +++ b/src/app/components/client/ExposuresFilter.tsx @@ -50,7 +50,7 @@ export type FilterState = { type ExposuresFilterProps = { enabledFeatureFlags: FeatureFlagName[]; - experimentData: ExperimentData; + experimentData: ExperimentData["Features"]; initialFilterValues: FilterState; filterValues: FilterState; setFilterValues: React.Dispatch>; diff --git a/src/app/components/client/csat_survey/CsatSurvey.test.tsx b/src/app/components/client/csat_survey/CsatSurvey.test.tsx index 948e72cf43f..13c66c7f871 100644 --- a/src/app/components/client/csat_survey/CsatSurvey.test.tsx +++ b/src/app/components/client/csat_survey/CsatSurvey.test.tsx @@ -297,7 +297,7 @@ describe("CSAT survey banner: Latest scan date", () => { render( ; type RequiredExperimentStatus = "enabled" | "disabled"; type RequiredExperiment = { - id: keyof ExperimentData; + id: keyof ExperimentData["Features"]; statusAllowList: RequiredExperimentStatus[]; }; @@ -50,7 +50,7 @@ export type Survey = AutomaticRemovalVariation | LatestScanDateVariation; export type CsatSurveyProps = { activeTab: TabType; - experimentData: ExperimentData; + experimentData: ExperimentData["Features"]; user: Session["user"]; }; diff --git a/src/app/components/client/exposure_card/ExposureCard.stories.tsx b/src/app/components/client/exposure_card/ExposureCard.stories.tsx index 31897fe1ba1..870e2e8a228 100644 --- a/src/app/components/client/exposure_card/ExposureCard.stories.tsx +++ b/src/app/components/client/exposure_card/ExposureCard.stories.tsx @@ -20,7 +20,7 @@ const meta: Meta = { args: { enabledFeatureFlags: [], experimentData: { - ...defaultExperimentData, + ...defaultExperimentData["Features"], "data-broker-removal-time-estimates": { enabled: true, }, diff --git a/src/app/components/client/exposure_card/ExposureCard.tsx b/src/app/components/client/exposure_card/ExposureCard.tsx index 6965120122a..a1a884ceb53 100644 --- a/src/app/components/client/exposure_card/ExposureCard.tsx +++ b/src/app/components/client/exposure_card/ExposureCard.tsx @@ -34,7 +34,7 @@ export type ExposureCardProps = { resolutionCta: ReactNode; isExpanded: boolean; enabledFeatureFlags: FeatureFlagName[]; - experimentData: ExperimentData; + experimentData: ExperimentData["Features"]; removalTimeEstimate?: number; onToggleExpanded: () => void; }; diff --git a/src/app/components/client/exposure_card/ScanResultCard.tsx b/src/app/components/client/exposure_card/ScanResultCard.tsx index 0efe3776aa2..158db59d84f 100644 --- a/src/app/components/client/exposure_card/ScanResultCard.tsx +++ b/src/app/components/client/exposure_card/ScanResultCard.tsx @@ -26,7 +26,7 @@ export type ScanResultCardProps = { isExpanded: boolean; isOnManualRemovePage?: boolean; enabledFeatureFlags?: FeatureFlagName[]; - experimentData?: ExperimentData; + experimentData?: ExperimentData["Features"]; removalTimeEstimate?: number; onToggleExpanded: () => void; }; diff --git a/src/app/components/client/exposure_card/SubscriberBreachCard.tsx b/src/app/components/client/exposure_card/SubscriberBreachCard.tsx index 5547539acb7..b890fc2ae15 100644 --- a/src/app/components/client/exposure_card/SubscriberBreachCard.tsx +++ b/src/app/components/client/exposure_card/SubscriberBreachCard.tsx @@ -30,7 +30,7 @@ export type SubscriberBreachCardProps = { isPremiumUser: boolean; isExpanded: boolean; enabledFeatureFlags: FeatureFlagName[]; - experimentData: ExperimentData; + experimentData: ExperimentData["Features"]; onToggleExpanded: () => void; }; diff --git a/src/app/components/client/stories/CsatSurvey.stories.ts b/src/app/components/client/stories/CsatSurvey.stories.ts index 889fde8d679..049213ac84e 100644 --- a/src/app/components/client/stories/CsatSurvey.stories.ts +++ b/src/app/components/client/stories/CsatSurvey.stories.ts @@ -24,7 +24,7 @@ export const CsatSurveyAutomaticRemoval: Story = { "LatestScanDateCsatSurvey", "AutomaticRemovalCsatSurvey", ], - experimentData: defaultExperimentData, + experimentData: defaultExperimentData["Features"], hasAutoFixedDataBrokers: true, elapsedTimeInDaysSinceInitialScan: 0, }, @@ -40,7 +40,7 @@ export const CsatSurveyLatestScanDate: Story = { lastScanDate: new Date(Date.UTC(2024, 6, 31)), enabledFeatureFlags: ["LatestScanDateCsatSurvey"], experimentData: { - ...defaultExperimentData, + ...defaultExperimentData["Features"], "last-scan-date": { enabled: true, }, diff --git a/src/app/components/client/stories/UpsellCta.stories.tsx b/src/app/components/client/stories/UpsellCta.stories.tsx index 801480cdf9e..062f520f437 100644 --- a/src/app/components/client/stories/UpsellCta.stories.tsx +++ b/src/app/components/client/stories/UpsellCta.stories.tsx @@ -38,7 +38,7 @@ const UpsellCtaWrapper = (props: UpsellCtaWrapperProps) => { subscriptionBillingAmount={subscriptionBillingAmount} lastScanDate={new Date(Date.UTC(1998, 2, 31))} experimentData={{ - ...defaultExperimentData, + ...defaultExperimentData["Features"], "last-scan-date": { enabled: true, }, diff --git a/src/app/components/client/toolbar/Toolbar.tsx b/src/app/components/client/toolbar/Toolbar.tsx index 448f6904112..814cca38da0 100644 --- a/src/app/components/client/toolbar/Toolbar.tsx +++ b/src/app/components/client/toolbar/Toolbar.tsx @@ -22,7 +22,7 @@ export type Props = { }; fxaSettingsUrl: string; lastScanDate: Date | null; - experimentData: ExperimentData; + experimentData: ExperimentData["Features"]; children?: ReactNode; autoOpenUpsellDialog?: boolean; }; diff --git a/src/app/components/client/toolbar/UpsellBadge.tsx b/src/app/components/client/toolbar/UpsellBadge.tsx index b9df9b9d538..d3084a8c5ef 100644 --- a/src/app/components/client/toolbar/UpsellBadge.tsx +++ b/src/app/components/client/toolbar/UpsellBadge.tsx @@ -169,7 +169,7 @@ export type UpsellBadgeProps = UpsellButtonProps & { * at more experiments in the future, make sure to remove the `?` so that * they're actually passed everywhere. */ - experimentData?: ExperimentData; + experimentData?: ExperimentData["Features"]; autoOpenUpsellDialog?: boolean; }; export function UpsellBadge(props: UpsellBadgeProps) { diff --git a/src/app/functions/server/getExperiments.ts b/src/app/functions/server/getExperiments.ts index 9b35433f870..40f55ffb15f 100644 --- a/src/app/functions/server/getExperiments.ts +++ b/src/app/functions/server/getExperiments.ts @@ -10,6 +10,7 @@ import { localExperimentData, } from "../../../telemetry/generated/nimbus/experiments"; import { ExperimentationId } from "./getExperimentationId"; +import { getEnabledFeatureFlags } from "../../../db/tables/featureFlags"; /** * Call the Cirrus sidecar, which returns a list of eligible experiments for the current user. @@ -27,15 +28,22 @@ export async function getExperiments(params: { locale: string; countryCode: string; previewMode: boolean; -}): Promise { +}): Promise { if (["local"].includes(process.env.APP_ENV ?? "local")) { - return localExperimentData; + return localExperimentData["Features"]; } if (!process.env.NIMBUS_SIDECAR_URL) { throw new Error("env var NIMBUS_SIDECAR_URL not set"); } - const serverUrl = new URL(`${process.env.NIMBUS_SIDECAR_URL}/v1/features`); + + const serverUrl = new URL(process.env.NIMBUS_SIDECAR_URL); + const flags = await getEnabledFeatureFlags({ isSignedOut: true }); + if (flags.includes("CirrusV2")) { + serverUrl.pathname = "/v2/features"; + } else { + serverUrl.pathname = "/v1/features"; + } try { if (params.previewMode === true) { @@ -57,12 +65,22 @@ export async function getExperiments(params: { }), }); - const experimentData = await response.json(); + const json = await response.json(); + + let experimentData; + if (flags.includes("CirrusV2")) { + experimentData = json["Features"]; + } else { + experimentData = json; + } - return (experimentData as ExperimentData) ?? defaultExperimentData; + return ( + (experimentData as ExperimentData["Features"]) ?? + defaultExperimentData["Features"] + ); } catch (ex) { logger.error("Could not connect to Cirrus", { serverUrl, ex }); captureException(ex); - return defaultExperimentData; + return defaultExperimentData["Features"]; } } diff --git a/src/app/functions/universal/getFreeScanSearchParams.ts b/src/app/functions/universal/getFreeScanSearchParams.ts index 5b3998c3abd..0466c0b5f3a 100644 --- a/src/app/functions/universal/getFreeScanSearchParams.ts +++ b/src/app/functions/universal/getFreeScanSearchParams.ts @@ -39,7 +39,7 @@ export function getFreeScanSearchParams({ experimentData, }: SearchParamArgs & Omit & { - experimentData?: ExperimentData; + experimentData?: ExperimentData["Features"]; }) { const attributionSearchParams = modifyAttributionsForUrlSearchParams( new URLSearchParams(cookies.attributionsFirstTouch ?? FREE_SCAN_UTM_PARAMS), diff --git a/src/db/tables/featureFlags.ts b/src/db/tables/featureFlags.ts index a7fa820bfba..8447ce936ec 100644 --- a/src/db/tables/featureFlags.ts +++ b/src/db/tables/featureFlags.ts @@ -55,6 +55,7 @@ export const featureFlagNames = [ "DataBrokerRemovalTimeEstimateCsat", "SettingsPageRedesign", "EnableRemovalUnderMaintenanceStep", + "CirrusV2", ] as const; export type FeatureFlagName = (typeof featureFlagNames)[number]; diff --git a/src/scripts/build/nimbusTypes.js b/src/scripts/build/nimbusTypes.js index 9022ece4921..b5bdbde5d94 100644 --- a/src/scripts/build/nimbusTypes.js +++ b/src/scripts/build/nimbusTypes.js @@ -4,6 +4,7 @@ import { mkdir, readFile, writeFile } from "node:fs/promises"; import { parse } from "yaml"; +import * as prettier from "prettier"; run(); @@ -68,7 +69,10 @@ async function run() { "\n" + getLocalOverrides(nimbusConfig); await mkdir("src/telemetry/generated/nimbus/", { recursive: true }); - await writeFile("src/telemetry/generated/nimbus/experiments.ts", typedef); + await writeFile( + "src/telemetry/generated/nimbus/experiments.ts", + await prettier.format(typedef, { parser: "typescript" }), + ); } /** @@ -91,7 +95,19 @@ function getFallbackObject(nimbusConfig) { }, ); - return `export const defaultExperimentData: ExperimentData = {\n${featureFallbackDefs.join("\n")}};\n`; + const defaultExperimentData = ` + "Features": { + ${featureFallbackDefs.join("\n")} + }, + "Enrollments": { + "nimbus_user_id": "-1", + "app_id": "-1", + "experiment": "-1", + "branch": "-1", + "experiment_type": "-1", + "is_preview": false + }`; + return `export const defaultExperimentData: ExperimentData = {\n${defaultExperimentData}};\n`; } /** @@ -108,11 +124,24 @@ function getLocalOverrides(nimbusConfig) { typeof localOverrides === "undefined" ? "" : ` ...${JSON.stringify(localOverrides.value, null, 2).replaceAll("\n", "\n ")}\n`; - return ` "${featureId}": {\n ...defaultExperimentData["${featureId}"],\n${overriddenValuesDef} },\n`; + return ` "${featureId}": {\n ...defaultExperimentData["Features"]["${featureId}"],\n${overriddenValuesDef} },\n`; }, ); - return `export const localExperimentData: ExperimentData = {\n${featureLocalOverridesDefs.join("\n")}};\n`; + const localExperimentData = ` + "Features": { + ${featureLocalOverridesDefs.join("\n")} + }, + "Enrollments": { + "nimbus_user_id": "-1", + "app_id": "-1", + "experiment": "-1", + "branch": "-1", + "experiment_type": "-1", + "is_preview": false + }`; + + return `export const localExperimentData: ExperimentData = {\n${localExperimentData}};\n`; } /** @@ -129,7 +158,20 @@ function getFeaturesTypeDef(nimbusConfig) { }); return ` "${featureId}": {\n${variableDefs.join("")} };\n`; }); - const experimentDataTypeDef = `/** Status of experiments, as setup in Experimenter */\nexport type ExperimentData = {\n${featureDefs.join("")}};\n`; + + const experimentDataType = `{ + "Features": {${featureDefs.join("")}}; + "Enrollments": { + "nimbus_user_id": string, + "app_id": string, + "experiment": string, + "branch": string, + "experiment_type": string, + "is_preview": boolean + }; + };`; + + const experimentDataTypeDef = `/** Status of experiments, as setup in Experimenter */\nexport type ExperimentData = ${experimentDataType}`; const featureTypeDef = getStringAliases(nimbusConfig) + "\n\n" + From 216ec6a262876ef1cacf48a7416f9966db2ae779 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Dec 2024 22:00:21 +0000 Subject: [PATCH 11/12] chore(deps): bump next-auth from 4.24.10 to 4.24.11 Bumps [next-auth](https://github.com/nextauthjs/next-auth) from 4.24.10 to 4.24.11. - [Release notes](https://github.com/nextauthjs/next-auth/releases) - [Commits](https://github.com/nextauthjs/next-auth/compare/next-auth@4.24.10...next-auth@4.24.11) --- updated-dependencies: - dependency-name: next-auth dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 12 ++++++------ package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5c53f725601..f09647f19ca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,7 +38,7 @@ "knex": "^3.1.0", "mjml": "^4.15.3", "next": "^14.2.15", - "next-auth": "^4.24.10", + "next-auth": "^4.24.11", "nodemailer": "^6.9.16", "pg": "^8.13.1", "react": "^18.3.1", @@ -20974,9 +20974,9 @@ } }, "node_modules/next-auth": { - "version": "4.24.10", - "resolved": "https://registry.npmjs.org/next-auth/-/next-auth-4.24.10.tgz", - "integrity": "sha512-8NGqiRO1GXBcVfV8tbbGcUgQkAGsX4GRzzXXea4lDikAsJtD5KiEY34bfhUOjHLvr6rT6afpcxw2H8EZqOV6aQ==", + "version": "4.24.11", + "resolved": "https://registry.npmjs.org/next-auth/-/next-auth-4.24.11.tgz", + "integrity": "sha512-pCFXzIDQX7xmHFs4KVH4luCjaCbuPRtZ9oBUjUhOk84mZ9WVPf94n87TxYI4rSRf9HmfHEF8Yep3JrYDVOo3Cw==", "dependencies": { "@babel/runtime": "^7.20.13", "@panva/hkdf": "^1.0.2", @@ -20992,8 +20992,8 @@ "@auth/core": "0.34.2", "next": "^12.2.5 || ^13 || ^14 || ^15", "nodemailer": "^6.6.5", - "react": "^17.0.2 || ^18", - "react-dom": "^17.0.2 || ^18" + "react": "^17.0.2 || ^18 || ^19", + "react-dom": "^17.0.2 || ^18 || ^19" }, "peerDependenciesMeta": { "@auth/core": { diff --git a/package.json b/package.json index f860052c574..94db4accca9 100644 --- a/package.json +++ b/package.json @@ -99,7 +99,7 @@ "knex": "^3.1.0", "mjml": "^4.15.3", "next": "^14.2.15", - "next-auth": "^4.24.10", + "next-auth": "^4.24.11", "nodemailer": "^6.9.16", "pg": "^8.13.1", "react": "^18.3.1", From 3d77c36c22f5017914e5748564a8d2017a440ed7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Dec 2024 00:01:31 +0000 Subject: [PATCH 12/12] chore(deps): bump the aws-sdk group across 1 directory with 2 updates Bumps the aws-sdk group with 2 updates in the / directory: [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) and [@aws-sdk/lib-storage](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/lib/lib-storage). Updates `@aws-sdk/client-s3` from 3.705.0 to 3.716.0 - [Release notes](https://github.com/aws/aws-sdk-js-v3/releases) - [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.716.0/clients/client-s3) Updates `@aws-sdk/lib-storage` from 3.705.0 to 3.716.0 - [Release notes](https://github.com/aws/aws-sdk-js-v3/releases) - [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/lib/lib-storage/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.716.0/lib/lib-storage) --- updated-dependencies: - dependency-name: "@aws-sdk/client-s3" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: aws-sdk - dependency-name: "@aws-sdk/lib-storage" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: aws-sdk ... Signed-off-by: dependabot[bot] --- package-lock.json | 1200 ++++++++++++++++++++++----------------------- package.json | 4 +- 2 files changed, 601 insertions(+), 603 deletions(-) diff --git a/package-lock.json b/package-lock.json index f09647f19ca..e464b929382 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,8 +9,8 @@ "version": "1.0.0", "license": "MPL-2.0", "dependencies": { - "@aws-sdk/client-s3": "^3.705.0", - "@aws-sdk/lib-storage": "^3.705.0", + "@aws-sdk/client-s3": "^3.716.0", + "@aws-sdk/lib-storage": "^3.716.0", "@fluent/bundle": "^0.18.0", "@fluent/langneg": "^0.7.0", "@fluent/react": "^0.15.2", @@ -153,7 +153,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-5.2.0.tgz", "integrity": "sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==", - "license": "Apache-2.0", "dependencies": { "@aws-crypto/util": "^5.2.0", "@aws-sdk/types": "^3.222.0", @@ -324,67 +323,67 @@ } }, "node_modules/@aws-sdk/client-s3": { - "version": "3.705.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.705.0.tgz", - "integrity": "sha512-Fm0Cbc4zr0yG0DnNycz7ywlL5tQFdLSb7xCIPfzrxJb3YQiTXWxH5eu61SSsP/Z6RBNRolmRPvst/iNgX0fWvA==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.716.0.tgz", + "integrity": "sha512-B49DwXnZS9GjjV+auIuqnCx86cqpACd//4mC5AXb5MsrLJJ6bPE/U2T+C/0NqUTfb31aqYbZ/cwhJELvpDU9mA==", "dependencies": { "@aws-crypto/sha1-browser": "5.2.0", "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.699.0", - "@aws-sdk/client-sts": "3.699.0", - "@aws-sdk/core": "3.696.0", - "@aws-sdk/credential-provider-node": "3.699.0", - "@aws-sdk/middleware-bucket-endpoint": "3.696.0", - "@aws-sdk/middleware-expect-continue": "3.696.0", - "@aws-sdk/middleware-flexible-checksums": "3.701.0", - "@aws-sdk/middleware-host-header": "3.696.0", - "@aws-sdk/middleware-location-constraint": "3.696.0", - "@aws-sdk/middleware-logger": "3.696.0", - "@aws-sdk/middleware-recursion-detection": "3.696.0", - "@aws-sdk/middleware-sdk-s3": "3.696.0", - "@aws-sdk/middleware-ssec": "3.696.0", - "@aws-sdk/middleware-user-agent": "3.696.0", - "@aws-sdk/region-config-resolver": "3.696.0", - "@aws-sdk/signature-v4-multi-region": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@aws-sdk/util-endpoints": "3.696.0", - "@aws-sdk/util-user-agent-browser": "3.696.0", - "@aws-sdk/util-user-agent-node": "3.696.0", - "@aws-sdk/xml-builder": "3.696.0", - "@smithy/config-resolver": "^3.0.12", - "@smithy/core": "^2.5.3", - "@smithy/eventstream-serde-browser": "^3.0.13", - "@smithy/eventstream-serde-config-resolver": "^3.0.10", - "@smithy/eventstream-serde-node": "^3.0.12", - "@smithy/fetch-http-handler": "^4.1.1", - "@smithy/hash-blob-browser": "^3.1.9", - "@smithy/hash-node": "^3.0.10", - "@smithy/hash-stream-node": "^3.1.9", - "@smithy/invalid-dependency": "^3.0.10", - "@smithy/md5-js": "^3.0.10", - "@smithy/middleware-content-length": "^3.0.12", - "@smithy/middleware-endpoint": "^3.2.3", - "@smithy/middleware-retry": "^3.0.27", - "@smithy/middleware-serde": "^3.0.10", - "@smithy/middleware-stack": "^3.0.10", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/node-http-handler": "^3.3.1", - "@smithy/protocol-http": "^4.1.7", - "@smithy/smithy-client": "^3.4.4", - "@smithy/types": "^3.7.1", - "@smithy/url-parser": "^3.0.10", + "@aws-sdk/client-sso-oidc": "3.716.0", + "@aws-sdk/client-sts": "3.716.0", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/credential-provider-node": "3.716.0", + "@aws-sdk/middleware-bucket-endpoint": "3.714.0", + "@aws-sdk/middleware-expect-continue": "3.714.0", + "@aws-sdk/middleware-flexible-checksums": "3.716.0", + "@aws-sdk/middleware-host-header": "3.714.0", + "@aws-sdk/middleware-location-constraint": "3.714.0", + "@aws-sdk/middleware-logger": "3.714.0", + "@aws-sdk/middleware-recursion-detection": "3.714.0", + "@aws-sdk/middleware-sdk-s3": "3.716.0", + "@aws-sdk/middleware-ssec": "3.714.0", + "@aws-sdk/middleware-user-agent": "3.716.0", + "@aws-sdk/region-config-resolver": "3.714.0", + "@aws-sdk/signature-v4-multi-region": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@aws-sdk/util-endpoints": "3.714.0", + "@aws-sdk/util-user-agent-browser": "3.714.0", + "@aws-sdk/util-user-agent-node": "3.716.0", + "@aws-sdk/xml-builder": "3.709.0", + "@smithy/config-resolver": "^3.0.13", + "@smithy/core": "^2.5.5", + "@smithy/eventstream-serde-browser": "^3.0.14", + "@smithy/eventstream-serde-config-resolver": "^3.0.11", + "@smithy/eventstream-serde-node": "^3.0.13", + "@smithy/fetch-http-handler": "^4.1.2", + "@smithy/hash-blob-browser": "^3.1.10", + "@smithy/hash-node": "^3.0.11", + "@smithy/hash-stream-node": "^3.1.10", + "@smithy/invalid-dependency": "^3.0.11", + "@smithy/md5-js": "^3.0.11", + "@smithy/middleware-content-length": "^3.0.13", + "@smithy/middleware-endpoint": "^3.2.6", + "@smithy/middleware-retry": "^3.0.31", + "@smithy/middleware-serde": "^3.0.11", + "@smithy/middleware-stack": "^3.0.11", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/node-http-handler": "^3.3.2", + "@smithy/protocol-http": "^4.1.8", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/url-parser": "^3.0.11", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.27", - "@smithy/util-defaults-mode-node": "^3.0.27", - "@smithy/util-endpoints": "^2.1.6", - "@smithy/util-middleware": "^3.0.10", - "@smithy/util-retry": "^3.0.10", - "@smithy/util-stream": "^3.3.1", + "@smithy/util-defaults-mode-browser": "^3.0.31", + "@smithy/util-defaults-mode-node": "^3.0.31", + "@smithy/util-endpoints": "^2.1.7", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-retry": "^3.0.11", + "@smithy/util-stream": "^3.3.2", "@smithy/util-utf8": "^3.0.0", - "@smithy/util-waiter": "^3.1.9", + "@smithy/util-waiter": "^3.2.0", "tslib": "^2.6.2" }, "engines": { @@ -392,46 +391,46 @@ } }, "node_modules/@aws-sdk/client-sso": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.696.0.tgz", - "integrity": "sha512-q5TTkd08JS0DOkHfUL853tuArf7NrPeqoS5UOvqJho8ibV9Ak/a/HO4kNvy9Nj3cib/toHYHsQIEtecUPSUUrQ==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.716.0.tgz", + "integrity": "sha512-5Nb0jJXce2TclbjG7WVPufwhgV1TRydz1QnsuBtKU0AdViEpr787YrZhPpGnNIM1Dx+R1H/tmAHZnOoohS6D8g==", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.696.0", - "@aws-sdk/middleware-host-header": "3.696.0", - "@aws-sdk/middleware-logger": "3.696.0", - "@aws-sdk/middleware-recursion-detection": "3.696.0", - "@aws-sdk/middleware-user-agent": "3.696.0", - "@aws-sdk/region-config-resolver": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@aws-sdk/util-endpoints": "3.696.0", - "@aws-sdk/util-user-agent-browser": "3.696.0", - "@aws-sdk/util-user-agent-node": "3.696.0", - "@smithy/config-resolver": "^3.0.12", - "@smithy/core": "^2.5.3", - "@smithy/fetch-http-handler": "^4.1.1", - "@smithy/hash-node": "^3.0.10", - "@smithy/invalid-dependency": "^3.0.10", - "@smithy/middleware-content-length": "^3.0.12", - "@smithy/middleware-endpoint": "^3.2.3", - "@smithy/middleware-retry": "^3.0.27", - "@smithy/middleware-serde": "^3.0.10", - "@smithy/middleware-stack": "^3.0.10", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/node-http-handler": "^3.3.1", - "@smithy/protocol-http": "^4.1.7", - "@smithy/smithy-client": "^3.4.4", - "@smithy/types": "^3.7.1", - "@smithy/url-parser": "^3.0.10", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/middleware-host-header": "3.714.0", + "@aws-sdk/middleware-logger": "3.714.0", + "@aws-sdk/middleware-recursion-detection": "3.714.0", + "@aws-sdk/middleware-user-agent": "3.716.0", + "@aws-sdk/region-config-resolver": "3.714.0", + "@aws-sdk/types": "3.714.0", + "@aws-sdk/util-endpoints": "3.714.0", + "@aws-sdk/util-user-agent-browser": "3.714.0", + "@aws-sdk/util-user-agent-node": "3.716.0", + "@smithy/config-resolver": "^3.0.13", + "@smithy/core": "^2.5.5", + "@smithy/fetch-http-handler": "^4.1.2", + "@smithy/hash-node": "^3.0.11", + "@smithy/invalid-dependency": "^3.0.11", + "@smithy/middleware-content-length": "^3.0.13", + "@smithy/middleware-endpoint": "^3.2.6", + "@smithy/middleware-retry": "^3.0.31", + "@smithy/middleware-serde": "^3.0.11", + "@smithy/middleware-stack": "^3.0.11", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/node-http-handler": "^3.3.2", + "@smithy/protocol-http": "^4.1.8", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/url-parser": "^3.0.11", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.27", - "@smithy/util-defaults-mode-node": "^3.0.27", - "@smithy/util-endpoints": "^2.1.6", - "@smithy/util-middleware": "^3.0.10", - "@smithy/util-retry": "^3.0.10", + "@smithy/util-defaults-mode-browser": "^3.0.31", + "@smithy/util-defaults-mode-node": "^3.0.31", + "@smithy/util-endpoints": "^2.1.7", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-retry": "^3.0.11", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -440,47 +439,47 @@ } }, "node_modules/@aws-sdk/client-sso-oidc": { - "version": "3.699.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.699.0.tgz", - "integrity": "sha512-u8a1GorY5D1l+4FQAf4XBUC1T10/t7neuwT21r0ymrtMFSK2a9QqVHKMoLkvavAwyhJnARSBM9/UQC797PFOFw==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.716.0.tgz", + "integrity": "sha512-lA4IB9FzR2KjH7EVCo+mHGFKqdViVyeBQEIX9oVratL/l7P0bMS1fMwgfHOc3ACazqNxBxDES7x08ZCp32y6Lw==", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.696.0", - "@aws-sdk/credential-provider-node": "3.699.0", - "@aws-sdk/middleware-host-header": "3.696.0", - "@aws-sdk/middleware-logger": "3.696.0", - "@aws-sdk/middleware-recursion-detection": "3.696.0", - "@aws-sdk/middleware-user-agent": "3.696.0", - "@aws-sdk/region-config-resolver": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@aws-sdk/util-endpoints": "3.696.0", - "@aws-sdk/util-user-agent-browser": "3.696.0", - "@aws-sdk/util-user-agent-node": "3.696.0", - "@smithy/config-resolver": "^3.0.12", - "@smithy/core": "^2.5.3", - "@smithy/fetch-http-handler": "^4.1.1", - "@smithy/hash-node": "^3.0.10", - "@smithy/invalid-dependency": "^3.0.10", - "@smithy/middleware-content-length": "^3.0.12", - "@smithy/middleware-endpoint": "^3.2.3", - "@smithy/middleware-retry": "^3.0.27", - "@smithy/middleware-serde": "^3.0.10", - "@smithy/middleware-stack": "^3.0.10", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/node-http-handler": "^3.3.1", - "@smithy/protocol-http": "^4.1.7", - "@smithy/smithy-client": "^3.4.4", - "@smithy/types": "^3.7.1", - "@smithy/url-parser": "^3.0.10", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/credential-provider-node": "3.716.0", + "@aws-sdk/middleware-host-header": "3.714.0", + "@aws-sdk/middleware-logger": "3.714.0", + "@aws-sdk/middleware-recursion-detection": "3.714.0", + "@aws-sdk/middleware-user-agent": "3.716.0", + "@aws-sdk/region-config-resolver": "3.714.0", + "@aws-sdk/types": "3.714.0", + "@aws-sdk/util-endpoints": "3.714.0", + "@aws-sdk/util-user-agent-browser": "3.714.0", + "@aws-sdk/util-user-agent-node": "3.716.0", + "@smithy/config-resolver": "^3.0.13", + "@smithy/core": "^2.5.5", + "@smithy/fetch-http-handler": "^4.1.2", + "@smithy/hash-node": "^3.0.11", + "@smithy/invalid-dependency": "^3.0.11", + "@smithy/middleware-content-length": "^3.0.13", + "@smithy/middleware-endpoint": "^3.2.6", + "@smithy/middleware-retry": "^3.0.31", + "@smithy/middleware-serde": "^3.0.11", + "@smithy/middleware-stack": "^3.0.11", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/node-http-handler": "^3.3.2", + "@smithy/protocol-http": "^4.1.8", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/url-parser": "^3.0.11", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.27", - "@smithy/util-defaults-mode-node": "^3.0.27", - "@smithy/util-endpoints": "^2.1.6", - "@smithy/util-middleware": "^3.0.10", - "@smithy/util-retry": "^3.0.10", + "@smithy/util-defaults-mode-browser": "^3.0.31", + "@smithy/util-defaults-mode-node": "^3.0.31", + "@smithy/util-endpoints": "^2.1.7", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-retry": "^3.0.11", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -488,52 +487,52 @@ "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sts": "^3.699.0" + "@aws-sdk/client-sts": "^3.716.0" } }, "node_modules/@aws-sdk/client-sts": { - "version": "3.699.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.699.0.tgz", - "integrity": "sha512-++lsn4x2YXsZPIzFVwv3fSUVM55ZT0WRFmPeNilYIhZClxHLmVAWKH4I55cY9ry60/aTKYjzOXkWwyBKGsGvQg==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.716.0.tgz", + "integrity": "sha512-i4SVNsrdXudp8T4bkm7Fi3YWlRnvXCSwvNDqf6nLqSJxqr4CN3VlBELueDyjBK7TAt453/qSif+eNx+bHmwo4Q==", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.699.0", - "@aws-sdk/core": "3.696.0", - "@aws-sdk/credential-provider-node": "3.699.0", - "@aws-sdk/middleware-host-header": "3.696.0", - "@aws-sdk/middleware-logger": "3.696.0", - "@aws-sdk/middleware-recursion-detection": "3.696.0", - "@aws-sdk/middleware-user-agent": "3.696.0", - "@aws-sdk/region-config-resolver": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@aws-sdk/util-endpoints": "3.696.0", - "@aws-sdk/util-user-agent-browser": "3.696.0", - "@aws-sdk/util-user-agent-node": "3.696.0", - "@smithy/config-resolver": "^3.0.12", - "@smithy/core": "^2.5.3", - "@smithy/fetch-http-handler": "^4.1.1", - "@smithy/hash-node": "^3.0.10", - "@smithy/invalid-dependency": "^3.0.10", - "@smithy/middleware-content-length": "^3.0.12", - "@smithy/middleware-endpoint": "^3.2.3", - "@smithy/middleware-retry": "^3.0.27", - "@smithy/middleware-serde": "^3.0.10", - "@smithy/middleware-stack": "^3.0.10", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/node-http-handler": "^3.3.1", - "@smithy/protocol-http": "^4.1.7", - "@smithy/smithy-client": "^3.4.4", - "@smithy/types": "^3.7.1", - "@smithy/url-parser": "^3.0.10", + "@aws-sdk/client-sso-oidc": "3.716.0", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/credential-provider-node": "3.716.0", + "@aws-sdk/middleware-host-header": "3.714.0", + "@aws-sdk/middleware-logger": "3.714.0", + "@aws-sdk/middleware-recursion-detection": "3.714.0", + "@aws-sdk/middleware-user-agent": "3.716.0", + "@aws-sdk/region-config-resolver": "3.714.0", + "@aws-sdk/types": "3.714.0", + "@aws-sdk/util-endpoints": "3.714.0", + "@aws-sdk/util-user-agent-browser": "3.714.0", + "@aws-sdk/util-user-agent-node": "3.716.0", + "@smithy/config-resolver": "^3.0.13", + "@smithy/core": "^2.5.5", + "@smithy/fetch-http-handler": "^4.1.2", + "@smithy/hash-node": "^3.0.11", + "@smithy/invalid-dependency": "^3.0.11", + "@smithy/middleware-content-length": "^3.0.13", + "@smithy/middleware-endpoint": "^3.2.6", + "@smithy/middleware-retry": "^3.0.31", + "@smithy/middleware-serde": "^3.0.11", + "@smithy/middleware-stack": "^3.0.11", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/node-http-handler": "^3.3.2", + "@smithy/protocol-http": "^4.1.8", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/url-parser": "^3.0.11", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.27", - "@smithy/util-defaults-mode-node": "^3.0.27", - "@smithy/util-endpoints": "^2.1.6", - "@smithy/util-middleware": "^3.0.10", - "@smithy/util-retry": "^3.0.10", + "@smithy/util-defaults-mode-browser": "^3.0.31", + "@smithy/util-defaults-mode-node": "^3.0.31", + "@smithy/util-endpoints": "^2.1.7", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-retry": "^3.0.11", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -542,19 +541,19 @@ } }, "node_modules/@aws-sdk/core": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.696.0.tgz", - "integrity": "sha512-3c9III1k03DgvRZWg8vhVmfIXPG6hAciN9MzQTzqGngzWAELZF/WONRTRQuDFixVtarQatmLHYVw/atGeA2Byw==", - "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/core": "^2.5.3", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/property-provider": "^3.1.9", - "@smithy/protocol-http": "^4.1.7", - "@smithy/signature-v4": "^4.2.2", - "@smithy/smithy-client": "^3.4.4", - "@smithy/types": "^3.7.1", - "@smithy/util-middleware": "^3.0.10", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.716.0.tgz", + "integrity": "sha512-5DkUiTrbyzO8/W4g7UFEqRFpuhgizayHI/Zbh0wtFMcot8801nJV+MP/YMhdjimlvAr/OqYB08FbGsPyWppMTw==", + "dependencies": { + "@aws-sdk/types": "3.714.0", + "@smithy/core": "^2.5.5", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/property-provider": "^3.1.11", + "@smithy/protocol-http": "^4.1.8", + "@smithy/signature-v4": "^4.2.4", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/util-middleware": "^3.0.11", "fast-xml-parser": "4.4.1", "tslib": "^2.6.2" }, @@ -563,14 +562,14 @@ } }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.696.0.tgz", - "integrity": "sha512-T9iMFnJL7YTlESLpVFT3fg1Lkb1lD+oiaIC8KMpepb01gDUBIpj9+Y+pA/cgRWW0yRxmkDXNazAE2qQTVFGJzA==", - "dependencies": { - "@aws-sdk/core": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@smithy/property-provider": "^3.1.9", - "@smithy/types": "^3.7.1", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.716.0.tgz", + "integrity": "sha512-JI2KQUnn2arICwP9F3CnqP1W3nAbm4+meQg/yOhp9X0DMzQiHrHRd4HIrK2vyVgi2/6hGhONY5uLF26yRTA7nQ==", + "dependencies": { + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/property-provider": "^3.1.11", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -578,19 +577,19 @@ } }, "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.696.0.tgz", - "integrity": "sha512-GV6EbvPi2eq1+WgY/o2RFA3P7HGmnkIzCNmhwtALFlqMroLYWKE7PSeHw66Uh1dFQeVESn0/+hiUNhu1mB0emA==", - "dependencies": { - "@aws-sdk/core": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@smithy/fetch-http-handler": "^4.1.1", - "@smithy/node-http-handler": "^3.3.1", - "@smithy/property-provider": "^3.1.9", - "@smithy/protocol-http": "^4.1.7", - "@smithy/smithy-client": "^3.4.4", - "@smithy/types": "^3.7.1", - "@smithy/util-stream": "^3.3.1", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.716.0.tgz", + "integrity": "sha512-CZ04pl2z7igQPysQyH2xKZHM3fLwkemxQbKOlje3TmiS1NwXvcKvERhp9PE/H23kOL7beTM19NMRog/Fka/rlw==", + "dependencies": { + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/fetch-http-handler": "^4.1.2", + "@smithy/node-http-handler": "^3.3.2", + "@smithy/property-provider": "^3.1.11", + "@smithy/protocol-http": "^4.1.8", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/util-stream": "^3.3.2", "tslib": "^2.6.2" }, "engines": { @@ -598,46 +597,46 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.699.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.699.0.tgz", - "integrity": "sha512-dXmCqjJnKmG37Q+nLjPVu22mNkrGHY8hYoOt3Jo9R2zr5MYV7s/NHsCHr+7E+BZ+tfZYLRPeB1wkpTeHiEcdRw==", - "dependencies": { - "@aws-sdk/core": "3.696.0", - "@aws-sdk/credential-provider-env": "3.696.0", - "@aws-sdk/credential-provider-http": "3.696.0", - "@aws-sdk/credential-provider-process": "3.696.0", - "@aws-sdk/credential-provider-sso": "3.699.0", - "@aws-sdk/credential-provider-web-identity": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@smithy/credential-provider-imds": "^3.2.6", - "@smithy/property-provider": "^3.1.9", - "@smithy/shared-ini-file-loader": "^3.1.10", - "@smithy/types": "^3.7.1", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.716.0.tgz", + "integrity": "sha512-P37We2GtZvdROxiwP0zrpEL81/HuYK1qlYxp5VCj3uV+G4mG8UQN2gMIU/baYrpOQqa0h81RfyQGRFUjVaDVqw==", + "dependencies": { + "@aws-sdk/core": "3.716.0", + "@aws-sdk/credential-provider-env": "3.716.0", + "@aws-sdk/credential-provider-http": "3.716.0", + "@aws-sdk/credential-provider-process": "3.716.0", + "@aws-sdk/credential-provider-sso": "3.716.0", + "@aws-sdk/credential-provider-web-identity": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/credential-provider-imds": "^3.2.8", + "@smithy/property-provider": "^3.1.11", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sts": "^3.699.0" + "@aws-sdk/client-sts": "^3.716.0" } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.699.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.699.0.tgz", - "integrity": "sha512-MmEmNDo1bBtTgRmdNfdQksXu4uXe66s0p1hi1YPrn1h59Q605eq/xiWbGL6/3KdkViH6eGUuABeV2ODld86ylg==", - "dependencies": { - "@aws-sdk/credential-provider-env": "3.696.0", - "@aws-sdk/credential-provider-http": "3.696.0", - "@aws-sdk/credential-provider-ini": "3.699.0", - "@aws-sdk/credential-provider-process": "3.696.0", - "@aws-sdk/credential-provider-sso": "3.699.0", - "@aws-sdk/credential-provider-web-identity": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@smithy/credential-provider-imds": "^3.2.6", - "@smithy/property-provider": "^3.1.9", - "@smithy/shared-ini-file-loader": "^3.1.10", - "@smithy/types": "^3.7.1", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.716.0.tgz", + "integrity": "sha512-FGQPK2uKfS53dVvoskN/s/t6m0Po24BGd1PzJdzHBFCOjxbZLM6+8mDMXeyi2hCLVVQOUcuW41kOgmJ0+zMbww==", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.716.0", + "@aws-sdk/credential-provider-http": "3.716.0", + "@aws-sdk/credential-provider-ini": "3.716.0", + "@aws-sdk/credential-provider-process": "3.716.0", + "@aws-sdk/credential-provider-sso": "3.716.0", + "@aws-sdk/credential-provider-web-identity": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/credential-provider-imds": "^3.2.8", + "@smithy/property-provider": "^3.1.11", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -645,15 +644,15 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.696.0.tgz", - "integrity": "sha512-mL1RcFDe9sfmyU5K1nuFkO8UiJXXxLX4JO1gVaDIOvPqwStpUAwi3A1BoeZhWZZNQsiKI810RnYGo0E0WB/hUA==", - "dependencies": { - "@aws-sdk/core": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@smithy/property-provider": "^3.1.9", - "@smithy/shared-ini-file-loader": "^3.1.10", - "@smithy/types": "^3.7.1", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.716.0.tgz", + "integrity": "sha512-0spcu2MWVVHSTHH3WE2E//ttUJPwXRM3BCp+WyI41xLzpNu1Fd8zjOrDpEo0SnGUzsSiRTIJWgkuu/tqv9NJ2A==", + "dependencies": { + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/property-provider": "^3.1.11", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -661,17 +660,17 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.699.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.699.0.tgz", - "integrity": "sha512-Ekp2cZG4pl9D8+uKWm4qO1xcm8/MeiI8f+dnlZm8aQzizeC+aXYy9GyoclSf6daK8KfRPiRfM7ZHBBL5dAfdMA==", - "dependencies": { - "@aws-sdk/client-sso": "3.696.0", - "@aws-sdk/core": "3.696.0", - "@aws-sdk/token-providers": "3.699.0", - "@aws-sdk/types": "3.696.0", - "@smithy/property-provider": "^3.1.9", - "@smithy/shared-ini-file-loader": "^3.1.10", - "@smithy/types": "^3.7.1", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.716.0.tgz", + "integrity": "sha512-J2IA3WuCpRGGoZm6VHZVFCnrxXP+41iUWb9Ct/1spljegTa1XjiaZ5Jf3+Ubj7WKiyvP9/dgz1L0bu2bYEjliw==", + "dependencies": { + "@aws-sdk/client-sso": "3.716.0", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/token-providers": "3.714.0", + "@aws-sdk/types": "3.714.0", + "@smithy/property-provider": "^3.1.11", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -679,31 +678,31 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.696.0.tgz", - "integrity": "sha512-XJ/CVlWChM0VCoc259vWguFUjJDn/QwDqHwbx+K9cg3v6yrqXfK5ai+p/6lx0nQpnk4JzPVeYYxWRpaTsGC9rg==", - "dependencies": { - "@aws-sdk/core": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@smithy/property-provider": "^3.1.9", - "@smithy/types": "^3.7.1", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.716.0.tgz", + "integrity": "sha512-vzgpWKs2gGXZGdbMKRFrMW4PqEFWkGvwWH2T7ZwQv9m+8lQ7P4Dk2uimqu0f37HZAbpn8HFMqRh4CaySjU354A==", + "dependencies": { + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/property-provider": "^3.1.11", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sts": "^3.696.0" + "@aws-sdk/client-sts": "^3.716.0" } }, "node_modules/@aws-sdk/lib-storage": { - "version": "3.705.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.705.0.tgz", - "integrity": "sha512-jucPgdO5RCQAki8+CcEi3ZQxBUpq6iVcurtMkLS1xGbe/VOhxzNOt44V/4WqjUu7ra3on8DD0DOqd9523BqOzA==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.716.0.tgz", + "integrity": "sha512-bTcZ8MwceFmw0sxg9M5PeEHtmr6/TgHDEeF4HOGjOF3tEd+0/CpjtRXf27Q1iD4ywPvtjAu2sEot3xeKQTMw6A==", "dependencies": { - "@smithy/abort-controller": "^3.1.7", - "@smithy/middleware-endpoint": "^3.2.3", - "@smithy/smithy-client": "^3.4.4", + "@smithy/abort-controller": "^3.1.9", + "@smithy/middleware-endpoint": "^3.2.6", + "@smithy/smithy-client": "^3.5.1", "buffer": "5.6.0", "events": "3.3.0", "stream-browserify": "3.0.0", @@ -713,19 +712,19 @@ "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-s3": "^3.705.0" + "@aws-sdk/client-s3": "^3.716.0" } }, "node_modules/@aws-sdk/middleware-bucket-endpoint": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.696.0.tgz", - "integrity": "sha512-V07jishKHUS5heRNGFpCWCSTjRJyQLynS/ncUeE8ZYtG66StOOQWftTwDfFOSoXlIqrXgb4oT9atryzXq7Z4LQ==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.714.0.tgz", + "integrity": "sha512-I/xSOskiseJJ8i183Z522BgqbgYzLKP7jGcg2Qeib/IWoG2IP+9DH8pwqagKaPAycyswtnoKBJiiFXY43n0CkA==", "dependencies": { - "@aws-sdk/types": "3.696.0", + "@aws-sdk/types": "3.714.0", "@aws-sdk/util-arn-parser": "3.693.0", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", "@smithy/util-config-provider": "^3.0.0", "tslib": "^2.6.2" }, @@ -734,13 +733,13 @@ } }, "node_modules/@aws-sdk/middleware-expect-continue": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.696.0.tgz", - "integrity": "sha512-vpVukqY3U2pb+ULeX0shs6L0aadNep6kKzjme/MyulPjtUDJpD3AekHsXRrCCGLmOqSKqRgQn5zhV9pQhHsb6Q==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.714.0.tgz", + "integrity": "sha512-rlzsXdG8Lzo4Qpl35ZnpOBAWlzvDHpP9++0AXoUwAJA0QmMm7auIRmgxJuNj91VwT9h15ZU6xjU4S7fJl4W0+w==", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", + "@aws-sdk/types": "3.714.0", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -748,22 +747,21 @@ } }, "node_modules/@aws-sdk/middleware-flexible-checksums": { - "version": "3.701.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.701.0.tgz", - "integrity": "sha512-adNaPCyTT+CiVM0ufDiO1Fe7nlRmJdI9Hcgj0M9S6zR7Dw70Ra5z8Lslkd7syAccYvZaqxLklGjPQH/7GNxwTA==", - "license": "Apache-2.0", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.716.0.tgz", + "integrity": "sha512-1j8PoBYyn0oQlRhPPzOnqf0sdXO0x34pG19cMC0a7cv+En17m7W44BtVplFPRKpGfto3DU5frozV+wu8d9v/hQ==", "dependencies": { "@aws-crypto/crc32": "5.2.0", "@aws-crypto/crc32c": "5.2.0", "@aws-crypto/util": "5.2.0", - "@aws-sdk/core": "3.696.0", - "@aws-sdk/types": "3.696.0", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", "@smithy/is-array-buffer": "^3.0.0", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", - "@smithy/util-middleware": "^3.0.10", - "@smithy/util-stream": "^3.3.1", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-stream": "^3.3.2", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -772,13 +770,13 @@ } }, "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.696.0.tgz", - "integrity": "sha512-zELJp9Ta2zkX7ELggMN9qMCgekqZhFC5V2rOr4hJDEb/Tte7gpfKSObAnw/3AYiVqt36sjHKfdkoTsuwGdEoDg==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.714.0.tgz", + "integrity": "sha512-6l68kjNrh5QC8FGX3I3geBDavWN5Tg1RLHJ2HLA8ByGBtJyCwnz3hEkKfaxn0bBx0hF9DzbfjEOUF6cDqy2Kjg==", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", + "@aws-sdk/types": "3.714.0", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -786,12 +784,12 @@ } }, "node_modules/@aws-sdk/middleware-location-constraint": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.696.0.tgz", - "integrity": "sha512-FgH12OB0q+DtTrP2aiDBddDKwL4BPOrm7w3VV9BJrSdkqQCNBPz8S1lb0y5eVH4tBG+2j7gKPlOv1wde4jF/iw==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.714.0.tgz", + "integrity": "sha512-MX7M+V+FblujKck3fyuzePVIAy9530gY719IiSxV6uN1qLHl7VDJxNblpF/KpXakD6rOg8OpvtmqsXj9aBMftw==", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/types": "^3.7.1", + "@aws-sdk/types": "3.714.0", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -799,12 +797,12 @@ } }, "node_modules/@aws-sdk/middleware-logger": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.696.0.tgz", - "integrity": "sha512-KhkHt+8AjCxcR/5Zp3++YPJPpFQzxpr+jmONiT/Jw2yqnSngZ0Yspm5wGoRx2hS1HJbyZNuaOWEGuJoxLeBKfA==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.714.0.tgz", + "integrity": "sha512-RkqHlMvQWUaRklU1bMfUuBvdWwxgUtEqpADaHXlGVj3vtEY2UgBjy+57CveC4MByqKIunNvVHBBbjrGVtwY7Lg==", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/types": "^3.7.1", + "@aws-sdk/types": "3.714.0", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -812,13 +810,13 @@ } }, "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.696.0.tgz", - "integrity": "sha512-si/maV3Z0hH7qa99f9ru2xpS5HlfSVcasRlNUXKSDm611i7jFMWwGNLUOXFAOLhXotPX5G3Z6BLwL34oDeBMug==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.714.0.tgz", + "integrity": "sha512-AVU5ixnh93nqtsfgNc284oXsXaadyHGPHpql/jwgaaqQfEXjS/1/j3j9E/vpacfTTz2Vzo7hAOjnvrOXSEVDaA==", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", + "@aws-sdk/types": "3.714.0", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -826,22 +824,22 @@ } }, "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.696.0.tgz", - "integrity": "sha512-M7fEiAiN7DBMHflzOFzh1I2MNSlLpbiH2ubs87bdRc2wZsDPSbs4l3v6h3WLhxoQK0bq6vcfroudrLBgvCuX3Q==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.716.0.tgz", + "integrity": "sha512-Qzz5OfRA/5brqfvq+JHTInwS1EuJ1+tC6qMtwKWJN3czMnVJVdnnsPTf+G5IM/1yYaGEIjY8rC1ExQLcc8ApFQ==", "dependencies": { - "@aws-sdk/core": "3.696.0", - "@aws-sdk/types": "3.696.0", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", "@aws-sdk/util-arn-parser": "3.693.0", - "@smithy/core": "^2.5.3", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/protocol-http": "^4.1.7", - "@smithy/signature-v4": "^4.2.2", - "@smithy/smithy-client": "^3.4.4", - "@smithy/types": "^3.7.1", + "@smithy/core": "^2.5.5", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/protocol-http": "^4.1.8", + "@smithy/signature-v4": "^4.2.4", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", "@smithy/util-config-provider": "^3.0.0", - "@smithy/util-middleware": "^3.0.10", - "@smithy/util-stream": "^3.3.1", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-stream": "^3.3.2", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -850,12 +848,12 @@ } }, "node_modules/@aws-sdk/middleware-ssec": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.696.0.tgz", - "integrity": "sha512-w/d6O7AOZ7Pg3w2d3BxnX5RmGNWb5X4RNxF19rJqcgu/xqxxE/QwZTNd5a7eTsqLXAUIfbbR8hh0czVfC1pJLA==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.714.0.tgz", + "integrity": "sha512-RkK8REAVwNUQmYbIDRw8eYbMJ8F1Rw4C9mlME4BBMhFlelGcD3ErU2ce24moQbDxBjNwHNESmIqgmdQk93CDCQ==", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/types": "^3.7.1", + "@aws-sdk/types": "3.714.0", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -863,16 +861,16 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.696.0.tgz", - "integrity": "sha512-Lvyj8CTyxrHI6GHd2YVZKIRI5Fmnugt3cpJo0VrKKEgK5zMySwEZ1n4dqPK6czYRWKd5+WnYHYAuU+Wdk6Jsjw==", - "dependencies": { - "@aws-sdk/core": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@aws-sdk/util-endpoints": "3.696.0", - "@smithy/core": "^2.5.3", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.716.0.tgz", + "integrity": "sha512-FpAtT6nNKrYdkDZndutEraiRMf+TgDzAGvniqRtZ/YTPA+gIsWrsn+TwMKINR81lFC3nQfb9deS5CFtxd021Ew==", + "dependencies": { + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@aws-sdk/util-endpoints": "3.714.0", + "@smithy/core": "^2.5.5", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -880,15 +878,15 @@ } }, "node_modules/@aws-sdk/region-config-resolver": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.696.0.tgz", - "integrity": "sha512-7EuH142lBXjI8yH6dVS/CZeiK/WZsmb/8zP6bQbVYpMrppSTgB3MzZZdxVZGzL5r8zPQOU10wLC4kIMy0qdBVQ==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.714.0.tgz", + "integrity": "sha512-HJzsQxgMOAzZrbf/YIqEx30or4tZK1oNAk6Wm6xecUQx+23JXIaePRu1YFUOLBBERQ4QBPpISFurZWBMZ5ibAw==", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/types": "^3.7.1", + "@aws-sdk/types": "3.714.0", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/types": "^3.7.2", "@smithy/util-config-provider": "^3.0.0", - "@smithy/util-middleware": "^3.0.10", + "@smithy/util-middleware": "^3.0.11", "tslib": "^2.6.2" }, "engines": { @@ -896,15 +894,15 @@ } }, "node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.696.0.tgz", - "integrity": "sha512-ijPkoLjXuPtgxAYlDoYls8UaG/VKigROn9ebbvPL/orEY5umedd3iZTcS9T+uAf4Ur3GELLxMQiERZpfDKaz3g==", - "dependencies": { - "@aws-sdk/middleware-sdk-s3": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@smithy/protocol-http": "^4.1.7", - "@smithy/signature-v4": "^4.2.2", - "@smithy/types": "^3.7.1", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.716.0.tgz", + "integrity": "sha512-k0goWotZKKz+kV6Ln0qeAMSeSVi4NipuIIz5R8A0uCF2zBK4CXWdZR7KeaIoLBhJwQnHj1UU7E+2MK74KIUBzA==", + "dependencies": { + "@aws-sdk/middleware-sdk-s3": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/protocol-http": "^4.1.8", + "@smithy/signature-v4": "^4.2.4", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -912,29 +910,29 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.699.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.699.0.tgz", - "integrity": "sha512-kuiEW9DWs7fNos/SM+y58HCPhcIzm1nEZLhe2/7/6+TvAYLuEWURYsbK48gzsxXlaJ2k/jGY3nIsA7RptbMOwA==", - "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/property-provider": "^3.1.9", - "@smithy/shared-ini-file-loader": "^3.1.10", - "@smithy/types": "^3.7.1", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.714.0.tgz", + "integrity": "sha512-vKN064aLE3kl+Zl16Ony3jltHnMddMBT7JRkP1L+lLywhA0PcAKxpdvComul/sTBWnbnwLnaS5NsDUhcWySH8A==", + "dependencies": { + "@aws-sdk/types": "3.714.0", + "@smithy/property-provider": "^3.1.11", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sso-oidc": "^3.699.0" + "@aws-sdk/client-sso-oidc": "^3.714.0" } }, "node_modules/@aws-sdk/types": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.696.0.tgz", - "integrity": "sha512-9rTvUJIAj5d3//U5FDPWGJ1nFJLuWb30vugGOrWk7aNZ6y9tuA3PI7Cc9dP8WEXKVyK1vuuk8rSFP2iqXnlgrw==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.714.0.tgz", + "integrity": "sha512-ZjpP2gYbSFlxxaUDa1Il5AVvfggvUPbjzzB/l3q0gIE5Thd6xKW+yzEpt2mLZ5s5UaYSABZbF94g8NUOF4CVGA==", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -953,13 +951,13 @@ } }, "node_modules/@aws-sdk/util-endpoints": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.696.0.tgz", - "integrity": "sha512-T5s0IlBVX+gkb9g/I6CLt4yAZVzMSiGnbUqWihWsHvQR1WOoIcndQy/Oz/IJXT9T2ipoy7a80gzV6a5mglrioA==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.714.0.tgz", + "integrity": "sha512-Xv+Z2lhe7w7ZZRsgBwBMZgGTVmS+dkkj2S13uNHAx9lhB5ovM8PhK5G/j28xYf6vIibeuHkRAbb7/ozdZIGR+A==", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/types": "^3.7.1", - "@smithy/util-endpoints": "^2.1.6", + "@aws-sdk/types": "3.714.0", + "@smithy/types": "^3.7.2", + "@smithy/util-endpoints": "^2.1.7", "tslib": "^2.6.2" }, "engines": { @@ -978,25 +976,25 @@ } }, "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.696.0.tgz", - "integrity": "sha512-Z5rVNDdmPOe6ELoM5AhF/ja5tSjbe6ctSctDPb0JdDf4dT0v2MfwhJKzXju2RzX8Es/77Glh7MlaXLE0kCB9+Q==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.714.0.tgz", + "integrity": "sha512-OdJJ03cP9/MgIVToPJPCPUImbpZzTcwdIgbXC0tUQPJhbD7b7cB4LdnkhNHko+MptpOrCq4CPY/33EpOjRdofw==", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/types": "^3.7.1", + "@aws-sdk/types": "3.714.0", + "@smithy/types": "^3.7.2", "bowser": "^2.11.0", "tslib": "^2.6.2" } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.696.0.tgz", - "integrity": "sha512-KhKqcfyXIB0SCCt+qsu4eJjsfiOrNzK5dCV7RAW2YIpp+msxGUUX0NdRE9rkzjiv+3EMktgJm3eEIS+yxtlVdQ==", - "dependencies": { - "@aws-sdk/middleware-user-agent": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/types": "^3.7.1", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.716.0.tgz", + "integrity": "sha512-3PqaXmQbxrtHKAsPCdp7kn5FrQktj8j3YyuNsqFZ8rWZeEQ88GWlsvE61PTsr2peYCKzpFqYVddef2x1axHU0w==", + "dependencies": { + "@aws-sdk/middleware-user-agent": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -1012,11 +1010,11 @@ } }, "node_modules/@aws-sdk/xml-builder": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.696.0.tgz", - "integrity": "sha512-dn1mX+EeqivoLYnY7p2qLrir0waPnCgS/0YdRCAVU2x14FgfUYCH6Im3w3oi2dMwhxfKY5lYVB5NKvZu7uI9lQ==", + "version": "3.709.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.709.0.tgz", + "integrity": "sha512-2GPCwlNxeHspoK/Mc8nbk9cBOkSpp3j2SJUQmFnyQK6V/pR6II2oPRyZkMomug1Rc10hqlBHByMecq4zhV2uUw==", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -8870,11 +8868,11 @@ } }, "node_modules/@smithy/abort-controller": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.1.8.tgz", - "integrity": "sha512-+3DOBcUn5/rVjlxGvUPKc416SExarAQ+Qe0bqk30YSUjbepwpS7QN0cyKUSifvLJhdMZ0WPzPP5ymut0oonrpQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.1.9.tgz", + "integrity": "sha512-yiW0WI30zj8ZKoSYNx90no7ugVn3khlyH/z5W8qtKBtVE6awRALbhSG+2SAHA1r6bO/6M9utxYKVZ3PCJ1rWxw==", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -8899,14 +8897,14 @@ } }, "node_modules/@smithy/config-resolver": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.12.tgz", - "integrity": "sha512-YAJP9UJFZRZ8N+UruTeq78zkdjUHmzsY62J4qKWZ4SXB4QXJ/+680EfXXgkYA2xj77ooMqtUY9m406zGNqwivQ==", + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.13.tgz", + "integrity": "sha512-Gr/qwzyPaTL1tZcq8WQyHhTZREER5R1Wytmz4WnVGL4onA3dNk6Btll55c8Vr58pLdvWZmtG8oZxJTw3t3q7Jg==", "dependencies": { - "@smithy/node-config-provider": "^3.1.11", - "@smithy/types": "^3.7.1", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/types": "^3.7.2", "@smithy/util-config-provider": "^3.0.0", - "@smithy/util-middleware": "^3.0.10", + "@smithy/util-middleware": "^3.0.11", "tslib": "^2.6.2" }, "engines": { @@ -8914,16 +8912,16 @@ } }, "node_modules/@smithy/core": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.5.4.tgz", - "integrity": "sha512-iFh2Ymn2sCziBRLPuOOxRPkuCx/2gBdXtBGuCUFLUe6bWYjKnhHyIPqGeNkLZ5Aco/5GjebRTBFiWID3sDbrKw==", + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.5.5.tgz", + "integrity": "sha512-G8G/sDDhXA7o0bOvkc7bgai6POuSld/+XhNnWAbpQTpLv2OZPvyqQ58tLPPlz0bSNsXktldDDREIv1LczFeNEw==", "dependencies": { - "@smithy/middleware-serde": "^3.0.10", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", + "@smithy/middleware-serde": "^3.0.11", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", "@smithy/util-body-length-browser": "^3.0.0", - "@smithy/util-middleware": "^3.0.10", - "@smithy/util-stream": "^3.3.1", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-stream": "^3.3.2", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -8932,14 +8930,14 @@ } }, "node_modules/@smithy/credential-provider-imds": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.7.tgz", - "integrity": "sha512-cEfbau+rrWF8ylkmmVAObOmjbTIzKyUC5TkBL58SbLywD0RCBC4JAUKbmtSm2w5KUJNRPGgpGFMvE2FKnuNlWQ==", - "dependencies": { - "@smithy/node-config-provider": "^3.1.11", - "@smithy/property-provider": "^3.1.10", - "@smithy/types": "^3.7.1", - "@smithy/url-parser": "^3.0.10", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.8.tgz", + "integrity": "sha512-ZCY2yD0BY+K9iMXkkbnjo+08T2h8/34oHd0Jmh6BZUSZwaaGlGCyBT/3wnS7u7Xl33/EEfN4B6nQr3Gx5bYxgw==", + "dependencies": { + "@smithy/node-config-provider": "^3.1.12", + "@smithy/property-provider": "^3.1.11", + "@smithy/types": "^3.7.2", + "@smithy/url-parser": "^3.0.11", "tslib": "^2.6.2" }, "engines": { @@ -8947,23 +8945,23 @@ } }, "node_modules/@smithy/eventstream-codec": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-3.1.9.tgz", - "integrity": "sha512-F574nX0hhlNOjBnP+noLtsPFqXnWh2L0+nZKCwcu7P7J8k+k+rdIDs+RMnrMwrzhUE4mwMgyN0cYnEn0G8yrnQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-3.1.10.tgz", + "integrity": "sha512-323B8YckSbUH0nMIpXn7HZsAVKHYHFUODa8gG9cHo0ySvA1fr5iWaNT+iIL0UCqUzG6QPHA3BSsBtRQou4mMqQ==", "dependencies": { "@aws-crypto/crc32": "5.2.0", - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "@smithy/util-hex-encoding": "^3.0.0", "tslib": "^2.6.2" } }, "node_modules/@smithy/eventstream-serde-browser": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.13.tgz", - "integrity": "sha512-Nee9m+97o9Qj6/XeLz2g2vANS2SZgAxV4rDBMKGHvFJHU/xz88x2RwCkwsvEwYjSX4BV1NG1JXmxEaDUzZTAtw==", + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.14.tgz", + "integrity": "sha512-kbrt0vjOIihW3V7Cqj1SXQvAI5BR8SnyQYsandva0AOR307cXAc+IhPngxIPslxTLfxwDpNu0HzCAq6g42kCPg==", "dependencies": { - "@smithy/eventstream-serde-universal": "^3.0.12", - "@smithy/types": "^3.7.1", + "@smithy/eventstream-serde-universal": "^3.0.13", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -8971,11 +8969,11 @@ } }, "node_modules/@smithy/eventstream-serde-config-resolver": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.10.tgz", - "integrity": "sha512-K1M0x7P7qbBUKB0UWIL5KOcyi6zqV5mPJoL0/o01HPJr0CSq3A9FYuJC6e11EX6hR8QTIR++DBiGrYveOu6trw==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.11.tgz", + "integrity": "sha512-P2pnEp4n75O+QHjyO7cbw/vsw5l93K/8EWyjNCAAybYwUmj3M+hjSQZ9P5TVdUgEG08ueMAP5R4FkuSkElZ5tQ==", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -8983,12 +8981,12 @@ } }, "node_modules/@smithy/eventstream-serde-node": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.12.tgz", - "integrity": "sha512-kiZymxXvZ4tnuYsPSMUHe+MMfc4FTeFWJIc0Q5wygJoUQM4rVHNghvd48y7ppuulNMbuYt95ah71pYc2+o4JOA==", + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.13.tgz", + "integrity": "sha512-zqy/9iwbj8Wysmvi7Lq7XFLeDgjRpTbCfwBhJa8WbrylTAHiAu6oQTwdY7iu2lxigbc9YYr9vPv5SzYny5tCXQ==", "dependencies": { - "@smithy/eventstream-serde-universal": "^3.0.12", - "@smithy/types": "^3.7.1", + "@smithy/eventstream-serde-universal": "^3.0.13", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -8996,12 +8994,12 @@ } }, "node_modules/@smithy/eventstream-serde-universal": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.12.tgz", - "integrity": "sha512-1i8ifhLJrOZ+pEifTlF0EfZzMLUGQggYQ6WmZ4d5g77zEKf7oZ0kvh1yKWHPjofvOwqrkwRDVuxuYC8wVd662A==", + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.13.tgz", + "integrity": "sha512-L1Ib66+gg9uTnqp/18Gz4MDpJPKRE44geOjOQ2SVc0eiaO5l255ADziATZgjQjqumC7yPtp1XnjHlF1srcwjKw==", "dependencies": { - "@smithy/eventstream-codec": "^3.1.9", - "@smithy/types": "^3.7.1", + "@smithy/eventstream-codec": "^3.1.10", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -9009,34 +9007,34 @@ } }, "node_modules/@smithy/fetch-http-handler": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-4.1.1.tgz", - "integrity": "sha512-bH7QW0+JdX0bPBadXt8GwMof/jz0H28I84hU1Uet9ISpzUqXqRQ3fEZJ+ANPOhzSEczYvANNl3uDQDYArSFDtA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-4.1.2.tgz", + "integrity": "sha512-R7rU7Ae3ItU4rC0c5mB2sP5mJNbCfoDc8I5XlYjIZnquyUwec7fEo78F6DA3SmgJgkU1qTMcZJuGblxZsl10ZA==", "dependencies": { - "@smithy/protocol-http": "^4.1.7", - "@smithy/querystring-builder": "^3.0.10", - "@smithy/types": "^3.7.1", + "@smithy/protocol-http": "^4.1.8", + "@smithy/querystring-builder": "^3.0.11", + "@smithy/types": "^3.7.2", "@smithy/util-base64": "^3.0.0", "tslib": "^2.6.2" } }, "node_modules/@smithy/hash-blob-browser": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.9.tgz", - "integrity": "sha512-wOu78omaUuW5DE+PVWXiRKWRZLecARyP3xcq5SmkXUw9+utgN8HnSnBfrjL2B/4ZxgqPjaAJQkC/+JHf1ITVaQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.10.tgz", + "integrity": "sha512-elwslXOoNunmfS0fh55jHggyhccobFkexLYC1ZeZ1xP2BTSrcIBaHV2b4xUQOdctrSNOpMqOZH1r2XzWTEhyfA==", "dependencies": { "@smithy/chunked-blob-reader": "^4.0.0", "@smithy/chunked-blob-reader-native": "^3.0.1", - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" } }, "node_modules/@smithy/hash-node": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-3.0.10.tgz", - "integrity": "sha512-3zWGWCHI+FlJ5WJwx73Mw2llYR8aflVyZN5JhoqLxbdPZi6UyKSdCeXAWJw9ja22m6S6Tzz1KZ+kAaSwvydi0g==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-3.0.11.tgz", + "integrity": "sha512-emP23rwYyZhQBvklqTtwetkQlqbNYirDiEEwXl2v0GYWMnCzxst7ZaRAnWuy28njp5kAH54lvkdG37MblZzaHA==", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "@smithy/util-buffer-from": "^3.0.0", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" @@ -9046,11 +9044,11 @@ } }, "node_modules/@smithy/hash-stream-node": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-3.1.9.tgz", - "integrity": "sha512-3XfHBjSP3oDWxLmlxnt+F+FqXpL3WlXs+XXaB6bV9Wo8BBu87fK1dSEsyH7Z4ZHRmwZ4g9lFMdf08m9hoX1iRA==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-3.1.10.tgz", + "integrity": "sha512-olomK/jZQ93OMayW1zfTHwcbwBdhcZOHsyWyiZ9h9IXvc1mCD/VuvzbLb3Gy/qNJwI4MANPLctTp2BucV2oU/Q==", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -9059,11 +9057,11 @@ } }, "node_modules/@smithy/invalid-dependency": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-3.0.10.tgz", - "integrity": "sha512-Lp2L65vFi+cj0vFMu2obpPW69DU+6O5g3086lmI4XcnRCG8PxvpWC7XyaVwJCxsZFzueHjXnrOH/E0pl0zikfA==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-3.0.11.tgz", + "integrity": "sha512-NuQmVPEJjUX6c+UELyVz8kUx8Q539EDeNwbRyu4IIF8MeV7hUtq1FB3SHVyki2u++5XLMFqngeMKk7ccspnNyQ==", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" } }, @@ -9079,22 +9077,22 @@ } }, "node_modules/@smithy/md5-js": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-3.0.10.tgz", - "integrity": "sha512-m3bv6dApflt3fS2Y1PyWPUtRP7iuBlvikEOGwu0HsCZ0vE7zcIX+dBoh3e+31/rddagw8nj92j0kJg2TfV+SJA==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-3.0.11.tgz", + "integrity": "sha512-3NM0L3i2Zm4bbgG6Ymi9NBcxXhryi3uE8fIfHJZIOfZVxOkGdjdgjR9A06SFIZCfnEIWKXZdm6Yq5/aPXFFhsQ==", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" } }, "node_modules/@smithy/middleware-content-length": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-3.0.12.tgz", - "integrity": "sha512-1mDEXqzM20yywaMDuf5o9ue8OkJ373lSPbaSjyEvkWdqELhFMyNNgKGWL/rCSf4KME8B+HlHKuR8u9kRj8HzEQ==", + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-3.0.13.tgz", + "integrity": "sha512-zfMhzojhFpIX3P5ug7jxTjfUcIPcGjcQYzB9t+rv0g1TX7B0QdwONW+ATouaLoD7h7LOw/ZlXfkq4xJ/g2TrIw==", "dependencies": { - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -9102,17 +9100,17 @@ } }, "node_modules/@smithy/middleware-endpoint": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.2.4.tgz", - "integrity": "sha512-TybiW2LA3kYVd3e+lWhINVu1o26KJbBwOpADnf0L4x/35vLVica77XVR5hvV9+kWeTGeSJ3IHTcYxbRxlbwhsg==", - "dependencies": { - "@smithy/core": "^2.5.4", - "@smithy/middleware-serde": "^3.0.10", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/shared-ini-file-loader": "^3.1.11", - "@smithy/types": "^3.7.1", - "@smithy/url-parser": "^3.0.10", - "@smithy/util-middleware": "^3.0.10", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.2.6.tgz", + "integrity": "sha512-WAqzyulvvSKrT5c6VrQelgNVNNO7BlTQW9Z+s9tcG6G5CaBS1YBpPtT3VuhXLQbewSiGi7oXQROwpw26EG9PLQ==", + "dependencies": { + "@smithy/core": "^2.5.5", + "@smithy/middleware-serde": "^3.0.11", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", + "@smithy/url-parser": "^3.0.11", + "@smithy/util-middleware": "^3.0.11", "tslib": "^2.6.2" }, "engines": { @@ -9120,17 +9118,17 @@ } }, "node_modules/@smithy/middleware-retry": { - "version": "3.0.28", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.28.tgz", - "integrity": "sha512-vK2eDfvIXG1U64FEUhYxoZ1JSj4XFbYWkK36iz02i3pFwWiDz1Q7jKhGTBCwx/7KqJNk4VS7d7cDLXFOvP7M+g==", - "dependencies": { - "@smithy/node-config-provider": "^3.1.11", - "@smithy/protocol-http": "^4.1.7", - "@smithy/service-error-classification": "^3.0.10", - "@smithy/smithy-client": "^3.4.5", - "@smithy/types": "^3.7.1", - "@smithy/util-middleware": "^3.0.10", - "@smithy/util-retry": "^3.0.10", + "version": "3.0.31", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.31.tgz", + "integrity": "sha512-yq9wawrJLYHAYFpChLujxRN4My+SiKXvZk9Ml/CvTdRSA8ew+hvuR5LT+mjSlSBv3c4XJrkN8CWegkBaeD0Vrg==", + "dependencies": { + "@smithy/node-config-provider": "^3.1.12", + "@smithy/protocol-http": "^4.1.8", + "@smithy/service-error-classification": "^3.0.11", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-retry": "^3.0.11", "tslib": "^2.6.2", "uuid": "^9.0.1" }, @@ -9151,11 +9149,11 @@ } }, "node_modules/@smithy/middleware-serde": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-3.0.10.tgz", - "integrity": "sha512-MnAuhh+dD14F428ubSJuRnmRsfOpxSzvRhaGVTvd/lrUDE3kxzCCmH8lnVTvoNQnV2BbJ4c15QwZ3UdQBtFNZA==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-3.0.11.tgz", + "integrity": "sha512-KzPAeySp/fOoQA82TpnwItvX8BBURecpx6ZMu75EZDkAcnPtO6vf7q4aH5QHs/F1s3/snQaSFbbUMcFFZ086Mw==", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -9163,11 +9161,11 @@ } }, "node_modules/@smithy/middleware-stack": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-3.0.10.tgz", - "integrity": "sha512-grCHyoiARDBBGPyw2BeicpjgpsDFWZZxptbVKb3CRd/ZA15F/T6rZjCCuBUjJwdck1nwUuIxYtsS4H9DDpbP5w==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-3.0.11.tgz", + "integrity": "sha512-1HGo9a6/ikgOMrTrWL/WiN9N8GSVYpuRQO5kjstAq4CvV59bjqnh7TbdXGQ4vxLD3xlSjfBjq5t1SOELePsLnA==", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -9175,13 +9173,13 @@ } }, "node_modules/@smithy/node-config-provider": { - "version": "3.1.11", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.11.tgz", - "integrity": "sha512-URq3gT3RpDikh/8MBJUB+QGZzfS7Bm6TQTqoh4CqE8NBuyPkWa5eUXj0XFcFfeZVgg3WMh1u19iaXn8FvvXxZw==", + "version": "3.1.12", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.12.tgz", + "integrity": "sha512-O9LVEu5J/u/FuNlZs+L7Ikn3lz7VB9hb0GtPT9MQeiBmtK8RSY3ULmsZgXhe6VAlgTw0YO+paQx4p8xdbs43vQ==", "dependencies": { - "@smithy/property-provider": "^3.1.10", - "@smithy/shared-ini-file-loader": "^3.1.11", - "@smithy/types": "^3.7.1", + "@smithy/property-provider": "^3.1.11", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -9189,14 +9187,14 @@ } }, "node_modules/@smithy/node-http-handler": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.3.1.tgz", - "integrity": "sha512-fr+UAOMGWh6bn4YSEezBCpJn9Ukp9oR4D32sCjCo7U81evE11YePOQ58ogzyfgmjIO79YeOdfXXqr0jyhPQeMg==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.3.2.tgz", + "integrity": "sha512-t4ng1DAd527vlxvOfKFYEe6/QFBcsj7WpNlWTyjorwXXcKw3XlltBGbyHfSJ24QT84nF+agDha9tNYpzmSRZPA==", "dependencies": { - "@smithy/abort-controller": "^3.1.8", - "@smithy/protocol-http": "^4.1.7", - "@smithy/querystring-builder": "^3.0.10", - "@smithy/types": "^3.7.1", + "@smithy/abort-controller": "^3.1.9", + "@smithy/protocol-http": "^4.1.8", + "@smithy/querystring-builder": "^3.0.11", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -9204,11 +9202,11 @@ } }, "node_modules/@smithy/property-provider": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-3.1.10.tgz", - "integrity": "sha512-n1MJZGTorTH2DvyTVj+3wXnd4CzjJxyXeOgnTlgNVFxaaMeT4OteEp4QrzF8p9ee2yg42nvyVK6R/awLCakjeQ==", + "version": "3.1.11", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-3.1.11.tgz", + "integrity": "sha512-I/+TMc4XTQ3QAjXfOcUWbSS073oOEAxgx4aZy8jHaf8JQnRkq2SZWw8+PfDtBvLUjcGMdxl+YwtzWe6i5uhL/A==", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -9216,11 +9214,11 @@ } }, "node_modules/@smithy/protocol-http": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-4.1.7.tgz", - "integrity": "sha512-FP2LepWD0eJeOTm0SjssPcgqAlDFzOmRXqXmGhfIM52G7Lrox/pcpQf6RP4F21k0+O12zaqQt5fCDOeBtqY6Cg==", + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-4.1.8.tgz", + "integrity": "sha512-hmgIAVyxw1LySOwkgMIUN0kjN8TG9Nc85LJeEmEE/cNEe2rkHDUWhnJf2gxcSRFLWsyqWsrZGw40ROjUogg+Iw==", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -9228,11 +9226,11 @@ } }, "node_modules/@smithy/querystring-builder": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-3.0.10.tgz", - "integrity": "sha512-nT9CQF3EIJtIUepXQuBFb8dxJi3WVZS3XfuDksxSCSn+/CzZowRLdhDn+2acbBv8R6eaJqPupoI/aRFIImNVPQ==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-3.0.11.tgz", + "integrity": "sha512-u+5HV/9uJaeLj5XTb6+IEF/dokWWkEqJ0XiaRRogyREmKGUgZnNecLucADLdauWFKUNbQfulHFEZEdjwEBjXRg==", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "@smithy/util-uri-escape": "^3.0.0", "tslib": "^2.6.2" }, @@ -9241,11 +9239,11 @@ } }, "node_modules/@smithy/querystring-parser": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-3.0.10.tgz", - "integrity": "sha512-Oa0XDcpo9SmjhiDD9ua2UyM3uU01ZTuIrNdZvzwUTykW1PM8o2yJvMh1Do1rY5sUQg4NDV70dMi0JhDx4GyxuQ==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-3.0.11.tgz", + "integrity": "sha512-Je3kFvCsFMnso1ilPwA7GtlbPaTixa3WwC+K21kmMZHsBEOZYQaqxcMqeFFoU7/slFjKDIpiiPydvdJm8Q/MCw==", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -9253,22 +9251,22 @@ } }, "node_modules/@smithy/service-error-classification": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-3.0.10.tgz", - "integrity": "sha512-zHe642KCqDxXLuhs6xmHVgRwy078RfqxP2wRDpIyiF8EmsWXptMwnMwbVa50lw+WOGNrYm9zbaEg0oDe3PTtvQ==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-3.0.11.tgz", + "integrity": "sha512-QnYDPkyewrJzCyaeI2Rmp7pDwbUETe+hU8ADkXmgNusO1bgHBH7ovXJiYmba8t0fNfJx75fE8dlM6SEmZxheog==", "dependencies": { - "@smithy/types": "^3.7.1" + "@smithy/types": "^3.7.2" }, "engines": { "node": ">=16.0.0" } }, "node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.11", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.11.tgz", - "integrity": "sha512-AUdrIZHFtUgmfSN4Gq9nHu3IkHMa1YDcN+s061Nfm+6pQ0mJy85YQDB0tZBCmls0Vuj22pLwDPmL92+Hvfwwlg==", + "version": "3.1.12", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.12.tgz", + "integrity": "sha512-1xKSGI+U9KKdbG2qDvIR9dGrw3CNx+baqJfyr0igKEpjbHL5stsqAesYBzHChYHlelWtb87VnLWlhvfCz13H8Q==", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -9276,15 +9274,15 @@ } }, "node_modules/@smithy/signature-v4": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-4.2.3.tgz", - "integrity": "sha512-pPSQQ2v2vu9vc8iew7sszLd0O09I5TRc5zhY71KA+Ao0xYazIG+uLeHbTJfIWGO3BGVLiXjUr3EEeCcEQLjpWQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-4.2.4.tgz", + "integrity": "sha512-5JWeMQYg81TgU4cG+OexAWdvDTs5JDdbEZx+Qr1iPbvo91QFGzjy0IkXAKaXUHqmKUJgSHK0ZxnCkgZpzkeNTA==", "dependencies": { "@smithy/is-array-buffer": "^3.0.0", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", "@smithy/util-hex-encoding": "^3.0.0", - "@smithy/util-middleware": "^3.0.10", + "@smithy/util-middleware": "^3.0.11", "@smithy/util-uri-escape": "^3.0.0", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" @@ -9294,16 +9292,16 @@ } }, "node_modules/@smithy/smithy-client": { - "version": "3.4.5", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.4.5.tgz", - "integrity": "sha512-k0sybYT9zlP79sIKd1XGm4TmK0AS1nA2bzDHXx7m0nGi3RQ8dxxQUs4CPkSmQTKAo+KF9aINU3KzpGIpV7UoMw==", - "dependencies": { - "@smithy/core": "^2.5.4", - "@smithy/middleware-endpoint": "^3.2.4", - "@smithy/middleware-stack": "^3.0.10", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", - "@smithy/util-stream": "^3.3.1", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.5.1.tgz", + "integrity": "sha512-PmjskH4Os1Eh3rd5vSsa5uVelZ4DRu+N5CBEgb9AT96hQSJGWSEb6pGxKV/PtKQSIp9ft3+KvnT8ViMKaguzgA==", + "dependencies": { + "@smithy/core": "^2.5.5", + "@smithy/middleware-endpoint": "^3.2.6", + "@smithy/middleware-stack": "^3.0.11", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", + "@smithy/util-stream": "^3.3.2", "tslib": "^2.6.2" }, "engines": { @@ -9311,9 +9309,9 @@ } }, "node_modules/@smithy/types": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.7.1.tgz", - "integrity": "sha512-XKLcLXZY7sUQgvvWyeaL/qwNPp6V3dWcUjqrQKjSb+tzYiCy340R/c64LV5j+Tnb2GhmunEX0eou+L+m2hJNYA==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.7.2.tgz", + "integrity": "sha512-bNwBYYmN8Eh9RyjS1p2gW6MIhSO2rl7X9QeLM8iTdcGRP+eDiIWDt66c9IysCc22gefKszZv+ubV9qZc7hdESg==", "dependencies": { "tslib": "^2.6.2" }, @@ -9322,12 +9320,12 @@ } }, "node_modules/@smithy/url-parser": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-3.0.10.tgz", - "integrity": "sha512-j90NUalTSBR2NaZTuruEgavSdh8MLirf58LoGSk4AtQfyIymogIhgnGUU2Mga2bkMkpSoC9gxb74xBXL5afKAQ==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-3.0.11.tgz", + "integrity": "sha512-TmlqXkSk8ZPhfc+SQutjmFr5FjC0av3GZP4B/10caK1SbRwe/v+Wzu/R6xEKxoNqL+8nY18s1byiy6HqPG37Aw==", "dependencies": { - "@smithy/querystring-parser": "^3.0.10", - "@smithy/types": "^3.7.1", + "@smithy/querystring-parser": "^3.0.11", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" } }, @@ -9387,13 +9385,13 @@ } }, "node_modules/@smithy/util-defaults-mode-browser": { - "version": "3.0.28", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.28.tgz", - "integrity": "sha512-6bzwAbZpHRFVJsOztmov5PGDmJYsbNSoIEfHSJJyFLzfBGCCChiO3od9k7E/TLgrCsIifdAbB9nqbVbyE7wRUw==", + "version": "3.0.31", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.31.tgz", + "integrity": "sha512-eO+zkbqrPnmsagqzrmF7IJrCoU2wTQXWVYxMPqA9Oue55kw9WEvhyuw2XQzTVTCRcYsg6KgmV3YYhLlWQJfK1A==", "dependencies": { - "@smithy/property-provider": "^3.1.10", - "@smithy/smithy-client": "^3.4.5", - "@smithy/types": "^3.7.1", + "@smithy/property-provider": "^3.1.11", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", "bowser": "^2.11.0", "tslib": "^2.6.2" }, @@ -9402,16 +9400,16 @@ } }, "node_modules/@smithy/util-defaults-mode-node": { - "version": "3.0.28", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.28.tgz", - "integrity": "sha512-78ENJDorV1CjOQselGmm3+z7Yqjj5HWCbjzh0Ixuq736dh1oEnD9sAttSBNSLlpZsX8VQnmERqA2fEFlmqWn8w==", - "dependencies": { - "@smithy/config-resolver": "^3.0.12", - "@smithy/credential-provider-imds": "^3.2.7", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/property-provider": "^3.1.10", - "@smithy/smithy-client": "^3.4.5", - "@smithy/types": "^3.7.1", + "version": "3.0.31", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.31.tgz", + "integrity": "sha512-0/nJfpSpbGZOs6qs42wCe2TdjobbnnD4a3YUUlvTXSQqLy4qa63luDaV04hGvqSHP7wQ7/WGehbvHkDhMZd1MQ==", + "dependencies": { + "@smithy/config-resolver": "^3.0.13", + "@smithy/credential-provider-imds": "^3.2.8", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/property-provider": "^3.1.11", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -9419,12 +9417,12 @@ } }, "node_modules/@smithy/util-endpoints": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.1.6.tgz", - "integrity": "sha512-mFV1t3ndBh0yZOJgWxO9J/4cHZVn5UG1D8DeCc6/echfNkeEJWu9LD7mgGH5fHrEdR7LDoWw7PQO6QiGpHXhgA==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.1.7.tgz", + "integrity": "sha512-tSfcqKcN/Oo2STEYCABVuKgJ76nyyr6skGl9t15hs+YaiU06sgMkN7QYjo0BbVw+KT26zok3IzbdSOksQ4YzVw==", "dependencies": { - "@smithy/node-config-provider": "^3.1.11", - "@smithy/types": "^3.7.1", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -9443,11 +9441,11 @@ } }, "node_modules/@smithy/util-middleware": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-3.0.10.tgz", - "integrity": "sha512-eJO+/+RsrG2RpmY68jZdwQtnfsxjmPxzMlQpnHKjFPwrYqvlcT+fHdT+ZVwcjlWSrByOhGr9Ff2GG17efc192A==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-3.0.11.tgz", + "integrity": "sha512-dWpyc1e1R6VoXrwLoLDd57U1z6CwNSdkM69Ie4+6uYh2GC7Vg51Qtan7ITzczuVpqezdDTKJGJB95fFvvjU/ow==", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -9455,12 +9453,12 @@ } }, "node_modules/@smithy/util-retry": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-3.0.10.tgz", - "integrity": "sha512-1l4qatFp4PiU6j7UsbasUHL2VU023NRB/gfaa1M0rDqVrRN4g3mCArLRyH3OuktApA4ye+yjWQHjdziunw2eWA==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-3.0.11.tgz", + "integrity": "sha512-hJUC6W7A3DQgaee3Hp9ZFcOxVDZzmBIRBPlUAk8/fSOEl7pE/aX7Dci0JycNOnm9Mfr0KV2XjIlUOcGWXQUdVQ==", "dependencies": { - "@smithy/service-error-classification": "^3.0.10", - "@smithy/types": "^3.7.1", + "@smithy/service-error-classification": "^3.0.11", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -9468,13 +9466,13 @@ } }, "node_modules/@smithy/util-stream": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.3.1.tgz", - "integrity": "sha512-Ff68R5lJh2zj+AUTvbAU/4yx+6QPRzg7+pI7M1FbtQHcRIp7xvguxVsQBKyB3fwiOwhAKu0lnNyYBaQfSW6TNw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.3.2.tgz", + "integrity": "sha512-sInAqdiVeisUGYAv/FrXpmJ0b4WTFmciTRqzhb7wVuem9BHvhIG7tpiYHLDWrl2stOokNZpTTGqz3mzB2qFwXg==", "dependencies": { - "@smithy/fetch-http-handler": "^4.1.1", - "@smithy/node-http-handler": "^3.3.1", - "@smithy/types": "^3.7.1", + "@smithy/fetch-http-handler": "^4.1.2", + "@smithy/node-http-handler": "^3.3.2", + "@smithy/types": "^3.7.2", "@smithy/util-base64": "^3.0.0", "@smithy/util-buffer-from": "^3.0.0", "@smithy/util-hex-encoding": "^3.0.0", @@ -9509,12 +9507,12 @@ } }, "node_modules/@smithy/util-waiter": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-3.1.9.tgz", - "integrity": "sha512-/aMXPANhMOlMPjfPtSrDfPeVP8l56SJlz93xeiLmhLe5xvlXA5T3abZ2ilEsDEPeY9T/wnN/vNGn9wa1SbufWA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-3.2.0.tgz", + "integrity": "sha512-PpjSboaDUE6yl+1qlg3Si57++e84oXdWGbuFUSAciXsVfEZJJJupR2Nb0QuXHiunt2vGR+1PTizOMvnUPaG2Qg==", "dependencies": { - "@smithy/abort-controller": "^3.1.8", - "@smithy/types": "^3.7.1", + "@smithy/abort-controller": "^3.1.9", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { diff --git a/package.json b/package.json index 94db4accca9..c5a22298671 100644 --- a/package.json +++ b/package.json @@ -70,8 +70,8 @@ "npm": "10.1.0" }, "dependencies": { - "@aws-sdk/client-s3": "^3.705.0", - "@aws-sdk/lib-storage": "^3.705.0", + "@aws-sdk/client-s3": "^3.716.0", + "@aws-sdk/lib-storage": "^3.716.0", "@fluent/bundle": "^0.18.0", "@fluent/langneg": "^0.7.0", "@fluent/react": "^0.15.2",