Dependency cleanup

This commit is contained in:
Darren Clarke 2024-08-07 12:02:33 +02:00
parent 2d892779bf
commit 2568547384
28 changed files with 170 additions and 482 deletions

View file

@ -1,6 +1,6 @@
{
"name": "@link-stack/bridge-frontend",
"version": "0.1.0",
"version": "2.1.0",
"type": "module",
"scripts": {
"dev": "next dev",
@ -18,7 +18,6 @@
"@emotion/react": "^11.13.0",
"@emotion/styled": "^11.13.0",
"@mui/icons-material": "^5",
"@mui/lab": "^5.0.0-alpha.173",
"@mui/material": "^5",
"@mui/material-nextjs": "^5.16.6",
"@mui/x-data-grid-pro": "^7.12.0",

View file

@ -1,6 +1,6 @@
{
"name": "@link-stack/bridge-whatsapp",
"version": "0.3.0",
"version": "2.1.0",
"main": "build/main/index.js",
"author": "Darren Clarke <darren@redaranj.com>",
"license": "AGPL-3.0-or-later",

View file

@ -1 +1 @@
*/1 * * * * fetch-signal-messages
*/1 * * * * fetch-signal-messages ?max=1

View file

@ -1,6 +1,6 @@
{
"name": "@link-stack/bridge-worker",
"version": "0.2.0",
"version": "2.1.0",
"type": "module",
"main": "build/main/index.js",
"author": "Darren Clarke <darren@redaranj.com>",
@ -20,7 +20,7 @@
"jest": "^29.7.0",
"kysely": "^0.27.3",
"pg": "^8.12.0",
"remeda": "^2.7.1",
"remeda": "^2.10.0",
"twilio": "^5.2.2"
},
"devDependencies": {

View file

@ -9,7 +9,7 @@ import { I18n } from "react-polyglot";
import { AdapterDateFns } from "@mui/x-date-pickers-pro/AdapterDateFnsV3";
import { LocalizationProvider } from "@mui/x-date-pickers-pro";
import { LeafcutterProvider } from "@link-stack/leafcutter-ui/components/LeafcutterProvider";
import { NextAppDirEmotionCacheProvider } from "tss-react/next/appDir";
import { AppRouterCacheProvider } from "@mui/material-nextjs/v14-appRouter";
import en from "@link-stack/leafcutter-ui/locales/en.json";
import fr from "@link-stack/leafcutter-ui/locales/fr.json";
import { LicenseInfo } from "@mui/x-license";
@ -25,7 +25,7 @@ export const MultiProvider: FC<PropsWithChildren> = ({ children }: any) => {
const locale = "en";
return (
<NextAppDirEmotionCacheProvider options={{ key: "css" }}>
<AppRouterCacheProvider>
<SessionProvider>
<CookiesProvider>
<CssBaseline />
@ -38,6 +38,6 @@ export const MultiProvider: FC<PropsWithChildren> = ({ children }: any) => {
</LeafcutterProvider>
</CookiesProvider>
</SessionProvider>
</NextAppDirEmotionCacheProvider>
</AppRouterCacheProvider>
);
};

View file

@ -1,6 +1,6 @@
{
"name": "@link-stack/leafcutter",
"version": "0.2.0",
"version": "2.1.0",
"scripts": {
"dev": "next dev -p 3001",
"login": "aws sso login --sso-session cdr",
@ -17,22 +17,20 @@
"@emotion/react": "^11.13.0",
"@emotion/server": "^11.11.0",
"@emotion/styled": "^11.13.0",
"@link-stack/leafcutter-ui": "*",
"@link-stack/opensearch-common": "*",
"@mui/icons-material": "^5",
"@mui/lab": "^5.0.0-alpha.173",
"@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",
"@opensearch-project/opensearch": "^2.11.0",
"cryptr": "^6.3.0",
"date-fns": "^3.6.0",
"http-proxy-middleware": "^3.0.0",
"@link-stack/leafcutter-ui": "*",
"material-ui-popup-state": "^5.1.2",
"next": "14.2.5",
"next-auth": "^4.24.7",
"next-http-proxy-middleware": "^1.2.6",
"@link-stack/opensearch-common": "*",
"nodemailer": "^6.9.14",
"react": "18.3.1",
"react-cookie": "^7.2.0",
"react-cookie-consent": "^9.0.0",
@ -41,8 +39,6 @@
"react-markdown": "^9.0.1",
"react-polyglot": "^0.7.2",
"sharp": "^0.33.4",
"swr": "^2.2.5",
"tss-react": "^4.9.12",
"uuid": "^10.0.0"
},
"devDependencies": {

View file

@ -1,12 +1,18 @@
import { Suspense } from "react";
import { Metadata } from "next";
import { getSession } from "next-auth/react";
import { Login } from "./_components/Login";
export const metadata: Metadata = {
title: "Login",
title: "CDR Link - Login",
};
export default async function Page() {
const session = await getSession();
return <Login session={session} />;
return (
<Suspense fallback={<div>Loading...</div>}>
<Login session={session} />
</Suspense>
);
}

View file

@ -7,11 +7,13 @@ import { SetupModeWarning } from "./SetupModeWarning";
interface InternalLayoutProps extends PropsWithChildren {
setupModeActive: boolean;
leafcutterEnabled: boolean;
}
export const InternalLayout: FC<InternalLayoutProps> = ({
children,
setupModeActive,
leafcutterEnabled,
}) => {
const [open, setOpen] = useState(true);
@ -19,7 +21,11 @@ export const InternalLayout: FC<InternalLayoutProps> = ({
<Box sx={{ position: "relative" }}>
<SetupModeWarning setupModeActive={setupModeActive} />
<Grid container direction="row">
<Sidebar open={open} setOpen={setOpen} />
<Sidebar
open={open}
setOpen={setOpen}
leafcutterEnabled={leafcutterEnabled}
/>
<Grid
item
sx={{ ml: open ? "270px" : "70px", width: "100%", height: "100vh" }}

View file

@ -1,5 +1,3 @@
"use client";
import { FC } from "react";
import { Box } from "@mui/material";

View file

@ -25,7 +25,6 @@ import {
Assessment as AssessmentIcon,
LibraryBooks as LibraryBooksIcon,
School as SchoolIcon,
Search as SearchIcon,
} from "@mui/icons-material";
import { usePathname } from "next/navigation";
import Link from "next/link";
@ -179,17 +178,21 @@ const MenuItem = ({
interface SidebarProps {
open: boolean;
setOpen: (open: boolean) => void;
leafcutterEnabled?: boolean;
}
export const Sidebar: FC<SidebarProps> = ({ open, setOpen }) => {
export const Sidebar: FC<SidebarProps> = ({
open,
setOpen,
leafcutterEnabled = false,
}) => {
const pathname = usePathname();
const { data: session } = useSession();
const [overviewCounts, setOverviewCounts] = useState<any>(null);
const { poppins } = fonts;
const username = session?.user?.name || "User";
const username = session?.user?.name || "";
// @ts-ignore
const roles = session?.user?.roles || [];
const leafcutterEnabled = false;
useEffect(() => {
const fetchCounts = async () => {
@ -205,12 +208,6 @@ export const Sidebar: FC<SidebarProps> = ({ open, setOpen }) => {
return () => clearInterval(interval);
}, []);
const recentCount = 0;
const assignedCount = overviewCounts?.["My Assigned Tickets"] ?? 0;
const openCount = overviewCounts?.["Open Tickets"] ?? 0;
const urgentCount = overviewCounts?.["Escalated Tickets"] ?? 0;
const unassignedCount = overviewCounts?.["Unassigned & Open Tickets"] ?? 0;
const logout = () => {
signOut({ callbackUrl: "/login" });
};
@ -439,7 +436,7 @@ export const Sidebar: FC<SidebarProps> = ({ open, setOpen }) => {
Icon={FeaturedPlayListIcon}
iconSize={0}
selected={pathname.endsWith("/overview/recent")}
badge={recentCount}
badge={overviewCounts?.recent}
open={open}
/>
<MenuItem
@ -448,7 +445,7 @@ export const Sidebar: FC<SidebarProps> = ({ open, setOpen }) => {
Icon={FeaturedPlayListIcon}
iconSize={0}
selected={pathname.endsWith("/overview/open")}
badge={openCount}
badge={overviewCounts?.open}
open={open}
/>
<MenuItem
@ -457,7 +454,7 @@ export const Sidebar: FC<SidebarProps> = ({ open, setOpen }) => {
Icon={FeaturedPlayListIcon}
iconSize={0}
selected={pathname.endsWith("/overview/urgent")}
badge={urgentCount}
badge={overviewCounts?.urgent}
open={open}
/>
<MenuItem
@ -466,7 +463,7 @@ export const Sidebar: FC<SidebarProps> = ({ open, setOpen }) => {
Icon={FeaturedPlayListIcon}
iconSize={0}
selected={pathname.endsWith("/overview/assigned")}
badge={assignedCount}
badge={overviewCounts?.assigned}
open={open}
/>
<MenuItem
@ -475,7 +472,7 @@ export const Sidebar: FC<SidebarProps> = ({ open, setOpen }) => {
Icon={FeaturedPlayListIcon}
iconSize={0}
selected={pathname.endsWith("/overview/unassigned")}
badge={unassignedCount}
badge={overviewCounts?.unassigned}
open={open}
/>
</List>

View file

@ -12,9 +12,13 @@ type LayoutProps = {
export default function Layout({ children }: LayoutProps) {
const setupModeActive = process.env.SETUP_MODE === "true";
const leafcutterEnabled = process.env.LEAFCUTTER_ENABLED === "true";
return (
<InternalLayout setupModeActive={setupModeActive}>
<InternalLayout
setupModeActive={setupModeActive}
leafcutterEnabled={leafcutterEnabled}
>
{children}
</InternalLayout>
);

View file

@ -6,22 +6,26 @@ import { getUserVisualizations } from "@link-stack/opensearch-common";
import { LeafcutterWrapper } from "@link-stack/leafcutter-ui";
export const metadata: Metadata = {
title: "Link",
title: "CDR Link - Home",
};
export default async function Page() {
const leafcutterEnabled = process.env.LEAFCUTTER_ENABLED === "true";
if (!leafcutterEnabled) {
redirect("/overview/recent");
}
const session = await getServerSession();
const {
user: { email },
}: any = session;
// const visualizations = await getUserVisualizations(email ?? "none", 20);
redirect("/overview/recent");
/*
const visualizations = await getUserVisualizations(email ?? "none", 20);
return (
<LeafcutterWrapper>
<Home visualizations={visualizations} showWelcome={false} />
</LeafcutterWrapper>
);
*/
}

View file

@ -4,15 +4,34 @@ import { executeGraphQL, executeREST } from "app/_lib/zammad";
import { getTicketOverviewCountsQuery } from "app/_graphql/getTicketOverviewCountsQuery";
import { getTicketsByOverviewQuery } from "app/_graphql/getTicketsByOverviewQuery";
const overviewLookup = {
Assigned: "My Assigned Tickets",
Open: "Open Tickets",
Urgent: "Escalated Tickets",
Unassigned: "Unassigned & Open Tickets",
Recent: "Recent Tickets",
Pending: "Pending Reached Tickets",
MyPending: "My Pending Reached Tickets",
MySubscribed: "My Subscribed Tickets",
};
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) => {
acc[overview.node.name] = overview.node.ticketCount;
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;
};
@ -36,12 +55,6 @@ export const getOverviewTicketsAction = async (name: string) => {
});
}
} else {
const overviewLookup = {
Assigned: "My Assigned Tickets",
Open: "Open Tickets",
Urgent: "Escalated Tickets",
Unassigned: "Unassigned & Open Tickets",
};
const fullName = overviewLookup[name];
const countResult = await executeGraphQL({
query: getTicketOverviewCountsQuery,

View file

@ -162,14 +162,6 @@ export const getTicketStatesAction = async () => {
path: "/api/v1/ticket_states",
});
return states;
};
export const getTicketTagsAction = async () => {
const states = await executeREST({
path: "/api/v1/tags",
});
const formattedStates =
states?.map((state: any) => ({
value: state.id,
@ -179,6 +171,14 @@ export const getTicketTagsAction = async () => {
return formattedStates;
};
export const getTicketTagsAction = async () => {
const tags = await executeREST({
path: "/api/v1/tags",
});
return tags;
};
export const getTicketPrioritiesAction = async () => {
const priorities = await executeREST({
path: "/api/v1/ticket_priorities",

View file

@ -1,10 +1,9 @@
"use client";
import { FC, PropsWithChildren, useState } from "react";
import { FC, PropsWithChildren } from "react";
import { CssBaseline } from "@mui/material";
import { CookiesProvider } from "react-cookie";
import { SessionProvider } from "next-auth/react";
import { NextAppDirEmotionCacheProvider } from "tss-react/next/appDir";
import { I18n } from "react-polyglot";
import { AdapterDateFns } from "@mui/x-date-pickers-pro/AdapterDateFnsV3";
import { LocalizationProvider } from "@mui/x-date-pickers-pro";
@ -17,17 +16,12 @@ LicenseInfo.setLicenseKey(
);
export const MultiProvider: FC<PropsWithChildren> = ({ children }) => {
const origin =
typeof window !== "undefined" && window.location.origin
? window.location.origin
: null;
const messages: any = { en: locales.en, fr: locales.fr };
const locale = "en";
return (
<NextAppDirEmotionCacheProvider options={{ key: "css" }}>
<CssBaseline />
<SessionProvider>
<CssBaseline />
<CSRFProvider>
<CookiesProvider>
<LocalizationProvider dateAdapter={AdapterDateFns}>
@ -38,6 +32,5 @@ export const MultiProvider: FC<PropsWithChildren> = ({ children }) => {
</CookiesProvider>
</CSRFProvider>
</SessionProvider>
</NextAppDirEmotionCacheProvider>
);
};

View file

@ -17,7 +17,6 @@ const fetchRoles = async () => {
const url = `${process.env.ZAMMAD_URL}/api/v1/roles`;
const res = await fetch(url, { headers });
const roles = await res.json();
console.log({ roles });
const formattedRoles = roles.reduce((acc: any, role: any) => {
acc[role.id] = role.name;
return acc;
@ -26,13 +25,9 @@ const fetchRoles = async () => {
};
const fetchUser = async (email: string) => {
console.log({ email });
const url = `${process.env.ZAMMAD_URL}/api/v1/users/search?query=login:${email}&limit=1`;
console.log({ url });
const res = await fetch(url, { headers });
console.log({ res });
const users = await res.json();
console.log({ users });
const user = users?.[0];
return user;
@ -41,9 +36,7 @@ const fetchUser = async (email: string) => {
const getUserRoles = async (email: string) => {
try {
const user = await fetchUser(email);
console.log({ user });
const allRoles = await fetchRoles();
console.log({ allRoles });
const roles = user.role_ids.map((roleID: number) => {
const role = allRoles[roleID];
return role ? role.toLowerCase().replace(" ", "_") : null;
@ -57,7 +50,6 @@ const getUserRoles = async (email: string) => {
const login = async (email: string, password: string) => {
const url = `${process.env.ZAMMAD_URL}/api/v1/users/me`;
console.log({ url });
const authorization =
"Basic " + Buffer.from(email + ":" + password).toString("base64");
const res = await fetch(url, {
@ -66,7 +58,6 @@ const login = async (email: string, password: string) => {
},
});
const user = await res.json();
console.log({ user });
if (user && !user.error && user.id) {
return user;
@ -96,7 +87,7 @@ export const authOptions: NextAuthOptions = {
email: { label: "Email", type: "text" },
password: { label: "Password", type: "password" },
},
async authorize(credentials, req) {
async authorize(credentials) {
const user = await login(credentials.email, credentials.password);
if (user) {
return user;
@ -108,7 +99,7 @@ export const authOptions: NextAuthOptions = {
],
secret: process.env.NEXTAUTH_SECRET,
callbacks: {
signIn: async ({ user, account, profile }) => {
signIn: async ({ user }) => {
const roles = (await getUserRoles(user.email)) ?? [];
return (
roles.includes("admin") ||
@ -116,7 +107,7 @@ export const authOptions: NextAuthOptions = {
process.env.SETUP_MODE === "true"
);
},
session: async ({ session, user, token }) => {
session: async ({ session, token }) => {
// @ts-ignore
session.user.roles = token.roles ?? [];
// @ts-ignore
@ -126,7 +117,7 @@ export const authOptions: NextAuthOptions = {
return session;
},
jwt: async ({ token, user, account, profile, trigger, session }) => {
jwt: async ({ token, user, trigger, session }) => {
if (user) {
token.roles = (await getUserRoles(user.email)) ?? [];
}

View file

@ -1,10 +1,11 @@
import { ReactNode } from "react";
import { Metadata } from "next";
import "./_styles/global.css";
import { AppRouterCacheProvider } from "@mui/material-nextjs/v14-appRouter";
import { MultiProvider } from "./_components/MultiProvider";
import "./_styles/global.css";
export const metadata: Metadata = {
title: "Link",
title: "CDR Link",
};
type LayoutProps = {
@ -15,7 +16,9 @@ export default function Layout({ children }: LayoutProps) {
return (
<html lang="en">
<body>
<AppRouterCacheProvider>
<MultiProvider>{children}</MultiProvider>
</AppRouterCacheProvider>
</body>
</html>
);

View file

@ -61,7 +61,8 @@ export default withAuth(checkRewrites, {
},
callbacks: {
authorized: ({ token, req }) => {
if (req.nextUrl.pathname.startsWith("/api/v1/")) {
const path = req.nextUrl.pathname;
if (path.startsWith("/api/v1/")) {
return true;
}
@ -70,6 +71,11 @@ export default withAuth(checkRewrites, {
}
const roles: any = token?.roles ?? [];
if (path.startsWith("/admin") && !roles.includes("admin")) {
return false;
}
if (roles.includes("admin") || roles.includes("agent")) {
return true;
}

View file

@ -1,8 +1,5 @@
/** @type {import('next').NextConfig} */
const nextConfig = {
experimental: {
missingSuspenseWithCSRBailout: false,
},
transpilePackages: [
"@link-stack/leafcutter-ui",
"@link-stack/opensearch-common",

View file

@ -1,6 +1,6 @@
{
"name": "@link-stack/link",
"version": "0.0.1",
"version": "2.1.0",
"type": "module",
"scripts": {
"dev": "next dev",
@ -16,32 +16,29 @@
"@emotion/react": "^11.13.0",
"@emotion/server": "^11.11.0",
"@emotion/styled": "^11.13.0",
"@mui/icons-material": "^5",
"@mui/lab": "^5.0.0-alpha.173",
"@mui/material": "^5",
"@mui/x-data-grid-pro": "^7.12.0",
"@mui/x-date-pickers-pro": "^7.12.0",
"@link-stack/bridge-common": "*",
"@link-stack/bridge-ui": "*",
"@link-stack/leafcutter-ui": "*",
"@link-stack/opensearch-common": "*",
"@link-stack/ui": "*",
"@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",
"date-fns": "^3.6.0",
"graphql": "^16.9.0",
"graphql-request": "^7.1.0",
"@link-stack/leafcutter-ui": "*",
"material-ui-popup-state": "^5.1.2",
"mui-chips-input": "^2.1.5",
"next": "14.2.5",
"next-auth": "^4.24.7",
"@link-stack/opensearch-common": "*",
"react": "18.3.1",
"react-cookie": "^7.2.0",
"react-dom": "18.3.1",
"react-iframe": "^1.8.5",
"react-polyglot": "^0.7.2",
"sharp": "^0.33.4",
"swr": "^2.2.5",
"tss-react": "^4.9.12",
"twilio-client": "^1.15.1",
"@link-stack/ui": "*"
"sharp": "^0.33.4"
},
"devDependencies": {
"@babel/core": "^7.25.2",

405
package-lock.json generated
View file

@ -24,7 +24,7 @@
},
"apps/bridge-frontend": {
"name": "@link-stack/bridge-frontend",
"version": "0.1.0",
"version": "2.1.0",
"dependencies": {
"@auth/kysely-adapter": "^1.4.2",
"@emotion/cache": "^11.13.1",
@ -35,7 +35,6 @@
"@link-stack/signal-api": "*",
"@link-stack/ui": "*",
"@mui/icons-material": "^5",
"@mui/lab": "^5.0.0-alpha.173",
"@mui/material": "^5",
"@mui/material-nextjs": "^5.16.6",
"@mui/x-data-grid-pro": "^7.12.0",
@ -72,7 +71,7 @@
},
"apps/bridge-whatsapp": {
"name": "@link-stack/bridge-whatsapp",
"version": "0.3.0",
"version": "2.1.0",
"license": "AGPL-3.0-or-later",
"dependencies": {
"@adiwajshing/keyed-db": "0.2.4",
@ -179,7 +178,7 @@
},
"apps/bridge-worker": {
"name": "@link-stack/bridge-worker",
"version": "0.2.0",
"version": "2.1.0",
"license": "AGPL-3.0-or-later",
"dependencies": {
"@hapi/wreck": "^18.1.0",
@ -191,7 +190,7 @@
"jest": "^29.7.0",
"kysely": "^0.27.3",
"pg": "^8.12.0",
"remeda": "^2.7.1",
"remeda": "^2.10.0",
"twilio": "^5.2.2"
},
"devDependencies": {
@ -219,7 +218,7 @@
},
"apps/leafcutter": {
"name": "@link-stack/leafcutter",
"version": "0.2.0",
"version": "2.1.0",
"dependencies": {
"@emotion/cache": "^11.13.1",
"@emotion/react": "^11.13.0",
@ -228,8 +227,8 @@
"@link-stack/leafcutter-ui": "*",
"@link-stack/opensearch-common": "*",
"@mui/icons-material": "^5",
"@mui/lab": "^5.0.0-alpha.173",
"@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",
"@opensearch-project/opensearch": "^2.11.0",
@ -239,8 +238,6 @@
"material-ui-popup-state": "^5.1.2",
"next": "14.2.5",
"next-auth": "^4.24.7",
"next-http-proxy-middleware": "^1.2.6",
"nodemailer": "^6.9.14",
"react": "18.3.1",
"react-cookie": "^7.2.0",
"react-cookie-consent": "^9.0.0",
@ -249,8 +246,6 @@
"react-markdown": "^9.0.1",
"react-polyglot": "^0.7.2",
"sharp": "^0.33.4",
"swr": "^2.2.5",
"tss-react": "^4.9.12",
"uuid": "^10.0.0"
},
"devDependencies": {
@ -271,7 +266,7 @@
},
"apps/link": {
"name": "@link-stack/link",
"version": "0.0.1",
"version": "2.1.0",
"dependencies": {
"@chatscope/chat-ui-kit-react": "^2.0.3",
"@chatscope/chat-ui-kit-styles": "^1.4.0",
@ -285,8 +280,8 @@
"@link-stack/opensearch-common": "*",
"@link-stack/ui": "*",
"@mui/icons-material": "^5",
"@mui/lab": "^5.0.0-alpha.173",
"@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",
"date-fns": "^3.6.0",
@ -301,10 +296,7 @@
"react-dom": "18.3.1",
"react-iframe": "^1.8.5",
"react-polyglot": "^0.7.2",
"sharp": "^0.33.4",
"swr": "^2.2.5",
"tss-react": "^4.9.12",
"twilio-client": "^1.15.1"
"sharp": "^0.33.4"
},
"devDependencies": {
"@babel/core": "^7.25.2",
@ -3041,44 +3033,6 @@
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
"node_modules/@floating-ui/core": {
"version": "1.6.6",
"resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.6.tgz",
"integrity": "sha512-Vkvsw6EcpMHjvZZdMkSY+djMGFbt7CRssW99Ne8tar2WLnZ/l3dbxeTShbLQj+/s35h+Qb4cmnob+EzwtjrXGQ==",
"license": "MIT",
"dependencies": {
"@floating-ui/utils": "^0.2.6"
}
},
"node_modules/@floating-ui/dom": {
"version": "1.6.9",
"resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.9.tgz",
"integrity": "sha512-zB1PcI350t4tkm3rvUhSRKa9sT7vH5CrAbQxW+VaPYJXKAO0gsg4CTueL+6Ajp7XzAQC8CW4Jj1Wgqc0sB6oUQ==",
"license": "MIT",
"dependencies": {
"@floating-ui/core": "^1.6.0",
"@floating-ui/utils": "^0.2.6"
}
},
"node_modules/@floating-ui/react-dom": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.1.tgz",
"integrity": "sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg==",
"license": "MIT",
"dependencies": {
"@floating-ui/dom": "^1.0.0"
},
"peerDependencies": {
"react": ">=16.8.0",
"react-dom": ">=16.8.0"
}
},
"node_modules/@floating-ui/utils": {
"version": "0.2.6",
"resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.6.tgz",
"integrity": "sha512-0KI3zGxIUs1KDR/pjQPdJH4Z8nGBm0yJ5WRoRfdw1Kzeh45jkIfA0rmD0kBF6fKHH+xaH7g8y4jIXyAV5MGK3g==",
"license": "MIT"
},
"node_modules/@fortawesome/fontawesome-common-types": {
"version": "0.2.36",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.36.tgz",
@ -4717,38 +4671,6 @@
"ts-toolbelt": "^9.6.0"
}
},
"node_modules/@mui/base": {
"version": "5.0.0-beta.40",
"resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.40.tgz",
"integrity": "sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==",
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.23.9",
"@floating-ui/react-dom": "^2.0.8",
"@mui/types": "^7.2.14",
"@mui/utils": "^5.15.14",
"@popperjs/core": "^2.11.8",
"clsx": "^2.1.0",
"prop-types": "^15.8.1"
},
"engines": {
"node": ">=12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/mui-org"
},
"peerDependencies": {
"@types/react": "^17.0.0 || ^18.0.0",
"react": "^17.0.0 || ^18.0.0",
"react-dom": "^17.0.0 || ^18.0.0"
},
"peerDependenciesMeta": {
"@types/react": {
"optional": true
}
}
},
"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",
@ -4785,47 +4707,6 @@
}
}
},
"node_modules/@mui/lab": {
"version": "5.0.0-alpha.173",
"resolved": "https://registry.npmjs.org/@mui/lab/-/lab-5.0.0-alpha.173.tgz",
"integrity": "sha512-Gt5zopIWwxDgGy/MXcp6GueD84xFFugFai4hYiXY0zowJpTVnIrTQCQXV004Q7rejJ7aaCntX9hpPJqCrioshA==",
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.23.9",
"@mui/base": "5.0.0-beta.40",
"@mui/system": "^5.16.5",
"@mui/types": "^7.2.15",
"@mui/utils": "^5.16.5",
"clsx": "^2.1.0",
"prop-types": "^15.8.1"
},
"engines": {
"node": ">=12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/mui-org"
},
"peerDependencies": {
"@emotion/react": "^11.5.0",
"@emotion/styled": "^11.3.0",
"@mui/material": ">=5.15.0",
"@types/react": "^17.0.0 || ^18.0.0",
"react": "^17.0.0 || ^18.0.0",
"react-dom": "^17.0.0 || ^18.0.0"
},
"peerDependenciesMeta": {
"@emotion/react": {
"optional": true
},
"@emotion/styled": {
"optional": true
},
"@types/react": {
"optional": true
}
}
},
"node_modules/@mui/material": {
"version": "5.16.6",
"resolved": "https://registry.npmjs.org/@mui/material/-/material-5.16.6.tgz",
@ -5965,21 +5846,6 @@
"devOptional": true,
"license": "MIT"
},
"node_modules/@twilio/audioplayer": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/@twilio/audioplayer/-/audioplayer-1.0.6.tgz",
"integrity": "sha512-c9cjX/ifICgXqShtyAQdVMqfe7odnxougiuRMXBJtn3dZ320mFdt7kmuKedpNnc3ZJ6irOZ9M9MZi9/vuEqHiw==",
"license": "BSD-3-Clause",
"dependencies": {
"babel-runtime": "^6.26.0"
}
},
"node_modules/@twilio/voice-errors": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@twilio/voice-errors/-/voice-errors-1.0.1.tgz",
"integrity": "sha512-iXzCuiOhNMhrr8DVjRRzI14YwGUIBM83kWSWcDktxmXim0Tz9xoCth4QFAQcMkNL2h9DlfXlob6noH+3h2iA4A==",
"license": "BSD-3-Clause"
},
"node_modules/@types/babel__core": {
"version": "7.20.5",
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
@ -6120,9 +5986,9 @@
}
},
"node_modules/@types/http-proxy": {
"version": "1.17.14",
"resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz",
"integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==",
"version": "1.17.15",
"resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz",
"integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==",
"license": "MIT",
"dependencies": {
"@types/node": "*"
@ -6298,9 +6164,9 @@
"license": "MIT"
},
"node_modules/@types/yargs": {
"version": "17.0.32",
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz",
"integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==",
"version": "17.0.33",
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz",
"integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==",
"license": "MIT",
"dependencies": {
"@types/yargs-parser": "*"
@ -7490,34 +7356,6 @@
"@babel/core": "^7.0.0"
}
},
"node_modules/babel-runtime": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==",
"license": "MIT",
"dependencies": {
"core-js": "^2.4.0",
"regenerator-runtime": "^0.11.0"
}
},
"node_modules/babel-runtime/node_modules/regenerator-runtime": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
"integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
"license": "MIT"
},
"node_modules/backoff": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz",
"integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==",
"license": "MIT",
"dependencies": {
"precond": "0.2"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/bail": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
@ -7839,9 +7677,9 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001649",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001649.tgz",
"integrity": "sha512-fJegqZZ0ZX8HOWr6rcafGr72+xcgJKI9oWfDW5DrD7ExUtgZC7a7R7ZYmZqplh7XDocFdGeIFn7roAxhOeYrPQ==",
"version": "1.0.30001650",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001650.tgz",
"integrity": "sha512-fgEc7hP/LB7iicdXHUI9VsBsMZmUmlVJeQP2qqQW+3lkqVhbmjEU8zp+h5stWeilX+G7uXuIUIIlWlDw9jdt8g==",
"funding": [
{
"type": "opencollective",
@ -8377,14 +8215,6 @@
"node": ">= 0.6"
}
},
"node_modules/core-js": {
"version": "2.6.12",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
"integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
"deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.",
"hasInstallScript": true,
"license": "MIT"
},
"node_modules/core-js-compat": {
"version": "3.38.0",
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.0.tgz",
@ -9090,9 +8920,9 @@
}
},
"node_modules/electron-to-chromium": {
"version": "1.5.4",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.4.tgz",
"integrity": "sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA==",
"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==",
"license": "ISC"
},
"node_modules/emittery": {
@ -9940,9 +9770,9 @@
}
},
"node_modules/eslint-plugin-promise": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-7.0.0.tgz",
"integrity": "sha512-wb1ECT+b90ndBdAujhIdAU8oQ3Vt5gKqP/t78KOmg0ifynrvc2jGR9f6ndbOVNFpKf6jLUBlBBDF3H3Wk0JICg==",
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-7.1.0.tgz",
"integrity": "sha512-8trNmPxdAy3W620WKDpaS65NlM5yAumod6XeC4LOb+jxlkG4IVcp68c6dXY2ev+uT4U1PtG57YDV6EGAXN0GbQ==",
"license": "ISC",
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@ -11611,6 +11441,18 @@
"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",
@ -12210,12 +12052,12 @@
}
},
"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==",
"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": ">=10"
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@ -13652,19 +13494,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/loglevel": {
"version": "1.6.7",
"resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.7.tgz",
"integrity": "sha512-cY2eLFrQSAfVPhCgH1s7JI73tMbg9YC3v3+ZHVW67sBS7UxWzNEk/ZBbSfLykBWHp33dqqtOv82gjhKEi81T/A==",
"license": "MIT",
"engines": {
"node": ">= 0.6.0"
},
"funding": {
"type": "tidelift",
"url": "https://tidelift.com/subscription/pkg/npm-loglevel?utm_medium=referral&utm_source=npm_fund"
}
},
"node_modules/long": {
"version": "5.2.3",
"resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz",
@ -14762,28 +14591,6 @@
"uuid": "dist/bin/uuid"
}
},
"node_modules/next-http-proxy-middleware": {
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/next-http-proxy-middleware/-/next-http-proxy-middleware-1.2.6.tgz",
"integrity": "sha512-vHmtFLeO+HomU4Fx/CoA4MbLnXya1B17yR5qOmpYZqRjzGa17a9dgXh9ONvquSZdMrIn7bUfjoPLxMkYMtKj3Q==",
"license": "MIT",
"dependencies": {
"@types/http-proxy": "1.17.3",
"http-proxy": "^1.18.1"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/next-http-proxy-middleware/node_modules/@types/http-proxy": {
"version": "1.17.3",
"resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.3.tgz",
"integrity": "sha512-wIPqXANye5BbORbuh74exbwNzj+UWCwWyeEFJzUQ7Fq3W2NSAy+7x7nX1fgbEypr2/TdKqpeuxLnXWgzN533/Q==",
"license": "MIT",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/node-abi": {
"version": "3.65.0",
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.65.0.tgz",
@ -14875,15 +14682,6 @@
"node": ">=4.4.0"
}
},
"node_modules/nodemailer": {
"version": "6.9.14",
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.14.tgz",
"integrity": "sha512-Dobp/ebDKBvz91sbtRKhcznLThrKxKt97GI2FAlAyy+fk19j73Uz3sBXolVtmcXjaorivqsbbbjDY+Jkt4/bQA==",
"license": "MIT-0",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/normalize-package-data": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
@ -16023,14 +15821,6 @@
"node": ">=6"
}
},
"node_modules/precond": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz",
"integrity": "sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/prelude-ls": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
@ -16864,9 +16654,9 @@
}
},
"node_modules/remeda": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/remeda/-/remeda-2.7.1.tgz",
"integrity": "sha512-P+tm5rsatmF0GRh/EWq7vfoVyYyZbjO5Un/d08rZyEiznQWHXTtxhPu8cTntlQ8bHyPJBF3n2i5yFFmgaS3stA==",
"version": "2.10.0",
"resolved": "https://registry.npmjs.org/remeda/-/remeda-2.10.0.tgz",
"integrity": "sha512-2RFz0VWckq8nb0nttzToa8BB5HgLsBHokWUKYiV5C8hnsZOTO1jcx0oXKvfS5khabhS6XkngMOLebQB+pm20IQ==",
"license": "MIT",
"dependencies": {
"type-fest": "^4.23.0"
@ -17020,19 +16810,6 @@
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/rtcpeerconnection-shim": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/rtcpeerconnection-shim/-/rtcpeerconnection-shim-1.2.8.tgz",
"integrity": "sha512-5Sx90FGru1sQw9aGOM+kHU4i6mbP8eJPgxliu2X3Syhg8qgDybx8dpDTxUwfJvPnubXFnZeRNl59DWr4AttJKQ==",
"license": "BSD-3-Clause",
"dependencies": {
"sdp": "^2.6.0"
},
"engines": {
"node": ">=6.0.0",
"npm": ">=3.10.0"
}
},
"node_modules/run-async": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
@ -17219,12 +16996,6 @@
"integrity": "sha512-o/mRQGk9Rcer/jEEw/yw4mwo3EU/NvYvp577/Btqrym9Qy5/MdWGBqipbALgd2lrdWTJ5/gqDusxfnQBxOxT2Q==",
"license": "BSD-3-Clause"
},
"node_modules/sdp": {
"version": "2.12.0",
"resolved": "https://registry.npmjs.org/sdp/-/sdp-2.12.0.tgz",
"integrity": "sha512-jhXqQAQVM+8Xj5EjJGVweuEzgtGWb3tmEEpl3CLP3cStInSbVHSg0QWOGQzNq8pSID4JkpeV2mPqlMDLrm0/Vw==",
"license": "MIT"
},
"node_modules/secure-json-parse": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz",
@ -18012,19 +17783,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/swr": {
"version": "2.2.5",
"resolved": "https://registry.npmjs.org/swr/-/swr-2.2.5.tgz",
"integrity": "sha512-QtxqyclFeAsxEUeZIYmsaQ0UjimSq1RZ9Un7I68/0ClKK/U3LoyQunwkQfJZr2fc22DfIXLNDc2wFyTEikCUpg==",
"license": "MIT",
"dependencies": {
"client-only": "^0.0.1",
"use-sync-external-store": "^1.2.0"
},
"peerDependencies": {
"react": "^16.11.0 || ^17.0.0 || ^18.0.0"
}
},
"node_modules/synckit": {
"version": "0.9.1",
"resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz",
@ -18555,46 +18313,6 @@
"node": ">=14.0"
}
},
"node_modules/twilio-client": {
"version": "1.15.1",
"resolved": "https://registry.npmjs.org/twilio-client/-/twilio-client-1.15.1.tgz",
"integrity": "sha512-O2Cdq4THosTPLMIfFK0/xcS8SCCLUiv1hDB4i4sAisqtfHEVLXSuNoL332rPkDPC3jzgm3C5zzbEz/XyEXO+NQ==",
"deprecated": "Effective April 1, 2025, Twilio will end of life (EOL) our support for Twilio Voice JS SDK version 1.x. Please migrate to version 2.x https://www.twilio.com/docs/voice/sdks/javascript/migrating-to-js-voice-sdk-20",
"license": "Apache-2.0",
"dependencies": {
"@twilio/audioplayer": "1.0.6",
"@twilio/voice-errors": "1.0.1",
"backoff": "2.5.0",
"loglevel": "1.6.7",
"rtcpeerconnection-shim": "1.2.8",
"ws": "7.4.6",
"xmlhttprequest": "1.8.0"
},
"engines": {
"node": ">= 12"
}
},
"node_modules/twilio-client/node_modules/ws": {
"version": "7.4.6",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
"integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
"license": "MIT",
"engines": {
"node": ">=8.3.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
"utf-8-validate": "^5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
"optional": true
},
"utf-8-validate": {
"optional": true
}
}
},
"node_modules/twilio/node_modules/agent-base": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
@ -18905,18 +18623,6 @@
"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",
@ -19074,15 +18780,6 @@
"integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==",
"license": "MIT"
},
"node_modules/use-sync-external-store": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz",
"integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==",
"license": "MIT",
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0 || ^18.0.0"
}
},
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@ -19522,15 +19219,6 @@
"node": ">=6.0"
}
},
"node_modules/xmlhttprequest": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz",
"integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==",
"license": "MIT",
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/xtend": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz",
@ -19644,7 +19332,7 @@
},
"packages/bridge-common": {
"name": "@link-stack/bridge-common",
"version": "1.0.0",
"version": "2.2.0",
"license": "AGPL-3.0-or-later",
"dependencies": {
"@auth/kysely-adapter": "^1.4.2",
@ -19673,7 +19361,6 @@
"@emotion/styled": "^11.13.0",
"@link-stack/signal-api": "*",
"@mui/icons-material": "^5",
"@mui/lab": "^5.0.0-alpha.173",
"@mui/material": "^5",
"@mui/x-data-grid-pro": "^7.12.0",
"@mui/x-date-pickers-pro": "^7.12.0",
@ -19725,7 +19412,7 @@
"eslint-plugin-eslint-comments": "^3.2.0",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-jest": "^28.7.0",
"eslint-plugin-promise": "^7.0.0",
"eslint-plugin-promise": "^7.1.0",
"eslint-plugin-unicorn": "55.0.0"
},
"devDependencies": {
@ -19760,7 +19447,6 @@
"@emotion/styled": "^11.13.0",
"@link-stack/opensearch-common": "*",
"@mui/icons-material": "^5",
"@mui/lab": "^5.0.0-alpha.173",
"@mui/material": "^5",
"@mui/x-data-grid-pro": "^7.12.0",
"@mui/x-date-pickers-pro": "^7.12.0",
@ -19838,7 +19524,6 @@
"license": "ISC",
"dependencies": {
"@mui/icons-material": "^5",
"@mui/lab": "^5.0.0-alpha.173",
"@mui/material": "^5",
"@mui/x-data-grid-pro": "^7.12.0",
"@mui/x-date-pickers-pro": "^7.12.0",

View file

@ -1,6 +1,6 @@
{
"name": "@link-stack/bridge-common",
"version": "1.0.0",
"version": "2.2.0",
"main": "build/main/index.js",
"type": "module",
"author": "Darren Clarke <darren@redaranj.com>",

View file

@ -13,7 +13,6 @@ export class Whatsapp extends Service {
const id = row.id;
const url = `${process.env.BRIDGE_WHATSAPP_URL}/api/bots/${id}`;
const result = await fetch(url, { cache: "no-store" });
console.log({ result1: result });
const json = await result.json();
await db
@ -25,7 +24,6 @@ export class Whatsapp extends Service {
if (!json.verified) {
const url = `${process.env.BRIDGE_WHATSAPP_URL}/api/bots/${id}/register`;
const result = await fetch(url, { method: "POST" });
console.log({ result2: result });
}
revalidatePath(`/whatsapp/${id}`);

View file

@ -12,7 +12,6 @@
"@emotion/styled": "^11.13.0",
"@link-stack/signal-api": "*",
"@mui/icons-material": "^5",
"@mui/lab": "^5.0.0-alpha.173",
"@mui/material": "^5",
"@mui/x-data-grid-pro": "^7.12.0",
"@mui/x-date-pickers-pro": "^7.12.0",

View file

@ -18,7 +18,7 @@
"eslint-plugin-eslint-comments": "^3.2.0",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-jest": "^28.7.0",
"eslint-plugin-promise": "^7.0.0",
"eslint-plugin-promise": "^7.1.0",
"eslint-plugin-unicorn": "55.0.0",
"@babel/eslint-parser": "7.25.1"
},

View file

@ -10,7 +10,6 @@
"@emotion/server": "^11.11.0",
"@emotion/styled": "^11.13.0",
"@mui/icons-material": "^5",
"@mui/lab": "^5.0.0-alpha.173",
"@mui/material": "^5",
"@mui/x-data-grid-pro": "^7.12.0",
"@mui/x-date-pickers-pro": "^7.12.0",

View file

@ -1,5 +1,3 @@
"use client";
import { FC } from "react";
import Link from "next/link";
import { Button as MUIButton } from "@mui/material";

View file

@ -9,7 +9,6 @@
"license": "ISC",
"dependencies": {
"@mui/icons-material": "^5",
"@mui/lab": "^5.0.0-alpha.173",
"@mui/material": "^5",
"@mui/x-data-grid-pro": "^7.12.0",
"@mui/x-date-pickers-pro": "^7.12.0",