{"version":3,"file":"media-usage-write-fence.mjs","names":[],"sources":["../../../src/astro/middleware/media-usage-write-fence.ts"],"sourcesContent":["import { defineMiddleware } from \"astro:middleware\";\n\nimport { checkMediaUsageActivationWriteFence } from \"#api/media-usage-write-fence.js\";\n\nconst FENCED_WRITE_PATHS = [\n\t\"/_emdash/api/content\",\n\t\"/_emdash/api/schema\",\n\t\"/_emdash/api/admin/media-usage/repair\",\n\t\"/_emdash/api/revisions\",\n\t\"/_emdash/api/import\",\n\t\"/_emdash/api/mcp\",\n] as const;\n\nconst SAFE_METHODS = new Set([\"GET\", \"HEAD\", \"OPTIONS\"]);\n\nexport const onRequest = defineMiddleware(async (context, next) => {\n\tif (!isFencedWriteRequest(context.request.method, context.url.pathname)) return next();\n\tconst db = context.locals.emdash?.db;\n\tif (!db) return next();\n\treturn (await checkMediaUsageActivationWriteFence(db)) ?? next();\n});\n\nfunction isFencedWriteRequest(method: string, pathname: string): boolean {\n\tif (SAFE_METHODS.has(method.toUpperCase())) return false;\n\treturn FENCED_WRITE_PATHS.some(\n\t\t(prefix) => pathname === prefix || pathname.startsWith(`${prefix}/`),\n\t);\n}\n\nexport default onRequest;\n"],"mappings":";;;;;;;;AAIA,MAAM,qBAAqB;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;AAED,MAAM,eAAe,IAAI,IAAI;CAAC;CAAO;CAAQ;CAAU,CAAC;AAExD,MAAa,YAAY,iBAAiB,OAAO,SAAS,SAAS;AAClE,KAAI,CAAC,qBAAqB,QAAQ,QAAQ,QAAQ,QAAQ,IAAI,SAAS,CAAE,QAAO,MAAM;CACtF,MAAM,KAAK,QAAQ,OAAO,QAAQ;AAClC,KAAI,CAAC,GAAI,QAAO,MAAM;AACtB,QAAQ,MAAM,oCAAoC,GAAG,IAAK,MAAM;EAC/D;AAEF,SAAS,qBAAqB,QAAgB,UAA2B;AACxE,KAAI,aAAa,IAAI,OAAO,aAAa,CAAC,CAAE,QAAO;AACnD,QAAO,mBAAmB,MACxB,WAAW,aAAa,UAAU,SAAS,WAAW,GAAG,OAAO,GAAG,CACpE"}