diff --git a/actions/chat/get-chat-conversations.ts b/actions/chat/get-chat-conversations.ts
index 370f5893..d57cd421 100644
--- a/actions/chat/get-chat-conversations.ts
+++ b/actions/chat/get-chat-conversations.ts
@@ -66,6 +66,7 @@ export const getChatConversations = async ({ sharedConversationId }: GetChatConv
user: true,
messages: {
orderBy: { createdAt: 'asc' },
+ include: { feedback: true },
},
},
});
diff --git a/app/(chat)/(routes)/chat/[[...slug]]/_components/chat-main/chat-bubble.tsx b/app/(chat)/(routes)/chat/[[...slug]]/_components/chat-main/chat-bubble.tsx
index 35f23e17..cc991d28 100644
--- a/app/(chat)/(routes)/chat/[[...slug]]/_components/chat-main/chat-bubble.tsx
+++ b/app/(chat)/(routes)/chat/[[...slug]]/_components/chat-main/chat-bubble.tsx
@@ -8,10 +8,18 @@ import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui';
import { ChatCompletionRole } from '@/constants/open-ai';
import { getFallbackName } from '@/lib/utils';
+import { ChatFeedback } from './chat-feedback';
+
type ChatBubbleProps = {
isShared?: boolean;
isSubmitting?: boolean;
- message: { role: string; content: string; model?: string };
+ message: {
+ role: string;
+ content: string;
+ model?: string;
+ id?: string;
+ feedback?: { feedback: string } | null;
+ };
name: string;
picture?: string | null;
streamMessage?: string;
@@ -50,8 +58,9 @@ export const ChatBubble = ({
{isAssistant && !isSubmitting && (
-
diff --git a/app/(chat)/(routes)/chat/[[...slug]]/_components/chat-main/chat-feedback.tsx b/app/(chat)/(routes)/chat/[[...slug]]/_components/chat-main/chat-feedback.tsx
new file mode 100644
index 00000000..0cb7e266
--- /dev/null
+++ b/app/(chat)/(routes)/chat/[[...slug]]/_components/chat-main/chat-feedback.tsx
@@ -0,0 +1,104 @@
+'use client';
+
+import { ChatMessage } from '@prisma/client';
+import { ThumbsDown, ThumbsUp } from 'lucide-react';
+import { SyntheticEvent, useState } from 'react';
+
+import { useToast } from '@/components/ui/use-toast';
+import { useChatStore } from '@/hooks/store/use-chat-store';
+import { fetcher } from '@/lib/fetcher';
+import { cn } from '@/lib/utils';
+
+const enum Feedback {
+ POSITIVE = 'positive',
+ NEGATIVE = 'negative',
+}
+
+type ChatFeedback = {
+ className?: string;
+ disabled?: boolean;
+ messageId?: string;
+ state?: string | null;
+};
+
+export const ChatFeedback = ({ className, disabled, messageId, state }: ChatFeedback) => {
+ const { toast } = useToast();
+
+ const { chatMessages, setChatMessages } = useChatStore((state) => ({
+ chatMessages: state.chatMessages,
+ setChatMessages: state.setChatMessages,
+ }));
+
+ const [isFetching, setIsFetching] = useState(false);
+ const [clicked, setClicked] = useState({
+ [Feedback.POSITIVE]: false,
+ [Feedback.NEGATIVE]: false,
+ });
+
+ const handleClick = async (event: SyntheticEvent & { currentTarget: { name: string } }) => {
+ const feedback = event.currentTarget.name;
+
+ setClicked((prev) => ({ ...prev, [feedback]: true }));
+
+ setTimeout(() => {
+ setClicked((prev) => ({ ...prev, [feedback]: false }));
+ }, 1000);
+
+ setIsFetching(true);
+
+ try {
+ const response = await fetcher.post('/api/chat/feedback', {
+ responseType: 'json',
+ body: { messageId, feedback },
+ });
+
+ const conversationId = response.message.conversationId;
+
+ const updatedChatMessages = {
+ ...chatMessages,
+ [conversationId]: chatMessages[conversationId].map((message) =>
+ message.id === messageId
+ ? {
+ ...message,
+ feedback: {
+ ...(message as ChatMessage & { feedback: ChatFeedback })?.feedback,
+ feedback: response.feedback,
+ },
+ }
+ : message,
+ ),
+ };
+
+ setChatMessages(updatedChatMessages);
+ } catch (error) {
+ toast({ isError: true });
+ } finally {
+ setIsFetching(false);
+ }
+ };
+
+ return (
+
+
+
+
+ );
+};
diff --git a/app/api/chat/feedback/route.ts b/app/api/chat/feedback/route.ts
new file mode 100644
index 00000000..f12c68db
--- /dev/null
+++ b/app/api/chat/feedback/route.ts
@@ -0,0 +1,39 @@
+import { ReasonPhrases, StatusCodes } from 'http-status-codes';
+import { NextRequest, NextResponse } from 'next/server';
+
+import { getCurrentUser } from '@/actions/auth/get-current-user';
+import { db } from '@/lib/db';
+
+export const POST = async (req: NextRequest) => {
+ try {
+ const user = await getCurrentUser();
+
+ if (!user?.hasSubscription) {
+ return new NextResponse(ReasonPhrases.UNAUTHORIZED, { status: StatusCodes.UNAUTHORIZED });
+ }
+
+ const { messageId, feedback } = await req.json();
+
+ if (!messageId) {
+ return new NextResponse(ReasonPhrases.BAD_REQUEST, { status: StatusCodes.BAD_REQUEST });
+ }
+
+ const updatedFeedback = await db.chatMessageFeedback.upsert({
+ where: { messageId },
+ update: { feedback },
+ create: {
+ messageId,
+ feedback,
+ },
+ include: { message: true },
+ });
+
+ return NextResponse.json(updatedFeedback);
+ } catch (error) {
+ console.error('[POST_CHAT_MESSAGE_FEEDBACK]', error);
+
+ return new NextResponse(ReasonPhrases.INTERNAL_SERVER_ERROR, {
+ status: StatusCodes.INTERNAL_SERVER_ERROR,
+ });
+ }
+};
diff --git a/package.json b/package.json
index deb6ec84..a93e0198 100644
--- a/package.json
+++ b/package.json
@@ -26,7 +26,7 @@
"@hello-pangea/dnd": "^16.5.0",
"@hookform/resolvers": "^3.3.4",
"@plaiceholder/next": "^3.0.0",
- "@prisma/client": "^5.21.1",
+ "@prisma/client": "^6.5.0",
"@radix-ui/react-accordion": "^1.1.2",
"@radix-ui/react-alert-dialog": "^1.0.5",
"@radix-ui/react-avatar": "^1.0.4",
@@ -131,7 +131,7 @@
"lint-staged": "^15.2.2",
"postcss": "^8",
"prettier": "^3.2.4",
- "prisma": "^5.21.1",
+ "prisma": "^6.5.0",
"tailwindcss": "^3.3.0",
"typescript": "^5"
},
diff --git a/prisma/schema.prisma b/prisma/schema.prisma
index 0fbe5f79..d12bb14d 100644
--- a/prisma/schema.prisma
+++ b/prisma/schema.prisma
@@ -288,19 +288,36 @@ model CsmIssue {
}
// Chat Copilot
+enum ChatFeedback {
+ positive
+ negative
+}
+
model ChatMessage {
- id String @id @default(uuid())
+ id String @id @default(uuid())
content String
- conversation ChatConversation? @relation(fields: [conversationId], references: [id], onDelete: Cascade)
+ conversation ChatConversation? @relation(fields: [conversationId], references: [id], onDelete: Cascade)
conversationId String?
- createdAt DateTime @default(now())
+ createdAt DateTime @default(now())
+ feedback ChatMessageFeedback?
model String
role String
- updatedAt DateTime @updatedAt
+ updatedAt DateTime @updatedAt
@@index([conversationId])
}
+model ChatMessageFeedback {
+ id String @id @default(uuid())
+ createdAt DateTime @default(now())
+ feedback ChatFeedback
+ message ChatMessage @relation(fields: [messageId], references: [id], onDelete: Cascade)
+ messageId String @unique
+ updatedAt DateTime @updatedAt
+
+ @@index([messageId])
+}
+
model ChatConversation {
id String @id @default(uuid())
createdAt DateTime @default(now())
diff --git a/yarn.lock b/yarn.lock
index ebc17d04..74223d7c 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -210,6 +210,181 @@ __metadata:
languageName: node
linkType: hard
+"@esbuild/aix-ppc64@npm:0.25.1":
+ version: 0.25.1
+ resolution: "@esbuild/aix-ppc64@npm:0.25.1"
+ conditions: os=aix & cpu=ppc64
+ languageName: node
+ linkType: hard
+
+"@esbuild/android-arm64@npm:0.25.1":
+ version: 0.25.1
+ resolution: "@esbuild/android-arm64@npm:0.25.1"
+ conditions: os=android & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@esbuild/android-arm@npm:0.25.1":
+ version: 0.25.1
+ resolution: "@esbuild/android-arm@npm:0.25.1"
+ conditions: os=android & cpu=arm
+ languageName: node
+ linkType: hard
+
+"@esbuild/android-x64@npm:0.25.1":
+ version: 0.25.1
+ resolution: "@esbuild/android-x64@npm:0.25.1"
+ conditions: os=android & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/darwin-arm64@npm:0.25.1":
+ version: 0.25.1
+ resolution: "@esbuild/darwin-arm64@npm:0.25.1"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@esbuild/darwin-x64@npm:0.25.1":
+ version: 0.25.1
+ resolution: "@esbuild/darwin-x64@npm:0.25.1"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/freebsd-arm64@npm:0.25.1":
+ version: 0.25.1
+ resolution: "@esbuild/freebsd-arm64@npm:0.25.1"
+ conditions: os=freebsd & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@esbuild/freebsd-x64@npm:0.25.1":
+ version: 0.25.1
+ resolution: "@esbuild/freebsd-x64@npm:0.25.1"
+ conditions: os=freebsd & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-arm64@npm:0.25.1":
+ version: 0.25.1
+ resolution: "@esbuild/linux-arm64@npm:0.25.1"
+ conditions: os=linux & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-arm@npm:0.25.1":
+ version: 0.25.1
+ resolution: "@esbuild/linux-arm@npm:0.25.1"
+ conditions: os=linux & cpu=arm
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-ia32@npm:0.25.1":
+ version: 0.25.1
+ resolution: "@esbuild/linux-ia32@npm:0.25.1"
+ conditions: os=linux & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-loong64@npm:0.25.1":
+ version: 0.25.1
+ resolution: "@esbuild/linux-loong64@npm:0.25.1"
+ conditions: os=linux & cpu=loong64
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-mips64el@npm:0.25.1":
+ version: 0.25.1
+ resolution: "@esbuild/linux-mips64el@npm:0.25.1"
+ conditions: os=linux & cpu=mips64el
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-ppc64@npm:0.25.1":
+ version: 0.25.1
+ resolution: "@esbuild/linux-ppc64@npm:0.25.1"
+ conditions: os=linux & cpu=ppc64
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-riscv64@npm:0.25.1":
+ version: 0.25.1
+ resolution: "@esbuild/linux-riscv64@npm:0.25.1"
+ conditions: os=linux & cpu=riscv64
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-s390x@npm:0.25.1":
+ version: 0.25.1
+ resolution: "@esbuild/linux-s390x@npm:0.25.1"
+ conditions: os=linux & cpu=s390x
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-x64@npm:0.25.1":
+ version: 0.25.1
+ resolution: "@esbuild/linux-x64@npm:0.25.1"
+ conditions: os=linux & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/netbsd-arm64@npm:0.25.1":
+ version: 0.25.1
+ resolution: "@esbuild/netbsd-arm64@npm:0.25.1"
+ conditions: os=netbsd & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@esbuild/netbsd-x64@npm:0.25.1":
+ version: 0.25.1
+ resolution: "@esbuild/netbsd-x64@npm:0.25.1"
+ conditions: os=netbsd & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/openbsd-arm64@npm:0.25.1":
+ version: 0.25.1
+ resolution: "@esbuild/openbsd-arm64@npm:0.25.1"
+ conditions: os=openbsd & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@esbuild/openbsd-x64@npm:0.25.1":
+ version: 0.25.1
+ resolution: "@esbuild/openbsd-x64@npm:0.25.1"
+ conditions: os=openbsd & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/sunos-x64@npm:0.25.1":
+ version: 0.25.1
+ resolution: "@esbuild/sunos-x64@npm:0.25.1"
+ conditions: os=sunos & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/win32-arm64@npm:0.25.1":
+ version: 0.25.1
+ resolution: "@esbuild/win32-arm64@npm:0.25.1"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@esbuild/win32-ia32@npm:0.25.1":
+ version: 0.25.1
+ resolution: "@esbuild/win32-ia32@npm:0.25.1"
+ conditions: os=win32 & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"@esbuild/win32-x64@npm:0.25.1":
+ version: 0.25.1
+ resolution: "@esbuild/win32-x64@npm:0.25.1"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0":
version: 4.4.0
resolution: "@eslint-community/eslint-utils@npm:4.4.0"
@@ -674,61 +849,74 @@ __metadata:
languageName: node
linkType: hard
-"@prisma/client@npm:^5.21.1":
- version: 5.21.1
- resolution: "@prisma/client@npm:5.21.1"
+"@prisma/client@npm:^6.5.0":
+ version: 6.5.0
+ resolution: "@prisma/client@npm:6.5.0"
peerDependencies:
prisma: "*"
+ typescript: ">=5.1.0"
peerDependenciesMeta:
prisma:
optional: true
- checksum: 10c0/066bf678d6bda048893eb9080818339a99bba995a0ba19935cccda30a10eb46c6674bc445bbbbb37881e52d3010c72ce4a28565156b80bfea5438cafd9868941
+ typescript:
+ optional: true
+ checksum: 10c0/2bf6a213bd65de20092b2773b9bb105f023558da2214e92542fe745255778dee8386068ec6648d0d651e0af7443ca69ed9278aa505c0342d39a30098fd0090d2
languageName: node
linkType: hard
-"@prisma/debug@npm:5.21.1":
- version: 5.21.1
- resolution: "@prisma/debug@npm:5.21.1"
- checksum: 10c0/5d69a13ae83efe3748efabb16ceae1dc0e9c2cc0c132e7fe46016a85a6d403eaa994094e8b30fb660b42e23abf5034b8ac1733bca30d6d66cb3fd763281e64e1
+"@prisma/config@npm:6.5.0":
+ version: 6.5.0
+ resolution: "@prisma/config@npm:6.5.0"
+ dependencies:
+ esbuild: "npm:>=0.12 <1"
+ esbuild-register: "npm:3.6.0"
+ checksum: 10c0/6096e946aa8787cd216a9661ab12641776cfc21c2142f25b2fa3a199042a761de3fbfeca0bf0e8acd77f4913e8ecb1cea37a04ecf51a4a110f06c17963665b7c
+ languageName: node
+ linkType: hard
+
+"@prisma/debug@npm:6.5.0":
+ version: 6.5.0
+ resolution: "@prisma/debug@npm:6.5.0"
+ checksum: 10c0/e33ba5750642c3ecf73844df7b8d7a1b35bd45601e6449bd6fdd56df7bf5a1c09f3b034594b2cd150aae86e822b6de5f29fae5681a0c94c38b1e393ce439e923
languageName: node
linkType: hard
-"@prisma/engines-version@npm:5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36":
- version: 5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36
- resolution: "@prisma/engines-version@npm:5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36"
- checksum: 10c0/3b4ca9f8911c36da847740951f73b2ab66f2f3619530dea7a9667764e8853675d2b7fbbd24e2568ece5ad9c5a78c5498e44be94af2979372d7b8743c83ee27a1
+"@prisma/engines-version@npm:6.5.0-73.173f8d54f8d52e692c7e27e72a88314ec7aeff60":
+ version: 6.5.0-73.173f8d54f8d52e692c7e27e72a88314ec7aeff60
+ resolution: "@prisma/engines-version@npm:6.5.0-73.173f8d54f8d52e692c7e27e72a88314ec7aeff60"
+ checksum: 10c0/92792c7f4ece28bfb3f6be14c8d3c625bc201a802ab9c71cf5b04e7e1fef827c75e73f63258c3ae5e63658eec97306d172b8104e5ee4e73583e7cb586479d724
languageName: node
linkType: hard
-"@prisma/engines@npm:5.21.1":
- version: 5.21.1
- resolution: "@prisma/engines@npm:5.21.1"
+"@prisma/engines@npm:6.5.0":
+ version: 6.5.0
+ resolution: "@prisma/engines@npm:6.5.0"
dependencies:
- "@prisma/debug": "npm:5.21.1"
- "@prisma/engines-version": "npm:5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36"
- "@prisma/fetch-engine": "npm:5.21.1"
- "@prisma/get-platform": "npm:5.21.1"
- checksum: 10c0/5a6a76457da5cb075e39a21e566b7e03295cacd357182b0f96f849e9950676c2a9d49cdaac7b974b1b9af6a350d96791a8fd30cf7814a669fa77e14ba17a7531
+ "@prisma/debug": "npm:6.5.0"
+ "@prisma/engines-version": "npm:6.5.0-73.173f8d54f8d52e692c7e27e72a88314ec7aeff60"
+ "@prisma/fetch-engine": "npm:6.5.0"
+ "@prisma/get-platform": "npm:6.5.0"
+ checksum: 10c0/61cc51e28f403a9540183d7276e3f4e191daa854005642f80747f122f4d99e322d036b112da5ab0be77938198b5298138243c72d9d56e6841066b808a6c73f93
languageName: node
linkType: hard
-"@prisma/fetch-engine@npm:5.21.1":
- version: 5.21.1
- resolution: "@prisma/fetch-engine@npm:5.21.1"
+"@prisma/fetch-engine@npm:6.5.0":
+ version: 6.5.0
+ resolution: "@prisma/fetch-engine@npm:6.5.0"
dependencies:
- "@prisma/debug": "npm:5.21.1"
- "@prisma/engines-version": "npm:5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36"
- "@prisma/get-platform": "npm:5.21.1"
- checksum: 10c0/068663fa15cb204d033b166588157915be11571a1584c914372968248faab0f7c236ec1086aaf194929ece3ae2a3d2d0b28e33dac114a1545e0dee1011dc669c
+ "@prisma/debug": "npm:6.5.0"
+ "@prisma/engines-version": "npm:6.5.0-73.173f8d54f8d52e692c7e27e72a88314ec7aeff60"
+ "@prisma/get-platform": "npm:6.5.0"
+ checksum: 10c0/4f26fb07fd183f9a975674b29f976d94fe0301a4fd0571b85b3f6995127ce70d0a65e84a821daef95f4053ae3a02b0cc9535e1e113d363f70d3f606eca587df5
languageName: node
linkType: hard
-"@prisma/get-platform@npm:5.21.1":
- version: 5.21.1
- resolution: "@prisma/get-platform@npm:5.21.1"
+"@prisma/get-platform@npm:6.5.0":
+ version: 6.5.0
+ resolution: "@prisma/get-platform@npm:6.5.0"
dependencies:
- "@prisma/debug": "npm:5.21.1"
- checksum: 10c0/3e6f2378e8a6086db0cc02e95e5b872b602263d0b2e55c3e18f6041bbbf9edea5edbfb9efce331527e75e13411eee68d2b34c24b9aeac9c579e75aac2a39432c
+ "@prisma/debug": "npm:6.5.0"
+ checksum: 10c0/45033d8c20a19d6e0329ff15901606a53be9f43c843ddfd99848c8ac388b12e1b65c202e95a1d5cdc7da4bfee77ed3795ba3c7e0b1d1fa6380c9a253e1bedfd2
languageName: node
linkType: hard
@@ -4594,6 +4782,103 @@ __metadata:
languageName: node
linkType: hard
+"esbuild-register@npm:3.6.0":
+ version: 3.6.0
+ resolution: "esbuild-register@npm:3.6.0"
+ dependencies:
+ debug: "npm:^4.3.4"
+ peerDependencies:
+ esbuild: ">=0.12 <1"
+ checksum: 10c0/77193b7ca32ba9f81b35ddf3d3d0138efb0b1429d71b39480cfee932e1189dd2e492bd32bf04a4d0bc3adfbc7ec7381ceb5ffd06efe35f3e70904f1f686566d5
+ languageName: node
+ linkType: hard
+
+"esbuild@npm:>=0.12 <1":
+ version: 0.25.1
+ resolution: "esbuild@npm:0.25.1"
+ dependencies:
+ "@esbuild/aix-ppc64": "npm:0.25.1"
+ "@esbuild/android-arm": "npm:0.25.1"
+ "@esbuild/android-arm64": "npm:0.25.1"
+ "@esbuild/android-x64": "npm:0.25.1"
+ "@esbuild/darwin-arm64": "npm:0.25.1"
+ "@esbuild/darwin-x64": "npm:0.25.1"
+ "@esbuild/freebsd-arm64": "npm:0.25.1"
+ "@esbuild/freebsd-x64": "npm:0.25.1"
+ "@esbuild/linux-arm": "npm:0.25.1"
+ "@esbuild/linux-arm64": "npm:0.25.1"
+ "@esbuild/linux-ia32": "npm:0.25.1"
+ "@esbuild/linux-loong64": "npm:0.25.1"
+ "@esbuild/linux-mips64el": "npm:0.25.1"
+ "@esbuild/linux-ppc64": "npm:0.25.1"
+ "@esbuild/linux-riscv64": "npm:0.25.1"
+ "@esbuild/linux-s390x": "npm:0.25.1"
+ "@esbuild/linux-x64": "npm:0.25.1"
+ "@esbuild/netbsd-arm64": "npm:0.25.1"
+ "@esbuild/netbsd-x64": "npm:0.25.1"
+ "@esbuild/openbsd-arm64": "npm:0.25.1"
+ "@esbuild/openbsd-x64": "npm:0.25.1"
+ "@esbuild/sunos-x64": "npm:0.25.1"
+ "@esbuild/win32-arm64": "npm:0.25.1"
+ "@esbuild/win32-ia32": "npm:0.25.1"
+ "@esbuild/win32-x64": "npm:0.25.1"
+ dependenciesMeta:
+ "@esbuild/aix-ppc64":
+ optional: true
+ "@esbuild/android-arm":
+ optional: true
+ "@esbuild/android-arm64":
+ optional: true
+ "@esbuild/android-x64":
+ optional: true
+ "@esbuild/darwin-arm64":
+ optional: true
+ "@esbuild/darwin-x64":
+ optional: true
+ "@esbuild/freebsd-arm64":
+ optional: true
+ "@esbuild/freebsd-x64":
+ optional: true
+ "@esbuild/linux-arm":
+ optional: true
+ "@esbuild/linux-arm64":
+ optional: true
+ "@esbuild/linux-ia32":
+ optional: true
+ "@esbuild/linux-loong64":
+ optional: true
+ "@esbuild/linux-mips64el":
+ optional: true
+ "@esbuild/linux-ppc64":
+ optional: true
+ "@esbuild/linux-riscv64":
+ optional: true
+ "@esbuild/linux-s390x":
+ optional: true
+ "@esbuild/linux-x64":
+ optional: true
+ "@esbuild/netbsd-arm64":
+ optional: true
+ "@esbuild/netbsd-x64":
+ optional: true
+ "@esbuild/openbsd-arm64":
+ optional: true
+ "@esbuild/openbsd-x64":
+ optional: true
+ "@esbuild/sunos-x64":
+ optional: true
+ "@esbuild/win32-arm64":
+ optional: true
+ "@esbuild/win32-ia32":
+ optional: true
+ "@esbuild/win32-x64":
+ optional: true
+ bin:
+ esbuild: bin/esbuild
+ checksum: 10c0/80fca30dd0f21aec23fdfab34f0a8d5f55df5097dd7f475f2ab561d45662c32ee306f5649071cd1a0ba0614b164c48ca3dc3ee1551a4daf204b8af90e4d893f5
+ languageName: node
+ linkType: hard
+
"escalade@npm:^3.1.1":
version: 3.1.2
resolution: "escalade@npm:3.1.2"
@@ -6500,7 +6785,7 @@ __metadata:
"@hello-pangea/dnd": "npm:^16.5.0"
"@hookform/resolvers": "npm:^3.3.4"
"@plaiceholder/next": "npm:^3.0.0"
- "@prisma/client": "npm:^5.21.1"
+ "@prisma/client": "npm:^6.5.0"
"@radix-ui/react-accordion": "npm:^1.1.2"
"@radix-ui/react-alert-dialog": "npm:^1.0.5"
"@radix-ui/react-avatar": "npm:^1.0.4"
@@ -6570,7 +6855,7 @@ __metadata:
plaiceholder: "npm:^3.0.0"
postcss: "npm:^8"
prettier: "npm:^3.2.4"
- prisma: "npm:^5.21.1"
+ prisma: "npm:^6.5.0"
pusher: "npm:^5.2.0"
pusher-js: "npm:^8.4.0-rc2"
qrcode: "npm:^1.5.3"
@@ -8480,18 +8765,24 @@ __metadata:
languageName: node
linkType: hard
-"prisma@npm:^5.21.1":
- version: 5.21.1
- resolution: "prisma@npm:5.21.1"
+"prisma@npm:^6.5.0":
+ version: 6.5.0
+ resolution: "prisma@npm:6.5.0"
dependencies:
- "@prisma/engines": "npm:5.21.1"
+ "@prisma/config": "npm:6.5.0"
+ "@prisma/engines": "npm:6.5.0"
fsevents: "npm:2.3.3"
+ peerDependencies:
+ typescript: ">=5.1.0"
dependenciesMeta:
fsevents:
optional: true
+ peerDependenciesMeta:
+ typescript:
+ optional: true
bin:
prisma: build/index.js
- checksum: 10c0/14a276fb1891e1fec832da1632a4c3c9ae6909a094067d1ba94012fe2063b80f44680a0a373fc86e0e73b8a81455f20374303f70d93451060e06b93f0983b82b
+ checksum: 10c0/d859336d9b121987723e775d48a69e78b7eed7d6c56ccc040d2d53f3e6d999dc04b23021320bc4ee2c6db968929c2a863ae747c870f359b1faf831ced6f8132c
languageName: node
linkType: hard