update to nuxt 4

This commit is contained in:
DecDuck
2025-09-20 11:20:49 +10:00
parent b4f9b77809
commit 2db8e753b7
313 changed files with 508 additions and 512 deletions

View File

@ -1,7 +1,7 @@
import { APITokenMode } from "~/prisma/client/enums";
import { APITokenMode } from "~~/prisma/client/enums";
import prisma from "../db/database";
import sessionHandler from "../session";
import type { MinimumRequestObject } from "~/server/h3";
import type { MinimumRequestObject } from "~~/server/h3";
export const userACLs = [
"read",

View File

@ -1,6 +1,6 @@
import { AuthMec } from "~/prisma/client/enums";
import { AuthMec } from "~~/prisma/client/enums";
import { OIDCManager } from "./oidc";
import { logger } from "~/server/internal/logging";
import { logger } from "~~/server/internal/logging";
class AuthManager {
private authProviders: {

View File

@ -1,12 +1,12 @@
import { randomUUID } from "crypto";
import prisma from "../../db/database";
import type { UserModel } from "~/prisma/client/models";
import { AuthMec } from "~/prisma/client/enums";
import type { UserModel } from "~~/prisma/client/models";
import { AuthMec } from "~~/prisma/client/enums";
import objectHandler from "../../objects";
import type { Readable } from "stream";
import * as jdenticon from "jdenticon";
import { systemConfig } from "../../config/sys-conf";
import { logger } from "~/server/internal/logging";
import { logger } from "~~/server/internal/logging";
interface OIDCWellKnown {
authorization_endpoint: string;

View File

@ -1,6 +1,6 @@
import type { EnumDictionary } from "../utils/types";
import prisma from "../db/database";
import { ClientCapabilities } from "~/prisma/client/enums";
import { ClientCapabilities } from "~~/prisma/client/enums";
// These values are technically mapped to the database,
// but Typescript/Prisma doesn't let me link them

View File

@ -1,8 +1,8 @@
import type { ClientModel, UserModel } from "~/prisma/client/models";
import type { ClientModel, UserModel } from "~~/prisma/client/models";
import type { EventHandlerRequest, H3Event } from "h3";
import droplet from "@drop-oss/droplet";
import prisma from "../db/database";
import { useCertificateAuthority } from "~/server/plugins/ca";
import { useCertificateAuthority } from "~~/server/plugins/ca";
export type EventHandlerFunction<T> = (
h3: H3Event<EventHandlerRequest>,
@ -23,7 +23,7 @@ export function defineClientEventHandler<T>(handler: EventHandlerFunction<T>) {
if (!header) throw createError({ statusCode: 403 });
const [method, ...parts] = header.split(" ");
let clientId: string;
let clientId: string | undefined;
switch (method) {
case "Debug": {
if (!import.meta.dev) throw createError({ statusCode: 403 });
@ -93,7 +93,7 @@ export function defineClientEventHandler<T>(handler: EventHandlerFunction<T>) {
async function fetchClient() {
const client = await prisma.client.findUnique({
where: { id: clientId },
where: { id: clientId! },
});
if (!client)
throw new Error(
@ -104,7 +104,7 @@ export function defineClientEventHandler<T>(handler: EventHandlerFunction<T>) {
async function fetchUser() {
const client = await prisma.client.findUnique({
where: { id: clientId },
where: { id: clientId! },
select: {
user: true,
},

View File

@ -1,7 +1,7 @@
import { randomUUID } from "node:crypto";
import prisma from "../db/database";
import type { HardwarePlatform } from "~/prisma/client/enums";
import { useCertificateAuthority } from "~/server/plugins/ca";
import type { HardwarePlatform } from "~~/prisma/client/enums";
import { useCertificateAuthority } from "~~/server/plugins/ca";
import type {
CapabilityConfiguration,
InternalClientCapability,

View File

@ -1,4 +1,4 @@
import type { ApplicationSettingsModel } from "~/prisma/client/models";
import type { ApplicationSettingsModel } from "~~/prisma/client/models";
import prisma from "../db/database";
class ApplicationConfiguration {

View File

@ -1,4 +1,4 @@
import { PrismaClient } from "~/prisma/client/client";
import { PrismaClient } from "~~/prisma/client/client";
// import { PrismaPg } from "@prisma/adapter-pg";
const prismaClientSingleton = () => {

View File

@ -117,7 +117,7 @@ class ManifestGenerator {
});
const manifest = ManifestGenerator.generateManifestFromMetadata(
metadata[0],
metadata[0]!,
...metadata.slice(1),
);

View File

@ -13,11 +13,11 @@ import notificationSystem from "../notifications";
import { GameNotFoundError, type LibraryProvider } from "./provider";
import { logger } from "../logging";
import { createHash } from "node:crypto";
import type { ImportVersion } from "~/server/api/v1/admin/import/version/index.post";
import type { ImportVersion } from "~~/server/api/v1/admin/import/version/index.post";
import type {
GameVersionCreateInput,
LaunchOptionCreateManyInput,
} from "~/prisma/client/models";
} from "~~/prisma/client/models";
export function createGameImportTaskId(libraryId: string, libraryPath: string) {
return createHash("md5")

View File

@ -1,4 +1,4 @@
import type { LibraryBackend } from "~/prisma/client/enums";
import type { LibraryBackend } from "~~/prisma/client/enums";
export abstract class LibraryProvider<CFG> {
constructor(_config: CFG, _id: string) {

View File

@ -4,7 +4,7 @@ import {
VersionNotFoundError,
type LibraryProvider,
} from "../provider";
import { LibraryBackend } from "~/prisma/client/enums";
import { LibraryBackend } from "~~/prisma/client/enums";
import fs from "fs";
import path from "path";
import droplet, { DropletHandler } from "@drop-oss/droplet";

View File

@ -1,7 +1,7 @@
import { ArkErrors, type } from "arktype";
import type { LibraryProvider } from "../provider";
import { VersionNotFoundError } from "../provider";
import { LibraryBackend } from "~/prisma/client/enums";
import { LibraryBackend } from "~~/prisma/client/enums";
import fs from "fs";
import path from "path";
import droplet from "@drop-oss/droplet";

View File

@ -1,5 +1,5 @@
import type { CompanyModel } from "~/prisma/client/models";
import { MetadataSource } from "~/prisma/client/enums";
import type { CompanyModel } from "~~/prisma/client/models";
import { MetadataSource } from "~~/prisma/client/enums";
import type { MetadataProvider } from ".";
import { MissingMetadataProviderConfig } from ".";
import type {

View File

@ -1,5 +1,5 @@
import type { CompanyModel } from "~/prisma/client/models";
import { MetadataSource } from "~/prisma/client/enums";
import type { CompanyModel } from "~~/prisma/client/models";
import { MetadataSource } from "~~/prisma/client/enums";
import type { MetadataProvider } from ".";
import { MissingMetadataProviderConfig } from ".";
import type {
@ -13,7 +13,7 @@ import type { AxiosRequestConfig } from "axios";
import axios from "axios";
import { DateTime } from "luxon";
import * as jdenticon from "jdenticon";
import { logger } from "~/server/internal/logging";
import { logger } from "~~/server/internal/logging";
import type { TaskRunContext } from "../tasks/utils";
type IGDBID = number;

View File

@ -1,5 +1,5 @@
import type { Prisma } from "~/prisma/client/client";
import { MetadataSource } from "~/prisma/client/enums";
import type { Prisma } from "~~/prisma/client/client";
import { MetadataSource } from "~~/prisma/client/enums";
import prisma from "../db/database";
import type {
_FetchGameMetadataParams,
@ -15,9 +15,9 @@ import { PriorityListIndexed } from "../utils/prioritylist";
import { systemConfig } from "../config/sys-conf";
import { randomUUID } from "crypto";
import { fuzzy } from "fast-fuzzy";
import { logger } from "~/server/internal/logging";
import { logger } from "~~/server/internal/logging";
import libraryManager, { createGameImportTaskId } from "../library";
import type { GameTagModel } from "~/prisma/client/models";
import type { GameTagModel } from "~~/prisma/client/models";
import type { TaskRunContext} from "../tasks/utils";
import { wrapTaskContext } from "../tasks/utils";
import taskHandler from "../tasks";

View File

@ -1,4 +1,4 @@
import { MetadataSource } from "~/prisma/client/enums";
import { MetadataSource } from "~~/prisma/client/enums";
import type { MetadataProvider } from ".";
import type {
_FetchGameMetadataParams,

View File

@ -1,5 +1,5 @@
import type { CompanyModel } from "~/prisma/client/models";
import { MetadataSource } from "~/prisma/client/enums";
import type { CompanyModel } from "~~/prisma/client/models";
import { MetadataSource } from "~~/prisma/client/enums";
import type { MetadataProvider } from ".";
import type {
GameMetadataSearchResult,
@ -15,7 +15,7 @@ import * as jdenticon from "jdenticon";
import { DateTime } from "luxon";
import * as cheerio from "cheerio";
import { type } from "arktype";
import { logger } from "~/server/internal/logging";
import { logger } from "~~/server/internal/logging";
import type { TaskRunContext } from "../tasks/utils";
interface PCGamingWikiParseRawPage {

View File

@ -1,4 +1,4 @@
import type { Company, GameRating } from "~/prisma/client";
import type { Company, GameRating } from "~~/prisma/client";
import type { TransactionDataType } from "../objects/transactional";
import type { ObjectReference } from "../objects/objectHandler";

View File

@ -6,7 +6,7 @@ Design goals:
2. Real-time; use websocket listeners to keep clients up-to-date
*/
import type { NotificationModel } from "~/prisma/client/models";
import type { NotificationModel } from "~~/prisma/client/models";
import prisma from "../db/database";
import type { GlobalACL } from "../acls";

View File

@ -9,7 +9,7 @@ import prisma from "../db/database";
import cacheHandler from "../cache";
import { systemConfig } from "../config/sys-conf";
import { type } from "arktype";
import { logger } from "~/server/internal/logging";
import { logger } from "~~/server/internal/logging";
import type pino from "pino";
export class FsObjectBackend extends ObjectBackend {

View File

@ -1,6 +1,6 @@
import { HardwarePlatform } from "~/prisma/client/enums";
import { HardwarePlatform } from "~~/prisma/client/enums";
import prisma from "../db/database";
import type { PlatformLink } from "~/prisma/client/client";
import type { PlatformLink } from "~~/prisma/client/client";
export async function convertIDsToPlatforms(platformIDs: string[]) {
const userPlatforms = await prisma.userPlatform.findMany({

View File

@ -2,7 +2,7 @@ import type { H3Event } from "h3";
import type { Session, SessionProvider } from "./types";
import { randomUUID } from "node:crypto";
import { parse as parseCookies } from "cookie-es";
import type { MinimumRequestObject } from "~/server/h3";
import type { MinimumRequestObject } from "~~/server/h3";
import type { DurationLike } from "luxon";
import { DateTime } from "luxon";
import createDBSessionHandler from "./db";

View File

@ -1,5 +1,5 @@
import droplet from "@drop-oss/droplet";
import type { MinimumRequestObject } from "~/server/h3";
import type { MinimumRequestObject } from "~~/server/h3";
import type { GlobalACL } from "../acls";
import aclManager from "../acls";
@ -11,7 +11,7 @@ import { taskGroups, type TaskGroup } from "./group";
import prisma from "../db/database";
import { type } from "arktype";
import pino from "pino";
import { logger } from "~/server/internal/logging";
import { logger } from "~~/server/internal/logging";
import { Writable } from "node:stream";
import type { TaskRunContext } from "./utils";

View File

@ -1,4 +1,4 @@
import prisma from "~/server/internal/db/database";
import prisma from "~~/server/internal/db/database";
import { defineDropTask } from "..";
export default defineDropTask({

View File

@ -1,5 +1,5 @@
import prisma from "~/server/internal/db/database";
import objectHandler from "~/server/internal/objects";
import prisma from "~~/server/internal/db/database";
import objectHandler from "~~/server/internal/objects";
import { defineDropTask } from "..";
type FieldReferenceMap = {

View File

@ -1,4 +1,4 @@
import sessionHandler from "~/server/internal/session";
import sessionHandler from "~~/server/internal/session";
import { defineDropTask } from "..";
export default defineDropTask({

View File

@ -1,4 +1,4 @@
import { HardwarePlatform } from "~/prisma/client/enums";
import { HardwarePlatform } from "~~/prisma/client/enums";
export function parsePlatform(platform: string) {
switch (platform.toLowerCase()) {

View File

@ -80,11 +80,12 @@ export class PriorityListIndexed<T> extends PriorityList<T> {
override pop(position?: number): PriorityTagged<T> {
const value = super.pop(position);
if(!value) return undefined!;
const index = this.getIndex(value.object);
this.indexMap.delete(index);
return value;
return value!;
}
get(index: string) {