Improvements: remove dead config, fix ESM, add URL validation, unify types, add missing logging
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 1m52s

- Remove .prettierrc (dead config, Biome replaces Prettier)
- Rename lighthouserc.json to lighthouserc.cjs with module.exports for ESM compat
- Add logger.warn to empty catch blocks in auth, register, site-settings, prisma-cache, redis, security, rate-limit
- Unify ActionResult type: action-helper.ts uses 'ok' consistent with safe-action-shared.ts
- Add noUnusedLocals + noUnusedParameters to tsconfig + fix 25 pre-existing unused vars
- Replace barrel export src/types/index.ts with direct @/types/common imports
- Make trustHost conditional (development only) in auth.ts
- Add pre-flight URL validation to update-Nitrov3.sh to catch image.library.url misconfigurations
- Improve NITRO_IMAGE_LIBRARY_URL content validation in pre-flight & post-compute checks
This commit is contained in:
openhands committed 2026-07-26 20:28:11 +02:00
1 parent b922f6d49f
commit 17847545dd
292 files changed
+69195 -67915

No files matched your search

+7 -4
View File
@@ -1,13 +1,12 @@
import Link from "next/link";
import { formatDate } from "@/lib/format-date";
import { notFound } from "next/navigation";
import { getTranslations } from "next-intl/server";
import { ContentCard } from "@/components/public/ui";
import { formatDate } from "@/lib/format-date";
import { prisma } from "@/lib/prisma";
export const revalidate = 300;
export default async function RadioContestDetailPage({
params,
}: {
@@ -61,9 +60,13 @@ export default async function RadioContestDetailPage({
<tr>
<th>Period</th>
<td>
{contest.startDate ? formatDate(contest.startDate, "datetime-seconds", "") : "—"}
{contest.startDate
? formatDate(contest.startDate, "datetime-seconds", "")
: "—"}
{" — "}
{contest.endDate ? formatDate(contest.endDate, "datetime-seconds", "") : "ongoing"}
{contest.endDate
? formatDate(contest.endDate, "datetime-seconds", "")
: "ongoing"}
</td>
</tr>
<tr>
+1 -2
View File
@@ -1,12 +1,11 @@
import Link from "next/link";
import { formatDate } from "@/lib/format-date";
import { getTranslations } from "next-intl/server";
import { ContentCard, EmptyState } from "@/components/public/ui";
import { formatDate } from "@/lib/format-date";
import { prisma } from "@/lib/prisma";
export const revalidate = 300;
export default async function RadioContestsPage() {
const t = await getTranslations("pages.radioContests");
+7 -4
View File
@@ -1,13 +1,12 @@
import Link from "next/link";
import { formatDate } from "@/lib/format-date";
import { notFound } from "next/navigation";
import { getTranslations } from "next-intl/server";
import { ContentCard } from "@/components/public/ui";
import { formatDate } from "@/lib/format-date";
import { prisma } from "@/lib/prisma";
export const revalidate = 300;
export default async function RadioGiveawayDetailPage({
params,
}: {
@@ -66,9 +65,13 @@ export default async function RadioGiveawayDetailPage({
<tr>
<th>Period</th>
<td>
{giveaway.startDate ? formatDate(giveaway.startDate, "datetime-seconds", "") : "—"}
{giveaway.startDate
? formatDate(giveaway.startDate, "datetime-seconds", "")
: "—"}
{" — "}
{giveaway.endDate ? formatDate(giveaway.endDate, "datetime-seconds", "") : "ongoing"}
{giveaway.endDate
? formatDate(giveaway.endDate, "datetime-seconds", "")
: "ongoing"}
</td>
</tr>
<tr>
+1 -2
View File
@@ -1,12 +1,11 @@
import Link from "next/link";
import { formatDate } from "@/lib/format-date";
import { getTranslations } from "next-intl/server";
import { ContentCard, EmptyState } from "@/components/public/ui";
import { formatDate } from "@/lib/format-date";
import { prisma } from "@/lib/prisma";
export const revalidate = 300;
export default async function RadioGiveawaysPage() {
const t = await getTranslations("pages.radioGiveaways");
+4 -2
View File
@@ -1,9 +1,9 @@
import { getTranslations } from "next-intl/server";
import type { CSSProperties } from "react";
import { formatDate } from "@/lib/format-date";
import { submitRequest } from "@/actions/radio-requests";
import { ContentCard, EmptyState } from "@/components/public/ui";
import { auth } from "@/lib/auth";
import { formatDate } from "@/lib/format-date";
import { prisma } from "@/lib/prisma";
export const dynamic = "force-dynamic";
@@ -179,7 +179,9 @@ export default async function RadioRequestsPage({
)}
</td>
<td className="muted">
{r.submittedAt ? formatDate(r.submittedAt, "datetime", "") : "—"}
{r.submittedAt
? formatDate(r.submittedAt, "datetime", "")
: "—"}
</td>
<td>{status}</td>
</tr>