{
const totals =
allocationsSummary &&
diff --git a/client/src/components/job-detail-cards/job-detail-cards.parts.component.jsx b/client/src/components/job-detail-cards/job-detail-cards.parts.component.jsx
index 9f3c32820..949d42eae 100644
--- a/client/src/components/job-detail-cards/job-detail-cards.parts.component.jsx
+++ b/client/src/components/job-detail-cards/job-detail-cards.parts.component.jsx
@@ -90,7 +90,7 @@ export function JobDetailCardsPartsComponent({ loading, data, jobRO }) {
.filter(onlyUnique)
.map((s) => {
return {
- text: s || "No Status*",
+ text: s || t("dashboard.errors.status"),
value: [s]
};
})) ||
@@ -103,7 +103,7 @@ export function JobDetailCardsPartsComponent({ loading, data, jobRO }) {
);
diff --git a/client/src/components/job-detail-lines/job-lines.component.jsx b/client/src/components/job-detail-lines/job-lines.component.jsx
index 2cadcf4e8..d6a0320e3 100644
--- a/client/src/components/job-detail-lines/job-lines.component.jsx
+++ b/client/src/components/job-detail-lines/job-lines.component.jsx
@@ -97,7 +97,7 @@ export function JobLinesComponent({
filteredInfo: {
...(isPartsEntry
? {
- part_type: ["PAN", "PAC", "PAR", "PAL", "PAA", "PAM", "PAP", "PAS", "PASL", "PAG", "PAO"]
+ part_type: ["PAN", "PAC", "PAR", "PAL", "PAA", "PAM", "PAP", "PAS", "PASL", "PAG"] //"PAO" Removed by request
}
: {})
}
@@ -318,7 +318,7 @@ export function JobLinesComponent({
.filter(onlyUnique)
.map((s) => {
return {
- text: s || "No Status*",
+ text: s || t("dashboard.errors.status"),
value: [s]
};
})) ||
diff --git a/client/src/components/job-parts-queue-count/job-parts-queue-count.component.jsx b/client/src/components/job-parts-queue-count/job-parts-queue-count.component.jsx
index 8fbee411c..c7cc3a115 100644
--- a/client/src/components/job-parts-queue-count/job-parts-queue-count.component.jsx
+++ b/client/src/components/job-parts-queue-count/job-parts-queue-count.component.jsx
@@ -1,8 +1,9 @@
import { useMemo } from "react";
-import { Col, Row, Tag, Tooltip } from "antd";
+import { Tag, Tooltip } from "antd";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import { selectBodyshop } from "../../redux/user/user.selectors";
+import { useTranslation } from "react-i18next";
const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop
@@ -11,65 +12,67 @@ const mapDispatchToProps = () => ({
//setUserLanguage: language => dispatch(setUserLanguage(language))
});
-export const DEFAULT_COL_LAYOUT = { xs: 24, sm: 24, md: 8, lg: 4, xl: 4, xxl: 4 };
-
export default connect(mapStateToProps, mapDispatchToProps)(JobPartsQueueCount);
-export function JobPartsQueueCount({ bodyshop, parts, defaultColLayout = DEFAULT_COL_LAYOUT }) {
+export function JobPartsQueueCount({ bodyshop, parts }) {
+ const { t } = useTranslation();
const partsStatus = useMemo(() => {
if (!parts) return null;
+ const statusKeys = ["default_bo", "default_ordered", "default_received", "default_returned"];
return parts.reduce(
(acc, val) => {
if (val.part_type === "PAS" || val.part_type === "PASL") return acc;
acc.total = acc.total + val.count;
acc[val.status] = acc[val.status] + val.count;
-
return acc;
},
{
total: 0,
null: 0,
- [bodyshop.md_order_statuses.default_bo]: 0,
- [bodyshop.md_order_statuses.default_ordered]: 0,
- [bodyshop.md_order_statuses.default_received]: 0,
- [bodyshop.md_order_statuses.default_returned]: 0
+ ...Object.fromEntries(statusKeys.map((key) => [bodyshop.md_order_statuses[key], 0]))
}
);
}, [bodyshop, parts]);
if (!parts) return null;
return (
-
-
-
- {partsStatus.total}
-
-
-
-
- {partsStatus["null"]}
-
-
-
-
- {partsStatus[bodyshop.md_order_statuses.default_ordered]}
-
-
-
-
- {partsStatus[bodyshop.md_order_statuses.default_received]}
-
-
-
-
- {partsStatus[bodyshop.md_order_statuses.default_returned]}
-
-
-
-
- {partsStatus[bodyshop.md_order_statuses.default_bo]}
-
-
-
+
+
+ {partsStatus.total}
+
+
+
+ {partsStatus["null"]}
+
+
+
+
+ {partsStatus[bodyshop.md_order_statuses.default_bo]}
+
+
+
+
+ {partsStatus[bodyshop.md_order_statuses.default_ordered]}
+
+
+
+
+ {partsStatus[bodyshop.md_order_statuses.default_received]}
+
+
+
+
+ {partsStatus[bodyshop.md_order_statuses.default_returned]}
+
+
+
);
}
diff --git a/client/src/components/jobs-list/jobs-list.component.jsx b/client/src/components/jobs-list/jobs-list.component.jsx
index 49439fa00..bde88d161 100644
--- a/client/src/components/jobs-list/jobs-list.component.jsx
+++ b/client/src/components/jobs-list/jobs-list.component.jsx
@@ -166,7 +166,7 @@ export function JobsList({ bodyshop }) {
.filter(onlyUnique)
.map((s) => {
return {
- text: s || "No Status*",
+ text: s || t("dashboard.errors.status"),
value: [s]
};
})
diff --git a/client/src/components/jobs-ready-list/jobs-ready-list.component.jsx b/client/src/components/jobs-ready-list/jobs-ready-list.component.jsx
index b88b713c2..b218b46f4 100644
--- a/client/src/components/jobs-ready-list/jobs-ready-list.component.jsx
+++ b/client/src/components/jobs-ready-list/jobs-ready-list.component.jsx
@@ -165,7 +165,7 @@ export function JobsReadyList({ bodyshop }) {
.filter(onlyUnique)
.map((s) => {
return {
- text: s || "No Status*",
+ text: s || t("dashboard.errors.status"),
value: [s]
};
})
diff --git a/client/src/components/parts-queue-card/parts-queue-job-lines.component.jsx b/client/src/components/parts-queue-card/parts-queue-job-lines.component.jsx
index 7d108954c..066e937e8 100644
--- a/client/src/components/parts-queue-card/parts-queue-job-lines.component.jsx
+++ b/client/src/components/parts-queue-card/parts-queue-job-lines.component.jsx
@@ -145,7 +145,7 @@ export function PartsQueueJobLinesComponent({ loading, jobLines }) {
.filter(onlyUnique)
.map((s) => {
return {
- text: s || "No Status*",
+ text: s || t("dashboard.errors.status"),
value: [s]
};
})) ||
diff --git a/client/src/components/parts-queue-list/parts-queue.list.component.jsx b/client/src/components/parts-queue-list/parts-queue.list.component.jsx
index bb4b72b79..a947eaefa 100644
--- a/client/src/components/parts-queue-list/parts-queue.list.component.jsx
+++ b/client/src/components/parts-queue-list/parts-queue.list.component.jsx
@@ -171,7 +171,7 @@ export function PartsQueueListComponent({ bodyshop }) {
filters:
bodyshop.md_ro_statuses.active_statuses.map((s) => {
return {
- text: s || "No Status*",
+ text: s || t("dashboard.errors.status"),
value: [s]
};
}) || [],
diff --git a/client/src/components/production-list-columns/production-list-columns.data.jsx b/client/src/components/production-list-columns/production-list-columns.data.jsx
index f26733c36..165e15c1d 100644
--- a/client/src/components/production-list-columns/production-list-columns.data.jsx
+++ b/client/src/components/production-list-columns/production-list-columns.data.jsx
@@ -34,8 +34,9 @@ const getEmployeeName = (employeeId, employees) => {
return employee ? `${employee.first_name} ${employee.last_name}` : "";
};
-const r = ({ technician, state, activeStatuses, data, bodyshop, refetch, treatments }) => {
+const productionListColumnsData = ({ technician, state, activeStatuses, data, bodyshop, refetch, treatments }) => {
const { Enhanced_Payroll } = treatments;
+
return [
{
title: i18n.t("jobs.actions.viewdetail"),
@@ -313,7 +314,7 @@ const r = ({ technician, state, activeStatuses, data, bodyshop, refetch, treatme
activeStatuses
?.map((s) => {
return {
- text: s || "No Status*",
+ text: s || i18n.t("dashboard.errors.status"),
value: [s]
};
})
@@ -584,4 +585,4 @@ const r = ({ technician, state, activeStatuses, data, bodyshop, refetch, treatme
}
];
};
-export default r;
+export default productionListColumnsData;
diff --git a/client/src/components/shop-info/shop-info.general.component.jsx b/client/src/components/shop-info/shop-info.general.component.jsx
index 165e133a2..acf553bb5 100644
--- a/client/src/components/shop-info/shop-info.general.component.jsx
+++ b/client/src/components/shop-info/shop-info.general.component.jsx
@@ -425,7 +425,15 @@ export function ShopInfoGeneral({ form, bodyshop }) {
]
: [])
]
- : [])
+ : []),
+
+
+
]}
null}>
diff --git a/client/src/components/shop-info/shop-info.responsibilitycenters.component.jsx b/client/src/components/shop-info/shop-info.responsibilitycenters.component.jsx
index ccae00d4f..6e7a4edfd 100644
--- a/client/src/components/shop-info/shop-info.responsibilitycenters.component.jsx
+++ b/client/src/components/shop-info/shop-info.responsibilitycenters.component.jsx
@@ -138,6 +138,15 @@ export function ShopInfoResponsibilityCenterComponent({ bodyshop, form }) {
)}
+ {bodyshop.pbs_serialnumber && (
+
+
+
+ )}
{bodyshop.pbs_serialnumber && (
{
+ filters: bodyshop?.md_ro_statuses?.parts_statuses?.map((s) => {
return { text: s, value: [s] };
}),
onFilter: (value, record) => value.includes(record.status)
diff --git a/client/src/components/tech-lookup-jobs-list/tech-lookup-jobs-list.component.jsx b/client/src/components/tech-lookup-jobs-list/tech-lookup-jobs-list.component.jsx
index 0febbb24d..dfba5a133 100644
--- a/client/src/components/tech-lookup-jobs-list/tech-lookup-jobs-list.component.jsx
+++ b/client/src/components/tech-lookup-jobs-list/tech-lookup-jobs-list.component.jsx
@@ -111,7 +111,7 @@ export function TechLookupJobsList({ bodyshop }) {
.filter(onlyUnique)
.map((s) => {
return {
- text: s || "No Status*",
+ text: s || t("dashboard.errors.status"),
value: [s]
};
})) ||
diff --git a/client/src/graphql/bills.queries.js b/client/src/graphql/bills.queries.js
index a9c3433fa..03be22e61 100644
--- a/client/src/graphql/bills.queries.js
+++ b/client/src/graphql/bills.queries.js
@@ -42,7 +42,7 @@ export const QUERY_ALL_BILLS_PAGINATED = gql`
ro_number
}
}
- bills_aggregate {
+ bills_aggregate(where: $where) {
aggregate {
count(distinct: true)
}
diff --git a/client/src/graphql/bodyshop.queries.js b/client/src/graphql/bodyshop.queries.js
index cdb806e55..61b2d7f91 100644
--- a/client/src/graphql/bodyshop.queries.js
+++ b/client/src/graphql/bodyshop.queries.js
@@ -363,3 +363,25 @@ export const GET_ACTIVE_EMPLOYEES_IN_SHOP = gql`
}
}
`;
+export const QUERY_MINIMAL_BODYSHOP = gql`
+ query QUERY_MINIMAL_BODYSHOP {
+ bodyshops(where: { associations: { active: { _eq: true } } }) {
+ id
+ shopname
+ associations(where: { active: { _eq: true } }) {
+ user {
+ email
+ }
+ }
+ }
+ }
+`;
+export const QUERY_DASHBOARD_BODYSHOP = gql`
+ query QUERY_DASHBOARD_BODYSHOP {
+ dashboard_bodyshops: bodyshops(where: { associations: { active: { _eq: true } } }) {
+ id
+ prodtargethrs
+ md_ro_statuses
+ }
+ }
+`;
diff --git a/client/src/graphql/user.queries.js b/client/src/graphql/user.queries.js
index 682c0f541..2b94759c9 100644
--- a/client/src/graphql/user.queries.js
+++ b/client/src/graphql/user.queries.js
@@ -135,3 +135,12 @@ export const UPDATE_NOTIFICATIONS_AUTOADD = gql`
}
}
`;
+
+export const QUERY_USER_DASHBOARD_LAYOUT = gql`
+ query QUERY_USER_DASHBOARD_LAYOUT($email: String!) {
+ users(where: { email: { _eq: $email } }) {
+ email
+ dashboardlayout
+ }
+ }
+`;
diff --git a/client/src/pages/bills/bills.page.component.jsx b/client/src/pages/bills/bills.page.component.jsx
index e3d2f55b0..0fb17a978 100644
--- a/client/src/pages/bills/bills.page.component.jsx
+++ b/client/src/pages/bills/bills.page.component.jsx
@@ -16,7 +16,6 @@ import { DateFormatter } from "../../utils/DateFormatter";
import { TemplateList } from "../../utils/TemplateConstants";
import { pageLimit } from "../../utils/config";
import { alphaSort, dateSort } from "../../utils/sorters";
-import useLocalStorage from "../../utils/useLocalStorage";
import { QUERY_ALL_VENDORS } from "../../graphql/vendors.queries";
import { logImEXEvent } from "../../firebase/firebase.utils";
@@ -24,16 +23,12 @@ const mapDispatchToProps = (dispatch) => ({
setBillEnterContext: (context) => dispatch(setModalContext({ context: context, modal: "billEnter" }))
});
-export function BillsListPage({ loading, data, refetch, total, setBillEnterContext }) {
+export function BillsListPage({ loading, data, refetch, total, setBillEnterContext, handleTableChange, sortedInfo }) {
const search = queryString.parse(useLocation().search);
const [openSearchResults, setOpenSearchResults] = useState([]);
const [searchLoading, setSearchLoading] = useState(false);
const { page } = search;
const history = useNavigate();
- const [state, setState] = useLocalStorage("bills_list_sort", {
- sortedInfo: {},
- filteredInfo: { vendorname: [] }
- });
const Templates = TemplateList("bill");
const { t } = useTranslation();
@@ -50,7 +45,7 @@ export function BillsListPage({ loading, data, refetch, total, setBillEnterConte
}),
filters: (vendorsData?.vendors || []).map((v) => ({ text: v.name, value: v.id })),
filteredValue: search.vendorIds ? search.vendorIds.split(",") : null,
- sortOrder: state.sortedInfo.columnKey === "vendorname" && state.sortedInfo.order,
+ sortOrder: sortedInfo.columnKey === "vendorname" && sortedInfo.order,
render: (text, record) => {record.vendor.name}
},
{
@@ -58,7 +53,7 @@ export function BillsListPage({ loading, data, refetch, total, setBillEnterConte
dataIndex: "invoice_number",
key: "invoice_number",
sorter: (a, b) => alphaSort(a.invoice_number, b.invoice_number),
- sortOrder: state.sortedInfo.columnKey === "invoice_number" && state.sortedInfo.order
+ sortOrder: sortedInfo.columnKey === "invoice_number" && sortedInfo.order
},
{
title: t("jobs.fields.ro_number"),
@@ -68,7 +63,7 @@ export function BillsListPage({ loading, data, refetch, total, setBillEnterConte
sortObject: (order) => ({
job: { ro_number: order === "descend" ? "desc" : "asc" }
}),
- sortOrder: state.sortedInfo.columnKey === "ro_number" && state.sortedInfo.order,
+ sortOrder: sortedInfo.columnKey === "ro_number" && sortedInfo.order,
render: (text, record) => record.job && {record.job.ro_number}
},
{
@@ -76,7 +71,7 @@ export function BillsListPage({ loading, data, refetch, total, setBillEnterConte
dataIndex: "date",
key: "date",
sorter: (a, b) => dateSort(a.date, b.date),
- sortOrder: state.sortedInfo.columnKey === "date" && state.sortedInfo.order,
+ sortOrder: sortedInfo.columnKey === "date" && sortedInfo.order,
render: (text, record) => {record.date}
},
{
@@ -84,7 +79,7 @@ export function BillsListPage({ loading, data, refetch, total, setBillEnterConte
dataIndex: "total",
key: "total",
sorter: (a, b) => a.total - b.total,
- sortOrder: state.sortedInfo.columnKey === "total" && state.sortedInfo.order,
+ sortOrder: sortedInfo.columnKey === "total" && sortedInfo.order,
render: (text, record) => {record.total}
},
{
@@ -92,7 +87,7 @@ export function BillsListPage({ loading, data, refetch, total, setBillEnterConte
dataIndex: "is_credit_memo",
key: "is_credit_memo",
sorter: (a, b) => a.is_credit_memo - b.is_credit_memo,
- sortOrder: state.sortedInfo.columnKey === "is_credit_memo" && state.sortedInfo.order,
+ sortOrder: sortedInfo.columnKey === "is_credit_memo" && sortedInfo.order,
render: (text, record) =>
},
{
@@ -100,7 +95,7 @@ export function BillsListPage({ loading, data, refetch, total, setBillEnterConte
dataIndex: "exported",
key: "exported",
sorter: (a, b) => a.exported - b.exported,
- sortOrder: state.sortedInfo.columnKey === "exported" && state.sortedInfo.order,
+ sortOrder: sortedInfo.columnKey === "exported" && sortedInfo.order,
render: (text, record) =>
},
{
@@ -164,37 +159,7 @@ export function BillsListPage({ loading, data, refetch, total, setBillEnterConte
}
];
- const handleTableChange = (pagination, filters, sorter) => {
- setState({
- sortedInfo: sorter,
- filteredInfo: { ...state.filteredInfo, vendorname: filters.vendorname || [] }
- });
-
- search.page = pagination.current;
- if (filters.vendorname && filters.vendorname.length) {
- search.vendorIds = filters.vendorname.join(",");
- } else {
- delete search.vendorIds;
- }
- if (sorter && sorter.column && sorter.column.sortObject) {
- search.searchObj = JSON.stringify(sorter.column.sortObject(sorter.order));
- delete search.sortcolumn;
- delete search.sortorder;
- } else {
- delete search.searchObj;
- search.sortcolumn = sorter.order ? sorter.columnKey : null;
- search.sortorder = sorter.order;
- }
- history({ search: queryString.stringify(search) });
- logImEXEvent("bills_list_sort_filter", { pagination, filters, sorter });
- };
-
- useEffect(() => {
- if (!search.vendorIds && state.filteredInfo.vendorname && state.filteredInfo.vendorname.length) {
- search.vendorIds = state.filteredInfo.vendorname.join(",");
- history({ search: queryString.stringify(search) });
- }
- }, []);
+ // (State & URL handling moved to container - Option C)
useEffect(() => {
if (search.search && search.search.trim() !== "") {
diff --git a/client/src/pages/bills/bills.page.container.jsx b/client/src/pages/bills/bills.page.container.jsx
index 68c5d4c01..f4a7a1859 100644
--- a/client/src/pages/bills/bills.page.container.jsx
+++ b/client/src/pages/bills/bills.page.container.jsx
@@ -3,13 +3,14 @@ import queryString from "query-string";
import { useEffect } from "react";
import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
-import { useLocation } from "react-router-dom";
+import { useLocation, useNavigate } from "react-router-dom";
import AlertComponent from "../../components/alert/alert.component";
import BillDetailEditContainer from "../../components/bill-detail-edit/bill-detail-edit.container";
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
import { QUERY_ALL_BILLS_PAGINATED } from "../../graphql/bills.queries";
import { setBreadcrumbs, setSelectedHeader } from "../../redux/application/application.actions";
import BillsPageComponent from "./bills.page.component";
+import useLocalStorage from "../../utils/useLocalStorage";
import { pageLimit } from "../../utils/config";
import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component";
import InstanceRenderManager from "../../utils/instanceRenderMgr";
@@ -23,7 +24,9 @@ const mapDispatchToProps = (dispatch) => ({
export function BillsPageContainer({ setBreadcrumbs, setSelectedHeader }) {
const { t } = useTranslation();
- const searchParams = queryString.parse(useLocation().search);
+ const location = useLocation();
+ const history = useNavigate();
+ const searchParams = queryString.parse(location.search);
const { page, sortcolumn, sortorder, searchObj } = searchParams;
useEffect(() => {
@@ -37,6 +40,12 @@ export function BillsPageContainer({ setBreadcrumbs, setSelectedHeader }) {
setBreadcrumbs([{ link: "/manage/bills", label: t("titles.bc.bills-list") }]);
}, [t, setBreadcrumbs, setSelectedHeader]);
+ // Persisted table state (sorting & filtering)
+ const [persistState, setPersistState] = useLocalStorage("bills_list_sort", {
+ sortedInfo: {},
+ filteredInfo: { vendorname: [] }
+ });
+
const { loading, error, data, refetch } = useQuery(QUERY_ALL_BILLS_PAGINATED, {
fetchPolicy: "network-only",
nextFetchPolicy: "network-only",
@@ -54,6 +63,90 @@ export function BillsPageContainer({ setBreadcrumbs, setSelectedHeader }) {
}
});
+ const handleTableChange = (pagination, filters, sorter) => {
+ const search = queryString.parse(location.search);
+
+ const vendorArr = filters?.vendorname ?? [];
+ const newVendorIds = vendorArr.length ? vendorArr.join(",") : undefined;
+ const vendorFilterChanged = search.vendorIds !== newVendorIds;
+
+ search.page = vendorFilterChanged || !search.page ? 1 : pagination.current;
+ newVendorIds ? (search.vendorIds = newVendorIds) : delete search.vendorIds;
+
+ const { columnKey, order, column } = sorter || {};
+ if (column?.sortObject) {
+ search.searchObj = JSON.stringify(column.sortObject(order));
+ delete search.sortcolumn;
+ delete search.sortorder;
+ } else {
+ delete search.searchObj;
+ search.sortcolumn = order ? columnKey : null;
+ search.sortorder = order ?? null; // keep explicit null to mirror prior behavior
+ }
+
+ setPersistState({
+ sortedInfo: sorter || {},
+ filteredInfo: { vendorname: vendorArr }
+ });
+
+ history({ search: queryString.stringify(search) });
+ };
+
+ useEffect(() => {
+ const search = queryString.parse(location.search);
+ let changed = false;
+
+ const vendorPersisted = persistState.filteredInfo.vendorname || [];
+ if (!search.vendorIds && vendorPersisted.length) {
+ search.vendorIds = vendorPersisted.join(",");
+ search.page = 1; // reset page when injecting filter
+ changed = true;
+ }
+
+ const { sortedInfo } = persistState;
+ if (!search.searchObj && !search.sortcolumn && sortedInfo?.order) {
+ const { columnKey, order } = sortedInfo;
+ if (columnKey) {
+ const dir = order === "descend" ? "desc" : "asc";
+ if (columnKey === "vendorname") {
+ search.searchObj = JSON.stringify({ vendor: { name: dir } });
+ } else if (columnKey === "ro_number") {
+ search.searchObj = JSON.stringify({ job: { ro_number: dir } });
+ } else {
+ search.sortcolumn = columnKey;
+ search.sortorder = order;
+ }
+ changed = true;
+ }
+ }
+
+ if (changed) {
+ history({ search: queryString.stringify(search) });
+ return;
+ }
+
+ const hasPersistSort = !!sortedInfo?.order;
+ const hasUrlSort = !!(search.searchObj || (search.sortcolumn && search.sortorder));
+ if (!hasPersistSort && hasUrlSort) {
+ let derived = {};
+ if (search.searchObj) {
+ try {
+ const o = JSON.parse(search.searchObj);
+ if (o.vendor?.name) {
+ derived = { columnKey: "vendorname", order: o.vendor.name === "desc" ? "descend" : "ascend" };
+ } else if (o.job?.ro_number) {
+ derived = { columnKey: "ro_number", order: o.job.ro_number === "desc" ? "descend" : "ascend" };
+ }
+ } catch {
+ /* ignore parse errors */
+ }
+ } else {
+ derived = { columnKey: search.sortcolumn, order: search.sortorder };
+ }
+ if (derived.order) setPersistState((prev) => ({ ...prev, sortedInfo: derived }));
+ }
+ }, [location.search]);
+
if (error) return ;
return (
diff --git a/client/src/pages/dms/dms.container.jsx b/client/src/pages/dms/dms.container.jsx
index 78f86a0c6..afc67a4a7 100644
--- a/client/src/pages/dms/dms.container.jsx
+++ b/client/src/pages/dms/dms.container.jsx
@@ -48,7 +48,7 @@ export const socket = SocketIO(
export function DmsContainer({ bodyshop, setBreadcrumbs, setSelectedHeader, insertAuditTrail }) {
const { t } = useTranslation();
- const [logLevel, setLogLevel] = useState("DEBUG");
+ const [logLevel, setLogLevel] = useState(determineDmsType(bodyshop) === "pbs" ? "INFO" : "DEBUG");
const history = useNavigate();
const [logs, setLogs] = useState([]);
const search = queryString.parse(useLocation().search);
diff --git a/client/src/pages/tech-assigned-prod-jobs/tech-assigned-prod-jobs.component.jsx b/client/src/pages/tech-assigned-prod-jobs/tech-assigned-prod-jobs.component.jsx
index 1849b9b63..5cc1f308d 100644
--- a/client/src/pages/tech-assigned-prod-jobs/tech-assigned-prod-jobs.component.jsx
+++ b/client/src/pages/tech-assigned-prod-jobs/tech-assigned-prod-jobs.component.jsx
@@ -97,7 +97,7 @@ export function TechAssignedProdJobs({ setTimeTicketTaskContext, technician, bod
.filter(onlyUnique)
.map((s) => {
return {
- text: s || "No Status*",
+ text: s || t("dashboard.errors.status"),
value: [s]
};
})) ||
diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json
index aca3da3e2..05219fd5e 100644
--- a/client/src/translations/en_us/common.json
+++ b/client/src/translations/en_us/common.json
@@ -281,6 +281,7 @@
},
"fields": {
"ReceivableCustomField": "QBO Receivable Custom Field {{number}}",
+ "accumulatePayableLines": "Accumulate Payable Lines",
"address1": "Address 1",
"address2": "Address 2",
"appt_alt_transport": "Appointment Alternative Transportation Options",
@@ -321,6 +322,7 @@
"itc_local": "Local Tax is ITC?",
"itc_state": "State Tax is ITC?",
"mappingname": "DMS Mapping Name",
+ "ro_posting": "Create $0 RO?",
"sendmaterialscosting": "Materials Cost as % of Sale",
"srcco": "Source Company #/Dealer #"
},
@@ -996,6 +998,7 @@
"insco": "No Ins. Co.*",
"refreshrequired": "You must refresh the dashboard data to see this component.",
"status": "No Status*",
+ "status_normal": "No Status",
"updatinglayout": "Error saving updated layout {{message}}"
},
"labels": {
diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json
index 345712670..20610391c 100644
--- a/client/src/translations/es/common.json
+++ b/client/src/translations/es/common.json
@@ -281,6 +281,7 @@
},
"fields": {
"ReceivableCustomField": "",
+ "accumulatePayableLines": "",
"address1": "",
"address2": "",
"appt_alt_transport": "",
@@ -321,6 +322,7 @@
"itc_local": "",
"itc_state": "",
"mappingname": "",
+ "ro_posting": "",
"sendmaterialscosting": "",
"srcco": ""
},
@@ -996,6 +998,7 @@
"insco": "",
"refreshrequired": "",
"status": "",
+ "status_normal": "",
"updatinglayout": ""
},
"labels": {
diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json
index c3f680059..76d5bbd1d 100644
--- a/client/src/translations/fr/common.json
+++ b/client/src/translations/fr/common.json
@@ -281,6 +281,7 @@
},
"fields": {
"ReceivableCustomField": "",
+ "accumulatePayableLines": "",
"address1": "",
"address2": "",
"appt_alt_transport": "",
@@ -321,6 +322,7 @@
"itc_local": "",
"itc_state": "",
"mappingname": "",
+ "ro_posting": "",
"sendmaterialscosting": "",
"srcco": ""
},
@@ -996,6 +998,7 @@
"insco": "",
"refreshrequired": "",
"status": "",
+ "status_normal": "",
"updatinglayout": ""
},
"labels": {
diff --git a/docker-compose-cluster.yml b/docker-compose-cluster.yml
index 86defaf50..bbce31dd4 100644
--- a/docker-compose-cluster.yml
+++ b/docker-compose-cluster.yml
@@ -207,6 +207,9 @@ services:
aws --endpoint-url=http://localstack:4566 secretsmanager create-secret --name CHATTER_PRIVATE_KEY --secret-string file:///tmp/certs/io-ftp-test.key
aws --endpoint-url=http://localstack:4566 logs create-log-group --log-group-name development --region ca-central-1
aws --endpoint-url=http://localstack:4566 s3api create-bucket --bucket imex-large-log --create-bucket-configuration LocationConstraint=ca-central-1
+ aws --endpoint-url=http://localstack:4566 s3api create-bucket --bucket imex-carfax-uploads --create-bucket-configuration LocationConstraint=ca-central-1
+ aws --endpoint-url=http://localstack:4566 s3api create-bucket --bucket rome-carfax-uploads --create-bucket-configuration LocationConstraint=ca-central-1
+ aws --endpoint-url=http://localstack:4566 s3api create-bucket --bucket rps-carfax-uploads --create-bucket-configuration LocationConstraint=ca-central-1
"
networks:
diff --git a/docker-compose.yml b/docker-compose.yml
index ad805e272..261076522 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -120,6 +120,8 @@ services:
aws --endpoint-url=http://localstack:4566 s3api create-bucket --bucket imex-job-totals --create-bucket-configuration LocationConstraint=ca-central-1
aws --endpoint-url=http://localstack:4566 s3api create-bucket --bucket parts-estimates --create-bucket-configuration LocationConstraint=ca-central-1
aws --endpoint-url=http://localstack:4566 s3api create-bucket --bucket imex-carfax-uploads --create-bucket-configuration LocationConstraint=ca-central-1
+ aws --endpoint-url=http://localstack:4566 s3api create-bucket --bucket rome-carfax-uploads --create-bucket-configuration LocationConstraint=ca-central-1
+ aws --endpoint-url=http://localstack:4566 s3api create-bucket --bucket rps-carfax-uploads --create-bucket-configuration LocationConstraint=ca-central-1
"
# Node App: The Main IMEX API
node-app:
diff --git a/hasura/metadata/cron_triggers.yaml b/hasura/metadata/cron_triggers.yaml
index a1b4b7f4a..2c8c4c91d 100644
--- a/hasura/metadata/cron_triggers.yaml
+++ b/hasura/metadata/cron_triggers.yaml
@@ -8,7 +8,16 @@
value_from_env: DATAPUMP_AUTH
- name: CARFAX Data Pump
webhook: '{{HASURA_API_URL}}/data/carfax'
- schedule: 0 7 * * 6
+ schedule: 0 7 * * 0
+ include_in_metadata: true
+ payload: {}
+ headers:
+ - name: x-imex-auth
+ value_from_env: DATAPUMP_AUTH
+ comment: Project Mexico
+- name: CARFAX RPS Data Pump
+ webhook: '{{HASURA_API_URL}}/data/carfaxrps'
+ schedule: 15 7 * * 0
include_in_metadata: true
payload: {}
headers:
diff --git a/package-lock.json b/package-lock.json
index 6b3011694..f32c42f22 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,40 +9,40 @@
"version": "0.2.0",
"license": "UNLICENSED",
"dependencies": {
- "@aws-sdk/client-cloudwatch-logs": "^3.882.0",
- "@aws-sdk/client-elasticache": "^3.882.0",
- "@aws-sdk/client-s3": "^3.882.0",
- "@aws-sdk/client-secrets-manager": "^3.882.0",
- "@aws-sdk/client-ses": "^3.882.0",
- "@aws-sdk/credential-provider-node": "^3.882.0",
- "@aws-sdk/lib-storage": "^3.882.0",
- "@aws-sdk/s3-request-presigner": "^3.882.0",
+ "@aws-sdk/client-cloudwatch-logs": "^3.901.0",
+ "@aws-sdk/client-elasticache": "^3.901.0",
+ "@aws-sdk/client-s3": "^3.901.0",
+ "@aws-sdk/client-secrets-manager": "^3.901.0",
+ "@aws-sdk/client-ses": "^3.901.0",
+ "@aws-sdk/credential-provider-node": "^3.901.0",
+ "@aws-sdk/lib-storage": "^3.903.0",
+ "@aws-sdk/s3-request-presigner": "^3.901.0",
"@opensearch-project/opensearch": "^2.13.0",
"@socket.io/admin-ui": "^0.5.1",
"@socket.io/redis-adapter": "^8.3.0",
"archiver": "^7.0.1",
"aws4": "^1.13.2",
- "axios": "^1.11.0",
+ "axios": "^1.12.2",
"better-queue": "^3.8.12",
- "bullmq": "^5.58.5",
+ "bullmq": "^5.61.0",
"chart.js": "^4.5.0",
"cloudinary": "^2.7.0",
"compression": "^1.8.1",
"cookie-parser": "^1.4.7",
"cors": "^2.8.5",
"crisp-status-reporter": "^1.2.2",
- "dd-trace": "^5.65.0",
+ "dd-trace": "^5.70.0",
"dinero.js": "^1.9.1",
- "dotenv": "^17.2.2",
+ "dotenv": "^17.2.3",
"express": "^4.21.1",
"firebase-admin": "^13.5.0",
"graphql": "^16.11.0",
"graphql-request": "^6.1.0",
"intuit-oauth": "^4.2.0",
- "ioredis": "^5.7.0",
+ "ioredis": "^5.8.1",
"json-2-csv": "^5.5.9",
"jsonwebtoken": "^9.0.2",
- "juice": "^11.0.1",
+ "juice": "^11.0.3",
"lodash": "^4.17.21",
"moment": "^2.30.1",
"moment-timezone": "^0.6.0",
@@ -53,22 +53,22 @@
"query-string": "7.1.3",
"recursive-diff": "^1.0.9",
"rimraf": "^6.0.1",
- "skia-canvas": "^3.0.6",
- "soap": "^1.3.0",
+ "skia-canvas": "^3.0.8",
+ "soap": "^1.5.0",
"socket.io": "^4.8.1",
"socket.io-adapter": "^2.5.5",
"ssh2-sftp-client": "^11.0.0",
- "twilio": "^5.9.0",
+ "twilio": "^5.10.2",
"uuid": "^11.1.0",
- "winston": "^3.17.0",
+ "winston": "^3.18.3",
"winston-cloudwatch": "^6.3.0",
"xml2js": "^0.6.2",
"xmlbuilder2": "^3.1.1",
"yazl": "^3.3.1"
},
"devDependencies": {
- "@eslint/js": "^9.35.0",
- "eslint": "^9.35.0",
+ "@eslint/js": "^9.37.0",
+ "eslint": "^9.37.0",
"eslint-plugin-react": "^7.37.5",
"globals": "^15.15.0",
"mock-require": "^3.0.3",
@@ -285,118 +285,104 @@
}
},
"node_modules/@aws-sdk/client-cloudwatch-logs": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.882.0.tgz",
- "integrity": "sha512-5MqQIzkHNTi8UQc7tYrb8N5f6bEyxXUvEi/0bV6S3UZmYLxI5LvKhoibyl6kLLR+RcUinrQ1evotVVnzRzZmvQ==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.901.0.tgz",
+ "integrity": "sha512-36T3Vev/StVPPkZG8zhs+Pzch4T1LtwGZgPluF5nyaRO+s/1KbzwUEaKV/6Ts3DvdA6bq8aNBQ0psss6+r0LDw==",
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/sha256-browser": "5.2.0",
"@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/credential-provider-node": "3.882.0",
- "@aws-sdk/middleware-host-header": "3.873.0",
- "@aws-sdk/middleware-logger": "3.876.0",
- "@aws-sdk/middleware-recursion-detection": "3.873.0",
- "@aws-sdk/middleware-user-agent": "3.882.0",
- "@aws-sdk/region-config-resolver": "3.873.0",
- "@aws-sdk/types": "3.862.0",
- "@aws-sdk/util-endpoints": "3.879.0",
- "@aws-sdk/util-user-agent-browser": "3.873.0",
- "@aws-sdk/util-user-agent-node": "3.882.0",
- "@smithy/config-resolver": "^4.1.5",
- "@smithy/core": "^3.9.2",
- "@smithy/eventstream-serde-browser": "^4.0.5",
- "@smithy/eventstream-serde-config-resolver": "^4.1.3",
- "@smithy/eventstream-serde-node": "^4.0.5",
- "@smithy/fetch-http-handler": "^5.1.1",
- "@smithy/hash-node": "^4.0.5",
- "@smithy/invalid-dependency": "^4.0.5",
- "@smithy/middleware-content-length": "^4.0.5",
- "@smithy/middleware-endpoint": "^4.1.21",
- "@smithy/middleware-retry": "^4.1.22",
- "@smithy/middleware-serde": "^4.0.9",
- "@smithy/middleware-stack": "^4.0.5",
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/node-http-handler": "^4.1.1",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/smithy-client": "^4.5.2",
- "@smithy/types": "^4.3.2",
- "@smithy/url-parser": "^4.0.5",
- "@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.29",
- "@smithy/util-defaults-mode-node": "^4.0.29",
- "@smithy/util-endpoints": "^3.0.7",
- "@smithy/util-middleware": "^4.0.5",
- "@smithy/util-retry": "^4.0.7",
- "@smithy/util-utf8": "^4.0.0",
- "@types/uuid": "^9.0.1",
- "tslib": "^2.6.2",
- "uuid": "^9.0.1"
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/credential-provider-node": "3.901.0",
+ "@aws-sdk/middleware-host-header": "3.901.0",
+ "@aws-sdk/middleware-logger": "3.901.0",
+ "@aws-sdk/middleware-recursion-detection": "3.901.0",
+ "@aws-sdk/middleware-user-agent": "3.901.0",
+ "@aws-sdk/region-config-resolver": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@aws-sdk/util-endpoints": "3.901.0",
+ "@aws-sdk/util-user-agent-browser": "3.901.0",
+ "@aws-sdk/util-user-agent-node": "3.901.0",
+ "@smithy/config-resolver": "^4.3.0",
+ "@smithy/core": "^3.14.0",
+ "@smithy/eventstream-serde-browser": "^4.2.0",
+ "@smithy/eventstream-serde-config-resolver": "^4.3.0",
+ "@smithy/eventstream-serde-node": "^4.2.0",
+ "@smithy/fetch-http-handler": "^5.3.0",
+ "@smithy/hash-node": "^4.2.0",
+ "@smithy/invalid-dependency": "^4.2.0",
+ "@smithy/middleware-content-length": "^4.2.0",
+ "@smithy/middleware-endpoint": "^4.3.0",
+ "@smithy/middleware-retry": "^4.4.0",
+ "@smithy/middleware-serde": "^4.2.0",
+ "@smithy/middleware-stack": "^4.2.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/node-http-handler": "^4.3.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/url-parser": "^4.2.0",
+ "@smithy/util-base64": "^4.2.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-body-length-node": "^4.2.0",
+ "@smithy/util-defaults-mode-browser": "^4.2.0",
+ "@smithy/util-defaults-mode-node": "^4.2.0",
+ "@smithy/util-endpoints": "^3.2.0",
+ "@smithy/util-middleware": "^4.2.0",
+ "@smithy/util-retry": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
+ "@smithy/uuid": "^1.1.0",
+ "tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
- "node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
"node_modules/@aws-sdk/client-elasticache": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-elasticache/-/client-elasticache-3.882.0.tgz",
- "integrity": "sha512-QSSzYHzTKu8Mmd+UpEZ1lt/KqLGEhldTAdrKFcn1f1SaNwRi5G7e4NTze3JQ2vJgDfg+W8SX26Q5h/ZMDzXOTA==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-elasticache/-/client-elasticache-3.901.0.tgz",
+ "integrity": "sha512-l6nZ6sF9IYttojAiCiCUrCnScSpXfaxWX12of/PkJIF5uiwu0fGESkHDU4ZVfBxbUeYNp/FnQPdHfMJH2RD9qA==",
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/sha256-browser": "5.2.0",
"@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/credential-provider-node": "3.882.0",
- "@aws-sdk/middleware-host-header": "3.873.0",
- "@aws-sdk/middleware-logger": "3.876.0",
- "@aws-sdk/middleware-recursion-detection": "3.873.0",
- "@aws-sdk/middleware-user-agent": "3.882.0",
- "@aws-sdk/region-config-resolver": "3.873.0",
- "@aws-sdk/types": "3.862.0",
- "@aws-sdk/util-endpoints": "3.879.0",
- "@aws-sdk/util-user-agent-browser": "3.873.0",
- "@aws-sdk/util-user-agent-node": "3.882.0",
- "@smithy/config-resolver": "^4.1.5",
- "@smithy/core": "^3.9.2",
- "@smithy/fetch-http-handler": "^5.1.1",
- "@smithy/hash-node": "^4.0.5",
- "@smithy/invalid-dependency": "^4.0.5",
- "@smithy/middleware-content-length": "^4.0.5",
- "@smithy/middleware-endpoint": "^4.1.21",
- "@smithy/middleware-retry": "^4.1.22",
- "@smithy/middleware-serde": "^4.0.9",
- "@smithy/middleware-stack": "^4.0.5",
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/node-http-handler": "^4.1.1",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/smithy-client": "^4.5.2",
- "@smithy/types": "^4.3.2",
- "@smithy/url-parser": "^4.0.5",
- "@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.29",
- "@smithy/util-defaults-mode-node": "^4.0.29",
- "@smithy/util-endpoints": "^3.0.7",
- "@smithy/util-middleware": "^4.0.5",
- "@smithy/util-retry": "^4.0.7",
- "@smithy/util-utf8": "^4.0.0",
- "@smithy/util-waiter": "^4.0.7",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/credential-provider-node": "3.901.0",
+ "@aws-sdk/middleware-host-header": "3.901.0",
+ "@aws-sdk/middleware-logger": "3.901.0",
+ "@aws-sdk/middleware-recursion-detection": "3.901.0",
+ "@aws-sdk/middleware-user-agent": "3.901.0",
+ "@aws-sdk/region-config-resolver": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@aws-sdk/util-endpoints": "3.901.0",
+ "@aws-sdk/util-user-agent-browser": "3.901.0",
+ "@aws-sdk/util-user-agent-node": "3.901.0",
+ "@smithy/config-resolver": "^4.3.0",
+ "@smithy/core": "^3.14.0",
+ "@smithy/fetch-http-handler": "^5.3.0",
+ "@smithy/hash-node": "^4.2.0",
+ "@smithy/invalid-dependency": "^4.2.0",
+ "@smithy/middleware-content-length": "^4.2.0",
+ "@smithy/middleware-endpoint": "^4.3.0",
+ "@smithy/middleware-retry": "^4.4.0",
+ "@smithy/middleware-serde": "^4.2.0",
+ "@smithy/middleware-stack": "^4.2.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/node-http-handler": "^4.3.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/url-parser": "^4.2.0",
+ "@smithy/util-base64": "^4.2.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-body-length-node": "^4.2.0",
+ "@smithy/util-defaults-mode-browser": "^4.2.0",
+ "@smithy/util-defaults-mode-node": "^4.2.0",
+ "@smithy/util-endpoints": "^3.2.0",
+ "@smithy/util-middleware": "^4.2.0",
+ "@smithy/util-retry": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
+ "@smithy/util-waiter": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -404,197 +390,169 @@
}
},
"node_modules/@aws-sdk/client-s3": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.882.0.tgz",
- "integrity": "sha512-0IrBUOrBepQeuH025t+b4KqgBRQT+B//JlTU3+629WUGWwsWVfFkCTkn4xK/oQP9/K6npZtfDTuO6XfXSLimmg==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.901.0.tgz",
+ "integrity": "sha512-wyKhZ51ur1tFuguZ6PgrUsot9KopqD0Tmxw8O8P/N3suQDxFPr0Yo7Y77ezDRDZQ95Ml3C0jlvx79HCo8VxdWA==",
"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.882.0",
- "@aws-sdk/credential-provider-node": "3.882.0",
- "@aws-sdk/middleware-bucket-endpoint": "3.873.0",
- "@aws-sdk/middleware-expect-continue": "3.873.0",
- "@aws-sdk/middleware-flexible-checksums": "3.882.0",
- "@aws-sdk/middleware-host-header": "3.873.0",
- "@aws-sdk/middleware-location-constraint": "3.873.0",
- "@aws-sdk/middleware-logger": "3.876.0",
- "@aws-sdk/middleware-recursion-detection": "3.873.0",
- "@aws-sdk/middleware-sdk-s3": "3.882.0",
- "@aws-sdk/middleware-ssec": "3.873.0",
- "@aws-sdk/middleware-user-agent": "3.882.0",
- "@aws-sdk/region-config-resolver": "3.873.0",
- "@aws-sdk/signature-v4-multi-region": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@aws-sdk/util-endpoints": "3.879.0",
- "@aws-sdk/util-user-agent-browser": "3.873.0",
- "@aws-sdk/util-user-agent-node": "3.882.0",
- "@aws-sdk/xml-builder": "3.873.0",
- "@smithy/config-resolver": "^4.1.5",
- "@smithy/core": "^3.9.2",
- "@smithy/eventstream-serde-browser": "^4.0.5",
- "@smithy/eventstream-serde-config-resolver": "^4.1.3",
- "@smithy/eventstream-serde-node": "^4.0.5",
- "@smithy/fetch-http-handler": "^5.1.1",
- "@smithy/hash-blob-browser": "^4.0.5",
- "@smithy/hash-node": "^4.0.5",
- "@smithy/hash-stream-node": "^4.0.5",
- "@smithy/invalid-dependency": "^4.0.5",
- "@smithy/md5-js": "^4.0.5",
- "@smithy/middleware-content-length": "^4.0.5",
- "@smithy/middleware-endpoint": "^4.1.21",
- "@smithy/middleware-retry": "^4.1.22",
- "@smithy/middleware-serde": "^4.0.9",
- "@smithy/middleware-stack": "^4.0.5",
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/node-http-handler": "^4.1.1",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/smithy-client": "^4.5.2",
- "@smithy/types": "^4.3.2",
- "@smithy/url-parser": "^4.0.5",
- "@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.29",
- "@smithy/util-defaults-mode-node": "^4.0.29",
- "@smithy/util-endpoints": "^3.0.7",
- "@smithy/util-middleware": "^4.0.5",
- "@smithy/util-retry": "^4.0.7",
- "@smithy/util-stream": "^4.2.4",
- "@smithy/util-utf8": "^4.0.0",
- "@smithy/util-waiter": "^4.0.7",
- "@types/uuid": "^9.0.1",
- "tslib": "^2.6.2",
- "uuid": "^9.0.1"
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/credential-provider-node": "3.901.0",
+ "@aws-sdk/middleware-bucket-endpoint": "3.901.0",
+ "@aws-sdk/middleware-expect-continue": "3.901.0",
+ "@aws-sdk/middleware-flexible-checksums": "3.901.0",
+ "@aws-sdk/middleware-host-header": "3.901.0",
+ "@aws-sdk/middleware-location-constraint": "3.901.0",
+ "@aws-sdk/middleware-logger": "3.901.0",
+ "@aws-sdk/middleware-recursion-detection": "3.901.0",
+ "@aws-sdk/middleware-sdk-s3": "3.901.0",
+ "@aws-sdk/middleware-ssec": "3.901.0",
+ "@aws-sdk/middleware-user-agent": "3.901.0",
+ "@aws-sdk/region-config-resolver": "3.901.0",
+ "@aws-sdk/signature-v4-multi-region": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@aws-sdk/util-endpoints": "3.901.0",
+ "@aws-sdk/util-user-agent-browser": "3.901.0",
+ "@aws-sdk/util-user-agent-node": "3.901.0",
+ "@aws-sdk/xml-builder": "3.901.0",
+ "@smithy/config-resolver": "^4.3.0",
+ "@smithy/core": "^3.14.0",
+ "@smithy/eventstream-serde-browser": "^4.2.0",
+ "@smithy/eventstream-serde-config-resolver": "^4.3.0",
+ "@smithy/eventstream-serde-node": "^4.2.0",
+ "@smithy/fetch-http-handler": "^5.3.0",
+ "@smithy/hash-blob-browser": "^4.2.0",
+ "@smithy/hash-node": "^4.2.0",
+ "@smithy/hash-stream-node": "^4.2.0",
+ "@smithy/invalid-dependency": "^4.2.0",
+ "@smithy/md5-js": "^4.2.0",
+ "@smithy/middleware-content-length": "^4.2.0",
+ "@smithy/middleware-endpoint": "^4.3.0",
+ "@smithy/middleware-retry": "^4.4.0",
+ "@smithy/middleware-serde": "^4.2.0",
+ "@smithy/middleware-stack": "^4.2.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/node-http-handler": "^4.3.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/url-parser": "^4.2.0",
+ "@smithy/util-base64": "^4.2.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-body-length-node": "^4.2.0",
+ "@smithy/util-defaults-mode-browser": "^4.2.0",
+ "@smithy/util-defaults-mode-node": "^4.2.0",
+ "@smithy/util-endpoints": "^3.2.0",
+ "@smithy/util-middleware": "^4.2.0",
+ "@smithy/util-retry": "^4.2.0",
+ "@smithy/util-stream": "^4.4.0",
+ "@smithy/util-utf8": "^4.2.0",
+ "@smithy/util-waiter": "^4.2.0",
+ "@smithy/uuid": "^1.1.0",
+ "tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
- "node_modules/@aws-sdk/client-s3/node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
"node_modules/@aws-sdk/client-secrets-manager": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.882.0.tgz",
- "integrity": "sha512-g7mG6DfajZf0c9PZoTFj23Ny/gxFdNxU7E9mh4ABv3PSllGqCURPXHJWi0GtD3hXp+rLole6Y46u/jclIut/Bw==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.901.0.tgz",
+ "integrity": "sha512-k5HEJfPiwgGVAjDGRPbysD3K2W0iMKQUv3zKTqHLFxog6X7JBrKGNgQwwtdz3vE5z9SFjGov7cFS1T1QuLVKQg==",
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/sha256-browser": "5.2.0",
"@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/credential-provider-node": "3.882.0",
- "@aws-sdk/middleware-host-header": "3.873.0",
- "@aws-sdk/middleware-logger": "3.876.0",
- "@aws-sdk/middleware-recursion-detection": "3.873.0",
- "@aws-sdk/middleware-user-agent": "3.882.0",
- "@aws-sdk/region-config-resolver": "3.873.0",
- "@aws-sdk/types": "3.862.0",
- "@aws-sdk/util-endpoints": "3.879.0",
- "@aws-sdk/util-user-agent-browser": "3.873.0",
- "@aws-sdk/util-user-agent-node": "3.882.0",
- "@smithy/config-resolver": "^4.1.5",
- "@smithy/core": "^3.9.2",
- "@smithy/fetch-http-handler": "^5.1.1",
- "@smithy/hash-node": "^4.0.5",
- "@smithy/invalid-dependency": "^4.0.5",
- "@smithy/middleware-content-length": "^4.0.5",
- "@smithy/middleware-endpoint": "^4.1.21",
- "@smithy/middleware-retry": "^4.1.22",
- "@smithy/middleware-serde": "^4.0.9",
- "@smithy/middleware-stack": "^4.0.5",
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/node-http-handler": "^4.1.1",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/smithy-client": "^4.5.2",
- "@smithy/types": "^4.3.2",
- "@smithy/url-parser": "^4.0.5",
- "@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.29",
- "@smithy/util-defaults-mode-node": "^4.0.29",
- "@smithy/util-endpoints": "^3.0.7",
- "@smithy/util-middleware": "^4.0.5",
- "@smithy/util-retry": "^4.0.7",
- "@smithy/util-utf8": "^4.0.0",
- "@types/uuid": "^9.0.1",
- "tslib": "^2.6.2",
- "uuid": "^9.0.1"
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/credential-provider-node": "3.901.0",
+ "@aws-sdk/middleware-host-header": "3.901.0",
+ "@aws-sdk/middleware-logger": "3.901.0",
+ "@aws-sdk/middleware-recursion-detection": "3.901.0",
+ "@aws-sdk/middleware-user-agent": "3.901.0",
+ "@aws-sdk/region-config-resolver": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@aws-sdk/util-endpoints": "3.901.0",
+ "@aws-sdk/util-user-agent-browser": "3.901.0",
+ "@aws-sdk/util-user-agent-node": "3.901.0",
+ "@smithy/config-resolver": "^4.3.0",
+ "@smithy/core": "^3.14.0",
+ "@smithy/fetch-http-handler": "^5.3.0",
+ "@smithy/hash-node": "^4.2.0",
+ "@smithy/invalid-dependency": "^4.2.0",
+ "@smithy/middleware-content-length": "^4.2.0",
+ "@smithy/middleware-endpoint": "^4.3.0",
+ "@smithy/middleware-retry": "^4.4.0",
+ "@smithy/middleware-serde": "^4.2.0",
+ "@smithy/middleware-stack": "^4.2.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/node-http-handler": "^4.3.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/url-parser": "^4.2.0",
+ "@smithy/util-base64": "^4.2.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-body-length-node": "^4.2.0",
+ "@smithy/util-defaults-mode-browser": "^4.2.0",
+ "@smithy/util-defaults-mode-node": "^4.2.0",
+ "@smithy/util-endpoints": "^3.2.0",
+ "@smithy/util-middleware": "^4.2.0",
+ "@smithy/util-retry": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
+ "@smithy/uuid": "^1.1.0",
+ "tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
- "node_modules/@aws-sdk/client-secrets-manager/node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
"node_modules/@aws-sdk/client-ses": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-ses/-/client-ses-3.882.0.tgz",
- "integrity": "sha512-Ao+AKBOg9kX1EhTefcKTawfg71NMEWkL9EB0gZlfjoLbDCWNNW5SDbSXh9wvCJ9+P2S7ubLbn/9Qe+wugBFQ1A==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-ses/-/client-ses-3.901.0.tgz",
+ "integrity": "sha512-CJfIsqloxgFvTb3arx/ZGVfxWo6zA8VzNQoMowd1G8ab6PjsqFSWufRGbQcvfwuKoUhHvtPAZw1zrqp7LJwAww==",
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/sha256-browser": "5.2.0",
"@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/credential-provider-node": "3.882.0",
- "@aws-sdk/middleware-host-header": "3.873.0",
- "@aws-sdk/middleware-logger": "3.876.0",
- "@aws-sdk/middleware-recursion-detection": "3.873.0",
- "@aws-sdk/middleware-user-agent": "3.882.0",
- "@aws-sdk/region-config-resolver": "3.873.0",
- "@aws-sdk/types": "3.862.0",
- "@aws-sdk/util-endpoints": "3.879.0",
- "@aws-sdk/util-user-agent-browser": "3.873.0",
- "@aws-sdk/util-user-agent-node": "3.882.0",
- "@smithy/config-resolver": "^4.1.5",
- "@smithy/core": "^3.9.2",
- "@smithy/fetch-http-handler": "^5.1.1",
- "@smithy/hash-node": "^4.0.5",
- "@smithy/invalid-dependency": "^4.0.5",
- "@smithy/middleware-content-length": "^4.0.5",
- "@smithy/middleware-endpoint": "^4.1.21",
- "@smithy/middleware-retry": "^4.1.22",
- "@smithy/middleware-serde": "^4.0.9",
- "@smithy/middleware-stack": "^4.0.5",
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/node-http-handler": "^4.1.1",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/smithy-client": "^4.5.2",
- "@smithy/types": "^4.3.2",
- "@smithy/url-parser": "^4.0.5",
- "@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.29",
- "@smithy/util-defaults-mode-node": "^4.0.29",
- "@smithy/util-endpoints": "^3.0.7",
- "@smithy/util-middleware": "^4.0.5",
- "@smithy/util-retry": "^4.0.7",
- "@smithy/util-utf8": "^4.0.0",
- "@smithy/util-waiter": "^4.0.7",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/credential-provider-node": "3.901.0",
+ "@aws-sdk/middleware-host-header": "3.901.0",
+ "@aws-sdk/middleware-logger": "3.901.0",
+ "@aws-sdk/middleware-recursion-detection": "3.901.0",
+ "@aws-sdk/middleware-user-agent": "3.901.0",
+ "@aws-sdk/region-config-resolver": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@aws-sdk/util-endpoints": "3.901.0",
+ "@aws-sdk/util-user-agent-browser": "3.901.0",
+ "@aws-sdk/util-user-agent-node": "3.901.0",
+ "@smithy/config-resolver": "^4.3.0",
+ "@smithy/core": "^3.14.0",
+ "@smithy/fetch-http-handler": "^5.3.0",
+ "@smithy/hash-node": "^4.2.0",
+ "@smithy/invalid-dependency": "^4.2.0",
+ "@smithy/middleware-content-length": "^4.2.0",
+ "@smithy/middleware-endpoint": "^4.3.0",
+ "@smithy/middleware-retry": "^4.4.0",
+ "@smithy/middleware-serde": "^4.2.0",
+ "@smithy/middleware-stack": "^4.2.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/node-http-handler": "^4.3.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/url-parser": "^4.2.0",
+ "@smithy/util-base64": "^4.2.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-body-length-node": "^4.2.0",
+ "@smithy/util-defaults-mode-browser": "^4.2.0",
+ "@smithy/util-defaults-mode-node": "^4.2.0",
+ "@smithy/util-endpoints": "^3.2.0",
+ "@smithy/util-middleware": "^4.2.0",
+ "@smithy/util-retry": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
+ "@smithy/util-waiter": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -602,48 +560,48 @@
}
},
"node_modules/@aws-sdk/client-sso": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.882.0.tgz",
- "integrity": "sha512-JFWJB+2PZvygDuqb4iWKCro1Tl5L4tGBXMHe94jYMYnfajYGm58bW3RsPj3cKD2+TvIMUSXmNriNv+LbDKZmNw==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.901.0.tgz",
+ "integrity": "sha512-sGyDjjkJ7ppaE+bAKL/Q5IvVCxtoyBIzN+7+hWTS/mUxWJ9EOq9238IqmVIIK6sYNIzEf9yhobfMARasPYVTNg==",
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/sha256-browser": "5.2.0",
"@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/middleware-host-header": "3.873.0",
- "@aws-sdk/middleware-logger": "3.876.0",
- "@aws-sdk/middleware-recursion-detection": "3.873.0",
- "@aws-sdk/middleware-user-agent": "3.882.0",
- "@aws-sdk/region-config-resolver": "3.873.0",
- "@aws-sdk/types": "3.862.0",
- "@aws-sdk/util-endpoints": "3.879.0",
- "@aws-sdk/util-user-agent-browser": "3.873.0",
- "@aws-sdk/util-user-agent-node": "3.882.0",
- "@smithy/config-resolver": "^4.1.5",
- "@smithy/core": "^3.9.2",
- "@smithy/fetch-http-handler": "^5.1.1",
- "@smithy/hash-node": "^4.0.5",
- "@smithy/invalid-dependency": "^4.0.5",
- "@smithy/middleware-content-length": "^4.0.5",
- "@smithy/middleware-endpoint": "^4.1.21",
- "@smithy/middleware-retry": "^4.1.22",
- "@smithy/middleware-serde": "^4.0.9",
- "@smithy/middleware-stack": "^4.0.5",
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/node-http-handler": "^4.1.1",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/smithy-client": "^4.5.2",
- "@smithy/types": "^4.3.2",
- "@smithy/url-parser": "^4.0.5",
- "@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.29",
- "@smithy/util-defaults-mode-node": "^4.0.29",
- "@smithy/util-endpoints": "^3.0.7",
- "@smithy/util-middleware": "^4.0.5",
- "@smithy/util-retry": "^4.0.7",
- "@smithy/util-utf8": "^4.0.0",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/middleware-host-header": "3.901.0",
+ "@aws-sdk/middleware-logger": "3.901.0",
+ "@aws-sdk/middleware-recursion-detection": "3.901.0",
+ "@aws-sdk/middleware-user-agent": "3.901.0",
+ "@aws-sdk/region-config-resolver": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@aws-sdk/util-endpoints": "3.901.0",
+ "@aws-sdk/util-user-agent-browser": "3.901.0",
+ "@aws-sdk/util-user-agent-node": "3.901.0",
+ "@smithy/config-resolver": "^4.3.0",
+ "@smithy/core": "^3.14.0",
+ "@smithy/fetch-http-handler": "^5.3.0",
+ "@smithy/hash-node": "^4.2.0",
+ "@smithy/invalid-dependency": "^4.2.0",
+ "@smithy/middleware-content-length": "^4.2.0",
+ "@smithy/middleware-endpoint": "^4.3.0",
+ "@smithy/middleware-retry": "^4.4.0",
+ "@smithy/middleware-serde": "^4.2.0",
+ "@smithy/middleware-stack": "^4.2.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/node-http-handler": "^4.3.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/url-parser": "^4.2.0",
+ "@smithy/util-base64": "^4.2.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-body-length-node": "^4.2.0",
+ "@smithy/util-defaults-mode-browser": "^4.2.0",
+ "@smithy/util-defaults-mode-node": "^4.2.0",
+ "@smithy/util-endpoints": "^3.2.0",
+ "@smithy/util-middleware": "^4.2.0",
+ "@smithy/util-retry": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -651,71 +609,39 @@
}
},
"node_modules/@aws-sdk/core": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.882.0.tgz",
- "integrity": "sha512-m43/gEDbxqxLT/Mbn/OA21TuFpyocOUzjiSA2HBnLQ3KivA4ez0nsW91vh0Sp3TOfLgiZbRbVhmI6XfsFinwBg==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.901.0.tgz",
+ "integrity": "sha512-brKAc3y64tdhyuEf+OPIUln86bRTqkLgb9xkd6kUdIeA5+qmp/N6amItQz+RN4k4O3kqkCPYnAd3LonTKluobw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.862.0",
- "@aws-sdk/xml-builder": "3.873.0",
- "@smithy/core": "^3.9.2",
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/property-provider": "^4.0.5",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/signature-v4": "^5.1.3",
- "@smithy/smithy-client": "^4.5.2",
- "@smithy/types": "^4.3.2",
- "@smithy/util-base64": "^4.0.0",
- "@smithy/util-body-length-browser": "^4.0.0",
- "@smithy/util-middleware": "^4.0.5",
- "@smithy/util-utf8": "^4.0.0",
- "fast-xml-parser": "5.2.5",
+ "@aws-sdk/types": "3.901.0",
+ "@aws-sdk/xml-builder": "3.901.0",
+ "@smithy/core": "^3.14.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/property-provider": "^4.2.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/signature-v4": "^5.3.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-base64": "^4.2.0",
+ "@smithy/util-middleware": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
- "node_modules/@aws-sdk/core/node_modules/fast-xml-parser": {
- "version": "5.2.5",
- "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.2.5.tgz",
- "integrity": "sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/NaturalIntelligence"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "strnum": "^2.1.0"
- },
- "bin": {
- "fxparser": "src/cli/cli.js"
- }
- },
- "node_modules/@aws-sdk/core/node_modules/strnum": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.1.1.tgz",
- "integrity": "sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/NaturalIntelligence"
- }
- ],
- "license": "MIT"
- },
"node_modules/@aws-sdk/credential-provider-env": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.882.0.tgz",
- "integrity": "sha512-khhE1k+4XvGm8Mk6vVUbrVvEnx3r8E6dymSKSiAKf0lwsnKWAWd1RLGwLusqVgtGR4Jfsrbg7ox9MczIjgCiTg==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.901.0.tgz",
+ "integrity": "sha512-5hAdVl3tBuARh3zX5MLJ1P/d+Kr5kXtDU3xm1pxUEF4xt2XkEEpwiX5fbkNkz2rbh3BCt2gOHsAbh6b3M7n+DA==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@smithy/property-provider": "^4.0.5",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/property-provider": "^4.2.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -723,20 +649,20 @@
}
},
"node_modules/@aws-sdk/credential-provider-http": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.882.0.tgz",
- "integrity": "sha512-j3mBF+Q6RU3u8t5O1KOWbQQCi0WNSl47sNIa1RvyN6qK1WIA8BxM1hB25mI9TMPrNZMFthljVec+JcNjRNG34A==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.901.0.tgz",
+ "integrity": "sha512-Ggr7+0M6QZEsrqRkK7iyJLf4LkIAacAxHz9c4dm9hnDdU7vqrlJm6g73IxMJXWN1bIV7IxfpzB11DsRrB/oNjQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@smithy/fetch-http-handler": "^5.1.1",
- "@smithy/node-http-handler": "^4.1.1",
- "@smithy/property-provider": "^4.0.5",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/smithy-client": "^4.5.2",
- "@smithy/types": "^4.3.2",
- "@smithy/util-stream": "^4.2.4",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/fetch-http-handler": "^5.3.0",
+ "@smithy/node-http-handler": "^4.3.0",
+ "@smithy/property-provider": "^4.2.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-stream": "^4.4.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -744,23 +670,23 @@
}
},
"node_modules/@aws-sdk/credential-provider-ini": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.882.0.tgz",
- "integrity": "sha512-nUacsSYKyTUmv/Fqe0efihCRCabea5MZtGSZF0l2V8QBo39yJjw0wVmRK6G4bfm5lY7v2EVVIUCpiTvxRRUbHg==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.901.0.tgz",
+ "integrity": "sha512-zxadcDS0hNJgv8n4hFYJNOXyfjaNE1vvqIiF/JzZSQpSSYXzCd+WxXef5bQh+W3giDtRUmkvP5JLbamEFjZKyw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/credential-provider-env": "3.882.0",
- "@aws-sdk/credential-provider-http": "3.882.0",
- "@aws-sdk/credential-provider-process": "3.882.0",
- "@aws-sdk/credential-provider-sso": "3.882.0",
- "@aws-sdk/credential-provider-web-identity": "3.882.0",
- "@aws-sdk/nested-clients": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@smithy/credential-provider-imds": "^4.0.7",
- "@smithy/property-provider": "^4.0.5",
- "@smithy/shared-ini-file-loader": "^4.0.5",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/credential-provider-env": "3.901.0",
+ "@aws-sdk/credential-provider-http": "3.901.0",
+ "@aws-sdk/credential-provider-process": "3.901.0",
+ "@aws-sdk/credential-provider-sso": "3.901.0",
+ "@aws-sdk/credential-provider-web-identity": "3.901.0",
+ "@aws-sdk/nested-clients": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/credential-provider-imds": "^4.2.0",
+ "@smithy/property-provider": "^4.2.0",
+ "@smithy/shared-ini-file-loader": "^4.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -768,22 +694,22 @@
}
},
"node_modules/@aws-sdk/credential-provider-node": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.882.0.tgz",
- "integrity": "sha512-sELdV+leCfY+Bw8NQo3H65oIT+9thqZU0RWyv85EfZVvKEwWDt4McA7+Co1VkH+nCY21s5jz4SOqIrYuT0cSQg==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.901.0.tgz",
+ "integrity": "sha512-dPuFzMF7L1s/lQyT3wDxqLe82PyTH+5o1jdfseTEln64LJMl0ZMWaKX/C1UFNDxaTd35Cgt1bDbjjAWHMiKSFQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/credential-provider-env": "3.882.0",
- "@aws-sdk/credential-provider-http": "3.882.0",
- "@aws-sdk/credential-provider-ini": "3.882.0",
- "@aws-sdk/credential-provider-process": "3.882.0",
- "@aws-sdk/credential-provider-sso": "3.882.0",
- "@aws-sdk/credential-provider-web-identity": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@smithy/credential-provider-imds": "^4.0.7",
- "@smithy/property-provider": "^4.0.5",
- "@smithy/shared-ini-file-loader": "^4.0.5",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/credential-provider-env": "3.901.0",
+ "@aws-sdk/credential-provider-http": "3.901.0",
+ "@aws-sdk/credential-provider-ini": "3.901.0",
+ "@aws-sdk/credential-provider-process": "3.901.0",
+ "@aws-sdk/credential-provider-sso": "3.901.0",
+ "@aws-sdk/credential-provider-web-identity": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/credential-provider-imds": "^4.2.0",
+ "@smithy/property-provider": "^4.2.0",
+ "@smithy/shared-ini-file-loader": "^4.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -791,16 +717,16 @@
}
},
"node_modules/@aws-sdk/credential-provider-process": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.882.0.tgz",
- "integrity": "sha512-S3BgGcaR+L7CQAQn3Ysy9KSnck7+hDicAGM/dYvvJ8GwZNIOc0542Y+ntpV1UYa7OuZPWzGy2v2NcJSCbYDXEA==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.901.0.tgz",
+ "integrity": "sha512-/IWgmgM3Cl1wTdJA5HqKMAojxLkYchh5kDuphApxKhupLu6Pu0JBOHU8A5GGeFvOycyaVwosod6zDduINZxe+A==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@smithy/property-provider": "^4.0.5",
- "@smithy/shared-ini-file-loader": "^4.0.5",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/property-provider": "^4.2.0",
+ "@smithy/shared-ini-file-loader": "^4.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -808,18 +734,18 @@
}
},
"node_modules/@aws-sdk/credential-provider-sso": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.882.0.tgz",
- "integrity": "sha512-1pZRTKiDl6Oh/jP75lEoSkJrer1YEm8lMconB8dX9bsaWbp9cZeMJMK6pts5VQcveeOLr/8/U9TESboPjHBcyA==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.901.0.tgz",
+ "integrity": "sha512-SjmqZQHmqFSET7+6xcZgtH7yEyh5q53LN87GqwYlJZ6KJ5oNw11acUNEhUOL1xTSJEvaWqwTIkS2zqrzLcM9bw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/client-sso": "3.882.0",
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/token-providers": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@smithy/property-provider": "^4.0.5",
- "@smithy/shared-ini-file-loader": "^4.0.5",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/client-sso": "3.901.0",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/token-providers": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/property-provider": "^4.2.0",
+ "@smithy/shared-ini-file-loader": "^4.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -827,16 +753,17 @@
}
},
"node_modules/@aws-sdk/credential-provider-web-identity": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.882.0.tgz",
- "integrity": "sha512-EvpsD0Vcz5WgXjpC53KAQ2CkeUp0KwwiV6brgQTXl+9yV/M8M0aK5Qk5ep/MPbAn5gtbqXHaCkiExaN4YYOhCg==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.901.0.tgz",
+ "integrity": "sha512-NYjy/6NLxH9m01+pfpB4ql8QgAorJcu8tw69kzHwUd/ql6wUDTbC7HcXqtKlIwWjzjgj2BKL7j6SyFapgCuafA==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/nested-clients": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@smithy/property-provider": "^4.0.5",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/nested-clients": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/property-provider": "^4.2.0",
+ "@smithy/shared-ini-file-loader": "^4.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -844,14 +771,14 @@
}
},
"node_modules/@aws-sdk/lib-storage": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.882.0.tgz",
- "integrity": "sha512-kI4JbjZMxcnyoFf6vWSKkF3tJMMe3Lx1xNkBSoh7JmOUVYnz0Teh5LQOCI/9XEgJFhFXIW7hliGyOfsdVvVHxw==",
+ "version": "3.903.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.903.0.tgz",
+ "integrity": "sha512-/CFhz/QtPSI9CVAdlW6JrfMyPjnE38a8pzTi8CMCWXu51c1NqzcGXo80LZUwzWkcWk5ZqPWRYzrw43TQ8ia78w==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/abort-controller": "^4.0.5",
- "@smithy/middleware-endpoint": "^4.1.21",
- "@smithy/smithy-client": "^4.5.2",
+ "@smithy/abort-controller": "^4.2.0",
+ "@smithy/middleware-endpoint": "^4.3.0",
+ "@smithy/smithy-client": "^4.7.0",
"buffer": "5.6.0",
"events": "3.3.0",
"stream-browserify": "3.0.0",
@@ -861,21 +788,21 @@
"node": ">=18.0.0"
},
"peerDependencies": {
- "@aws-sdk/client-s3": "^3.882.0"
+ "@aws-sdk/client-s3": "^3.901.0"
}
},
"node_modules/@aws-sdk/middleware-bucket-endpoint": {
- "version": "3.873.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.873.0.tgz",
- "integrity": "sha512-b4bvr0QdADeTUs+lPc9Z48kXzbKHXQKgTvxx/jXDgSW9tv4KmYPO1gIj6Z9dcrBkRWQuUtSW3Tu2S5n6pe+zeg==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.901.0.tgz",
+ "integrity": "sha512-mPF3N6eZlVs9G8aBSzvtoxR1RZqMo1aIwR+X8BAZSkhfj55fVF2no4IfPXfdFO3I66N+zEQ8nKoB0uTATWrogQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.862.0",
- "@aws-sdk/util-arn-parser": "3.873.0",
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/types": "^4.3.2",
- "@smithy/util-config-provider": "^4.0.0",
+ "@aws-sdk/types": "3.901.0",
+ "@aws-sdk/util-arn-parser": "3.893.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-config-provider": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -883,14 +810,14 @@
}
},
"node_modules/@aws-sdk/middleware-expect-continue": {
- "version": "3.873.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.873.0.tgz",
- "integrity": "sha512-GIqoc8WgRcf/opBOZXFLmplJQKwOMjiOMmDz9gQkaJ8FiVJoAp8EGVmK2TOWZMQUYsavvHYsHaor5R2xwPoGVg==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.901.0.tgz",
+ "integrity": "sha512-bwq9nj6MH38hlJwOY9QXIDwa6lI48UsaZpaXbdD71BljEIRlxDzfB4JaYb+ZNNK7RIAdzsP/K05mJty6KJAQHw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.862.0",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -898,23 +825,23 @@
}
},
"node_modules/@aws-sdk/middleware-flexible-checksums": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.882.0.tgz",
- "integrity": "sha512-VZSeGckiRNEUYNYni8JFGB+uFqPq6L+IWPXTOMh6RtpDpamDSqZLgDEfXqopc+Awxpz1sQbdxSHMm2HZlqVW2g==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.901.0.tgz",
+ "integrity": "sha512-63lcKfggVUFyXhE4SsFXShCTCyh7ZHEqXLyYEL4DwX+VWtxutf9t9m3fF0TNUYDE8eEGWiRXhegj8l4FjuW+wA==",
"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.882.0",
- "@aws-sdk/types": "3.862.0",
- "@smithy/is-array-buffer": "^4.0.0",
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/types": "^4.3.2",
- "@smithy/util-middleware": "^4.0.5",
- "@smithy/util-stream": "^4.2.4",
- "@smithy/util-utf8": "^4.0.0",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/is-array-buffer": "^4.2.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-middleware": "^4.2.0",
+ "@smithy/util-stream": "^4.4.0",
+ "@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -922,14 +849,14 @@
}
},
"node_modules/@aws-sdk/middleware-host-header": {
- "version": "3.873.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.873.0.tgz",
- "integrity": "sha512-KZ/W1uruWtMOs7D5j3KquOxzCnV79KQW9MjJFZM/M0l6KI8J6V3718MXxFHsTjUE4fpdV6SeCNLV1lwGygsjJA==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.901.0.tgz",
+ "integrity": "sha512-yWX7GvRmqBtbNnUW7qbre3GvZmyYwU0WHefpZzDTYDoNgatuYq6LgUIQ+z5C04/kCRoFkAFrHag8a3BXqFzq5A==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.862.0",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -937,13 +864,13 @@
}
},
"node_modules/@aws-sdk/middleware-location-constraint": {
- "version": "3.873.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.873.0.tgz",
- "integrity": "sha512-r+hIaORsW/8rq6wieDordXnA/eAu7xAPLue2InhoEX6ML7irP52BgiibHLpt9R0psiCzIHhju8qqKa4pJOrmiw==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.901.0.tgz",
+ "integrity": "sha512-MuCS5R2ngNoYifkVt05CTULvYVWX0dvRT0/Md4jE3a0u0yMygYy31C1zorwfE/SUgAQXyLmUx8ATmPp9PppImQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.862.0",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -951,13 +878,13 @@
}
},
"node_modules/@aws-sdk/middleware-logger": {
- "version": "3.876.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.876.0.tgz",
- "integrity": "sha512-cpWJhOuMSyz9oV25Z/CMHCBTgafDCbv7fHR80nlRrPdPZ8ETNsahwRgltXP1QJJ8r3X/c1kwpOR7tc+RabVzNA==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.901.0.tgz",
+ "integrity": "sha512-UoHebjE7el/tfRo8/CQTj91oNUm+5Heus5/a4ECdmWaSCHCS/hXTsU3PTTHAY67oAQR8wBLFPfp3mMvXjB+L2A==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.862.0",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -965,14 +892,15 @@
}
},
"node_modules/@aws-sdk/middleware-recursion-detection": {
- "version": "3.873.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.873.0.tgz",
- "integrity": "sha512-OtgY8EXOzRdEWR//WfPkA/fXl0+WwE8hq0y9iw2caNyKPtca85dzrrZWnPqyBK/cpImosrpR1iKMYr41XshsCg==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.901.0.tgz",
+ "integrity": "sha512-Wd2t8qa/4OL0v/oDpCHHYkgsXJr8/ttCxrvCKAt0H1zZe2LlRhY9gpDVKqdertfHrHDj786fOvEQA28G1L75Dg==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.862.0",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/types": "3.901.0",
+ "@aws/lambda-invoke-store": "^0.0.1",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -980,24 +908,24 @@
}
},
"node_modules/@aws-sdk/middleware-sdk-s3": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.882.0.tgz",
- "integrity": "sha512-j5Ya7RKSQSKkpcLsO+Rh272zKD63JYkLKY/N8m5MVNWQafMdUbkZi7nwwjq7s5t7r3Pmz7a4gLf4n6ZEL5eaow==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.901.0.tgz",
+ "integrity": "sha512-prgjVC3fDT2VIlmQPiw/cLee8r4frTam9GILRUVQyDdNtshNwV3MiaSCLzzQJjKJlLgnBLNUHJCSmvUVtg+3iA==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@aws-sdk/util-arn-parser": "3.873.0",
- "@smithy/core": "^3.9.2",
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/signature-v4": "^5.1.3",
- "@smithy/smithy-client": "^4.5.2",
- "@smithy/types": "^4.3.2",
- "@smithy/util-config-provider": "^4.0.0",
- "@smithy/util-middleware": "^4.0.5",
- "@smithy/util-stream": "^4.2.4",
- "@smithy/util-utf8": "^4.0.0",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@aws-sdk/util-arn-parser": "3.893.0",
+ "@smithy/core": "^3.14.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/signature-v4": "^5.3.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-config-provider": "^4.2.0",
+ "@smithy/util-middleware": "^4.2.0",
+ "@smithy/util-stream": "^4.4.0",
+ "@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1005,13 +933,13 @@
}
},
"node_modules/@aws-sdk/middleware-ssec": {
- "version": "3.873.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.873.0.tgz",
- "integrity": "sha512-AF55J94BoiuzN7g3hahy0dXTVZahVi8XxRBLgzNp6yQf0KTng+hb/V9UQZVYY1GZaDczvvvnqC54RGe9OZZ9zQ==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.901.0.tgz",
+ "integrity": "sha512-YiLLJmA3RvjL38mFLuu8fhTTGWtp2qT24VqpucgfoyziYcTgIQkJJmKi90Xp6R6/3VcArqilyRgM1+x8i/em+Q==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.862.0",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1019,17 +947,17 @@
}
},
"node_modules/@aws-sdk/middleware-user-agent": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.882.0.tgz",
- "integrity": "sha512-IdLVpV2b0qryxFb/gNPwZoayLUdgmb41fWpLiIf99pyNwR7TGs/9Ri2amS3PnaQHuES947xYSYZ9Ej0kBgjHKg==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.901.0.tgz",
+ "integrity": "sha512-Zby4F03fvD9xAgXGPywyk4bC1jCbnyubMEYChLYohD+x20ULQCf+AimF/Btn7YL+hBpzh1+RmqmvZcx+RgwgNQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@aws-sdk/util-endpoints": "3.879.0",
- "@smithy/core": "^3.9.2",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@aws-sdk/util-endpoints": "3.901.0",
+ "@smithy/core": "^3.14.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1037,48 +965,48 @@
}
},
"node_modules/@aws-sdk/nested-clients": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.882.0.tgz",
- "integrity": "sha512-IQkOtl/DhLV5+tJI7ZwjBDJO1lIoYOcmNQzcg8ly9RTdMoTcEtklevxmAwWB4DEFiIctUk2OSjHqhfWjeYredA==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.901.0.tgz",
+ "integrity": "sha512-feAAAMsVwctk2Tms40ONybvpfJPLCmSdI+G+OTrNpizkGLNl6ik2Ng2RzxY6UqOfN8abqKP/DOUj1qYDRDG8ag==",
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/sha256-browser": "5.2.0",
"@aws-crypto/sha256-js": "5.2.0",
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/middleware-host-header": "3.873.0",
- "@aws-sdk/middleware-logger": "3.876.0",
- "@aws-sdk/middleware-recursion-detection": "3.873.0",
- "@aws-sdk/middleware-user-agent": "3.882.0",
- "@aws-sdk/region-config-resolver": "3.873.0",
- "@aws-sdk/types": "3.862.0",
- "@aws-sdk/util-endpoints": "3.879.0",
- "@aws-sdk/util-user-agent-browser": "3.873.0",
- "@aws-sdk/util-user-agent-node": "3.882.0",
- "@smithy/config-resolver": "^4.1.5",
- "@smithy/core": "^3.9.2",
- "@smithy/fetch-http-handler": "^5.1.1",
- "@smithy/hash-node": "^4.0.5",
- "@smithy/invalid-dependency": "^4.0.5",
- "@smithy/middleware-content-length": "^4.0.5",
- "@smithy/middleware-endpoint": "^4.1.21",
- "@smithy/middleware-retry": "^4.1.22",
- "@smithy/middleware-serde": "^4.0.9",
- "@smithy/middleware-stack": "^4.0.5",
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/node-http-handler": "^4.1.1",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/smithy-client": "^4.5.2",
- "@smithy/types": "^4.3.2",
- "@smithy/url-parser": "^4.0.5",
- "@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.29",
- "@smithy/util-defaults-mode-node": "^4.0.29",
- "@smithy/util-endpoints": "^3.0.7",
- "@smithy/util-middleware": "^4.0.5",
- "@smithy/util-retry": "^4.0.7",
- "@smithy/util-utf8": "^4.0.0",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/middleware-host-header": "3.901.0",
+ "@aws-sdk/middleware-logger": "3.901.0",
+ "@aws-sdk/middleware-recursion-detection": "3.901.0",
+ "@aws-sdk/middleware-user-agent": "3.901.0",
+ "@aws-sdk/region-config-resolver": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@aws-sdk/util-endpoints": "3.901.0",
+ "@aws-sdk/util-user-agent-browser": "3.901.0",
+ "@aws-sdk/util-user-agent-node": "3.901.0",
+ "@smithy/config-resolver": "^4.3.0",
+ "@smithy/core": "^3.14.0",
+ "@smithy/fetch-http-handler": "^5.3.0",
+ "@smithy/hash-node": "^4.2.0",
+ "@smithy/invalid-dependency": "^4.2.0",
+ "@smithy/middleware-content-length": "^4.2.0",
+ "@smithy/middleware-endpoint": "^4.3.0",
+ "@smithy/middleware-retry": "^4.4.0",
+ "@smithy/middleware-serde": "^4.2.0",
+ "@smithy/middleware-stack": "^4.2.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/node-http-handler": "^4.3.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/url-parser": "^4.2.0",
+ "@smithy/util-base64": "^4.2.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-body-length-node": "^4.2.0",
+ "@smithy/util-defaults-mode-browser": "^4.2.0",
+ "@smithy/util-defaults-mode-node": "^4.2.0",
+ "@smithy/util-endpoints": "^3.2.0",
+ "@smithy/util-middleware": "^4.2.0",
+ "@smithy/util-retry": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1086,16 +1014,16 @@
}
},
"node_modules/@aws-sdk/region-config-resolver": {
- "version": "3.873.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.873.0.tgz",
- "integrity": "sha512-q9sPoef+BBG6PJnc4x60vK/bfVwvRWsPgcoQyIra057S/QGjq5VkjvNk6H8xedf6vnKlXNBwq9BaANBXnldUJg==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.901.0.tgz",
+ "integrity": "sha512-7F0N888qVLHo4CSQOsnkZ4QAp8uHLKJ4v3u09Ly5k4AEStrSlFpckTPyUx6elwGL+fxGjNE2aakK8vEgzzCV0A==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.862.0",
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/types": "^4.3.2",
- "@smithy/util-config-provider": "^4.0.0",
- "@smithy/util-middleware": "^4.0.5",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-config-provider": "^4.2.0",
+ "@smithy/util-middleware": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1103,18 +1031,18 @@
}
},
"node_modules/@aws-sdk/s3-request-presigner": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.882.0.tgz",
- "integrity": "sha512-Yahd3yQTUjuocDVKxYmoeoL3fXLI3rCw0oz3y4yGJl2ZIAIoIBN9iyIz/rVwiejeJJNGwO2iEhKJK0JJGAR3/A==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.901.0.tgz",
+ "integrity": "sha512-G/0G5tL3beETs2zkI0YQuM2SkrAsYJSe2vN2XtouVSN5c9v6EiSvdSsHAqMhLebnSs2suUkq0JO9ZotbXkUfMQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/signature-v4-multi-region": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@aws-sdk/util-format-url": "3.873.0",
- "@smithy/middleware-endpoint": "^4.1.21",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/smithy-client": "^4.5.2",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/signature-v4-multi-region": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@aws-sdk/util-format-url": "3.901.0",
+ "@smithy/middleware-endpoint": "^4.3.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1122,16 +1050,16 @@
}
},
"node_modules/@aws-sdk/signature-v4-multi-region": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.882.0.tgz",
- "integrity": "sha512-hAmA9BgL3nIRTGoOGjMXMqVtPhtPFKBFaqhgQkgmkzpbZ6aaGecNIqBfGxi9oezR4dnvI+PvKoRo2F8csF7fMA==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.901.0.tgz",
+ "integrity": "sha512-2IWxbll/pRucp1WQkHi2W5E2SVPGBvk4Is923H7gpNksbVFws18ItjMM8ZpGm44cJEoy1zR5gjhLFklatpuoOw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/middleware-sdk-s3": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/signature-v4": "^5.1.3",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/middleware-sdk-s3": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/signature-v4": "^5.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1139,17 +1067,17 @@
}
},
"node_modules/@aws-sdk/token-providers": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.882.0.tgz",
- "integrity": "sha512-/Z6F8Cc+QjBMEPh3ZXy7JM1vMZCS41+Nh9VgdUwvvdJTA7LRXSDBRDL3cQPa7bii9unZ8SqsIC+7Nlw1LKwwJA==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.901.0.tgz",
+ "integrity": "sha512-pJEr1Ggbc/uVTDqp9IbNu9hdr0eQf3yZix3s4Nnyvmg4xmJSGAlbPC9LrNr5u3CDZoc8Z9CuLrvbP4MwYquNpQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "3.882.0",
- "@aws-sdk/nested-clients": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@smithy/property-provider": "^4.0.5",
- "@smithy/shared-ini-file-loader": "^4.0.5",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/core": "3.901.0",
+ "@aws-sdk/nested-clients": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/property-provider": "^4.2.0",
+ "@smithy/shared-ini-file-loader": "^4.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1157,12 +1085,12 @@
}
},
"node_modules/@aws-sdk/types": {
- "version": "3.862.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.862.0.tgz",
- "integrity": "sha512-Bei+RL0cDxxV+lW2UezLbCYYNeJm6Nzee0TpW0FfyTRBhH9C1XQh4+x+IClriXvgBnRquTMMYsmJfvx8iyLKrg==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.901.0.tgz",
+ "integrity": "sha512-FfEM25hLEs4LoXsLXQ/q6X6L4JmKkKkbVFpKD4mwfVHtRVQG6QxJiCPcrkcPISquiy6esbwK2eh64TWbiD60cg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.3.2",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1170,9 +1098,9 @@
}
},
"node_modules/@aws-sdk/util-arn-parser": {
- "version": "3.873.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.873.0.tgz",
- "integrity": "sha512-qag+VTqnJWDn8zTAXX4wiVioa0hZDQMtbZcGRERVnLar4/3/VIKBhxX2XibNQXFu1ufgcRn4YntT/XEPecFWcg==",
+ "version": "3.893.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.893.0.tgz",
+ "integrity": "sha512-u8H4f2Zsi19DGnwj5FSZzDMhytYF/bCh37vAtBsn3cNDL3YG578X5oc+wSX54pM3tOxS+NY7tvOAo52SW7koUA==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -1182,15 +1110,15 @@
}
},
"node_modules/@aws-sdk/util-endpoints": {
- "version": "3.879.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.879.0.tgz",
- "integrity": "sha512-aVAJwGecYoEmbEFju3127TyJDF9qJsKDUUTRMDuS8tGn+QiWQFnfInmbt+el9GU1gEJupNTXV+E3e74y51fb7A==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.901.0.tgz",
+ "integrity": "sha512-5nZP3hGA8FHEtKvEQf4Aww5QZOkjLW1Z+NixSd+0XKfHvA39Ah5sZboScjLx0C9kti/K3OGW1RCx5K9Zc3bZqg==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.862.0",
- "@smithy/types": "^4.3.2",
- "@smithy/url-parser": "^4.0.5",
- "@smithy/util-endpoints": "^3.0.7",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/url-parser": "^4.2.0",
+ "@smithy/util-endpoints": "^3.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1198,14 +1126,14 @@
}
},
"node_modules/@aws-sdk/util-format-url": {
- "version": "3.873.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.873.0.tgz",
- "integrity": "sha512-v//b9jFnhzTKKV3HFTw2MakdM22uBAs2lBov51BWmFXuFtSTdBLrR7zgfetQPE3PVkFai0cmtJQPdc3MX+T/cQ==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.901.0.tgz",
+ "integrity": "sha512-GGUnJKrh3OF1F3YRSWtwPLbN904Fcfxf03gujyq1rcrDRPEkzoZB+2BzNkB27SsU6lAlwNq+4aRlZRVUloPiag==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.862.0",
- "@smithy/querystring-builder": "^4.0.5",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/querystring-builder": "^4.2.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1225,27 +1153,27 @@
}
},
"node_modules/@aws-sdk/util-user-agent-browser": {
- "version": "3.873.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.873.0.tgz",
- "integrity": "sha512-AcRdbK6o19yehEcywI43blIBhOCSo6UgyWcuOJX5CFF8k39xm1ILCjQlRRjchLAxWrm0lU0Q7XV90RiMMFMZtA==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.901.0.tgz",
+ "integrity": "sha512-Ntb6V/WFI21Ed4PDgL/8NSfoZQQf9xzrwNgiwvnxgAl/KvAvRBgQtqj5gHsDX8Nj2YmJuVoHfH9BGjL9VQ4WNg==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "3.862.0",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/types": "^4.6.0",
"bowser": "^2.11.0",
"tslib": "^2.6.2"
}
},
"node_modules/@aws-sdk/util-user-agent-node": {
- "version": "3.882.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.882.0.tgz",
- "integrity": "sha512-7zPtGXeAs6UzKjrrSbMNiFMSLZ/2DWvJ26KBOasS3zQbL534yoNos4HUA3OOXSpKFBAIEcYWu6rzR4ptlvx50w==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.901.0.tgz",
+ "integrity": "sha512-l59KQP5TY7vPVUfEURc7P5BJKuNg1RSsAKBQW7LHLECXjLqDUbo2SMLrexLBEoArSt6E8QOrIN0C8z/0Xk0jYw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/middleware-user-agent": "3.882.0",
- "@aws-sdk/types": "3.862.0",
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/types": "^4.3.2",
+ "@aws-sdk/middleware-user-agent": "3.901.0",
+ "@aws-sdk/types": "3.901.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1261,18 +1189,58 @@
}
},
"node_modules/@aws-sdk/xml-builder": {
- "version": "3.873.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.873.0.tgz",
- "integrity": "sha512-kLO7k7cGJ6KaHiExSJWojZurF7SnGMDHXRuQunFnEoD0n1yB6Lqy/S/zHiQ7oJnBhPr9q0TW9qFkrsZb1Uc54w==",
+ "version": "3.901.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.901.0.tgz",
+ "integrity": "sha512-pxFCkuAP7Q94wMTNPAwi6hEtNrp/BdFf+HOrIEeFQsk4EoOmpKY3I6S+u6A9Wg295J80Kh74LqDWM22ux3z6Aw==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.3.2",
+ "@smithy/types": "^4.6.0",
+ "fast-xml-parser": "5.2.5",
"tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
+ "node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser": {
+ "version": "5.2.5",
+ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.2.5.tgz",
+ "integrity": "sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "strnum": "^2.1.0"
+ },
+ "bin": {
+ "fxparser": "src/cli/cli.js"
+ }
+ },
+ "node_modules/@aws-sdk/xml-builder/node_modules/strnum": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.1.1.tgz",
+ "integrity": "sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/@aws/lambda-invoke-store": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.0.1.tgz",
+ "integrity": "sha512-ORHRQ2tmvnBXc8t/X9Z8IcSbBA4xTLKuN873FopzklHMeqBst7YG0d+AX97inkvDX+NChYtSr+qGfcqGFaI8Zw==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
"node_modules/@colors/colors": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz",
@@ -1283,12 +1251,12 @@
}
},
"node_modules/@dabh/diagnostics": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz",
- "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==",
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.8.tgz",
+ "integrity": "sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==",
"license": "MIT",
"dependencies": {
- "colorspace": "1.1.x",
+ "@so-ric/colorspace": "^1.1.6",
"enabled": "2.0.x",
"kuler": "^2.0.0"
}
@@ -1300,9 +1268,9 @@
"license": "Apache-2.0"
},
"node_modules/@datadog/native-appsec": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/@datadog/native-appsec/-/native-appsec-10.1.0.tgz",
- "integrity": "sha512-IKV9L4MvQxrT6GK0k5n9oOWw34gsGaiHW/03J1DOEu1crUqXcSWYJVOrGnRwz6XPXf6LDtAvmR+AU1QwDcDsww==",
+ "version": "10.2.1",
+ "resolved": "https://registry.npmjs.org/@datadog/native-appsec/-/native-appsec-10.2.1.tgz",
+ "integrity": "sha512-FwRVo+otgNaz6vN74XVrBT8GdLwxPwAqOjH4Y9VQJaC1RiHmzRCMr77AhHFme1xi7zPG2LQqQN/cmOzG+sbrtQ==",
"hasInstallScript": true,
"license": "Apache-2.0",
"dependencies": {
@@ -1337,16 +1305,16 @@
}
},
"node_modules/@datadog/pprof": {
- "version": "5.9.0",
- "resolved": "https://registry.npmjs.org/@datadog/pprof/-/pprof-5.9.0.tgz",
- "integrity": "sha512-7KretVkHUANWe31u9cGJpxmUkyrXsCD+fmlZQUz/zk9mtQNC4uBIKX53VUFfrVj/bxAhEEIPw5XTYiMc5RJLsw==",
+ "version": "5.10.0",
+ "resolved": "https://registry.npmjs.org/@datadog/pprof/-/pprof-5.10.0.tgz",
+ "integrity": "sha512-tEMhLeOM78FHC/rTltDd7pQN8WPAUZ1b0BPadYsKWqo/v6jWTbF6xeIMojdJa5yIW2vHjDU4LFJpkFFNacHpQw==",
"hasInstallScript": true,
"license": "Apache-2.0",
"dependencies": {
"delay": "^5.0.0",
"node-gyp-build": "<4.0",
"p-limit": "^3.1.0",
- "pprof-format": "^2.1.0",
+ "pprof-format": "^2.2.1",
"source-map": "^0.7.4"
},
"engines": {
@@ -1460,19 +1428,22 @@
}
},
"node_modules/@eslint/config-helpers": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz",
- "integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==",
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.0.tgz",
+ "integrity": "sha512-WUFvV4WoIwW8Bv0KeKCIIEgdSiFOsulyN0xrMu+7z43q/hkOLXjvb5u7UC9jDxvRzcrbEmuZBX5yJZz1741jog==",
"dev": true,
"license": "Apache-2.0",
+ "dependencies": {
+ "@eslint/core": "^0.16.0"
+ },
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
"node_modules/@eslint/core": {
- "version": "0.15.2",
- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz",
- "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==",
+ "version": "0.16.0",
+ "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.16.0.tgz",
+ "integrity": "sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -1520,9 +1491,9 @@
}
},
"node_modules/@eslint/js": {
- "version": "9.35.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.35.0.tgz",
- "integrity": "sha512-30iXE9whjlILfWobBkNerJo+TXYsgVM5ERQwMcMKCHckHflCmf7wXDAHlARoWnh0s1U72WqlbeyE7iAcCzuCPw==",
+ "version": "9.37.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.37.0.tgz",
+ "integrity": "sha512-jaS+NJ+hximswBG6pjNX0uEJZkrT0zwpVi3BA3vX22aFGjJjmgSTSmPpZCRKmoBL5VY/M6p0xsSJx7rk7sy5gg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -1543,13 +1514,13 @@
}
},
"node_modules/@eslint/plugin-kit": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz",
- "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==",
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.0.tgz",
+ "integrity": "sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@eslint/core": "^0.15.2",
+ "@eslint/core": "^0.16.0",
"levn": "^0.4.1"
},
"engines": {
@@ -1860,9 +1831,9 @@
}
},
"node_modules/@ioredis/commands": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.3.0.tgz",
- "integrity": "sha512-M/T6Zewn7sDaBQEqIZ8Rb+i9y8qfGmq+5SDFSf9sA2lUZTmdDLVdOiQaeDp+Q4wElZ9HG1GAX5KhDaidp6LQsQ==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.4.0.tgz",
+ "integrity": "sha512-aFT2yemJJo+TZCmieA7qnYGQooOS7QfNmYrzGtsYd3g9j5iDP8AimYYAesf79ohjbLG12XxC4nG5DyEnC88AsQ==",
"license": "MIT"
},
"node_modules/@isaacs/cliui": {
@@ -2161,12 +2132,12 @@
]
},
"node_modules/@smithy/abort-controller": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.1.0.tgz",
- "integrity": "sha512-wEhSYznxOmx7EdwK1tYEWJF5+/wmSFsff9BfTOn8oO/+KPl3gsmThrb6MJlWbOC391+Ya31s5JuHiC2RlT80Zg==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.2.0.tgz",
+ "integrity": "sha512-PLUYa+SUKOEZtXFURBu/CNxlsxfaFGxSBPcStL13KpVeVWIfdezWyDqkz7iDLmwnxojXD0s5KzuB5HGHvt4Aeg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.4.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2174,9 +2145,9 @@
}
},
"node_modules/@smithy/chunked-blob-reader": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-5.0.0.tgz",
- "integrity": "sha512-+sKqDBQqb036hh4NPaUiEkYFkTUGYzRsn3EuFhyfQfMy6oGHEUJDurLP9Ufb5dasr/XiAmPNMr6wa9afjQB+Gw==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-5.2.0.tgz",
+ "integrity": "sha512-WmU0TnhEAJLWvfSeMxBNe5xtbselEO8+4wG0NtZeL8oR21WgH1xiO37El+/Y+H/Ie4SCwBy3MxYWmOYaGgZueA==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -2186,12 +2157,12 @@
}
},
"node_modules/@smithy/chunked-blob-reader-native": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.0.0.tgz",
- "integrity": "sha512-R9wM2yPmfEMsUmlMlIgSzOyICs0x9uu7UTHoccMyt7BWw8shcGM8HqB355+BZCPBcySvbTYMs62EgEQkNxz2ig==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.2.0.tgz",
+ "integrity": "sha512-HNbGWdyTfSM1nfrZKQjYTvD8k086+M8s1EYkBUdGC++lhxegUp2HgNf5RIt6oOGVvsC26hBCW/11tv8KbwLn/Q==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/util-base64": "^4.0.0",
+ "@smithy/util-base64": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2199,15 +2170,15 @@
}
},
"node_modules/@smithy/config-resolver": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.2.0.tgz",
- "integrity": "sha512-FA10YhPFLy23uxeWu7pOM2ctlw+gzbPMTZQwrZ8FRIfyJ/p8YIVz7AVTB5jjLD+QIerydyKcVMZur8qzzDILAQ==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.3.0.tgz",
+ "integrity": "sha512-9oH+n8AVNiLPK/iK/agOsoWfrKZ3FGP3502tkksd6SRsKMYiu7AFX0YXo6YBADdsAj7C+G/aLKdsafIJHxuCkQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/node-config-provider": "^4.2.0",
- "@smithy/types": "^4.4.0",
- "@smithy/util-config-provider": "^4.1.0",
- "@smithy/util-middleware": "^4.1.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-config-provider": "^4.2.0",
+ "@smithy/util-middleware": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2215,50 +2186,36 @@
}
},
"node_modules/@smithy/core": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.10.0.tgz",
- "integrity": "sha512-bXyD3Ij6b1qDymEYlEcF+QIjwb9gObwZNaRjETJsUEvSIzxFdynSQ3E4ysY7lUFSBzeWBNaFvX+5A0smbC2q6A==",
+ "version": "3.14.0",
+ "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.14.0.tgz",
+ "integrity": "sha512-XJ4z5FxvY/t0Dibms/+gLJrI5niRoY0BCmE02fwmPcRYFPI4KI876xaE79YGWIKnEslMbuQPsIEsoU/DXa0DoA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/middleware-serde": "^4.1.0",
- "@smithy/protocol-http": "^5.2.0",
- "@smithy/types": "^4.4.0",
- "@smithy/util-base64": "^4.1.0",
- "@smithy/util-body-length-browser": "^4.1.0",
- "@smithy/util-middleware": "^4.1.0",
- "@smithy/util-stream": "^4.3.0",
- "@smithy/util-utf8": "^4.1.0",
- "@types/uuid": "^9.0.1",
- "tslib": "^2.6.2",
- "uuid": "^9.0.1"
+ "@smithy/middleware-serde": "^4.2.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-base64": "^4.2.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-middleware": "^4.2.0",
+ "@smithy/util-stream": "^4.4.0",
+ "@smithy/util-utf8": "^4.2.0",
+ "@smithy/uuid": "^1.1.0",
+ "tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/core/node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
"node_modules/@smithy/credential-provider-imds": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.1.0.tgz",
- "integrity": "sha512-iVwNhxTsCQTPdp++4C/d9xvaDmuEWhXi55qJobMp9QMaEHRGH3kErU4F8gohtdsawRqnUy/ANylCjKuhcR2mPw==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.0.tgz",
+ "integrity": "sha512-SOhFVvFH4D5HJZytb0bLKxCrSnwcqPiNlrw+S4ZXjMnsC+o9JcUQzbZOEQcA8yv9wJFNhfsUiIUKiEnYL68Big==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/node-config-provider": "^4.2.0",
- "@smithy/property-provider": "^4.1.0",
- "@smithy/types": "^4.4.0",
- "@smithy/url-parser": "^4.1.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/property-provider": "^4.2.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/url-parser": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2266,14 +2223,14 @@
}
},
"node_modules/@smithy/eventstream-codec": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-4.0.5.tgz",
- "integrity": "sha512-miEUN+nz2UTNoRYRhRqVTJCx7jMeILdAurStT2XoS+mhokkmz1xAPp95DFW9Gxt4iF2VBqpeF9HbTQ3kY1viOA==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-4.2.0.tgz",
+ "integrity": "sha512-XE7CtKfyxYiNZ5vz7OvyTf1osrdbJfmUy+rbh+NLQmZumMGvY0mT0Cq1qKSfhrvLtRYzMsOBuRpi10dyI0EBPg==",
"license": "Apache-2.0",
"dependencies": {
"@aws-crypto/crc32": "5.2.0",
- "@smithy/types": "^4.3.2",
- "@smithy/util-hex-encoding": "^4.0.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-hex-encoding": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2281,13 +2238,13 @@
}
},
"node_modules/@smithy/eventstream-serde-browser": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.0.5.tgz",
- "integrity": "sha512-LCUQUVTbM6HFKzImYlSB9w4xafZmpdmZsOh9rIl7riPC3osCgGFVP+wwvYVw6pXda9PPT9TcEZxaq3XE81EdJQ==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.0.tgz",
+ "integrity": "sha512-U53p7fcrk27k8irLhOwUu+UYnBqsXNLKl1XevOpsxK3y1Lndk8R7CSiZV6FN3fYFuTPuJy5pP6qa/bjDzEkRvA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/eventstream-serde-universal": "^4.0.5",
- "@smithy/types": "^4.3.2",
+ "@smithy/eventstream-serde-universal": "^4.2.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2295,12 +2252,12 @@
}
},
"node_modules/@smithy/eventstream-serde-config-resolver": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.1.3.tgz",
- "integrity": "sha512-yTTzw2jZjn/MbHu1pURbHdpjGbCuMHWncNBpJnQAPxOVnFUAbSIUSwafiphVDjNV93TdBJWmeVAds7yl5QCkcA==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.0.tgz",
+ "integrity": "sha512-uwx54t8W2Yo9Jr3nVF5cNnkAAnMCJ8Wrm+wDlQY6rY/IrEgZS3OqagtCu/9ceIcZFQ1zVW/zbN9dxb5esuojfA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.3.2",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2308,13 +2265,13 @@
}
},
"node_modules/@smithy/eventstream-serde-node": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.0.5.tgz",
- "integrity": "sha512-lGS10urI4CNzz6YlTe5EYG0YOpsSp3ra8MXyco4aqSkQDuyZPIw2hcaxDU82OUVtK7UY9hrSvgWtpsW5D4rb4g==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.0.tgz",
+ "integrity": "sha512-yjM2L6QGmWgJjVu/IgYd6hMzwm/tf4VFX0lm8/SvGbGBwc+aFl3hOzvO/e9IJ2XI+22Tx1Zg3vRpFRs04SWFcg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/eventstream-serde-universal": "^4.0.5",
- "@smithy/types": "^4.3.2",
+ "@smithy/eventstream-serde-universal": "^4.2.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2322,13 +2279,13 @@
}
},
"node_modules/@smithy/eventstream-serde-universal": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.0.5.tgz",
- "integrity": "sha512-JFnmu4SU36YYw3DIBVao3FsJh4Uw65vVDIqlWT4LzR6gXA0F3KP0IXFKKJrhaVzCBhAuMsrUUaT5I+/4ZhF7aw==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.0.tgz",
+ "integrity": "sha512-C3jxz6GeRzNyGKhU7oV656ZbuHY93mrfkT12rmjDdZch142ykjn8do+VOkeRNjSGKw01p4g+hdalPYPhmMwk1g==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/eventstream-codec": "^4.0.5",
- "@smithy/types": "^4.3.2",
+ "@smithy/eventstream-codec": "^4.2.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2336,15 +2293,15 @@
}
},
"node_modules/@smithy/fetch-http-handler": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.2.0.tgz",
- "integrity": "sha512-VZenjDdVaUGiy3hwQtxm75nhXZrhFG+3xyL93qCQAlYDyhT/jeDWM8/3r5uCFMlTmmyrIjiDyiOynVFchb0BSg==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.0.tgz",
+ "integrity": "sha512-BG3KSmsx9A//KyIfw+sqNmWFr1YBUr+TwpxFT7yPqAk0yyDh7oSNgzfNH7pS6OC099EGx2ltOULvumCFe8bcgw==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/protocol-http": "^5.2.0",
- "@smithy/querystring-builder": "^4.1.0",
- "@smithy/types": "^4.4.0",
- "@smithy/util-base64": "^4.1.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/querystring-builder": "^4.2.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-base64": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2352,14 +2309,14 @@
}
},
"node_modules/@smithy/hash-blob-browser": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-4.0.5.tgz",
- "integrity": "sha512-F7MmCd3FH/Q2edhcKd+qulWkwfChHbc9nhguBlVjSUE6hVHhec3q6uPQ+0u69S6ppvLtR3eStfCuEKMXBXhvvA==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.0.tgz",
+ "integrity": "sha512-MWmrRTPqVKpN8NmxmJPTeQuhewTt8Chf+waB38LXHZoA02+BeWYVQ9ViAwHjug8m7lQb1UWuGqp3JoGDOWvvuA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/chunked-blob-reader": "^5.0.0",
- "@smithy/chunked-blob-reader-native": "^4.0.0",
- "@smithy/types": "^4.3.2",
+ "@smithy/chunked-blob-reader": "^5.2.0",
+ "@smithy/chunked-blob-reader-native": "^4.2.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2367,14 +2324,14 @@
}
},
"node_modules/@smithy/hash-node": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.0.5.tgz",
- "integrity": "sha512-cv1HHkKhpyRb6ahD8Vcfb2Hgz67vNIXEp2vnhzfxLFGRukLCNEA5QdsorbUEzXma1Rco0u3rx5VTqbM06GcZqQ==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.2.0.tgz",
+ "integrity": "sha512-ugv93gOhZGysTctZh9qdgng8B+xO0cj+zN0qAZ+Sgh7qTQGPOJbMdIuyP89KNfUyfAqFSNh5tMvC+h2uCpmTtA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.3.2",
- "@smithy/util-buffer-from": "^4.0.0",
- "@smithy/util-utf8": "^4.0.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-buffer-from": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2382,13 +2339,13 @@
}
},
"node_modules/@smithy/hash-stream-node": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-4.0.5.tgz",
- "integrity": "sha512-IJuDS3+VfWB67UC0GU0uYBG/TA30w+PlOaSo0GPm9UHS88A6rCP6uZxNjNYiyRtOcjv7TXn/60cW8ox1yuZsLg==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-4.2.0.tgz",
+ "integrity": "sha512-8dELAuGv+UEjtzrpMeNBZc1sJhO8GxFVV/Yh21wE35oX4lOE697+lsMHBoUIFAUuYkTMIeu0EuJSEsH7/8Y+UQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.3.2",
- "@smithy/util-utf8": "^4.0.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2396,12 +2353,12 @@
}
},
"node_modules/@smithy/invalid-dependency": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.0.5.tgz",
- "integrity": "sha512-IVnb78Qtf7EJpoEVo7qJ8BEXQwgC4n3igeJNNKEj/MLYtapnx8A67Zt/J3RXAj2xSO1910zk0LdFiygSemuLow==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.2.0.tgz",
+ "integrity": "sha512-ZmK5X5fUPAbtvRcUPtk28aqIClVhbfcmfoS4M7UQBTnDdrNxhsrxYVv0ZEl5NaPSyExsPWqL4GsPlRvtlwg+2A==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.3.2",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2409,9 +2366,9 @@
}
},
"node_modules/@smithy/is-array-buffer": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-4.1.0.tgz",
- "integrity": "sha512-ePTYUOV54wMogio+he4pBybe8fwg4sDvEVDBU8ZlHOZXbXK3/C0XfJgUCu6qAZcawv05ZhZzODGUerFBPsPUDQ==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-4.2.0.tgz",
+ "integrity": "sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -2421,13 +2378,13 @@
}
},
"node_modules/@smithy/md5-js": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-4.0.5.tgz",
- "integrity": "sha512-8n2XCwdUbGr8W/XhMTaxILkVlw2QebkVTn5tm3HOcbPbOpWg89zr6dPXsH8xbeTsbTXlJvlJNTQsKAIoqQGbdA==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-4.2.0.tgz",
+ "integrity": "sha512-LFEPniXGKRQArFmDQ3MgArXlClFJMsXDteuQQY8WG1/zzv6gVSo96+qpkuu1oJp4MZsKrwchY0cuAoPKzEbaNA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.3.2",
- "@smithy/util-utf8": "^4.0.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2435,13 +2392,13 @@
}
},
"node_modules/@smithy/middleware-content-length": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.0.5.tgz",
- "integrity": "sha512-l1jlNZoYzoCC7p0zCtBDE5OBXZ95yMKlRlftooE5jPWQn4YBPLgsp+oeHp7iMHaTGoUdFqmHOPa8c9G3gBsRpQ==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.2.0.tgz",
+ "integrity": "sha512-6ZAnwrXFecrA4kIDOcz6aLBhU5ih2is2NdcZtobBDSdSHtE9a+MThB5uqyK4XXesdOCvOcbCm2IGB95birTSOQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/protocol-http": "^5.1.3",
- "@smithy/types": "^4.3.2",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2449,18 +2406,18 @@
}
},
"node_modules/@smithy/middleware-endpoint": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.2.0.tgz",
- "integrity": "sha512-J1eCF7pPDwgv7fGwRd2+Y+H9hlIolF3OZ2PjptonzzyOXXGh/1KGJAHpEcY1EX+WLlclKu2yC5k+9jWXdUG4YQ==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.3.0.tgz",
+ "integrity": "sha512-jFVjuQeV8TkxaRlcCNg0GFVgg98tscsmIrIwRFeC74TIUyLE3jmY9xgc1WXrPQYRjQNK3aRoaIk6fhFRGOIoGw==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/core": "^3.10.0",
- "@smithy/middleware-serde": "^4.1.0",
- "@smithy/node-config-provider": "^4.2.0",
- "@smithy/shared-ini-file-loader": "^4.1.0",
- "@smithy/types": "^4.4.0",
- "@smithy/url-parser": "^4.1.0",
- "@smithy/util-middleware": "^4.1.0",
+ "@smithy/core": "^3.14.0",
+ "@smithy/middleware-serde": "^4.2.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/shared-ini-file-loader": "^4.3.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/url-parser": "^4.2.0",
+ "@smithy/util-middleware": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2468,47 +2425,33 @@
}
},
"node_modules/@smithy/middleware-retry": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.2.0.tgz",
- "integrity": "sha512-raL5oWYf5ALl3jCJrajE8enKJEnV/2wZkKS6mb3ZRY2tg3nj66ssdWy5Ps8E6Yu8Wqh3Tt+Sb9LozjvwZupq+A==",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.4.0.tgz",
+ "integrity": "sha512-yaVBR0vQnOnzex45zZ8ZrPzUnX73eUC8kVFaAAbn04+6V7lPtxn56vZEBBAhgS/eqD6Zm86o6sJs6FuQVoX5qg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/node-config-provider": "^4.2.0",
- "@smithy/protocol-http": "^5.2.0",
- "@smithy/service-error-classification": "^4.1.0",
- "@smithy/smithy-client": "^4.6.0",
- "@smithy/types": "^4.4.0",
- "@smithy/util-middleware": "^4.1.0",
- "@smithy/util-retry": "^4.1.0",
- "@types/uuid": "^9.0.1",
- "tslib": "^2.6.2",
- "uuid": "^9.0.1"
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/service-error-classification": "^4.2.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-middleware": "^4.2.0",
+ "@smithy/util-retry": "^4.2.0",
+ "@smithy/uuid": "^1.1.0",
+ "tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
- "node_modules/@smithy/middleware-retry/node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
"node_modules/@smithy/middleware-serde": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.1.0.tgz",
- "integrity": "sha512-CtLFYlHt7c2VcztyVRc+25JLV4aGpmaSv9F1sPB0AGFL6S+RPythkqpGDa2XBQLJQooKkjLA1g7Xe4450knShg==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.2.0.tgz",
+ "integrity": "sha512-rpTQ7D65/EAbC6VydXlxjvbifTf4IH+sADKg6JmAvhkflJO2NvDeyU9qsWUNBelJiQFcXKejUHWRSdmpJmEmiw==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/protocol-http": "^5.2.0",
- "@smithy/types": "^4.4.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2516,12 +2459,12 @@
}
},
"node_modules/@smithy/middleware-stack": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.1.0.tgz",
- "integrity": "sha512-91Fuw4IKp0eK8PNhMXrHRcYA1jvbZ9BJGT91wwPy3bTQT8mHTcQNius/EhSQTlT9QUI3Ki1wjHeNXbWK0tO8YQ==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.2.0.tgz",
+ "integrity": "sha512-G5CJ//eqRd9OARrQu9MK1H8fNm2sMtqFh6j8/rPozhEL+Dokpvi1Og+aCixTuwDAGZUkJPk6hJT5jchbk/WCyg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.4.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2529,14 +2472,14 @@
}
},
"node_modules/@smithy/node-config-provider": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.2.0.tgz",
- "integrity": "sha512-8/fpilqKurQ+f8nFvoFkJ0lrymoMJ+5/CQV5IcTv/MyKhk2Q/EFYCAgTSWHD4nMi9ux9NyBBynkyE9SLg2uSLA==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.3.0.tgz",
+ "integrity": "sha512-5QgHNuWdT9j9GwMPPJCKxy2KDxZ3E5l4M3/5TatSZrqYVoEiqQrDfAq8I6KWZw7RZOHtVtCzEPdYz7rHZixwcA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/property-provider": "^4.1.0",
- "@smithy/shared-ini-file-loader": "^4.1.0",
- "@smithy/types": "^4.4.0",
+ "@smithy/property-provider": "^4.2.0",
+ "@smithy/shared-ini-file-loader": "^4.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2544,15 +2487,15 @@
}
},
"node_modules/@smithy/node-http-handler": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.2.0.tgz",
- "integrity": "sha512-G4NV70B4hF9vBrUkkvNfWO6+QR4jYjeO4tc+4XrKCb4nPYj49V9Hu8Ftio7Mb0/0IlFyEOORudHrm+isY29nCA==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.3.0.tgz",
+ "integrity": "sha512-RHZ/uWCmSNZ8cneoWEVsVwMZBKy/8123hEpm57vgGXA3Irf/Ja4v9TVshHK2ML5/IqzAZn0WhINHOP9xl+Qy6Q==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/abort-controller": "^4.1.0",
- "@smithy/protocol-http": "^5.2.0",
- "@smithy/querystring-builder": "^4.1.0",
- "@smithy/types": "^4.4.0",
+ "@smithy/abort-controller": "^4.2.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/querystring-builder": "^4.2.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2560,12 +2503,12 @@
}
},
"node_modules/@smithy/property-provider": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.1.0.tgz",
- "integrity": "sha512-eksMjMHUlG5PwOUWO3k+rfLNOPVPJ70mUzyYNKb5lvyIuAwS4zpWGsxGiuT74DFWonW0xRNy+jgzGauUzX7SyA==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.2.0.tgz",
+ "integrity": "sha512-rV6wFre0BU6n/tx2Ztn5LdvEdNZ2FasQbPQmDOPfV9QQyDmsCkOAB0osQjotRCQg+nSKFmINhyda0D3AnjSBJw==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.4.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2573,12 +2516,12 @@
}
},
"node_modules/@smithy/protocol-http": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.2.0.tgz",
- "integrity": "sha512-bwjlh5JwdOQnA01be+5UvHK4HQz4iaRKlVG46hHSJuqi0Ribt3K06Z1oQ29i35Np4G9MCDgkOGcHVyLMreMcbg==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.3.0.tgz",
+ "integrity": "sha512-6POSYlmDnsLKb7r1D3SVm7RaYW6H1vcNcTWGWrF7s9+2noNYvUsm7E4tz5ZQ9HXPmKn6Hb67pBDRIjrT4w/d7Q==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.4.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2586,13 +2529,13 @@
}
},
"node_modules/@smithy/querystring-builder": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.1.0.tgz",
- "integrity": "sha512-JqTWmVIq4AF8R8OK/2cCCiQo5ZJ0SRPsDkDgLO5/3z8xxuUp1oMIBBjfuueEe+11hGTZ6rRebzYikpKc6yQV9Q==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.2.0.tgz",
+ "integrity": "sha512-Q4oFD0ZmI8yJkiPPeGUITZj++4HHYCW3pYBYfIobUCkYpI6mbkzmG1MAQQ3lJYYWj3iNqfzOenUZu+jqdPQ16A==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.4.0",
- "@smithy/util-uri-escape": "^4.1.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-uri-escape": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2600,12 +2543,12 @@
}
},
"node_modules/@smithy/querystring-parser": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.1.0.tgz",
- "integrity": "sha512-VgdHhr8YTRsjOl4hnKFm7xEMOCRTnKw3FJ1nU+dlWNhdt/7eEtxtkdrJdx7PlRTabdANTmvyjE4umUl9cK4awg==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.2.0.tgz",
+ "integrity": "sha512-BjATSNNyvVbQxOOlKse0b0pSezTWGMvA87SvoFoFlkRsKXVsN3bEtjCxvsNXJXfnAzlWFPaT9DmhWy1vn0sNEA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.4.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2613,24 +2556,24 @@
}
},
"node_modules/@smithy/service-error-classification": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.1.0.tgz",
- "integrity": "sha512-UBpNFzBNmS20jJomuYn++Y+soF8rOK9AvIGjS9yGP6uRXF5rP18h4FDUsoNpWTlSsmiJ87e2DpZo9ywzSMH7PQ==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.2.0.tgz",
+ "integrity": "sha512-Ylv1ttUeKatpR0wEOMnHf1hXMktPUMObDClSWl2TpCVT4DwtJhCeighLzSLbgH3jr5pBNM0LDXT5yYxUvZ9WpA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.4.0"
+ "@smithy/types": "^4.6.0"
},
"engines": {
"node": ">=18.0.0"
}
},
"node_modules/@smithy/shared-ini-file-loader": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.1.0.tgz",
- "integrity": "sha512-W0VMlz9yGdQ/0ZAgWICFjFHTVU0YSfGoCVpKaExRM/FDkTeP/yz8OKvjtGjs6oFokCRm0srgj/g4Cg0xuHu8Rw==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.3.0.tgz",
+ "integrity": "sha512-VCUPPtNs+rKWlqqntX0CbVvWyjhmX30JCtzO+s5dlzzxrvSfRh5SY0yxnkirvc1c80vdKQttahL71a9EsdolSQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.4.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2638,18 +2581,18 @@
}
},
"node_modules/@smithy/signature-v4": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.2.0.tgz",
- "integrity": "sha512-ObX1ZqG2DdZQlXx9mLD7yAR8AGb7yXurGm+iWx9x4l1fBZ8CZN2BRT09aSbcXVPZXWGdn5VtMuupjxhOTI2EjA==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.3.0.tgz",
+ "integrity": "sha512-MKNyhXEs99xAZaFhm88h+3/V+tCRDQ+PrDzRqL0xdDpq4gjxcMmf5rBA3YXgqZqMZ/XwemZEurCBQMfxZOWq/g==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/is-array-buffer": "^4.1.0",
- "@smithy/protocol-http": "^5.2.0",
- "@smithy/types": "^4.4.0",
- "@smithy/util-hex-encoding": "^4.1.0",
- "@smithy/util-middleware": "^4.1.0",
- "@smithy/util-uri-escape": "^4.1.0",
- "@smithy/util-utf8": "^4.1.0",
+ "@smithy/is-array-buffer": "^4.2.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-hex-encoding": "^4.2.0",
+ "@smithy/util-middleware": "^4.2.0",
+ "@smithy/util-uri-escape": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2657,17 +2600,17 @@
}
},
"node_modules/@smithy/smithy-client": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.6.0.tgz",
- "integrity": "sha512-TvlIshqx5PIi0I0AiR+PluCpJ8olVG++xbYkAIGCUkByaMUlfOXLgjQTmYbr46k4wuDe8eHiTIlUflnjK2drPQ==",
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.7.0.tgz",
+ "integrity": "sha512-3BDx/aCCPf+kkinYf5QQhdQ9UAGihgOVqI3QO5xQfSaIWvUE4KYLtiGRWsNe1SR7ijXC0QEPqofVp5Sb0zC8xQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/core": "^3.10.0",
- "@smithy/middleware-endpoint": "^4.2.0",
- "@smithy/middleware-stack": "^4.1.0",
- "@smithy/protocol-http": "^5.2.0",
- "@smithy/types": "^4.4.0",
- "@smithy/util-stream": "^4.3.0",
+ "@smithy/core": "^3.14.0",
+ "@smithy/middleware-endpoint": "^4.3.0",
+ "@smithy/middleware-stack": "^4.2.0",
+ "@smithy/protocol-http": "^5.3.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-stream": "^4.4.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2675,9 +2618,9 @@
}
},
"node_modules/@smithy/types": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.4.0.tgz",
- "integrity": "sha512-4jY91NgZz+ZnSFcVzWwngOW6VuK3gR/ihTwSU1R/0NENe9Jd8SfWgbhDCAGUWL3bI7DiDSW7XF6Ui6bBBjrqXw==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.6.0.tgz",
+ "integrity": "sha512-4lI9C8NzRPOv66FaY1LL1O/0v0aLVrq/mXP/keUa9mJOApEeae43LsLd2kZRUJw91gxOQfLIrV3OvqPgWz1YsA==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -2687,13 +2630,13 @@
}
},
"node_modules/@smithy/url-parser": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.1.0.tgz",
- "integrity": "sha512-/LYEIOuO5B2u++tKr1NxNxhZTrr3A63jW8N73YTwVeUyAlbB/YM+hkftsvtKAcMt3ADYo0FsF1GY3anehffSVQ==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.2.0.tgz",
+ "integrity": "sha512-AlBmD6Idav2ugmoAL6UtR6ItS7jU5h5RNqLMZC7QrLCoITA9NzIN3nx9GWi8g4z1pfWh2r9r96SX/jHiNwPJ9A==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/querystring-parser": "^4.1.0",
- "@smithy/types": "^4.4.0",
+ "@smithy/querystring-parser": "^4.2.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2701,13 +2644,13 @@
}
},
"node_modules/@smithy/util-base64": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-4.1.0.tgz",
- "integrity": "sha512-RUGd4wNb8GeW7xk+AY5ghGnIwM96V0l2uzvs/uVHf+tIuVX2WSvynk5CxNoBCsM2rQRSZElAo9rt3G5mJ/gktQ==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-4.2.0.tgz",
+ "integrity": "sha512-+erInz8WDv5KPe7xCsJCp+1WCjSbah9gWcmUXc9NqmhyPx59tf7jqFz+za1tRG1Y5KM1Cy1rWCcGypylFp4mvA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/util-buffer-from": "^4.1.0",
- "@smithy/util-utf8": "^4.1.0",
+ "@smithy/util-buffer-from": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2715,9 +2658,9 @@
}
},
"node_modules/@smithy/util-body-length-browser": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-4.1.0.tgz",
- "integrity": "sha512-V2E2Iez+bo6bUMOTENPr6eEmepdY8Hbs+Uc1vkDKgKNA/brTJqOW/ai3JO1BGj9GbCeLqw90pbbH7HFQyFotGQ==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-4.2.0.tgz",
+ "integrity": "sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -2727,9 +2670,9 @@
}
},
"node_modules/@smithy/util-body-length-node": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.0.0.tgz",
- "integrity": "sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.2.0.tgz",
+ "integrity": "sha512-U8q1WsSZFjXijlD7a4wsDQOvOwV+72iHSfq1q7VD+V75xP/pdtm0WIGuaFJ3gcADDOKj2MIBn4+zisi140HEnQ==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -2739,12 +2682,12 @@
}
},
"node_modules/@smithy/util-buffer-from": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-4.1.0.tgz",
- "integrity": "sha512-N6yXcjfe/E+xKEccWEKzK6M+crMrlwaCepKja0pNnlSkm6SjAeLKKA++er5Ba0I17gvKfN/ThV+ZOx/CntKTVw==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-4.2.0.tgz",
+ "integrity": "sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/is-array-buffer": "^4.1.0",
+ "@smithy/is-array-buffer": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2752,9 +2695,9 @@
}
},
"node_modules/@smithy/util-config-provider": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-4.1.0.tgz",
- "integrity": "sha512-swXz2vMjrP1ZusZWVTB/ai5gK+J8U0BWvP10v9fpcFvg+Xi/87LHvHfst2IgCs1i0v4qFZfGwCmeD/KNCdJZbQ==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-4.2.0.tgz",
+ "integrity": "sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -2764,14 +2707,14 @@
}
},
"node_modules/@smithy/util-defaults-mode-browser": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.1.0.tgz",
- "integrity": "sha512-D27cLtJtC4EEeERJXS+JPoogz2tE5zeE3zhWSSu6ER5/wJ5gihUxIzoarDX6K1U27IFTHit5YfHqU4Y9RSGE0w==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.2.0.tgz",
+ "integrity": "sha512-qzHp7ZDk1Ba4LDwQVCNp90xPGqSu7kmL7y5toBpccuhi3AH7dcVBIT/pUxYcInK4jOy6FikrcTGq5wxcka8UaQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/property-provider": "^4.1.0",
- "@smithy/smithy-client": "^4.6.0",
- "@smithy/types": "^4.4.0",
+ "@smithy/property-provider": "^4.2.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
"bowser": "^2.11.0",
"tslib": "^2.6.2"
},
@@ -2780,17 +2723,17 @@
}
},
"node_modules/@smithy/util-defaults-mode-node": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.1.0.tgz",
- "integrity": "sha512-gnZo3u5dP1o87plKupg39alsbeIY1oFFnCyV2nI/++pL19vTtBLgOyftLEjPjuXmoKn2B2rskX8b7wtC/+3Okg==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.0.tgz",
+ "integrity": "sha512-FxUHS3WXgx3bTWR6yQHNHHkQHZm/XKIi/CchTnKvBulN6obWpcbzJ6lDToXn+Wp0QlVKd7uYAz2/CTw1j7m+Kg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/config-resolver": "^4.2.0",
- "@smithy/credential-provider-imds": "^4.1.0",
- "@smithy/node-config-provider": "^4.2.0",
- "@smithy/property-provider": "^4.1.0",
- "@smithy/smithy-client": "^4.6.0",
- "@smithy/types": "^4.4.0",
+ "@smithy/config-resolver": "^4.3.0",
+ "@smithy/credential-provider-imds": "^4.2.0",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/property-provider": "^4.2.0",
+ "@smithy/smithy-client": "^4.7.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2798,13 +2741,13 @@
}
},
"node_modules/@smithy/util-endpoints": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.0.7.tgz",
- "integrity": "sha512-klGBP+RpBp6V5JbrY2C/VKnHXn3d5V2YrifZbmMY8os7M6m8wdYFoO6w/fe5VkP+YVwrEktW3IWYaSQVNZJ8oQ==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.2.0.tgz",
+ "integrity": "sha512-TXeCn22D56vvWr/5xPqALc9oO+LN+QpFjrSM7peG/ckqEPoI3zaKZFp+bFwfmiHhn5MGWPaLCqDOJPPIixk9Wg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/node-config-provider": "^4.1.4",
- "@smithy/types": "^4.3.2",
+ "@smithy/node-config-provider": "^4.3.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2812,9 +2755,9 @@
}
},
"node_modules/@smithy/util-hex-encoding": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-4.1.0.tgz",
- "integrity": "sha512-1LcueNN5GYC4tr8mo14yVYbh/Ur8jHhWOxniZXii+1+ePiIbsLZ5fEI0QQGtbRRP5mOhmooos+rLmVASGGoq5w==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-4.2.0.tgz",
+ "integrity": "sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -2824,12 +2767,12 @@
}
},
"node_modules/@smithy/util-middleware": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.1.0.tgz",
- "integrity": "sha512-612onNcKyxhP7/YOTKFTb2F6sPYtMRddlT5mZvYf1zduzaGzkYhpYIPxIeeEwBZFjnvEqe53Ijl2cYEfJ9d6/Q==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.2.0.tgz",
+ "integrity": "sha512-u9OOfDa43MjagtJZ8AapJcmimP+K2Z7szXn8xbty4aza+7P1wjFmy2ewjSbhEiYQoW1unTlOAIV165weYAaowA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.4.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2837,13 +2780,13 @@
}
},
"node_modules/@smithy/util-retry": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.1.0.tgz",
- "integrity": "sha512-5AGoBHb207xAKSVwaUnaER+L55WFY8o2RhlafELZR3mB0J91fpL+Qn+zgRkPzns3kccGaF2vy0HmNVBMWmN6dA==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.2.0.tgz",
+ "integrity": "sha512-BWSiuGbwRnEE2SFfaAZEX0TqaxtvtSYPM/J73PFVm+A29Fg1HTPiYFb8TmX1DXp4hgcdyJcNQmprfd5foeORsg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/service-error-classification": "^4.1.0",
- "@smithy/types": "^4.4.0",
+ "@smithy/service-error-classification": "^4.2.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2851,18 +2794,18 @@
}
},
"node_modules/@smithy/util-stream": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.3.0.tgz",
- "integrity": "sha512-ZOYS94jksDwvsCJtppHprUhsIscRnCKGr6FXCo3SxgQ31ECbza3wqDBqSy6IsAak+h/oAXb1+UYEBmDdseAjUQ==",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.4.0.tgz",
+ "integrity": "sha512-vtO7ktbixEcrVzMRmpQDnw/Ehr9UWjBvSJ9fyAbadKkC4w5Cm/4lMO8cHz8Ysb8uflvQUNRcuux/oNHKPXkffg==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/fetch-http-handler": "^5.2.0",
- "@smithy/node-http-handler": "^4.2.0",
- "@smithy/types": "^4.4.0",
- "@smithy/util-base64": "^4.1.0",
- "@smithy/util-buffer-from": "^4.1.0",
- "@smithy/util-hex-encoding": "^4.1.0",
- "@smithy/util-utf8": "^4.1.0",
+ "@smithy/fetch-http-handler": "^5.3.0",
+ "@smithy/node-http-handler": "^4.3.0",
+ "@smithy/types": "^4.6.0",
+ "@smithy/util-base64": "^4.2.0",
+ "@smithy/util-buffer-from": "^4.2.0",
+ "@smithy/util-hex-encoding": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2870,9 +2813,9 @@
}
},
"node_modules/@smithy/util-uri-escape": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-4.1.0.tgz",
- "integrity": "sha512-b0EFQkq35K5NHUYxU72JuoheM6+pytEVUGlTwiFxWFpmddA+Bpz3LgsPRIpBk8lnPE47yT7AF2Egc3jVnKLuPg==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-4.2.0.tgz",
+ "integrity": "sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -2882,12 +2825,12 @@
}
},
"node_modules/@smithy/util-utf8": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-4.1.0.tgz",
- "integrity": "sha512-mEu1/UIXAdNYuBcyEPbjScKi/+MQVXNIuY/7Cm5XLIWe319kDrT5SizBE95jqtmEXoDbGoZxKLCMttdZdqTZKQ==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-4.2.0.tgz",
+ "integrity": "sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/util-buffer-from": "^4.1.0",
+ "@smithy/util-buffer-from": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -2895,19 +2838,41 @@
}
},
"node_modules/@smithy/util-waiter": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.0.7.tgz",
- "integrity": "sha512-mYqtQXPmrwvUljaHyGxYUIIRI3qjBTEb/f5QFi3A6VlxhpmZd5mWXn9W+qUkf2pVE1Hv3SqxefiZOPGdxmO64A==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.2.0.tgz",
+ "integrity": "sha512-0Z+nxUU4/4T+SL8BCNN4ztKdQjToNvUYmkF1kXO5T7Yz3Gafzh0HeIG6mrkN8Fz3gn9hSyxuAT+6h4vM+iQSBQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/abort-controller": "^4.0.5",
- "@smithy/types": "^4.3.2",
+ "@smithy/abort-controller": "^4.2.0",
+ "@smithy/types": "^4.6.0",
"tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
+ "node_modules/@smithy/uuid": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@smithy/uuid/-/uuid-1.1.0.tgz",
+ "integrity": "sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@so-ric/colorspace": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/@so-ric/colorspace/-/colorspace-1.1.6.tgz",
+ "integrity": "sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==",
+ "license": "MIT",
+ "dependencies": {
+ "color": "^5.0.2",
+ "text-hex": "1.0.x"
+ }
+ },
"node_modules/@socket.io/admin-ui": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/@socket.io/admin-ui/-/admin-ui-0.5.1.tgz",
@@ -3205,12 +3170,6 @@
"integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==",
"license": "MIT"
},
- "node_modules/@types/uuid": {
- "version": "9.0.8",
- "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz",
- "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==",
- "license": "MIT"
- },
"node_modules/@vitest/expect": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz",
@@ -3763,9 +3722,9 @@
"license": "MIT"
},
"node_modules/axios": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz",
- "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==",
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz",
+ "integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==",
"license": "MIT",
"dependencies": {
"follow-redirects": "^1.15.6",
@@ -3774,12 +3733,12 @@
}
},
"node_modules/axios-ntlm": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/axios-ntlm/-/axios-ntlm-1.4.4.tgz",
- "integrity": "sha512-kpCRdzMfL8gi0Z0o96P3QPAK4XuC8iciGgxGXe+PeQ4oyjI2LZN8WSOKbu0Y9Jo3T/A7pB81n6jYVPIpglEuRA==",
+ "version": "1.4.6",
+ "resolved": "https://registry.npmjs.org/axios-ntlm/-/axios-ntlm-1.4.6.tgz",
+ "integrity": "sha512-4nR5cbVEBfPMTFkd77FEDpDuaR205JKibmrkaQyNwGcCx0szWNpRZaL0jZyMx4+mVY2PXHjRHuJafv9Oipl0Kg==",
"license": "MIT",
"dependencies": {
- "axios": "^1.8.4",
+ "axios": "^1.12.2",
"des.js": "^1.1.0",
"dev-null": "^0.1.1",
"js-md4": "^0.3.2"
@@ -3894,9 +3853,9 @@
"license": "ISC"
},
"node_modules/bowser": {
- "version": "2.12.0",
- "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.12.0.tgz",
- "integrity": "sha512-HcOcTudTeEWgbHh0Y1Tyb6fdeR71m4b/QACf0D4KswGTsNeIJQmg38mRENZPAYPZvGFN3fk3604XbQEPdxXdKg==",
+ "version": "2.12.1",
+ "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.12.1.tgz",
+ "integrity": "sha512-z4rE2Gxh7tvshQ4hluIT7XcFrgLIQaw9X3A+kTTRdovCz5PMukm/0QC/BKSYPj3omF5Qfypn9O/c5kgpmvYUCw==",
"license": "MIT"
},
"node_modules/brace-expansion": {
@@ -3951,9 +3910,9 @@
}
},
"node_modules/bullmq": {
- "version": "5.58.5",
- "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.58.5.tgz",
- "integrity": "sha512-0A6Qjxdn8j7aOcxfRZY798vO/aMuwvoZwfE6a9EOXHb1pzpBVAogsc/OfRWeUf+5wMBoYB5nthstnJo/zrQOeQ==",
+ "version": "5.61.0",
+ "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.61.0.tgz",
+ "integrity": "sha512-khaTjc1JnzaYFl4FrUtsSsqugAW/urRrcZ9Q0ZE+REAw8W+gkHFqxbGlutOu6q7j7n91wibVaaNlOUMdiEvoSQ==",
"license": "MIT",
"dependencies": {
"cron-parser": "^4.9.0",
@@ -3962,20 +3921,7 @@
"node-abort-controller": "^3.1.1",
"semver": "^7.5.4",
"tslib": "^2.0.0",
- "uuid": "^9.0.0"
- }
- },
- "node_modules/bullmq/node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
+ "uuid": "^11.1.0"
}
},
"node_modules/busboy": {
@@ -4270,13 +4216,16 @@
}
},
"node_modules/color": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
- "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/color/-/color-5.0.2.tgz",
+ "integrity": "sha512-e2hz5BzbUPcYlIRHo8ieAhYgoajrJr+hWoceg6E345TPsATMUKqDgzt8fSXZJJbxfpiPzkWyphz8yn8At7q3fA==",
"license": "MIT",
"dependencies": {
- "color-convert": "^1.9.3",
- "color-string": "^1.6.0"
+ "color-convert": "^3.0.1",
+ "color-string": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
}
},
"node_modules/color-convert": {
@@ -4298,38 +4247,45 @@
"license": "MIT"
},
"node_modules/color-string": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
- "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-2.1.2.tgz",
+ "integrity": "sha512-RxmjYxbWemV9gKu4zPgiZagUxbH3RQpEIO77XoSSX0ivgABDZ+h8Zuash/EMFLTI4N9QgFPOJ6JQpPZKFxa+dA==",
"license": "MIT",
"dependencies": {
- "color-name": "^1.0.0",
- "simple-swizzle": "^0.2.2"
+ "color-name": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/color-string/node_modules/color-name": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-2.0.2.tgz",
+ "integrity": "sha512-9vEt7gE16EW7Eu7pvZnR0abW9z6ufzhXxGXZEVU9IqPdlsUiMwJeJfRtq0zePUmnbHGT9zajca7mX8zgoayo4A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.20"
}
},
"node_modules/color/node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-3.1.2.tgz",
+ "integrity": "sha512-UNqkvCDXstVck3kdowtOTWROIJQwafjOfXSmddoDrXo4cewMKmusCeF22Q24zvjR8nwWib/3S/dfyzPItPEiJg==",
"license": "MIT",
"dependencies": {
- "color-name": "1.1.3"
+ "color-name": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14.6"
}
},
"node_modules/color/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "license": "MIT"
- },
- "node_modules/colorspace": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz",
- "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-2.0.2.tgz",
+ "integrity": "sha512-9vEt7gE16EW7Eu7pvZnR0abW9z6ufzhXxGXZEVU9IqPdlsUiMwJeJfRtq0zePUmnbHGT9zajca7mX8zgoayo4A==",
"license": "MIT",
- "dependencies": {
- "color": "^3.1.3",
- "text-hex": "1.0.x"
+ "engines": {
+ "node": ">=12.20"
}
},
"node_modules/combined-stream": {
@@ -4758,22 +4714,22 @@
}
},
"node_modules/dd-trace": {
- "version": "5.65.0",
- "resolved": "https://registry.npmjs.org/dd-trace/-/dd-trace-5.65.0.tgz",
- "integrity": "sha512-U4zt7n8hKxjA3y3GTbJI7+ix5iwO5agn+8p6MNIAPgq2JG49jB6hUf78HvrPjGWX5R0fBpyiceOl+aLCsZIHNg==",
+ "version": "5.70.0",
+ "resolved": "https://registry.npmjs.org/dd-trace/-/dd-trace-5.70.0.tgz",
+ "integrity": "sha512-A757IJ3OIrRvFQXqa7bZ8KvwwtnjTEhj/2mNG88mNAbaildJI+FKQHDQWMM02YvQeJHwneeS6dmTj2V1mVnGrg==",
"hasInstallScript": true,
"license": "(Apache-2.0 OR BSD-3-Clause)",
"dependencies": {
"@datadog/libdatadog": "0.7.0",
- "@datadog/native-appsec": "10.1.0",
+ "@datadog/native-appsec": "10.2.1",
"@datadog/native-iast-taint-tracking": "4.0.0",
"@datadog/native-metrics": "3.1.1",
- "@datadog/pprof": "5.9.0",
+ "@datadog/pprof": "5.10.0",
"@datadog/sketches-js": "2.1.1",
"@datadog/wasm-js-rewriter": "4.0.1",
"@isaacs/ttlcache": "^1.4.1",
- "@opentelemetry/api": "1.8.0",
- "@opentelemetry/core": "^1.14.0",
+ "@opentelemetry/api": ">=1.0.0 <1.10.0",
+ "@opentelemetry/core": ">=1.14.0 <1.31.0",
"crypto-randomuuid": "^1.0.0",
"dc-polyfill": "^0.1.10",
"ignore": "^7.0.5",
@@ -4781,7 +4737,6 @@
"istanbul-lib-coverage": "^3.2.2",
"jest-docblock": "^29.7.0",
"jsonpath-plus": "^10.3.0",
- "koalas": "^1.0.2",
"limiter": "^1.1.5",
"lodash.sortby": "^4.7.0",
"lru-cache": "^10.4.3",
@@ -4789,7 +4744,7 @@
"mutexify": "^1.4.0",
"opentracing": ">=0.14.7",
"path-to-regexp": "^0.1.12",
- "pprof-format": "^2.1.0",
+ "pprof-format": "^2.1.1",
"protobufjs": "^7.5.3",
"retry": "^0.13.1",
"rfdc": "^1.4.1",
@@ -4819,9 +4774,9 @@
"license": "ISC"
},
"node_modules/debug": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
- "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
"license": "MIT",
"dependencies": {
"ms": "^2.1.3"
@@ -4966,9 +4921,9 @@
}
},
"node_modules/detect-libc": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz",
- "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==",
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
+ "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
"license": "Apache-2.0",
"engines": {
"node": ">=8"
@@ -5086,9 +5041,9 @@
}
},
"node_modules/dotenv": {
- "version": "17.2.2",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.2.tgz",
- "integrity": "sha512-Sf2LSQP+bOlhKWWyhFsn0UsfdK/kCWRv1iuA2gXAwt3dyNabr6QSj00I2V10pidqz69soatm9ZwZvpQMTIOd5Q==",
+ "version": "17.2.3",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz",
+ "integrity": "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==",
"license": "BSD-2-Clause",
"engines": {
"node": ">=12"
@@ -5529,20 +5484,20 @@
}
},
"node_modules/eslint": {
- "version": "9.35.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.35.0.tgz",
- "integrity": "sha512-QePbBFMJFjgmlE+cXAlbHZbHpdFVS2E/6vzCy7aKlebddvl1vadiC4JFV5u/wqTkNUwEV8WrQi257jf5f06hrg==",
+ "version": "9.37.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.37.0.tgz",
+ "integrity": "sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.8.0",
"@eslint-community/regexpp": "^4.12.1",
"@eslint/config-array": "^0.21.0",
- "@eslint/config-helpers": "^0.3.1",
- "@eslint/core": "^0.15.2",
+ "@eslint/config-helpers": "^0.4.0",
+ "@eslint/core": "^0.16.0",
"@eslint/eslintrc": "^3.3.1",
- "@eslint/js": "9.35.0",
- "@eslint/plugin-kit": "^0.3.5",
+ "@eslint/js": "9.37.0",
+ "@eslint/plugin-kit": "^0.4.0",
"@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1",
"@humanwhocodes/retry": "^0.4.2",
@@ -6943,12 +6898,12 @@
}
},
"node_modules/ioredis": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.7.0.tgz",
- "integrity": "sha512-NUcA93i1lukyXU+riqEyPtSEkyFq8tX90uL659J+qpCZ3rEdViB/APC58oAhIh3+bJln2hzdlZbBZsGNrlsR8g==",
+ "version": "5.8.1",
+ "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.8.1.tgz",
+ "integrity": "sha512-Qho8TgIamqEPdgiMadJwzRMW3TudIg6vpg4YONokGDudy4eqRIJtDbVX72pfLBcWxvbn3qm/40TyGUObdW4tLQ==",
"license": "MIT",
"dependencies": {
- "@ioredis/commands": "^1.3.0",
+ "@ioredis/commands": "1.4.0",
"cluster-key-slot": "^1.1.0",
"debug": "^4.3.4",
"denque": "^2.1.0",
@@ -6993,12 +6948,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-arrayish": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
- "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
- "license": "MIT"
- },
"node_modules/is-async-function": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz",
@@ -7610,14 +7559,14 @@
}
},
"node_modules/juice": {
- "version": "11.0.1",
- "resolved": "https://registry.npmjs.org/juice/-/juice-11.0.1.tgz",
- "integrity": "sha512-R3KLud4l/sN9AMmFZs0QY7cugGSiKvPhGyIsufCV5nJ0MjSlngUE7k80TmFeK9I62wOXrjWBtYA1knVs2OkF8w==",
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/juice/-/juice-11.0.3.tgz",
+ "integrity": "sha512-VYjPg4WylyWyLPnSiUsJ9tnnGhRZF0vn0YD8WWwaI8FhP9+1UdRMyRDbvqPOH/nBotmLKOc+FI+Oma6FwVWfSw==",
"license": "MIT",
"dependencies": {
- "cheerio": "^1.0.0",
+ "cheerio": "1.0.0",
"commander": "^12.1.0",
- "entities": "^4.5.0",
+ "entities": "^7.0.0",
"mensch": "^0.3.4",
"slick": "^1.12.2",
"web-resource-inliner": "^7.0.0"
@@ -7629,6 +7578,18 @@
"node": ">=18.17"
}
},
+ "node_modules/juice/node_modules/entities": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.0.tgz",
+ "integrity": "sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
"node_modules/jwa": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz",
@@ -7677,15 +7638,6 @@
"json-buffer": "3.0.1"
}
},
- "node_modules/koalas": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/koalas/-/koalas-1.0.2.tgz",
- "integrity": "sha512-RYhBbYaTTTHId3l6fnMZc3eGQNW6FVCqMG6AMwA5I1Mafr6AflaXeoi6x3xQuATRotGYRLk6+1ELZH4dstFNOA==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/kuler": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz",
@@ -8847,9 +8799,9 @@
}
},
"node_modules/pprof-format": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/pprof-format/-/pprof-format-2.1.0.tgz",
- "integrity": "sha512-0+G5bHH0RNr8E5hoZo/zJYsL92MhkZjwrHp3O2IxmY8RJL9ooKeuZ8Tm0ZNBw5sGZ9TiM71sthTjWoR2Vf5/xw==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/pprof-format/-/pprof-format-2.2.1.tgz",
+ "integrity": "sha512-p4tVN7iK19ccDqQv8heyobzUmbHyds4N2FI6aBMcXz6y99MglTWDxIyhFkNaLeEXs6IFUEzT0zya0icbSLLY0g==",
"license": "MIT"
},
"node_modules/prelude-ls": {
@@ -9822,23 +9774,14 @@
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/simple-swizzle": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
- "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
- "license": "MIT",
- "dependencies": {
- "is-arrayish": "^0.3.1"
- }
- },
"node_modules/skia-canvas": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/skia-canvas/-/skia-canvas-3.0.6.tgz",
- "integrity": "sha512-OehNQUz6Oucji41Rh82I5V9IqbTfaEqiD5ua+dnrZXymuQDEGOfUXH9JdgvsVEAD+VEdc3iJLQ4lKsSpV8AC5g==",
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/skia-canvas/-/skia-canvas-3.0.8.tgz",
+ "integrity": "sha512-FSYKxp8Ng2vOeeOBiyPhnn6ui6FirPJXMyjk4PKl8N/OWzVrkMawUgY9zubIWHMdYtyWFn0gfX3QlRwg6HBmdg==",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
- "detect-libc": "^2.0.4",
+ "detect-libc": "^2.1.1",
"follow-redirects": "^1.15.11",
"https-proxy-agent": "^7.0.6",
"string-split-by": "^1.0.0"
@@ -9854,14 +9797,14 @@
}
},
"node_modules/soap": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/soap/-/soap-1.3.0.tgz",
- "integrity": "sha512-NM5+yZBldy+799yk74HvFQYNuMNXkwKVlNEYPhb7ChLVZ3mZEWTpGTiX1k5b8NHHD8NfPzrQebHH5nEazFF5pQ==",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/soap/-/soap-1.5.0.tgz",
+ "integrity": "sha512-cT3+rKhABIkR7VkG0rtVlctQgBiKflq66jIRvpfiSxPph0Kx/pXhRWmGpvQ22crvswOhVypU/Idr88xjD15gWA==",
"license": "MIT",
"dependencies": {
- "axios": "^1.11.0",
- "axios-ntlm": "^1.4.4",
- "debug": "^4.4.1",
+ "axios": "^1.12.2",
+ "axios-ntlm": "^1.4.6",
+ "debug": "^4.4.3",
"formidable": "^3.5.4",
"get-stream": "^6.0.1",
"lodash": "^4.17.21",
@@ -9967,12 +9910,12 @@
}
},
"node_modules/source-map": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
- "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "version": "0.7.6",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz",
+ "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==",
"license": "BSD-3-Clause",
"engines": {
- "node": ">= 8"
+ "node": ">= 12"
}
},
"node_modules/source-map-js": {
@@ -10726,12 +10669,12 @@
"license": "Unlicense"
},
"node_modules/twilio": {
- "version": "5.9.0",
- "resolved": "https://registry.npmjs.org/twilio/-/twilio-5.9.0.tgz",
- "integrity": "sha512-Ij+xT9MZZSjP64lsy+x6vYsCCb5m2Db9KffkMXBrN3zWbG3rbkXxl+MZVVzrvpwEdSbQD0vMuin+TTlQ6kR6Xg==",
+ "version": "5.10.2",
+ "resolved": "https://registry.npmjs.org/twilio/-/twilio-5.10.2.tgz",
+ "integrity": "sha512-pkMdXK0PJHR0elu3GmaDlYt4DDWPkkmuJLVUQjnctehu01IgbAp+VZ2ctbUSh1anDuqKqimAIuMnW9xmKith6w==",
"license": "MIT",
"dependencies": {
- "axios": "^1.11.0",
+ "axios": "^1.12.0",
"dayjs": "^1.11.9",
"https-proxy-agent": "^5.0.0",
"jsonwebtoken": "^9.0.2",
@@ -11476,13 +11419,13 @@
}
},
"node_modules/winston": {
- "version": "3.17.0",
- "resolved": "https://registry.npmjs.org/winston/-/winston-3.17.0.tgz",
- "integrity": "sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==",
+ "version": "3.18.3",
+ "resolved": "https://registry.npmjs.org/winston/-/winston-3.18.3.tgz",
+ "integrity": "sha512-NoBZauFNNWENgsnC9YpgyYwOVrl2m58PpQ8lNHjV3kosGs7KJ7Npk9pCUE+WJlawVSe8mykWDKWFSVfs3QO9ww==",
"license": "MIT",
"dependencies": {
"@colors/colors": "^1.6.0",
- "@dabh/diagnostics": "^2.0.2",
+ "@dabh/diagnostics": "^2.0.8",
"async": "^3.2.3",
"is-stream": "^2.0.0",
"logform": "^2.7.0",
diff --git a/package.json b/package.json
index 332914d40..c1ad5c302 100644
--- a/package.json
+++ b/package.json
@@ -18,40 +18,40 @@
"job-totals-fixtures:local": "docker exec node-app /usr/bin/node /app/download-job-totals-fixtures.js"
},
"dependencies": {
- "@aws-sdk/client-cloudwatch-logs": "^3.882.0",
- "@aws-sdk/client-elasticache": "^3.882.0",
- "@aws-sdk/client-s3": "^3.882.0",
- "@aws-sdk/client-secrets-manager": "^3.882.0",
- "@aws-sdk/client-ses": "^3.882.0",
- "@aws-sdk/credential-provider-node": "^3.882.0",
- "@aws-sdk/lib-storage": "^3.882.0",
- "@aws-sdk/s3-request-presigner": "^3.882.0",
+ "@aws-sdk/client-cloudwatch-logs": "^3.901.0",
+ "@aws-sdk/client-elasticache": "^3.901.0",
+ "@aws-sdk/client-s3": "^3.901.0",
+ "@aws-sdk/client-secrets-manager": "^3.901.0",
+ "@aws-sdk/client-ses": "^3.901.0",
+ "@aws-sdk/credential-provider-node": "^3.901.0",
+ "@aws-sdk/lib-storage": "^3.903.0",
+ "@aws-sdk/s3-request-presigner": "^3.901.0",
"@opensearch-project/opensearch": "^2.13.0",
"@socket.io/admin-ui": "^0.5.1",
"@socket.io/redis-adapter": "^8.3.0",
"archiver": "^7.0.1",
"aws4": "^1.13.2",
- "axios": "^1.11.0",
+ "axios": "^1.12.2",
"better-queue": "^3.8.12",
- "bullmq": "^5.58.5",
+ "bullmq": "^5.61.0",
"chart.js": "^4.5.0",
"cloudinary": "^2.7.0",
"compression": "^1.8.1",
"cookie-parser": "^1.4.7",
"cors": "^2.8.5",
"crisp-status-reporter": "^1.2.2",
- "dd-trace": "^5.65.0",
+ "dd-trace": "^5.70.0",
"dinero.js": "^1.9.1",
- "dotenv": "^17.2.2",
+ "dotenv": "^17.2.3",
"express": "^4.21.1",
"firebase-admin": "^13.5.0",
"graphql": "^16.11.0",
"graphql-request": "^6.1.0",
"intuit-oauth": "^4.2.0",
- "ioredis": "^5.7.0",
+ "ioredis": "^5.8.1",
"json-2-csv": "^5.5.9",
"jsonwebtoken": "^9.0.2",
- "juice": "^11.0.1",
+ "juice": "^11.0.3",
"lodash": "^4.17.21",
"moment": "^2.30.1",
"moment-timezone": "^0.6.0",
@@ -62,22 +62,22 @@
"query-string": "7.1.3",
"recursive-diff": "^1.0.9",
"rimraf": "^6.0.1",
- "skia-canvas": "^3.0.6",
- "soap": "^1.3.0",
+ "skia-canvas": "^3.0.8",
+ "soap": "^1.5.0",
"socket.io": "^4.8.1",
"socket.io-adapter": "^2.5.5",
"ssh2-sftp-client": "^11.0.0",
- "twilio": "^5.9.0",
+ "twilio": "^5.10.2",
"uuid": "^11.1.0",
- "winston": "^3.17.0",
+ "winston": "^3.18.3",
"winston-cloudwatch": "^6.3.0",
"xml2js": "^0.6.2",
"xmlbuilder2": "^3.1.1",
"yazl": "^3.3.1"
},
"devDependencies": {
- "@eslint/js": "^9.35.0",
- "eslint": "^9.35.0",
+ "@eslint/js": "^9.37.0",
+ "eslint": "^9.37.0",
"eslint-plugin-react": "^7.37.5",
"globals": "^15.15.0",
"mock-require": "^3.0.3",
diff --git a/server/accounting/pbs/pbs-constants.js b/server/accounting/pbs/pbs-constants.js
index c8a6d54f3..7c54f4d0e 100644
--- a/server/accounting/pbs/pbs-constants.js
+++ b/server/accounting/pbs/pbs-constants.js
@@ -6,10 +6,6 @@ const PBS_CREDENTIALS = {
};
exports.PBS_CREDENTIALS = PBS_CREDENTIALS;
-// const cdkDomain =
-// process.env.NODE_ENV === "production"
-// ? "https://3pa.dmotorworks.com"
-// : "https://uat-3pa.dmotorworks.com";
const pbsDomain = `https://partnerhub.pbsdealers.com/json/reply`;
exports.PBS_ENDPOINTS = {
@@ -18,5 +14,9 @@ exports.PBS_ENDPOINTS = {
VehicleGet: `${pbsDomain}/VehicleGet`,
AccountingPostingChange: `${pbsDomain}/AccountingPostingChange`,
ContactChange: `${pbsDomain}/ContactChange`,
- VehicleChange: `${pbsDomain}/VehicleChange`
+ VehicleChange: `${pbsDomain}/VehicleChange`,
+ RepairOrderChange: `${pbsDomain}/RepairOrderChange`, //TODO: Verify that this is correct. Docs have /reply/ in path.
+ RepairOrderGet: `${pbsDomain}/RepairOrderGet`,
+ RepairOrderContactVehicleGet: `${pbsDomain}/RepairOrderContactVehicleGet`,
+ RepairOrderContactVehicleChange: `${pbsDomain}/RepairOrderContactVehicleChange`,
};
diff --git a/server/accounting/pbs/pbs-job-export.js b/server/accounting/pbs/pbs-job-export.js
index 127c9d5e2..feb3dc064 100644
--- a/server/accounting/pbs/pbs-job-export.js
+++ b/server/accounting/pbs/pbs-job-export.js
@@ -19,12 +19,11 @@ axios.interceptors.request.use((x) => {
...x.headers[x.method],
...x.headers
};
- const printable = `${new Date()} | Request: ${x.method.toUpperCase()} | ${
- x.url
- } | ${JSON.stringify(x.data)} | ${JSON.stringify(headers)}`;
- //console.log(printable);
+ const printable = `${new Date()} | Request: ${x.method.toUpperCase()} | ${x.url
+ } | ${JSON.stringify(x.data)} | ${JSON.stringify(headers)}`;
+ //logRequestToFile(printable);
- CdkBase.createJsonEvent(socket, "SILLY", `Raw Request: ${printable}`, x.data);
+ CdkBase.createJsonEvent(socket, "DEBUG", `Raw Request: ${printable}`, x.data);
return x;
});
@@ -32,23 +31,39 @@ axios.interceptors.request.use((x) => {
axios.interceptors.response.use((x) => {
const socket = x.config.socket;
- const printable = `${new Date()} | Response: ${x.status} | ${JSON.stringify(x.data)}`;
- //console.log(printable);
- CdkBase.createJsonEvent(socket, "SILLY", `Raw Response: ${printable}`, x.data);
+ const printable = `${new Date()} | Response: ${x.status} ${x.statusText} |${JSON.stringify(x.data)}`;
+ //logRequestToFile(printable);
+ CdkBase.createJsonEvent(socket, "DEBUG", `Raw Response: ${printable}`, x.data);
return x;
});
+const fs = require('fs');
+const path = require("path");
+function logRequestToFile(printable) {
+ try {
+ const logDir = path.join(process.cwd(), "logs");
+ if (!fs.existsSync(logDir)) {
+ fs.mkdirSync(logDir, { recursive: true });
+ }
+ const logFile = path.join(logDir, "pbs-http.log");
+ fs.appendFileSync(logFile, `${printable}\n`);
+ } catch (err) {
+ console.error("Unexpected error in logRequestToFile:", err);
+ }
+}
+
+
exports.default = async function (socket, { txEnvelope, jobid }) {
socket.logEvents = [];
socket.recordid = jobid;
socket.txEnvelope = txEnvelope;
try {
- CdkBase.createLogEvent(socket, "DEBUG", `Received Job export request for id ${jobid}`);
+ CdkBase.createLogEvent(socket, "INFO", `Received Job export request for id ${jobid}`);
const JobData = await QueryJobData(socket, jobid);
socket.JobData = JobData;
- CdkBase.createLogEvent(socket, "DEBUG", `Querying the DMS for the Vehicle Record.`);
+ CdkBase.createLogEvent(socket, "INFO", `Querying the DMS for the Vehicle Record.`);
//Query for the Vehicle record to get the associated customer.
socket.DmsVeh = await QueryVehicleFromDms(socket);
//Todo: Need to validate the lines and methods below.
@@ -69,42 +84,52 @@ exports.default = async function (socket, { txEnvelope, jobid }) {
exports.PbsSelectedCustomer = async function PbsSelectedCustomer(socket, selectedCustomerId) {
try {
- if (socket.JobData.bodyshop.pbs_configuration.disablecontactvehicle === false) {
- CdkBase.createLogEvent(socket, "DEBUG", `User selected customer ${selectedCustomerId || "NEW"}`);
+ socket.selectedCustomerId = selectedCustomerId;
+ if (socket.JobData.bodyshop.pbs_configuration.disablecontactvehicle !== true) {
+ CdkBase.createLogEvent(socket, "INFO", `User selected customer ${selectedCustomerId || "NEW"}`);
//Upsert the contact information as per Wafaa's Email.
CdkBase.createLogEvent(
socket,
- "DEBUG",
- `Upserting contact information to DMS for ${
- socket.JobData.ownr_fn || ""
+ "INFO",
+ `Upserting contact information to DMS for ${socket.JobData.ownr_fn || ""
} ${socket.JobData.ownr_ln || ""} ${socket.JobData.ownr_co_nm || ""}`
);
const ownerRef = await UpsertContactData(socket, selectedCustomerId);
-
- CdkBase.createLogEvent(socket, "DEBUG", `Upserting vehicle information to DMS for ${socket.JobData.v_vin}`);
- await UpsertVehicleData(socket, ownerRef.ReferenceId);
+ socket.ownerRef = ownerRef;
+ CdkBase.createLogEvent(socket, "INFO", `Upserting vehicle information to DMS for ${socket.JobData.v_vin}`);
+ const vehicleRef = await UpsertVehicleData(socket, ownerRef.ReferenceId);
+ socket.vehicleRef = vehicleRef;
} else {
CdkBase.createLogEvent(
socket,
- "DEBUG",
- `Contact and Vehicle updates disabled. Skipping to accounting data insert.`
+ "INFO",
+ `Contact and Vehicle updates disabled. Querying data and skipping to accounting data insert.`
);
+ //Must query for records to insert $0 RO.
+ if (!socket.ownerRef) {
+ const ownerRef = (await QueryCustomerBycodeFromDms(socket, selectedCustomerId))?.[0];
+ socket.ownerRef = ownerRef;
+ }
+ const vehicleRef = await GetVehicleData(socket, socket.ownerRef?.ReferenceId || socket.selectedCustomerId);
+ socket.vehicleRef = vehicleRef;
}
- CdkBase.createLogEvent(socket, "DEBUG", `Inserting account data.`);
- CdkBase.createLogEvent(socket, "DEBUG", `Inserting accounting posting data..`);
+ CdkBase.createLogEvent(socket, "INFO", `Inserting accounting posting data..`);
const insertResponse = await InsertAccountPostingData(socket);
if (insertResponse.WasSuccessful) {
- CdkBase.createLogEvent(socket, "DEBUG", `Marking job as exported.`);
- await MarkJobExported(socket, socket.JobData.id);
+ if (socket.JobData.bodyshop.pbs_configuration.ro_posting) {
+ await CreateRepairOrderInPBS(socket, socket.ownerRef, socket.vehicleRef)
+ }
+ CdkBase.createLogEvent(socket, "INFO", `Marking job as exported.`);
+ await MarkJobExported(socket, socket.JobData.id);
socket.emit("export-success", socket.JobData.id);
} else {
CdkBase.createLogEvent(socket, "ERROR", `Export was not successful.`);
}
} catch (error) {
- CdkBase.createLogEvent(socket, "ERROR", `Error encountered in CdkSelectedCustomer. ${error}`);
+ CdkBase.createLogEvent(socket, "ERROR", `Error encountered in PbsSelectedCustomer. ${error}`);
await InsertFailedExportLog(socket, error);
}
};
@@ -112,22 +137,22 @@ exports.PbsSelectedCustomer = async function PbsSelectedCustomer(socket, selecte
// Was Successful
async function CheckForErrors(socket, response) {
if (response.WasSuccessful === undefined || response.WasSuccessful === true) {
- CdkBase.createLogEvent(socket, "DEBUG", `Successful response from DMS. ${response.Message || ""}`);
+ CdkBase.createLogEvent(socket, "INFO", `Successful response from DMS. ${response.Message || ""}`);
} else {
CdkBase.createLogEvent(socket, "ERROR", `Error received from DMS: ${response.Message}`);
- CdkBase.createLogEvent(socket, "SILLY", `Error received from DMS: ${JSON.stringify(response)}`);
+ CdkBase.createLogEvent(socket, "DEBUG", `Error received from DMS: ${JSON.stringify(response)}`);
}
}
exports.CheckForErrors = CheckForErrors;
async function QueryJobData(socket, jobid) {
- CdkBase.createLogEvent(socket, "DEBUG", `Querying job data for id ${jobid}`);
+ CdkBase.createLogEvent(socket, "INFO", `Querying job data for id ${jobid}`);
const client = new GraphQLClient(process.env.GRAPHQL_ENDPOINT, {});
const result = await client
.setHeaders({ Authorization: `Bearer ${socket.handshake.auth.token}` })
.request(queries.QUERY_JOBS_FOR_PBS_EXPORT, { id: jobid });
- CdkBase.createLogEvent(socket, "SILLY", `Job data query result ${JSON.stringify(result, null, 2)}`);
+ CdkBase.createLogEvent(socket, "DEBUG", `Job data query result ${JSON.stringify(result, null, 2)}`);
return result.jobs_by_pk;
}
@@ -247,15 +272,15 @@ async function UpsertContactData(socket, selectedCustomerId) {
Code: socket.JobData.owner.accountingid,
...(socket.JobData.ownr_co_nm
? {
- //LastName: socket.JobData.ownr_ln,
- FirstName: socket.JobData.ownr_co_nm,
- IsBusiness: true
- }
+ //LastName: socket.JobData.ownr_ln,
+ FirstName: socket.JobData.ownr_co_nm,
+ IsBusiness: true
+ }
: {
- LastName: socket.JobData.ownr_ln,
- FirstName: socket.JobData.ownr_fn,
- IsBusiness: false
- }),
+ LastName: socket.JobData.ownr_ln,
+ FirstName: socket.JobData.ownr_fn,
+ IsBusiness: false
+ }),
//Salutation: "String",
//MiddleName: "String",
@@ -332,7 +357,7 @@ async function UpsertVehicleData(socket, ownerRef) {
//FleetNumber: "String",
//Status: "String",
OwnerRef: ownerRef, // "00000000000000000000000000000000",
- ModelNumber: socket.JobData.vehicle && socket.JobData.vehicle.v_makecode,
+ // ModelNumber: socket.JobData.vehicle && socket.JobData.vehicle.v_makecode,
Make: socket.JobData.v_make_desc,
Model: socket.JobData.v_model_desc,
Trim: socket.JobData.vehicle && socket.JobData.vehicle.v_trimcode,
@@ -340,7 +365,7 @@ async function UpsertVehicleData(socket, ownerRef) {
Year: socket.JobData.v_model_yr,
Odometer: socket.JobData.kmout,
ExteriorColor: {
- Code: socket.JobData.v_color,
+ // Code: socket.JobData.v_color,
Description: socket.JobData.v_color
}
// InteriorColor: { Code: "String", Description: "String" },
@@ -470,6 +495,57 @@ async function UpsertVehicleData(socket, ownerRef) {
}
}
+async function GetVehicleData(socket, ownerRef) {
+ try {
+ const { data: { Vehicles } } = await axios.post(
+ PBS_ENDPOINTS.VehicleGet,
+ {
+ SerialNumber: socket.JobData.bodyshop.pbs_serialnumber,
+ // "VehicleId": "00000000000000000000000000000000",
+ // "Year": "String",
+ // "YearFrom": "String",
+ // "YearTo": "String",
+ // "Make": "String",
+ // "Model": "String",
+ // "Trim": "String",
+ // "ModelNumber": "String",
+ // "StockNumber": "String",
+ VIN: socket.JobData.v_vin,
+ // "LicenseNumber": "String",
+ // "Lot": "String",
+ // "Status": "String",
+ // "StatusList": ["String"],
+ // "OwnerRef": "00000000000000000000000000000000",
+ // "ModifiedSince": "0001-01-01T00:00:00.0000000Z",
+ // "ModifiedUntil": "0001-01-01T00:00:00.0000000Z",
+ // "LastSaleSince": "0001-01-01T00:00:00.0000000Z",
+ // "VehicleIDList": ["00000000000000000000000000000000"],
+ // "IncludeInactive": false,
+ // "IncludeBuildVehicles": false,
+ // "IncludeBlankLot": false,
+ // "ShortVIN": "String",
+ // "ResultLimit": 0,
+ // "LotAccessDivisions": [0],
+ // "OdometerTo": 0,
+ // "OdometerFrom": 0
+ }
+ ,
+ { auth: PBS_CREDENTIALS, socket }
+ );
+ CheckForErrors(socket, Vehicles);
+ if (Vehicles.length === 1) {
+ return Vehicles[0];
+
+ } else {
+ CdkBase.createLogEvent(socket, "ERROR", `Error in Getting Vehicle Data - ${Vehicles.length} vehicle(s) found`);
+ }
+ } catch (error) {
+ CdkBase.createLogEvent(socket, "ERROR", `Error in UpsertVehicleData - ${error}`);
+ throw new Error(error);
+ }
+}
+
+
async function InsertAccountPostingData(socket) {
try {
const allocations = await CalculateAllocations(socket, socket.JobData.id);
@@ -572,7 +648,7 @@ async function InsertAccountPostingData(socket) {
}
async function MarkJobExported(socket, jobid) {
- CdkBase.createLogEvent(socket, "DEBUG", `Marking job as exported for id ${jobid}`);
+ CdkBase.createLogEvent(socket, "INFO", `Marking job as exported for id ${jobid}`);
const client = new GraphQLClient(process.env.GRAPHQL_ENDPOINT, {});
const result = await client
.setHeaders({ Authorization: `Bearer ${socket.handshake.auth.token}` })
@@ -618,3 +694,158 @@ async function InsertFailedExportLog(socket, error) {
CdkBase.createLogEvent(socket, "ERROR", `Error in InsertFailedExportLog - ${error} - ${JSON.stringify(error2)}`);
}
}
+
+
+async function CreateRepairOrderInPBS(socket) {
+ try {
+ const { RepairOrders } = await RepairOrderGet(socket);
+ if (RepairOrders.length === 0) {
+ const InsertedRepairOrder = await RepairOrderChange(socket)
+ socket.InsertedRepairOrder = InsertedRepairOrder;
+ CdkBase.createLogEvent(socket, "INFO", `No repair orders found for vehicle. Inserting record.`);
+
+ } else if (RepairOrders.length > 0) {
+ //Find out if it's a matching RO.
+ //This logic is used because the integration will simply add another line to an open RO if it exists.
+ const matchingRo = RepairOrders.find(ro => ro.Memo?.toLowerCase()?.includes(socket.JobData.ro_number.toLowerCase()))
+ if (!matchingRo) {
+ CdkBase.createLogEvent(socket, "INFO", `ROs found for vehicle, but none match. Inserting record.`);
+ const InsertedRepairOrder = await RepairOrderChange(socket)
+ socket.InsertedRepairOrder = InsertedRepairOrder;
+ } else {
+ CdkBase.createLogEvent(socket, "WARN", `Repair order appears to already exist in PBS. ${matchingRo.RepairOrderNumber}`);
+ }
+ }
+ } catch (error) {
+ CdkBase.createLogEvent(socket, "ERROR", `Error in CreateRepairOrderInPBS - ${error} - ${JSON.stringify(error)}`);
+ }
+}
+
+async function RepairOrderGet(socket) {
+ try {
+ const { data: RepairOrderGet } = await axios.post(
+ PBS_ENDPOINTS.RepairOrderGet,
+ {
+ SerialNumber: socket.JobData.bodyshop.pbs_serialnumber,
+ //"RepairOrderId": "374728766",
+ //"RepairOrderNumber": "4" || socket.JobData.ro_number,
+ //"RawRepairOrderNumber": socket.JobData.ro_number,
+ // "Tag": "String",
+ //"ContactRef": socket.contactRef,
+ // "ContactRefList": ["00000000000000000000000000000000"],
+ "VehicleRef": socket.vehicleRef?.ReferenceId || socket.vehicleRef?.VehicleId,
+ // "VehicleRefList": ["00000000000000000000000000000000"],
+ // "Status": "String",
+ // "CashieredSince": "0001-01-01T00:00:00.0000000Z",
+ // "CashieredUntil": "0001-01-01T00:00:00.0000000Z",
+ // "OpenDateSince": "0001-01-01T00:00:00.0000000Z",
+ // "OpenDateUntil": "0001-01-01T00:00:00.0000000Z",
+ //"ModifiedSince": "2025-01-01T00:00:00.0000000Z",
+ // "ModifiedUntil": "0001-01-01T00:00:00.0000000Z",
+ // "Shop": "String"
+ },
+ { auth: PBS_CREDENTIALS, socket }
+ );
+ CheckForErrors(socket, RepairOrderGet);
+ return RepairOrderGet;
+ } catch (error) {
+ CdkBase.createLogEvent(socket, "ERROR", `Error in RepairOrderChange - ${error}`);
+ throw new Error(error);
+ }
+}
+
+async function RepairOrderChange(socket) {
+ try {
+ const { data: RepairOrderChangeResponse } = await axios.post(
+ PBS_ENDPOINTS.RepairOrderChange,
+ { //Additional details at https://partnerhub.pbsdealers.com/json/metadata?op=RepairOrderChange
+ "RepairOrderInfo": {
+ //"Id": "string/00000000-0000-0000-0000-000000000000",
+ //"RepairOrderId": "00000000000000000000000000000000",
+ SerialNumber: socket.JobData.bodyshop.pbs_serialnumber,
+ "RepairOrderNumber": "00000000000000000000000000000000", //This helps force a new RO.
+ "RawRepairOrderNumber": "00000000000000000000000000000000",
+ // "RepairOrderNumber": socket.JobData.ro_number, //These 2 values are ignored as confirmed by PBS.
+ // "RawRepairOrderNumber": socket.JobData.ro_number,
+ "DateOpened": moment(),
+ // "DateOpenedUTC": "0001-01-01T00:00:00.0000000Z",
+ // "DateCashiered": "0001-01-01T00:00:00.0000000Z",
+ // "DateCashieredUTC": "0001-01-01T00:00:00.0000000Z",
+ "DatePromised": socket.JobData.scheduled_completion,
+ // "DatePromisedUTC": "0001-01-01T00:00:00.0000000Z",
+ "DateVehicleCompleted": socket.JobData.actual_completion,
+ // "DateCustomerNotified": "0001-01-01T00:00:00.0000000Z",
+ // "CSR": "String",
+ // "CSRRef": "00000000000000000000000000000000",
+ // "BookingUser": "String",
+ // "BookingUserRef": "00000000000000000000000000000000",
+ "ContactRef": socket.ownerRef?.ReferenceId || socket.ownerRef?.ContactId,
+ "VehicleRef": socket.vehicleRef?.ReferenceId || socket.vehicleRef?.VehicleId,
+ "MileageIn": socket.JobData.km_in,
+ "Tag": "BODYSHOP",
+ //"Status": "CLOSED", //Values here do not impact the status. Confirmed by PBS support.
+ Requests: [
+ {
+ // "RepairOrderRequestRef": "b1842ecad62c4279bbc2fef4f6bf6cde",
+ // "RepairOrderRequestId": 1,
+ // "CSR": "PBS",
+ // "CSRRef": "1ce12ac692564e94bda955d529ee911a",
+ // "Skill": "GEN",
+ "RequestCode": "MISC",
+ "RequestDescription": `VEHICLE REPAIRED AT BODYSHOP. PLEASE REFERENCE IMEX SHOP MANAGEMENT SYSTEM. ${socket.txEnvelope.story}`,
+ "Status": "Completed",
+ // "TechRef": "00000000000000000000000000000000",
+ "AllowedHours": 0,
+ "EstimateLabour": 0,
+ "EstimateParts": 0,
+ "ComeBack": false,
+ "AddedOperation": true,
+ "PartLines": [],
+ "PartRequestLines": [],
+ "LabourLines": [],
+ "SubletLines": [],
+ "TimePunches": [],
+ "Summary": {
+ "Labour": 0,
+ "Parts": 0,
+ "OilGas": 0,
+ "SubletTow": 0,
+ "Misc": 0,
+ "Environment": 0,
+ "ShopSupplies": 0,
+ "Freight": 0,
+ "WarrantyDeductible": 0,
+ "Discount": 0,
+ "SubTotal": 0,
+ "Tax1": 0,
+ "Tax2": 0,
+ "InvoiceTotal": 0,
+ "CustomerDeductible": 0,
+ "GrandTotal": 0,
+ "LabourDiscount": 0,
+ "PartDiscount": 0,
+ "ServiceFeeTotal": 0,
+ "OEMDiscount": 0
+ },
+ "LineType": "RequestLine",
+ },
+ ],
+
+ "Memo": socket.txEnvelope.story,
+
+ },
+ "IsAsynchronous": false,
+ // "UserRequest": "String",
+ // "UserRef": "00000000000000000000000000000000"
+ }
+
+ ,
+ { auth: PBS_CREDENTIALS, socket }
+ );
+ CheckForErrors(socket, RepairOrderChangeResponse);
+ return RepairOrderChangeResponse;
+ } catch (error) {
+ CdkBase.createLogEvent(socket, "ERROR", `Error in RepairOrderChange - ${error}`);
+ throw new Error(error);
+ }
+}
\ No newline at end of file
diff --git a/server/accounting/qbo/qbo-payables.js b/server/accounting/qbo/qbo-payables.js
index 9f0aacc42..a21e8ebc0 100644
--- a/server/accounting/qbo/qbo-payables.js
+++ b/server/accounting/qbo/qbo-payables.js
@@ -205,21 +205,49 @@ async function InsertVendorRecord(oauthClient, qbo_realmId, req, bill) {
async function InsertBill(oauthClient, qbo_realmId, req, bill, vendor, bodyshop) {
const { accounts, taxCodes, classes } = await QueryMetaData(oauthClient, qbo_realmId, req, bill.job.shopid);
+ let lines;
+ if (bodyshop.accountingconfig.accumulatePayableLines === true) {
+ lines = Object.values(
+ bill.billlines.reduce((acc, il) => {
+ const { cost_center, actual_cost, quantity = 1 } = il;
- const lines = bill.billlines.map((il) =>
- generateBillLine(
- il,
- accounts,
- bill.job.class,
- bodyshop.md_responsibility_centers.sales_tax_codes,
- classes,
- taxCodes,
- bodyshop.md_responsibility_centers.costs,
- bodyshop.accountingconfig,
- bodyshop.region_config
- )
- );
+ if (!acc[cost_center]) {
+ acc[cost_center] = { ...il, actual_cost: 0, quantity: 1 };
+ }
+ acc[cost_center].actual_cost += Math.round(actual_cost * quantity * 100);
+
+ return acc;
+ }, {})
+ ).map((il) => {
+ il.actual_cost /= 100;
+ return generateBillLine(
+ il,
+ accounts,
+ bill.job.class,
+ bodyshop.md_responsibility_centers.sales_tax_codes,
+ classes,
+ taxCodes,
+ bodyshop.md_responsibility_centers.costs,
+ bodyshop.accountingconfig,
+ bodyshop.region_config
+ );
+ });
+ } else {
+ lines = bill.billlines.map((il) =>
+ generateBillLine(
+ il,
+ accounts,
+ bill.job.class,
+ bodyshop.md_responsibility_centers.sales_tax_codes,
+ classes,
+ taxCodes,
+ bodyshop.md_responsibility_centers.costs,
+ bodyshop.accountingconfig,
+ bodyshop.region_config
+ )
+ );
+ }
//QB USA with GST
//This was required for the No. 1 Collision Group.
if (
@@ -241,7 +269,7 @@ async function InsertBill(oauthClient, qbo_realmId, req, bill, vendor, bodyshop)
Amount: Dinero({
amount: Math.round(
bill.billlines.reduce((acc, val) => {
- return acc + (val.applicable_taxes?.federal ? (val.actual_cost * val.quantity ?? 0) : 0);
+ return acc + (val.applicable_taxes?.federal ? val.actual_cost * val.quantity || 0 : 0);
}, 0) * 100
)
})
diff --git a/server/accounting/qbxml/qbxml-payables.js b/server/accounting/qbxml/qbxml-payables.js
index 9e658ecea..2b5efaf18 100644
--- a/server/accounting/qbxml/qbxml-payables.js
+++ b/server/accounting/qbxml/qbxml-payables.js
@@ -46,6 +46,28 @@ exports.default = async (req, res) => {
};
const generateBill = (bill, bodyshop) => {
+ let lines;
+ if (bodyshop.accountingconfig.accumulatePayableLines === true) {
+ lines = Object.values(
+ bill.billlines.reduce((acc, il) => {
+ const { cost_center, actual_cost, quantity = 1 } = il;
+
+ if (!acc[cost_center]) {
+ acc[cost_center] = { ...il, actual_cost: 0, quantity: 1 };
+ }
+
+ acc[cost_center].actual_cost += Math.round(actual_cost * quantity * 100);
+
+ return acc;
+ }, {})
+ ).map((il) => {
+ il.actual_cost /= 100;
+ return generateBillLine(il, bodyshop.md_responsibility_centers, bill.job.class);
+ });
+ } else {
+ lines = bill.billlines.map((il) => generateBillLine(il, bodyshop.md_responsibility_centers, bill.job.class));
+ }
+
const billQbxmlObj = {
QBXML: {
QBXMLMsgsRq: {
@@ -67,9 +89,7 @@ const generateBill = (bill, bodyshop) => {
}),
RefNumber: bill.invoice_number,
Memo: `RO ${bill.job.ro_number || ""}`,
- ExpenseLineAdd: bill.billlines.map((il) =>
- generateBillLine(il, bodyshop.md_responsibility_centers, bill.job.class)
- )
+ ExpenseLineAdd: lines
}
}
}
diff --git a/server/data/carfax-rps.js b/server/data/carfax-rps.js
new file mode 100644
index 000000000..d6065df57
--- /dev/null
+++ b/server/data/carfax-rps.js
@@ -0,0 +1,441 @@
+const queries = require("../graphql-client/queries");
+const moment = require("moment-timezone");
+const logger = require("../utils/logger");
+const fs = require("fs");
+const client = require("../graphql-client/graphql-client").rpsClient;
+const { sendServerEmail, sendMexicoBillingEmail } = require("../email/sendemail");
+const crypto = require("crypto");
+const { ftpSetup, uploadToS3 } = require("./carfax");
+let Client = require("ssh2-sftp-client");
+
+const AHDateFormat = "YYYY-MM-DD";
+
+const NON_ASCII_REGEX = /[^\x20-\x7E]/g;
+
+const S3_BUCKET_NAME = "rps-carfax-uploads";
+
+const carfaxExportRps = async (req, res) => {
+ // Only process if in production environment.
+ if (process.env.NODE_ENV !== "production") {
+ return res.sendStatus(403);
+ }
+ // Only process if the appropriate token is provided.
+ if (req.headers["x-imex-auth"] !== process.env.AUTOHOUSE_AUTH_TOKEN) {
+ return res.sendStatus(401);
+ }
+
+ // Send immediate response and continue processing.
+ res.status(202).json({
+ success: true,
+ message: "Processing request ...",
+ timestamp: new Date().toISOString()
+ });
+
+ try {
+ logger.log("CARFAX-RPS-start", "DEBUG", "api", null, null);
+ const allJSONResults = [];
+ const allErrors = [];
+
+ const { bodyshops } = await client.request(queries.GET_CARFAX_RPS_SHOPS); //Query for the List of Bodyshop Clients.
+ const specificShopIds = req.body.bodyshopIds; // ['uuid];
+ const { start, end, skipUpload, ignoreDateFilter } = req.body; //YYYY-MM-DD
+
+ const shopsToProcess =
+ specificShopIds?.length > 0 ? bodyshops.filter((shop) => specificShopIds.includes(shop.id)) : bodyshops;
+ logger.log("CARFAX-RPS-shopsToProcess-generated", "DEBUG", "api", null, null);
+
+ if (shopsToProcess.length === 0) {
+ logger.log("CARFAX-RPS-shopsToProcess-empty", "DEBUG", "api", null, null);
+ return;
+ }
+
+ await processShopData(shopsToProcess, start, end, skipUpload, ignoreDateFilter, allJSONResults, allErrors);
+
+ await sendServerEmail({
+ subject: `Project Mexico RPS Report ${moment().format("MM-DD-YY")}`,
+ text: `Total Count: ${allJSONResults.reduce((a, v) => a + v.count, 0)}\nErrors:\n${JSON.stringify(allErrors, null, 2)}\n\nUploaded:\n${JSON.stringify(
+ allJSONResults.map((x) => ({
+ imexshopid: x.imexshopid,
+ filename: x.filename,
+ count: x.count,
+ result: x.result
+ })),
+ null,
+ 2
+ )}`,
+ to: ["bradley.rhoades@convenient-brands.com"]
+ });
+
+ logger.log("CARFAX-RPS-end", "DEBUG", "api", null, null);
+ } catch (error) {
+ logger.log("CARFAX-RPS-error", "ERROR", "api", null, { error: error.message, stack: error.stack });
+ }
+};
+
+async function processShopData(shopsToProcess, start, end, skipUpload, ignoreDateFilter, allJSONResults, allErrors) {
+ for (const bodyshop of shopsToProcess) {
+ const shopid = bodyshop.shopname.replace(/[^a-zA-Z0-9]/g, "").toLowerCase();
+ const erroredJobs = [];
+ try {
+ logger.log("CARFAX-RPS-start-shop-extract", "DEBUG", "api", bodyshop.id, {
+ shopname: bodyshop.shopname
+ });
+
+ const { jobs, bodyshops_by_pk } = await client.request(queries.CARFAX_RPS_QUERY, {
+ bodyshopid: bodyshop.id,
+ ...(ignoreDateFilter
+ ? {}
+ : {
+ starttz: start ? moment(start).startOf("day") : moment().subtract(7, "days").startOf("day"),
+ ...(end && { endtz: moment(end).endOf("day") }),
+ start: start
+ ? moment(start).startOf("day").format(AHDateFormat)
+ : moment().subtract(7, "days").startOf("day").format(AHDateFormat),
+ ...(end && { endtz: moment(end).endOf("day").format(AHDateFormat) })
+ })
+ });
+
+ const carfaxObject = {
+ shopid: shopid,
+ shop_name: bodyshop.shopname,
+ job: jobs.map((j) =>
+ CreateRepairOrderTag({ ...j, bodyshop: bodyshops_by_pk }, function ({ job, error }) {
+ erroredJobs.push({ job: job, error: error.toString() });
+ })
+ )
+ };
+
+ if (erroredJobs.length > 0) {
+ logger.log("CARFAX-RPS-failed-jobs", "ERROR", "api", bodyshop.id, {
+ count: erroredJobs.length,
+ jobs: JSON.stringify(erroredJobs.map((j) => j.job.id))
+ });
+ }
+
+ const jsonObj = {
+ bodyshopid: bodyshop.id,
+ imexshopid: shopid,
+ json: JSON.stringify(carfaxObject, null, 2),
+ filename: `${shopid}_${moment().format("DDMMYYYY_HHMMss")}.json`,
+ count: carfaxObject.job.length
+ };
+
+ if (skipUpload) {
+ fs.writeFileSync(`./logs/${jsonObj.filename}`, jsonObj.json);
+ uploadToS3(jsonObj, S3_BUCKET_NAME);
+ } else {
+ await uploadViaSFTP(jsonObj);
+
+ await sendMexicoBillingEmail({
+ subject: `${shopid.replace(/_/g, "").toUpperCase()}_MexicoRPS_${moment().format("MMDDYYYY")} ROs ${jsonObj.count} Error ${errorCode(jsonObj)}`,
+ text: `Errors:\n${JSON.stringify(
+ erroredJobs.map((ej) => ({
+ jobid: ej.job?.id,
+ error: ej.error
+ })),
+ null,
+ 2
+ )}\n\nUploaded:\n${JSON.stringify(
+ {
+ bodyshopid: bodyshop.id,
+ imexshopid: shopid,
+ count: jsonObj.count,
+ filename: jsonObj.filename,
+ result: jsonObj.result
+ },
+ null,
+ 2
+ )}`
+ });
+ }
+
+ allJSONResults.push({
+ bodyshopid: bodyshop.id,
+ imexshopid: shopid,
+ count: jsonObj.count,
+ filename: jsonObj.filename,
+ result: jsonObj.result
+ });
+
+ logger.log("CARFAX-RPS-end-shop-extract", "DEBUG", "api", bodyshop.id, {
+ shopname: bodyshop.shopname
+ });
+ } catch (error) {
+ //Error at the shop level.
+ logger.log("CARFAX-RPS-error-shop", "ERROR", "api", bodyshop.id, { error: error.message, stack: error.stack });
+
+ allErrors.push({
+ bodyshopid: bodyshop.id,
+ imexshopid: shopid,
+ CARFAXid: bodyshop.CARFAXid,
+ fatal: true,
+ errors: [error.toString()]
+ });
+ } finally {
+ allErrors.push({
+ bodyshopid: bodyshop.id,
+ imexshopid: shopid,
+ CARFAXid: bodyshop.CARFAXid,
+ errors: erroredJobs.map((ej) => ({
+ jobid: ej.job?.id,
+ error: ej.error
+ }))
+ });
+ }
+ }
+}
+
+async function uploadViaSFTP(jsonObj) {
+ const sftp = new Client();
+ sftp.on("error", (errors) =>
+ logger.log("CARFAX-RPS-sftp-connection-error", "ERROR", "api", jsonObj.bodyshopid, {
+ error: errors.message,
+ stack: errors.stack
+ })
+ );
+ try {
+ // Upload to S3 first.
+ uploadToS3(jsonObj, S3_BUCKET_NAME);
+
+ //Connect to the FTP and upload all.
+ await sftp.connect(ftpSetup);
+
+ try {
+ jsonObj.result = await sftp.put(Buffer.from(jsonObj.json), `${jsonObj.filename}`);
+ logger.log("CARFAX-RPS-sftp-upload", "DEBUG", "api", jsonObj.bodyshopid, {
+ imexshopid: jsonObj.imexshopid,
+ filename: jsonObj.filename,
+ result: jsonObj.result
+ });
+ } catch (error) {
+ logger.log("CARFAX-RPS-sftp-upload-error", "ERROR", "api", jsonObj.bodyshopid, {
+ filename: jsonObj.filename,
+ error: error.message,
+ stack: error.stack
+ });
+ throw error;
+ }
+ } catch (error) {
+ logger.log("CARFAX-RPS-sftp-error", "ERROR", "api", jsonObj.bodyshopid, {
+ error: error.message,
+ stack: error.stack
+ });
+ throw error;
+ } finally {
+ sftp.end();
+ }
+}
+
+const CreateRepairOrderTag = (job, errorCallback) => {
+ try {
+ const subtotalEntry = job.totals.find((total) => total.TTL_TYPECD === "");
+ const subtotal = subtotalEntry ? subtotalEntry.T_AMT : 0;
+
+ const ret = {
+ ro_number: crypto.createHash("md5").update(job.id, "utf8").digest("hex"),
+ v_vin: job.v_vin || "",
+ v_year: job.v_model_yr
+ ? parseInt(job.v_model_yr.match(/\d/g))
+ ? parseInt(job.v_model_yr.match(/\d/g).join(""), 10)
+ : ""
+ : "",
+ v_make: job.v_makedesc || "",
+ v_model: job.v_model || "",
+
+ date_estimated: moment(job.created_at).tz("America/Winnipeg").format(AHDateFormat) || "",
+ data_opened: moment(job.created_at).tz("America/Winnipeg").format(AHDateFormat) || "",
+ date_invoiced: [job.close_date, job.created_at].find((date) => date)
+ ? moment([job.close_date, job.created_at].find((date) => date))
+ .tz("America/Winnipeg")
+ .format(AHDateFormat)
+ : "",
+ loss_date: job.loss_date ? moment(job.loss_date).format(AHDateFormat) : "",
+
+ ins_co_nm: job.ins_co_nm || "",
+ loss_desc: job.loss_desc || "",
+ theft_ind: job.theft_ind,
+ tloss_ind: job.tlos_ind,
+
+ subtotal: subtotal,
+
+ areaofdamage: {
+ impact1: generateAreaOfDamage(job.impact_1 || ""),
+ impact2: generateAreaOfDamage(job.impact_2 || "")
+ },
+
+ jobLines: job.joblines.length > 0 ? job.joblines.map((jl) => GenerateDetailLines(jl)) : [generateNullDetailLine()]
+ };
+ return ret;
+ } catch (error) {
+ logger.log("CARFAX-RPS-job-data-error", "ERROR", "api", null, { error: error.message, stack: error.stack });
+ errorCallback({ jobid: job.id, error });
+ }
+};
+
+const GenerateDetailLines = (line) => {
+ const ret = {
+ line_desc: line.line_desc ? line.line_desc.replace(NON_ASCII_REGEX, "") : null,
+ oem_partno: line.oem_partno ? line.oem_partno.replace(NON_ASCII_REGEX, "") : null,
+ alt_partno: line.alt_partno ? line.alt_partno.replace(NON_ASCII_REGEX, "") : null,
+ op_code_desc: generateOpCodeDescription(line.lbr_op),
+ lbr_ty: generateLaborType(line.mod_lbr_ty),
+ lbr_hrs: line.mod_lb_hrs || 0,
+ part_qty: line.part_qty || 0,
+ part_type: generatePartType(line.part_type),
+ act_price: line.act_price || 0
+ };
+ return ret;
+};
+
+const generateNullDetailLine = () => {
+ return {
+ line_desc: null,
+ oem_partno: null,
+ alt_partno: null,
+ lbr_ty: null,
+ part_qty: 0,
+ part_type: null,
+ act_price: 0
+ };
+};
+
+const generateAreaOfDamage = (loc) => {
+ const areaMap = {
+ "01": "Right Front Corner",
+ "02": "Right Front Side",
+ "03": "Right Side",
+ "04": "Right Rear Side",
+ "05": "Right Rear Corner",
+ "06": "Rear",
+ "07": "Left Rear Corner",
+ "08": "Left Rear Side",
+ "09": "Left Side",
+ 10: "Left Front Side",
+ 11: "Left Front Corner",
+ 12: "Front",
+ 13: "Rollover",
+ 14: "Uknown",
+ 15: "Total Loss",
+ 16: "Non-Collision",
+ 19: "All Over",
+ 25: "Hood",
+ 26: "Deck Lid",
+ 27: "Roof",
+ 28: "Undercarriage",
+ 34: "All Over"
+ };
+ return areaMap[loc] || null;
+};
+
+const generateLaborType = (type) => {
+ const laborTypeMap = {
+ laa: "Aluminum",
+ lab: "Body",
+ lad: "Diagnostic",
+ lae: "Electrical",
+ laf: "Frame",
+ lag: "Glass",
+ lam: "Mechanical",
+ lar: "Refinish",
+ las: "Structural",
+ lau: "Other - LAU",
+ la1: "Other - LA1",
+ la2: "Other - LA2",
+ la3: "Other - LA3",
+ la4: "Other - LA4",
+ null: "Other",
+ mapa: "Paint Materials",
+ mash: "Shop Materials",
+ rates_subtotal: "Labor Total",
+ "timetickets.labels.shift": "Shift",
+ "timetickets.labels.amshift": "Morning Shift",
+ "timetickets.labels.ambreak": "Morning Break",
+ "timetickets.labels.pmshift": "Afternoon Shift",
+ "timetickets.labels.pmbreak": "Afternoon Break",
+ "timetickets.labels.lunch": "Lunch"
+ };
+
+ return laborTypeMap[type?.toLowerCase()] || null;
+};
+
+const generatePartType = (type) => {
+ const partTypeMap = {
+ paa: "Aftermarket",
+ pae: "Existing",
+ pag: "Glass",
+ pal: "LKQ",
+ pan: "OEM",
+ pao: "Other",
+ pas: "Sublet",
+ pasl: "Sublet",
+ ccc: "CC Cleaning",
+ ccd: "CC Damage Waiver",
+ ccdr: "CC Daily Rate",
+ ccf: "CC Refuel",
+ ccm: "CC Mileage",
+ prt_dsmk_total: "Line Item Adjustment"
+ };
+
+ return partTypeMap[type?.toLowerCase()] || null;
+};
+
+const generateOpCodeDescription = (type) => {
+ const opCodeMap = {
+ OP0: "REMOVE / REPLACE PARTIAL",
+ OP1: "REFINISH / REPAIR",
+ OP10: "REPAIR , PARTIAL",
+ OP100: "REPLACE PRE-PRICED",
+ OP101: "REMOVE/REPLACE RECYCLED PART",
+ OP103: "REMOVE / REPLACE PARTIAL",
+ OP104: "REMOVE / REPLACE PARTIAL LABOUR",
+ OP105: "!!ADJUST MANUALLY!!",
+ OP106: "REPAIR , PARTIAL",
+ OP107: "CHIPGUARD",
+ OP108: "MULTI TONE",
+ OP109: "REPLACE PRE-PRICED",
+ OP11: "REMOVE / REPLACE",
+ OP110: "REFINISH / REPAIR",
+ OP111: "REMOVE / REPLACE",
+ OP112: "REMOVE / REPLACE",
+ OP113: "REPLACE PRE-PRICED",
+ OP114: "REPLACE PRE-PRICED",
+ OP12: "REMOVE / REPLACE PARTIAL",
+ OP120: "REPAIR , PARTIAL",
+ OP13: "ADDITIONAL COSTS",
+ OP14: "ADDITIONAL OPERATIONS",
+ OP15: "BLEND",
+ OP16: "SUBLET",
+ OP17: "POLICY LIMIT ADJUSTMENT",
+ OP18: "APPEAR ALLOWANCE",
+ OP2: "REMOVE / INSTALL",
+ OP24: "CHIPGUARD",
+ OP25: "TWO TONE",
+ OP26: "PAINTLESS DENT REPAIR",
+ OP260: "SUBLET",
+ OP3: "ADDITIONAL LABOR",
+ OP4: "ALIGNMENT",
+ OP5: "OVERHAUL",
+ OP6: "REFINISH",
+ OP7: "INSPECT",
+ OP8: "CHECK / ADJUST",
+ OP9: "REPAIR"
+ };
+
+ return opCodeMap[type?.toUpperCase()] || null;
+};
+
+const errorCode = ({ count, filename, results }) => {
+ if (count === 0) return 1;
+ if (!filename) return 3;
+ const sftpErrorCode = results?.sftpError?.code;
+ if (sftpErrorCode && ["ECONNREFUSED", "ENOTFOUND", "ETIMEDOUT", "ECONNRESET"].includes(sftpErrorCode)) {
+ return 4;
+ }
+ if (sftpErrorCode) return 7;
+ return 0;
+};
+
+module.exports = {
+ default: carfaxExportRps,
+ ftpSetup
+};
diff --git a/server/data/carfax.js b/server/data/carfax.js
index 34a145dda..f2ff0bac2 100644
--- a/server/data/carfax.js
+++ b/server/data/carfax.js
@@ -37,12 +37,12 @@ const S3_BUCKET_NAME = InstanceManager({
const region = InstanceManager.InstanceRegion;
const isLocal = isString(process.env?.LOCALSTACK_HOSTNAME) && !isEmpty(process.env?.LOCALSTACK_HOSTNAME);
-const uploadToS3 = (jsonObj) => {
+const uploadToS3 = (jsonObj, bucketName = S3_BUCKET_NAME) => {
const webPath = isLocal
- ? `https://${S3_BUCKET_NAME}.s3.localhost.localstack.cloud:4566/${jsonObj.filename}`
- : `https://${S3_BUCKET_NAME}.s3.${region}.amazonaws.com/${jsonObj.filename}`;
+ ? `https://${bucketName}.s3.localhost.localstack.cloud:4566/${jsonObj.filename}`
+ : `https://${bucketName}.s3.${region}.amazonaws.com/${jsonObj.filename}`;
- uploadFileToS3({ bucketName: S3_BUCKET_NAME, key: jsonObj.filename, content: jsonObj.json })
+ uploadFileToS3({ bucketName: bucketName, key: jsonObj.filename, content: jsonObj.json })
.then(() => {
logger.log("CARFAX-s3-upload", "DEBUG", "api", jsonObj.bodyshopid, {
imexshopid: jsonObj.imexshopid,
@@ -61,7 +61,7 @@ const uploadToS3 = (jsonObj) => {
});
};
-exports.default = async (req, res) => {
+const carfaxExport = async (req, res) => {
// Only process if in production environment.
if (process.env.NODE_ENV !== "production") {
return res.sendStatus(403);
@@ -80,7 +80,7 @@ exports.default = async (req, res) => {
try {
logger.log("CARFAX-start", "DEBUG", "api", null, null);
- const allXMLResults = [];
+ const allJSONResults = [];
const allErrors = [];
const { bodyshops } = await client.request(queries.GET_CARFAX_SHOPS); //Query for the List of Bodyshop Clients.
@@ -96,12 +96,12 @@ exports.default = async (req, res) => {
return;
}
- await processShopData(shopsToProcess, start, end, skipUpload, ignoreDateFilter, allXMLResults, allErrors);
+ await processShopData(shopsToProcess, start, end, skipUpload, ignoreDateFilter, allJSONResults, allErrors);
await sendServerEmail({
subject: `Project Mexico Report ${moment().format("MM-DD-YY")}`,
- text: `Errors:\n${JSON.stringify(allErrors, null, 2)}\n\nUploaded:\n${JSON.stringify(
- allXMLResults.map((x) => ({
+ text: `Total Count: ${allJSONResults.reduce((a, v) => a + v.count, 0)}\nErrors:\n${JSON.stringify(allErrors, null, 2)}\n\nUploaded:\n${JSON.stringify(
+ allJSONResults.map((x) => ({
imexshopid: x.imexshopid,
filename: x.filename,
count: x.count,
@@ -109,7 +109,8 @@ exports.default = async (req, res) => {
})),
null,
2
- )}`
+ )}`,
+ to: ["bradley.rhoades@convenient-brands.com"]
});
logger.log("CARFAX-end", "DEBUG", "api", null, null);
@@ -118,7 +119,7 @@ exports.default = async (req, res) => {
}
};
-async function processShopData(shopsToProcess, start, end, skipUpload, ignoreDateFilter, allXMLResults, allErrors) {
+async function processShopData(shopsToProcess, start, end, skipUpload, ignoreDateFilter, allJSONResults, allErrors) {
for (const bodyshop of shopsToProcess) {
const shopid = bodyshop.imexshopid?.toLowerCase() || bodyshop.shopname.replace(/[^a-zA-Z0-9]/g, "").toLowerCase();
const erroredJobs = [];
@@ -195,7 +196,7 @@ async function processShopData(shopsToProcess, start, end, skipUpload, ignoreDat
});
}
- allXMLResults.push({
+ allJSONResults.push({
bodyshopid: bodyshop.id,
imexshopid: shopid,
count: jsonObj.count,
@@ -447,3 +448,9 @@ const errorCode = ({ count, filename, results }) => {
if (sftpErrorCode) return 7;
return 0;
};
+
+module.exports = {
+ default: carfaxExport,
+ ftpSetup,
+ uploadToS3
+};
diff --git a/server/data/data.js b/server/data/data.js
index e9b80de5a..0aa7f6e34 100644
--- a/server/data/data.js
+++ b/server/data/data.js
@@ -7,4 +7,5 @@ exports.usageReport = require("./usageReport").default;
exports.podium = require("./podium").default;
exports.emsUpload = require("./emsUpload").default;
exports.carfax = require("./carfax").default;
+exports.carfaxRps = require("./carfax-rps").default;
exports.vehicletype = require("./vehicletype/vehicletype").default;
\ No newline at end of file
diff --git a/server/email/sendemail.js b/server/email/sendemail.js
index c9a72c17f..e39a2093c 100644
--- a/server/email/sendemail.js
+++ b/server/email/sendemail.js
@@ -44,8 +44,9 @@ const logEmail = async (req, email) => {
}
};
-const sendServerEmail = async ({ subject, text }) => {
+const sendServerEmail = async ({ subject, text, to = [] }) => {
if (process.env.NODE_ENV === undefined) return;
+
try {
mailer.sendMail(
{
@@ -53,7 +54,7 @@ const sendServerEmail = async ({ subject, text }) => {
imex: `ImEX Online API - ${process.env.NODE_ENV} `,
rome: `Rome Online API - ${process.env.NODE_ENV} `
}),
- to: ["support@thinkimex.com"],
+ to: ["support@imexsystems.ca", ...to],
subject: subject,
text: text,
ses: {
@@ -68,7 +69,7 @@ const sendServerEmail = async ({ subject, text }) => {
},
// eslint-disable-next-line no-unused-vars
(err, info) => {
- logger.log("server-email-failure", err ? "error" : "debug", null, null, {
+ logger.log("server-email-send", err ? "error" : "debug", null, null, {
message: err?.message,
stack: err?.stack
});
@@ -103,7 +104,7 @@ const sendMexicoBillingEmail = async ({ subject, text }) => {
},
// eslint-disable-next-line no-unused-vars
(err, info) => {
- logger.log("server-email-failure", err ? "error" : "debug", null, null, {
+ logger.log("server-email-send", err ? "error" : "debug", null, null, {
message: err?.message,
stack: err?.stack
});
@@ -258,7 +259,10 @@ const sendTaskEmail = async ({ to, subject, type = "text", html, text, attachmen
// eslint-disable-next-line no-unused-vars
(err, info) => {
// (message, type, user, record, meta
- logger.log("server-email", err ? "error" : "debug", null, null, { message: err?.message, stack: err?.stack });
+ logger.log("server-email-send", err ? "error" : "debug", null, null, {
+ message: err?.message,
+ stack: err?.stack
+ });
}
);
} catch (error) {
diff --git a/server/graphql-client/graphql-client.js b/server/graphql-client/graphql-client.js
index 79d86315b..02eee5f5b 100644
--- a/server/graphql-client/graphql-client.js
+++ b/server/graphql-client/graphql-client.js
@@ -11,9 +11,25 @@ const client = new GraphQLClient(process.env.GRAPHQL_ENDPOINT, {
}
});
+const rpsClient =
+ process.env.RPS_GRAPHQL_ENDPOINT && process.env.RPS_HASURA_ADMIN_SECRET
+ ? new GraphQLClient(process.env.RPS_GRAPHQL_ENDPOINT, {
+ headers: {
+ "x-hasura-admin-secret": process.env.RPS_HASURA_ADMIN_SECRET
+ }
+ })
+ : null;
+
+if (!rpsClient) {
+ //System log to disable RPS functions
+
+ console.log(`RPS secrets are not set. Client is not configured.`, "WARN", "redis", "api", {});
+}
+
const unauthorizedClient = new GraphQLClient(process.env.GRAPHQL_ENDPOINT);
module.exports = {
client,
+ rpsClient,
unauthorizedClient
};
diff --git a/server/graphql-client/queries.js b/server/graphql-client/queries.js
index 9a3bb1d6e..d13de62c2 100644
--- a/server/graphql-client/queries.js
+++ b/server/graphql-client/queries.js
@@ -420,6 +420,8 @@ query QUERY_JOBS_FOR_PBS_EXPORT($id: uuid!) {
v_make_desc
v_color
ca_customer_gst
+ scheduled_completion
+ actual_completion
vehicle {
v_trimcode
v_makecode
@@ -919,6 +921,41 @@ exports.CARFAX_QUERY = `query CARFAX_EXPORT($start: timestamptz, $bodyshopid: uu
}
}`;
+exports.CARFAX_RPS_QUERY = `query CARFAX_RPS_EXPORT($starttz: timestamptz, $endtz: timestamptz,$start: date, $end: date, $bodyshopid: uuid!) {
+ bodyshops_by_pk(id: $bodyshopid) {
+ id
+ shopname
+ }
+ jobs(where: {_and: [{_or: [{close_date: {_gt: $start, _lte: $end}}, {created_at: {_gt: $starttz, _lte: $endtz}, close_date: {_is_null: true}}]}, {_not: {_and: [{close_date: {_is_null: true}}, {created_at: {_is_null: true}}]}}, {bodyshopid: {_eq: $bodyshopid}}, {v_vin: {_is_null: false}}]}) {
+ close_date
+ created_at
+ id
+ ins_co_nm
+ impact_1
+ impact_2
+ joblines {
+ act_price
+ alt_partno
+ line_desc
+ mod_lb_hrs
+ mod_lbr_ty
+ oem_partno
+ lbr_op
+ part_type
+ part_qty
+ }
+ loss_date
+ loss_desc
+ theft_ind
+ tlos_ind
+ totals
+ v_makedesc
+ v_model
+ v_model_yr
+ v_vin
+ }
+}`;
+
exports.CLAIMSCORP_QUERY = `query CLAIMSCORP_EXPORT($start: timestamptz, $bodyshopid: uuid!, $end: timestamptz) {
bodyshops_by_pk(id: $bodyshopid){
id
@@ -1865,6 +1902,13 @@ exports.GET_CARFAX_SHOPS = `query GET_CARFAX_SHOPS {
}
}`;
+exports.GET_CARFAX_RPS_SHOPS = `query GET_CARFAX_RPS_SHOPS {
+ bodyshops(where: {carfax_exclude: {_neq: "true"}}){
+ id
+ shopname
+ }
+}`;
+
exports.GET_CLAIMSCORP_SHOPS = `query GET_CLAIMSCORP_SHOPS {
bodyshops(where: {claimscorpid: {_is_null: false}, _or: {claimscorpid: {_neq: ""}}}){
id
@@ -2159,18 +2203,16 @@ exports.UPDATE_OLD_TRANSITION = `mutation UPDATE_OLD_TRANSITION($jobid: uuid!, $
exports.INSERT_NEW_TRANSITION = (
includeOldTransition
-) => `mutation INSERT_NEW_TRANSITION($newTransition: transitions_insert_input!, ${
- includeOldTransition ? `$oldTransitionId: uuid!, $duration: numeric` : ""
-}) {
+) => `mutation INSERT_NEW_TRANSITION($newTransition: transitions_insert_input!, ${includeOldTransition ? `$oldTransitionId: uuid!, $duration: numeric` : ""
+ }) {
insert_transitions_one(object: $newTransition) {
id
}
- ${
- includeOldTransition
- ? `update_transitions(where: {id: {_eq: $oldTransitionId}}, _set: {duration: $duration}) {
+ ${includeOldTransition
+ ? `update_transitions(where: {id: {_eq: $oldTransitionId}}, _set: {duration: $duration}) {
affected_rows
}`
- : ""
+ : ""
}
}`;
@@ -2859,6 +2901,7 @@ exports.GET_BODYSHOP_BY_ID = `
intellipay_config
state
notification_followers
+ timezone
}
}
`;
@@ -2950,6 +2993,7 @@ query GET_JOBID_BY_MERCHANTID_RONUMBER($merchantID: String!, $roNumber: String!)
id
intellipay_config
email
+ timezone
}
}
}`;
@@ -2959,6 +3003,7 @@ query GET_BODYSHOP_BY_MERCHANTID($merchantID: String!) {
bodyshops(where: {intellipay_merchant_id: {_eq: $merchantID}}) {
id
email
+ timezone
}
}`;
diff --git a/server/integrations/partsManagement/endpoints/partsManagementProvisioning.js b/server/integrations/partsManagement/endpoints/partsManagementProvisioning.js
index 857b2d6c1..66ef19b59 100644
--- a/server/integrations/partsManagement/endpoints/partsManagementProvisioning.js
+++ b/server/integrations/partsManagement/endpoints/partsManagementProvisioning.js
@@ -7,7 +7,8 @@ const {
CREATE_SHOP,
DELETE_VENDORS_BY_SHOP,
DELETE_SHOP,
- CREATE_USER
+ CREATE_USER,
+ UPDATE_BODYSHOP_BY_ID
} = require("../partsManagement.queries");
/**
@@ -131,6 +132,61 @@ const insertUserAssociation = async (uid, email, shopId) => {
return resp.insert_users_one;
};
+/**
+ * PATCH handler for updating bodyshop fields.
+ * Allows patching: shopname, address1, address2, city, state, zip_post, country, email, timezone, phone, logo_img_path
+ * @param req
+ * @param res
+ * @returns {Promise}
+ */
+const patchPartsManagementProvisioning = async (req, res) => {
+ const { id } = req.params;
+ const allowedFields = [
+ "shopname",
+ "address1",
+ "address2",
+ "city",
+ "state",
+ "zip_post",
+ "country",
+ "email",
+ "timezone",
+ "phone",
+ "logo_img_path"
+ ];
+ const updateFields = {};
+ for (const field of allowedFields) {
+ if (req.body[field] !== undefined) {
+ updateFields[field] = req.body[field];
+ }
+ }
+ if (Object.keys(updateFields).length === 0) {
+ return res.status(400).json({ error: "No valid fields provided for update." });
+ }
+ // Check that the bodyshop has an external_shop_id before allowing patch
+ try {
+ // Fetch the bodyshop by id
+ const shopResp = await client.request(
+ `query GetBodyshop($id: uuid!) { bodyshops_by_pk(id: $id) { id external_shop_id } }`,
+ { id }
+ );
+ if (!shopResp.bodyshops_by_pk?.external_shop_id) {
+ return res.status(400).json({ error: "Cannot patch: bodyshop does not have an external_shop_id." });
+ }
+ } catch (err) {
+ return res.status(500).json({ error: "Failed to validate bodyshop external_shop_id.", detail: err });
+ }
+ try {
+ const resp = await client.request(UPDATE_BODYSHOP_BY_ID, { id, fields: updateFields });
+ if (!resp.update_bodyshops_by_pk) {
+ return res.status(404).json({ error: "Bodyshop not found." });
+ }
+ return res.json(resp.update_bodyshops_by_pk);
+ } catch (err) {
+ return res.status(500).json({ error: "Failed to update bodyshop.", detail: err });
+ }
+};
+
/**
* Handles provisioning a new shop for parts management.
* @param req
@@ -259,4 +315,4 @@ const partsManagementProvisioning = async (req, res) => {
}
};
-module.exports = partsManagementProvisioning;
+module.exports = { partsManagementProvisioning, patchPartsManagementProvisioning };
diff --git a/server/integrations/partsManagement/partsManagement.queries.js b/server/integrations/partsManagement/partsManagement.queries.js
index 6b73fcf41..4fef5d702 100644
--- a/server/integrations/partsManagement/partsManagement.queries.js
+++ b/server/integrations/partsManagement/partsManagement.queries.js
@@ -298,6 +298,25 @@ const UPDATE_JOBLINE_BY_PK = `
}
`;
+const UPDATE_BODYSHOP_BY_ID = `
+ mutation UpdateBodyshopById($id: uuid!, $fields: bodyshops_set_input!) {
+ update_bodyshops_by_pk(pk_columns: { id: $id }, _set: $fields) {
+ id
+ shopname
+ address1
+ address2
+ city
+ state
+ zip_post
+ country
+ email
+ timezone
+ phone
+ logo_img_path
+ }
+ }
+`;
+
module.exports = {
GET_BODYSHOP_STATUS,
GET_VEHICLE_BY_SHOP_VIN,
@@ -329,5 +348,6 @@ module.exports = {
DELETE_PARTS_ORDERS_BY_JOB_IDS,
UPSERT_JOBLINES,
GET_JOBLINE_IDS_BY_JOBID_UNQSEQ,
- UPDATE_JOBLINE_BY_PK
+ UPDATE_JOBLINE_BY_PK,
+ UPDATE_BODYSHOP_BY_ID
};
diff --git a/server/intellipay/lib/handleCommentBasedPayment.js b/server/intellipay/lib/handleCommentBasedPayment.js
index 535e92ab8..fd2ff3ef8 100644
--- a/server/intellipay/lib/handleCommentBasedPayment.js
+++ b/server/intellipay/lib/handleCommentBasedPayment.js
@@ -48,7 +48,9 @@ const handleCommentBasedPayment = async (values, decodedComment, logger, logMeta
payer: "Customer",
type: getPaymentType(ipMapping, values.cardtype),
jobid: p.jobid,
- date: moment(Date.now()),
+ date: moment()
+ .tz(bodyshop?.bodyshops_by_pk?.timezone ?? "UTC")
+ .format("YYYY-MM-DD"),
payment_responses: {
data: {
amount: values.total,
diff --git a/server/intellipay/lib/handleInvoiceBasedPayment.js b/server/intellipay/lib/handleInvoiceBasedPayment.js
index d5fc97b9c..34a1a5e8d 100644
--- a/server/intellipay/lib/handleInvoiceBasedPayment.js
+++ b/server/intellipay/lib/handleInvoiceBasedPayment.js
@@ -97,7 +97,9 @@ const handleInvoiceBasedPayment = async (values, logger, logMeta, res) => {
payer: "Customer",
type: getPaymentType(ipMapping, values.cardtype),
jobid: job.id,
- date: moment(Date.now())
+ date: moment()
+ .tz(bodyshop?.timezone ?? "UTC")
+ .format("YYYY-MM-DD")
}
});
diff --git a/server/job/patchJobStatus.js b/server/job/patchJobStatus.js
new file mode 100644
index 000000000..b3d3b2e38
--- /dev/null
+++ b/server/job/patchJobStatus.js
@@ -0,0 +1,40 @@
+const client = require("../graphql-client/graphql-client").client;
+const { UPDATE_JOB_BY_ID } = require("../integrations/partsManagement/partsManagement.queries");
+
+/**
+ * PATCH handler to update job status (parts management only)
+ * @param req
+ * @param res
+ * @returns {Promise}
+ */
+module.exports = async (req, res) => {
+ const { id } = req.params;
+ const { status } = req.body;
+ if (!status) {
+ return res.status(400).json({ error: "Missing required field: status" });
+ }
+ try {
+ // Fetch job to get shopid
+ const jobResp = await client.request(`query GetJob($id: uuid!) { jobs_by_pk(id: $id) { id shopid } }`, { id });
+ const job = jobResp.jobs_by_pk;
+ if (!job) {
+ return res.status(404).json({ error: "Job not found" });
+ }
+ // Fetch bodyshop to check external_shop_id
+ const shopResp = await client.request(
+ `query GetBodyshop($id: uuid!) { bodyshops_by_pk(id: $id) { id external_shop_id } }`,
+ { id: job.shopid }
+ );
+ if (!shopResp.bodyshops_by_pk || !shopResp.bodyshops_by_pk.external_shop_id) {
+ return res.status(400).json({ error: "Cannot patch: parent bodyshop does not have an external_shop_id." });
+ }
+ // Update job status
+ const updateResp = await client.request(UPDATE_JOB_BY_ID, { id, job: { status } });
+ if (!updateResp.update_jobs_by_pk) {
+ return res.status(404).json({ error: "Job not found after update" });
+ }
+ return res.json(updateResp.update_jobs_by_pk);
+ } catch (err) {
+ return res.status(500).json({ error: "Failed to update job status.", detail: err });
+ }
+};
diff --git a/server/parts-scan/parts-scan.js b/server/parts-scan/parts-scan.js
index 6822bded6..79eda54d6 100644
--- a/server/parts-scan/parts-scan.js
+++ b/server/parts-scan/parts-scan.js
@@ -82,22 +82,35 @@ exports.partsScan = async function (req, res) {
criticalIds.add(jobline.id);
}
if (update_field && update_value) {
- const result = await client.setHeaders({ Authorization: BearerToken }).request(queries.UPDATE_JOB_LINE, {
- lineId: jobline.id,
- line: { [update_field]: update_value, manual_line: true }
- });
-
- const auditResult = await client
- .setHeaders({ Authorization: BearerToken })
- .request(queries.INSERT_AUDIT_TRAIL, {
- auditObj: {
- bodyshopid: data.jobs_by_pk.bodyshop.id,
- jobid,
- operation: `Jobline (#${jobline.line_no} ${jobline.line_desc}/${jobline.id}) ${update_field} updated from ${jobline[update_field]} to ${update_value}. Lined marked as manual line.`,
- type: "partscanupdate",
- useremail: req.user.email
+ let actualUpdateField = update_field;
+ if (update_field === "part_number") {
+ // Determine which part number field to update based on the match
+ if (!jobline.oem_partno) {
+ actualUpdateField = "oem_partno";
+ } else {
+ if (regex) {
+ actualUpdateField = regex.test(jobline.oem_partno || "") ? "oem_partno" : "alt_partno";
+ } else {
+ actualUpdateField = jobline.oem_partno === value ? "oem_partno" : "alt_partno";
}
+ }
+ }
+ if (actualUpdateField) {
+ await client.setHeaders({ Authorization: BearerToken }).request(queries.UPDATE_JOB_LINE, {
+ lineId: jobline.id,
+ line: { [actualUpdateField]: update_value, manual_line: true }
});
+ }
+
+ await client.setHeaders({ Authorization: BearerToken }).request(queries.INSERT_AUDIT_TRAIL, {
+ auditObj: {
+ bodyshopid: data.jobs_by_pk.bodyshop.id,
+ jobid,
+ operation: `Jobline (#${jobline.line_no} ${jobline.line_desc}/${jobline.id}) ${update_field} updated from ${jobline[update_field]} to ${update_value}. Lined marked as manual line.`,
+ type: "partscanupdate",
+ useremail: req.user.email
+ }
+ });
}
//break; // No need to evaluate further rules for this jobline
diff --git a/server/routes/dataRoutes.js b/server/routes/dataRoutes.js
index 8e7bc04fd..c72a2a502 100644
--- a/server/routes/dataRoutes.js
+++ b/server/routes/dataRoutes.js
@@ -1,6 +1,6 @@
const express = require("express");
const router = express.Router();
-const { autohouse, claimscorp, chatter, kaizen, usageReport, podium, carfax } = require("../data/data");
+const { autohouse, claimscorp, chatter, kaizen, usageReport, podium, carfax, carfaxRps } = require("../data/data");
router.post("/ah", autohouse);
router.post("/cc", claimscorp);
@@ -9,5 +9,6 @@ router.post("/kaizen", kaizen);
router.post("/usagereport", usageReport);
router.post("/podium", podium);
router.post("/carfax", carfax);
+router.post("/carfaxrps", carfaxRps);
module.exports = router;
diff --git a/server/routes/intergrationRoutes.js b/server/routes/intergrationRoutes.js
index 50f870a9a..efe4b78ee 100644
--- a/server/routes/intergrationRoutes.js
+++ b/server/routes/intergrationRoutes.js
@@ -19,11 +19,15 @@ if (typeof VSSTA_INTEGRATION_SECRET === "string" && VSSTA_INTEGRATION_SECRET.len
if (typeof PARTS_MANAGEMENT_INTEGRATION_SECRET === "string" && PARTS_MANAGEMENT_INTEGRATION_SECRET.length > 0) {
const XML_BODY_LIMIT = "10mb"; // Set a limit for XML body size
- const partsManagementProvisioning = require("../integrations/partsManagement/endpoints/partsManagementProvisioning");
+ const {
+ partsManagementProvisioning,
+ patchPartsManagementProvisioning
+ } = require("../integrations/partsManagement/endpoints/partsManagementProvisioning");
const partsManagementDeprovisioning = require("../integrations/partsManagement/endpoints/partsManagementDeprovisioning");
const partsManagementIntegrationMiddleware = require("../middleware/partsManagementIntegrationMiddleware");
const partsManagementVehicleDamageEstimateAddRq = require("../integrations/partsManagement/endpoints/vehicleDamageEstimateAddRq");
const partsManagementVehicleDamageEstimateChqRq = require("../integrations/partsManagement/endpoints/vehicleDamageEstimateChgRq");
+ const patchJobStatus = require("../job/patchJobStatus");
/**
* Route to handle Vehicle Damage Estimate Add Request
@@ -55,6 +59,20 @@ if (typeof PARTS_MANAGEMENT_INTEGRATION_SECRET === "string" && PARTS_MANAGEMENT_
* Route to handle Parts Management Provisioning
*/
router.post("/parts-management/provision", partsManagementIntegrationMiddleware, partsManagementProvisioning);
+
+ /**
+ * PATCH route to update Parts Management Provisioning info
+ */
+ router.patch(
+ "/parts-management/provision/:id",
+ partsManagementIntegrationMiddleware,
+ patchPartsManagementProvisioning
+ );
+
+ /**
+ * PATCH route to update job status (parts management only)
+ */
+ router.patch("/parts-management/job/:id/status", partsManagementIntegrationMiddleware, patchJobStatus);
} else {
logger.logger.warn("PARTS_MANAGEMENT_INTEGRATION_SECRET is not set — skipping /parts-management/provision route");
}