From 6e6addd62f7312b83201e6cd5d0201725f343215 Mon Sep 17 00:00:00 2001 From: Dave Richer Date: Fri, 9 May 2025 10:38:19 -0400 Subject: [PATCH] feature/IO-3228-Notifications-1.6-and-Deprecations - See Ticket for full details (Notifications restrictions, AntD deprecations) --- client/package-lock.json | 24 +- client/package.json | 4 +- .../bill-detail-edit-return.component.jsx | 19 +- .../bill-detail-edit.container.jsx | 2 +- .../bill-enter-modal.container.jsx | 2 +- .../ca-bc-etf-table-modal.container.jsx | 2 +- .../card-payment-modal.container.jsx | 2 +- .../contracts-find-modal.container.jsx | 2 +- .../email-overlay/email-overlay.container.jsx | 2 +- .../components/header/header.component.jsx | 4 +- .../inventory-upsert-modal.container.jsx | 2 +- .../job-costing-modal.container.jsx | 2 +- .../job-detail-cards.component.jsx | 10 +- .../job-reconciliation.modal.container.jsx | 2 +- .../job-watcher-toggle.component.jsx | 40 +- .../job-watcher-toggle.container.jsx | 24 +- .../jobs-find-modal.container.jsx | 2 +- .../note-upsert-modal.container.jsx | 11 +- .../notification-center.component.jsx | 36 +- .../notification-center.container.jsx | 31 +- .../notification-settings-form.component.jsx | 20 +- .../parts-order-modal.container.jsx | 2 +- .../parts-queue-card.component.jsx | 2 +- .../parts-receive-modal.container.jsx | 2 +- .../payment-modal/payment-modal.container.jsx | 2 +- .../print-center-modal.container.jsx | 2 +- .../report-center-modal.container.jsx | 2 +- .../schedule-job-modal.container.jsx | 2 +- .../scoreboard-jobs-list.component.jsx | 2 +- ...p-info.notifications-autoadd.component.jsx | 2 +- .../task-upsert-modal.container.jsx | 2 +- .../tech-lookup-jobs-drawer.component.jsx | 2 +- .../time-ticket-list-team-pay.component.jsx | 2 +- .../time-ticket-modal.container.jsx | 2 +- .../time-ticket-task-modal.container.jsx | 2 +- client/src/translations/en_us/common.json | 7 +- client/src/translations/es/common.json | 6 +- client/src/translations/fr/common.json | 6 +- client/src/utils/useIsEmployee.js | 19 + package-lock.json | 538 +++++++++--------- package.json | 16 +- 41 files changed, 486 insertions(+), 377 deletions(-) create mode 100644 client/src/utils/useIsEmployee.js diff --git a/client/package-lock.json b/client/package-lock.json index 6fe83c5e9..5ef00a31f 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -25,9 +25,9 @@ "@sentry/vite-plugin": "^3.4.0", "@splitsoftware/splitio-react": "^2.1.1", "@tanem/react-nprogress": "^5.0.53", - "antd": "^5.25.0", + "antd": "^5.25.1", "apollo-link-logger": "^2.0.1", - "apollo-link-sentry": "^4.2.0", + "apollo-link-sentry": "^4.3.0", "autosize": "^6.0.1", "axios": "^1.8.4", "classnames": "^2.5.1", @@ -6088,9 +6088,9 @@ } }, "node_modules/antd": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/antd/-/antd-5.25.0.tgz", - "integrity": "sha512-p9d8Kuj/bipjNdg9NrTu1VmTrhcwIhURu2NfK6qaBMbb+LRyFdAUoseT+7J4a+5z3jNVjxH5zaYv/45Zf8Coyg==", + "version": "5.25.1", + "resolved": "https://registry.npmjs.org/antd/-/antd-5.25.1.tgz", + "integrity": "sha512-4KC7KuPCjr0z3Vuw9DsF+ceqJaPLbuUI3lOX1sY8ix25ceamp+P8yxOmk3Y2JHCD2ZAhq+5IQ/DTJRN2adWYKQ==", "license": "MIT", "dependencies": { "@ant-design/colors": "^7.2.0", @@ -6128,7 +6128,7 @@ "rc-rate": "~2.13.1", "rc-resize-observer": "^1.4.3", "rc-segmented": "~2.7.0", - "rc-select": "~14.16.6", + "rc-select": "~14.16.7", "rc-slider": "~11.1.8", "rc-steps": "~6.0.1", "rc-switch": "~4.1.0", @@ -6232,9 +6232,9 @@ } }, "node_modules/apollo-link-sentry": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/apollo-link-sentry/-/apollo-link-sentry-4.2.0.tgz", - "integrity": "sha512-w8EUM4aEw1/VxIB3KOP11T8qz44oWRcbXRd2vJq/qHnfRMKS5HkMerSIYwKN2e8k9H8ubfkwBvStH51CVf4wwg==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/apollo-link-sentry/-/apollo-link-sentry-4.3.0.tgz", + "integrity": "sha512-C3WK4iwIzW5vC5BoY3VPdKjm16P6ca/LGKFnxg6PvUuboxPlqs7LHQCYvEsdAxBkoY+8kRXd8Q3+3oU+HHUceA==", "license": "MIT", "dependencies": { "deepmerge": "^4.2.2", @@ -14024,9 +14024,9 @@ } }, "node_modules/rc-select": { - "version": "14.16.6", - "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.16.6.tgz", - "integrity": "sha512-YPMtRPqfZWOm2XGTbx5/YVr1HT0vn//8QS77At0Gjb3Lv+Lbut0IORJPKLWu1hQ3u4GsA0SrDzs7nI8JG7Zmyg==", + "version": "14.16.7", + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.16.7.tgz", + "integrity": "sha512-lT9kO5gFHQdJzu9a0btcOtNaJHkhenSl8H5mcpgXN9VIMXP59rnkpbdHmPrteixWs1D5zFOTyoTYX3b7joADIQ==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.10.1", diff --git a/client/package.json b/client/package.json index 17cdb1e16..f5baf29d0 100644 --- a/client/package.json +++ b/client/package.json @@ -24,9 +24,9 @@ "@sentry/vite-plugin": "^3.4.0", "@splitsoftware/splitio-react": "^2.1.1", "@tanem/react-nprogress": "^5.0.53", - "antd": "^5.25.0", + "antd": "^5.25.1", "apollo-link-logger": "^2.0.1", - "apollo-link-sentry": "^4.2.0", + "apollo-link-sentry": "^4.3.0", "autosize": "^6.0.1", "axios": "^1.8.4", "classnames": "^2.5.1", diff --git a/client/src/components/bill-detail-edit/bill-detail-edit-return.component.jsx b/client/src/components/bill-detail-edit/bill-detail-edit-return.component.jsx index 7a8e20cd3..3694780d0 100644 --- a/client/src/components/bill-detail-edit/bill-detail-edit-return.component.jsx +++ b/client/src/components/bill-detail-edit/bill-detail-edit-return.component.jsx @@ -14,8 +14,21 @@ const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop }); const mapDispatchToProps = (dispatch) => ({ - setPartsOrderContext: (context) => dispatch(setModalContext({ context: context, modal: "partsOrder" })), - insertAuditTrail: ({ jobid, operation, type }) => dispatch(insertAuditTrail({ jobid, operation, type })) + setPartsOrderContext: (context) => + dispatch( + setModalContext({ + context: context, + modal: "partsOrder" + }) + ), + insertAuditTrail: ({ jobid, operation, type }) => + dispatch( + insertAuditTrail({ + jobid, + operation, + type + }) + ) }); export default connect(mapStateToProps, mapDispatchToProps)(BillDetailEditReturn); @@ -69,7 +82,7 @@ export function BillDetailEditReturn({ setPartsOrderContext, insertAuditTrail, b setOpen(false)} - destroyOnClose + destroyOnHidden title={t("bills.actions.return")} onOk={() => form.submit()} > diff --git a/client/src/components/bill-detail-edit/bill-detail-edit.container.jsx b/client/src/components/bill-detail-edit/bill-detail-edit.container.jsx index 3cebb3e07..f2b4e9ddf 100644 --- a/client/src/components/bill-detail-edit/bill-detail-edit.container.jsx +++ b/client/src/components/bill-detail-edit/bill-detail-edit.container.jsx @@ -29,7 +29,7 @@ export default function BillDetailEditcontainer() { delete search.billid; history({ search: queryString.stringify(search) }); }} - destroyOnClose + destroyOnHidden open={search.billid} > diff --git a/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx b/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx index a86a1fbea..5041f007a 100644 --- a/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx +++ b/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx @@ -412,7 +412,7 @@ function BillEnterModalContainer({ billEnterModal, toggleModalVisible, bodyshop, )} } - destroyOnClose + destroyOnHidden >
toggleModalVisible()} onOk={() => toggleModalVisible()} - destroyOnClose + destroyOnHidden forceRender > diff --git a/client/src/components/card-payment-modal/card-payment-modal.container.jsx b/client/src/components/card-payment-modal/card-payment-modal.container.jsx index 48f84b855..83210f06f 100644 --- a/client/src/components/card-payment-modal/card-payment-modal.container.jsx +++ b/client/src/components/card-payment-modal/card-payment-modal.container.jsx @@ -40,7 +40,7 @@ function CardPaymentModalContainer({ cardPaymentModal, toggleModalVisible, bodys ]} width="80%" - destroyOnClose + destroyOnHidden > diff --git a/client/src/components/contracts-find-modal/contracts-find-modal.container.jsx b/client/src/components/contracts-find-modal/contracts-find-modal.container.jsx index eb3ae6fd4..57200f471 100644 --- a/client/src/components/contracts-find-modal/contracts-find-modal.container.jsx +++ b/client/src/components/contracts-find-modal/contracts-find-modal.container.jsx @@ -63,7 +63,7 @@ export function ContractsFindModalContainer({ title={t("contracts.labels.findermodal")} onCancel={() => toggleModalVisible()} onOk={() => toggleModalVisible()} - destroyOnClose + destroyOnHidden forceRender > diff --git a/client/src/components/email-overlay/email-overlay.container.jsx b/client/src/components/email-overlay/email-overlay.container.jsx index bab312df0..af50261e6 100644 --- a/client/src/components/email-overlay/email-overlay.container.jsx +++ b/client/src/components/email-overlay/email-overlay.container.jsx @@ -152,7 +152,7 @@ export function EmailOverlayContainer({ emailConfig, modalVisible, toggleEmailOv }, [modalVisible]); // eslint-disable-line react-hooks/exhaustive-deps return ( ) : ( - + ), diff --git a/client/src/components/inventory-upsert-modal/inventory-upsert-modal.container.jsx b/client/src/components/inventory-upsert-modal/inventory-upsert-modal.container.jsx index 410261706..ee53b3bd4 100644 --- a/client/src/components/inventory-upsert-modal/inventory-upsert-modal.container.jsx +++ b/client/src/components/inventory-upsert-modal/inventory-upsert-modal.container.jsx @@ -98,7 +98,7 @@ export function InventoryUpsertModalContainer({ currentUser, bodyshop, inventory onCancel={() => { toggleModalVisible(); }} - destroyOnClose + destroyOnHidden > diff --git a/client/src/components/job-costing-modal/job-costing-modal.container.jsx b/client/src/components/job-costing-modal/job-costing-modal.container.jsx index 31fd7f949..ff21799ab 100644 --- a/client/src/components/job-costing-modal/job-costing-modal.container.jsx +++ b/client/src/components/job-costing-modal/job-costing-modal.container.jsx @@ -49,7 +49,7 @@ export function JobCostingModalContainer({ jobCostingModal, toggleModalVisible } }} cancelButtonProps={{ style: { display: "none" } }} width="90%" - destroyOnClose + destroyOnHidden > {!costingData ? ( diff --git a/client/src/components/job-detail-cards/job-detail-cards.component.jsx b/client/src/components/job-detail-cards/job-detail-cards.component.jsx index d114816ed..ac94a7486 100644 --- a/client/src/components/job-detail-cards/job-detail-cards.component.jsx +++ b/client/src/components/job-detail-cards/job-detail-cards.component.jsx @@ -32,7 +32,13 @@ const mapStateToProps = createStructuredSelector({ }); const mapDispatchToProps = (dispatch) => ({ - setPrintCenterContext: (context) => dispatch(setModalContext({ context: context, modal: "printCenter" })), + setPrintCenterContext: (context) => + dispatch( + setModalContext({ + context: context, + modal: "printCenter" + }) + ), insertAuditTrail: ({ jobid, operation, type }) => dispatch( insertAuditTrail({ @@ -87,7 +93,7 @@ export function JobDetailCards({ bodyshop, setPrintCenterContext, insertAuditTra }; return ( - + {loading ? : null} {error ? : null} {data ? ( diff --git a/client/src/components/job-reconciliation-modal/job-reconciliation.modal.container.jsx b/client/src/components/job-reconciliation-modal/job-reconciliation.modal.container.jsx index 9e9cd1a93..09b48e08a 100644 --- a/client/src/components/job-reconciliation-modal/job-reconciliation.modal.container.jsx +++ b/client/src/components/job-reconciliation-modal/job-reconciliation.modal.container.jsx @@ -44,7 +44,7 @@ function JobReconciliationModalContainer({ reconciliationModal, toggleModalVisib onOk={handleCancel} onCancel={handleCancel} cancelButtonProps={{ display: "none" }} - destroyOnClose + destroyOnHidden className="imex-reconciliation-modal" > {loading && } diff --git a/client/src/components/job-watcher-toggle/job-watcher-toggle.component.jsx b/client/src/components/job-watcher-toggle/job-watcher-toggle.component.jsx index 8e21fbc44..d7dd76c52 100644 --- a/client/src/components/job-watcher-toggle/job-watcher-toggle.component.jsx +++ b/client/src/components/job-watcher-toggle/job-watcher-toggle.component.jsx @@ -24,7 +24,8 @@ export default function JobWatcherToggleComponent({ handleToggleSelf, handleRemoveWatcher, handleWatcherSelect, - handleTeamSelect + handleTeamSelect, + isEmployee }) { const { t } = useTranslation(); @@ -66,22 +67,32 @@ export default function JobWatcherToggleComponent({ : } - size="medium" - onClick={handleToggleSelf} - loading={adding || removing} - > - {isWatching ? t("notifications.labels.unwatch") : t("notifications.labels.watch")} - + + + + + ]} > {t("notifications.labels.watching-issue")} + {!isEmployee && ( + + {t("notifications.tooltips.not-employee")} + + )} @@ -98,8 +109,11 @@ export default function JobWatcherToggleComponent({ - jobWatchers.every((w) => w.user_email !== e.user_email && e.active && e.user_email) + bodyshop?.employees?.filter( + (e) => + e.user_email && // Ensure user_email is not null or undefined + e.active && // Ensure employee is active + jobWatchers.every((w) => w.user_email !== e.user_email) // Ensure not already a watcher ) || [] } placeholder={t("notifications.labels.employee-search")} diff --git a/client/src/components/job-watcher-toggle/job-watcher-toggle.container.jsx b/client/src/components/job-watcher-toggle/job-watcher-toggle.container.jsx index d57fa6c89..c47360455 100644 --- a/client/src/components/job-watcher-toggle/job-watcher-toggle.container.jsx +++ b/client/src/components/job-watcher-toggle/job-watcher-toggle.container.jsx @@ -6,6 +6,7 @@ import { createStructuredSelector } from "reselect"; import { selectBodyshop, selectCurrentUser } from "../../redux/user/user.selectors.js"; import { useSplitTreatments } from "@splitsoftware/splitio-react"; import JobWatcherToggleComponent from "./job-watcher-toggle.component.jsx"; +import { useIsEmployee } from "../../utils/useIsEmployee.js"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop, @@ -21,13 +22,14 @@ function JobWatcherToggleContainer({ job, currentUser, bodyshop }) { splitKey: bodyshop && bodyshop.imexshopid }); - const userEmail = currentUser.email; - const jobid = job.id; - + const isEmployee = useIsEmployee(bodyshop, currentUser); const [open, setOpen] = useState(false); const [selectedWatcher, setSelectedWatcher] = useState(null); const [selectedTeam, setSelectedTeam] = useState(null); + const userEmail = currentUser.email; + const jobid = job.id; + // Fetch current watchers with refetch capability const { data: watcherData, @@ -139,13 +141,13 @@ function JobWatcherToggleContainer({ job, currentUser, bodyshop }) { }); const handleToggleSelf = useCallback(async () => { - if (adding || removing) return; + if (adding || removing || !isEmployee) return; if (isWatching) { await removeWatcher({ variables: { jobid, userEmail } }); } else { await addWatcher({ variables: { jobid, userEmail } }); } - }, [isWatching, addWatcher, removeWatcher, jobid, userEmail, adding, removing]); + }, [isWatching, addWatcher, removeWatcher, jobid, userEmail, adding, removing, isEmployee]); const handleRemoveWatcher = useCallback( async (email) => { @@ -187,7 +189,16 @@ function JobWatcherToggleContainer({ job, currentUser, bodyshop }) { setSelectedTeam(null); return; } - await Promise.all(newWatchers.map((email) => addWatcher({ variables: { jobid, userEmail: email } }))); + await Promise.all( + newWatchers.map((email) => + addWatcher({ + variables: { + jobid, + userEmail: email + } + }) + ) + ); }, [jobWatchers, addWatcher, jobid, adding] ); @@ -212,6 +223,7 @@ function JobWatcherToggleContainer({ job, currentUser, bodyshop }) { handleWatcherSelect={handleWatcherSelect} handleTeamSelect={handleTeamSelect} currentUser={currentUser} + isEmployee={isEmployee} // Pass isEmployee to the component /> ); } diff --git a/client/src/components/jobs-find-modal/jobs-find-modal.container.jsx b/client/src/components/jobs-find-modal/jobs-find-modal.container.jsx index c858aba3d..a5fa7c325 100644 --- a/client/src/components/jobs-find-modal/jobs-find-modal.container.jsx +++ b/client/src/components/jobs-find-modal/jobs-find-modal.container.jsx @@ -65,7 +65,7 @@ export default connect( diff --git a/client/src/components/note-upsert-modal/note-upsert-modal.container.jsx b/client/src/components/note-upsert-modal/note-upsert-modal.container.jsx index 6d844e5fa..18c3b9f1a 100644 --- a/client/src/components/note-upsert-modal/note-upsert-modal.container.jsx +++ b/client/src/components/note-upsert-modal/note-upsert-modal.container.jsx @@ -20,7 +20,14 @@ const mapStateToProps = createStructuredSelector({ }); const mapDispatchToProps = (dispatch) => ({ toggleModalVisible: () => dispatch(toggleModalVisible("noteUpsert")), - insertAuditTrail: ({ jobid, operation, type }) => dispatch(insertAuditTrail({ jobid, operation, type })) + insertAuditTrail: ({ jobid, operation, type }) => + dispatch( + insertAuditTrail({ + jobid, + operation, + type + }) + ) }); export function NoteUpsertModalContainer({ currentUser, noteUpsertModal, toggleModalVisible, insertAuditTrail }) { @@ -123,7 +130,7 @@ export function NoteUpsertModalContainer({ currentUser, noteUpsertModal, toggleM onCancel={() => { toggleModalVisible(); }} - destroyOnClose + destroyOnHidden > diff --git a/client/src/components/notification-center/notification-center.component.jsx b/client/src/components/notification-center/notification-center.component.jsx index f72d2bd48..35dac2af6 100644 --- a/client/src/components/notification-center/notification-center.component.jsx +++ b/client/src/components/notification-center/notification-center.component.jsx @@ -1,11 +1,11 @@ import { Virtuoso } from "react-virtuoso"; -import { Badge, Button, Space, Spin, Switch, Tooltip, Typography } from "antd"; +import { Alert, Badge, Button, Space, Spin, Switch, Tooltip, Typography } from "antd"; import { CheckCircleFilled, CheckCircleOutlined, EyeFilled, EyeOutlined } from "@ant-design/icons"; import { useTranslation } from "react-i18next"; import { useNavigate } from "react-router-dom"; import "./notification-center.styles.scss"; import day from "../../utils/day.js"; -import { forwardRef, useRef, useEffect } from "react"; +import { forwardRef, useEffect, useRef } from "react"; import { DateTimeFormat } from "../../utils/DateFormatter.jsx"; const { Text, Title } = Typography; @@ -26,7 +26,8 @@ const NotificationCenterComponent = forwardRef( markAllRead, loadMore, onNotificationClick, - unreadCount + unreadCount, + isEmployee }, ref ) => { @@ -93,7 +94,12 @@ const NotificationCenterComponent = forwardRef( ) : ( )} - toggleUnreadOnly(checked)} size="small" /> + toggleUnreadOnly(checked)} + size="small" + disabled={!isEmployee} + /> @@ -106,14 +112,20 @@ const NotificationCenterComponent = forwardRef( - + {!isEmployee ? ( +
+ +
+ ) : ( + + )} ); } diff --git a/client/src/components/notification-center/notification-center.container.jsx b/client/src/components/notification-center/notification-center.container.jsx index a2924aa3a..d0024c9d3 100644 --- a/client/src/components/notification-center/notification-center.container.jsx +++ b/client/src/components/notification-center/notification-center.container.jsx @@ -4,9 +4,10 @@ import { connect } from "react-redux"; import NotificationCenterComponent from "./notification-center.component"; import { GET_NOTIFICATIONS } from "../../graphql/notifications.queries"; import { createStructuredSelector } from "reselect"; -import { selectBodyshop } from "../../redux/user/user.selectors.js"; +import { selectBodyshop, selectCurrentUser } from "../../redux/user/user.selectors.js"; import day from "../../utils/day.js"; import { INITIAL_NOTIFICATIONS, useSocket } from "../../contexts/SocketIO/useSocket.js"; +import { useIsEmployee } from "../../utils/useIsEmployee.js"; // This will be used to poll for notifications when the socket is disconnected const NOTIFICATION_POLL_INTERVAL_SECONDS = 60; @@ -17,17 +18,18 @@ const NOTIFICATION_POLL_INTERVAL_SECONDS = 60; * @param onClose * @param bodyshop * @param unreadCount + * @param currentUser * @returns {JSX.Element} * @constructor */ -const NotificationCenterContainer = ({ visible, onClose, bodyshop, unreadCount }) => { +const NotificationCenterContainer = ({ visible, onClose, bodyshop, unreadCount, currentUser }) => { const [showUnreadOnly, setShowUnreadOnly] = useState(false); const [notifications, setNotifications] = useState([]); const [isLoading, setIsLoading] = useState(false); const { isConnected, markNotificationRead, markAllNotificationsRead } = useSocket(); const notificationRef = useRef(null); - const userAssociationId = bodyshop?.associations?.[0]?.id; + const isEmployee = useIsEmployee(bodyshop, currentUser); const baseWhereClause = useMemo(() => { return { associationid: { _eq: userAssociationId } }; @@ -51,7 +53,7 @@ const NotificationCenterContainer = ({ visible, onClose, bodyshop, unreadCount } fetchPolicy: "cache-and-network", notifyOnNetworkStatusChange: true, pollInterval: isConnected ? 0 : day.duration(NOTIFICATION_POLL_INTERVAL_SECONDS, "seconds").asMilliseconds(), - skip: !userAssociationId, + skip: !userAssociationId || !isEmployee, onError: (err) => { console.error(`Error polling Notifications: ${err?.message || ""}`); setTimeout(() => refetch(), day.duration(2, "seconds").asMilliseconds()); @@ -71,7 +73,7 @@ const NotificationCenterContainer = ({ visible, onClose, bodyshop, unreadCount } }, [visible, onClose]); useEffect(() => { - if (data?.notifications) { + if (data?.notifications && isEmployee) { const processedNotifications = data.notifications .map((notif) => { let scenarioText; @@ -101,11 +103,13 @@ const NotificationCenterContainer = ({ visible, onClose, bodyshop, unreadCount } }) .sort((a, b) => new Date(b.created_at) - new Date(a.created_at)); setNotifications(processedNotifications); + } else if (!isEmployee) { + setNotifications([]); // Clear notifications if not an employee } - }, [data]); + }, [data, isEmployee]); const loadMore = useCallback(() => { - if (!queryLoading && data?.notifications.length) { + if (!queryLoading && data?.notifications.length && isEmployee) { setIsLoading(true); // Show spinner during fetchMore fetchMore({ variables: { offset: data.notifications.length, where: whereClause }, @@ -121,13 +125,14 @@ const NotificationCenterContainer = ({ visible, onClose, bodyshop, unreadCount } }) .finally(() => setIsLoading(false)); // Hide spinner when done } - }, [data?.notifications?.length, fetchMore, queryLoading, whereClause]); + }, [data?.notifications?.length, fetchMore, queryLoading, whereClause, isEmployee]); const handleToggleUnreadOnly = (value) => { setShowUnreadOnly(value); }; const handleMarkAllRead = useCallback(() => { + if (!isEmployee) return; // Do nothing if not an employee setIsLoading(true); markAllNotificationsRead() .then(() => { @@ -147,7 +152,7 @@ const NotificationCenterContainer = ({ visible, onClose, bodyshop, unreadCount } }) .catch((e) => console.error(`Error marking all notifications read: ${e?.message || ""}`)) .finally(() => setIsLoading(false)); - }, [markAllNotificationsRead, userAssociationId, showUnreadOnly]); + }, [markAllNotificationsRead, userAssociationId, showUnreadOnly, isEmployee]); const handleNotificationClick = useCallback( (notificationId) => { @@ -170,17 +175,18 @@ const NotificationCenterContainer = ({ visible, onClose, bodyshop, unreadCount } ); useEffect(() => { - if (visible && !isConnected) { + if (visible && !isConnected && isEmployee) { setIsLoading(true); refetch() .catch((err) => console.error(`Error re-fetching notifications: ${err?.message || ""}`)) .finally(() => setIsLoading(false)); } - }, [visible, isConnected, refetch]); + }, [visible, isConnected, refetch, isEmployee]); return ( { +const NotificationSettingsForm = ({ currentUser, bodyshop }) => { const { t } = useTranslation(); const [form] = Form.useForm(); const [initialValues, setInitialValues] = useState({}); @@ -31,6 +33,7 @@ const NotificationSettingsForm = ({ currentUser }) => { const [autoAddEnabled, setAutoAddEnabled] = useState(false); const [initialAutoAdd, setInitialAutoAdd] = useState(false); const notification = useNotification(); + const isEmployee = useIsEmployee(bodyshop, currentUser); // Fetch notification settings and notifications_autoadd const { loading, error, data } = useQuery(QUERY_NOTIFICATION_SETTINGS, { @@ -199,6 +202,11 @@ const NotificationSettingsForm = ({ currentUser }) => { } > + {!isEmployee && ( +
+ +
+ )} @@ -209,11 +217,13 @@ const NotificationSettingsForm = ({ currentUser }) => { NotificationSettingsForm.propTypes = { currentUser: PropTypes.shape({ email: PropTypes.string.isRequired - }).isRequired + }).isRequired, + bodyshop: PropTypes.object.isRequired }; const mapStateToProps = createStructuredSelector({ - currentUser: selectCurrentUser + currentUser: selectCurrentUser, + bodyshop: selectBodyshop }); export default connect(mapStateToProps)(NotificationSettingsForm); diff --git a/client/src/components/parts-order-modal/parts-order-modal.container.jsx b/client/src/components/parts-order-modal/parts-order-modal.container.jsx index 280597163..ee352ff39 100644 --- a/client/src/components/parts-order-modal/parts-order-modal.container.jsx +++ b/client/src/components/parts-order-modal/parts-order-modal.container.jsx @@ -333,7 +333,7 @@ export function PartsOrderModalContainer({ onOk={() => form.submit()} okButtonProps={{ loading: saving }} cancelButtonProps={{ loading: saving }} - destroyOnClose + destroyOnHidden width="75%" forceRender > diff --git a/client/src/components/parts-queue-card/parts-queue-card.component.jsx b/client/src/components/parts-queue-card/parts-queue-card.component.jsx index 189fa7c13..3044c7e97 100644 --- a/client/src/components/parts-queue-card/parts-queue-card.component.jsx +++ b/client/src/components/parts-queue-card/parts-queue-card.component.jsx @@ -46,7 +46,7 @@ export default function PartsQueueDetailCard() { }; return ( - + {loading ? : null} {error ? : null} {data ? ( diff --git a/client/src/components/parts-receive-modal/parts-receive-modal.container.jsx b/client/src/components/parts-receive-modal/parts-receive-modal.container.jsx index 4c52ce195..b48c912c8 100644 --- a/client/src/components/parts-receive-modal/parts-receive-modal.container.jsx +++ b/client/src/components/parts-receive-modal/parts-receive-modal.container.jsx @@ -90,7 +90,7 @@ export function PartsReceiveModalContainer({ partsReceiveModal, toggleModalVisib onCancel={() => toggleModalVisible()} onOk={() => form.submit()} okButtonProps={{ loading: loading }} - destroyOnClose + destroyOnHidden forceRender width="50%" > diff --git a/client/src/components/payment-modal/payment-modal.container.jsx b/client/src/components/payment-modal/payment-modal.container.jsx index 471269193..08fb48de0 100644 --- a/client/src/components/payment-modal/payment-modal.container.jsx +++ b/client/src/components/payment-modal/payment-modal.container.jsx @@ -134,7 +134,7 @@ function PaymentModalContainer({ paymentModal, toggleModalVisible, bodyshop }) { form.submit()} width="50%" diff --git a/client/src/components/print-center-modal/print-center-modal.container.jsx b/client/src/components/print-center-modal/print-center-modal.container.jsx index 97edbb1e3..ea0c57c6d 100644 --- a/client/src/components/print-center-modal/print-center-modal.container.jsx +++ b/client/src/components/print-center-modal/print-center-modal.container.jsx @@ -32,7 +32,7 @@ export function PrintCenterModalContainer({ printCenterModal, toggleModalVisible okText={t("general.actions.close")} width="90%" title={t("printcenter.labels.title")} - destroyOnClose + destroyOnHidden > diff --git a/client/src/components/report-center-modal/report-center-modal.container.jsx b/client/src/components/report-center-modal/report-center-modal.container.jsx index 292271eba..bca025b4f 100644 --- a/client/src/components/report-center-modal/report-center-modal.container.jsx +++ b/client/src/components/report-center-modal/report-center-modal.container.jsx @@ -28,7 +28,7 @@ export function ReportCenterModalContainer({ reportCenterModal, toggleModalVisib onOk={() => toggleModalVisible()} onCancel={() => toggleModalVisible()} cancelButtonProps={{ style: { display: "none" } }} - destroyOnClose + destroyOnHidden width="80%" > diff --git a/client/src/components/schedule-job-modal/schedule-job-modal.container.jsx b/client/src/components/schedule-job-modal/schedule-job-modal.container.jsx index 9508de845..23ff4340d 100644 --- a/client/src/components/schedule-job-modal/schedule-job-modal.container.jsx +++ b/client/src/components/schedule-job-modal/schedule-job-modal.container.jsx @@ -209,7 +209,7 @@ export function ScheduleJobModalContainer({ onOk={() => form.submit()} width={"90%"} maskClosable={false} - destroyOnClose + destroyOnHidden okButtonProps={{ loading: loading }} diff --git a/client/src/components/scoreboard-jobs-list/scoreboard-jobs-list.component.jsx b/client/src/components/scoreboard-jobs-list/scoreboard-jobs-list.component.jsx index 15d096145..59ba3feb3 100644 --- a/client/src/components/scoreboard-jobs-list/scoreboard-jobs-list.component.jsx +++ b/client/src/components/scoreboard-jobs-list/scoreboard-jobs-list.component.jsx @@ -106,7 +106,7 @@ export default function ScoreboardJobsList({ scoreBoardlist }) { <> e.active && e.id && typeof e.id === "string") || []; + const employeeOptions = bodyshop?.employees?.filter((e) => e.active && e.user_email && e.id) || []; return (
diff --git a/client/src/components/task-upsert-modal/task-upsert-modal.container.jsx b/client/src/components/task-upsert-modal/task-upsert-modal.container.jsx index bc8b7c7a3..2f2c197ac 100644 --- a/client/src/components/task-upsert-modal/task-upsert-modal.container.jsx +++ b/client/src/components/task-upsert-modal/task-upsert-modal.container.jsx @@ -275,7 +275,7 @@ export function TaskUpsertModalContainer({ bodyshop, currentUser, taskUpsert, to toggleModalVisible(); }} okButtonProps={{ disabled: !isTouched }} - destroyOnClose + destroyOnHidden > + {loading ? : null} {error ? : null} {data ? ( diff --git a/client/src/components/time-ticket-list/time-ticket-list-team-pay.component.jsx b/client/src/components/time-ticket-list/time-ticket-list-team-pay.component.jsx index ee6781fd6..59d5b4739 100644 --- a/client/src/components/time-ticket-list/time-ticket-list-team-pay.component.jsx +++ b/client/src/components/time-ticket-list/time-ticket-list-team-pay.component.jsx @@ -39,7 +39,7 @@ export function TimeTicketListTeamPay({ bodyshop, context, actions }) { return ( <> - setVisible(false)}> + setVisible(false)}> diff --git a/client/src/components/time-ticket-modal/time-ticket-modal.container.jsx b/client/src/components/time-ticket-modal/time-ticket-modal.container.jsx index bfbdc77cf..86a037165 100644 --- a/client/src/components/time-ticket-modal/time-ticket-modal.container.jsx +++ b/client/src/components/time-ticket-modal/time-ticket-modal.container.jsx @@ -181,7 +181,7 @@ export function TimeTicketModalContainer({ timeTicketModal, toggleModalVisible, )} } - destroyOnClose + destroyOnHidden id="time-ticket-modal" > { toggleModalVisible(); diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json index 8c69e17d5..e753871c4 100644 --- a/client/src/translations/en_us/common.json +++ b/client/src/translations/en_us/common.json @@ -2474,7 +2474,8 @@ "teams-search": "Search for a Team", "unwatch": "Unwatch", "watch": "Watch", - "watching-issue": "Watching" + "watching-issue": "Watching", + "employee-notification": "Notifications are disabled because you do not have an associated Employee record." }, "scenarios": { "alternate-transport-changed": "Alternate Transport Changed", @@ -2494,7 +2495,9 @@ "tasks-updated-created": "Tasks Updated / Created" }, "tooltips": { - "job-watchers": "Job Watchers" + "job-watchers": "Job Watchers", + "not-employee": "You need to be an employee to watch this job. Reach out to your admin to get set up!", + "not-employee-notifications": "You must be an employee to receive notifications" } }, "owner": { diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json index 72b5d6199..ad31f3cc6 100644 --- a/client/src/translations/es/common.json +++ b/client/src/translations/es/common.json @@ -2476,7 +2476,8 @@ "teams-search": "", "unwatch": "", "watch": "", - "watching-issue": "" + "watching-issue": "", + "employee-notification": "" }, "scenarios": { "alternate-transport-changed": "", @@ -2496,7 +2497,8 @@ "tasks-updated-created": "" }, "tooltips": { - "job-watchers": "" + "job-watchers": "", + "not-employee": "" } }, "owner": { diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json index dac8dd2ef..e7ac5f8ac 100644 --- a/client/src/translations/fr/common.json +++ b/client/src/translations/fr/common.json @@ -2476,7 +2476,8 @@ "teams-search": "", "unwatch": "", "watch": "", - "watching-issue": "" + "watching-issue": "", + "employee-notification": "" }, "scenarios": { "alternate-transport-changed": "", @@ -2496,7 +2497,8 @@ "tasks-updated-created": "" }, "tooltips": { - "job-watchers": "" + "job-watchers": "", + "not-employee": "" } }, "owner": { diff --git a/client/src/utils/useIsEmployee.js b/client/src/utils/useIsEmployee.js new file mode 100644 index 000000000..0e791d346 --- /dev/null +++ b/client/src/utils/useIsEmployee.js @@ -0,0 +1,19 @@ +import { useMemo } from "react"; + +/** + * Check if the user is an employee of the bodyshop + * @param bodyshop + * @param userOrEmail + * @returns {boolean|*} + */ +export function useIsEmployee(bodyshop, userOrEmail) { + return useMemo(() => { + if (!bodyshop || !bodyshop.employees) return false; + + // Handle both user object and email string + const email = typeof userOrEmail === "string" ? userOrEmail : userOrEmail?.email; + if (!email) return false; + + return bodyshop.employees.some((employee) => employee.user_email === email); + }, [bodyshop, userOrEmail]); +} diff --git a/package-lock.json b/package-lock.json index cb5a9c45c..a60b85e81 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,14 +9,14 @@ "version": "0.2.0", "license": "UNLICENSED", "dependencies": { - "@aws-sdk/client-cloudwatch-logs": "^3.804.0", - "@aws-sdk/client-elasticache": "^3.804.0", - "@aws-sdk/client-s3": "^3.804.0", - "@aws-sdk/client-secrets-manager": "^3.804.0", - "@aws-sdk/client-ses": "^3.804.0", - "@aws-sdk/credential-provider-node": "^3.804.0", - "@aws-sdk/lib-storage": "^3.804.0", - "@aws-sdk/s3-request-presigner": "^3.804.0", + "@aws-sdk/client-cloudwatch-logs": "^3.806.0", + "@aws-sdk/client-elasticache": "^3.806.0", + "@aws-sdk/client-s3": "^3.806.0", + "@aws-sdk/client-secrets-manager": "^3.806.0", + "@aws-sdk/client-ses": "^3.806.0", + "@aws-sdk/credential-provider-node": "^3.806.0", + "@aws-sdk/lib-storage": "^3.806.0", + "@aws-sdk/s3-request-presigner": "^3.806.0", "@opensearch-project/opensearch": "^2.13.0", "@socket.io/admin-ui": "^0.5.1", "@socket.io/redis-adapter": "^8.3.0", @@ -284,25 +284,25 @@ } }, "node_modules/@aws-sdk/client-cloudwatch-logs": { - "version": "3.804.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.804.0.tgz", - "integrity": "sha512-/B2EPfRhpFiAOMLNWBrVAQ9WEWA5/IvVZ9vCitUpnog8x6YdD+3RHH1B0wZ1ftCbk3+r/A61q8TOvO6gcJSYFA==", + "version": "3.806.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.806.0.tgz", + "integrity": "sha512-FH5KlRadl2Ams0LnI7W3IgCsS32Yz47uvau3H6w1FeUHEzPanH2E6TGW+4+zprxIt9ruGahNXyK1Zz/DV1+V+g==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.804.0", - "@aws-sdk/credential-provider-node": "3.804.0", + "@aws-sdk/core": "3.806.0", + "@aws-sdk/credential-provider-node": "3.806.0", "@aws-sdk/middleware-host-header": "3.804.0", "@aws-sdk/middleware-logger": "3.804.0", "@aws-sdk/middleware-recursion-detection": "3.804.0", - "@aws-sdk/middleware-user-agent": "3.804.0", - "@aws-sdk/region-config-resolver": "3.804.0", + "@aws-sdk/middleware-user-agent": "3.806.0", + "@aws-sdk/region-config-resolver": "3.806.0", "@aws-sdk/types": "3.804.0", - "@aws-sdk/util-endpoints": "3.804.0", + "@aws-sdk/util-endpoints": "3.806.0", "@aws-sdk/util-user-agent-browser": "3.804.0", - "@aws-sdk/util-user-agent-node": "3.804.0", - "@smithy/config-resolver": "^4.1.0", + "@aws-sdk/util-user-agent-node": "3.806.0", + "@smithy/config-resolver": "^4.1.1", "@smithy/core": "^3.3.1", "@smithy/eventstream-serde-browser": "^4.0.2", "@smithy/eventstream-serde-config-resolver": "^4.1.0", @@ -311,22 +311,22 @@ "@smithy/hash-node": "^4.0.2", "@smithy/invalid-dependency": "^4.0.2", "@smithy/middleware-content-length": "^4.0.2", - "@smithy/middleware-endpoint": "^4.1.2", - "@smithy/middleware-retry": "^4.1.3", + "@smithy/middleware-endpoint": "^4.1.3", + "@smithy/middleware-retry": "^4.1.4", "@smithy/middleware-serde": "^4.0.3", "@smithy/middleware-stack": "^4.0.2", - "@smithy/node-config-provider": "^4.0.2", + "@smithy/node-config-provider": "^4.1.0", "@smithy/node-http-handler": "^4.0.4", "@smithy/protocol-http": "^5.1.0", - "@smithy/smithy-client": "^4.2.2", + "@smithy/smithy-client": "^4.2.3", "@smithy/types": "^4.2.0", "@smithy/url-parser": "^4.0.2", "@smithy/util-base64": "^4.0.0", "@smithy/util-body-length-browser": "^4.0.0", "@smithy/util-body-length-node": "^4.0.0", - "@smithy/util-defaults-mode-browser": "^4.0.10", - "@smithy/util-defaults-mode-node": "^4.0.10", - "@smithy/util-endpoints": "^3.0.2", + "@smithy/util-defaults-mode-browser": "^4.0.11", + "@smithy/util-defaults-mode-node": "^4.0.11", + "@smithy/util-endpoints": "^3.0.3", "@smithy/util-middleware": "^4.0.2", "@smithy/util-retry": "^4.0.3", "@smithy/util-utf8": "^4.0.0", @@ -352,46 +352,46 @@ } }, "node_modules/@aws-sdk/client-elasticache": { - "version": "3.804.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-elasticache/-/client-elasticache-3.804.0.tgz", - "integrity": "sha512-IhHD7e1dEGW/XOfYjW0IaK3Hi643ckKmgixnoGsqUrSE4CJ4QpKoOxFr1mTBgPOm49J2Mvenmb7dP2Z/VxxxhQ==", + "version": "3.806.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-elasticache/-/client-elasticache-3.806.0.tgz", + "integrity": "sha512-C2elqXWgBX0jJrUGon4BmqPt2O9DxAvYTrlTH86+I/XTQBLnkpWvrIKjBK50kRnR9bKsmf1mqDnZ9J7iEt7FUA==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.804.0", - "@aws-sdk/credential-provider-node": "3.804.0", + "@aws-sdk/core": "3.806.0", + "@aws-sdk/credential-provider-node": "3.806.0", "@aws-sdk/middleware-host-header": "3.804.0", "@aws-sdk/middleware-logger": "3.804.0", "@aws-sdk/middleware-recursion-detection": "3.804.0", - "@aws-sdk/middleware-user-agent": "3.804.0", - "@aws-sdk/region-config-resolver": "3.804.0", + "@aws-sdk/middleware-user-agent": "3.806.0", + "@aws-sdk/region-config-resolver": "3.806.0", "@aws-sdk/types": "3.804.0", - "@aws-sdk/util-endpoints": "3.804.0", + "@aws-sdk/util-endpoints": "3.806.0", "@aws-sdk/util-user-agent-browser": "3.804.0", - "@aws-sdk/util-user-agent-node": "3.804.0", - "@smithy/config-resolver": "^4.1.0", + "@aws-sdk/util-user-agent-node": "3.806.0", + "@smithy/config-resolver": "^4.1.1", "@smithy/core": "^3.3.1", "@smithy/fetch-http-handler": "^5.0.2", "@smithy/hash-node": "^4.0.2", "@smithy/invalid-dependency": "^4.0.2", "@smithy/middleware-content-length": "^4.0.2", - "@smithy/middleware-endpoint": "^4.1.2", - "@smithy/middleware-retry": "^4.1.3", + "@smithy/middleware-endpoint": "^4.1.3", + "@smithy/middleware-retry": "^4.1.4", "@smithy/middleware-serde": "^4.0.3", "@smithy/middleware-stack": "^4.0.2", - "@smithy/node-config-provider": "^4.0.2", + "@smithy/node-config-provider": "^4.1.0", "@smithy/node-http-handler": "^4.0.4", "@smithy/protocol-http": "^5.1.0", - "@smithy/smithy-client": "^4.2.2", + "@smithy/smithy-client": "^4.2.3", "@smithy/types": "^4.2.0", "@smithy/url-parser": "^4.0.2", "@smithy/util-base64": "^4.0.0", "@smithy/util-body-length-browser": "^4.0.0", "@smithy/util-body-length-node": "^4.0.0", - "@smithy/util-defaults-mode-browser": "^4.0.10", - "@smithy/util-defaults-mode-node": "^4.0.10", - "@smithy/util-endpoints": "^3.0.2", + "@smithy/util-defaults-mode-browser": "^4.0.11", + "@smithy/util-defaults-mode-node": "^4.0.11", + "@smithy/util-endpoints": "^3.0.3", "@smithy/util-middleware": "^4.0.2", "@smithy/util-retry": "^4.0.3", "@smithy/util-utf8": "^4.0.0", @@ -403,34 +403,34 @@ } }, "node_modules/@aws-sdk/client-s3": { - "version": "3.804.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.804.0.tgz", - "integrity": "sha512-oLBCq/wOzMEv4HhEDxttl5km0KGuptqnl4MlzzDcxPpsDmXjQU7egZdfQtwKRlB7748F+/uTcYc7khFvX2I1DA==", + "version": "3.806.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.806.0.tgz", + "integrity": "sha512-kQaBBBxEBU/IJ2wKG+LL2BK+uvBwpdvOA9jy1WhW+U2/DIMwMrjVs7M/ZvTlmVOJwhZaONcJbgQqsN4Yirjj4g==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha1-browser": "5.2.0", "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.804.0", - "@aws-sdk/credential-provider-node": "3.804.0", - "@aws-sdk/middleware-bucket-endpoint": "3.804.0", + "@aws-sdk/core": "3.806.0", + "@aws-sdk/credential-provider-node": "3.806.0", + "@aws-sdk/middleware-bucket-endpoint": "3.806.0", "@aws-sdk/middleware-expect-continue": "3.804.0", - "@aws-sdk/middleware-flexible-checksums": "3.804.0", + "@aws-sdk/middleware-flexible-checksums": "3.806.0", "@aws-sdk/middleware-host-header": "3.804.0", "@aws-sdk/middleware-location-constraint": "3.804.0", "@aws-sdk/middleware-logger": "3.804.0", "@aws-sdk/middleware-recursion-detection": "3.804.0", - "@aws-sdk/middleware-sdk-s3": "3.804.0", + "@aws-sdk/middleware-sdk-s3": "3.806.0", "@aws-sdk/middleware-ssec": "3.804.0", - "@aws-sdk/middleware-user-agent": "3.804.0", - "@aws-sdk/region-config-resolver": "3.804.0", - "@aws-sdk/signature-v4-multi-region": "3.804.0", + "@aws-sdk/middleware-user-agent": "3.806.0", + "@aws-sdk/region-config-resolver": "3.806.0", + "@aws-sdk/signature-v4-multi-region": "3.806.0", "@aws-sdk/types": "3.804.0", - "@aws-sdk/util-endpoints": "3.804.0", + "@aws-sdk/util-endpoints": "3.806.0", "@aws-sdk/util-user-agent-browser": "3.804.0", - "@aws-sdk/util-user-agent-node": "3.804.0", + "@aws-sdk/util-user-agent-node": "3.806.0", "@aws-sdk/xml-builder": "3.804.0", - "@smithy/config-resolver": "^4.1.0", + "@smithy/config-resolver": "^4.1.1", "@smithy/core": "^3.3.1", "@smithy/eventstream-serde-browser": "^4.0.2", "@smithy/eventstream-serde-config-resolver": "^4.1.0", @@ -442,22 +442,22 @@ "@smithy/invalid-dependency": "^4.0.2", "@smithy/md5-js": "^4.0.2", "@smithy/middleware-content-length": "^4.0.2", - "@smithy/middleware-endpoint": "^4.1.2", - "@smithy/middleware-retry": "^4.1.3", + "@smithy/middleware-endpoint": "^4.1.3", + "@smithy/middleware-retry": "^4.1.4", "@smithy/middleware-serde": "^4.0.3", "@smithy/middleware-stack": "^4.0.2", - "@smithy/node-config-provider": "^4.0.2", + "@smithy/node-config-provider": "^4.1.0", "@smithy/node-http-handler": "^4.0.4", "@smithy/protocol-http": "^5.1.0", - "@smithy/smithy-client": "^4.2.2", + "@smithy/smithy-client": "^4.2.3", "@smithy/types": "^4.2.0", "@smithy/url-parser": "^4.0.2", "@smithy/util-base64": "^4.0.0", "@smithy/util-body-length-browser": "^4.0.0", "@smithy/util-body-length-node": "^4.0.0", - "@smithy/util-defaults-mode-browser": "^4.0.10", - "@smithy/util-defaults-mode-node": "^4.0.10", - "@smithy/util-endpoints": "^3.0.2", + "@smithy/util-defaults-mode-browser": "^4.0.11", + "@smithy/util-defaults-mode-node": "^4.0.11", + "@smithy/util-endpoints": "^3.0.3", "@smithy/util-middleware": "^4.0.2", "@smithy/util-retry": "^4.0.3", "@smithy/util-stream": "^4.2.0", @@ -470,46 +470,46 @@ } }, "node_modules/@aws-sdk/client-secrets-manager": { - "version": "3.804.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.804.0.tgz", - "integrity": "sha512-kpRUQrMb/NfnR8PAw9aKgGSKIuGJZl8GU9shbDtIQSBwvsX2o513/jJaWIzX7wxpg763a0kLH7nJVeDMax42fw==", + "version": "3.806.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.806.0.tgz", + "integrity": "sha512-AYjs1hCI49JtaIX+8wvqT3odWy9shsbAxxbxQXmQtc3lbaZlsJzeKpbvjNapdjQAqUORW/iAz56MtuS03uCzFg==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.804.0", - "@aws-sdk/credential-provider-node": "3.804.0", + "@aws-sdk/core": "3.806.0", + "@aws-sdk/credential-provider-node": "3.806.0", "@aws-sdk/middleware-host-header": "3.804.0", "@aws-sdk/middleware-logger": "3.804.0", "@aws-sdk/middleware-recursion-detection": "3.804.0", - "@aws-sdk/middleware-user-agent": "3.804.0", - "@aws-sdk/region-config-resolver": "3.804.0", + "@aws-sdk/middleware-user-agent": "3.806.0", + "@aws-sdk/region-config-resolver": "3.806.0", "@aws-sdk/types": "3.804.0", - "@aws-sdk/util-endpoints": "3.804.0", + "@aws-sdk/util-endpoints": "3.806.0", "@aws-sdk/util-user-agent-browser": "3.804.0", - "@aws-sdk/util-user-agent-node": "3.804.0", - "@smithy/config-resolver": "^4.1.0", + "@aws-sdk/util-user-agent-node": "3.806.0", + "@smithy/config-resolver": "^4.1.1", "@smithy/core": "^3.3.1", "@smithy/fetch-http-handler": "^5.0.2", "@smithy/hash-node": "^4.0.2", "@smithy/invalid-dependency": "^4.0.2", "@smithy/middleware-content-length": "^4.0.2", - "@smithy/middleware-endpoint": "^4.1.2", - "@smithy/middleware-retry": "^4.1.3", + "@smithy/middleware-endpoint": "^4.1.3", + "@smithy/middleware-retry": "^4.1.4", "@smithy/middleware-serde": "^4.0.3", "@smithy/middleware-stack": "^4.0.2", - "@smithy/node-config-provider": "^4.0.2", + "@smithy/node-config-provider": "^4.1.0", "@smithy/node-http-handler": "^4.0.4", "@smithy/protocol-http": "^5.1.0", - "@smithy/smithy-client": "^4.2.2", + "@smithy/smithy-client": "^4.2.3", "@smithy/types": "^4.2.0", "@smithy/url-parser": "^4.0.2", "@smithy/util-base64": "^4.0.0", "@smithy/util-body-length-browser": "^4.0.0", "@smithy/util-body-length-node": "^4.0.0", - "@smithy/util-defaults-mode-browser": "^4.0.10", - "@smithy/util-defaults-mode-node": "^4.0.10", - "@smithy/util-endpoints": "^3.0.2", + "@smithy/util-defaults-mode-browser": "^4.0.11", + "@smithy/util-defaults-mode-node": "^4.0.11", + "@smithy/util-endpoints": "^3.0.3", "@smithy/util-middleware": "^4.0.2", "@smithy/util-retry": "^4.0.3", "@smithy/util-utf8": "^4.0.0", @@ -535,46 +535,46 @@ } }, "node_modules/@aws-sdk/client-ses": { - "version": "3.804.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-ses/-/client-ses-3.804.0.tgz", - "integrity": "sha512-1efoRUUd3URieOajswMMSFpvWWUeEzjby0Yp8vv9wFMna6Kspa/QlghYLCXj/65a+x2DnH2iMtAEAIYFtqiUmw==", + "version": "3.806.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-ses/-/client-ses-3.806.0.tgz", + "integrity": "sha512-/i0YpWOuy5+PkGt/jxzfN2hJn4PJLIdBShvsW8TimwuY/JaXBh/kW4ezCReDr06qaexhBSlrRo+WnW1AUuy5zA==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.804.0", - "@aws-sdk/credential-provider-node": "3.804.0", + "@aws-sdk/core": "3.806.0", + "@aws-sdk/credential-provider-node": "3.806.0", "@aws-sdk/middleware-host-header": "3.804.0", "@aws-sdk/middleware-logger": "3.804.0", "@aws-sdk/middleware-recursion-detection": "3.804.0", - "@aws-sdk/middleware-user-agent": "3.804.0", - "@aws-sdk/region-config-resolver": "3.804.0", + "@aws-sdk/middleware-user-agent": "3.806.0", + "@aws-sdk/region-config-resolver": "3.806.0", "@aws-sdk/types": "3.804.0", - "@aws-sdk/util-endpoints": "3.804.0", + "@aws-sdk/util-endpoints": "3.806.0", "@aws-sdk/util-user-agent-browser": "3.804.0", - "@aws-sdk/util-user-agent-node": "3.804.0", - "@smithy/config-resolver": "^4.1.0", + "@aws-sdk/util-user-agent-node": "3.806.0", + "@smithy/config-resolver": "^4.1.1", "@smithy/core": "^3.3.1", "@smithy/fetch-http-handler": "^5.0.2", "@smithy/hash-node": "^4.0.2", "@smithy/invalid-dependency": "^4.0.2", "@smithy/middleware-content-length": "^4.0.2", - "@smithy/middleware-endpoint": "^4.1.2", - "@smithy/middleware-retry": "^4.1.3", + "@smithy/middleware-endpoint": "^4.1.3", + "@smithy/middleware-retry": "^4.1.4", "@smithy/middleware-serde": "^4.0.3", "@smithy/middleware-stack": "^4.0.2", - "@smithy/node-config-provider": "^4.0.2", + "@smithy/node-config-provider": "^4.1.0", "@smithy/node-http-handler": "^4.0.4", "@smithy/protocol-http": "^5.1.0", - "@smithy/smithy-client": "^4.2.2", + "@smithy/smithy-client": "^4.2.3", "@smithy/types": "^4.2.0", "@smithy/url-parser": "^4.0.2", "@smithy/util-base64": "^4.0.0", "@smithy/util-body-length-browser": "^4.0.0", "@smithy/util-body-length-node": "^4.0.0", - "@smithy/util-defaults-mode-browser": "^4.0.10", - "@smithy/util-defaults-mode-node": "^4.0.10", - "@smithy/util-endpoints": "^3.0.2", + "@smithy/util-defaults-mode-browser": "^4.0.11", + "@smithy/util-defaults-mode-node": "^4.0.11", + "@smithy/util-endpoints": "^3.0.3", "@smithy/util-middleware": "^4.0.2", "@smithy/util-retry": "^4.0.3", "@smithy/util-utf8": "^4.0.0", @@ -586,45 +586,45 @@ } }, "node_modules/@aws-sdk/client-sso": { - "version": "3.804.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.804.0.tgz", - "integrity": "sha512-6D5iQbL0MqlJ7B5aaHdP21k9+3H/od0jHjHSXegvFd4h2KQbD+QVTdEOSLeakgBGgHYRfiQXsrdMMzUz8vcpsw==", + "version": "3.806.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.806.0.tgz", + "integrity": "sha512-X0p/9/u9e6b22rlQqKucdtjdqmjSNB4c/8zDEoD5MvgYAAbMF9HNE0ST2xaA/WsJ7uE0jFfhPY2/00pslL1DqQ==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.804.0", + "@aws-sdk/core": "3.806.0", "@aws-sdk/middleware-host-header": "3.804.0", "@aws-sdk/middleware-logger": "3.804.0", "@aws-sdk/middleware-recursion-detection": "3.804.0", - "@aws-sdk/middleware-user-agent": "3.804.0", - "@aws-sdk/region-config-resolver": "3.804.0", + "@aws-sdk/middleware-user-agent": "3.806.0", + "@aws-sdk/region-config-resolver": "3.806.0", "@aws-sdk/types": "3.804.0", - "@aws-sdk/util-endpoints": "3.804.0", + "@aws-sdk/util-endpoints": "3.806.0", "@aws-sdk/util-user-agent-browser": "3.804.0", - "@aws-sdk/util-user-agent-node": "3.804.0", - "@smithy/config-resolver": "^4.1.0", + "@aws-sdk/util-user-agent-node": "3.806.0", + "@smithy/config-resolver": "^4.1.1", "@smithy/core": "^3.3.1", "@smithy/fetch-http-handler": "^5.0.2", "@smithy/hash-node": "^4.0.2", "@smithy/invalid-dependency": "^4.0.2", "@smithy/middleware-content-length": "^4.0.2", - "@smithy/middleware-endpoint": "^4.1.2", - "@smithy/middleware-retry": "^4.1.3", + "@smithy/middleware-endpoint": "^4.1.3", + "@smithy/middleware-retry": "^4.1.4", "@smithy/middleware-serde": "^4.0.3", "@smithy/middleware-stack": "^4.0.2", - "@smithy/node-config-provider": "^4.0.2", + "@smithy/node-config-provider": "^4.1.0", "@smithy/node-http-handler": "^4.0.4", "@smithy/protocol-http": "^5.1.0", - "@smithy/smithy-client": "^4.2.2", + "@smithy/smithy-client": "^4.2.3", "@smithy/types": "^4.2.0", "@smithy/url-parser": "^4.0.2", "@smithy/util-base64": "^4.0.0", "@smithy/util-body-length-browser": "^4.0.0", "@smithy/util-body-length-node": "^4.0.0", - "@smithy/util-defaults-mode-browser": "^4.0.10", - "@smithy/util-defaults-mode-node": "^4.0.10", - "@smithy/util-endpoints": "^3.0.2", + "@smithy/util-defaults-mode-browser": "^4.0.11", + "@smithy/util-defaults-mode-node": "^4.0.11", + "@smithy/util-endpoints": "^3.0.3", "@smithy/util-middleware": "^4.0.2", "@smithy/util-retry": "^4.0.3", "@smithy/util-utf8": "^4.0.0", @@ -635,18 +635,18 @@ } }, "node_modules/@aws-sdk/core": { - "version": "3.804.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.804.0.tgz", - "integrity": "sha512-KrYDEc6HaJE+Mx5lrwq6uhJxj1RYYfggQ+X+zQeKRyrZHl2GOxFl7PdnpdwtnaQIjX0gNkDzquhZSdyT0ar5rA==", + "version": "3.806.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.806.0.tgz", + "integrity": "sha512-HJRINPncdjPK0iL3f6cBpqCMaxVwq2oDbRCzOx04tsLZ0tNgRACBfT3d/zNVRvMt6fnOVKXoN1LAtQaw50pjEA==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "3.804.0", "@smithy/core": "^3.3.1", - "@smithy/node-config-provider": "^4.0.2", + "@smithy/node-config-provider": "^4.1.0", "@smithy/property-provider": "^4.0.2", "@smithy/protocol-http": "^5.1.0", "@smithy/signature-v4": "^5.1.0", - "@smithy/smithy-client": "^4.2.2", + "@smithy/smithy-client": "^4.2.3", "@smithy/types": "^4.2.0", "@smithy/util-middleware": "^4.0.2", "fast-xml-parser": "4.4.1", @@ -657,12 +657,12 @@ } }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.804.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.804.0.tgz", - "integrity": "sha512-5mjrWPa4iaBK9/HDEIVN8lGxsnjk60eBjwGaJV0I2uqxnTo1EuQmpLV3XdY/OzQeqJdpuH/DbC6XUIdy9bXNQA==", + "version": "3.806.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.806.0.tgz", + "integrity": "sha512-nbPwmZn0kt6Q1XI2FaJWP6AhF9tro4cO5HlmZQx8NU+B0H1y9WMo659Q5zLLY46BXgoQVIJEsPSZpcZk27O4aw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.804.0", + "@aws-sdk/core": "3.806.0", "@aws-sdk/types": "3.804.0", "@smithy/property-provider": "^4.0.2", "@smithy/types": "^4.2.0", @@ -673,18 +673,18 @@ } }, "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.804.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.804.0.tgz", - "integrity": "sha512-TD84TXS/iDWcf+ggCq3n6yx36p1WXB2qgyHkbP/yVbdmix/vKU1twuB5qJvaY0PJWI0TOwBa9680XfsYrzaJAA==", + "version": "3.806.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.806.0.tgz", + "integrity": "sha512-e/gB2iJQQ4ZpecOVpEFhEvjGwuTqNCzhVaVsFYVc49FPfR1seuN7qBGYe1MO7mouGDQFInzJgcNup0DnYUrLiw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.804.0", + "@aws-sdk/core": "3.806.0", "@aws-sdk/types": "3.804.0", "@smithy/fetch-http-handler": "^5.0.2", "@smithy/node-http-handler": "^4.0.4", "@smithy/property-provider": "^4.0.2", "@smithy/protocol-http": "^5.1.0", - "@smithy/smithy-client": "^4.2.2", + "@smithy/smithy-client": "^4.2.3", "@smithy/types": "^4.2.0", "@smithy/util-stream": "^4.2.0", "tslib": "^2.6.2" @@ -694,18 +694,18 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.804.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.804.0.tgz", - "integrity": "sha512-LfReL9TnOOunJWeZbDXPePFEnvJE+jcA7iY/ItsThUALgTy+ydLUdOiwzMZFo1f0JZN/Rfrsb9FOd/xTOoZiFw==", + "version": "3.806.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.806.0.tgz", + "integrity": "sha512-FogfbuYSEZgFxbNy0QcsBZHHe5mSv5HV3+JyB5n0kCyjOISCVCZD7gwxKdXjt8O1hXq5k5SOdQvydGULlB6rew==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.804.0", - "@aws-sdk/credential-provider-env": "3.804.0", - "@aws-sdk/credential-provider-http": "3.804.0", - "@aws-sdk/credential-provider-process": "3.804.0", - "@aws-sdk/credential-provider-sso": "3.804.0", - "@aws-sdk/credential-provider-web-identity": "3.804.0", - "@aws-sdk/nested-clients": "3.804.0", + "@aws-sdk/core": "3.806.0", + "@aws-sdk/credential-provider-env": "3.806.0", + "@aws-sdk/credential-provider-http": "3.806.0", + "@aws-sdk/credential-provider-process": "3.806.0", + "@aws-sdk/credential-provider-sso": "3.806.0", + "@aws-sdk/credential-provider-web-identity": "3.806.0", + "@aws-sdk/nested-clients": "3.806.0", "@aws-sdk/types": "3.804.0", "@smithy/credential-provider-imds": "^4.0.2", "@smithy/property-provider": "^4.0.2", @@ -718,17 +718,17 @@ } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.804.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.804.0.tgz", - "integrity": "sha512-L2EK5fy2+7El7j7TcRcuwr2lzU5tQfXsfscg+dtFkLPjOqShknnqV/lXylb3QlWx8B3K/c/KK5rcWQl6cYUiDQ==", + "version": "3.806.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.806.0.tgz", + "integrity": "sha512-fZX8xP2Kf0k70kDTog/87fh/M+CV0E2yujSw1cUBJhDSwDX3RlUahiJk7TpB/KGw6hEFESMd6+7kq3UzYuw3rg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/credential-provider-env": "3.804.0", - "@aws-sdk/credential-provider-http": "3.804.0", - "@aws-sdk/credential-provider-ini": "3.804.0", - "@aws-sdk/credential-provider-process": "3.804.0", - "@aws-sdk/credential-provider-sso": "3.804.0", - "@aws-sdk/credential-provider-web-identity": "3.804.0", + "@aws-sdk/credential-provider-env": "3.806.0", + "@aws-sdk/credential-provider-http": "3.806.0", + "@aws-sdk/credential-provider-ini": "3.806.0", + "@aws-sdk/credential-provider-process": "3.806.0", + "@aws-sdk/credential-provider-sso": "3.806.0", + "@aws-sdk/credential-provider-web-identity": "3.806.0", "@aws-sdk/types": "3.804.0", "@smithy/credential-provider-imds": "^4.0.2", "@smithy/property-provider": "^4.0.2", @@ -741,12 +741,12 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.804.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.804.0.tgz", - "integrity": "sha512-s6ng/rZj7WP8GGgxBXsoPZYlSu7MZAm9O8OLgSSWcw8/vaYW7hBVSEVVNMEUkJiJeEo7Lh+Y/3d6SY27S1of/g==", + "version": "3.806.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.806.0.tgz", + "integrity": "sha512-8Y8GYEw/1e5IZRDQL02H6nsTDcRWid/afRMeWg+93oLQmbHcTtdm48tjis+7Xwqy+XazhMDmkbUht11QPTDJcQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.804.0", + "@aws-sdk/core": "3.806.0", "@aws-sdk/types": "3.804.0", "@smithy/property-provider": "^4.0.2", "@smithy/shared-ini-file-loader": "^4.0.2", @@ -758,14 +758,14 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.804.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.804.0.tgz", - "integrity": "sha512-9Tt5zmhiK2nBfJv52Is5gNtW6bhK0W20GRhckg4T+BlnxOkPy//2ui23DzYacrwETH6TE3kdoyL3xgEL++HSLg==", + "version": "3.806.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.806.0.tgz", + "integrity": "sha512-hT9OBwCxWMPBydNhXm2gdNNzx5AJNheS9RglwDDvXWzQ9qDuRztjuMBilMSUMb0HF9K4IqQjYzGqczMuktz4qQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-sso": "3.804.0", - "@aws-sdk/core": "3.804.0", - "@aws-sdk/token-providers": "3.804.0", + "@aws-sdk/client-sso": "3.806.0", + "@aws-sdk/core": "3.806.0", + "@aws-sdk/token-providers": "3.806.0", "@aws-sdk/types": "3.804.0", "@smithy/property-provider": "^4.0.2", "@smithy/shared-ini-file-loader": "^4.0.2", @@ -777,13 +777,13 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.804.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.804.0.tgz", - "integrity": "sha512-eBICjQUnqaoiHl9/AHKVPt/YkrifDddAUNGWUj+9cb3bRml6PEBSHE0k/tbbCTMq1xz7CCP+gmnnAA92ChnseA==", + "version": "3.806.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.806.0.tgz", + "integrity": "sha512-XxaSY9Zd3D4ClUGENYMvi52ac5FuJPPAsvRtEfyrSdEpf6QufbMpnexWBZMYRF31h/VutgqtJwosGgNytpxMEg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.804.0", - "@aws-sdk/nested-clients": "3.804.0", + "@aws-sdk/core": "3.806.0", + "@aws-sdk/nested-clients": "3.806.0", "@aws-sdk/types": "3.804.0", "@smithy/property-provider": "^4.0.2", "@smithy/types": "^4.2.0", @@ -794,14 +794,14 @@ } }, "node_modules/@aws-sdk/lib-storage": { - "version": "3.804.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.804.0.tgz", - "integrity": "sha512-o7/YYquJeIbsplqHwo78L39UigmQpsXHY3WrJ3j2kAzBBN9T6rPsBU6dPIBMHdtx06uHehcZwm/+B8GVMfMc8A==", + "version": "3.806.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.806.0.tgz", + "integrity": "sha512-8FjceMZWyqdu3jEa5iryqMH+XdR2iM6kcD/pcsv1JNQUfKicMcW6Db8dXVc29MdMw3f/3kokXqNLGvSKAl81SQ==", "license": "Apache-2.0", "dependencies": { "@smithy/abort-controller": "^4.0.2", - "@smithy/middleware-endpoint": "^4.1.2", - "@smithy/smithy-client": "^4.2.2", + "@smithy/middleware-endpoint": "^4.1.3", + "@smithy/smithy-client": "^4.2.3", "buffer": "5.6.0", "events": "3.3.0", "stream-browserify": "3.0.0", @@ -811,18 +811,18 @@ "node": ">=18.0.0" }, "peerDependencies": { - "@aws-sdk/client-s3": "^3.804.0" + "@aws-sdk/client-s3": "^3.806.0" } }, "node_modules/@aws-sdk/middleware-bucket-endpoint": { - "version": "3.804.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.804.0.tgz", - "integrity": "sha512-vVphifJ5Ab2JUjB27UvdNV51ezxTn3f/jNbC/Y+KF1vNcYkwWXqo+U1gD8SUsDK+NhnD3wasfVBVLOdJa7qqKw==", + "version": "3.806.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.806.0.tgz", + "integrity": "sha512-ACjuyKJw9OZl8z8HzPEaqn1o7ElVW94mowyoZvyUIDouwAPGqPGJbJ5V35qx1oDTFSAJX+N3O3AO6RyFc8nUhw==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "3.804.0", "@aws-sdk/util-arn-parser": "3.804.0", - "@smithy/node-config-provider": "^4.0.2", + "@smithy/node-config-provider": "^4.1.0", "@smithy/protocol-http": "^5.1.0", "@smithy/types": "^4.2.0", "@smithy/util-config-provider": "^4.0.0", @@ -848,18 +848,18 @@ } }, "node_modules/@aws-sdk/middleware-flexible-checksums": { - "version": "3.804.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.804.0.tgz", - "integrity": "sha512-bQbh3hTrp+3XEuu8G5DkPDK9u3nnIabw2N1GpqlIwv8oGM+GTtGH35gBZtbbd2WAxfSUIBOAwkc86kTS0g0mFg==", + "version": "3.806.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.806.0.tgz", + "integrity": "sha512-YEmuU2Nr/+blhi70gS38fnCe2IoL6OVVZXMp4MbzqZRUqeBbnxZhHQrd5YOiboJz7iq+g98xwFebHY167iejcg==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/crc32": "5.2.0", "@aws-crypto/crc32c": "5.2.0", "@aws-crypto/util": "5.2.0", - "@aws-sdk/core": "3.804.0", + "@aws-sdk/core": "3.806.0", "@aws-sdk/types": "3.804.0", "@smithy/is-array-buffer": "^4.0.0", - "@smithy/node-config-provider": "^4.0.2", + "@smithy/node-config-provider": "^4.1.0", "@smithy/protocol-http": "^5.1.0", "@smithy/types": "^4.2.0", "@smithy/util-middleware": "^4.0.2", @@ -930,19 +930,19 @@ } }, "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.804.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.804.0.tgz", - "integrity": "sha512-kiuqjV2ozoyI6w34+KMhZU+YVOLTPgh1Kp1DSpuS+tbkwkxnQCrPGziQhuSA5/Y0bUFaa2zLwUh2jpCmJQbLyA==", + "version": "3.806.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.806.0.tgz", + "integrity": "sha512-K1ssdovHH/kPN9EUS1LznwzoL+r89Cx8qAkp0K8MqdCQuBjZ0KRnjvo9nx69Vg5d/rg01VYTxomFUPXfcPtVXw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.804.0", + "@aws-sdk/core": "3.806.0", "@aws-sdk/types": "3.804.0", "@aws-sdk/util-arn-parser": "3.804.0", "@smithy/core": "^3.3.1", - "@smithy/node-config-provider": "^4.0.2", + "@smithy/node-config-provider": "^4.1.0", "@smithy/protocol-http": "^5.1.0", "@smithy/signature-v4": "^5.1.0", - "@smithy/smithy-client": "^4.2.2", + "@smithy/smithy-client": "^4.2.3", "@smithy/types": "^4.2.0", "@smithy/util-config-provider": "^4.0.0", "@smithy/util-middleware": "^4.0.2", @@ -969,14 +969,14 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.804.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.804.0.tgz", - "integrity": "sha512-HoBaun4t3vAFhMj/I7L/HNBKBrAYu7Sb5bTFINx8kFCxPbqsvF+jOrEE8WiljHNy7FbPjz0mPVRUwO7RZSYNiQ==", + "version": "3.806.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.806.0.tgz", + "integrity": "sha512-XoIromVffgXnc+/mjlR2EVzQVIei3bPVtafIZNsHuEmUvIWJXiWsa2eJpt3BUqa0HF9YPknK7ommNEhqRb8ucg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.804.0", + "@aws-sdk/core": "3.806.0", "@aws-sdk/types": "3.804.0", - "@aws-sdk/util-endpoints": "3.804.0", + "@aws-sdk/util-endpoints": "3.806.0", "@smithy/core": "^3.3.1", "@smithy/protocol-http": "^5.1.0", "@smithy/types": "^4.2.0", @@ -987,45 +987,45 @@ } }, "node_modules/@aws-sdk/nested-clients": { - "version": "3.804.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.804.0.tgz", - "integrity": "sha512-IOUcw6stjqYBMhLoAXlLVipYpAqLlA17jcyI0OzpS0pTD1RvBqEBckYibF4HJeReI+IiEHu/m0If0SKVR5WyXQ==", + "version": "3.806.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.806.0.tgz", + "integrity": "sha512-ua2gzpfQ9MF8Rny+tOAivowOWWvqEusez2rdcQK8jdBjA1ANd/0xzToSZjZh0ziN8Kl8jOhNnHbQJ0v6dT6+hg==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.804.0", + "@aws-sdk/core": "3.806.0", "@aws-sdk/middleware-host-header": "3.804.0", "@aws-sdk/middleware-logger": "3.804.0", "@aws-sdk/middleware-recursion-detection": "3.804.0", - "@aws-sdk/middleware-user-agent": "3.804.0", - "@aws-sdk/region-config-resolver": "3.804.0", + "@aws-sdk/middleware-user-agent": "3.806.0", + "@aws-sdk/region-config-resolver": "3.806.0", "@aws-sdk/types": "3.804.0", - "@aws-sdk/util-endpoints": "3.804.0", + "@aws-sdk/util-endpoints": "3.806.0", "@aws-sdk/util-user-agent-browser": "3.804.0", - "@aws-sdk/util-user-agent-node": "3.804.0", - "@smithy/config-resolver": "^4.1.0", + "@aws-sdk/util-user-agent-node": "3.806.0", + "@smithy/config-resolver": "^4.1.1", "@smithy/core": "^3.3.1", "@smithy/fetch-http-handler": "^5.0.2", "@smithy/hash-node": "^4.0.2", "@smithy/invalid-dependency": "^4.0.2", "@smithy/middleware-content-length": "^4.0.2", - "@smithy/middleware-endpoint": "^4.1.2", - "@smithy/middleware-retry": "^4.1.3", + "@smithy/middleware-endpoint": "^4.1.3", + "@smithy/middleware-retry": "^4.1.4", "@smithy/middleware-serde": "^4.0.3", "@smithy/middleware-stack": "^4.0.2", - "@smithy/node-config-provider": "^4.0.2", + "@smithy/node-config-provider": "^4.1.0", "@smithy/node-http-handler": "^4.0.4", "@smithy/protocol-http": "^5.1.0", - "@smithy/smithy-client": "^4.2.2", + "@smithy/smithy-client": "^4.2.3", "@smithy/types": "^4.2.0", "@smithy/url-parser": "^4.0.2", "@smithy/util-base64": "^4.0.0", "@smithy/util-body-length-browser": "^4.0.0", "@smithy/util-body-length-node": "^4.0.0", - "@smithy/util-defaults-mode-browser": "^4.0.10", - "@smithy/util-defaults-mode-node": "^4.0.10", - "@smithy/util-endpoints": "^3.0.2", + "@smithy/util-defaults-mode-browser": "^4.0.11", + "@smithy/util-defaults-mode-node": "^4.0.11", + "@smithy/util-endpoints": "^3.0.3", "@smithy/util-middleware": "^4.0.2", "@smithy/util-retry": "^4.0.3", "@smithy/util-utf8": "^4.0.0", @@ -1036,13 +1036,13 @@ } }, "node_modules/@aws-sdk/region-config-resolver": { - "version": "3.804.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.804.0.tgz", - "integrity": "sha512-Qlr8jVUL5U8Ej+84ElUTGeOok6hQXcJdx5IOSRoqKs6bCKVa8TtwgX1zZIajzjMhMgMlR3/V+M8oDVDKPB43Ug==", + "version": "3.806.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.806.0.tgz", + "integrity": "sha512-cuv5pX55JOlzKC/iLsB5nZ9eUyVgncim3VhhWHZA/KYPh7rLMjOEfZ+xyaE9uLJXGmzOJboFH7+YdTRdIcOgrg==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "3.804.0", - "@smithy/node-config-provider": "^4.0.2", + "@smithy/node-config-provider": "^4.1.0", "@smithy/types": "^4.2.0", "@smithy/util-config-provider": "^4.0.0", "@smithy/util-middleware": "^4.0.2", @@ -1053,17 +1053,17 @@ } }, "node_modules/@aws-sdk/s3-request-presigner": { - "version": "3.804.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.804.0.tgz", - "integrity": "sha512-+B5jJ2rt6V7MZJBwmFcEs1H9IM59gi1HgHy52k+iUxJjPy1I0hfYroLFMoDlfI3auZchJ1XNKoiuBUmO0e9hGA==", + "version": "3.806.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.806.0.tgz", + "integrity": "sha512-/LjdkoMAr6T0EIIWVt444CJlaOCpYwjKxhTgZODSeRUPhKQxidBehg0TmXgQUc3oGUhGFPGCuQtFgLT0xvOSnw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/signature-v4-multi-region": "3.804.0", + "@aws-sdk/signature-v4-multi-region": "3.806.0", "@aws-sdk/types": "3.804.0", "@aws-sdk/util-format-url": "3.804.0", - "@smithy/middleware-endpoint": "^4.1.2", + "@smithy/middleware-endpoint": "^4.1.3", "@smithy/protocol-http": "^5.1.0", - "@smithy/smithy-client": "^4.2.2", + "@smithy/smithy-client": "^4.2.3", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" }, @@ -1072,12 +1072,12 @@ } }, "node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.804.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.804.0.tgz", - "integrity": "sha512-6wxi+f/uvddm2PVRG1gDkjnukfwhEtu3JUAvGqQ56VWbDyM69pxPnGjcwoxCKf0dX16mU8+kHT5CpXsRIpEkkw==", + "version": "3.806.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.806.0.tgz", + "integrity": "sha512-IrbEnpKvG8d9rUWAvsF28g8qBlQ02FaOxn4cGXtTs0b0BGMK1M+cGQrYjJ7Ak08kIXDxBqsdIlZGsKYr+Ds9+w==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-sdk-s3": "3.804.0", + "@aws-sdk/middleware-sdk-s3": "3.806.0", "@aws-sdk/types": "3.804.0", "@smithy/protocol-http": "^5.1.0", "@smithy/signature-v4": "^5.1.0", @@ -1089,12 +1089,12 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.804.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.804.0.tgz", - "integrity": "sha512-ndcLGD1nHEVJdWRl0lK8SfC0dN4j3X4gcGXEJxK16KZD23veMB2adHP69ySYXNFNo5gI6W9Ct9QXnB+tJCCS1Q==", + "version": "3.806.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.806.0.tgz", + "integrity": "sha512-I6SxcsvV7yinJZmPgGullFHS0tsTKa7K3jEc5dmyCz8X+kZPfsWNffZmtmnCvWXPqMXWBvK6hVaxwomx79yeHA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/nested-clients": "3.804.0", + "@aws-sdk/nested-clients": "3.806.0", "@aws-sdk/types": "3.804.0", "@smithy/property-provider": "^4.0.2", "@smithy/shared-ini-file-loader": "^4.0.2", @@ -1131,14 +1131,14 @@ } }, "node_modules/@aws-sdk/util-endpoints": { - "version": "3.804.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.804.0.tgz", - "integrity": "sha512-mT2R1De1fBT3vgm00ELVFoaArblW3PqGUCVteGGSUdJA525To7h6xPThrNrw3Dn8blAcR8VYGYte/JX7vKgFxw==", + "version": "3.806.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.806.0.tgz", + "integrity": "sha512-3YRRgZ+qFuWDdm5uAbxKsr65UAil4KkrFKua9f4m7Be3v24ETiFOOqhanFUIk9/WOtvzF7oFEiDjYKDGlwV2xg==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "3.804.0", "@smithy/types": "^4.2.0", - "@smithy/util-endpoints": "^3.0.2", + "@smithy/util-endpoints": "^3.0.3", "tslib": "^2.6.2" }, "engines": { @@ -1185,14 +1185,14 @@ } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.804.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.804.0.tgz", - "integrity": "sha512-TacXL50ZHOeTUvN9LbHjS3muvvJNpzZp9cAtGRKpKXzlu8zCxPHrVU7dGOF6ONuNG30GpN2xzz81/XcCtg+8/A==", + "version": "3.806.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.806.0.tgz", + "integrity": "sha512-Az2e4/gmPZ4BpB7QRj7U76I+fctXhNcxlcgsaHnMhvt+R30nvzM2EhsyBUvsWl8+r9bnLeYt9BpvEZeq2ANDzA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-user-agent": "3.804.0", + "@aws-sdk/middleware-user-agent": "3.806.0", "@aws-sdk/types": "3.804.0", - "@smithy/node-config-provider": "^4.0.2", + "@smithy/node-config-provider": "^4.1.0", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" }, @@ -3122,12 +3122,12 @@ } }, "node_modules/@smithy/config-resolver": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.1.0.tgz", - "integrity": "sha512-8smPlwhga22pwl23fM5ew4T9vfLUCeFXlcqNOCD5M5h8VmNPNUE9j6bQSuRXpDSV11L/E/SwEBQuW8hr6+nS1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.1.1.tgz", + "integrity": "sha512-FZUtpiDnPZQmuIl4lfbdO+u3foNLmRCKct/2w2nRwgB99Yvaq4SHcfxyzMfxkyBrBmgnF1kdXzhHNXN7ycDvWg==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^4.0.2", + "@smithy/node-config-provider": "^4.1.0", "@smithy/types": "^4.2.0", "@smithy/util-config-provider": "^4.0.0", "@smithy/util-middleware": "^4.0.2", @@ -3157,12 +3157,12 @@ } }, "node_modules/@smithy/credential-provider-imds": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.0.2.tgz", - "integrity": "sha512-32lVig6jCaWBHnY+OEQ6e6Vnt5vDHaLiydGrwYMW9tPqO688hPGTYRamYJ1EptxEC2rAwJrHWmPoKRBl4iTa8w==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.0.3.tgz", + "integrity": "sha512-UdNvGjZnunS9+45gHYtVXDynoWH1X0tYY0pS368k1zUZum6Mm4ivU4Se0WhFJf8jNocD+p94khzTtrx4ha3OOQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^4.0.2", + "@smithy/node-config-provider": "^4.1.0", "@smithy/property-provider": "^4.0.2", "@smithy/types": "^4.2.0", "@smithy/url-parser": "^4.0.2", @@ -3356,14 +3356,14 @@ } }, "node_modules/@smithy/middleware-endpoint": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.1.2.tgz", - "integrity": "sha512-EqOy3xaEGQpsKxLlzYstDRJ8eY90CbyBP4cl+w7r45mE60S8YliyL9AgWsdWcyNiB95E2PMqHBEv67nNl1zLfg==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.1.3.tgz", + "integrity": "sha512-w7fJjCSqdTVTs1o1O7SRZm+Umf6r/FzkdlO5OH6tboASeUeugnMgQAs7gnc2dXvJVJtEGrmrBgPZFPxq3wWyzw==", "license": "Apache-2.0", "dependencies": { "@smithy/core": "^3.3.1", "@smithy/middleware-serde": "^4.0.3", - "@smithy/node-config-provider": "^4.0.2", + "@smithy/node-config-provider": "^4.1.0", "@smithy/shared-ini-file-loader": "^4.0.2", "@smithy/types": "^4.2.0", "@smithy/url-parser": "^4.0.2", @@ -3375,15 +3375,15 @@ } }, "node_modules/@smithy/middleware-retry": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.1.3.tgz", - "integrity": "sha512-AsJtI9KiFoEGAhcEKZyzzPfrszAQGcf4HSYKmenz0WGx/6YNvoPPv4OSGfZTCsDmgPHv4pXzxE+7QV7jcGWNKw==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.1.4.tgz", + "integrity": "sha512-QtWuD7bd7AAEFKvBmLQdOax25bXv4BACLQNWi3ddvpWwUUSAkAku9mzI+28jbjg48qw28lbzJ+YoYbbaXhLUjw==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^4.0.2", + "@smithy/node-config-provider": "^4.1.0", "@smithy/protocol-http": "^5.1.0", "@smithy/service-error-classification": "^4.0.3", - "@smithy/smithy-client": "^4.2.2", + "@smithy/smithy-client": "^4.2.3", "@smithy/types": "^4.2.0", "@smithy/util-middleware": "^4.0.2", "@smithy/util-retry": "^4.0.3", @@ -3434,9 +3434,9 @@ } }, "node_modules/@smithy/node-config-provider": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.0.2.tgz", - "integrity": "sha512-WgCkILRZfJwJ4Da92a6t3ozN/zcvYyJGUTmfGbgS/FkCcoCjl7G4FJaCDN1ySdvLvemnQeo25FdkyMSTSwulsw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.1.0.tgz", + "integrity": "sha512-gmPsv6L3ZRlBinv+vtSGUwfhTMh4+SgjbgGdX7bqYEs3Ys5RYVQtLuZ/WgZZdxn8QrDSUqLmTWunLM96WyM7UQ==", "license": "Apache-2.0", "dependencies": { "@smithy/property-provider": "^4.0.2", @@ -3562,13 +3562,13 @@ } }, "node_modules/@smithy/smithy-client": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.2.2.tgz", - "integrity": "sha512-3AnHfsMdq9Wg7+3BeR1HuLWI9+DMA/SoHVpCWq6xSsa52ikNd6nlF/wFzdpHyGtVa+Aji6lMgvwOF4sGcVA7SA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.2.3.tgz", + "integrity": "sha512-j/RRx6N007rJQ3qyjN4yuX9B0bxTn9ynDVxYQ43mcs7fluVJXmQGquy0TrWJfOPZcIikpY377GunZ2UK90GHYQ==", "license": "Apache-2.0", "dependencies": { "@smithy/core": "^3.3.1", - "@smithy/middleware-endpoint": "^4.1.2", + "@smithy/middleware-endpoint": "^4.1.3", "@smithy/middleware-stack": "^4.0.2", "@smithy/protocol-http": "^5.1.0", "@smithy/types": "^4.2.0", @@ -3669,13 +3669,13 @@ } }, "node_modules/@smithy/util-defaults-mode-browser": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.0.10.tgz", - "integrity": "sha512-2k6fgUNOZ1Rn0gEjvGPGrDEINLG8qSBHsN7xlkkbO+fnHJ36BQPDzhFfMmYSDS8AgzoygqQiDOQ+6Hp2vBTUdA==", + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.0.11.tgz", + "integrity": "sha512-Z49QNUSKbEj7JVZqaSUZkTkexRciQBbmonJ8AMar4fA0S2kvVpgjeVyGXnZYWTFzkgEwStacjFq4cQKbaQ8AnQ==", "license": "Apache-2.0", "dependencies": { "@smithy/property-provider": "^4.0.2", - "@smithy/smithy-client": "^4.2.2", + "@smithy/smithy-client": "^4.2.3", "@smithy/types": "^4.2.0", "bowser": "^2.11.0", "tslib": "^2.6.2" @@ -3685,16 +3685,16 @@ } }, "node_modules/@smithy/util-defaults-mode-node": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.0.10.tgz", - "integrity": "sha512-2XR1WRglLVmoIFts7bODUTgBdVyvkfKNkydHrlsI5VxW9q3s1hnJCuY+f1OHzvj5ue23q4vydM2fjrMjf2HSdQ==", + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.0.11.tgz", + "integrity": "sha512-y9UYcXjz4ry5sDPX40Vy6224Cw2/dch+wET6giaRoeXpyh56DCUVxW+Mgc/gO2uczAKktWd4ZWs2LWcW+PHz3Q==", "license": "Apache-2.0", "dependencies": { - "@smithy/config-resolver": "^4.1.0", - "@smithy/credential-provider-imds": "^4.0.2", - "@smithy/node-config-provider": "^4.0.2", + "@smithy/config-resolver": "^4.1.1", + "@smithy/credential-provider-imds": "^4.0.3", + "@smithy/node-config-provider": "^4.1.0", "@smithy/property-provider": "^4.0.2", - "@smithy/smithy-client": "^4.2.2", + "@smithy/smithy-client": "^4.2.3", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" }, @@ -3703,12 +3703,12 @@ } }, "node_modules/@smithy/util-endpoints": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.0.2.tgz", - "integrity": "sha512-6QSutU5ZyrpNbnd51zRTL7goojlcnuOB55+F9VBD+j8JpRY50IGamsjlycrmpn8PQkmJucFW8A0LSfXj7jjtLQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.0.3.tgz", + "integrity": "sha512-284PZFhCMdudqq61/E67zJ3i10gCYrMBjXcMg3h048qI39gTXQCCeNZvtJhL4vrj9yMpJ/y9M+Ek7V0o5tak3w==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^4.0.2", + "@smithy/node-config-provider": "^4.1.0", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" }, diff --git a/package.json b/package.json index b1a927610..d38fa914c 100644 --- a/package.json +++ b/package.json @@ -16,14 +16,14 @@ "job-totals-fixtures:local": "docker exec node-app /usr/bin/node /app/download-job-totals-fixtures.js" }, "dependencies": { - "@aws-sdk/client-cloudwatch-logs": "^3.804.0", - "@aws-sdk/client-elasticache": "^3.804.0", - "@aws-sdk/client-s3": "^3.804.0", - "@aws-sdk/client-secrets-manager": "^3.804.0", - "@aws-sdk/client-ses": "^3.804.0", - "@aws-sdk/credential-provider-node": "^3.804.0", - "@aws-sdk/lib-storage": "^3.804.0", - "@aws-sdk/s3-request-presigner": "^3.804.0", + "@aws-sdk/client-cloudwatch-logs": "^3.806.0", + "@aws-sdk/client-elasticache": "^3.806.0", + "@aws-sdk/client-s3": "^3.806.0", + "@aws-sdk/client-secrets-manager": "^3.806.0", + "@aws-sdk/client-ses": "^3.806.0", + "@aws-sdk/credential-provider-node": "^3.806.0", + "@aws-sdk/lib-storage": "^3.806.0", + "@aws-sdk/s3-request-presigner": "^3.806.0", "@opensearch-project/opensearch": "^2.13.0", "@socket.io/admin-ui": "^0.5.1", "@socket.io/redis-adapter": "^8.3.0",