diff --git a/apps/bridge-frontend/package.json b/apps/bridge-frontend/package.json index 5a56a05..3ee4f3b 100644 --- a/apps/bridge-frontend/package.json +++ b/apps/bridge-frontend/package.json @@ -20,8 +20,8 @@ "@mui/icons-material": "^5", "@mui/material": "^5", "@mui/material-nextjs": "^5.16.6", - "@mui/x-data-grid-pro": "^7.12.0", - "@mui/x-date-pickers-pro": "^7.12.0", + "@mui/x-data-grid-pro": "^7.12.1", + "@mui/x-date-pickers-pro": "^7.12.1", "@mui/x-license": "^7.12.0", "@link-stack/bridge-common": "*", "@link-stack/bridge-ui": "*", @@ -43,7 +43,7 @@ "react-timer-hook": "^3.0.7", "sharp": "^0.33.4", "tss-react": "^4.9.12", - "tsx": "^4.16.5", + "tsx": "^4.17.0", "@link-stack/ui": "*" }, "devDependencies": { diff --git a/apps/bridge-migrations/package.json b/apps/bridge-migrations/package.json index 528ad95..374e7e6 100644 --- a/apps/bridge-migrations/package.json +++ b/apps/bridge-migrations/package.json @@ -12,7 +12,7 @@ "dotenv": "^16.4.5", "kysely": "0.26.1", "pg": "^8.12.0", - "tsx": "^4.16.5" + "tsx": "^4.17.0" }, "devDependencies": { "@types/node": "^22", diff --git a/apps/bridge-whatsapp/package.json b/apps/bridge-whatsapp/package.json index 227abd4..5821e6c 100644 --- a/apps/bridge-whatsapp/package.json +++ b/apps/bridge-whatsapp/package.json @@ -20,7 +20,7 @@ "@link-stack/typescript-config": "*", "@types/node": "*", "dotenv-cli": "^7.4.2", - "tsx": "^4.16.5", + "tsx": "^4.17.0", "typescript": "^5.5.4" }, "scripts": { diff --git a/apps/bridge-worker/package.json b/apps/bridge-worker/package.json index 8b754d0..fcc665a 100644 --- a/apps/bridge-worker/package.json +++ b/apps/bridge-worker/package.json @@ -20,7 +20,7 @@ "jest": "^29.7.0", "kysely": "^0.27.3", "pg": "^8.12.0", - "remeda": "^2.10.0", + "remeda": "^2.11.0", "twilio": "^5.2.2" }, "devDependencies": { diff --git a/apps/bridge-worker/tasks/leafcutter/import-leafcutter.ts b/apps/bridge-worker/tasks/leafcutter/import-leafcutter.ts index 0170262..a3c3e4e 100644 --- a/apps/bridge-worker/tasks/leafcutter/import-leafcutter.ts +++ b/apps/bridge-worker/tasks/leafcutter/import-leafcutter.ts @@ -142,7 +142,7 @@ const sendToLeafcutter = async (tickets: LabelStudioTicket[]) => { }, body: JSON.stringify({ tickets: finalTickets }), }); - console.log({ result }); + }; */ const importLeafcutterTask = async (): Promise => { diff --git a/apps/leafcutter/package.json b/apps/leafcutter/package.json index e578e22..82c0386 100644 --- a/apps/leafcutter/package.json +++ b/apps/leafcutter/package.json @@ -22,8 +22,8 @@ "@mui/icons-material": "^5", "@mui/material": "^5", "@mui/material-nextjs": "^5.16.6", - "@mui/x-data-grid-pro": "^7.12.0", - "@mui/x-date-pickers-pro": "^7.12.0", + "@mui/x-data-grid-pro": "^7.12.1", + "@mui/x-date-pickers-pro": "^7.12.1", "@opensearch-project/opensearch": "^2.11.0", "cryptr": "^6.3.0", "date-fns": "^3.6.0", @@ -43,7 +43,7 @@ }, "devDependencies": { "@babel/core": "^7.25.2", - "@types/node": "^22.1.0", + "@types/node": "^22.2.0", "@types/react": "18.3.3", "@types/uuid": "^10.0.0", "babel-loader": "^9.1.3", diff --git a/apps/link/app/(main)/overview/[overview]/_components/TicketCreateDialog.tsx b/apps/link/app/(main)/overview/[overview]/_components/TicketCreateDialog.tsx index 264357a..240e2fd 100644 --- a/apps/link/app/(main)/overview/[overview]/_components/TicketCreateDialog.tsx +++ b/apps/link/app/(main)/overview/[overview]/_components/TicketCreateDialog.tsx @@ -59,7 +59,6 @@ export const TicketCreateDialog: FC = ({ useEffect(() => { const fetchUsers = async () => { const result = await getCustomersAction(); - console.log({ result }); setCustomers(result); }; diff --git a/apps/link/app/_actions/groups.ts b/apps/link/app/_actions/groups.ts index b531b98..6974252 100644 --- a/apps/link/app/_actions/groups.ts +++ b/apps/link/app/_actions/groups.ts @@ -3,14 +3,19 @@ import { executeREST } from "app/_lib/zammad"; export const getGroupsAction = async () => { - const groups = await executeREST({ - path: "/api/v1/groups", - }); - const allGroups = groups ?? []; - const formattedGroups = allGroups.map((group: any) => ({ - label: group.name, - value: `gid://zammad/Group/${group.id}`, - })); + try { + const groups = await executeREST({ + path: "/api/v1/groups", + }); + const allGroups = groups ?? []; + const formattedGroups = allGroups.map((group: any) => ({ + label: group.name, + value: `gid://zammad/Group/${group.id}`, + })); - return formattedGroups; + return formattedGroups; + } catch (e) { + console.error(e); + return []; + } }; diff --git a/apps/link/app/_actions/overviews.ts b/apps/link/app/_actions/overviews.ts index 2e796e6..0371b6b 100644 --- a/apps/link/app/_actions/overviews.ts +++ b/apps/link/app/_actions/overviews.ts @@ -16,75 +16,82 @@ const overviewLookup = { }; export const getOverviewTicketCountsAction = async () => { - const recent = await executeREST({ path: "/api/v1/recent_view" }); - const countResult = await executeGraphQL({ - query: getTicketOverviewCountsQuery, - }); - const overviews = countResult?.ticketOverviews?.edges ?? []; - const counts = overviews.reduce((acc: any, overview: any) => { - const name = overview.node.name; - const key = Object.keys(overviewLookup) - .find((k) => overviewLookup[k] === name) - ?.toLowerCase(); - if (key) { - acc[key] = overview.node.ticketCount ?? 0; - } - return acc; - }, {}); - counts.recent = recent.length; + try { + const recent = await executeREST({ path: "/api/v1/recent_view" }); + const countResult = await executeGraphQL({ + query: getTicketOverviewCountsQuery, + }); + const overviews = countResult?.ticketOverviews?.edges ?? []; + const counts = overviews.reduce((acc: any, overview: any) => { + const name = overview.node.name; + const key = Object.keys(overviewLookup) + .find((k) => overviewLookup[k] === name) + ?.toLowerCase(); + if (key) { + acc[key] = overview.node.ticketCount ?? 0; + } + return acc; + }, {}); + counts.recent = recent.length; - return counts; + return counts; + } catch (e) { + console.error(e); + return {}; + } }; export const getOverviewTicketsAction = async (name: string) => { let tickets = []; - let error = null; - if (name === "Recent") { - const recent = await executeREST({ path: "/api/v1/recent_view" }); + try { + if (name === "Recent") { + const recent = await executeREST({ path: "/api/v1/recent_view" }); - for (const rec of recent) { - const tkt = await executeREST({ - path: `/api/v1/tickets/${rec.o_id}`, + for (const rec of recent) { + const tkt = await executeREST({ + path: `/api/v1/tickets/${rec.o_id}`, + }); + tickets.push({ + ...tkt, + internalId: tkt.id, + createdAt: tkt.created_at, + updatedAt: tkt.updated_at, + }); + } + } else { + const fullName = overviewLookup[name]; + const countResult = await executeGraphQL({ + query: getTicketOverviewCountsQuery, }); - tickets.push({ - ...tkt, - internalId: tkt.id, - createdAt: tkt.created_at, - updatedAt: tkt.updated_at, + const overviewID = countResult?.ticketOverviews?.edges?.find( + (overview: any) => overview.node.name === fullName, + )?.node?.id; + + const ticketsResult = await executeGraphQL({ + query: getTicketsByOverviewQuery, + variables: { overviewId: overviewID, pageSize: 250 }, }); + + const edges = ticketsResult?.ticketsByOverview?.edges; + if (edges) { + tickets = edges.map((edge: any) => edge.node); + } } - } else { - const fullName = overviewLookup[name]; - const countResult = await executeGraphQL({ - query: getTicketOverviewCountsQuery, - }); - const overviewID = countResult?.ticketOverviews?.edges?.find( - (overview: any) => overview.node.name === fullName, - )?.node?.id; - console.log({ overviewID }); - - const ticketsResult = await executeGraphQL({ - query: getTicketsByOverviewQuery, - variables: { overviewId: overviewID, pageSize: 250 }, + const sortedTickets = tickets.sort((a: any, b: any) => { + if (a.internalId < b.internalId) { + return 1; + } + if (a.internalId > b.internalId) { + return -1; + } + return 0; }); - const edges = ticketsResult?.ticketsByOverview?.edges; - if (edges) { - tickets = edges.map((edge: any) => edge.node); - } + return { tickets: sortedTickets }; + } catch (e) { + console.error(e); + return { tickets, message: e.message ?? "" }; } - - const sortedTickets = tickets.sort((a: any, b: any) => { - if (a.internalId < b.internalId) { - return 1; - } - if (a.internalId > b.internalId) { - return -1; - } - return 0; - }); - - return { tickets: sortedTickets, error }; }; diff --git a/apps/link/app/_actions/search.ts b/apps/link/app/_actions/search.ts index 8a5b7b2..5397afa 100644 --- a/apps/link/app/_actions/search.ts +++ b/apps/link/app/_actions/search.ts @@ -3,10 +3,15 @@ import { executeGraphQL } from "app/_lib/zammad"; import { searchQuery } from "@/app/_graphql/searchQuery"; export const searchAllAction = async (query: string, limit: number) => { - const result = await executeGraphQL({ - query: searchQuery, - variables: { search: query, limit }, - }); + try { + const result = await executeGraphQL({ + query: searchQuery, + variables: { search: query, limit }, + }); - return result?.search; + return result?.search; + } catch (e) { + console.error(e); + return []; + } }; diff --git a/apps/link/app/_actions/tickets.ts b/apps/link/app/_actions/tickets.ts index cdecf9e..9e04d72 100644 --- a/apps/link/app/_actions/tickets.ts +++ b/apps/link/app/_actions/tickets.ts @@ -15,7 +15,7 @@ export const createTicketAction = async ( try { const ticket = { groupId: formData.get("groupId"), - customerId: `gid://zammad/User/3`, // { email: formData.get("customerId") }, + customerId: formData.get("customerId"), title: formData.get("title"), article: { internal: true, @@ -23,16 +23,13 @@ export const createTicketAction = async ( }, }; - console.log({ ticket }); - - const result = await executeGraphQL({ + await executeGraphQL({ query: createTicketMutation, variables: { input: ticket, }, }); - console.log({ result }); return { ...currentState, values: ticket, @@ -61,7 +58,6 @@ export const createTicketArticleAction = async ( }, }); - console.log({ result }); return { result, success: true, @@ -114,10 +110,8 @@ export const updateTicketAction = async ( tags: ticketInfo.tags, }, }); - console.log({ tagsResult }); } - console.log({ result }); return { result, success: true, @@ -132,55 +126,80 @@ export const updateTicketAction = async ( }; export const getTicketAction = async (id: string) => { - const ticketData = await executeGraphQL({ - query: getTicketQuery, - variables: { ticketId: `gid://zammad/Ticket/${id}` }, - }); - console.log({ td: ticketData.ticket }); - return ticketData?.ticket; + try { + const ticketData = await executeGraphQL({ + query: getTicketQuery, + variables: { ticketId: `gid://zammad/Ticket/${id}` }, + }); + + return ticketData?.ticket; + } catch (e) { + console.error(e); + return {}; + } }; export const getTicketArticlesAction = async (id: string) => { - const ticketData = await executeGraphQL({ - query: getTicketArticlesQuery, - variables: { ticketId: `gid://zammad/Ticket/${id}` }, - }); + try { + const ticketData = await executeGraphQL({ + query: getTicketArticlesQuery, + variables: { ticketId: `gid://zammad/Ticket/${id}` }, + }); - return ticketData?.ticketArticles; + return ticketData?.ticketArticles; + } catch (e) { + console.error(e); + return {}; + } }; export const getTicketStatesAction = async () => { - const states = await executeREST({ - path: "/api/v1/ticket_states", - }); + try { + const states = await executeREST({ + path: "/api/v1/ticket_states", + }); - const formattedStates = - states?.map((state: any) => ({ - value: `gid://zammad/Ticket::State/${state.id}`, - label: state.name, - })) ?? []; + const formattedStates = + states?.map((state: any) => ({ + value: `gid://zammad/Ticket::State/${state.id}`, + label: state.name, + })) ?? []; - return formattedStates; + return formattedStates; + } catch (e) { + console.error(e); + return []; + } }; export const getTagsAction = async () => { - const { tags } = await executeREST({ - path: "/api/v1/tags", - }); + try { + const { tags } = await executeREST({ + path: "/api/v1/tags", + }); - return tags; + return tags; + } catch (e) { + console.error(e); + return []; + } }; export const getTicketPrioritiesAction = async () => { - const priorities = await executeREST({ - path: "/api/v1/ticket_priorities", - }); + try { + const priorities = await executeREST({ + path: "/api/v1/ticket_priorities", + }); - const formattedPriorities = - priorities?.map((priority: any) => ({ - value: `gid://zammad/Ticket::Priority/${priority.id}`, - label: priority.name, - })) ?? []; + const formattedPriorities = + priorities?.map((priority: any) => ({ + value: `gid://zammad/Ticket::Priority/${priority.id}`, + label: priority.name, + })) ?? []; - return formattedPriorities; + return formattedPriorities; + } catch (e) { + console.error(e); + return []; + } }; diff --git a/apps/link/app/_actions/users.ts b/apps/link/app/_actions/users.ts index 22f101c..c6a4f38 100644 --- a/apps/link/app/_actions/users.ts +++ b/apps/link/app/_actions/users.ts @@ -3,48 +3,63 @@ import { executeREST } from "app/_lib/zammad"; export const getAgentsAction = async () => { - const users = await executeREST({ - path: "/api/v1/users", - }); - const agents = users?.filter((user: any) => user.role_ids.includes(2)) ?? []; - const formattedAgents = agents - .map((agent: any) => ({ - label: `${agent.firstname} ${agent.lastname}`, - value: `gid://zammad/User/${agent.id}`, - })) - .sort((a: any, b: any) => a.label.localeCompare(b.label)); + try { + const users = await executeREST({ + path: "/api/v1/users", + }); + const agents = + users?.filter((user: any) => user.role_ids.includes(2)) ?? []; + const formattedAgents = agents + .map((agent: any) => ({ + label: `${agent.firstname} ${agent.lastname}`, + value: `gid://zammad/User/${agent.id}`, + })) + .sort((a: any, b: any) => a.label.localeCompare(b.label)); - return formattedAgents; + return formattedAgents; + } catch (e) { + console.error(e); + return []; + } }; export const getCustomersAction = async () => { - const users = await executeREST({ - path: "/api/v1/users", - }); - console.log({ users }); - const customers = - users?.filter((user: any) => user.role_ids.includes(3)) ?? []; - const formattedCustomers = customers - .map((customer: any) => ({ - label: customer.login, - value: `gid://zammad/User/${customer.id}`, - })) - .sort((a: any, b: any) => a.label.localeCompare(b.label)); + try { + const users = await executeREST({ + path: "/api/v1/users", + }); + const customers = + users?.filter((user: any) => user.role_ids.includes(3)) ?? []; + const formattedCustomers = customers + .map((customer: any) => ({ + label: customer.login, + value: `gid://zammad/User/${customer.id}`, + })) + .sort((a: any, b: any) => a.label.localeCompare(b.label)); - return formattedCustomers; + return formattedCustomers; + } catch (e) { + console.error(e); + return []; + } }; export const getUsersAction = async () => { - const users = await executeREST({ - path: "/api/v1/users", - }); - console.log({ users }); - const formattedUsers = users - .map((customer: any) => ({ - label: customer.login, - value: `gid://zammad/User/${customer.id}`, - })) - .sort((a: any, b: any) => a.label.localeCompare(b.label)); + try { + const users = await executeREST({ + path: "/api/v1/users", + }); + console.log({ users }); + const formattedUsers = users + .map((customer: any) => ({ + label: customer.login, + value: `gid://zammad/User/${customer.id}`, + })) + .sort((a: any, b: any) => a.label.localeCompare(b.label)); - return formattedUsers; + return formattedUsers; + } catch (e) { + console.error(e); + return []; + } }; diff --git a/apps/link/app/_components/CSRFProvider.tsx b/apps/link/app/_components/CSRFProvider.tsx index 70edce6..39e197f 100644 --- a/apps/link/app/_components/CSRFProvider.tsx +++ b/apps/link/app/_components/CSRFProvider.tsx @@ -1,22 +1,36 @@ "use client"; -import { FC, PropsWithChildren, useEffect } from "react"; +import { FC, PropsWithChildren, useState, useEffect } from "react"; +import { useRouter } from "next/navigation"; import { useSession } from "next-auth/react"; export const CSRFProvider: FC = ({ children }) => { const { data: session, status, update } = useSession(); + const router = useRouter(); + const [redirectCount, setRedirectCount] = useState(0); useEffect(() => { const interval = setInterval(async () => { + console.log("Checking session status..."); + console.log(status); if (status === "authenticated") { const response = await fetch("/api/v1/users/me"); - const token = response.headers.get("CSRF-Token"); - update({ csrfToken: token }); + console.log(response.ok); + console.log(!!router); + if (!response.ok && !!router) { + console.log("redirecting"); + setRedirectCount(redirectCount + 1); + router.push("/setup"); + } else { + setRedirectCount(0); + const token = response.headers.get("CSRF-Token"); + update({ csrfToken: token }); + } } - }, 30000); + }, 15000); return () => clearInterval(interval); - }, [session, status, update]); + }, [session, status, update, router]); return children; }; diff --git a/apps/link/app/_lib/zammad.ts b/apps/link/app/_lib/zammad.ts index 712f8e9..71b71b3 100644 --- a/apps/link/app/_lib/zammad.ts +++ b/apps/link/app/_lib/zammad.ts @@ -1,4 +1,5 @@ import { getServerSession } from "app/_lib/authentication"; +import { redirect } from "next/navigation"; import { cookies } from "next/headers"; const getHeaders = async () => { diff --git a/apps/link/middleware.ts b/apps/link/middleware.ts index 69e1cbe..e1ffdbd 100644 --- a/apps/link/middleware.ts +++ b/apps/link/middleware.ts @@ -10,12 +10,12 @@ const rewriteURL = ( const destinationURL = request.url.replace(originBaseURL, destinationBaseURL); console.log(`Rewriting ${request.url} to ${destinationURL}`); const requestHeaders = new Headers(request.headers); - // console.log({ beforeHeaders: requestHeaders }); + for (const [key, value] of Object.entries(headers)) { requestHeaders.set(key, value as string); } requestHeaders.delete("connection"); - // console.log({ afterHeaders: requestHeaders }); + return NextResponse.rewrite(new URL(destinationURL), { request: { headers: requestHeaders }, }); @@ -26,7 +26,15 @@ const checkRewrites = async (request: NextRequestWithAuth) => { const zammadURL = process.env.ZAMMAD_URL ?? "http://zammad-nginx:8080"; const opensearchDashboardsURL = process.env.OPENSEARCH_DASHBOARDS_URL ?? "http://macmini:5601"; - const zammadPaths = ["/zammad", "/api/v1", "/auth/sso", "/assets", "/mobile"]; + const zammadPaths = [ + "/zammad", + "/api/v1", + "/auth/sso", + "/assets", + "/mobile", + "/graphql", + "/cable", + ]; const { token } = request.nextauth; const email = token?.email?.toLowerCase() ?? "unknown"; let headers = { "x-forwarded-user": email }; diff --git a/apps/link/package.json b/apps/link/package.json index 5c2993a..63d1a78 100644 --- a/apps/link/package.json +++ b/apps/link/package.json @@ -24,8 +24,8 @@ "@mui/icons-material": "^5", "@mui/material": "^5", "@mui/material-nextjs": "^5.16.6", - "@mui/x-data-grid-pro": "^7.12.0", - "@mui/x-date-pickers-pro": "^7.12.0", + "@mui/x-data-grid-pro": "^7.12.1", + "@mui/x-date-pickers-pro": "^7.12.1", "date-fns": "^3.6.0", "graphql": "^16.9.0", "graphql-request": "^7.1.0", @@ -42,7 +42,7 @@ }, "devDependencies": { "@babel/core": "^7.25.2", - "@types/node": "^22.1.0", + "@types/node": "^22.2.0", "@types/react": "18.3.3", "@types/uuid": "^10.0.0", "babel-loader": "^9.1.3", diff --git a/package-lock.json b/package-lock.json index 6e0e1b6..34caa19 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@link-stack", - "version": "2.2.0", + "version": "2.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@link-stack", - "version": "2.2.0", + "version": "2.1.0", "license": "AGPL-3.0-or-later", "workspaces": [ "apps/*", @@ -37,8 +37,8 @@ "@mui/icons-material": "^5", "@mui/material": "^5", "@mui/material-nextjs": "^5.16.6", - "@mui/x-data-grid-pro": "^7.12.0", - "@mui/x-date-pickers-pro": "^7.12.0", + "@mui/x-data-grid-pro": "^7.12.1", + "@mui/x-date-pickers-pro": "^7.12.1", "@mui/x-license": "^7.12.0", "date-fns": "^3.6.0", "dotenv": "^16.4.5", @@ -57,7 +57,7 @@ "react-timer-hook": "^3.0.7", "sharp": "^0.33.4", "tss-react": "^4.9.12", - "tsx": "^4.16.5" + "tsx": "^4.17.0" }, "devDependencies": { "@link-stack/eslint-config": "*", @@ -76,7 +76,7 @@ "dotenv": "^16.4.5", "kysely": "0.26.1", "pg": "^8.12.0", - "tsx": "^4.16.5" + "tsx": "^4.17.0" }, "devDependencies": { "@link-stack/eslint-config": "*", @@ -106,7 +106,7 @@ "@link-stack/typescript-config": "*", "@types/node": "*", "dotenv-cli": "^7.4.2", - "tsx": "^4.16.5", + "tsx": "^4.17.0", "typescript": "^5.5.4" } }, @@ -207,7 +207,7 @@ "jest": "^29.7.0", "kysely": "^0.27.3", "pg": "^8.12.0", - "remeda": "^2.10.0", + "remeda": "^2.11.0", "twilio": "^5.2.2" }, "devDependencies": { @@ -246,8 +246,8 @@ "@mui/icons-material": "^5", "@mui/material": "^5", "@mui/material-nextjs": "^5.16.6", - "@mui/x-data-grid-pro": "^7.12.0", - "@mui/x-date-pickers-pro": "^7.12.0", + "@mui/x-data-grid-pro": "^7.12.1", + "@mui/x-date-pickers-pro": "^7.12.1", "@opensearch-project/opensearch": "^2.11.0", "cryptr": "^6.3.0", "date-fns": "^3.6.0", @@ -267,7 +267,7 @@ }, "devDependencies": { "@babel/core": "^7.25.2", - "@types/node": "^22.1.0", + "@types/node": "^22.2.0", "@types/react": "18.3.3", "@types/uuid": "^10.0.0", "babel-loader": "^9.1.3", @@ -299,8 +299,8 @@ "@mui/icons-material": "^5", "@mui/material": "^5", "@mui/material-nextjs": "^5.16.6", - "@mui/x-data-grid-pro": "^7.12.0", - "@mui/x-date-pickers-pro": "^7.12.0", + "@mui/x-data-grid-pro": "^7.12.1", + "@mui/x-date-pickers-pro": "^7.12.1", "date-fns": "^3.6.0", "graphql": "^16.9.0", "graphql-request": "^7.1.0", @@ -317,7 +317,7 @@ }, "devDependencies": { "@babel/core": "^7.25.2", - "@types/node": "^22.1.0", + "@types/node": "^22.2.0", "@types/react": "18.3.3", "@types/uuid": "^10.0.0", "babel-loader": "^9.1.3", @@ -1057,7 +1057,6 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" @@ -1115,7 +1114,6 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", - "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.24.7" @@ -1242,7 +1240,6 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" @@ -2621,9 +2618,9 @@ "license": "MIT" }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz", + "integrity": "sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==", "cpu": [ "ppc64" ], @@ -2633,13 +2630,13 @@ "aix" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.0.tgz", + "integrity": "sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==", "cpu": [ "arm" ], @@ -2649,13 +2646,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz", + "integrity": "sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==", "cpu": [ "arm64" ], @@ -2665,13 +2662,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.0.tgz", + "integrity": "sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==", "cpu": [ "x64" ], @@ -2681,13 +2678,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", + "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", "cpu": [ "arm64" ], @@ -2697,13 +2694,13 @@ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz", + "integrity": "sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==", "cpu": [ "x64" ], @@ -2713,13 +2710,13 @@ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz", + "integrity": "sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==", "cpu": [ "arm64" ], @@ -2729,13 +2726,13 @@ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz", + "integrity": "sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==", "cpu": [ "x64" ], @@ -2745,13 +2742,13 @@ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz", + "integrity": "sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==", "cpu": [ "arm" ], @@ -2761,13 +2758,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz", + "integrity": "sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==", "cpu": [ "arm64" ], @@ -2777,13 +2774,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz", + "integrity": "sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==", "cpu": [ "ia32" ], @@ -2793,13 +2790,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz", + "integrity": "sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==", "cpu": [ "loong64" ], @@ -2809,13 +2806,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz", + "integrity": "sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==", "cpu": [ "mips64el" ], @@ -2825,13 +2822,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz", + "integrity": "sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==", "cpu": [ "ppc64" ], @@ -2841,13 +2838,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz", + "integrity": "sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==", "cpu": [ "riscv64" ], @@ -2857,13 +2854,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz", + "integrity": "sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==", "cpu": [ "s390x" ], @@ -2873,13 +2870,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz", + "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==", "cpu": [ "x64" ], @@ -2889,13 +2886,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz", + "integrity": "sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==", "cpu": [ "x64" ], @@ -2905,13 +2902,29 @@ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz", + "integrity": "sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz", + "integrity": "sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==", "cpu": [ "x64" ], @@ -2921,13 +2934,13 @@ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz", + "integrity": "sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==", "cpu": [ "x64" ], @@ -2937,13 +2950,13 @@ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz", + "integrity": "sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==", "cpu": [ "arm64" ], @@ -2953,13 +2966,13 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz", + "integrity": "sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==", "cpu": [ "ia32" ], @@ -2969,13 +2982,13 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz", + "integrity": "sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==", "cpu": [ "x64" ], @@ -2985,7 +2998,7 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@eshaz/web-worker": { @@ -4672,9 +4685,9 @@ } }, "node_modules/@molt/command/node_modules/type-fest": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.23.0.tgz", - "integrity": "sha512-ZiBujro2ohr5+Z/hZWHESLz3g08BBdrdLMieYFULJO+tWc437sn8kQsWLJoZErY8alNhxre9K4p3GURAG11n+w==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.24.0.tgz", + "integrity": "sha512-spAaHzc6qre0TlZQQ2aA/nGMe+2Z/wyGk5Z+Ru2VUfdNwT6kWO6TjevOlpebsATEG1EIQ2sOiDszud3lO5mt/Q==", "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=16" @@ -4693,9 +4706,9 @@ } }, "node_modules/@mui/core-downloads-tracker": { - "version": "5.16.6", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.16.6.tgz", - "integrity": "sha512-kytg6LheUG42V8H/o/Ptz3olSO5kUXW9zF0ox18VnblX6bO2yif1FPItgc3ey1t5ansb1+gbe7SatntqusQupg==", + "version": "5.16.7", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.16.7.tgz", + "integrity": "sha512-RtsCt4Geed2/v74sbihWzzRs+HsIQCfclHeORh5Ynu2fS4icIKozcSubwuG7vtzq2uW3fOR1zITSP84TNt2GoQ==", "license": "MIT", "funding": { "type": "opencollective", @@ -4703,9 +4716,9 @@ } }, "node_modules/@mui/icons-material": { - "version": "5.16.6", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.16.6.tgz", - "integrity": "sha512-ceNGjoXheH9wbIFa1JHmSc9QVjJUvh18KvHrR4/FkJCSi9HXJ+9ee1kUhCOEFfuxNF8UB6WWVrIUOUgRd70t0A==", + "version": "5.16.7", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.16.7.tgz", + "integrity": "sha512-UrGwDJCXEszbDI7yV047BYU5A28eGJ79keTCP4cc74WyncuVrnurlmIRxaHL8YK+LI1Kzq+/JM52IAkNnv4u+Q==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9" @@ -4729,14 +4742,14 @@ } }, "node_modules/@mui/material": { - "version": "5.16.6", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.16.6.tgz", - "integrity": "sha512-0LUIKBOIjiFfzzFNxXZBRAyr9UQfmTAFzbt6ziOU2FDXhorNN2o3N9/32mNJbCA8zJo2FqFU6d3dtoqUDyIEfA==", + "version": "5.16.7", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.16.7.tgz", + "integrity": "sha512-cwwVQxBhK60OIOqZOVLFt55t01zmarKJiJUWbk0+8s/Ix5IaUzAShqlJchxsIQ4mSrWqgcKCCXKtIlG5H+/Jmg==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", - "@mui/core-downloads-tracker": "^5.16.6", - "@mui/system": "^5.16.6", + "@mui/core-downloads-tracker": "^5.16.7", + "@mui/system": "^5.16.7", "@mui/types": "^7.2.15", "@mui/utils": "^5.16.6", "@popperjs/core": "^2.11.8", @@ -4868,9 +4881,9 @@ } }, "node_modules/@mui/system": { - "version": "5.16.6", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.16.6.tgz", - "integrity": "sha512-5xgyJjBIMPw8HIaZpfbGAaFYPwImQn7Nyh+wwKWhvkoIeDosQ1ZMVrbTclefi7G8hNmqhip04duYwYpbBFnBgw==", + "version": "5.16.7", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.16.7.tgz", + "integrity": "sha512-Jncvs/r/d/itkxh7O7opOunTqbbSSzMTHzZkNLM+FjAOg+cYAZHrPDlYe1ZGKUYORwwb2XexlWnpZp0kZ4AHuA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", @@ -4952,9 +4965,9 @@ } }, "node_modules/@mui/x-data-grid": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/@mui/x-data-grid/-/x-data-grid-7.12.0.tgz", - "integrity": "sha512-5cS/v0PFMfm2na6iC77eeM/63m+gu4YYQcFycvGY6i5qm6ZywHzdcyXxx13FENKPclY1p9i19f4t4iuYW2F9Eg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@mui/x-data-grid/-/x-data-grid-7.12.1.tgz", + "integrity": "sha512-/l9AslZKoHFfOultD2ehWIxRGuBI0RUwbhVbpAPwNP3ouDbTH0eyWfd5f6KCGhcUbG6xfceiOuTNr7uaPHqKiA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.25.0", @@ -4973,21 +4986,31 @@ "url": "https://opencollective.com/mui-org" }, "peerDependencies": { + "@emotion/react": "^11.9.0", + "@emotion/styled": "^11.8.1", "@mui/material": "^5.15.14", "react": "^17.0.0 || ^18.0.0", "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } } }, "node_modules/@mui/x-data-grid-pro": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/@mui/x-data-grid-pro/-/x-data-grid-pro-7.12.0.tgz", - "integrity": "sha512-BgPK/lgFn8Zhg5jbHAkmsqG3FxLu2CQKu7q/8Q55AskkF9GNVj0GXbv0Ql1Kfu2GonmmffpOdbTw9i4VwzX+OQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@mui/x-data-grid-pro/-/x-data-grid-pro-7.12.1.tgz", + "integrity": "sha512-IPPIREYVdY4MdDAdd/sjxjwEgLs9zaNGhlpm5VOaOlKoJkE5O0kmbBz/8M53125hVMZSAojE0eEwyOXVRrxkKQ==", "license": "SEE LICENSE IN LICENSE", "dependencies": { "@babel/runtime": "^7.25.0", "@mui/system": "^5.16.5", "@mui/utils": "^5.16.5", - "@mui/x-data-grid": "7.12.0", + "@mui/x-data-grid": "7.12.1", "@mui/x-internals": "7.12.0", "@mui/x-license": "7.12.0", "@types/format-util": "^1.0.4", @@ -4999,15 +5022,25 @@ "node": ">=14.0.0" }, "peerDependencies": { + "@emotion/react": "^11.9.0", + "@emotion/styled": "^11.8.1", "@mui/material": "^5.15.14", "react": "^17.0.0 || ^18.0.0", "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } } }, "node_modules/@mui/x-date-pickers": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-7.12.0.tgz", - "integrity": "sha512-WU5C7QNfSpJ9cP8vl2sY7q35NW+0TUMgEy+sl98fcPhLckq3cgV1wnVxoZnQZ3BxVQAtx+7ag/MpefU03vJcVw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-7.12.1.tgz", + "integrity": "sha512-Zj8kt3SCQbJp1qhMi+A3I4KqB8i5OY2Q11mdOEathFhqN/SQm1sUjIa1G09cGP1dPDgK1a6KM6qJGNtcw/nuWA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.25.0", @@ -5070,15 +5103,15 @@ } }, "node_modules/@mui/x-date-pickers-pro": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/@mui/x-date-pickers-pro/-/x-date-pickers-pro-7.12.0.tgz", - "integrity": "sha512-fKffbVKUJh8ySKRjW7ha+UUL4d826eOibJJfJPXN5s5MVzRtYQnOFKkMFPubi9RkHVFW2rRvoI0TW8PxJ4Pc7Q==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@mui/x-date-pickers-pro/-/x-date-pickers-pro-7.12.1.tgz", + "integrity": "sha512-fajiwP6knE5IpkYITlt4jmf+YJsyroecxCirf58BI7LzircHd4w8ElGSYrSAanTgXPE/Hgtw7y7uXsahdEUxmw==", "license": "SEE LICENSE IN LICENSE", "dependencies": { "@babel/runtime": "^7.25.0", "@mui/system": "^5.16.5", "@mui/utils": "^5.16.5", - "@mui/x-date-pickers": "7.12.0", + "@mui/x-date-pickers": "7.12.1", "@mui/x-license": "7.12.0", "clsx": "^2.1.1", "prop-types": "^15.8.1", @@ -5793,9 +5826,9 @@ } }, "node_modules/@thi.ng/bitstream": { - "version": "2.2.66", - "resolved": "https://registry.npmjs.org/@thi.ng/bitstream/-/bitstream-2.2.66.tgz", - "integrity": "sha512-mErQyNseLN6DMeHVj7PEgYGvkVtEzF8Okjgy8UhMqQKK2qfkM419CbNfCOIL+Nevvy2nDVy8zcWNB9F/x+sKhA==", + "version": "2.2.67", + "resolved": "https://registry.npmjs.org/@thi.ng/bitstream/-/bitstream-2.2.67.tgz", + "integrity": "sha512-Ak7xiUZUuPCTT3XvTmnLL6PTYow9EFPfSGNUT4yblHiAduM20GNdwOiYSWreH/l808GYX433UPj3J+M3Pc/FXA==", "funding": [ { "type": "github", @@ -5808,16 +5841,16 @@ ], "license": "Apache-2.0", "dependencies": { - "@thi.ng/errors": "^2.5.13" + "@thi.ng/errors": "^2.5.14" }, "engines": { "node": ">=18" } }, "node_modules/@thi.ng/errors": { - "version": "2.5.13", - "resolved": "https://registry.npmjs.org/@thi.ng/errors/-/errors-2.5.13.tgz", - "integrity": "sha512-wutJa2in1sTBSrYqW15Y+GxOeHP2oHUWkNww1e3eoNK05k7EaIf9cAaOU1SKiRlimtVXqIsWqeHpz8lQPePU8Q==", + "version": "2.5.14", + "resolved": "https://registry.npmjs.org/@thi.ng/errors/-/errors-2.5.14.tgz", + "integrity": "sha512-V/X3M4jhVHXxRF9ePEw6QYi6gST1dsXk0YYu7SOM+aKEl0uoirE2H2Y+2dV4Q7ER1l9EH5d33FNxsoMN9VhTfQ==", "funding": [ { "type": "github", @@ -6093,9 +6126,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.1.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.1.0.tgz", - "integrity": "sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw==", + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.2.0.tgz", + "integrity": "sha512-bm6EG6/pCpkxDf/0gDNDdtDILMOHgaQBVOJGdwsqClnxA3xL6jtMv76rLBc006RVMWbmaf0xbmom4Z/5o2nRkQ==", "license": "MIT", "dependencies": { "undici-types": "~6.13.0" @@ -6151,9 +6184,9 @@ } }, "node_modules/@types/react-transition-group": { - "version": "4.4.10", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", - "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", + "version": "4.4.11", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.11.tgz", + "integrity": "sha512-RM05tAniPZ5DZPzzNFP+DmrcOdD0efDUxMy3145oljWSl3x9ZV5vhme98gTxFrj2lhXvmGNnUiuDyJgY9IKkNA==", "license": "MIT", "dependencies": { "@types/react": "*" @@ -6200,16 +6233,16 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.0.1.tgz", - "integrity": "sha512-5g3Y7GDFsJAnY4Yhvk8sZtFfV6YNF2caLzjrRPUBzewjPCaj0yokePB4LJSobyCzGMzjZZYFbwuzbfDHlimXbQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.1.0.tgz", + "integrity": "sha512-LlNBaHFCEBPHyD4pZXb35mzjGkuGKXU5eeCA1SxvHfiRES0E82dOounfVpL4DCqYvJEKab0bZIA0gCRpdLKkCw==", "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.0.1", - "@typescript-eslint/type-utils": "8.0.1", - "@typescript-eslint/utils": "8.0.1", - "@typescript-eslint/visitor-keys": "8.0.1", + "@typescript-eslint/scope-manager": "8.1.0", + "@typescript-eslint/type-utils": "8.1.0", + "@typescript-eslint/utils": "8.1.0", + "@typescript-eslint/visitor-keys": "8.1.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -6233,15 +6266,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.0.1.tgz", - "integrity": "sha512-5IgYJ9EO/12pOUwiBKFkpU7rS3IU21mtXzB81TNwq2xEybcmAZrE9qwDtsb5uQd9aVO9o0fdabFyAmKveXyujg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.1.0.tgz", + "integrity": "sha512-U7iTAtGgJk6DPX9wIWPPOlt1gO57097G06gIcl0N0EEnNw8RGD62c+2/DiP/zL7KrkqnnqF7gtFGR7YgzPllTA==", "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "8.0.1", - "@typescript-eslint/types": "8.0.1", - "@typescript-eslint/typescript-estree": "8.0.1", - "@typescript-eslint/visitor-keys": "8.0.1", + "@typescript-eslint/scope-manager": "8.1.0", + "@typescript-eslint/types": "8.1.0", + "@typescript-eslint/typescript-estree": "8.1.0", + "@typescript-eslint/visitor-keys": "8.1.0", "debug": "^4.3.4" }, "engines": { @@ -6261,13 +6294,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.0.1.tgz", - "integrity": "sha512-NpixInP5dm7uukMiRyiHjRKkom5RIFA4dfiHvalanD2cF0CLUuQqxfg8PtEUo9yqJI2bBhF+pcSafqnG3UBnRQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.1.0.tgz", + "integrity": "sha512-DsuOZQji687sQUjm4N6c9xABJa7fjvfIdjqpSIIVOgaENf2jFXiM9hIBZOL3hb6DHK9Nvd2d7zZnoMLf9e0OtQ==", "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.0.1", - "@typescript-eslint/visitor-keys": "8.0.1" + "@typescript-eslint/types": "8.1.0", + "@typescript-eslint/visitor-keys": "8.1.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6278,13 +6311,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.0.1.tgz", - "integrity": "sha512-+/UT25MWvXeDX9YaHv1IS6KI1fiuTto43WprE7pgSMswHbn1Jm9GEM4Txp+X74ifOWV8emu2AWcbLhpJAvD5Ng==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.1.0.tgz", + "integrity": "sha512-oLYvTxljVvsMnldfl6jIKxTaU7ok7km0KDrwOt1RHYu6nxlhN3TIx8k5Q52L6wR33nOwDgM7VwW1fT1qMNfFIA==", "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.0.1", - "@typescript-eslint/utils": "8.0.1", + "@typescript-eslint/typescript-estree": "8.1.0", + "@typescript-eslint/utils": "8.1.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -6302,9 +6335,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.0.1.tgz", - "integrity": "sha512-PpqTVT3yCA/bIgJ12czBuE3iBlM3g4inRSC5J0QOdQFAn07TYrYEQBBKgXH1lQpglup+Zy6c1fxuwTk4MTNKIw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.1.0.tgz", + "integrity": "sha512-q2/Bxa0gMOu/2/AKALI0tCKbG2zppccnRIRCW6BaaTlRVaPKft4oVYPp7WOPpcnsgbr0qROAVCVKCvIQ0tbWog==", "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6315,13 +6348,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.0.1.tgz", - "integrity": "sha512-8V9hriRvZQXPWU3bbiUV4Epo7EvgM6RTs+sUmxp5G//dBGy402S7Fx0W0QkB2fb4obCF8SInoUzvTYtc3bkb5w==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.1.0.tgz", + "integrity": "sha512-NTHhmufocEkMiAord/g++gWKb0Fr34e9AExBRdqgWdVBaKoei2dIyYKD9Q0jBnvfbEA5zaf8plUFMUH6kQ0vGg==", "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "8.0.1", - "@typescript-eslint/visitor-keys": "8.0.1", + "@typescript-eslint/types": "8.1.0", + "@typescript-eslint/visitor-keys": "8.1.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -6367,15 +6400,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.0.1.tgz", - "integrity": "sha512-CBFR0G0sCt0+fzfnKaciu9IBsKvEKYwN9UZ+eeogK1fYHg4Qxk1yf/wLQkLXlq8wbU2dFlgAesxt8Gi76E8RTA==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.1.0.tgz", + "integrity": "sha512-ypRueFNKTIFwqPeJBfeIpxZ895PQhNyH4YID6js0UoBImWYoSjBsahUn9KMiJXh94uOjVBgHD9AmkyPsPnFwJA==", "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.0.1", - "@typescript-eslint/types": "8.0.1", - "@typescript-eslint/typescript-estree": "8.0.1" + "@typescript-eslint/scope-manager": "8.1.0", + "@typescript-eslint/types": "8.1.0", + "@typescript-eslint/typescript-estree": "8.1.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6389,12 +6422,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.0.1.tgz", - "integrity": "sha512-W5E+o0UfUcK5EgchLZsyVWqARmsM7v54/qEq6PY3YI5arkgmCzHiuk0zKSJJbm71V0xdRna4BGomkCTXz2/LkQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.1.0.tgz", + "integrity": "sha512-ba0lNI19awqZ5ZNKh6wCModMwoZs457StTebQ0q1NP58zSi2F6MOZRXwfKZy+jB78JNJ/WH8GSh2IQNzXX8Nag==", "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.0.1", + "@typescript-eslint/types": "8.1.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -7148,9 +7181,9 @@ } }, "node_modules/axios": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", - "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz", + "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", @@ -7339,23 +7372,26 @@ } }, "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", + "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", "license": "MIT", "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0" @@ -7698,9 +7734,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001650", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001650.tgz", - "integrity": "sha512-fgEc7hP/LB7iicdXHUI9VsBsMZmUmlVJeQP2qqQW+3lkqVhbmjEU8zp+h5stWeilX+G7uXuIUIIlWlDw9jdt8g==", + "version": "1.0.30001651", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", + "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==", "funding": [ { "type": "opencollective", @@ -8941,9 +8977,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.5.tgz", - "integrity": "sha512-QR7/A7ZkMS8tZuoftC/jfqNkZLQO779SSW3YuZHP4eXpj3EffGLFcB/Xu9AAZQzLccTiCV+EmUo3ha4mQ9wnlA==", + "version": "1.5.7", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.7.tgz", + "integrity": "sha512-6FTNWIWMxMy/ZY6799nBlPtF1DFDQ6VQJ7yyDP27SJNt5lwtQ5ufqVvHylb3fdQefvRcgA3fKcFMJi9OLwBRNw==", "license": "ISC" }, "node_modules/emittery": { @@ -9208,41 +9244,42 @@ } }, "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.0.tgz", + "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", "hasInstallScript": true, "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" + "@esbuild/aix-ppc64": "0.23.0", + "@esbuild/android-arm": "0.23.0", + "@esbuild/android-arm64": "0.23.0", + "@esbuild/android-x64": "0.23.0", + "@esbuild/darwin-arm64": "0.23.0", + "@esbuild/darwin-x64": "0.23.0", + "@esbuild/freebsd-arm64": "0.23.0", + "@esbuild/freebsd-x64": "0.23.0", + "@esbuild/linux-arm": "0.23.0", + "@esbuild/linux-arm64": "0.23.0", + "@esbuild/linux-ia32": "0.23.0", + "@esbuild/linux-loong64": "0.23.0", + "@esbuild/linux-mips64el": "0.23.0", + "@esbuild/linux-ppc64": "0.23.0", + "@esbuild/linux-riscv64": "0.23.0", + "@esbuild/linux-s390x": "0.23.0", + "@esbuild/linux-x64": "0.23.0", + "@esbuild/netbsd-x64": "0.23.0", + "@esbuild/openbsd-arm64": "0.23.0", + "@esbuild/openbsd-x64": "0.23.0", + "@esbuild/sunos-x64": "0.23.0", + "@esbuild/win32-arm64": "0.23.0", + "@esbuild/win32-ia32": "0.23.0", + "@esbuild/win32-x64": "0.23.0" } }, "node_modules/escalade": { @@ -9603,9 +9640,9 @@ } }, "node_modules/eslint-plugin-cypress": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-3.4.0.tgz", - "integrity": "sha512-Rrrr3Ri6wHqzrRr+TyUV7bDS4UnMMrFY1R1PP2F7XdGfe9txDC6lQEshyoNOWqGoPkbbeDm1x1XPc/adxemsnA==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-3.5.0.tgz", + "integrity": "sha512-JZQ6XnBTNI8h1B9M7wJSFzc48SYbh7VMMKaNTQOFa3BQlnmXPrVc4PKen8R+fpv6VleiPeej6VxloGb42zdRvw==", "license": "MIT", "dependencies": { "globals": "^13.20.0" @@ -9704,9 +9741,9 @@ } }, "node_modules/eslint-plugin-jest": { - "version": "28.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.7.0.tgz", - "integrity": "sha512-fzPGN7awL2ftVRQh/bsCi+16ArUZWujZnD1b8EGJqy8nr4//7tZ3BIdc/9edcJBtB3hpci3GtdMNFVDwHU0Eag==", + "version": "28.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.8.0.tgz", + "integrity": "sha512-Tubj1hooFxCl52G4qQu0edzV/+EZzPUeN8p2NnW5uu4fbDs+Yo7+qDVDc4/oG3FbCqEBmu/OC3LSsyiU22oghw==", "license": "MIT", "dependencies": { "@typescript-eslint/utils": "^6.0.0 || ^7.0.0 || ^8.0.0" @@ -10490,9 +10527,9 @@ } }, "node_modules/foreground-child": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", - "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dev": true, "license": "ISC", "dependencies": { @@ -10853,9 +10890,9 @@ } }, "node_modules/graphile-config/node_modules/@types/node": { - "version": "20.14.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.14.tgz", - "integrity": "sha512-d64f00982fS9YoOgJkAMolK7MN8Iq3TDdVjchbYHdEmjth/DHowx82GnoA+tVUAN+7vxfYUgAzi+JXbKNd2SDQ==", + "version": "20.14.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.15.tgz", + "integrity": "sha512-Fz1xDMCF/B00/tYSVMlmK7hVeLh7jE5f3B7X1/hmV0MJBwE27KlS7EvD/Yp+z1lm8mVhwV5w+n8jOZG8AfTlKw==", "license": "MIT", "dependencies": { "undici-types": "~5.26.4" @@ -11462,18 +11499,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/http-proxy-middleware/node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/https-proxy-agent": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", @@ -11531,9 +11556,9 @@ "license": "BSD-3-Clause" }, "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "license": "MIT", "engines": { "node": ">= 4" @@ -12073,12 +12098,12 @@ } }, "node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "license": "MIT", "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -16675,18 +16700,18 @@ } }, "node_modules/remeda": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/remeda/-/remeda-2.10.0.tgz", - "integrity": "sha512-2RFz0VWckq8nb0nttzToa8BB5HgLsBHokWUKYiV5C8hnsZOTO1jcx0oXKvfS5khabhS6XkngMOLebQB+pm20IQ==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/remeda/-/remeda-2.11.0.tgz", + "integrity": "sha512-rQO+zcuNvnTcB2vBctblBARZakY0+wMNtrFGqU1+h4jm5p2APcDKQxUZG2CmMPkSQxa2nauU55GBVS/3Fo83fA==", "license": "MIT", "dependencies": { "type-fest": "^4.23.0" } }, "node_modules/remeda/node_modules/type-fest": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.23.0.tgz", - "integrity": "sha512-ZiBujro2ohr5+Z/hZWHESLz3g08BBdrdLMieYFULJO+tWc437sn8kQsWLJoZErY8alNhxre9K4p3GURAG11n+w==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.24.0.tgz", + "integrity": "sha512-spAaHzc6qre0TlZQQ2aA/nGMe+2Z/wyGk5Z+Ru2VUfdNwT6kWO6TjevOlpebsATEG1EIQ2sOiDszud3lO5mt/Q==", "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=16" @@ -17861,9 +17886,9 @@ } }, "node_modules/terser": { - "version": "5.31.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.3.tgz", - "integrity": "sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA==", + "version": "5.31.6", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.6.tgz", + "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==", "dev": true, "license": "BSD-2-Clause", "peer": true, @@ -18284,12 +18309,12 @@ } }, "node_modules/tsx": { - "version": "4.16.5", - "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.16.5.tgz", - "integrity": "sha512-ArsiAQHEW2iGaqZ8fTA1nX0a+lN5mNTyuGRRO6OW3H/Yno1y9/t1f9YOI1Cfoqz63VAthn++ZYcbDP7jPflc+A==", + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.17.0.tgz", + "integrity": "sha512-eN4mnDA5UMKDt4YZixo9tBioibaMBpoxBkD+rIPAjVmYERSG0/dWEY1CEFuV89CgASlKL499q8AhmkMnnjtOJg==", "license": "MIT", "dependencies": { - "esbuild": "~0.21.5", + "esbuild": "~0.23.0", "get-tsconfig": "^4.7.5" }, "bin": { @@ -18644,6 +18669,18 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unified/node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/unist-util-is": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", @@ -18900,9 +18937,9 @@ } }, "node_modules/watchpack": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", - "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", "dev": true, "license": "MIT", "peer": true, @@ -19367,7 +19404,7 @@ "@babel/preset-typescript": "7.24.7", "@link-stack/typescript-config": "*", "prettier": "^3.3.3", - "tsx": "^4.16.5", + "tsx": "^4.17.0", "typescript": "^5.5.4" } }, @@ -19383,8 +19420,8 @@ "@link-stack/signal-api": "*", "@mui/icons-material": "^5", "@mui/material": "^5", - "@mui/x-data-grid-pro": "^7.12.0", - "@mui/x-date-pickers-pro": "^7.12.0", + "@mui/x-data-grid-pro": "^7.12.1", + "@mui/x-date-pickers-pro": "^7.12.1", "date-fns": "^3.6.0", "kysely": "0.26.1", "material-ui-popup-state": "^5.1.2", @@ -19402,7 +19439,7 @@ }, "devDependencies": { "@babel/core": "^7.25.2", - "@types/node": "^22.1.0", + "@types/node": "^22.2.0", "@types/react": "18.3.3", "@types/react-dom": "^18.3.0", "@types/uuid": "^10.0.0", @@ -19425,14 +19462,14 @@ "dependencies": { "@babel/eslint-parser": "7.25.1", "@rushstack/eslint-patch": "^1.10.4", - "@typescript-eslint/eslint-plugin": "^8.0.1", - "@typescript-eslint/parser": "^8.0.1", + "@typescript-eslint/eslint-plugin": "^8.1.0", + "@typescript-eslint/parser": "^8.1.0", "eslint-config-prettier": "^9.1.0", "eslint-config-xo-space": "^0.35.0", - "eslint-plugin-cypress": "^3.4.0", + "eslint-plugin-cypress": "^3.5.0", "eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-jest": "^28.7.0", + "eslint-plugin-jest": "^28.8.0", "eslint-plugin-promise": "^7.1.0", "eslint-plugin-unicorn": "55.0.0" }, @@ -19469,8 +19506,8 @@ "@link-stack/opensearch-common": "*", "@mui/icons-material": "^5", "@mui/material": "^5", - "@mui/x-data-grid-pro": "^7.12.0", - "@mui/x-date-pickers-pro": "^7.12.0", + "@mui/x-data-grid-pro": "^7.12.1", + "@mui/x-date-pickers-pro": "^7.12.1", "date-fns": "^3.6.0", "material-ui-popup-state": "^5.1.2", "next": "14.2.5", @@ -19486,7 +19523,7 @@ }, "devDependencies": { "@babel/core": "^7.25.2", - "@types/node": "^22.1.0", + "@types/node": "^22.2.0", "@types/react": "18.3.3", "@types/uuid": "^10.0.0", "babel-loader": "^9.1.3", @@ -19512,7 +19549,7 @@ "@babel/core": "^7.25.2", "@link-stack/eslint-config": "*", "@link-stack/typescript-config": "*", - "@types/node": "^22.1.0", + "@types/node": "^22.2.0", "@types/react": "18.3.3", "@types/uuid": "^10.0.0", "babel-loader": "^9.1.3", @@ -19542,18 +19579,17 @@ "packages/ui": { "name": "@link-stack/ui", "version": "1.0.0", - "license": "ISC", "dependencies": { "@mui/icons-material": "^5", "@mui/material": "^5", - "@mui/x-data-grid-pro": "^7.12.0", - "@mui/x-date-pickers-pro": "^7.12.0", + "@mui/x-data-grid-pro": "^7.12.1", + "@mui/x-date-pickers-pro": "^7.12.1", "next": "14.2.5", "react": "18.3.1", "react-dom": "18.3.1" }, "devDependencies": { - "@types/node": "^22.1.0", + "@types/node": "^22.2.0", "@types/react": "18.3.3", "typescript": "^5.5.4" } diff --git a/package.json b/package.json index 4b78801..d749946 100644 --- a/package.json +++ b/package.json @@ -7,9 +7,10 @@ "build": "dotenv -- turbo build", "migrate": "dotenv -- npm run migrate --workspace=database", "lint": "dotenv turbo lint", + "update-version": "find . -name 'package.json' -exec sed -i '' -E \"s/\\\"version\\\": \\\"[^\\\"]+\\\"/\\\"version\\\": \\\"$npm_config_newversion\\\"/\" {} +", "upgrade:setup": "npm i -g npm-check-updates", "upgrade:check": "ncu && ncu -ws", - "upgrade:all": "ncu -u -x eslint -x kysely && ncu -ws -u -x eslint -x kysely && npm i", + "upgrade": "ncu -u -x eslint -x kysely && ncu -ws -u -x eslint -x kysely && npm i", "clean": "rm -f package-lock.json && rm -rf node_modules && rm -rf .turbo && rm -rf apps/*/node_modules && rm -rf apps/*/package-lock.json && rm -rf apps/*/.next && rm -rf packages/*/node_modules && rm -rf apps/*/.next && rm -rf packages/*/.turbo && rm -rf packages/*/build && rm -rf docker/zammad/addons/*", "docker:all:up": "node docker/scripts/docker.js all up", "docker:all:down": "node docker/scripts/docker.js all down", diff --git a/packages/bridge-common/package.json b/packages/bridge-common/package.json index e285091..522d024 100644 --- a/packages/bridge-common/package.json +++ b/packages/bridge-common/package.json @@ -20,7 +20,7 @@ "@babel/preset-typescript": "7.24.7", "prettier": "^3.3.3", "@link-stack/typescript-config": "*", - "tsx": "^4.16.5", + "tsx": "^4.17.0", "typescript": "^5.5.4" } } diff --git a/packages/bridge-ui/lib/service.ts b/packages/bridge-ui/lib/service.ts index a8be7ea..9170041 100644 --- a/packages/bridge-ui/lib/service.ts +++ b/packages/bridge-ui/lib/service.ts @@ -81,6 +81,12 @@ export class Service { req: NextRequest, { params: { service, token } }: ServiceParams, ): Promise { + const table = getServiceTable(service); + const row = await db + .selectFrom(table) + .selectAll() + .where("token", "=", token ?? "NEVER_MATCH") + .executeTakeFirstOrThrow(); const json = await req.json(); const worker = await getWorkerUtils(); await worker.addJob(`${service}/send-${service}-message`, { @@ -88,7 +94,17 @@ export class Service { ...json, }); - return NextResponse.json({ response: "ok" }); + const response = { + response: "ok", + result: { + to: json.to, + from: row?.phoneNumber ?? null, + timestamp: new Date().toISOString(), + }, + }; + + console.log(response); + return NextResponse.json(response); } async receiveMessage( diff --git a/packages/bridge-ui/package.json b/packages/bridge-ui/package.json index 1ca1909..b57cf7b 100644 --- a/packages/bridge-ui/package.json +++ b/packages/bridge-ui/package.json @@ -13,8 +13,8 @@ "@link-stack/signal-api": "*", "@mui/icons-material": "^5", "@mui/material": "^5", - "@mui/x-data-grid-pro": "^7.12.0", - "@mui/x-date-pickers-pro": "^7.12.0", + "@mui/x-data-grid-pro": "^7.12.1", + "@mui/x-date-pickers-pro": "^7.12.1", "date-fns": "^3.6.0", "kysely": "0.26.1", "material-ui-popup-state": "^5.1.2", @@ -32,7 +32,7 @@ }, "devDependencies": { "@babel/core": "^7.25.2", - "@types/node": "^22.1.0", + "@types/node": "^22.2.0", "@types/react": "18.3.3", "@types/react-dom": "^18.3.0", "@types/uuid": "^10.0.0", diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index bb3d3a2..6e7737c 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -10,14 +10,14 @@ }, "dependencies": { "@rushstack/eslint-patch": "^1.10.4", - "@typescript-eslint/eslint-plugin": "^8.0.1", - "@typescript-eslint/parser": "^8.0.1", + "@typescript-eslint/eslint-plugin": "^8.1.0", + "@typescript-eslint/parser": "^8.1.0", "eslint-config-prettier": "^9.1.0", "eslint-config-xo-space": "^0.35.0", - "eslint-plugin-cypress": "^3.4.0", + "eslint-plugin-cypress": "^3.5.0", "eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-jest": "^28.7.0", + "eslint-plugin-jest": "^28.8.0", "eslint-plugin-promise": "^7.1.0", "eslint-plugin-unicorn": "55.0.0", "@babel/eslint-parser": "7.25.1" diff --git a/packages/leafcutter-ui/package.json b/packages/leafcutter-ui/package.json index efccb9a..694a68d 100644 --- a/packages/leafcutter-ui/package.json +++ b/packages/leafcutter-ui/package.json @@ -11,8 +11,8 @@ "@emotion/styled": "^11.13.0", "@mui/icons-material": "^5", "@mui/material": "^5", - "@mui/x-data-grid-pro": "^7.12.0", - "@mui/x-date-pickers-pro": "^7.12.0", + "@mui/x-data-grid-pro": "^7.12.1", + "@mui/x-date-pickers-pro": "^7.12.1", "@link-stack/opensearch-common": "*", "date-fns": "^3.6.0", "material-ui-popup-state": "^5.1.2", @@ -29,7 +29,7 @@ }, "devDependencies": { "@babel/core": "^7.25.2", - "@types/node": "^22.1.0", + "@types/node": "^22.2.0", "@types/react": "18.3.3", "@types/uuid": "^10.0.0", "babel-loader": "^9.1.3", diff --git a/packages/opensearch-common/package.json b/packages/opensearch-common/package.json index 5d6eeec..1646f40 100644 --- a/packages/opensearch-common/package.json +++ b/packages/opensearch-common/package.json @@ -10,7 +10,7 @@ }, "devDependencies": { "@babel/core": "^7.25.2", - "@types/node": "^22.1.0", + "@types/node": "^22.2.0", "@types/react": "18.3.3", "@types/uuid": "^10.0.0", "babel-loader": "^9.1.3", diff --git a/packages/ui/package.json b/packages/ui/package.json index 8b5e3a1..e61d7bc 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -9,14 +9,14 @@ "dependencies": { "@mui/icons-material": "^5", "@mui/material": "^5", - "@mui/x-data-grid-pro": "^7.12.0", - "@mui/x-date-pickers-pro": "^7.12.0", + "@mui/x-data-grid-pro": "^7.12.1", + "@mui/x-date-pickers-pro": "^7.12.1", "next": "14.2.5", "react": "18.3.1", "react-dom": "18.3.1" }, "devDependencies": { - "@types/node": "^22.1.0", + "@types/node": "^22.2.0", "@types/react": "18.3.3", "typescript": "^5.5.4" } diff --git a/packages/zammad-addon-bridge/src/app/jobs/communicate_cdr_signal_job.rb b/packages/zammad-addon-bridge/src/app/jobs/communicate_cdr_signal_job.rb index d3c4d19..4452c52 100644 --- a/packages/zammad-addon-bridge/src/app/jobs/communicate_cdr_signal_job.rb +++ b/packages/zammad-addon-bridge/src/app/jobs/communicate_cdr_signal_job.rb @@ -61,16 +61,16 @@ class CommunicateCdrSignalJob < ApplicationJob return if has_error - article.to = result['result']['recipient'] - article.from = result['result']['source'] + article.to = result['result']['to'] + article.from = result['result']['from'] - message_id = format('%s@%s', source: result['result']['source'], + message_id = format('%s@%s', from: result['result']['from'], timestamp: result['result']['timestamp']) article.preferences['cdr_signal'] = { timestamp: result['result']['timestamp'], message_id: message_id, - from: result['result']['source'], - to: result['result']['recipient'] + from: result['result']['from'], + to: result['result']['to'] } # set delivery status diff --git a/packages/zammad-addon-bridge/src/app/jobs/communicate_cdr_whatsapp_job.rb b/packages/zammad-addon-bridge/src/app/jobs/communicate_cdr_whatsapp_job.rb index 3843eca..33b03e1 100644 --- a/packages/zammad-addon-bridge/src/app/jobs/communicate_cdr_whatsapp_job.rb +++ b/packages/zammad-addon-bridge/src/app/jobs/communicate_cdr_whatsapp_job.rb @@ -61,16 +61,16 @@ class CommunicateCdrWhatsappJob < ApplicationJob return if has_error - article.to = result['result']['recipient'] - article.from = result['result']['source'] + article.to = result['result']['to'] + article.from = result['result']['from'] - message_id = format('%s@%s', source: result['result']['source'], + message_id = format('%s@%s', from: result['result']['from'], timestamp: result['result']['timestamp']) article.preferences['cdr_whatsapp'] = { timestamp: result['result']['timestamp'], message_id: message_id, - from: result['result']['source'], - to: result['result']['recipient'] + from: result['result']['from'], + to: result['result']['to'] } # set delivery status diff --git a/packages/zammad-addon-bridge/src/lib/cdr_signal.rb b/packages/zammad-addon-bridge/src/lib/cdr_signal.rb index 82247b3..4efc972 100644 --- a/packages/zammad-addon-bridge/src/lib/cdr_signal.rb +++ b/packages/zammad-addon-bridge/src/lib/cdr_signal.rb @@ -118,7 +118,7 @@ class CdrSignal end def self.message_id(message_raw) - format('%s@%s', source: message_raw['source'], timestamp: message_raw['timestamp']) + format('%s@%s', from: message_raw['from'], timestamp: message_raw['timestamp']) end # diff --git a/packages/zammad-addon-bridge/src/lib/cdr_whatsapp.rb b/packages/zammad-addon-bridge/src/lib/cdr_whatsapp.rb index 83a5d15..62725ec 100644 --- a/packages/zammad-addon-bridge/src/lib/cdr_whatsapp.rb +++ b/packages/zammad-addon-bridge/src/lib/cdr_whatsapp.rb @@ -118,7 +118,7 @@ class CdrWhatsapp end def self.message_id(message_raw) - format('%s@%s', source: message_raw['source'], timestamp: message_raw['timestamp']) + format('%s@%s', from: message_raw['from'], timestamp: message_raw['timestamp']) end #