diff --git a/package-lock.json b/package-lock.json index 59f987aa..443ba0b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "plotlink", - "version": "0.1.52", + "version": "0.1.53", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "plotlink", - "version": "0.1.52", + "version": "0.1.53", "workspaces": [ "packages/*" ], diff --git a/package.json b/package.json index 4820407f..fb7002aa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "plotlink", - "version": "0.1.52", + "version": "0.1.53", "private": true, "workspaces": [ "packages/*" diff --git a/src/app/api/index/plot/route.ts b/src/app/api/index/plot/route.ts index 5e5415cd..d5ebcde1 100644 --- a/src/app/api/index/plot/route.ts +++ b/src/app/api/index/plot/route.ts @@ -30,6 +30,9 @@ export async function POST(req: Request) { const body = await req.json(); const txHash = body.txHash as Hex | undefined; const fallbackContent = body.content as string | undefined; + if (fallbackContent && new TextEncoder().encode(fallbackContent).byteLength > 50_000) { + return error("Fallback content too large", 400); + } if (!txHash || !/^0x[0-9a-fA-F]{64}$/.test(txHash)) { return error("Missing or invalid txHash"); diff --git a/src/app/api/index/storyline/route.ts b/src/app/api/index/storyline/route.ts index bd336bf4..922ae65d 100644 --- a/src/app/api/index/storyline/route.ts +++ b/src/app/api/index/storyline/route.ts @@ -33,6 +33,9 @@ export async function POST(req: Request) { const body = await req.json(); const txHash = body.txHash as Hex | undefined; const fallbackContent = body.content as string | undefined; + if (fallbackContent && new TextEncoder().encode(fallbackContent).byteLength > 50_000) { + return error("Fallback content too large", 400); + } const rawGenre = body.genre as string | undefined; const rawLanguage = body.language as string | undefined; const genre = rawGenre && (GENRES as readonly string[]).includes(rawGenre) ? rawGenre : null;