From c5e1e5e2bc7195df3c11675ed2d813c5709b31f3 Mon Sep 17 00:00:00 2001 From: Huskydog9988 <39809509+Huskydog9988@users.noreply.github.com> Date: Wed, 9 Jul 2025 12:40:07 -0400 Subject: [PATCH 01/16] chore: update prisma to 6.11 more prisma future proofing due to experimental features --- components/Auth/Simple.vue | 4 +- components/CreateCollectionModal.vue | 4 +- components/DeleteCollectionModal.vue | 4 +- components/DeleteUserModal.vue | 4 +- components/GameCarousel.vue | 6 +- components/GameEditor/Metadata.vue | 12 +- components/GameEditor/Version.vue | 8 +- components/NotificationItem.vue | 4 +- .../UserHeader/NotificationWidgetPanel.vue | 4 +- composables/collection.ts | 10 +- composables/news.ts | 4 +- composables/notifications.ts | 6 +- composables/user.ts | 6 +- composables/users.ts | 5 +- package.json | 5 +- pages/account/notifications.vue | 16 +- pages/admin/library/sources/index.vue | 2 +- pages/admin/users/auth/index.vue | 2 +- pages/admin/users/auth/simple/index.vue | 4 +- pages/admin/users/index.vue | 4 +- pages/auth/signin.vue | 2 +- pages/library/index.vue | 4 +- pages/news/index.vue | 4 +- prisma/schema.prisma | 4 +- server/api/v1/admin/auth/index.get.ts | 2 +- server/api/v1/admin/game/metadata.post.ts | 2 +- .../api/v1/admin/library/sources/index.get.ts | 4 +- .../v1/admin/library/sources/index.post.ts | 2 +- server/api/v1/auth/signin/simple.post.ts | 2 +- server/api/v1/auth/signup/simple.post.ts | 2 +- .../[gameid]/[slotindex]/index.delete.ts | 2 +- .../saves/[gameid]/[slotindex]/index.get.ts | 2 +- .../saves/[gameid]/[slotindex]/push.post.ts | 2 +- .../api/v1/client/saves/[gameid]/index.get.ts | 2 +- .../v1/client/saves/[gameid]/index.post.ts | 2 +- server/api/v1/client/saves/index.get.ts | 2 +- server/api/v1/client/saves/settings.get.ts | 2 +- server/api/v1/client/user/webtoken.post.ts | 2 +- server/api/v1/user/token/[id]/index.delete.ts | 2 +- server/api/v1/user/token/index.get.ts | 2 +- server/api/v1/user/token/index.post.ts | 2 +- server/internal/acls/index.ts | 2 +- server/internal/auth/index.ts | 2 +- server/internal/auth/oidc/index.ts | 6 +- server/internal/clients/capabilities.ts | 2 +- server/internal/clients/event-handler.ts | 6 +- server/internal/clients/handler.ts | 2 +- .../config/application-configuration.ts | 14 +- server/internal/db/database.ts | 7 +- server/internal/downloads/manifest.ts | 4 +- server/internal/library/provider.ts | 2 +- .../internal/library/providers/filesystem.ts | 2 +- server/internal/library/providers/flat.ts | 2 +- server/internal/metadata/giantbomb.ts | 7 +- server/internal/metadata/igdb.ts | 8 +- server/internal/metadata/index.ts | 3 +- server/internal/metadata/manual.ts | 2 +- server/internal/metadata/pcgamingwiki.ts | 8 +- server/internal/notifications/index.ts | 13 +- server/internal/utils/parseplatform.ts | 2 +- server/plugins/05.library-init.ts | 2 +- yarn.lock | 187 ++++++++++++++---- 62 files changed, 287 insertions(+), 160 deletions(-) diff --git a/components/Auth/Simple.vue b/components/Auth/Simple.vue index e2dfebca..7324467a 100644 --- a/components/Auth/Simple.vue +++ b/components/Auth/Simple.vue @@ -86,7 +86,7 @@ diff --git a/components/CreateCollectionModal.vue b/components/CreateCollectionModal.vue index 62dd59b6..e38230eb 100644 --- a/components/CreateCollectionModal.vue +++ b/components/CreateCollectionModal.vue @@ -46,7 +46,7 @@ diff --git a/composables/collection.ts b/composables/collection.ts index 64b5ad28..98d1ed8c 100644 --- a/composables/collection.ts +++ b/composables/collection.ts @@ -1,8 +1,12 @@ -import type { Collection, CollectionEntry, Game } from "~/prisma/client"; +import type { + CollectionModel, + CollectionEntryModel, + GameModel, +} from "~/prisma/client/models"; import type { SerializeObject } from "nitropack"; -type FullCollection = Collection & { - entries: Array }>; +type FullCollection = CollectionModel & { + entries: Array }>; }; export const useCollections = async () => { diff --git a/composables/news.ts b/composables/news.ts index cec5e4ac..7179bf56 100644 --- a/composables/news.ts +++ b/composables/news.ts @@ -1,11 +1,11 @@ -import type { Article } from "~/prisma/client"; +import type { ArticleModel } from "~/prisma/client/models"; import type { SerializeObject } from "nitropack"; export const useNews = () => useState< | Array< SerializeObject< - Article & { + ArticleModel & { tags: Array<{ id: string; name: string }>; author: { displayName: string; id: string } | null; } diff --git a/composables/notifications.ts b/composables/notifications.ts index 44d28324..ede125ba 100644 --- a/composables/notifications.ts +++ b/composables/notifications.ts @@ -1,12 +1,12 @@ -import type { Notification } from "~/prisma/client"; +import type { NotificationModel } from "~/prisma/client/models"; const ws = new WebSocketHandler("/api/v1/notifications/ws"); export const useNotifications = () => - useState>("notifications", () => []); + useState>("notifications", () => []); ws.listen((e) => { - const notification = JSON.parse(e) as Notification; + const notification = JSON.parse(e) as NotificationModel; const notifications = useNotifications(); notifications.value.push(notification); }); diff --git a/composables/user.ts b/composables/user.ts index ae604da3..68513980 100644 --- a/composables/user.ts +++ b/composables/user.ts @@ -1,13 +1,13 @@ -import type { User } from "~/prisma/client"; +import type { UserModel } from "~/prisma/client/models"; // undefined = haven't check // null = check, no user // {} = check, user -export const useUser = () => useState(undefined); +export const useUser = () => useState(undefined); export const updateUser = async () => { const user = useUser(); if (user.value === null) return; - user.value = await $dropFetch("/api/v1/user"); + user.value = await $dropFetch("/api/v1/user"); }; diff --git a/composables/users.ts b/composables/users.ts index 28761c55..8e44c6a5 100644 --- a/composables/users.ts +++ b/composables/users.ts @@ -1,11 +1,12 @@ import type { SerializeObject } from "nitropack"; -import type { User, AuthMec } from "~/prisma/client"; +import type { UserModel } from "~/prisma/client/models"; +import type { AuthMec } from "~/prisma/client/enums"; export const useUsers = () => useState< | Array< SerializeObject< - User & { + UserModel & { authMecs?: Array<{ id: string; mec: AuthMec }>; } > diff --git a/package.json b/package.json index fb245d3f..050aa6d8 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,8 @@ "@nuxt/fonts": "^0.11.0", "@nuxt/image": "^1.10.0", "@nuxtjs/i18n": "^9.5.5", - "@prisma/client": "^6.7.0", + "@prisma/adapter-pg": "^6.11.1", + "@prisma/client": "^6.11.1", "@tailwindcss/vite": "^4.0.6", "argon2": "^0.41.1", "arktype": "^2.1.10", @@ -43,7 +44,7 @@ "nuxt-security": "2.2.0", "pino": "^9.7.0", "pino-pretty": "^13.0.0", - "prisma": "^6.7.0", + "prisma": "^6.11.1", "sanitize-filename": "^1.6.3", "semver": "^7.7.1", "stream-mime-type": "^2.0.0", diff --git a/pages/account/notifications.vue b/pages/account/notifications.vue index 2a60d6d4..03f9fead 100644 --- a/pages/account/notifications.vue +++ b/pages/account/notifications.vue @@ -90,7 +90,7 @@ diff --git a/pages/auth/signin.vue b/pages/auth/signin.vue index 813b1c7c..4feba93c 100644 --- a/pages/auth/signin.vue +++ b/pages/auth/signin.vue @@ -43,7 +43,7 @@