From 57df541070b5fc5bc9130a94e83660ad15485ae3 Mon Sep 17 00:00:00 2001 From: Joey Zhou Date: Tue, 5 Dec 2023 10:27:50 -0800 Subject: [PATCH 01/11] chore: delete old scripts --- src/scripts/convertBreachResolutions.js | 122 ----------- .../kube-jobs/convertBreachResolutions.js | 197 ------------------ src/scripts/kube-jobs/recencyToBreachId.js | 181 ---------------- src/scripts/migrationCleanup.js | 108 ---------- .../prod-experiments/benchmarkNoUpsert.js | 132 ------------ .../prod-experiments/benchmarkWithUpsert.js | 165 --------------- .../prod-experiments/pullExperiment100.js | 50 ----- .../prod-experiments/pullExperiment1000.js | 53 ----- 8 files changed, 1008 deletions(-) delete mode 100644 src/scripts/convertBreachResolutions.js delete mode 100644 src/scripts/kube-jobs/convertBreachResolutions.js delete mode 100644 src/scripts/kube-jobs/recencyToBreachId.js delete mode 100644 src/scripts/migrationCleanup.js delete mode 100644 src/scripts/prod-experiments/benchmarkNoUpsert.js delete mode 100644 src/scripts/prod-experiments/benchmarkWithUpsert.js delete mode 100644 src/scripts/prod-experiments/pullExperiment100.js delete mode 100644 src/scripts/prod-experiments/pullExperiment1000.js diff --git a/src/scripts/convertBreachResolutions.js b/src/scripts/convertBreachResolutions.js deleted file mode 100644 index 355332b62..000000000 --- a/src/scripts/convertBreachResolutions.js +++ /dev/null @@ -1,122 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -/** - * Executes once - * The purpose of the script is to convert all `subscriber.breaches_resolved` to `subscriber.breaches_resolution` - * with the goal of deprecating the column - */ - -import createDbConnection from "../db/connect.js"; -import { getAllBreachesFromDb } from "../utils/hibp.js"; -import { getAllEmailsAndBreaches } from "../utils/breaches.js"; -import { setBreachResolution } from "../db/tables/subscribers.js"; -import { BreachDataTypes } from "../utils/breach-resolution.js"; - -const knex = createDbConnection(); - -const LIMIT = 50; // with millions of records, we have to load a few at a time -let offset = 0; // looping through all records with offset -let subscribersArr = []; - -// load all breaches for ref -const allBreaches = await getAllBreachesFromDb(); -if (allBreaches && allBreaches.length > 0) - console.log("breaches loaded successfully! ", allBreaches.length); - -// find all subscribers who resolved any breaches in the past, convert those -// records into the new v2 format -do { - console.log( - `Converting breaches_resolved to breach_resolution - start: ${offset} limit: ${LIMIT}`, - ); - subscribersArr = await knex - .select("id", "primary_email", "breaches_resolved", "breach_resolution") - .from("subscribers") - .whereNotNull("breaches_resolved") - .limit(LIMIT) - .offset(offset); - - console.log(`Loaded # of subscribers: ${subscribersArr.length}`); - - for (const subscriber of subscribersArr) { - let { breaches_resolved: v1, breach_resolution: v2 } = subscriber; - console.debug({ v1 }); - console.debug({ v2 }); - - let isV2Changed = false; // use a boolean to track if v2 has been changed, only upsert if so - - // fetch subscriber all breaches / email - const subscriberBreachesEmail = await getAllEmailsAndBreaches( - subscriber, - allBreaches, - ); - console.debug(JSON.stringify(subscriberBreachesEmail.verifiedEmails)); - - for (const [email, resolvedRecencyIndices] of Object.entries(v1)) { - console.debug({ email }); - console.debug({ resolvedRecencyIndices }); - for (const recencyIndex of resolvedRecencyIndices) { - console.debug({ recencyIndex }); - // find subscriber's relevant recency index breach information - const ve = - subscriberBreachesEmail.verifiedEmails?.filter( - (ve) => ve.email === email, - )[0] || {}; - const subBreach = - ve.breaches?.filter( - (b) => Number(b.recencyIndex) === Number(recencyIndex), - )[0] || null; - console.debug({ subBreach }); - - if (!subBreach || !subBreach.DataClasses) { - console.warn( - `SKIP: Cannot find subscribers breach and data types - recency: ${recencyIndex} email: ${email}`, - ); - continue; - } - - // if email does not exist in v2, we need to add it to the object - // format: {email: { recencyIndex: { isResolved: true, resolutionsChecked: [DataTypes]}}} - if (!v2) v2 = {}; - if (!v2[email]) { - v2[email] = { - [recencyIndex]: { - isResolved: true, - resolutionsChecked: subBreach?.DataClasses || [ - BreachDataTypes.General, - ], - }, - }; - - isV2Changed = true; - } - if (v2[email][recencyIndex]?.isResolved) { - console.log( - `recencyIndex ${recencyIndex} exists in v2 and is resolved, no changes`, - ); - } else { - console.log( - `recencyIndex ${recencyIndex} either does not exist or is not resolved, overwriting`, - ); - v2[email][recencyIndex] = { - isResolved: true, - resolutionsChecked: subBreach?.DataClasses, - }; - isV2Changed = true; - } - } - } - - // check if v2 is changed, if so, upsert the new v2 - if (isV2Changed) { - await setBreachResolution(subscriber, v2); - } - } - offset += LIMIT; -} while (subscribersArr.length === LIMIT); - -// breaking out of do..while loop -console.log("Reaching the end of the table, offset ended at", offset); -process.exit(); diff --git a/src/scripts/kube-jobs/convertBreachResolutions.js b/src/scripts/kube-jobs/convertBreachResolutions.js deleted file mode 100644 index becaf46de..000000000 --- a/src/scripts/kube-jobs/convertBreachResolutions.js +++ /dev/null @@ -1,197 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -/** - * Executes once - * The purpose of the script is to convert all `subscriber.breaches_resolved` to `subscriber.breaches_resolution` - * with the goal of deprecating the column - */ - -import createDbConnection from "../../db/connect.js"; -import { getAllBreachesFromDb } from "../../utils/hibp.js"; -import { getAllEmailsAndBreaches } from "../../utils/breaches.js"; -import { BreachDataTypes } from "../../utils/breach-resolution.js"; - -const knex = createDbConnection(); - -const LIMIT = 1000; // with millions of records, we have to load a few at a time -let subscribersArr = []; - -/** - * Batch update - * - * @param {*} updateCollection - */ -const batchUpdate = async (updateCollection) => { - const trx = await knex.transaction(); - try { - await Promise.all( - updateCollection.map((tuple) => { - const { user, updatedBreachesResolution } = tuple; - return knex("subscribers") - .where("id", user.id) - .update({ - breach_resolution: updatedBreachesResolution, - }) - .transacting(trx); - }), - ); - await trx.commit(); - } catch (error) { - await trx.rollback(); - console.error("batch update failed!!"); - console.log({ updateCollection }); - console.error(error); - } -}; - -const selectAndLockResolutions = async () => { - const trx = await knex.transaction(); - let subscribersArr = []; - try { - subscribersArr = await knex - .select("id", "primary_email", "breaches_resolved", "breach_resolution") - .from("subscribers") - .whereNotNull("breaches_resolved") - .whereNull("db_migration_1") - .limit(LIMIT) - .orderBy("updated_at", "desc") - .transacting(trx) - .forUpdate(); - - // update the lock - await Promise.all( - subscribersArr.map((sub) => { - const { id } = sub; - return knex("subscribers") - .where("id", id) - .update({ - db_migration_1: true, - }) - .transacting(trx); - }), - ); - - await trx.commit(); - } catch (error) { - await trx.rollback(); - console.log("select & mark rows failed!! first row:"); - console.log({ first: subscribersArr[0] }); - console.error(error); - } - - return subscribersArr; -}; - -const startTime = Date.now(); -console.log(`Start time is: ${startTime}`); - -// load all breaches for ref -const allBreaches = await getAllBreachesFromDb(); -if (allBreaches && allBreaches.length > 0) - console.log("breaches loaded successfully! ", allBreaches.length); - -// find all subscribers who resolved any breaches in the past, convert those -// records into the new v2 format -let failedToSelect = true; -while (failedToSelect) { - try { - subscribersArr = await selectAndLockResolutions(); - failedToSelect = false; - } catch (e) { - failedToSelect = true; - console.error(e); - } -} - -console.log(`Loaded # of subscribers: ${subscribersArr.length}`); -const updateCollection = []; - -for (const subscriber of subscribersArr) { - let { breaches_resolved: v1, breach_resolution: v2 } = subscriber; - let isV2Changed = false; // use a boolean to track if v2 has been changed, only upsert if so - - // fetch subscriber all breaches / email - let subscriberBreachesEmail; - try { - subscriberBreachesEmail = await getAllEmailsAndBreaches( - subscriber, - allBreaches, - ); - } catch (e) { - console.error("Cannot fetch subscriber breaches at the moment: ", e); - continue; - } - // console.debug(JSON.stringify(subscriberBreachesEmail.verifiedEmails)) - - for (const [email, resolvedRecencyIndices] of Object.entries(v1)) { - // console.debug({ email }) - // console.debug({ resolvedRecencyIndices }) - for (const recencyIndex of resolvedRecencyIndices) { - // console.debug({ recencyIndex }) - // find subscriber's relevant recency index breach information - const ve = - subscriberBreachesEmail.verifiedEmails?.filter( - (e) => e.email === email, - )[0] || {}; - // console.debug({ ve }) - const subBreach = - ve.breaches?.filter( - (b) => Number(b.recencyIndex) === Number(recencyIndex), - )[0] || null; - // console.debug({ subBreach }) - - if (!subBreach || !subBreach.DataClasses) { - console.warn( - `SKIP: Cannot find subscribers breach and data types - recency: ${recencyIndex} email: ${email}`, - ); - continue; - } - - // if email does not exist in v2, we need to add it to the object - // format: {email: { recencyIndex: { isResolved: true, resolutionsChecked: [DataTypes]}}} - if (!v2) v2 = {}; - if (!v2[email]) { - v2[email] = { - [recencyIndex]: { - isResolved: true, - resolutionsChecked: subBreach?.DataClasses || [ - BreachDataTypes.General, - ], - }, - }; - - isV2Changed = true; - } - if (v2[email][recencyIndex]?.isResolved) { - console.log( - `recencyIndex ${recencyIndex} exists in v2 and is resolved, no changes`, - ); - } else { - console.log( - `recencyIndex ${recencyIndex} either does not exist or is not resolved, overwriting`, - ); - v2[email][recencyIndex] = { - isResolved: true, - resolutionsChecked: subBreach?.DataClasses, - }; - isV2Changed = true; - } - } - } - - // check if v2 is changed, if so, upsert the new v2 - if (isV2Changed) { - console.log("upsert for subscriber: ", subscriber.primary_email); - updateCollection.push({ user: subscriber, updatedBreachesResolution: v2 }); - } -} -await batchUpdate(updateCollection); - -// breaking out of do..while loop -console.log("Script finished"); -const endTime = Date.now(); -console.log(`End time is: ${endTime}`); -console.log("Diff is: ", endTime - startTime); -process.exit(); diff --git a/src/scripts/kube-jobs/recencyToBreachId.js b/src/scripts/kube-jobs/recencyToBreachId.js deleted file mode 100644 index 585dd2423..000000000 --- a/src/scripts/kube-jobs/recencyToBreachId.js +++ /dev/null @@ -1,181 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -/** - * Executes once - * Execute after `deprecateBreachResolve.js` - * The purpose of the script is to convert all recency indices to breach ids for `breach_resolution` - * For backwards compatibility, all converted `breach_resolution` fields will have a boolean - * `useBreachId: true/false` - */ - -import createDbConnection from "../../db/connect.js"; -import { getAllBreachesFromDb } from "../../utils/hibp.js"; -import { getAllEmailsAndBreaches } from "../../utils/breaches.js"; - -const knex = createDbConnection(); - -const LIMIT = 1000; // with millions of records, we have to load a few at a time -let subscribersArr = []; - -const selectAndLockResolutions = async () => { - const trx = await knex.transaction(); - let subscribers = []; - try { - subscribers = await knex - .select("id", "primary_email", "breach_resolution") - .from("subscribers") - .whereNotNull("breach_resolution") - .whereNull("db_migration_2") - .limit(LIMIT) - .orderBy("updated_at", "desc") - .transacting(trx) - .forUpdate(); - - // update the lock - await Promise.all( - subscribers.map((sub) => { - const { id } = sub; - return knex("subscribers") - .where("id", id) - .update({ - db_migration_2: true, - }) - .transacting(trx); - }), - ); - - await trx.commit(); - } catch (error) { - await trx.rollback(); - console.error("select & mark rows failed!! first row:"); - console.log({ first: subscribers[0] }); - console.error(error); - } - - return subscribers; -}; - -/** - * Batch update - * - * @param {*} updateCollection - */ -const batchUpdate = async (updateCollection) => { - const trx = await knex.transaction(); - try { - await Promise.all( - updateCollection.map((tuple) => { - const { user, updatedBreachesResolution } = tuple; - return knex("subscribers") - .where("id", user.id) - .update({ - breach_resolution: updatedBreachesResolution, - }) - .transacting(trx); - }), - ); - await trx.commit(); - } catch (error) { - await trx.rollback(); - console.error("batch update failed!!"); - console.log({ updateCollection }); - console.error(error); - } -}; - -// Script begins here -const startTime = Date.now(); -console.log(`Start time is: ${startTime}`); - -// load all breaches for ref -const allBreaches = await getAllBreachesFromDb(); -if (allBreaches && allBreaches.length > 0) - console.log("breaches loaded successfully! ", allBreaches.length); - -// find all subscribers who resolved any breaches in the past, -// replace recency index with breach id - -let failedToSelect = true; -while (failedToSelect) { - try { - subscribersArr = await selectAndLockResolutions(); - failedToSelect = false; - } catch (e) { - console.error(e); - } -} - -console.log(`Loaded # of subscribers: ${subscribersArr.length}`); -const updateCollection = []; - -for (const subscriber of subscribersArr) { - const { breach_resolution: v2 } = subscriber; - // console.debug({ v2 }) - - // if useBreachId is set, skip because this breach_resolution has already been worked on - if (v2.useBreachId) { - console.log( - "Skipping since `useBreachId` is set already, this breach resolution is already converted", - ); - continue; - } - - const newResolutions = {}; - - // fetch subscriber all breaches / email - let subscriberBreachesEmail; - try { - subscriberBreachesEmail = await getAllEmailsAndBreaches( - subscriber, - allBreaches, - ); - } catch (e) { - console.error("Cannot fetch subscriber breaches at the moment: ", e); - continue; - } - // console.debug(JSON.stringify(subscriberBreachesEmail.verifiedEmails)) - - for (const email in v2) { - // console.debug({ email }) - const resolutions = v2[email]; - // console.debug({ resolutions }) - newResolutions[email] = {}; - - for (const recencyIndex in resolutions) { - // console.debug({ recencyIndex }) - - // find subscriber's relevant recency index breach information - const ve = - subscriberBreachesEmail.verifiedEmails?.filter( - (ve) => ve.email === email, - )[0] || {}; - const subBreach = - ve.breaches?.filter( - (b) => Number(b.recencyIndex) === Number(recencyIndex), - )[0] || null; - const breachName = subBreach?.Name; - console.debug({ breachName }); - - // find breach id for the breach - const breachId = allBreaches.find((b) => b.Name === breachName)?.Id; - newResolutions[email][breachId] = v2[email][recencyIndex]; - } - } - - // check if v2 is changed, if so, upsert the new v2 - newResolutions.useBreachId = true; - updateCollection.push({ - user: subscriber, - updatedBreachesResolution: newResolutions, - }); -} - -await batchUpdate(updateCollection); - -console.log("Reaching the end of the table"); -const endTime = Date.now(); -console.log(`End time is: ${endTime}`); -console.log("Diff is: ", endTime - startTime); -process.exit(); diff --git a/src/scripts/migrationCleanup.js b/src/scripts/migrationCleanup.js deleted file mode 100644 index 23bff6824..000000000 --- a/src/scripts/migrationCleanup.js +++ /dev/null @@ -1,108 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -/** - * Executes once - * The purpose of the script is to clean up some of the failed records during db migration on 3/28/23 - */ - -import createDbConnection from "../db/connect.js"; -import { getAllBreachesFromDb } from "../utils/hibp.js"; -import { getAllEmailsAndBreaches } from "../utils/breaches.js"; -import { setBreachResolution } from "../db/tables/subscribers.js"; -import mozlog from "../utils/log.js"; -const log = mozlog("script.migrationCleanup"); - -const knex = createDbConnection(); - -const LIMIT = 3000; -let subscribersArr = []; -// load all breaches for ref -const allBreaches = await getAllBreachesFromDb(); -if (allBreaches && allBreaches.length > 0) - log.info( - "breach_count", - "breaches loaded successfully! ", - allBreaches.length, - ); - -const count = await knex - .from("subscribers") - .whereRaw("NOT ((breach_resolution)::jsonb \\? 'useBreachId')") - .count("*"); - -log.info("total_to_be_executed", count[0]); - -// find all subscribers who resolved any breaches in the past, -// replace recency index with breach id - -for (let i = 0; i < 10; i++) { - subscribersArr = await knex - .select("id", "primary_email", "breach_resolution") - .from("subscribers") - .orderBy("updated_at", "desc") - .whereRaw("NOT ((breach_resolution)::jsonb \\? 'useBreachId')") - .limit(LIMIT); - - log.info("job", `Loaded # of subscribers: ${subscribersArr.length}`); - - for (const subscriber of subscribersArr) { - const { breach_resolution: v2 } = subscriber; - // console.debug({ v2 }) - - // if useBreachId is set, skip because this breach_resolution has already been worked on - if (v2.useBreachId) { - log.warn( - "job", - "Skipping since `useBreachId` is set already, this breach resolution is already converted", - ); - continue; - } - - const newResolutions = {}; - - // fetch subscriber all breaches / email - const subscriberBreachesEmail = await getAllEmailsAndBreaches( - subscriber, - allBreaches, - ); - // console.debug(JSON.stringify(subscriberBreachesEmail.verifiedEmails)) - - for (const email in v2) { - // console.debug({ email }) - const resolutions = v2[email]; - // console.debug({ resolutions }) - newResolutions[email] = {}; - - for (const recencyIndex in resolutions) { - console.debug({ recencyIndex }); - - // find subscriber's relevant recency index breach information - const ve = - subscriberBreachesEmail.verifiedEmails?.filter( - (ve) => ve.email === email, - )[0] || {}; - const subBreach = - ve.breaches?.filter( - (b) => Number(b.recencyIndex) === Number(recencyIndex), - )[0] || null; - const breachName = subBreach?.Name; - console.debug({ breachName }); - - // find breach id for the breach - const breachId = allBreaches.find((b) => b.Name === breachName)?.Id; - log.info("job", { breachId }); - newResolutions[email][breachId] = v2[email][recencyIndex]; - } - } - - // check if v2 is changed, if so, upsert the new v2 - newResolutions.useBreachId = true; - await setBreachResolution(subscriber, newResolutions); - } -} - -// breaking out of do..while loop -log.info("job", "Reaching the end of the table"); -process.exit(); diff --git a/src/scripts/prod-experiments/benchmarkNoUpsert.js b/src/scripts/prod-experiments/benchmarkNoUpsert.js deleted file mode 100644 index ef9243b10..000000000 --- a/src/scripts/prod-experiments/benchmarkNoUpsert.js +++ /dev/null @@ -1,132 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -/** - * Executes once - * The purpose of the script is to convert all `subscriber.breaches_resolved` to `subscriber.breaches_resolution` - * with the goal of deprecating the column - */ - -import createDbConnection from "../../db/connect.js"; -import { getAllBreachesFromDb } from "../../utils/hibp.js"; -import { getAllEmailsAndBreaches } from "../../utils/breaches.js"; -import { BreachDataTypes } from "../../utils/breach-resolution.js"; - -const knex = createDbConnection(); - -const LIMIT = 1000; // with millions of records, we have to load a few at a time -let offset = 0; // looping through all records with offset -let subscribersArr = []; - -let CAP = 5000; // cap the experiment -if (process.argv.length > 2) { - CAP = process.argv[2]; - console.log("using cap passed in: ", CAP); -} - -const startTime = Date.now(); -console.log(`Start time is: ${startTime}`); - -// load all breaches for ref -const allBreaches = await getAllBreachesFromDb(); -if (allBreaches && allBreaches.length > 0) - console.log("breaches loaded successfully! ", allBreaches.length); - -// find all subscribers who resolved any breaches in the past, convert those -// records into the new v2 format -do { - console.log( - `Converting breaches_resolved to breach_resolution - start: ${offset} limit: ${LIMIT}`, - ); - subscribersArr = await knex - .select("id", "primary_email", "breaches_resolved", "breach_resolution") - .from("subscribers") - .whereNotNull("breaches_resolved") - .limit(LIMIT) - .offset(offset) - .orderBy("updated_at", "desc"); - - console.log(`Loaded # of subscribers: ${subscribersArr.length}`); - - for (const subscriber of subscribersArr) { - let { breaches_resolved: v1, breach_resolution: v2 } = subscriber; - let isV2Changed = false; // use a boolean to track if v2 has been changed, only upsert if so - - // fetch subscriber all breaches / email - const subscriberBreachesEmail = await getAllEmailsAndBreaches( - subscriber, - allBreaches, - ); - // console.debug(JSON.stringify(subscriberBreachesEmail.verifiedEmails)) - - for (const [email, resolvedRecencyIndices] of Object.entries(v1)) { - // console.debug({ email }) - // console.debug({ resolvedRecencyIndices }) - for (const recencyIndex of resolvedRecencyIndices) { - // console.debug({ recencyIndex }) - // find subscriber's relevant recency index breach information - const ve = - subscriberBreachesEmail.verifiedEmails?.filter( - (e) => e.email === email, - )[0] || {}; - // console.debug({ ve }) - const subBreach = - ve.breaches?.filter( - (b) => Number(b.recencyIndex) === Number(recencyIndex), - )[0] || null; - // console.debug({ subBreach }) - - if (!subBreach || !subBreach.DataClasses) { - console.warn( - `SKIP: Cannot find subscribers breach and data types - recency: ${recencyIndex} email: ${email}`, - ); - continue; - } - - // if email does not exist in v2, we need to add it to the object - // format: {email: { recencyIndex: { isResolved: true, resolutionsChecked: [DataTypes]}}} - if (!v2) v2 = {}; - if (!v2[email]) { - v2[email] = { - [recencyIndex]: { - isResolved: true, - resolutionsChecked: subBreach?.DataClasses || [ - BreachDataTypes.General, - ], - }, - }; - - isV2Changed = true; - } - if (v2[email][recencyIndex]?.isResolved) { - console.log( - `recencyIndex ${recencyIndex} exists in v2 and is resolved, no changes`, - ); - } else { - console.log( - `recencyIndex ${recencyIndex} either does not exist or is not resolved, overwriting`, - ); - v2[email][recencyIndex] = { - isResolved: true, - resolutionsChecked: subBreach?.DataClasses, - }; - isV2Changed = true; - } - } - } - - // check if v2 is changed, if so, upsert the new v2 - if (isV2Changed) { - console.log("upsert for subscriber: ", subscriber.primary_email); - } - } - offset += LIMIT; -} while (subscribersArr.length === LIMIT && offset <= CAP); - -// breaking out of do..while loop -console.log("Reaching the end of the table, offset ended at", offset); -const endTime = Date.now(); -console.log(`End time is: ${endTime}`); -console.log("Diff is: ", endTime - startTime); -process.exit(); diff --git a/src/scripts/prod-experiments/benchmarkWithUpsert.js b/src/scripts/prod-experiments/benchmarkWithUpsert.js deleted file mode 100644 index 03a14c5d1..000000000 --- a/src/scripts/prod-experiments/benchmarkWithUpsert.js +++ /dev/null @@ -1,165 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -/** - * Executes once - * The purpose of the script is to convert all `subscriber.breaches_resolved` to `subscriber.breaches_resolution` - * with the goal of deprecating the column - */ - -import createDbConnection from "../../db/connect.js"; -import { getAllBreachesFromDb } from "../../utils/hibp.js"; -import { getAllEmailsAndBreaches } from "../../utils/breaches.js"; -import { BreachDataTypes } from "../../utils/breach-resolution.js"; - -const knex = createDbConnection(); - -const LIMIT = 1000; // with millions of records, we have to load a few at a time -let CAP = 5000; // cap the experiment -if (process.argv.length > 2) { - CAP = process.argv[2]; - console.log("using cap passed in: ", CAP); -} -let offset = 0; // looping through all records with offset -let subscribersArr = []; - -/** - * Batch update - * - * @param {*} updateCollection - */ -const batchUpdate = async (updateCollection) => { - const trx = await knex.transaction(); - try { - await Promise.all( - updateCollection.map((tuple) => { - const { user, updatedBreachesResolution } = tuple; - return knex("subscribers") - .where("id", user.id) - .update({ - breach_resolution: updatedBreachesResolution, - }) - .transacting(trx); - }), - ); - await trx.commit(); - } catch (error) { - await trx.rollback(); - console.error("batch update failed!!"); - console.log({ updateCollection }); - console.error(error); - } -}; - -const startTime = Date.now(); -console.log(`Start time is: ${startTime}`); - -// load all breaches for ref -const allBreaches = await getAllBreachesFromDb(); -if (allBreaches && allBreaches.length > 0) - console.log("breaches loaded successfully! ", allBreaches.length); - -// find all subscribers who resolved any breaches in the past, convert those -// records into the new v2 format -do { - console.log( - `Converting breaches_resolved to breach_resolution - start: ${offset} limit: ${LIMIT}`, - ); - subscribersArr = await knex - .select("id", "primary_email", "breaches_resolved", "breach_resolution") - .from("subscribers") - .whereNotNull("breaches_resolved") - .limit(LIMIT) - .offset(offset) - .orderBy("updated_at", "desc"); - - console.log(`Loaded # of subscribers: ${subscribersArr.length}`); - const updateCollection = []; - - for (const subscriber of subscribersArr) { - let { breaches_resolved: v1, breach_resolution: v2 } = subscriber; - let isV2Changed = false; // use a boolean to track if v2 has been changed, only upsert if so - - // fetch subscriber all breaches / email - const subscriberBreachesEmail = await getAllEmailsAndBreaches( - subscriber, - allBreaches, - ); - // console.debug(JSON.stringify(subscriberBreachesEmail.verifiedEmails)) - - for (const [email, resolvedRecencyIndices] of Object.entries(v1)) { - // console.debug({ email }) - // console.debug({ resolvedRecencyIndices }) - for (const recencyIndex of resolvedRecencyIndices) { - // console.debug({ recencyIndex }) - // find subscriber's relevant recency index breach information - const ve = - subscriberBreachesEmail.verifiedEmails?.filter( - (e) => e.email === email, - )[0] || {}; - // console.debug({ ve }) - const subBreach = - ve.breaches?.filter( - (b) => Number(b.recencyIndex) === Number(recencyIndex), - )[0] || null; - // console.debug({ subBreach }) - - if (!subBreach || !subBreach.DataClasses) { - console.warn( - `SKIP: Cannot find subscribers breach and data types - recency: ${recencyIndex} email: ${email}`, - ); - continue; - } - - // if email does not exist in v2, we need to add it to the object - // format: {email: { recencyIndex: { isResolved: true, resolutionsChecked: [DataTypes]}}} - if (!v2) v2 = {}; - if (!v2[email]) { - v2[email] = { - [recencyIndex]: { - isResolved: true, - resolutionsChecked: subBreach?.DataClasses || [ - BreachDataTypes.General, - ], - }, - }; - - isV2Changed = true; - } - if (v2[email][recencyIndex]?.isResolved) { - console.log( - `recencyIndex ${recencyIndex} exists in v2 and is resolved, no changes`, - ); - } else { - console.log( - `recencyIndex ${recencyIndex} either does not exist or is not resolved, overwriting`, - ); - v2[email][recencyIndex] = { - isResolved: true, - resolutionsChecked: subBreach?.DataClasses, - }; - isV2Changed = true; - } - } - } - - // check if v2 is changed, if so, upsert the new v2 - if (isV2Changed) { - console.log("upsert for subscriber: ", subscriber.primary_email); - updateCollection.push({ - user: subscriber, - updatedBreachesResolution: v2, - }); - } - } - await batchUpdate(updateCollection); - offset += LIMIT; -} while (subscribersArr.length === LIMIT && offset <= CAP); - -// breaking out of do..while loop -console.log("Reaching the end of the table, offset ended at", offset); -const endTime = Date.now(); -console.log(`End time is: ${endTime}`); -console.log("Diff is: ", endTime - startTime); -process.exit(); diff --git a/src/scripts/prod-experiments/pullExperiment100.js b/src/scripts/prod-experiments/pullExperiment100.js deleted file mode 100644 index e84dc5947..000000000 --- a/src/scripts/prod-experiments/pullExperiment100.js +++ /dev/null @@ -1,50 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -/** - * Executes once - * The purpose of the script is to benchmark pure read with limit set as 100 - */ - -import createDbConnection from "../../db/connect.js"; -import { getAllBreachesFromDb } from "../../utils/hibp.js"; - -const knex = createDbConnection(); - -const LIMIT = 100; // with millions of records, we have to load a few at a time -let offset = 0; // looping through all records with offset -let subscribersArr = []; - -const startTime = Date.now(); -console.log(`Start time is: ${startTime}`); - -// load all breaches for ref -const allBreaches = await getAllBreachesFromDb(); -if (allBreaches && allBreaches.length > 0) - console.log("breaches loaded successfully! ", allBreaches.length); - -// find all subscribers who resolved any breaches in the past, convert those -// records into the new v2 format -do { - console.log( - `Converting breaches_resolved to breach_resolution - start: ${offset} limit: ${LIMIT}`, - ); - subscribersArr = await knex - .select("id", "primary_email", "breaches_resolved", "breach_resolution") - .from("subscribers") - .whereNotNull("breaches_resolved") - .limit(LIMIT) - .offset(offset); - - console.log(`Loaded # of subscribers: ${subscribersArr.length}`); - - offset += LIMIT; -} while (subscribersArr.length === LIMIT); - -// breaking out of do..while loop -console.log("Reaching the end of the table, offset ended at", offset); -const endTime = Date.now(); -console.log(`End time is: ${endTime}`); -console.log("Diff is: ", endTime - startTime); -process.exit(); diff --git a/src/scripts/prod-experiments/pullExperiment1000.js b/src/scripts/prod-experiments/pullExperiment1000.js deleted file mode 100644 index 5c26f0f56..000000000 --- a/src/scripts/prod-experiments/pullExperiment1000.js +++ /dev/null @@ -1,53 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -/** - * Executes once - * The purpose of the script is to benchmark pure read with limit set as 1000 - */ - -import createDbConnection from "../../db/connect.js"; -import { getAllBreachesFromDb } from "../../utils/hibp.js"; - -const knex = createDbConnection(); - -const LIMIT = 1000; // with millions of records, we have to load a few at a time -let CAP = 1500000; -if (process.argv.length > 2) { - CAP = process.argv[2]; - console.log("using cap passed in: ", CAP); -} -let offset = 0; // looping through all records with offset -let subscribersArr = []; - -// load all breaches for ref -const allBreaches = await getAllBreachesFromDb(); -if (allBreaches && allBreaches.length > 0) - console.log("breaches loaded successfully! ", allBreaches.length); - -const startTime = Date.now(); -console.log(`Start time is: ${startTime}`); -do { - console.log( - `Converting breaches_resolved to breach_resolution - start: ${offset} limit: ${LIMIT}`, - ); - subscribersArr = await knex - .select("id", "primary_email", "breaches_resolved", "breach_resolution") - .from("subscribers") - .whereNotNull("breaches_resolved") - .limit(LIMIT) - .offset(offset) - .orderBy("updated_at", "desc"); - - console.log(`Loaded # of subscribers: ${subscribersArr.length}`); - - offset += LIMIT; -} while (subscribersArr.length === LIMIT && offset <= CAP); - -// breaking out of do..while loop -console.log("Reaching the end of the table, offset ended at", offset); -const endTime = Date.now(); -console.log(`End time is: ${endTime}`); -console.log("Diff is: ", endTime - startTime); -process.exit(); From af94f1f84cef2004577fe5387758685eb98f7a1d Mon Sep 17 00:00:00 2001 From: Joey Zhou Date: Tue, 5 Dec 2023 11:41:41 -0800 Subject: [PATCH 02/11] feat: script to uppercase all emails / sha --- scripts/lowercase-all-records.js | 51 --------- scripts/subscribe-lowercase-hashes.js | 69 ------------ src/scripts/emailUpperCaseMigration.js | 144 +++++++++++++++++++++++++ 3 files changed, 144 insertions(+), 120 deletions(-) delete mode 100644 scripts/lowercase-all-records.js delete mode 100644 scripts/subscribe-lowercase-hashes.js create mode 100644 src/scripts/emailUpperCaseMigration.js diff --git a/scripts/lowercase-all-records.js b/scripts/lowercase-all-records.js deleted file mode 100644 index 6a50f5825..000000000 --- a/scripts/lowercase-all-records.js +++ /dev/null @@ -1,51 +0,0 @@ -'use strict' - -const Knex = require('knex') -const knexConfig = require('../db/knexfile') -const knex = Knex(knexConfig) - -const HIBP = require('../hibp') -const getSha1 = require('../sha1-utils') - -/** - * OBSOLETE - * One-off script to lowercase email addresses of subscribers before hashing - */ -async function subscribeLowercaseHashToHIBP (emailAddress) { - const lowerCasedEmail = emailAddress.toLowerCase() - const lowerCasedSha1 = getSha1(lowerCasedEmail) - await HIBP.subscribeHash(lowerCasedSha1) - return lowerCasedSha1 -} - -(async () => { - const subRecordsWithUpperChars = await knex.select('id', 'primary_email').from('subscribers') - .whereRaw('primary_email != lower(primary_email)') - const subsWithUpperCount = subRecordsWithUpperChars.length - console.log(`found ${subsWithUpperCount} subscribers records with primary_email != lower(primary_email). fixing ...`) - for (const subRecord of subRecordsWithUpperChars) { - const lowerCasedSha1 = await subscribeLowercaseHashToHIBP(subRecord.primary_email) - await knex('subscribers') - .update({ - primary_sha1: lowerCasedSha1 - }) - .where('id', subRecord.id) - console.log(`fixed subscribers record ID: ${subRecord.id}`) - } - - const emailRecordsWithUpperChars = await knex.select('id', 'email').from('email_addresses') - .whereRaw('email != lower(email)') - const emailsWithUpperCount = emailRecordsWithUpperChars.length - console.log(`found ${emailsWithUpperCount} email_addresses records with email != lower(email)`) - for (const emailRecord of emailRecordsWithUpperChars) { - const lowerCasedSha1 = await subscribeLowercaseHashToHIBP(emailRecord.email) - await knex('email_addresses') - .update({ - sha1: lowerCasedSha1 - }) - .where('id', emailRecord.id) - console.log(`fixed email_addresses record ID: ${emailRecord.id}`) - } - console.log('done.') - process.exit() -})() diff --git a/scripts/subscribe-lowercase-hashes.js b/scripts/subscribe-lowercase-hashes.js deleted file mode 100644 index 003c55ee6..000000000 --- a/scripts/subscribe-lowercase-hashes.js +++ /dev/null @@ -1,69 +0,0 @@ -'use strict' - -const Knex = require('knex') -const knexConfig = require('../db/knexfile') -const knex = Knex(knexConfig) - -const HIBP = require('../hibp') -const getSha1 = require('../sha1-utils') - -/** - * OBSOLETE - * One-off script to find all non-lowercase email addresses - * and lowercase them before hashing - */ -async function subscribeLowercaseHashToHIBP (emailAddress) { - const lowerCasedEmail = emailAddress.toLowerCase() - const lowerCasedSha1 = getSha1(lowerCasedEmail) - await HIBP.subscribeHash(lowerCasedSha1) - return lowerCasedSha1 -} - -(async () => { - const chunkSize = process.argv[2] - console.log(`subscribing lower-cased hashes in ${chunkSize}-sized chunks`) - - const subRecordsThatNeedFixing = await knex('subscribers').count().whereRaw('primary_email != lower(primary_email)') - const subsWithUpperCount = subRecordsThatNeedFixing[0].count - console.log(`found ${subsWithUpperCount} subscribers records with primary_email != lower(primary_email). fixing ...`) - - let subRecordsFixed = 0 - let subPrevMaxId = 0 - while (subRecordsFixed < subsWithUpperCount) { - console.log(`working on chunk where id > ${subPrevMaxId} ...`) - const subRecordsWithUpperCharsChunk = await knex.select('id', 'primary_email').from('subscribers') - .where('id', '>', subPrevMaxId) - .whereRaw('primary_email != lower(primary_email)') - .orderBy('id', 'asc') - .limit(chunkSize) - for (const subRecord of subRecordsWithUpperCharsChunk) { - await subscribeLowercaseHashToHIBP(subRecord.primary_email) - subPrevMaxId = subRecord.id - subRecordsFixed++ - console.log(`subscribed lower-case address hash for subscribers record ID: ${subRecord.id}`) - } - } - - const emailRecordsThatNeedFixing = await knex('email_addresses').count().whereRaw('email != lower(email)') - const emailWithUpperCount = emailRecordsThatNeedFixing[0].count - console.log(`found ${emailWithUpperCount} email_address records with email != lower(email). fixing ...`) - - let emailRecordsFixed = 0 - let emailPrevMaxId = 0 - while (emailRecordsFixed < emailWithUpperCount) { - console.log(`working on chunk where id > ${emailPrevMaxId} ...`) - const emailRecordsWithUpperChars = await knex.select('id', 'email').from('email_addresses') - .where('id', '>', emailPrevMaxId) - .whereRaw('email != lower(email)') - .orderBy('id', 'asc') - .limit(chunkSize) - for (const emailRecord of emailRecordsWithUpperChars) { - await subscribeLowercaseHashToHIBP(emailRecord.email) - emailPrevMaxId = emailRecord.id - emailRecordsFixed++ - console.log(`fixed email_addresses record ID: ${emailRecord.id}`) - } - } - console.log('done.') - process.exit() -})() diff --git a/src/scripts/emailUpperCaseMigration.js b/src/scripts/emailUpperCaseMigration.js new file mode 100644 index 000000000..ca2c0ac3b --- /dev/null +++ b/src/scripts/emailUpperCaseMigration.js @@ -0,0 +1,144 @@ +import Knex from "knex"; +import knexConfig from "../db/knexfile.js"; +const knex = Knex(knexConfig); + +import { subscribeHash } from "../utils/hibp.js"; +import { getSha1 } from "../utils/fxa.js"; + +/** + * MNTOR-2469: One-off script to lowercase email addresses of subscribers and emails before hashing + */ +async function subscribeLowercaseHashToHIBP(emailAddress) { + const lowerCasedEmail = emailAddress.toLowerCase(); + const lowerCasedSha1 = getSha1(lowerCasedEmail); + await subscribeHash(lowerCasedSha1); + return lowerCasedSha1; +} + +(async () => { + const chunkSize = 1000; + console.log( + `Fixing lower-cased emails / sub to hashes in ${chunkSize}-sized chunks`, + ); + + console.log(`/** Subscribers Table **/`); + const subRecordsThatNeedFixing = await knex("subscribers") + .count() + .whereRaw("primary_email != lower(primary_email)"); + const subsWithUpperCount = subRecordsThatNeedFixing[0].count; + console.log( + `found ${subsWithUpperCount} subscribers records with primary_email != lower(primary_email)`, + ); + + let subRecordsFixed = 0; + let subPrevMaxId = 0; + while (subRecordsFixed < subsWithUpperCount) { + console.log( + `working on ${chunkSize}-sized chunk where id > ${subPrevMaxId} ...`, + ); + const subRecordsWithUpperCharsChunk = await knex + .select("id", "primary_email") + .from("subscribers") + .where("id", ">", subPrevMaxId) + .whereRaw("primary_email != lower(primary_email)") + .orderBy("id", "asc") + .limit(chunkSize); + for (const subRecord of subRecordsWithUpperCharsChunk) { + console.log(`Fixing record: ${subRecord.id}`); + const trx = await knex.transaction(); + try { + // update sha1 and sub to HIBP with the new sha1 + const lowerCasedSha1 = await subscribeLowercaseHashToHIBP( + subRecord.primary_email, + ); + await knex("subscribers") + .update({ + primary_sha1: lowerCasedSha1, + }) + .where("id", subRecord.id) + .transacting(trx); + + // update primary email to lowercase + await knex("subscribers") + .update({ + primary_email: subRecord.primary_email.toLowerCase(), + }) + .where("id", subRecord.id) + .transacting(trx); + await trx.commit(); + console.log(`fixed subscribers record ID: ${subRecord.id}`); + } catch (e) { + await trx.rollback(); + console.error(`Error fixing record: ${subRecord.id}`, e); + } + + subPrevMaxId = subRecord.id; + subRecordsFixed++; + console.log( + `subscribed lower-case address hash for subscribers record ID: ${subRecord.id}`, + ); + } + } + + /** + * Fixing Emails + */ + console.log(`/** Emails Table **/`); + + const emailRecordsThatNeedFixing = await knex("email_addresses") + .count() + .whereRaw("email != lower(email)"); + const emailWithUpperCount = emailRecordsThatNeedFixing[0].count; + console.log( + `found ${emailWithUpperCount} email_address records with email != lower(email). fixing ...`, + ); + + let emailRecordsFixed = 0; + let emailPrevMaxId = 0; + while (emailRecordsFixed < emailWithUpperCount) { + console.log(`working on chunk where id > ${emailPrevMaxId} ...`); + const emailRecordsWithUpperChars = await knex + .select("id", "email") + .from("email_addresses") + .where("id", ">", emailPrevMaxId) + .whereRaw("email != lower(email)") + .orderBy("id", "asc") + .limit(chunkSize); + for (const emailRecord of emailRecordsWithUpperChars) { + console.log(`Fixing record: ${emailRecord.id}`); + const trx = await knex.transaction(); + try { + // update sha1 and sub to HIBP with the new sha1 + const lowerCasedSha1 = await subscribeLowercaseHashToHIBP( + emailRecord.email, + ); + await knex("email_addresses") + .update({ + sha1: lowerCasedSha1, + }) + .where("id", emailRecord.id) + .transacting(trx); + + // update primary email to lowercase + await knex("email_addresses") + .update({ + email: emailRecord.email.toLowerCase(), + }) + .where("id", emailRecord.id) + .transacting(trx); + await trx.commit(); + console.log(`fixed email_addresses record ID: ${emailRecord.id}`); + } catch (e) { + await trx.rollback(); + console.error(`Error fixing email_addresses record: ${emailRecord.id}`, e); + } + + emailPrevMaxId = emailRecord.id; + emailRecordsFixed++; + } + } + + + console.log("done."); + process.exit(); +})(); From 24ef6c58846067b7bd1a5b16b07d3e2e65a3dd2c Mon Sep 17 00:00:00 2001 From: Joey Zhou Date: Tue, 5 Dec 2023 11:48:14 -0800 Subject: [PATCH 03/11] lint --- src/scripts/emailUpperCaseMigration.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/scripts/emailUpperCaseMigration.js b/src/scripts/emailUpperCaseMigration.js index ca2c0ac3b..9fc8c462a 100644 --- a/src/scripts/emailUpperCaseMigration.js +++ b/src/scripts/emailUpperCaseMigration.js @@ -130,15 +130,17 @@ async function subscribeLowercaseHashToHIBP(emailAddress) { console.log(`fixed email_addresses record ID: ${emailRecord.id}`); } catch (e) { await trx.rollback(); - console.error(`Error fixing email_addresses record: ${emailRecord.id}`, e); + console.error( + `Error fixing email_addresses record: ${emailRecord.id}`, + e, + ); } - + emailPrevMaxId = emailRecord.id; emailRecordsFixed++; } } - console.log("done."); process.exit(); })(); From dadcb2bc174a34108281bf7e3a49561c6c7ce461 Mon Sep 17 00:00:00 2001 From: Joey Zhou Date: Tue, 5 Dec 2023 21:24:38 -0800 Subject: [PATCH 04/11] use createDbConnection --- src/scripts/emailUpperCaseMigration.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/scripts/emailUpperCaseMigration.js b/src/scripts/emailUpperCaseMigration.js index 9fc8c462a..01a8a6e9e 100644 --- a/src/scripts/emailUpperCaseMigration.js +++ b/src/scripts/emailUpperCaseMigration.js @@ -1,6 +1,5 @@ -import Knex from "knex"; -import knexConfig from "../db/knexfile.js"; -const knex = Knex(knexConfig); +import createDbConnection from "../db/connect.js"; +const knex = createDbConnection(); import { subscribeHash } from "../utils/hibp.js"; import { getSha1 } from "../utils/fxa.js"; From 7e96d163a542d0e210725b314d324258292744ef Mon Sep 17 00:00:00 2001 From: Joey Zhou Date: Tue, 5 Dec 2023 21:27:11 -0800 Subject: [PATCH 05/11] fix: func name --- src/scripts/emailUpperCaseMigration.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/scripts/emailUpperCaseMigration.js b/src/scripts/emailUpperCaseMigration.js index 01a8a6e9e..56eb8a19a 100644 --- a/src/scripts/emailUpperCaseMigration.js +++ b/src/scripts/emailUpperCaseMigration.js @@ -7,7 +7,7 @@ import { getSha1 } from "../utils/fxa.js"; /** * MNTOR-2469: One-off script to lowercase email addresses of subscribers and emails before hashing */ -async function subscribeLowercaseHashToHIBP(emailAddress) { +async function subscribeLowerCaseHashToHIBP(emailAddress) { const lowerCasedEmail = emailAddress.toLowerCase(); const lowerCasedSha1 = getSha1(lowerCasedEmail); await subscribeHash(lowerCasedSha1); @@ -47,7 +47,7 @@ async function subscribeLowercaseHashToHIBP(emailAddress) { const trx = await knex.transaction(); try { // update sha1 and sub to HIBP with the new sha1 - const lowerCasedSha1 = await subscribeLowercaseHashToHIBP( + const lowerCasedSha1 = await subscribeLowerCaseHashToHIBP( subRecord.primary_email, ); await knex("subscribers") @@ -108,7 +108,7 @@ async function subscribeLowercaseHashToHIBP(emailAddress) { const trx = await knex.transaction(); try { // update sha1 and sub to HIBP with the new sha1 - const lowerCasedSha1 = await subscribeLowercaseHashToHIBP( + const lowerCasedSha1 = await subscribeLowerCaseHashToHIBP( emailRecord.email, ); await knex("email_addresses") From 9bb0ef3b06b0a3d139ee4078afbd984884dceefb Mon Sep 17 00:00:00 2001 From: Florian Zia Date: Mon, 11 Dec 2023 19:03:56 +0100 Subject: [PATCH 06/11] =?UTF-8?q?fix:=20Don=E2=80=99t=20count=20data=20bro?= =?UTF-8?q?ker=20exposures=20that=20are=20in=20progress=20as=20fixed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dashboard/DashboardTopBanner/index.tsx | 2 +- src/app/functions/server/dashboard.test.ts | 65 +++++++++---------- src/app/functions/server/dashboard.ts | 51 +++++---------- src/utils/subscriberBreaches.test.ts | 1 - 4 files changed, 46 insertions(+), 73 deletions(-) diff --git a/src/app/(proper_react)/redesign/(authenticated)/user/dashboard/DashboardTopBanner/index.tsx b/src/app/(proper_react)/redesign/(authenticated)/user/dashboard/DashboardTopBanner/index.tsx index 4b888c00b..96545c14b 100644 --- a/src/app/(proper_react)/redesign/(authenticated)/user/dashboard/DashboardTopBanner/index.tsx +++ b/src/app/(proper_react)/redesign/(authenticated)/user/dashboard/DashboardTopBanner/index.tsx @@ -31,7 +31,7 @@ export const DashboardTopBanner = (props: DashboardTopBannerProps) => { const isShowFixed = props.tabType === "fixed"; const chartDataKey = isShowFixed - ? "inProgressFixedSanitizedDataPoints" + ? "fixedSanitizedDataPoints" : "unresolvedSanitizedDataPoints"; const chartData: [string, number][] = props.bannerData[chartDataKey].map( diff --git a/src/app/functions/server/dashboard.test.ts b/src/app/functions/server/dashboard.test.ts index fedb7e85c..550be6d52 100644 --- a/src/app/functions/server/dashboard.test.ts +++ b/src/app/functions/server/dashboard.test.ts @@ -488,9 +488,9 @@ describe("getExposureReduction", () => { unresolvedDataPoints: testExposure, inProgressDataPoints: testExposure, fixedDataPoints: testExposure, - inProgressFixedDataPoints: testExposure, + manuallyResolvedDataBrokerDataPoints: testExposure, unresolvedSanitizedDataPoints: [], - inProgressFixedSanitizedDataPoints: [], + fixedSanitizedDataPoints: [], dataBreachUnresolvedNum: 0, dataBreachResolvedNum: 0, }; @@ -533,9 +533,9 @@ describe("getExposureReduction", () => { unresolvedDataPoints: testExposure, inProgressDataPoints: testExposure, fixedDataPoints: testExposure, - inProgressFixedDataPoints: testExposure, + manuallyResolvedDataBrokerDataPoints: testExposure, unresolvedSanitizedDataPoints: [], - inProgressFixedSanitizedDataPoints: [], + fixedSanitizedDataPoints: [], dataBreachUnresolvedNum: 0, dataBreachResolvedNum: 0, }; @@ -572,13 +572,11 @@ describe("getDashboardSummary", () => { }, ); - summary.inProgressFixedSanitizedDataPoints.forEach( - (inProgressFixedSanitizedExposure) => { - Object.values(inProgressFixedSanitizedExposure).forEach((count) => { - expect(count).toBeGreaterThanOrEqual(0); - }); - }, - ); + summary.fixedSanitizedDataPoints.forEach((fixedSanitizedExposure) => { + Object.values(fixedSanitizedExposure).forEach((count) => { + expect(count).toBeGreaterThanOrEqual(0); + }); + }); }; it("gets breaches only summary", () => { @@ -663,21 +661,17 @@ describe("getDashboardSummary", () => { expect(summary.dataBreachTotalDataPointsNum).toBe(0); expect(summary.dataBreachFixedDataPointsNum).toBe(0); expect(summary.dataBrokerTotalNum).toBe(4); - expect(summary.inProgressFixedDataPoints.emailAddresses).toBe( - summary.inProgressDataPoints.emailAddresses + - summary.fixedDataPoints.emailAddresses, + expect(summary.fixedDataPoints.emailAddresses).toBe( + summary.fixedDataPoints.emailAddresses, ); - expect(summary.inProgressFixedDataPoints.phoneNumbers).toBe( - summary.inProgressDataPoints.phoneNumbers + - summary.fixedDataPoints.phoneNumbers, + expect(summary.fixedDataPoints.phoneNumbers).toBe( + summary.fixedDataPoints.phoneNumbers, ); - expect(summary.inProgressFixedDataPoints.addresses).toBe( - summary.inProgressDataPoints.addresses + - summary.fixedDataPoints.addresses, + expect(summary.fixedDataPoints.addresses).toBe( + summary.fixedDataPoints.addresses, ); - expect(summary.inProgressFixedDataPoints.familyMembers).toBe( - summary.inProgressDataPoints.familyMembers + - summary.fixedDataPoints.familyMembers, + expect(summary.fixedDataPoints.familyMembers).toBe( + summary.fixedDataPoints.familyMembers, ); expect(summary.unresolvedDataPoints.emailAddresses).toBe(0); }); @@ -749,7 +743,7 @@ describe("getDashboardSummary", () => { expect(summary.dataBrokerManuallyResolvedDataPointsNum).toBe(12); }); - it("inProgressFixedSanitizedExposures counts manually resolved exposures", () => { + it("fixedSanitizedExposures counts manually resolved exposures", () => { const combinedScannedResults = [ ...unresolvedScannedResults, ...manuallyResolvedScannedResults, @@ -773,16 +767,12 @@ describe("getDashboardSummary", () => { ]; const summary = getDashboardSummary(combinedScannedResults, []); noNegativeCounts(summary); - console.log( - "yay ", - JSON.stringify(summary.inProgressFixedSanitizedDataPoints), - ); - expect(summary.inProgressFixedSanitizedDataPoints).toEqual( + expect(summary.fixedSanitizedDataPoints).toEqual( expectedSanitizedExposures, ); }); - it("inProgressFixedExposures counts manually resolved exposures", () => { + it("fixedDataPoints counts manually resolved exposures", () => { const combinedScannedResults = [ ...unresolvedScannedResults, ...manuallyResolvedScannedResults, @@ -790,13 +780,16 @@ describe("getDashboardSummary", () => { const summary = getDashboardSummary(combinedScannedResults, []); noNegativeCounts(summary); expect(summary.manuallyResolvedDataBrokerDataPoints.passwords).toBe( - summary.inProgressFixedDataPoints.passwords, + summary.fixedDataPoints.passwords, ); - expect(summary.manuallyResolvedDataBrokerDataPoints.pins).toBe( - summary.inProgressFixedDataPoints.pins, - ); - expect(summary.manuallyResolvedDataBrokerDataPoints.phoneNumbers).toBe( - summary.inProgressFixedDataPoints.phoneNumbers, + expect(summary.manuallyResolvedDataBrokerDataPoints.addresses).toBe( + summary.fixedDataPoints.addresses, ); + // expect(summary.manuallyResolvedDataBrokerDataPoints.emailAddresses).toBe( + // summary.fixedDataPoints.emailAddresses, + // ); + // expect(summary.manuallyResolvedDataBrokerDataPoints.phoneNumbers).toBe( + // summary.fixedDataPoints.phoneNumbers, + // ); }); }); diff --git a/src/app/functions/server/dashboard.ts b/src/app/functions/server/dashboard.ts index f28dcd97d..4a09b3651 100644 --- a/src/app/functions/server/dashboard.ts +++ b/src/app/functions/server/dashboard.ts @@ -65,13 +65,11 @@ export interface DashboardSummary { fixedDataPoints: DataPoints; /** manually resolved data broker data points separated by data classes */ manuallyResolvedDataBrokerDataPoints: DataPoints; - /** in-progress & resolved/removed data points separated by data classes */ - inProgressFixedDataPoints: DataPoints; /** sanitized all data points for frontend display */ unresolvedSanitizedDataPoints: SanitizedDataPoints; - /** sanitized resolved/removed data points for frontend display */ - inProgressFixedSanitizedDataPoints: SanitizedDataPoints; + /** sanitized resolved and removed data points for frontend display */ + fixedSanitizedDataPoints: SanitizedDataPoints; } const dataClassKeyMap: Record = { @@ -185,23 +183,8 @@ export function getDashboardSummary( securityQuestions: 0, bankAccountNumbers: 0, }, - inProgressFixedDataPoints: { - emailAddresses: 0, - phoneNumbers: 0, - addresses: 0, - familyMembers: 0, - - // data breaches - socialSecurityNumbers: 0, - ipAddresses: 0, - passwords: 0, - creditCardNumbers: 0, - pins: 0, - securityQuestions: 0, - bankAccountNumbers: 0, - }, unresolvedSanitizedDataPoints: [], - inProgressFixedSanitizedDataPoints: [], + fixedSanitizedDataPoints: [], }; // calculate broker summary from scanned results @@ -395,17 +378,6 @@ export function getDashboardSummary( {} as DataPoints, ); - // count fixed, in-progress, and manually resolved (data brokers) data points - summary.inProgressFixedDataPoints = Object.keys( - summary.fixedDataPoints, - ).reduce((a, k) => { - a[k as keyof DataPoints] = - summary.fixedDataPoints[k as keyof DataPoints] + - summary.inProgressDataPoints[k as keyof DataPoints] + - summary.manuallyResolvedDataBrokerDataPoints[k as keyof DataPoints]; - return a; - }, {} as DataPoints); - // sanitize unresolved data points summary.unresolvedSanitizedDataPoints = sanitizeDataPoints( summary.unresolvedDataPoints, @@ -417,12 +389,21 @@ export function getDashboardSummary( isBreachesOnly, ); - // sanitize fixed + inprogress data points - summary.inProgressFixedSanitizedDataPoints = sanitizeDataPoints( - summary.inProgressFixedDataPoints, + // count fixed and manually resolved (data brokers) data points + const dataBrokerFixedManuallyResolved = Object.keys( + summary.fixedDataPoints, + ).reduce((a, k) => { + a[k as keyof DataPoints] = + summary.fixedDataPoints[k as keyof DataPoints] + + summary.manuallyResolvedDataBrokerDataPoints[k as keyof DataPoints]; + return a; + }, {} as DataPoints); + + // sanitize fixed and removed data points + summary.fixedSanitizedDataPoints = sanitizeDataPoints( + dataBrokerFixedManuallyResolved, summary.dataBreachFixedDataPointsNum + summary.dataBrokerAutoFixedDataPointsNum + - summary.dataBrokerInProgressDataPointsNum + summary.dataBrokerManuallyResolvedDataPointsNum, isBreachesOnly, ); diff --git a/src/utils/subscriberBreaches.test.ts b/src/utils/subscriberBreaches.test.ts index 40c6e02a4..8a64f75bc 100644 --- a/src/utils/subscriberBreaches.test.ts +++ b/src/utils/subscriberBreaches.test.ts @@ -421,7 +421,6 @@ describe("getSubBreaches", () => { const subBreaches = await getSubBreaches(subscriber, []); expect(subBreaches.length).toEqual(1); - console.log(JSON.stringify(subBreaches)); expect(subBreaches[0].isResolved).toBe(false); }); // MNTOR-2125 From d7b77c293643ba9ba6b8ea5f3dad6a0dfb10b92a Mon Sep 17 00:00:00 2001 From: Florian Zia Date: Tue, 12 Dec 2023 13:44:23 +0100 Subject: [PATCH 07/11] chore: Update unit tests to cover calculation of fixedSanitizedDataPoints --- src/app/functions/server/dashboard.test.ts | 26 +++++++++++++--------- src/app/functions/server/dashboard.ts | 2 +- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/app/functions/server/dashboard.test.ts b/src/app/functions/server/dashboard.test.ts index 550be6d52..8ebe477c5 100644 --- a/src/app/functions/server/dashboard.test.ts +++ b/src/app/functions/server/dashboard.test.ts @@ -8,6 +8,7 @@ import { getDashboardSummary, getDataPointReduction, DataPoints, + dataClassKeyMap, } from "./dashboard"; import { SubscriberBreach } from "../../../utils/subscriberBreaches"; import { RemovalStatus, RemovalStatusMap } from "../universal/scanResult"; @@ -772,24 +773,29 @@ describe("getDashboardSummary", () => { ); }); - it("fixedDataPoints counts manually resolved exposures", () => { + it("fixedSanitizedDataPoints counts manually resolved exposures", () => { const combinedScannedResults = [ ...unresolvedScannedResults, ...manuallyResolvedScannedResults, ]; const summary = getDashboardSummary(combinedScannedResults, []); noNegativeCounts(summary); - expect(summary.manuallyResolvedDataBrokerDataPoints.passwords).toBe( - summary.fixedDataPoints.passwords, + const getSanitizedDataPoint = ( + dataPoint: (typeof dataClassKeyMap)[keyof typeof dataClassKeyMap], + ) => { + const sanitizedDataPoint = summary.fixedSanitizedDataPoints.find( + (fixedData) => dataPoint in fixedData, + ); + return sanitizedDataPoint?.[dataPoint] ?? 0; + }; + expect(summary.manuallyResolvedDataBrokerDataPoints.emailAddresses).toBe( + getSanitizedDataPoint(dataClassKeyMap.emailAddresses), + ); + expect(summary.manuallyResolvedDataBrokerDataPoints.phoneNumbers).toBe( + getSanitizedDataPoint(dataClassKeyMap.phoneNumbers), ); expect(summary.manuallyResolvedDataBrokerDataPoints.addresses).toBe( - summary.fixedDataPoints.addresses, + getSanitizedDataPoint(dataClassKeyMap.addresses), ); - // expect(summary.manuallyResolvedDataBrokerDataPoints.emailAddresses).toBe( - // summary.fixedDataPoints.emailAddresses, - // ); - // expect(summary.manuallyResolvedDataBrokerDataPoints.phoneNumbers).toBe( - // summary.fixedDataPoints.phoneNumbers, - // ); }); }); diff --git a/src/app/functions/server/dashboard.ts b/src/app/functions/server/dashboard.ts index 4a09b3651..506192af5 100644 --- a/src/app/functions/server/dashboard.ts +++ b/src/app/functions/server/dashboard.ts @@ -72,7 +72,7 @@ export interface DashboardSummary { fixedSanitizedDataPoints: SanitizedDataPoints; } -const dataClassKeyMap: Record = { +export const dataClassKeyMap: Record = { emailAddresses: "email-addresses", phoneNumbers: "phone-numbers", From 678db017ab984be60702d0b5cb87abfaa4b20ff9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 16:52:30 +0000 Subject: [PATCH 08/11] chore(deps): bump the aws-sdk group with 2 updates Bumps the aws-sdk group with 2 updates: [@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.465.0 to 3.470.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.470.0/clients/client-s3) Updates `@aws-sdk/lib-storage` from 3.465.0 to 3.470.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.470.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 | 2032 +++++++++++++++++++++++---------------------- package.json | 4 +- 2 files changed, 1019 insertions(+), 1017 deletions(-) diff --git a/package-lock.json b/package-lock.json index 122d1697b..6837e32f1 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.465.0", - "@aws-sdk/lib-storage": "^3.465.0", + "@aws-sdk/client-s3": "^3.470.0", + "@aws-sdk/lib-storage": "^3.470.0", "@fluent/bundle": "^0.18.0", "@fluent/langneg": "^0.7.0", "@fluent/react": "^0.15.2", @@ -98,7 +98,7 @@ "typescript": "^5.3.3" }, "engines": { - "node": "20.10.x", + "node": "20.9.x", "npm": "10.2.x" } }, @@ -267,65 +267,65 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@aws-sdk/client-s3": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.465.0.tgz", - "integrity": "sha512-S2W8aUs/SR7wabyKRldl5FKtAq2gsXo3BpbKjBvuCILwNl84ooQrsOmKtcVsINRdi+q/mZvwGenqqp/98+yjdg==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.470.0.tgz", + "integrity": "sha512-HdhNlz25ImxID17qK7qfLXileJPYdPT7kgC+gm083edhFk0JI0+N8y7N9ybnVYpoHzZZPXeO1KZkmfdWK4IQhw==", "dependencies": { "@aws-crypto/sha1-browser": "3.0.0", "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/client-sts": "3.465.0", - "@aws-sdk/core": "3.465.0", - "@aws-sdk/credential-provider-node": "3.465.0", - "@aws-sdk/middleware-bucket-endpoint": "3.465.0", - "@aws-sdk/middleware-expect-continue": "3.465.0", - "@aws-sdk/middleware-flexible-checksums": "3.465.0", - "@aws-sdk/middleware-host-header": "3.465.0", - "@aws-sdk/middleware-location-constraint": "3.465.0", - "@aws-sdk/middleware-logger": "3.465.0", - "@aws-sdk/middleware-recursion-detection": "3.465.0", - "@aws-sdk/middleware-sdk-s3": "3.465.0", - "@aws-sdk/middleware-signing": "3.465.0", - "@aws-sdk/middleware-ssec": "3.465.0", - "@aws-sdk/middleware-user-agent": "3.465.0", - "@aws-sdk/region-config-resolver": "3.465.0", - "@aws-sdk/signature-v4-multi-region": "3.465.0", - "@aws-sdk/types": "3.465.0", - "@aws-sdk/util-endpoints": "3.465.0", - "@aws-sdk/util-user-agent-browser": "3.465.0", - "@aws-sdk/util-user-agent-node": "3.465.0", + "@aws-sdk/client-sts": "3.470.0", + "@aws-sdk/core": "3.468.0", + "@aws-sdk/credential-provider-node": "3.470.0", + "@aws-sdk/middleware-bucket-endpoint": "3.470.0", + "@aws-sdk/middleware-expect-continue": "3.468.0", + "@aws-sdk/middleware-flexible-checksums": "3.468.0", + "@aws-sdk/middleware-host-header": "3.468.0", + "@aws-sdk/middleware-location-constraint": "3.468.0", + "@aws-sdk/middleware-logger": "3.468.0", + "@aws-sdk/middleware-recursion-detection": "3.468.0", + "@aws-sdk/middleware-sdk-s3": "3.470.0", + "@aws-sdk/middleware-signing": "3.468.0", + "@aws-sdk/middleware-ssec": "3.468.0", + "@aws-sdk/middleware-user-agent": "3.470.0", + "@aws-sdk/region-config-resolver": "3.470.0", + "@aws-sdk/signature-v4-multi-region": "3.470.0", + "@aws-sdk/types": "3.468.0", + "@aws-sdk/util-endpoints": "3.470.0", + "@aws-sdk/util-user-agent-browser": "3.468.0", + "@aws-sdk/util-user-agent-node": "3.470.0", "@aws-sdk/xml-builder": "3.465.0", - "@smithy/config-resolver": "^2.0.18", - "@smithy/eventstream-serde-browser": "^2.0.13", - "@smithy/eventstream-serde-config-resolver": "^2.0.13", - "@smithy/eventstream-serde-node": "^2.0.13", - "@smithy/fetch-http-handler": "^2.2.6", - "@smithy/hash-blob-browser": "^2.0.14", - "@smithy/hash-node": "^2.0.15", - "@smithy/hash-stream-node": "^2.0.15", - "@smithy/invalid-dependency": "^2.0.13", - "@smithy/md5-js": "^2.0.15", - "@smithy/middleware-content-length": "^2.0.15", - "@smithy/middleware-endpoint": "^2.2.0", - "@smithy/middleware-retry": "^2.0.20", - "@smithy/middleware-serde": "^2.0.13", - "@smithy/middleware-stack": "^2.0.7", - "@smithy/node-config-provider": "^2.1.5", - "@smithy/node-http-handler": "^2.1.9", - "@smithy/protocol-http": "^3.0.9", - "@smithy/smithy-client": "^2.1.15", - "@smithy/types": "^2.5.0", - "@smithy/url-parser": "^2.0.13", + "@smithy/config-resolver": "^2.0.21", + "@smithy/eventstream-serde-browser": "^2.0.15", + "@smithy/eventstream-serde-config-resolver": "^2.0.15", + "@smithy/eventstream-serde-node": "^2.0.15", + "@smithy/fetch-http-handler": "^2.3.1", + "@smithy/hash-blob-browser": "^2.0.16", + "@smithy/hash-node": "^2.0.17", + "@smithy/hash-stream-node": "^2.0.17", + "@smithy/invalid-dependency": "^2.0.15", + "@smithy/md5-js": "^2.0.17", + "@smithy/middleware-content-length": "^2.0.17", + "@smithy/middleware-endpoint": "^2.2.3", + "@smithy/middleware-retry": "^2.0.24", + "@smithy/middleware-serde": "^2.0.15", + "@smithy/middleware-stack": "^2.0.9", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/node-http-handler": "^2.2.1", + "@smithy/protocol-http": "^3.0.11", + "@smithy/smithy-client": "^2.1.18", + "@smithy/types": "^2.7.0", + "@smithy/url-parser": "^2.0.15", "@smithy/util-base64": "^2.0.1", - "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.1", "@smithy/util-body-length-node": "^2.1.0", - "@smithy/util-defaults-mode-browser": "^2.0.19", - "@smithy/util-defaults-mode-node": "^2.0.25", - "@smithy/util-endpoints": "^1.0.4", - "@smithy/util-retry": "^2.0.6", - "@smithy/util-stream": "^2.0.20", + "@smithy/util-defaults-mode-browser": "^2.0.22", + "@smithy/util-defaults-mode-node": "^2.0.29", + "@smithy/util-endpoints": "^1.0.7", + "@smithy/util-retry": "^2.0.8", + "@smithy/util-stream": "^2.0.23", "@smithy/util-utf8": "^2.0.2", - "@smithy/util-waiter": "^2.0.13", + "@smithy/util-waiter": "^2.0.15", "fast-xml-parser": "4.2.5", "tslib": "^2.5.0" }, @@ -334,44 +334,44 @@ } }, "node_modules/@aws-sdk/client-sso": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.465.0.tgz", - "integrity": "sha512-JXDBa3Sl+LS0KEOs0PZoIjpNKEEGfeyFwdnRxi8Y1hMXNEKyJug1cI2Psqu2olpn4KeXwoP1BuITppZYdolOew==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.470.0.tgz", + "integrity": "sha512-iMXqdXuypE3OK0rggbvSz7vBGlLDG418dNidHhdaeLluMTG/GfHbh1fLOlavhYxRwrsPrtYvFiVkxXFGzXva4w==", "dependencies": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/core": "3.465.0", - "@aws-sdk/middleware-host-header": "3.465.0", - "@aws-sdk/middleware-logger": "3.465.0", - "@aws-sdk/middleware-recursion-detection": "3.465.0", - "@aws-sdk/middleware-user-agent": "3.465.0", - "@aws-sdk/region-config-resolver": "3.465.0", - "@aws-sdk/types": "3.465.0", - "@aws-sdk/util-endpoints": "3.465.0", - "@aws-sdk/util-user-agent-browser": "3.465.0", - "@aws-sdk/util-user-agent-node": "3.465.0", - "@smithy/config-resolver": "^2.0.18", - "@smithy/fetch-http-handler": "^2.2.6", - "@smithy/hash-node": "^2.0.15", - "@smithy/invalid-dependency": "^2.0.13", - "@smithy/middleware-content-length": "^2.0.15", - "@smithy/middleware-endpoint": "^2.2.0", - "@smithy/middleware-retry": "^2.0.20", - "@smithy/middleware-serde": "^2.0.13", - "@smithy/middleware-stack": "^2.0.7", - "@smithy/node-config-provider": "^2.1.5", - "@smithy/node-http-handler": "^2.1.9", - "@smithy/protocol-http": "^3.0.9", - "@smithy/smithy-client": "^2.1.15", - "@smithy/types": "^2.5.0", - "@smithy/url-parser": "^2.0.13", + "@aws-sdk/core": "3.468.0", + "@aws-sdk/middleware-host-header": "3.468.0", + "@aws-sdk/middleware-logger": "3.468.0", + "@aws-sdk/middleware-recursion-detection": "3.468.0", + "@aws-sdk/middleware-user-agent": "3.470.0", + "@aws-sdk/region-config-resolver": "3.470.0", + "@aws-sdk/types": "3.468.0", + "@aws-sdk/util-endpoints": "3.470.0", + "@aws-sdk/util-user-agent-browser": "3.468.0", + "@aws-sdk/util-user-agent-node": "3.470.0", + "@smithy/config-resolver": "^2.0.21", + "@smithy/fetch-http-handler": "^2.3.1", + "@smithy/hash-node": "^2.0.17", + "@smithy/invalid-dependency": "^2.0.15", + "@smithy/middleware-content-length": "^2.0.17", + "@smithy/middleware-endpoint": "^2.2.3", + "@smithy/middleware-retry": "^2.0.24", + "@smithy/middleware-serde": "^2.0.15", + "@smithy/middleware-stack": "^2.0.9", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/node-http-handler": "^2.2.1", + "@smithy/protocol-http": "^3.0.11", + "@smithy/smithy-client": "^2.1.18", + "@smithy/types": "^2.7.0", + "@smithy/url-parser": "^2.0.15", "@smithy/util-base64": "^2.0.1", - "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.1", "@smithy/util-body-length-node": "^2.1.0", - "@smithy/util-defaults-mode-browser": "^2.0.19", - "@smithy/util-defaults-mode-node": "^2.0.25", - "@smithy/util-endpoints": "^1.0.4", - "@smithy/util-retry": "^2.0.6", + "@smithy/util-defaults-mode-browser": "^2.0.22", + "@smithy/util-defaults-mode-node": "^2.0.29", + "@smithy/util-endpoints": "^1.0.7", + "@smithy/util-retry": "^2.0.8", "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" }, @@ -380,47 +380,47 @@ } }, "node_modules/@aws-sdk/client-sts": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.465.0.tgz", - "integrity": "sha512-rHi9ba6ssNbVjlWSdhi4C5newEhGhzkY9UE4KB+/Tj21zXfEP8r6uIltnQXPtun2SdA95Krh/yS1qQ4MRuzqyA==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.470.0.tgz", + "integrity": "sha512-TP3A4t8FoFEQinm6axxduTUnlMMLpmLi4Sf00JTI2CszxLUFh/JyUhYQ5gSOoXgPFmfwVXUNKCtmR3jdP0ZGPw==", "dependencies": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/core": "3.465.0", - "@aws-sdk/credential-provider-node": "3.465.0", - "@aws-sdk/middleware-host-header": "3.465.0", - "@aws-sdk/middleware-logger": "3.465.0", - "@aws-sdk/middleware-recursion-detection": "3.465.0", - "@aws-sdk/middleware-sdk-sts": "3.465.0", - "@aws-sdk/middleware-signing": "3.465.0", - "@aws-sdk/middleware-user-agent": "3.465.0", - "@aws-sdk/region-config-resolver": "3.465.0", - "@aws-sdk/types": "3.465.0", - "@aws-sdk/util-endpoints": "3.465.0", - "@aws-sdk/util-user-agent-browser": "3.465.0", - "@aws-sdk/util-user-agent-node": "3.465.0", - "@smithy/config-resolver": "^2.0.18", - "@smithy/fetch-http-handler": "^2.2.6", - "@smithy/hash-node": "^2.0.15", - "@smithy/invalid-dependency": "^2.0.13", - "@smithy/middleware-content-length": "^2.0.15", - "@smithy/middleware-endpoint": "^2.2.0", - "@smithy/middleware-retry": "^2.0.20", - "@smithy/middleware-serde": "^2.0.13", - "@smithy/middleware-stack": "^2.0.7", - "@smithy/node-config-provider": "^2.1.5", - "@smithy/node-http-handler": "^2.1.9", - "@smithy/protocol-http": "^3.0.9", - "@smithy/smithy-client": "^2.1.15", - "@smithy/types": "^2.5.0", - "@smithy/url-parser": "^2.0.13", + "@aws-sdk/core": "3.468.0", + "@aws-sdk/credential-provider-node": "3.470.0", + "@aws-sdk/middleware-host-header": "3.468.0", + "@aws-sdk/middleware-logger": "3.468.0", + "@aws-sdk/middleware-recursion-detection": "3.468.0", + "@aws-sdk/middleware-sdk-sts": "3.468.0", + "@aws-sdk/middleware-signing": "3.468.0", + "@aws-sdk/middleware-user-agent": "3.470.0", + "@aws-sdk/region-config-resolver": "3.470.0", + "@aws-sdk/types": "3.468.0", + "@aws-sdk/util-endpoints": "3.470.0", + "@aws-sdk/util-user-agent-browser": "3.468.0", + "@aws-sdk/util-user-agent-node": "3.470.0", + "@smithy/config-resolver": "^2.0.21", + "@smithy/fetch-http-handler": "^2.3.1", + "@smithy/hash-node": "^2.0.17", + "@smithy/invalid-dependency": "^2.0.15", + "@smithy/middleware-content-length": "^2.0.17", + "@smithy/middleware-endpoint": "^2.2.3", + "@smithy/middleware-retry": "^2.0.24", + "@smithy/middleware-serde": "^2.0.15", + "@smithy/middleware-stack": "^2.0.9", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/node-http-handler": "^2.2.1", + "@smithy/protocol-http": "^3.0.11", + "@smithy/smithy-client": "^2.1.18", + "@smithy/types": "^2.7.0", + "@smithy/url-parser": "^2.0.15", "@smithy/util-base64": "^2.0.1", - "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.1", "@smithy/util-body-length-node": "^2.1.0", - "@smithy/util-defaults-mode-browser": "^2.0.19", - "@smithy/util-defaults-mode-node": "^2.0.25", - "@smithy/util-endpoints": "^1.0.4", - "@smithy/util-retry": "^2.0.6", + "@smithy/util-defaults-mode-browser": "^2.0.22", + "@smithy/util-defaults-mode-node": "^2.0.29", + "@smithy/util-endpoints": "^1.0.7", + "@smithy/util-retry": "^2.0.8", "@smithy/util-utf8": "^2.0.2", "fast-xml-parser": "4.2.5", "tslib": "^2.5.0" @@ -430,11 +430,11 @@ } }, "node_modules/@aws-sdk/core": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.465.0.tgz", - "integrity": "sha512-fHSIw/Rgex3KbrEKn6ZrUc2VcsOTpdBMeyYtfmsTOLSyDDOG9k3jelOvVbCbrK5N6uEUSM8hrnySEKg94UB0cg==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.468.0.tgz", + "integrity": "sha512-ezUJR9VvknKoXzNZ4wvzGi1jdkmm+/1dUYQ9Sw4r8bzlJDTsUnWbyvaDlBQh81RuhLtVkaUfTnQKoec0cwlZKQ==", "dependencies": { - "@smithy/smithy-client": "^2.1.15", + "@smithy/smithy-client": "^2.1.18", "tslib": "^2.5.0" }, "engines": { @@ -442,13 +442,13 @@ } }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.465.0.tgz", - "integrity": "sha512-fku37AgkB9KhCuWHE6mfvbWYU0X84Df6MQ60nYH7s/PiNEhkX2cVI6X6kOKjP1MNIwRcYt+oQDvplVKdHume+A==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.468.0.tgz", + "integrity": "sha512-k/1WHd3KZn0EQYjadooj53FC0z24/e4dUZhbSKTULgmxyO62pwh9v3Brvw4WRa/8o2wTffU/jo54tf4vGuP/ZA==", "dependencies": { - "@aws-sdk/types": "3.465.0", + "@aws-sdk/types": "3.468.0", "@smithy/property-provider": "^2.0.0", - "@smithy/types": "^2.5.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -456,19 +456,19 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.465.0.tgz", - "integrity": "sha512-B1MFufvdToAEMtfszilVnKer2S7P/OfMhkCizq2zuu8aU/CquRyHvKEQgWdvqunUDrFnVTc0kUZgsbBY0uPjLg==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.470.0.tgz", + "integrity": "sha512-eF22iPO6J2jY+LbuTv5dW0hZBmi6ksRDFFd/zT6TLasrzH2Ex+gAfN3c7rFHF+XAubL0JXFUKFA3UAwoZpO9Zg==", "dependencies": { - "@aws-sdk/credential-provider-env": "3.465.0", - "@aws-sdk/credential-provider-process": "3.465.0", - "@aws-sdk/credential-provider-sso": "3.465.0", - "@aws-sdk/credential-provider-web-identity": "3.465.0", - "@aws-sdk/types": "3.465.0", + "@aws-sdk/credential-provider-env": "3.468.0", + "@aws-sdk/credential-provider-process": "3.468.0", + "@aws-sdk/credential-provider-sso": "3.470.0", + "@aws-sdk/credential-provider-web-identity": "3.468.0", + "@aws-sdk/types": "3.468.0", "@smithy/credential-provider-imds": "^2.0.0", "@smithy/property-provider": "^2.0.0", "@smithy/shared-ini-file-loader": "^2.0.6", - "@smithy/types": "^2.5.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -476,20 +476,20 @@ } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.465.0.tgz", - "integrity": "sha512-R3VA9yJ0BvezvrDxcgPTv9VHbVPbzchLTrX5jLFSVuW/lPPYLUi/Cjtyg9C9Y7qRfoQS4fNMvSRhwO5/TF68gA==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.470.0.tgz", + "integrity": "sha512-paySXwzGxBVU+2cVUkRIXafKhYhtO2fJJ3MotR6euvRONK/dta+bhEc5Z4QnTo/gNLoELK/QUC0EGoF+oPfk8g==", "dependencies": { - "@aws-sdk/credential-provider-env": "3.465.0", - "@aws-sdk/credential-provider-ini": "3.465.0", - "@aws-sdk/credential-provider-process": "3.465.0", - "@aws-sdk/credential-provider-sso": "3.465.0", - "@aws-sdk/credential-provider-web-identity": "3.465.0", - "@aws-sdk/types": "3.465.0", + "@aws-sdk/credential-provider-env": "3.468.0", + "@aws-sdk/credential-provider-ini": "3.470.0", + "@aws-sdk/credential-provider-process": "3.468.0", + "@aws-sdk/credential-provider-sso": "3.470.0", + "@aws-sdk/credential-provider-web-identity": "3.468.0", + "@aws-sdk/types": "3.468.0", "@smithy/credential-provider-imds": "^2.0.0", "@smithy/property-provider": "^2.0.0", "@smithy/shared-ini-file-loader": "^2.0.6", - "@smithy/types": "^2.5.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -497,14 +497,14 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.465.0.tgz", - "integrity": "sha512-YE6ZrRYwvb8969hWQnr4uvOJ8RU0JrNsk3vWTe/czly37ioZUEhi8jmpQp4f2mX/6U6buoFGWu5Se3VCdw2SFQ==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.468.0.tgz", + "integrity": "sha512-OYSn1A/UsyPJ7Z8Q2cNhTf55O36shPmSsvOfND04nSfu1nPaR+VUvvsP7v+brhGpwC/GAKTIdGAo4blH31BS6A==", "dependencies": { - "@aws-sdk/types": "3.465.0", + "@aws-sdk/types": "3.468.0", "@smithy/property-provider": "^2.0.0", "@smithy/shared-ini-file-loader": "^2.0.6", - "@smithy/types": "^2.5.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -512,16 +512,16 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.465.0.tgz", - "integrity": "sha512-tLIP/4JQIJpn8yIg6RZRQ2nmvj5i4wLZvYvY4RtaFv2JrQUkmmTfyOZJuOBrIFRwJjx0fHmFu8DJjcOhMzllIQ==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.470.0.tgz", + "integrity": "sha512-biGDSh9S9KDR9Tl/8cCPn9g5KPNkXg/CIJIOk3X+6valktbJ2UVYBzi0ZX4vZiudt5ry/Hsu6Pgo+KN1AmBWdg==", "dependencies": { - "@aws-sdk/client-sso": "3.465.0", - "@aws-sdk/token-providers": "3.465.0", - "@aws-sdk/types": "3.465.0", + "@aws-sdk/client-sso": "3.470.0", + "@aws-sdk/token-providers": "3.470.0", + "@aws-sdk/types": "3.468.0", "@smithy/property-provider": "^2.0.0", "@smithy/shared-ini-file-loader": "^2.0.6", - "@smithy/types": "^2.5.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -529,13 +529,13 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.465.0.tgz", - "integrity": "sha512-B4Y75fMTZIniEU0yyqat+9NsQbYlXdqP5Y3bShkaG3pGLOHzF/xMlWuG+D3kkQ806PLYi+BgfVls4BcO+NyVcA==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.468.0.tgz", + "integrity": "sha512-rexymPmXjtkwCPfhnUq3EjO1rSkf39R4Jz9CqiM7OsqK2qlT5Y/V3gnMKn0ZMXsYaQOMfM3cT5xly5R+OKDHlw==", "dependencies": { - "@aws-sdk/types": "3.465.0", + "@aws-sdk/types": "3.468.0", "@smithy/property-provider": "^2.0.0", - "@smithy/types": "^2.5.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -543,13 +543,13 @@ } }, "node_modules/@aws-sdk/lib-storage": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.465.0.tgz", - "integrity": "sha512-nsh8FgVw31N0GO6yiThg2I8yG0rRlpvnEm/MYQ8ETpmm2uq4inbup7eS8FxtfxhU6cGcJZu+YLeBwEdKrTSmvA==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.470.0.tgz", + "integrity": "sha512-K3qLp6oEpcz8WEfob/TYRdFkgwqoGSzqADoF4HY7GuHZASu5zEK87hTiBUZt/cli7/jjZMw2Am/jKbowPUG5Tw==", "dependencies": { "@smithy/abort-controller": "^2.0.1", - "@smithy/middleware-endpoint": "^2.2.0", - "@smithy/smithy-client": "^2.1.15", + "@smithy/middleware-endpoint": "^2.2.3", + "@smithy/smithy-client": "^2.1.18", "buffer": "5.6.0", "events": "3.3.0", "stream-browserify": "3.0.0", @@ -563,15 +563,15 @@ } }, "node_modules/@aws-sdk/middleware-bucket-endpoint": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.465.0.tgz", - "integrity": "sha512-cyIR9Nwyie6giLypuLSUmZF3O5GqVRwia3Nq1B/6/Ho0LccH0/HT2x/nM8fFcnskWSNGTVZVvZzSrVYXynTtjA==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.470.0.tgz", + "integrity": "sha512-vLXXNWtsRmEIwzJ9HUQfIuTNAsEzvCv0Icsnkvt2BiBZXnmHdp2vIC3e3+kfy1D7dVQloXqMmnfcLu/BUMu2Jw==", "dependencies": { - "@aws-sdk/types": "3.465.0", + "@aws-sdk/types": "3.468.0", "@aws-sdk/util-arn-parser": "3.465.0", - "@smithy/node-config-provider": "^2.1.5", - "@smithy/protocol-http": "^3.0.9", - "@smithy/types": "^2.5.0", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/protocol-http": "^3.0.11", + "@smithy/types": "^2.7.0", "@smithy/util-config-provider": "^2.0.0", "tslib": "^2.5.0" }, @@ -580,13 +580,13 @@ } }, "node_modules/@aws-sdk/middleware-expect-continue": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.465.0.tgz", - "integrity": "sha512-kthlPQDASsdtdVqKVKkJn9bHptcEpsQ6ptWeGBCYigicULvWI1fjSTeXrYczxNMVg+1Sv8xkb/bh+kUEu7mvZg==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.468.0.tgz", + "integrity": "sha512-/wmLjmfgeulxhhmnxX3X3N933TvGsYckVIFjAtDSpLjqkbwzEcNiLq7AdmNJ4BfxG0MCMgcht561DCCD19x8Bg==", "dependencies": { - "@aws-sdk/types": "3.465.0", - "@smithy/protocol-http": "^3.0.9", - "@smithy/types": "^2.5.0", + "@aws-sdk/types": "3.468.0", + "@smithy/protocol-http": "^3.0.11", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -594,16 +594,16 @@ } }, "node_modules/@aws-sdk/middleware-flexible-checksums": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.465.0.tgz", - "integrity": "sha512-joWEWN0v1CpI4q9JlZki0AchVwLL8Les0+V+3JHVDcDgL4RQ04YUk9lMYbtldDwdyBNquKwW2+sGtIo/6ng0Tg==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.468.0.tgz", + "integrity": "sha512-LQwL/N5MCj3Y5keLLewHTqeAXUIMsHFZyxDXRm/uxrOon9ufLKDvGvzAmfwn1/CuSUo66ZfT8VPSA4BsC90RtA==", "dependencies": { "@aws-crypto/crc32": "3.0.0", "@aws-crypto/crc32c": "3.0.0", - "@aws-sdk/types": "3.465.0", + "@aws-sdk/types": "3.468.0", "@smithy/is-array-buffer": "^2.0.0", - "@smithy/protocol-http": "^3.0.9", - "@smithy/types": "^2.5.0", + "@smithy/protocol-http": "^3.0.11", + "@smithy/types": "^2.7.0", "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" }, @@ -612,13 +612,13 @@ } }, "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.465.0.tgz", - "integrity": "sha512-nnGva8eplwEJqdVzcb+xF2Fwua0PpiwxMEvpnIy73gNbetbJdgFIprryMLYes00xzJEqnew+LWdpcd3YyS34ZA==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.468.0.tgz", + "integrity": "sha512-gwQ+/QhX+lhof304r6zbZ/V5l5cjhGRxLL3CjH1uJPMcOAbw9wUlMdl+ibr8UwBZ5elfKFGiB1cdW/0uMchw0w==", "dependencies": { - "@aws-sdk/types": "3.465.0", - "@smithy/protocol-http": "^3.0.9", - "@smithy/types": "^2.5.0", + "@aws-sdk/types": "3.468.0", + "@smithy/protocol-http": "^3.0.11", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -626,12 +626,12 @@ } }, "node_modules/@aws-sdk/middleware-location-constraint": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.465.0.tgz", - "integrity": "sha512-2+mwaI/ltE2ibr5poC+E9kJRfVIv7aHpAJkLu7uvESch9cpuFuGJu6fq0/gA82eKZ/gwpBj+AaXBsDFfsDWFsw==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.468.0.tgz", + "integrity": "sha512-0gBX/lDynQr4YIhM9h1dVnkVWqrg+34iOCVIUq8jHxzUzgZWglGkG9lHGGg0r1xkLTmegeoo1OKH8wrQ6n33Cg==", "dependencies": { - "@aws-sdk/types": "3.465.0", - "@smithy/types": "^2.5.0", + "@aws-sdk/types": "3.468.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -639,12 +639,12 @@ } }, "node_modules/@aws-sdk/middleware-logger": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.465.0.tgz", - "integrity": "sha512-aGMx1aSlzDDgjZ7fSxLhGD5rkyCfHwq04TSB5fQAgDBqUjj4IQXZwmNglX0sLRmArXZtDglUVESOfKvTANJTPg==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.468.0.tgz", + "integrity": "sha512-X5XHKV7DHRXI3f29SAhJPe/OxWRFgDWDMMCALfzhmJfCi6Jfh0M14cJKoC+nl+dk9lB+36+jKjhjETZaL2bPlA==", "dependencies": { - "@aws-sdk/types": "3.465.0", - "@smithy/types": "^2.5.0", + "@aws-sdk/types": "3.468.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -652,13 +652,13 @@ } }, "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.465.0.tgz", - "integrity": "sha512-ol3dlsTnryBhV5qkUvK5Yg3dRaV1NXIxYJaIkShrl8XAv4wRNcDJDmO5NYq5eVZ3zgV1nv6xIpZ//dDnnf6Z+g==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.468.0.tgz", + "integrity": "sha512-vch9IQib2Ng9ucSyRW2eKNQXHUPb5jUPCLA5otTW/8nGjcOU37LxQG4WrxO7uaJ9Oe8hjHO+hViE3P0KISUhtA==", "dependencies": { - "@aws-sdk/types": "3.465.0", - "@smithy/protocol-http": "^3.0.9", - "@smithy/types": "^2.5.0", + "@aws-sdk/types": "3.468.0", + "@smithy/protocol-http": "^3.0.11", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -666,17 +666,17 @@ } }, "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.465.0.tgz", - "integrity": "sha512-P4cpNv0EcMSSLojjqKKQjKSGZc13QJQAscUs+fcvpBg2BNR9ByxrQgXXMqQiIqr8fgAhADqN2Tp8hJk0CzfnAg==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.470.0.tgz", + "integrity": "sha512-yhavP2ju+upF50ccDFQNhVPxPOPgUUPs2JqPoq7NzTKZWIyRY65F3UC7CBmrSNiaL0S76r4kDdOkVcGUdI6ZiQ==", "dependencies": { - "@aws-sdk/types": "3.465.0", + "@aws-sdk/types": "3.468.0", "@aws-sdk/util-arn-parser": "3.465.0", - "@smithy/node-config-provider": "^2.1.5", - "@smithy/protocol-http": "^3.0.9", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/protocol-http": "^3.0.11", "@smithy/signature-v4": "^2.0.0", - "@smithy/smithy-client": "^2.1.15", - "@smithy/types": "^2.5.0", + "@smithy/smithy-client": "^2.1.18", + "@smithy/types": "^2.7.0", "@smithy/util-config-provider": "^2.0.0", "tslib": "^2.5.0" }, @@ -685,13 +685,13 @@ } }, "node_modules/@aws-sdk/middleware-sdk-sts": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.465.0.tgz", - "integrity": "sha512-PmTM5ycUe1RLAPrQXLCR8JzKamJuKDB0aIW4rx4/skurzWsEGRI47WHggf9N7sPie41IBGUhRbXcf7sfPjvI3Q==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.468.0.tgz", + "integrity": "sha512-xRy8NKfHbmafHwdbotdWgHBvRs0YZgk20GrhFJKp43bkqVbJ5bNlh3nQXf1DeFY9fARR84Bfotya4fwCUHWgZg==", "dependencies": { - "@aws-sdk/middleware-signing": "3.465.0", - "@aws-sdk/types": "3.465.0", - "@smithy/types": "^2.5.0", + "@aws-sdk/middleware-signing": "3.468.0", + "@aws-sdk/types": "3.468.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -699,16 +699,16 @@ } }, "node_modules/@aws-sdk/middleware-signing": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.465.0.tgz", - "integrity": "sha512-d90KONWXSC3jA0kqJ6u8ygS4LoMg1TmSM7bPhHyibJVAEhnrlB4Aq1CWljNbbtphGpdKy5/XRM9O0/XCXWKQ4w==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.468.0.tgz", + "integrity": "sha512-s+7fSB1gdnnTj5O0aCCarX3z5Vppop8kazbNSZADdkfHIDWCN80IH4ZNjY3OWqaAz0HmR4LNNrovdR304ojb4Q==", "dependencies": { - "@aws-sdk/types": "3.465.0", + "@aws-sdk/types": "3.468.0", "@smithy/property-provider": "^2.0.0", - "@smithy/protocol-http": "^3.0.9", + "@smithy/protocol-http": "^3.0.11", "@smithy/signature-v4": "^2.0.0", - "@smithy/types": "^2.5.0", - "@smithy/util-middleware": "^2.0.6", + "@smithy/types": "^2.7.0", + "@smithy/util-middleware": "^2.0.8", "tslib": "^2.5.0" }, "engines": { @@ -716,12 +716,12 @@ } }, "node_modules/@aws-sdk/middleware-ssec": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.465.0.tgz", - "integrity": "sha512-PHc1guBGp7fwoPlJkAEaHVkiYPfs93jffwsBvIevCsHcfYPv6L26/5Nk7KR+6IyuGQHpUbSC080SP1jYjOy01A==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.468.0.tgz", + "integrity": "sha512-y1qLW24wRkOGBTK5d6eJXf6d8HYo4rzT4a1mNDN1rd18NSffwQ6Yke5qeUiIaxa0y/l+FvvNYErbhYtij2rJoQ==", "dependencies": { - "@aws-sdk/types": "3.465.0", - "@smithy/types": "^2.5.0", + "@aws-sdk/types": "3.468.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -729,14 +729,14 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.465.0.tgz", - "integrity": "sha512-1MvIWMj2nktLOJN8Kh4jiTK28oL85fTeoXHZ+V8xYMzont6C6Y8gQPtg7ka+RotHwqWMrovfnANisnX8EzEP/Q==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.470.0.tgz", + "integrity": "sha512-s0YRGgf4fT5KwwTefpoNUQfB5JghzXyvmPfY1QuFEMeVQNxv0OPuydzo3rY2oXPkZjkulKDtpm5jzIHwut75hA==", "dependencies": { - "@aws-sdk/types": "3.465.0", - "@aws-sdk/util-endpoints": "3.465.0", - "@smithy/protocol-http": "^3.0.9", - "@smithy/types": "^2.5.0", + "@aws-sdk/types": "3.468.0", + "@aws-sdk/util-endpoints": "3.470.0", + "@smithy/protocol-http": "^3.0.11", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -744,14 +744,14 @@ } }, "node_modules/@aws-sdk/region-config-resolver": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.465.0.tgz", - "integrity": "sha512-h0Phd2Ae873dsPSWuxqxz2yRC5NMeeWxQiJPh4j42HF8g7dZK7tMQPkYznAoA/BzSBsEX87sbr3MmigquSyUTA==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.470.0.tgz", + "integrity": "sha512-C1o1J06iIw8cyAAOvHqT4Bbqf+PgQ/RDlSyjt2gFfP2OovDpc2o2S90dE8f8iZdSGpg70N5MikT1DBhW9NbhtQ==", "dependencies": { - "@smithy/node-config-provider": "^2.1.5", - "@smithy/types": "^2.5.0", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/types": "^2.7.0", "@smithy/util-config-provider": "^2.0.0", - "@smithy/util-middleware": "^2.0.6", + "@smithy/util-middleware": "^2.0.8", "tslib": "^2.5.0" }, "engines": { @@ -759,15 +759,15 @@ } }, "node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.465.0.tgz", - "integrity": "sha512-p620S4YCr2CPNIdSnRvBqScAqWztjef9EwtD1MAkxTTrjNAyxSCf4apeQ2pdaWNNkJT1vSc/YKBAJ7l2SWn7rw==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.470.0.tgz", + "integrity": "sha512-pbgQW5Fbu7tLOQFXTnb9Mp8GL+b4DnkGwXHZjE9AmwDisW/jlGwf+EFKr2xnuoNiaqvj0zHY+vvN6dewzik7Og==", "dependencies": { - "@aws-sdk/middleware-sdk-s3": "3.465.0", - "@aws-sdk/types": "3.465.0", - "@smithy/protocol-http": "^3.0.9", + "@aws-sdk/middleware-sdk-s3": "3.470.0", + "@aws-sdk/types": "3.468.0", + "@smithy/protocol-http": "^3.0.11", "@smithy/signature-v4": "^2.0.0", - "@smithy/types": "^2.5.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -775,45 +775,45 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.465.0.tgz", - "integrity": "sha512-NaZbsyLs3whzRHGV27hrRwEdXB/tEK6tqn/aCNBy862LhVzocY1A+eYLKrnrvpraOOd2vyAuOtvvB3RMIdiL6g==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.470.0.tgz", + "integrity": "sha512-rzxnJxEUJiV69Cxsf0AHXTqJqTACITwcSH/PL4lWP4uvtzdrzSi3KA3u2aWHWpOcdE6+JFvdICscsbBSo3/TOg==", "dependencies": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/middleware-host-header": "3.465.0", - "@aws-sdk/middleware-logger": "3.465.0", - "@aws-sdk/middleware-recursion-detection": "3.465.0", - "@aws-sdk/middleware-user-agent": "3.465.0", - "@aws-sdk/region-config-resolver": "3.465.0", - "@aws-sdk/types": "3.465.0", - "@aws-sdk/util-endpoints": "3.465.0", - "@aws-sdk/util-user-agent-browser": "3.465.0", - "@aws-sdk/util-user-agent-node": "3.465.0", - "@smithy/config-resolver": "^2.0.18", - "@smithy/fetch-http-handler": "^2.2.6", - "@smithy/hash-node": "^2.0.15", - "@smithy/invalid-dependency": "^2.0.13", - "@smithy/middleware-content-length": "^2.0.15", - "@smithy/middleware-endpoint": "^2.2.0", - "@smithy/middleware-retry": "^2.0.20", - "@smithy/middleware-serde": "^2.0.13", - "@smithy/middleware-stack": "^2.0.7", - "@smithy/node-config-provider": "^2.1.5", - "@smithy/node-http-handler": "^2.1.9", + "@aws-sdk/middleware-host-header": "3.468.0", + "@aws-sdk/middleware-logger": "3.468.0", + "@aws-sdk/middleware-recursion-detection": "3.468.0", + "@aws-sdk/middleware-user-agent": "3.470.0", + "@aws-sdk/region-config-resolver": "3.470.0", + "@aws-sdk/types": "3.468.0", + "@aws-sdk/util-endpoints": "3.470.0", + "@aws-sdk/util-user-agent-browser": "3.468.0", + "@aws-sdk/util-user-agent-node": "3.470.0", + "@smithy/config-resolver": "^2.0.21", + "@smithy/fetch-http-handler": "^2.3.1", + "@smithy/hash-node": "^2.0.17", + "@smithy/invalid-dependency": "^2.0.15", + "@smithy/middleware-content-length": "^2.0.17", + "@smithy/middleware-endpoint": "^2.2.3", + "@smithy/middleware-retry": "^2.0.24", + "@smithy/middleware-serde": "^2.0.15", + "@smithy/middleware-stack": "^2.0.9", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/node-http-handler": "^2.2.1", "@smithy/property-provider": "^2.0.0", - "@smithy/protocol-http": "^3.0.9", + "@smithy/protocol-http": "^3.0.11", "@smithy/shared-ini-file-loader": "^2.0.6", - "@smithy/smithy-client": "^2.1.15", - "@smithy/types": "^2.5.0", - "@smithy/url-parser": "^2.0.13", + "@smithy/smithy-client": "^2.1.18", + "@smithy/types": "^2.7.0", + "@smithy/url-parser": "^2.0.15", "@smithy/util-base64": "^2.0.1", - "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.1", "@smithy/util-body-length-node": "^2.1.0", - "@smithy/util-defaults-mode-browser": "^2.0.19", - "@smithy/util-defaults-mode-node": "^2.0.25", - "@smithy/util-endpoints": "^1.0.4", - "@smithy/util-retry": "^2.0.6", + "@smithy/util-defaults-mode-browser": "^2.0.22", + "@smithy/util-defaults-mode-node": "^2.0.29", + "@smithy/util-endpoints": "^1.0.7", + "@smithy/util-retry": "^2.0.8", "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" }, @@ -822,11 +822,11 @@ } }, "node_modules/@aws-sdk/types": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.465.0.tgz", - "integrity": "sha512-Clqu2eD50OOzwSftGpzJrIOGev/7VJhJpc02SeS4cqFgI9EVd+rnFKS/Ux0kcwjLQBMiPcCLtql3KAHApFHAIA==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.468.0.tgz", + "integrity": "sha512-rx/9uHI4inRbp2tw3Y4Ih4PNZkVj32h7WneSg3MVgVjAoVD5Zti9KhS5hkvsBxfgmQmg0AQbE+b1sy5WGAgntA==", "dependencies": { - "@smithy/types": "^2.5.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -845,12 +845,12 @@ } }, "node_modules/@aws-sdk/util-endpoints": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.465.0.tgz", - "integrity": "sha512-lDpBN1faVw8Udg5hIo+LJaNfllbBF86PCisv628vfcggO8/EArL/v2Eos0KeqVT8yaINXCRSagwfo5TNTuW0KQ==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.470.0.tgz", + "integrity": "sha512-6N6VvPCmu+89p5Ez/+gLf+X620iQ9JpIs8p8ECZiCodirzFOe8NC1O2S7eov7YiG9IHSuodqn/0qNq+v+oLe0A==", "dependencies": { - "@aws-sdk/types": "3.465.0", - "@smithy/util-endpoints": "^1.0.4", + "@aws-sdk/types": "3.468.0", + "@smithy/util-endpoints": "^1.0.7", "tslib": "^2.5.0" }, "engines": { @@ -869,24 +869,24 @@ } }, "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.465.0.tgz", - "integrity": "sha512-RM+LjkIsmUCBJ4yQeBnkJWJTjPOPqcNaKv8bpZxatIHdvzGhXLnWLNi3qHlBsJB2mKtKRet6nAUmKmzZR1sDzA==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.468.0.tgz", + "integrity": "sha512-OJyhWWsDEizR3L+dCgMXSUmaCywkiZ7HSbnQytbeKGwokIhD69HTiJcibF/sgcM5gk4k3Mq3puUhGnEZ46GIig==", "dependencies": { - "@aws-sdk/types": "3.465.0", - "@smithy/types": "^2.5.0", + "@aws-sdk/types": "3.468.0", + "@smithy/types": "^2.7.0", "bowser": "^2.11.0", "tslib": "^2.5.0" } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.465.0.tgz", - "integrity": "sha512-XsHbq7gLCiGdy6FQ7/5nGslK0ij3Iuh051djuIICvNurlds5cqKLiBe63gX3IUUwxJcrKh4xBGviQJ52KdVSeg==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.470.0.tgz", + "integrity": "sha512-QxsZ9iVHcBB/XRdYvwfM5AMvNp58HfqkIrH88mY0cmxuvtlIGDfWjczdDrZMJk9y0vIq+cuoCHsGXHu7PyiEAQ==", "dependencies": { - "@aws-sdk/types": "3.465.0", - "@smithy/node-config-provider": "^2.1.5", - "@smithy/types": "^2.5.0", + "@aws-sdk/types": "3.468.0", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -7518,11 +7518,11 @@ } }, "node_modules/@smithy/abort-controller": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.0.14.tgz", - "integrity": "sha512-zXtteuYLWbSXnzI3O6xq3FYvigYZFW8mdytGibfarLL2lxHto9L3ILtGVnVGmFZa7SDh62l39EnU5hesLN87Fw==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.0.15.tgz", + "integrity": "sha512-JkS36PIS3/UCbq/MaozzV7jECeL+BTt4R75bwY8i+4RASys4xOyUS1HsRyUNSqUXFP4QyCz5aNnh3ltuaxv+pw==", "dependencies": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -7547,14 +7547,14 @@ } }, "node_modules/@smithy/config-resolver": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.0.19.tgz", - "integrity": "sha512-JsghnQ5zjWmjEVY8TFOulLdEOCj09SjRLugrHlkPZTIBBm7PQitCFVLThbsKPZQOP7N3ME1DU1nKUc1UaVnBog==", + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.0.21.tgz", + "integrity": "sha512-rlLIGT+BeqjnA6C2FWumPRJS1UW07iU5ZxDHtFuyam4W65gIaOFMjkB90ofKCIh+0mLVQrQFrl/VLtQT/6FWTA==", "dependencies": { - "@smithy/node-config-provider": "^2.1.6", - "@smithy/types": "^2.6.0", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/types": "^2.7.0", "@smithy/util-config-provider": "^2.0.0", - "@smithy/util-middleware": "^2.0.7", + "@smithy/util-middleware": "^2.0.8", "tslib": "^2.5.0" }, "engines": { @@ -7562,14 +7562,14 @@ } }, "node_modules/@smithy/credential-provider-imds": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.1.2.tgz", - "integrity": "sha512-Y62jBWdoLPSYjr9fFvJf+KwTa1EunjVr6NryTEWCnwIY93OJxwV4t0qxjwdPl/XMsUkq79ppNJSEQN6Ohnhxjw==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.1.4.tgz", + "integrity": "sha512-cwPJN1fa1YOQzhBlTXRavABEYRRchci1X79QRwzaNLySnIMJfztyv1Zkst0iZPLMnpn8+CnHu3wOHS11J5Dr3A==", "dependencies": { - "@smithy/node-config-provider": "^2.1.6", - "@smithy/property-provider": "^2.0.15", - "@smithy/types": "^2.6.0", - "@smithy/url-parser": "^2.0.14", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/property-provider": "^2.0.16", + "@smithy/types": "^2.7.0", + "@smithy/url-parser": "^2.0.15", "tslib": "^2.5.0" }, "engines": { @@ -7577,23 +7577,23 @@ } }, "node_modules/@smithy/eventstream-codec": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-2.0.14.tgz", - "integrity": "sha512-g/OU/MeWGfHDygoXgMWfG/Xb0QqDnAGcM9t2FRrVAhleXYRddGOEnfanR5cmHgB9ue52MJsyorqFjckzXsylaA==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-2.0.15.tgz", + "integrity": "sha512-crjvz3j1gGPwA0us6cwS7+5gAn35CTmqu/oIxVbYJo2Qm/sGAye6zGJnMDk3BKhWZw5kcU1G4MxciTkuBpOZPg==", "dependencies": { "@aws-crypto/crc32": "3.0.0", - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "@smithy/util-hex-encoding": "^2.0.0", "tslib": "^2.5.0" } }, "node_modules/@smithy/eventstream-serde-browser": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.0.14.tgz", - "integrity": "sha512-41wmYE9smDGJi1ZXp+LogH6BR7MkSsQD91wneIFISF/mupKULvoOJUkv/Nf0NMRxWlM3Bf1Vvi9FlR2oV4KU8Q==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.0.15.tgz", + "integrity": "sha512-WiFG5N9j3jmS5P0z5Xev6dO0c3lf7EJYC2Ncb0xDnWFvShwXNn741AF71ABr5EcZw8F4rQma0362MMjAwJeZog==", "dependencies": { - "@smithy/eventstream-serde-universal": "^2.0.14", - "@smithy/types": "^2.6.0", + "@smithy/eventstream-serde-universal": "^2.0.15", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -7601,11 +7601,11 @@ } }, "node_modules/@smithy/eventstream-serde-config-resolver": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.0.14.tgz", - "integrity": "sha512-43IyRIzQ82s+5X+t/3Ood00CcWtAXQdmUIUKMed2Qg9REPk8SVIHhpm3rwewLwg+3G2Nh8NOxXlEQu6DsPUcMw==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.0.15.tgz", + "integrity": "sha512-o65d2LRjgCbWYH+VVNlWXtmsI231SO99ZTOL4UuIPa6WTjbSHWtlXvUcJG9libhEKWmEV9DIUiH2IqyPWi7ubA==", "dependencies": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -7613,12 +7613,12 @@ } }, "node_modules/@smithy/eventstream-serde-node": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.0.14.tgz", - "integrity": "sha512-jVh9E2qAr6DxH5tWfCAl9HV6tI0pEQ3JVmu85JknDvYTC66djcjDdhctPV2EHuKWf2kjRiFJcMIn0eercW4THA==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.0.15.tgz", + "integrity": "sha512-9OOXiIhHq1VeOG6xdHkn2ZayfMYM3vzdUTV3zhcCnt+tMqA3BJK3XXTJFRR2BV28rtRM778DzqbBTf+hqwQPTg==", "dependencies": { - "@smithy/eventstream-serde-universal": "^2.0.14", - "@smithy/types": "^2.6.0", + "@smithy/eventstream-serde-universal": "^2.0.15", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -7626,12 +7626,12 @@ } }, "node_modules/@smithy/eventstream-serde-universal": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.0.14.tgz", - "integrity": "sha512-Ie35+AISNn1NmEjn5b2SchIE49pvKp4Q74bE9ME5RULWI1MgXyGkQUajWd5E6OBSr/sqGcs+rD3IjPErXnCm9g==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.0.15.tgz", + "integrity": "sha512-dP8AQp/pXlWBjvL0TaPBJC3rM0GoYv7O0Uim8d/7UKZ2Wo13bFI3/BhQfY/1DeiP1m23iCHFNFtOQxfQNBB8rQ==", "dependencies": { - "@smithy/eventstream-codec": "^2.0.14", - "@smithy/types": "^2.6.0", + "@smithy/eventstream-codec": "^2.0.15", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -7639,34 +7639,34 @@ } }, "node_modules/@smithy/fetch-http-handler": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.2.7.tgz", - "integrity": "sha512-iSDBjxuH9TgrtMYAr7j5evjvkvgwLY3y+9D547uep+JNkZ1ZT+BaeU20j6I/bO/i26ilCWFImrlXTPsfQtZdIQ==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.3.1.tgz", + "integrity": "sha512-6MNk16fqb8EwcYY8O8WxB3ArFkLZ2XppsSNo1h7SQcFdDDwIumiJeO6wRzm7iB68xvsOQzsdQKbdtTieS3hfSQ==", "dependencies": { - "@smithy/protocol-http": "^3.0.10", - "@smithy/querystring-builder": "^2.0.14", - "@smithy/types": "^2.6.0", + "@smithy/protocol-http": "^3.0.11", + "@smithy/querystring-builder": "^2.0.15", + "@smithy/types": "^2.7.0", "@smithy/util-base64": "^2.0.1", "tslib": "^2.5.0" } }, "node_modules/@smithy/hash-blob-browser": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-2.0.15.tgz", - "integrity": "sha512-HX/7GIyPUT/HDWVYe2HYQu0iRnSYpF4uZVNhAhZsObPRawk5Mv0PbyluBgIFI2DDCCKgL/tloCYYwycff1GtQg==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-2.0.16.tgz", + "integrity": "sha512-cSYRi05LA7DZDwjB1HL0BP8B56eUNNeLglVH147QTXFyuXJq/7erAIiLRfsyXB8+GfFHkSS5BHbc76a7k/AYPA==", "dependencies": { "@smithy/chunked-blob-reader": "^2.0.0", "@smithy/chunked-blob-reader-native": "^2.0.1", - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "node_modules/@smithy/hash-node": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.0.16.tgz", - "integrity": "sha512-Wbi9A0PacMYUOwjAulQP90Wl3mQ6NDwnyrZQzFjDz+UzjXOSyQMgBrTkUBz+pVoYVlX3DUu24gWMZBcit+wOGg==", + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.0.17.tgz", + "integrity": "sha512-Il6WuBcI1nD+e2DM7tTADMf01wEPGK8PAhz4D+YmDUVaoBqlA+CaH2uDJhiySifmuKBZj748IfygXty81znKhw==", "dependencies": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "@smithy/util-buffer-from": "^2.0.0", "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" @@ -7676,11 +7676,11 @@ } }, "node_modules/@smithy/hash-stream-node": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-2.0.16.tgz", - "integrity": "sha512-4x24GFdeWos1Z49MC5sYdM1j+z32zcUr6oWM9Ggm3WudFAcRIcbG9uDQ1XgJ0Kl+ZTjpqLKniG0iuWvQb2Ud1A==", + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-2.0.17.tgz", + "integrity": "sha512-ey8DtnATzp1mOXgS7rqMwSmAki6iJA+jgNucKcxRkhMB1rrICfHg+rhmIF50iLPDHUhTcS5pBMOrLzzpZftvNQ==", "dependencies": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" }, @@ -7689,11 +7689,11 @@ } }, "node_modules/@smithy/invalid-dependency": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.0.14.tgz", - "integrity": "sha512-d8ohpwZo9RzTpGlAfsWtfm1SHBSU7+N4iuZ6MzR10xDTujJJWtmXYHK1uzcr7rggbpUTaWyHpPFgnf91q0EFqQ==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.0.15.tgz", + "integrity": "sha512-dlEKBFFwVfzA5QroHlBS94NpgYjXhwN/bFfun+7w3rgxNvVy79SK0w05iGc7UAeC5t+D7gBxrzdnD6hreZnDVQ==", "dependencies": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, @@ -7709,22 +7709,22 @@ } }, "node_modules/@smithy/md5-js": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-2.0.16.tgz", - "integrity": "sha512-YhWt9aKl+EMSNXyUTUo7I01WHf3HcCkPu/Hl2QmTNwrHT49eWaY7hptAMaERZuHFH0V5xHgPKgKZo2I93DFtgQ==", + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-2.0.17.tgz", + "integrity": "sha512-jmISTCnEkOnm2oCNx/rMkvBT/eQh3aA6nktevkzbmn/VYqYEuc5Z2n5sTTqsciMSO01Lvf56wG1A4twDqovYeQ==", "dependencies": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" } }, "node_modules/@smithy/middleware-content-length": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.0.16.tgz", - "integrity": "sha512-9ddDia3pp1d3XzLXKcm7QebGxLq9iwKf+J1LapvlSOhpF8EM9SjMeSrMOOFgG+2TfW5K3+qz4IAJYYm7INYCng==", + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.0.17.tgz", + "integrity": "sha512-OyadvMcKC7lFXTNBa8/foEv7jOaqshQZkjWS9coEXPRZnNnihU/Ls+8ZuJwGNCOrN2WxXZFmDWhegbnM4vak8w==", "dependencies": { - "@smithy/protocol-http": "^3.0.10", - "@smithy/types": "^2.6.0", + "@smithy/protocol-http": "^3.0.11", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -7732,16 +7732,16 @@ } }, "node_modules/@smithy/middleware-endpoint": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.2.1.tgz", - "integrity": "sha512-dVDS7HNJl/wb0lpByXor6whqDbb1YlLoaoWYoelyYzLHioXOE7y/0iDwJWtDcN36/tVCw9EPBFZ3aans84jLpg==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.2.3.tgz", + "integrity": "sha512-nYfxuq0S/xoAjdLbyn1ixeVB6cyH9wYCMtbbOCpcCRYR5u2mMtqUtVjjPAZ/DIdlK3qe0tpB0Q76szFGNuz+kQ==", "dependencies": { - "@smithy/middleware-serde": "^2.0.14", - "@smithy/node-config-provider": "^2.1.6", - "@smithy/shared-ini-file-loader": "^2.2.5", - "@smithy/types": "^2.6.0", - "@smithy/url-parser": "^2.0.14", - "@smithy/util-middleware": "^2.0.7", + "@smithy/middleware-serde": "^2.0.15", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/shared-ini-file-loader": "^2.2.7", + "@smithy/types": "^2.7.0", + "@smithy/url-parser": "^2.0.15", + "@smithy/util-middleware": "^2.0.8", "tslib": "^2.5.0" }, "engines": { @@ -7749,16 +7749,17 @@ } }, "node_modules/@smithy/middleware-retry": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.0.21.tgz", - "integrity": "sha512-EZS1EXv1k6IJX6hyu/0yNQuPcPaXwG8SWljQHYueyRbOxmqYgoWMWPtfZj0xRRQ4YtLawQSpBgAeiJltq8/MPw==", + "version": "2.0.24", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.0.24.tgz", + "integrity": "sha512-q2SvHTYu96N7lYrn3VSuX3vRpxXHR/Cig6MJpGWxd0BWodUQUWlKvXpWQZA+lTaFJU7tUvpKhRd4p4MU3PbeJg==", "dependencies": { - "@smithy/node-config-provider": "^2.1.6", - "@smithy/protocol-http": "^3.0.10", - "@smithy/service-error-classification": "^2.0.7", - "@smithy/types": "^2.6.0", - "@smithy/util-middleware": "^2.0.7", - "@smithy/util-retry": "^2.0.7", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/protocol-http": "^3.0.11", + "@smithy/service-error-classification": "^2.0.8", + "@smithy/smithy-client": "^2.1.18", + "@smithy/types": "^2.7.0", + "@smithy/util-middleware": "^2.0.8", + "@smithy/util-retry": "^2.0.8", "tslib": "^2.5.0", "uuid": "^8.3.2" }, @@ -7775,11 +7776,11 @@ } }, "node_modules/@smithy/middleware-serde": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.0.14.tgz", - "integrity": "sha512-hFi3FqoYWDntCYA2IGY6gJ6FKjq2gye+1tfxF2HnIJB5uW8y2DhpRNBSUMoqP+qvYzRqZ6ntv4kgbG+o3pX57g==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.0.15.tgz", + "integrity": "sha512-FOZRFk/zN4AT4wzGuBY+39XWe+ZnCFd0gZtyw3f9Okn2CJPixl9GyWe98TIaljeZdqWkgrzGyPre20AcW2UMHQ==", "dependencies": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -7787,11 +7788,11 @@ } }, "node_modules/@smithy/middleware-stack": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.0.8.tgz", - "integrity": "sha512-7/N59j0zWqVEKExJcA14MrLDZ/IeN+d6nbkN8ucs+eURyaDUXWYlZrQmMOd/TyptcQv0+RDlgag/zSTTV62y/Q==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.0.9.tgz", + "integrity": "sha512-bCB5dUtGQ5wh7QNL2ELxmDc6g7ih7jWU3Kx6MYH1h4mZbv9xL3WyhKHojRltThCB1arLPyTUFDi+x6fB/oabtA==", "dependencies": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -7799,13 +7800,13 @@ } }, "node_modules/@smithy/node-config-provider": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.1.6.tgz", - "integrity": "sha512-HLqTs6O78m3M3z1cPLFxddxhEPv5MkVatfPuxoVO3A+cHZanNd/H5I6btcdHy6N2CB1MJ/lihJC92h30SESsBA==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.1.8.tgz", + "integrity": "sha512-+w26OKakaBUGp+UG+dxYZtFb5fs3tgHg3/QrRrmUZj+rl3cIuw840vFUXX35cVPTUCQIiTqmz7CpVF7+hdINdQ==", "dependencies": { - "@smithy/property-provider": "^2.0.15", - "@smithy/shared-ini-file-loader": "^2.2.5", - "@smithy/types": "^2.6.0", + "@smithy/property-provider": "^2.0.16", + "@smithy/shared-ini-file-loader": "^2.2.7", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -7813,14 +7814,14 @@ } }, "node_modules/@smithy/node-http-handler": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.1.10.tgz", - "integrity": "sha512-lkALAwtN6odygIM4nB8aHDahINM6WXXjNrZmWQAh0RSossySRT2qa31cFv0ZBuAYVWeprskRk13AFvvLmf1WLw==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.2.1.tgz", + "integrity": "sha512-8iAKQrC8+VFHPAT8pg4/j6hlsTQh+NKOWlctJBrYtQa4ExcxX7aSg3vdQ2XLoYwJotFUurg/NLqFCmZaPRrogw==", "dependencies": { - "@smithy/abort-controller": "^2.0.14", - "@smithy/protocol-http": "^3.0.10", - "@smithy/querystring-builder": "^2.0.14", - "@smithy/types": "^2.6.0", + "@smithy/abort-controller": "^2.0.15", + "@smithy/protocol-http": "^3.0.11", + "@smithy/querystring-builder": "^2.0.15", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -7828,11 +7829,11 @@ } }, "node_modules/@smithy/property-provider": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.0.15.tgz", - "integrity": "sha512-YbRFBn8oiiC3o1Kn3a4KjGa6k47rCM9++5W9cWqYn9WnkyH+hBWgfJAckuxpyA2Hq6Ys4eFrWzXq6fqHEw7iew==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.0.16.tgz", + "integrity": "sha512-28Ky0LlOqtEjwg5CdHmwwaDRHcTWfPRzkT6HrhwOSRS2RryAvuDfJrZpM+BMcrdeCyEg1mbcgIMoqTla+rdL8Q==", "dependencies": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -7840,11 +7841,11 @@ } }, "node_modules/@smithy/protocol-http": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.0.10.tgz", - "integrity": "sha512-6+tjNk7rXW7YTeGo9qwxXj/2BFpJTe37kTj3EnZCoX/nH+NP/WLA7O83fz8XhkGqsaAhLUPo/bB12vvd47nsmg==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.0.11.tgz", + "integrity": "sha512-3ziB8fHuXIRamV/akp/sqiWmNPR6X+9SB8Xxnozzj+Nq7hSpyKdFHd1FLpBkgfGFUTzzcBJQlDZPSyxzmdcx5A==", "dependencies": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -7852,11 +7853,11 @@ } }, "node_modules/@smithy/querystring-builder": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.0.14.tgz", - "integrity": "sha512-lQ4pm9vTv9nIhl5jt6uVMPludr6syE2FyJmHsIJJuOD7QPIJnrf9HhUGf1iHh9KJ4CUv21tpOU3X6s0rB6uJ0g==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.0.15.tgz", + "integrity": "sha512-e1q85aT6HutvouOdN+dMsN0jcdshp50PSCvxDvo6aIM57LqeXimjfONUEgfqQ4IFpYWAtVixptyIRE5frMp/2A==", "dependencies": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "@smithy/util-uri-escape": "^2.0.0", "tslib": "^2.5.0" }, @@ -7865,11 +7866,11 @@ } }, "node_modules/@smithy/querystring-parser": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.0.14.tgz", - "integrity": "sha512-+cbtXWI9tNtQjlgQg3CA+pvL3zKTAxPnG3Pj6MP89CR3vi3QMmD0SOWoq84tqZDnJCxlsusbgIXk1ngMReXo+A==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.0.15.tgz", + "integrity": "sha512-jbBvoK3cc81Cj1c1TH1qMYxNQKHrYQ2DoTntN9FBbtUWcGhc+T4FP6kCKYwRLXyU4AajwGIZstvNAmIEgUUNTQ==", "dependencies": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -7877,22 +7878,22 @@ } }, "node_modules/@smithy/service-error-classification": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.0.7.tgz", - "integrity": "sha512-LLxgW12qGz8doYto15kZ4x1rHjtXl0BnCG6T6Wb8z2DI4PT9cJfOSvzbuLzy7+5I24PAepKgFeWHRd9GYy3Z9w==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.0.8.tgz", + "integrity": "sha512-jCw9+005im8tsfYvwwSc4TTvd29kXRFkH9peQBg5R/4DD03ieGm6v6Hpv9nIAh98GwgYg1KrztcINC1s4o7/hg==", "dependencies": { - "@smithy/types": "^2.6.0" + "@smithy/types": "^2.7.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@smithy/shared-ini-file-loader": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.2.5.tgz", - "integrity": "sha512-LHA68Iu7SmNwfAVe8egmjDCy648/7iJR/fK1UnVw+iAOUJoEYhX2DLgVd5pWllqdDiRbQQzgaHLcRokM+UFR1w==", + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.2.7.tgz", + "integrity": "sha512-0Qt5CuiogIuvQIfK+be7oVHcPsayLgfLJGkPlbgdbl0lD28nUKu4p11L+UG3SAEsqc9UsazO+nErPXw7+IgDpQ==", "dependencies": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -7900,15 +7901,15 @@ } }, "node_modules/@smithy/signature-v4": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.0.16.tgz", - "integrity": "sha512-ilLY85xS2kZZzTb83diQKYLIYALvart0KnBaKnIRnMBHAGEio5aHSlANQoxVn0VsonwmQ3CnWhnCT0sERD8uTg==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.0.18.tgz", + "integrity": "sha512-SJRAj9jT/l9ocm8D0GojMbnA1sp7I4JeStOQ4lEXI8A5eHE73vbjlzlqIFB7cLvIgau0oUl4cGVpF9IGCrvjlw==", "dependencies": { - "@smithy/eventstream-codec": "^2.0.14", + "@smithy/eventstream-codec": "^2.0.15", "@smithy/is-array-buffer": "^2.0.0", - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "@smithy/util-hex-encoding": "^2.0.0", - "@smithy/util-middleware": "^2.0.7", + "@smithy/util-middleware": "^2.0.8", "@smithy/util-uri-escape": "^2.0.0", "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" @@ -7918,13 +7919,13 @@ } }, "node_modules/@smithy/smithy-client": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.1.16.tgz", - "integrity": "sha512-Lw67+yQSpLl4YkDLUzI2KgS8TXclXmbzSeOJUmRFS4ueT56B4pw3RZRF/SRzvgyxM/HxgkUan8oSHXCujPDafQ==", + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.1.18.tgz", + "integrity": "sha512-7FqdbaJiVaHJDD9IfDhmzhSDbpjyx+ZsfdYuOpDJF09rl8qlIAIlZNoSaflKrQ3cEXZN2YxGPaNWGhbYimyIRQ==", "dependencies": { - "@smithy/middleware-stack": "^2.0.8", - "@smithy/types": "^2.6.0", - "@smithy/util-stream": "^2.0.21", + "@smithy/middleware-stack": "^2.0.9", + "@smithy/types": "^2.7.0", + "@smithy/util-stream": "^2.0.23", "tslib": "^2.5.0" }, "engines": { @@ -7932,9 +7933,9 @@ } }, "node_modules/@smithy/types": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.6.0.tgz", - "integrity": "sha512-PgqxJq2IcdMF9iAasxcqZqqoOXBHufEfmbEUdN1pmJrJltT42b0Sc8UiYSWWzKkciIp9/mZDpzYi4qYG1qqg6g==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.7.0.tgz", + "integrity": "sha512-1OIFyhK+vOkMbu4aN2HZz/MomREkrAC/HqY5mlJMUJfGrPRwijJDTeiN8Rnj9zUaB8ogXAfIOtZrrgqZ4w7Wnw==", "dependencies": { "tslib": "^2.5.0" }, @@ -7943,12 +7944,12 @@ } }, "node_modules/@smithy/url-parser": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.0.14.tgz", - "integrity": "sha512-kbu17Y1AFXi5lNlySdDj7ZzmvupyWKCX/0jNZ8ffquRyGdbDZb+eBh0QnWqsSmnZa/ctyWaTf7n4l/pXLExrnw==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.0.15.tgz", + "integrity": "sha512-sADUncUj9rNbOTrdDGm4EXlUs0eQ9dyEo+V74PJoULY4jSQxS+9gwEgsPYyiu8PUOv16JC/MpHonOgqP/IEDZA==", "dependencies": { - "@smithy/querystring-parser": "^2.0.14", - "@smithy/types": "^2.6.0", + "@smithy/querystring-parser": "^2.0.15", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, @@ -7965,9 +7966,9 @@ } }, "node_modules/@smithy/util-body-length-browser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-2.0.0.tgz", - "integrity": "sha512-JdDuS4ircJt+FDnaQj88TzZY3+njZ6O+D3uakS32f2VNnDo3vyEuNdBOh/oFd8Df1zSZOuH1HEChk2AOYDezZg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-2.0.1.tgz", + "integrity": "sha512-NXYp3ttgUlwkaug4bjBzJ5+yIbUbUx8VsSLuHZROQpoik+gRkIBeEG9MPVYfvPNpuXb/puqodeeUXcKFe7BLOQ==", "dependencies": { "tslib": "^2.5.0" } @@ -8007,13 +8008,13 @@ } }, "node_modules/@smithy/util-defaults-mode-browser": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.0.20.tgz", - "integrity": "sha512-QJtnbTIl0/BbEASkx1MUFf6EaoWqWW1/IM90N++8NNscePvPf77GheYfpoPis6CBQawUWq8QepTP2QUSAdrVkw==", + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.0.22.tgz", + "integrity": "sha512-qcF20IHHH96FlktvBRICDXDhLPtpVmtksHmqNGtotb9B0DYWXsC6jWXrkhrrwF7tH26nj+npVTqh9isiFV1gdA==", "dependencies": { - "@smithy/property-provider": "^2.0.15", - "@smithy/smithy-client": "^2.1.16", - "@smithy/types": "^2.6.0", + "@smithy/property-provider": "^2.0.16", + "@smithy/smithy-client": "^2.1.18", + "@smithy/types": "^2.7.0", "bowser": "^2.11.0", "tslib": "^2.5.0" }, @@ -8022,16 +8023,16 @@ } }, "node_modules/@smithy/util-defaults-mode-node": { - "version": "2.0.26", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.26.tgz", - "integrity": "sha512-lGFPOFCHv1ql019oegYqa54BZH7HREw6EBqjDLbAr0wquMX0BDi2sg8TJ6Eq+JGLijkZbJB73m4+aK8OFAapMg==", + "version": "2.0.29", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.29.tgz", + "integrity": "sha512-+uG/15VoUh6JV2fdY9CM++vnSuMQ1VKZ6BdnkUM7R++C/vLjnlg+ToiSR1FqKZbMmKBXmsr8c/TsDWMAYvxbxQ==", "dependencies": { - "@smithy/config-resolver": "^2.0.19", - "@smithy/credential-provider-imds": "^2.1.2", - "@smithy/node-config-provider": "^2.1.6", - "@smithy/property-provider": "^2.0.15", - "@smithy/smithy-client": "^2.1.16", - "@smithy/types": "^2.6.0", + "@smithy/config-resolver": "^2.0.21", + "@smithy/credential-provider-imds": "^2.1.4", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/property-provider": "^2.0.16", + "@smithy/smithy-client": "^2.1.18", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -8039,12 +8040,12 @@ } }, "node_modules/@smithy/util-endpoints": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-1.0.5.tgz", - "integrity": "sha512-K7qNuCOD5K/90MjHvHm9kJldrfm40UxWYQxNEShMFxV/lCCCRIg8R4uu1PFAxRvPxNpIdcrh1uK6I1ISjDXZJw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-1.0.7.tgz", + "integrity": "sha512-Q2gEind3jxoLk6hdKWyESMU7LnXz8aamVwM+VeVjOYzYT1PalGlY/ETa48hv2YpV4+YV604y93YngyzzzQ4IIA==", "dependencies": { - "@smithy/node-config-provider": "^2.1.6", - "@smithy/types": "^2.6.0", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -8063,11 +8064,11 @@ } }, "node_modules/@smithy/util-middleware": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.0.7.tgz", - "integrity": "sha512-tRINOTlf1G9B0ECarFQAtTgMhpnrMPSa+5j4ZEwEawCLfTFTavk6757sxhE4RY5RMlD/I3x+DCS8ZUiR8ho9Pw==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.0.8.tgz", + "integrity": "sha512-qkvqQjM8fRGGA8P2ydWylMhenCDP8VlkPn8kiNuFEaFz9xnUKC2irfqsBSJrfrOB9Qt6pQsI58r3zvvumhFMkw==", "dependencies": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -8075,12 +8076,12 @@ } }, "node_modules/@smithy/util-retry": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.0.7.tgz", - "integrity": "sha512-fIe5yARaF0+xVT1XKcrdnHKTJ1Vc4+3e3tLDjCuIcE9b6fkBzzGFY7AFiX4M+vj6yM98DrwkuZeHf7/hmtVp0Q==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.0.8.tgz", + "integrity": "sha512-cQTPnVaVFMjjS6cb44WV2yXtHVyXDC5icKyIbejMarJEApYeJWpBU3LINTxHqp/tyLI+MZOUdosr2mZ3sdziNg==", "dependencies": { - "@smithy/service-error-classification": "^2.0.7", - "@smithy/types": "^2.6.0", + "@smithy/service-error-classification": "^2.0.8", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -8088,13 +8089,13 @@ } }, "node_modules/@smithy/util-stream": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.0.21.tgz", - "integrity": "sha512-0BUE16d7n1x7pi1YluXJdB33jOTyBChT0j/BlOkFa9uxfg6YqXieHxjHNuCdJRARa7AZEj32LLLEPJ1fSa4inA==", + "version": "2.0.23", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.0.23.tgz", + "integrity": "sha512-OJMWq99LAZJUzUwTk+00plyxX3ESktBaGPhqNIEVab+53gLULiWN9B/8bRABLg0K6R6Xg4t80uRdhk3B/LZqMQ==", "dependencies": { - "@smithy/fetch-http-handler": "^2.2.7", - "@smithy/node-http-handler": "^2.1.10", - "@smithy/types": "^2.6.0", + "@smithy/fetch-http-handler": "^2.3.1", + "@smithy/node-http-handler": "^2.2.1", + "@smithy/types": "^2.7.0", "@smithy/util-base64": "^2.0.1", "@smithy/util-buffer-from": "^2.0.0", "@smithy/util-hex-encoding": "^2.0.0", @@ -8129,12 +8130,12 @@ } }, "node_modules/@smithy/util-waiter": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-2.0.14.tgz", - "integrity": "sha512-Q6gSz4GUNjNGhrfNg+2Mjy+7K4pEI3r82x1b/+3dSc03MQqobMiUrRVN/YK/4nHVagvBELCoXsiHAFQJNQ5BeA==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-2.0.15.tgz", + "integrity": "sha512-9Y+btzzB7MhLADW7xgD6SjvmoYaRkrb/9SCbNGmNdfO47v38rxb90IGXyDtAK0Shl9bMthTmLgjlfYc+vtz2Qw==", "dependencies": { - "@smithy/abort-controller": "^2.0.14", - "@smithy/types": "^2.6.0", + "@smithy/abort-controller": "^2.0.15", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" }, "engines": { @@ -28071,259 +28072,259 @@ } }, "@aws-sdk/client-s3": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.465.0.tgz", - "integrity": "sha512-S2W8aUs/SR7wabyKRldl5FKtAq2gsXo3BpbKjBvuCILwNl84ooQrsOmKtcVsINRdi+q/mZvwGenqqp/98+yjdg==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.470.0.tgz", + "integrity": "sha512-HdhNlz25ImxID17qK7qfLXileJPYdPT7kgC+gm083edhFk0JI0+N8y7N9ybnVYpoHzZZPXeO1KZkmfdWK4IQhw==", "requires": { "@aws-crypto/sha1-browser": "3.0.0", "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/client-sts": "3.465.0", - "@aws-sdk/core": "3.465.0", - "@aws-sdk/credential-provider-node": "3.465.0", - "@aws-sdk/middleware-bucket-endpoint": "3.465.0", - "@aws-sdk/middleware-expect-continue": "3.465.0", - "@aws-sdk/middleware-flexible-checksums": "3.465.0", - "@aws-sdk/middleware-host-header": "3.465.0", - "@aws-sdk/middleware-location-constraint": "3.465.0", - "@aws-sdk/middleware-logger": "3.465.0", - "@aws-sdk/middleware-recursion-detection": "3.465.0", - "@aws-sdk/middleware-sdk-s3": "3.465.0", - "@aws-sdk/middleware-signing": "3.465.0", - "@aws-sdk/middleware-ssec": "3.465.0", - "@aws-sdk/middleware-user-agent": "3.465.0", - "@aws-sdk/region-config-resolver": "3.465.0", - "@aws-sdk/signature-v4-multi-region": "3.465.0", - "@aws-sdk/types": "3.465.0", - "@aws-sdk/util-endpoints": "3.465.0", - "@aws-sdk/util-user-agent-browser": "3.465.0", - "@aws-sdk/util-user-agent-node": "3.465.0", + "@aws-sdk/client-sts": "3.470.0", + "@aws-sdk/core": "3.468.0", + "@aws-sdk/credential-provider-node": "3.470.0", + "@aws-sdk/middleware-bucket-endpoint": "3.470.0", + "@aws-sdk/middleware-expect-continue": "3.468.0", + "@aws-sdk/middleware-flexible-checksums": "3.468.0", + "@aws-sdk/middleware-host-header": "3.468.0", + "@aws-sdk/middleware-location-constraint": "3.468.0", + "@aws-sdk/middleware-logger": "3.468.0", + "@aws-sdk/middleware-recursion-detection": "3.468.0", + "@aws-sdk/middleware-sdk-s3": "3.470.0", + "@aws-sdk/middleware-signing": "3.468.0", + "@aws-sdk/middleware-ssec": "3.468.0", + "@aws-sdk/middleware-user-agent": "3.470.0", + "@aws-sdk/region-config-resolver": "3.470.0", + "@aws-sdk/signature-v4-multi-region": "3.470.0", + "@aws-sdk/types": "3.468.0", + "@aws-sdk/util-endpoints": "3.470.0", + "@aws-sdk/util-user-agent-browser": "3.468.0", + "@aws-sdk/util-user-agent-node": "3.470.0", "@aws-sdk/xml-builder": "3.465.0", - "@smithy/config-resolver": "^2.0.18", - "@smithy/eventstream-serde-browser": "^2.0.13", - "@smithy/eventstream-serde-config-resolver": "^2.0.13", - "@smithy/eventstream-serde-node": "^2.0.13", - "@smithy/fetch-http-handler": "^2.2.6", - "@smithy/hash-blob-browser": "^2.0.14", - "@smithy/hash-node": "^2.0.15", - "@smithy/hash-stream-node": "^2.0.15", - "@smithy/invalid-dependency": "^2.0.13", - "@smithy/md5-js": "^2.0.15", - "@smithy/middleware-content-length": "^2.0.15", - "@smithy/middleware-endpoint": "^2.2.0", - "@smithy/middleware-retry": "^2.0.20", - "@smithy/middleware-serde": "^2.0.13", - "@smithy/middleware-stack": "^2.0.7", - "@smithy/node-config-provider": "^2.1.5", - "@smithy/node-http-handler": "^2.1.9", - "@smithy/protocol-http": "^3.0.9", - "@smithy/smithy-client": "^2.1.15", - "@smithy/types": "^2.5.0", - "@smithy/url-parser": "^2.0.13", + "@smithy/config-resolver": "^2.0.21", + "@smithy/eventstream-serde-browser": "^2.0.15", + "@smithy/eventstream-serde-config-resolver": "^2.0.15", + "@smithy/eventstream-serde-node": "^2.0.15", + "@smithy/fetch-http-handler": "^2.3.1", + "@smithy/hash-blob-browser": "^2.0.16", + "@smithy/hash-node": "^2.0.17", + "@smithy/hash-stream-node": "^2.0.17", + "@smithy/invalid-dependency": "^2.0.15", + "@smithy/md5-js": "^2.0.17", + "@smithy/middleware-content-length": "^2.0.17", + "@smithy/middleware-endpoint": "^2.2.3", + "@smithy/middleware-retry": "^2.0.24", + "@smithy/middleware-serde": "^2.0.15", + "@smithy/middleware-stack": "^2.0.9", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/node-http-handler": "^2.2.1", + "@smithy/protocol-http": "^3.0.11", + "@smithy/smithy-client": "^2.1.18", + "@smithy/types": "^2.7.0", + "@smithy/url-parser": "^2.0.15", "@smithy/util-base64": "^2.0.1", - "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.1", "@smithy/util-body-length-node": "^2.1.0", - "@smithy/util-defaults-mode-browser": "^2.0.19", - "@smithy/util-defaults-mode-node": "^2.0.25", - "@smithy/util-endpoints": "^1.0.4", - "@smithy/util-retry": "^2.0.6", - "@smithy/util-stream": "^2.0.20", + "@smithy/util-defaults-mode-browser": "^2.0.22", + "@smithy/util-defaults-mode-node": "^2.0.29", + "@smithy/util-endpoints": "^1.0.7", + "@smithy/util-retry": "^2.0.8", + "@smithy/util-stream": "^2.0.23", "@smithy/util-utf8": "^2.0.2", - "@smithy/util-waiter": "^2.0.13", + "@smithy/util-waiter": "^2.0.15", "fast-xml-parser": "4.2.5", "tslib": "^2.5.0" } }, "@aws-sdk/client-sso": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.465.0.tgz", - "integrity": "sha512-JXDBa3Sl+LS0KEOs0PZoIjpNKEEGfeyFwdnRxi8Y1hMXNEKyJug1cI2Psqu2olpn4KeXwoP1BuITppZYdolOew==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.470.0.tgz", + "integrity": "sha512-iMXqdXuypE3OK0rggbvSz7vBGlLDG418dNidHhdaeLluMTG/GfHbh1fLOlavhYxRwrsPrtYvFiVkxXFGzXva4w==", "requires": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/core": "3.465.0", - "@aws-sdk/middleware-host-header": "3.465.0", - "@aws-sdk/middleware-logger": "3.465.0", - "@aws-sdk/middleware-recursion-detection": "3.465.0", - "@aws-sdk/middleware-user-agent": "3.465.0", - "@aws-sdk/region-config-resolver": "3.465.0", - "@aws-sdk/types": "3.465.0", - "@aws-sdk/util-endpoints": "3.465.0", - "@aws-sdk/util-user-agent-browser": "3.465.0", - "@aws-sdk/util-user-agent-node": "3.465.0", - "@smithy/config-resolver": "^2.0.18", - "@smithy/fetch-http-handler": "^2.2.6", - "@smithy/hash-node": "^2.0.15", - "@smithy/invalid-dependency": "^2.0.13", - "@smithy/middleware-content-length": "^2.0.15", - "@smithy/middleware-endpoint": "^2.2.0", - "@smithy/middleware-retry": "^2.0.20", - "@smithy/middleware-serde": "^2.0.13", - "@smithy/middleware-stack": "^2.0.7", - "@smithy/node-config-provider": "^2.1.5", - "@smithy/node-http-handler": "^2.1.9", - "@smithy/protocol-http": "^3.0.9", - "@smithy/smithy-client": "^2.1.15", - "@smithy/types": "^2.5.0", - "@smithy/url-parser": "^2.0.13", + "@aws-sdk/core": "3.468.0", + "@aws-sdk/middleware-host-header": "3.468.0", + "@aws-sdk/middleware-logger": "3.468.0", + "@aws-sdk/middleware-recursion-detection": "3.468.0", + "@aws-sdk/middleware-user-agent": "3.470.0", + "@aws-sdk/region-config-resolver": "3.470.0", + "@aws-sdk/types": "3.468.0", + "@aws-sdk/util-endpoints": "3.470.0", + "@aws-sdk/util-user-agent-browser": "3.468.0", + "@aws-sdk/util-user-agent-node": "3.470.0", + "@smithy/config-resolver": "^2.0.21", + "@smithy/fetch-http-handler": "^2.3.1", + "@smithy/hash-node": "^2.0.17", + "@smithy/invalid-dependency": "^2.0.15", + "@smithy/middleware-content-length": "^2.0.17", + "@smithy/middleware-endpoint": "^2.2.3", + "@smithy/middleware-retry": "^2.0.24", + "@smithy/middleware-serde": "^2.0.15", + "@smithy/middleware-stack": "^2.0.9", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/node-http-handler": "^2.2.1", + "@smithy/protocol-http": "^3.0.11", + "@smithy/smithy-client": "^2.1.18", + "@smithy/types": "^2.7.0", + "@smithy/url-parser": "^2.0.15", "@smithy/util-base64": "^2.0.1", - "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.1", "@smithy/util-body-length-node": "^2.1.0", - "@smithy/util-defaults-mode-browser": "^2.0.19", - "@smithy/util-defaults-mode-node": "^2.0.25", - "@smithy/util-endpoints": "^1.0.4", - "@smithy/util-retry": "^2.0.6", + "@smithy/util-defaults-mode-browser": "^2.0.22", + "@smithy/util-defaults-mode-node": "^2.0.29", + "@smithy/util-endpoints": "^1.0.7", + "@smithy/util-retry": "^2.0.8", "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" } }, "@aws-sdk/client-sts": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.465.0.tgz", - "integrity": "sha512-rHi9ba6ssNbVjlWSdhi4C5newEhGhzkY9UE4KB+/Tj21zXfEP8r6uIltnQXPtun2SdA95Krh/yS1qQ4MRuzqyA==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.470.0.tgz", + "integrity": "sha512-TP3A4t8FoFEQinm6axxduTUnlMMLpmLi4Sf00JTI2CszxLUFh/JyUhYQ5gSOoXgPFmfwVXUNKCtmR3jdP0ZGPw==", "requires": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/core": "3.465.0", - "@aws-sdk/credential-provider-node": "3.465.0", - "@aws-sdk/middleware-host-header": "3.465.0", - "@aws-sdk/middleware-logger": "3.465.0", - "@aws-sdk/middleware-recursion-detection": "3.465.0", - "@aws-sdk/middleware-sdk-sts": "3.465.0", - "@aws-sdk/middleware-signing": "3.465.0", - "@aws-sdk/middleware-user-agent": "3.465.0", - "@aws-sdk/region-config-resolver": "3.465.0", - "@aws-sdk/types": "3.465.0", - "@aws-sdk/util-endpoints": "3.465.0", - "@aws-sdk/util-user-agent-browser": "3.465.0", - "@aws-sdk/util-user-agent-node": "3.465.0", - "@smithy/config-resolver": "^2.0.18", - "@smithy/fetch-http-handler": "^2.2.6", - "@smithy/hash-node": "^2.0.15", - "@smithy/invalid-dependency": "^2.0.13", - "@smithy/middleware-content-length": "^2.0.15", - "@smithy/middleware-endpoint": "^2.2.0", - "@smithy/middleware-retry": "^2.0.20", - "@smithy/middleware-serde": "^2.0.13", - "@smithy/middleware-stack": "^2.0.7", - "@smithy/node-config-provider": "^2.1.5", - "@smithy/node-http-handler": "^2.1.9", - "@smithy/protocol-http": "^3.0.9", - "@smithy/smithy-client": "^2.1.15", - "@smithy/types": "^2.5.0", - "@smithy/url-parser": "^2.0.13", + "@aws-sdk/core": "3.468.0", + "@aws-sdk/credential-provider-node": "3.470.0", + "@aws-sdk/middleware-host-header": "3.468.0", + "@aws-sdk/middleware-logger": "3.468.0", + "@aws-sdk/middleware-recursion-detection": "3.468.0", + "@aws-sdk/middleware-sdk-sts": "3.468.0", + "@aws-sdk/middleware-signing": "3.468.0", + "@aws-sdk/middleware-user-agent": "3.470.0", + "@aws-sdk/region-config-resolver": "3.470.0", + "@aws-sdk/types": "3.468.0", + "@aws-sdk/util-endpoints": "3.470.0", + "@aws-sdk/util-user-agent-browser": "3.468.0", + "@aws-sdk/util-user-agent-node": "3.470.0", + "@smithy/config-resolver": "^2.0.21", + "@smithy/fetch-http-handler": "^2.3.1", + "@smithy/hash-node": "^2.0.17", + "@smithy/invalid-dependency": "^2.0.15", + "@smithy/middleware-content-length": "^2.0.17", + "@smithy/middleware-endpoint": "^2.2.3", + "@smithy/middleware-retry": "^2.0.24", + "@smithy/middleware-serde": "^2.0.15", + "@smithy/middleware-stack": "^2.0.9", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/node-http-handler": "^2.2.1", + "@smithy/protocol-http": "^3.0.11", + "@smithy/smithy-client": "^2.1.18", + "@smithy/types": "^2.7.0", + "@smithy/url-parser": "^2.0.15", "@smithy/util-base64": "^2.0.1", - "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.1", "@smithy/util-body-length-node": "^2.1.0", - "@smithy/util-defaults-mode-browser": "^2.0.19", - "@smithy/util-defaults-mode-node": "^2.0.25", - "@smithy/util-endpoints": "^1.0.4", - "@smithy/util-retry": "^2.0.6", + "@smithy/util-defaults-mode-browser": "^2.0.22", + "@smithy/util-defaults-mode-node": "^2.0.29", + "@smithy/util-endpoints": "^1.0.7", + "@smithy/util-retry": "^2.0.8", "@smithy/util-utf8": "^2.0.2", "fast-xml-parser": "4.2.5", "tslib": "^2.5.0" } }, "@aws-sdk/core": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.465.0.tgz", - "integrity": "sha512-fHSIw/Rgex3KbrEKn6ZrUc2VcsOTpdBMeyYtfmsTOLSyDDOG9k3jelOvVbCbrK5N6uEUSM8hrnySEKg94UB0cg==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.468.0.tgz", + "integrity": "sha512-ezUJR9VvknKoXzNZ4wvzGi1jdkmm+/1dUYQ9Sw4r8bzlJDTsUnWbyvaDlBQh81RuhLtVkaUfTnQKoec0cwlZKQ==", "requires": { - "@smithy/smithy-client": "^2.1.15", + "@smithy/smithy-client": "^2.1.18", "tslib": "^2.5.0" } }, "@aws-sdk/credential-provider-env": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.465.0.tgz", - "integrity": "sha512-fku37AgkB9KhCuWHE6mfvbWYU0X84Df6MQ60nYH7s/PiNEhkX2cVI6X6kOKjP1MNIwRcYt+oQDvplVKdHume+A==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.468.0.tgz", + "integrity": "sha512-k/1WHd3KZn0EQYjadooj53FC0z24/e4dUZhbSKTULgmxyO62pwh9v3Brvw4WRa/8o2wTffU/jo54tf4vGuP/ZA==", "requires": { - "@aws-sdk/types": "3.465.0", + "@aws-sdk/types": "3.468.0", "@smithy/property-provider": "^2.0.0", - "@smithy/types": "^2.5.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@aws-sdk/credential-provider-ini": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.465.0.tgz", - "integrity": "sha512-B1MFufvdToAEMtfszilVnKer2S7P/OfMhkCizq2zuu8aU/CquRyHvKEQgWdvqunUDrFnVTc0kUZgsbBY0uPjLg==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.470.0.tgz", + "integrity": "sha512-eF22iPO6J2jY+LbuTv5dW0hZBmi6ksRDFFd/zT6TLasrzH2Ex+gAfN3c7rFHF+XAubL0JXFUKFA3UAwoZpO9Zg==", "requires": { - "@aws-sdk/credential-provider-env": "3.465.0", - "@aws-sdk/credential-provider-process": "3.465.0", - "@aws-sdk/credential-provider-sso": "3.465.0", - "@aws-sdk/credential-provider-web-identity": "3.465.0", - "@aws-sdk/types": "3.465.0", + "@aws-sdk/credential-provider-env": "3.468.0", + "@aws-sdk/credential-provider-process": "3.468.0", + "@aws-sdk/credential-provider-sso": "3.470.0", + "@aws-sdk/credential-provider-web-identity": "3.468.0", + "@aws-sdk/types": "3.468.0", "@smithy/credential-provider-imds": "^2.0.0", "@smithy/property-provider": "^2.0.0", "@smithy/shared-ini-file-loader": "^2.0.6", - "@smithy/types": "^2.5.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@aws-sdk/credential-provider-node": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.465.0.tgz", - "integrity": "sha512-R3VA9yJ0BvezvrDxcgPTv9VHbVPbzchLTrX5jLFSVuW/lPPYLUi/Cjtyg9C9Y7qRfoQS4fNMvSRhwO5/TF68gA==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.470.0.tgz", + "integrity": "sha512-paySXwzGxBVU+2cVUkRIXafKhYhtO2fJJ3MotR6euvRONK/dta+bhEc5Z4QnTo/gNLoELK/QUC0EGoF+oPfk8g==", "requires": { - "@aws-sdk/credential-provider-env": "3.465.0", - "@aws-sdk/credential-provider-ini": "3.465.0", - "@aws-sdk/credential-provider-process": "3.465.0", - "@aws-sdk/credential-provider-sso": "3.465.0", - "@aws-sdk/credential-provider-web-identity": "3.465.0", - "@aws-sdk/types": "3.465.0", + "@aws-sdk/credential-provider-env": "3.468.0", + "@aws-sdk/credential-provider-ini": "3.470.0", + "@aws-sdk/credential-provider-process": "3.468.0", + "@aws-sdk/credential-provider-sso": "3.470.0", + "@aws-sdk/credential-provider-web-identity": "3.468.0", + "@aws-sdk/types": "3.468.0", "@smithy/credential-provider-imds": "^2.0.0", "@smithy/property-provider": "^2.0.0", "@smithy/shared-ini-file-loader": "^2.0.6", - "@smithy/types": "^2.5.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@aws-sdk/credential-provider-process": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.465.0.tgz", - "integrity": "sha512-YE6ZrRYwvb8969hWQnr4uvOJ8RU0JrNsk3vWTe/czly37ioZUEhi8jmpQp4f2mX/6U6buoFGWu5Se3VCdw2SFQ==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.468.0.tgz", + "integrity": "sha512-OYSn1A/UsyPJ7Z8Q2cNhTf55O36shPmSsvOfND04nSfu1nPaR+VUvvsP7v+brhGpwC/GAKTIdGAo4blH31BS6A==", "requires": { - "@aws-sdk/types": "3.465.0", + "@aws-sdk/types": "3.468.0", "@smithy/property-provider": "^2.0.0", "@smithy/shared-ini-file-loader": "^2.0.6", - "@smithy/types": "^2.5.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@aws-sdk/credential-provider-sso": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.465.0.tgz", - "integrity": "sha512-tLIP/4JQIJpn8yIg6RZRQ2nmvj5i4wLZvYvY4RtaFv2JrQUkmmTfyOZJuOBrIFRwJjx0fHmFu8DJjcOhMzllIQ==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.470.0.tgz", + "integrity": "sha512-biGDSh9S9KDR9Tl/8cCPn9g5KPNkXg/CIJIOk3X+6valktbJ2UVYBzi0ZX4vZiudt5ry/Hsu6Pgo+KN1AmBWdg==", "requires": { - "@aws-sdk/client-sso": "3.465.0", - "@aws-sdk/token-providers": "3.465.0", - "@aws-sdk/types": "3.465.0", + "@aws-sdk/client-sso": "3.470.0", + "@aws-sdk/token-providers": "3.470.0", + "@aws-sdk/types": "3.468.0", "@smithy/property-provider": "^2.0.0", "@smithy/shared-ini-file-loader": "^2.0.6", - "@smithy/types": "^2.5.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@aws-sdk/credential-provider-web-identity": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.465.0.tgz", - "integrity": "sha512-B4Y75fMTZIniEU0yyqat+9NsQbYlXdqP5Y3bShkaG3pGLOHzF/xMlWuG+D3kkQ806PLYi+BgfVls4BcO+NyVcA==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.468.0.tgz", + "integrity": "sha512-rexymPmXjtkwCPfhnUq3EjO1rSkf39R4Jz9CqiM7OsqK2qlT5Y/V3gnMKn0ZMXsYaQOMfM3cT5xly5R+OKDHlw==", "requires": { - "@aws-sdk/types": "3.465.0", + "@aws-sdk/types": "3.468.0", "@smithy/property-provider": "^2.0.0", - "@smithy/types": "^2.5.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@aws-sdk/lib-storage": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.465.0.tgz", - "integrity": "sha512-nsh8FgVw31N0GO6yiThg2I8yG0rRlpvnEm/MYQ8ETpmm2uq4inbup7eS8FxtfxhU6cGcJZu+YLeBwEdKrTSmvA==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.470.0.tgz", + "integrity": "sha512-K3qLp6oEpcz8WEfob/TYRdFkgwqoGSzqADoF4HY7GuHZASu5zEK87hTiBUZt/cli7/jjZMw2Am/jKbowPUG5Tw==", "requires": { "@smithy/abort-controller": "^2.0.1", - "@smithy/middleware-endpoint": "^2.2.0", - "@smithy/smithy-client": "^2.1.15", + "@smithy/middleware-endpoint": "^2.2.3", + "@smithy/smithy-client": "^2.1.18", "buffer": "5.6.0", "events": "3.3.0", "stream-browserify": "3.0.0", @@ -28331,225 +28332,225 @@ } }, "@aws-sdk/middleware-bucket-endpoint": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.465.0.tgz", - "integrity": "sha512-cyIR9Nwyie6giLypuLSUmZF3O5GqVRwia3Nq1B/6/Ho0LccH0/HT2x/nM8fFcnskWSNGTVZVvZzSrVYXynTtjA==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.470.0.tgz", + "integrity": "sha512-vLXXNWtsRmEIwzJ9HUQfIuTNAsEzvCv0Icsnkvt2BiBZXnmHdp2vIC3e3+kfy1D7dVQloXqMmnfcLu/BUMu2Jw==", "requires": { - "@aws-sdk/types": "3.465.0", + "@aws-sdk/types": "3.468.0", "@aws-sdk/util-arn-parser": "3.465.0", - "@smithy/node-config-provider": "^2.1.5", - "@smithy/protocol-http": "^3.0.9", - "@smithy/types": "^2.5.0", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/protocol-http": "^3.0.11", + "@smithy/types": "^2.7.0", "@smithy/util-config-provider": "^2.0.0", "tslib": "^2.5.0" } }, "@aws-sdk/middleware-expect-continue": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.465.0.tgz", - "integrity": "sha512-kthlPQDASsdtdVqKVKkJn9bHptcEpsQ6ptWeGBCYigicULvWI1fjSTeXrYczxNMVg+1Sv8xkb/bh+kUEu7mvZg==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.468.0.tgz", + "integrity": "sha512-/wmLjmfgeulxhhmnxX3X3N933TvGsYckVIFjAtDSpLjqkbwzEcNiLq7AdmNJ4BfxG0MCMgcht561DCCD19x8Bg==", "requires": { - "@aws-sdk/types": "3.465.0", - "@smithy/protocol-http": "^3.0.9", - "@smithy/types": "^2.5.0", + "@aws-sdk/types": "3.468.0", + "@smithy/protocol-http": "^3.0.11", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@aws-sdk/middleware-flexible-checksums": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.465.0.tgz", - "integrity": "sha512-joWEWN0v1CpI4q9JlZki0AchVwLL8Les0+V+3JHVDcDgL4RQ04YUk9lMYbtldDwdyBNquKwW2+sGtIo/6ng0Tg==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.468.0.tgz", + "integrity": "sha512-LQwL/N5MCj3Y5keLLewHTqeAXUIMsHFZyxDXRm/uxrOon9ufLKDvGvzAmfwn1/CuSUo66ZfT8VPSA4BsC90RtA==", "requires": { "@aws-crypto/crc32": "3.0.0", "@aws-crypto/crc32c": "3.0.0", - "@aws-sdk/types": "3.465.0", + "@aws-sdk/types": "3.468.0", "@smithy/is-array-buffer": "^2.0.0", - "@smithy/protocol-http": "^3.0.9", - "@smithy/types": "^2.5.0", + "@smithy/protocol-http": "^3.0.11", + "@smithy/types": "^2.7.0", "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" } }, "@aws-sdk/middleware-host-header": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.465.0.tgz", - "integrity": "sha512-nnGva8eplwEJqdVzcb+xF2Fwua0PpiwxMEvpnIy73gNbetbJdgFIprryMLYes00xzJEqnew+LWdpcd3YyS34ZA==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.468.0.tgz", + "integrity": "sha512-gwQ+/QhX+lhof304r6zbZ/V5l5cjhGRxLL3CjH1uJPMcOAbw9wUlMdl+ibr8UwBZ5elfKFGiB1cdW/0uMchw0w==", "requires": { - "@aws-sdk/types": "3.465.0", - "@smithy/protocol-http": "^3.0.9", - "@smithy/types": "^2.5.0", + "@aws-sdk/types": "3.468.0", + "@smithy/protocol-http": "^3.0.11", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@aws-sdk/middleware-location-constraint": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.465.0.tgz", - "integrity": "sha512-2+mwaI/ltE2ibr5poC+E9kJRfVIv7aHpAJkLu7uvESch9cpuFuGJu6fq0/gA82eKZ/gwpBj+AaXBsDFfsDWFsw==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.468.0.tgz", + "integrity": "sha512-0gBX/lDynQr4YIhM9h1dVnkVWqrg+34iOCVIUq8jHxzUzgZWglGkG9lHGGg0r1xkLTmegeoo1OKH8wrQ6n33Cg==", "requires": { - "@aws-sdk/types": "3.465.0", - "@smithy/types": "^2.5.0", + "@aws-sdk/types": "3.468.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@aws-sdk/middleware-logger": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.465.0.tgz", - "integrity": "sha512-aGMx1aSlzDDgjZ7fSxLhGD5rkyCfHwq04TSB5fQAgDBqUjj4IQXZwmNglX0sLRmArXZtDglUVESOfKvTANJTPg==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.468.0.tgz", + "integrity": "sha512-X5XHKV7DHRXI3f29SAhJPe/OxWRFgDWDMMCALfzhmJfCi6Jfh0M14cJKoC+nl+dk9lB+36+jKjhjETZaL2bPlA==", "requires": { - "@aws-sdk/types": "3.465.0", - "@smithy/types": "^2.5.0", + "@aws-sdk/types": "3.468.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@aws-sdk/middleware-recursion-detection": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.465.0.tgz", - "integrity": "sha512-ol3dlsTnryBhV5qkUvK5Yg3dRaV1NXIxYJaIkShrl8XAv4wRNcDJDmO5NYq5eVZ3zgV1nv6xIpZ//dDnnf6Z+g==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.468.0.tgz", + "integrity": "sha512-vch9IQib2Ng9ucSyRW2eKNQXHUPb5jUPCLA5otTW/8nGjcOU37LxQG4WrxO7uaJ9Oe8hjHO+hViE3P0KISUhtA==", "requires": { - "@aws-sdk/types": "3.465.0", - "@smithy/protocol-http": "^3.0.9", - "@smithy/types": "^2.5.0", + "@aws-sdk/types": "3.468.0", + "@smithy/protocol-http": "^3.0.11", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@aws-sdk/middleware-sdk-s3": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.465.0.tgz", - "integrity": "sha512-P4cpNv0EcMSSLojjqKKQjKSGZc13QJQAscUs+fcvpBg2BNR9ByxrQgXXMqQiIqr8fgAhADqN2Tp8hJk0CzfnAg==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.470.0.tgz", + "integrity": "sha512-yhavP2ju+upF50ccDFQNhVPxPOPgUUPs2JqPoq7NzTKZWIyRY65F3UC7CBmrSNiaL0S76r4kDdOkVcGUdI6ZiQ==", "requires": { - "@aws-sdk/types": "3.465.0", + "@aws-sdk/types": "3.468.0", "@aws-sdk/util-arn-parser": "3.465.0", - "@smithy/node-config-provider": "^2.1.5", - "@smithy/protocol-http": "^3.0.9", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/protocol-http": "^3.0.11", "@smithy/signature-v4": "^2.0.0", - "@smithy/smithy-client": "^2.1.15", - "@smithy/types": "^2.5.0", + "@smithy/smithy-client": "^2.1.18", + "@smithy/types": "^2.7.0", "@smithy/util-config-provider": "^2.0.0", "tslib": "^2.5.0" } }, "@aws-sdk/middleware-sdk-sts": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.465.0.tgz", - "integrity": "sha512-PmTM5ycUe1RLAPrQXLCR8JzKamJuKDB0aIW4rx4/skurzWsEGRI47WHggf9N7sPie41IBGUhRbXcf7sfPjvI3Q==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.468.0.tgz", + "integrity": "sha512-xRy8NKfHbmafHwdbotdWgHBvRs0YZgk20GrhFJKp43bkqVbJ5bNlh3nQXf1DeFY9fARR84Bfotya4fwCUHWgZg==", "requires": { - "@aws-sdk/middleware-signing": "3.465.0", - "@aws-sdk/types": "3.465.0", - "@smithy/types": "^2.5.0", + "@aws-sdk/middleware-signing": "3.468.0", + "@aws-sdk/types": "3.468.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@aws-sdk/middleware-signing": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.465.0.tgz", - "integrity": "sha512-d90KONWXSC3jA0kqJ6u8ygS4LoMg1TmSM7bPhHyibJVAEhnrlB4Aq1CWljNbbtphGpdKy5/XRM9O0/XCXWKQ4w==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.468.0.tgz", + "integrity": "sha512-s+7fSB1gdnnTj5O0aCCarX3z5Vppop8kazbNSZADdkfHIDWCN80IH4ZNjY3OWqaAz0HmR4LNNrovdR304ojb4Q==", "requires": { - "@aws-sdk/types": "3.465.0", + "@aws-sdk/types": "3.468.0", "@smithy/property-provider": "^2.0.0", - "@smithy/protocol-http": "^3.0.9", + "@smithy/protocol-http": "^3.0.11", "@smithy/signature-v4": "^2.0.0", - "@smithy/types": "^2.5.0", - "@smithy/util-middleware": "^2.0.6", + "@smithy/types": "^2.7.0", + "@smithy/util-middleware": "^2.0.8", "tslib": "^2.5.0" } }, "@aws-sdk/middleware-ssec": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.465.0.tgz", - "integrity": "sha512-PHc1guBGp7fwoPlJkAEaHVkiYPfs93jffwsBvIevCsHcfYPv6L26/5Nk7KR+6IyuGQHpUbSC080SP1jYjOy01A==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.468.0.tgz", + "integrity": "sha512-y1qLW24wRkOGBTK5d6eJXf6d8HYo4rzT4a1mNDN1rd18NSffwQ6Yke5qeUiIaxa0y/l+FvvNYErbhYtij2rJoQ==", "requires": { - "@aws-sdk/types": "3.465.0", - "@smithy/types": "^2.5.0", + "@aws-sdk/types": "3.468.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@aws-sdk/middleware-user-agent": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.465.0.tgz", - "integrity": "sha512-1MvIWMj2nktLOJN8Kh4jiTK28oL85fTeoXHZ+V8xYMzont6C6Y8gQPtg7ka+RotHwqWMrovfnANisnX8EzEP/Q==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.470.0.tgz", + "integrity": "sha512-s0YRGgf4fT5KwwTefpoNUQfB5JghzXyvmPfY1QuFEMeVQNxv0OPuydzo3rY2oXPkZjkulKDtpm5jzIHwut75hA==", "requires": { - "@aws-sdk/types": "3.465.0", - "@aws-sdk/util-endpoints": "3.465.0", - "@smithy/protocol-http": "^3.0.9", - "@smithy/types": "^2.5.0", + "@aws-sdk/types": "3.468.0", + "@aws-sdk/util-endpoints": "3.470.0", + "@smithy/protocol-http": "^3.0.11", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@aws-sdk/region-config-resolver": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.465.0.tgz", - "integrity": "sha512-h0Phd2Ae873dsPSWuxqxz2yRC5NMeeWxQiJPh4j42HF8g7dZK7tMQPkYznAoA/BzSBsEX87sbr3MmigquSyUTA==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.470.0.tgz", + "integrity": "sha512-C1o1J06iIw8cyAAOvHqT4Bbqf+PgQ/RDlSyjt2gFfP2OovDpc2o2S90dE8f8iZdSGpg70N5MikT1DBhW9NbhtQ==", "requires": { - "@smithy/node-config-provider": "^2.1.5", - "@smithy/types": "^2.5.0", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/types": "^2.7.0", "@smithy/util-config-provider": "^2.0.0", - "@smithy/util-middleware": "^2.0.6", + "@smithy/util-middleware": "^2.0.8", "tslib": "^2.5.0" } }, "@aws-sdk/signature-v4-multi-region": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.465.0.tgz", - "integrity": "sha512-p620S4YCr2CPNIdSnRvBqScAqWztjef9EwtD1MAkxTTrjNAyxSCf4apeQ2pdaWNNkJT1vSc/YKBAJ7l2SWn7rw==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.470.0.tgz", + "integrity": "sha512-pbgQW5Fbu7tLOQFXTnb9Mp8GL+b4DnkGwXHZjE9AmwDisW/jlGwf+EFKr2xnuoNiaqvj0zHY+vvN6dewzik7Og==", "requires": { - "@aws-sdk/middleware-sdk-s3": "3.465.0", - "@aws-sdk/types": "3.465.0", - "@smithy/protocol-http": "^3.0.9", + "@aws-sdk/middleware-sdk-s3": "3.470.0", + "@aws-sdk/types": "3.468.0", + "@smithy/protocol-http": "^3.0.11", "@smithy/signature-v4": "^2.0.0", - "@smithy/types": "^2.5.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@aws-sdk/token-providers": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.465.0.tgz", - "integrity": "sha512-NaZbsyLs3whzRHGV27hrRwEdXB/tEK6tqn/aCNBy862LhVzocY1A+eYLKrnrvpraOOd2vyAuOtvvB3RMIdiL6g==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.470.0.tgz", + "integrity": "sha512-rzxnJxEUJiV69Cxsf0AHXTqJqTACITwcSH/PL4lWP4uvtzdrzSi3KA3u2aWHWpOcdE6+JFvdICscsbBSo3/TOg==", "requires": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/middleware-host-header": "3.465.0", - "@aws-sdk/middleware-logger": "3.465.0", - "@aws-sdk/middleware-recursion-detection": "3.465.0", - "@aws-sdk/middleware-user-agent": "3.465.0", - "@aws-sdk/region-config-resolver": "3.465.0", - "@aws-sdk/types": "3.465.0", - "@aws-sdk/util-endpoints": "3.465.0", - "@aws-sdk/util-user-agent-browser": "3.465.0", - "@aws-sdk/util-user-agent-node": "3.465.0", - "@smithy/config-resolver": "^2.0.18", - "@smithy/fetch-http-handler": "^2.2.6", - "@smithy/hash-node": "^2.0.15", - "@smithy/invalid-dependency": "^2.0.13", - "@smithy/middleware-content-length": "^2.0.15", - "@smithy/middleware-endpoint": "^2.2.0", - "@smithy/middleware-retry": "^2.0.20", - "@smithy/middleware-serde": "^2.0.13", - "@smithy/middleware-stack": "^2.0.7", - "@smithy/node-config-provider": "^2.1.5", - "@smithy/node-http-handler": "^2.1.9", + "@aws-sdk/middleware-host-header": "3.468.0", + "@aws-sdk/middleware-logger": "3.468.0", + "@aws-sdk/middleware-recursion-detection": "3.468.0", + "@aws-sdk/middleware-user-agent": "3.470.0", + "@aws-sdk/region-config-resolver": "3.470.0", + "@aws-sdk/types": "3.468.0", + "@aws-sdk/util-endpoints": "3.470.0", + "@aws-sdk/util-user-agent-browser": "3.468.0", + "@aws-sdk/util-user-agent-node": "3.470.0", + "@smithy/config-resolver": "^2.0.21", + "@smithy/fetch-http-handler": "^2.3.1", + "@smithy/hash-node": "^2.0.17", + "@smithy/invalid-dependency": "^2.0.15", + "@smithy/middleware-content-length": "^2.0.17", + "@smithy/middleware-endpoint": "^2.2.3", + "@smithy/middleware-retry": "^2.0.24", + "@smithy/middleware-serde": "^2.0.15", + "@smithy/middleware-stack": "^2.0.9", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/node-http-handler": "^2.2.1", "@smithy/property-provider": "^2.0.0", - "@smithy/protocol-http": "^3.0.9", + "@smithy/protocol-http": "^3.0.11", "@smithy/shared-ini-file-loader": "^2.0.6", - "@smithy/smithy-client": "^2.1.15", - "@smithy/types": "^2.5.0", - "@smithy/url-parser": "^2.0.13", + "@smithy/smithy-client": "^2.1.18", + "@smithy/types": "^2.7.0", + "@smithy/url-parser": "^2.0.15", "@smithy/util-base64": "^2.0.1", - "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.1", "@smithy/util-body-length-node": "^2.1.0", - "@smithy/util-defaults-mode-browser": "^2.0.19", - "@smithy/util-defaults-mode-node": "^2.0.25", - "@smithy/util-endpoints": "^1.0.4", - "@smithy/util-retry": "^2.0.6", + "@smithy/util-defaults-mode-browser": "^2.0.22", + "@smithy/util-defaults-mode-node": "^2.0.29", + "@smithy/util-endpoints": "^1.0.7", + "@smithy/util-retry": "^2.0.8", "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" } }, "@aws-sdk/types": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.465.0.tgz", - "integrity": "sha512-Clqu2eD50OOzwSftGpzJrIOGev/7VJhJpc02SeS4cqFgI9EVd+rnFKS/Ux0kcwjLQBMiPcCLtql3KAHApFHAIA==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.468.0.tgz", + "integrity": "sha512-rx/9uHI4inRbp2tw3Y4Ih4PNZkVj32h7WneSg3MVgVjAoVD5Zti9KhS5hkvsBxfgmQmg0AQbE+b1sy5WGAgntA==", "requires": { - "@smithy/types": "^2.5.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, @@ -28562,12 +28563,12 @@ } }, "@aws-sdk/util-endpoints": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.465.0.tgz", - "integrity": "sha512-lDpBN1faVw8Udg5hIo+LJaNfllbBF86PCisv628vfcggO8/EArL/v2Eos0KeqVT8yaINXCRSagwfo5TNTuW0KQ==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.470.0.tgz", + "integrity": "sha512-6N6VvPCmu+89p5Ez/+gLf+X620iQ9JpIs8p8ECZiCodirzFOe8NC1O2S7eov7YiG9IHSuodqn/0qNq+v+oLe0A==", "requires": { - "@aws-sdk/types": "3.465.0", - "@smithy/util-endpoints": "^1.0.4", + "@aws-sdk/types": "3.468.0", + "@smithy/util-endpoints": "^1.0.7", "tslib": "^2.5.0" } }, @@ -28580,24 +28581,24 @@ } }, "@aws-sdk/util-user-agent-browser": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.465.0.tgz", - "integrity": "sha512-RM+LjkIsmUCBJ4yQeBnkJWJTjPOPqcNaKv8bpZxatIHdvzGhXLnWLNi3qHlBsJB2mKtKRet6nAUmKmzZR1sDzA==", + "version": "3.468.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.468.0.tgz", + "integrity": "sha512-OJyhWWsDEizR3L+dCgMXSUmaCywkiZ7HSbnQytbeKGwokIhD69HTiJcibF/sgcM5gk4k3Mq3puUhGnEZ46GIig==", "requires": { - "@aws-sdk/types": "3.465.0", - "@smithy/types": "^2.5.0", + "@aws-sdk/types": "3.468.0", + "@smithy/types": "^2.7.0", "bowser": "^2.11.0", "tslib": "^2.5.0" } }, "@aws-sdk/util-user-agent-node": { - "version": "3.465.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.465.0.tgz", - "integrity": "sha512-XsHbq7gLCiGdy6FQ7/5nGslK0ij3Iuh051djuIICvNurlds5cqKLiBe63gX3IUUwxJcrKh4xBGviQJ52KdVSeg==", + "version": "3.470.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.470.0.tgz", + "integrity": "sha512-QxsZ9iVHcBB/XRdYvwfM5AMvNp58HfqkIrH88mY0cmxuvtlIGDfWjczdDrZMJk9y0vIq+cuoCHsGXHu7PyiEAQ==", "requires": { - "@aws-sdk/types": "3.465.0", - "@smithy/node-config-provider": "^2.1.5", - "@smithy/types": "^2.5.0", + "@aws-sdk/types": "3.468.0", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, @@ -33183,11 +33184,11 @@ } }, "@smithy/abort-controller": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.0.14.tgz", - "integrity": "sha512-zXtteuYLWbSXnzI3O6xq3FYvigYZFW8mdytGibfarLL2lxHto9L3ILtGVnVGmFZa7SDh62l39EnU5hesLN87Fw==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.0.15.tgz", + "integrity": "sha512-JkS36PIS3/UCbq/MaozzV7jECeL+BTt4R75bwY8i+4RASys4xOyUS1HsRyUNSqUXFP4QyCz5aNnh3ltuaxv+pw==", "requires": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, @@ -33209,129 +33210,129 @@ } }, "@smithy/config-resolver": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.0.19.tgz", - "integrity": "sha512-JsghnQ5zjWmjEVY8TFOulLdEOCj09SjRLugrHlkPZTIBBm7PQitCFVLThbsKPZQOP7N3ME1DU1nKUc1UaVnBog==", + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.0.21.tgz", + "integrity": "sha512-rlLIGT+BeqjnA6C2FWumPRJS1UW07iU5ZxDHtFuyam4W65gIaOFMjkB90ofKCIh+0mLVQrQFrl/VLtQT/6FWTA==", "requires": { - "@smithy/node-config-provider": "^2.1.6", - "@smithy/types": "^2.6.0", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/types": "^2.7.0", "@smithy/util-config-provider": "^2.0.0", - "@smithy/util-middleware": "^2.0.7", + "@smithy/util-middleware": "^2.0.8", "tslib": "^2.5.0" } }, "@smithy/credential-provider-imds": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.1.2.tgz", - "integrity": "sha512-Y62jBWdoLPSYjr9fFvJf+KwTa1EunjVr6NryTEWCnwIY93OJxwV4t0qxjwdPl/XMsUkq79ppNJSEQN6Ohnhxjw==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.1.4.tgz", + "integrity": "sha512-cwPJN1fa1YOQzhBlTXRavABEYRRchci1X79QRwzaNLySnIMJfztyv1Zkst0iZPLMnpn8+CnHu3wOHS11J5Dr3A==", "requires": { - "@smithy/node-config-provider": "^2.1.6", - "@smithy/property-provider": "^2.0.15", - "@smithy/types": "^2.6.0", - "@smithy/url-parser": "^2.0.14", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/property-provider": "^2.0.16", + "@smithy/types": "^2.7.0", + "@smithy/url-parser": "^2.0.15", "tslib": "^2.5.0" } }, "@smithy/eventstream-codec": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-2.0.14.tgz", - "integrity": "sha512-g/OU/MeWGfHDygoXgMWfG/Xb0QqDnAGcM9t2FRrVAhleXYRddGOEnfanR5cmHgB9ue52MJsyorqFjckzXsylaA==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-2.0.15.tgz", + "integrity": "sha512-crjvz3j1gGPwA0us6cwS7+5gAn35CTmqu/oIxVbYJo2Qm/sGAye6zGJnMDk3BKhWZw5kcU1G4MxciTkuBpOZPg==", "requires": { "@aws-crypto/crc32": "3.0.0", - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "@smithy/util-hex-encoding": "^2.0.0", "tslib": "^2.5.0" } }, "@smithy/eventstream-serde-browser": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.0.14.tgz", - "integrity": "sha512-41wmYE9smDGJi1ZXp+LogH6BR7MkSsQD91wneIFISF/mupKULvoOJUkv/Nf0NMRxWlM3Bf1Vvi9FlR2oV4KU8Q==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.0.15.tgz", + "integrity": "sha512-WiFG5N9j3jmS5P0z5Xev6dO0c3lf7EJYC2Ncb0xDnWFvShwXNn741AF71ABr5EcZw8F4rQma0362MMjAwJeZog==", "requires": { - "@smithy/eventstream-serde-universal": "^2.0.14", - "@smithy/types": "^2.6.0", + "@smithy/eventstream-serde-universal": "^2.0.15", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@smithy/eventstream-serde-config-resolver": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.0.14.tgz", - "integrity": "sha512-43IyRIzQ82s+5X+t/3Ood00CcWtAXQdmUIUKMed2Qg9REPk8SVIHhpm3rwewLwg+3G2Nh8NOxXlEQu6DsPUcMw==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.0.15.tgz", + "integrity": "sha512-o65d2LRjgCbWYH+VVNlWXtmsI231SO99ZTOL4UuIPa6WTjbSHWtlXvUcJG9libhEKWmEV9DIUiH2IqyPWi7ubA==", "requires": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@smithy/eventstream-serde-node": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.0.14.tgz", - "integrity": "sha512-jVh9E2qAr6DxH5tWfCAl9HV6tI0pEQ3JVmu85JknDvYTC66djcjDdhctPV2EHuKWf2kjRiFJcMIn0eercW4THA==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.0.15.tgz", + "integrity": "sha512-9OOXiIhHq1VeOG6xdHkn2ZayfMYM3vzdUTV3zhcCnt+tMqA3BJK3XXTJFRR2BV28rtRM778DzqbBTf+hqwQPTg==", "requires": { - "@smithy/eventstream-serde-universal": "^2.0.14", - "@smithy/types": "^2.6.0", + "@smithy/eventstream-serde-universal": "^2.0.15", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@smithy/eventstream-serde-universal": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.0.14.tgz", - "integrity": "sha512-Ie35+AISNn1NmEjn5b2SchIE49pvKp4Q74bE9ME5RULWI1MgXyGkQUajWd5E6OBSr/sqGcs+rD3IjPErXnCm9g==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.0.15.tgz", + "integrity": "sha512-dP8AQp/pXlWBjvL0TaPBJC3rM0GoYv7O0Uim8d/7UKZ2Wo13bFI3/BhQfY/1DeiP1m23iCHFNFtOQxfQNBB8rQ==", "requires": { - "@smithy/eventstream-codec": "^2.0.14", - "@smithy/types": "^2.6.0", + "@smithy/eventstream-codec": "^2.0.15", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@smithy/fetch-http-handler": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.2.7.tgz", - "integrity": "sha512-iSDBjxuH9TgrtMYAr7j5evjvkvgwLY3y+9D547uep+JNkZ1ZT+BaeU20j6I/bO/i26ilCWFImrlXTPsfQtZdIQ==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.3.1.tgz", + "integrity": "sha512-6MNk16fqb8EwcYY8O8WxB3ArFkLZ2XppsSNo1h7SQcFdDDwIumiJeO6wRzm7iB68xvsOQzsdQKbdtTieS3hfSQ==", "requires": { - "@smithy/protocol-http": "^3.0.10", - "@smithy/querystring-builder": "^2.0.14", - "@smithy/types": "^2.6.0", + "@smithy/protocol-http": "^3.0.11", + "@smithy/querystring-builder": "^2.0.15", + "@smithy/types": "^2.7.0", "@smithy/util-base64": "^2.0.1", "tslib": "^2.5.0" } }, "@smithy/hash-blob-browser": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-2.0.15.tgz", - "integrity": "sha512-HX/7GIyPUT/HDWVYe2HYQu0iRnSYpF4uZVNhAhZsObPRawk5Mv0PbyluBgIFI2DDCCKgL/tloCYYwycff1GtQg==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-2.0.16.tgz", + "integrity": "sha512-cSYRi05LA7DZDwjB1HL0BP8B56eUNNeLglVH147QTXFyuXJq/7erAIiLRfsyXB8+GfFHkSS5BHbc76a7k/AYPA==", "requires": { "@smithy/chunked-blob-reader": "^2.0.0", "@smithy/chunked-blob-reader-native": "^2.0.1", - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@smithy/hash-node": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.0.16.tgz", - "integrity": "sha512-Wbi9A0PacMYUOwjAulQP90Wl3mQ6NDwnyrZQzFjDz+UzjXOSyQMgBrTkUBz+pVoYVlX3DUu24gWMZBcit+wOGg==", + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.0.17.tgz", + "integrity": "sha512-Il6WuBcI1nD+e2DM7tTADMf01wEPGK8PAhz4D+YmDUVaoBqlA+CaH2uDJhiySifmuKBZj748IfygXty81znKhw==", "requires": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "@smithy/util-buffer-from": "^2.0.0", "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" } }, "@smithy/hash-stream-node": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-2.0.16.tgz", - "integrity": "sha512-4x24GFdeWos1Z49MC5sYdM1j+z32zcUr6oWM9Ggm3WudFAcRIcbG9uDQ1XgJ0Kl+ZTjpqLKniG0iuWvQb2Ud1A==", + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-2.0.17.tgz", + "integrity": "sha512-ey8DtnATzp1mOXgS7rqMwSmAki6iJA+jgNucKcxRkhMB1rrICfHg+rhmIF50iLPDHUhTcS5pBMOrLzzpZftvNQ==", "requires": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" } }, "@smithy/invalid-dependency": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.0.14.tgz", - "integrity": "sha512-d8ohpwZo9RzTpGlAfsWtfm1SHBSU7+N4iuZ6MzR10xDTujJJWtmXYHK1uzcr7rggbpUTaWyHpPFgnf91q0EFqQ==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.0.15.tgz", + "integrity": "sha512-dlEKBFFwVfzA5QroHlBS94NpgYjXhwN/bFfun+7w3rgxNvVy79SK0w05iGc7UAeC5t+D7gBxrzdnD6hreZnDVQ==", "requires": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, @@ -33344,50 +33345,51 @@ } }, "@smithy/md5-js": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-2.0.16.tgz", - "integrity": "sha512-YhWt9aKl+EMSNXyUTUo7I01WHf3HcCkPu/Hl2QmTNwrHT49eWaY7hptAMaERZuHFH0V5xHgPKgKZo2I93DFtgQ==", + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-2.0.17.tgz", + "integrity": "sha512-jmISTCnEkOnm2oCNx/rMkvBT/eQh3aA6nktevkzbmn/VYqYEuc5Z2n5sTTqsciMSO01Lvf56wG1A4twDqovYeQ==", "requires": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" } }, "@smithy/middleware-content-length": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.0.16.tgz", - "integrity": "sha512-9ddDia3pp1d3XzLXKcm7QebGxLq9iwKf+J1LapvlSOhpF8EM9SjMeSrMOOFgG+2TfW5K3+qz4IAJYYm7INYCng==", + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.0.17.tgz", + "integrity": "sha512-OyadvMcKC7lFXTNBa8/foEv7jOaqshQZkjWS9coEXPRZnNnihU/Ls+8ZuJwGNCOrN2WxXZFmDWhegbnM4vak8w==", "requires": { - "@smithy/protocol-http": "^3.0.10", - "@smithy/types": "^2.6.0", + "@smithy/protocol-http": "^3.0.11", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@smithy/middleware-endpoint": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.2.1.tgz", - "integrity": "sha512-dVDS7HNJl/wb0lpByXor6whqDbb1YlLoaoWYoelyYzLHioXOE7y/0iDwJWtDcN36/tVCw9EPBFZ3aans84jLpg==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.2.3.tgz", + "integrity": "sha512-nYfxuq0S/xoAjdLbyn1ixeVB6cyH9wYCMtbbOCpcCRYR5u2mMtqUtVjjPAZ/DIdlK3qe0tpB0Q76szFGNuz+kQ==", "requires": { - "@smithy/middleware-serde": "^2.0.14", - "@smithy/node-config-provider": "^2.1.6", - "@smithy/shared-ini-file-loader": "^2.2.5", - "@smithy/types": "^2.6.0", - "@smithy/url-parser": "^2.0.14", - "@smithy/util-middleware": "^2.0.7", + "@smithy/middleware-serde": "^2.0.15", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/shared-ini-file-loader": "^2.2.7", + "@smithy/types": "^2.7.0", + "@smithy/url-parser": "^2.0.15", + "@smithy/util-middleware": "^2.0.8", "tslib": "^2.5.0" } }, "@smithy/middleware-retry": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.0.21.tgz", - "integrity": "sha512-EZS1EXv1k6IJX6hyu/0yNQuPcPaXwG8SWljQHYueyRbOxmqYgoWMWPtfZj0xRRQ4YtLawQSpBgAeiJltq8/MPw==", + "version": "2.0.24", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.0.24.tgz", + "integrity": "sha512-q2SvHTYu96N7lYrn3VSuX3vRpxXHR/Cig6MJpGWxd0BWodUQUWlKvXpWQZA+lTaFJU7tUvpKhRd4p4MU3PbeJg==", "requires": { - "@smithy/node-config-provider": "^2.1.6", - "@smithy/protocol-http": "^3.0.10", - "@smithy/service-error-classification": "^2.0.7", - "@smithy/types": "^2.6.0", - "@smithy/util-middleware": "^2.0.7", - "@smithy/util-retry": "^2.0.7", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/protocol-http": "^3.0.11", + "@smithy/service-error-classification": "^2.0.8", + "@smithy/smithy-client": "^2.1.18", + "@smithy/types": "^2.7.0", + "@smithy/util-middleware": "^2.0.8", + "@smithy/util-retry": "^2.0.8", "tslib": "^2.5.0", "uuid": "^8.3.2" }, @@ -33400,141 +33402,141 @@ } }, "@smithy/middleware-serde": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.0.14.tgz", - "integrity": "sha512-hFi3FqoYWDntCYA2IGY6gJ6FKjq2gye+1tfxF2HnIJB5uW8y2DhpRNBSUMoqP+qvYzRqZ6ntv4kgbG+o3pX57g==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.0.15.tgz", + "integrity": "sha512-FOZRFk/zN4AT4wzGuBY+39XWe+ZnCFd0gZtyw3f9Okn2CJPixl9GyWe98TIaljeZdqWkgrzGyPre20AcW2UMHQ==", "requires": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@smithy/middleware-stack": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.0.8.tgz", - "integrity": "sha512-7/N59j0zWqVEKExJcA14MrLDZ/IeN+d6nbkN8ucs+eURyaDUXWYlZrQmMOd/TyptcQv0+RDlgag/zSTTV62y/Q==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.0.9.tgz", + "integrity": "sha512-bCB5dUtGQ5wh7QNL2ELxmDc6g7ih7jWU3Kx6MYH1h4mZbv9xL3WyhKHojRltThCB1arLPyTUFDi+x6fB/oabtA==", "requires": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@smithy/node-config-provider": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.1.6.tgz", - "integrity": "sha512-HLqTs6O78m3M3z1cPLFxddxhEPv5MkVatfPuxoVO3A+cHZanNd/H5I6btcdHy6N2CB1MJ/lihJC92h30SESsBA==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.1.8.tgz", + "integrity": "sha512-+w26OKakaBUGp+UG+dxYZtFb5fs3tgHg3/QrRrmUZj+rl3cIuw840vFUXX35cVPTUCQIiTqmz7CpVF7+hdINdQ==", "requires": { - "@smithy/property-provider": "^2.0.15", - "@smithy/shared-ini-file-loader": "^2.2.5", - "@smithy/types": "^2.6.0", + "@smithy/property-provider": "^2.0.16", + "@smithy/shared-ini-file-loader": "^2.2.7", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@smithy/node-http-handler": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.1.10.tgz", - "integrity": "sha512-lkALAwtN6odygIM4nB8aHDahINM6WXXjNrZmWQAh0RSossySRT2qa31cFv0ZBuAYVWeprskRk13AFvvLmf1WLw==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.2.1.tgz", + "integrity": "sha512-8iAKQrC8+VFHPAT8pg4/j6hlsTQh+NKOWlctJBrYtQa4ExcxX7aSg3vdQ2XLoYwJotFUurg/NLqFCmZaPRrogw==", "requires": { - "@smithy/abort-controller": "^2.0.14", - "@smithy/protocol-http": "^3.0.10", - "@smithy/querystring-builder": "^2.0.14", - "@smithy/types": "^2.6.0", + "@smithy/abort-controller": "^2.0.15", + "@smithy/protocol-http": "^3.0.11", + "@smithy/querystring-builder": "^2.0.15", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@smithy/property-provider": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.0.15.tgz", - "integrity": "sha512-YbRFBn8oiiC3o1Kn3a4KjGa6k47rCM9++5W9cWqYn9WnkyH+hBWgfJAckuxpyA2Hq6Ys4eFrWzXq6fqHEw7iew==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.0.16.tgz", + "integrity": "sha512-28Ky0LlOqtEjwg5CdHmwwaDRHcTWfPRzkT6HrhwOSRS2RryAvuDfJrZpM+BMcrdeCyEg1mbcgIMoqTla+rdL8Q==", "requires": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@smithy/protocol-http": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.0.10.tgz", - "integrity": "sha512-6+tjNk7rXW7YTeGo9qwxXj/2BFpJTe37kTj3EnZCoX/nH+NP/WLA7O83fz8XhkGqsaAhLUPo/bB12vvd47nsmg==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.0.11.tgz", + "integrity": "sha512-3ziB8fHuXIRamV/akp/sqiWmNPR6X+9SB8Xxnozzj+Nq7hSpyKdFHd1FLpBkgfGFUTzzcBJQlDZPSyxzmdcx5A==", "requires": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@smithy/querystring-builder": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.0.14.tgz", - "integrity": "sha512-lQ4pm9vTv9nIhl5jt6uVMPludr6syE2FyJmHsIJJuOD7QPIJnrf9HhUGf1iHh9KJ4CUv21tpOU3X6s0rB6uJ0g==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.0.15.tgz", + "integrity": "sha512-e1q85aT6HutvouOdN+dMsN0jcdshp50PSCvxDvo6aIM57LqeXimjfONUEgfqQ4IFpYWAtVixptyIRE5frMp/2A==", "requires": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "@smithy/util-uri-escape": "^2.0.0", "tslib": "^2.5.0" } }, "@smithy/querystring-parser": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.0.14.tgz", - "integrity": "sha512-+cbtXWI9tNtQjlgQg3CA+pvL3zKTAxPnG3Pj6MP89CR3vi3QMmD0SOWoq84tqZDnJCxlsusbgIXk1ngMReXo+A==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.0.15.tgz", + "integrity": "sha512-jbBvoK3cc81Cj1c1TH1qMYxNQKHrYQ2DoTntN9FBbtUWcGhc+T4FP6kCKYwRLXyU4AajwGIZstvNAmIEgUUNTQ==", "requires": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@smithy/service-error-classification": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.0.7.tgz", - "integrity": "sha512-LLxgW12qGz8doYto15kZ4x1rHjtXl0BnCG6T6Wb8z2DI4PT9cJfOSvzbuLzy7+5I24PAepKgFeWHRd9GYy3Z9w==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.0.8.tgz", + "integrity": "sha512-jCw9+005im8tsfYvwwSc4TTvd29kXRFkH9peQBg5R/4DD03ieGm6v6Hpv9nIAh98GwgYg1KrztcINC1s4o7/hg==", "requires": { - "@smithy/types": "^2.6.0" + "@smithy/types": "^2.7.0" } }, "@smithy/shared-ini-file-loader": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.2.5.tgz", - "integrity": "sha512-LHA68Iu7SmNwfAVe8egmjDCy648/7iJR/fK1UnVw+iAOUJoEYhX2DLgVd5pWllqdDiRbQQzgaHLcRokM+UFR1w==", + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.2.7.tgz", + "integrity": "sha512-0Qt5CuiogIuvQIfK+be7oVHcPsayLgfLJGkPlbgdbl0lD28nUKu4p11L+UG3SAEsqc9UsazO+nErPXw7+IgDpQ==", "requires": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@smithy/signature-v4": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.0.16.tgz", - "integrity": "sha512-ilLY85xS2kZZzTb83diQKYLIYALvart0KnBaKnIRnMBHAGEio5aHSlANQoxVn0VsonwmQ3CnWhnCT0sERD8uTg==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.0.18.tgz", + "integrity": "sha512-SJRAj9jT/l9ocm8D0GojMbnA1sp7I4JeStOQ4lEXI8A5eHE73vbjlzlqIFB7cLvIgau0oUl4cGVpF9IGCrvjlw==", "requires": { - "@smithy/eventstream-codec": "^2.0.14", + "@smithy/eventstream-codec": "^2.0.15", "@smithy/is-array-buffer": "^2.0.0", - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "@smithy/util-hex-encoding": "^2.0.0", - "@smithy/util-middleware": "^2.0.7", + "@smithy/util-middleware": "^2.0.8", "@smithy/util-uri-escape": "^2.0.0", "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" } }, "@smithy/smithy-client": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.1.16.tgz", - "integrity": "sha512-Lw67+yQSpLl4YkDLUzI2KgS8TXclXmbzSeOJUmRFS4ueT56B4pw3RZRF/SRzvgyxM/HxgkUan8oSHXCujPDafQ==", + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.1.18.tgz", + "integrity": "sha512-7FqdbaJiVaHJDD9IfDhmzhSDbpjyx+ZsfdYuOpDJF09rl8qlIAIlZNoSaflKrQ3cEXZN2YxGPaNWGhbYimyIRQ==", "requires": { - "@smithy/middleware-stack": "^2.0.8", - "@smithy/types": "^2.6.0", - "@smithy/util-stream": "^2.0.21", + "@smithy/middleware-stack": "^2.0.9", + "@smithy/types": "^2.7.0", + "@smithy/util-stream": "^2.0.23", "tslib": "^2.5.0" } }, "@smithy/types": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.6.0.tgz", - "integrity": "sha512-PgqxJq2IcdMF9iAasxcqZqqoOXBHufEfmbEUdN1pmJrJltT42b0Sc8UiYSWWzKkciIp9/mZDpzYi4qYG1qqg6g==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.7.0.tgz", + "integrity": "sha512-1OIFyhK+vOkMbu4aN2HZz/MomREkrAC/HqY5mlJMUJfGrPRwijJDTeiN8Rnj9zUaB8ogXAfIOtZrrgqZ4w7Wnw==", "requires": { "tslib": "^2.5.0" } }, "@smithy/url-parser": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.0.14.tgz", - "integrity": "sha512-kbu17Y1AFXi5lNlySdDj7ZzmvupyWKCX/0jNZ8ffquRyGdbDZb+eBh0QnWqsSmnZa/ctyWaTf7n4l/pXLExrnw==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.0.15.tgz", + "integrity": "sha512-sADUncUj9rNbOTrdDGm4EXlUs0eQ9dyEo+V74PJoULY4jSQxS+9gwEgsPYyiu8PUOv16JC/MpHonOgqP/IEDZA==", "requires": { - "@smithy/querystring-parser": "^2.0.14", - "@smithy/types": "^2.6.0", + "@smithy/querystring-parser": "^2.0.15", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, @@ -33548,9 +33550,9 @@ } }, "@smithy/util-body-length-browser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-2.0.0.tgz", - "integrity": "sha512-JdDuS4ircJt+FDnaQj88TzZY3+njZ6O+D3uakS32f2VNnDo3vyEuNdBOh/oFd8Df1zSZOuH1HEChk2AOYDezZg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-2.0.1.tgz", + "integrity": "sha512-NXYp3ttgUlwkaug4bjBzJ5+yIbUbUx8VsSLuHZROQpoik+gRkIBeEG9MPVYfvPNpuXb/puqodeeUXcKFe7BLOQ==", "requires": { "tslib": "^2.5.0" } @@ -33581,38 +33583,38 @@ } }, "@smithy/util-defaults-mode-browser": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.0.20.tgz", - "integrity": "sha512-QJtnbTIl0/BbEASkx1MUFf6EaoWqWW1/IM90N++8NNscePvPf77GheYfpoPis6CBQawUWq8QepTP2QUSAdrVkw==", + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.0.22.tgz", + "integrity": "sha512-qcF20IHHH96FlktvBRICDXDhLPtpVmtksHmqNGtotb9B0DYWXsC6jWXrkhrrwF7tH26nj+npVTqh9isiFV1gdA==", "requires": { - "@smithy/property-provider": "^2.0.15", - "@smithy/smithy-client": "^2.1.16", - "@smithy/types": "^2.6.0", + "@smithy/property-provider": "^2.0.16", + "@smithy/smithy-client": "^2.1.18", + "@smithy/types": "^2.7.0", "bowser": "^2.11.0", "tslib": "^2.5.0" } }, "@smithy/util-defaults-mode-node": { - "version": "2.0.26", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.26.tgz", - "integrity": "sha512-lGFPOFCHv1ql019oegYqa54BZH7HREw6EBqjDLbAr0wquMX0BDi2sg8TJ6Eq+JGLijkZbJB73m4+aK8OFAapMg==", + "version": "2.0.29", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.29.tgz", + "integrity": "sha512-+uG/15VoUh6JV2fdY9CM++vnSuMQ1VKZ6BdnkUM7R++C/vLjnlg+ToiSR1FqKZbMmKBXmsr8c/TsDWMAYvxbxQ==", "requires": { - "@smithy/config-resolver": "^2.0.19", - "@smithy/credential-provider-imds": "^2.1.2", - "@smithy/node-config-provider": "^2.1.6", - "@smithy/property-provider": "^2.0.15", - "@smithy/smithy-client": "^2.1.16", - "@smithy/types": "^2.6.0", + "@smithy/config-resolver": "^2.0.21", + "@smithy/credential-provider-imds": "^2.1.4", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/property-provider": "^2.0.16", + "@smithy/smithy-client": "^2.1.18", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@smithy/util-endpoints": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-1.0.5.tgz", - "integrity": "sha512-K7qNuCOD5K/90MjHvHm9kJldrfm40UxWYQxNEShMFxV/lCCCRIg8R4uu1PFAxRvPxNpIdcrh1uK6I1ISjDXZJw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-1.0.7.tgz", + "integrity": "sha512-Q2gEind3jxoLk6hdKWyESMU7LnXz8aamVwM+VeVjOYzYT1PalGlY/ETa48hv2YpV4+YV604y93YngyzzzQ4IIA==", "requires": { - "@smithy/node-config-provider": "^2.1.6", - "@smithy/types": "^2.6.0", + "@smithy/node-config-provider": "^2.1.8", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, @@ -33625,32 +33627,32 @@ } }, "@smithy/util-middleware": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.0.7.tgz", - "integrity": "sha512-tRINOTlf1G9B0ECarFQAtTgMhpnrMPSa+5j4ZEwEawCLfTFTavk6757sxhE4RY5RMlD/I3x+DCS8ZUiR8ho9Pw==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.0.8.tgz", + "integrity": "sha512-qkvqQjM8fRGGA8P2ydWylMhenCDP8VlkPn8kiNuFEaFz9xnUKC2irfqsBSJrfrOB9Qt6pQsI58r3zvvumhFMkw==", "requires": { - "@smithy/types": "^2.6.0", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@smithy/util-retry": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.0.7.tgz", - "integrity": "sha512-fIe5yARaF0+xVT1XKcrdnHKTJ1Vc4+3e3tLDjCuIcE9b6fkBzzGFY7AFiX4M+vj6yM98DrwkuZeHf7/hmtVp0Q==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.0.8.tgz", + "integrity": "sha512-cQTPnVaVFMjjS6cb44WV2yXtHVyXDC5icKyIbejMarJEApYeJWpBU3LINTxHqp/tyLI+MZOUdosr2mZ3sdziNg==", "requires": { - "@smithy/service-error-classification": "^2.0.7", - "@smithy/types": "^2.6.0", + "@smithy/service-error-classification": "^2.0.8", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, "@smithy/util-stream": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.0.21.tgz", - "integrity": "sha512-0BUE16d7n1x7pi1YluXJdB33jOTyBChT0j/BlOkFa9uxfg6YqXieHxjHNuCdJRARa7AZEj32LLLEPJ1fSa4inA==", + "version": "2.0.23", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.0.23.tgz", + "integrity": "sha512-OJMWq99LAZJUzUwTk+00plyxX3ESktBaGPhqNIEVab+53gLULiWN9B/8bRABLg0K6R6Xg4t80uRdhk3B/LZqMQ==", "requires": { - "@smithy/fetch-http-handler": "^2.2.7", - "@smithy/node-http-handler": "^2.1.10", - "@smithy/types": "^2.6.0", + "@smithy/fetch-http-handler": "^2.3.1", + "@smithy/node-http-handler": "^2.2.1", + "@smithy/types": "^2.7.0", "@smithy/util-base64": "^2.0.1", "@smithy/util-buffer-from": "^2.0.0", "@smithy/util-hex-encoding": "^2.0.0", @@ -33676,12 +33678,12 @@ } }, "@smithy/util-waiter": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-2.0.14.tgz", - "integrity": "sha512-Q6gSz4GUNjNGhrfNg+2Mjy+7K4pEI3r82x1b/+3dSc03MQqobMiUrRVN/YK/4nHVagvBELCoXsiHAFQJNQ5BeA==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-2.0.15.tgz", + "integrity": "sha512-9Y+btzzB7MhLADW7xgD6SjvmoYaRkrb/9SCbNGmNdfO47v38rxb90IGXyDtAK0Shl9bMthTmLgjlfYc+vtz2Qw==", "requires": { - "@smithy/abort-controller": "^2.0.14", - "@smithy/types": "^2.6.0", + "@smithy/abort-controller": "^2.0.15", + "@smithy/types": "^2.7.0", "tslib": "^2.5.0" } }, diff --git a/package.json b/package.json index b950bd864..dcae5536d 100644 --- a/package.json +++ b/package.json @@ -48,8 +48,8 @@ "npm": "10.2.4" }, "dependencies": { - "@aws-sdk/client-s3": "^3.465.0", - "@aws-sdk/lib-storage": "^3.465.0", + "@aws-sdk/client-s3": "^3.470.0", + "@aws-sdk/lib-storage": "^3.470.0", "@fluent/bundle": "^0.18.0", "@fluent/langneg": "^0.7.0", "@fluent/react": "^0.15.2", From e95212ff1fb418aa828785a1b313fbed8b7905c7 Mon Sep 17 00:00:00 2001 From: Florian Zia Date: Tue, 12 Dec 2023 18:20:40 +0100 Subject: [PATCH 09/11] chore: Update link to VPN with UTM parameters --- .../security-recommendations/securityRecommendationsData.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/(proper_react)/redesign/(authenticated)/user/dashboard/fix/security-recommendations/securityRecommendationsData.tsx b/src/app/(proper_react)/redesign/(authenticated)/user/dashboard/fix/security-recommendations/securityRecommendationsData.tsx index 09a93fee4..181f3bd8a 100644 --- a/src/app/(proper_react)/redesign/(authenticated)/user/dashboard/fix/security-recommendations/securityRecommendationsData.tsx +++ b/src/app/(proper_react)/redesign/(authenticated)/user/dashboard/fix/security-recommendations/securityRecommendationsData.tsx @@ -165,7 +165,7 @@ function getSecurityRecommendationsByType({ elems: { link_to_info: ( From 5afaad26e477783616dc8f380b50dc79e7b5b1df Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 17:27:16 +0000 Subject: [PATCH 10/11] chore(deps): bump the sentry group with 2 updates Bumps the sentry group with 2 updates: [@sentry/nextjs](https://github.com/getsentry/sentry-javascript) and [@sentry/tracing](https://github.com/getsentry/sentry-javascript). Updates `@sentry/nextjs` from 7.84.0 to 7.86.0 - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/7.84.0...7.86.0) Updates `@sentry/tracing` from 7.84.0 to 7.86.0 - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/7.84.0...7.86.0) --- updated-dependencies: - dependency-name: "@sentry/nextjs" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: sentry - dependency-name: "@sentry/tracing" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: sentry ... Signed-off-by: dependabot[bot] --- package-lock.json | 325 +++++++++++++++++++++++++--------------------- package.json | 4 +- 2 files changed, 177 insertions(+), 152 deletions(-) diff --git a/package-lock.json b/package-lock.json index 221c3f913..50d9ac475 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,9 +19,9 @@ "@grpc/grpc-js": "1.9.13", "@leeoniya/ufuzzy": "^1.0.13", "@mozilla/glean": "3.0.0", - "@sentry/nextjs": "^7.84.0", + "@sentry/nextjs": "^7.86.0", "@sentry/node": "^7.58.1", - "@sentry/tracing": "^7.84.0", + "@sentry/tracing": "^7.86.0", "@types/jsdom": "^21.1.5", "@types/node": "^20.10.0", "@types/react": "^18.2.38", @@ -7279,29 +7279,43 @@ "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.6.0.tgz", "integrity": "sha512-2/U3GXA6YiPYQDLGwtGlnNgKYBSwCFIHf8Y9LUY5VATHdtbLlU0Y1R3QoBnT0aB4qv/BEiVVsj7LJXoQCgJ2vA==" }, - "node_modules/@sentry-internal/tracing": { - "version": "7.84.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.84.0.tgz", - "integrity": "sha512-y9bGYA0OM6PEREfd+nk4UURZy29tpIw+7vQwpxWfEVs2fqq0/5TBFX/tKFb8AKUI9lVM8v0bcF0bNSCnuPQZHQ==", + "node_modules/@sentry-internal/feedback": { + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-7.86.0.tgz", + "integrity": "sha512-6rl0JYjmAKnhm4/fuFaROh4Ht8oi9f6ZeIcViCuGJcrGICZJJY0s+R77XJI78rNa82PYFrSCcnWXcGji4T8E7g==", "dependencies": { - "@sentry/core": "7.84.0", - "@sentry/types": "7.84.0", - "@sentry/utils": "7.84.0" + "@sentry/core": "7.86.0", + "@sentry/types": "7.86.0", + "@sentry/utils": "7.86.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@sentry-internal/tracing": { + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.86.0.tgz", + "integrity": "sha512-b4dUsNWlPWRwakGwR7bhOkqiFlqQszH1hhVFwrm/8s3kqEBZ+E4CeIfCvuHBHQ1cM/fx55xpXX/BU163cy+3iQ==", + "dependencies": { + "@sentry/core": "7.86.0", + "@sentry/types": "7.86.0", + "@sentry/utils": "7.86.0" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/browser": { - "version": "7.84.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.84.0.tgz", - "integrity": "sha512-X50TlTKY9WzAnHsYc4FYrCWgm+CdVo0h02ggmodVBUpRLUBjj+cs5Q1plov/v/XeorSwmorNEMUu/n+XZNSsrA==", + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.86.0.tgz", + "integrity": "sha512-nfYWpVOmug+W7KJO7/xhA1JScMZcYHcoOVHLsUFm4znx51U4qZEk+zZDM11Q2Nw6MuDyEYg6bsH1QCwaoC6nLw==", "dependencies": { - "@sentry-internal/tracing": "7.84.0", - "@sentry/core": "7.84.0", - "@sentry/replay": "7.84.0", - "@sentry/types": "7.84.0", - "@sentry/utils": "7.84.0" + "@sentry-internal/feedback": "7.86.0", + "@sentry-internal/tracing": "7.86.0", + "@sentry/core": "7.86.0", + "@sentry/replay": "7.86.0", + "@sentry/types": "7.86.0", + "@sentry/utils": "7.86.0" }, "engines": { "node": ">=8" @@ -7328,25 +7342,25 @@ } }, "node_modules/@sentry/core": { - "version": "7.84.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.84.0.tgz", - "integrity": "sha512-tbuwunbBx2kSex15IHCqHDnrMfIlqPc6w/76fwkGqokz3oh9GSEGlLICwmBWL8AypWimUg13IDtFpD0TJTriWA==", + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.86.0.tgz", + "integrity": "sha512-SbLvqd1bRYzhDS42u7GMnmbDMfth/zRiLElQWbLK/shmuZzTcfQSwNNdF4Yj+VfjOkqPFgGmICHSHVUc9dh01g==", "dependencies": { - "@sentry/types": "7.84.0", - "@sentry/utils": "7.84.0" + "@sentry/types": "7.86.0", + "@sentry/utils": "7.86.0" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/integrations": { - "version": "7.84.0", - "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.84.0.tgz", - "integrity": "sha512-aUu95BhnHSf/W/F4BvsFnf4x+piHiah5a180YTMqWcHMkJr7MnCWNIad9RJuHlcINSfyHtUr5+Z4Bajzqg60lw==", + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.86.0.tgz", + "integrity": "sha512-BStRH1yBhhUsvmCXWx88/1+cY93l4B+3RW60RPeYcupvUQ1DJ8qxfN918+nA9XoZt9XELXvs8USCqqynG/aEkg==", "dependencies": { - "@sentry/core": "7.84.0", - "@sentry/types": "7.84.0", - "@sentry/utils": "7.84.0", + "@sentry/core": "7.86.0", + "@sentry/types": "7.86.0", + "@sentry/utils": "7.86.0", "localforage": "^1.8.1" }, "engines": { @@ -7354,18 +7368,18 @@ } }, "node_modules/@sentry/nextjs": { - "version": "7.84.0", - "resolved": "https://registry.npmjs.org/@sentry/nextjs/-/nextjs-7.84.0.tgz", - "integrity": "sha512-MjOGR3AZDVYfBQX2jZaxBMl7JaDSbu6uoiycdT+cMCYq722aB9Wv8vUzsCTzzV4/JmCjJFbfSis7S2Vkw7/9FA==", + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/@sentry/nextjs/-/nextjs-7.86.0.tgz", + "integrity": "sha512-pdRTt3ELLlpyKKtvumSiqFeTImdSAnoII1JSNwJvmWz9+3MRsvBW/Ee4r19WxK07Y/nxPxyPaIuUmbsXnjkt1A==", "dependencies": { "@rollup/plugin-commonjs": "24.0.0", - "@sentry/core": "7.84.0", - "@sentry/integrations": "7.84.0", - "@sentry/node": "7.84.0", - "@sentry/react": "7.84.0", - "@sentry/types": "7.84.0", - "@sentry/utils": "7.84.0", - "@sentry/vercel-edge": "7.84.0", + "@sentry/core": "7.86.0", + "@sentry/integrations": "7.86.0", + "@sentry/node": "7.86.0", + "@sentry/react": "7.86.0", + "@sentry/types": "7.86.0", + "@sentry/utils": "7.86.0", + "@sentry/vercel-edge": "7.86.0", "@sentry/webpack-plugin": "1.21.0", "chalk": "3.0.0", "resolve": "1.22.8", @@ -7387,14 +7401,14 @@ } }, "node_modules/@sentry/node": { - "version": "7.84.0", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.84.0.tgz", - "integrity": "sha512-Xm3fIXT3TZOQi+6uQBavI8iOehD3PkY7v0y3hog0d4lQTH88vQK9BBsI+jZEq81Em+RG/u7vZNiFo6YMTnWF7Q==", + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.86.0.tgz", + "integrity": "sha512-cB1bn/LMn2Km97Y3hv63xwWxT50/G5ixGuSxTZ3dCQM6VDhmZoCuC5NGT3itVvaRd6upQXRZa5W0Zgyh0HXKig==", "dependencies": { - "@sentry-internal/tracing": "7.84.0", - "@sentry/core": "7.84.0", - "@sentry/types": "7.84.0", - "@sentry/utils": "7.84.0", + "@sentry-internal/tracing": "7.86.0", + "@sentry/core": "7.86.0", + "@sentry/types": "7.86.0", + "@sentry/utils": "7.86.0", "https-proxy-agent": "^5.0.0" }, "engines": { @@ -7402,13 +7416,13 @@ } }, "node_modules/@sentry/react": { - "version": "7.84.0", - "resolved": "https://registry.npmjs.org/@sentry/react/-/react-7.84.0.tgz", - "integrity": "sha512-VQZrEHwPKCYTSbRYXD2ohXcQg99G1Hgs8eevRUuRpdChmA2e3z/RvT00NlaSNNZrS86wPyKpAK6kickB/eSYrw==", + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/@sentry/react/-/react-7.86.0.tgz", + "integrity": "sha512-2bHi+YcG4cT+4xHXXzv+AZpU3pdPUlDBorSgHOpa9At4yxr17UWW2f8bP9wPYRgj+NEIM3YhDgR46FlBu9GSKg==", "dependencies": { - "@sentry/browser": "7.84.0", - "@sentry/types": "7.84.0", - "@sentry/utils": "7.84.0", + "@sentry/browser": "7.86.0", + "@sentry/types": "7.86.0", + "@sentry/utils": "7.86.0", "hoist-non-react-statics": "^3.3.2" }, "engines": { @@ -7419,58 +7433,58 @@ } }, "node_modules/@sentry/replay": { - "version": "7.84.0", - "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.84.0.tgz", - "integrity": "sha512-c4PxT0ZpvkR9zXNfmAk3ojkm6eZ9+NlDze09RFBOCNo69QwIN90hnvbjXFC1+vRIJsfgo78Zr0ya/Wzb3Rog7Q==", + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.86.0.tgz", + "integrity": "sha512-YYZO8bfQSx1H87Te/zzyHPLHvExWiYwUfMWW68yGX+PPZIIzxaM81/iCQHkoucxlvuPCOtxCgf7RSMbsnqEa8g==", "dependencies": { - "@sentry-internal/tracing": "7.84.0", - "@sentry/core": "7.84.0", - "@sentry/types": "7.84.0", - "@sentry/utils": "7.84.0" + "@sentry-internal/tracing": "7.86.0", + "@sentry/core": "7.86.0", + "@sentry/types": "7.86.0", + "@sentry/utils": "7.86.0" }, "engines": { "node": ">=12" } }, "node_modules/@sentry/tracing": { - "version": "7.84.0", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.84.0.tgz", - "integrity": "sha512-NhBX28vUmCu/5avyGKX6B4UTm4MTOfbdg9ZzCnS7hPuWDfEAUIVHZVryi2q8bqp2DNGJvS9qIq/TSf39JIpdJg==", + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.86.0.tgz", + "integrity": "sha512-WPqgmbLm6ntpIoTZd1L/RHIVEDMmvVjIDxKeXGiJeXHZG2VMtgwoxuZAFluVFaD0Sr20Nhj+ZS7HvKOWTxrjjA==", "dependencies": { - "@sentry-internal/tracing": "7.84.0" + "@sentry-internal/tracing": "7.86.0" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/types": { - "version": "7.84.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.84.0.tgz", - "integrity": "sha512-VqGLIF3JOUrk7yIXjLXJvAORkZL1e3dDX0Q1okRehwyt/5CRE+mdUTeJZkBo9P9mBwgMyvtwklzOGGrzjb4eMA==", + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.86.0.tgz", + "integrity": "sha512-pGAt0+bMfWgo0KG2epthfNV4Wae03tURpoxNjGo5Fr4cXxvLTSijSAQ6rmmO4bXBJ7+rErEjX30g30o/eEdP9g==", "engines": { "node": ">=8" } }, "node_modules/@sentry/utils": { - "version": "7.84.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.84.0.tgz", - "integrity": "sha512-qdUVuxnRBvaf05AU+28R+xYtZmi/Ymf8os3Njq9g4XuA+QEkZLbzmIpRK5W9Ja7vUtjOeg29Xgg43A8znde9LQ==", + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.86.0.tgz", + "integrity": "sha512-6PejFtw9VTFFy5vu0ks+U7Ozkqz+eMt+HN8AZKBKErYzX5/xs0kpkOcSRpu3ETdTYcZf8VAmLVgFgE2BE+3WuQ==", "dependencies": { - "@sentry/types": "7.84.0" + "@sentry/types": "7.86.0" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/vercel-edge": { - "version": "7.84.0", - "resolved": "https://registry.npmjs.org/@sentry/vercel-edge/-/vercel-edge-7.84.0.tgz", - "integrity": "sha512-vabN7aUYdTFTbufoPBnp8DdD3PaaWmlSuGnFQWmAl8AXaR+tB/3wQPfNqcVDdVoyoe8MADHtmU4KHJdMJYgzhg==", + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/@sentry/vercel-edge/-/vercel-edge-7.86.0.tgz", + "integrity": "sha512-+MPb93DXIeYIoaFTT1YpC0myIkXW3xtxhQ7y7QwqS7k6x1zBb34OVCGitdE6+o85RV83sFMMiBxrfKNLt5Ht0A==", "dependencies": { - "@sentry-internal/tracing": "7.84.0", - "@sentry/core": "7.84.0", - "@sentry/types": "7.84.0", - "@sentry/utils": "7.84.0" + "@sentry-internal/tracing": "7.86.0", + "@sentry/core": "7.86.0", + "@sentry/types": "7.86.0", + "@sentry/utils": "7.86.0" }, "engines": { "node": ">=8" @@ -33004,26 +33018,37 @@ "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.6.0.tgz", "integrity": "sha512-2/U3GXA6YiPYQDLGwtGlnNgKYBSwCFIHf8Y9LUY5VATHdtbLlU0Y1R3QoBnT0aB4qv/BEiVVsj7LJXoQCgJ2vA==" }, - "@sentry-internal/tracing": { - "version": "7.84.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.84.0.tgz", - "integrity": "sha512-y9bGYA0OM6PEREfd+nk4UURZy29tpIw+7vQwpxWfEVs2fqq0/5TBFX/tKFb8AKUI9lVM8v0bcF0bNSCnuPQZHQ==", + "@sentry-internal/feedback": { + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-7.86.0.tgz", + "integrity": "sha512-6rl0JYjmAKnhm4/fuFaROh4Ht8oi9f6ZeIcViCuGJcrGICZJJY0s+R77XJI78rNa82PYFrSCcnWXcGji4T8E7g==", "requires": { - "@sentry/core": "7.84.0", - "@sentry/types": "7.84.0", - "@sentry/utils": "7.84.0" + "@sentry/core": "7.86.0", + "@sentry/types": "7.86.0", + "@sentry/utils": "7.86.0" + } + }, + "@sentry-internal/tracing": { + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.86.0.tgz", + "integrity": "sha512-b4dUsNWlPWRwakGwR7bhOkqiFlqQszH1hhVFwrm/8s3kqEBZ+E4CeIfCvuHBHQ1cM/fx55xpXX/BU163cy+3iQ==", + "requires": { + "@sentry/core": "7.86.0", + "@sentry/types": "7.86.0", + "@sentry/utils": "7.86.0" } }, "@sentry/browser": { - "version": "7.84.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.84.0.tgz", - "integrity": "sha512-X50TlTKY9WzAnHsYc4FYrCWgm+CdVo0h02ggmodVBUpRLUBjj+cs5Q1plov/v/XeorSwmorNEMUu/n+XZNSsrA==", + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.86.0.tgz", + "integrity": "sha512-nfYWpVOmug+W7KJO7/xhA1JScMZcYHcoOVHLsUFm4znx51U4qZEk+zZDM11Q2Nw6MuDyEYg6bsH1QCwaoC6nLw==", "requires": { - "@sentry-internal/tracing": "7.84.0", - "@sentry/core": "7.84.0", - "@sentry/replay": "7.84.0", - "@sentry/types": "7.84.0", - "@sentry/utils": "7.84.0" + "@sentry-internal/feedback": "7.86.0", + "@sentry-internal/tracing": "7.86.0", + "@sentry/core": "7.86.0", + "@sentry/replay": "7.86.0", + "@sentry/types": "7.86.0", + "@sentry/utils": "7.86.0" } }, "@sentry/cli": { @@ -33040,38 +33065,38 @@ } }, "@sentry/core": { - "version": "7.84.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.84.0.tgz", - "integrity": "sha512-tbuwunbBx2kSex15IHCqHDnrMfIlqPc6w/76fwkGqokz3oh9GSEGlLICwmBWL8AypWimUg13IDtFpD0TJTriWA==", + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.86.0.tgz", + "integrity": "sha512-SbLvqd1bRYzhDS42u7GMnmbDMfth/zRiLElQWbLK/shmuZzTcfQSwNNdF4Yj+VfjOkqPFgGmICHSHVUc9dh01g==", "requires": { - "@sentry/types": "7.84.0", - "@sentry/utils": "7.84.0" + "@sentry/types": "7.86.0", + "@sentry/utils": "7.86.0" } }, "@sentry/integrations": { - "version": "7.84.0", - "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.84.0.tgz", - "integrity": "sha512-aUu95BhnHSf/W/F4BvsFnf4x+piHiah5a180YTMqWcHMkJr7MnCWNIad9RJuHlcINSfyHtUr5+Z4Bajzqg60lw==", + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.86.0.tgz", + "integrity": "sha512-BStRH1yBhhUsvmCXWx88/1+cY93l4B+3RW60RPeYcupvUQ1DJ8qxfN918+nA9XoZt9XELXvs8USCqqynG/aEkg==", "requires": { - "@sentry/core": "7.84.0", - "@sentry/types": "7.84.0", - "@sentry/utils": "7.84.0", + "@sentry/core": "7.86.0", + "@sentry/types": "7.86.0", + "@sentry/utils": "7.86.0", "localforage": "^1.8.1" } }, "@sentry/nextjs": { - "version": "7.84.0", - "resolved": "https://registry.npmjs.org/@sentry/nextjs/-/nextjs-7.84.0.tgz", - "integrity": "sha512-MjOGR3AZDVYfBQX2jZaxBMl7JaDSbu6uoiycdT+cMCYq722aB9Wv8vUzsCTzzV4/JmCjJFbfSis7S2Vkw7/9FA==", + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/@sentry/nextjs/-/nextjs-7.86.0.tgz", + "integrity": "sha512-pdRTt3ELLlpyKKtvumSiqFeTImdSAnoII1JSNwJvmWz9+3MRsvBW/Ee4r19WxK07Y/nxPxyPaIuUmbsXnjkt1A==", "requires": { "@rollup/plugin-commonjs": "24.0.0", - "@sentry/core": "7.84.0", - "@sentry/integrations": "7.84.0", - "@sentry/node": "7.84.0", - "@sentry/react": "7.84.0", - "@sentry/types": "7.84.0", - "@sentry/utils": "7.84.0", - "@sentry/vercel-edge": "7.84.0", + "@sentry/core": "7.86.0", + "@sentry/integrations": "7.86.0", + "@sentry/node": "7.86.0", + "@sentry/react": "7.86.0", + "@sentry/types": "7.86.0", + "@sentry/utils": "7.86.0", + "@sentry/vercel-edge": "7.86.0", "@sentry/webpack-plugin": "1.21.0", "chalk": "3.0.0", "resolve": "1.22.8", @@ -33080,69 +33105,69 @@ } }, "@sentry/node": { - "version": "7.84.0", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.84.0.tgz", - "integrity": "sha512-Xm3fIXT3TZOQi+6uQBavI8iOehD3PkY7v0y3hog0d4lQTH88vQK9BBsI+jZEq81Em+RG/u7vZNiFo6YMTnWF7Q==", + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.86.0.tgz", + "integrity": "sha512-cB1bn/LMn2Km97Y3hv63xwWxT50/G5ixGuSxTZ3dCQM6VDhmZoCuC5NGT3itVvaRd6upQXRZa5W0Zgyh0HXKig==", "requires": { - "@sentry-internal/tracing": "7.84.0", - "@sentry/core": "7.84.0", - "@sentry/types": "7.84.0", - "@sentry/utils": "7.84.0", + "@sentry-internal/tracing": "7.86.0", + "@sentry/core": "7.86.0", + "@sentry/types": "7.86.0", + "@sentry/utils": "7.86.0", "https-proxy-agent": "^5.0.0" } }, "@sentry/react": { - "version": "7.84.0", - "resolved": "https://registry.npmjs.org/@sentry/react/-/react-7.84.0.tgz", - "integrity": "sha512-VQZrEHwPKCYTSbRYXD2ohXcQg99G1Hgs8eevRUuRpdChmA2e3z/RvT00NlaSNNZrS86wPyKpAK6kickB/eSYrw==", + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/@sentry/react/-/react-7.86.0.tgz", + "integrity": "sha512-2bHi+YcG4cT+4xHXXzv+AZpU3pdPUlDBorSgHOpa9At4yxr17UWW2f8bP9wPYRgj+NEIM3YhDgR46FlBu9GSKg==", "requires": { - "@sentry/browser": "7.84.0", - "@sentry/types": "7.84.0", - "@sentry/utils": "7.84.0", + "@sentry/browser": "7.86.0", + "@sentry/types": "7.86.0", + "@sentry/utils": "7.86.0", "hoist-non-react-statics": "^3.3.2" } }, "@sentry/replay": { - "version": "7.84.0", - "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.84.0.tgz", - "integrity": "sha512-c4PxT0ZpvkR9zXNfmAk3ojkm6eZ9+NlDze09RFBOCNo69QwIN90hnvbjXFC1+vRIJsfgo78Zr0ya/Wzb3Rog7Q==", + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.86.0.tgz", + "integrity": "sha512-YYZO8bfQSx1H87Te/zzyHPLHvExWiYwUfMWW68yGX+PPZIIzxaM81/iCQHkoucxlvuPCOtxCgf7RSMbsnqEa8g==", "requires": { - "@sentry-internal/tracing": "7.84.0", - "@sentry/core": "7.84.0", - "@sentry/types": "7.84.0", - "@sentry/utils": "7.84.0" + "@sentry-internal/tracing": "7.86.0", + "@sentry/core": "7.86.0", + "@sentry/types": "7.86.0", + "@sentry/utils": "7.86.0" } }, "@sentry/tracing": { - "version": "7.84.0", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.84.0.tgz", - "integrity": "sha512-NhBX28vUmCu/5avyGKX6B4UTm4MTOfbdg9ZzCnS7hPuWDfEAUIVHZVryi2q8bqp2DNGJvS9qIq/TSf39JIpdJg==", + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.86.0.tgz", + "integrity": "sha512-WPqgmbLm6ntpIoTZd1L/RHIVEDMmvVjIDxKeXGiJeXHZG2VMtgwoxuZAFluVFaD0Sr20Nhj+ZS7HvKOWTxrjjA==", "requires": { - "@sentry-internal/tracing": "7.84.0" + "@sentry-internal/tracing": "7.86.0" } }, "@sentry/types": { - "version": "7.84.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.84.0.tgz", - "integrity": "sha512-VqGLIF3JOUrk7yIXjLXJvAORkZL1e3dDX0Q1okRehwyt/5CRE+mdUTeJZkBo9P9mBwgMyvtwklzOGGrzjb4eMA==" + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.86.0.tgz", + "integrity": "sha512-pGAt0+bMfWgo0KG2epthfNV4Wae03tURpoxNjGo5Fr4cXxvLTSijSAQ6rmmO4bXBJ7+rErEjX30g30o/eEdP9g==" }, "@sentry/utils": { - "version": "7.84.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.84.0.tgz", - "integrity": "sha512-qdUVuxnRBvaf05AU+28R+xYtZmi/Ymf8os3Njq9g4XuA+QEkZLbzmIpRK5W9Ja7vUtjOeg29Xgg43A8znde9LQ==", + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.86.0.tgz", + "integrity": "sha512-6PejFtw9VTFFy5vu0ks+U7Ozkqz+eMt+HN8AZKBKErYzX5/xs0kpkOcSRpu3ETdTYcZf8VAmLVgFgE2BE+3WuQ==", "requires": { - "@sentry/types": "7.84.0" + "@sentry/types": "7.86.0" } }, "@sentry/vercel-edge": { - "version": "7.84.0", - "resolved": "https://registry.npmjs.org/@sentry/vercel-edge/-/vercel-edge-7.84.0.tgz", - "integrity": "sha512-vabN7aUYdTFTbufoPBnp8DdD3PaaWmlSuGnFQWmAl8AXaR+tB/3wQPfNqcVDdVoyoe8MADHtmU4KHJdMJYgzhg==", + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/@sentry/vercel-edge/-/vercel-edge-7.86.0.tgz", + "integrity": "sha512-+MPb93DXIeYIoaFTT1YpC0myIkXW3xtxhQ7y7QwqS7k6x1zBb34OVCGitdE6+o85RV83sFMMiBxrfKNLt5Ht0A==", "requires": { - "@sentry-internal/tracing": "7.84.0", - "@sentry/core": "7.84.0", - "@sentry/types": "7.84.0", - "@sentry/utils": "7.84.0" + "@sentry-internal/tracing": "7.86.0", + "@sentry/core": "7.86.0", + "@sentry/types": "7.86.0", + "@sentry/utils": "7.86.0" } }, "@sentry/webpack-plugin": { diff --git a/package.json b/package.json index 731bdad85..96404bd79 100644 --- a/package.json +++ b/package.json @@ -58,9 +58,9 @@ "@grpc/grpc-js": "1.9.13", "@leeoniya/ufuzzy": "^1.0.13", "@mozilla/glean": "3.0.0", - "@sentry/nextjs": "^7.84.0", + "@sentry/nextjs": "^7.86.0", "@sentry/node": "^7.58.1", - "@sentry/tracing": "^7.84.0", + "@sentry/tracing": "^7.86.0", "@types/jsdom": "^21.1.5", "@types/node": "^20.10.0", "@types/react": "^18.2.38", From a517d1f93e4d0ef3136cbedfc6d018e01002a4da Mon Sep 17 00:00:00 2001 From: Robert Helmer Date: Wed, 13 Dec 2023 09:44:35 -0800 Subject: [PATCH 11/11] MNTOR-2467 - move Monitor to mozilla.org domain (#3875) --- README.md | 2 +- next.config.js | 4 ++++ sentry.client.config.ts | 3 ++- src/e2e/utils/helpers.ts | 2 +- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 925178244..31cfbc801 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Firefox Monitor notifies users when their credentials have been compromised in a data breach. -This code is for the monitor.firefox.com service & website. +This code is for the monitor.mozilla.org service & website. Breach data is powered by [haveibeenpwned.com](https://haveibeenpwned.com/). diff --git a/next.config.js b/next.config.js index 508963953..43e30e852 100644 --- a/next.config.js +++ b/next.config.js @@ -26,6 +26,10 @@ const nextConfig = { protocol: "https", hostname: "monitor.firefox.com", }, + { + protocol: "https", + hostname: "monitor.mozilla.org", + }, { protocol: "https", hostname: "firefoxusercontent.com", diff --git a/sentry.client.config.ts b/sentry.client.config.ts index 50a032358..961fb88ea 100644 --- a/sentry.client.config.ts +++ b/sentry.client.config.ts @@ -49,7 +49,8 @@ Sentry.init({ function getEnvironment() { if ( document.location.origin === "https://monitor.firefox.com" || - document.location.origin === "https://monitor.mozilla.com" + document.location.origin === "https://monitor.mozilla.com" || + document.location.origin === "https://monitor.mozilla.org" ) { return "production"; } diff --git a/src/e2e/utils/helpers.ts b/src/e2e/utils/helpers.ts index b1a6ffb01..8d21892d8 100644 --- a/src/e2e/utils/helpers.ts +++ b/src/e2e/utils/helpers.ts @@ -30,7 +30,7 @@ export const ENV_URLS = { local: "http://localhost:6060", heroku: "https://fx-breach-alerts.herokuapp.com", stage: "https://stage.firefoxmonitor.nonprod.cloudops.mozgcp.net", - prod: "https://monitor.firefox.com", + prod: "https://monitor.mozilla.org", }; export const setEnvVariables = (email: string) => {