chore: clean up biome lint warnings — all non- intentional resolved
CI / check (push) Successful in 33s
CI / release (push) Skipped
CI / deploy (push) Successful in 1m25s

- Remove 25 unused imports across 14 test files
- Remove 1 unused variable (rename with _ prefix)
- Fix 2 noBannedTypes (Function → (...args: unknown[]) => unknown)
- Fix 1 useTemplate lint (string concat → template literal in merge-config.cjs)
- Fix 1 useNodejsImportProtocol (merge-config.cjs)
- Fix 2 noTemplateCurlyInString (generate-drizzle-schema.mjs generator code)
- Auto-fix formatting + import sorting across modified files
- 221 remaining warnings: intentional noExplicitAny in prisma-facade.ts (Prisma compat layer)
- 0 tsc errors, 583 tests passing
This commit is contained in:
openhands committed 2026-07-31 15:26:39 +02:00
1 parent 7f7971f578
commit e5ff7ec9e5
17 files changed
+9 -32

No files matched your search

+3 -1
View File
@@ -40,7 +40,7 @@ const modelNames = new Set(modelBlocks.map((m) => m[1]));
/** parse a model block -> { name, table, fields, ids, uniques, maps } */ /** parse a model block -> { name, table, fields, ids, uniques, maps } */
function parseModel(block) { function parseModel(block) {
const [full, name, body] = block; const [_full, name, body] = block;
const table = const table =
body.match(/@@map\(\s*"([^"]+)"\s*\)/)?.[1] ?? name.toLowerCase(); body.match(/@@map\(\s*"([^"]+)"\s*\)/)?.[1] ?? name.toLowerCase();
@@ -542,6 +542,7 @@ const helpers = [
" return value.toISOString().slice(11, 19);", " return value.toISOString().slice(11, 19);",
" },", " },",
" fromDriver(value) {", " fromDriver(value) {",
// biome-ignore lint/suspicious/noTemplateCurlyInString: code generation template literal
" return new Date(`1970-01-01T${value}Z`);", " return new Date(`1970-01-01T${value}Z`);",
" },", " },",
"});", "});",
@@ -554,6 +555,7 @@ const helpers = [
" return value.toISOString().slice(0, 10);", " return value.toISOString().slice(0, 10);",
" },", " },",
" fromDriver(value) {", " fromDriver(value) {",
// biome-ignore lint/suspicious/noTemplateCurlyInString: code generation template literal
" return new Date(`${value}T00:00:00Z`);", " return new Date(`${value}T00:00:00Z`);",
" },", " },",
"});", "});",
+2 -2
View File
@@ -1,4 +1,4 @@
const fs = require("fs"); const fs = require("node:fs");
const JSON5 = require("json5"); const JSON5 = require("json5");
const exampleFile = process.argv[2]; const exampleFile = process.argv[2];
@@ -50,4 +50,4 @@ const isJson5 = targetFile.endsWith(".json5");
const output = isJson5 const output = isJson5
? JSON5.stringify(merged, null, 4) ? JSON5.stringify(merged, null, 4)
: JSON.stringify(merged, null, 4); : JSON.stringify(merged, null, 4);
fs.writeFileSync(targetFile, output + "\n"); fs.writeFileSync(targetFile, `${output}\n`);
+1 -1
View File
@@ -16,7 +16,7 @@ vi.mock("@/lib/prisma", () => ({
})); }));
vi.mock("@/lib/logger", () => ({ logger: { error: vi.fn() } })); vi.mock("@/lib/logger", () => ({ logger: { error: vi.fn() } }));
vi.mock("@/lib/safe-action", () => ({ vi.mock("@/lib/safe-action", () => ({
adminAction: vi.fn((_o: unknown, f: Function) => f), adminAction: vi.fn((_o: unknown, f: (...args: unknown[]) => unknown) => f),
})); }));
vi.mock("@/lib/safe-action-shared", () => ({ vi.mock("@/lib/safe-action-shared", () => ({
ActionError: class extends Error {}, ActionError: class extends Error {},
-1
View File
@@ -2,7 +2,6 @@
import { revalidatePath } from "next/cache"; import { revalidatePath } from "next/cache";
import { beforeEach, describe, expect, it, vi } from "vitest"; import { beforeEach, describe, expect, it, vi } from "vitest";
import { requirePermission } from "@/lib/admin/guard"; import { requirePermission } from "@/lib/admin/guard";
import { PERMS } from "@/lib/permissions";
import { rcon } from "@/lib/services/rcon"; import { rcon } from "@/lib/services/rcon";
import { sendHotelAlert } from "./admin-alerts"; import { sendHotelAlert } from "./admin-alerts";
-2
View File
@@ -2,10 +2,8 @@
import { revalidatePath } from "next/cache"; import { revalidatePath } from "next/cache";
import { beforeEach, describe, expect, it, vi } from "vitest"; import { beforeEach, describe, expect, it, vi } from "vitest";
import { requirePermissionRateLimited } from "@/lib/admin/guard"; import { requirePermissionRateLimited } from "@/lib/admin/guard";
import { PERMS } from "@/lib/permissions";
import { prisma } from "@/lib/prisma"; import { prisma } from "@/lib/prisma";
import { rcon } from "@/lib/services/rcon"; import { rcon } from "@/lib/services/rcon";
import { logStaffActivity } from "@/lib/services/staff-activity";
import { createBan, liftBan } from "./admin-bans"; import { createBan, liftBan } from "./admin-bans";
vi.mock("@/lib/admin/guard", () => ({ requirePermissionRateLimited: vi.fn() })); vi.mock("@/lib/admin/guard", () => ({ requirePermissionRateLimited: vi.fn() }));
-1
View File
@@ -2,7 +2,6 @@
import { revalidatePath } from "next/cache"; import { revalidatePath } from "next/cache";
import { beforeEach, describe, expect, it, vi } from "vitest"; import { beforeEach, describe, expect, it, vi } from "vitest";
import { requirePermissionRateLimited } from "@/lib/admin/guard"; import { requirePermissionRateLimited } from "@/lib/admin/guard";
import { PERMS } from "@/lib/permissions";
import { prisma } from "@/lib/prisma"; import { prisma } from "@/lib/prisma";
import { logStaffActivity } from "@/lib/services/staff-activity"; import { logStaffActivity } from "@/lib/services/staff-activity";
import { disbandGuild } from "./admin-guilds"; import { disbandGuild } from "./admin-guilds";
-4
View File
@@ -1,11 +1,7 @@
// @ts-nocheck
import { revalidatePath } from "next/cache";
import { redirect } from "next/navigation"; import { redirect } from "next/navigation";
import { beforeEach, describe, expect, it, vi } from "vitest"; import { beforeEach, describe, expect, it, vi } from "vitest";
import { requirePermission } from "@/lib/admin/guard"; import { requirePermission } from "@/lib/admin/guard";
import { PERMS } from "@/lib/permissions";
import { prisma } from "@/lib/prisma"; import { prisma } from "@/lib/prisma";
import { logStaffActivity } from "@/lib/services/staff-activity";
import { import {
createHelpQuestion, createHelpQuestion,
deleteHelpQuestion, deleteHelpQuestion,
-1
View File
@@ -2,7 +2,6 @@
import { revalidatePath } from "next/cache"; import { revalidatePath } from "next/cache";
import { beforeEach, describe, expect, it, vi } from "vitest"; import { beforeEach, describe, expect, it, vi } from "vitest";
import { requirePermission } from "@/lib/admin/guard"; import { requirePermission } from "@/lib/admin/guard";
import { PERMS } from "@/lib/permissions";
import { prisma } from "@/lib/prisma"; import { prisma } from "@/lib/prisma";
import { import {
addBlacklist, addBlacklist,
+1 -3
View File
@@ -1,12 +1,10 @@
// @ts-nocheck // @ts-nocheck
import { mkdir, writeFile } from "node:fs/promises";
import path from "node:path"; import path from "node:path";
import { revalidatePath } from "next/cache"; import { revalidatePath } from "next/cache";
import { beforeEach, describe, expect, it, vi } from "vitest"; import { beforeEach, describe, expect, it, vi } from "vitest";
import { requirePermission } from "@/lib/admin/guard"; import { requirePermission } from "@/lib/admin/guard";
import { MEDIA_ROOT, resolveMediaPath } from "@/lib/media-storage"; import { resolveMediaPath } from "@/lib/media-storage";
import { PERMS } from "@/lib/permissions";
import { deleteMedia, uploadMedia, uploadMediaAndReturn } from "./admin-media"; import { deleteMedia, uploadMedia, uploadMediaAndReturn } from "./admin-media";
vi.mock("@/lib/admin/guard", () => ({ requirePermission: vi.fn() })); vi.mock("@/lib/admin/guard", () => ({ requirePermission: vi.fn() }));
-1
View File
@@ -2,7 +2,6 @@
import { revalidatePath } from "next/cache"; import { revalidatePath } from "next/cache";
import { beforeEach, describe, expect, it, vi } from "vitest"; import { beforeEach, describe, expect, it, vi } from "vitest";
import { requirePermission } from "@/lib/admin/guard"; import { requirePermission } from "@/lib/admin/guard";
import { PERMS } from "@/lib/permissions";
import { prisma } from "@/lib/prisma"; import { prisma } from "@/lib/prisma";
import { deletePhoto } from "./admin-photos"; import { deletePhoto } from "./admin-photos";
-1
View File
@@ -2,7 +2,6 @@
import { revalidatePath } from "next/cache"; import { revalidatePath } from "next/cache";
import { beforeEach, describe, expect, it, vi } from "vitest"; import { beforeEach, describe, expect, it, vi } from "vitest";
import { requirePermission } from "@/lib/admin/guard"; import { requirePermission } from "@/lib/admin/guard";
import { PERMS } from "@/lib/permissions";
import { prisma } from "@/lib/prisma"; import { prisma } from "@/lib/prisma";
import { logStaffActivity } from "@/lib/services/staff-activity"; import { logStaffActivity } from "@/lib/services/staff-activity";
import { createTag, deleteTag, updateTag } from "./admin-tags"; import { createTag, deleteTag, updateTag } from "./admin-tags";
-1
View File
@@ -2,7 +2,6 @@
import { revalidatePath } from "next/cache"; import { revalidatePath } from "next/cache";
import { beforeEach, describe, expect, it, vi } from "vitest"; import { beforeEach, describe, expect, it, vi } from "vitest";
import { requirePermission } from "@/lib/admin/guard"; import { requirePermission } from "@/lib/admin/guard";
import { PERMS } from "@/lib/permissions";
import { prisma } from "@/lib/prisma"; import { prisma } from "@/lib/prisma";
import { createTeam, deleteTeam } from "./admin-teams"; import { createTeam, deleteTeam } from "./admin-teams";
-4
View File
@@ -1,12 +1,8 @@
// @ts-nocheck
import { revalidatePath } from "next/cache";
import { redirect } from "next/navigation"; import { redirect } from "next/navigation";
import { beforeEach, describe, expect, it, vi } from "vitest"; import { beforeEach, describe, expect, it, vi } from "vitest";
import { requirePermission } from "@/lib/admin/guard"; import { requirePermission } from "@/lib/admin/guard";
import { PERMS } from "@/lib/permissions";
import { prisma } from "@/lib/prisma"; import { prisma } from "@/lib/prisma";
import { siteSettings } from "@/lib/services/site-settings"; import { siteSettings } from "@/lib/services/site-settings";
import { logStaffActivity } from "@/lib/services/staff-activity";
import { saveVpn } from "./admin-vpn"; import { saveVpn } from "./admin-vpn";
vi.mock("@/lib/admin/guard", () => ({ requirePermission: vi.fn() })); vi.mock("@/lib/admin/guard", () => ({ requirePermission: vi.fn() }));
-1
View File
@@ -1,6 +1,5 @@
// @ts-nocheck // @ts-nocheck
import { beforeEach, describe, expect, it, vi } from "vitest"; import { beforeEach, describe, expect, it, vi } from "vitest";
import { env } from "@/env";
import { checkLogin } from "@/lib/auth/password"; import { checkLogin } from "@/lib/auth/password";
import { prisma } from "@/lib/prisma"; import { prisma } from "@/lib/prisma";
import { clientIp, rateLimit } from "@/lib/rate-limit"; import { clientIp, rateLimit } from "@/lib/rate-limit";
-2
View File
@@ -1,10 +1,8 @@
// @ts-nocheck // @ts-nocheck
import { beforeEach, describe, expect, it, vi } from "vitest"; import { beforeEach, describe, expect, it, vi } from "vitest";
import { requirePermission } from "@/lib/admin/guard"; import { requirePermission } from "@/lib/admin/guard";
import { PERMS } from "@/lib/permissions";
import { prisma } from "@/lib/prisma"; import { prisma } from "@/lib/prisma";
import { rcon } from "@/lib/services/rcon"; import { rcon } from "@/lib/services/rcon";
import { logStaffActivity } from "@/lib/services/staff-activity";
import { import {
bulkBan, bulkBan,
bulkGiveBadge, bulkGiveBadge,
+1 -5
View File
@@ -1,10 +1,6 @@
// @ts-nocheck // @ts-nocheck
import { describe, expect, it, vi } from "vitest"; import { describe, expect, it, vi } from "vitest";
import { PERMS } from "@/lib/permissions";
import { prisma } from "@/lib/prisma"; import { prisma } from "@/lib/prisma";
import { adminAction } from "@/lib/safe-action";
import { actionOk } from "@/lib/safe-action-shared";
import { logAudit } from "@/lib/services/audit";
import { rcon } from "@/lib/services/rcon"; import { rcon } from "@/lib/services/rcon";
vi.mock("@/lib/permissions", () => ({ vi.mock("@/lib/permissions", () => ({
@@ -14,7 +10,7 @@ vi.mock("@/lib/prisma", () => ({
prisma: { emulatorSettings: { upsert: vi.fn() } }, prisma: { emulatorSettings: { upsert: vi.fn() } },
})); }));
vi.mock("@/lib/safe-action", () => ({ vi.mock("@/lib/safe-action", () => ({
adminAction: vi.fn((_opts: unknown, fn: Function) => fn), adminAction: vi.fn((_opts: unknown, fn: (...args: unknown[]) => unknown) => fn),
})); }));
vi.mock("@/lib/safe-action-shared", () => ({ actionOk: vi.fn(() => "ok") })); vi.mock("@/lib/safe-action-shared", () => ({ actionOk: vi.fn(() => "ok") }));
vi.mock("@/lib/services/audit", () => ({ logAudit: vi.fn() })); vi.mock("@/lib/services/audit", () => ({ logAudit: vi.fn() }));
+1 -1
View File
@@ -1,7 +1,7 @@
// @ts-nocheck // @ts-nocheck
import { beforeEach, describe, expect, it, vi } from "vitest"; import { beforeEach, describe, expect, it, vi } from "vitest";
import { redirectSafe } from "@/lib/foundation/security"; import { redirectSafe } from "@/lib/foundation/security";
import { canAccess, getAdminContext, PERMS } from "@/lib/permissions"; import { canAccess, getAdminContext } from "@/lib/permissions";
import { clientIp, rateLimit } from "@/lib/rate-limit"; import { clientIp, rateLimit } from "@/lib/rate-limit";
import { import {
requireMod, requireMod,